Sakura-Editor: 構成

  • メインページ
  • ネームスペース
  • クラス
  • ファイル
  • ディレクトリ
  • 関連ページ
  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor 構成

クラス、構造体、共用体、インタフェースの説明です。
_SORTTABLE |
ARRHEAD |
bregexp |
CAutoMarkMgr | 移動履歴の管理クラス
CBinaryInputStream |
CBinaryOutputStream |
CBlockComment |
CBregexp | Perl互換正規表現 BREGEXP.DLL をサポートするクラス
CBregexpDll2 | BREGONIG.DLLをラップしたもの。
CCaret |
CCaretUnderLine |
CClipboard | サクラエディタ用クリップボードクラス。後々はこの中で全てのクリップボードAPIを呼ばせたい。
CCodeBase |
CCodeFactory |
CCodeMediator |
CCommandLine | コマンドラインパーサ クラス
CControlProcess | コントロールプロセスクラス
CControlTray | 常駐部の管理
CConvert |
CConvert_Base64Decode |
CConvert_HaneisuToZeneisu | 半角英数→全角英数
CConvert_HankanaToZenhira | 半角カナ→全角ひらがな
CConvert_HankanaToZenkana | 半角カナ→全角カナ
CConvert_SpaceToTab |
CConvert_TabToSpace |
CConvert_ToHankaku | 半角にできるものは全部半角に変換
CConvert_ToLower |
CConvert_ToUpper |
CConvert_ToZenhira | できる限り全角ひらがなにする
CConvert_ToZenkana | できる限り全角カタカナにする
CConvert_Trim |
CConvert_UuDecode |
CConvert_ZeneisuToHaneisu | 全角英数→半角英数
CConvert_ZenkanaToHankana | 全角カナ→半角カナ
CConvertMediator |
CCppPreprocessMng |
CDataObject |
CDataProfile | 各種データ変換付きCProfile
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 | エディタ部分アプリケーションクラス。CNormalProcess1個につき、1個存在。
CEditDoc | 文書関連情報の管理
CEditView | 文書ウィンドウの管理
CEditView_Paint |
CEditWnd | 編集ウィンドウ（外枠）管理クラス
CEOL | 行末の改行コードを管理
CError_FileOpen | ファイルのオープンに失敗したときに送出する例外
CError_FileRead | ファイルの読み込みに失敗したときに放出する例外
CError_FileWrite | ファイルの書き込みに失敗したときに送出する例外
CESI |
CEuc |
CFileExt |
CFileExt::FileExtInfoTag |
CFileLoad |
CFileWrite | ファイル書き込みクラス（Cのライブラリ関数を使用して実装）
CFuncInfo | アウトライン解析 データ要素
CFuncInfoArr | アウトライン解析 データ配列
CFuncKeyWnd | ファンクションキーウィンドウ
CFuncLookup | 表示用文字列等の取得
CharPointerA | < ディレクトリを除いた、ファイル名だけを取得する
CharPointerW |
CHokanMgr | キーワード補完
CHtmlHelp | HtmpHelp動的ロード
CImageListMgr | ImageListの管理
CInterfaceObject |
CInterfaceObject::CMethodInfo |
CInterfaceObjectTypeInfo |
CIoBridge |
CJis |
CKeyBind | キー割り当て関連ルーチン
CKeyMacroMgr | キーボードマクロ
CKeyWordSetMgr | 強調キーワード管理
CLaxInteger | 型チェックの緩い整数型
CLayout |
CLayoutMgr | テキストのレイアウト情報管理
CLineComment |
CMacro | キーボードマクロの1コマンド
CMacro::CMacroParam |
CMacroFactory | マクロHandler生成クラス
CMacroManagerBase | マクロを処理するエンジン部分の基底クラス
CMainStatusBar |
CMainToolBar |
CMarkMgr |
CMarkMgr::CMark |
CMemory | メモリバッファクラス
CMemoryIterator | ブロックコメントデリミタを管理する
CMenuDrawer | メニュー表示＆管理
CMigemo |
CMRU |
CMRUFolder |
CMutex |
CMyPoint |
CMyRect |
CMySize |
CMyString |
CNative |
CNativeA |
CNativeW |
CNormalProcess | エディタプロセスクラス
COleLibrary |
ColorAttributeData_t |
ColorInfo | 色設定
ColorInfoIni | 色設定(保存用)
CommonSetting | 共通設定
CommonSetting_Backup |
CommonSetting_Compare |
CommonSetting_CustomMenu |
CommonSetting_Edit |
CommonSetting_File |
CommonSetting_Format |
CommonSetting_General |
CommonSetting_Helper |
CommonSetting_Others |
CommonSetting_OutLine |
CommonSetting_Search |
CommonSetting_TabBar |
CommonSetting_ToolBar |
CommonSetting_View |
CommonSetting_Window |
CommonValue< T > |
CommonValueInfo |
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 | タイプ別設定ダイアログボックス
CRangeBase< PointType > |
CRecent |
CRecentCmd | コマンドの履歴を管理 (RECENT_FOR_CMD)
CRecentEditNode | EditNode(ウィンドウリスト)の履歴を管理 (RECENT_FOR_EDITNODE)
CRecentFile | FileInfoの履歴を管理 (RECENT_FOR_FILE)
CRecentFolder | フォルダの履歴を管理 (RECENT_FOR_FOLDER)
CRecentGrepFile | GREPファイルの履歴を管理 (RECENT_FOR_GREP_FILE)
CRecentGrepFolder | GREPフォルダの履歴を管理 (RECENT_FOR_GREP_FOLDER)
CRecentImp< DATA_TYPE, RECEIVE_TYPE > |
CRecentReplace | 置換の履歴を管理 (RECENT_FOR_REPLACE)
CRecentSearch | 検索の履歴を管理 (RECENT_FOR_SEARCH)
CRecentTagjumpKeyword | タグジャンプキーワードの履歴を管理 (RECENT_FOR_TAGJUMP_KEYWORD)
CRecycledBuffer |
CRecycledBufferDynamic |
CRegexKeyword | 正規表現キーワードクラス
CRuler |
CRunningTimer | 処理所要時間の計測クラス
CShareData | 共有データの管理
CShiftJis |
CSMacroMgr |
CSortedTagJumpList | ダイレクトタグジャンプ用検索結果をソートして保持する．
CSortedTagJumpList::tagjump_info_t |
CSplitBoxWnd | 分割ボックスウィンドウクラス
CSplitterWnd | 分割線ウィンドウクラス
CStream |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | 暗黙の変換を許さない、整数クラス
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy | ゴミクラス
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false > |
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true > |
CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > |
CStrictRect< INT_TYPE, POINT_TYPE > |
CStringRef | 文字列への参照を保持するクラス
CTabWnd | タブバーウィンドウ
CTextArea |
CTextDrawer |
CTextInputStream |
CTextInputStream_AbsIni |
CTextMetrics |
CTextOutputStream |
CTipWnd |
ctrl_info_t |
CTypeSupport | タイプサポートクラス
CUnicode |
CUnicodeBe |
CUrlWnd | About Box管理
CUtf7 |
CUtf8 |
CUxTheme | UxTheme 動的ロード
CViewCalc |
CViewCommander |
CViewFont |
CViewParser | 品詞解析クラス
CViewSelect |
CWaitCursor | 砂時計カーソルクラス
CWnd | ウィンドウの基本クラス
CWordParse |
CWSHClient |
CWSHMacroManager |
CWSHSite |
CYbInterfaceBase |
CYbInterfaceImpl< BASEINTERFACE > |
DispPos |
DLLSHAREDATA | 共有データ領域
DocLineReplaceArg |
EditNode |
EditNodeEx |
EncodingInfo_t |
FileInfo |
GrepInfo |
IDataObject |
IDispatch |
IDropSource |
IDropTarget |
ImplementsIUnknown< Base > |
IniFolder | Iniフォルダ設定 // 2007.05.31 ryoji
IStringRef | 文字列への参照を取得するインターフェース
ITypeInfo |
KAKKO_T | 対括弧の対応表
KEYDATA | キー情報を保持する
KeyHelpInfo |
LayoutReplaceArg |
LocalCache |
LockGuard< EXCLUSIVE_OBJECT > |
MacroFuncInfo |
MacroRec | マクロ情報
MYDEVMODE |
oneRule |
OPENFILENAMEZ |
PAPER_INFO | 用紙情報
PRINTSETTING |
RcCvt |
RegexInfo_t | 正規表現キーワード検索情報構造体
RegexKeywordInfo |
SLayoutPoint |
SLogicPoint |
SSearchOption |
STabGroupInfo |
StaticString< CHAR_TYPE, N_BUFFER_COUNT > | ヒープを用いない文字列クラス
StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | ヒープを用いないvector
StringBufferA |
StringBufferW |
SysString |
TABMENU_DATA |
TagJump | タグジャンプ情報
tagRECONVERTSTRING |
TcharReceiver< RECEIVE_CHAR_TYPE > |
TestArrayA |
TestArrayI |
TestArrayW |
TSingleInstance< T > |
TYPE_NAME |
Types | タイプ別設定
UnicodeInfo_t |
Variant |
VS_VERSION_INFO_HEAD |
WC_EncodingInfo_t |
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 _SORTTABLE

  • ファイル
  • ディレクトリ
  • 関連ページ
  • 構成
  • クラス階層
  • 構成メンバ

構造体 _SORTTABLE

すべてのメンバ一覧

Public 変数

wstring | sKey1
wstring | sKey2

説明

物理行のソートに使う構造体

CViewCommander_New.cpp の 757 行で定義されています。

変数

wstring _SORTTABLE::sKey1

CViewCommander_New.cpp の 758 行で定義されています。

参照元 CViewCommander::Command_SORT(), SortByKeyAsc(), と SortByKeyDesc().

wstring _SORTTABLE::sKey2

CViewCommander_New.cpp の 759 行で定義されています。

参照元 CViewCommander::Command_SORT().

この構造体の説明は次のファイルから生成されました:
  • CViewCommander_New.cpp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

_SORTTABLE メンバ一覧

これは全メンバの一覧です。_SORTTABLE継承メンバも含んでいます。

sKey1 | _SORTTABLE
sKey2 | _SORTTABLE

Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 ARRHEAD

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ARRHEAD

すべてのメンバ一覧

Public 変数

int | nLength
int | nItemNum

説明

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

変数

int ARRHEAD::nLength

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

int ARRHEAD::nItemNum

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

この構造体の説明は次のファイルから生成されました:
  • CShareData.cpp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ARRHEAD メンバ一覧

これは全メンバの一覧です。ARRHEAD継承メンバも含んでいます。

nItemNum | ARRHEAD
nLength | ARRHEAD

Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 bregexp

  • 構成
  • クラス階層
  • 構成メンバ

構造体 bregexp

#include <bregexp.h>

すべてのメンバ一覧

Public 変数

BREGCONST WCHAR * | outp
BREGCONST WCHAR * | outendp
BREGCONST int | splitctr
BREGCONST WCHAR ** | splitp
int | rsv1
WCHAR * parap
WCHAR * paraendp
WCHAR * transtblp
WCHAR ** startp
WCHAR ** endp
int | nparens

説明

bregexp.h の 22 行で定義されています。

変数

BREGCONST WCHAR* bregexp::outp

bregexp.h の 23 行で定義されています。

参照元 CBregexp::MakePattern().

BREGCONST WCHAR* bregexp::outendp

bregexp.h の 24 行で定義されています。

BREGCONST int bregexp::splitctr

bregexp.h の 25 行で定義されています。

BREGCONST WCHAR** bregexp::splitp

bregexp.h の 26 行で定義されています。

int bregexp::rsv1

bregexp.h の 27 行で定義されています。

WCHAR* bregexp::parap

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

WCHAR* bregexp::paraendp

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

WCHAR* bregexp::transtblp

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

WCHAR** bregexp::startp

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

参照元 CBregexp::MakePattern().

WCHAR** bregexp::endp

bregexp.h の 32 行で定義されています。

参照元 CBregexp::MakePattern().

int bregexp::nparens

bregexp.h の 33 行で定義されています。

参照元 CBregexp::MakePattern().

この構造体の説明は次のファイルから生成されました:
  • bregexp.h
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CAutoMarkMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CAutoMarkMgr

移動履歴の管理クラス [詳細]

#include <CMarkMgr.h>

CAutoMarkMgrに対する継承グラフ

[凡例]
CAutoMarkMgrのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

virtual void | Add (const CMark &m)
要素の追加
virtual void | Expire (void)
要素数の調整

説明

移動履歴の管理クラス

CMarkMgr を継承し、動作が規定されていない部分を実装する。

CMarkMgr.h の 143 行で定義されています。

関数

void CAutoMarkMgr::Add ( const CMark & m ) [virtual]

要素の追加

現在位置に要素を追加する．現在位置より後ろは全て削除する。 要素番号が大きい方が新しいデータ。

引数:
m 追加する要素

CMarkMgrを実装しています。

CMarkMgr.cpp の 153 行で定義されています。

参照先 Expire(), 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.

参照元 Add().

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
  • CMarkMgr.cpp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CAutoMarkMgr メンバ一覧

これは全メンバの一覧です。CAutoMarkMgr継承メンバも含んでいます。

Add(const CMark &m) | CAutoMarkMgr | [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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CBinaryInputStream

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBinaryInputStream

#include <CBinaryStream.h>

CBinaryInputStreamに対する継承グラフ

[凡例]
CBinaryInputStreamのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CBinaryInputStream (LPCTSTR tszFilePath)
int | GetLength ()
ストリームの「残り」サイズを取得
int | Read (void *pBuffer, int nSizeInBytes)
データを無変換で読み込む。戻り値は読み込んだバイト数。

説明

CBinaryStream.h の 5 行で定義されています。

コンストラクタとデストラクタ

CBinaryInputStream::CBinaryInputStream ( LPCTSTR tszFilePath )

CBinaryStream.cpp の 5 行で定義されています。

関数

int CBinaryInputStream::GetLength ( )

ストリームの「残り」サイズを取得

CBinaryStream.cpp の 11 行で定義されています。

参照先 CStream::m_fp.

参照元 CCodeMediator::CheckKanjiCodeOfFile().

int CBinaryInputStream::Read | ( | void * | pBuffer,
 |  | int | nSizeInBytes
 | ) |  |

データを無変換で読み込む。戻り値は読み込んだバイト数。

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

参照先 CStream::m_fp.

参照元 CCodeMediator::CheckKanjiCodeOfFile().

このクラスの説明は次のファイルから生成されました:
  • CBinaryStream.h
  • CBinaryStream.cpp
Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBinaryInputStream メンバ一覧

これは全メンバの一覧です。CBinaryInputStream継承メンバも含んでいます。

CBinaryInputStream(LPCTSTR tszFilePath) | CBinaryInputStream |
Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
Eof() const | CStream | [inline]
GetLength() | CBinaryInputStream |
Good() const | CStream | [inline, virtual]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
Read(void *pBuffer, int nSizeInBytes) | CBinaryInputStream |
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
~CStream() | CStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CBinaryOutputStream

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBinaryOutputStream

#include <CBinaryStream.h>

CBinaryOutputStreamに対する継承グラフ

[凡例]
CBinaryOutputStreamのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CBinaryOutputStream (LPCTSTR tszFilePath)
int Write (const void *pBuffer, int nSizeInBytes)
データを無変換で書き込む。戻り値は書き込んだバイト数。

説明

CBinaryStream.h の 17 行で定義されています。

コンストラクタとデストラクタ

CBinaryOutputStream::CBinaryOutputStream ( LPCTSTR tszFilePath )

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

関数

int CBinaryOutputStream::Write | ( | const void * | pBuffer,
 |  | int | nSizeInBytes
 | ) |  |

データを無変換で書き込む。戻り値は書き込んだバイト数。

CBinaryStream.cpp の 34 行で定義されています。

参照先 CStream::m_fp.

参照元 CViewCommander::Command_BASE64DECODE(), と CViewCommander::Command_UUDECODE().

このクラスの説明は次のファイルから生成されました:
  • CBinaryStream.h
  • CBinaryStream.cpp
Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBinaryOutputStream メンバ一覧

これは全メンバの一覧です。CBinaryOutputStream継承メンバも含んでいます。

CBinaryOutputStream(LPCTSTR tszFilePath) | CBinaryOutputStream |
Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
Eof() const | CStream | [inline]
Good() const | CStream | [inline, virtual]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
Write(const void *pBuffer, int nSizeInBytes) | CBinaryOutputStream |
~CStream() | CStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CBlockComment

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBlockComment

#include <CBlockComment.h>

すべてのメンバ一覧

Public メソッド

CBlockComment ()
void | CopyTo (const int n, const wchar_t *pszFrom, const wchar_t *pszTo)
bool | Match_CommentFrom (int n, int nPos, int nLineLen, const wchar_t *pLine) const
int | Match_CommentTo (int n, int nPos, int nLineLen, const wchar_t *pLine) const
const wchar_t * | getBlockCommentFrom (const int n)
const wchar_t * | getBlockCommentTo (const int n)
int | getBlockFromLen (int n) const
int | getBlockToLen (int n) const

Private 変数

wchar_t | m_szBlockCommentFrom [BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE]
ブロックコメントデリミタ(From)
wchar_t | m_szBlockCommentTo [BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE]
ブロックコメントデリミタ(To)
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 wchar_t * | pszFrom,
 |  | const wchar_t * | pszTo
 | ) |  |

ブロックコメントデリミタをコピーする

引数:
n | [in] コピー対象のコメント番号
pszFrom | [in] コメント開始文字列
pszTo | [in] コメント終了文字列

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

参照先 BLOCKCOMMENT_BUFFERSIZE, m_nBlockFromLen, m_nBlockToLen, m_szBlockCommentFrom, と m_szBlockCommentTo.

参照元 CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), と CShareData::ShareData_IO_Types().

bool CBlockComment::Match_CommentFrom | ( | int | n,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const wchar_t * | pLine |
 | ) |  |  | const

n番目のブロックコメントの、nPosからの文字列が開始文字列(From)に当てはまるか確認する。

引数:
n | [in] 検査対象のコメント番号
nPos | [in] 探索開始位置
nLineLen | [in] pLineの長さ
pLine | [in] 探索行の先頭．探索開始位置のポインタではないことに注意
戻り値:
true | 一致した
false | 一致しなかった

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

参照先 auto_memicmp(), m_nBlockFromLen, m_szBlockCommentFrom, と m_szBlockCommentTo.

参照元 CLayoutMgr::CheckColorMODE(), と CEditView::DispLineNew().

int CBlockComment::Match_CommentTo | ( | int | n,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const wchar_t * | pLine |
 | ) |  |  | const

n番目のブロックコメントの、後者(To)に当てはまる文字列をnPos以降から探す

引数:
n | [in] 検査対象のコメント番号
nPos | [in] 探索開始位置
nLineLen | [in] pLineの長さ
pLine | [in] 探索行の先頭．探索開始位置のポインタではないことに注意
戻り値:
当てはまった位置を返すが、当てはまらなかったときは、nLineLenをそのまま返す。

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

参照先 auto_memicmp(), CNativeW::GetSizeOfChar(), m_nBlockToLen, と m_szBlockCommentTo.

参照元 CLayoutMgr::CheckColorMODE(), と CEditView::DispLineNew().

const wchar_t* CBlockComment::getBlockCommentFrom ( const int n ) [inline]

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

参照元 CEditView::DispLineNew(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

const wchar_t* CBlockComment::getBlockCommentTo ( const int n ) [inline]

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

参照元 CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

int CBlockComment::getBlockFromLen ( int n ) const [inline]

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

参照元 CLayoutMgr::CheckColorMODE().

int CBlockComment::getBlockToLen ( int n ) const [inline]

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

変数

wchar_t CBlockComment::m_szBlockCommentFrom[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE] [private]

ブロックコメントデリミタ(From)

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

参照元 CBlockComment(), CopyTo(), と Match_CommentFrom().

wchar_t CBlockComment::m_szBlockCommentTo[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE] [private]

ブロックコメントデリミタ(To)

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

参照元 CBlockComment(), CopyTo(), Match_CommentFrom(), と Match_CommentTo().

int CBlockComment::m_nBlockFromLen[BLOCKCOMMENT_NUM] [private]

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

参照元 CBlockComment(), CopyTo(), と Match_CommentFrom().

int CBlockComment::m_nBlockToLen[BLOCKCOMMENT_NUM] [private]

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

参照元 CBlockComment(), CopyTo(), と Match_CommentTo().

このクラスの説明は次のファイルから生成されました:
  • CBlockComment.h
  • CBlockComment.cpp
Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBlockComment メンバ一覧

これは全メンバの一覧です。CBlockComment継承メンバも含んでいます。

CBlockComment() | CBlockComment |
CopyTo(const int n, const wchar_t *pszFrom, const wchar_t *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 wchar_t *pLine) const | CBlockComment |
Match_CommentTo(int n, int nPos, int nLineLen, const wchar_t *pLine) const | CBlockComment |

Sakura-Editorに対してSat Nov 17 20:27:40 2007に生成されました。 doxygen 1.5.4


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 TCHAR * | GetVersionT ()
DLLのバージョン情報を取得
bool | Compile (const wchar_t *szPattern, int nOption=0)
検索パターンのコンパイル
bool | Compile (const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption=0)
Replace用
bool | Match (const wchar_t *szTarget, int nLen, int nStart=0)
検索を実行する
int | Replace (const wchar_t *szTarget, int nLen, int nStart=0)
置換を実行する // 2007.01.16 ryoji 戻り値を置換個数に変更
const TCHAR * | GetLastMessage () const
bool | IsLookAhead (void)
bool | IsLookAhead (const wchar_t *pattern)
結果を得るメソッドを追加し、BREGEXPを外部から隠す
CLogicInt | GetIndex (void)
CLogicInt | GetLastIndex (void)
CLogicInt | GetMatchLen (void)
CLogicInt | GetStringLen (void)
const wchar_t * | GetString (void)

Protected メソッド

void | ReleaseCompileBuffer (void)
コンパイルバッファを解放する

Private メソッド

int | CheckPattern (const wchar_t *szPattern)
検索パターン作成
wchar_t * | MakePatternSub (const wchar_t *szPattern, const wchar_t *szPattern2, const wchar_t *szAdd2, int nOption)
ライブラリに渡すための検索・置換パターンを作成する
wchar_t * | MakePattern (const wchar_t *szPattern, const wchar_t *szPattern2, int nOption)

Private 変数

BREGEXP_W * m_pRegExp
コンパイル構造体
int | m_ePatType
検索文字列パターン種別
const wchar_t * | m_szTarget
対象文字列へのポインタ
wchar_t | m_szMsg [80]
BREGEXP_Wからのメッセージを保持する

Static Private 変数

static const wchar_t | m_tmpBuf [2] = L"\0"
ダミー文字列

説明

Perl互換正規表現 BREGEXP.DLL をサポートするクラス

DLLの動的ロードを行うため、DllHandlerを継承している。

CJreに近い動作をさせるため、バッファをクラス内に1つ保持し、 データの設定と検索の２つのステップに分割するようにしている。 Jreエミュレーション関数を使うときは入れ子にならないように注意すること。

本来はこのような部分は別クラスとして分離すべきだが、その場合このクラスが 破棄される前に全てのクラスを破棄する必要がある。 その安全性を保証するのが難しいため、現時点では両者を１つのクラスに入れた。

覚え書き:
このクラスはThread Safeではない。
日付:
2005.03.19 かろと リファクタリング。クラス内部を隠蔽

2006.01.22 かろと オプション追加・名称変更(全て行置換用Globalオプション追加のため)

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

列挙型

enum CBregexp::Option

列挙型の値:
optNothing | オプションなし
optCaseSensitive | 大文字小文字区別オプション(/iをつけない)
optGlobal | 全域オプション(/g)

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

enum CBregexp::Pattern

検索パターン定義

列挙型の値:
PAT_UNKNOWN | 不明（初期値)
PAT_NORMAL | 通常
PAT_TOP | 行頭"^"
PAT_BOTTOM | 行末"$"
PAT_TAB | 行頭行末"^$"
PAT_LOOKAHEAD | 先読み"(?[=]"

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

コンストラクタとデストラクタ

CBregexp::CBregexp ( )

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

CBregexp::~CBregexp ( ) [virtual]

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

参照先 ReleaseCompileBuffer().

関数

const TCHAR* CBregexp::GetVersionT ( ) [inline]

DLLのバージョン情報を取得

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

参照先 CBregexpDll2::BRegexpVersion(), CDllHandler::IsAvailable(), と to_tchar.

参照元 CheckRegexpVersion(), CEditView::DoGrep(), と CPropCommon::SetRegexpVersion().

bool CBregexp::Compile | ( | const wchar_t * | szPattern,
 |  | int | nOption = 0 |
 | ) |  |  | [inline]

検索パターンのコンパイル

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

参照先 NULL.

参照元 CEditView::ChangeCurRegexp(), CheckRegexpSyntax(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CEditView::DoGrep(), と CEditView::ISearchWordMake().

bool CBregexp::Compile | ( | const wchar_t * | szPattern0,
 |  | const wchar_t * | szPattern1,
 |  | int | nOption = 0
 | ) |  |

Replace用

JRE32のエミュレーション関数．空の文字列に対して検索・置換を行うことにより BREGEXP_W構造体の生成のみを行う．

引数:
[in] | szPattern0 | 検索or置換パターン
[in] | szPattern1 | 置換後文字列パターン(検索時はNULL)
[in] | nOption | 検索・置換オプション
戻り値:
true | 成功
false | 失敗

< エラー解除

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

参照先 CBregexpDll2::BMatch(), CBregexpDll2::BSubst(), CDllHandler::IsAvailable(), m_pRegExp, m_szMsg, m_tmpBuf, MakePattern(), NULL, と ReleaseCompileBuffer().

bool CBregexp::Match | ( | const wchar_t * | 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 の 340 行で定義されています。

参照先 CBregexpDll2::BMatch(), CBregexpDll2::BMatchEx(), CBregexpDll2::ExistBMatchEx(), CDllHandler::IsAvailable(), m_ePatType, m_pRegExp, m_szMsg, m_szTarget, NULL, と PAT_TOP.

参照元 CEditView::IsSearchString(), CDocLineMgr::MarkSearchWord(), と CDocLineMgr::SearchWord().

int CBregexp::Replace | ( | const wchar_t * | 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 の 395 行で定義されています。

参照先 CBregexpDll2::BSubst(), CBregexpDll2::BSubstEx(), CBregexpDll2::ExistBSubstEx(), CDllHandler::IsAvailable(), m_pRegExp, m_szMsg, m_szTarget, と NULL.

参照元 CViewCommander::Command_REPLACE(), と CViewCommander::Command_REPLACE_ALL().

CLogicInt CBregexp::GetIndex ( void ) [inline]

検索に一致した文字列の先頭位置を返す(文字列先頭なら0)

戻り値:
検索に一致した文字列の先頭位置

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

参照元 CEditView::IsSearchString(), と CDocLineMgr::SearchWord().

CLogicInt CBregexp::GetLastIndex ( void ) [inline]

検索に一致した文字列の次の位置を返す

戻り値:
検索に一致した文字列の次の位置

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

参照元 CEditView::IsSearchString(), と CDocLineMgr::SearchWord().

CLogicInt CBregexp::GetMatchLen ( void ) [inline]

検索に一致した文字列の長さを返す

戻り値:
検索に一致した文字列の長さ

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

参照元 CViewCommander::Command_REPLACE(), と CViewCommander::Command_REPLACE_ALL().

CLogicInt CBregexp::GetStringLen ( void ) [inline]

置換された文字列の長さを返す

戻り値:
置換された文字列の長さ

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

参照先 NULL.

参照元 CViewCommander::Command_REPLACE(), と CViewCommander::Command_REPLACE_ALL().

const wchar_t* CBregexp::GetString ( void ) [inline]

置換された文字列を返す

戻り値:
置換された文字列へのポインタ

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

参照元 CViewCommander::Command_REPLACE(), と CViewCommander::Command_REPLACE_ALL().

const TCHAR * CBregexp::GetLastMessage ( ) const

BREGEXPメッセージを取得する

戻り値:
メッセージへのポインタ

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

参照先 m_szMsg, と to_tchar.

参照元 CheckRegexpSyntax().

bool CBregexp::IsLookAhead ( void ) [inline]

先読みパターンが存在するかを返す この関数は、コンパイル後であることが前提なので、コンパイル前はfalse

戻り値:
true | 先読みがある
false | 先読みがない 又は コンパイル前

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

bool CBregexp::IsLookAhead ( const wchar_t * pattern ) [inline]

検索パターンに先読みが含まれるか？（コンパイル前でも判別可能）

引数:
[in] pattern 検索パターン
戻り値:
true | 先読みがある
false | 先読みがない

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

void CBregexp::ReleaseCompileBuffer ( void ) [inline, protected]

コンパイルバッファを解放する

m_pcRegをBRegfree()に渡して解放する．解放後はNULLにセットする． 元々NULLなら何もしない

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

参照先 CBregexpDll2::BRegfree(), と NULL.

参照元 Compile(), と ~CBregexp().

int CBregexp::CheckPattern ( const wchar_t * szPattern ) [private]

検索パターン作成

検索パターンが特定の検索パターンかチェックする

引数:
[in] szPattern 検索パターン
戻り値:
検索パターン文字列長
日付:
2005.03.20 かろと 関数に切り出し

< 行頭パターンのチェック用パターン

< $(行末パターンでない)チェック用パターン

< 行末パターンのチェック用パターン

< "^$"パターンかをチェック用パターン

< "(?=" 先読み の存在チェックパターン

< コンパイル構造体

< エラーメッセージ

< 検索パターンの長さ

< 検索パターンの終端

<　ノーマルは確定

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

参照先 CBregexpDll2::BMatch(), CBregexpDll2::BRegfree(), m_ePatType, NULL, PAT_BOTTOM, PAT_LOOKAHEAD, PAT_NORMAL, PAT_TAB, と PAT_TOP.

参照元 MakePattern().

wchar_t * CBregexp::MakePatternSub | ( | const wchar_t * | szPattern,
 |  | const wchar_t * | szPattern2,
 |  | const wchar_t * | szAdd2,
 |  | int | nOption |
 | ) |  |  | [private]

ライブラリに渡すための検索・置換パターンを作成する

覚え書き:
szPattern2: == NULL:検索 != NULL:置換
戻り値:
ライブラリに渡す検索パターンへのポインタを返す
覚え書き:
返すポインタは、呼び出し側で delete すること
日付:
2003.05.03 かろと 関数に切り出し

< デリミタ

< szPatternの長さ

< szPattern2 + szAdd2 の長さ

< ライブラリ渡し用の検索パターン文字列

< パターン文字列操作用のポインタ

引数:
szPattern | 検索パターン
szPattern2 | 置換パターン(NULLなら検索)
szAdd2 | 置換パターンの後ろに付け加えるパターン($1など)
nOption | 検索オプション

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

参照先 WCODE::BREGEXP_DELIMITER, NULL, optCaseSensitive, と optGlobal.

参照元 MakePattern().

wchar_t * CBregexp::MakePattern | ( | const wchar_t * | szPattern,
 |  | const wchar_t * | szPattern2,
 |  | int | nOption |
 | ) |  |  | [private]

行末文字の意味がライブラリでは
固定なので、 これをごまかすために、ライブラリに渡すための検索・置換パターンを工夫する

行末文字($)が検索パターンの最後にあり、その直前が [
] でない場合に、 行末文字($)の手前に ([
]+)を補って、置換パターンに $(nParen+1)を補う というアルゴリズムを用いて、ごまかす。

覚え書き:
szPattern2: == NULL:検索 != NULL:置換
引数:
[in] | szPattern | 検索パターン
[in] | szPattern2 | 置換パターン(NULLなら検索)
[in] | nOption | 検索オプション
戻り値:
ライブラリに渡す検索パターンへのポインタを返す
覚え書き:
返すポインタは、呼び出し側で delete すること
日付:
2003.05.03 かろと 関数に切り出し

< 復帰・改行

< 復帰

< 改行

< 改行・復帰

< 行末パターンの置換用パターン

< szPatternの長さ

< コンパイル構造体

< エラーメッセージ

< 行末あり置換の $数字 格納用

< 検索パターン(szPattern)中の括弧の数(行末時に使用)

< 検索パターン

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

参照先 auto_sprintf(), CBregexpDll2::BMatch(), CBregexpDll2::BRegfree(), CBregexpDll2::BSubst(), CheckPattern(), WCODE::CR, WCODE::CRLF, bregexp::endp, WCODE::LF, WCODE::LFCR, m_ePatType, MakePatternSub(), bregexp::nparens, NULL, bregexp::outp, PAT_BOTTOM, PAT_TAB, と bregexp::startp.

参照元 Compile().

変数

BREGEXP_W* CBregexp::m_pRegExp [private]

コンパイル構造体

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

参照元 Compile(), Match(), と Replace().

int CBregexp::m_ePatType [private]

検索文字列パターン種別

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

参照元 CheckPattern(), MakePattern(), と Match().

const wchar_t* CBregexp::m_szTarget [private]

対象文字列へのポインタ

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

参照元 Match(), と Replace().

wchar_t CBregexp::m_szMsg[80] [private]

BREGEXP_Wからのメッセージを保持する

CRegexKeywordで再定義されています。

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

参照元 Compile(), GetLastMessage(), Match(), と Replace().

const wchar_t CBregexp::m_tmpBuf = L"\0" [static, private]

ダミー文字列

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

参照元 Compile().

このクラスの説明は次のファイルから生成されました:
  • CBregexp.h
  • CBregexp.cpp
Sakura-Editorに対してSat Nov 17 20:27:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBregexp メンバ一覧

これは全メンバの一覧です。CBregexp継承メンバも含んでいます。

BMatch(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BMatchEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BREGEXP_BRegexpVersionW2 typedef | CBregexpDll2 | [protected]
BRegexpVersion(void) | CBregexpDll2 | [inline]
BRegfree(BREGEXP_W *rx) | CBregexpDll2 | [inline]
BSplit(const wchar_t *str, wchar_t *target, wchar_t *targetendp, int limit, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubst(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubstEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BTrans(const wchar_t *str, wchar_t *target, wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
CBregexp() | CBregexp |
CBregexpDll2() | CBregexpDll2 |
CDllHandler() | CDllHandler |
CheckPattern(const wchar_t *szPattern) | CBregexp | [private]
Compile(const wchar_t *szPattern, int nOption=0) | CBregexp | [inline]
Compile(const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption=0) | CBregexp |
DeinitDll(void) | CBregexpDll2 | [protected, virtual]
ExistBMatchEx() const | CBregexpDll2 | [inline]
ExistBSubstEx() const | CBregexpDll2 | [inline]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR str) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR, int) | CBregexpDll2 | [protected, virtual]
GetIndex(void) | CBregexp | [inline]
GetInstance() const | CDllHandler | [inline]
GetLastIndex(void) | CBregexp | [inline]
GetLastMessage() const | CBregexp |
GetMatchLen(void) | CBregexp | [inline]
GetString(void) | CBregexp | [inline]
GetStringLen(void) | CBregexp | [inline]
GetVersionT() | CBregexp | [inline]
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CBregexpDll2 | [protected, virtual]
int(__cdecl *BREGEXP_BMatchW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BTransW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSplitW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BMatchExW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstExW2)(const wchar_t *str | CBregexpDll2 | [protected]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsLookAhead(void) | CBregexp | [inline]
IsLookAhead(const wchar_t *pattern) | CBregexp | [inline]
limit typedef | CBregexpDll2 | [protected]
LoadLibrary(LPCTSTR 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 wchar_t *szPattern, const wchar_t *szPattern2, int nOption) | CBregexp | [private]
MakePatternSub(const wchar_t *szPattern, const wchar_t *szPattern2, const wchar_t *szAdd2, int nOption) | CBregexp | [private]
Match(const wchar_t *szTarget, int nLen, int nStart=0) | CBregexp |
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
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 wchar_t *szTarget, int nLen, int nStart=0) | CBregexp |
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
void(__cdecl *BREGEXP_BRegfreeW2)(BREGEXP_W *rx) | CBregexpDll2 | [protected]
~CBregexp() | CBregexp | [virtual]
~CBregexpDll2() | CBregexpDll2 | [virtual]
~CDllHandler() | CDllHandler | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CBregexpDll2

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBregexpDll2

BREGONIG.DLLをラップしたもの。 [詳細]

#include <CBregexpDll2.h>

CBregexpDll2に対する継承グラフ

[凡例]
CBregexpDll2のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CBregexpDll2 ()
virtual | ~CBregexpDll2 ()
int | BMatch (const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg)
int | BSubst (const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg)
int | BTrans (const wchar_t *str, wchar_t *target, wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg)
int | BSplit (const wchar_t *str, wchar_t *target, wchar_t *targetendp, int limit, BREGEXP_W **rxp, wchar_t *msg)
void | BRegfree (BREGEXP_W *rx)
const wchar_t * | BRegexpVersion (void)
int | BMatchEx (const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg)
int | BSubstEx (const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg)
bool | ExistBMatchEx () const
bool | ExistBSubstEx () const

Protected 型

typedef const wchar_t * | target
typedef const wchar_t const
wchar_t * 		targetendp
typedef const wchar_t const
wchar_t BREGEXP_W ** 		rxp
typedef const wchar_t const
wchar_t BREGEXP_W wchar_t * 		msg
typedef const wchar_t * | target
typedef const wchar_t const
wchar_t * 		targetendp
typedef const wchar_t const
wchar_t BREGEXP_W ** 		rxp
typedef const wchar_t const
wchar_t BREGEXP_W wchar_t * 		msg
typedef wchar_t * | target
typedef wchar_t wchar_t * | targetendp
typedef wchar_t wchar_t
BREGEXP_W ** 		rxp
typedef wchar_t wchar_t
BREGEXP_W wchar_t * 		msg
typedef wchar_t * | target
typedef wchar_t wchar_t * | targetendp
typedef wchar_t wchar_t int | limit
typedef wchar_t wchar_t int
BREGEXP_W ** 		rxp
typedef wchar_t wchar_t int
BREGEXP_W wchar_t * 		msg
typedef const wchar_t *(__cdecl * | BREGEXP_BRegexpVersionW2 )(void)
typedef const wchar_t * | targetbeg
typedef const wchar_t const
wchar_t * 		target
typedef const wchar_t const
wchar_t const wchar_t * 		targetendp
typedef const wchar_t const
wchar_t const wchar_t
BREGEXP_W ** 		rxp
typedef const wchar_t const
wchar_t const wchar_t
BREGEXP_W wchar_t * 		msg
typedef const wchar_t * | targetbeg
typedef const wchar_t const
wchar_t * 		target
typedef const wchar_t const
wchar_t const wchar_t * 		targetendp
typedef const wchar_t const
wchar_t const wchar_t
BREGEXP_W ** 		rxp
typedef const wchar_t const
wchar_t const wchar_t
BREGEXP_W wchar_t * 		msg

Protected メソッド

virtual LPCTSTR | GetDllNameInOrder (LPCTSTR, int)
virtual int | InitDll (void)
virtual int | DeinitDll (void)
typedef | int (__cdecl *BREGEXP_BMatchW2)(const wchar_t *str
typedef | int (__cdecl *BREGEXP_BSubstW2)(const wchar_t *str
typedef | int (__cdecl *BREGEXP_BTransW2)(const wchar_t *str
typedef | int (__cdecl *BREGEXP_BSplitW2)(const wchar_t *str
typedef | void (__cdecl *BREGEXP_BRegfreeW2)(BREGEXP_W *rx)
typedef | int (__cdecl *BREGEXP_BMatchExW2)(const wchar_t *str
typedef | int (__cdecl *BREGEXP_BSubstExW2)(const wchar_t *str

Private 変数

BREGEXP_BMatchW2 | m_BMatch
BREGEXP_BSubstW2 | m_BSubst
BREGEXP_BTransW2 | m_BTrans
BREGEXP_BSplitW2 | m_BSplit
BREGEXP_BRegfreeW2 | m_BRegfree
BREGEXP_BRegexpVersionW2 m_BRegexpVersion
BREGEXP_BMatchExW2 | m_BMatchEx
BREGEXP_BSubstExW2 | m_BSubstEx

説明

BREGONIG.DLLをラップしたもの。

CBregexpDll2.h の 8 行で定義されています。

型定義

typedef const wchar_t* CBregexpDll2::target [protected]

CBregexpDll2.h の 21 行で定義されています。

typedef const wchar_t const wchar_t* CBregexpDll2::targetendp [protected]

CBregexpDll2.h の 21 行で定義されています。

typedef const wchar_t const wchar_t BREGEXP_W** CBregexpDll2::rxp [protected]

CBregexpDll2.h の 21 行で定義されています。

typedef const wchar_t const wchar_t BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

CBregexpDll2.h の 21 行で定義されています。

typedef const wchar_t* CBregexpDll2::target [protected]

CBregexpDll2.h の 22 行で定義されています。

typedef const wchar_t const wchar_t* CBregexpDll2::targetendp [protected]

CBregexpDll2.h の 22 行で定義されています。

typedef const wchar_t const wchar_t BREGEXP_W** CBregexpDll2::rxp [protected]

CBregexpDll2.h の 22 行で定義されています。

typedef const wchar_t const wchar_t BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

CBregexpDll2.h の 22 行で定義されています。

typedef wchar_t* CBregexpDll2::target [protected]

CBregexpDll2.h の 23 行で定義されています。

typedef wchar_t wchar_t* CBregexpDll2::targetendp [protected]

CBregexpDll2.h の 23 行で定義されています。

typedef wchar_t wchar_t BREGEXP_W** CBregexpDll2::rxp [protected]

CBregexpDll2.h の 23 行で定義されています。

typedef wchar_t wchar_t BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

CBregexpDll2.h の 23 行で定義されています。

typedef wchar_t* CBregexpDll2::target [protected]

CBregexpDll2.h の 24 行で定義されています。

typedef wchar_t wchar_t* CBregexpDll2::targetendp [protected]

CBregexpDll2.h の 24 行で定義されています。

typedef wchar_t wchar_t int CBregexpDll2::limit [protected]

CBregexpDll2.h の 24 行で定義されています。

typedef wchar_t wchar_t int BREGEXP_W** CBregexpDll2::rxp [protected]

CBregexpDll2.h の 24 行で定義されています。

typedef wchar_t wchar_t int BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

CBregexpDll2.h の 24 行で定義されています。

typedef const wchar_t*(__cdecl * CBregexpDll2::BREGEXP_BRegexpVersionW2)(void) [protected]

typedef const wchar_t* CBregexpDll2::targetbeg [protected]

CBregexpDll2.h の 27 行で定義されています。

typedef const wchar_t const wchar_t* CBregexpDll2::target [protected]

CBregexpDll2.h の 27 行で定義されています。

typedef const wchar_t const wchar_t const wchar_t* CBregexpDll2::targetendp [protected]

CBregexpDll2.h の 27 行で定義されています。

typedef const wchar_t const wchar_t const wchar_t BREGEXP_W** CBregexpDll2::rxp [protected]

CBregexpDll2.h の 27 行で定義されています。

typedef const wchar_t const wchar_t const wchar_t BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

CBregexpDll2.h の 27 行で定義されています。

typedef const wchar_t* CBregexpDll2::targetbeg [protected]

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

typedef const wchar_t const wchar_t* CBregexpDll2::target [protected]

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

typedef const wchar_t const wchar_t const wchar_t* CBregexpDll2::targetendp [protected]

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

typedef const wchar_t const wchar_t const wchar_t BREGEXP_W** CBregexpDll2::rxp [protected]

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

typedef const wchar_t const wchar_t const wchar_t BREGEXP_W wchar_t* CBregexpDll2::msg [protected]

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

コンストラクタとデストラクタ

CBregexpDll2::CBregexpDll2 ( )

CBregexpDll2.cpp の 9 行で定義されています。

CBregexpDll2::~CBregexpDll2 ( ) [virtual]

CBregexpDll2.cpp の 13 行で定義されています。

関数

LPCTSTR CBregexpDll2::GetDllNameInOrder | ( | LPCTSTR | str,
 |  | int | index |
 | ) |  |  | [protected, virtual]

日付:
2001.07.05 genta 引数追加。ただし、ここでは使わない。

2007.06.25 genta 複数のDLL名に対応

2007.09.13 genta サーチルールを変更

  • 指定有りの場合はそれのみを返す
  • 指定無し(NULLまたは空文字列)の場合はBREGONIG, BREGEXPの順で試みる

CDllHandlerを再定義しています。

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

参照先 NULL, と P_ONIG.

int CBregexpDll2::InitDll ( void ) [protected, virtual]

DLLの初期化

関数のアドレスを取得してメンバに保管する．

戻り値:
0 | 成功
1 | アドレス取得に失敗

CDllHandlerを実装しています。

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

参照先 m_BMatch, m_BMatchEx, m_BRegexpVersion, m_BRegfree, m_BSplit, m_BSubst, m_BSubstEx, m_BTrans, NULL, と CDllHandler::RegisterEntries().

int CBregexpDll2::DeinitDll ( void ) [protected, virtual]

BREGEXP_W構造体の解放

CDllHandlerを再定義しています。

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

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BMatchW2 ) const [protected]

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BSubstW2 ) const [protected]

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BTransW2 ) const [protected]

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BSplitW2 ) const [protected]

typedef CBregexpDll2::void ( __cdecl * BREGEXP_BRegfreeW2 ) [protected]

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BMatchExW2 ) const [protected]

typedef CBregexpDll2::int ( __cdecl * BREGEXP_BSubstExW2 ) const [protected]

int CBregexpDll2::BMatch | ( | const wchar_t * | str,
 |  | const wchar_t * | target,
 |  | const wchar_t * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

CBregexpDll2.h の 32 行で定義されています。

参照先 m_BMatch.

参照元 CBregexp::CheckPattern(), CBregexp::Compile(), CBregexp::MakePattern(), と CBregexp::Match().

int CBregexpDll2::BSubst | ( | const wchar_t * | str,
 |  | const wchar_t * | target,
 |  | const wchar_t * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

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

参照先 m_BSubst.

参照元 CBregexp::Compile(), CBregexp::MakePattern(), と CBregexp::Replace().

int CBregexpDll2::BTrans | ( | const wchar_t * | str,
 |  | wchar_t * | target,
 |  | wchar_t * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

CBregexpDll2.h の 40 行で定義されています。

参照先 m_BTrans.

int CBregexpDll2::BSplit | ( | const wchar_t * | str,
 |  | wchar_t * | target,
 |  | wchar_t * | targetendp,
 |  | int | limit,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

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

参照先 m_BSplit.

void CBregexpDll2::BRegfree ( BREGEXP_W * rx ) [inline]

CBregexpDll2.h の 48 行で定義されています。

参照先 m_BRegfree.

参照元 CBregexp::CheckPattern(), CBregexp::MakePattern(), CBregexp::ReleaseCompileBuffer(), と CRegexKeyword::~CRegexKeyword().

const wchar_t* CBregexpDll2::BRegexpVersion ( void ) [inline]

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

参照先 m_BRegexpVersion.

参照元 CBregexp::GetVersionT().

int CBregexpDll2::BMatchEx | ( | const wchar_t * | str,
 |  | const wchar_t * | targetbeg,
 |  | const wchar_t * | target,
 |  | const wchar_t * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

CBregexpDll2.h の 56 行で定義されています。

参照先 m_BMatchEx.

参照元 CBregexp::Match().

int CBregexpDll2::BSubstEx | ( | const wchar_t * | str,
 |  | const wchar_t * | targetbeg,
 |  | const wchar_t * | target,
 |  | const wchar_t * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | wchar_t * | msg |
 | ) |  |  | [inline]

CBregexpDll2.h の 60 行で定義されています。

参照先 m_BSubstEx.

参照元 CBregexp::Replace().

bool CBregexpDll2::ExistBMatchEx ( ) const [inline]

CBregexpDll2.h の 66 行で定義されています。

参照先 m_BMatchEx, と NULL.

参照元 CBregexp::Match().

bool CBregexpDll2::ExistBSubstEx ( ) const [inline]

CBregexpDll2.h の 67 行で定義されています。

参照先 m_BSubstEx, と NULL.

参照元 CBregexp::Replace().

変数

BREGEXP_BMatchW2 CBregexpDll2::m_BMatch [private]

CBregexpDll2.h の 71 行で定義されています。

参照元 BMatch(), と InitDll().

BREGEXP_BSubstW2 CBregexpDll2::m_BSubst [private]

CBregexpDll2.h の 72 行で定義されています。

参照元 BSubst(), と InitDll().

BREGEXP_BTransW2 CBregexpDll2::m_BTrans [private]

CBregexpDll2.h の 73 行で定義されています。

参照元 BTrans(), と InitDll().

BREGEXP_BSplitW2 CBregexpDll2::m_BSplit [private]

CBregexpDll2.h の 74 行で定義されています。

参照元 BSplit(), と InitDll().

BREGEXP_BRegfreeW2 CBregexpDll2::m_BRegfree [private]

CBregexpDll2.h の 75 行で定義されています。

参照元 BRegfree(), と InitDll().

BREGEXP_BRegexpVersionW2 CBregexpDll2::m_BRegexpVersion [private]

CBregexpDll2.h の 76 行で定義されています。

参照元 BRegexpVersion(), と InitDll().

BREGEXP_BMatchExW2 CBregexpDll2::m_BMatchEx [private]

CBregexpDll2.h の 77 行で定義されています。

参照元 BMatchEx(), ExistBMatchEx(), と InitDll().

BREGEXP_BSubstExW2 CBregexpDll2::m_BSubstEx [private]

CBregexpDll2.h の 78 行で定義されています。

参照元 BSubstEx(), ExistBSubstEx(), と InitDll().

このクラスの説明は次のファイルから生成されました:
  • CBregexpDll2.h
  • CBregexpDll2.cpp
Sakura-Editorに対してSat Nov 17 20:27:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBregexpDll2 メンバ一覧

これは全メンバの一覧です。CBregexpDll2継承メンバも含んでいます。

BMatch(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BMatchEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BREGEXP_BRegexpVersionW2 typedef | CBregexpDll2 | [protected]
BRegexpVersion(void) | CBregexpDll2 | [inline]
BRegfree(BREGEXP_W *rx) | CBregexpDll2 | [inline]
BSplit(const wchar_t *str, wchar_t *target, wchar_t *targetendp, int limit, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubst(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubstEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BTrans(const wchar_t *str, wchar_t *target, wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
CBregexpDll2() | CBregexpDll2 |
CDllHandler() | CDllHandler |
DeinitDll(void) | CBregexpDll2 | [protected, virtual]
ExistBMatchEx() const | CBregexpDll2 | [inline]
ExistBSubstEx() const | CBregexpDll2 | [inline]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR str) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR, int) | CBregexpDll2 | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CBregexpDll2 | [protected, virtual]
int(__cdecl *BREGEXP_BMatchW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BTransW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSplitW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BMatchExW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstExW2)(const wchar_t *str | CBregexpDll2 | [protected]
IsAvailable(void) const | CDllHandler | [inline, virtual]
limit typedef | CBregexpDll2 | [protected]
LoadLibrary(LPCTSTR str=NULL) | CDllHandler |
m_BMatch | CBregexpDll2 | [private]
m_BMatchEx | CBregexpDll2 | [private]
m_BRegexpVersion | CBregexpDll2 | [private]
m_BRegfree | CBregexpDll2 | [private]
m_BSplit | CBregexpDll2 | [private]
m_BSubst | CBregexpDll2 | [private]
m_BSubstEx | CBregexpDll2 | [private]
m_BTrans | CBregexpDll2 | [private]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
operator!(void) const | CDllHandler | [inline]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
void(__cdecl *BREGEXP_BRegfreeW2)(BREGEXP_W *rx) | CBregexpDll2 | [protected]
~CBregexpDll2() | CBregexpDll2 | [virtual]
~CDllHandler() | CDllHandler | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCaret

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCaret

#include <CCaret.h>

CCaretのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CCaret (CEditView *pEditView, const CEditDoc *pEditDoc)
virtual | ~CCaret ()
int | GetHankakuDx () const
int | GetHankakuDy () const
int | GetHankakuHeight () const
const CEditDoc * | GetDocument () const
POINT | CalcCaretDrawPos (const CLayoutPoint &ptCaretPos) const
void | CreateEditCaret (COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight)
キャレットの作成。2006.12.07 ryoji
void | DestroyCaret ()
キャレットを破棄する（内部的にも破棄）
void | CopyCaretStatus (CCaret *pDestCaret) const
コピー
CLayoutInt | MoveCursorToClientPoint (const POINT &ptClientPos)
マウス等による座標指定によるカーソル移動
CLayoutInt | Cursor_UPDOWN (CLayoutInt nMoveLines, bool bSelect)
カーソル上下移動処理
CLayoutInt | MoveCursor (CLayoutPoint ptWk_CaretPos, bool bScroll, int nCaretMarginRate=_CARETMARGINRATE)
行桁指定によるカーソル移動
CLayoutInt | MoveCursorProperly (CLayoutPoint ptNewXY, bool, int=_CARETMARGINRATE, int=0)
void | SetCaretLayoutPos (const CLayoutPoint &pt)
キャレット位置(レイアウト)を設定
void | SetCaretLogicPos (const CLogicPoint pt)
キャレット位置(ロジック)を設定
void | SetCaretSize (int nW, int nH)
キャレットサイズを設定
BOOL | GetAdjustCursorPos (CLayoutPoint *pptPosXY)
正しいカーソル位置を算出する
void | ShowEditCaret ()
キャレットの表示・更新
void | DrawCaretPosInfo ()
キャレットの行桁位置を表示する
void | ShowCaret_ (HWND hwnd)
void | HideCaret_ (HWND hwnd)
CLayoutPoint | GetCaretLayoutPos () const
キャレット位置(レイアウト)を取得
CMySize | GetCaretSize () const
キャレットサイズを取得。※正確には高さは違うらしい (この半分のこともある？)
bool | ExistCaretFocus () const
キャレットのフォーカスがあるか。※横幅値で判定してるらしい。
CLogicPoint | GetCaretLogicPos () const
キャレット位置(ロジック)を取得
bool | GetCaretShowFlag () const

Public 変数

CLayoutInt m_nCaretPosX_Prev
CCaretUnderLine m_cUnderLine

Private 変数

CEditView * m_pEditView
const CEditDoc * | m_pEditDoc
CLayoutPoint m_ptCaretPos_Layout
CLogicPoint m_ptCaretPos_Logic
CMySize m_sizeCaret
COLORREF | m_crCaret
HBITMAP | m_hbmpCaret
bool | m_bCaretShowFlag

説明

CCaret.h の 42 行で定義されています。

コンストラクタとデストラクタ

CCaret::CCaret | ( | CEditView * | pEditView,
 |  | const CEditDoc * | pEditDoc
 | ) |  |

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

参照先 m_crCaret, m_hbmpCaret, m_nCaretPosX_Prev, と NULL.

CCaret::~CCaret ( ) [virtual]

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

参照先 m_hbmpCaret, と NULL.

関数

int CCaret::GetHankakuDx ( ) const

CCaret.cpp の 19 行で定義されています。

参照先 CTextMetrics::GetHankakuDx(), CEditView::GetTextMetrics(), と m_pEditView.

参照元 CalcCaretDrawPos(), MoveCursor(), と ShowEditCaret().

int CCaret::GetHankakuDy ( ) const

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

参照先 CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), と m_pEditView.

int CCaret::GetHankakuHeight ( ) const

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

参照先 CTextMetrics::GetHankakuHeight(), CEditView::GetTextMetrics(), と m_pEditView.

参照元 ShowEditCaret().

const CEditDoc* CCaret::GetDocument ( ) const [inline]

CCaret.h の 56 行で定義されています。

参照先 m_pEditDoc.

POINT CCaret::CalcCaretDrawPos ( const CLayoutPoint & ptCaretPos ) const

CCaret.cpp の 903 行で定義されています。

参照先 CTextArea::GetAreaLeft(), CTextArea::GetAreaTop(), GetCaretSize(), GetHankakuDx(), CTextMetrics::GetHankakuDy(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), と m_pEditView.

参照元 CRuler::DispRuler(), CRuler::DrawRulerCaret(), と ShowEditCaret().

void CCaret::CreateEditCaret | ( | COLORREF | crCaret,
 |  | COLORREF | crBack,
 |  | int | nWidth,
 |  | int | nHeight
 | ) |  |

キャレットの作成。2006.12.07 ryoji

キャレットの作成

引数:
nCaretColor | [in] キャレットの色種別 (0:通常, 1:IME ON)
nWidth | [in] キャレット幅
nHeight | [in] キャレット高
日付:
2006.12.07 ryoji 新規作成

CCaret.cpp の 824 行で定義されています。

参照先 m_hbmpCaret, CEditView::m_hWnd, m_pEditView, と NULL.

参照元 ShowEditCaret().

void CCaret::DestroyCaret ( ) [inline]

キャレットを破棄する（内部的にも破棄）

CCaret.h の 77 行で定義されています。

参照先 m_sizeCaret.

参照元 CEditView::OnKillFocus(), と ShowEditCaret().

void CCaret::CopyCaretStatus ( CCaret * pDestCaret ) const

コピー

自分の状態を他のCCaretにコピー

CCaret.cpp の 894 行で定義されています。

参照先 GetCaretLayoutPos(), m_nCaretPosX_Prev, と SetCaretLayoutPos().

参照元 CEditView::CopyViewStatus().

CLayoutInt CCaret::MoveCursorToClientPoint ( const POINT & ptClientPos )

マウス等による座標指定によるカーソル移動

CCaret.cpp の 342 行で定義されています。

参照先 CTextArea::ClientToLayout(), CTextArea::GetAreaLeft(), GetCaretLayoutPos(), CTextMetrics::GetHankakuDx(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), m_nCaretPosX_Prev, m_pEditView, MoveCursorProperly(), と TRUE.

参照元 CEditView::OnLBUTTONDOWN(), と CEditView::OnMOUSEMOVE().

CLayoutInt CCaret::Cursor_UPDOWN | ( | CLayoutInt | nMoveLines,
 |  | bool | bSelect
 | ) |  |

カーソル上下移動処理

CCaret.cpp の 690 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::ChangeSelectAreaByCurrentCursor(), WCODE::CR, CViewSelect::DisableSelectArea(), EOL_NONE, GetCaretLayoutPos(), CEditView::GetDrawSwitch(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CLayoutMgr::GetMaxLineKetas(), CEditView::GetSelectionInfo(), CLayoutMgr::GetTabSpace(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), WCODE::LF, CViewCalc::LineIndexToColmn(), CommonSetting_General::m_bIsFreeCursorMode, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, m_nCaretPosX_Prev, m_pEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sGeneral, MoveCursor(), NULL, CEditView::SyncScrollV(), と TRUE.

参照元 CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_DOWN(), CViewCommander::Command_DOWN2(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_HalfPageDown(), CViewCommander::Command_HalfPageUp(), CViewCommander::Command_UP(), CViewCommander::Command_UP2(), CViewCommander::Command_WndScrollDown(), と CViewCommander::Command_WndScrollUp().

CLayoutInt CCaret::MoveCursor | ( | CLayoutPoint | ptWk_CaretPos,
 |  | 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スイッチは動作と名称が一致していないので 再描画スイッチ→画面位置調整スイッチと名称変更

引数:
ptWk_CaretPos 行桁指定によるカーソル移動

CCaret.cpp の 109 行で定義されています。

参照先 CEditView::AdjustScrollBars(), CCaretUnderLine::CaretUnderLineOFF(), CCaretUnderLine::CaretUnderLineON(), CRuler::DispRuler(), CEditView::DrawBracketPair(), DrawCaretPosInfo(), CTextArea::GenerateBottomRect(), CTextArea::GenerateLeftRect(), CTextArea::GenerateLineNumberRect(), CTextArea::GenerateRightRect(), CTextArea::GenerateTextAreaRect(), CTextArea::GenerateTopRect(), GetAdjustCursorPos(), CTextArea::GetAreaBottom(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CEditDoc::GetDocumentAttribute(), CEditView::GetDrawSwitch(), GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetMaxLineKetas(), CEditView::GetRuler(), CEditView::GetSelectionInfo(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsMouseSelecting(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cLayoutMgr, m_cUnderLine, CEditView::m_hWnd, CTextArea::m_nViewColNum, CTextArea::m_nViewRowNum, m_pEditDoc, m_pEditView, m_ptCaretPos_Layout, m_ptCaretPos_Logic, NULL, CTextArea::OffsetViewTopLine(), CEditView::SetBracketPairPos(), SetCaretLayoutPos(), CRuler::SetRedrawFlag(), CTextArea::SetViewLeftCol(), ShowEditCaret(), CEditView::SyncScrollH(), CEditView::SyncScrollV(), t_abs(), と TRUE.

参照元 CViewCommander::Command_ADDTAIL(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CEditView::DoGrep(), CEditDoc::FileRead(), CEditDoc::InitAllView(), CNormalProcess::Initialize(), CEditView::ISearchBack(), CEditView::ISearchExec(), MoveCursorProperly(), CEditView::MoveCursorSelecting(), CEditView::OnChangeSetting(), CEditView::OnSetFocus(), CEditView::ReplaceData_CEditView(), CEditWnd::RestorePhysPosOfAllView(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

CLayoutInt CCaret::MoveCursorProperly | ( | CLayoutPoint | ptNewXY,
 |  | bool | bScroll,
 |  | int | nCaretMarginRate = _CARETMARGINRATE,
 |  | int | dx = 0
 | ) |  |

行桁指定によるカーソル移動（座標調整付き）

戻り値:
縦スクロール行数(負:上スクロール/正:下スクロール)
覚え書き:
マウス等による移動で不適切な位置に行かないよう座標調整してカーソル移動する
日付:
2007.08.23 ryoji 関数化（MoveCursorToPoint()から処理を抜き出し）

2007.09.26 ryoji 半角文字でも中央で左右にカーソルを振り分ける

2007.10.23 kobake 引数説明の誤りを修正 ([in/out]→[in])

引数:
ptNewXY | [in] カーソルのレイアウト座標X
bScroll | [in] TRUE: 画面位置調整有り/ FALSE: 画面位置調整有り無し
nCaretMarginRate | [in] 縦スクロール開始位置を決める値
dx | [in] nNewXとマウスカーソル位置との誤差(カラム幅未満のドット数)

CCaret.cpp の 926 行で定義されています。

参照先 EOL_NONE, CTextMetrics::GetHankakuDx(), CLayout::GetIndent(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CLayoutMgr::GetMaxLineKetas(), CEditView::GetSelectionInfo(), CLayoutMgr::GetTabSpace(), CEditView::GetTextMetrics(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsBoxSelecting(), CViewSelect::IsMouseSelecting(), CViewCalc::LineIndexToColmn(), CEditView::m_bDragMode, CommonSetting_General::m_bIsFreeCursorMode, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, m_pEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sGeneral, MoveCursor(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SetX().

参照元 MoveCursorToClientPoint().

void CCaret::SetCaretLayoutPos ( const CLayoutPoint & pt ) [inline]

キャレット位置(レイアウト)を設定

CCaret.h の 101 行で定義されています。

参照先 m_ptCaretPos_Layout.

参照元 CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_NEXT(), CopyCaretStatus(), と MoveCursor().

void CCaret::SetCaretLogicPos ( const CLogicPoint pt ) [inline]

キャレット位置(ロジック)を設定

CCaret.h の 102 行で定義されています。

参照先 m_ptCaretPos_Logic.

参照元 CViewCommander::Command_REPLACE_ALL().

void CCaret::SetCaretSize | ( | int | nW,
 |  | int | nH |
 | ) |  |  | [inline]

キャレットサイズを設定

CCaret.h の 108 行で定義されています。

参照先 m_sizeCaret, と CMySize::Set().

参照元 ShowEditCaret().

BOOL CCaret::GetAdjustCursorPos ( CLayoutPoint * pptPosXY )

正しいカーソル位置を算出する

正しいカーソル位置を算出する(EOF以降のみ)

引数:
pnPosX | [in/out] カーソルのレイアウト座標X
pnPosY | [in/out] カーソルのレイアウト座標Y
戻り値:
TRUE | 座標を修正した
FALSE | 座標は修正されなかった
覚え書き:
EOFの直前が改行でない場合は、その行に限りEOF以降にも移動可能 EOFだけの行は、先頭位置のみ正しい。
日付:
2004.04.02 Moca 関数化

CCaret.cpp の 367 行で定義されています。

参照先 BOOL, EOL_NONE, FALSE, CLayout::GetLength(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetMaxLineKetas(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewCalc::LineIndexToColmn(), CLayout::m_cEol, CEditDoc::m_cLayoutMgr, m_pEditDoc, m_pEditView, CLayoutMgr::SearchLineByLayoutY(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), と TRUE.

参照元 MoveCursor().

void CCaret::ShowEditCaret ( )

キャレットの表示・更新

CCaret.cpp の 416 行で定義されています。

参照先 CalcCaretDrawPos(), COLORIDX_CARET, COLORIDX_CARET_IME, COLORIDX_TEXT, WCODE::CR, CreateEditCaret(), DestroyCaret(), ExistCaretFocus(), GA_ROOT, CEditWnd::GetActivePane(), CTextArea::GetAreaLeft(), CTextArea::GetAreaTop(), GetCaretLayoutPos(), GetCaretSize(), CommonSetting_General::GetCaretType(), CEditDoc::GetDocumentAttribute(), GetHankakuDx(), GetHankakuHeight(), CNativeW::GetKetaOfChar(), CLayoutMgr::GetLineStr(), CEditView::GetTextArea(), HideCaret_(), CEditView::IsImeON(), CEditView::IsInsMode(), WCODE::LF, CViewCalc::LineColmnToIndex(), m_bCaretShowFlag, ColorInfo::m_bDisp, CEditDoc::m_cLayoutMgr, ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, DLLSHAREDATA::m_Common, CEditView::m_crBack, m_crCaret, CEditView::m_hWnd, CEditView::m_nMyIndex, CEditDoc::m_pcEditWnd, m_pEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sGeneral, m_sizeCaret, NULL, SetCaretSize(), CEditView::SetIMECompFormPos(), ShowCaret_(), と WCODE::TAB.

参照元 CViewCommander::Command_CHGMOD_INS(), CViewCommander::Command_REDO(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_UNDO(), CEditView::DeleteData(), CTextArea::DetectWidthOfLineNumberArea(), CEditWnd::DispatchEvent(), CWSHMacroManager::ExecKeyMacro(), CEditView::InsertData_CEditView(), MoveCursor(), CEditView::OnSetFocus(), CEditView::RedrawAll(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtH(), と CEditView::ScrollAtV().

void CCaret::DrawCaretPosInfo ( )

キャレットの行桁位置を表示する

キャレットの行桁位置およびステータスバーの状態表示の更新

覚え書き:
ステータスバーの状態の並び方の変更はメッセージを受信する CEditWnd::DispatchEvent()のWM_NOTIFYにも影響があることに注意

ステータスバーの出力内容の変更はCEditWndOnSize()の カラム幅計算に影響があることに注意

CCaret.cpp の 573 行で定義されています。

参照先 _countof, _tcscpy(), auto_sprintf(), CLayout::CalcLayoutOffset(), GetCaretLayoutPos(), GetCaretLogicPos(), CEditDoc::GetDocumentAttribute(), CEditView::GetDrawSwitch(), CEOL::GetLen(), CLayoutMgr::GetLineStr(), CEOL::GetName(), CEditDoc::GetNewLineCode(), CMainStatusBar::GetStatusHwnd(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), gm_pszCodeNameArr_Normal, gm_pszCodeNameArr_Short, CEditView::IsInsMode(), CViewCalc::LineColmnToIndex(), Types::m_bLineNumIsCRLF, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CEditWnd::m_cStatusBar, CEditDoc::m_nCharCode, CEditDoc::m_pcEditWnd, m_pEditDoc, m_pEditView, CEditWnd::PrintMenubarMessage(), と ApiWrap::StatusBar_SetText().

参照元 CViewCommander::Command_CHGMOD_EOL(), CViewCommander::Command_CHGMOD_INS(), CViewCommander::Command_FILE_REOPEN(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REDO(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_UNDO(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileSaveAs(), MoveCursor(), と CEditView::RedrawAll().

void CCaret::ShowCaret_ ( HWND hwnd )

キャレットの表示

CCaret.cpp の 873 行で定義されています。

参照先 m_bCaretShowFlag.

参照元 CEditView::OnLBUTTONUP(), CEditView::OnPaint(), と ShowEditCaret().

void CCaret::HideCaret_ ( HWND hwnd )

キャレットの非表示

CCaret.cpp の 885 行で定義されています。

参照先 m_bCaretShowFlag.

参照元 CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::OnPaint(), と ShowEditCaret().

CLayoutPoint CCaret::GetCaretLayoutPos ( ) const [inline]

キャレット位置(レイアウト)を取得

CCaret.h の 135 行で定義されています。

参照先 m_ptCaretPos_Layout.

参照元 CViewSelect::BeginSelectArea(), CEditView::CaretUnderLineON(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CopyCaretStatus(), Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CViewSelect::DisableSelectArea(), CRuler::DispRuler(), DrawCaretPosInfo(), CRuler::DrawRulerCaret(), CEditDoc::FileRead(), CViewParser::GetCurrentWord(), CEditDoc::GetFileInfo(), CViewParser::GetLeftWord(), CNormalProcess::Initialize(), CEditView::InsertData_CEditView(), CEditView::ISearchExec(), CEditView::MoveCursorSelecting(), MoveCursorToClientPoint(), CDlgFuncList::OnBnClicked(), CEditView::OnSetFocus(), CEditView::ReplaceData_CEditView(), CEditWnd::RestorePhysPosOfAllView(), ShowEditCaret(), CEditView::ShowHokanMgr(), と CEditView::SmartIndent_CPP().

CMySize CCaret::GetCaretSize ( ) const [inline]

キャレットサイズを取得。※正確には高さは違うらしい (この半分のこともある？)

CCaret.h の 136 行で定義されています。

参照先 m_sizeCaret.

参照元 CalcCaretDrawPos(), CRuler::DispRuler(), CRuler::DrawRulerCaret(), CEditView::SetIMECompFormPos(), と ShowEditCaret().

bool CCaret::ExistCaretFocus ( ) const [inline]

キャレットのフォーカスがあるか。※横幅値で判定してるらしい。

CCaret.h の 137 行で定義されています。

参照先 m_sizeCaret.

参照元 CEditView::KeyWordHelpSearchDict(), CEditView::OnLBUTTONDOWN(), と ShowEditCaret().

CLogicPoint CCaret::GetCaretLogicPos ( ) const [inline]

キャレット位置(ロジック)を取得

CCaret.h の 138 行で定義されています。

参照先 m_ptCaretPos_Logic.

参照元 CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CViewCommander::Command_UNINDENT(), CEditView::ConvSelectedArea(), CEditView::DeleteData(), DrawCaretPosInfo(), CMacro::HandleFunction(), CEditView::HokanSearchByFile(), CEditView::ISearchEnter(), CMainToolBar::ProcSearchBox(), CEditView::ReplaceData_CEditView(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

bool CCaret::GetCaretShowFlag ( ) const [inline]

CCaret.h の 144 行で定義されています。

参照先 m_bCaretShowFlag.

変数

CEditView* CCaret::m_pEditView [private]

CCaret.h の 153 行で定義されています。

参照元 CalcCaretDrawPos(), CreateEditCaret(), Cursor_UPDOWN(), DrawCaretPosInfo(), GetAdjustCursorPos(), GetHankakuDx(), GetHankakuDy(), GetHankakuHeight(), MoveCursor(), MoveCursorProperly(), MoveCursorToClientPoint(), と ShowEditCaret().

const CEditDoc* CCaret::m_pEditDoc [private]

CCaret.h の 154 行で定義されています。

参照元 Cursor_UPDOWN(), DrawCaretPosInfo(), GetAdjustCursorPos(), GetDocument(), MoveCursor(), MoveCursorProperly(), と ShowEditCaret().

CLayoutPoint CCaret::m_ptCaretPos_Layout [private]

CCaret.h の 157 行で定義されています。

参照元 GetCaretLayoutPos(), MoveCursor(), と SetCaretLayoutPos().

CLogicPoint CCaret::m_ptCaretPos_Logic [private]

CCaret.h の 158 行で定義されています。

参照元 GetCaretLogicPos(), MoveCursor(), と SetCaretLogicPos().

CLayoutInt CCaret::m_nCaretPosX_Prev

CCaret.h の 161 行で定義されています。

参照元 CCaret(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CopyCaretStatus(), Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CViewSelect::DisableSelectArea(), CEditDoc::FileRead(), CEditDoc::InitAllView(), CNormalProcess::Initialize(), CEditView::MoveCursorSelecting(), MoveCursorToClientPoint(), CEditView::OnSetFocus(), CEditView::ReplaceData_CEditView(), CEditWnd::RestorePhysPosOfAllView(), と CEditView::SmartIndent_CPP().

CMySize CCaret::m_sizeCaret [private]

CCaret.h の 165 行で定義されています。

参照元 DestroyCaret(), ExistCaretFocus(), GetCaretSize(), SetCaretSize(), と ShowEditCaret().

COLORREF CCaret::m_crCaret [private]

CCaret.h の 166 行で定義されています。

参照元 CCaret(), と ShowEditCaret().

HBITMAP CCaret::m_hbmpCaret [private]

CCaret.h の 167 行で定義されています。

参照元 CCaret(), CreateEditCaret(), と ~CCaret().

bool CCaret::m_bCaretShowFlag [private]

CCaret.h の 168 行で定義されています。

参照元 GetCaretShowFlag(), HideCaret_(), ShowCaret_(), と ShowEditCaret().

CCaretUnderLine CCaret::m_cUnderLine [mutable]

CCaret.h の 172 行で定義されています。

参照元 CEditView::CaretUnderLineOFF(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CTextArea::DetectWidthOfLineNumberArea(), CViewSelect::DisableSelectArea(), CViewSelect::DrawSelectAreaLine(), MoveCursor(), CEditView::OnLBUTTONDOWN(), CEditView::OnLBUTTONUP(), CEditView::OnPaint(), と CEditWnd::SetActivePane().

このクラスの説明は次のファイルから生成されました:
  • CCaret.h
  • CCaret.cpp
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCaret メンバ一覧

これは全メンバの一覧です。CCaret継承メンバも含んでいます。

CalcCaretDrawPos(const CLayoutPoint &ptCaretPos) const | CCaret |
CCaret(CEditView *pEditView, const CEditDoc *pEditDoc) | CCaret |
CopyCaretStatus(CCaret *pDestCaret) const | CCaret |
CreateEditCaret(COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight) | CCaret |
Cursor_UPDOWN(CLayoutInt nMoveLines, bool bSelect) | CCaret |
DestroyCaret() | CCaret | [inline]
DrawCaretPosInfo() | CCaret |
ExistCaretFocus() const | CCaret | [inline]
GetAdjustCursorPos(CLayoutPoint *pptPosXY) | CCaret |
GetCaretLayoutPos() const | CCaret | [inline]
GetCaretLogicPos() const | CCaret | [inline]
GetCaretShowFlag() const | CCaret | [inline]
GetCaretSize() const | CCaret | [inline]
GetDocument() const | CCaret | [inline]
GetHankakuDx() const | CCaret |
GetHankakuDy() const | CCaret |
GetHankakuHeight() const | CCaret |
HideCaret_(HWND hwnd) | CCaret |
m_bCaretShowFlag | CCaret | [private]
m_crCaret | CCaret | [private]
m_cUnderLine | CCaret | [mutable]
m_hbmpCaret | CCaret | [private]
m_nCaretPosX_Prev | CCaret |
m_pEditDoc | CCaret | [private]
m_pEditView | CCaret | [private]
m_ptCaretPos_Layout | CCaret | [private]
m_ptCaretPos_Logic | CCaret | [private]
m_sizeCaret | CCaret | [private]
MoveCursor(CLayoutPoint ptWk_CaretPos, bool bScroll, int nCaretMarginRate=_CARETMARGINRATE) | CCaret |
MoveCursorProperly(CLayoutPoint ptNewXY, bool, int=_CARETMARGINRATE, int=0) | CCaret |
MoveCursorToClientPoint(const POINT &ptClientPos) | CCaret |
SetCaretLayoutPos(const CLayoutPoint &pt) | CCaret | [inline]
SetCaretLogicPos(const CLogicPoint pt) | CCaret | [inline]
SetCaretSize(int nW, int nH) | CCaret | [inline]
ShowCaret_(HWND hwnd) | CCaret |
ShowEditCaret() | CCaret |
~CCaret() | CCaret | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCaretUnderLine

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCaretUnderLine

#include <CCaret.h>

CCaretUnderLineのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CCaretUnderLine (CEditView *pcEditView)
void | Lock ()
void | UnLock ()
void | CaretUnderLineON (bool)
void | CaretUnderLineOFF (bool)

Private 変数

int | m_nLockCounter
CEditView * m_pcEditView

説明

CCaret.h の 11 行で定義されています。

コンストラクタとデストラクタ

CCaretUnderLine::CCaretUnderLine ( CEditView * pcEditView ) [inline]

CCaret.h の 14 行で定義されています。

関数

void CCaretUnderLine::Lock ( ) [inline]

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

参照元 CEditView::CaretUnderLineOFF(), CTextArea::DetectWidthOfLineNumberArea(), と CEditView::OnLBUTTONDOWN().

void CCaretUnderLine::UnLock ( ) [inline]

CCaret.h の 25 行で定義されています。

参照元 CEditView::CaretUnderLineOFF(), CTextArea::DetectWidthOfLineNumberArea(), と CEditView::OnLBUTTONUP().

void CCaretUnderLine::CaretUnderLineON ( bool bDraw )

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

参照先 CEditView::CaretUnderLineON(), m_nLockCounter, と m_pcEditView.

参照元 CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewSelect::DisableSelectArea(), CCaret::MoveCursor(), と CEditView::OnPaint().

void CCaretUnderLine::CaretUnderLineOFF ( bool bDraw )

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

参照先 CEditView::CaretUnderLineOFF(), m_nLockCounter, と m_pcEditView.

参照元 CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewSelect::DrawSelectAreaLine(), CCaret::MoveCursor(), CEditView::OnLBUTTONDOWN(), と CEditWnd::SetActivePane().

変数

int CCaretUnderLine::m_nLockCounter [private]

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

参照元 CaretUnderLineOFF(), と CaretUnderLineON().

CEditView* CCaretUnderLine::m_pcEditView [private]

CCaret.h の 37 行で定義されています。

参照元 CaretUnderLineOFF(), と CaretUnderLineON().

このクラスの説明は次のファイルから生成されました:
  • CCaret.h
  • CCaret.cpp
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCaretUnderLine メンバ一覧

これは全メンバの一覧です。CCaretUnderLine継承メンバも含んでいます。

CaretUnderLineOFF(bool) | CCaretUnderLine |
CaretUnderLineON(bool) | CCaretUnderLine |
CCaretUnderLine(CEditView *pcEditView) | CCaretUnderLine | [inline]
Lock() | CCaretUnderLine | [inline]
m_nLockCounter | CCaretUnderLine | [private]
m_pcEditView | CCaretUnderLine | [private]
UnLock() | CCaretUnderLine | [inline]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CClipboard

  • 構成
  • クラス階層
  • 構成メンバ

クラス CClipboard

サクラエディタ用クリップボードクラス。後々はこの中で全てのクリップボードAPIを呼ばせたい。 [詳細]

#include <CClipboard.h>

すべてのメンバ一覧

Public メソッド

CClipboard (HWND hwnd)
コンストラクタ内でクリップボードが開かれる
virtual | ~CClipboard ()
デストラクタ内でCloseが呼ばれる
void | Empty ()
クリップボードを空にする
void | Close ()
クリップボードを閉じる
bool | SetText (const wchar_t *str, bool bColmnSelect, bool bLineSelect)
テキストを設定する
bool | GetText (CNativeW *cmemBuf, BOOL *pbColmnSelect, BOOL *pbLineSelect)
テキストを取得する
operator bool () const
クリップボードを開けたならtrue

Static Public メソッド

static bool | HasValidData ()
クリップボード内に、サクラエディタで扱えるデータがあればtrue
static UINT | GetSakuraFormat ()
サクラエディタ独自のクリップボードデータ形式

Private 変数

HWND | m_hwnd
BOOL | m_bOpenResult

説明

サクラエディタ用クリップボードクラス。後々はこの中で全てのクリップボードAPIを呼ばせたい。

CClipboard.h の 4 行で定義されています。

コンストラクタとデストラクタ

CClipboard::CClipboard ( HWND hwnd )

コンストラクタ内でクリップボードが開かれる

CClipboard.cpp の 9 行で定義されています。

参照先 m_bOpenResult, と m_hwnd.

CClipboard::~CClipboard ( ) [virtual]

デストラクタ内でCloseが呼ばれる

CClipboard.cpp の 15 行で定義されています。

参照先 Close().

関数

void CClipboard::Empty ( )

クリップボードを空にする

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

void CClipboard::Close ( )

クリップボードを閉じる

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

参照先 FALSE, と m_bOpenResult.

参照元 ~CClipboard().

bool CClipboard::SetText | ( | const wchar_t * | str,
 |  | bool | bColmnSelect,
 |  | bool | bLineSelect
 | ) |  |

テキストを設定する

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

参照先 FALSE, GetSakuraFormat(), GlobalLockBYTE, GlobalLockWChar, と NULL.

bool CClipboard::GetText | ( | CNativeW * | cmemBuf,
 |  | BOOL * | pbColmnSelect,
 |  | BOOL * | pbLineSelect
 | ) |  |

テキストを取得する

CClipboard.cpp の 138 行で定義されています。

参照先 _countof, FALSE, CMemory::GetRawPtr(), GetSakuraFormat(), GlobalLockChar, GlobalLockWChar, NULL, CNativeW::SetString(), CShiftJis::SJISToUnicode(), と TRUE.

CClipboard::operator bool ( ) const [inline]

クリップボードを開けたならtrue

CClipboard.h の 17 行で定義されています。

参照先 FALSE, と m_bOpenResult.

bool CClipboard::HasValidData ( ) [static]

クリップボード内に、サクラエディタで扱えるデータがあればtrue

サクラエディタ独自のクリップボードデータ形式

CClipboard.cpp の 215 行で定義されています。

参照先 GetSakuraFormat().

参照元 CEditDoc::IsEnablePaste().

UINT CClipboard::GetSakuraFormat ( ) [static]

サクラエディタ独自のクリップボードデータ形式

CClipboard.cpp の 225 行で定義されています。

参照元 GetText(), HasValidData(), と SetText().

変数

HWND CClipboard::m_hwnd [private]

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

参照元 CClipboard().

BOOL CClipboard::m_bOpenResult [private]

CClipboard.h の 21 行で定義されています。

参照元 CClipboard(), Close(), と operator bool().

このクラスの説明は次のファイルから生成されました:
  • CClipboard.h
  • CClipboard.cpp
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CClipboard メンバ一覧

これは全メンバの一覧です。CClipboard継承メンバも含んでいます。

CClipboard(HWND hwnd) | CClipboard |
Close() | CClipboard |
Empty() | CClipboard |
GetSakuraFormat() | CClipboard | [static]
GetText(CNativeW *cmemBuf, BOOL *pbColmnSelect, BOOL *pbLineSelect) | CClipboard |
HasValidData() | CClipboard | [static]
m_bOpenResult | CClipboard | [private]
m_hwnd | CClipboard | [private]
operator bool() const | CClipboard | [inline]
SetText(const wchar_t *str, bool bColmnSelect, bool bLineSelect) | CClipboard |
~CClipboard() | CClipboard | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCodeBase

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCodeBase

#include <CCodeBase.h>

CCodeBaseに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual | ~CCodeBase ()
virtual EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)=0
特定コード → UNICODE 変換
virtual EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)=0
UNICODE → 特定コード 変換

説明

文字コード基底クラス。

ここで言う「特定コード」とは、 CCodeBaseを継承した子クラスが定める、一意の文字コードのことです。

CCodeBase.h の 16 行で定義されています。

コンストラクタとデストラクタ

virtual CCodeBase::~CCodeBase ( ) [inline, virtual]

CCodeBase.h の 18 行で定義されています。

関数

virtual EConvertResult CCodeBase::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [pure virtual]

特定コード → UNICODE 変換

CEuc, CJis, CShiftJis, CUnicode, CUnicodeBe, CUtf7, と CUtf8で実装されています。

参照元 CIoBridge::FileToImpl().

virtual EConvertResult CCodeBase::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [pure virtual]

UNICODE → 特定コード 変換

CEuc, CJis, CShiftJis, CUnicode, CUnicodeBe, CUtf7, と CUtf8で実装されています。

参照元 CViewCommander::Command_PUTFILE(), と CIoBridge::ImplToFile().

このクラスの説明は次のファイルから生成されました:
  • CCodeBase.h
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCodeBase メンバ一覧

これは全メンバの一覧です。CCodeBase継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst)=0 | CCodeBase | [pure virtual]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst)=0 | CCodeBase | [pure virtual]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCodeFactory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCodeFactory

#include <CCodeFactory.h>

すべてのメンバ一覧

Static Public メソッド

static CCodeBase * CreateCodeBase (ECodeType eCodeType, int nFlag)
eCodeTypeに適合する CCodeBaseインスタンス を生成

説明

CCodeFactory.h の 5 行で定義されています。

関数

CCodeBase * CCodeFactory::CreateCodeBase | ( | ECodeType | eCodeType,
 |  | int | nFlag |
 | ) |  |  | [static]

eCodeTypeに適合する CCodeBaseインスタンス を生成

引数:
eCodeType | 文字コード
nFlag | bit 0: MIME Encodeされたヘッダをdecodeするかどうか

CCodeFactory.cpp の 6 行で定義されています。

参照先 assert, CODE_EUC, CODE_JIS, CODE_SJIS, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF7, CODE_UTF8, と NULL.

参照元 CViewCommander::Command_PUTFILE(), CIoBridge::FileToImpl(), と CIoBridge::ImplToFile().

このクラスの説明は次のファイルから生成されました:
  • CCodeFactory.h
  • CCodeFactory.cpp
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCodeFactory メンバ一覧

これは全メンバの一覧です。CCodeFactory継承メンバも含んでいます。

CreateCodeBase(ECodeType eCodeType, int nFlag) CCodeFactory [static]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCodeMediator

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCodeMediator

#include <CCodeMediator.h>

すべてのメンバ一覧

Static Public メソッド

static ECodeType | CheckKanjiCodeOfFile (const TCHAR *)
static ECodeType | CheckKanjiCode (const unsigned char *, int)

説明

CCodeMediator.h の 3 行で定義されています。

関数

ECodeType CCodeMediator::CheckKanjiCodeOfFile ( const TCHAR * pszFile ) [static]

CCodeMediator.cpp の 20 行で定義されています。

参照先 CMemory::AllocBuffer(), CheckKanjiCode(), CheckKanjiCode_MAXREADLENGTH, CStream::Close(), CODE_ERROR, CODE_NONE, CODE_SJIS, Charcode::DetectUnicodeBom(), CBinaryInputStream::GetLength(), CMemory::GetRawPtr(), と CBinaryInputStream::Read().

参照元 CEditDoc::FileRead().

ECodeType CCodeMediator::CheckKanjiCode | ( | const unsigned char * | pBuf,
 |  | int | nBufLen |
 | ) |  |  | [static]

CCodeMediator.cpp の 75 行で定義されています。

参照先 CODE_SJIS, CESI::DetectMultibyte(), CESI::DetectUnicode(), EncodingInfo_t::eCodeID, WC_EncodingInfo_t::eCodeID, と CESI::ScanEncoding().

参照元 CheckKanjiCodeOfFile(), と CFileLoad::FileOpen().

このクラスの説明は次のファイルから生成されました:
  • CCodeMediator.h
  • CCodeMediator.cpp
Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCodeMediator メンバ一覧

これは全メンバの一覧です。CCodeMediator継承メンバも含んでいます。

CheckKanjiCode(const unsigned char *, int) | CCodeMediator | [static]
CheckKanjiCodeOfFile(const TCHAR *) | CCodeMediator | [static]

Sakura-Editorに対してSat Nov 17 20:27:42 2007に生成されました。 doxygen 1.5.4


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 (LPTSTR cmd=NULL)

Private メソッド

void | ParseCommandLine (void)
CCommandLine ()
CCommandLine (LPTSTR cmd)

Static Private メソッド

static int | CheckCommandLine (LPTSTR str, int quotelen, TCHAR **arg)
static int | AtoiOptionInt (const TCHAR *arg)

Private 変数

LPCTSTR | 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 ( LPTSTR cmd ) [private]

コンストラクタ

日付:
2005-08-24 D.S.Koba ParseCommandLine()変更によりメンバ変数に初期値代入

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

参照先 GrepInfo::bGrepOutputLine, GrepInfo::bGrepSubFolder, CODE_SJIS, m_bDebugMode, m_bGrepDlg, m_bGrepMode, m_bNoWindow, m_bReadOnly, m_bWriteQuit, m_gi, m_nGroup, GrepInfo::nGrepCharSet, GrepInfo::nGrepOutputStyle, ParseCommandLine(), SSearchOption::Reset(), と GrepInfo::sGrepSearchOption.

関数

CCommandLine * CCommandLine::Instance ( LPTSTR cmd = NULL ) [static]

シングルトン：プロセスで唯一のインスタンス

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

参照先 _instance, と CCommandLine().

参照元 CEditWnd::_GetWindowRectForInit(), CEditApp::CEditApp(), CProcessFactory::Create(), CShareData::GetIniFileName(), CNormalProcess::Initialize(), CControlProcess::Initialize(), CProcessFactory::IsStartingControlProcess(), と CProcessFactory::TestWriteQuit().

void CCommandLine::ParseCommandLine ( void ) [private]

コマンドラインの解析

WinMain()から呼び出される。

日付:
2005-08-24 D.S.Koba 関数のstaticをやめ，メンバ変数を引数で渡すのをやめる

2007.09.09 genta Visual Studioが各々の引数をお節介にも""で囲む問題に対応． オプションが""で囲まれた場合に対応する． そうすると-で始まるファイル名を指定できなくなるので， それ以降オプション解析をしないという "--" オプションを新設する．

覚え書き:
これが呼び出された時点では共有メモリの初期化が完了していないため， 共有メモリにアクセスしてはならない．

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

参照先 _countof, _MAX_PATH, _tcscpy(), _tcsncmp_literal, AtoiOptionInt(), auto_memset(), GrepInfo::bGrepOutputLine, GrepInfo::bGrepSubFolder, SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckCommandLine(), 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, GrepInfo::cmGrepFile, GrepInfo::cmGrepFolder, GrepInfo::cmGrepKey, CODE_AUTODETECT, DBPRINT, GetLongFileName(), CNativeA::GetStringPtr(), IsValidCodeType(), ACODE::isValidFilenameChar(), m_bDebugMode, m_bGrepDlg, m_bGrepMode, m_bNoWindow, m_bReadOnly, m_bWriteQuit, m_fi, m_gi, FileInfo::m_nCharCode, m_nGroup, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, FileInfo::m_nWindowOriginX, FileInfo::m_nWindowOriginY, FileInfo::m_nWindowSizeX, FileInfo::m_nWindowSizeY, m_pszCmdLineSrc, FileInfo::m_ptCursor, FileInfo::m_szDocType, FileInfo::m_szPath, MAX_DOCTYPE_LEN, MY_RUNNINGTIMER, GrepInfo::nGrepCharSet, GrepInfo::nGrepOutputStyle, NULL, CNativeW::Replace(), CNativeA::Replace(), ResolveShortcutLink(), CNativeA::SetString(), CNativeA::SetStringT(), CNativeW::SetStringT(), と GrepInfo::sGrepSearchOption.

参照元 CCommandLine().

int CCommandLine::CheckCommandLine | ( | LPTSTR | str,
 |  | int | quotelen,
 |  | TCHAR ** | 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 の 73 行で定義されています。

参照先 auto_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.

参照元 ParseCommandLine().

static int CCommandLine::AtoiOptionInt ( const TCHAR * arg ) [inline, static, private]

引用符で囲まれている数値を認識するようにする

日付:
2002.12.05 genta

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

参照元 ParseCommandLine().

bool CCommandLine::IsNoWindow ( ) const [inline]

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

参照元 CProcessFactory::IsStartingControlProcess().

bool CCommandLine::IsWriteQuit ( ) const [inline]

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

bool CCommandLine::IsGrepMode ( ) const [inline]

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

参照元 CNormalProcess::Initialize().

bool CCommandLine::IsGrepDlg ( ) const [inline]

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

参照元 CNormalProcess::Initialize().

bool CCommandLine::IsDebugMode ( ) const [inline]

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

参照元 CNormalProcess::Initialize().

bool CCommandLine::IsReadOnly ( ) const [inline]

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

参照先 m_bReadOnly.

参照元 CNormalProcess::Initialize().

bool CCommandLine::GetFileInfo ( FileInfo & fi ) const [inline]

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

参照元 CEditWnd::_GetWindowRectForInit(), と CNormalProcess::Initialize().

bool CCommandLine::GetGrepInfo ( GrepInfo & gi ) const [inline]

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

参照元 CNormalProcess::Initialize().

int CCommandLine::GetGroupId ( ) const [inline]

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

変数

CCommandLine * CCommandLine::_instance = NULL [static, private]

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

参照元 Instance().

LPCTSTR CCommandLine::m_pszCmdLineSrc [private]

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

参照元 ParseCommandLine().

bool CCommandLine::m_bGrepMode [private]

[in]コマンドライン文字列

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

参照元 CCommandLine(), と ParseCommandLine().

bool CCommandLine::m_bGrepDlg [private]

[out] TRUE: Grep Mode

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

参照元 CCommandLine(), と ParseCommandLine().

bool CCommandLine::m_bDebugMode [private]

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

参照元 CCommandLine(), と ParseCommandLine().

bool CCommandLine::m_bNoWindow [private]

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

参照元 CCommandLine(), と ParseCommandLine().

bool CCommandLine::m_bWriteQuit [private]

[out] TRUE: 編集Windowを開かない

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

参照元 CCommandLine(), と ParseCommandLine().

FileInfo CCommandLine::m_fi [private]

[out] TRUE: 設定を保存して終了 // 2007.05.19 ryoji sakuext用に追加

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

参照元 ParseCommandLine().

GrepInfo CCommandLine::m_gi [private]

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

参照元 CCommandLine(), と ParseCommandLine().

bool CCommandLine::m_bReadOnly [private]

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

参照元 CCommandLine(), と ParseCommandLine().

int CCommandLine::m_nGroup [private]

[out] TRUE: Read Only

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

参照元 CCommandLine(), と ParseCommandLine().

このクラスの説明は次のファイルから生成されました:
  • CCommandLine.h
  • CCommandLine.cpp
Sakura-Editorに対してSat Nov 17 20:27:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCommandLine メンバ一覧

これは全メンバの一覧です。CCommandLine継承メンバも含んでいます。

_instance | CCommandLine | [private, static]
AtoiOptionInt(const TCHAR *arg) | CCommandLine | [inline, private, static]
CCommandLine() | CCommandLine | [private]
CCommandLine(LPTSTR cmd) | CCommandLine | [private]
CheckCommandLine(LPTSTR str, int quotelen, TCHAR **arg) | CCommandLine | [private, static]
GetFileInfo(FileInfo &fi) const | CCommandLine | [inline]
GetGrepInfo(GrepInfo &gi) const | CCommandLine | [inline]
GetGroupId() const | CCommandLine | [inline]
Instance(LPTSTR 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 Nov 17 20:27:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CControlProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CControlProcess

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

#include <CControlProcess.h>

CControlProcessに対する継承グラフ

[凡例]
CControlProcessのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CControlProcess (HINSTANCE hInstance, LPTSTR lpCmdLine)
virtual | ~CControlProcess ()

Protected メソッド

CControlProcess ()
virtual bool | Initialize ()
コントロールプロセスを初期化する
virtual bool | MainLoop ()
コントロールプロセスのメッセージループ
virtual void | Terminate ()
コントロールプロセスを終了する

Private 変数

HANDLE | m_hMutex
HANDLE | m_hMutexCP
HANDLE | m_hEventCPInitialized
CControlTray * m_pcTray

説明

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

コントロールプロセスはCControlTrayクラスのインスタンスを作る。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

コンストラクタとデストラクタ

CControlProcess::CControlProcess | ( | HINSTANCE | hInstance,
 |  | LPTSTR | lpCmdLine |
 | ) |  |  | [inline]

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

CControlProcess::~CControlProcess ( ) [virtual]

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

参照先 m_hEventCPInitialized, m_hMutex, m_hMutexCP, と m_pcTray.

CControlProcess::CControlProcess ( ) [protected]

関数

bool CControlProcess::Initialize ( ) [protected, virtual]

コントロールプロセスを初期化する

MutexCPを作成・ロックする。 CControlTrayを作成する。

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

2002/02/17 YAZAKI 共有メモリを初期化するのはCProcessに移動。

2006/04/10 ryoji 初期化完了イベントの処理を追加、異常時の後始末はデストラクタに任せる

CProcessを再定義しています。

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

参照先 _MAX_PATH, CControlTray::Create(), FALSE, CProcess::GetDllShareData(), CShareData::GetIniFileName(), CProcess::GetProcessInstance(), CProcess::GetShareData(), GSTR_APPNAME, GSTR_APPNAME_A, GSTR_EVENT_SAKURA_CP_INITIALIZED, GSTR_MUTEX_SAKURA, GSTR_MUTEX_SAKURA_CP, CProcess::Initialize(), CCommandLine::Instance(), CShareData::LoadShareData(), m_hEventCPInitialized, m_hMutex, m_hMutexCP, DLLSHAREDATA::m_hwndTray, m_pcTray, MY_RUNNINGTIMER, MY_TRACETIME, MYMESSAGEBOX, MYMESSAGEBOX_A, NULL, CShareData::SaveShareData(), CProcess::SetMainWindow(), と TRUE.

bool CControlProcess::MainLoop ( ) [protected, virtual]

コントロールプロセスのメッセージループ

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

CProcessを実装しています。

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

参照先 CProcess::GetMainWindow(), m_pcTray, CControlTray::MessageLoop(), と RELPRINT_A.

void CControlProcess::Terminate ( ) [protected, virtual]

コントロールプロセスを終了する

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

2006/07/02 ryoji 共有データ保存を CControlTray へ移動

CProcessを実装しています。

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

参照先 CProcess::GetDllShareData(), DLLSHAREDATA::m_hwndTray, と NULL.

変数

HANDLE CControlProcess::m_hMutex [private]

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

参照元 Initialize(), と ~CControlProcess().

HANDLE CControlProcess::m_hMutexCP [private]

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

参照元 Initialize(), と ~CControlProcess().

HANDLE CControlProcess::m_hEventCPInitialized [private]

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

参照元 Initialize(), と ~CControlProcess().

CControlTray* CControlProcess::m_pcTray [private]

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

参照元 Initialize(), MainLoop(), と ~CControlProcess().

このクラスの説明は次のファイルから生成されました:
  • CControlProcess.h
  • CControlProcess.cpp
Sakura-Editorに対してSat Nov 17 20:27:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CControlProcess メンバ一覧

これは全メンバの一覧です。CControlProcess継承メンバも含んでいます。

CControlProcess(HINSTANCE hInstance, LPTSTR lpCmdLine) | CControlProcess | [inline]
CControlProcess() | CControlProcess | [protected]
CProcess(HINSTANCE hInstance, LPTSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
GetDllShareData() | CProcess | [inline]
GetMainWindow() const | CProcess | [inline]
GetProcessInstance() const | CProcess | [inline]
GetShareData() | CProcess | [inline]
Initialize() | CControlProcess | [protected, virtual]
m_hEventCPInitialized | CControlProcess | [private]
m_hMutex | CControlProcess | [private]
m_hMutexCP | CControlProcess | [private]
m_pcTray | CControlProcess | [private]
MainLoop() | CControlProcess | [protected, virtual]
Run() | CProcess |
SetMainWindow(HWND hwnd) | CProcess | [inline, protected]
Terminate() | CControlProcess | [protected, virtual]
~CControlProcess() | CControlProcess | [virtual]
~CProcess() | CProcess | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CControlTray

  • 構成
  • クラス階層
  • 構成メンバ

クラス CControlTray

常駐部の管理 [詳細]

#include <CControlTray.h>

CControlTrayのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CControlTray ()
~CControlTray ()
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)
HWND | GetTrayHwnd () const

Static Public メソッド

static bool | OpenNewEditor (HINSTANCE, HWND, const TCHAR *, ECodeType, BOOL, bool sync=false, const TCHAR *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 メソッド

void | DoGrep ()
BOOL | TrayMessage (HWND, DWORD, UINT, HICON, const TCHAR *)
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 変数

CMenuDrawer m_CMenuDrawer
bool | m_bUseTrayMenu
HINSTANCE | m_hInstance
HWND | m_hWnd
TCHAR * | m_pszAppName
BOOL | m_bCreatedTrayIcon
トレイにアイコンを作った
DLLSHAREDATA * m_pShareData
CDlgGrep m_cDlgGrep
CImageListMgr m_hIcons
UINT | m_uCreateTaskBarMsg
RegisterMessageで得られるMessage IDの保管場所。Apr. 24, 2001 genta

説明

常駐部の管理

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

コンストラクタとデストラクタ

CControlTray::CControlTray ( )

CControlTray.cpp の 168 行で定義されています。

参照先 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.

CControlTray::~CControlTray ( )

CControlTray.cpp の 205 行で定義されています。

関数

HWND CControlTray::Create ( HINSTANCE hInstance )

CControlTray.cpp の 217 行で定義されています。

参照先 CEditAppWndProc(), CMenuDrawer::Create(), CImageListMgr::Create(), CreateTrayIcon(), GetTrayHwnd(), GSTR_APPNAME, m_CMenuDrawer, m_hIcons, m_hInstance, m_pszAppName, MY_RUNNINGTIMER, と NULL.

参照元 CControlProcess::Initialize().

bool CControlTray::CreateTrayIcon ( HWND hWnd )

タスクトレイにアイコンを登録する

CControlTray.cpp の 286 行で定義されています。

参照先 auto_sprintf(), FN_APP_ICON, GetAppIcon(), GetAppVersionInfo(), GetTrayHwnd(), GSTR_APPNAME, ICON_DEFAULT_APP, m_bCreatedTrayIcon, CommonSetting_General::m_bUseTaskTray, DLLSHAREDATA::m_Common, m_hInstance, m_pShareData, CommonSetting::m_sGeneral, NULL, TrayMessage(), と TRUE.

参照元 Create(), と DispatchEvent().

LRESULT CControlTray::DispatchEvent | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CControlTray.cpp の 369 行で定義されています。

参照先 _countof, _FT, _MAX_PATH, _tcscpy(), ActivateFrameWindow(), auto_sprintf(), BOOL, CloseAllEditor(), CODE_AUTODETECT, CDlgOpenFile::Create2(), CKeyBind::CreateAccerelator(), CreatePopUpMenu_L(), CreatePopUpMenu_R(), CreateTrayIcon(), DoGrep(), CDlgAbout::DoModal(), CDlgOpenFile::DoModalOpenDlg(), CMenuDrawer::DrawItem(), DWORD_PTR, F_ABOUT, F_EXITALL, F_EXITALLEDITORS, F_EXTHELP1, F_EXTHTMLHELP, F_FILENEW, F_FILEOPEN, F_FILESAVE_QUIET, F_FILESAVEALL, F_GREP_DIALOG, F_HELP_CONTENTS, F_HELP_SEARCH, FALSE, CMRU::GetFileInfo(), EditNode::GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CMRUFolder::GetPath(), CMRUFolder::GetPathList(), CMRU::GetPathList(), CommonSetting_File::GetRestoreCurPosition(), GetTrayHwnd(), DLLSHAREDATA::GetWorkBuffer(), GSTR_APPNAME, GWLP_USERDATA, hDll, ID_HOTKEY_TRAYMENU, IDM_SELMRU, IDM_SELOPENFOLDER, IDM_SELWINDOW, TSingleInstance< CEditApp >::Instance(), CShareData::IsPathOpened(), CMRUFolder::Length(), CMRU::Length(), LONG_PTR, m_bCreatedTrayIcon, CommonSetting_General::m_bStayTaskTray, CommonSetting_General::m_bUseTaskTray, m_CMenuDrawer, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_hAccel, m_hInstance, m_hWnd, FileInfo::m_nCharCode, DLLSHAREDATA::m_nKeyNameArrNum, DLLSHAREDATA::m_pEditArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, CommonSetting::m_sFile, CommonSetting::m_sGeneral, FileInfo::m_szPath, m_uCreateTaskBarMsg, CommonSetting_General::m_wTrayMenuHotKeyCode, CommonSetting_General::m_wTrayMenuHotKeyMods, CMenuDrawer::MeasureItem(), MYMESSAGEBOX, MyWinHelp(), MYWM_CHANGESETTING, MYWM_DELETE_ME, MYWM_HTMLHELP, MYWM_NOTIFYICON, MYWM_UIPI_CHECK, NetConnect(), NULL, OnCommand(), OnDestroy(), CMenuDrawer::OnMenuChar(), OnNewEditor(), OpenHtmlHelp(), OpenNewEditor(), OpenNewEditor2(), PostMessageAny, CShareData::PostMessageToAllEditors(), RELPRINT_A, SendMessageAny, SetWindowLongPtr, CEditApp::ShowFuncHelp(), ShowWinHelpContents(), sizeof_raw, TerminateApplication(), to_tchar, TRUE, と ULONG_PTR.

参照元 CEditAppWndProc().

void CControlTray::MessageLoop ( void )

CControlTray.cpp の 320 行で定義されています。

参照先 GetTrayHwnd(), と NULL.

参照元 CControlProcess::MainLoop().

void CControlTray::OnDestroy ( void )

WM_DESTROY 処理

日付:
2006.07.09 ryoji 新規作成

CControlTray.cpp の 1577 行で定義されています。

参照先 ExitingDlgProc(), CShareData::getInstance(), GetTrayHwnd(), ID_HOTKEY_TRAYMENU, IDD_EXITING, m_bCreatedTrayIcon, CommonSetting_General::m_bDispExitingDialog, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_hAccel, m_hInstance, m_hWnd, m_pShareData, CommonSetting::m_sGeneral, NULL, CShareData::SaveShareData(), と TrayMessage().

参照元 DispatchEvent().

int CControlTray::CreatePopUpMenu_L ( void )

ポップアップメニュー(トレイ左ボタン)

CControlTray.cpp の 1301 行で定義されています。

参照先 _MAX_PATH, auto_sprintf(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), dupamp(), F_EXITALL, F_EXITALLEDITORS, F_FILENEW, F_FILEOPEN, F_FILESAVEALL, F_GREP_DIALOG, FALSE, EditNode::GetHwnd(), CShareData::getInstance(), CNativeW::GetStringLength(), CNativeW::GetStringT(), CShareData::GetTransformFileNameFast(), GetTrayHwnd(), gm_pszCodeNameArr_Bracket, IDM_SELWINDOW, IDR_TRAYMENU_L, CShareData::IsEditWnd(), IsValidCodeTypeExceptSJIS(), CMRUFolder::Length(), CMRU::Length(), LimitStringLengthW(), FileInfo::m_bIsGrep, FileInfo::m_bIsModified, m_bUseTrayMenu, m_CMenuDrawer, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, m_hInstance, FileInfo::m_nCharCode, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_pEditArr, m_pShareData, FileInfo::m_szGrepKey, FileInfo::m_szPath, CMenuDrawer::MyAppendMenu(), CMenuDrawer::MyAppendMenuSep(), MYWM_GETFILEINFO, NULL, PostMessageAny, CMenuDrawer::ResetContents(), SendMessageAny, と CShareData::TransformFileName_MakeCache().

参照元 DispatchEvent().

int CControlTray::CreatePopUpMenu_R ( void )

ポップアップメニュー(トレイ右ボタン)

CControlTray.cpp の 1481 行で定義されています。

参照先 F_ABOUT, F_EXITALL, F_EXTHELP1, F_EXTHTMLHELP, F_FONT, F_HELP_CONTENTS, F_HELP_SEARCH, F_OPTION, F_OPTION_TYPE, F_TYPE_LIST, FALSE, GetTrayHwnd(), IDR_TRAYMENU_L, m_bUseTrayMenu, m_CMenuDrawer, m_hInstance, CMenuDrawer::MyAppendMenu(), CMenuDrawer::MyAppendMenuSep(), NULL, PostMessageAny, と CMenuDrawer::ResetContents().

参照元 DispatchEvent().

bool CControlTray::OpenNewEditor | ( | HINSTANCE | hInstance,
 |  | HWND | hWndParent,
 |  | const TCHAR * | pszPath,
 |  | ECodeType | nCharCode,
 |  | BOOL | bReadOnly,
 |  | bool | sync = false,
 |  | const TCHAR * | szCurDir = NULL |
 | ) |  |  | [static]

新規編集ウィンドウの追加 ver 0

日付:
2000.10.24 genta WinExec -> CreateProcess．同期機能を付加

2002.02.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2003.05.30 genta 外部プロセス起動時のカレントディレクトリ指定を可能に．

2007.06.26 ryoji 新規編集ウィンドウは hWndParent と同じグループを指定して起動する

引数:
hInstance | [in] インスタンスID (実は未使用)
hWndParent | [in] 親ウィンドウハンドル．エラーメッセージ表示用
pszPath | [in] 新規エディタで開くファイル名とオプション．NULLで新規エディタ作成．
nCharCode | [in] 新規エディタの文字コード
bReadOnly | [in] FALSEでなければ読みとり専用で開く
sync | [in] trueなら新規エディタの起動まで待機する
szCurDir | [in] 新規エディタのカレントディレクトリ

CControlTray.cpp の 1022 行で定義されています。

参照先 _countof, auto_sprintf(), BOOL, CODE_AUTODETECT, FALSE, GA_ROOTOWNER2, CShareData::GetGroupId(), CShareData::getInstance(), CShareData::GetShareData(), GSTR_APPNAME, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_nEditArrNum, CommonSetting::m_sTabBar, MAX_EDITWINDOWS, MyGetAncestor(), MYMESSAGEBOX, NULL, と sizeof_raw.

参照元 CViewCommander::Command_FILENEW(), CViewCommander::Command_GREP(), CViewCommander::Command_WIN_OUTPUT(), CEditWnd::DispatchEvent(), DispatchEvent(), DoGrep(), CMacro::HandleCommand(), CEditWnd::OnDropFiles(), OnNewEditor(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenFile(), OpenNewEditor2(), と CShareData::TraceOut().

bool CControlTray::OpenNewEditor2 | ( | HINSTANCE | hInstance,
 |  | HWND | hWndParent,
 |  | const FileInfo * | pfi,
 |  | BOOL | bReadOnly,
 |  | bool | sync = false |
 | ) |  |  | [static]

新規編集ウィンドウの追加 ver 2:

日付:
Oct. 24, 2000 genta create.

CControlTray.cpp の 1170 行で定義されています。

参照先 auto_sprintf(), CODE_AUTODETECT, CShareData::getInstance(), CShareData::GetShareData(), GSTR_APPNAME, FileInfo::m_nCharCode, DLLSHAREDATA::m_nEditArrNum, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, FileInfo::m_ptCursor, FileInfo::m_szPath, MAX_EDITWINDOWS, NULL, と OpenNewEditor().

参照元 DispatchEvent(), と CEditView::TagJumpSub().

BOOL CControlTray::CloseAllEditor | ( | BOOL | bCheckConfirm,
 |  | HWND | hWndFrom,
 |  | BOOL | bExit,
 |  | int | nGroup |
 | ) |  |  | [static]

すべてのウィンドウを閉じる

日付:
Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更

2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2006.12.25 ryoji 複数の編集ウィンドウを閉じるときの確認（引数追加）

2007.02.13 ryoji 「編集の全終了」を示す引数(bExit)を追加

2007.06.20 ryoji nGroup引数を追加

引数:
bCheckConfirm | [in] [すべて閉じる]確認オプションに従って問い合わせをするかどうか
hWndFrom | [in] 呼び出し元のウィンドウハンドル
bExit | [in] TRUE: 編集の全終了 / FALSE: すべて閉じる
nGroup | [in] グループID

CControlTray.cpp の 1265 行で定義されています。

参照先 FALSE, CShareData::getInstance(), CShareData::GetShareData(), GSTR_APPNAME, CShareData::IsEditWnd(), CommonSetting_General::m_bCloseAllConfirm, DLLSHAREDATA::m_Common, CommonSetting::m_sGeneral, MYMESSAGEBOX, と TRUE.

参照元 CViewCommander::Command_EXITALLEDITORS(), CViewCommander::Command_FILECLOSEALL(), CViewCommander::Command_GROUPCLOSE(), DispatchEvent(), と TerminateApplication().

void CControlTray::TerminateApplication ( HWND hWndFrom ) [static]

サクラエディタの全終了

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2006.12.25 ryoji 複数の編集ウィンドウを閉じるときの確認（引数追加）

引数:
hWndFrom [in] 呼び出し元のウィンドウハンドル

CControlTray.cpp の 1227 行で定義されています。

参照先 BOOL, CloseAllEditor(), FALSE, CShareData::getInstance(), CShareData::GetShareData(), GSTR_APPNAME, CommonSetting_General::m_bExitConfirm, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_hwndTray, CommonSetting::m_sGeneral, MYMESSAGEBOX, PostMessageAny, と TRUE.

参照元 CViewCommander::Command_EXITALL(), DispatchEvent(), と CEditWnd::OnCommand().

HWND CControlTray::GetTrayHwnd ( ) const [inline]

CControlTray.h の 74 行で定義されています。

参照元 Create(), CreatePopUpMenu_L(), CreatePopUpMenu_R(), CreateTrayIcon(), DispatchEvent(), DoGrep(), MessageLoop(), OnDestroy(), と OnNewEditor().

void CControlTray::DoGrep ( ) [protected]

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

参照先 auto_sprintf(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CODE_DEFAULT, CDlgGrep::DoModal(), FALSE, CDialog::GetHwnd(), CNativeA::GetStringPtr(), CNativeW::GetStringPtr(), GetTrayHwnd(), DLLSHAREDATA::m_aSearchKeys, CDlgGrep::m_bGrepOutputLine, CDlgGrep::m_bSubFolder, m_cDlgGrep, m_hInstance, DLLSHAREDATA::m_hwndTray, CDlgGrep::m_nGrepCharSet, CDlgGrep::m_nGrepOutputStyle, m_pShareData, CDlgGrep::m_sSearchOption, CDlgGrep::m_szFile, CDlgGrep::m_szFolder, CDlgGrep::m_szText, NULL, OpenNewEditor(), CNativeA::Replace(), CNativeW::Replace(), CNativeA::SetString(), と CNativeW::SetString().

参照元 DispatchEvent().

BOOL CControlTray::TrayMessage | ( | HWND | hDlg,
 |  | DWORD | dwMessage,
 |  | UINT | uID,
 |  | HICON | hIcon,
 |  | const TCHAR * | pszTip |
 | ) |  |  | [protected]

タスクトレイのアイコンに関する処理

CControlTray.cpp の 342 行で定義されています。

参照先 _countof, BOOL, MYWM_NOTIFYICON, と sizeof_raw.

参照元 CreateTrayIcon(), と OnDestroy().

void CControlTray::OnCommand | ( | WORD | wNotifyCode,
 |  | WORD | wID,
 |  | HWND | hwndCtl |
 | ) |  |  | [protected]

WM_COMMANDメッセージ処理

CControlTray.cpp の 962 行で定義されています。

参照元 DispatchEvent().

void CControlTray::OnNewEditor ( void ) [protected]

2003.05.30 genta 新規ウィンドウ作成処理を切り出し

新規ウィンドウを作成する

タスクトレイからの新規作成の場合にはカレントディレクトリ＝ 保存時のデフォルトディレクトリを最後に使われたディレクトリとする． ただし最後に使われたディレクトリが存在しない場合は次に使われたディレクトリとし， 順次存在するディレクトリが見つかるまで履歴を順に試す．

どの履歴も見つからなかった場合には現在のカレントディレクトリで作成する．

作者:
genta
日付:
2003.05.30 新規作成

CControlTray.cpp の 985 行で定義されています。

参照先 CODE_DEFAULT, FALSE, CMRUFolder::GetPath(), GetTrayHwnd(), CMRUFolder::Length(), m_hInstance, NULL, と OpenNewEditor().

参照元 DispatchEvent().

INT_PTR CALLBACK CControlTray::ExitingDlgProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

終了ダイアログ用プロシージャ

日付:
2006.07.02 ryoji CControlProcess から移動
引数:
hwndDlg 終了ダイアログ用プロシージャ

CControlTray.cpp の 1632 行で定義されています。

参照先 FALSE, と TRUE.

参照元 OnDestroy().

変数

CMenuDrawer CControlTray::m_CMenuDrawer [private]

CControlTray.h の 97 行で定義されています。

参照元 Create(), CreatePopUpMenu_L(), CreatePopUpMenu_R(), と DispatchEvent().

bool CControlTray::m_bUseTrayMenu [private]

CControlTray.h の 98 行で定義されています。

参照元 CControlTray(), CreatePopUpMenu_L(), と CreatePopUpMenu_R().

HINSTANCE CControlTray::m_hInstance [private]

CControlTray.h の 99 行で定義されています。

参照元 Create(), CreatePopUpMenu_L(), CreatePopUpMenu_R(), CreateTrayIcon(), DispatchEvent(), DoGrep(), OnDestroy(), と OnNewEditor().

HWND CControlTray::m_hWnd [private]

CControlTray.h の 100 行で定義されています。

参照元 DispatchEvent(), と OnDestroy().

TCHAR* CControlTray::m_pszAppName [private]

CControlTray.h の 101 行で定義されています。

参照元 CControlTray(), と Create().

BOOL CControlTray::m_bCreatedTrayIcon [private]

トレイにアイコンを作った

CControlTray.h の 102 行で定義されています。

参照元 CreateTrayIcon(), DispatchEvent(), と OnDestroy().

DLLSHAREDATA* CControlTray::m_pShareData [private]

CControlTray.h の 104 行で定義されています。

参照元 CControlTray(), CreatePopUpMenu_L(), CreateTrayIcon(), DispatchEvent(), DoGrep(), と OnDestroy().

CDlgGrep CControlTray::m_cDlgGrep [private]

CControlTray.h の 105 行で定義されています。

参照元 DoGrep().

CImageListMgr CControlTray::m_hIcons [private]

CControlTray.h の 107 行で定義されています。

参照元 Create().

UINT CControlTray::m_uCreateTaskBarMsg [private]

RegisterMessageで得られるMessage IDの保管場所。Apr. 24, 2001 genta

CControlTray.h の 109 行で定義されています。

参照元 DispatchEvent().

このクラスの説明は次のファイルから生成されました:
  • CControlTray.h
  • CControlTray.cpp
Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CControlTray メンバ一覧

これは全メンバの一覧です。CControlTray継承メンバも含んでいます。

CControlTray() | CControlTray |
CloseAllEditor(BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup) | CControlTray | [static]
Create(HINSTANCE) | CControlTray |
CreatePopUpMenu_L(void) | CControlTray |
CreatePopUpMenu_R(void) | CControlTray |
CreateTrayIcon(HWND) | CControlTray |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CControlTray |
DoGrep() | CControlTray | [protected]
ExitingDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CControlTray | [protected, static]
GetTrayHwnd() const | CControlTray | [inline]
m_bCreatedTrayIcon | CControlTray | [private]
m_bUseTrayMenu | CControlTray | [private]
m_cDlgGrep | CControlTray | [private]
m_CMenuDrawer | CControlTray | [private]
m_hIcons | CControlTray | [private]
m_hInstance | CControlTray | [private]
m_hWnd | CControlTray | [private]
m_pShareData | CControlTray | [private]
m_pszAppName | CControlTray | [private]
m_uCreateTaskBarMsg | CControlTray | [private]
MessageLoop(void) | CControlTray |
OnCommand(WORD, WORD, HWND) | CControlTray | [protected]
OnDestroy(void) | CControlTray |
OnNewEditor(void) | CControlTray | [protected]
OpenNewEditor(HINSTANCE, HWND, const TCHAR *, ECodeType, BOOL, bool sync=false, const TCHAR *szCurDir=NULL) | CControlTray | [static]
OpenNewEditor2(HINSTANCE, HWND, const FileInfo *, BOOL, bool sync=false) | CControlTray | [static]
TerminateApplication(HWND hWndFrom) | CControlTray | [static]
TrayMessage(HWND, DWORD, UINT, HICON, const TCHAR *) | CControlTray | [protected]
~CControlTray() | CControlTray |

Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert

#include <CConvert.h>

CConvertに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual | ~CConvert ()
void | CallConvert (CNativeW *pcData)
virtual bool | DoConvert (CNativeW *pcData)=0

説明

CConvert.h の 14 行で定義されています。

コンストラクタとデストラクタ

virtual CConvert::~CConvert ( ) [inline, virtual]

CConvert.h の 16 行で定義されています。

関数

void CConvert::CallConvert ( CNativeW * pcData ) [inline]

CConvert.h の 19 行で定義されています。

参照先 DoConvert(), ErrorMessage, と NULL.

virtual bool CConvert::DoConvert ( CNativeW * pcData ) [pure virtual]

CConvert_Base64Decode, CConvert_HaneisuToZeneisu, CConvert_HankanaToZenhira, CConvert_HankanaToZenkana, CConvert_SpaceToTab, CConvert_TabToSpace, CConvert_ToHankaku, CConvert_ToLower, CConvert_ToUpper, CConvert_ToZenhira, CConvert_ToZenkana, CConvert_Trim, CConvert_UuDecode, CConvert_ZeneisuToHaneisu, と CConvert_ZenkanaToHankanaで実装されています。

参照元 CallConvert().

このクラスの説明は次のファイルから生成されました:
  • CConvert.h
Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert メンバ一覧

これは全メンバの一覧です。CConvert継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData)=0 | CConvert | [pure virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_Base64Decode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_Base64Decode

#include <CConvert_Base64Decode.h>

CConvert_Base64Decodeに対する継承グラフ

[凡例]
CConvert_Base64Decodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool | DoConvert (CNativeW *pcData)

Static Public メソッド

static void | BASE64Decode (const CNativeW *pcSrc, CMemory *pcDst)
template<class CHAR_TYPE>
static long | MemBASE64_Decode (const CHAR_TYPE *pszSrc, long nSrcLen, BYTE *pDst)

説明

CConvert_Base64Decode.h の 5 行で定義されています。

関数

bool CConvert_Base64Decode::DoConvert ( CNativeW * pcData ) [inline, virtual]

CConvertを実装しています。

CConvert_Base64Decode.h の 8 行で定義されています。

void CConvert_Base64Decode::BASE64Decode | ( | const CNativeW * | pcSrc,
 |  | CMemory * | pcDst |
 | ) |  |  | [static]

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

参照先 CMemory::AppendRawData(), CMemory::GetRawLength(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), IsBASE64Char(), MemBASE64_Decode(), と CMemory::SetRawData().

template<class CHAR_TYPE>
long CConvert_Base64Decode::MemBASE64_Decode | ( | const CHAR_TYPE * | pszSrc,
 |  | long | nSrcLen,
 |  | BYTE * | pDst |
 | ) |  |  | [inline, static]

CConvert_Base64Decode.cpp の 78 行で定義されています。

参照先 IsBASE64Char().

参照元 BASE64Decode(), と CJis::JIStoSJIS().

このクラスの説明は次のファイルから生成されました:
  • CConvert_Base64Decode.h
  • CConvert_Base64Decode.cpp
Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_Base64Decode メンバ一覧

これは全メンバの一覧です。CConvert_Base64Decode継承メンバも含んでいます。

BASE64Decode(const CNativeW *pcSrc, CMemory *pcDst) | CConvert_Base64Decode | [static]
CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_Base64Decode | [inline, virtual]
MemBASE64_Decode(const CHAR_TYPE *pszSrc, long nSrcLen, BYTE *pDst) | CConvert_Base64Decode | [inline, static]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_HaneisuToZeneisu

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_HaneisuToZeneisu

半角英数→全角英数 [詳細]

#include <CConvert_HaneisuToZeneisu.h>

CConvert_HaneisuToZeneisuに対する継承グラフ

[凡例]
CConvert_HaneisuToZeneisuのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
半角英数→全角英数

説明

半角英数→全角英数

CConvert_HaneisuToZeneisu.h の 7 行で定義されています。

関数

bool CConvert_HaneisuToZeneisu::DoConvert ( CNativeW * pcData ) [virtual]

半角英数→全角英数

CConvertを実装しています。

CConvert_HaneisuToZeneisu.cpp の 10 行で定義されています。

参照先 Convert_HanEisuu_To_ZenEisuu(), CNativeW::GetStringLength(), と CNativeW::GetStringPtr().

このクラスの説明は次のファイルから生成されました:
  • CConvert_HaneisuToZeneisu.h
  • CConvert_HaneisuToZeneisu.cpp
Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_HaneisuToZeneisu メンバ一覧

これは全メンバの一覧です。CConvert_HaneisuToZeneisu継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_HaneisuToZeneisu | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_HankanaToZenhira

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_HankanaToZenhira

半角カナ→全角ひらがな [詳細]

#include <CConvert_HankanaToZenhira.h>

CConvert_HankanaToZenhiraに対する継承グラフ

[凡例]
CConvert_HankanaToZenhiraのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
半角カナ→全角ひらがな

説明

半角カナ→全角ひらがな

CConvert_HankanaToZenhira.h の 7 行で定義されています。

関数

bool CConvert_HankanaToZenhira::DoConvert ( CNativeW * pcData ) [virtual]

半角カナ→全角ひらがな

CConvertを実装しています。

CConvert_HankanaToZenhira.cpp の 10 行で定義されています。

参照先 Convert_HankanaToZenkana(), Convert_ZenkanaToZenhira(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_HankanaToZenhira.h
  • CConvert_HankanaToZenhira.cpp
Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_HankanaToZenhira メンバ一覧

これは全メンバの一覧です。CConvert_HankanaToZenhira継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_HankanaToZenhira | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_HankanaToZenkana

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_HankanaToZenkana

半角カナ→全角カナ [詳細]

#include <CConvert_HankanaToZenkana.h>

CConvert_HankanaToZenkanaに対する継承グラフ

[凡例]
CConvert_HankanaToZenkanaのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
半角カナ→全角カナ

説明

半角カナ→全角カナ

CConvert_HankanaToZenkana.h の 7 行で定義されています。

関数

bool CConvert_HankanaToZenkana::DoConvert ( CNativeW * pcData ) [virtual]

半角カナ→全角カナ

CConvertを実装しています。

CConvert_HankanaToZenkana.cpp の 10 行で定義されています。

参照先 Convert_HankanaToZenkana(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_HankanaToZenkana.h
  • CConvert_HankanaToZenkana.cpp
Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_HankanaToZenkana メンバ一覧

これは全メンバの一覧です。CConvert_HankanaToZenkana継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_HankanaToZenkana | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_SpaceToTab

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_SpaceToTab

#include <CConvert_SpaceToTab.h>

CConvert_SpaceToTabに対する継承グラフ

[凡例]
CConvert_SpaceToTabのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CConvert_SpaceToTab (int nTabWidth)
bool | DoConvert (CNativeW *pcData)
空白→TAB変換。単独のスペースは変換しない

Private 変数

int | m_nTabWidth

説明

CConvert_SpaceToTab.h の 5 行で定義されています。

コンストラクタとデストラクタ

CConvert_SpaceToTab::CConvert_SpaceToTab ( int nTabWidth ) [inline]

CConvert_SpaceToTab.h の 7 行で定義されています。

関数

bool CConvert_SpaceToTab::DoConvert ( CNativeW * pcData ) [virtual]

空白→TAB変換。単独のスペースは変換しない

CConvertを実装しています。

CConvert_SpaceToTab.cpp の 8 行で定義されています。

参照先 auto_memcpy(), BOOL, FALSE, CEOL::GetLen(), GetNextLineW(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), m_nTabWidth, NULL, CNativeW::SetString(), WCODE::SPACE, WCODE::TAB, と TRUE.

変数

int CConvert_SpaceToTab::m_nTabWidth [private]

CConvert_SpaceToTab.h の 15 行で定義されています。

参照元 DoConvert().

このクラスの説明は次のファイルから生成されました:
  • CConvert_SpaceToTab.h
  • CConvert_SpaceToTab.cpp
Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_SpaceToTab メンバ一覧

これは全メンバの一覧です。CConvert_SpaceToTab継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
CConvert_SpaceToTab(int nTabWidth) | CConvert_SpaceToTab | [inline]
DoConvert(CNativeW *pcData) | CConvert_SpaceToTab | [virtual]
m_nTabWidth | CConvert_SpaceToTab | [private]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_TabToSpace

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_TabToSpace

#include <CConvert_TabToSpace.h>

CConvert_TabToSpaceに対する継承グラフ

[凡例]
CConvert_TabToSpaceのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CConvert_TabToSpace (int nTabWidth)
bool | DoConvert (CNativeW *pcData)
TAB→空白

Private 変数

int | m_nTabWidth

説明

CConvert_TabToSpace.h の 5 行で定義されています。

コンストラクタとデストラクタ

CConvert_TabToSpace::CConvert_TabToSpace ( int nTabWidth ) [inline]

CConvert_TabToSpace.h の 7 行で定義されています。

関数

bool CConvert_TabToSpace::DoConvert ( CNativeW * pcData ) [virtual]

TAB→空白

CConvertを実装しています。

CConvert_TabToSpace.cpp の 8 行で定義されています。

参照先 auto_memcpy(), auto_memset(), CEOL::GetLen(), GetNextLineW(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), m_nTabWidth, NULL, CNativeW::SetString(), と WCODE::TAB.

変数

int CConvert_TabToSpace::m_nTabWidth [private]

CConvert_TabToSpace.h の 15 行で定義されています。

参照元 DoConvert().

このクラスの説明は次のファイルから生成されました:
  • CConvert_TabToSpace.h
  • CConvert_TabToSpace.cpp
Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_TabToSpace メンバ一覧

これは全メンバの一覧です。CConvert_TabToSpace継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
CConvert_TabToSpace(int nTabWidth) | CConvert_TabToSpace | [inline]
DoConvert(CNativeW *pcData) | CConvert_TabToSpace | [virtual]
m_nTabWidth | CConvert_TabToSpace | [private]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ToHankaku

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ToHankaku

半角にできるものは全部半角に変換 [詳細]

#include <CConvert_ToHankaku.h>

CConvert_ToHankakuに対する継承グラフ

[凡例]
CConvert_ToHankakuのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
半角にできるものは全部半角に変換

説明

半角にできるものは全部半角に変換

CConvert_ToHankaku.h の 7 行で定義されています。

関数

bool CConvert_ToHankaku::DoConvert ( CNativeW * pcData ) [virtual]

半角にできるものは全部半角に変換

CConvertを実装しています。

CConvert_ToHankaku.cpp の 10 行で定義されています。

参照先 Convert_ZenEisuu_To_HanEisuu(), Convert_ZenhiraToZenkana(), Convert_ZenKana_To_HanKana(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ToHankaku.h
  • CConvert_ToHankaku.cpp
Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ToHankaku メンバ一覧

これは全メンバの一覧です。CConvert_ToHankaku継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ToHankaku | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ToLower

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ToLower

#include <CConvert_ToLower.h>

CConvert_ToLowerに対する継承グラフ

[凡例]
CConvert_ToLowerのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
小文字へ変換

説明

CConvert_ToLower.h の 5 行で定義されています。

関数

bool CConvert_ToLower::DoConvert ( CNativeW * pcData ) [virtual]

小文字へ変換

CConvertを実装しています。

CConvert_ToLower.cpp の 5 行で定義されています。

参照先 CNativeW::GetStringLength(), と CNativeW::GetStringPtr().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ToLower.h
  • CConvert_ToLower.cpp
Sakura-Editorに対してSat Nov 17 20:27:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ToLower メンバ一覧

これは全メンバの一覧です。CConvert_ToLower継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ToLower | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ToUpper

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ToUpper

#include <CConvert_ToUpper.h>

CConvert_ToUpperに対する継承グラフ

[凡例]
CConvert_ToUpperのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)

説明

CConvert_ToUpper.h の 5 行で定義されています。

関数

bool CConvert_ToUpper::DoConvert ( CNativeW * pcData ) [virtual]

CConvertを実装しています。

CConvert_ToUpper.cpp の 5 行で定義されています。

参照先 CNativeW::GetStringLength(), と CNativeW::GetStringPtr().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ToUpper.h
  • CConvert_ToUpper.cpp
Sakura-Editorに対してSat Nov 17 20:27:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ToUpper メンバ一覧

これは全メンバの一覧です。CConvert_ToUpper継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ToUpper | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ToZenhira

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ToZenhira

できる限り全角ひらがなにする [詳細]

#include <CConvert_ToZenhira.h>

CConvert_ToZenhiraに対する継承グラフ

[凡例]
CConvert_ToZenhiraのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
できる限り全角ひらがなにする

説明

できる限り全角ひらがなにする

CConvert_ToZenhira.h の 7 行で定義されています。

関数

bool CConvert_ToZenhira::DoConvert ( CNativeW * pcData ) [virtual]

できる限り全角ひらがなにする

CConvertを実装しています。

CConvert_ToZenhira.cpp の 10 行で定義されています。

参照先 Convert_HankanaToZenkana(), Convert_ZenkanaToZenhira(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ToZenhira.h
  • CConvert_ToZenhira.cpp
Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ToZenhira メンバ一覧

これは全メンバの一覧です。CConvert_ToZenhira継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ToZenhira | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ToZenkana

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ToZenkana

できる限り全角カタカナにする [詳細]

#include <CConvert_ToZenkana.h>

CConvert_ToZenkanaに対する継承グラフ

[凡例]
CConvert_ToZenkanaのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
できる限り全角カタカナにする

説明

できる限り全角カタカナにする

CConvert_ToZenkana.h の 7 行で定義されています。

関数

bool CConvert_ToZenkana::DoConvert ( CNativeW * pcData ) [virtual]

できる限り全角カタカナにする

CConvertを実装しています。

CConvert_ToZenkana.cpp の 10 行で定義されています。

参照先 Convert_HankanaToZenkana(), Convert_ZenhiraToZenkana(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ToZenkana.h
  • CConvert_ToZenkana.cpp
Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ToZenkana メンバ一覧

これは全メンバの一覧です。CConvert_ToZenkana継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ToZenkana | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_Trim

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_Trim

#include <CConvert_Trim.h>

CConvert_Trimに対する継承グラフ

[凡例]
CConvert_Trimのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CConvert_Trim (bool bLeft)
bool | DoConvert (CNativeW *pcData)

Private 変数

bool | m_bLeft

説明

CConvert_Trim.h の 6 行で定義されています。

コンストラクタとデストラクタ

CConvert_Trim::CConvert_Trim ( bool bLeft ) [inline]

CConvert_Trim.h の 8 行で定義されています。

関数

bool CConvert_Trim::DoConvert ( CNativeW * pcData ) [virtual]

TRIM Step2 ConvMemory から 戻ってきた後の処理． CMemory.cppのなかに置かないほうが良いかなと思ってこちらに置きました．

作者:
hor
日付:
2001.12.03 hor 新規作成

2007.10.18 kobake CConvert_Trimに移動

CConvertを実装しています。

CConvert_Trim.cpp の 20 行で定義されています。

参照先 CEOL::GetLen(), GetNextLineW(), CNativeW::GetSizeOfChar(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), WCODE::isBlank(), m_bLeft, NULL, と CNativeW::SetString().

変数

bool CConvert_Trim::m_bLeft [private]

CConvert_Trim.h の 14 行で定義されています。

参照元 DoConvert().

このクラスの説明は次のファイルから生成されました:
  • CConvert_Trim.h
  • CConvert_Trim.cpp
Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_Trim メンバ一覧

これは全メンバの一覧です。CConvert_Trim継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
CConvert_Trim(bool bLeft) | CConvert_Trim | [inline]
DoConvert(CNativeW *pcData) | CConvert_Trim | [virtual]
m_bLeft | CConvert_Trim | [private]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_UuDecode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_UuDecode

#include <CConvert_UuDecode.h>

CConvert_UuDecodeに対する継承グラフ

[凡例]
CConvert_UuDecodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool | DoConvert (CNativeW *pcData)

Static Public メソッド

static void | UUDECODE (const CNativeW &pcSrc, CMemory *pcDst, TCHAR *pszFileName)

説明

CConvert_UuDecode.h の 5 行で定義されています。

関数

bool CConvert_UuDecode::DoConvert ( CNativeW * pcData ) [virtual]

CConvertを実装しています。

void CConvert_UuDecode::UUDECODE | ( | const CNativeW & | pcSrc,
 |  | CMemory * | pcDst,
 |  | TCHAR * | pszFileName |
 | ) |  |  | [static]

引数:
pcSrc | [in]
pcDst | [out]
pszFileName | [out]

CConvert_UuDecode.cpp の 15 行で定義されています。

参照先 _MAX_PATH, _mbstotcs(), CMemory::AppendRawData(), auto_memcmp(), BOOL, WCODE::CR, FALSE, CMemory::GetRawLength(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), WCODE::LF, NULL, CMemory::SetRawData(), TRUE, と UUDECODE_CHAR().

参照元 CViewCommander::Command_UUDECODE().

このクラスの説明は次のファイルから生成されました:
  • CConvert_UuDecode.h
  • CConvert_UuDecode.cpp
Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_UuDecode メンバ一覧

これは全メンバの一覧です。CConvert_UuDecode継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_UuDecode | [virtual]
UUDECODE(const CNativeW &pcSrc, CMemory *pcDst, TCHAR *pszFileName) | CConvert_UuDecode | [static]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ZeneisuToHaneisu

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ZeneisuToHaneisu

全角英数→半角英数 [詳細]

#include <CConvert_ZeneisuToHaneisu.h>

CConvert_ZeneisuToHaneisuに対する継承グラフ

[凡例]
CConvert_ZeneisuToHaneisuのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
全角英数→半角英数

説明

全角英数→半角英数

CConvert_ZeneisuToHaneisu.h の 7 行で定義されています。

関数

bool CConvert_ZeneisuToHaneisu::DoConvert ( CNativeW * pcData ) [virtual]

全角英数→半角英数

CConvertを実装しています。

CConvert_ZeneisuToHaneisu.cpp の 10 行で定義されています。

参照先 Convert_ZenEisuu_To_HanEisuu(), CNativeW::GetStringLength(), と CNativeW::GetStringPtr().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ZeneisuToHaneisu.h
  • CConvert_ZeneisuToHaneisu.cpp
Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ZeneisuToHaneisu メンバ一覧

これは全メンバの一覧です。CConvert_ZeneisuToHaneisu継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ZeneisuToHaneisu | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvert_ZenkanaToHankana

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvert_ZenkanaToHankana

全角カナ→半角カナ [詳細]

#include <CConvert_ZenkanaToHankana.h>

CConvert_ZenkanaToHankanaに対する継承グラフ

[凡例]
CConvert_ZenkanaToHankanaのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

bool DoConvert (CNativeW *pcData)
全角カナ→半角カナ

説明

全角カナ→半角カナ

CConvert_ZenkanaToHankana.h の 7 行で定義されています。

関数

bool CConvert_ZenkanaToHankana::DoConvert ( CNativeW * pcData ) [virtual]

全角カナ→半角カナ

CConvertを実装しています。

CConvert_ZenkanaToHankana.cpp の 10 行で定義されています。

参照先 Convert_ZenKana_To_HanKana(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と CNativeW::SetString().

このクラスの説明は次のファイルから生成されました:
  • CConvert_ZenkanaToHankana.h
  • CConvert_ZenkanaToHankana.cpp
Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvert_ZenkanaToHankana メンバ一覧

これは全メンバの一覧です。CConvert_ZenkanaToHankana継承メンバも含んでいます。

CallConvert(CNativeW *pcData) | CConvert | [inline]
DoConvert(CNativeW *pcData) | CConvert_ZenkanaToHankana | [virtual]
~CConvert() | CConvert | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CConvertMediator

  • 構成
  • クラス階層
  • 構成メンバ

クラス CConvertMediator

#include <CConvert.h>

すべてのメンバ一覧

Static Public メソッド

static void | ConvMemory (CNativeW *pCMemory, int nFuncCode, int nTabWidth)
機能種別によるバッファの変換

Static Protected メソッド

static void | Command_TRIM2 (CNativeW *pCMemory, BOOL bLeft)

説明

CConvert.h の 5 行で定義されています。

関数

void CConvertMediator::ConvMemory | ( | CNativeW * | pCMemory,
 |  | int | nFuncCode,
 |  | int | nTabWidth |
 | ) |  |  | [static]

機能種別によるバッファの変換

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

参照先 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.

参照元 CEditView::ConvSelectedArea().

static void CConvertMediator::Command_TRIM2 | ( | CNativeW * | pCMemory,
 |  | BOOL | bLeft |
 | ) |  |  | [static, protected]

このクラスの説明は次のファイルから生成されました:
  • CConvert.h
  • CConvert.cpp
Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CConvertMediator メンバ一覧

これは全メンバの一覧です。CConvertMediator継承メンバも含んでいます。

Command_TRIM2(CNativeW *pCMemory, BOOL bLeft) | CConvertMediator | [protected, static]
ConvMemory(CNativeW *pCMemory, int nFuncCode, int nTabWidth) | CConvertMediator | [static]

Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CCppPreprocessMng

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCppPreprocessMng

すべてのメンバ一覧

Public メソッド

CCppPreprocessMng (void)
CLogicInt | ScanLine (const wchar_t *, CLogicInt)

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 の 123 行で定義されています。

コンストラクタとデストラクタ

CCppPreprocessMng::CCppPreprocessMng ( void ) [inline]

CEditDoc_FuncList1.cpp の 125 行で定義されています。

関数

CLogicInt CCppPreprocessMng::ScanLine | ( | const wchar_t * | str,
 |  | CLogicInt | _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 の 172 行で定義されています。

参照先 C_IsLineEsc(), C_IsSpace(), m_bitpattern, m_enablebuf, m_ismultiline, m_maxnestlevel, m_stackptr, と wcsncmp_literal.

参照元 CEditDoc::MakeFuncList_C().

変数

bool CCppPreprocessMng::m_ismultiline [private]

複数行のディレクティブ

CEditDoc_FuncList1.cpp の 132 行で定義されています。

参照元 ScanLine().

int CCppPreprocessMng::m_maxnestlevel [private]

ネストレベルの最大値

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

参照元 ScanLine().

int CCppPreprocessMng::m_stackptr [private]

ネストレベル

CEditDoc_FuncList1.cpp の 135 行で定義されています。

参照元 ScanLine().

unsigned int CCppPreprocessMng::m_bitpattern [private]

ネストレベルに対応するビットパターン

m_stackptr = n の時，下から(n-1)bit目に1が入っている

CEditDoc_FuncList1.cpp の 141 行で定義されています。

参照元 ScanLine().

unsigned int CCppPreprocessMng::m_enablebuf [private]

処理の有無を保存するバッファ

CEditDoc_FuncList1.cpp の 142 行で定義されています。

参照元 ScanLine().

このクラスの説明は次のファイルから生成されました:
  • CEditDoc_FuncList1.cpp
Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


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 wchar_t *, CLogicInt) | CCppPreprocessMng |

Sakura-Editorに対してSat Nov 17 20:27:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDataObject

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDataObject

#include <CDropTarget.h>

CDataObjectに対する継承グラフ

[凡例]
CDataObjectのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDataObject (LPCWSTR lpszText)
~CDataObject ()
void | SetText (LPCWSTR lpszText)
DWORD | DragDrop (BOOL bLeft, DWORD dwEffects)
STDMETHOD() | GetData (LPFORMATETC, LPSTGMEDIUM)
STDMETHOD() | GetDataHere (LPFORMATETC, LPSTGMEDIUM)
STDMETHOD() | QueryGetData (LPFORMATETC)
STDMETHOD() | GetCanonicalFormatEtc (LPFORMATETC, LPFORMATETC)
STDMETHOD() | SetData (LPFORMATETC, LPSTGMEDIUM, BOOL)
STDMETHOD() | EnumFormatEtc (DWORD, LPENUMFORMATETC *)
STDMETHOD() | DAdvise (LPFORMATETC, DWORD, LPADVISESINK, LPDWORD)
STDMETHOD() | DUnadvise (DWORD)
STDMETHOD() | EnumDAdvise (LPENUMSTATDATA *)

Private 変数

CLIPFORMAT | m_cfFormat
LPBYTE | m_data
unsigned int | m_size

説明

CDropTarget.h の 111 行で定義されています。

コンストラクタとデストラクタ

CDataObject::CDataObject ( LPCWSTR lpszText ) [inline]

CDropTarget.h の 119 行で定義されています。

参照先 SetText().

CDataObject::~CDataObject ( ) [inline]

CDropTarget.h の 126 行で定義されています。

参照先 NULL, と SetText().

関数

void CDataObject::SetText ( LPCWSTR lpszText )

CDropTarget.cpp の 171 行で定義されています。

参照先 m_cfFormat, m_data, m_size, memcpy_raw(), と NULL.

参照元 CDataObject(), と ~CDataObject().

DWORD CDataObject::DragDrop | ( | BOOL | bLeft,
 |  | DWORD | dwEffects
 | ) |  |

CDropTarget.cpp の 188 行で定義されています。

STDMETHODIMP CDataObject::GetData | ( | LPFORMATETC | lpfe,
 |  | LPSTGMEDIUM | lpsm
 | ) |  |

CDropTarget.cpp の 197 行で定義されています。

参照先 m_cfFormat, m_data, m_size, memcpy_raw(), と NULL.

STDMETHODIMP CDataObject::GetDataHere | ( | LPFORMATETC | lpfe,
 |  | LPSTGMEDIUM | lpsm
 | ) |  |

CDropTarget.cpp の 227 行で定義されています。

参照先 m_cfFormat, m_data, m_size, memcpy_raw(), と NULL.

STDMETHODIMP CDataObject::QueryGetData ( LPFORMATETC lpfe )

CDropTarget.cpp の 253 行で定義されています。

参照先 m_cfFormat, m_data, と NULL.

STDMETHODIMP CDataObject::GetCanonicalFormatEtc | ( | LPFORMATETC | ,
 |  | LPFORMATETC |
 | ) |  |

CDropTarget.cpp の 270 行で定義されています。

STDMETHODIMP CDataObject::SetData | ( | LPFORMATETC | ,
 |  | LPSTGMEDIUM | ,
 |  | BOOL |
 | ) |  |

CDropTarget.cpp の 275 行で定義されています。

STDMETHODIMP CDataObject::EnumFormatEtc | ( | DWORD | ,
 |  | LPENUMFORMATETC * |
 | ) |  |

CDropTarget.cpp の 280 行で定義されています。

STDMETHODIMP CDataObject::DAdvise | ( | LPFORMATETC | ,
 |  | DWORD | ,
 |  | LPADVISESINK | ,
 |  | LPDWORD |
 | ) |  |

CDropTarget.cpp の 285 行で定義されています。

STDMETHODIMP CDataObject::DUnadvise ( DWORD )

CDropTarget.cpp の 290 行で定義されています。

STDMETHODIMP CDataObject::EnumDAdvise ( LPENUMSTATDATA * )

CDropTarget.cpp の 295 行で定義されています。

変数

CLIPFORMAT CDataObject::m_cfFormat [private]

CDropTarget.h の 113 行で定義されています。

参照元 GetData(), GetDataHere(), QueryGetData(), と SetText().

LPBYTE CDataObject::m_data [private]

CDropTarget.h の 115 行で定義されています。

参照元 GetData(), GetDataHere(), QueryGetData(), と SetText().

unsigned int CDataObject::m_size [private]

CDropTarget.h の 116 行で定義されています。

参照元 GetData(), GetDataHere(), と SetText().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Nov 17 20:27:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDataObject メンバ一覧

これは全メンバの一覧です。CDataObject継承メンバも含んでいます。

CDataObject(LPCWSTR lpszText) | CDataObject | [inline]
CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< IDataObject > | [inline]
DAdvise(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD) | CDataObject |
DragDrop(BOOL bLeft, DWORD dwEffects) | CDataObject |
DUnadvise(DWORD) | CDataObject |
EnumDAdvise(LPENUMSTATDATA *) | CDataObject |
EnumFormatEtc(DWORD, LPENUMFORMATETC *) | CDataObject |
GetCanonicalFormatEtc(LPFORMATETC, LPFORMATETC) | CDataObject |
GetData(LPFORMATETC, LPSTGMEDIUM) | CDataObject |
GetDataHere(LPFORMATETC, LPSTGMEDIUM) | CDataObject |
m_cfFormat | CDataObject | [private]
m_data | CDataObject | [private]
m_size | CDataObject | [private]
QueryGetData(LPFORMATETC) | CDataObject |
QueryInterface(REFIID riid, void **ppvObj) | CYbInterfaceImpl< IDataObject > | [inline]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
SetData(LPFORMATETC, LPSTGMEDIUM, BOOL) | CDataObject |
SetText(LPCWSTR lpszText) | CDataObject |
STDMETHOD_(ULONG, AddRef)(void) | CYbInterfaceImpl< IDataObject > | [inline]
STDMETHOD_(ULONG, Release)(void) | CYbInterfaceImpl< IDataObject > | [inline]
~CDataObject() | CDataObject | [inline]
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Nov 17 20:27:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDataProfile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDataProfile

各種データ変換付きCProfile [詳細]

#include <CDataProfile.h>

CDataProfileに対する継承グラフ

[凡例]
CDataProfileのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

template<class T>
bool | IOProfileData (const WCHAR *pszSectionName, const WCHAR *pszEntryKey, T &tEntryValue, const T &tErrorValue=T())
template<class T>
bool | IOProfileData_WrapInt (const WCHAR *pszSectionName, const WCHAR *pszEntryKey, T &nEntryValue)
intを介して任意型の入出力を行う

Protected メソッド

void | profile_to_value (const wstring &profile, bool *value)
void | value_to_profile (const bool &value, wstring *profile)
void | profile_to_value (const wstring &profile, int *value)
void | value_to_profile (const int &value, wstring *profile)
void | profile_to_value (const wstring &profile, WORD *value)
void | value_to_profile (const WORD &value, wstring *profile)
void | profile_to_value (const wstring &profile, ACHAR *value)
void | value_to_profile (const ACHAR &value, wstring *profile)
void | profile_to_value (const wstring &profile, WCHAR *value)
void | value_to_profile (const WCHAR &value, wstring *profile)
void | profile_to_value (const wstring &profile, StringBufferW *value)
void | value_to_profile (const StringBufferW &value, wstring *profile)
void | profile_to_value (const wstring &profile, StringBufferA *value)
void | value_to_profile (const StringBufferA &value, wstring *profile)
template<int N>
void | profile_to_value (const wstring &profile, StaticString< WCHAR, N > *value)
template<int N>
void | value_to_profile (const StaticString< WCHAR, N > &value, wstring *profile)
template<int N>
void | profile_to_value (const wstring &profile, StaticString< ACHAR, N > *value)
template<int N>
void | value_to_profile (const StaticString< ACHAR, N > &value, wstring *profile)

Static Protected メソッド

static const wchar_t * | _work_itow (int n)

Private 型

typedef std::wstring | wstring
typedef std::tstring | tstring

説明

各種データ変換付きCProfile

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

型定義

typedef std::wstring CDataProfile::wstring [private]

CProfileを再定義しています。

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

typedef std::tstring CDataProfile::tstring [private]

CProfileを再定義しています。

CDataProfile.h の 53 行で定義されています。

関数

static const wchar_t* CDataProfile::_work_itow ( int n ) [inline, static, protected]

CDataProfile.h の 56 行で定義されています。

参照元 value_to_profile().

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | bool * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 67 行で定義されています。

参照元 IOProfileData().

void CDataProfile::value_to_profile | ( | const bool & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 72 行で定義されています。

参照先 _work_itow().

参照元 IOProfileData().

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | int * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 77 行で定義されています。

void CDataProfile::value_to_profile | ( | const int & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 81 行で定義されています。

参照先 _work_itow().

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | WORD * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 94 行で定義されています。

void CDataProfile::value_to_profile | ( | const WORD & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 98 行で定義されています。

参照先 _work_itow().

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | ACHAR * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 103 行で定義されています。

参照先 assert_warning.

void CDataProfile::value_to_profile | ( | const ACHAR & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 115 行で定義されています。

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | WCHAR * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 122 行で定義されています。

void CDataProfile::value_to_profile | ( | const WCHAR & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 126 行で定義されています。

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | StringBufferW * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 131 行で定義されています。

参照先 StringBufferW::nDataCount, と StringBufferW::pData.

void CDataProfile::value_to_profile | ( | const StringBufferW & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 135 行で定義されています。

参照先 StringBufferW::pData.

void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | StringBufferA * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 140 行で定義されています。

参照先 StringBufferA::nDataCount, StringBufferA::pData, と to_achar().

void CDataProfile::value_to_profile | ( | const StringBufferA & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 144 行で定義されています。

参照先 StringBufferA::pData, と to_wchar().

template<int N>
void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | StaticString< WCHAR, N > * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 150 行で定義されています。

参照先 StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferCount(), と StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer().

template<int N>
void CDataProfile::value_to_profile | ( | const StaticString< WCHAR, N > & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 155 行で定義されています。

参照先 StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer().

template<int N>
void CDataProfile::profile_to_value | ( | const wstring & | profile,
 |  | StaticString< ACHAR, N > * | value |
 | ) |  |  | [inline, protected]

CDataProfile.h の 161 行で定義されています。

参照先 StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferCount(), StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer(), と to_achar().

template<int N>
void CDataProfile::value_to_profile | ( | const StaticString< ACHAR, N > & | value,
 |  | wstring * | profile |
 | ) |  |  | [inline, protected]

CDataProfile.h の 166 行で定義されています。

参照先 StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer(), と to_wchar().

template<class T>
bool CDataProfile::IOProfileData | ( | const WCHAR * | pszSectionName,
 |  | const WCHAR * | pszEntryKey,
 |  | T & | tEntryValue,
 |  | const T & | tErrorValue = T() |
 | ) |  |  | [inline]

CDataProfile.h の 180 行で定義されています。

参照先 CProfile::GetProfileDataImp(), CProfile::m_bRead, profile_to_value(), CProfile::SetProfileDataImp(), と value_to_profile().

参照元 CShareData::IO_ColorSet(), IOProfileData_WrapInt(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), 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().

template<class T>
bool CDataProfile::IOProfileData_WrapInt | ( | const WCHAR * | pszSectionName,
 |  | const WCHAR * | pszEntryKey,
 |  | T & | nEntryValue |
 | ) |  |  | [inline]

intを介して任意型の入出力を行う

CDataProfile.h の 210 行で定義されています。

参照先 IOProfileData().

参照元 CShareData::ShareData_IO_Common(), と CShareData::ShareData_IO_Mru().

このクラスの説明は次のファイルから生成されました:
  • CDataProfile.h
Sakura-Editorに対してSat Nov 17 20:27:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDataProfile メンバ一覧

これは全メンバの一覧です。CDataProfile継承メンバも含んでいます。

_work_itow(int n) | CDataProfile | [inline, protected, static]
CProfile() | CProfile | [inline]
DUMP(void) | CProfile |
GetProfileDataImp(const wstring &strSectionName, const wstring &strEntryKey, wstring &strEntryValue) | CProfile | [protected]
Init(void) | CProfile |
IOProfileData(const WCHAR *pszSectionName, const WCHAR *pszEntryKey, T &tEntryValue, const T &tErrorValue=T()) | CDataProfile | [inline]
IOProfileData_WrapInt(const WCHAR *pszSectionName, const WCHAR *pszEntryKey, T &nEntryValue) | CDataProfile | [inline]
IsReadingMode(void) | CProfile | [inline]
m_bRead | CProfile | [protected]
m_ProfileData | CProfile | [protected]
m_strProfileName | CProfile | [protected]
profile_to_value(const wstring &profile, bool *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, int *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, WORD *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, ACHAR *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, WCHAR *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, StringBufferW *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, StringBufferA *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, StaticString< WCHAR, N > *value) | CDataProfile | [inline, protected]
profile_to_value(const wstring &profile, StaticString< ACHAR, N > *value) | CDataProfile | [inline, protected]
ReadOneline(const wstring &line) | CProfile | [protected]
ReadProfile(const TCHAR *) | CProfile |
SetProfileDataImp(const wstring &strSectionName, const wstring &strEntryKey, const wstring &strEntryValue) | CProfile | [protected]
SetReadingMode(void) | CProfile | [inline]
SetWritingMode(void) | CProfile | [inline]
tstring typedef | CDataProfile | [private]
value_to_profile(const bool &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const int &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const WORD &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const ACHAR &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const WCHAR &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const StringBufferW &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const StringBufferA &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const StaticString< WCHAR, N > &value, wstring *profile) | CDataProfile | [inline, protected]
value_to_profile(const StaticString< ACHAR, N > &value, wstring *profile) | CDataProfile | [inline, protected]
WriteFile(const tstring &strFilename, const std::vector< wstring > &vecLine) | CProfile | [protected]
WriteProfile(const TCHAR *, const WCHAR *pszComment) | CProfile |
wstring typedef | CDataProfile | [private]
~CProfile() | CProfile | [inline]

Sakura-Editorに対してSat Nov 17 20:27:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDialog

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDialog

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

#include <CDialog.h>

CDlgAbout, CDlgCancel, CDlgCompare, CDlgCtrlCode, CDlgDiff, CDlgExec, CDlgFavorite, CDlgFileUpdateQuery, CDlgFind, CDlgFuncList, CDlgGrep, CDlgJump, CDlgKeywordSelect, CDlgPrintPage, CDlgPrintSetting, CDlgProperty, CDlgReplace, CDlgSameColor, CDlgTagJumpList, CDlgTagsMake, CDlgTypeList, CDlgWinSize, と CHokanMgrに継承されています。

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)
HWND | GetHwnd () const
void | _SetHwnd (HWND hwnd)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hwndSizeBox
LPARAM | m_lParam
BOOL | m_bModal
int | m_nShowCmd
int | m_nWidth
int | m_nHeight
int | m_xPos
int | m_yPos
SFilePath m_szHelpFile
DLLSHAREDATA * m_pShareData
BOOL | m_bInited

Protected メソッド

void | CreateSizeBox (void)
BOOL | OnCommand (WPARAM, LPARAM)

Private 変数

HWND | m_hWnd

説明

ダイアログウィンドウを扱うクラス

ダイアログボックスを作るときにはここから継承させる．

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

コンストラクタとデストラクタ

CDialog::CDialog ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

参照先 CEditApp::GetHelpFilePath(), CShareData::getInstance(), CShareData::GetShareData(), TSingleInstance< CEditApp >::Instance(), 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 の 81 行で定義されています。

参照先 CloseDialog().

関数

INT_PTR CDialog::DispatchEvent | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDlgAbout, と CDlgSameColorで再定義されています。

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

参照先 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 の 93 行で定義されています。

参照先 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(), CDlgPrintSetting::DoModal(), CDlgPrintPage::DoModal(), CDlgKeywordSelect::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 の 114 行で定義されています。

参照先 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().

void CDialog::CloseDialog ( int nModalRetVal )

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

参照先 m_bModal, m_hWnd, と NULL.

参照元 CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TagsMake(), CEditView::DoGrep(), CDlgPrintPage::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgFileUpdateQuery::OnBnClicked(), CDlgExec::OnBnClicked(), OnBnClicked(), CDlgSameColor::OnInitDialog(), CPrintPreview::OnPrint(), と ~CDialog().

BOOL CDialog::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDlgAbout, CDlgCancel, CDlgCtrlCode, CDlgFavorite, CDlgFileUpdateQuery, CDlgFuncList, CDlgGrep, CDlgKeywordSelect, CDlgPrintSetting, CDlgReplace, CDlgSameColor, CDlgTagJumpList, CDlgWinSize, と CHokanMgrで再定義されています。

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

参照先 DWLP_USER, GetMonitorWorkRect(), m_bInited, m_hWnd, m_nHeight, m_nShowCmd, m_nWidth, m_xPos, m_yPos, MYTRACE_A, NULL, SetData(), SetWindowLongPtr, と TRUE.

参照元 DispatchEvent(), CHokanMgr::OnInitDialog(), CDlgWinSize::OnInitDialog(), CDlgTagJumpList::OnInitDialog(), CDlgSameColor::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgKeywordSelect::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgFuncList::OnInitDialog(), CDlgFileUpdateQuery::OnInitDialog(), CDlgFavorite::OnInitDialog(), CDlgCtrlCode::OnInitDialog(), CDlgCancel::OnInitDialog(), と CDlgAbout::OnInitDialog().

BOOL CDialog::OnDestroy ( void ) [virtual]

CDlgFuncList, CDlgPrintSetting, と CHokanMgrで再定義されています。

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

参照先 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::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

CDlgCtrlCode, CDlgFavorite, CDlgFuncList, CDlgJump, CDlgPrintSetting, と CDlgTagJumpListで再定義されています。

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

参照先 FALSE.

参照元 DispatchEvent(), CDlgTagJumpList::OnNotify(), CDlgFavorite::OnNotify(), と CDlgCtrlCode::OnNotify().

BOOL CDialog::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDlgFuncList, と CHokanMgrで再定義されています。

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

参照先 FALSE, m_hWnd, m_hwndSizeBox, m_nHeight, m_nWidth, m_xPos, m_yPos, NULL, と TRUE.

参照元 DispatchEvent(), CHokanMgr::OnSize(), と CDlgFuncList::OnSize().

BOOL CDialog::OnMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

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

参照先 FALSE, m_bInited, m_hWnd, m_nHeight, m_nWidth, m_xPos, m_yPos, MYTRACE_A, と TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnDrawItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

CDlgSameColorで再定義されています。

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

参照先 TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnTimer ( WPARAM wParam ) [inline, virtual]

CDlgPrintSetting, と CDlgTagJumpListで再定義されています。

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

参照先 TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnKeyDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

CHokanMgrで再定義されています。

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

参照先 TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnDeviceChange | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

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

参照先 TRUE.

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 の 63 行で定義されています。

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 の 64 行で定義されています。

参照元 OnInitDialog().

BOOL CDialog::OnBnClicked ( int wID ) [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 の 248 行で定義されています。

参照先 CloseDialog(), FALSE, と TRUE.

参照元 CDlgWinSize::OnBnClicked(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::OnBnClicked(), CDlgProperty::OnBnClicked(), CDlgPrintSetting::OnBnClicked(), CDlgKeywordSelect::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFuncList::OnBnClicked(), CDlgFavorite::OnBnClicked(), CDlgDiff::OnBnClicked(), CDlgCtrlCode::OnBnClicked(), CDlgCompare::OnBnClicked(), CDlgAbout::OnBnClicked(), と OnCommand().

virtual BOOL CDialog::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [inline, virtual]

CDlgDiff, CDlgFuncList, CDlgJump, CDlgPrintSetting, CDlgTagJumpList, と CHokanMgrで再定義されています。

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

参照先 FALSE.

参照元 CDlgTagJumpList::OnCbnSelChange(), CDlgDiff::OnCbnSelChange(), OnCommand(), と CDlgDiff::OnEditChange().

virtual BOOL CDialog::OnCbnEditChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [inline, virtual]

CDlgTagJumpListで再定義されています。

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

参照先 FALSE.

参照元 CDlgTagJumpList::OnCbnEditChange(), と OnCommand().

virtual BOOL CDialog::OnEditChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [inline, virtual]

CDlgDiffで再定義されています。

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

参照先 FALSE.

参照元 OnCommand().

virtual BOOL CDialog::OnLbnDblclk ( int wID ) [inline, virtual]

CDlgTypeList, と CHokanMgrで再定義されています。

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

参照先 FALSE.

参照元 OnCommand().

virtual BOOL CDialog::OnKillFocus | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

CHokanMgrで再定義されています。

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

参照先 FALSE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnActivate | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

CDlgFavoriteで再定義されています。

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

参照先 FALSE.

参照元 DispatchEvent(), と CDlgFavorite::OnActivate().

virtual int CDialog::OnVKeyToItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

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

参照元 DispatchEvent().

virtual LRESULT CDialog::OnCharToItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [inline, virtual]

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

参照元 DispatchEvent().

BOOL CDialog::OnPopupHelp | ( | WPARAM | wPara,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

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

参照先 GetHelpIdTable(), m_szHelpFile, MyWinHelp(), TRUE, と ULONG_PTR.

参照元 DispatchEvent().

BOOL CDialog::OnContextMenu | ( | WPARAM | wPara,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

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

参照先 GetHelpIdTable(), m_hWnd, m_szHelpFile, MyWinHelp(), TRUE, と ULONG_PTR.

参照元 DispatchEvent().

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 の 433 行で定義されています。

参照先 p_helpids.

参照元 OnContextMenu(), と OnPopupHelp().

HWND CDialog::GetHwnd ( ) const [inline]

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

参照元 CViewCommander::Command_FUNCLIST(), CViewCommander::Command_INSFILE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_TagsMake(), CControlTray::DoGrep(), CHokanMgr::DoHokan(), CHokanMgr::DoModeless(), CPrintPreview::DrawPageText(), CDlgWinSize::GetData(), CDlgTagsMake::GetData(), CDlgTagJumpList::GetData(), CDlgReplace::GetData(), CDlgPrintSetting::GetData(), CDlgPrintPage::GetData(), CDlgKeywordSelect::GetData(), CDlgJump::GetData(), CDlgGrep::GetData(), CDlgFuncList::GetData(), CDlgFind::GetData(), CDlgFavorite::GetData(), CDlgExec::GetData(), CDlgDiff::GetData(), CDlgCtrlCode::GetData(), CDlgCompare::GetData(), CHokanMgr::Hide(), IsFuncChecked(), CEditWnd::MessageLoop(), CDlgFavorite::OnActivate(), 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(), CDlgAbout::OnBnClicked(), CDlgPrintSetting::OnCbnSelChange(), CDlgJump::OnCbnSelChange(), CDlgFuncList::OnCbnSelChange(), CDlgDiff::OnCbnSelChange(), CDlgPrintSetting::OnChangeSettingType(), CDlgPrintSetting::OnDestroy(), CDlgDiff::OnEditChange(), CDlgWinSize::OnInitDialog(), CDlgTagJumpList::OnInitDialog(), CDlgSameColor::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgFuncList::OnInitDialog(), CDlgFavorite::OnInitDialog(), CDlgCtrlCode::OnInitDialog(), CDlgCancel::OnInitDialog(), CDlgAbout::OnInitDialog(), CDlgFuncList::OnJump(), CDlgTypeList::OnLbnDblclk(), CDlgTagJumpList::OnNotify(), CDlgJump::OnNotify(), CDlgFuncList::OnNotify(), CDlgFavorite::OnNotify(), CDlgCtrlCode::OnNotify(), CPrintPreview::OnPrint(), CDlgSameColor::OnSelChangeListColors(), CHokanMgr::OnSize(), CDlgFuncList::OnSize(), CDlgPrintSetting::OnSpin(), CDlgTagJumpList::OnTimer(), CDlgPrintSetting::OnTimer(), CDlgFavorite::RefreshListOne(), CDlgWinSize::RenewItemState(), CEditWnd::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(), CDlgFavorite::SetData(), CDlgExec::SetData(), CDlgDiff::SetData(), CDlgCtrlCode::SetData(), CDlgCompare::SetData(), SetData_EnumFontFamProc(), CDlgFavorite::SetDataOne(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), CDlgFuncList::SetTreeJava(), CHokanMgr::ShowTip(), CDlgTagJumpList::StartTimer(), CDlgTagJumpList::StopTimer(), と CDlgTagJumpList::UpdateData().

void CDialog::_SetHwnd ( HWND hwnd ) [inline]

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

参照元 CHokanMgr::OnInitDialog(), CDlgWinSize::OnInitDialog(), CDlgTagJumpList::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgKeywordSelect::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgFuncList::OnInitDialog(), CDlgFavorite::OnInitDialog(), CDlgCtrlCode::OnInitDialog(), CDlgCancel::OnInitDialog(), と CDlgAbout::OnInitDialog().

void CDialog::CreateSizeBox ( void ) [protected]

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

参照先 m_hInstance, m_hWnd, m_hwndSizeBox, と NULL.

参照元 CHokanMgr::OnDestroy(), と CDlgFuncList::OnInitDialog().

BOOL CDialog::OnCommand | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

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

参照先 FALSE, OnBnClicked(), OnCbnEditChange(), OnCbnSelChange(), OnEditChange(), と OnLbnDblclk().

参照元 DispatchEvent().

変数

HINSTANCE CDialog::m_hInstance

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

参照元 CDialog(), CreateSizeBox(), DoModal(), DoModeless(), CDlgPrintSetting::OnBnClicked(), CDlgExec::OnBnClicked(), CDlgDiff::OnBnClicked(), CDlgGrep::OnInitDialog(), と CDlgAbout::OnInitDialog().

HWND CDialog::m_hwndParent

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

参照元 CDialog(), DoModal(), DoModeless(), CHokanMgr::Hide(), HokanList_SubclassProc(), CDlgFuncList::OnJump(), CDlgFuncList::OnNotify(), と CDlgPrintSetting::SetData().

HWND CDialog::m_hWnd [private]

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

参照元 CDialog(), CloseDialog(), CreateSizeBox(), DispatchEvent(), DoModeless(), OnContextMenu(), OnDestroy(), OnInitDialog(), OnMove(), と OnSize().

HWND CDialog::m_hwndSizeBox

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

参照元 CDialog(), CreateSizeBox(), OnDestroy(), と OnSize().

LPARAM CDialog::m_lParam

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

参照元 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().

BOOL CDialog::m_bModal

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

参照元 CloseDialog(), DoModal(), DoModeless(), CDlgFind::GetData(), CDlgReplace::OnBnClicked(), CDlgFuncList::OnBnClicked(), CDlgFind::OnBnClicked(), と CDlgFuncList::OnJump().

int CDialog::m_nShowCmd

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

参照元 CDialog(), OnDestroy(), と OnInitDialog().

int CDialog::m_nWidth

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

参照元 CDialog(), CDlgFuncList::OnDestroy(), OnDestroy(), CDlgFuncList::OnInitDialog(), OnInitDialog(), OnMove(), OnSize(), と CHokanMgr::ShowTip().

int CDialog::m_nHeight

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

参照元 CDialog(), CDlgFuncList::OnDestroy(), OnDestroy(), CDlgFuncList::OnInitDialog(), OnInitDialog(), OnMove(), OnSize(), と CHokanMgr::ShowTip().

int CDialog::m_xPos

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

参照元 CDialog(), CDlgFuncList::OnDestroy(), OnDestroy(), CDlgFuncList::OnInitDialog(), OnInitDialog(), OnMove(), と OnSize().

int CDialog::m_yPos

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

参照元 CDialog(), CDlgFuncList::OnDestroy(), OnDestroy(), CDlgFuncList::OnInitDialog(), OnInitDialog(), OnMove(), と OnSize().

SFilePath CDialog::m_szHelpFile

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

参照元 CDialog(), CDlgWinSize::OnBnClicked(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::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().

DLLSHAREDATA* CDialog::m_pShareData

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

参照元 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(), CDlgReplace::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFuncList::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), CDlgFuncList::OnJump(), CDlgFuncList::OnNotify(), CDlgTypeList::SetData(), CDlgTagsMake::SetData(), CDlgTagJumpList::SetData(), CDlgReplace::SetData(), CDlgProperty::SetData(), CDlgJump::SetData(), CDlgGrep::SetData(), CDlgFuncList::SetData(), CDlgFind::SetData(), CDlgExec::SetData(), CDlgDiff::SetData(), と CDlgCompare::SetData().

BOOL CDialog::m_bInited

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

参照元 DoModal(), DoModeless(), OnInitDialog(), と OnMove().

このクラスの説明は次のファイルから生成されました:
  • CDialog.h
  • CDialog.cpp
Sakura-Editorに対してSat Nov 17 20:27:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDialog メンバ一覧

これは全メンバの一覧です。CDialog継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog | [private]
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 Nov 17 20:27:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDicMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDicMgr

#include <CDicMgr.h>

すべてのメンバ一覧

Public メソッド

CDicMgr ()
~CDicMgr ()

Static Public メソッド

static BOOL | Search (const wchar_t *, const int, CNativeW **, CNativeW **, const TCHAR *, int *)
static int | HokanSearch (const wchar_t *, BOOL, CNativeW **, int, const TCHAR *)

説明

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

コンストラクタとデストラクタ

CDicMgr::CDicMgr ( )

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

CDicMgr::~CDicMgr ( )

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

関数

BOOL CDicMgr::Search | ( | const wchar_t * | pszKey,
 |  | const | int,
 |  | CNativeW ** | ppcmemKey,
 |  | CNativeW ** | ppcmemMean,
 |  | const TCHAR * | pszKeyWordHelpFile,
 |  | int * | pLine |
 | ) |  |  | [static]

キーワードの検索 最初に見つかったキーワードの意味を返す

日付:
2006.04.10 fon 検索ヒット行を返す引数pLineを追加
引数:
pszKey | 検索キーワード
int | 検索キーワードの長さ
ppcmemKey | 見つかったキーワード．呼び出し元の責任で解放する．
ppcmemMean | 見つかったキーワードに対応する辞書内容．呼び出し元の責任で解放する．
pszKeyWordHelpFile | キーワードヘルプファイルのパス名
pLine | 見つかったキーワードのキーワードヘルプファイル内での行番号

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

参照先 _countof, FALSE, LINEREADBUFSIZE, NULL, CTextInputStream::ReadLineW(), CNativeW::SetString(), と TRUE.

int CDicMgr::HokanSearch | ( | const wchar_t * | pszKey,
 |  | BOOL | bHokanLoHiCase,
 |  | CNativeW ** | ppcmemKouho,
 |  | int | nMaxKouho,
 |  | const TCHAR * | pszKeyWordFile |
 | ) |  |  | [static]

引数:
bHokanLoHiCase | 英大文字小文字を同一視する
ppcmemKouho [out] 候補リスト。改行(
)区切り。
nMaxKouho | Max候補数(0==無制限)

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

参照先 CNativeW::AppendString(), auto_memcmp(), auto_memicmp(), CStream::Close(), NULL, と CTextInputStream::ReadLineW().

このクラスの説明は次のファイルから生成されました:
  • CDicMgr.h
  • CDicMgr.cpp
Sakura-Editorに対してSat Nov 17 20:27:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDicMgr メンバ一覧

これは全メンバの一覧です。CDicMgr継承メンバも含んでいます。

CDicMgr() | CDicMgr |
HokanSearch(const wchar_t *, BOOL, CNativeW **, int, const TCHAR *) | CDicMgr | [static]
Search(const wchar_t *, const int, CNativeW **, CNativeW **, const TCHAR *, int *) | CDicMgr | [static]
~CDicMgr() | CDicMgr |

Sakura-Editorに対してSat Nov 17 20:27:51 2007に生成されました。 doxygen 1.5.4


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 の 43 行で定義されています。

関数

int CDlgAbout::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_ABOUT, と NULL.

参照元 CViewCommander::Command_ABOUT(), CControlTray::DispatchEvent(), と CEditWnd::OnCommand().

INT_PTR CDlgAbout::DispatchEvent | ( | HWND | hWnd,
 |  | UINT | wMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

標準以外のメッセージを捕捉する

CDialogを再定義しています。

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

参照先 CDialog::DispatchEvent(), と INT_PTR.

BOOL CDlgAbout::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _MAX_PATH, CDialog::_SetHwnd(), auto_sprintf(), COMPILER_TYPE, COMPILER_VER, ApiWrap::DlgItem_SetText(), FN_APP_ICON, GetAppIcon(), GetAppVersionInfo(), CDialog::GetHwnd(), 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, m_UrlUrWnd, NULL, CDialog::OnInitDialog(), SendMessageAny, と CUrlWnd::SubclassWindow().

BOOL CDlgAbout::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, CDialog::GetHwnd(), IDC_STATIC_URL_ORG, IDC_STATIC_URL_UR, NULL, CDialog::OnBnClicked(), と TRUE.

LPVOID CDlgAbout::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

CUrlWnd CDlgAbout::m_UrlUrWnd [private]

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

参照元 OnInitDialog().

CUrlWnd CDlgAbout::m_UrlOrgWnd [private]

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

このクラスの説明は次のファイルから生成されました:
  • CDlgAbout.h
  • CDlgAbout.cpp
Sakura-Editorに対してSat Nov 17 20:27:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgAbout メンバ一覧

これは全メンバの一覧です。CDlgAbout継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:52 2007に生成されました。 doxygen 1.5.4


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 | hInstance,
 |  | HWND | hwndParent,
 |  | int | nDlgTemplete
 | ) |  |

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

参照先 CDialog::DoModal(), FALSE, m_bCANCEL, と NULL.

HWND CDlgCancel::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int | nDlgTemplete
 | ) |  |

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

参照先 CDialog::DoModeless(), FALSE, m_bCANCEL, と NULL.

参照元 CViewCommander::Command_INSFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TagsMake(), CEditView::DoGrep(), CPrintPreview::OnPrint(), と CDocLineMgr::ReplaceData().

BOOL CDlgCancel::IsCanceled ( void ) [inline]

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

参照先 m_bCANCEL.

参照元 CViewCommander::Command_INSFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TagsMake(), と CPrintPreview::OnPrint().

BOOL CDlgCancel::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), CDialog::GetHwnd(), NULL, CDialog::OnInitDialog(), と SendMessageAny.

BOOL CDlgCancel::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, m_bCANCEL, と TRUE.

LPVOID CDlgCancel::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

BOOL CDlgCancel::m_bCANCEL

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

参照元 CDlgCancel(), CViewCommander::Command_REPLACE_ALL(), DoModal(), DoModeless(), IsCanceled(), と OnBnClicked().

このクラスの説明は次のファイルから生成されました:
  • CDlgCancel.h
  • CDlgCancel.cpp
Sakura-Editorに対してSat Nov 17 20:27:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCancel メンバ一覧

これは全メンバの一覧です。CDlgCancel継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
IsCanceled(void) | CDlgCancel | [inline]
m_bCANCEL | CDlgCancel |
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgCompare

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgCompare

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

#include <CDlgCompare.h>

CDlgCompareに対する継承グラフ

[凡例]
CDlgCompareのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgCompare ()
int | DoModal (HINSTANCE, HWND, LPARAM, const TCHAR *, BOOL, TCHAR *, HWND *)

Public 変数

const TCHAR * | m_pszPath
BOOL | m_bIsModified
TCHAR * | 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 | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam,
 |  | const TCHAR * | pszPath,
 |  | BOOL | bIsModified,
 |  | TCHAR * | pszComparePath,
 |  | HWND * | phwndCompareWnd
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_COMPARE, m_bIsModified, m_phwndCompareWnd, m_pszComparePath, と m_pszPath.

参照元 CViewCommander::Command_COMPARE().

BOOL CDlgCompare::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 F_COMPARE, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_HELP, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), と TRUE.

LPVOID CDlgCompare::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgCompare::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 auto_sprintf(), ApiWrap::DlgItem_SetText(), FALSE, EditNode::GetHwnd(), CDialog::GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CEditDoc::GetOwnerHwnd(), gm_pszCodeNameArr_Bracket, IDC_CHECK_TILE_H, IDC_LIST_FILES, IDC_STATIC_COMPARESRC, IsValidCodeTypeExceptSJIS(), ApiWrap::List_AddString(), m_bCompareAndTileHorz, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, m_bIsModified, FileInfo::m_bIsModified, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, CDialog::m_lParam, FileInfo::m_nCharCode, CDialog::m_pShareData, m_pszPath, CommonSetting::m_sTabBar, FileInfo::m_szPath, MYWM_GETFILEINFO, SendMessageAny, と TRUE.

int CDlgCompare::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _tcscpy(), CDialog::GetHwnd(), IDC_CHECK_TILE_H, IDC_LIST_FILES, m_bCompareAndTileHorz, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, m_phwndCompareWnd, CDialog::m_pShareData, m_pszComparePath, FileInfo::m_szPath, MYWM_GETFILEINFO, SendMessageAny, と TRUE.

参照元 OnBnClicked().

変数

const TCHAR* CDlgCompare::m_pszPath

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

参照元 DoModal(), と SetData().

BOOL CDlgCompare::m_bIsModified

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

参照元 DoModal(), と SetData().

TCHAR* CDlgCompare::m_pszComparePath

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

参照元 DoModal(), と GetData().

HWND* CDlgCompare::m_phwndCompareWnd

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

参照元 DoModal(), と GetData().

BOOL CDlgCompare::m_bCompareAndTileHorz

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

参照元 CDlgCompare(), CViewCommander::Command_COMPARE(), GetData(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgCompare.h
  • CDlgCompare.cpp
Sakura-Editorに対してSat Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCompare メンバ一覧

これは全メンバの一覧です。CDlgCompare継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
CDialog() | CDialog |
CDlgCompare() | CDlgCompare |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const TCHAR *, BOOL, TCHAR *, 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]
GetHwnd() const | CDialog | [inline]
m_bCompareAndTileHorz | CDlgCompare |
m_bInited | CDialog |
m_bIsModified | CDlgCompare |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgCtrlCode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgCtrlCode

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

#include <CDlgCtrlCode.h>

CDlgCtrlCodeに対する継承グラフ

[凡例]
CDlgCtrlCodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgCtrlCode ()
int | DoModal (HINSTANCE, HWND, LPARAM)
wchar_t | GetCharCode () const
選択された文字コードを取得

Private メソッド

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)

Private 変数

wchar_t | m_nCode

説明

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

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

コンストラクタとデストラクタ

CDlgCtrlCode::CDlgCtrlCode ( )

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

参照先 m_nCode.

関数

int CDlgCtrlCode::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), と IDD_CTRLCODE.

参照元 CViewCommander::Command_CtrlCode_Dialog().

wchar_t CDlgCtrlCode::GetCharCode ( ) const [inline]

選択された文字コードを取得

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

参照先 m_nCode.

参照元 CViewCommander::Command_CtrlCode_Dialog().

BOOL CDlgCtrlCode::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [private, virtual]

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), CDialog::GetHwnd(), IDC_LIST_CTRLCODE, と CDialog::OnInitDialog().

BOOL CDlgCtrlCode::OnBnClicked ( int wID ) [private, virtual]

CDialogを再定義しています。

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

参照先 F_CTRL_CODE_DIALOG, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_HELP, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), と TRUE.

BOOL CDlgCtrlCode::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [private, virtual]

CDialogを再定義しています。

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

参照先 _countof, FALSE, GetData(), CDialog::GetHwnd(), IDC_LIST_CTRLCODE, CDialog::OnNotify(), p_ctrl_list, TRUE, と ctrl_info_t::vKey.

LPVOID CDlgCtrlCode::GetHelpIdTable ( void ) [private, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgCtrlCode::SetData ( void ) [private, virtual]

CDialogを再定義しています。

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

参照先 _countof, _tcscpy(), auto_sprintf(), CDialog::GetHwnd(), IDC_LIST_CTRLCODE, ctrl_info_t::jname, ctrl_info_t::name, NULL, p_ctrl_list, と SendMessageAny.

int CDlgCtrlCode::GetData ( void ) [private, virtual]

CDialogを再定義しています。

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

参照先 ctrl_info_t::code, FALSE, CDialog::GetHwnd(), IDC_LIST_CTRLCODE, m_nCode, p_ctrl_list, と TRUE.

参照元 OnBnClicked(), と OnNotify().

変数

wchar_t CDlgCtrlCode::m_nCode [private]

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

参照元 CDlgCtrlCode(), GetCharCode(), と GetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgCtrlCode.h
  • CDlgCtrlCode.cpp
Sakura-Editorに対してSat Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCtrlCode メンバ一覧

これは全メンバの一覧です。CDlgCtrlCode継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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 |
GetCharCode() const | CDlgCtrlCode | [inline]
GetData(void) | CDlgCtrlCode | [private, virtual]
GetHelpIdTable(void) | CDlgCtrlCode | [private, virtual]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nCode | CDlgCtrlCode | [private]
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 | [private, 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 | [private, 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 | [private, 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 | [private, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgDebug

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgDebug

#include <CDlgDebug.h>

CDlgDebugのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgDebug ()
~CDlgDebug ()
INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
int | DoModal (HINSTANCE, HWND, const CNativeA &)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd

Private 変数

CNativeA 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 | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 DWLP_USER, FALSE, CNativeA::GetStringPtr(), IDC_EDIT_DEBUG, m_cmemDebugInfo, m_hWnd, SetWindowLongPtr, と TRUE.

参照元 CDlgDebug_Proc().

int CDlgDebug::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | const CNativeA & | cmemDebugInfo
 | ) |  |

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

参照先 CDlgDebug_Proc(), IDD_DEBUG, m_cmemDebugInfo, m_hInstance, と m_hwndParent.

変数

HINSTANCE CDlgDebug::m_hInstance

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

参照元 CDlgDebug(), と DoModal().

HWND CDlgDebug::m_hwndParent

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

参照元 CDlgDebug(), と DoModal().

HWND CDlgDebug::m_hWnd

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

参照元 CDlgDebug(), と DispatchEvent().

CNativeA CDlgDebug::m_cmemDebugInfo [private]

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

参照元 DispatchEvent(), と DoModal().

このクラスの説明は次のファイルから生成されました:
  • CDlgDebug.h
  • CDlgDebug.cpp
Sakura-Editorに対してSat Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgDebug メンバ一覧

これは全メンバの一覧です。CDlgDebug継承メンバも含んでいます。

CDlgDebug() | CDlgDebug |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDlgDebug |
DoModal(HINSTANCE, HWND, const CNativeA &) | CDlgDebug |
m_cmemDebugInfo | CDlgDebug | [private]
m_hInstance | CDlgDebug |
m_hWnd | CDlgDebug |
m_hwndParent | CDlgDebug |
~CDlgDebug() | CDlgDebug |

Sakura-Editorに対してSat Nov 17 20:27:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgDiff

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgDiff

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

#include <CDlgDiff.h>

CDlgDiffに対する継承グラフ

[凡例]
CDlgDiffのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgDiff ()
int | DoModal (HINSTANCE, HWND, LPARAM, const TCHAR *, BOOL)

Public 変数

SFilePath m_szFile1
SFilePath m_szFile2
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 | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam,
 |  | const TCHAR * | pszPath,
 |  | BOOL | bIsModified
 | ) |  |

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

参照先 _tcscpy(), CDialog::DoModal(), IDD_DIFF, m_bIsModified, と m_szFile1.

参照元 CViewCommander::Command_Diff_Dialog().

BOOL CDlgDiff::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, _tcscpy(), CDlgOpenFile::Create(), ApiWrap::DlgItem_SetText(), CDlgOpenFile::DoModal_GetOpenFileName(), F_DIFF_DIALOG, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), 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, m_nIndexSave, m_szFile1, m_szFile2, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), SendMessageAny, と TRUE.

BOOL CDlgDiff::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_LIST_DIFF_FILES, IDC_RADIO_DIFF_DST1, IDC_RADIO_DIFF_DST2, CDialog::OnCbnSelChange(), と TRUE.

BOOL CDlgDiff::OnEditChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_EDIT_DIFF_DST, IDC_LIST_DIFF_FILES, IDC_RADIO_DIFF_DST1, IDC_RADIO_DIFF_DST2, m_nIndexSave, CDialog::OnCbnSelChange(), SendMessageAny, と TRUE.

LPVOID CDlgDiff::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgDiff::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, auto_sprintf(), ApiWrap::DlgItem_SetText(), FALSE, EditNode::GetHwnd(), CDialog::GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CEditDoc::GetOwnerHwnd(), gm_pszCodeNameArr_Bracket, 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_DST1, IDC_RADIO_DIFF_DST2, IDC_RADIO_DIFF_FILE1, IDC_RADIO_DIFF_FILE2, IDC_STATIC_DIFF_SRC, IsValidCodeTypeExceptSJIS(), ApiWrap::List_AddString(), FileInfo::m_bIsModified, CommonSetting_Search::m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, CDialog::m_lParam, FileInfo::m_nCharCode, DLLSHAREDATA::m_nDiffFlgOpt, m_nDiffFlgOpt, m_nIndexSave, CDialog::m_pShareData, CommonSetting::m_sSearch, m_szFile1, FileInfo::m_szPath, MYWM_GETFILEINFO, SendMessageAny, と TRUE.

int CDlgDiff::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof2, _tcscpy(), BOOL, ApiWrap::DlgItem_GetText(), FALSE, CDialog::GetHwnd(), 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_EDIT_DIFF_DST, IDC_LIST_DIFF_FILES, IDC_RADIO_DIFF_DST1, IDC_RADIO_DIFF_DST2, IDC_RADIO_DIFF_FILE2, FileInfo::m_bIsModified, m_bIsModifiedDst, CommonSetting_Search::m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, m_hWnd_Dst, DLLSHAREDATA::m_nDiffFlgOpt, m_nDiffFlgOpt, CDialog::m_pShareData, CommonSetting::m_sSearch, m_szFile2, FileInfo::m_szPath, MYWM_GETFILEINFO, NULL, SendMessageAny, と TRUE.

参照元 OnBnClicked().

変数

SFilePath CDlgDiff::m_szFile1

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

参照元 CDlgDiff(), DoModal(), OnBnClicked(), と SetData().

SFilePath CDlgDiff::m_szFile2

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

参照元 CDlgDiff(), CViewCommander::Command_Diff_Dialog(), GetData(), と OnBnClicked().

BOOL CDlgDiff::m_bIsModified

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

参照元 CDlgDiff(), と DoModal().

BOOL CDlgDiff::m_bIsModifiedDst

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

参照元 CDlgDiff(), CViewCommander::Command_Diff_Dialog(), と GetData().

int CDlgDiff::m_nDiffFlgOpt

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

参照元 CDlgDiff(), CViewCommander::Command_Diff_Dialog(), GetData(), と SetData().

HWND CDlgDiff::m_hWnd_Dst

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

参照元 CDlgDiff(), CViewCommander::Command_Diff_Dialog(), と GetData().

int CDlgDiff::m_nIndexSave [private]

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

参照元 OnBnClicked(), OnEditChange(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgDiff.h
  • CDlgDiff.cpp
Sakura-Editorに対してSat Nov 17 20:27:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgDiff メンバ一覧

これは全メンバの一覧です。CDlgDiff継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
CDialog() | CDialog |
CDlgDiff() | CDlgDiff |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const TCHAR *, 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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bIsModified | CDlgDiff |
m_bIsModifiedDst | CDlgDiff |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgExec

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgExec

#include <CDlgExec.h>

CDlgExecに対する継承グラフ

[凡例]
CDlgExecのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgExec ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Public 変数

TCHAR | 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 | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_EXEC, と m_szCommand.

参照元 CViewCommander::Command_EXECCOMMAND_DIALOG().

int CDlgExec::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::DlgItem_GetText(), CDialog::GetHwnd(), IDC_CHECK_GETSTDOUT, IDC_CHECK_SENDSTDIN, IDC_COMBO_m_szCommand, IDC_RADIO_EDITWINDOW, DLLSHAREDATA::m_nExecFlgOpt, CDialog::m_pShareData, と m_szCommand.

参照元 OnBnClicked().

void CDlgExec::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _tcscpy(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), FALSE, CDialog::GetHwnd(), IDC_CHECK_GETSTDOUT, IDC_CHECK_SENDSTDIN, IDC_COMBO_m_szCommand, IDC_COMBO_TEXT, IDC_RADIO_EDITWINDOW, IDC_RADIO_OUTPUT, DLLSHAREDATA::m_aCommands, DLLSHAREDATA::m_nExecFlgOpt, CDialog::m_pShareData, m_szCommand, SendMessageAny, StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::size(), と TRUE.

BOOL CDlgExec::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, _tcscpy(), BOOL, CDialog::CloseDialog(), CDlgOpenFile::Create(), ApiWrap::DlgItem_SetText(), CDlgOpenFile::DoModal_GetOpenFileName(), F_EXECCOMMAND_DIALOG, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_HELP, IDC_BUTTON_REFERENCE, IDC_CHECK_GETSTDOUT, IDC_COMBO_m_szCommand, IDC_RADIO_EDITWINDOW, IDC_RADIO_OUTPUT, CDialog::m_hInstance, m_szCommand, CDialog::m_szHelpFile, MyWinHelp(), と TRUE.

LPVOID CDlgExec::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

TCHAR CDlgExec::m_szCommand[1024+1]

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

参照元 CDlgExec(), CViewCommander::Command_EXECCOMMAND_DIALOG(), DoModal(), GetData(), OnBnClicked(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgExec.h
  • CDlgExec.cpp
Sakura-Editorに対してSat Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgExec メンバ一覧

これは全メンバの一覧です。CDlgExec継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


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 struct
CDlgFavorite::FavoriteInfoTag 		FavoriteInfoTag

Private 変数

CRecentFile m_cRecentFile
CRecentFolder m_cRecentFolder
CRecentSearch m_cRecentSearch
CRecentReplace m_cRecentReplace
CRecentFile m_cRecentGrepFile
CRecentFolder m_cRecentGrepFolder
CRecentCmd m_cRecentCmd
FavoriteInfoTag | m_aFavoriteInfo [8]
int | m_nCurrentTab
TCHAR | m_szMsg [1024]

構成

struct | FavoriteInfoTag

説明

「履歴の管理」ダイアログ

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

型定義

typedef struct CDlgFavorite::FavoriteInfoTag CDlgFavorite::FavoriteInfoTag [private]

コンストラクタとデストラクタ

CDlgFavorite::CDlgFavorite ( )

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

参照先 _tcscpy(), 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_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_bHaveFavorite, CDlgFavorite::FavoriteInfoTag::m_bHaveView, m_cRecentCmd, m_cRecentFile, m_cRecentFolder, m_cRecentGrepFile, m_cRecentGrepFolder, m_cRecentReplace, m_cRecentSearch, m_nCurrentTab, CDlgFavorite::FavoriteInfoTag::m_nId, CDlgFavorite::FavoriteInfoTag::m_pRecent, CDlgFavorite::FavoriteInfoTag::m_pszCaption, m_szMsg, memset_raw(), と NULL.

CDlgFavorite::~CDlgFavorite ( )

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

参照先 m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_pRecent, と CRecent::Terminate().

関数

int CDlgFavorite::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), と IDD_FAVORITE.

参照元 CViewCommander::Command_Favorite().

BOOL CDlgFavorite::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), FALSE, CDialog::GetHwnd(), IDC_TAB_FAVORITE, m_aFavoriteInfo, m_nCurrentTab, CDlgFavorite::FavoriteInfoTag::m_nId, CDlgFavorite::FavoriteInfoTag::m_pRecent, CDlgFavorite::FavoriteInfoTag::m_pszCaption, CDialog::OnInitDialog(), と SendMessageAny.

BOOL CDlgFavorite::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 BOOL, CRecent::DeleteAllItem(), CRecent::DeleteItem(), ApiWrap::DlgItem_SetText(), F_FAVORITE, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), CRecent::GetItemCount(), GSTR_APPNAME_A, IDC_BUTTON_CLEAR, IDC_BUTTON_HELP, IDC_STATIC_FAVORITE_MSG, IDC_TAB_FAVORITE, m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_nId, CDlgFavorite::FavoriteInfoTag::m_pRecent, CDlgFavorite::FavoriteInfoTag::m_pszCaption, CDialog::m_szHelpFile, MYMESSAGEBOX_A, MyWinHelp(), CDialog::OnBnClicked(), CRecent::SetFavorite(), と TRUE.

BOOL CDlgFavorite::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::DlgItem_SetText(), CDialog::GetHwnd(), IDC_STATIC_FAVORITE_MSG, IDC_TAB_FAVORITE, m_aFavoriteInfo, m_nCurrentTab, CDialog::OnNotify(), と TRUE.

BOOL CDlgFavorite::OnActivate | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::DlgItem_SetText(), CDialog::GetHwnd(), IDC_STATIC_FAVORITE_MSG, m_szMsg, CDialog::OnActivate(), RefreshList(), と TRUE.

LPVOID CDlgFavorite::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgFavorite::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::DlgItem_SetText(), CDialog::GetHwnd(), IDC_STATIC_FAVORITE_MSG, m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_pRecent, NULL, と SetDataOne().

int CDlgFavorite::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 BOOL, CDialog::GetHwnd(), m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_pRecent, CRecent::SetFavorite(), TRUE, と CRecent::UpdateView().

参照元 OnBnClicked().

bool CDlgFavorite::RefreshList ( void ) [protected]

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

参照先 _tcscpy(), auto_sprintf(), m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_pRecent, m_szMsg, NULL, と RefreshListOne().

参照元 OnActivate().

void CDlgFavorite::SetDataOne | ( | int | nIndex,
 |  | int | CurrentIndex |
 | ) |  |  | [protected]

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

参照先 auto_sprintf(), BOOL, FALSE, CDialog::GetHwnd(), CRecent::GetItemCount(), CRecent::GetItemText(), CRecent::GetViewCount(), CRecent::IsFavorite(), ListView_SetCheckState, m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_nId, CDlgFavorite::FavoriteInfoTag::m_nViewCount, と CDlgFavorite::FavoriteInfoTag::m_pRecent.

参照元 RefreshListOne(), と SetData().

bool CDlgFavorite::RefreshListOne ( int nIndex ) [protected]

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

参照先 _countof, auto_memset(), BOOL, FALSE, CRecent::FindItemByText(), CDialog::GetHwnd(), CRecent::GetItemCount(), CRecent::GetViewCount(), m_aFavoriteInfo, CDlgFavorite::FavoriteInfoTag::m_pRecent, memset_raw(), と SetDataOne().

参照元 RefreshList().

変数

CRecentFile CDlgFavorite::m_cRecentFile [private]

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

参照元 CDlgFavorite().

CRecentFolder CDlgFavorite::m_cRecentFolder [private]

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

参照元 CDlgFavorite().

CRecentSearch CDlgFavorite::m_cRecentSearch [private]

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

参照元 CDlgFavorite().

CRecentReplace CDlgFavorite::m_cRecentReplace [private]

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

参照元 CDlgFavorite().

CRecentFile CDlgFavorite::m_cRecentGrepFile [private]

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

参照元 CDlgFavorite().

CRecentFolder CDlgFavorite::m_cRecentGrepFolder [private]

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

参照元 CDlgFavorite().

CRecentCmd CDlgFavorite::m_cRecentCmd [private]

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

参照元 CDlgFavorite().

FavoriteInfoTag CDlgFavorite::m_aFavoriteInfo[8] [private]

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

参照元 CDlgFavorite(), GetData(), OnBnClicked(), OnInitDialog(), OnNotify(), RefreshList(), RefreshListOne(), SetData(), SetDataOne(), と ~CDlgFavorite().

int CDlgFavorite::m_nCurrentTab [private]

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

参照元 CDlgFavorite(), OnInitDialog(), と OnNotify().

TCHAR CDlgFavorite::m_szMsg[1024] [private]

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

参照元 CDlgFavorite(), OnActivate(), と RefreshList().

このクラスの説明は次のファイルから生成されました:
  • CDlgFavorite.h
  • CDlgFavorite.cpp
Sakura-Editorに対してSat Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFavorite メンバ一覧

これは全メンバの一覧です。CDlgFavorite継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_aFavoriteInfo | CDlgFavorite | [private]
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_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]
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 Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CDlgFavorite::FavoriteInfoTag

  • 構成
  • クラス階層
  • 構成メンバ
CDlgFavorite::FavoriteInfoTag

構造体 CDlgFavorite::FavoriteInfoTag

CDlgFavorite::FavoriteInfoTagのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

CRecent * m_pRecent
TCHAR * | m_pszCaption
int | m_nId
bool | m_bHaveFavorite
bool | m_bHaveView
int | m_nViewCount

説明

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

変数

CRecent* CDlgFavorite::FavoriteInfoTag::m_pRecent

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

参照元 CDlgFavorite::CDlgFavorite(), CDlgFavorite::GetData(), CDlgFavorite::OnBnClicked(), CDlgFavorite::OnInitDialog(), CDlgFavorite::RefreshList(), CDlgFavorite::RefreshListOne(), CDlgFavorite::SetData(), CDlgFavorite::SetDataOne(), と CDlgFavorite::~CDlgFavorite().

TCHAR* CDlgFavorite::FavoriteInfoTag::m_pszCaption

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

参照元 CDlgFavorite::CDlgFavorite(), CDlgFavorite::OnBnClicked(), と CDlgFavorite::OnInitDialog().

int CDlgFavorite::FavoriteInfoTag::m_nId

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

参照元 CDlgFavorite::CDlgFavorite(), CDlgFavorite::OnBnClicked(), CDlgFavorite::OnInitDialog(), と CDlgFavorite::SetDataOne().

bool CDlgFavorite::FavoriteInfoTag::m_bHaveFavorite

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

参照元 CDlgFavorite::CDlgFavorite().

bool CDlgFavorite::FavoriteInfoTag::m_bHaveView

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

参照元 CDlgFavorite::CDlgFavorite().

int CDlgFavorite::FavoriteInfoTag::m_nViewCount

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

参照元 CDlgFavorite::SetDataOne().

この構造体の説明は次のファイルから生成されました:
  • CDlgFavorite.h
Sakura-Editorに対してSat Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:27:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgFileUpdateQuery

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFileUpdateQuery

#include <CDlgFileUpdateQuery.h>

CDlgFileUpdateQueryに対する継承グラフ

[凡例]
CDlgFileUpdateQueryのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgFileUpdateQuery (const TCHAR *filename, bool IsModified)
virtual BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
virtual BOOL | OnBnClicked (int)

Private 変数

const TCHAR * | m_pFilename
bool | m_bModified

説明

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

コンストラクタとデストラクタ

CDlgFileUpdateQuery::CDlgFileUpdateQuery | ( | const TCHAR * | filename,
 |  | bool | IsModified |
 | ) |  |  | [inline]

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

関数

BOOL CDlgFileUpdateQuery::OnInitDialog | ( | HWND | hWnd,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::DlgItem_SetText(), IDC_QUERYRELOADMSG, IDC_UPDATEDFILENAME, m_bModified, m_pFilename, と CDialog::OnInitDialog().

BOOL CDlgFileUpdateQuery::OnBnClicked ( int id ) [virtual]

ボタンが押されたときの動作

CDialogを再定義しています。

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

参照先 CDialog::CloseDialog(), IDC_BTN_CLOSE, IDC_BTN_NOSUPERVISION, IDC_BTN_NOTIFYONLY, と IDC_BTN_RELOAD.

変数

const TCHAR* CDlgFileUpdateQuery::m_pFilename [private]

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

参照元 OnInitDialog().

bool CDlgFileUpdateQuery::m_bModified [private]

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

参照元 OnInitDialog().

このクラスの説明は次のファイルから生成されました:
  • CDlgFileUpdateQuery.h
  • CDlgFileUpdateQuery.cpp
Sakura-Editorに対してSat Nov 17 20:27:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFileUpdateQuery メンバ一覧

これは全メンバの一覧です。CDlgFileUpdateQuery継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
CDialog() | CDialog |
CDlgFileUpdateQuery(const TCHAR *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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_bModified | CDlgFileUpdateQuery | [private]
m_hInstance | 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 Nov 17 20:27:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgFind

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFind

#include <CDlgFind.h>

CDlgFindに対する継承グラフ

[凡例]
CDlgFindのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgFind ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM)
void | ChangeView (LPARAM)

Public 変数

SSearchOption m_sSearchOption
int | m_bNOTIFYNOTFOUND
wchar_t | m_szText [_MAX_PATH+1]
CLogicPoint m_ptEscCaretPos_PHY

Protected メソッド

int | GetData (void)
void | SetData (void)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

説明

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

コンストラクタとデストラクタ

CDlgFind::CDlgFind ( )

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

参照先 m_sSearchOption, m_szText, と SSearchOption::Reset().

関数

HWND CDlgFind::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModeless(), IDD_FIND, CommonSetting_Search::m_bNOTIFYNOTFOUND, m_bNOTIFYNOTFOUND, DLLSHAREDATA::m_Common, CDialog::m_pShareData, m_ptEscCaretPos_PHY, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, と TRUE.

参照元 CViewCommander::Command_SEARCH_DIALOG().

void CDlgFind::ChangeView ( LPARAM pcEditView )

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

参照先 CDialog::m_lParam.

参照元 CEditWnd::SetActivePane().

int CDlgFind::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, CShareData::AddToSearchKeyArr(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpSyntax(), ApiWrap::DlgItem_GetText(), FALSE, CDialog::GetHwnd(), CShareData::getInstance(), IDC_CHECK_bAutoCloseDlgFind, IDC_CHECK_NOTIFYNOTFOUND, IDC_CHECK_SEARCHALL, IDC_CHK_LOHICASE, IDC_CHK_REGULAREXP, IDC_CHK_WORD, IDC_COMBO_TEXT, CommonSetting_Search::m_bAutoCloseDlgFind, CDialog::m_bModal, CommonSetting_Search::m_bNOTIFYNOTFOUND, m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, DLLSHAREDATA::m_Common, CDialog::m_pShareData, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, m_szText, と SetData().

参照元 OnBnClicked().

void CDlgFind::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpVersion(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), FALSE, CDialog::GetHwnd(), IDC_CHECK_bAutoCloseDlgFind, IDC_CHECK_NOTIFYNOTFOUND, IDC_CHECK_SEARCHALL, IDC_CHK_LOHICASE, IDC_CHK_REGULAREXP, IDC_CHK_WORD, IDC_COMBO_TEXT, IDC_STATIC_JRE32VER, DLLSHAREDATA::m_aSearchKeys, CommonSetting_Search::m_bAutoCloseDlgFind, m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, DLLSHAREDATA::m_Common, CDialog::m_pShareData, CommonSetting::m_sSearch, m_sSearchOption, m_szText, SendMessageAny, と TRUE.

参照元 GetData().

BOOL CDlgFind::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 CheckRegexpVersion(), CDialog::CloseDialog(), F_BOOKMARK_PATTERN, F_REDRAW, F_SEARCH_DIALOG, F_SEARCH_NEXT, F_SEARCH_PREV, FALSE, FuncID_To_HelpContextID(), CEditView::GetCommander(), GetData(), CDialog::GetHwnd(), GSTR_APPNAME_A, CViewCommander::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, CommonSetting_Search::m_bAutoCloseDlgFind, CDialog::m_bModal, CEditView::m_bSearch, DLLSHAREDATA::m_Common, CDialog::m_lParam, CDialog::m_pShareData, m_ptEscCaretPos_PHY, CEditView::m_ptSrchStartPos_PHY, CommonSetting::m_sSearch, CDialog::m_szHelpFile, MYMESSAGEBOX_A, MyWinHelp(), SendMessageAny, と TRUE.

LPVOID CDlgFind::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

SSearchOption CDlgFind::m_sSearchOption

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

参照元 CDlgFind(), DoModeless(), GetData(), と SetData().

int CDlgFind::m_bNOTIFYNOTFOUND

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

参照元 DoModeless(), GetData(), と SetData().

wchar_t CDlgFind::m_szText[_MAX_PATH+1]

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

参照元 CDlgFind(), GetData(), と SetData().

CLogicPoint CDlgFind::m_ptEscCaretPos_PHY

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

参照元 DoModeless(), と OnBnClicked().

このクラスの説明は次のファイルから生成されました:
  • CDlgFind.h
  • CDlgFind.cpp
Sakura-Editorに対してSat Nov 17 20:27:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFind メンバ一覧

これは全メンバの一覧です。CDlgFind継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_bNOTIFYNOTFOUND | CDlgFind |
m_hInstance | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_ptEscCaretPos_PHY | CDlgFind |
m_sSearchOption | CDlgFind |
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 Nov 17 20:27:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgFuncList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFuncList

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

#include <CDlgFuncList.h>

CDlgFuncListに対する継承グラフ

[凡例]
CDlgFuncListのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgFuncList ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM, CFuncInfoArr *, CLayoutInt, int, int)
void | ChangeView (LPARAM)
bool | CheckListType (int nOutLineType) const
void | Redraw (int nOutLineType, CFuncInfoArr *, CLayoutInt nCurLine)

Public 変数

CFuncInfoArr * m_pcFuncInfoArr
CLayoutInt m_nCurLine
int | m_nSortCol
int | m_nListType
CNativeW 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 ()
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 の 105 行で定義されています。

参照先 FALSE, m_bLineNumIsCRLF, m_bWaitTreeProcess, m_nCurLine, m_nSortCol, m_nSortType, m_pcFuncInfoArr, と NULL.

関数

HWND CDlgFuncList::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam,
 |  | CFuncInfoArr * | pcFuncInfoArr,
 |  | CLayoutInt | nCurLine,
 |  | int | nListType,
 |  | int | bLineNumIsCRLF
 | ) |  |

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

参照先 CDialog::DoModeless(), IDD_FUNCLIST, m_bLineNumIsCRLF, m_bWaitTreeProcess, m_nCurLine, m_nListType, と m_pcFuncInfoArr.

参照元 CViewCommander::Command_FUNCLIST().

void CDlgFuncList::ChangeView ( LPARAM pcEditView )

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

参照先 CDialog::m_lParam.

参照元 CEditWnd::SetActivePane().

bool CDlgFuncList::CheckListType ( int nOutLineType ) const [inline]

現在の種別と同じなら

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

参照元 CViewCommander::Command_FUNCLIST().

void CDlgFuncList::Redraw | ( | int | nOutLineType,
 |  | CFuncInfoArr * | pcFuncInfoArr,
 |  | CLayoutInt | nCurLine
 | ) |  |

日付:
2002.10.05 genta

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

参照先 m_nCurLine, m_nListType, m_pcFuncInfoArr, と SetData().

参照元 CViewCommander::Command_FUNCLIST().

BOOL CDlgFuncList::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), CDialog::CreateSizeBox(), CDialog::GetHwnd(), CEditWnd::GetHwnd(), IDC_LIST1, CommonSetting_OutLine::m_bRememberOutlineWindowPos, DLLSHAREDATA::m_Common, CommonSetting_OutLine::m_heightOutlineWindow, CDialog::m_lParam, CDialog::m_nHeight, CDialog::m_nWidth, CEditView::m_pcEditDoc, CEditDoc::m_pcEditWnd, CDialog::m_pShareData, CommonSetting::m_sOutline, CommonSetting_OutLine::m_widthOutlineWindow, CommonSetting_OutLine::m_xOutlineWindowPos, CDialog::m_xPos, CommonSetting_OutLine::m_yOutlineWindowPos, CDialog::m_yPos, NULL, CDialog::OnInitDialog(), と SendMessageAny.

BOOL CDlgFuncList::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 F_BOOKMARK_VIEW, F_OUTLINE, FALSE, FuncID_To_HelpContextID(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetCommander(), CDialog::GetHwnd(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewCommander::HandleCommand(), IDC_BUTTON_COPY, IDC_BUTTON_HELP, IDC_BUTTON_WINSIZE, IDC_CHECK_bAutoCloseDlgFuncList, IDC_CHECK_bFunclistSetFocusOnJump, IDC_CHECK_bMarkUpBlankLineEnable, IDC_LIST1, IDC_TREE1, CommonSetting_OutLine::m_bAutoCloseDlgFuncList, CommonSetting_OutLine::m_bFunclistSetFocusOnJump, CommonSetting_OutLine::m_bMarkUpBlankLineEnable, CDialog::m_bModal, CommonSetting_OutLine::m_bRememberOutlineWindowPos, m_cmemClipText, DLLSHAREDATA::m_Common, CDialog::m_lParam, m_nCurLine, m_nListType, m_nViewType, CDialog::m_pShareData, CommonSetting::m_sOutline, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), OnJump(), OUTLINE_BOOKMARK, SetClipboardText(), SetData(), と TRUE.

参照元 Key2Command().

BOOL CDlgFuncList::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_LIST1, IDC_TREE1, Key2Command(), CommonSetting_OutLine::m_bFunclistSetFocusOnJump, m_bWaitTreeProcess, DLLSHAREDATA::m_Common, CDialog::m_hwndParent, m_nSortCol, CDialog::m_pShareData, CommonSetting::m_sOutline, OnJump(), SendMessageAny, SortListView(), と TRUE.

BOOL CDlgFuncList::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

ウィンドウサイズが変更された

日付:
2003.06.22 Moca コードの整理(コントロールの処理方法をテーブルに持たせる)

2003.08.16 genta 配列はstaticに(無駄な初期化を行わないため)

CDialogを再定義しています。

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

参照先 _countof, CDialog::GetHwnd(), IDC_BUTTON_COPY, IDC_BUTTON_HELP, IDC_BUTTON_WINSIZE, IDC_CHECK_bAutoCloseDlgFuncList, IDC_CHECK_bFunclistSetFocusOnJump, IDC_CHECK_bMarkUpBlankLineEnable, IDC_LIST1, IDC_TREE1, NULL, CDialog::OnSize(), と TRUE.

BOOL CDlgFuncList::OnDestroy ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 CEditWnd::GetHwnd(), CommonSetting_OutLine::m_bRememberOutlineWindowPos, DLLSHAREDATA::m_Common, CommonSetting_OutLine::m_heightOutlineWindow, CDialog::m_lParam, CDialog::m_nHeight, CDialog::m_nWidth, CEditView::m_pcEditDoc, CEditDoc::m_pcEditWnd, CDialog::m_pShareData, CommonSetting::m_sOutline, CommonSetting_OutLine::m_widthOutlineWindow, CommonSetting_OutLine::m_xOutlineWindowPos, CDialog::m_xPos, CommonSetting_OutLine::m_yOutlineWindowPos, CDialog::m_yPos, CDialog::OnDestroy(), と TRUE.

BOOL CDlgFuncList::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_COMBO_nSortType, IDC_TREE1, m_nSortType, SendMessageAny, SortTree(), と TRUE.

void CDlgFuncList::SetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

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

参照先 _WINT, CNativeW::AppendStringT(), auto_sprintf(), ApiWrap::Combo_AddString(), FALSE, CFuncInfoArr::GetAt(), CDialog::GetHwnd(), CFuncInfoArr::GetNum(), CNativeA::GetStringPtr(), IDC_BUTTON_COPY, IDC_BUTTON_WINSIZE, IDC_CHECK_bAutoCloseDlgFuncList, IDC_CHECK_bFunclistSetFocusOnJump, IDC_CHECK_bMarkUpBlankLineEnable, IDC_COMBO_nSortType, IDC_LIST1, IDC_STATIC_nSortType, IDC_TREE1, CommonSetting_OutLine::m_bAutoCloseDlgFuncList, CommonSetting_OutLine::m_bFunclistSetFocusOnJump, m_bLineNumIsCRLF, CommonSetting_OutLine::m_bMarkUpBlankLineEnable, CommonSetting_OutLine::m_bRememberOutlineWindowPos, m_cmemClipText, CFuncInfo::m_cmemFuncName, DLLSHAREDATA::m_Common, m_nCurLine, CFuncInfo::m_nFuncLineCRLF, CFuncInfo::m_nFuncLineLAYOUT, CFuncInfo::m_nInfo, m_nListType, m_nSortCol, m_nSortType, m_nViewType, m_pcFuncInfoArr, CDialog::m_pShareData, CommonSetting::m_sOutline, CFuncInfoArr::m_szFilePath, 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, SendMessageAny, SetListVB(), CNativeW::SetString(), SetTree(), SetTreeJava(), SortListView(), SortTree(), と TRUE.

参照元 OnBnClicked(), と Redraw().

int CDlgFuncList::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, CFuncInfoArr::GetAt(), CDialog::GetHwnd(), IDC_LIST1, IDC_TREE1, CFuncInfo::m_nFuncLineCRLF, m_nViewType, m_pcFuncInfoArr, と NULL.

参照元 OnJump().

BOOL CDlgFuncList::OnJump ( bool bCheckAutoClose = true ) [protected]

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

参照先 GetData(), CDialog::GetHwnd(), DLLSHAREDATA::GetWorkBuffer(), CommonSetting_OutLine::m_bAutoCloseDlgFuncList, CommonSetting_OutLine::m_bFunclistSetFocusOnJump, CDialog::m_bModal, DLLSHAREDATA::m_Common, CDialog::m_hwndParent, CDialog::m_pShareData, CommonSetting::m_sOutline, memcpy_raw(), MYWM_SETCARETPOS, PM_SETCARETPOS_KEEPSELECT, SendMessageAny, と TRUE.

参照元 Key2Command(), OnBnClicked(), と OnNotify().

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 の 514 行で定義されています。

参照先 _countof, _tcscpy(), CNativeW::AppendString(), auto_memcpy(), auto_sprintf(), FALSE, CFuncInfoArr::GetAt(), CDialog::GetHwnd(), CFuncInfoArr::GetNum(), CNativeA::GetSizeOfChar(), CNativeA::GetStringPtr(), IDC_BUTTON_COPY, IDC_TREE1, m_cmemClipText, CFuncInfo::m_cmemFuncName, m_nCurLine, CFuncInfo::m_nFuncLineCRLF, CFuncInfo::m_nFuncLineLAYOUT, CFuncInfo::m_nInfo, m_pcFuncInfoArr, CFuncInfoArr::m_szFilePath, NULL, to_tchar, と 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 の 973 行で定義されています。

参照先 CNativeA::AllocStringBuffer(), CNativeA::AppendNativeData(), CNativeW::AppendNativeDataT(), CNativeA::AppendString(), auto_sprintf(), CFuncInfoArr::GetAt(), CDialog::GetHwnd(), CFuncInfoArr::GetNum(), CNativeA::GetStringLength(), CNativeA::GetStringPtr(), IDC_BUTTON_COPY, IDC_TREE1, CFuncInfo::IsAddClipText(), m_cmemClipText, CFuncInfo::m_cmemFuncName, m_nCurLine, CFuncInfo::m_nDepth, CFuncInfo::m_nFuncLineCRLF, CFuncInfo::m_nFuncLineLAYOUT, m_pcFuncInfoArr, CFuncInfoArr::m_szFilePath, NULL, と TRUE.

参照元 SetData().

void CDlgFuncList::SetListVB ( void ) [protected]

リストビューコントロールの初期化：VisualBasic

長くなったので独立させました。

日付:
Jul 10, 2003 little YOSHI

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

参照先 _countof, CNativeW::AppendStringT(), auto_memset(), auto_sprintf(), FALSE, CFuncInfoArr::GetAt(), CDialog::GetHwnd(), CFuncInfoArr::GetNum(), CNativeA::GetStringPtr(), IDC_BUTTON_COPY, IDC_LIST1, m_bLineNumIsCRLF, m_cmemClipText, CFuncInfo::m_cmemFuncName, m_nCurLine, CFuncInfo::m_nFuncLineCRLF, CFuncInfo::m_nFuncLineLAYOUT, CFuncInfo::m_nInfo, m_pcFuncInfoArr, CFuncInfoArr::m_szFilePath, と TRUE.

参照元 SetData().

void CDlgFuncList::SortTree | ( | HWND | hWndTree,
 |  | HTREEITEM | htiParent |
 | ) |  |  | [protected]

ツリービューの項目をソートする（ソート基準はm_nSortTypeを使用）

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

参照先 Compare_by_ItemData(), m_nSortType, NULL, と TRUE.

参照元 OnCbnSelChange(), と 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 の 1312 行で定義されています。

参照先 _CompareFunc_(), FALSE, m_nListType, と OUTLINE_BOOKMARK.

参照元 OnNotify(), と SetData().

LPVOID CDlgFuncList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgFuncList::Key2Command ( WORD KeyCode ) [protected]

キー操作をコマンドに変換するヘルパー関数

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

参照先 F_BOOKMARK_SET, F_BOOKMARK_VIEW, F_COPY, F_CUT, F_OUTLINE, F_OUTLINE_TOGGLE, F_REDRAW, CEditView::GetCommander(), getCtrlKeyState(), CKeyBind::GetFuncCode(), CViewCommander::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().

変数

CFuncInfoArr* CDlgFuncList::m_pcFuncInfoArr

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

参照元 _CompareFunc_(), CDlgFuncList(), DoModeless(), GetData(), Redraw(), SetData(), SetListVB(), SetTree(), と SetTreeJava().

CLayoutInt CDlgFuncList::m_nCurLine

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

参照元 CDlgFuncList(), DoModeless(), OnBnClicked(), Redraw(), SetData(), SetListVB(), SetTree(), と SetTreeJava().

int CDlgFuncList::m_nSortCol

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

参照元 _CompareFunc_(), CDlgFuncList(), OnNotify(), と SetData().

int CDlgFuncList::m_nListType

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

参照元 DoModeless(), Key2Command(), OnBnClicked(), Redraw(), SetData(), と SortListView().

CNativeW CDlgFuncList::m_cmemClipText

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

参照元 OnBnClicked(), SetData(), SetListVB(), SetTree(), と SetTreeJava().

int CDlgFuncList::m_bLineNumIsCRLF

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

参照元 CDlgFuncList(), DoModeless(), SetData(), と SetListVB().

int CDlgFuncList::m_nViewType [private]

アウトライン解析種別

0: List, 1: Tree

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

参照元 GetData(), OnBnClicked(), と SetData().

bool CDlgFuncList::m_bWaitTreeProcess [private]

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

参照元 CDlgFuncList(), DoModeless(), と OnNotify().

int CDlgFuncList::m_nSortType [private]

ツリービューをソートする基準

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

参照元 CDlgFuncList(), OnCbnSelChange(), SetData(), と SortTree().

このクラスの説明は次のファイルから生成されました:
  • CDlgFuncList.h
  • CDlgFuncList.cpp
Sakura-Editorに対してSat Nov 17 20:27:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFuncList メンバ一覧

これは全メンバの一覧です。CDlgFuncList継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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 *, CLayoutInt, int, int) | CDlgFuncList |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgFuncList | [protected, virtual]
GetHelpIdTable(void) | CDlgFuncList | [protected, virtual]
GetHwnd() const | CDialog | [inline]
Key2Command(WORD) | CDlgFuncList | [protected]
m_bInited | CDialog |
m_bLineNumIsCRLF | CDlgFuncList |
m_bModal | CDialog |
m_bWaitTreeProcess | CDlgFuncList | [private]
m_cmemClipText | CDlgFuncList |
m_hInstance | 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 *, CLayoutInt nCurLine) | CDlgFuncList |
SetData() | 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 Nov 17 20:27:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgGrep

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgGrep

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

#include <CDlgGrep.h>

CDlgGrepに対する継承グラフ

[凡例]
CDlgGrepのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgGrep ()
int | DoModal (HINSTANCE, HWND, const TCHAR *)

Public 変数

BOOL | m_bSubFolder
BOOL | m_bFromThisText
SSearchOption m_sSearchOption
検索オプション
BOOL | m_bGrepOutputLine
ECodeType m_nGrepCharSet
int | m_nGrepOutputStyle
EDIT_CHAR | m_szText [_MAX_PATH+1]
SFilePath m_szFile
SFilePath m_szFolder
SFilePath m_szCurrentFilePath

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 の 59 行で定義されています。

参照先 _tcscpy(), CODE_SJIS, FALSE, DLLSHAREDATA::m_aGrepFiles, DLLSHAREDATA::m_aGrepFolders, DLLSHAREDATA::m_aSearchKeys, m_bFromThisText, m_bGrepOutputLine, m_bSubFolder, m_nGrepCharSet, m_nGrepOutputStyle, CDialog::m_pShareData, m_sSearchOption, m_szFile, m_szFolder, m_szText, SSearchOption::Reset(), と TRUE.

関数

int CDlgGrep::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | const TCHAR * | pszCurrentFilePath
 | ) |  |

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

参照先 _tcscpy(), CDialog::DoModal(), IDD_GREP, CommonSetting_Search::m_bGrepOutputLine, m_bGrepOutputLine, CommonSetting_Search::m_bGrepSubFolder, m_bSubFolder, DLLSHAREDATA::m_Common, CommonSetting_Search::m_nGrepCharSet, m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, m_nGrepOutputStyle, CDialog::m_pShareData, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, m_szCurrentFilePath, と NULL.

参照元 CViewCommander::Command_GREP_DIALOG(), CControlTray::DoGrep(), と CNormalProcess::Initialize().

BOOL CDlgGrep::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, CDialog::_SetHwnd(), BOOL, FN_GREP_ICON, g_pOnFolderProc, GetAppIcon(), CDialog::GetHwnd(), GetWindowLongPtr, gm_nCodeComboNameArrNum, gm_nCodeComboValueArr, gm_pszCodeComboNameArr, GWLP_WNDPROC, ICON_DEFAULT_GREP, IDC_COMBO_CHARSET, IDC_COMBO_FILE, IDC_COMBO_FOLDER, IDC_COMBO_TEXT, CDialog::m_hInstance, OnFolderProc(), CDialog::OnInitDialog(), SendMessageAny, SetWindowLongPtr, と TRUE.

BOOL CDlgGrep::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _MAX_PATH, CheckRegexpVersion(), CDialog::CloseDialog(), ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), F_GREP_DIALOG, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_CURRENTFOLDER, IDC_BUTTON_FOLDER, IDC_BUTTON_HELP, IDC_CHK_DEFAULTFOLDER, IDC_CHK_FROMTHISTEXT, IDC_CHK_REGULAREXP, IDC_CHK_SUBFOLDER, IDC_CHK_WORD, IDC_COMBO_FILE, IDC_COMBO_FOLDER, IDC_STATIC_JRE32VER, CommonSetting_Search::m_bGrepDefaultFolder, DLLSHAREDATA::m_Common, CDialog::m_pShareData, CommonSetting::m_sSearch, m_szCurrentFilePath, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), SelectDir(), SplitPath_FolderAndFile(), と TRUE.

参照元 SetData().

LPVOID CDlgGrep::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgGrep::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpVersion(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), FALSE, CDialog::GetHwnd(), CShareData::getInstance(), CShareData::GetShareData(), gm_nCodeComboNameArrNum, IDC_BUTTON_CURRENTFOLDER, IDC_BUTTON_FOLDER, IDC_CHK_DEFAULTFOLDER, IDC_CHK_FROMTHISTEXT, IDC_CHK_LOHICASE, IDC_CHK_REGULAREXP, IDC_CHK_SUBFOLDER, IDC_CHK_WORD, IDC_COMBO_CHARSET, IDC_COMBO_FILE, IDC_COMBO_FOLDER, IDC_COMBO_TEXT, IDC_RADIO_OUTPUTLINE, IDC_RADIO_OUTPUTMARKED, IDC_RADIO_OUTPUTSTYLE1, IDC_RADIO_OUTPUTSTYLE2, IDC_STATIC_JRE32VER, DLLSHAREDATA::m_aGrepFiles, DLLSHAREDATA::m_aGrepFolders, DLLSHAREDATA::m_aSearchKeys, m_bFromThisText, CommonSetting_Search::m_bGrepDefaultFolder, m_bGrepOutputLine, m_bSubFolder, DLLSHAREDATA::m_Common, m_nGrepCharSet, m_nGrepOutputStyle, CDialog::m_pShareData, CommonSetting::m_sSearch, m_sSearchOption, m_szCurrentFilePath, m_szFile, m_szFolder, m_szText, OnBnClicked(), SendMessageAny, SplitPath_FolderAndFile(), と TRUE.

int CDlgGrep::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _countof2, _tcscpy(), CShareData::AddToGrepFileArr(), CShareData::AddToGrepFolderArr(), CShareData::AddToSearchKeyArr(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpSyntax(), ApiWrap::DlgItem_GetText(), FALSE, CDialog::GetHwnd(), CShareData::getInstance(), CShareData::GetShareData(), GSTR_APPNAME_A, IDC_CHK_FROMTHISTEXT, IDC_CHK_LOHICASE, IDC_CHK_REGULAREXP, IDC_CHK_SUBFOLDER, IDC_CHK_WORD, IDC_COMBO_CHARSET, IDC_COMBO_FILE, IDC_COMBO_FOLDER, IDC_COMBO_TEXT, IDC_RADIO_OUTPUTLINE, IDC_RADIO_OUTPUTSTYLE1, IDC_RADIO_OUTPUTSTYLE2, m_bFromThisText, CommonSetting_Search::m_bGrepOutputLine, m_bGrepOutputLine, CommonSetting_Search::m_bGrepSubFolder, m_bSubFolder, DLLSHAREDATA::m_Common, CommonSetting_Search::m_nGrepCharSet, m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, m_nGrepOutputStyle, CDialog::m_pShareData, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, m_szFile, m_szFolder, m_szText, MYMESSAGEBOX_A, SendMessageAny, と TRUE.

参照元 OnBnClicked().

変数

BOOL CDlgGrep::m_bSubFolder

サブフォルダからも検索する

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

参照元 CDlgGrep(), CControlTray::DoGrep(), DoModal(), GetData(), と SetData().

BOOL CDlgGrep::m_bFromThisText

この編集中のテキストから検索する

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

参照元 CDlgGrep(), GetData(), と SetData().

SSearchOption CDlgGrep::m_sSearchOption

検索オプション

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

参照元 CDlgGrep(), CControlTray::DoGrep(), DoModal(), GetData(), と SetData().

BOOL CDlgGrep::m_bGrepOutputLine

行を出力するか該当部分だけ出力するか

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

参照元 CDlgGrep(), CControlTray::DoGrep(), DoModal(), GetData(), と SetData().

ECodeType CDlgGrep::m_nGrepCharSet

文字コードセット

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

参照元 CDlgGrep(), CViewCommander::Command_GREP(), CControlTray::DoGrep(), DoModal(), GetData(), と SetData().

int CDlgGrep::m_nGrepOutputStyle

Grep: 出力形式

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

参照元 CDlgGrep(), CControlTray::DoGrep(), DoModal(), GetData(), と SetData().

EDIT_CHAR CDlgGrep::m_szText[_MAX_PATH+1]

検索文字列

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

参照元 CDlgGrep(), CControlTray::DoGrep(), GetData(), CNormalProcess::Initialize(), と SetData().

SFilePath CDlgGrep::m_szFile

検索ファイル

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

参照元 CDlgGrep(), CControlTray::DoGrep(), GetData(), CNormalProcess::Initialize(), と SetData().

SFilePath CDlgGrep::m_szFolder

検索フォルダ

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

参照元 CDlgGrep(), CControlTray::DoGrep(), GetData(), CNormalProcess::Initialize(), と SetData().

SFilePath CDlgGrep::m_szCurrentFilePath

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

参照元 DoModal(), OnBnClicked(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgGrep.h
  • CDlgGrep.cpp
Sakura-Editorに対してSat Nov 17 20:27:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgGrep メンバ一覧

これは全メンバの一覧です。CDlgGrep継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
CDialog() | CDialog |
CDlgGrep() | CDlgGrep |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, const TCHAR *) | 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]
GetHwnd() const | CDialog | [inline]
m_bFromThisText | CDlgGrep |
m_bGrepOutputLine | CDlgGrep |
m_bInited | CDialog |
m_bModal | CDialog |
m_bSubFolder | CDlgGrep |
m_hInstance | 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_sSearchOption | CDlgGrep |
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 Nov 17 20:27:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgInput1

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgInput1

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

#include <CDlgInput1.h>

CDlgInput1のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgInput1 ()
~CDlgInput1 ()
BOOL | DoModal (HINSTANCE, HWND, const TCHAR *, const TCHAR *, int, TCHAR *)
BOOL | DoModal (HINSTANCE, HWND, const TCHAR *, const TCHAR *, int, NOT_TCHAR *)
INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
const TCHAR * | m_pszTitle
const TCHAR * | m_pszMessage
int | m_nMaxTextLen
CNativeT m_cmemText
SFilePath m_szHelpFile

説明

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

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

コンストラクタとデストラクタ

CDlgInput1::CDlgInput1 ( )

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

参照先 CEditApp::GetHelpFilePath(), TSingleInstance< CEditApp >::Instance(), と m_szHelpFile.

CDlgInput1::~CDlgInput1 ( )

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

関数

BOOL CDlgInput1::DoModal | ( | HINSTANCE | hInstApp,
 |  | HWND | hwndParent,
 |  | const TCHAR * | pszTitle,
 |  | const TCHAR * | pszMessage,
 |  | int | nMaxTextLen,
 |  | TCHAR * | pszText
 | ) |  |

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

参照先 _tcscpy(), BOOL, CDlgInput1Proc(), CNativeA::GetStringPtr(), IDD_INPUT1, m_cmemText, m_hInstance, m_hwndParent, m_nMaxTextLen, m_pszMessage, m_pszTitle, と CNativeA::SetString().

参照元 CPropCommon::DispatchEvent_p7(), CPropCommon::DispatchEvent_p8(), DoModal(), CDlgPrintSetting::OnBnClicked(), CPrintPreview::OnPreviewGoDirectPage(), と CPropCommon::p7_Edit_List_KeyWord().

BOOL CDlgInput1::DoModal | ( | HINSTANCE | hInstApp,
 |  | HWND | hwndParent,
 |  | const TCHAR * | pszTitle,
 |  | const TCHAR * | pszMessage,
 |  | int | nMaxTextLen,
 |  | NOT_TCHAR * | pszText
 | ) |  |

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

参照先 auto_strcpy(), BOOL, DoModal(), と to_not_tchar.

INT_PTR CDlgInput1::DispatchEvent | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CNativeA::AllocStringBuffer(), ApiWrap::DlgItem_SetText(), DWLP_USER, FALSE, CNativeA::GetStringPtr(), IDC_EDIT1, IDC_STATIC_MSG, m_cmemText, m_nMaxTextLen, m_pszMessage, m_pszTitle, m_szHelpFile, MyWinHelp(), p_helpids, SetWindowLongPtr, TRUE, と ULONG_PTR.

参照元 CDlgInput1Proc().

変数

HINSTANCE CDlgInput1::m_hInstance

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

参照元 DoModal().

HWND CDlgInput1::m_hwndParent

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

参照元 DoModal().

HWND CDlgInput1::m_hWnd

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

const TCHAR* CDlgInput1::m_pszTitle

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

参照元 DispatchEvent(), と DoModal().

const TCHAR* CDlgInput1::m_pszMessage

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

参照元 DispatchEvent(), と DoModal().

int CDlgInput1::m_nMaxTextLen

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

参照元 DispatchEvent(), と DoModal().

CNativeT CDlgInput1::m_cmemText

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

参照元 DispatchEvent(), と DoModal().

SFilePath CDlgInput1::m_szHelpFile

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

参照元 CDlgInput1(), と DispatchEvent().

このクラスの説明は次のファイルから生成されました:
  • CDlgInput1.h
  • CDlgInput1.cpp
Sakura-Editorに対してSat Nov 17 20:27:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgInput1 メンバ一覧

これは全メンバの一覧です。CDlgInput1継承メンバも含んでいます。

CDlgInput1() | CDlgInput1
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDlgInput1
DoModal(HINSTANCE, HWND, const TCHAR *, const TCHAR *, int, TCHAR *) | CDlgInput1
DoModal(HINSTANCE, HWND, const TCHAR *, const TCHAR *, int, NOT_TCHAR *) | 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 Nov 17 20:27:58 2007に生成されました。 doxygen 1.5.4


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 の 46 行で定義されています。

参照先 FALSE, m_bPLSQL, m_nLineNum, m_nPLSQL_E1, と m_nPLSQL_E2.

関数

int CDlgJump::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), と IDD_JUMP.

BOOL CDlgJump::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_EDIT_LINENUM, IDC_EDIT_PLSQL_E1, IDC_SPIN_LINENUM, IDC_SPIN_PLSQL_E1, NULL, と TRUE.

BOOL CDlgJump::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_COMBO_PLSQLBLOCKS, IDC_EDIT_PLSQL_E1, SendMessageAny, と TRUE.

BOOL CDlgJump::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::CloseDialog(), F_JUMP, F_JUMP_DIALOG, FALSE, FuncID_To_HelpContextID(), CEditWnd::GetActiveView(), CEditView::GetCommander(), GetData(), CDialog::GetHwnd(), GSTR_APPNAME_A, CViewCommander::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, CDialog::m_lParam, CEditDoc::m_pcEditWnd, CDialog::m_pShareData, CDialog::m_szHelpFile, MYMESSAGEBOX_A, MyWinHelp(), CDialog::OnBnClicked(), と TRUE.

LPVOID CDlgJump::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgJump::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 auto_sprintf(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), FALSE, CFuncInfoArr::GetAt(), CEditDoc::GetDocumentAttribute(), CDialog::GetHwnd(), CFuncInfoArr::GetNum(), CNativeA::GetStringPtr(), IDC_CHECK_PLSQL, IDC_COMBO_PLSQLBLOCKS, IDC_EDIT_LINENUM, 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, m_bPLSQL, CFuncInfo::m_cmemFuncName, CDialog::m_lParam, Types::m_nDefaultOutline, CFuncInfo::m_nFuncLineCRLF, CFuncInfo::m_nFuncLineLAYOUT, CFuncInfo::m_nInfo, m_nLineNum, m_nPLSQL_E1, CDialog::m_pShareData, CEditDoc::MakeFuncList_PLSQL(), OUTLINE_PLSQL, SendMessageAny, と TRUE.

int CDlgJump::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 BOOL, FALSE, CDialog::GetHwnd(), IDC_CHECK_PLSQL, IDC_EDIT_LINENUM, IDC_EDIT_PLSQL_E1, IDC_RADIO_LINENUM_LAYOUT, DLLSHAREDATA::m_bLineNumIsCRLF, m_bPLSQL, m_nLineNum, m_nPLSQL_E1, CDialog::m_pShareData, と TRUE.

参照元 OnBnClicked().

変数

int CDlgJump::m_nLineNum

行番号

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

参照元 CMacro::AddLParam(), CDlgJump(), CViewCommander::Command_JUMP(), GetData(), CMacro::HandleCommand(), と SetData().

BOOL CDlgJump::m_bPLSQL

PL/SQLソースの有効行か

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

参照元 CMacro::AddLParam(), CDlgJump(), GetData(), CMacro::HandleCommand(), と SetData().

int CDlgJump::m_nPLSQL_E1

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

参照元 CDlgJump(), CViewCommander::Command_JUMP(), GetData(), と SetData().

int CDlgJump::m_nPLSQL_E2

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

参照元 CDlgJump(), と CViewCommander::Command_JUMP().

このクラスの説明は次のファイルから生成されました:
  • CDlgJump.h
  • CDlgJump.cpp
Sakura-Editorに対してSat Nov 17 20:27:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgJump メンバ一覧

これは全メンバの一覧です。CDlgJump継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_bPLSQL | CDlgJump |
m_hInstance | 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 Nov 17 20:27:59 2007に生成されました。 doxygen 1.5.4


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 | hInstance,
 |  | HWND | hwndParent,
 |  | int * | pnSet
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_DIALOG_KEYWORD_SELECT, KEYWORD_SELECT_NUM, m_nSet, NULL, と TRUE.

参照元 CPropTypes::DispatchEvent_p3_new().

BOOL CDlgKeywordSelect::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

初期化処理

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), と CDialog::OnInitDialog().

BOOL CDlgKeywordSelect::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 GetData(), と CDialog::OnBnClicked().

int CDlgKeywordSelect::GetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

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

参照先 CDialog::GetHwnd(), KEYWORD_SELECT_NUM, keyword_select_target_combo, m_nSet, SendMessageAny, と TRUE.

参照元 OnBnClicked().

void CDlgKeywordSelect::SetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

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

参照先 ApiWrap::Combo_AddString(), CDialog::GetHwnd(), CKeyWordSetMgr::GetTypeName(), KEYWORD_SELECT_NUM, keyword_select_target_combo, CKeyWordSetMgr::m_nKeyWordSetNum, m_nSet, m_pCKeyWordSetMgr, と SendMessageAny.

LPVOID CDlgKeywordSelect::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

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 Nov 17 20:27:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgKeywordSelect メンバ一覧

これは全メンバの一覧です。CDlgKeywordSelect継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:27:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgOpenFile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgOpenFile

#include <CDlgOpenFile.h>

CDlgOpenFileのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgOpenFile ()
~CDlgOpenFile ()
void | Create (HINSTANCE, HWND, const TCHAR *, const TCHAR *, const TCHAR **=NULL, const TCHAR **=NULL)
void | Create2 (HINSTANCE hInstance, HWND hwndParent, const TCHAR *pszUserWildCard, const TCHAR *pszDefaultPath, TCHAR **ppszMRU, TCHAR **ppszOPENFOLDER)
BOOL | DoModal_GetOpenFileName (TCHAR *, bool bSetCurDir=false)
BOOL | DoModal_GetSaveFileName (TCHAR *, bool bSetCurDir=false)
BOOL | DoModalOpenDlg (TCHAR *, ECodeType *, bool *)
BOOL | DoModalSaveDlg (TCHAR *, ECodeType *, CEOL *, BOOL *)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
DLLSHAREDATA * m_pShareData
SFilePath m_szDefaultWildCard
SFilePath m_szInitialDir
OPENFILENAMEZ m_ofn
ECodeType m_nCharCode
CEOL m_cEol
bool | m_bUseEol
BOOL | m_bBom
BOMを付けるかどうか
bool | m_bUseBom
BOMの有無を選択する機能を利用するかどうか
SFilePath m_szPath

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 の 537 行で定義されています。

参照先 _countof, _MAX_DIR, _MAX_DRIVE, _MAX_PATH, _tcscpy(), CODE_AUTODETECT, CEditApp::GetHelpFilePath(), CShareData::getInstance(), CShareData::GetShareData(), InitOfn(), TSingleInstance< CEditApp >::Instance(), m_hInstance, m_hWnd, m_hwndParent, m_nCharCode, m_nHelpTopicID, m_ofn, m_pShareData, m_szDefaultWildCard, m_szInitialDir, と NULL.

CDlgOpenFile::~CDlgOpenFile ( )

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

関数

void CDlgOpenFile::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | const TCHAR * | pszUserWildCard,
 |  | const TCHAR * | pszDefaultPath,
 |  | const TCHAR ** | ppszMRU = NULL,
 |  | const TCHAR ** | ppszOPENFOLDER = NULL
 | ) |  |

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

参照先 _MAX_DIR, _MAX_DRIVE, _tcscpy(), auto_sprintf(), m_hInstance, m_hwndParent, m_ppszMRU, m_ppszOPENFOLDER, m_szDefaultWildCard, m_szInitialDir, my_splitpath_t, と NULL.

参照元 CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CDlgExec::OnBnClicked(), CDlgDiff::OnBnClicked(), 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().

void CDlgOpenFile::Create2 | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | const TCHAR * | pszUserWildCard,
 |  | const TCHAR * | pszDefaultPath,
 |  | TCHAR ** | ppszMRU,
 |  | TCHAR ** | ppszOPENFOLDER |
 | ) |  |  | [inline]

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

参照元 CControlTray::DispatchEvent(), CEditDoc::OpenFileDialog(), CPropTypes::p3_Export_Colors(), CPropTypes::p3_Import_Colors(), と CEditDoc::SaveFileDialog().

BOOL CDlgOpenFile::DoModal_GetOpenFileName | ( | TCHAR * | pszPath,
 |  | bool | bSetCurDir = false
 | ) |  |

「開く」ダイアログ モーダルダイアログの表示

引数:
[in,out] | pszPath | 初期ファイル名．選択されたファイル名の格納場所
[in] | bSetCurDir | カレントディレクトリを変更するか デフォルト: false
日付:
2002/08/21 カレントディレクトリを変更するかどうかのオプションを追加

2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

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

参照元 CViewCommander::Command_LOADKEYMACRO(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), 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 | ( | TCHAR * | pszPath,
 |  | bool | bSetCurDir = false
 | ) |  |

保存ダイアログ モーダルダイアログの表示

引数:
pszPath | [i/o] 初期ファイル名．選択されたファイル名の格納場所
bSetCurDir | [in] カレントディレクトリを変更するか デフォルト: false
日付:
2002/08/21 カレントディレクトリを変更するかどうかのオプションを追加

2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

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

参照元 CViewCommander::Command_SAVEKEYMACRO(), 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 | ( | TCHAR * | pszPath,
 |  | ECodeType * | pnCharCode,
 |  | bool * | pbReadOnly
 | ) |  |

「開く」ダイアログ モーダルダイアログの表示

日付:
2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

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

参照元 CControlTray::DispatchEvent(), と CEditDoc::OpenFileDialog().

BOOL CDlgOpenFile::DoModalSaveDlg | ( | TCHAR * | pszPath,
 |  | ECodeType * | 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 の 879 行で定義されています。

参照元 CEditDoc::SaveFileDialog().

void CDlgOpenFile::DlgOpenFail ( void ) [protected]

コモンダイアログボックス失敗処理

コモンダイアログボックスからFALSEが返された場合に エラー原因を調べてエラーならメッセージを出す．

作者:
genta
日付:
2004.05.29 genta 元々あった部分をまとめた

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

BOOL CDlgOpenFile::IsOfnV5 ( void ) [inline, protected]

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

void CDlgOpenFile::InitOfn ( OPENFILENAMEZ & ofn ) [protected]

OPENFILENAME 初期化

OPENFILENAME に CDlgOpenFile クラス用の初期規定値を設定する

作者:
ryoji
日付:
2005.10.29

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

参照元 CDlgOpenFile().

void CDlgOpenFile::InitLayout | ( | HWND | hwndOpenDlg,
 |  | HWND | hwndDlg,
 |  | HWND | hwndBaseCtrl |
 | ) |  |  | [static, protected]

初期レイアウト設定処理

追加コントロールのレイアウトを変更する

引数:
hwndOpenDlg | [in] ファイルダイアログのウィンドウハンドル
hwndDlg | [in] 子ダイアログのウィンドウハンドル
hwndBaseCtrl | [in] 移動基準コントロール（ファイル名ボックスと左端を合わせるコントロール）のウィンドウハンドル
作者:
ryoji
日付:
2005.11.02

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

参照元 OFNHookProc().

void CDlgOpenFile::OnCmbDropdown ( HWND hwnd ) [static, protected]

コンボボックスのドロップダウン時処理

コンボボックスがドロップダウンされる時に ドロップダウンリストの幅をアイテム文字列の最大表示幅に合わせる

引数:
hwnd [in] コンボボックスのウィンドウハンドル
作者:
ryoji
日付:
2005.10.29

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

参照元 OFNHookProc().

BOOL CDlgOpenFile::GetOpenFileNameRecover ( OPENFILENAMEZ & ofn ) [protected]

リトライ機能付き GetOpenFileName

リトライ機能付き GetOpenFileName

作者:
Moca
日付:
2006.09.03 新規作成

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

BOOL CDlgOpenFile::GetSaveFileNameRecover ( OPENFILENAMEZ & ofn ) [protected]

リトライ機能付き GetOpenFileName

リトライ機能付き GetSaveFileName

作者:
Moca
日付:
2006.09.03 新規作成

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

フレンドと関連する関数

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

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

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

変数

HINSTANCE CDlgOpenFile::m_hInstance

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

参照元 CDlgOpenFile(), と Create().

HWND CDlgOpenFile::m_hwndParent

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

参照元 CDlgOpenFile(), と Create().

HWND CDlgOpenFile::m_hWnd

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

参照元 CDlgOpenFile().

DLLSHAREDATA* CDlgOpenFile::m_pShareData

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

参照元 CDlgOpenFile(), と OFNHookProc().

SFilePath CDlgOpenFile::m_szDefaultWildCard

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

参照元 CDlgOpenFile(), Create(), と OFNHookProc().

SFilePath CDlgOpenFile::m_szInitialDir

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

参照元 CDlgOpenFile(), と Create().

OPENFILENAMEZ CDlgOpenFile::m_ofn

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

参照元 CDlgOpenFile().

ECodeType CDlgOpenFile::m_nCharCode

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

参照元 CDlgOpenFile(), と OFNHookProc().

CEOL CDlgOpenFile::m_cEol

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

参照元 OFNHookProc().

bool CDlgOpenFile::m_bUseEol

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

参照元 OFNHookProc().

BOOL CDlgOpenFile::m_bBom

BOMを付けるかどうか

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

参照元 OFNHookProc().

bool CDlgOpenFile::m_bUseBom

BOMの有無を選択する機能を利用するかどうか

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

参照元 OFNHookProc().

SFilePath CDlgOpenFile::m_szPath

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

参照元 OFNHookProc().

COsVersionInfo CDlgOpenFile::m_cOsVer [static, protected]

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

このクラスの説明は次のファイルから生成されました:
  • CDlgOpenFile.h
  • CDlgOpenFile.cpp
Sakura-Editorに対してSat Nov 17 20:28:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgOpenFile メンバ一覧

これは全メンバの一覧です。CDlgOpenFile継承メンバも含んでいます。

CDlgOpenFile() | CDlgOpenFile |
Create(HINSTANCE, HWND, const TCHAR *, const TCHAR *, const TCHAR **=NULL, const TCHAR **=NULL) | CDlgOpenFile |
Create2(HINSTANCE hInstance, HWND hwndParent, const TCHAR *pszUserWildCard, const TCHAR *pszDefaultPath, TCHAR **ppszMRU, TCHAR **ppszOPENFOLDER) | CDlgOpenFile | [inline]
DlgOpenFail(void) | CDlgOpenFile | [protected]
DoModal_GetOpenFileName(TCHAR *, bool bSetCurDir=false) | CDlgOpenFile |
DoModal_GetSaveFileName(TCHAR *, bool bSetCurDir=false) | CDlgOpenFile |
DoModalOpenDlg(TCHAR *, ECodeType *, bool *) | CDlgOpenFile |
DoModalSaveDlg(TCHAR *, ECodeType *, 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 Nov 17 20:28:00 2007に生成されました。 doxygen 1.5.4


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 | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), と IDD_PRINTPAGE.

int CDlgPrintPage::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_EDIT_FROM, IDC_EDIT_TO, IDC_RADIO_ALL, m_bAllPage, m_nPageFrom, m_nPageMax, m_nPageMin, m_nPageTo, MYMESSAGEBOX_A, NULL, と TRUE.

参照元 OnBnClicked().

void CDlgPrintPage::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 auto_sprintf(), ApiWrap::DlgItem_SetText(), FALSE, CDialog::GetHwnd(), IDC_EDIT_FROM, IDC_EDIT_TO, IDC_LABEL_FROM, IDC_LABEL_TO, IDC_RADIO_ALL, IDC_RADIO_FROMTO, IDC_STATIC_ALL, m_bAllPage, m_nPageFrom, m_nPageMax, m_nPageMin, m_nPageTo, と TRUE.

BOOL CDlgPrintPage::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::CloseDialog(), FALSE, GetData(), CDialog::GetHwnd(), IDC_EDIT_FROM, IDC_EDIT_TO, IDC_LABEL_FROM, IDC_LABEL_TO, IDC_RADIO_ALL, IDC_RADIO_FROMTO, と TRUE.

LPVOID CDlgPrintPage::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

int CDlgPrintPage::m_nPageMin

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

参照元 GetData(), と SetData().

int CDlgPrintPage::m_nPageMax

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

参照元 GetData(), と SetData().

BOOL CDlgPrintPage::m_bAllPage

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

参照元 GetData(), と SetData().

int CDlgPrintPage::m_nPageFrom

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

参照元 GetData(), と SetData().

int CDlgPrintPage::m_nPageTo

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

参照元 GetData(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgPrintPage.h
  • CDlgPrintPage.cpp
Sakura-Editorに対してSat Nov 17 20:28:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgPrintPage メンバ一覧

これは全メンバの一覧です。CDlgPrintPage継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bAllPage | CDlgPrintPage |
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:00 2007に生成されました。 doxygen 1.5.4


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::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int * | pnCurrentPrintSetting,
 |  | PRINTSETTING * | pPrintSettingArr
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_PRINTSETTING, m_nCurrentPrintSetting, m_PrintSettingArr, MAX_PRINTSETTINGARR, NULL, と TRUE.

参照元 CEditWnd::OnPrintPageSetting().

void CDlgPrintSetting::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::Combo_AddString(), FALSE, CDialog::GetHwnd(), IDC_COMBO_FONT_HAN, IDC_COMBO_FONT_ZEN, IDC_COMBO_PAPER, IDC_COMBO_SETTINGNAME, CDialog::m_hwndParent, m_nCurrentPrintSetting, PAPER_INFO::m_nId, CPrint::m_nPaperInfoArrNum, CPrint::m_paperInfoArr, m_PrintSettingArr, MAX_PRINTSETTINGARR, NULL, OnChangeSettingType(), SendMessageAny, と SetData_EnumFontFamProc().

int CDlgPrintSetting::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 ApiWrap::Combo_GetText(), DataCheckAndCrrect(), ApiWrap::DlgItem_GetText(), FALSE, CDialog::GetHwnd(), HEADER_MAX, IDC_CHECK_LINENUMBER, IDC_CHECK_PS_KINSOKUHEAD, IDC_CHECK_PS_KINSOKUKUTO, IDC_CHECK_PS_KINSOKURET, IDC_CHECK_PS_KINSOKUTAIL, IDC_CHECK_WORDWRAP, IDC_COMBO_FONT_HAN, IDC_COMBO_FONT_ZEN, IDC_COMBO_PAPER, IDC_EDIT_DANSPACE, IDC_EDIT_DANSUU, IDC_EDIT_FONTWIDTH, IDC_EDIT_FOOT1, IDC_EDIT_FOOT2, IDC_EDIT_FOOT3, IDC_EDIT_HEAD1, IDC_EDIT_HEAD2, IDC_EDIT_HEAD3, IDC_EDIT_LINESPACE, IDC_EDIT_MARGINBY, IDC_EDIT_MARGINLX, IDC_EDIT_MARGINRX, IDC_EDIT_MARGINTY, IDC_RADIO_PORTRAIT, PRINTSETTING::m_bPrintKinsokuHead, PRINTSETTING::m_bPrintKinsokuKuto, PRINTSETTING::m_bPrintKinsokuRet, PRINTSETTING::m_bPrintKinsokuTail, PRINTSETTING::m_bPrintLineNumber, PRINTSETTING::m_bPrintWordWrap, 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, PRINTSETTING::m_szFooterForm, PRINTSETTING::m_szHeaderForm, NULL, SendMessageAny, と TRUE.

参照元 OnBnClicked(), OnChangeSettingType(), と OnTimer().

BOOL CDlgPrintSetting::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), BOOL, CDialog::GetHwnd(), IDC_COMBO_FONT_HAN, IDC_COMBO_FONT_ZEN, IDC_COMBO_PAPER, IDC_COMBO_SETTINGNAME, IDT_PRINTSETTING, NULL, CDialog::OnInitDialog(), SendMessageAny, と TRUE.

BOOL CDlgPrintSetting::OnDestroy ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::GetHwnd(), IDT_PRINTSETTING, と CDialog::OnDestroy().

BOOL CDlgPrintSetting::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 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.

BOOL CDlgPrintSetting::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_COMBO_SETTINGNAME, OnChangeSettingType(), と TRUE.

BOOL CDlgPrintSetting::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _tcscpy(), BOOL, CDlgInput1::DoModal(), F_PRINT_PAGESETUP, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_EDITSETTINGNAME, IDC_BUTTON_HELP, IDC_COMBO_SETTINGNAME, CDialog::m_hInstance, m_nCurrentPrintSetting, m_PrintSettingArr, CDialog::m_szHelpFile, MAX_PRINTSETTINGARR, MyWinHelp(), CDialog::OnBnClicked(), SendMessageAny, と TRUE.

LPVOID CDlgPrintSetting::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgPrintSetting::OnChangeSettingType ( BOOL bGetData ) [protected]

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

参照先 ApiWrap::DlgItem_SetText(), FALSE, GetData(), CDialog::GetHwnd(), IDC_CHECK_LINENUMBER, IDC_CHECK_PS_KINSOKUHEAD, IDC_CHECK_PS_KINSOKUKUTO, IDC_CHECK_PS_KINSOKURET, IDC_CHECK_PS_KINSOKUTAIL, IDC_CHECK_WORDWRAP, IDC_COMBO_FONT_HAN, IDC_COMBO_FONT_ZEN, IDC_COMBO_PAPER, IDC_COMBO_SETTINGNAME, IDC_EDIT_DANSPACE, IDC_EDIT_DANSUU, IDC_EDIT_FONTWIDTH, IDC_EDIT_FOOT1, IDC_EDIT_FOOT2, IDC_EDIT_FOOT3, IDC_EDIT_HEAD1, IDC_EDIT_HEAD2, IDC_EDIT_HEAD3, IDC_EDIT_LINESPACE, IDC_EDIT_MARGINBY, IDC_EDIT_MARGINLX, IDC_EDIT_MARGINRX, IDC_EDIT_MARGINTY, IDC_RADIO_LANDSCAPE, IDC_RADIO_PORTRAIT, 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, と SendMessageAny.

参照元 OnCbnSelChange(), と SetData().

void CDlgPrintSetting::OnSpin | ( | int | nCtrlId,
 |  | BOOL | bDown |
 | ) |  |  | [protected]

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

参照先 BOOL, DataCheckAndCrrect(), FALSE, CDialog::GetHwnd(), IDC_EDIT_DANSPACE, IDC_EDIT_DANSUU, IDC_EDIT_FONTWIDTH, IDC_EDIT_LINESPACE, IDC_EDIT_MARGINBY, IDC_EDIT_MARGINLX, IDC_EDIT_MARGINRX, IDC_EDIT_MARGINTY, IDC_SPIN_DANSPACE, IDC_SPIN_DANSUU, IDC_SPIN_FONTWIDTH, IDC_SPIN_LINESPACE, IDC_SPIN_MARGINBY, IDC_SPIN_MARGINLX, IDC_SPIN_MARGINRX, IDC_SPIN_MARGINTY, NULL, と TRUE.

参照元 OnNotify().

int CDlgPrintSetting::DataCheckAndCrrect | ( | int | nCtrlId,
 |  | int | nData |
 | ) |  |  | [protected]

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

参照先 IDC_EDIT_DANSPACE, IDC_EDIT_DANSUU, IDC_EDIT_FONTWIDTH, IDC_EDIT_LINESPACE, IDC_EDIT_MARGINBY, IDC_EDIT_MARGINLX, IDC_EDIT_MARGINRX, と IDC_EDIT_MARGINTY.

参照元 GetData(), と OnSpin().

BOOL CDlgPrintSetting::OnTimer ( WPARAM wParam ) [protected, virtual]

CDialogを再定義しています。

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

参照先 MYDEVMODE::dmFields, MYDEVMODE::dmOrientation, MYDEVMODE::dmPaperSize, FALSE, GetData(), CDialog::GetHwnd(), 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.

変数

int CDlgPrintSetting::m_nCurrentPrintSetting

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

参照元 DoModal(), GetData(), OnBnClicked(), OnChangeSettingType(), OnTimer(), と SetData().

PRINTSETTING CDlgPrintSetting::m_PrintSettingArr[MAX_PRINTSETTINGARR]

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

参照元 DoModal(), GetData(), OnBnClicked(), OnChangeSettingType(), OnTimer(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgPrintSetting.h
  • CDlgPrintSetting.cpp
Sakura-Editorに対してSat Nov 17 20:28:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgPrintSetting メンバ一覧

これは全メンバの一覧です。CDlgPrintSetting継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:01 2007に生成されました。 doxygen 1.5.4


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 | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), と IDD_PROPERTY_FILE.

参照元 CViewCommander::Command_PROPERTY_FILE().

BOOL CDlgProperty::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 F_PROPERTY_FILE, FALSE, FuncID_To_HelpContextID(), CDialog::GetHwnd(), IDC_BUTTON_HELP, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), と TRUE.

void CDlgProperty::SetData ( void ) [protected, virtual]

ダイアログデータの設定

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDialogを再定義しています。

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

参照先 CNativeA::AppendString(), auto_sprintf(), CheckKanjiCode_MAXREADLENGTH, CEditDoc::GetDocumentAttribute(), Charcode::GetEncdInf_EucJp(), Charcode::GetEncdInf_Jis(), Charcode::GetEncdInf_SJis(), Charcode::GetEncdInf_Uni(), Charcode::GetEncdInf_Utf7(), Charcode::GetEncdInf_Utf8(), CEditDoc::GetFilePath(), CShareData::getInstance(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineCount(), CShareData::GetShareData(), GlobalLockChar, gm_pszCodeNameArr_Normal, CEditDoc::IsModified(), CEditDoc::m_bReadOnly, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditDoc::m_hLockedFile, CDialog::m_lParam, CEditDoc::m_nCharCode, CEditDoc::m_nCommandExecNum, CommonSetting_File::m_nFileShareMode, CDialog::m_pShareData, CommonSetting::m_sFile, Types::m_szTypeName, WC_EncodingInfo_t::nCRorLF, UnicodeInfo_t::nCRorLF_ascii, NULL, SHAREMODE_DENY_READWRITE, SHAREMODE_DENY_WRITE, UnicodeInfo_t::Uni, と UnicodeInfo_t::UniBe.

LPVOID CDlgProperty::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

このクラスの説明は次のファイルから生成されました:
  • CDlgProperty.h
  • CDlgProperty.cpp
Sakura-Editorに対してSat Nov 17 20:28:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgProperty メンバ一覧

これは全メンバの一覧です。CDlgProperty継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgReplace

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgReplace

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

#include <CDlgReplace.h>

CDlgReplaceに対する継承グラフ

[凡例]
CDlgReplaceのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgReplace ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM, BOOL)
void | ChangeView (LPARAM)

Public 変数

SSearchOption m_sSearchOption
int | m_bConsecutiveAll
wchar_t | m_szText [_MAX_PATH+1]
wchar_t | 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
CLogicPoint m_ptEscCaretPos_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 の 59 行で定義されています。

参照先 FALSE, m_bCanceled, m_bConsecutiveAll, m_bSelectedArea, m_nPaste, m_nReplaceCnt, m_nReplaceTarget, m_sSearchOption, m_szText, m_szText2, と SSearchOption::Reset().

関数

HWND CDlgReplace::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam,
 |  | BOOL | bSelected
 | ) |  |

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

参照先 CDialog::DoModeless(), IDD_REPLACE, CommonSetting_Search::m_bConsecutiveAll, m_bConsecutiveAll, CommonSetting_Search::m_bNOTIFYNOTFOUND, m_bNOTIFYNOTFOUND, m_bSelected, CommonSetting_Search::m_bSelectedArea, m_bSelectedArea, DLLSHAREDATA::m_Common, CDialog::m_pShareData, m_ptEscCaretPos_PHY, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, と TRUE.

参照元 CViewCommander::Command_REPLACE_DIALOG().

void CDlgReplace::ChangeView ( LPARAM pcEditView )

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

参照先 CDialog::m_lParam.

参照元 CEditWnd::SetActivePane().

BOOL CDlgReplace::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, CDialog::_SetHwnd(), BOOL, FALSE, CDialog::GetHwnd(), 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(), SendMessageAny, と TRUE.

BOOL CDlgReplace::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 ActivateFrameWindow(), CheckRegexpVersion(), F_BOOKMARK_PATTERN, F_REDRAW, F_REPLACE, F_REPLACE_ALL, F_REPLACE_DIALOG, F_SEARCH_NEXT, F_SEARCH_PREV, FALSE, FuncID_To_HelpContextID(), CEditView::GetCommander(), GetData(), CDialog::GetHwnd(), GSTR_APPNAME_A, CViewCommander::HandleCommand(), IDC_BUTTON_HELP, IDC_BUTTON_REPALCE, IDC_BUTTON_REPALCEALL, IDC_BUTTON_SEARCHNEXT, IDC_BUTTON_SEARCHPREV, IDC_BUTTON_SETMARK, IDC_CHECK_CONSECUTIVEALL, IDC_CHK_PASTE, IDC_CHK_REGULAREXP, IDC_CHK_WORD, IDC_COMBO_TEXT, IDC_COMBO_TEXT2, IDC_RADIO_ALLAREA, IDC_RADIO_SELECTEDAREA, IDC_STATIC_JRE32VER, CEditDoc::IsEnablePaste(), CommonSetting_Search::m_bAutoCloseDlgReplace, m_bCanceled, CDialog::m_bModal, CEditView::m_bSearch, DLLSHAREDATA::m_Common, CDialog::m_lParam, m_nReplaceCnt, CEditView::m_pcEditDoc, CDialog::m_pShareData, m_ptEscCaretPos_PHY, CEditView::m_ptSrchStartPos_PHY, CommonSetting::m_sSearch, CDialog::m_szHelpFile, MYMESSAGEBOX_A, MyWinHelp(), CDialog::OnBnClicked(), SendMessageAny, と TRUE.

LPVOID CDlgReplace::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgReplace::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpVersion(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), FALSE, CDialog::GetHwnd(), IDC_CHECK_bAutoCloseDlgReplace, IDC_CHECK_CONSECUTIVEALL, IDC_CHECK_NOTIFYNOTFOUND, IDC_CHECK_SEARCHALL, IDC_CHK_LOHICASE, IDC_CHK_PASTE, IDC_CHK_REGULAREXP, IDC_CHK_WORD, IDC_COMBO_TEXT, IDC_COMBO_TEXT2, IDC_RADIO_ADD, IDC_RADIO_INSERT, IDC_RADIO_REPLACE, IDC_STATIC_JRE32VER, DLLSHAREDATA::m_aReplaceKeys, DLLSHAREDATA::m_aSearchKeys, CommonSetting_Search::m_bAutoCloseDlgReplace, m_bConsecutiveAll, m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, DLLSHAREDATA::m_Common, m_nPaste, m_nReplaceTarget, CDialog::m_pShareData, CommonSetting::m_sSearch, m_sSearchOption, m_szText, m_szText2, と TRUE.

int CDlgReplace::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, CShareData::AddToReplaceKeyArr(), CShareData::AddToSearchKeyArr(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpSyntax(), ApiWrap::DlgItem_GetText(), CDialog::GetHwnd(), CShareData::getInstance(), IDC_CHECK_bAutoCloseDlgReplace, IDC_CHECK_CONSECUTIVEALL, IDC_CHECK_NOTIFYNOTFOUND, IDC_CHECK_SEARCHALL, IDC_CHK_LOHICASE, IDC_CHK_PASTE, IDC_CHK_REGULAREXP, IDC_CHK_WORD, IDC_COMBO_TEXT, IDC_COMBO_TEXT2, IDC_RADIO_ADD, IDC_RADIO_INSERT, IDC_RADIO_SELECTEDAREA, CommonSetting_Search::m_bAutoCloseDlgReplace, CommonSetting_Search::m_bConsecutiveAll, m_bConsecutiveAll, CommonSetting_Search::m_bNOTIFYNOTFOUND, m_bNOTIFYNOTFOUND, CommonSetting_Search::m_bSearchAll, CommonSetting_Search::m_bSelectedArea, m_bSelectedArea, DLLSHAREDATA::m_Common, m_nPaste, m_nReplaceTarget, CDialog::m_pShareData, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_sSearchOption, m_szText, と m_szText2.

参照元 OnBnClicked().

変数

SSearchOption CDlgReplace::m_sSearchOption

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

参照元 CDlgReplace(), DoModeless(), GetData(), と SetData().

int CDlgReplace::m_bConsecutiveAll

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

参照元 CDlgReplace(), DoModeless(), GetData(), と SetData().

wchar_t CDlgReplace::m_szText[_MAX_PATH+1]

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

参照元 CDlgReplace(), GetData(), と SetData().

wchar_t CDlgReplace::m_szText2[_MAX_PATH+1]

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

参照元 CDlgReplace(), CViewCommander::Command_REPLACE_DIALOG(), GetData(), と SetData().

BOOL CDlgReplace::m_bSelectedArea

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

参照元 CDlgReplace(), DoModeless(), と GetData().

int CDlgReplace::m_bNOTIFYNOTFOUND

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

参照元 DoModeless(), GetData(), と SetData().

int CDlgReplace::m_nSettingType

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

BOOL CDlgReplace::m_bSelected

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

参照元 DoModeless(), と OnInitDialog().

int CDlgReplace::m_nReplaceTarget

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

参照元 CMacro::AddLParam(), CDlgReplace(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), GetData(), CMacro::HandleCommand(), と SetData().

int CDlgReplace::m_nPaste

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

参照元 CMacro::AddLParam(), CDlgReplace(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), GetData(), CMacro::HandleCommand(), と SetData().

int CDlgReplace::m_nReplaceCnt

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

参照元 CDlgReplace(), CViewCommander::Command_REPLACE_ALL(), と OnBnClicked().

bool CDlgReplace::m_bCanceled

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

参照元 CDlgReplace(), CViewCommander::Command_REPLACE_ALL(), と OnBnClicked().

CLogicPoint CDlgReplace::m_ptEscCaretPos_PHY

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

参照元 DoModeless(), と OnBnClicked().

このクラスの説明は次のファイルから生成されました:
  • CDlgReplace.h
  • CDlgReplace.cpp
Sakura-Editorに対してSat Nov 17 20:28:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgReplace メンバ一覧

これは全メンバの一覧です。CDlgReplace継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bCanceled | CDlgReplace |
m_bConsecutiveAll | CDlgReplace |
m_bInited | CDialog |
m_bModal | CDialog |
m_bNOTIFYNOTFOUND | CDlgReplace |
m_bSelected | CDlgReplace |
m_bSelectedArea | CDlgReplace |
m_hInstance | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
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_ptEscCaretPos_PHY | CDlgReplace |
m_sSearchOption | CDlgReplace |
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 Nov 17 20:28:03 2007に生成されました。 doxygen 1.5.4


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)
ダイアログのメッセージ処理
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 の 54 行で定義されています。

CDlgSameColor::~CDlgSameColor ( )

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

関数

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 の 110 行で定義されています。

参照先 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 の 49 行で定義されています。

参照先 p_helpids.

INT_PTR CDlgSameColor::DispatchEvent | ( | HWND | hWnd,
 |  | UINT | wMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

標準以外のメッセージを捕捉する

CDialogを再定義しています。

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

参照先 CDialog::DispatchEvent(), IDC_LIST_COLORS, IDC_LIST_ITEMINFO, INT_PTR, と OnSelChangeListColors().

BOOL CDlgSameColor::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

ダイアログのメッセージ処理

WM_INITDIALOG 処理

WM_INITDIALOG 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

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

参照先 BOOL, CDialog::CloseDialog(), COLOR_ATTRIB_NO_BACK, COLORIDX_LAST, ColorList_SubclassProc(), ColorStatic_SubclassProc(), FALSE, g_ColorAttributeArr, CDialog::GetHwnd(), GWLP_USERDATA, GWLP_WNDPROC, IDC_BUTTON_SAMEBKCOLOR, IDC_BUTTON_SAMETEXTCOLOR, IDC_LIST_COLORS, IDC_STATIC_COLOR, ApiWrap::List_AddString(), LONG_PTR, ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_cr, m_pTypes, m_wID, m_wpColorListProc, m_wpColorStaticProc, CDialog::OnInitDialog(), OnSelChangeListColors(), SendMessageAny, と SetWindowLongPtr.

BOOL CDlgSameColor::OnBnClicked ( int wID ) [protected, virtual]

BN_CLICKED 処理

BN_CLICKED 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

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

参照先 BOOL, COLORIDX_LAST, CDialog::GetHwnd(), HLP000316, IDC_BUTTON_HELP, IDC_BUTTON_SAMEBKCOLOR, IDC_BUTTON_SAMETEXTCOLOR, IDC_BUTTON_SELALL, IDC_BUTTON_SELNOTING, IDC_LIST_COLORS, ApiWrap::List_GetText(), ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_cr, m_pTypes, CDialog::m_szHelpFile, m_wID, MyWinHelp(), NULL, CDialog::OnBnClicked(), SendMessageAny, と TRUE.

BOOL CDlgSameColor::OnDrawItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_DRAWITEM 処理

WM_DRAWITEM 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

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

参照先 BOOL, IDC_LIST_COLORS, ApiWrap::List_GetText(), と TRUE.

BOOL CDlgSameColor::OnSelChangeListColors ( HWND hwndCtl ) [protected]

色選択リストの LBN_SELCHANGE 処理

色選択リストの LBN_SELCHANGE 処理

日付:
2006.05.01 ryoji 新規作成

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

参照先 COLOR_ATTRIB_NO_BACK, COLORIDX_LAST, g_ColorAttributeArr, CDialog::GetHwnd(), IDC_BUTTON_SAMEBKCOLOR, IDC_BUTTON_SAMETEXTCOLOR, IDC_LIST_ITEMINFO, ApiWrap::List_AddString(), ApiWrap::List_GetText(), ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_pTypes, ColorInfo::m_szName, m_wID, SendMessageAny, と TRUE.

参照元 DispatchEvent(), と OnInitDialog().

LRESULT CALLBACK CDlgSameColor::ColorStatic_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

サブクラス化された指定色スタティックのウィンドウプロシージャ

サブクラス化された指定色スタティックのウィンドウプロシージャ

日付:
2006.04.26 ryoji 新規作成

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

参照先 GetWindowLongPtr, GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, m_cr, m_wpColorStaticProc, NULL, SendMessageAny, と SetWindowLongPtr.

参照元 OnInitDialog().

LRESULT CALLBACK CDlgSameColor::ColorList_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

サブクラス化された色選択リストのウィンドウプロシージャ

サブクラス化された色選択リストのウィンドウプロシージャ

日付:
2006.04.26 ryoji 新規作成

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

参照先 BOOL, GetWindowLongPtr, GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, m_wpColorListProc, NULL, SendMessageAny, SetWindowLongPtr, と TRUE.

参照元 OnInitDialog().

変数

WNDPROC CDlgSameColor::m_wpColorStaticProc [protected]

サブクラス化以前の指定色スタティックのウィンドウプロシージャ

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

参照元 ColorStatic_SubclassProc(), と OnInitDialog().

WNDPROC CDlgSameColor::m_wpColorListProc [protected]

サブクラス化以前の色選択リストのウィンドウプロシージャ

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

参照元 ColorList_SubclassProc(), と OnInitDialog().

WORD CDlgSameColor::m_wID [protected]

タイプ別設定ダイアログ（親ダイアログ）で押されたボタンID

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

参照元 DoModal(), OnBnClicked(), OnInitDialog(), と OnSelChangeListColors().

Types* CDlgSameColor::m_pTypes [protected]

タイプ別設定データ

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

参照元 DoModal(), OnBnClicked(), OnInitDialog(), と OnSelChangeListColors().

COLORREF CDlgSameColor::m_cr [protected]

指定色

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

参照元 ColorStatic_SubclassProc(), DoModal(), OnBnClicked(), と OnInitDialog().

このクラスの説明は次のファイルから生成されました:
  • CDlgSameColor.h
  • CDlgSameColor.cpp
Sakura-Editorに対してSat Nov 17 20:28:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgSameColor メンバ一覧

これは全メンバの一覧です。CDlgSameColor継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_cr | CDlgSameColor | [protected]
m_hInstance | 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 Nov 17 20:28:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgTagJumpList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgTagJumpList

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

#include <CDlgTagJumpList.h>

CDlgTagJumpListに対する継承グラフ

[凡例]
CDlgTagJumpListのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgTagJumpList ()
~CDlgTagJumpList ()
int | DoModal (HINSTANCE, HWND, LPARAM)
bool | AddParam (TCHAR *s0, TCHAR *s1, int n2, TCHAR *s3, TCHAR *s4, int depth)
bool | GetSelectedParam (TCHAR *s0, TCHAR *s1, int *n2, TCHAR *s3, TCHAR *s4, int *depth)
void | SetFileName (const TCHAR *pszFileName)
void | SetKeyword (const wchar_t *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候補の更新
TCHAR * | GetNameByType (const TCHAR type, const TCHAR *name)
int | SearchBestTag (void)
const TCHAR * | GetFileName (void)
const TCHAR * | GetFilePath (void)
void | find_key (const wchar_t *keyword)
void | Empty (void)

Private 変数

int | m_nIndex
選択された要素番号
TCHAR * | m_pszFileName
編集中のファイル名
wchar_t * | 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 の 102 行で定義されています。

CDlgTagJumpList::~CDlgTagJumpList ( )

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

参照先 Empty(), m_nLoop, m_pszFileName, m_pszKeyword, NULL, と StopTimer().

関数

int CDlgTagJumpList::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

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

参照先 CDialog::DoModal(), IDD_TAGJUMPLIST, と StopTimer().

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CViewCommander::Command_TagJumpByTagsFileKeyword().

bool CDlgTagJumpList::AddParam | ( | TCHAR * | s0,
 |  | TCHAR * | s1,
 |  | int | n2,
 |  | TCHAR * | s3,
 |  | TCHAR * | s4,
 |  | int | depth
 | ) |  |

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

参照先 CSortedTagJumpList::AddParam(), m_cList, と m_nIndex.

参照元 CViewCommander::Command_TagJumpByTagsFile().

bool CDlgTagJumpList::GetSelectedParam | ( | TCHAR * | s0,
 |  | TCHAR * | s1,
 |  | int * | n2,
 |  | TCHAR * | s3,
 |  | TCHAR * | s4,
 |  | int * | depth
 | ) |  |

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

参照先 CSortedTagJumpList::GetCount(), CSortedTagJumpList::GetParam(), m_cList, と m_nIndex.

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CViewCommander::Command_TagJumpByTagsFileKeyword().

void CDlgTagJumpList::SetFileName ( const TCHAR * pszFileName )

与えられたファイル名と，そこに含まれるディレクトリの深さを設定する．

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

参照先 _MAX_PATH, CalcDirectoryDepth(), m_nLoop, m_pszFileName, と NULL.

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CViewCommander::Command_TagJumpByTagsFileKeyword().

void CDlgTagJumpList::SetKeyword ( const wchar_t * pszKeyword )

検索キーワードの設定

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

参照先 m_pszKeyword, と NULL.

参照元 CViewCommander::Command_TagJumpByTagsFileKeyword(), と GetData().

BOOL CDlgTagJumpList::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

日付:
2005.03.31 MIK 階層カラムの追加．キーワード指定欄の追加

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), BOOL, FALSE, CDialog::GetHwnd(), IDC_CHECK_ANYWHERE, IDC_CHECK_ICASE, IDC_KEYWORD, IDC_LIST_TAGJUMP, IDC_STATIC_KEYWORD, CDialog::m_lParam, CDialog::OnInitDialog(), SendMessageAny, と TRUE.

BOOL CDlgTagJumpList::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 BOOL, F_TAGJUMP_LIST, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_HELP, IDC_CHECK_ANYWHERE, IDC_CHECK_ICASE, m_bTagJumpAnyWhere, m_bTagJumpICase, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), StartTimer(), StopTimer(), と TRUE.

BOOL CDlgTagJumpList::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CSortedTagJumpList::GetCount(), GetData(), CDialog::GetHwnd(), IDC_LIST_TAGJUMP, m_cList, m_nIndex, CDialog::OnNotify(), StopTimer(), と TRUE.

BOOL CDlgTagJumpList::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

CDialogを再定義しています。

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

参照先 CDialog::OnCbnSelChange(), と StartTimer().

BOOL CDlgTagJumpList::OnCbnEditChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [protected, virtual]

タイマー経過

タイマーを停止し，候補リストを更新する

CDialogを再定義しています。

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

参照先 CDialog::OnCbnEditChange(), と StartTimer().

BOOL CDlgTagJumpList::OnTimer ( WPARAM wParam ) [protected, virtual]

タイマー経過

タイマーを停止し，候補リストを更新する

CDialogを再定義しています。

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

参照先 _countof, ApiWrap::DlgItem_GetText(), find_key(), CDialog::GetHwnd(), IDC_KEYWORD, MAX_TAG_STRING_LENGTH, StopTimer(), TRUE, と UpdateData().

LPVOID CDlgTagJumpList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgTagJumpList::StopTimer ( void ) [protected]

タイマー停止

作者:
MIK
日付:
2005.03.31 新規作成

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

参照先 CDialog::GetHwnd(), と m_nTimerId.

参照元 DoModal(), OnBnClicked(), OnNotify(), OnTimer(), StartTimer(), と ~CDlgTagJumpList().

void CDlgTagJumpList::StartTimer ( void ) [protected]

タイマー開始

キーワード指定時，一定期間文字入力がなければリストを更新するため 「一定期間」を計るタイマーが必要

作者:
MIK
日付:
2005.03.31 新規作成

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

参照先 CDialog::GetHwnd(), m_nTimerId, NULL, StopTimer(), と TAGJUMP_TIMER_DELAY.

参照元 OnBnClicked(), OnCbnEditChange(), OnCbnSelChange(), と SetData().

void CDlgTagJumpList::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _MAX_PATH, ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), CDialog::GetHwnd(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), CRecentTagjumpKeyword::GetItemText(), IDC_CHECK_ANYWHERE, IDC_CHECK_ICASE, IDC_KEYWORD, DLLSHAREDATA::m_bTagJumpAnyWhere, m_bTagJumpAnyWhere, DLLSHAREDATA::m_bTagJumpICase, m_bTagJumpICase, CDialog::m_lParam, CDialog::m_pShareData, m_pszKeyword, NULL, SendMessageAny, StartTimer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と UpdateData().

int CDlgTagJumpList::GetData ( void ) [protected, virtual]

ダイアログデータの取得

戻り値:
TRUE: 正常, FALSE: 入力エラー
日付:
2005.04.03 MIK 設定値の保存処理追加

CDialogを再定義しています。

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

参照先 _countof, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), ApiWrap::DlgItem_GetText(), FALSE, CSortedTagJumpList::GetCapacity(), CDialog::GetHwnd(), IDC_KEYWORD, IDC_LIST_TAGJUMP, m_bTagJumpAnyWhere, DLLSHAREDATA::m_bTagJumpAnyWhere, m_bTagJumpICase, DLLSHAREDATA::m_bTagJumpICase, m_cList, CDialog::m_lParam, m_nIndex, CDialog::m_pShareData, m_pszKeyword, MAX_TAG_STRING_LENGTH, SetKeyword(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と TRUE.

参照元 OnBnClicked(), と OnNotify().

void CDlgTagJumpList::UpdateData ( void ) [protected]

Jump候補の更新

日付:
2005.03.31 MIK ダイアログOpen時以外にも更新が必要なためSetData()より分離

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

参照先 auto_sprintf(), CSortedTagJumpList::tagjump_info_t::depth, FALSE, CSortedTagJumpList::tagjump_info_t::filename, CSortedTagJumpList::GetCount(), CDialog::GetHwnd(), GetNameByType(), CSortedTagJumpList::GetPtr(), IDC_LIST_TAGJUMP, CSortedTagJumpList::IsOverflow(), CSortedTagJumpList::tagjump_info_t::keyword, m_cList, m_nIndex, CSortedTagJumpList::tagjump_info_t::no, CSortedTagJumpList::tagjump_info_t::note, NULL, SearchBestTag(), と CSortedTagJumpList::tagjump_info_t::type.

参照元 OnTimer(), と SetData().

TCHAR * CDlgTagJumpList::GetNameByType | ( | const TCHAR | type,
 |  | const TCHAR * | name |
 | ) |  |  | [protected]

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

参照先 _tcscpy(), MAX_TAG_STRING_LENGTH, NULL, と p_extentions.

参照元 UpdateData().

int CDlgTagJumpList::SearchBestTag ( void ) [protected]

得られた候補から最も期待に近いと思われるものを 選び出す．(初期選択位置決定のため)

戻り値:
選択されたアイテムのindex

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

参照先 _tcscpy(), CSortedTagJumpList::tagjump_info_t::filename, CSortedTagJumpList::GetCount(), CSortedTagJumpList::GetPtr(), m_cList, m_pszFileName, と NULL.

参照元 UpdateData().

const TCHAR * CDlgTagJumpList::GetFileName ( void ) [protected]

パスからファイル名部分のみを取り出す．(2バイト対応)

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

参照先 GetFilePath(), と GetFileTitlePointer().

参照元 find_key().

const TCHAR* CDlgTagJumpList::GetFilePath ( void ) [inline, protected]

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

参照先 NULL.

参照元 find_key(), と GetFileName().

void CDlgTagJumpList::find_key ( const wchar_t * _keyword ) [protected]

タグファイルからキーワードにマッチするデータを抽出し， m_cListに設定する

日付:
2007.03.13 genta バッファオーバーラン暫定対処でバッファサイズ変更

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

参照先 _countof, _tcscpy(), _tcsistr_j, CSortedTagJumpList::AddParam(), auto_sprintf(), Empty(), GetFileName(), GetFilePath(), m_bTagJumpAnyWhere, m_bTagJumpICase, m_cList, m_nLoop, NULL, TAG_FILENAME, TAG_FORMAT, と to_tchar.

参照元 OnTimer().

void CDlgTagJumpList::Empty ( void ) [protected]

リストのクリア

作者:
MIK
日付:
2005.03.31 新規作成

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

参照先 CSortedTagJumpList::Empty(), m_cList, と m_nIndex.

参照元 find_key(), と ~CDlgTagJumpList().

変数

int CDlgTagJumpList::m_nIndex [private]

選択された要素番号

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

参照元 AddParam(), Empty(), GetData(), GetSelectedParam(), OnNotify(), と UpdateData().

TCHAR* CDlgTagJumpList::m_pszFileName [private]

編集中のファイル名

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

参照元 SearchBestTag(), SetFileName(), と ~CDlgTagJumpList().

wchar_t* CDlgTagJumpList::m_pszKeyword [private]

キーワード(DoModalのlParam!=0を指定した場合に指定できる)

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

参照元 GetData(), SetData(), SetKeyword(), と ~CDlgTagJumpList().

int CDlgTagJumpList::m_nLoop [private]

さかのぼれる階層数

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

参照元 find_key(), SetFileName(), と ~CDlgTagJumpList().

CSortedTagJumpList CDlgTagJumpList::m_cList [private]

タグジャンプ情報

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

参照元 AddParam(), Empty(), find_key(), GetData(), GetSelectedParam(), OnNotify(), SearchBestTag(), と UpdateData().

UINT CDlgTagJumpList::m_nTimerId [private]

タイマ番号

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

参照元 StartTimer(), と StopTimer().

BOOL CDlgTagJumpList::m_bTagJumpICase [private]

大文字小文字を同一視

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

参照元 find_key(), GetData(), OnBnClicked(), と SetData().

BOOL CDlgTagJumpList::m_bTagJumpAnyWhere [private]

文字列の途中にマッチ

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

参照元 find_key(), GetData(), OnBnClicked(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgTagJumpList.h
  • CDlgTagJumpList.cpp
Sakura-Editorに対してSat Nov 17 20:28:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTagJumpList メンバ一覧

これは全メンバの一覧です。CDlgTagJumpList継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
AddParam(TCHAR *s0, TCHAR *s1, int n2, TCHAR *s3, TCHAR *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 wchar_t *keyword) | CDlgTagJumpList | [protected]
GetData(void) | CDlgTagJumpList | [protected, virtual]
GetFileName(void) | CDlgTagJumpList | [protected]
GetFilePath(void) | CDlgTagJumpList | [inline, protected]
GetHelpIdTable(void) | CDlgTagJumpList | [protected, virtual]
GetHwnd() const | CDialog | [inline]
GetNameByType(const TCHAR type, const TCHAR *name) | CDlgTagJumpList | [protected]
GetSelectedParam(TCHAR *s0, TCHAR *s1, int *n2, TCHAR *s3, TCHAR *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_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 TCHAR *pszFileName) | CDlgTagJumpList |
SetKeyword(const wchar_t *pszKeyword) | CDlgTagJumpList |
StartTimer(void) | CDlgTagJumpList | [protected]
StopTimer(void) | CDlgTagJumpList | [protected]
UpdateData(void) | CDlgTagJumpList | [protected]
~CDialog() | CDialog | [virtual]
~CDlgTagJumpList() | CDlgTagJumpList |

Sakura-Editorに対してSat Nov 17 20:28:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDlgTagsMake

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgTagsMake

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

#include <CDlgTagsMake.h>

CDlgTagsMakeに対する継承グラフ

[凡例]
CDlgTagsMakeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDlgTagsMake ()
int | DoModal (HINSTANCE, HWND, LPARAM, const TCHAR *)

Public 変数

TCHAR | m_szPath [_MAX_PATH+1]
TCHAR | 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 行で定義されています。

参照先 _tcscpy(), m_nTagsOpt, m_szPath, と m_szTagsCmdLine.

関数

int CDlgTagsMake::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam,
 |  | const TCHAR * | pszPath
 | ) |  |

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

参照先 _tcscpy(), CDialog::DoModal(), IDD_TAG_MAKE, と m_szPath.

参照元 CViewCommander::Command_TagsMake().

BOOL CDlgTagsMake::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 F_TAGS_MAKE, FALSE, FuncID_To_HelpContextID(), GetData(), CDialog::GetHwnd(), IDC_BUTTON_HELP, IDC_BUTTON_TAG_MAKE_REF, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), SelectFolder(), と TRUE.

LPVOID CDlgTagsMake::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgTagsMake::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _tcscpy(), ApiWrap::DlgItem_SetText(), CDialog::GetHwnd(), IDC_CHECK_TAG_MAKE_RECURSE, IDC_EDIT_TAG_MAKE_CMDLINE, IDC_EDIT_TAG_MAKE_FOLDER, DLLSHAREDATA::m_nTagsOpt, m_nTagsOpt, CDialog::m_pShareData, m_szPath, m_szTagsCmdLine, DLLSHAREDATA::m_szTagsCmdLine, と TRUE.

int CDlgTagsMake::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 _countof, _tcscpy(), ApiWrap::DlgItem_GetText(), CDialog::GetHwnd(), IDC_CHECK_TAG_MAKE_RECURSE, IDC_EDIT_TAG_MAKE_CMDLINE, IDC_EDIT_TAG_MAKE_FOLDER, DLLSHAREDATA::m_nTagsOpt, m_nTagsOpt, CDialog::m_pShareData, m_szPath, DLLSHAREDATA::m_szTagsCmdLine, m_szTagsCmdLine, と TRUE.

参照元 OnBnClicked().

void CDlgTagsMake::SelectFolder ( HWND hwndDlg ) [private]

フォルダを選択する

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

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

参照先 _MAX_PATH, ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), IDC_EDIT_TAG_MAKE_FOLDER, と SelectDir().

参照元 OnBnClicked().

変数

TCHAR CDlgTagsMake::m_szPath[_MAX_PATH+1]

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

参照元 CDlgTagsMake(), CViewCommander::Command_TagsMake(), DoModal(), GetData(), と SetData().

TCHAR CDlgTagsMake::m_szTagsCmdLine[_MAX_PATH]

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

参照元 CDlgTagsMake(), CViewCommander::Command_TagsMake(), GetData(), と SetData().

int CDlgTagsMake::m_nTagsOpt

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

参照元 CDlgTagsMake(), CViewCommander::Command_TagsMake(), GetData(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgTagsMake.h
  • CDlgTagsMake.cpp
Sakura-Editorに対してSat Nov 17 20:28:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTagsMake メンバ一覧

これは全メンバの一覧です。CDlgTagsMake継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
CDialog() | CDialog |
CDlgTagsMake() | CDlgTagsMake |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const TCHAR *) | 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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:04 2007に生成されました。 doxygen 1.5.4


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 | hInstance,
 |  | HWND | hwndParent,
 |  | int * | pnSettingType
 | ) |  |

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

参照先 CDialog::DoModal(), FALSE, IDD_TYPELIST, m_nSettingType, NULL, と TRUE.

参照元 CViewCommander::Command_TYPE_LIST().

BOOL CDlgTypeList::OnLbnDblclk ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 FALSE, CDialog::GetHwnd(), IDC_LIST_TYPES, PROP_TEMPCHANGE_FLAG, SendMessageAny, と TRUE.

BOOL CDlgTypeList::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 F_TYPE_LIST, FuncID_To_HelpContextID(), CDialog::GetHwnd(), IDC_BUTTON_HELP, IDC_BUTTON_TEMPCHANGE, IDC_LIST_TYPES, CDialog::m_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), PROP_TEMPCHANGE_FLAG, SendMessageAny, と TRUE.

void CDlgTypeList::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 auto_sprintf(), CDialog::GetHwnd(), IDC_LIST_TYPES, ApiWrap::List_AddString(), m_nSettingType, CDialog::m_pShareData, Types::m_szTypeExts, Types::m_szTypeName, DLLSHAREDATA::m_Types, MAX_TYPES, と SendMessageAny.

LPVOID CDlgTypeList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

変数

int CDlgTypeList::m_nSettingType

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

参照元 DoModal(), と SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgTypeList.h
  • CDlgTypeList.cpp
Sakura-Editorに対してSat Nov 17 20:28:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTypeList メンバ一覧

これは全メンバの一覧です。CDlgTypeList継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:05 2007に生成されました。 doxygen 1.5.4


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 の 56 行で定義されています。

CDlgWinSize::~CDlgWinSize ( )

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

関数

int CDlgWinSize::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int & | nSaveWinSize,
 |  | int & | nSaveWinPos,
 |  | int & | nWinSizeType,
 |  | RECT & | rc
 | ) |  |

モーダルダイアログの表示

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

参照先 CDialog::DoModal(), IDD_WINPOSSIZE, m_nSaveWinPos, m_nSaveWinSize, m_nWinSizeType, m_rc, NULL, と TRUE.

参照元 CPropCommon::DispatchEvent_PROP_WIN().

BOOL CDlgWinSize::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

初期化処理

CDialogを再定義しています。

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

参照先 CDialog::_SetHwnd(), ApiWrap::Combo_AddString(), CDialog::GetHwnd(), IDC_COMBO_WINTYPE, IDC_SPIN_SX, IDC_SPIN_SY, IDC_SPIN_WX, IDC_SPIN_WY, CDialog::OnInitDialog(), と SendMessageAny.

BOOL CDlgWinSize::OnBnClicked ( int wID ) [protected, virtual]

CDialogを再定義しています。

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

参照先 GetData(), CDialog::GetHwnd(), 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_szHelpFile, MyWinHelp(), CDialog::OnBnClicked(), RenewItemState(), と TRUE.

int CDlgWinSize::GetData ( void ) [protected, virtual]

ダイアログボックスのデータを読み出す

CDialogを再定義しています。

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

参照先 CDialog::GetHwnd(), 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, m_nSaveWinPos, m_nSaveWinSize, m_nWinSizeType, m_rc, NULL, SendMessageAny, と TRUE.

参照元 OnBnClicked().

void CDlgWinSize::SetData ( void ) [protected, virtual]

ダイアログボックスにデータを設定

CDialogを再定義しています。

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

参照先 CDialog::GetHwnd(), 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, m_nSaveWinPos, m_nSaveWinSize, m_nWinSizeType, m_rc, RenewItemState(), SendMessageAny, と TRUE.

LPVOID CDlgWinSize::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

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

参照先 p_helpids.

void CDlgWinSize::RenewItemState ( void ) [protected]

利用可能・不可の状態を更新する

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

参照先 BOOL, FALSE, CDialog::GetHwnd(), IDC_COMBO_WINTYPE, IDC_EDIT_SX, IDC_EDIT_SY, IDC_EDIT_WX, IDC_EDIT_WY, IDC_RADIO_WINPOS_SET, IDC_RADIO_WINSIZE_SET, と TRUE.

参照元 OnBnClicked(), と SetData().

変数

int CDlgWinSize::m_nSaveWinSize [protected]

ウィンドウサイズの保存: 0/デフォルト，1/継承，2/指定

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

参照元 DoModal(), GetData(), と SetData().

int CDlgWinSize::m_nSaveWinPos [protected]

ウィンドウ位置の保存: 0/デフォルト，1/継承，2/指定

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

参照元 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 Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgWinSize メンバ一覧

これは全メンバの一覧です。CDlgWinSize継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | 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 Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDllHandler

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDllHandler

DLLの動的なLoad/Unloadを行うためのクラス [詳細]

#include <CDllHandler.h>

CDllHandlerに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

CDllHandler ()
virtual | ~CDllHandler ()
virtual bool | IsAvailable (void) const
利用状態のチェック
int | LoadLibrary (LPCTSTR str=NULL)
DLLのロード
int | FreeLibrary (bool force=false)
DLLのアンロード
bool | operator! (void) const
利用状態のチェック（operator版）
bool | Init (LPCTSTR str=NULL)
DLLのロード
HINSTANCE | GetInstance () const
インスタンスハンドルの取得

Protected メソッド

virtual int | InitDll (void)=0
DLLの初期化
virtual int | DeinitDll (void)
関数の初期化
virtual LPCTSTR | GetDllName (LPCTSTR str)
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().

関数

virtual bool CDllHandler::IsAvailable ( void ) const [inline, virtual]

利用状態のチェック

DLLの関数を呼び出せるか状態どうか

戻り値:
true | 利用可能
false | 利用不能

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

参照先 NULL.

参照元 CBregexp::Compile(), FreeLibrary(), CPPA::GetVersion(), CBregexp::GetVersionT(), CUxTheme::Init(), CEditView::ISearchEnter(), LoadLibrary(), CBregexp::Match(), CMigemo::migemo_close(), CMigemo::migemo_get_operator(), CMigemo::migemo_is_enable(), CMigemo::migemo_load_a(), CMigemo::migemo_open(), CMigemo::migemo_query(), CMigemo::migemo_release(), CMigemo::migemo_set_operator(), CMigemo::migemo_setproc_char2int(), CMigemo::migemo_setproc_int2char(), CBregexp::Replace(), ~CDllHandler(), CPPA::~CPPA(), と CRegexKeyword::~CRegexKeyword().

int CDllHandler::LoadLibrary ( LPCTSTR str = NULL )

DLLのロード

戻り値:
0 | 正常終了。DLLがロードされた。
other | 異常終了。DLLはロードされなかった。
日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使うように実装を変更．

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

参照先 FreeLibrary(), GetDllNameInOrder(), InitDll(), IsAvailable(), m_hInstance, と NULL.

int CDllHandler::FreeLibrary ( bool force = false )

DLLのアンロード

引数:
force [in] 終了処理に失敗してもDLLを解放するかどうか

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

参照先 DeinitDll(), IsAvailable(), m_hInstance, と NULL.

参照元 LoadLibrary(), と ~CDllHandler().

bool CDllHandler::operator! ( void ) const [inline]

利用状態のチェック（operator版）

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

bool CDllHandler::Init ( LPCTSTR str = NULL ) [inline]

DLLのロード

詳細な戻り値を返さないこと以外はLoadLibrary()と同じ

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

参照元 CEditView::CEditView(), CEditView::Create(), CRegexKeyword::CRegexKeyword(), CPPAMacroMgr::declare(), CUxTheme::Init(), InitRegexp(), CEditView::ISearchEnter(), OpenHtmlHelp(), と CPropCommon::SetRegexpVersion().

HINSTANCE CDllHandler::GetInstance ( ) const [inline]

インスタンスハンドルの取得

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

参照元 CHtmlHelp::InitDll(), と RegisterEntries().

virtual int CDllHandler::InitDll ( void ) [protected, pure virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CBregexpDll2, CHtmlHelp, CMigemo, CPPA, と CUxThemeで実装されています。

参照元 LoadLibrary().

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 注意書き追加
実装を省略できるようにするため、空の関数を用意しておく

CBregexpDll2, と CPPAで再定義されています。

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

参照元 FreeLibrary().

LPCTSTR CDllHandler::GetDllName ( LPCTSTR str ) [protected, virtual]

DLLファイル名の取得

日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使用する場合は必須ではないので， 純粋仮想関数はやめてプレースホルダーを用意する．

CHtmlHelp, CMigemo, 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．

CBregexpDll2で再定義されています。

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

参照先 GetDllName(), と NULL.

参照元 LoadLibrary().

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(), と CBregexpDll2::InitDll().

変数

HINSTANCE CDllHandler::m_hInstance [private]

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

参照元 FreeLibrary(), と LoadLibrary().

このクラスの説明は次のファイルから生成されました:
  • CDllHandler.h
  • CDllHandler.cpp
Sakura-Editorに対してSat Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDllHandler メンバ一覧

これは全メンバの一覧です。CDllHandler継承メンバも含んでいます。

CDllHandler() | CDllHandler |
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR str) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void)=0 | CDllHandler | [protected, pure virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(LPCTSTR str=NULL) | CDllHandler |
m_hInstance | CDllHandler | [private]
operator!(void) const | CDllHandler | [inline]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
~CDllHandler() | CDllHandler | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CDllHandler::ImportTable

  • 構成
  • クラス階層
  • 構成メンバ
CDllHandler::ImportTable

構造体 CDllHandler::ImportTable

#include <CDllHandler.h>

すべてのメンバ一覧

Public 変数

void * | proc
const char * | name

説明

アドレスとエントリ名の対応表。RegisterEntriesで使われる。
作者:
YAZAKI
日付:
2002.01.26

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

変数

void* CDllHandler::ImportTable::proc

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

参照元 CDllHandler::RegisterEntries().

const char* CDllHandler::ImportTable::name

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

この構造体の説明は次のファイルから生成されました:
  • CDllHandler.h
Sakura-Editorに対してSat Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDllHandler::ImportTable メンバ一覧

これは全メンバの一覧です。CDllHandler::ImportTable継承メンバも含んでいます。

name | CDllHandler::ImportTable
proc | CDllHandler::ImportTable

Sakura-Editorに対してSat Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


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) const
CLogicInt | GetLengthWithoutEOL (void) const
戻り値は文字単位。
const wchar_t * | GetPtr (void) const
CLogicInt | GetLength () const
CStringRef | GetStringRef () const
文字列参照を取得

Public 変数

CDocLine * m_pPrev
一つ前の要素
CDocLine * m_pNext
一つ後の要素
CNativeW m_cLine
データ 2007.10.11 kobake ポインタではなく、実体を持つように変更
CEOL m_cEol
行末コード
unsigned char | m_bAllMark
unsigned | m_bModify: 1
unsigned | m_bBookMark: 1
unsigned | m_bDiffMark: 3
struct {
unsigned m_bModify: 1
unsigned m_bBookMark: 1
unsigned m_bDiffMark: 3
} m_bMarkArray

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 行で定義されています。

関数

bool CDocLine::IsModifyed ( void ) const [inline]

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

参照先 m_bMark.

参照元 CTextDrawer::DispLineNumber().

void CDocLine::SetModifyFlg ( bool bFlg ) [inline]

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

参照先 m_bMark.

参照元 CDocLineMgr::DeleteData_CDocLineMgr(), CDocLineMgr::InsertData_CDocLineMgr(), CDocLineMgr::ReplaceData(), と CDocLineMgr::ResetAllModifyFlag().

bool CDocLine::IsBookMarked ( void ) const [inline]

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

参照先 m_bMark.

参照元 CViewCommander::Command_BOOKMARK_SET(), CTextDrawer::DispLineNumber(), CDocLineMgr::GetBookMarks(), CDocLineMgr::InsertData_CDocLineMgr(), CEditDoc::MakeFuncList_BookMark(), CDocLineMgr::MarkSearchWord(), と CDocLineMgr::SearchBookMark().

void CDocLine::SetBookMark ( bool bFlg ) [inline]

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

参照先 m_bMark.

参照元 CViewCommander::Command_BOOKMARK_SET(), CDocLineMgr::InsertData_CDocLineMgr(), CDocLineMgr::MarkSearchWord(), CDocLineMgr::ResetAllBookMark(), と CDocLineMgr::SetBookMarks().

int CDocLine::IsDiffMarked ( void ) const [inline]

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

参照先 m_bMark.

参照元 CTextDrawer::DispLineNumber(), と CDocLineMgr::SearchDiffMark().

void CDocLine::SetDiffMark ( int type ) [inline]

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

参照先 m_bMark.

参照元 CDocLineMgr::ResetAllDiffMark(), と CDocLineMgr::SetDiffMarkRange().

bool CDocLine::IsEmptyLine ( void ) const

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

参照先 GetLengthWithoutEOL(), と GetPtr().

参照元 CViewCommander::Command_GONEXTPARAGRAPH(), と CViewCommander::Command_GOPREVPARAGRAPH().

CLogicInt CDocLine::GetLengthWithoutEOL ( void ) const [inline]

戻り値は文字単位。

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

参照先 CEOL::GetLen(), CNativeW::GetStringLength(), m_cEol, と m_cLine.

参照元 CLayout::CalcLayoutWidth(), CViewCommander::Command_REPLACE_ALL(), CEditWnd::DispatchEvent(), CEditDoc::FileRead(), CDocLineMgr::GetAllData(), CDocLineMgr::GetLineStrWithoutEOL(), CNormalProcess::Initialize(), IsEmptyLine(), と CDocLineMgr::SearchWord().

const wchar_t* CDocLine::GetPtr ( void ) const [inline]

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

参照先 CNativeW::GetStringPtr(), と m_cLine.

参照元 CLayout::CalcLayoutOffset(), CLayout::CalcLayoutWidth(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), GetStringRef(), と IsEmptyLine().

CLogicInt CDocLine::GetLength ( ) const [inline]

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

参照先 CNativeW::GetStringLength(), と m_cLine.

参照元 CLayout::CalcLayoutOffset(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), GetStringRef(), と CEditView::ISearchExec().

CStringRef CDocLine::GetStringRef ( ) const [inline]

文字列参照を取得

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

参照先 GetLength(), と GetPtr().

変数

CDocLine* CDocLine::m_pPrev

一つ前の要素

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

参照元 CDocLineMgr::_Insert(), CDocLineMgr::_PushBottom(), CDocLineMgr::DeleteNode(), CDocLineMgr::DUMP(), CDocLineMgr::GetLineInfo(), CDocLineMgr::InsertNode(), CDocLineMgr::ReplaceData(), CDocLineMgr::SearchBookMark(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CDocLineMgr::SearchDiffMark(), と CDocLineMgr::SearchWord().

CDocLine* CDocLine::m_pNext

一つ後の要素

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

参照元 CDocLineMgr::_Insert(), CDocLineMgr::_PushBottom(), CDocLineMgr::DeleteData_CDocLineMgr(), CDocLineMgr::DeleteNode(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), 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(), CDocLineMgr::SearchBookMark(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDocLineMgr::SearchDiffMark(), CDocLineMgr::SearchWord(), と CDocLineMgr::WriteFile().

CNativeW CDocLine::m_cLine

データ 2007.10.11 kobake ポインタではなく、実体を持つように変更

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

参照元 CDocLineMgr::AddLineStrX(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_SEARCH_PREV(), CLayoutMgr::CreateLayout(), CDocLineMgr::DeleteData_CDocLineMgr(), CEditView::DispLineNew(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CDocLineMgr::DUMP(), CDocLineMgr::GetAllData(), CDocLineMgr::GetFirstLinrStr(), GetLength(), GetLengthWithoutEOL(), CLayoutMgr::GetLineStr(), CDocLineMgr::GetLineStr(), CDocLineMgr::GetLineStrWithoutEOL(), CDocLineMgr::GetNextLinrStr(), CLayout::GetPtr(), GetPtr(), CDocLineMgr::InsertData_CDocLineMgr(), CLayoutMgr::LogicToLayout(), CDocLineMgr::MarkSearchWord(), CDocLineMgr::PrevOrNextWord(), CDocLineMgr::ReplaceData(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), CDocLineMgr::WhereCurrentWord(), と CDocLineMgr::WriteFile().

CEOL CDocLine::m_cEol

行末コード

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

参照元 CDocLineMgr::AddLineStrX(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CLayoutMgr::CreateLayout(), CDocLineMgr::DeleteData_CDocLineMgr(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CDocLineMgr::DUMP(), CEditDoc::FileRead(), GetLengthWithoutEOL(), CDocLineMgr::InsertData_CDocLineMgr(), CDocLineMgr::ReplaceData(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), と CDocLineMgr::WriteFile().

unsigned char CDocLine::m_bAllMark

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

unsigned CDocLine::m_bModify

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

unsigned CDocLine::m_bBookMark

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

unsigned CDocLine::m_bDiffMark

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

struct { ... } ::Mark_tag CDocLine::m_bMarkArray

union { ... } CDocLine::m_bMark [protected]

参照元 CDocLine(), IsBookMarked(), IsDiffMarked(), IsModifyed(), SetBookMark(), SetDiffMark(), と SetModifyFlg().

このクラスの説明は次のファイルから生成されました:
  • CDocLine.h
  • CDocLine.cpp
Sakura-Editorに対してSat Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDocLine メンバ一覧

これは全メンバの一覧です。CDocLine継承メンバも含んでいます。

CDocLine() | CDocLine |
GetLength() const | CDocLine | [inline]
GetLengthWithoutEOL(void) const | CDocLine | [inline]
GetPtr(void) const | CDocLine | [inline]
GetStringRef() const | CDocLine | [inline]
IsBookMarked(void) const | CDocLine | [inline]
IsDiffMarked(void) const | CDocLine | [inline]
IsEmptyLine(void) const | CDocLine |
IsModifyed(void) const | CDocLine | [inline]
m_bAllMark | CDocLine |
m_bBookMark | CDocLine |
m_bDiffMark | CDocLine |
m_bMark | CDocLine | [protected]
m_bMarkArray | CDocLine |
m_bModify | CDocLine |
m_cEol | CDocLine |
m_cLine | 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 Nov 17 20:28:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDocLineMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDocLineMgr

#include <CDocLineMgr.h>

CDocLineMgrのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDocLineMgr ()
~CDocLineMgr ()
wchar_t * | GetAllData (int *)
CLogicInt | GetLineCount (void)
const wchar_t * | GetLineStr (CLogicInt, CLogicInt *)
const wchar_t * | GetLineStrWithoutEOL (CLogicInt, int *)
const wchar_t * | GetFirstLinrStr (int *)
const wchar_t * | GetNextLinrStr (int *)
bool | WhereCurrentWord (CLogicInt, CLogicInt, CLogicInt *, CLogicInt *, CNativeW *, CNativeW *)
bool | PrevOrNextWord (CLogicInt, CLogicInt, CLogicInt *, BOOL bLEFT, BOOL bStopsBothEnds)
int | SearchWord (CLogicPoint ptSerachBegin, const wchar_t *, ESearchDirection eDirection, const SSearchOption &sSearchOption, CLogicRange *pMatchRange, CBregexp *)
void | DUMP (void)
CDocLineMgrDEBUG用
void | ResetAllModifyFlag (void)
void | ResetAllBookMark (void)
ブックマークの全解除
int | SearchBookMark (CLogicInt nLineNum, ESearchDirection, CLogicInt *pnLineNum)
ブックマーク検索
void | ResetAllDiffMark (void)
int | SearchDiffMark (CLogicInt, ESearchDirection, CLogicInt *)
void | SetDiffMarkRange (int nMode, CLogicInt nStartLine, CLogicInt nEndLine)
bool | IsDiffUse (void) const
void | MarkSearchWord (const wchar_t *, const SSearchOption &, CBregexp *)
検索条件に該当する行にブックマークをセットする
void | SetBookMarks (wchar_t *)
物理行番号のリストからまとめて行マーク
wchar_t * | GetBookMarks (void)
行マークされてる物理行番号のリストを作る
void | Init ()
void | Empty ()
void | AddLineStrX (const wchar_t *, int, CEOL)
void | DeleteData_CDocLineMgr (CLogicInt nLine, CLogicInt nDelPos, CLogicInt nDelLen, CLogicInt *pnModLineOldFrom, CLogicInt *pnModLineOldTo, CLogicInt *pnDelLineOldFrom, CLogicInt *pnDelLineOldNum, CNativeW *cmemDeleted)
void | ReplaceData (DocLineReplaceArg *)
void | DeleteNode (CDocLine *)
void | InsertNode (CDocLine *, CDocLine *)
void | InsertData_CDocLineMgr (CLogicInt nLine, CLogicInt nInsPos, const wchar_t *pInsData, CLogicInt nInsDataLen, CLogicInt *pnInsLineNum, CLogicPoint *pptNewPos)
int | ReadFile (const TCHAR *pszPath, HWND, HWND, ECodeType, FILETIME *, int extraflag, BOOL *pbBomExist=NULL)
EConvertResult | WriteFile (const TCHAR *, HWND, HWND, ECodeType, FILETIME *, CEOL, BOOL bBomExist=FALSE)
CDocLine * | GetLineInfo (CLogicInt nLine)
CDocLine * | GetDocLineTop () const
CDocLine * | GetDocLineBottom () const

Static Public メソッド

static const wchar_t * | SearchString (const wchar_t *, int, int, const wchar_t *, int, int *, bool)
static void | CreateCharCharsArr (const wchar_t *, int, int **)

Protected メソッド

void | _PushBottom (CDocLine *pDocLineNew)
最下部に挿入
void | _Insert (CDocLine *pDocLineNew, CDocLine *pPos)
pPosの直前に挿入

Private 変数

CDocLine * m_pDocLineTop
CDocLine * m_pDocLineBot
CDocLine * m_pDocLineCurrent
CLogicInt m_nLines
CLogicInt m_nPrevReferLine
CDocLine * m_pCodePrevRefer
bool | m_bIsDiffUse

説明

CDocLineMgr.h の 48 行で定義されています。

コンストラクタとデストラクタ

CDocLineMgr::CDocLineMgr ( )

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

参照先 Init().

CDocLineMgr::~CDocLineMgr ( )

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

参照先 Empty().

関数

wchar_t * CDocLineMgr::GetAllData ( int * pnDataLen )

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

参照先 CDocLine::GetLengthWithoutEOL(), CNativeW::GetStringPtr(), GSTR_APPNAME_A, CDocLine::m_cLine, m_pDocLineTop, CDocLine::m_pNext, MYMESSAGEBOX_A, と NULL.

参照元 CViewCommander::Command_PROPERTY_FILE().

CLogicInt CDocLineMgr::GetLineCount ( void ) [inline]

CDocLineMgr.h の 61 行で定義されています。

参照元 CViewCommander::Command_JUMP(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE_ALL(), CLayoutMgr::DeleteData_CLayoutMgr(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CMacro::HandleFunction(), CEditView::HokanSearchByFile(), CLayoutMgr::InsertData_CLayoutMgr(), CEditView::ISearchExec(), CLayoutMgr::LayoutToLogic(), 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(), と CEditView::SmartIndent_CPP().

const wchar_t * CDocLineMgr::GetLineStr | ( | CLogicInt | nLine,
 |  | CLogicInt * | pnLineLen
 | ) |  |

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

参照先 GetLineInfo(), CNativeW::GetStringPtr(), CDocLine::m_cLine, と NULL.

参照元 CViewCommander::Command_COMPARE(), CViewCommander::Command_JUMP(), CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_WCHAR(), CEditWnd::DispatchEvent(), CLayoutMgr::DUMP(), 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 wchar_t * CDocLineMgr::GetLineStrWithoutEOL | ( | CLogicInt | nLine,
 |  | int * | pnLineLen
 | ) |  |

指定された行番号の文字列と改行コードを除く長さを取得

作者:
Moca
日付:
2003.06.22

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

参照先 CDocLine::GetLengthWithoutEOL(), GetLineInfo(), CNativeW::GetStringPtr(), CDocLine::m_cLine, と NULL.

参照元 CEditView::HokanSearchByFile(), と CEditView::RTrimPrevLine().

const wchar_t * CDocLineMgr::GetFirstLinrStr ( int * pnLineLen )

順アクセスモード：先頭行を得る

引数:
pnLineLen [out] 行の長さが返る。
戻り値:
1行目の先頭へのポインタ。 データが1行もないときは、長さ0、ポインタNULLが返る。

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

参照先 CNativeW::GetStringPtr(), CDocLine::m_cLine, m_nLines, m_pDocLineCurrent, m_pDocLineTop, CDocLine::m_pNext, と NULL.

const wchar_t * CDocLineMgr::GetNextLinrStr ( int * pnLineLen )

順アクセスモード：次の行を得る

引数:
pnLineLen [out] 行の長さが返る。
戻り値:
次行の先頭へのポインタ。 GetFirstLinrStr()が呼び出されていないとNULLが返る

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

参照先 CNativeW::GetStringPtr(), CDocLine::m_cLine, m_pDocLineCurrent, CDocLine::m_pNext, と NULL.

bool CDocLineMgr::WhereCurrentWord | ( | CLogicInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLogicInt * | pnIdxFrom,
 |  | CLogicInt * | pnIdxTo,
 |  | CNativeW * | pcmcmWord,
 |  | CNativeW * | pcmcmWordLeft
 | ) |  |

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

参照先 GetLineInfo(), CNativeW::GetStringPtr(), CDocLine::m_cLine, NULL, と CWordParse::WhereCurrentWord_2().

参照元 MarkSearchWord(), SearchWord(), と CLayoutMgr::WhereCurrentWord().

bool CDocLineMgr::PrevOrNextWord | ( | CLogicInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLogicInt * | pnColmNew,
 |  | BOOL | bLEFT,
 |  | BOOL | bStopsBothEnds
 | ) |  |

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

参照先 CK_HIRA, CK_SPACE, CK_TAB, CK_ZEN_KATA, CK_ZEN_NOBASU, WCODE::CR, CNativeW::GetCharPrev(), GetLineInfo(), CNativeW::GetStringPtr(), WCODE::LF, CDocLine::m_cLine, NULL, CWordParse::SearchNextWordPosition(), と CWordParse::WhatKindOfChar().

参照元 MarkSearchWord(), CLayoutMgr::PrevOrNextWord(), と SearchWord().

int CDocLineMgr::SearchWord | ( | CLogicPoint | ptSerachBegin,
 |  | const wchar_t * | pszPattern,
 |  | ESearchDirection | eDirection,
 |  | const SSearchOption & | sSearchOption,
 |  | CLogicRange * | pMatchRange,
 |  | CBregexp * | pRegexp
 | ) |  |

単語検索

日付:
2003.05.22 かろと 行頭処理など見直し

2005.11.26 かろと や.が
にヒットしないように

引数:
ptSerachBegin | 検索開始位置
pszPattern | 検索条件
eDirection | 検索方向
sSearchOption | 検索オプション
pMatchRange | [out] マッチ範囲。ロジック単位。
pRegexp | [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある */

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

参照先 _memicmp, auto_memcmp(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CreateCharCharsArr(), FALSE, CRangeBase< PointType >::GetFrom(), CBregexp::GetIndex(), CBregexp::GetLastIndex(), CEOL::GetLen(), CDocLine::GetLengthWithoutEOL(), GetLineInfo(), CNativeW::GetSizeOfChar(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CDocLine::m_cEol, CDocLine::m_cLine, CDocLine::m_pNext, CDocLine::m_pPrev, CBregexp::Match(), NULL, PrevOrNextWord(), SEARCH_BACKWARD, SearchString(), CRangeBase< PointType >::SetFromX(), CRangeBase< PointType >::SetFromY(), CRangeBase< PointType >::SetToX(), CRangeBase< PointType >::SetToY(), TRUE, と WhereCurrentWord().

参照元 CLayoutMgr::SearchWord().

const wchar_t * CDocLineMgr::SearchString | ( | const wchar_t * | pLine,
 |  | int | nLineLen,
 |  | int | nIdxPos,
 |  | const wchar_t * | pszPattern,
 |  | int | nPatternLen,
 |  | int * | pnCharCharsArr,
 |  | bool | bLoHiCase |
 | ) |  |  | [static]

文字列検索

戻り値:
見つかった場所のポインタ。見つからなかったらNULL。

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

参照先 NULL.

参照元 MarkSearchWord(), と SearchWord().

void CDocLineMgr::CreateCharCharsArr | ( | const wchar_t * | pszPattern,
 |  | int | nSrcLen,
 |  | int ** | ppnCharCharsArr |
 | ) |  |  | [static]

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

参照先 CNativeW::GetSizeOfChar().

参照元 CViewCommander::Command_INDENT(), CEditView::DoGrep(), MarkSearchWord(), と SearchWord().

void CDocLineMgr::DUMP ( void )

CDocLineMgrDEBUG用

日付:
2004.03.18 Moca m_pDocLineCurrentとm_pCodePrevReferがデータチェーンの 要素を指しているかの検証機能を追加．

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

参照先 CEOL::GetLen(), CEOL::GetName(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CDocLine::m_cEol, CDocLine::m_cLine, m_nLines, m_pCodePrevRefer, m_pDocLineBot, m_pDocLineCurrent, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, MYTRACE_A, と NULL.

void CDocLineMgr::ResetAllModifyFlag ( void )

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

参照先 m_pDocLineTop, CDocLine::m_pNext, NULL, と CDocLine::SetModifyFlg().

参照元 CEditDoc::FileWrite(), と ReadFile().

void CDocLineMgr::ResetAllBookMark ( void )

ブックマークの全解除

CDocLineMgr_New.cpp の 455 行で定義されています。

参照先 m_pDocLineTop, CDocLine::m_pNext, NULL, と CDocLine::SetBookMark().

参照元 CViewCommander::Command_BOOKMARK_RESET().

int CDocLineMgr::SearchBookMark | ( | CLogicInt | nLineNum,
 |  | ESearchDirection | bPrevOrNext,
 |  | CLogicInt * | pnLineNum
 | ) |  |

ブックマーク検索

CDocLineMgr_New.cpp の 471 行で定義されています。

参照先 FALSE, GetLineInfo(), CDocLine::IsBookMarked(), CDocLine::m_pNext, CDocLine::m_pPrev, NULL, SEARCH_BACKWARD, と TRUE.

void CDocLineMgr::ResetAllDiffMark ( void )

差分表示の全解除

作者:
MIK
日付:
2002.05.25

CDocLineMgr_New.cpp の 659 行で定義されています。

参照先 m_bIsDiffUse, m_pDocLineTop, CDocLine::m_pNext, NULL, と CDocLine::SetDiffMark().

参照元 CViewCommander::Command_Diff_Reset().

int CDocLineMgr::SearchDiffMark | ( | CLogicInt | nLineNum,
 |  | ESearchDirection | bPrevOrNext,
 |  | CLogicInt * | pnLineNum
 | ) |  |

差分検索

作者:
MIK
日付:
2002.05.25
引数:
nLineNum | 検索開始行
bPrevOrNext | 0==前方検索 1==後方検索
pnLineNum | マッチ行

CDocLineMgr_New.cpp の 679 行で定義されています。

参照先 FALSE, GetLineInfo(), CDocLine::IsDiffMarked(), CDocLine::m_pNext, CDocLine::m_pPrev, NULL, SEARCH_BACKWARD, と TRUE.

void CDocLineMgr::SetDiffMarkRange | ( | int | nMode,
 |  | CLogicInt | nStartLine,
 |  | CLogicInt | nEndLine
 | ) |  |

差分情報を行範囲指定で登録する。

作者:
MIK
日付:
2002/05/25

CDocLineMgr_New.cpp の 727 行で定義されています。

参照先 GetLineCount(), GetLineInfo(), m_bIsDiffUse, MARK_DIFF_DEL_EX, NULL, と CDocLine::SetDiffMark().

参照元 CEditView::AnalyzeDiffInfo().

bool CDocLineMgr::IsDiffUse ( void ) const [inline]

CDocLineMgr.h の 92 行で定義されています。

参照元 IsFuncEnable(), と CEditView::ViewDiffInfo().

void CDocLineMgr::MarkSearchWord | ( | const wchar_t * | pszPattern,
 |  | const SSearchOption & | sSearchOption,
 |  | CBregexp * | pRegexp
 | ) |  |

検索条件に該当する行にブックマークをセットする

引数:
pszPattern | 検索条件
sSearchOption | 検索オプション
pRegexp | [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある

CDocLineMgr_New.cpp の 514 行で定義されています。

参照先 _memicmp, auto_memcmp(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CreateCharCharsArr(), FALSE, GetLineInfo(), CNativeW::GetStringPtr(), CDocLine::IsBookMarked(), CDocLine::m_cLine, CDocLine::m_pNext, CBregexp::Match(), NULL, PrevOrNextWord(), SearchString(), CDocLine::SetBookMark(), と WhereCurrentWord().

参照元 CViewCommander::Command_BOOKMARK_PATTERN().

void CDocLineMgr::SetBookMarks ( wchar_t * pMarkLines )

物理行番号のリストからまとめて行マーク

CDocLineMgr_New.cpp の 615 行で定義されています。

参照先 GetLineInfo(), NULL, と CDocLine::SetBookMark().

参照元 CEditDoc::FileRead().

wchar_t * CDocLineMgr::GetBookMarks ( void )

行マークされてる物理行番号のリストを作る

CDocLineMgr_New.cpp の 635 行で定義されています。

参照先 auto_sprintf(), GetLineInfo(), CDocLine::IsBookMarked(), CDocLine::m_pNext, MAX_MARKLINES_LEN, と NULL.

参照元 CEditDoc::AddToMRU().

void CDocLineMgr::Init ( )

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

参照先 m_bIsDiffUse, m_nLines, m_nPrevReferLine, m_pCodePrevRefer, m_pDocLineBot, m_pDocLineTop, と NULL.

参照元 CDocLineMgr(), DeleteNode(), CEditDoc::Init(), と ReadFile().

void CDocLineMgr::Empty ( void )

データのクリア

全ての行を削除する

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

参照先 m_pDocLineTop, CDocLine::m_pNext, と NULL.

参照元 CEditDoc::Init(), ReadFile(), と ~CDocLineMgr().

void CDocLineMgr::AddLineStrX | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | CEOL | cEol
 | ) |  |

末尾に行を追加

バージョン:
1.5
引数:
pData | [in] 追加する文字列へのポインタ
nDataLen | [in] 文字列の長さ。文字単位。
cEol | [in] 行末コード

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

参照先 _PushBottom(), CDocLine::m_cEol, CDocLine::m_cLine, と CNativeW::SetString().

参照元 ReadFile().

void CDocLineMgr::DeleteData_CDocLineMgr | ( | CLogicInt | nLine,
 |  | CLogicInt | nDelPos,
 |  | CLogicInt | nDelLen,
 |  | CLogicInt * | pnModLineOldFrom,
 |  | CLogicInt * | pnModLineOldTo,
 |  | CLogicInt * | pnDelLineOldFrom,
 |  | CLogicInt * | pnDelLineOldNum,
 |  | CNativeW * | cmemDeleted
 | ) |  |

引数:
pnModLineOldFrom | 影響のあった変更前の行(from)
pnModLineOldTo | 影響のあった変更前の行(to)
pnDelLineOldFrom | 削除された変更前論理行(from)
pnDelLineOldNum | 削除された行数
cmemDeleted | [out] 削除されたデータ

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

参照先 CNative::Clear(), DeleteNode(), EOL_NONE, CEOL::GetLen(), GetLineInfo(), CNativeW::GetStringPtr(), CDocLine::m_cEol, CDocLine::m_cLine, CDocLine::m_pNext, NULL, CDocLine::SetModifyFlg(), CNativeW::SetString(), と CEOL::SetType().

参照元 CLayoutMgr::DeleteData_CLayoutMgr().

void CDocLineMgr::ReplaceData ( DocLineReplaceArg * pArg )

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

参照先 CNativeW::AppendNativeData(), CNativeW::AppendString(), auto_memcpy(), DeleteNode(), CDlgCancel::DoModeless(), EOL_NONE, CRangeBase< PointType >::GetFrom(), CEOL::GetLen(), GetLineInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CEOL::GetTypeFromString(), IDC_PROGRESS, IDD_OPERATIONRUNNING, CDocLine::m_cEol, CDocLine::m_cLine, m_nLines, m_nPrevReferLine, m_pCodePrevRefer, m_pDocLineBot, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, MY_RUNNINGTIMER, MYMESSAGEBOX_A, DocLineReplaceArg::nDeletedLineNum, DocLineReplaceArg::nInsDataLen, DocLineReplaceArg::nInsLineNum, NULL, DocLineReplaceArg::pcmemDeleted, DocLineReplaceArg::pInsData, DocLineReplaceArg::ptNewPos, DocLineReplaceArg::sDelRange, SendMessageAny, CDocLine::SetModifyFlg(), CNativeW::SetNativeData(), CNativeW::SetString(), と CEOL::SetType().

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

void CDocLineMgr::DeleteNode ( CDocLine * pCDocLine )

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

参照先 Init(), m_nLines, m_pCodePrevRefer, m_pDocLineBot, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, と NULL.

参照元 DeleteData_CDocLineMgr(), と ReplaceData().

void CDocLineMgr::InsertNode | ( | CDocLine * | pCDocLinePrev,
 |  | CDocLine * | pCDocLine
 | ) |  |

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

参照先 m_nLines, m_pDocLineBot, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, と NULL.

void CDocLineMgr::InsertData_CDocLineMgr | ( | CLogicInt | nLine,
 |  | CLogicInt | nInsPos,
 |  | const wchar_t * | pInsData,
 |  | CLogicInt | nInsDataLen,
 |  | CLogicInt * | pnInsLineNum,
 |  | CLogicPoint * | pptNewPos
 | ) |  |

データの挿入

日付:
2002/03/24 YAZAKI bUndo削除

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

参照先 _Insert(), _PushBottom(), EOL_NONE, CEOL::GetLen(), GetLineInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetTypeFromString(), CDocLine::IsBookMarked(), CDocLine::m_cEol, CDocLine::m_cLine, m_nLines, CDocLine::m_pNext, NULL, CDocLine::SetBookMark(), CDocLine::SetModifyFlg(), CNativeW::SetNativeData(), CNativeW::SetString(), と CEOL::SetType().

参照元 CLayoutMgr::InsertData_CLayoutMgr().

int CDocLineMgr::ReadFile | ( | const TCHAR * | pszPath,
 |  | HWND | hWndParent,
 |  | HWND | hwndProgress,
 |  | ECodeType | nCharCode,
 |  | FILETIME * | pFileTime,
 |  | int | nFlags,
 |  | BOOL * | pbBomExist = NULL
 | ) |  |

ファイルを読み込んで格納する（分割読み込みテスト版）

バージョン:
2.0
覚え書き:
Windows用にコーディングしてある
戻り値:
TRUE | 正常読み込み
FALSE | エラー(またはユーザによるキャンセル?)
日付:
2002/08/30 Moca 旧ReadFileを元に作成 ファイルアクセスに関する部分をCFileLoadで行う

2003/07/26 ryoji BOMの状態の取得を追加

引数:
hWndParent | [in] 親ウィンドウのハンドル
hwndProgress | [in] Progress barのウィンドウハンドル
nFlags | [in] bit 0: MIME Encodeされたヘッダをdecodeするかどうか

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

参照先 AddLineStrX(), BlockingHook(), Empty(), FALSE, CFileLoad::FileClose(), CFileLoad::FileOpen(), CFileLoad::GetFileTime(), CFileLoad::GetPercent(), GSTR_APPNAME, Init(), MY_RUNNINGTIMER, MYMESSAGEBOX, MYTRACE_A, NULL, PostMessageAny, CFileLoad::ReadLine(), ResetAllModifyFlag(), と TRUE.

参照元 CEditDoc::FileRead().

EConvertResult CDocLineMgr::WriteFile | ( | const TCHAR * | pszPath,
 |  | HWND | hWndParent,
 |  | HWND | hwndProgress,
 |  | ECodeType | nCharCode,
 |  | FILETIME * | pFileTime,
 |  | CEOL | cEol,
 |  | BOOL | bBomExist = FALSE
 | ) |  |

バッファ内容をファイルに書き出す (テスト用)

引数:
cEol | [in] 使用する改行コード
bBomExist | [in] ファイル先頭にBOMを付けるか
覚え書き:
Windows用にコーディングしてある
日付:
2003.07.26 ryoji BOM引数追加

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

参照先 CMemory::AppendRawData(), BlockingHook(), CFileWrite::Close(), CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, EOL_NONE, GetLastWriteTimestamp(), CEOL::GetLen(), CMemory::GetRawLength(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), CEOL::GetUnicodeBEValue(), CEOL::GetUnicodeValue(), CEOL::GetValue(), GSTR_APPNAME_A, CIoBridge::ImplToFile(), CDocLine::m_cEol, CDocLine::m_cLine, m_nLines, m_pDocLineTop, CDocLine::m_pNext, MYMESSAGEBOX_A, NULL, PostMessageAny, RESULT_COMPLETE, RESULT_FAILURE, RESULT_LOSESOME, CNativeW::SetString(), CFileWrite::Write(), と CFileWrite::WriteSz().

参照元 CViewCommander::Command_PUTFILE(), CEditDoc::FileWrite(), と CEditView::MakeDiffTmpFile().

CDocLine * CDocLineMgr::GetLineInfo ( CLogicInt nLine )

指定された番号の行へのポインタを返す

引数:
nLine [in] 行番号
戻り値:
行オブジェクトへのポインタ。該当行がない場合はNULL。

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

参照先 m_nLines, m_nPrevReferLine, m_pCodePrevRefer, m_pDocLineBot, m_pDocLineCurrent, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, MY_RUNNINGTIMER, NULL, と t_abs().

参照元 CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CViewCommander::Command_WCHAR(), DeleteData_CDocLineMgr(), CEditWnd::DispatchEvent(), CLayoutMgr::DoLayout_Range(), CEditDoc::FileRead(), GetBookMarks(), GetLineStr(), GetLineStrWithoutEOL(), CNormalProcess::Initialize(), 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().

CDocLine* CDocLineMgr::GetDocLineTop ( ) const [inline]

CDocLineMgr.h の 148 行で定義されています。

参照元 CLayoutMgr::DoLayout().

CDocLine* CDocLineMgr::GetDocLineBottom ( ) const [inline]

CDocLineMgr.h の 149 行で定義されています。

void CDocLineMgr::_PushBottom ( CDocLine * pDocLineNew ) [protected]

最下部に挿入

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

参照先 m_nLines, m_pDocLineBot, m_pDocLineTop, CDocLine::m_pNext, CDocLine::m_pPrev, と NULL.

参照元 AddLineStrX(), と InsertData_CDocLineMgr().

void CDocLineMgr::_Insert | ( | CDocLine * | pDocLineNew,
 |  | CDocLine * | pPos |
 | ) |  |  | [protected]

pPosの直前に挿入

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

参照先 m_nLines, CDocLine::m_pNext, と CDocLine::m_pPrev.

参照元 InsertData_CDocLineMgr().

変数

CDocLine* CDocLineMgr::m_pDocLineTop [private]

CDocLineMgr.h の 163 行で定義されています。

参照元 _PushBottom(), DeleteNode(), DUMP(), Empty(), GetAllData(), GetFirstLinrStr(), GetLineInfo(), Init(), InsertNode(), ReplaceData(), ResetAllBookMark(), ResetAllDiffMark(), ResetAllModifyFlag(), と WriteFile().

CDocLine* CDocLineMgr::m_pDocLineBot [private]

CDocLineMgr.h の 164 行で定義されています。

参照元 _PushBottom(), DeleteNode(), DUMP(), GetLineInfo(), Init(), InsertNode(), と ReplaceData().

CDocLine* CDocLineMgr::m_pDocLineCurrent [private]

CDocLineMgr.h の 165 行で定義されています。

参照元 DUMP(), GetFirstLinrStr(), GetLineInfo(), と GetNextLinrStr().

CLogicInt CDocLineMgr::m_nLines [private]

CDocLineMgr.h の 166 行で定義されています。

参照元 _Insert(), _PushBottom(), DeleteNode(), DUMP(), GetFirstLinrStr(), GetLineInfo(), Init(), InsertData_CDocLineMgr(), InsertNode(), ReplaceData(), と WriteFile().

CLogicInt CDocLineMgr::m_nPrevReferLine [private]

CDocLineMgr.h の 167 行で定義されています。

参照元 GetLineInfo(), Init(), と ReplaceData().

CDocLine* CDocLineMgr::m_pCodePrevRefer [private]

CDocLineMgr.h の 168 行で定義されています。

参照元 DeleteNode(), DUMP(), GetLineInfo(), Init(), と ReplaceData().

bool CDocLineMgr::m_bIsDiffUse [private]

CDocLineMgr.h の 169 行で定義されています。

参照元 Init(), ResetAllDiffMark(), と SetDiffMarkRange().

このクラスの説明は次のファイルから生成されました:
  • CDocLineMgr.h
  • CDocLineMgr.cpp
  • CDocLineMgr_New.cpp
Sakura-Editorに対してSat Nov 17 20:28:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDocLineMgr メンバ一覧

これは全メンバの一覧です。CDocLineMgr継承メンバも含んでいます。

_Insert(CDocLine *pDocLineNew, CDocLine *pPos) | CDocLineMgr | [protected]
_PushBottom(CDocLine *pDocLineNew) | CDocLineMgr | [protected]
AddLineStrX(const wchar_t *, int, CEOL) | CDocLineMgr |
CDocLineMgr() | CDocLineMgr |
CreateCharCharsArr(const wchar_t *, int, int **) | CDocLineMgr | [static]
DeleteData_CDocLineMgr(CLogicInt nLine, CLogicInt nDelPos, CLogicInt nDelLen, CLogicInt *pnModLineOldFrom, CLogicInt *pnModLineOldTo, CLogicInt *pnDelLineOldFrom, CLogicInt *pnDelLineOldNum, CNativeW *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(CLogicInt nLine) | CDocLineMgr |
GetLineStr(CLogicInt, CLogicInt *) | CDocLineMgr |
GetLineStrWithoutEOL(CLogicInt, int *) | CDocLineMgr |
GetNextLinrStr(int *) | CDocLineMgr |
Init() | CDocLineMgr |
InsertData_CDocLineMgr(CLogicInt nLine, CLogicInt nInsPos, const wchar_t *pInsData, CLogicInt nInsDataLen, CLogicInt *pnInsLineNum, CLogicPoint *pptNewPos) | 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 wchar_t *, const SSearchOption &, CBregexp *) | CDocLineMgr |
PrevOrNextWord(CLogicInt, CLogicInt, CLogicInt *, BOOL bLEFT, BOOL bStopsBothEnds) | CDocLineMgr |
ReadFile(const TCHAR *pszPath, HWND, HWND, ECodeType, FILETIME *, int extraflag, BOOL *pbBomExist=NULL) | CDocLineMgr |
ReplaceData(DocLineReplaceArg *) | CDocLineMgr |
ResetAllBookMark(void) | CDocLineMgr |
ResetAllDiffMark(void) | CDocLineMgr |
ResetAllModifyFlag(void) | CDocLineMgr |
SearchBookMark(CLogicInt nLineNum, ESearchDirection, CLogicInt *pnLineNum) | CDocLineMgr |
SearchDiffMark(CLogicInt, ESearchDirection, CLogicInt *) | CDocLineMgr |
SearchString(const wchar_t *, int, int, const wchar_t *, int, int *, bool) | CDocLineMgr | [static]
SearchWord(CLogicPoint ptSerachBegin, const wchar_t *, ESearchDirection eDirection, const SSearchOption &sSearchOption, CLogicRange *pMatchRange, CBregexp *) | CDocLineMgr |
SetBookMarks(wchar_t *) | CDocLineMgr |
SetDiffMarkRange(int nMode, CLogicInt nStartLine, CLogicInt nEndLine) | CDocLineMgr |
WhereCurrentWord(CLogicInt, CLogicInt, CLogicInt *, CLogicInt *, CNativeW *, CNativeW *) | CDocLineMgr |
WriteFile(const TCHAR *, HWND, HWND, ECodeType, FILETIME *, CEOL, BOOL bBomExist=FALSE) | CDocLineMgr |
~CDocLineMgr() | CDocLineMgr |

Sakura-Editorに対してSat Nov 17 20:28:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CDropSource

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDropSource

#include <CDropTarget.h>

CDropSourceに対する継承グラフ

[凡例]
CDropSourceのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CDropSource (BOOL bLeft)
STDMETHOD() | QueryContinueDrag (BOOL bEscapePressed, DWORD dwKeyState)
STDMETHOD() | GiveFeedback (DWORD dropEffect)

Private 変数

BOOL | m_bLeft

説明

CDropTarget.h の 100 行で定義されています。

コンストラクタとデストラクタ

CDropSource::CDropSource ( BOOL bLeft ) [inline]

CDropTarget.h の 104 行で定義されています。

関数

STDMETHODIMP CDropSource::QueryContinueDrag | ( | BOOL | bEscapePressed,
 |  | DWORD | dwKeyState
 | ) |  |

CDropTarget.cpp の 153 行で定義されています。

参照先 m_bLeft.

STDMETHODIMP CDropSource::GiveFeedback ( DWORD dropEffect )

CDropTarget.cpp の 163 行で定義されています。

変数

BOOL CDropSource::m_bLeft [private]

CDropTarget.h の 102 行で定義されています。

参照元 QueryContinueDrag().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Nov 17 20:28:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDropSource メンバ一覧

これは全メンバの一覧です。CDropSource継承メンバも含んでいます。

CDropSource(BOOL bLeft) | CDropSource | [inline]
CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< IDropSource > | [inline]
GiveFeedback(DWORD dropEffect) | CDropSource |
m_bLeft | CDropSource | [private]
QueryContinueDrag(BOOL bEscapePressed, DWORD dwKeyState) | CDropSource |
QueryInterface(REFIID riid, void **ppvObj) | CYbInterfaceImpl< IDropSource > | [inline]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
STDMETHOD_(ULONG, AddRef)(void) | CYbInterfaceImpl< IDropSource > | [inline]
STDMETHOD_(ULONG, Release)(void) | CYbInterfaceImpl< IDropSource > | [inline]
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Nov 17 20:28:07 2007に生成されました。 doxygen 1.5.4


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 * pCEditView )

CDropTarget.cpp の 92 行で定義されています。

参照先 NULL.

CDropTarget::~CDropTarget ( )

CDropTarget.cpp の 101 行で定義されています。

参照先 Revoke_DropTarget().

関数

BOOL CDropTarget::Register_DropTarget ( HWND hWnd )

CDropTarget.cpp の 108 行で定義されています。

参照先 FALSE, GSTR_APPNAME_A, m_hWnd_DropTarget, MYMESSAGEBOX_A, と TRUE.

参照元 CEditView::Create().

BOOL CDropTarget::Revoke_DropTarget ( void )

CDropTarget.cpp の 121 行で定義されています。

参照先 BOOL, m_hWnd_DropTarget, NULL, と TRUE.

参照元 CEditView::DispatchEvent(), と ~CDropTarget().

STDMETHODIMP CDropTarget::DragEnter | ( | LPDATAOBJECT | pDataObject,
 |  | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CDropTarget.cpp の 130 行で定義されています。

参照先 CEditView::DragEnter(), m_pCEditView, と MYTRACE_A.

STDMETHODIMP CDropTarget::DragOver | ( | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CDropTarget.cpp の 137 行で定義されています。

参照先 CEditView::DragOver(), と m_pCEditView.

STDMETHODIMP CDropTarget::DragLeave ( void )

CDropTarget.cpp の 141 行で定義されています。

参照先 CEditView::DragLeave(), と m_pCEditView.

STDMETHODIMP CDropTarget::Drop | ( | LPDATAOBJECT | pDataObject,
 |  | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CDropTarget.cpp の 147 行で定義されています。

参照先 CEditView::Drop(), と m_pCEditView.

変数

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::DragEnter(), と CEditView::DragLeave().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Nov 17 20:28:08 2007に生成されました。 doxygen 1.5.4


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 |
QueryInterface(REFIID riid, void **ppvObj) | CYbInterfaceImpl< IDropTarget > | [inline]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
Register_DropTarget(HWND) | CDropTarget |
Revoke_DropTarget(void) | CDropTarget |
STDMETHOD_(ULONG, AddRef)(void) | CYbInterfaceImpl< IDropTarget > | [inline]
STDMETHOD_(ULONG, Release)(void) | CYbInterfaceImpl< IDropTarget > | [inline]
~CDropTarget() | CDropTarget |
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Nov 17 20:28:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEditApp

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditApp

エディタ部分アプリケーションクラス。CNormalProcess1個につき、1個存在。 [詳細]

#include <CEditApp.h>

CEditAppに対する継承グラフ

[凡例]
CEditAppのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CEditApp (HINSTANCE hInst)
virtual | ~CEditApp ()
HINSTANCE | GetAppInstance () const
インスタンスハンドル取得
CEditWnd * GetWindow ()
ウィンドウ取得
LPCTSTR | GetHelpFilePath () const
ヘルプファイルのフルパスを返す
void | ShowFuncHelp (HWND, EFunctionCode) const
メニューアイテムに対応するヘルプを表示
CEditDoc & GetDocument ()
CImageListMgr & GetIcons ()

Public 変数

HINSTANCE | m_hInst
CEditWnd * m_pcEditWnd
CEditDoc m_cEditDoc
CImageListMgr m_cIcons
Image List

説明

エディタ部分アプリケーションクラス。CNormalProcess1個につき、1個存在。

CEditApp.h の 14 行で定義されています。

コンストラクタとデストラクタ

CEditApp::CEditApp ( HINSTANCE hInst )

CEditApp.cpp の 10 行で定義されています。

参照先 CEditWnd::Create(), CEditDoc::Create(), CImageListMgr::Create(), ErrorMessage, CCommandLine::Instance(), m_cEditDoc, m_cIcons, m_hInst, m_pcEditWnd, と NULL.

CEditApp::~CEditApp ( ) [virtual]

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

参照先 m_pcEditWnd.

関数

HINSTANCE CEditApp::GetAppInstance ( ) const [inline]

インスタンスハンドル取得

CEditApp.h の 21 行で定義されています。

参照先 m_hInst.

参照元 CPrintPreview::CreatePrintPreviewControls(), CMainStatusBar::CreateStatusBar(), CMainToolBar::CreateToolBar(), と CPrintPreview::OnMouseMove().

CEditWnd* CEditApp::GetWindow ( ) [inline]

ウィンドウ取得

CEditApp.h の 24 行で定義されています。

参照先 m_pcEditWnd.

参照元 CNormalProcess::Initialize(), と CNormalProcess::MainLoop().

LPCTSTR CEditApp::GetHelpFilePath ( ) const

ヘルプファイルのフルパスを返す

ヘルプファイルのフルパスを返す

戻り値:
パスを格納したバッファのポインタ
覚え書き:
実行ファイルと同じ位置の sakura.chm ファイルを返す。 パスが UNC のときは _MAX_PATH に収まらない可能性がある。
日付:
2002/01/19 aroka ；nMaxLen 引数追加

2007/10/23 kobake 引数説明の誤りを修正(in→out)

2007/10/23 kobake CEditAppのメンバ関数に変更

2007/10/23 kobake シグニチャ変更。constポインタを返すだけのインターフェースにしました。

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

参照先 _MAX_PATH, と GetExedir().

参照元 CDialog::CDialog(), CDlgInput1::CDlgInput1(), CDlgOpenFile::CDlgOpenFile(), CViewCommander::Command_HELP_CONTENTS(), CViewCommander::Command_HELP_SEARCH(), CPropCommon::CPropCommon(), CPropTypes::CPropTypes(), と ShowFuncHelp().

void CEditApp::ShowFuncHelp | ( | HWND | hwndParent,
 |  | EFunctionCode | nFuncID |
 | ) |  |  | const

メニューアイテムに対応するヘルプを表示

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

参照先 FuncID_To_HelpContextID(), GetHelpFilePath(), TSingleInstance< CEditApp >::Instance(), と MyWinHelp().

参照元 CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

CEditDoc& CEditApp::GetDocument ( ) [inline]

CEditApp.h の 32 行で定義されています。

参照先 m_cEditDoc.

参照元 CEditWnd::GetDocument().

CImageListMgr& CEditApp::GetIcons ( ) [inline]

CEditApp.h の 33 行で定義されています。

参照先 m_cIcons.

参照元 CMainToolBar::CreateToolBar(), と CMainToolBar::ToolBarOwnerDraw().

変数

HINSTANCE CEditApp::m_hInst

CEditApp.h の 37 行で定義されています。

参照元 CEditApp(), と GetAppInstance().

CEditWnd* CEditApp::m_pcEditWnd

CEditApp.h の 40 行で定義されています。

参照元 CEditApp(), GetWindow(), と ~CEditApp().

CEditDoc CEditApp::m_cEditDoc

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

参照元 CEditApp(), と GetDocument().

CImageListMgr CEditApp::m_cIcons

Image List

CEditApp.h の 46 行で定義されています。

参照元 CEditApp(), と GetIcons().

このクラスの説明は次のファイルから生成されました:
  • CEditApp.h
  • CEditApp.cpp
Sakura-Editorに対してSat Nov 17 20:28:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditApp メンバ一覧

これは全メンバの一覧です。CEditApp継承メンバも含んでいます。

CEditApp(HINSTANCE hInst) | CEditApp |
GetAppInstance() const | CEditApp | [inline]
GetDocument() | CEditApp | [inline]
GetHelpFilePath() const | CEditApp |
GetIcons() | CEditApp | [inline]
GetWindow() | CEditApp | [inline]
Instance() | TSingleInstance< CEditApp > | [inline, static]
m_cEditDoc | CEditApp |
m_cIcons | CEditApp |
m_hInst | CEditApp |
m_pcEditWnd | CEditApp |
ShowFuncHelp(HWND, EFunctionCode) const | CEditApp |
TSingleInstance() | TSingleInstance< CEditApp > | [inline, protected]
~CEditApp() | CEditApp | [virtual]
~TSingleInstance() | TSingleInstance< CEditApp > | [inline, protected]

Sakura-Editorに対してSat Nov 17 20:28:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEditDoc

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditDoc

文書関連情報の管理 [詳細]

#include <CEditDoc.h>

CEditDocのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 型

enum | WatchUpdate { WU_QUERY, WU_NOTIFY, WU_NONE }

Public メソッド

CEditDoc (CEditApp *pcApp)
~CEditDoc ()
BOOL | Create (HINSTANCE, CImageListMgr *)
void | Init (void)
void | InitAllView ()
BOOL | IsEnableUndo (void)
BOOL | IsEnableRedo (void)
BOOL | IsEnablePaste (void)
void | GetFileInfo (FileInfo *) const
BOOL | OnFileClose (void)
BOOL | HandleCommand (EFunctionCode)
BOOL | SelectFont (LOGFONT *)
bool | FileRead (TCHAR *pszPath, bool *pbOpened, ECodeType nCharCode, bool bReadOnly, bool bConfirmCodeChange)
BOOL | FileWrite (const TCHAR *, enumEOLType cEolType)
ファイルの保存
bool | SaveFile (const TCHAR *path)
void | OpenFile (const TCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, bool bReadOnly=FALSE)
指定されたファイルを開く
void | FileClose (void)
void | FileCloseOpen (const TCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, bool bReadOnly=FALSE)
BOOL | FileSave (bool warnbeep=true, bool askname=true)
BOOL | FileSaveAs_Dialog (void)
BOOL | FileSaveAs (const TCHAR *filename)
int | MakeBackUp (const TCHAR *target_file)
void | SetParentCaption (void)
BOOL | OpenPropertySheet (int)
BOOL | OpenPropertySheetTypes (int, int)
BOOL | OpenFileDialog (HWND, const TCHAR *, TCHAR *, ECodeType *, bool *)
void | OnChangeSetting (void)
BOOL | SaveFileDialog (TCHAR *, ECodeType *, CEOL *pcEol=NULL, BOOL *pbBomExist=NULL)
void | CheckFileTimeStamp (void)
void | ReloadCurrentFile (ECodeType, bool)
CEOL | GetNewLineCode () const
void | SetNewLineCode (const CEOL &t)
bool | IsModificationForbidden (int nCommand)
void | CheckAutoSave (void)
void | ReloadAutoSaveParam (void)
void | SetImeMode (int mode)
const TCHAR * | GetFilePath (void) const
bool | IsFilePathAvailable (void) const
const TCHAR * | 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
bool | IsFileOpenInThisWindow (void)
このウィンドウで新しいファイルを開けるか
void | AddToMRU (void)
const wchar_t * | ExParam_SkipCond (const wchar_t *pszSource, int part)
処理の読み飛ばし
int | ExParam_Evaluate (const wchar_t *pCond)
条件の評価
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 TCHAR *pszFilename, oneRule *pcOneRule, int nMaxCount)
void | MakeFuncList_BookMark (CFuncInfoArr *)
void | ExpandParameter (const WChar *pszSource, WChar *pszBuffer, int nBufferLen)
HWND | GetSplitterHwnd () const
HWND | GetOwnerHwnd () const

Public 変数

CPassiveTimer m_cAutoSave
自動保存管理
P_CEditWnd & m_pcEditWnd
CDocLineMgr m_cDocLineMgr
CLayoutMgr m_cLayoutMgr
BOOL | m_bGrepRunning
int | m_nCommandExecNum
FILETIME | m_FileTime
ECodeType 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
wchar_t | m_szGrepKey [1024]
COpeBuf m_cOpeBuf
TCHAR * | m_pszAppName
HINSTANCE | m_hInstance
DLLSHAREDATA * m_pShareData
BOOL | m_bDoing_UndoRedo
EShareMode m_nFileShareModeOld
HANDLE | m_hLockedFile
CSMacroMgr * m_pcSMacroMgr
マクロ
CFuncLookup m_cFuncLookup
機能名，機能番号などのresolve
WatchUpdate m_eWatchUpdate
更新監視方法

Protected メソッド

void | SetFilePath (const TCHAR *szFile)
void | DoFileLock (void)
void | DoFileUnLock (void)
bool | FormatBackUpPath (TCHAR *szNewPath, const TCHAR *target_file)

Protected 変数

int | m_nSettingType
bool | m_nSettingTypeLocked
bool | m_bIsModified
CEOL m_cNewLineCode

Private 変数

SFilePath m_szFilePath

説明

文書関連情報の管理

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

列挙型

enum CEditDoc::WatchUpdate

ファイルが更新された場合に再読込を行うかどうかのフラグ

列挙型の値:
WU_QUERY | 再読込を行うかどうかダイアログボックスで問い合わせる
WU_NOTIFY | 更新されたことをステータスバーで通知
WU_NONE | 更新監視を行わない

CEditDoc.h の 296 行で定義されています。

コンストラクタとデストラクタ

CEditDoc::CEditDoc ( CEditApp * pcApp )

May 12, 2000 genta 初期化方法変更

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
覚え書き:
m_pcEditWnd はコンストラクタ内では使用しないこと．

CEditDoc.cpp の 68 行で定義されています。

参照先 CLayoutMgr::Create(), FALSE, GetDocumentAttribute(), CShareData::getInstance(), CShareData::GetShareData(), CommonSetting_General::m_bIsINSMode, m_cDocLineMgr, m_cLayoutMgr, DLLSHAREDATA::m_Common, m_FileTime, m_pcSMacroMgr, m_pShareData, CommonSetting::m_sGeneral, m_szFilePath, m_szGrepKey, MY_RUNNINGTIMER, NULL, ReloadAutoSaveParam(), SetInsMode(), CLayoutMgr::SetLayoutInfo(), と TRUE.

CEditDoc::~CEditDoc ( )

CEditDoc.cpp の 137 行で定義されています。

参照先 DoFileUnLock(), GetSplitterHwnd(), m_pcSMacroMgr, と NULL.

関数

BOOL CEditDoc::Create | ( | HINSTANCE | hInstance,
 |  | CImageListMgr * | pcIcons
 | ) |  |

CEditDoc.cpp の 166 行で定義されています。

参照先 CFuncLookup::Init(), m_cFuncLookup, DLLSHAREDATA::m_Common, m_hInstance, m_pcSMacroMgr, m_pShareData, MY_RUNNINGTIMER, MY_TRACETIME, と TRUE.

参照元 CEditApp::CEditApp().

void CEditDoc::Init ( void )

CEditDoc.cpp の 3320 行で定義されています。

参照先 COpeBuf::ClearAll(), CODE_DEFAULT, DoFileUnLock(), CDocLineMgr::Empty(), EOL_CRLF, FALSE, GetDocumentAttribute(), CShareData::GetDocumentType(), GetFilePath(), CShareData::getInstance(), CShareData::GetShareData(), CDocLineMgr::Init(), m_bBomExist, m_bDebugMode, m_bGrepMode, CommonSetting_General::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, CommonSetting::m_sGeneral, m_szGrepKey, NULL, CEditWnd::SetDebugModeOFF(), SetDocumentType(), SetFilePath(), SetInsMode(), CLayoutMgr::SetLayoutInfo(), SetModified(), CEOL::SetType(), SHAREMODE_NOT_EXCLUSIVE, TRUE, と WU_QUERY.

参照元 FileClose(), FileCloseOpen(), と CEditWnd::OnDropFiles().

void CEditDoc::InitAllView ( void )

CEditDoc.cpp の 3395 行で定義されています。

参照先 CViewSelect::DisableSelectArea(), FALSE, CMarkMgr::Flush(), CEditView::GetCaret(), CEditView::GetSelectionInfo(), CEditView::m_cHistory, CCaret::m_nCaretPosX_Prev, m_nCommandExecNum, CEditWnd::m_pcEditViewArr, m_pcEditWnd, CCaret::MoveCursor(), CEditView::OnChangeSetting(), と TRUE.

参照元 FileClose(), FileCloseOpen(), FileRead(), と CEditWnd::OnDropFiles().

BOOL CEditDoc::IsEnableUndo ( void )

CEditDoc.cpp の 1026 行で定義されています。

参照先 COpeBuf::IsEnableUndo(), と m_cOpeBuf.

参照元 CViewCommander::Command_UNDO(), CMacro::HandleFunction(), と IsFuncEnable().

BOOL CEditDoc::IsEnableRedo ( void )

Redo(やり直し)可能な状態か？

CEditDoc.cpp の 1034 行で定義されています。

参照先 COpeBuf::IsEnableRedo(), と m_cOpeBuf.

参照元 CViewCommander::Command_REDO(), CMacro::HandleFunction(), と IsFuncEnable().

BOOL CEditDoc::IsEnablePaste ( void )

クリップボードから貼り付け可能か？

CEditDoc.cpp の 1043 行で定義されています。

参照先 FALSE, CClipboard::HasValidData(), と TRUE.

参照元 IsFuncEnable(), と CDlgReplace::OnBnClicked().

void CEditDoc::GetFileInfo ( FileInfo * pfi ) const

CEditDoc.cpp の 3174 行で定義されています。

参照先 _tcscpy(), FALSE, CEditWnd::GetActiveView(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), GetFilePath(), CEditView::GetTextArea(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), IsModified(), CLayoutMgr::LayoutToLogic(), m_bDebugMode, m_bGrepMode, FileInfo::m_bIsDebug, FileInfo::m_bIsGrep, FileInfo::m_bIsModified, m_cLayoutMgr, m_nCharCode, FileInfo::m_nCharCode, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, m_pcEditWnd, FileInfo::m_ptCursor, m_szGrepKey, FileInfo::m_szGrepKey, FileInfo::m_szPath, CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), と TRUE.

参照元 AddToMRU(), CEditWnd::DispatchEvent(), と FileRead().

BOOL CEditDoc::OnFileClose ( void )

ファイルを閉じるときのMRU登録 & 保存確認 ＆ 保存実行

戻り値:
TRUE,: 終了して良い / FALSE: 終了しない

CEditDoc.cpp の 3227 行で定義されています。

参照元 FileClose(), FileCloseOpen(), と CEditWnd::OnClose().

BOOL CEditDoc::HandleCommand ( EFunctionCode nCommand )

コマンドコードによる処理振り分け

引数:
[in] nCommand MAKELONG( コマンドコード，送信元識別子 )
日付:
2006.05.19 genta 上位16bitに送信元の識別子が入るように変更

2007.06.20 ryoji グループ内で巡回するように変更

CEditDoc.cpp の 2974 行で定義されています。

参照先 ActivateFrameWindow(), F_NEXTWINDOW, F_PREVWINDOW, CEditWnd::GetActiveView(), CEditView::GetCommander(), EditNode::GetHwnd(), CShareData::getInstance(), CSplitterWnd::GetNextPane(), CShareData::GetOpenedWindowArr(), GetOwnerHwnd(), CSplitterWnd::GetPrevPane(), CViewCommander::HandleCommand(), CEditWnd::m_cSplitterWnd, EditNode::m_nGroup, m_pcEditWnd, MYWM_SETACTIVEPANE, CEditWnd::SetActivePane(), と TRUE.

参照元 CEditWnd::DispatchEvent(), と CEditWnd::OnCommand().

BOOL CEditDoc::SelectFont ( LOGFONT * plf )

CEditDoc.cpp の 196 行で定義されています。

参照先 FALSE, GetSplitterHwnd(), MYTRACE_A, NULL, と TRUE.

bool CEditDoc::FileRead | ( | TCHAR * | pszPath,
 |  | bool * | pbOpened,
 |  | ECodeType | 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_Normal を使うように変更

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 の 268 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_PATH, _tcscpy(), CMRU::Add(), BOOL, CCodeMediator::CheckKanjiCodeOfFile(), CODE_AUTODETECT, CODE_DEFAULT, CODE_ERROR, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, DoFileLock(), CCaret::DrawCaretPosInfo(), EOL_CRLF, EOL_NONE, EOL_UNKNOWN, F_GOFILEEND, FALSE, CEditWnd::GetActiveView(), CommonSetting_File::GetAlertIfFileNotExist(), CommonSetting_File::GetAutoMIMEdecode(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetCommander(), GetDocumentAttribute(), CShareData::GetDocumentType(), GetFileInfo(), CMRU::GetFileInfo(), GetFilePath(), CShareData::getInstance(), CDocLine::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), GetLongFileName(), GetOwnerHwnd(), CMainStatusBar::GetProgressHwnd(), CommonSetting_File::GetRestoreBookmarks(), CommonSetting_File::GetRestoreCurPosition(), CShareData::GetShareData(), GetSplitterHwnd(), CEditView::GetTextArea(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), gm_pszCodeNameArr_Normal, GSTR_APPNAME, CViewCommander::HandleCommand(), InitAllView(), IsFilePathAvailable(), IsInECodeType(), IsValidCodeType(), CLayoutMgr::LogicToLayout(), m_bBomExist, m_bReadOnly, m_cDocLineMgr, CDocLine::m_cEol, m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, m_FileTime, CCaret::m_nCaretPosX_Prev, FileInfo::m_nCharCode, m_nCharCode, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, m_pcEditWnd, m_pShareData, FileInfo::m_ptCursor, CommonSetting::m_sFile, FileInfo::m_szMarkLines, CCaret::MoveCursor(), MYMESSAGEBOX, MYMESSAGEBOX_A, NULL, OpenFileDialog(), CDocLineMgr::ReadFile(), CDocLineMgr::SetBookMarks(), SetDocumentType(), SetFilePath(), SetImeMode(), CLayoutMgr::SetLayoutInfo(), SetNewLineCode(), CTextArea::SetViewLeftCol(), CTextArea::SetViewTopLine(), TRUE, と CEditWnd::Views_DisableSelectArea().

参照元 CEditWnd::OnDropFiles(), CEditWnd::OpenDocumentWhenCreate(), と OpenFile().

BOOL CEditDoc::FileWrite | ( | const TCHAR * | pszPath,
 |  | enumEOLType | cEolType
 | ) |  |

ファイルの保存

引数:
pszPath | [in] 保存ファイル名
cEolType | [in] 改行コード種別
pszPathはNULLであってはならない。

日付:
Feb. 9, 2001 genta 改行コード用引数追加

CEditDoc.cpp の 681 行で定義されています。

参照先 AddToMRU(), BOOL, DoFileLock(), DoFileUnLock(), ErrorMessage, FALSE, CMainStatusBar::GetProgressHwnd(), GetSplitterHwnd(), IsFilePathAvailable(), CommonSetting_Backup::m_bBackUp, m_bBomExist, m_bReadOnly, m_cDocLineMgr, DLLSHAREDATA::m_Common, m_cOpeBuf, CEditWnd::m_cStatusBar, m_eWatchUpdate, m_FileTime, m_nCharCode, m_pcEditWnd, m_pShareData, CommonSetting::m_sBackup, MakeBackUp(), MYMESSAGEBOX_A, NULL, CDocLineMgr::ResetAllModifyFlag(), RESULT_FAILURE, RESULT_LOSESOME, SetFilePath(), SetModified(), COpeBuf::SetNoModified(), SetParentCaption(), TRUE, CEditWnd::Views_RedrawAll(), CDocLineMgr::WriteFile(), と WU_NONE.

参照元 SaveFile().

bool CEditDoc::SaveFile ( const TCHAR * path )

CEditDoc_new.cpp の 550 行で定義されています。

参照先 FileWrite(), m_cOpeBuf, m_cSaveLineCode, SetModified(), と COpeBuf::SetNoModified().

参照元 CheckAutoSave(), FileSave(), と FileSaveAs().

void CEditDoc::OpenFile | ( | const TCHAR * | filename = NULL,
 |  | ECodeType | nCharCode = CODE_AUTODETECT,
 |  | bool | bReadOnly = FALSE
 | ) |  |

指定されたファイルを開く

現在の編集状況に応じて，現在のウィンドウに読み込むか，新しいウィンドウを開くか あるいは既に開かれているウィンドウにフォーカスを移すだけにするかを決定し， 実行する．

対象ファイル，エディタウィンドウの状況に依らず新しいファイルを開きたい場合に 使用する．

日付:
2003.03.30 genta 「閉じて開く」から利用するために引数追加

2004.10.09 CEditViewより移動

2007.03.12 maru 重複コード(多重オープン処理部分など)をCShareDataIsPathOpenedに移動

CEditDoc_new.cpp の 1230 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), auto_sprintf(), FileRead(), CShareData::getInstance(), GetLongFileName(), GetSplitterHwnd(), GSTR_APPNAME, IsFileOpenInThisWindow(), CShareData::IsPathOpened(), CommonSetting_File::m_bQueryIfCodeChange, DLLSHAREDATA::m_Common, m_hInstance, m_pShareData, CommonSetting::m_sFile, MYMESSAGEBOX, NULL, OpenFileDialog(), と CControlTray::OpenNewEditor().

参照元 CViewCommander::Command_FILEOPEN(), FileCloseOpen(), と CEditWnd::OnCommand().

void CEditDoc::FileClose ( void )

CEditDoc_new.cpp の 1286 行で定義されています。

参照先 Init(), InitAllView(), OnFileClose(), と SetParentCaption().

参照元 CViewCommander::Command_FILECLOSE().

void CEditDoc::FileCloseOpen | ( | const TCHAR * | filename = NULL,
 |  | ECodeType | nCharCode = CODE_AUTODETECT,
 |  | bool | bReadOnly = FALSE
 | ) |  |

CEditDoc_new.cpp の 1312 行で定義されています。

参照先 _MAX_PATH, GetSplitterHwnd(), Init(), InitAllView(), NULL, OnFileClose(), OpenFile(), OpenFileDialog(), と SetParentCaption().

参照元 CViewCommander::Command_FILECLOSE_OPEN().

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 の 1351 行で定義されています。

参照先 CCaret::DrawCaretPosInfo(), FALSE, FileSaveAs_Dialog(), CEditWnd::GetActiveView(), CEditView::GetCaret(), GetFilePath(), GetSplitterHwnd(), GSTR_APPNAME, IsFilePathAvailable(), IsModified(), CommonSetting_File::m_bEnableUnmodifiedOverwrite, m_bReadOnly, DLLSHAREDATA::m_Common, m_pcEditWnd, m_pShareData, CommonSetting::m_sFile, MYMESSAGEBOX, SaveFile(), と TRUE.

参照元 CViewCommander::Command_FILESAVE().

BOOL CEditDoc::FileSaveAs_Dialog ( void )

名前を付けて保存ダイアログ

日付:
2006.12.30 ryoji CEditView::Command_FILESAVEAS_DIALOG()から処理本体を切り出し

CEditDoc_new.cpp の 1409 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), FALSE, FileSaveAs(), GetFilePath(), GetSplitterHwnd(), GSTR_APPNAME_A, IsReadOnly(), m_bBomExist, m_bReadOnly, m_cSaveLineCode, m_nCharCode, MYMESSAGEBOX_A, SaveFileDialog(), と TRUE.

参照元 CViewCommander::Command_FILESAVEAS_DIALOG(), と FileSave().

BOOL CEditDoc::FileSaveAs ( const TCHAR * filename )

CEditDoc_new.cpp の 1451 行で定義されています。

参照先 CCaret::DrawCaretPosInfo(), FALSE, CEditWnd::GetActiveView(), CEditView::GetCaret(), m_pcEditWnd, OnChangeSetting(), SaveFile(), と TRUE.

参照元 CViewCommander::Command_FILESAVEAS(), と FileSaveAs_Dialog().

int CEditDoc::MakeBackUp ( const TCHAR * 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 の 1125 行で定義されています。

参照先 _MAX_DIR, _MAX_EXT, _MAX_FNAME, _MAX_PATH, _tcscpy(), auto_sprintf(), FALSE, FormatBackUpPath(), CommonSetting_Backup::GetBackupCount(), CommonSetting_Backup::GetBackupType(), GetSplitterHwnd(), IsLocalDrive(), CommonSetting_Backup::m_bBackUpDialog, CommonSetting_Backup::m_bBackUpDustBox, CommonSetting_Backup::m_bBackUpFolder, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sBackup, CommonSetting_Backup::m_szBackUpFolder, MYMESSAGEBOX_A, と NULL.

参照元 FileWrite().

void CEditDoc::SetParentCaption ( void )

親ウィンドウのタイトルを更新

日付:
2007.03.08 ryoji bKillFocusパラメータを除去

CEditDoc.cpp の 1056 行で定義されています。

参照先 _countof, _wcstotcs(), CEditWnd::ChangeFileNameNotify(), ExpandParameter(), CEditWnd::GetActiveView(), CEditView::GetDrawSwitch(), GetFilePath(), GetOwnerHwnd(), GetSplitterHwnd(), CEditWnd::IsActiveApp(), m_bGrepMode, DLLSHAREDATA::m_Common, m_pcEditWnd, m_pShareData, CommonSetting::m_sTabBar, CommonSetting::m_sWindow, CommonSetting_TabBar::m_szTabWndCaption, CommonSetting_Window::m_szWindowCaptionActive, CommonSetting_Window::m_szWindowCaptionInactive, NULL, to_tchar, と to_wchar().

参照元 CViewCommander::Command_READONLY(), CEditWnd::DispatchEvent(), DoFileLock(), FileClose(), FileCloseOpen(), FileWrite(), CNormalProcess::Initialize(), CEditWnd::OnDropFiles(), CEditWnd::SetDebugModeOFF(), CEditWnd::SetDebugModeON(), SetModified(), と CEditView::SetParentCaption().

BOOL CEditDoc::OpenPropertySheet ( int nPageNum )

共通設定 プロパティシート

CEditDoc.cpp の 946 行で定義されています。

参照先 CPropCommon::ApplyData(), BOOL, CTipWnd::ChangeFont(), CPropCommon::DoPropertySheet(), FALSE, CShareData::getInstance(), GetOwnerHwnd(), CPropCommon::InitData(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, CEditWnd::m_cPropCommon, CEditView::m_cTipWnd, DLLSHAREDATA::m_hwndTray, CommonSetting_Helper::m_lf_kh, CEditWnd::m_pcEditViewArr, m_pcEditWnd, m_pcSMacroMgr, m_pShareData, CommonSetting::m_sHelper, CommonSetting::m_sTabBar, MYWM_CHANGESETTING, CShareData::ResetGroupId(), SendMessageAny, CShareData::SendMessageToAllEditors(), TRUE, と CSMacroMgr::UnloadAll().

参照元 CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), と CViewCommander::Command_OPTION().

BOOL CEditDoc::OpenPropertySheetTypes | ( | int | nPageNum,
 |  | int | nSettingType
 | ) |  |

タイプ別設定 プロパティシート

CEditDoc.cpp の 994 行で定義されています。

参照先 CPropTypes::DoPropertySheet(), FALSE, CShareData::getInstance(), GetOwnerHwnd(), CPropTypes::GetTypeData(), CEditWnd::m_cPropTypes, DLLSHAREDATA::m_hwndTray, m_pcEditWnd, m_pShareData, DLLSHAREDATA::m_Types, MYWM_CHANGESETTING, SendMessageAny, CShareData::SendMessageToAllEditors(), CPropTypes::SetTypeData(), と TRUE.

参照元 CViewCommander::Command_HOKAN(), CViewCommander::Command_OPTION_TYPE(), と CViewCommander::Command_TYPE_LIST().

BOOL CEditDoc::OpenFileDialog | ( | HWND | hwndParent,
 |  | const TCHAR * | pszOpenFolder,
 |  | TCHAR * | pszPath,
 |  | ECodeType * | pnCharCode,
 |  | bool * | pbReadOnly
 | ) |  |

CEditDoc.cpp の 792 行で定義されています。

参照先 _MAX_PATH, ActivateFrameWindow(), BOOL, CDlgOpenFile::Create2(), CDlgOpenFile::DoModalOpenDlg(), GetFilePath(), CMRUFolder::GetPathList(), CMRU::GetPathList(), IsFilePathAvailable(), CMRUFolder::Length(), CMRU::Length(), CEditWnd::m_cDlgOpenFile, m_hInstance, m_pcEditWnd, と NULL.

参照元 FileCloseOpen(), FileRead(), と OpenFile().

void CEditDoc::OnChangeSetting ( void )

ビューに設定変更を反映させる

日付:
2004.06.09 Moca レイアウト再構築中にProgress Barを表示する．

CEditDoc.cpp の 3118 行で定義されています。

参照先 DoFileLock(), DoFileUnLock(), GetDocumentAttribute(), CShareData::GetDocumentType(), GetFilePath(), CShareData::getInstance(), CMainStatusBar::GetProgressHwnd(), CShareData::GetShareData(), m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, CommonSetting_File::m_nFileShareMode, m_nFileShareModeOld, CEditWnd::m_pcEditViewArr, m_pcEditWnd, m_pShareData, CommonSetting::m_sFile, NULL, CEditView::OnChangeSetting(), CEditWnd::RestorePhysPosOfAllView(), CEditWnd::SavePhysPosOfAllView(), SetDocumentType(), CLayoutMgr::SetLayoutInfo(), CShareData::TransformFileName_MakeCache(), と TRUE.

参照元 CViewCommander::Command_TYPE_LIST(), CEditWnd::DispatchEvent(), FileSaveAs(), と CEditWnd::SetDocumentTypeWhenCreate().

BOOL CEditDoc::SaveFileDialog | ( | TCHAR * | pszPath,
 |  | ECodeType * | 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 の 877 行で定義されています。

参照先 _MAX_EXT, _MAX_PATH, _tcscpy(), BOOL, CDlgOpenFile::Create2(), CDlgOpenFile::DoModalSaveDlg(), GetFilePath(), CMRUFolder::GetPathList(), CMRU::GetPathList(), GetSplitterHwnd(), IsFilePathAvailable(), CMRUFolder::Length(), CMRU::Length(), CommonSetting_File::m_bNoFilterSaveFile, CommonSetting_File::m_bNoFilterSaveNew, CEditWnd::m_cDlgOpenFile, DLLSHAREDATA::m_Common, m_hInstance, m_pcEditWnd, m_pShareData, CommonSetting::m_sFile, と NULL.

参照元 FileSaveAs_Dialog().

void CEditDoc::CheckFileTimeStamp ( void )

CEditDoc.cpp の 3419 行で定義されています。

参照先 auto_sprintf(), BOOL, CDialog::DoModal(), FALSE, GetFilePath(), GetLastWriteTimestamp(), GetOwnerHwnd(), GetSplitterHwnd(), IDD_FILEUPDATEQUERY, IsFilePathAvailable(), IsModified(), CommonSetting_File::m_bCheckFileTimeStamp, m_bReadOnly, DLLSHAREDATA::m_Common, m_eWatchUpdate, m_FileTime, m_hInstance, m_nCharCode, CommonSetting_File::m_nFileShareMode, m_pcEditWnd, m_pShareData, CommonSetting::m_sFile, NULL, ReloadCurrentFile(), CEditWnd::SendStatusMessage(), SHAREMODE_NOT_EXCLUSIVE, TRUE, WU_NONE, WU_NOTIFY, と WU_QUERY.

参照元 CEditWnd::OnEditTimer().

void CEditDoc::ReloadCurrentFile | ( | ECodeType | nCharCode,
 |  | bool | bReadOnly
 | ) |  |

同一ファイルの再オープン

引数:
nCharCode | [in] 文字コード種別
bReadOnly | [in] 読み取り専用モード

CEditDoc.cpp の 3506 行で定義されています。

参照元 CheckFileTimeStamp(), と CViewCommander::Command_FILE_REOPEN().

CEOL CEditDoc::GetNewLineCode ( ) const [inline]

CEditDoc.h の 116 行で定義されています。

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_WCHAR(), CCaret::DrawCaretPosInfo(), CMacro::HandleFunction(), と IsFuncChecked().

void CEditDoc::SetNewLineCode ( const CEOL & t ) [inline]

CEditDoc.h の 117 行で定義されています。

参照元 CViewCommander::Command_CHGMOD_EOL(), と FileRead().

bool CEditDoc::IsModificationForbidden ( int nCommand )

CEditDoc_new.cpp の 435 行で定義されています。

参照先 F_ADDTAIL_W, 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_W, 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_WCHAR, F_WordCut, F_WordDelete, F_WordDeleteToEnd, F_WordDeleteToStart, FALSE, m_bReadOnly, m_hLockedFile, m_nFileShareModeOld, NULL, と SHAREMODE_NOT_EXCLUSIVE.

参照元 IsFuncEnable().

void CEditDoc::CheckAutoSave ( void )

CEditDoc_new.cpp の 518 行で定義されています。

参照先 CPassiveTimer::CheckAction(), CPassiveTimer::Enable(), GetFilePath(), CPassiveTimer::IsEnabled(), IsFilePathAvailable(), IsModified(), m_cAutoSave, と SaveFile().

参照元 CEditWnd::OnEditTimer().

void CEditDoc::ReloadAutoSaveParam ( void )

CEditDoc_new.cpp の 541 行で定義されています。

参照先 CPassiveTimer::Enable(), CommonSetting_Backup::GetAutoBackupInterval(), CommonSetting_Backup::IsAutoBackupEnabled(), m_cAutoSave, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sBackup, と CPassiveTimer::SetInterval().

参照元 CEditDoc(), と CEditWnd::DispatchEvent().

void CEditDoc::SetImeMode ( int mode )

IME状態の設定

引数:
mode [in] IMEのモード
日付:
Nov 20, 2000 genta

CEditDoc.cpp の 3580 行で定義されています。

参照元 CEditWnd::Create(), と FileRead().

const TCHAR* CEditDoc::GetFilePath ( void ) const [inline]

CEditDoc.h の 131 行で定義されています。

参照元 CheckAutoSave(), CheckFileTimeStamp(), CViewCommander::Command_BROWSE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPYPATH(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_FILE_REOPEN(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), DoFileLock(), FileRead(), FileSave(), FileSaveAs_Dialog(), GetFileInfo(), GetFileName(), CMacro::HandleFunction(), Init(), MakeFuncList_VisualBasic(), OnChangeSetting(), CEditWnd::OnMouseMove(), CPrintPreview::OnPrint(), OpenFileDialog(), SaveFileDialog(), CDlgProperty::SetData(), SetDocumentIcon(), と SetParentCaption().

bool CEditDoc::IsFilePathAvailable ( void ) const [inline]

CEditDoc.h の 132 行で定義されています。

参照元 CheckAutoSave(), CheckFileTimeStamp(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_TagJumpByTagsFile(), DoFileLock(), FileRead(), FileSave(), FileWrite(), IsFuncEnable(), CPrintPreview::OnPrint(), OpenFileDialog(), と SaveFileDialog().

const TCHAR * CEditDoc::GetFileName ( void ) const

ファイル名(パスなし)を取得

ファイル名(パスなし)を取得する

作者:
Moca
日付:
2002.10.13

CEditDoc_new.cpp の 1168 行で定義されています。

参照先 GetFilePath(), と GetFileTitlePointer().

void CEditDoc::SetDocumentIcon ( void )

アイコンの設定

タイプ別設定に応じてウィンドウアイコンをファイルに関連づけられた物， または標準のものに設定する．

作者:
genta
日付:
2002.09.10

CEditDoc_new.cpp の 1182 行で定義されています。

参照先 CEditWnd::GetDefaultIcon(), GetDocumentAttribute(), GetFilePath(), CEditWnd::GetRelatedIcon(), m_bGrepMode, m_pcEditWnd, と CEditWnd::SetWindowIcon().

参照元 CEditWnd::DispatchEvent(), と SetFilePath().

void CEditDoc::LockDocumentType ( void ) [inline]

CEditDoc.h の 139 行で定義されています。

参照元 CViewCommander::Command_TYPE_LIST(), と CEditWnd::SetDocumentTypeWhenCreate().

void CEditDoc::UnlockDocumentType ( void ) [inline]

CEditDoc.h の 140 行で定義されています。

bool CEditDoc::GetDocumentLockState ( void ) [inline]

CEditDoc.h の 141 行で定義されています。

void CEditDoc::SetDocumentType | ( | int | type,
 |  | bool | force |
 | ) |  |  | [inline]

CEditDoc.h の 145 行で定義されています。

参照元 CViewCommander::Command_TYPE_LIST(), FileRead(), Init(), CNormalProcess::Initialize(), OnChangeSetting(), と CEditWnd::SetDocumentTypeWhenCreate().

int CEditDoc::GetDocumentType ( void ) const [inline]

< 文書種別の読み出し

CEditDoc.h の 154 行で定義されています。

参照元 CViewCommander::Command_TYPE_LIST(), と CEditView::KeySearchCore().

Types& CEditDoc::GetDocumentAttribute ( void ) const [inline]

< 設定された文書情報への参照を返す

CEditDoc.h の 158 行で定義されています。

参照元 CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), CEditDoc(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_RIGHT(), CViewCommander::Command_WCHAR(), CEditView::Create(), CTypeSupport::CTypeSupport(), CTextArea::DetectWidthOfLineNumberArea(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispVerticalLines(), CEditView::DoGrep(), CCaret::DrawCaretPosInfo(), CPrintPreview::DrawPageText(), FileRead(), CLayoutMgr::getIndentOffset_LeftSpace(), CEditView::GetWrapMode(), Init(), CEditView::InsertData_CEditView(), CEditView::KeySearchCore(), CEditView::KeyWordHelpSearchDict(), MakeFuncList_RuleFile(), CCaret::MoveCursor(), CPrintPreview::OnChangePrintSetting(), CEditView::OnChangeSetting(), OnChangeSetting(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CEditView::OnPaint(), CEditWnd::OnPrintPageSetting(), CEditView::ReplaceData_CEditView(), CEditView::SetCurrentColor(), CDlgProperty::SetData(), CDlgJump::SetData(), SetDocumentIcon(), CCaret::ShowEditCaret(), CEditView::ShowHokanMgr(), CEditView::ShowKeywordHelp(), CEditView::SmartIndent_CPP(), と CTextArea::UpdateAreaMetrics().

BOOL CEditDoc::IsReadOnly ( void ) [inline]

ReadOnly状態の読み出し

CEditDoc.h の 166 行で定義されています。

参照先 m_bReadOnly.

参照元 CEditView::DragEnter(), と FileSaveAs_Dialog().

void CEditDoc::SetReadOnly ( bool flag ) [inline]

ReadOnly状態の設定

CEditDoc.h の 168 行で定義されています。

参照先 m_bReadOnly.

void CEditDoc::SetModified | ( | bool | flag,
 |  | bool | redraw
 | ) |  |

変更フラグの設定

引数:
flag | [in] 設定する値．true: 変更有り / false: 変更無し
redraw | [in] true: タイトルの再描画を行う / false: 行わない
作者:
genta
日付:
2002.01.22 新規作成

CEditDoc_new.cpp の 1132 行で定義されています。

参照先 m_bIsModified, と SetParentCaption().

参照元 CViewCommander::Command_ADDTAIL(), CViewCommander::Command_CUT(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CEditView::DeleteData(), CEditView::DoGrep(), FileWrite(), Init(), CEditView::InsertData_CEditView(), CEditView::ReplaceData_CEditView(), と SaveFile().

bool CEditDoc::IsModified ( void ) const [inline]

ファイルが修正中かどうか

戻り値:
true | ファイルは修正されている
false | ファイルは修正されていない

CEditDoc.h の 176 行で定義されています。

参照元 CheckAutoSave(), CheckFileTimeStamp(), CViewCommander::Command_COMPARE(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CTextDrawer::DispLineNumber(), FileSave(), GetFileInfo(), IsFuncEnable(), と CDlgProperty::SetData().

bool CEditDoc::IsFileOpenInThisWindow ( void ) [inline]

このウィンドウで新しいファイルを開けるか

新しいウィンドウを開かずに現在のウィンドウを再利用できるかどうかのテストを行う． 変更済み，ファイルを開いている，Grepウィンドウ，アウトプットウィンドウの場合には 再利用不可．

作者:
Moca
日付:
2005.06.24 Moca

CEditDoc.h の 187 行で定義されています。

参照元 OpenFile().

void CEditDoc::AddToMRU ( void )

カレントファイルをMRUに登録する。 ブックマークも一緒に登録する。

日付:
2003.03.30 genta 作成

CEditDoc_new.cpp の 1205 行で定義されています。

参照先 CDocLineMgr::GetBookMarks(), GetFileInfo(), m_cDocLineMgr, と FileInfo::m_szMarkLines.

参照元 FileWrite().

const wchar_t * CEditDoc::ExParam_SkipCond | ( | const wchar_t * | pszSource,
 |  | int | part
 | ) |  |

処理の読み飛ばし

条件分岐の構文 ${cond:A0$:A1$:A2$:..$} において， 指定した番号に対応する位置の先頭へのポインタを返す． 指定番号に対応する物が無ければ$}の次のポインタを返す．

${が登場した場合にはネストと考えて$}まで読み飛ばす．

引数:
pszSource | [in] スキャンを開始する文字列の先頭．cond:の次のアドレスを渡す．
part | [in] 移動する番号＝読み飛ばす$:の数．-1を与えると最後まで読み飛ばす．
戻り値:
移動後のポインタ．該当領域の先頭かあるいは$}の直後．
作者:
genta
日付:
2003.03.31 genta 作成

CEditDoc.cpp の 3995 行で定義されています。

int CEditDoc::ExParam_Evaluate ( const wchar_t * pCond )

条件の評価

引数:
pCond [in] 条件種別先頭．'?'までを条件と見なして評価する
戻り値:
評価の値
覚え書き:
ポインタの読み飛ばし作業は行わないので，'?'までの読み飛ばしは 呼び出し側で別途行う必要がある．
作者:
genta
日付:
2003.03.31 genta 作成

CEditDoc.cpp の 4044 行で定義されています。

bool CEditDoc::IsInsMode ( ) const [inline]

CEditDoc.h の 198 行で定義されています。

参照元 IsFuncChecked().

void CEditDoc::SetInsMode ( bool mode ) [inline]

CEditDoc.h の 199 行で定義されています。

参照元 CEditDoc(), と Init().

void CEditDoc::SetFilePath ( const TCHAR * szFile ) [protected]

ファイル名の設定

ファイル名を設定すると同時に，ウィンドウアイコンを適切に設定する．

引数:
szFile [in] ファイルのパス名
作者:
genta
日付:
2002.09.09

CEditDoc_new.cpp の 1153 行で定義されています。

参照先 _tcscpy(), m_szFilePath, と SetDocumentIcon().

参照元 FileRead(), FileWrite(), と Init().

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 の 287 行で定義されています。

参照先 CFuncInfoArr::AppendData(), C_IsLineEsc(), C_IsOperator(), C_IsSpace(), C_IsWordChar(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, と CCppPreprocessMng::ScanLine().

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeFuncList_PLSQL ( CFuncInfoArr * pcFuncInfoArr )

PL/SQL関数リスト作成

CEditDoc.cpp の 1716 行で定義されています。

参照先 CFuncInfoArr::AppendData(), WCODE::CR, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, と m_cLayoutMgr.

参照元 CViewCommander::Command_FUNCLIST(), と CDlgJump::SetData().

void CEditDoc::MakeTopicList_txt ( CFuncInfoArr * pcFuncInfoArr )

テキスト・トピックリスト作成

日付:
2002.04.01 YAZAKI CDlgFuncList::SetText()を使用するように改訂。

2002.11.03 Moca 階層が最大値を超えるとバッファオーバーランするのを修正 最大値以上は追加せずに無視する

CEditDoc.cpp の 2050 行で定義されています。

参照先 CFuncInfoArr::AppendData(), auto_memcmp(), BOOL, WCODE::CR, FALSE, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::isBlank(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sFormat, CommonSetting_Format::m_szMidashiKigou, NULL, と TRUE.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeFuncList_Java ( CFuncInfoArr * pcFuncInfoArr )

CEditDoc_new.cpp の 34 行で定義されています。

参照先 CFuncInfoArr::AppendData(), auto_sprintf(), BOOL, WCODE::CR, CFuncInfoArr::DUMP(), FALSE, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, NULL, WCODE::TAB, と TRUE.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeTopicList_cobol ( CFuncInfoArr * pcFuncInfoArr )

COBOL アウトライン解析

CEditDoc.cpp の 2388 行で定義されています。

参照先 CFuncInfoArr::AppendData(), auto_memicmp(), auto_sprintf(), BOOL, WCODE::CR, FALSE, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, NULL, と TRUE.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeTopicList_asm ( CFuncInfoArr * pcFuncInfoArr )

アセンブラ アウトライン解析

作者:
MIK
日付:
2004.04.12 作り直し

CEditDoc.cpp の 2480 行で定義されています。

参照先 CFuncInfoArr::AppendData(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, MAX_ASM_TOKEN, と NULL.

参照元 CViewCommander::Command_FUNCLIST().

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 の 579 行で定義されています。

参照先 CFuncInfoArr::AppendData(), WCODE::CR, CFuncInfoArr::DUMP(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, と wcsncmp_literal.

参照元 CViewCommander::Command_FUNCLIST().

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 の 715 行で定義されています。

参照先 _FT, CFuncInfoArr::AppendData(), auto_memcpy(), WCODE::CR, GetFilePath(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, と NULL.

参照元 CViewCommander::Command_FUNCLIST().

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 の 401 行で定義されています。

参照先 _countof, CFuncInfoArr::AppendData(), C_IsSpace(), COutlinePython::DoScanLine(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), COutlinePython::IsLogicalLineTop(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, Python_IsWordChar(), と wcsncmp_literal.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeTopicList_wztxt ( CFuncInfoArr * pcFuncInfoArr )

階層付きテキスト アウトライン解析

作者:
zenryaku
日付:
2003.05.20 zenryaku 新規作成

2003.05.25 genta 実装方法一部修正

2003.06.21 Moca 階層が2段以上深くなる場合を考慮

CEditDoc.cpp の 2590 行で定義されています。

参照先 _countof, CFuncInfoArr::AppendData(), auto_sprintf(), FUNCINFO_NOCLIPTEXT, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, と m_cLayoutMgr.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeTopicList_html ( CFuncInfoArr * pcFuncInfoArr )

HTML アウトライン解析

作者:
zenryaku
日付:
2003.05.20 zenryaku 新規作成

2004.04.19 zenryaku 空要素を判定

2004.04.20 Moca コメント処理と、不明な終了タグを無視する処理を追加

CEditDoc.cpp の 2668 行で定義されています。

参照先 _countof, CFuncInfoArr::AppendData(), BOOL, FALSE, CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, と TRUE.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeTopicList_tex ( CFuncInfoArr * pcFuncInfoArr )

TeX アウトライン解析

作者:
naoh
日付:
2003.07.21 naoh 新規作成

2005.01.03 naoh 「マ」などの"}"を含む文字に対する修正、prosperのslideに対応

CEditDoc.cpp の 2835 行で定義されています。

参照先 _countof, _IS_SJIS_1, CFuncInfoArr::AppendData(), auto_sprintf(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), m_cDocLineMgr, と m_cLayoutMgr.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::MakeFuncList_RuleFile ( CFuncInfoArr * pcFuncInfoArr )

ルールファイルを元に、トピックリストを作成

日付:
2002.04.01 YAZAKI

2002.11.03 Moca ネストの深さが最大値を超えるとバッファオーバーランするのを修正 最大値以上は追加せずに無視する

CEditDoc.cpp の 2275 行で定義されています。

参照先 CFuncInfoArr::AppendData(), BOOL, WCODE::CR, FALSE, GetDocumentAttribute(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::LF, CLayoutMgr::LogicToLayout(), m_cDocLineMgr, m_cLayoutMgr, NULL, ReadRuleFile(), と TRUE.

参照元 CViewCommander::Command_FUNCLIST().

int CEditDoc::ReadRuleFile | ( | const TCHAR * | pszFilename,
 |  | oneRule * | pcOneRule,
 |  | int | nMaxCount
 | ) |  |

ルールファイルを読み込み、ルール構造体の配列を作成する

日付:
2002.04.01 YAZAKI

2002.11.03 Moca 引数nMaxCountを追加。バッファ長チェックをするように変更

CEditDoc.cpp の 2223 行で定義されています。

参照先 _countof, _tfopen_absini(), LINEREADBUFSIZE, oneRule::nLength, NULL, oneRule::szGroupName, と oneRule::szMatch.

参照元 MakeFuncList_RuleFile().

void CEditDoc::MakeFuncList_BookMark ( CFuncInfoArr * pcFuncInfoArr )

ブックマークリスト作成（無理矢理！）

日付:
2002.01.19 aroka 空行をマーク対象にするフラグ bMarkUpBlankLineEnable を導入しました。

2005.10.11 ryoji "ａ@" の右２バイトが全角空白と判定される問題の対処

2005.11.03 genta 文字列長修正．右端のゴミを除去

空行をマーク対象にするフラグ 20020119 aroka

CEditDoc_new.cpp の 1054 行で定義されています。

参照先 CFuncInfoArr::AppendData(), BOOL, WCODE::CR, CEOL::GetLen(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::isBlank(), CDocLine::IsBookMarked(), WCODE::isZenkakuSpace(), WCODE::LF, CLayoutMgr::LogicToLayout(), CommonSetting_OutLine::m_bMarkUpBlankLineEnable, m_cDocLineMgr, m_cLayoutMgr, m_cNewLineCode, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sOutline, NULL, WCODE::SPACE, と WCODE::TAB.

参照元 CViewCommander::Command_FUNCLIST().

void CEditDoc::ExpandParameter | ( | const WChar * | pszSource,
 |  | WChar * | pszBuffer,
 |  | int | nBufferLen
 | ) |  |

$xの展開

特殊文字は以下の通り

  • $ $自身
  • A アプリ名
  • 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 wcsncpy_ex導入によるfor文の削減

2005.09.15 FILE 特殊文字S, M追加

2007.09.21 kobake 特殊文字A(アプリ名)を追加

CEditDoc.cpp の 3650 行で定義されています。

参照元 CViewCommander::Command_EXECCOMMAND(), CViewCommander::Command_TRACEOUT(), CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), CMacro::HandleFunction(), と SetParentCaption().

void CEditDoc::DoFileLock ( void ) [protected]

CEditDoc.cpp の 1592 行で定義されています。

参照先 BOOL, DoFileUnLock(), FALSE, GetFilePath(), GetSplitterHwnd(), GSTR_APPNAME, IsFilePathAvailable(), IsFileWritable(), m_bReadOnly, DLLSHAREDATA::m_Common, m_hLockedFile, CommonSetting_File::m_nFileShareMode, m_nFileShareModeOld, m_pShareData, CommonSetting::m_sFile, MYMESSAGEBOX, NULL, OpenFile_InShareMode(), SetParentCaption(), SHAREMODE_DENY_READWRITE, SHAREMODE_DENY_WRITE, SHAREMODE_NOT_EXCLUSIVE, と TRUE.

参照元 FileRead(), FileWrite(), と OnChangeSetting().

void CEditDoc::DoFileUnLock ( void ) [protected]

CEditDoc.cpp の 1698 行で定義されています。

参照先 m_hLockedFile, m_nFileShareModeOld, NULL, と SHAREMODE_NOT_EXCLUSIVE.

参照元 DoFileLock(), FileWrite(), Init(), OnChangeSetting(), と ~CEditDoc().

bool CEditDoc::FormatBackUpPath | ( | TCHAR * | szNewPath,
 |  | const TCHAR * | target_file |
 | ) |  |  | [protected]

バックアップの作成

引数:
[out] | szNewPath | バックアップ先パス名
[in] | target_file | バックアップ元パス名
作者:
aroka
日付:
2005.11.29 aroka MakeBackUpから分離．書式を元にバックアップファイル名を作成する機能追加
戻り値:
true
TODO:
Advanced modeでの世代管理

CEditDoc.cpp の 1354 行で定義されています。

参照先 _countof, _MAX_DIR, _MAX_EXT, _MAX_FNAME, _tcscpy(), AddLastYenFromDirectoryPath(), auto_sprintf(), auto_strchr(), BKUP_DAY, BKUP_HOUR, BKUP_MIN, BKUP_MONTH, BKUP_SEC, BKUP_YEAR, CutLastYenFromDirectoryPath(), CommonSetting_Backup::GetBackupExtChar(), CommonSetting_Backup::GetBackupOpt(), CommonSetting_Backup::GetBackupType(), CommonSetting_Backup::GetBackupTypeAdv(), GetDateTimeFormat(), GetLastWriteTimestamp(), CommonSetting_Backup::m_bBackUpFolder, CommonSetting_Backup::m_bBackUpPathAdvanced, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sBackup, CommonSetting_Backup::m_szBackUpFolder, CommonSetting_Backup::m_szBackUpPathAdvanced, と NULL.

参照元 MakeBackUp().

HWND CEditDoc::GetSplitterHwnd ( ) const

CEditDoc.cpp の 4095 行で定義されています。

参照先 CWnd::GetHwnd(), CEditWnd::m_cSplitterWnd, と m_pcEditWnd.

参照元 CheckFileTimeStamp(), DoFileLock(), FileCloseOpen(), FileRead(), FileSave(), FileSaveAs_Dialog(), FileWrite(), MakeBackUp(), CEditView::MakeDiffTmpFile(), OpenFile(), CEditWnd::PrintPreviewModeONOFF(), SaveFileDialog(), SelectFont(), SetParentCaption(), と ~CEditDoc().

HWND CEditDoc::GetOwnerHwnd ( ) const

CEditDoc.cpp の 4100 行で定義されています。

参照先 CEditWnd::GetHwnd(), と m_pcEditWnd.

参照元 CheckFileTimeStamp(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), FileRead(), HandleCommand(), IsFuncChecked(), IsFuncEnable(), CEditView::OPEN_ExtFromtoExt(), OpenPropertySheet(), OpenPropertySheetTypes(), CDlgDiff::SetData(), CDlgCompare::SetData(), SetParentCaption(), と CEditView::TagJumpSub().

変数

CPassiveTimer CEditDoc::m_cAutoSave

自動保存管理

CEditDoc.h の 123 行で定義されています。

参照元 CheckAutoSave(), と ReloadAutoSaveParam().

P_CEditWnd& CEditDoc::m_pcEditWnd

CEditDoc.h の 244 行で定義されています。

参照元 CMacro::AddLParam(), CheckFileTimeStamp(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_MENU_ALLFUNC(), CViewCommander::Command_NEXTGROUP(), CViewCommander::Command_PREVGROUP(), CViewCommander::Command_PRINT(), CViewCommander::Command_PRINT_PAGESETUP(), CViewCommander::Command_PRINT_PREVIEW(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_SEARCH_BOX(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_TAB_JOINTNEXT(), CViewCommander::Command_TAB_JOINTPREV(), CViewCommander::Command_TAB_MOVELEFT(), CViewCommander::Command_TAB_MOVERIGHT(), CViewCommander::Command_TAB_SEPARATE(), CViewCommander::Command_WINLIST(), CViewCommander::Command_WINTOPMOST(), CEditView::CreatePopUpMenu_R(), CEditView::DispatchEvent(), CEditView::DoGrep(), CEditView::DragEnter(), CCaret::DrawCaretPosInfo(), FileRead(), FileSave(), FileSaveAs(), FileWrite(), GetFileInfo(), GetOwnerHwnd(), GetSplitterHwnd(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), HandleCommand(), CMacro::HandleFunction(), Init(), InitAllView(), IsFuncChecked(), IsFuncEnable(), CDlgJump::OnBnClicked(), OnChangeSetting(), CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), CEditView::OnKillFocus(), CEditView::OnLBUTTONDOWN(), OpenFileDialog(), OpenPropertySheet(), OpenPropertySheetTypes(), CViewSelect::PrintSelectionInfoMsg(), SaveFileDialog(), SetDocumentIcon(), SetParentCaption(), CCaret::ShowEditCaret(), CEditView::SyncScrollH(), と CEditView::SyncScrollV().

CDocLineMgr CEditDoc::m_cDocLineMgr

CEditDoc.h の 246 行で定義されています。

参照元 AddToMRU(), CEditView::AnalyzeDiffInfo(), CEditDoc(), CViewCommander::Command_BOOKMARK_PATTERN(), CViewCommander::Command_BOOKMARK_RESET(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_COMPARE(), CViewCommander::Command_Diff_Reset(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_JUMP(), CViewCommander::Command_MERGE(), CViewCommander::Command_PROPERTY_FILE(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_WCHAR(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CEditWnd::DispatchEvent(), FileRead(), FileWrite(), CMacro::HandleFunction(), CEditView::HokanSearchByFile(), Init(), CNormalProcess::Initialize(), CEditView::IsCurrentPositionURL(), CEditView::ISearchExec(), 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(), CPrintPreview::OnChangePrintSetting(), CEditView::RTrimPrevLine(), CEditView::SearchBracket(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDlgProperty::SetData(), CEditView::SetReconvertStruct(), CEditView::SmartIndent_CPP(), と CEditView::ViewDiffInfo().

CLayoutMgr CEditDoc::m_cLayoutMgr

CEditDoc.h の 247 行で定義されています。

参照元 CEditView::AddCurrentLineToHistory(), CEditView::AdjustScrollBars(), CEditDoc(), CEditWnd::ChangeLayoutParam(), CViewCommander::Command_1PageDown(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPYTAG(), CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMP_SRCHSTARTPOS(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::CopyCurLine(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CEditWnd::DispatchEvent(), CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CTextDrawer::DispTab(), CEditView::DispTextSelected(), CTextDrawer::DispVerticalLines(), CEditView::DoGrep(), CCaret::DrawCaretPosInfo(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), FileRead(), CCaret::GetAdjustCursorPos(), CEditView::GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), GetFileInfo(), CViewParser::GetLeftWord(), CEditView::GetSelectedData(), CViewCalc::GetTabSpace(), CMacro::HandleFunction(), Init(), CNormalProcess::Initialize(), CEditView::InsertData_CEditView(), CEditView::IsCurrentPositionURL(), CEditView::ISearchExec(), 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(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), CPrintPreview::OnChangePrintSetting(), OnChangeSetting(), CEditView::OnHScroll(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CEditView::OnPaint(), CEditView::OnVScroll(), CEditView::OPEN_ExtFromtoExt(), CPrintPreview::Print_DrawLine(), CViewSelect::PrintSelectionInfoMsg(), CEditView::ReplaceData_CEditView(), CEditWnd::RestorePhysPosOfAllView(), CEditView::RTrimPrevLine(), CEditWnd::SavePhysPosOfAllView(), CEditView::ScrollAtH(), CEditView::ScrollAtV(), CEditView::SearchBracket(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDlgProperty::SetData(), CEditView::SetReconvertStruct(), CCaret::ShowEditCaret(), CEditView::SmartIndent_CPP(), と CEditView::TagJumpSub().

int CEditDoc::m_nSettingType [protected]

CEditDoc.h の 253 行で定義されています。

bool CEditDoc::m_nSettingTypeLocked [protected]

CEditDoc.h の 254 行で定義されています。

bool CEditDoc::m_bIsModified [protected]

CEditDoc.h の 255 行で定義されています。

参照元 SetModified().

SFilePath CEditDoc::m_szFilePath [private]

CEditDoc.h の 258 行で定義されています。

参照元 CEditDoc(), と SetFilePath().

BOOL CEditDoc::m_bGrepRunning

CEditDoc.h の 261 行で定義されています。

参照元 CEditView::DoGrep().

int CEditDoc::m_nCommandExecNum

CEditDoc.h の 262 行で定義されています。

参照元 CViewCommander::HandleCommand(), InitAllView(), と CDlgProperty::SetData().

FILETIME CEditDoc::m_FileTime

CEditDoc.h の 263 行で定義されています。

参照元 CEditDoc(), CheckFileTimeStamp(), FileRead(), FileWrite(), と Init().

ECodeType CEditDoc::m_nCharCode

CEditDoc.h の 264 行で定義されています。

参照元 CheckFileTimeStamp(), CViewCommander::Command_INSFILE(), CViewCommander::Command_PUTFILE(), CCaret::DrawCaretPosInfo(), FileRead(), FileSaveAs_Dialog(), FileWrite(), GetFileInfo(), CMacro::HandleCommand(), CMacro::HandleFunction(), Init(), IsFuncChecked(), CEditView::MakeDiffTmpFile(), と CDlgProperty::SetData().

BOOL CEditDoc::m_bBomExist

保存時にBOMを付けるかどうか Jul. 26, 2003 ryoji

CEditDoc.h の 265 行で定義されています。

参照元 FileRead(), FileSaveAs_Dialog(), FileWrite(), CMacro::HandleCommand(), Init(), と CEditView::MakeDiffTmpFile().

bool CEditDoc::m_bInsMode

挿入・上書きモード Oct. 2, 2005 genta

CEditDoc.h の 266 行で定義されています。

CEOL CEditDoc::m_cNewLineCode [protected]

CEditDoc.h の 270 行で定義されています。

参照元 Init(), と MakeFuncList_BookMark().

CEOL CEditDoc::m_cSaveLineCode

CEditDoc.h の 273 行で定義されています。

参照元 FileSaveAs_Dialog(), CMacro::HandleCommand(), CEditView::MakeDiffTmpFile(), と SaveFile().

bool CEditDoc::m_bReadOnly

CEditDoc.h の 275 行で定義されています。

参照元 CheckFileTimeStamp(), CViewCommander::Command_READONLY(), DoFileLock(), FileRead(), FileSave(), FileSaveAs_Dialog(), FileWrite(), Init(), IsFuncChecked(), IsFuncEnable(), IsModificationForbidden(), CDlgProperty::SetData(), CEditWnd::SetDebugModeON(), と CEditWnd::SetDocumentTypeWhenCreate().

BOOL CEditDoc::m_bDebugMode

CEditDoc.h の 276 行で定義されています。

参照元 GetFileInfo(), Init(), CEditView::OnLBUTTONDBLCLK(), CEditWnd::SetDebugModeOFF(), と CEditWnd::SetDebugModeON().

BOOL CEditDoc::m_bGrepMode

CEditDoc.h の 277 行で定義されています。

参照元 CEditView::DoGrep(), GetFileInfo(), Init(), CEditView::OnLBUTTONDBLCLK(), SetDocumentIcon(), SetParentCaption(), と CEditView::TranslateCommand_grep().

wchar_t CEditDoc::m_szGrepKey[1024]

CEditDoc.h の 278 行で定義されています。

参照元 CEditDoc(), CEditView::DoGrep(), GetFileInfo(), と Init().

COpeBuf CEditDoc::m_cOpeBuf

CEditDoc.h の 280 行で定義されています。

参照元 CEditView::DoGrep(), FileWrite(), CViewCommander::HandleCommand(), Init(), IsEnableRedo(), IsEnableUndo(), と SaveFile().

TCHAR* CEditDoc::m_pszAppName

CEditDoc.h の 282 行で定義されています。

HINSTANCE CEditDoc::m_hInstance

CEditDoc.h の 283 行で定義されています。

参照元 CheckFileTimeStamp(), Create(), OpenFile(), OpenFileDialog(), と SaveFileDialog().

DLLSHAREDATA* CEditDoc::m_pShareData

CEditDoc.h の 284 行で定義されています。

参照元 CEditDoc(), CheckFileTimeStamp(), Create(), DoFileLock(), FileRead(), FileSave(), FileWrite(), FormatBackUpPath(), Init(), MakeBackUp(), MakeFuncList_BookMark(), MakeTopicList_txt(), OnChangeSetting(), OpenFile(), OpenPropertySheet(), OpenPropertySheetTypes(), ReloadAutoSaveParam(), SaveFileDialog(), と SetParentCaption().

BOOL CEditDoc::m_bDoing_UndoRedo

CEditDoc.h の 285 行で定義されています。

EShareMode CEditDoc::m_nFileShareModeOld

CEditDoc.h の 286 行で定義されています。

参照元 DoFileLock(), DoFileUnLock(), CEditView::DragEnter(), Init(), IsModificationForbidden(), と OnChangeSetting().

HANDLE CEditDoc::m_hLockedFile

CEditDoc.h の 287 行で定義されています。

参照元 DoFileLock(), DoFileUnLock(), CEditView::DragEnter(), IsModificationForbidden(), と CDlgProperty::SetData().

CSMacroMgr* CEditDoc::m_pcSMacroMgr

マクロ

CEditDoc.h の 288 行で定義されています。

参照元 CEditDoc(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), Create(), CViewCommander::HandleCommand(), IsFuncEnable(), OpenPropertySheet(), と ~CEditDoc().

CFuncLookup CEditDoc::m_cFuncLookup

機能名，機能番号などのresolve

CEditDoc.h の 289 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CViewCommander::Command_MENU_ALLFUNC(), Create(), CEditView::CreatePopUpMenu_R(), と CFuncKeyWnd::OnTimer().

WatchUpdate CEditDoc::m_eWatchUpdate

更新監視方法

CEditDoc.h の 301 行で定義されています。

参照元 CheckFileTimeStamp(), FileWrite(), と Init().

このクラスの説明は次のファイルから生成されました:
  • CEditDoc.h
  • CEditDoc.cpp
  • CEditDoc_FuncList1.cpp
  • CEditDoc_FuncList2.cpp
  • CEditDoc_new.cpp
Sakura-Editorに対してSat Nov 17 20:28:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditDoc メンバ一覧

これは全メンバの一覧です。CEditDoc継承メンバも含んでいます。

AddToMRU(void) | CEditDoc |
CEditDoc(CEditApp *pcApp) | CEditDoc |
CheckAutoSave(void) | CEditDoc |
CheckFileTimeStamp(void) | CEditDoc |
Create(HINSTANCE, CImageListMgr *) | CEditDoc |
DoFileLock(void) | CEditDoc | [protected]
DoFileUnLock(void) | CEditDoc | [protected]
ExpandParameter(const WChar *pszSource, WChar *pszBuffer, int nBufferLen) | CEditDoc |
ExParam_Evaluate(const wchar_t *pCond) | CEditDoc |
ExParam_SkipCond(const wchar_t *pszSource, int part) | CEditDoc |
FileClose(void) | CEditDoc |
FileCloseOpen(const TCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, bool bReadOnly=FALSE) | CEditDoc |
FileRead(TCHAR *pszPath, bool *pbOpened, ECodeType nCharCode, bool bReadOnly, bool bConfirmCodeChange) | CEditDoc |
FileSave(bool warnbeep=true, bool askname=true) | CEditDoc |
FileSaveAs(const TCHAR *filename) | CEditDoc |
FileSaveAs_Dialog(void) | CEditDoc |
FileWrite(const TCHAR *, enumEOLType cEolType) | CEditDoc |
FormatBackUpPath(TCHAR *szNewPath, const TCHAR *target_file) | CEditDoc | [protected]
GetDocumentAttribute(void) const | CEditDoc | [inline]
GetDocumentLockState(void) | CEditDoc | [inline]
GetDocumentType(void) const | CEditDoc | [inline]
GetFileInfo(FileInfo *) const | CEditDoc |
GetFileName(void) const | CEditDoc |
GetFilePath(void) const | CEditDoc | [inline]
GetNewLineCode() const | CEditDoc | [inline]
GetOwnerHwnd() const | CEditDoc |
GetSplitterHwnd() const | CEditDoc |
HandleCommand(EFunctionCode) | 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]
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_cDocLineMgr | CEditDoc |
m_cFuncLookup | CEditDoc |
m_cLayoutMgr | CEditDoc |
m_cNewLineCode | CEditDoc | [protected]
m_cOpeBuf | CEditDoc |
m_cSaveLineCode | CEditDoc |
m_eWatchUpdate | CEditDoc |
m_FileTime | CEditDoc |
m_hInstance | CEditDoc |
m_hLockedFile | 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 | [private]
m_szGrepKey | CEditDoc |
MakeBackUp(const TCHAR *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 |
OpenFile(const TCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, bool bReadOnly=FALSE) | CEditDoc |
OpenFileDialog(HWND, const TCHAR *, TCHAR *, ECodeType *, bool *) | CEditDoc |
OpenPropertySheet(int) | CEditDoc |
OpenPropertySheetTypes(int, int) | CEditDoc |
ReadRuleFile(const TCHAR *pszFilename, oneRule *pcOneRule, int nMaxCount) | CEditDoc |
ReloadAutoSaveParam(void) | CEditDoc |
ReloadCurrentFile(ECodeType, bool) | CEditDoc |
SaveFile(const TCHAR *path) | CEditDoc |
SaveFileDialog(TCHAR *, ECodeType *, CEOL *pcEol=NULL, BOOL *pbBomExist=NULL) | CEditDoc |
SelectFont(LOGFONT *) | CEditDoc |
SetDocumentIcon(void) | CEditDoc |
SetDocumentType(int type, bool force) | CEditDoc | [inline]
SetFilePath(const TCHAR *szFile) | CEditDoc | [protected]
SetImeMode(int mode) | CEditDoc |
SetInsMode(bool mode) | CEditDoc | [inline]
SetModified(bool flag, bool redraw) | CEditDoc |
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 Nov 17 20:28:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEditView

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditView

文書ウィンドウの管理 [詳細]

#include <CEditView.h>

CEditViewに対する継承グラフ

[凡例]
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 メソッド

const CEditDoc * | GetDocument () const
CEditDoc * GetDocument ()
HWND | GetHwnd () const
bool | IsBkBitmap () const
背景にビットマップを使用するかどうか(事実上は常にFALSE。TRUEの場合背景作画しない)
bool | GetDrawSwitch () const
void | SetDrawSwitch (bool b)
CEditView * GetEditView ()
const CEditView * | GetEditView () const
CEditView (CEditWnd *pcEditWnd)
~CEditView ()
BOOL | Create (HINSTANCE, HWND, CEditDoc *, int, BOOL)
BOOL | CreateScrollBar (void)
void | DestroyScrollBar (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)
void | CaretUnderLineON (bool)
void | CaretUnderLineOFF (bool)
void | AdjustScrollBars (void)
void | MoveCursorSelecting (CLayoutPoint ptWk_CaretPos, bool bSelect, int=_CARETMARGINRATE)
選択を考慮した行桁指定によるカーソル移動
void | OnChangeSetting (void)
void | SetFont (void)
void | RedrawAll (void)
void | Redraw (void)
void | CopyViewStatus (CEditView *)
void | SplitBoxOnOff (BOOL, BOOL, BOOL)
DWORD | DoGrep (const CNativeW *, const CNativeT *, const CNativeT *, BOOL, const SSearchOption &, ECodeType, BOOL, int)
int | DoGrepTree (CDlgCancel *, HWND, const wchar_t *, int *, const TCHAR *, const TCHAR *, BOOL, const SSearchOption &, ECodeType, BOOL, int, CBregexp *, int, int *)
Grep実行
int | DoGrepFile (CDlgCancel *, HWND, const wchar_t *, int *, const TCHAR *, const SSearchOption &, ECodeType, BOOL, int, CBregexp *, int *, const TCHAR *, CNativeW &)
void | SetGrepResult (wchar_t *pWork, int *pnWorkLen, const TCHAR *pszFullPath, const TCHAR *pszCodeName, int nLine, int nColm, const wchar_t *pCompareData, int nLineLen, int nEolCodeLen, const wchar_t *pMatchData, int nMatchLen, BOOL bGrepOutputLine, int nGrepOutputStyle)
Grep結果を構築する
bool | SearchBracket (const CLayoutPoint &ptPos, CLayoutPoint *pptLayoutNew, int *mode)
対括弧の検索
bool | SearchBracketForward (CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *upChar, const wchar_t *dnChar, int *mode)
半角対括弧の検索:順方向
bool | SearchBracketBackward (CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *dnChar, const wchar_t *upChar, int *mode)
半角対括弧の検索:逆方向
bool | SearchBracketForward2 (CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *upChar, const wchar_t *dnChar, int *mode)
全角対括弧の検索:順方向
bool | SearchBracketBackward2 (CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *dnChar, const wchar_t *upChar, int *mode)
全角対括弧の検索:逆方向
bool | ShowKeywordHelp (POINT po, LPCWSTR pszHelp, LPRECT prcHokanWin)
BOOL | GetSelectedData (CNativeW *, BOOL, const wchar_t *, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN)
bool | IsImeON (void)
int | HokanSearchByFile (const wchar_t *, BOOL, CNativeW **, int, int)
BOOL | KeyWordHelpSearchDict (LID_SKH nID, POINT *po, RECT *rc)
BOOL | KeySearchCore (const CNativeW *pcmemCurText)
bool | IsISearchEnabled (int nCommand) const
TOGGLE_WRAP_ACTION | GetWrapMode (CLayoutInt *newKetas)
折り返しの動作を決定
void | _SetDragMode (BOOL b)
void | GetCurrentTextForSearch (CNativeW &)
void | GetCurrentTextForSearchDlg (CNativeW &)
BOOL | MyGetClipboardData (CNativeW &, BOOL *, BOOL *=NULL)
BOOL | MySetClipboardData (const ACHAR *, int, bool bColmnSelect, bool=FALSE)
BOOL | MySetClipboardData (const WCHAR *, int, bool bColmnSelect, bool=FALSE)
void | CopyCurLine (bool bAddCRLFWhenCopy, enumEOLType neweol, bool bEnableLineModePaste)
void | OnPaint (HDC, PAINTSTRUCT *, BOOL)
void | OnSize (int, int)
CLayoutInt OnVScroll (int, int)
CLayoutInt 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 | SetCurrentColor (HDC, int)
void | CopySelectedAllLines (const wchar_t *, BOOL)
void | ConvSelectedArea (int)
CLayoutInt ScrollAtV (CLayoutInt)
CLayoutInt ScrollAtH (CLayoutInt)
CLayoutInt | ScrollByV (CLayoutInt vl)
CLayoutInt | ScrollByH (CLayoutInt hl)
void | SyncScrollV (CLayoutInt)
void | SyncScrollH (CLayoutInt)
void | DrawBracketPair (bool)
void | SetBracketPairPos (bool)
void | SetIMECompFormPos (void)
void | SetIMECompFormFont (void)
void | SetParentCaption (void)
bool | IsCurrentPositionURL (const CLayoutPoint &ptCaretPos, CLogicRange *pUrlRange, wchar_t **)
int | IsCurrentPositionSelected (CLayoutPoint ptCaretPos)
int | IsCurrentPositionSelectedTEST (const CLayoutPoint &ptCaretPos, const CLayoutRange &sSelect) const
bool | IsSearchString (const wchar_t *, CLogicInt, CLogicInt, CLogicInt *, CLogicInt *)
void | ExecCmd (const TCHAR *, int)
外部コマンドの実行
void | AddToCmdArr (const TCHAR *)
BOOL | ChangeCurRegexp (void)
void | SendStatusMessage (const TCHAR *msg)
void | SendStatusMessage2 (const TCHAR *msg)
LRESULT | SetReconvertStruct (PRECONVERTSTRING pReconv, bool bUnicode)
LRESULT | SetSelectionFromReonvert (const PRECONVERTSTRING pReconv, bool bUnicode)
STDMETHODIMP | DragEnter (LPDATAOBJECT, DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragOver (DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragLeave (void)
STDMETHODIMP | Drop (LPDATAOBJECT, DWORD, POINTL, LPDWORD)
void | DeleteData2 (const CLayoutPoint &ptCaretPos, CLogicInt nDelLen, CNativeW *pcMem)
void | DeleteData (bool bRedraw)
void | InsertData_CEditView (CLayoutPoint ptInsertPos, const wchar_t *pData, int nDataLen, CLayoutPoint *pptNewPos, bool bRedraw)
void | SmartIndent_CPP (wchar_t)
void | RTrimPrevLine (void)
void | ReplaceData_CEditView (CLayoutRange sDelRange, CNativeW *pcmemCopyOfDeleted, const wchar_t *pInsData, CLogicInt nInsDataLen, bool bRedraw)
void | TranslateCommand_grep (EFunctionCode &, bool &, LPARAM &, LPARAM &, LPARAM &, LPARAM &)
bool | TagJumpSub (const TCHAR *pszJumpToFile, CMyPoint ptJumpTo, bool bClose=false, bool bRelFromIni=false)
void | TranslateCommand_isearch (EFunctionCode &, bool &, LPARAM &, LPARAM &, LPARAM &, LPARAM &)
bool | ProcessCommand_isearch (int, bool, LPARAM, LPARAM, LPARAM, LPARAM)
int | CreatePopUpMenu_R (void)
void | PreprocessCommand_hokan (int nCommand)
コマンド受信前補完処理
void | PostprocessCommand_hokan (void)
void | ShowHokanMgr (CNativeW &cmemData, BOOL bAutoDecided)
void | AddCurrentLineToHistory (void)
現在のカーソル行位置を履歴に登録する
void | AnalyzeDiffInfo (const char *, int)
BOOL | MakeDiffTmpFile (TCHAR *, HWND)
void | ViewDiffInfo (const TCHAR *, const TCHAR *, int)
BOOL | OPEN_ExtFromtoExt (BOOL, BOOL, const TCHAR *[], const TCHAR *[], int, int, const TCHAR *)
BOOL (WINAPI *AT_ImmSetReconvertString)(HIMC
CTextArea & GetTextArea ()
const CTextArea & | GetTextArea () const
CCaret & GetCaret ()
const CCaret & | GetCaret () const
CRuler & GetRuler ()
const CRuler & | GetRuler () const
CTextMetrics & GetTextMetrics ()
const CTextMetrics & | GetTextMetrics () const
CViewSelect & GetSelectionInfo ()
const CViewSelect & | GetSelectionInfo () const
CViewFont & GetFontset ()
const CViewFont & | GetFontset () const
const CViewParser & | GetParser () const
const CTextDrawer & | GetTextDrawer () const
CViewCommander & GetCommander ()

Public 変数

HMODULE | m_hAtokModule
int
PRECONVERTSTRING
DWORD
CEditWnd * m_pcEditWnd
ウィンドウ
CEditDoc * m_pcEditDoc
ドキュメント
CTextArea * m_pcTextArea
CCaret * m_pcCaret
CRuler * m_pcRuler
CTextMetrics m_cTextMetrics
CViewSelect m_cViewSelect
CViewFont * m_pcFontset
CViewParser m_cParser
CTextDrawer m_cTextDrawer
CViewCommander m_cCommander
CDropTarget * m_pcDropTarget
BOOL | m_bDragSource
BOOL | m_bDragMode
CBregexp m_CurRegexp
bool | m_bCurSrchKeyMark
wchar_t | m_szCurSrchKey [_MAX_PATH]
SSearchOption m_sCurSearchOption
bool | m_bExecutingKeyMacro
HWND | m_hWnd
CLogicPoint m_ptSrchStartPos_PHY
BOOL | m_bSearch
CLogicPoint m_ptBracketCaretPos_PHY
CLogicPoint m_ptBracketPairPos_PHY
BOOL | m_bDrawBracketPairFlag
TCHAR * | m_pszAppName
HINSTANCE | m_hInstance
HWND | m_hwndParent
DLLSHAREDATA * m_pShareData
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_hFontOld
BOOL | m_bCommandRunning
int m_nMyIndex
COLORREF | m_crBack
int m_nOldUnderLineY
DWORD m_dwTipTimer
CTipWnd m_cTipWnd
POINT | m_poTipCurPos
BOOL | m_bInMenuLoop
CDicMgr m_cDicMgr
BOOL | m_bHokan
CAutoMarkMgr * m_cHistory
CRegexKeyword * m_cRegexKeyword
UINT | m_uWM_MSIME_RECONVERTREQUEST

Protected メソッド

bool | DispLineNew (HDC hdc, const CLayout *pcLayout, DispPos *pDispPos, CLayoutInt nLineTo, bool bSelected)
void | DispTextSelected (HDC hdc, CLayoutInt nLineNum, const CMyPoint &ptXY, CLayoutInt nX_Layout)
int | GetColorIndex (HDC, const CLayout *, int)
bool | IsBracket (const wchar_t *, CLogicInt, CLogicInt)
括弧判定

Private メソッド

void | ISearchEnter (int mode, ESearchDirection 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 (CNativeT *msg) const
ISearchメッセージ構築

Private 変数

bool | m_bDrawSWITCH
UINT | m_uMSIMEReconvertMsg
UINT | m_uATOKReconvertMsg
int m_nLastReconvLine
int m_nLastReconvIndex
bool | m_bUnderLineON
CMigemo * m_pcmigemo
ESearchDirection m_nISearchDirection
int m_nISearchMode
bool | m_bISearchWrap
CLayoutRange | m_sISearchHistory [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 の 103 行で定義されています。

列挙型

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 の 229 行で定義されています。

enum CEditView::TOGGLE_WRAP_ACTION

列挙型の値:
TGWRAP_NONE
TGWRAP_FULL
TGWRAP_WINDOW
TGWRAP_PROP

CEditView.h の 240 行で定義されています。

コンストラクタとデストラクタ

CEditView::CEditView ( CEditWnd * pcEditWnd )

CEditView.cpp の 217 行で定義されています。

参照先 CDllHandler::Init(), と m_CurRegexp.

CEditView::~CEditView ( )

CEditView.cpp の 454 行で定義されています。

参照先 GetHwnd(), m_cHistory, m_cRegexKeyword, m_hAtokModule, m_hbmpCompatBMP, m_hbmpCompatBMPOld, m_hdcCompatDC, m_pcCaret, m_pcDropTarget, m_pcFontset, m_pcRuler, m_pcTextArea, と NULL.

関数

const CEditDoc* CEditView::GetDocument ( ) const [inline]

CEditView.h の 108 行で定義されています。

参照元 GetWrapMode(), OPEN_ExtFromtoExt(), と TagJumpSub().

CEditDoc* CEditView::GetDocument ( ) [inline]

CEditView.h の 112 行で定義されています。

HWND CEditView::GetHwnd ( ) const [inline]

CEditView.h の 116 行で定義されています。

参照元 CaretUnderLineOFF(), CaretUnderLineON(), CViewCommander::Command_ABOUT(), CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_CASCADE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_DOWN(), CViewCommander::Command_EXECCOMMAND_DIALOG(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_FILE_REOPEN(), CViewCommander::Command_FILENEW(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_HELP_CONTENTS(), CViewCommander::Command_HELP_SEARCH(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSFILE(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMP_DIALOG(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_MENU_ALLFUNC(), CViewCommander::Command_PASTE(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_PROPERTY_FILE(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagJumpByTagsFileKeyword(), CViewCommander::Command_TagsMake(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CViewCommander::Command_TYPE_LIST(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_UP(), CViewCommander::Command_UUDECODE(), CViewCommander::Command_WIN_OUTPUT(), ConvSelectedArea(), CEditWnd::Create(), Create(), CreateScrollBar(), DispatchEvent(), DoGrep(), DragEnter(), KeyWordHelpSearchDict(), OnChangeSetting(), CEditWnd::OnCommand(), OnKillFocus(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnLBUTTONUP(), OnMove(), OnSetFocus(), OnSize(), OnTimer(), CEditWnd::PopupWinList(), Redraw(), RedrawAll(), ScrollAtH(), ScrollAtV(), SetFont(), SetIMECompFormFont(), SetIMECompFormPos(), SplitBoxOnOff(), SyncScrollH(), と ~CEditView().

bool CEditView::IsBkBitmap ( ) const [inline]

背景にビットマップを使用するかどうか(事実上は常にFALSE。TRUEの場合背景作画しない)

CEditView.h の 122 行で定義されています。

参照元 CTextDrawer::DispEmptyLine(), DispLineNew(), と OnPaint().

bool CEditView::GetDrawSwitch ( ) const [inline]

CEditView.h の 125 行で定義されています。

参照元 AdjustScrollBars(), CaretUnderLineOFF(), CaretUnderLineON(), CViewCommander::Command_SEARCH_NEXT(), CCaret::Cursor_UPDOWN(), CRuler::DispRuler(), CCaret::DrawCaretPosInfo(), CViewSelect::DrawSelectArea(), CCaret::MoveCursor(), OnPaint(), ScrollAtH(), ScrollAtV(), と CEditDoc::SetParentCaption().

void CEditView::SetDrawSwitch ( bool b ) [inline]

CEditView.h の 130 行で定義されています。

参照元 CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_INDENT(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNDO(), Create(), DeleteData(), と DoGrep().

CEditView* CEditView::GetEditView ( ) [inline, virtual]

CEditView_Paintを実装しています。

CEditView.h の 134 行で定義されています。

const CEditView* CEditView::GetEditView ( ) const [inline]

CEditView.h の 138 行で定義されています。

BOOL CEditView::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | CEditDoc * | pcEditDoc,
 |  | int | nMyIndex,
 |  | BOOL | bShow
 | ) |  |

CEditView.cpp の 233 行で定義されています。

参照先 _SetDragMode(), BOOL(), COLORIDX_RULER, CSplitBoxWnd::Create(), CTipWnd::Create(), CreateScrollBar(), DWORD, EditViewTimerProc(), EditViewWndProc(), FALSE, CEditDoc::GetDocumentAttribute(), GetHwnd(), CShareData::getInstance(), GetRuler(), GetSelectionInfo(), CShareData::GetShareData(), GetTextArea(), GSTR_APPNAME_A, IDT_ROLLMOUSE, CDllHandler::Init(), int, LONG_PTR, m_bCommandRunning, m_bCurSrchKeyMark, ColorInfo::m_bDisp, m_bDoing_UndoRedo, m_bDragSource, m_bDrawBracketPairFlag, CViewSelect::m_bDrawSelectArea, m_bExecutingKeyMacro, m_bHokan, m_bInMenuLoop, m_bSearch, m_cHistory, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, m_crBack, m_cRegexKeyword, m_cTipWnd, m_CurRegexp, m_dwTipTimer, m_hAtokModule, m_hbmpCompatBMP, m_hbmpCompatBMPOld, m_hdcCompatDC, m_hFontOld, m_hInstance, m_hWnd, m_hwndHScrollBar, m_hwndParent, m_hwndSizeBox, m_hwndVScrollBar, m_nISearchMode, m_nMyIndex, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, m_nVScrollRate, m_pcCaret, m_pcDropTarget, m_pcEditDoc, m_pcFontset, m_pcmigemo, m_pcOpeBlk, m_pcRuler, m_pcsbwHSplitBox, m_pcsbwVSplitBox, m_pcTextArea, m_pShareData, m_pszAppName, m_ptBracketCaretPos_PHY, m_ptBracketPairPos_PHY, m_ptSrchStartPos_PHY, m_sCurSearchOption, CommonSetting::m_sSearch, CommonSetting::m_sWindow, m_szCurSrchKey, CommonSetting_Search::m_szRegexpLib, m_uATOKReconvertMsg, m_uMSIMEReconvertMsg, m_uWM_MSIME_RECONVERTREQUEST, MSGNAME_ATOK_RECONVERT, MYMESSAGEBOX_A, NULL, COsVersionInfo::OsDoesNOTSupportReconvert(), CRegexKeyword::RegexKeySetTypes(), CDropTarget::Register_DropTarget(), SSearchOption::Reset(), RWM_RECONVERT, CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), CTextArea::SetAreaTop(), SetDrawSwitch(), SetFont(), CMarkMgr::SetMax(), SetParentCaption(), CRuler::SetRedrawFlag(), CTextArea::SetTopYohaku(), と TRUE.

参照元 CEditWnd::Create().

BOOL CEditView::CreateScrollBar ( void )

スクロールバー作成

日付:
2006.12.19 ryoji 新規作成（CEditViewCreateから分離）

CEditView.cpp の 495 行で定義されています。

参照先 GetHwnd(), CommonSetting_Window::m_bScrollBarHorz, DLLSHAREDATA::m_Common, m_hInstance, m_hwndHScrollBar, m_hwndSizeBox, m_hwndVScrollBar, CommonSetting_Window::m_nFUNCKEYWND_Place, m_pShareData, CommonSetting::m_sWindow, NULL, と TRUE.

参照元 Create(), と CEditWnd::DispatchEvent().

void CEditView::DestroyScrollBar ( void )

スクロールバー破棄

日付:
2006.12.19 ryoji 新規作成

CEditView.cpp の 593 行で定義されています。

参照先 m_hwndHScrollBar, m_hwndSizeBox, m_hwndVScrollBar, と NULL.

参照元 CEditWnd::DispatchEvent().

bool CEditView::IsInsMode ( void ) const

挿入モード取得

日付:
2005.10.02 genta 管理方法変更のため関数化

CEditView.cpp の 6986 行で定義されています。

参照元 CViewCommander::Command_CHGMOD_INS(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_WCHAR(), DispatchEvent(), CCaret::DrawCaretPosInfo(), CMacro::HandleFunction(), と CCaret::ShowEditCaret().

void CEditView::SetInsMode ( bool mode )

CEditView.cpp の 6991 行で定義されています。

参照元 CViewCommander::Command_CHGMOD_INS().

LRESULT CEditView::DispatchEvent | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditView.cpp の 631 行で定義されています。

参照先 DWORD, F_IME_CHAR, F_INSTEXT_W, F_WCHAR, FALSE, CEditWnd::GetActivePane(), GetCommander(), GetHwnd(), ApiWrap::GetKeyState_Shift(), CViewCommander::HandleCommand(), CHokanMgr::Hide(), CTipWnd::Hide(), IDT_ROLLMOUSE, IMR_CONFIRMRECONVERTSTRING, IMR_RECONVERTSTRING, int, CEditWnd::IsActiveApp(), IsInsMode(), LONG_PTR, m_bActivateByMouse, m_bHokan, m_bInMenuLoop, CommonSetting_General::m_bNoCaretMoveByActivation, CViewCommander::m_bPrevCommand, CEditWnd::m_cHokanMgr, DLLSHAREDATA::m_Common, m_cTipWnd, m_dwTipTimer, m_hWnd, m_hwndHScrollBar, m_hwndParent, m_hwndSizeBox, m_hwndVScrollBar, m_nMyIndex, m_nVScrollRate, m_pcDropTarget, m_pcEditDoc, CEditDoc::m_pcEditWnd, m_pcEditWnd, m_pcsbwHSplitBox, m_pcsbwVSplitBox, m_pShareData, CommonSetting::m_sGeneral, m_uATOKReconvertMsg, m_uMSIMEReconvertMsg, MYWM_DOSPLIT, MYWM_IME_REQUEST, MYWM_SETACTIVEPANE, NULL, OnHScroll(), OnKillFocus(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnLBUTTONUP(), OnMBUTTONDOWN(), OnMOUSEMOVE(), OnMOUSEWHEEL(), OnPaint(), OnRBUTTONUP(), OnSetFocus(), OnSize(), OnVScroll(), OnXLBUTTONDOWN(), OnXRBUTTONDOWN(), PostMessageAny, CDropTarget::Revoke_DropTarget(), SendMessageAny, CEditWnd::SetActivePane(), SetParentCaption(), SetReconvertStruct(), SetSelectionFromReonvert(), SetWindowLongPtr, SyncScrollH(), SyncScrollV(), tchar_to_wchar(), to_wchar(), TRUE, UNICODE_BOOL, WM_MOUSEWHEEL, WM_XBUTTONDOWN, XBUTTON1, と XBUTTON2.

参照元 EditViewWndProc(), と CEditWnd::Views_DispatchEvent().

void CEditView::OnMove | ( | int | x,
 |  | int | y,
 |  | int | nWidth,
 |  | int | nHeight
 | ) |  |

CEditView.cpp の 994 行で定義されています。

参照先 GetHwnd(), と TRUE.

void CEditView::OnSetFocus ( void )

CEditView.cpp の 1107 行で定義されています。

参照先 CRuler::DispRuler(), DrawBracketPair(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetHwnd(), GetRuler(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), m_bDrawBracketPairFlag, CCaret::m_nCaretPosX_Prev, CCaret::MoveCursor(), SetIMECompFormFont(), CCaret::ShowEditCaret(), と TRUE.

参照元 CEditWnd::Create(), DispatchEvent(), DragEnter(), DragLeave(), CHokanMgr::Hide(), と CEditWnd::SetActivePane().

void CEditView::OnKillFocus ( void )

CEditView.cpp の 1139 行で定義されています。

参照先 CCaret::DestroyCaret(), CRuler::DispRuler(), DrawBracketPair(), FALSE, GetCaret(), GetHwnd(), GetRuler(), CHokanMgr::Hide(), CTipWnd::Hide(), m_bDrawBracketPairFlag, m_bHokan, CEditWnd::m_cHokanMgr, m_cTipWnd, m_dwTipTimer, m_pcEditDoc, と CEditDoc::m_pcEditWnd.

参照元 DispatchEvent(), DragLeave(), と CEditWnd::SetActivePane().

VOID CEditView::OnTimer | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | UINT | idEvent,
 |  | DWORD | dwTime
 | ) |  |

CEditView.cpp の 2082 行で定義されています。

参照先 GetHwnd(), GetSelectionInfo(), GetTextMetrics(), KeyWordHelpSearchDict(), LID_SKH_ONTIMER, m_bDragSource, CommonSetting_Edit::m_bUseOLE_DragDrop, DLLSHAREDATA::m_Common, m_cTipWnd, m_pShareData, CommonSetting::m_sEdit, NULL, OnMOUSEMOVE(), CTipWnd::Show(), と TRUE.

参照元 EditViewTimerProc().

void CEditView::CaretUnderLineON ( bool bDraw )

CEditView.cpp の 5480 行で定義されています。

参照先 COLORIDX_UNDERLINE, FALSE, CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), CCaret::GetCaretLayoutPos(), CEditDoc::GetDocumentAttribute(), GetDrawSwitch(), CTextMetrics::GetHankakuDy(), CTextMetrics::GetHankakuHeight(), GetHwnd(), GetSelectionInfo(), GetTextArea(), GetTextMetrics(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), ColorInfo::m_bDisp, m_bDoing_UndoRedo, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_nOldUnderLineY, m_pcEditDoc, と NULL.

参照元 CCaretUnderLine::CaretUnderLineON().

void CEditView::CaretUnderLineOFF ( bool bDraw )

CEditView.cpp の 5528 行で定義されています。

参照先 CRangeBase< PointType >::Clear(), COLORIDX_UNDERLINE, FALSE, CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), CEditDoc::GetDocumentAttribute(), GetDrawSwitch(), GetHwnd(), GetSelectionInfo(), GetTextArea(), CCaretUnderLine::Lock(), ColorInfo::m_bDisp, m_bDoing_UndoRedo, Types::m_ColorInfoArr, CCaret::m_cUnderLine, m_nOldUnderLineY, m_pcEditDoc, CViewSelect::m_sSelect, OnPaint(), と CCaretUnderLine::UnLock().

参照元 CCaretUnderLine::CaretUnderLineOFF().

void CEditView::AdjustScrollBars ( void )

CEditView.cpp の 1320 行で定義されています。

参照先 GetDrawSwitch(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetMaxLineKetas(), GetTextArea(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CEditDoc::m_cLayoutMgr, m_hwndHScrollBar, m_hwndVScrollBar, CTextArea::m_nViewColNum, CTextArea::m_nViewRowNum, m_nVScrollRate, m_pcEditDoc, NULL, ScrollAtH(), ScrollAtV(), と TRUE.

参照元 CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNDO(), DeleteData(), InsertData_CEditView(), CCaret::MoveCursor(), OnChangeSetting(), OnSize(), RedrawAll(), CEditWnd::RedrawInactivePane(), ScrollAtH(), と ScrollAtV().

void CEditView::MoveCursorSelecting | ( | CLayoutPoint | ptWk_CaretPos,
 |  | bool | bSelect,
 |  | int | nCaretMarginRate = _CARETMARGINRATE
 | ) |  |

選択を考慮した行桁指定によるカーソル移動

選択状態チェック→カーソル移動→選択領域更新という処理が あちこちのコマンドにあるのでまとめることにした． また，戻り値はほとんど使われていないのでvoidにした．

選択状態を考慮してカーソルを移動する． 非選択が指定された場合には既存選択範囲を解除して移動する． 選択が指定された場合には選択範囲の開始・変更を併せて行う． インタラクティブ操作を前提とするため，必要に応じたスクロールを行う． カーソル移動後は上下移動でもカラム位置を保つよう， GetCaret().m_nCaretPosX_Prevの更新も併せて行う．

引数:
nWk_CaretPosX | [in] 移動先桁位置(0〜)
nWk_CaretPosY | [in] 移動先行位置(0〜)
bSelect | [in] TRUE: 選択する/ FALSE: 選択解除
nCaretMarginRate | [in] 縦スクロール開始位置を決める値
日付:
2006.07.09 genta 新規作成

CEditView.cpp の 1402 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), GetCaret(), CCaret::GetCaretLayoutPos(), GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CCaret::m_nCaretPosX_Prev, CCaret::MoveCursor(), と TRUE.

参照元 CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_BRACKETPAIR(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMP_SRCHSTARTPOS(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), と CEditWnd::DispatchEvent().

void CEditView::OnChangeSetting ( void )

CEditView.cpp の 3537 行で定義されています。

参照先 AdjustScrollBars(), COLORIDX_RULER, GetCaret(), CEditDoc::GetDocumentAttribute(), GetFontset(), GetHwnd(), GetTextArea(), ColorInfo::m_bDisp, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, m_pcEditDoc, m_pShareData, CommonSetting::m_sWindow, CCaret::MoveCursor(), NULL, OnSize(), CTextArea::SetAreaTop(), SetFont(), CTextArea::SetTopYohaku(), TRUE, と CViewFont::UpdateFont().

参照元 CEditDoc::InitAllView(), と CEditDoc::OnChangeSetting().

void CEditView::SetFont ( void )

CEditView.cpp の 1291 行で定義されています。

参照先 CTextArea::DetectWidthOfLineNumberArea(), GetFontset(), GetHwnd(), GetTextArea(), GetTextMetrics(), NULL, SetIMECompFormFont(), TRUE, CTextMetrics::Update(), と CTextArea::UpdateAreaMetrics().

参照元 Create(), と OnChangeSetting().

void CEditView::RedrawAll ( void )

CEditView.cpp の 3578 行で定義されています。

参照先 AdjustScrollBars(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), GetHwnd(), GetSelectionInfo(), OnPaint(), CViewSelect::PrintSelectionInfoMsg(), SetParentCaption(), と CCaret::ShowEditCaret().

参照元 ChangeCurRegexp(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_REDRAW(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SORT(), CViewCommander::Command_WRAPWINDOWWIDTH(), ConvSelectedArea(), DoGrep(), CNormalProcess::Initialize(), CEditWnd::SetActivePane(), と CEditWnd::Views_RedrawAll().

void CEditView::Redraw ( void )

CEditView.cpp の 3606 行で定義されています。

参照先 FALSE, GetHwnd(), と OnPaint().

参照元 CViewCommander::Command_Diff_Reset(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSFILE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNINDENT(), CSMacroMgr::Exec(), ISearchBack(), ISearchEnter(), ISearchExec(), CEditWnd::RedrawInactivePane(), ViewDiffInfo(), と CEditWnd::Views_Redraw().

void CEditView::CopyViewStatus ( CEditView * pView )

CEditView.cpp の 3624 行で定義されています。

参照先 CCaret::CopyCaretStatus(), CViewSelect::CopySelectStatus(), CTextArea::CopyTextAreaStatus(), CTextMetrics::CopyTextMetricsStatus(), GetCaret(), GetSelectionInfo(), GetTextArea(), GetTextMetrics(), と NULL.

参照元 CSplitterWnd::DoSplit().

void CEditView::SplitBoxOnOff | ( | BOOL | bVert,
 |  | BOOL | bHorz,
 |  | BOOL | bSizeBox
 | ) |  |

CEditView.cpp の 3650 行で定義されています。

参照先 CSplitBoxWnd::Create(), FALSE, GetHwnd(), m_hInstance, m_hwndSizeBox, m_pcsbwHSplitBox, m_pcsbwVSplitBox, NULL, OnSize(), と TRUE.

参照元 CSplitterWnd::DoSplit(), と CSplitterWnd::OnSize().

DWORD CEditView::DoGrep | ( | const CNativeW * | pcmGrepKey,
 |  | const CNativeT * | pcmGrepFile,
 |  | const CNativeT * | pcmGrepFolder,
 |  | BOOL | bGrepSubFolder,
 |  | const SSearchOption & | sSearchOption,
 |  | ECodeType | nGrepCharSet,
 |  | BOOL | bGrepOutputLine,
 |  | int | nGrepOutputStyle
 | ) |  |

CEditView.cpp の 3732 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), ActivateFrameWindow(), CNativeW::AllocStringBuffer(), CNativeW::AppendNativeData(), COpeBuf::AppendOpeBlk(), CNativeW::AppendString(), CNativeW::AppendStringT(), auto_sprintf(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CDialog::CloseDialog(), CODE_AUTODETECT, CViewCommander::Command_ADDTAIL(), CBregexp::Compile(), CDocLineMgr::CreateCharCharsArr(), ApiWrap::DlgItem_SetText(), DoGrepTree(), CDlgCancel::DoModeless(), FALSE, FN_GREP_ICON, GetAppIcon(), GetCaret(), CNativeA::GetCharPrev(), GetCommander(), CEditDoc::GetDocumentAttribute(), GetHwnd(), CLayoutMgr::GetLineCount(), COpeBlk::GetNum(), CNativeA::GetStringPtr(), CNativeW::GetStringPtr(), CBregexp::GetVersionT(), gm_pszCodeNameArr_Normal, ICON_DEFAULT_GREP, IDC_CHECK_REALTIMEVIEW, IDC_STATIC_CURFILE, IDC_STATIC_HITCOUNT, IDD_GREPRUNNING, InitRegexp(), IsValidCodeType(), m_bCurSrchKeyMark, m_bDoing_UndoRedo, CEditDoc::m_bGrepMode, CommonSetting_Search::m_bGrepRealTimeView, CEditDoc::m_bGrepRunning, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditDoc::m_cOpeBuf, m_CurRegexp, m_hInstance, m_hWnd, m_hwndParent, Types::m_nStringType, m_pcEditDoc, CEditDoc::m_pcEditWnd, m_pcOpeBlk, m_pShareData, m_sCurSearchOption, CommonSetting::m_sSearch, m_szCurSrchKey, CEditDoc::m_szGrepKey, CCaret::MoveCursor(), NULL, CRunningTimer::Read(), RedrawAll(), CNativeW::Replace(), SetDrawSwitch(), CEditDoc::SetModified(), CNativeW::SetString(), CNativeW::SetStringT(), CEditWnd::SetWindowIcon(), to_wchar(), と TRUE.

参照元 CViewCommander::Command_GREP(), と CNormalProcess::Initialize().

int CEditView::DoGrepTree | ( | CDlgCancel * | pcDlgCancel,
 |  | HWND | hwndCancel,
 |  | const wchar_t * | pszKey,
 |  | int * | pnKey_CharCharsArr,
 |  | const TCHAR * | pszFile,
 |  | const TCHAR * | pszPath,
 |  | BOOL | bGrepSubFolder,
 |  | const SSearchOption & | sSearchOption,
 |  | ECodeType | nGrepCharSet,
 |  | BOOL | bGrepOutputLine,
 |  | int | nGrepOutputStyle,
 |  | CBregexp * | pRegexp,
 |  | int | nNest,
 |  | int * | pnHitCount
 | ) |  |

Grep実行

日付:
2001.06.27 genta 正規表現ライブラリの差し替え

2003.06.23 Moca サブフォルダ→ファイルだったのをファイル→サブフォルダの順に変更

2003.06.23 Moca ファイル名から""を取り除くように

2003.03.27 みく 除外ファイル指定の導入と重複検索防止の追加． 大部分が変更されたため，個別の変更点記入は無し．

引数:
pcDlgCancel | [in] Cancelダイアログへのポインタ
hwndCancel | [in] Cancelダイアログのウィンドウハンドル
pszKey | [in] 検索パターン
pnKey_CharCharsArr | [in] 文字種配列(2byte/1byte)．単純文字列検索で使用．
pszFile | [in] 検索対象ファイルパターン(!で除外指定)
pszPath | [in] 検索対象パス
bGrepSubFolder | [in] TRUE: サブフォルダを再帰的に探索する / FALSE: しない
sSearchOption | [in] 検索オプション
nGrepCharSet | [in] 文字コードセット (0:自動認識)〜
bGrepOutputLine | [in] TRUE: ヒット行を出力 / FALSE: ヒット部分を出力
nGrepOutputStyle | [in] 出力形式 1: Normal, 2: WZ風(ファイル単位)
pRegexp | [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある
nNest | [in] ネストレベル
pnHitCount | [i/o] ヒット数の合計

CEditView.cpp の 4109 行で定義されています。

参照元 DoGrep().

int CEditView::DoGrepFile | ( | CDlgCancel * | pcDlgCancel,
 |  | HWND | hwndCancel,
 |  | const wchar_t * | pszKey,
 |  | int * | pnKey_CharCharsArr,
 |  | const TCHAR * | pszFile,
 |  | const SSearchOption & | sSearchOption,
 |  | ECodeType | nGrepCharSet,
 |  | BOOL | bGrepOutputLine,
 |  | int | nGrepOutputStyle,
 |  | CBregexp * | pRegexp,
 |  | int * | pnHitCount,
 |  | const TCHAR * | pszFullPath,
 |  | CNativeW & | 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 の 4626 行で定義されています。

void CEditView::SetGrepResult | ( | wchar_t * | pWork,
 |  | int * | pnWorkLen,
 |  | const TCHAR * | pszFullPath,
 |  | const TCHAR * | pszCodeName,
 |  | int | nLine,
 |  | int | nColm,
 |  | const wchar_t * | pCompareData,
 |  | int | nLineLen,
 |  | int | nEolCodeLen,
 |  | const wchar_t * | 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 の 4532 行で定義されています。

bool CEditView::SearchBracket | ( | const CLayoutPoint & | ptLayout,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | 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 の 398 行で定義されています。

参照先 KAKKO_T::eStr, CNativeW::GetCharPrev(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_pcEditDoc, NULL, SearchBracketBackward(), SearchBracketForward(), と KAKKO_T::sStr.

参照元 CViewCommander::Command_BRACKETPAIR().

bool CEditView::SearchBracketForward | ( | CLogicPoint | ptPos,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | const wchar_t * | upChar,
 |  | const wchar_t * | 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 の 488 行で定義されています。

参照先 CTextArea::GetBottomLine(), CNativeW::GetCharNext(), CDocLineMgr::GetLineInfo(), CNativeW::GetStringPtr(), GetTextArea(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, m_pcEditDoc, CDocLine::m_pNext, と NULL.

参照元 SearchBracket().

bool CEditView::SearchBracketBackward | ( | CLogicPoint | ptPos,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | const wchar_t * | dnChar,
 |  | const wchar_t * | 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 の 583 行で定義されています。

参照先 CNativeW::GetCharPrev(), CDocLineMgr::GetLineInfo(), CNativeW::GetStringPtr(), GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, m_pcEditDoc, CDocLine::m_pPrev, と NULL.

参照元 SearchBracket().

bool CEditView::SearchBracketForward2 | ( | CLogicPoint | ptPos,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | const wchar_t * | upChar,
 |  | const wchar_t * | 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 の 679 行で定義されています。

参照先 CTextArea::GetBottomLine(), CNativeW::GetCharNext(), CDocLineMgr::GetLineInfo(), CNativeW::GetStringPtr(), GetTextArea(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, m_pcEditDoc, CDocLine::m_pNext, と NULL.

bool CEditView::SearchBracketBackward2 | ( | CLogicPoint | ptPos,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | const wchar_t * | dnChar,
 |  | const wchar_t * | 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 の 775 行で定義されています。

参照先 CNativeW::GetCharPrev(), CDocLineMgr::GetLineInfo(), CNativeW::GetStringPtr(), GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, m_pcEditDoc, CDocLine::m_pPrev, と NULL.

bool CEditView::ShowKeywordHelp | ( | POINT | po,
 |  | LPCWSTR | pszHelp,
 |  | LPRECT | prcHokanWin
 | ) |  |

CEditView_New2.cpp の 901 行で定義されています。

参照先 FALSE, CEditDoc::GetDocumentAttribute(), CWnd::GetHwnd(), GetMonitorWorkRect(), CTipWnd::GetWindowSize(), CNativeW::IsEqual(), KeySearchCore(), m_bInMenuLoop, Types::m_bUseKeyWordHelp, CTipWnd::m_cKey, m_cTipWnd, m_dwTipTimer, CTipWnd::m_KeyWasHit, m_pcEditDoc, NULL, CNativeW::SetString(), と CTipWnd::Show().

BOOL CEditView::GetSelectedData | ( | CNativeW * | cmemBuf,
 |  | BOOL | bLineOnly,
 |  | const wchar_t * | pszQuote,
 |  | BOOL | bWithLineNumber,
 |  | BOOL | bAddCRLFWhenCopy,
 |  | enumEOLType | neweol = EOL_UNKNOWN
 | ) |  |

CEditView.cpp の 2940 行で定義されています。

参照先 CNativeW::AllocStringBuffer(), CNativeW::AppendString(), auto_sprintf(), CStrictRect< INT_TYPE, POINT_TYPE >::bottom, WCODE::CRLF, CTextArea::DetectWidthOfLineNumberArea_calculate(), EOL_NONE, EOL_UNKNOWN, FALSE, CRangeBase< PointType >::GetFrom(), CEOL::GetLen(), CLayoutMgr::GetLineStr(), GetSelectionInfo(), GetTextArea(), CRangeBase< PointType >::GetTo(), CEOL::GetUnicodeValue(), CStrictRect< INT_TYPE, POINT_TYPE >::left, CViewCalc::LineColmnToIndex(), CEditDoc::m_cLayoutMgr, m_pcEditDoc, CLayout::m_pNext, CViewSelect::m_sSelect, NULL, CStrictRect< INT_TYPE, POINT_TYPE >::right, CNativeW::SetString(), CStrictRect< INT_TYPE, POINT_TYPE >::top, TRUE, と TwoPointToRect().

参照元 CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_COPY(), CViewCommander::Command_CUT(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_UUDECODE(), ConvSelectedArea(), CopySelectedAllLines(), GetCurrentTextForSearch(), CMacro::HandleFunction(), KeyWordHelpSearchDict(), と OnLBUTTONDOWN().

bool CEditView::IsImeON ( void )

IME ONか

日付:
2006.12.04 ryoji 新規作成（関数化）

CEditView.cpp の 1077 行で定義されています。

参照先 DWORD, FALSE, と m_hwndParent.

参照元 CCaret::ShowEditCaret().

int CEditView::HokanSearchByFile | ( | const wchar_t * | pszKey,
 |  | BOOL | bHokanLoHiCase,
 |  | CNativeW ** | ppcmemKouho,
 |  | int | nKouhoNum,
 |  | int | nMaxKouho
 | ) |  |

編集中データから入力補完キーワードの検索 CHokanMgrから呼ばれる

戻り値:
候補数
作者:
Moca
日付:
2003.06.25

2005/01/10 genta CEditView_Commandから移動

2007/10/17 kobake 読みやすいようにネストを浅くしました。

引数:
pszKey | [in]
bHokanLoHiCase | [in] 英大文字小文字を同一視する
ppcmemKouho | [in/out] 候補
nKouhoNum | [in] ppcmemKouhoのすでに入っている数
nMaxKouho | [in] Max候補数(0==無制限)

CEditView_CmdHokan.cpp の 162 行で定義されています。

参照先 auto_memcmp(), auto_memicmp(), GetCaret(), CCaret::GetCaretLogicPos(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStrWithoutEOL(), IS_KEYWORD_CHAR(), CEditDoc::m_cDocLineMgr, m_pcEditDoc, NULL, と CNativeW::SetString().

BOOL CEditView::KeyWordHelpSearchDict | ( | LID_SKH | nID,
 |  | POINT * | po,
 |  | RECT * | rc
 | ) |  |

キーワード辞書検索の前提条件チェックと、検索

日付:
2006.04.10 fon OnTimer, CreatePopUpMenu_Rから分離

CEditView.cpp の 2116 行で定義されています。

参照先 WCODE::CR, CCaret::ExistCaretFocus(), FALSE, GetCaret(), CEditDoc::GetDocumentAttribute(), GetHwnd(), GetParser(), GetSelectedData(), CNativeW::GetStringPtr(), CNativeW::IsEqual(), KeySearchCore(), WCODE::LF, LID_SKH_ONTIMER, LID_SKH_POPUPMENU_R, CommonSetting_Edit::m_bAddCRLFWhenCopy, m_bInMenuLoop, CommonSetting_Search::m_bUseCaretKeyWord, Types::m_bUseKeyWordHelp, CTipWnd::m_cKey, DLLSHAREDATA::m_Common, m_cTipWnd, m_dwTipTimer, CTipWnd::m_KeyWasHit, m_pcEditDoc, m_poTipCurPos, m_pShareData, CommonSetting::m_sEdit, CommonSetting::m_sSearch, MYMESSAGEBOX, NULL, CNativeW::SetString(), と TRUE.

参照元 CreatePopUpMenu_R(), と OnTimer().

BOOL CEditView::KeySearchCore ( const CNativeW * pcmemCurText )

キーワード辞書検索処理メイン

日付:
2006.04.10 fon KeyWordHelpSearchDictから分離

CEditView.cpp の 2194 行で定義されています。

参照先 CNativeA::AppendString(), CNativeA::AppendStringW(), FALSE, CEditDoc::GetDocumentAttribute(), CEditDoc::GetDocumentType(), CNativeA::GetStringLength(), CNativeW::GetStringPtr(), CNativeW::GetStringT(), Types::m_bUseKeyHelpAllSearch, Types::m_bUseKeyHelpKeyDisp, Types::m_bUseKeyHelpPrefix, m_cDicMgr, CTipWnd::m_cInfo, m_cTipWnd, Types::m_KeyHelpArr, CTipWnd::m_KeyWasHit, Types::m_nKeyHelpNum, CTipWnd::m_nSearchDict, CTipWnd::m_nSearchLine, KeyHelpInfo::m_nUse, m_pcEditDoc, m_pShareData, KeyHelpInfo::m_szPath, DLLSHAREDATA::m_Types, CNativeA::SetString(), STRNCMP_MAX, と TRUE.

参照元 KeyWordHelpSearchDict(), と ShowKeywordHelp().

bool CEditView::IsISearchEnabled ( int nCommand ) const

ISearch状態をツールバーに反映させる．

参照:
CEditWnd::IsFuncChecked()
引数:
nCommand [in] 調べたいコマンドのID
戻り値:
true:チェック有り / false: チェック無し
日付:
2005.01.10 genta 新規作成

CEditView_Cmdisrch.cpp の 584 行で定義されています。

参照先 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.

参照元 IsFuncChecked().

CEditView::TOGGLE_WRAP_ACTION CEditView::GetWrapMode ( CLayoutInt * _newKetas )

折り返しの動作を決定

トグルコマンド「現在のウィンドウ幅で折り返し」を行った場合の動作を決定する

戻り値:
TGWRAP_NONE | No action
TGWRAP_FULL | 最大値
TGWRAP_WINDOW | ウィンドウ幅
TGWRAP_PROP | 設定値
日付:
2006.01.08 genta メニュー表示で同一の判定を使うため，Command_WRAPWINDOWWIDTH()より分離．

2006.01.08 genta 判定条件を見直し

CEditView_Command.cpp の 276 行で定義されています。

参照先 GetDocument(), CEditDoc::GetDocumentAttribute(), GetTextArea(), Types::m_nMaxLineKetas, CTextArea::m_nViewColNum, MAXLINEKETAS, TGWRAP_FULL, TGWRAP_NONE, TGWRAP_PROP, と TGWRAP_WINDOW.

参照元 CViewCommander::Command_WRAPWINDOWWIDTH(), と CEditWnd::InitMenu().

void CEditView::_SetDragMode ( BOOL b ) [inline]

CEditView.h の 248 行で定義されています。

参照元 Create(), DragEnter(), と DragLeave().

void CEditView::GetCurrentTextForSearch ( CNativeW & cmemCurText )

CEditView.cpp の 5388 行で定義されています。

参照先 _MAX_PATH, WCODE::CR, CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CLayoutMgr::GetLineStr(), GetSelectedData(), GetSelectionInfo(), CNativeW::GetStringPtr(), int, WCODE::LF, CViewCalc::LineColmnToIndex(), CommonSetting_Edit::m_bAddCRLFWhenCopy, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, m_pcEditDoc, m_pShareData, CommonSetting::m_sEdit, CViewSelect::m_sSelect, CViewSelect::m_sSelectBgn, NULL, CNativeW::SetString(), と CLayoutMgr::WhereCurrentWord().

参照元 CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_SEARCH_CLEARMARK(), と CViewCommander::Command_TagJumpByTagsFile().

void CEditView::GetCurrentTextForSearchDlg ( CNativeW & cmemCurText )

現在カーソル位置単語または選択範囲より検索等のキーを取得（ダイアログ用）

日付:
2006.08.23 ryoji 新規作成

CEditView.cpp の 5461 行で定義されています。

参照元 CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_REPLACE_DIALOG(), と CViewCommander::Command_SEARCH_DIALOG().

BOOL CEditView::MyGetClipboardData | ( | CNativeW & | cmemBuf,
 |  | BOOL * | pbColmnSelect,
 |  | BOOL * | pbLineSelect = NULL
 | ) |  |

クリップボードからデータを取得

日付:
2005/05/29 novice UNICODE TEXT 対応処理を追加

2007.10.04 ryoji MSDEVLineSelect対応処理を追加

CEditView.cpp の 5057 行で定義されています。

参照元 CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), と CViewCommander::Command_REPLACE_ALL().

BOOL CEditView::MySetClipboardData | ( | const ACHAR * | pszText,
 |  | int | nTextLen,
 |  | bool | bColmnSelect,
 |  | bool | bLineSelect = FALSE
 | ) |  |

CEditView.cpp の 5078 行で定義されています。

参照先 mbstowcs_vector().

参照元 CViewCommander::Command_COPY(), CViewCommander::Command_COPYFILENAME(), CViewCommander::Command_COPYPATH(), CViewCommander::Command_COPYTAG(), CViewCommander::Command_CUT(), CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CopyCurLine(), と CopySelectedAllLines().

BOOL CEditView::MySetClipboardData | ( | const WCHAR * | pszText,
 |  | int | nTextLen,
 |  | bool | bColmnSelect,
 |  | bool | bLineSelect = FALSE
 | ) |  |

CEditView.cpp の 5085 行で定義されています。

void CEditView::CopyCurLine | ( | bool | bAddCRLFWhenCopy,
 |  | enumEOLType | neweol,
 |  | bool | bEnableLineModePaste
 | ) |  |

カーソル行をクリップボードにコピーする

日付:
2007.10.08 ryoji 新規（Command_COPY()から処理抜き出し）
引数:
bAddCRLFWhenCopy | [in] 折り返し位置に改行コードを挿入するか？
neweol | [in] コピーするときのEOL。
bEnableLineModePaste | [in] ラインモード貼り付けを可能にする

CEditView_Command.cpp の 401 行で定義されています。

参照先 CNativeW::AppendString(), BOOL(), WCODE::CRLF, EOL_UNKNOWN, GetCaret(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CLayout::GetPtr(), GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeBEValue(), CLayout::m_cEol, CEditDoc::m_cLayoutMgr, m_pcEditDoc, MySetClipboardData(), NULL, CLayoutMgr::SearchLineByLayoutY(), と CNativeW::SetString().

参照元 CViewCommander::Command_COPY(), と CViewCommander::Command_CUT_LINE().

void CEditView::OnPaint | ( | HDC | hdc,
 |  | PAINTSTRUCT * | pPs,
 |  | BOOL | bUseMemoryDC
 | ) |  |

折り返し記号の色のペンを設定

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

参照先 BOOL(), CCaretUnderLine::CaretUnderLineON(), COLORIDX_GYOU, COLORIDX_TEXT, COLORIDX_WRAP, DispLineNew(), CRuler::DispRuler(), CTextDrawer::DispVerticalLines(), DrawBracketPair(), FALSE, CTypeSupport::FillBack(), CTextArea::GetAreaBottom(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), CEditDoc::GetDocumentAttribute(), DispPos::GetDrawPos(), GetDrawSwitch(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), DispPos::GetLayoutLineRef(), CLayout::GetLogicOffset(), CLayoutMgr::GetMaxLineKetas(), GetRuler(), CTextArea::GetRulerHeight(), GetSelectionInfo(), GetTextArea(), GetTextDrawer(), GetTextMetrics(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CCaret::HideCaret_(), DispPos::InitDrawPos(), IsBkBitmap(), CTypeSupport::IsDisp(), CViewSelect::IsTextSelected(), CRegexKeyword::m_bUseRegexKeyword, Types::m_bUseRegexKeyword, CEditDoc::m_cLayoutMgr, ColorInfo::m_colBACK, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, m_cRegexKeyword, CCaret::m_cUnderLine, m_hdcCompatDC, m_hFontOld, m_hWnd, CEditWnd::m_nActivePaneIndex, CommonSetting_Window::m_nLineNumRightSpace, m_nMyIndex, m_pcEditDoc, m_pcEditWnd, m_pShareData, CommonSetting::m_sWindow, MY_RUNNINGTIMER, NULL, CRegexKeyword::RegexKeySetTypes(), DispPos::ResetDrawCol(), CTypeSupport::RewindColors(), CTypeSupport::RewindFont(), CTypeSupport::RewindPen(), CLayoutMgr::SearchLineByLayoutY(), CTypeSupport::SetColors(), CTypeSupport::SetFont(), DispPos::SetLayoutLineRef(), CRuler::SetRedrawFlag(), CTypeSupport::SetSolidPen(), CCaret::ShowCaret_(), と TRUE.

参照元 CEditView_Paint::Call_OnPaint(), CaretUnderLineOFF(), DispatchEvent(), InsertData_CEditView(), Redraw(), RedrawAll(), と ReplaceData_CEditView().

void CEditView::OnSize | ( | int | cx,
 |  | int | cy
 | ) |  |

CEditView.cpp の 1004 行で定義されています。

参照先 AdjustScrollBars(), CWnd::GetHwnd(), GetHwnd(), GetTextArea(), m_hbmpCompatBMP, m_hbmpCompatBMPOld, m_hdcCompatDC, m_hwndHScrollBar, m_hwndSizeBox, m_hwndVScrollBar, m_pcsbwHSplitBox, m_pcsbwVSplitBox, NULL, SetParentCaption(), CTextArea::TextArea_OnSize(), と TRUE.

参照元 DispatchEvent(), OnChangeSetting(), と SplitBoxOnOff().

CLayoutInt CEditView::OnVScroll | ( | int | nScrollCode,
 |  | int | nPos
 | ) |  |

垂直スクロールバーメッセージ処理

引数:
nScrollCode | [in] スクロール種別 (Windowsから渡されるもの)
nPos | [in] スクロール位置(THUMBTRACK用)
戻り値:
実際にスクロールした行数
日付:
2004.09.11 genta スクロール行数を返すように． 未使用のhwndScrollBar引数削除．

CEditView.cpp の 1181 行で定義されています。

参照先 CLayoutMgr::GetLineCount(), GetTextArea(), CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CommonSetting_General::m_nRepeatedScrollLineNum, CTextArea::m_nViewRowNum, m_pcEditDoc, m_pShareData, CommonSetting::m_sGeneral, と ScrollAtV().

参照元 DispatchEvent().

CLayoutInt CEditView::OnHScroll | ( | int | nScrollCode,
 |  | int | nPos
 | ) |  |

水平スクロールバーメッセージ処理

引数:
nScrollCode | [in] スクロール種別 (Windowsから渡されるもの)
nPos | [in] スクロール位置(THUMBTRACK用)
戻り値:
実際にスクロールした桁数
日付:
2004.09.11 genta スクロール桁数を返すように． 未使用のhwndScrollBar引数削除．

CEditView.cpp の 1231 行で定義されています。

参照先 CLayoutMgr::GetMaxLineKetas(), GetRuler(), GetTextArea(), CEditDoc::m_cLayoutMgr, CTextArea::m_nViewColNum, m_pcEditDoc, ScrollAtH(), と CRuler::SetRedrawFlag().

参照元 DispatchEvent().

void CEditView::OnLBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | _xPos,
 |  | int | _yPos
 | ) |  |

CEditView.cpp の 1507 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CCaretUnderLine::CaretUnderLineOFF(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CTextArea::ClientToLayout(), COLORIDX_URL, CViewCommander::Command_DOWN(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_RIGHT(), CViewSelect::DisableSelectArea(), CViewSelect::DrawSelectArea(), DWORD, CCaret::ExistCaretFocus(), FALSE, GetCaret(), GetCommander(), CEditDoc::GetDocumentAttribute(), GetHwnd(), ApiWrap::GetKeyState_Alt(), ApiWrap::GetKeyState_Control(), ApiWrap::GetKeyState_Shift(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), GetSelectedData(), GetSelectionInfo(), CNativeW::GetStringPtr(), GetTextArea(), GetTextMetrics(), GSTR_APPNAME_A, CTipWnd::Hide(), CHokanMgr::Hide(), CCaret::HideCaret_(), IsCurrentPositionSelected(), IsCurrentPositionURL(), ISearchExit(), CViewCalc::LineColmnToIndex(), CCaretUnderLine::Lock(), CLayoutMgr::LogicToLayout(), CommonSetting_Edit::m_bAddCRLFWhenCopy, CViewSelect::m_bBeginLineSelect, CViewSelect::m_bBeginWordSelect, ColorInfo::m_bDisp, m_bDragSource, m_bHokan, CommonSetting_Edit::m_bSelectClickedURL, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, CEditWnd::m_cHokanMgr, CEditDoc::m_cLayoutMgr, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, m_cTipWnd, CCaret::m_cUnderLine, m_dwTipTimer, m_nISearchMode, m_pcEditDoc, CEditDoc::m_pcEditWnd, m_pShareData, CViewSelect::m_ptMouseRollPosOld, CommonSetting::m_sEdit, CViewSelect::m_sSelect, CViewSelect::m_sSelectBgn, CCaret::MoveCursorToClientPoint(), MYMESSAGEBOX_A, NULL, CViewSelect::SelectBeginBox(), CViewSelect::SelectBeginNazo(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), TRUE, と CLayoutMgr::WhereCurrentWord().

参照元 DispatchEvent(), と OnRBUTTONDOWN().

void CEditView::OnMOUSEMOVE | ( | WPARAM | fwKeys,
 |  | int | _xPos,
 |  | int | _yPos
 | ) |  |

CEditView.cpp の 2287 行で定義されています。

参照先 CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CTextArea::ClientToLayout(), COLORIDX_URL, GetCaret(), CEditDoc::GetDocumentAttribute(), CRangeBase< PointType >::GetFrom(), CLayoutMgr::GetLineStr(), GetSelectionInfo(), GetTextArea(), GetTextMetrics(), CRangeBase< PointType >::GetTo(), CTipWnd::Hide(), IDC_CURSOR_HAND, IDC_CURSOR_ISEARCH_B, IDC_CURSOR_ISEARCH_F, IDC_CURSOR_RVARROW, CViewSelect::IsBoxSelecting(), IsCurrentPositionSelected(), IsCurrentPositionSelectedTEST(), IsCurrentPositionURL(), CViewCalc::LineColmnToIndex(), ColorInfo::m_bDisp, m_bDragMode, m_bHokan, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, CEditDoc::m_cLayoutMgr, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, m_cTipWnd, m_dwTipTimer, m_hInstance, m_nISearchDirection, m_nISearchMode, m_pcEditDoc, m_poTipCurPos, m_pShareData, CViewSelect::m_ptMouseRollPosOld, CommonSetting::m_sEdit, CViewSelect::m_sSelect, CViewSelect::m_sSelectBgn, CCaret::MoveCursorToClientPoint(), NULL, と CLayoutMgr::WhereCurrentWord().

参照元 DispatchEvent(), ISearchExit(), と OnTimer().

void CEditView::OnLBUTTONUP | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

CEditView.cpp の 2550 行で定義されています。

参照先 CViewSelect::DisableSelectArea(), DrawBracketPair(), GetCaret(), GetHwnd(), GetSelectionInfo(), CCaret::m_cUnderLine, CViewSelect::SelectEnd(), SetBracketPairPos(), CCaret::ShowCaret_(), TRUE, と CCaretUnderLine::UnLock().

参照元 DispatchEvent(), と OnRBUTTONUP().

void CEditView::OnLBUTTONDBLCLK | ( | WPARAM | fwKeys,
 |  | int | _xPos,
 |  | int | _yPos
 | ) |  |

CEditView.cpp の 2582 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CMD_FROM_MOUSE, COLORIDX_URL, CViewCommander::Command_TAGJUMP(), F_SELECTWORD, GetCaret(), GetCommander(), getCtrlKeyState(), CEditDoc::GetDocumentAttribute(), GetHwnd(), ApiWrap::GetKeyState_Alt(), GetSelectionInfo(), CCaret::HideCaret_(), IsCurrentPositionURL(), IsMailAddress(), CEditDoc::m_bDebugMode, ColorInfo::m_bDisp, CommonSetting_View::m_bFontIs_FIXED_PITCH, CEditDoc::m_bGrepMode, CommonSetting_Search::m_bGTJW_LDBLCLK, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, m_hwndParent, KEYDATA::m_nFuncCodeArr, m_pcEditDoc, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, CViewSelect::m_ptMouseRollPosOld, CommonSetting::m_sSearch, CViewSelect::m_sSelectBgn, CommonSetting::m_sView, NULL, CViewSelect::SelectBeginWord(), SendMessageCmd, CViewSelect::SetBoxSelect(), CRangeBase< PointType >::SetTo(), と to_tchar.

参照元 DispatchEvent().

void CEditView::OnRBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

CEditView.cpp の 1951 行で定義されています。

参照先 CTextArea::ClientToLayout(), GetTextArea(), IsCurrentPositionSelected(), と OnLBUTTONDOWN().

void CEditView::OnRBUTTONUP | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

CEditView.cpp の 1973 行で定義されています。

参照先 CMD_FROM_MOUSE, getCtrlKeyState(), GetSelectionInfo(), m_hwndParent, KEYDATA::m_nFuncCodeArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, NULL, OnLBUTTONUP(), と PostMessageCmd.

参照元 DispatchEvent().

void CEditView::OnMBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

マウス中ボタンを押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.11 novice 新規作成

CEditView.cpp の 2008 行で定義されています。

参照先 CMD_FROM_MOUSE, getCtrlKeyState(), m_hwndParent, KEYDATA::m_nFuncCodeArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, NULL, と PostMessageCmd.

参照元 DispatchEvent().

void CEditView::OnXLBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

マウス左サイドボタンを押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.10 novice 新規作成

2004.10.11 novice マウス中ボタン対応のため変更

CEditView.cpp の 2035 行で定義されています。

参照先 CMD_FROM_MOUSE, getCtrlKeyState(), m_hwndParent, KEYDATA::m_nFuncCodeArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, NULL, と PostMessageCmd.

参照元 DispatchEvent().

void CEditView::OnXRBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) |  |

マウス右サイドボタン押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.10 novice 新規作成

2004.10.11 novice マウス中ボタン対応のため変更

CEditView.cpp の 2063 行で定義されています。

参照先 CMD_FROM_MOUSE, getCtrlKeyState(), m_hwndParent, KEYDATA::m_nFuncCodeArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, NULL, と PostMessageCmd.

参照元 DispatchEvent().

LRESULT CEditView::OnMOUSEWHEEL | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditView.cpp の 2485 行で定義されています。

参照先 _countof, GetTextArea(), CTextArea::m_nViewRowNum, ReadRegistry(), ScrollAtV(), と SyncScrollV().

参照元 DispatchEvent().

void CEditView::SetCurrentColor | ( | HDC | hdc,
 |  | int | nCOMMENTMODE
 | ) |  |

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

参照先 CViewFont::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(), GetFontset(), ColorInfo::m_bDisp, ColorInfo::m_bFatFont, ColorInfo::m_bUnderLine, ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_hFontOld, m_pcEditDoc, と NULL.

参照元 DispLineNew().

bool CEditView::DispLineNew | ( | HDC | hdc,
 |  | const CLayout * | pcLayout,
 |  | DispPos * | pDispPos,
 |  | CLayoutInt | nLineTo,
 |  | bool | bSelected |
 | ) |  |  | [protected]

行のテキスト／選択状態の描画 1回で1論理行分を作画する。

戻り値:
EOFを作画したらtrue
引数:
hdc | [in] 作画対象
pcLayout | [in] 表示を開始するレイアウト
pDispPos | [in/out] 描画する箇所、描画元ソース
nLineTo | [in] 作画終了するレイアウト行番号
bSelected | [in] 選択中か

CEditView_New.cpp の 327 行で定義されています。

参照先 BOOL(), SSearchOption::bRegularExp, COLORIDX_BLOCK1, COLORIDX_BLOCK2, COLORIDX_COMMENT, COLORIDX_CTRLCODE, COLORIDX_DIGIT, COLORIDX_EOF, COLORIDX_KEYWORD1, COLORIDX_KEYWORD10, COLORIDX_KEYWORD2, COLORIDX_KEYWORD3, COLORIDX_KEYWORD4, COLORIDX_KEYWORD5, COLORIDX_KEYWORD6, COLORIDX_KEYWORD7, COLORIDX_KEYWORD8, COLORIDX_KEYWORD9, COLORIDX_SEARCH, COLORIDX_SPACE, COLORIDX_SSTRING, COLORIDX_TAB, COLORIDX_TEXT, COLORIDX_URL, COLORIDX_WSTRING, CTextDrawer::DispEmptyLine(), CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), DispTextSelected(), CTextDrawer::DispVerticalLines(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), CTypeSupport::FillBack(), DispPos::ForwardDrawCol(), DispPos::ForwardDrawLine(), DispPos::ForwardLayoutLineRef(), CTextArea::GenerateClipRect(), CTextArea::GetAreaTop(), CBlockComment::getBlockCommentFrom(), CLayout::GetColorTypePrev(), CEditDoc::GetDocumentAttribute(), DispPos::GetDrawCol(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayout::GetIndent(), DispPos::GetLayoutLineRef(), CEOL::GetLen(), CLayout::GetLength(), CLayoutMgr::GetLineCount(), CLayout::GetLogicOffset(), CLayoutMgr::GetMaxLineKetas(), GetNBgn, GetNPos, CNativeW::GetSizeOfChar(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), GetTextArea(), GetTextDrawer(), GetTextMetrics(), IS_KEYWORD_CHAR(), IsBkBitmap(), WCODE::isControlCode(), CTypeSupport::IsDisp(), IsNumber(), IsSearchString(), IsURL(), WCODE::isZenkakuSpace(), m_bCurSrchKeyMark, ColorInfo::m_bDisp, Types::m_bUseRegexKeyword, Types::m_cBlockComment, CLayout::m_cEol, DLLSHAREDATA::m_CKeyWordSetMgr, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, Types::m_cLineComment, Types::m_ColorInfoArr, m_cRegexKeyword, Types::m_nKeyWordSetIdx, Types::m_nStringType, CLayout::m_pCDocLine, m_pcEditDoc, m_pShareData, m_sCurSearchOption, MakeColorIndexType_RegularExpression(), CLineComment::Match(), CBlockComment::Match_CommentFrom(), CBlockComment::Match_CommentTo(), MY_RUNNINGTIMER, NULL, CRegexKeyword::RegexIsKeyword(), CRegexKeyword::RegexKeyLineStart(), DispPos::ResetDrawCol(), CKeyWordSetMgr::SearchKeyWord2(), CLayoutMgr::SearchLineByLayoutY(), SetCurrentColor(), DispPos::SetLayoutLineRef(), SetNBgn, SetNPos, WCODE::TAB, と TRUE.

参照元 OnPaint().

void CEditView::DispTextSelected | ( | HDC | hdc,
 |  | CLayoutInt | nLineNum,
 |  | const CMyPoint & | ptXY,
 |  | CLayoutInt | nX_Layout |
 | ) |  |  | [protected]

引数:
hdc | 作画対象ビットマップを含むデバイス
nLineNum | 反転処理対象レイアウト行番号(0開始)
ptXY | (相対レイアウト0桁目の左端座標, 対象行の上端座標)
nX_Layout 対象行の終了桁位置。　[ABC
]なら改行の後ろで4

CEditView_New2.cpp の 150 行で定義されています。

参照先 CTextArea::GetAreaRight(), CLayoutMgr::GetEndLayoutPos(), CRangeBase< PointType >::GetFrom(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayout::GetIndent(), CLayoutMgr::GetLineCount(), GetSelectionInfo(), GetTextArea(), GetTextMetrics(), CRangeBase< PointType >::GetTo(), CTextArea::GetViewLeftCol(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsBoxSelecting(), CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, m_pcEditDoc, CViewSelect::m_sSelect, CLayoutMgr::SearchLineByLayoutY(), SELECTEDAREA_RGB, と SELECTEDAREA_ROP2.

参照元 DispLineNew().

void CEditView::CopySelectedAllLines | ( | const wchar_t * | pszQuote,
 |  | BOOL | bWithLineNumber
 | ) |  |

引数:
pszQuote | 先頭に付ける引用符
bWithLineNumber | 行番号を付与する

CEditView.cpp の 3181 行で定義されています。

参照先 CEditView_Paint::Call_OnPaint(), CViewSelect::DisableSelectArea(), FALSE, GetSelectedData(), GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CommonSetting_Edit::m_bAddCRLFWhenCopy, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sEdit, CViewSelect::m_sSelect, MySetClipboardData(), PAINT_BODY, PAINT_LINENUMBER, CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), TRUE, と TwoPointToRect().

参照元 CViewCommander::Command_COPYLINES(), CViewCommander::Command_COPYLINESASPASSAGE(), と CViewCommander::Command_COPYLINESWITHLINENUMBER().

void CEditView::ConvSelectedArea ( int nFuncCode )

CEditView.cpp の 3256 行で定義されています。

参照先 COpeBlk::AppendOpe(), BOOL(), CStrictRect< INT_TYPE, POINT_TYPE >::bottom, CConvertMediator::ConvMemory(), WCODE::CR, DeleteData2(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), CRangeBase< PointType >::GetFrom(), GetHwnd(), CLayoutMgr::GetLineStr(), GetSelectedData(), GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CLayoutMgr::GetTabSpace(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), InsertData_CEditView(), CViewSelect::IsBoxSelecting(), CStrictRect< INT_TYPE, POINT_TYPE >::left, WCODE::LF, CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), CommonSetting_Edit::m_bAddCRLFWhenCopy, m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pcEditDoc, m_pcOpeBlk, m_pShareData, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CommonSetting::m_sEdit, CViewSelect::m_sSelect, CCaret::MoveCursor(), NULL, OPE_MOVECARET, RedrawAll(), ReplaceData_CEditView(), CStrictRect< INT_TYPE, POINT_TYPE >::right, CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), CStrictRect< INT_TYPE, POINT_TYPE >::top, TRUE, TwoPointToRect(), と CStrictRect< INT_TYPE, POINT_TYPE >::UpperLeft().

参照元 CViewCommander::Command_CODECNV_AUTO2SJIS(), CViewCommander::Command_CODECNV_EMAIL(), CViewCommander::Command_CODECNV_EUC2SJIS(), CViewCommander::Command_CODECNV_SJIS2EUC(), CViewCommander::Command_CODECNV_SJIS2JIS(), CViewCommander::Command_CODECNV_SJIS2UTF7(), CViewCommander::Command_CODECNV_SJIS2UTF8(), CViewCommander::Command_CODECNV_UNICODE2SJIS(), CViewCommander::Command_CODECNV_UNICODEBE2SJIS(), CViewCommander::Command_CODECNV_UTF72SJIS(), CViewCommander::Command_CODECNV_UTF82SJIS(), CViewCommander::Command_HANKATATOZENKAKUHIRA(), CViewCommander::Command_HANKATATOZENKAKUKATA(), CViewCommander::Command_SPACETOTAB(), CViewCommander::Command_TABTOSPACE(), CViewCommander::Command_TOHANEI(), CViewCommander::Command_TOHANKAKU(), CViewCommander::Command_TOHANKATA(), CViewCommander::Command_TOLOWER(), CViewCommander::Command_TOUPPER(), CViewCommander::Command_TOZENEI(), CViewCommander::Command_TOZENKAKUHIRA(), CViewCommander::Command_TOZENKAKUKATA(), と CViewCommander::Command_TRIM().

CLayoutInt CEditView::ScrollAtV ( CLayoutInt nPos )

指定上端行位置へスクロール

引数:
nPos [in] スクロール位置
戻り値:
実際にスクロールした行数 (正:下方向/負:上方向)
日付:
2004.09.11 genta 行数を戻り値として返すように．(同期スクロール用)

CEditView.cpp の 2716 行で定義されています。

参照先 AdjustScrollBars(), CTextArea::GetAreaBottom(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), GetDrawSwitch(), CTextMetrics::GetHankakuDy(), GetHwnd(), CLayoutMgr::GetLineCount(), GetTextArea(), GetTextMetrics(), CTextArea::GetViewTopLine(), CEditDoc::m_cLayoutMgr, CTextArea::m_nViewRowNum, m_pcEditDoc, NULL, CTextArea::SetViewTopLine(), CCaret::ShowEditCaret(), t_abs(), と TRUE.

参照元 AdjustScrollBars(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), OnMOUSEWHEEL(), OnVScroll(), と SyncScrollV().

CLayoutInt CEditView::ScrollAtH ( CLayoutInt nPos )

指定左端桁位置へスクロール

引数:
nPos [in] スクロール位置
戻り値:
実際にスクロールした桁数 (正:右方向/負:左方向)
日付:
2004.09.11 genta 桁数を戻り値として返すように．(同期スクロール用)

CEditView.cpp の 2799 行で定義されています。

参照先 AdjustScrollBars(), CRuler::DispRuler(), CTextArea::GetAreaBottom(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), GetDrawSwitch(), CTextMetrics::GetHankakuDx(), GetHwnd(), CLayoutMgr::GetMaxLineKetas(), GetRuler(), GetTextArea(), GetTextMetrics(), CTextArea::GetViewLeftCol(), CEditDoc::m_cLayoutMgr, CTextArea::m_nViewColNum, m_pcEditDoc, NULL, CRuler::SetRedrawFlag(), CTextArea::SetViewLeftCol(), CCaret::ShowEditCaret(), t_abs(), と TRUE.

参照元 AdjustScrollBars(), OnHScroll(), と SyncScrollH().

CLayoutInt CEditView::ScrollByV ( CLayoutInt vl ) [inline]

CEditView.h の 336 行で定義されています。

参照元 SyncScrollV().

CLayoutInt CEditView::ScrollByH ( CLayoutInt hl ) [inline]

CEditView.h の 337 行で定義されています。

参照元 SyncScrollH().

void CEditView::SyncScrollV ( CLayoutInt line )

垂直同期スクロール

垂直同期スクロールがONならば，対応するウィンドウを指定行数同期スクロールする

引数:
line [in] スクロール行数 (正:下方向/負:上方向/0:何もしない)
作者:
asa-o
日付:
2001.06.20 asa-o 新規作成

2004.09.11 genta 関数化

覚え書き:
動作の詳細は設定や機能拡張により変更になる可能性がある

CEditView.cpp の 2893 行で定義されています。

参照先 GetTextArea(), CommonSetting_Window::m_bSplitterWndVScroll, DLLSHAREDATA::m_Common, m_nMyIndex, m_pcEditDoc, CEditWnd::m_pcEditViewArr, CEditDoc::m_pcEditWnd, m_pShareData, CommonSetting::m_sWindow, ScrollAtV(), と ScrollByV().

参照元 CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CCaret::Cursor_UPDOWN(), DispatchEvent(), CCaret::MoveCursor(), と OnMOUSEWHEEL().

void CEditView::SyncScrollH ( CLayoutInt col )

水平同期スクロール

水平同期スクロールがONならば，対応するウィンドウを指定行数同期スクロールする．

引数:
col [in] スクロール桁数 (正:右方向/負:左方向/0:何もしない)
作者:
asa-o
日付:
2001.06.20 asa-o 新規作成

2004.09.11 genta 関数化

覚え書き:
動作の詳細は設定や機能拡張により変更になる可能性がある

CEditView.cpp の 2919 行で定義されています。

参照先 CRuler::DispRuler(), GetHwnd(), GetRuler(), GetTextArea(), CommonSetting_Window::m_bSplitterWndHScroll, DLLSHAREDATA::m_Common, m_nMyIndex, m_pcEditDoc, CEditWnd::m_pcEditViewArr, CEditDoc::m_pcEditWnd, m_pShareData, CommonSetting::m_sWindow, ScrollAtH(), ScrollByH(), と CRuler::SetRedrawFlag().

参照元 DispatchEvent(), と CCaret::MoveCursor().

void CEditView::DrawBracketPair ( bool bDraw )

対括弧の強調表示

日付:
2002/09/18 ai

2003/02/18 ai 再描画対応の為大改造

CEditView.cpp の 6227 行で定義されています。

参照元 CCaret::MoveCursor(), OnKillFocus(), OnLBUTTONUP(), OnPaint(), と OnSetFocus().

void CEditView::SetBracketPairPos ( bool flag )

日付:
2003/02/18 ai
引数:
flag [in] モード(true:登録, false:解除)

CEditView.cpp の 6165 行で定義されています。

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CCaret::MoveCursor(), と OnLBUTTONUP().

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 の 6375 行で定義されています。

bool CEditView::IsBracket | ( | const wchar_t * | pLine,
 |  | CLogicInt | x,
 |  | CLogicInt | size |
 | ) |  |  | [protected]

括弧判定

作者:
ai
引数:
pLine [in]
x
size
戻り値:
true | 括弧
false | 非括弧

CEditView_New2.cpp の 864 行で定義されています。

参照先 KAKKO_T::eStr, NULL, と KAKKO_T::sStr.

void CEditView::SetIMECompFormPos ( void )

CEditView.cpp の 1441 行で定義されています。

参照先 GetCaret(), CCaret::GetCaretSize(), CTextMetrics::GetHankakuHeight(), GetHwnd(), GetTextMetrics(), と m_hwndParent.

参照元 CEditWnd::EndLayoutBars(), CNormalProcess::Initialize(), と CCaret::ShowEditCaret().

void CEditView::SetIMECompFormFont ( void )

CEditView.cpp の 1482 行で定義されています。

参照先 GetHwnd(), DLLSHAREDATA::m_Common, CommonSetting_View::m_lf, m_pShareData, と CommonSetting::m_sView.

参照元 OnSetFocus(), と SetFont().

void CEditView::SetParentCaption ( void )

親ウィンドウのタイトルを更新

日付:
2007.03.08 ryoji bKillFocusパラメータを除去

CEditView.cpp の 3528 行で定義されています。

参照先 m_pcEditDoc, と CEditDoc::SetParentCaption().

参照元 CViewCommander::Command_RECKEYMACRO(), Create(), DispatchEvent(), OnSize(), と RedrawAll().

bool CEditView::IsCurrentPositionURL | ( | const CLayoutPoint & | ptCaretPos,
 |  | CLogicRange * | pUrlRange,
 |  | wchar_t ** | ppszURL
 | ) |  |

引数:
ptCaretPos | [in] カーソル位置
pUrlRange | [out] URL範囲。ロジック単位。
ppszURL | URL受け取り先(関数内でnewする)

CEditView.cpp の 1881 行で定義されています。

参照先 CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), IsURL(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_pcEditDoc, MY_RUNNINGTIMER, NULL, CRangeBase< PointType >::SetLine(), と CRangeBase< PointType >::SetXs().

参照元 OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), と OnMOUSEMOVE().

int CEditView::IsCurrentPositionSelected ( CLayoutPoint ptCaretPos )

CEditView.cpp の 4945 行で定義されています。

参照先 CStrictRect< INT_TYPE, POINT_TYPE >::bottom, CRangeBase< PointType >::GetFrom(), ApiWrap::GetKeyState_Control(), GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CStrictRect< INT_TYPE, POINT_TYPE >::left, m_bDragSource, CViewSelect::m_sSelect, CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect(), CStrictRect< INT_TYPE, POINT_TYPE >::right, CStrictRect< INT_TYPE, POINT_TYPE >::top, と TwoPointToRect().

参照元 OnLBUTTONDOWN(), OnMOUSEMOVE(), と OnRBUTTONDOWN().

int CEditView::IsCurrentPositionSelectedTEST | ( | const CLayoutPoint & | ptCaretPos,
 |  | const CLayoutRange & | sSelect |
 | ) |  |  | const

CEditView.cpp の 5038 行で定義されています。

参照先 CRangeBase< PointType >::GetFrom(), GetSelectionInfo(), CRangeBase< PointType >::GetTo(), と PointCompare().

参照元 OnMOUSEMOVE().

bool CEditView::IsSearchString | ( | const wchar_t * | pszData,
 |  | CLogicInt | nDataLen,
 |  | CLogicInt | nPos,
 |  | CLogicInt * | pnSearchStart,
 |  | CLogicInt * | pnSearchEnd
 | ) |  |

CEditView_New2.cpp の 267 行で定義されています。

参照先 auto_memicmp(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CBregexp::GetIndex(), CBregexp::GetLastIndex(), DLLSHAREDATA::m_Common, m_CurRegexp, m_pShareData, m_sCurSearchOption, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_szCurSrchKey, CBregexp::Match(), NULL, と CWordParse::WhereCurrentWord_2().

参照元 DispLineNew().

void CEditView::ExecCmd | ( | const TCHAR * | pszCmd,
 |  | int | nFlgOpt
 | ) |  |

外部コマンドの実行

引数:
[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 の 5597 行で定義されています。

参照元 CViewCommander::Command_EXECCOMMAND().

void CEditView::AddToCmdArr ( const TCHAR * szCmd )

CEditView_Command.cpp の 346 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

参照元 CViewCommander::Command_EXECCOMMAND_DIALOG().

BOOL CEditView::ChangeCurRegexp ( void )

CEditView_Command.cpp の 356 行で定義されています。

参照先 SSearchOption::bLoHiCase, BOOL(), SSearchOption::bRegularExp, CBregexp::Compile(), FALSE, InitRegexp(), DLLSHAREDATA::m_aSearchKeys, m_bCurSrchKeyMark, DLLSHAREDATA::m_Common, m_CurRegexp, m_hWnd, m_pShareData, m_sCurSearchOption, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, m_szCurSrchKey, RedrawAll(), と TRUE.

参照元 CViewCommander::Command_BOOKMARK_PATTERN(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), と CViewCommander::Command_SEARCH_PREV().

void CEditView::SendStatusMessage ( const TCHAR * msg )

検索／置換／ブックマーク検索時の状態をステータスバーに表示する

日付:
2002.01.26 hor 新規作成

2002.12.04 genta 実体をCEditWndへ移動

CEditView.cpp の 5917 行で定義されています。

参照元 CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_TAGJUMPBACK(), CViewCommander::Command_UNINDENT(), ISearchBack(), ISearchEnter(), ISearchExec(), と ISearchExit().

void CEditView::SendStatusMessage2 ( const TCHAR * msg )

LRESULT CEditView::SetReconvertStruct | ( | PRECONVERTSTRING | pReconv,
 |  | bool | bUnicode
 | ) |  |

CEditView.cpp の 5929 行で定義されています。

参照先 CNative::_GetMemory(), ApiWrap::CharNextW_AnyBuild(), tagRECONVERTSTRING::dwCompStrLen, tagRECONVERTSTRING::dwCompStrOffset, DWORD, tagRECONVERTSTRING::dwSize, tagRECONVERTSTRING::dwStrLen, tagRECONVERTSTRING::dwStrOffset, tagRECONVERTSTRING::dwTargetStrLen, tagRECONVERTSTRING::dwTargetStrOffset, tagRECONVERTSTRING::dwVersion, GetCaret(), CEOL::GetLen(), CDocLineMgr::GetLineInfo(), CMemory::GetRawLength(), CMemory::GetRawPtr(), GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cDocLineMgr, CDocLine::m_cEol, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, m_nLastReconvIndex, m_nLastReconvLine, m_pcEditDoc, NULL, CNativeW::SetString(), と CShiftJis::UnicodeToSJIS().

参照元 CViewCommander::Command_Reconvert(), と DispatchEvent().

LRESULT CEditView::SetSelectionFromReonvert | ( | const PRECONVERTSTRING | pReconv,
 |  | bool | bUnicode
 | ) |  |

CEditView.cpp の 6092 行で定義されています。

参照元 CViewCommander::Command_Reconvert(), と DispatchEvent().

STDMETHODIMP CEditView::DragEnter | ( | LPDATAOBJECT | pDataObject,
 |  | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CEditView.cpp の 5098 行で定義されています。

参照先 _SetDragMode(), DragOver(), GetHwnd(), ApiWrap::GetKeyState_Control(), IsDataAvailable(), CEditDoc::IsReadOnly(), m_bDragSource, CommonSetting_Edit::m_bUseOLE_DragDrop, DLLSHAREDATA::m_Common, CEditDoc::m_hLockedFile, CEditDoc::m_nFileShareModeOld, m_nMyIndex, m_pcDropTarget, m_pcEditDoc, CEditDoc::m_pcEditWnd, CDropTarget::m_pDataObject, m_pShareData, CommonSetting::m_sEdit, MYTRACE_A, NULL, OnSetFocus(), CEditWnd::SetActivePane(), SHAREMODE_NOT_EXCLUSIVE, と TRUE.

参照元 CDropTarget::DragEnter().

STDMETHODIMP CEditView::DragOver | ( | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CEditView.cpp の 5143 行で定義されています。

参照元 DragEnter(), と CDropTarget::DragOver().

STDMETHODIMP CEditView::DragLeave ( void )

CEditView.cpp の 5175 行で定義されています。

参照先 _SetDragMode(), FALSE, m_bDragSource, m_hwndParent, m_pcDropTarget, CDropTarget::m_pDataObject, MYTRACE_A, NULL, OnKillFocus(), と OnSetFocus().

参照元 CDropTarget::DragLeave().

STDMETHODIMP CEditView::Drop | ( | LPDATAOBJECT | pDataObject,
 |  | DWORD | dwKeyState,
 |  | POINTL | pt,
 |  | LPDWORD | pdwEffect
 | ) |  |

CEditView.cpp の 5199 行で定義されています。

参照元 CDropTarget::Drop().

void CEditView::DeleteData2 | ( | const CLayoutPoint & | ptCaretPos,
 |  | CLogicInt | nDelLen,
 |  | CNativeW * | pcMem
 | ) |  |

指定位置の指定長データ削除

日付:
2002/03/24 YAZAKI bUndo削除

2002/05/12 YAZAKI bRedraw, bRedraw2削除（常にFALSEだから）

2007/10/17 kobake (重要)pcMemの所有者が条件によりCOpeに移ったり移らなかったりする振る舞いは 非常にややこしく混乱の元になるため、常に、pcMemの所有者は移さないように仕様変更。

引数:
pcMem [out]

CEditView_Command_New.cpp の 280 行で定義されています。

参照先 COpeBlk::AppendOpe(), CLayoutMgr::DeleteData_CLayoutMgr(), GetCaret(), CCaret::GetCaretLayoutPos(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CNativeW::GetStringLength(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, COpe::m_nDataLen, m_pcEditDoc, COpe::m_pcmemData, m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, COpe::m_ptCaretPos_PHY_To, CCaret::MoveCursor(), MY_RUNNINGTIMER, NULL, と OPE_DELETE.

参照元 CViewCommander::Command_UNINDENT(), ConvSelectedArea(), と DeleteData().

void CEditView::DeleteData ( bool bRedraw )

カーソル位置または選択エリアを削除

日付:
2002/03/24 YAZAKI bUndo削除

CEditView_Command_New.cpp の 370 行で定義されています。

参照先 AdjustScrollBars(), COpeBlk::AppendOpe(), CStrictRect< INT_TYPE, POINT_TYPE >::bottom, CEditView_Paint::Call_OnPaint(), CViewCommander::Command_GOFILEEND(), WCODE::CR, DeleteData2(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CViewSelect::DisableSelectArea(), EOL_NONE, FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), CNativeW::GetCharNext(), GetCommander(), CRangeBase< PointType >::GetFrom(), CEOL::GetLen(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), WCODE::isLineDelimiter(), CLayoutMgr::LayoutToLogic(), CStrictRect< INT_TYPE, POINT_TYPE >::left, WCODE::LF, CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), m_bDoing_UndoRedo, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, m_hWnd, CCaret::m_nCaretPosX_Prev, m_pcEditDoc, m_pcEditWnd, m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CViewSelect::m_sSelect, CCaret::MoveCursor(), MY_RUNNINGTIMER, NULL, OPE_MOVECARET, PAINT_BODY, PAINT_LINENUMBER, ReplaceData_CEditView(), CStrictRect< INT_TYPE, POINT_TYPE >::right, SetDrawSwitch(), CRangeBase< PointType >::SetFrom(), CEditDoc::SetModified(), CRangeBase< PointType >::SetTo(), CCaret::ShowEditCaret(), CStrictRect< INT_TYPE, POINT_TYPE >::top, TRUE, と TwoPointToRect().

参照元 CViewCommander::Command_CUT(), CViewCommander::Command_DELETE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WordDelete(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), と InsertData_CEditView().

void CEditView::InsertData_CEditView | ( | CLayoutPoint | ptInsertPos,
 |  | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | CLayoutPoint * | pptNewPos,
 |  | bool | bRedraw
 | ) |  |

現在位置にデータを挿入 Ver0

日付:
2002/03/24 YAZAKI bUndo削除

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

参照先 AdjustScrollBars(), COpeBlk::AppendOpe(), CNativeW::AppendString(), CNative::Clear(), DeleteData(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), EOL_NONE, CTextArea::GetAreaBottom(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), CCaret::GetCaretLayoutPos(), CEditDoc::GetDocumentAttribute(), CTextMetrics::GetHankakuDy(), CLayout::GetIndent(), CLayoutMgr::GetLineStr(), CLayoutMgr::GetMaxLineKetas(), GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), GetTextArea(), GetTextMetrics(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::IsEndOfLine(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex2(), CViewCalc::LineIndexToColmn(), m_bDoing_UndoRedo, Types::m_bKinsokuHead, Types::m_bKinsokuKuto, Types::m_bKinsokuRet, Types::m_bKinsokuTail, Types::m_bWordWrap, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, m_hWnd, COpe::m_nDataLen, m_pcEditDoc, m_pcEditWnd, COpe::m_pcmemData, m_pcOpeBlk, CLayout::m_pNext, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, COpe::m_ptCaretPos_PHY_To, MY_RUNNINGTIMER, NULL, OnPaint(), OPE_INSERT, CEditDoc::SetModified(), CNativeW::SetString(), CCaret::ShowEditCaret(), と TRUE.

参照元 CViewCommander::Command_ADDTAIL(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_WCHAR(), と ConvSelectedArea().

void CEditView::SmartIndent_CPP ( wchar_t wcChar )

CEditView_Command_New.cpp の 795 行で定義されています。

参照先 _countof, COpeBlk::AppendOpe(), BOOL(), CRangeBase< PointType >::Clear(), WCODE::CR, FALSE, CLayoutMgr::GetActualTabSpace(), GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), CNativeW::GetCharPrev(), CEditDoc::GetDocumentAttribute(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), CDocLineMgr::GetLineStr(), CNativeW::GetSizeOfChar(), CLayoutMgr::GetTabSpace(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), WCODE::isHeadCppKeyword(), CRangeBase< PointType >::IsOne(), CLayoutMgr::LogicToLayout(), m_bDoing_UndoRedo, Types::m_bInsSpace, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pcEditDoc, m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, ReplaceData_CEditView(), CRangeBase< PointType >::Set(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), WCODE::SPACE, WCODE::TAB, と TRUE.

参照元 CViewCommander::Command_WCHAR().

void CEditView::RTrimPrevLine ( void )

CEditView_Command_New.cpp の 1105 行で定義されています。

参照先 COpeBlk::AppendOpe(), GetCaret(), CCaret::GetCaretLogicPos(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CDocLineMgr::GetLineStrWithoutEOL(), CNativeW::GetSizeOfChar(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), WCODE::isBlank(), CLayoutMgr::LogicToLayout(), m_bDoing_UndoRedo, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_pcEditDoc, m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, ReplaceData_CEditView(), と TRUE.

参照元 CViewCommander::Command_WCHAR().

void CEditView::ReplaceData_CEditView | ( | CLayoutRange | sDelRange,
 |  | CNativeW * | pcmemCopyOfDeleted,
 |  | const wchar_t * | pInsData,
 |  | CLogicInt | nInsDataLen,
 |  | bool | bRedraw
 | ) |  |

< 削除範囲レイアウト

< [out] 削除されたデータ

< 挿入するデータ

< 挿入するデータの長さ

引数:
pcmemCopyOfDeleted [out] 削除されたデータのコピー(NULL可能)

CEditView_Command_New.cpp の 581 行で定義されています。

参照先 CNativeW::AllocStringBuffer(), COpeBlk::AppendOpe(), CEditView_Paint::Call_OnPaint(), CNative::Clear(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CViewSelect::DisableSelectArea(), FALSE, CTextArea::GetAreaBottom(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), CEditDoc::GetDocumentAttribute(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CTextMetrics::GetHankakuDy(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), GetSelectionInfo(), CNativeW::GetStringLength(), GetTextArea(), GetTextMetrics(), CRangeBase< PointType >::GetTo(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), m_bDoing_UndoRedo, Types::m_bKinsokuHead, Types::m_bKinsokuKuto, Types::m_bKinsokuRet, Types::m_bKinsokuTail, Types::m_bWordWrap, CEditDoc::m_cLayoutMgr, m_hWnd, CCaret::m_nCaretPosX_Prev, COpe::m_nDataLen, m_pcEditDoc, m_pcEditWnd, COpe::m_pcmemData, m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, COpe::m_ptCaretPos_PHY_To, CCaret::MoveCursor(), LayoutReplaceArg::nAddLineNum, LayoutReplaceArg::nInsDataLen, LayoutReplaceArg::nModLineFrom, LayoutReplaceArg::nModLineTo, NULL, OnPaint(), OPE_DELETE, OPE_INSERT, OPE_MOVECARET, PAINT_BODY, PAINT_LINENUMBER, LayoutReplaceArg::pcmemDeleted, LayoutReplaceArg::pInsData, LayoutReplaceArg::ptLayoutNew, CLayoutMgr::ReplaceData_CLayoutMgr(), LayoutReplaceArg::sDelRange, CRangeBase< PointType >::Set(), CRangeBase< PointType >::SetFromX(), CEditDoc::SetModified(), CRangeBase< PointType >::SetToX(), CCaret::ShowEditCaret(), と TRUE.

参照元 CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_REDO(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), ConvSelectedArea(), DeleteData(), RTrimPrevLine(), と SmartIndent_CPP().

void CEditView::TranslateCommand_grep | ( | EFunctionCode & | nCommand,
 |  | bool & | bRedraw,
 |  | LPARAM & | lparam1,
 |  | LPARAM & | lparam2,
 |  | LPARAM & | lparam3,
 |  | LPARAM & | lparam4
 | ) |  |

コマンドコードの変換(grep mode時)

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

参照先 F_TAGJUMP, F_WCHAR, ApiWrap::GetKeyState_Control(), WCODE::isLineDelimiter(), CEditDoc::m_bGrepMode, CommonSetting_Search::m_bGTJW_RETURN, DLLSHAREDATA::m_Common, m_pcEditDoc, m_pShareData, と CommonSetting::m_sSearch.

参照元 CViewCommander::HandleCommand().

bool CEditView::TagJumpSub | ( | const TCHAR * | pszJumpToFile,
 |  | CMyPoint | ptJumpTo,
 |  | bool | bClose = false,
 |  | bool | bRelFromIni = false
 | ) |  |

引数:
bClose [in] true: 元ウィンドウを閉じる / false: 元ウィンドウを閉じない

CEditView_Command.cpp の 22 行で定義されています。

参照先 _IS_REL_PATH(), _tcscpy(), ActivateFrameWindow(), CODE_AUTODETECT, CViewCommander::Command_WINCLOSE(), FALSE, GetCaret(), GetCommander(), GetDocument(), GetInidirOrExedir(), CShareData::getInstance(), GetLongFileName(), CEditDoc::GetOwnerHwnd(), DLLSHAREDATA::GetWorkBuffer(), TagJump::hwndReferer, CLayoutMgr::LayoutToLogic(), CEditDoc::m_cLayoutMgr, m_hInstance, m_hWnd, FileInfo::m_nCharCode, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, m_pShareData, FileInfo::m_ptCursor, FileInfo::m_szPath, memcpy_raw(), MYWM_SETCARETPOS, CControlTray::OpenNewEditor2(), TagJump::point, CShareData::PushTagJump(), SendMessageAny, CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), と TRUE.

参照元 CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_TagJumpByTagsFile(), と CViewCommander::Command_TagJumpByTagsFileKeyword().

void CEditView::TranslateCommand_isearch | ( | EFunctionCode & | nCommand,
 |  | bool & | bRedraw,
 |  | LPARAM & | lparam1,
 |  | LPARAM & | lparam2,
 |  | LPARAM & | lparam3,
 |  | LPARAM & | lparam4
 | ) |  |

コマンドコードの変換(ISearch時)及び インクリメンタルサーチモードを抜ける判定

戻り値:
true: コマンド処理済み / false: コマンド処理継続
日付:
2004.09.14 isearch 新規作成

2005.01.10 genta 関数化, UNINDENT追加

覚え書き:
UNINDENTを通常文字として扱うのは， SHIFT+文字の後でSPACEを入力するようなケースで SHIFTの解放が遅れても文字が入らなくなることを防ぐため．

CEditView_Cmdisrch.cpp の 34 行で定義されています。

参照先 F_DELETE_BACK, F_IME_CHAR, F_INDENT_SPACE, F_INDENT_TAB, F_INSTEXT_W, 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, F_WCHAR, ISearchExit(), と m_nISearchMode.

参照元 CViewCommander::HandleCommand().

bool CEditView::ProcessCommand_isearch | ( | int | nCommand,
 |  | bool | bRedraw,
 |  | LPARAM | lparam1,
 |  | LPARAM | lparam2,
 |  | LPARAM | lparam3,
 |  | LPARAM | lparam4
 | ) |  |

ISearch コマンド処理

日付:
2005.01.10 genta 各コマンドに入っていた処理を1カ所に移動

CEditView_Cmdisrch.cpp の 90 行で定義されています。

参照先 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(), SEARCH_BACKWARD, と SEARCH_FORWARD.

参照元 CViewCommander::HandleCommand().

int CEditView::CreatePopUpMenu_R ( void )

CEditView.cpp の 3427 行で定義されています。

参照先 _tcscpy(), auto_memcpy(), auto_sprintf(), CUSTMENU_INDEX_FOR_RBUTTONUP, dupamp(), CFuncLookup::Funccode2Name(), CEditWnd::GetMenuDrawer(), GetSelectionInfo(), CNativeA::GetStringPtr(), IDM_COPYDICINFO, IDM_JUMPDICT, IsFuncEnable(), KeyWordHelpSearchDict(), LID_SKH_POPUPMENU_R, LTEXT, CEditDoc::m_cFuncLookup, CTipWnd::m_cInfo, DLLSHAREDATA::m_Common, m_cTipWnd, m_hwndParent, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pcEditDoc, CEditDoc::m_pcEditWnd, m_pShareData, CommonSetting::m_sCustomMenu, CMenuDrawer::MyAppendMenu(), NULL, CMenuDrawer::ResetContents(), と TRUE.

参照元 CViewCommander::Command_MENU_RBUTTON().

void CEditView::PreprocessCommand_hokan ( int nCommand )

コマンド受信前補完処理

補完ウィンドウの非表示

日付:
2005.01.10 genta 関数化

CEditView_CmdHokan.cpp の 33 行で定義されています。

参照先 F_HOKAN, F_IME_CHAR, F_WCHAR, FALSE, CHokanMgr::Hide(), m_bHokan, CEditWnd::m_cHokanMgr, と m_pcEditWnd.

参照元 CViewCommander::HandleCommand().

void CEditView::PostprocessCommand_hokan ( void )

コマンド実行後補完処理

作者:
Moca
日付:
2005.01.10 genta 関数化

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

参照先 FALSE, GetParser(), CHokanMgr::Hide(), m_bExecutingKeyMacro, m_bHokan, CommonSetting_Helper::m_bUseHokan, CEditWnd::m_cHokanMgr, DLLSHAREDATA::m_Common, m_pcEditWnd, m_pShareData, CommonSetting::m_sHelper, と ShowHokanMgr().

参照元 CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_IME_CHAR(), と CViewCommander::Command_WCHAR().

void CEditView::ShowHokanMgr | ( | CNativeW & | cmemData,
 |  | BOOL | bAutoDecided
 | ) |  |

補完ウィンドウを表示する ウィンドウを表示した後は、HokanMgrに任せるので、ShowHokanMgrの知るところではない。

引数:
cmemData | [in] 補完する元のテキスト 「Ab」などがくる。
bAutoDecided | [in] 候補が1つだったら確定する
日付:
2005.01.10 genta CEditView_Commandから移動

CEditView_CmdHokan.cpp の 78 行で定義されています。

参照先 CViewCommander::Command_INSTEXT(), CViewCommander::Command_WordDeleteToStart(), FALSE, CTextArea::GetAreaLeft(), CTextArea::GetAreaTop(), GetCaret(), CCaret::GetCaretLayoutPos(), GetCommander(), CEditDoc::GetDocumentAttribute(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), GetTextArea(), GetTextMetrics(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CHokanMgr::Hide(), m_bHokan, Types::m_bHokanLoHiCase, CommonSetting_Helper::m_bUseHokan, Types::m_bUseHokanByFile, CEditWnd::m_cHokanMgr, DLLSHAREDATA::m_Common, m_hWnd, m_pcEditDoc, m_pcEditWnd, m_pShareData, CommonSetting::m_sHelper, Types::m_szHokanFile, NULL, と TRUE.

参照元 CViewCommander::Command_HOKAN(), と PostprocessCommand_hokan().

void CEditView::AddCurrentLineToHistory ( void )

現在のカーソル行位置を履歴に登録する

CEditView_New2.cpp の 887 行で定義されています。

参照先 CAutoMarkMgr::Add(), GetCaret(), CLayoutMgr::LayoutToLogic(), m_cHistory, CEditDoc::m_cLayoutMgr, と m_pcEditDoc.

参照元 CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_JUMPHIST_SET(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), と CViewCommander::Command_SELECTALL().

void CEditView::AnalyzeDiffInfo | ( | const char * | pszDiffInfo,
 |  | int | nFlgFile12
 | ) |  |

DIFF差分情報を解析しマーク登録

引数:
pszDiffInfo | [in] 新ファイル名
nFlgFile12 | [in] 編集中ファイルは... 0 ファイル1(旧ファイル) 1 ファイル2(新ファイル)
作者:
MIK
日付:
2002/05/25

CEditView_Diff.cpp の 362 行で定義されています。

参照先 CEditDoc::m_cDocLineMgr, m_pcEditDoc, MARK_DIFF_APPEND, MARK_DIFF_CHANGE, MARK_DIFF_DELETE, と CDocLineMgr::SetDiffMarkRange().

参照元 ViewDiffInfo().

BOOL CEditView::MakeDiffTmpFile | ( | TCHAR * | filename,
 |  | HWND | hWnd
 | ) |  |

一時ファイルを作成する

作者:
MIK
日付:
2002/05/26

2005/10/29 引数変更const char* → char* 一時ファイル名の取得処理もここでおこなう。maru

CEditView_Diff.cpp の 467 行で定義されています。

参照先 _tcscpy(), FALSE, CDocLineMgr::GetLineStr(), CEditDoc::GetSplitterHwnd(), DLLSHAREDATA::GetWorkBuffer(), DLLSHAREDATA::GetWorkBufferCount(), GSTR_APPNAME_A, CEditDoc::m_bBomExist, CEditDoc::m_cDocLineMgr, CEditDoc::m_cSaveLineCode, CEditDoc::m_nCharCode, m_pcEditDoc, m_pShareData, MYMESSAGEBOX_A, MYWM_GETLINEDATA, NULL, RESULT_FAILURE, SAKURA_DIFF_TEMP_PREFIX, SendMessageAny, TRUE, と CDocLineMgr::WriteFile().

参照元 CViewCommander::Command_Diff(), と CViewCommander::Command_Diff_Dialog().

void CEditView::ViewDiffInfo | ( | const TCHAR * | pszFile1,
 |  | const TCHAR * | pszFile2,
 |  | int | nFlgOpt
 | ) |  |

差分表示

引数:
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から関数名の変更。 GetCommander().Command_Diff_Dialogだけでなく新Command_Diff からも呼ばれる関数。maru

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

参照先 _countof, _MAX_PATH, _tcscpy(), AnalyzeDiffInfo(), auto_sprintf(), CViewCommander::Command_Diff_Reset(), DWORD, FALSE, GetCommander(), GetExedir(), GSTR_APPNAME, GSTR_APPNAME_A, InfoMessage, int, CDocLineMgr::IsDiffUse(), COsVersionInfo::IsWin32NT(), CEditDoc::m_cDocLineMgr, m_hWnd, CEditWnd::m_nActivePaneIndex, m_pcEditDoc, CEditWnd::m_pcEditViewArr, m_pcEditWnd, MYMESSAGEBOX, MYMESSAGEBOX_A, NULL, Redraw(), SplitPath_FolderAndFile(), と TRUE.

参照元 CViewCommander::Command_Diff(), と CViewCommander::Command_Diff_Dialog().

BOOL CEditView::OPEN_ExtFromtoExt | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss,
 |  | const TCHAR * | file_ext[],
 |  | const TCHAR * | open_ext[],
 |  | int | file_extno,
 |  | int | open_extno,
 |  | const TCHAR * | errmes
 | ) |  |

指定拡張子のファイルに対応するファイルを開く補助関数

引数:
bCheckOnly
bBeepWhenMiss
file_ext
file_extno
open_ext
open_extno
errmes
日付:
2003.06.28 Moca ヘッダ・ソースファイルオープン機能のコードを統合
引数:
bCheckOnly | [in] true: チェックのみ行ってファイルは開かない
bBeepWhenMiss | [in] true: ファイルを開けなかった場合に警告音を出す
file_ext | [in] 処理対象とする拡張子
open_ext | [in] 開く対象とする拡張子
file_extno | [in] 処理対象拡張子リストの要素数
open_extno | [in] 開く対象拡張子リストの要素数
errmes | [in] ファイルを開けなかった場合に表示するエラーメッセージ

CEditView_Command.cpp の 154 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _MAX_PATH, _tcscpy(), ActivateFrameWindow(), auto_sprintf(), BOOL(), CheckEXT(), FALSE, GetCaret(), GetDocument(), CShareData::getInstance(), CEditDoc::GetOwnerHwnd(), GSTR_APPNAME_A, TagJump::hwndReferer, CShareData::IsPathOpened(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cLayoutMgr, m_hInstance, m_hWnd, MYMESSAGEBOX_A, CControlTray::OpenNewEditor(), TagJump::point, CShareData::PushTagJump(), と TRUE.

参照元 CViewCommander::Command_OPEN_CCPP(), と CViewCommander::Command_OPEN_HHPP().

CEditView::BOOL ( WINAPI * AT_ImmSetReconvertString )

参照元 ChangeCurRegexp(), ConvSelectedArea(), CopyCurLine(), Create(), DispLineNew(), OnPaint(), OPEN_ExtFromtoExt(), と SmartIndent_CPP().

void CEditView::ISearchEnter | ( | int | mode,
 |  | ESearchDirection | direction |
 | ) |  |  | [private]

インクリメンタルサーチモードに入る

引数:
mode | [in] 検索方法 1:通常, 2:正規表現, 3:MIGEMO
direction | [in] 検索方向 0:後方(上方), 1:前方(下方)
作者:
isearch

CEditView_Cmdisrch.cpp の 144 行で定義されています。

参照先 SSearchOption::bRegularExp, CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLogicPos(), CMigemo::getInstance(), GetSelectionInfo(), CNativeA::GetStringPtr(), IDC_CURSOR_ISEARCH_B, IDC_CURSOR_ISEARCH_F, CDllHandler::Init(), CDllHandler::IsAvailable(), ISearchExec(), ISearchSetStatusMsg(), m_bCurSrchKeyMark, m_bISearchFirst, m_bISearchWrap, DLLSHAREDATA::m_Common, m_CurRegexp, m_hInstance, m_nISearchDirection, m_nISearchHistoryCount, m_nISearchMode, m_pcmigemo, m_pShareData, m_ptSrchStartPos_PHY, m_sCurSearchOption, m_sISearchHistory, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CMigemo::migemo_is_enable(), CMigemo::migemo_load_all(), NULL, Redraw(), SendStatusMessage(), CRangeBase< PointType >::Set(), と TRUE.

参照元 ProcessCommand_isearch().

void CEditView::ISearchExit ( ) [private]

インクリメンタルサーチモードから抜ける

CEditView_Cmdisrch.cpp の 242 行で定義されています。

参照先 CShareData::AddToSearchKeyArr(), CShareData::getInstance(), m_nISearchDirection, m_nISearchHistoryCount, m_nISearchMode, m_szCurSrchKey, OnMOUSEMOVE(), SEARCH_BACKWARD, と SendStatusMessage().

参照元 ISearchExec(), OnLBUTTONDOWN(), と TranslateCommand_isearch().

void CEditView::ISearchExec ( WORD wChar ) [private]

インクリメンタルサーチの実行(1文字追加)

引数:
wChar [in] 追加する文字 (1byte or 2byte)

CEditView_Cmdisrch.cpp の 267 行で定義されています。

参照先 _countof, ISearchExit(), m_bISearchFirst, と m_szCurSrchKey.

参照元 ISearchEnter(), ISearchExec(), と ProcessCommand_isearch().

void CEditView::ISearchExec ( const char * pszText ) [private]

インクリメンタルサーチの実行(文字列追加)

引数:
pszText [in] 追加する文字列

CEditView_Cmdisrch.cpp の 308 行で定義されています。

参照先 ISearchExec().

void CEditView::ISearchExec ( bool bNext ) [private]

インクリメンタルサーチの実行

引数:
bNext [in] true:次の候補を検索, false:現在のカーソル位置のまま検索

CEditView_Cmdisrch.cpp の 333 行で定義されています。

参照先 _CARETMARGINRATE, CNativeA::AppendString(), SSearchOption::bRegularExp, GetCaret(), CCaret::GetCaretLayoutPos(), CRangeBase< PointType >::GetFrom(), CDocLine::GetLength(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), GetSelectionInfo(), CNativeA::GetStringPtr(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), ISearchSetStatusMsg(), ISearchWordMake(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CLayoutMgr::LogicToLayout(), m_bCurSrchKeyMark, m_bISearchFlagHistory, m_bISearchWrap, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_CurRegexp, m_nISearchDirection, m_nISearchHistoryCount, m_nISearchMode, m_pcEditDoc, m_sCurSearchOption, m_sISearchHistory, CViewSelect::m_sSelect, m_szCurSrchKey, CCaret::MoveCursor(), Redraw(), CLayoutMgr::SearchLineByLayoutY(), CLayoutMgr::SearchWord(), SendStatusMessage(), CRangeBase< PointType >::Set(), CViewSelect::SetSelectArea(), と TRUE.

void CEditView::ISearchBack ( void ) [private]

バックスペースを押されたときの処理

CEditView_Cmdisrch.cpp の 453 行で定義されています。

参照先 _CARETMARGINRATE, ApiWrap::CharPrevW_AnyBuild(), CViewSelect::DisableSelectArea(), GetCaret(), CRangeBase< PointType >::GetFrom(), GetSelectionInfo(), CNativeA::GetStringPtr(), ISearchSetStatusMsg(), ISearchWordMake(), m_bCurSrchKeyMark, m_bISearchFirst, m_bISearchFlagHistory, m_nISearchHistoryCount, m_sISearchHistory, m_szCurSrchKey, CCaret::MoveCursor(), Redraw(), SendStatusMessage(), CViewSelect::SetSelectArea(), CRangeBase< PointType >::SetToX(), と TRUE.

参照元 ProcessCommand_isearch().

void CEditView::ISearchWordMake ( void ) [private]

入力文字から、検索文字を生成する。

CEditView_Cmdisrch.cpp の 502 行で定義されています。

参照先 SSearchOption::bLoHiCase, CBregexp::Compile(), InitRegexp(), m_CurRegexp, m_hWnd, m_nISearchMode, m_pcmigemo, m_sCurSearchOption, m_szCurSrchKey, CMigemo::migemo_query(), CMigemo::migemo_release(), to_achar(), と to_wchar().

参照元 ISearchBack(), と ISearchExec().

void CEditView::ISearchSetStatusMsg ( CNativeT * msg ) const [private]

ISearchメッセージ構築

現在のサーチモード及び検索中文字列から メッセージエリアに表示する文字列を構築する

引数:
msg [out] メッセージバッファ
作者:
isearch
日付:
2004/10/13

2005.01.13 genta 文字列修正

CEditView_Cmdisrch.cpp の 546 行で定義されています。

参照先 CNativeA::AppendString(), m_nISearchDirection, m_nISearchHistoryCount, m_nISearchMode, m_szCurSrchKey, CNativeA::SetString(), と to_tchar.

参照元 ISearchBack(), ISearchEnter(), と ISearchExec().

CTextArea& CEditView::GetTextArea ( ) [inline]

CEditView.h の 472 行で定義されています。

参照先 assert.

参照元 CRuler::_DrawRulerCaret(), AdjustScrollBars(), CCaret::CalcCaretDrawPos(), CEditView_Paint::Call_OnPaint(), CaretUnderLineOFF(), CaretUnderLineON(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_HalfPageDown(), CViewCommander::Command_HalfPageUp(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WRAPWINDOWWIDTH(), CopyViewStatus(), Create(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CTextDrawer::DispEmptyLine(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), DispLineNew(), CTextDrawer::DispLineNumber(), CRuler::DispRuler(), DispTextSelected(), CTextDrawer::DispVerticalLines(), CTextDrawer::DispWrap(), CSplitterWnd::DoSplit(), CRuler::DrawRulerBg(), CRuler::DrawRulerCaret(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CEditDoc::FileRead(), CEditDoc::GetFileInfo(), GetSelectedData(), CTextDrawer::GetTextArea(), GetWrapMode(), CNormalProcess::Initialize(), InsertData_CEditView(), CCaret::MoveCursor(), CCaret::MoveCursorToClientPoint(), CPrintPreview::OnChangePrintSetting(), OnChangeSetting(), OnHScroll(), OnLBUTTONDOWN(), OnMOUSEMOVE(), OnMOUSEWHEEL(), OnPaint(), OnRBUTTONDOWN(), OnSize(), OnVScroll(), ReplaceData_CEditView(), ScrollAtH(), ScrollAtV(), SearchBracketBackward(), SearchBracketBackward2(), SearchBracketForward(), SearchBracketForward2(), SetFont(), CCaret::ShowEditCaret(), ShowHokanMgr(), SyncScrollH(), と SyncScrollV().

const CTextArea& CEditView::GetTextArea ( ) const [inline]

CEditView.h の 473 行で定義されています。

参照先 assert.

CCaret& CEditView::GetCaret ( ) [inline]

CEditView.h の 474 行で定義されています。

参照先 assert.

参照元 AddCurrentLineToHistory(), CViewSelect::BeginSelectArea(), CaretUnderLineOFF(), CaretUnderLineON(), ConvSelectedArea(), CopyCurLine(), CopyViewStatus(), DeleteData(), DeleteData2(), CTextArea::DetectWidthOfLineNumberArea(), CViewSelect::DisableSelectArea(), CEditWnd::DispatchEvent(), CRuler::DispRuler(), DoGrep(), CRuler::DrawRulerCaret(), CViewSelect::DrawSelectAreaLine(), CWSHMacroManager::ExecKeyMacro(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileSaveAs(), CViewCommander::GetCaret(), GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), CEditDoc::GetFileInfo(), CViewParser::GetLeftWord(), CMacro::HandleFunction(), HokanSearchByFile(), CEditDoc::InitAllView(), CNormalProcess::Initialize(), InsertData_CEditView(), ISearchBack(), ISearchEnter(), ISearchExec(), KeyWordHelpSearchDict(), MoveCursorSelecting(), CDlgFuncList::OnBnClicked(), OnChangeSetting(), OnKillFocus(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnLBUTTONUP(), OnMOUSEMOVE(), OnPaint(), OnSetFocus(), OPEN_ExtFromtoExt(), CMainToolBar::ProcSearchBox(), RedrawAll(), ReplaceData_CEditView(), CEditWnd::RestorePhysPosOfAllView(), RTrimPrevLine(), ScrollAtH(), ScrollAtV(), CEditWnd::SetActivePane(), SetIMECompFormPos(), SetReconvertStruct(), ShowHokanMgr(), SmartIndent_CPP(), と TagJumpSub().

const CCaret& CEditView::GetCaret ( ) const [inline]

CEditView.h の 475 行で定義されています。

参照先 assert.

CRuler& CEditView::GetRuler ( ) [inline]

CEditView.h の 476 行で定義されています。

参照先 assert.

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), Create(), CTextArea::DetectWidthOfLineNumberArea(), CRuler::DrawRulerCaret(), CCaret::MoveCursor(), OnHScroll(), OnKillFocus(), OnPaint(), OnSetFocus(), ScrollAtH(), と SyncScrollH().

const CRuler& CEditView::GetRuler ( ) const [inline]

CEditView.h の 477 行で定義されています。

参照先 assert.

CTextMetrics& CEditView::GetTextMetrics ( ) [inline]

CEditView.h の 480 行で定義されています。

参照元 CRuler::_DrawRulerCaret(), CCaret::CalcCaretDrawPos(), CaretUnderLineON(), CTextArea::ClientToLayout(), CopyViewStatus(), CTextArea::DetectWidthOfLineNumberArea(), CTextDrawer::DispEmptyLine(), CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), DispTextSelected(), CTextDrawer::DispVerticalLines(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CTextArea::GenerateBottomRect(), CTextArea::GenerateClipRect(), CTextArea::GenerateClipRectLine(), CTextArea::GenerateClipRectRight(), CTextArea::GenerateLeftRect(), CTextArea::GenerateRightRect(), CTextArea::GenerateTopRect(), CTextArea::GetDocumentLeftClientPointX(), CCaret::GetHankakuDx(), CCaret::GetHankakuDy(), CCaret::GetHankakuHeight(), InsertData_CEditView(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), CCaret::MoveCursorToClientPoint(), OnLBUTTONDOWN(), OnMOUSEMOVE(), OnPaint(), OnTimer(), ReplaceData_CEditView(), ScrollAtH(), ScrollAtV(), SetFont(), SetIMECompFormPos(), ShowHokanMgr(), CTextArea::TextArea_OnSize(), と CTextArea::UpdateAreaMetrics().

const CTextMetrics& CEditView::GetTextMetrics ( ) const [inline]

CEditView.h の 481 行で定義されています。

CViewSelect& CEditView::GetSelectionInfo ( ) [inline]

CEditView.h の 482 行で定義されています。

参照元 CaretUnderLineOFF(), CaretUnderLineON(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_BRACKETPAIR(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_COPY(), CViewCommander::Command_CUT(), CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSFILE(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMP_SRCHSTARTPOS(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_UUDECODE(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WordCut(), CViewCommander::Command_WordDelete(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), ConvSelectedArea(), CopyCurLine(), CopySelectedAllLines(), CopyViewStatus(), Create(), CreatePopUpMenu_R(), CCaret::Cursor_UPDOWN(), DeleteData(), CEditWnd::DispatchEvent(), DispTextSelected(), GetCurrentTextForSearch(), CViewCommander::GetSelect(), GetSelectedData(), CViewCommander::HandleCommand(), CMacro::HandleFunction(), CEditDoc::InitAllView(), InsertData_CEditView(), IsCurrentPositionSelected(), IsCurrentPositionSelectedTEST(), ISearchBack(), ISearchEnter(), ISearchExec(), IsFuncEnable(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), MoveCursorSelecting(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnLBUTTONUP(), OnMOUSEMOVE(), OnPaint(), OnRBUTTONUP(), OnTimer(), RedrawAll(), ReplaceData_CEditView(), SetReconvertStruct(), と CEditWnd::Views_DisableSelectArea().

const CViewSelect& CEditView::GetSelectionInfo ( ) const [inline]

CEditView.h の 483 行で定義されています。

CViewFont& CEditView::GetFontset ( ) [inline]

CEditView.h の 486 行で定義されています。

参照先 assert.

参照元 OnChangeSetting(), SetCurrentColor(), と SetFont().

const CViewFont& CEditView::GetFontset ( ) const [inline]

CEditView.h の 487 行で定義されています。

参照先 assert.

const CViewParser& CEditView::GetParser ( ) const [inline]

CEditView.h の 490 行で定義されています。

参照元 CViewCommander::Command_HOKAN(), KeyWordHelpSearchDict(), と PostprocessCommand_hokan().

const CTextDrawer& CEditView::GetTextDrawer ( ) const [inline]

CEditView.h の 491 行で定義されています。

参照元 DispLineNew(), と OnPaint().

CViewCommander& CEditView::GetCommander ( ) [inline]

CEditView.h の 492 行で定義されています。

参照元 DeleteData(), CEditWnd::DispatchEvent(), DispatchEvent(), DoGrep(), CHokanMgr::DoHokan(), CEditDoc::FileRead(), CMacro::HandleCommand(), CEditDoc::HandleCommand(), CNormalProcess::Initialize(), CDlgFuncList::Key2Command(), CDlgReplace::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgFuncList::OnBnClicked(), CDlgFind::OnBnClicked(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), ShowHokanMgr(), TagJumpSub(), と ViewDiffInfo().

変数

HMODULE CEditView::m_hAtokModule

CEditView.h の 453 行で定義されています。

参照元 Create(), と ~CEditView().

CEditView::int

CEditView.h の 454 行で定義されています。

参照元 Create(), DispatchEvent(), GetCurrentTextForSearch(), と ViewDiffInfo().

CEditView::PRECONVERTSTRING

CEditView.h の 454 行で定義されています。

CEditView::DWORD

CEditView.h の 454 行で定義されています。

参照元 Create(), DispatchEvent(), IsImeON(), OnLBUTTONDOWN(), SetReconvertStruct(), と ViewDiffInfo().

CEditWnd* CEditView::m_pcEditWnd

ウィンドウ

CEditView.h の 500 行で定義されています。

参照元 DeleteData(), DispatchEvent(), CViewCommander::GetEditWindow(), InsertData_CEditView(), OnPaint(), PostprocessCommand_hokan(), PreprocessCommand_hokan(), ReplaceData_CEditView(), ShowHokanMgr(), と ViewDiffInfo().

CEditDoc* CEditView::m_pcEditDoc

ドキュメント

CEditView.h の 501 行で定義されています。

参照元 AddCurrentLineToHistory(), CMacro::AddLParam(), AdjustScrollBars(), AnalyzeDiffInfo(), CaretUnderLineOFF(), CaretUnderLineON(), ConvSelectedArea(), CopyCurLine(), Create(), CreatePopUpMenu_R(), CTypeSupport::CTypeSupport(), DeleteData(), DeleteData2(), CTextArea::DetectWidthOfLineNumberArea(), CTextArea::DetectWidthOfLineNumberArea_calculate(), DispatchEvent(), CTextDrawer::DispEmptyLine(), DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), DispTextSelected(), CTextDrawer::DispVerticalLines(), DoGrep(), DragEnter(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), CViewCommander::GetDocument(), CViewParser::GetLeftWord(), GetSelectedData(), CViewCalc::GetTabSpace(), CMacro::HandleCommand(), CMacro::HandleFunction(), HokanSearchByFile(), InsertData_CEditView(), IsCurrentPositionURL(), ISearchExec(), KeySearchCore(), KeyWordHelpSearchDict(), MakeDiffTmpFile(), CDlgReplace::OnBnClicked(), OnChangeSetting(), CDlgFuncList::OnDestroy(), OnHScroll(), CDlgFuncList::OnInitDialog(), OnKillFocus(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnMOUSEMOVE(), OnPaint(), OnVScroll(), CViewSelect::PrintSelectionInfoMsg(), ReplaceData_CEditView(), RTrimPrevLine(), ScrollAtH(), ScrollAtV(), SearchBracket(), SearchBracketBackward(), SearchBracketBackward2(), SearchBracketForward(), SearchBracketForward2(), SetCurrentColor(), SetParentCaption(), SetReconvertStruct(), ShowHokanMgr(), ShowKeywordHelp(), SmartIndent_CPP(), SyncScrollH(), SyncScrollV(), TranslateCommand_grep(), CTextArea::UpdateAreaMetrics(), と ViewDiffInfo().

CTextArea* CEditView::m_pcTextArea

CEditView.h の 504 行で定義されています。

参照元 Create(), と ~CEditView().

CCaret* CEditView::m_pcCaret

CEditView.h の 505 行で定義されています。

参照元 Create(), と ~CEditView().

CRuler* CEditView::m_pcRuler

CEditView.h の 506 行で定義されています。

参照元 Create(), と ~CEditView().

CTextMetrics CEditView::m_cTextMetrics

CEditView.h の 509 行で定義されています。

CViewSelect CEditView::m_cViewSelect

CEditView.h の 510 行で定義されています。

CViewFont* CEditView::m_pcFontset

CEditView.h の 513 行で定義されています。

参照元 Create(), と ~CEditView().

CViewParser CEditView::m_cParser

CEditView.h の 516 行で定義されています。

CTextDrawer CEditView::m_cTextDrawer

CEditView.h の 517 行で定義されています。

CViewCommander CEditView::m_cCommander

CEditView.h の 518 行で定義されています。

CDropTarget* CEditView::m_pcDropTarget

CEditView.h の 522 行で定義されています。

参照元 Create(), DispatchEvent(), DragEnter(), DragLeave(), と ~CEditView().

bool CEditView::m_bDrawSWITCH [private]

CEditView.h の 524 行で定義されています。

BOOL CEditView::m_bDragSource

CEditView.h の 526 行で定義されています。

参照元 Create(), DragEnter(), DragLeave(), IsCurrentPositionSelected(), OnLBUTTONDOWN(), と OnTimer().

BOOL CEditView::m_bDragMode

CEditView.h の 527 行で定義されています。

参照元 CCaret::MoveCursorProperly(), と OnMOUSEMOVE().

CBregexp CEditView::m_CurRegexp

コンパイルデータ

CEditView.h の 532 行で定義されています。

参照元 CEditView(), ChangeCurRegexp(), CViewCommander::Command_BOOKMARK_PATTERN(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), Create(), DoGrep(), ISearchEnter(), ISearchExec(), ISearchWordMake(), と IsSearchString().

bool CEditView::m_bCurSrchKeyMark

CEditView.h の 533 行で定義されています。

参照元 ChangeCurRegexp(), CViewCommander::Command_SEARCH_CLEARMARK(), Create(), DispLineNew(), DoGrep(), ISearchBack(), ISearchEnter(), と ISearchExec().

wchar_t CEditView::m_szCurSrchKey[_MAX_PATH]

CEditView.h の 534 行で定義されています。

参照元 ChangeCurRegexp(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), Create(), DoGrep(), ISearchBack(), ISearchExec(), ISearchExit(), ISearchSetStatusMsg(), ISearchWordMake(), と IsSearchString().

SSearchOption CEditView::m_sCurSearchOption

CEditView.h の 536 行で定義されています。

参照元 ChangeCurRegexp(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), Create(), DispLineNew(), DoGrep(), ISearchEnter(), ISearchExec(), ISearchWordMake(), と IsSearchString().

bool CEditView::m_bExecutingKeyMacro

CEditView.h の 538 行で定義されています。

参照元 CViewCommander::Command_EXECKEYMACRO(), Create(), CViewCommander::HandleCommand(), と PostprocessCommand_hokan().

HWND CEditView::m_hWnd

CEditView.h の 539 行で定義されています。

参照元 CEditView_Paint::Call_OnPaint(), ChangeCurRegexp(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_CtrlCode_Dialog(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_Favorite(), CViewCommander::Command_GREP(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_MERGE(), CViewCommander::Command_Reconvert(), CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), Create(), CCaret::CreateEditCaret(), DeleteData(), CTextArea::DetectWidthOfLineNumberArea(), DispatchEvent(), DoGrep(), CViewSelect::DrawSelectArea(), CMacro::HandleCommand(), InsertData_CEditView(), ISearchWordMake(), MacroError(), CCaret::MoveCursor(), OnPaint(), OPEN_ExtFromtoExt(), CMainToolBar::ProcSearchBox(), ReplaceData_CEditView(), CCaret::ShowEditCaret(), ShowHokanMgr(), CPPA::stdError(), TagJumpSub(), と ViewDiffInfo().

CLogicPoint CEditView::m_ptSrchStartPos_PHY

CEditView.h の 541 行で定義されています。

参照元 CViewCommander::Command_JUMP_SRCHSTARTPOS(), Create(), ISearchEnter(), IsFuncEnable(), CDlgReplace::OnBnClicked(), CDlgFind::OnBnClicked(), と CMainToolBar::ProcSearchBox().

BOOL CEditView::m_bSearch

CEditView.h の 543 行で定義されています。

参照元 Create(), CDlgReplace::OnBnClicked(), と CDlgFind::OnBnClicked().

CLogicPoint CEditView::m_ptBracketCaretPos_PHY

CEditView.h の 546 行で定義されています。

参照元 Create().

CLogicPoint CEditView::m_ptBracketPairPos_PHY

CEditView.h の 547 行で定義されています。

参照元 Create().

BOOL CEditView::m_bDrawBracketPairFlag

CEditView.h の 548 行で定義されています。

参照元 Create(), OnKillFocus(), と OnSetFocus().

TCHAR* CEditView::m_pszAppName

CEditView.h の 550 行で定義されています。

参照元 Create().

HINSTANCE CEditView::m_hInstance

CEditView.h の 551 行で定義されています。

参照元 Create(), CreateScrollBar(), DoGrep(), CViewCommander::GetInstance(), CMacro::HandleCommand(), ISearchEnter(), OnMOUSEMOVE(), OPEN_ExtFromtoExt(), SplitBoxOnOff(), と TagJumpSub().

HWND CEditView::m_hwndParent

CEditView.h の 552 行で定義されています。

参照元 CViewCommander::Command_EXTHELP1(), CViewCommander::Command_TagsMake(), Create(), CreatePopUpMenu_R(), DispatchEvent(), DoGrep(), DragLeave(), EditViewWndProc(), CViewCommander::GetMainWindow(), IsImeON(), OnLBUTTONDBLCLK(), OnMBUTTONDOWN(), OnRBUTTONUP(), OnXLBUTTONDOWN(), OnXRBUTTONDOWN(), と SetIMECompFormPos().

DLLSHAREDATA* CEditView::m_pShareData

CEditView.h の 554 行で定義されています。

参照元 CMacro::AddLParam(), ChangeCurRegexp(), ConvSelectedArea(), CopySelectedAllLines(), Create(), CreatePopUpMenu_R(), CreateScrollBar(), CCaret::Cursor_UPDOWN(), CTextArea::DetectWidthOfLineNumberArea(), DispatchEvent(), DispLineNew(), CTextDrawer::DispLineNumber(), CRuler::DispRuler(), CTextDrawer::DispVerticalLines(), DoGrep(), DragEnter(), CRuler::DrawRulerBg(), GetCurrentTextForSearch(), CViewCommander::GetShareData(), CMacro::HandleCommand(), ISearchEnter(), IsSearchString(), KeySearchCore(), KeyWordHelpSearchDict(), MakeDiffTmpFile(), CCaret::MoveCursorProperly(), OnChangeSetting(), OnLBUTTONDBLCLK(), OnLBUTTONDOWN(), OnMBUTTONDOWN(), OnMOUSEMOVE(), OnPaint(), OnRBUTTONUP(), OnTimer(), OnVScroll(), OnXLBUTTONDOWN(), OnXRBUTTONDOWN(), PostprocessCommand_hokan(), SetIMECompFormFont(), CCaret::ShowEditCaret(), ShowHokanMgr(), SyncScrollH(), SyncScrollV(), TagJumpSub(), と TranslateCommand_grep().

COpeBlk* CEditView::m_pcOpeBlk

CEditView.h の 557 行で定義されています。

参照元 CViewCommander::ClearOpeBlk(), CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), ConvSelectedArea(), Create(), DeleteData(), DeleteData2(), DoGrep(), CViewCommander::GetOpeBlk(), InsertData_CEditView(), ReplaceData_CEditView(), RTrimPrevLine(), CViewCommander::SetOpeBlk(), と SmartIndent_CPP().

BOOL CEditView::m_bDoing_UndoRedo

CEditView.h の 558 行で定義されています。

参照元 CaretUnderLineOFF(), CaretUnderLineON(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), ConvSelectedArea(), Create(), DeleteData(), DeleteData2(), DoGrep(), InsertData_CEditView(), ReplaceData_CEditView(), RTrimPrevLine(), と SmartIndent_CPP().

HWND CEditView::m_hwndVScrollBar

CEditView.h の 559 行で定義されています。

参照元 AdjustScrollBars(), Create(), CreateScrollBar(), DestroyScrollBar(), DispatchEvent(), と OnSize().

int CEditView::m_nVScrollRate

CEditView.h の 560 行で定義されています。

参照元 AdjustScrollBars(), Create(), と DispatchEvent().

HWND CEditView::m_hwndHScrollBar

CEditView.h の 561 行で定義されています。

参照元 AdjustScrollBars(), Create(), CreateScrollBar(), DestroyScrollBar(), CEditWnd::DispatchEvent(), DispatchEvent(), と OnSize().

HWND CEditView::m_hwndSizeBox

CEditView.h の 562 行で定義されています。

参照元 Create(), CreateScrollBar(), DestroyScrollBar(), DispatchEvent(), OnSize(), と SplitBoxOnOff().

CSplitBoxWnd* CEditView::m_pcsbwVSplitBox

CEditView.h の 563 行で定義されています。

参照元 Create(), DispatchEvent(), OnSize(), と SplitBoxOnOff().

CSplitBoxWnd* CEditView::m_pcsbwHSplitBox

CEditView.h の 564 行で定義されています。

参照元 Create(), DispatchEvent(), OnSize(), と SplitBoxOnOff().

HDC CEditView::m_hdcCompatDC

CEditView.h の 566 行で定義されています。

参照元 Create(), OnPaint(), OnSize(), と ~CEditView().

HBITMAP CEditView::m_hbmpCompatBMP

CEditView.h の 567 行で定義されています。

参照元 Create(), OnSize(), と ~CEditView().

HBITMAP CEditView::m_hbmpCompatBMPOld

CEditView.h の 568 行で定義されています。

参照元 Create(), OnSize(), と ~CEditView().

HFONT CEditView::m_hFontOld

CEditView.h の 570 行で定義されています。

参照元 Create(), OnPaint(), と SetCurrentColor().

BOOL CEditView::m_bCommandRunning

CEditView.h の 571 行で定義されています。

参照元 Create().

int CEditView::m_nMyIndex

CEditView.h の 574 行で定義されています。

参照元 Create(), DispatchEvent(), DragEnter(), OnPaint(), CCaret::ShowEditCaret(), SyncScrollH(), と SyncScrollV().

COLORREF CEditView::m_crBack

CEditView.h の 577 行で定義されています。

参照元 Create(), と CCaret::ShowEditCaret().

int CEditView::m_nOldUnderLineY

CEditView.h の 578 行で定義されています。

参照元 CaretUnderLineOFF(), と CaretUnderLineON().

DWORD CEditView::m_dwTipTimer

CEditView.h の 586 行で定義されています。

参照元 Create(), DispatchEvent(), CViewCommander::HandleCommand(), KeyWordHelpSearchDict(), OnKillFocus(), OnLBUTTONDOWN(), OnMOUSEMOVE(), ShowKeywordHelp(), と CHokanMgr::ShowTip().

CTipWnd CEditView::m_cTipWnd

CEditView.h の 587 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), Create(), CreatePopUpMenu_R(), DispatchEvent(), CViewCommander::HandleCommand(), KeySearchCore(), KeyWordHelpSearchDict(), OnKillFocus(), OnLBUTTONDOWN(), OnMOUSEMOVE(), OnTimer(), CEditDoc::OpenPropertySheet(), と ShowKeywordHelp().

POINT CEditView::m_poTipCurPos

CEditView.h の 588 行で定義されています。

参照元 KeyWordHelpSearchDict(), と OnMOUSEMOVE().

BOOL CEditView::m_bInMenuLoop

CEditView.h の 589 行で定義されています。

参照元 Create(), DispatchEvent(), KeyWordHelpSearchDict(), と ShowKeywordHelp().

CDicMgr CEditView::m_cDicMgr

CEditView.h の 590 行で定義されています。

参照元 KeySearchCore().

BOOL CEditView::m_bHokan

CEditView.h の 593 行で定義されています。

参照元 Create(), DispatchEvent(), OnKillFocus(), OnLBUTTONDOWN(), OnMOUSEMOVE(), PostprocessCommand_hokan(), PreprocessCommand_hokan(), と ShowHokanMgr().

CAutoMarkMgr* CEditView::m_cHistory

CEditView.h の 596 行で定義されています。

参照元 AddCurrentLineToHistory(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), Create(), CEditDoc::InitAllView(), IsFuncEnable(), と ~CEditView().

CRegexKeyword* CEditView::m_cRegexKeyword

CEditView.h の 597 行で定義されています。

参照元 Create(), DispLineNew(), OnPaint(), と ~CEditView().

UINT CEditView::m_uMSIMEReconvertMsg [private]

CEditView.h の 600 行で定義されています。

参照元 Create(), と DispatchEvent().

UINT CEditView::m_uATOKReconvertMsg [private]

CEditView.h の 601 行で定義されています。

参照元 Create(), と DispatchEvent().

UINT CEditView::m_uWM_MSIME_RECONVERTREQUEST

CEditView.h の 603 行で定義されています。

参照元 CViewCommander::Command_Reconvert(), と Create().

int CEditView::m_nLastReconvLine [private]

CEditView.h の 606 行で定義されています。

参照元 SetReconvertStruct().

int CEditView::m_nLastReconvIndex [private]

CEditView.h の 607 行で定義されています。

参照元 SetReconvertStruct().

bool CEditView::m_bUnderLineON [private]

CEditView.h の 609 行で定義されています。

CMigemo* CEditView::m_pcmigemo [private]

CEditView.h の 611 行で定義されています。

参照元 Create(), ISearchEnter(), と ISearchWordMake().

ESearchDirection CEditView::m_nISearchDirection [private]

CEditView.h の 613 行で定義されています。

参照元 ISearchEnter(), ISearchExec(), ISearchExit(), ISearchSetStatusMsg(), IsISearchEnabled(), と OnMOUSEMOVE().

int CEditView::m_nISearchMode [private]

CEditView.h の 614 行で定義されています。

参照元 Create(), ISearchEnter(), ISearchExec(), ISearchExit(), ISearchSetStatusMsg(), ISearchWordMake(), IsISearchEnabled(), OnLBUTTONDOWN(), OnMOUSEMOVE(), と TranslateCommand_isearch().

bool CEditView::m_bISearchWrap [private]

CEditView.h の 615 行で定義されています。

参照元 ISearchEnter(), と ISearchExec().

CLayoutRange CEditView::m_sISearchHistory[256] [private]

CEditView.h の 617 行で定義されています。

参照元 ISearchBack(), ISearchEnter(), と ISearchExec().

bool CEditView::m_bISearchFlagHistory[256] [private]

CEditView.h の 619 行で定義されています。

参照元 ISearchBack(), と ISearchExec().

int CEditView::m_nISearchHistoryCount [private]

CEditView.h の 620 行で定義されています。

参照元 ISearchBack(), ISearchEnter(), ISearchExec(), ISearchExit(), と ISearchSetStatusMsg().

bool CEditView::m_bISearchFirst [private]

CEditView.h の 621 行で定義されています。

参照元 ISearchBack(), ISearchEnter(), と ISearchExec().

bool CEditView::m_bActivateByMouse [private]

マウスによるアクティベート

CEditView.h の 624 行で定義されています。

参照元 DispatchEvent().

このクラスの説明は次のファイルから生成されました:
  • 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 Nov 17 20:28:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditView メンバ一覧

これは全メンバの一覧です。CEditView継承メンバも含んでいます。

_SetDragMode(BOOL b) | CEditView | [inline]
AddCurrentLineToHistory(void) | CEditView |
AddToCmdArr(const TCHAR *) | CEditView |
AdjustScrollBars(void) | CEditView |
AnalyzeDiffInfo(const char *, int) | CEditView |
BOOL(WINAPI *AT_ImmSetReconvertString)(HIMC | CEditView |
Call_OnPaint(int nPaintFlag, bool bUseMemoryDC) | CEditView_Paint |
CaretUnderLineOFF(bool) | CEditView |
CaretUnderLineON(bool) | CEditView |
CEditView(CEditWnd *pcEditWnd) | CEditView |
ChangeCurRegexp(void) | CEditView |
ConvSelectedArea(int) | CEditView |
CopyCurLine(bool bAddCRLFWhenCopy, enumEOLType neweol, bool bEnableLineModePaste) | CEditView |
CopySelectedAllLines(const wchar_t *, BOOL) | CEditView |
CopyViewStatus(CEditView *) | CEditView |
Create(HINSTANCE, HWND, CEditDoc *, int, BOOL) | CEditView |
CreatePopUpMenu_R(void) | CEditView |
CreateScrollBar(void) | CEditView |
CViewCalc(const CEditView *pOwner) | CViewCalc | [inline]
DeleteData(bool bRedraw) | CEditView |
DeleteData2(const CLayoutPoint &ptCaretPos, CLogicInt nDelLen, CNativeW *pcMem) | CEditView |
DestroyScrollBar(void) | CEditView |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditView |
DispLineNew(HDC hdc, const CLayout *pcLayout, DispPos *pDispPos, CLayoutInt nLineTo, bool bSelected) | CEditView | [protected]
DispTextSelected(HDC hdc, CLayoutInt nLineNum, const CMyPoint &ptXY, CLayoutInt nX_Layout) | CEditView | [protected]
DoGrep(const CNativeW *, const CNativeT *, const CNativeT *, BOOL, const SSearchOption &, ECodeType, BOOL, int) | CEditView |
DoGrepFile(CDlgCancel *, HWND, const wchar_t *, int *, const TCHAR *, const SSearchOption &, ECodeType, BOOL, int, CBregexp *, int *, const TCHAR *, CNativeW &) | CEditView |
DoGrepTree(CDlgCancel *, HWND, const wchar_t *, int *, const TCHAR *, const TCHAR *, BOOL, const SSearchOption &, ECodeType, BOOL, int, CBregexp *, int, int *) | CEditView |
DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CEditView |
DragLeave(void) | CEditView |
DragOver(DWORD, POINTL, LPDWORD) | CEditView |
DrawBracketPair(bool) | CEditView |
Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CEditView |
DWORD | CEditView |
ExecCmd(const TCHAR *, int) | CEditView |
GetCaret() | CEditView | [inline]
GetCaret() const | CEditView | [inline]
GetColorIndex(HDC, const CLayout *, int) | CEditView | [protected]
GetCommander() | CEditView | [inline]
GetCurrentTextForSearch(CNativeW &) | CEditView |
GetCurrentTextForSearchDlg(CNativeW &) | CEditView |
GetDocument() const | CEditView | [inline]
GetDocument() | CEditView | [inline]
GetDrawSwitch() const | CEditView | [inline]
GetEditView() | CEditView | [inline, virtual]
GetEditView() const | CEditView | [inline]
GetFontset() | CEditView | [inline]
GetFontset() const | CEditView | [inline]
GetHwnd() const | CEditView | [inline]
GetParser() const | CEditView | [inline]
GetRuler() | CEditView | [inline]
GetRuler() const | CEditView | [inline]
GetSelectedData(CNativeW *, BOOL, const wchar_t *, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN) | CEditView |
GetSelectionInfo() | CEditView | [inline]
GetSelectionInfo() const | CEditView | [inline]
GetTabSpace() const | CViewCalc | [protected]
GetTextArea() | CEditView | [inline]
GetTextArea() const | CEditView | [inline]
GetTextDrawer() const | CEditView | [inline]
GetTextMetrics() | CEditView | [inline]
GetTextMetrics() const | CEditView | [inline]
GetWrapMode(CLayoutInt *newKetas) | CEditView |
HokanSearchByFile(const wchar_t *, BOOL, CNativeW **, int, int) | CEditView |
InsertData_CEditView(CLayoutPoint ptInsertPos, const wchar_t *pData, int nDataLen, CLayoutPoint *pptNewPos, bool bRedraw) | CEditView |
int | CEditView |
IsBkBitmap() const | CEditView | [inline]
IsBracket(const wchar_t *, CLogicInt, CLogicInt) | CEditView | [protected]
IsCurrentPositionSelected(CLayoutPoint ptCaretPos) | CEditView |
IsCurrentPositionSelectedTEST(const CLayoutPoint &ptCaretPos, const CLayoutRange &sSelect) const | CEditView |
IsCurrentPositionURL(const CLayoutPoint &ptCaretPos, CLogicRange *pUrlRange, wchar_t **) | CEditView |
ISearchBack(void) | CEditView | [private]
ISearchEnter(int mode, ESearchDirection direction) | CEditView | [private]
ISearchExec(WORD wChar) | CEditView | [private]
ISearchExec(const char *pszText) | CEditView | [private]
ISearchExec(bool bNext) | CEditView | [private]
ISearchExit() | CEditView | [private]
ISearchSetStatusMsg(CNativeT *msg) const | CEditView | [private]
ISearchWordMake(void) | CEditView | [private]
IsImeON(void) | CEditView |
IsInsMode() const | CEditView |
IsISearchEnabled(int nCommand) const | CEditView |
IsSearchString(const wchar_t *, CLogicInt, CLogicInt, CLogicInt *, CLogicInt *) | CEditView |
KeySearchCore(const CNativeW *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, CLayoutInt nColumn) const | CViewCalc |
LineColmnToIndex(const CDocLine *pcDocLine, CLayoutInt nColumn) const | CViewCalc |
LineColmnToIndex2(const CLayout *pcLayout, CLayoutInt nColumn, CLayoutInt *pnLineAllColLen) const | CViewCalc |
LineIndexToColmn(const CLayout *pcLayout, CLogicInt nIndex) const | CViewCalc |
LineIndexToColmn(const CDocLine *pcLayout, CLogicInt nIndex) const | CViewCalc |
m_bActivateByMouse | CEditView | [private]
m_bCommandRunning | CEditView |
m_bCurSrchKeyMark | CEditView |
m_bDoing_UndoRedo | CEditView |
m_bDragMode | CEditView |
m_bDragSource | CEditView |
m_bDrawBracketPairFlag | CEditView |
m_bDrawSWITCH | CEditView | [private]
m_bExecutingKeyMacro | CEditView |
m_bHokan | CEditView |
m_bInMenuLoop | CEditView |
m_bISearchFirst | CEditView | [private]
m_bISearchFlagHistory | CEditView | [private]
m_bISearchWrap | CEditView | [private]
m_bSearch | CEditView |
m_bUnderLineON | CEditView | [private]
m_cCommander | CEditView |
m_cDicMgr | CEditView |
m_cHistory | CEditView |
m_cParser | CEditView |
m_crBack | CEditView |
m_cRegexKeyword | CEditView |
m_cTextDrawer | CEditView |
m_cTextMetrics | CEditView |
m_cTipWnd | CEditView |
m_CurRegexp | CEditView |
m_cViewSelect | CEditView |
m_dwTipTimer | CEditView |
m_hAtokModule | CEditView |
m_hbmpCompatBMP | CEditView |
m_hbmpCompatBMPOld | CEditView |
m_hdcCompatDC | CEditView |
m_hFontOld | CEditView |
m_hInstance | CEditView |
m_hWnd | CEditView |
m_hwndHScrollBar | CEditView |
m_hwndParent | CEditView |
m_hwndSizeBox | CEditView |
m_hwndVScrollBar | CEditView |
m_nISearchDirection | CEditView | [private]
m_nISearchHistoryCount | CEditView | [private]
m_nISearchMode | CEditView | [private]
m_nLastReconvIndex | CEditView | [private]
m_nLastReconvLine | CEditView | [private]
m_nMyIndex | CEditView |
m_nOldUnderLineY | CEditView |
m_nVScrollRate | CEditView |
m_pcCaret | CEditView |
m_pcDropTarget | CEditView |
m_pcEditDoc | CEditView |
m_pcEditWnd | CEditView |
m_pcFontset | CEditView |
m_pcmigemo | CEditView | [private]
m_pcOpeBlk | CEditView |
m_pcRuler | CEditView |
m_pcsbwHSplitBox | CEditView |
m_pcsbwVSplitBox | CEditView |
m_pcTextArea | CEditView |
m_poTipCurPos | CEditView |
m_pShareData | CEditView |
m_pszAppName | CEditView |
m_ptBracketCaretPos_PHY | CEditView |
m_ptBracketPairPos_PHY | CEditView |
m_ptSrchStartPos_PHY | CEditView |
m_sCurSearchOption | CEditView |
m_sISearchHistory | CEditView | [private]
m_szCurSrchKey | CEditView |
m_uATOKReconvertMsg | CEditView | [private]
m_uMSIMEReconvertMsg | CEditView | [private]
m_uWM_MSIME_RECONVERTREQUEST | CEditView |
MakeDiffTmpFile(TCHAR *, HWND) | CEditView |
MoveCursorSelecting(CLayoutPoint ptWk_CaretPos, bool bSelect, int=_CARETMARGINRATE) | CEditView |
MyGetClipboardData(CNativeW &, BOOL *, BOOL *=NULL) | CEditView |
MySetClipboardData(const ACHAR *, int, bool bColmnSelect, bool=FALSE) | CEditView |
MySetClipboardData(const WCHAR *, int, bool bColmnSelect, bool=FALSE) | CEditView |
OnChangeSetting(void) | CEditView |
OnHScroll(int, int) | CEditView |
OnKillFocus(void) | CEditView |
OnLBUTTONDBLCLK(WPARAM, int, int) | CEditView |
OnLBUTTONDOWN(WPARAM, int, int) | CEditView |
OnLBUTTONUP(WPARAM, int, int) | CEditView |
OnMBUTTONDOWN(WPARAM, int, int) | CEditView |
OnMOUSEMOVE(WPARAM, int, int) | CEditView |
OnMOUSEWHEEL(WPARAM, LPARAM) | CEditView |
OnMove(int, int, int, int) | CEditView |
OnPaint(HDC, PAINTSTRUCT *, BOOL) | CEditView |
OnRBUTTONDOWN(WPARAM, int, int) | CEditView |
OnRBUTTONUP(WPARAM, int, int) | CEditView |
OnSetFocus(void) | CEditView |
OnSize(int, int) | CEditView |
OnTimer(HWND, UINT, UINT, DWORD) | CEditView |
OnVScroll(int, int) | CEditView |
OnXLBUTTONDOWN(WPARAM, int, int) | CEditView |
OnXRBUTTONDOWN(WPARAM, int, int) | CEditView |
OPEN_ExtFromtoExt(BOOL, BOOL, const TCHAR *[], const TCHAR *[], int, int, const TCHAR *) | CEditView |
PostprocessCommand_hokan(void) | CEditView |
PRECONVERTSTRING | CEditView |
PreprocessCommand_hokan(int nCommand) | CEditView |
ProcessCommand_isearch(int, bool, LPARAM, LPARAM, LPARAM, LPARAM) | CEditView |
Redraw(void) | CEditView |
RedrawAll(void) | CEditView |
ReplaceData_CEditView(CLayoutRange sDelRange, CNativeW *pcmemCopyOfDeleted, const wchar_t *pInsData, CLogicInt nInsDataLen, bool bRedraw) | CEditView |
RTrimPrevLine(void) | CEditView |
ScrollAtH(CLayoutInt) | CEditView |
ScrollAtV(CLayoutInt) | CEditView |
ScrollByH(CLayoutInt hl) | CEditView | [inline]
ScrollByV(CLayoutInt vl) | CEditView | [inline]
SearchBracket(const CLayoutPoint &ptPos, CLayoutPoint *pptLayoutNew, int *mode) | CEditView |
SearchBracketBackward(CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *dnChar, const wchar_t *upChar, int *mode) | CEditView |
SearchBracketBackward2(CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *dnChar, const wchar_t *upChar, int *mode) | CEditView |
SearchBracketForward(CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *upChar, const wchar_t *dnChar, int *mode) | CEditView |
SearchBracketForward2(CLogicPoint ptPos, CLayoutPoint *pptLayoutNew, const wchar_t *upChar, const wchar_t *dnChar, int *mode) | CEditView |
SendStatusMessage(const TCHAR *msg) | CEditView |
SendStatusMessage2(const TCHAR *msg) | CEditView |
SetBracketPairPos(bool) | CEditView |
SetCurrentColor(HDC, int) | CEditView |
SetDrawSwitch(bool b) | CEditView | [inline]
SetFont(void) | CEditView |
SetGrepResult(wchar_t *pWork, int *pnWorkLen, const TCHAR *pszFullPath, const TCHAR *pszCodeName, int nLine, int nColm, const wchar_t *pCompareData, int nLineLen, int nEolCodeLen, const wchar_t *pMatchData, int nMatchLen, BOOL bGrepOutputLine, int nGrepOutputStyle) | CEditView |
SetIMECompFormFont(void) | CEditView |
SetIMECompFormPos(void) | CEditView |
SetInsMode(bool) | CEditView |
SetParentCaption(void) | CEditView |
SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode) | CEditView |
SetSelectionFromReonvert(const PRECONVERTSTRING pReconv, bool bUnicode) | CEditView |
ShowHokanMgr(CNativeW &cmemData, BOOL bAutoDecided) | CEditView |
ShowKeywordHelp(POINT po, LPCWSTR pszHelp, LPRECT prcHokanWin) | CEditView |
SmartIndent_CPP(wchar_t) | CEditView |
SplitBoxOnOff(BOOL, BOOL, BOOL) | CEditView |
SyncScrollH(CLayoutInt) | CEditView |
SyncScrollV(CLayoutInt) | CEditView |
TagJumpSub(const TCHAR *pszJumpToFile, CMyPoint ptJumpTo, bool bClose=false, bool bRelFromIni=false) | CEditView |
TGWRAP_FULL Enum 値 | CEditView |
TGWRAP_NONE Enum 値 | CEditView |
TGWRAP_PROP Enum 値 | CEditView |
TGWRAP_WINDOW Enum 値 | CEditView |
TOGGLE_WRAP_ACTION Enum | CEditView |
TranslateCommand_grep(EFunctionCode &, bool &, LPARAM &, LPARAM &, LPARAM &, LPARAM &) | CEditView |
TranslateCommand_isearch(EFunctionCode &, bool &, LPARAM &, LPARAM &, LPARAM &, LPARAM &) | CEditView |
ViewDiffInfo(const TCHAR *, const TCHAR *, int) | CEditView |
~CEditView() | CEditView |
~CEditView_Paint() | CEditView_Paint | [inline, virtual]
~CViewCalc() | CViewCalc | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEditView_Paint

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditView_Paint

#include <CEditView_Paint.h>

CEditView_Paintに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual CEditView * | GetEditView ()=0
virtual | ~CEditView_Paint ()
void | Call_OnPaint (int nPaintFlag, bool bUseMemoryDC)

説明

CEditView_Paint.h の 16 行で定義されています。

コンストラクタとデストラクタ

virtual CEditView_Paint::~CEditView_Paint ( ) [inline, virtual]

CEditView_Paint.h の 21 行で定義されています。

関数

virtual CEditView* CEditView_Paint::GetEditView ( ) [pure virtual]

CEditViewで実装されています。

参照元 Call_OnPaint().

void CEditView_Paint::Call_OnPaint | ( | int | nPaintFlag,
 |  | bool | bUseMemoryDC
 | ) |  |

引数:
nPaintFlag | 描画する領域を選択する
bUseMemoryDC | メモリDCを使用する

CEditView_Paint.cpp の 12 行で定義されています。

参照先 CTextArea::GetAreaBottom(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), GetEditView(), CEditView::GetTextArea(), CEditView::m_hWnd, MergeRect(), CEditView::OnPaint(), PAINT_BODY, PAINT_LINENUMBER, と PAINT_RULER.

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CEditView::CopySelectedAllLines(), CEditView::DeleteData(), CTextArea::DetectWidthOfLineNumberArea(), と CEditView::ReplaceData_CEditView().

このクラスの説明は次のファイルから生成されました:
  • CEditView_Paint.h
  • CEditView_Paint.cpp
Sakura-Editorに対してSat Nov 17 20:28:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditView_Paint メンバ一覧

これは全メンバの一覧です。CEditView_Paint継承メンバも含んでいます。

Call_OnPaint(int nPaintFlag, bool bUseMemoryDC) | CEditView_Paint |
GetEditView()=0 | CEditView_Paint | [pure virtual]
~CEditView_Paint() | CEditView_Paint | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEditWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditWnd

編集ウィンドウ（外枠）管理クラス [詳細]

#include <CEditWnd.h>

CEditWndのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CEditWnd ()
~CEditWnd ()
ウィンドウ生成用の矩形を取得
HWND | Create (HINSTANCE hInstance, int nGroup)
作成
void | _GetTabGroupInfo (STabGroupInfo *pTabGroupInfo, int &nGroup)
void | _GetWindowRectForInit (CMyRect *rcResult, int nGroup, const STabGroupInfo &sTabGroupInfo)
ウィンドウ生成用の矩形を取得
HWND | _CreateMainWindow (int nGroup, const STabGroupInfo &sTabGroupInfo)
void | _AdjustInMonitor (const STabGroupInfo &sTabGroupInfo)
void | OpenDocumentWhenCreate (const TCHAR *pszPath, ECodeType nCharCode, bool bReadOnly)
起動時のファイルオープン処理
void | SetDocumentTypeWhenCreate (ECodeType nCharCode, bool bReadOnly, int nDocumentType=-1)
void | MessageLoop (void)
LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
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)
int | OnClose (void)
void | OnDropFiles (HDROP)
BOOL | OnPrintPageSetting (void)
LRESULT | OnTimer (WPARAM, LPARAM)
void | OnEditTimer (void)
void | OnCaptionTimer (void)
void | OnSysMenuTimer (void)
void | OnCommand (WORD, WORD, HWND)
LRESULT | OnNcLButtonDown (WPARAM, LPARAM)
LRESULT | OnNcLButtonUp (WPARAM, LPARAM)
LRESULT | OnLButtonDblClk (WPARAM, LPARAM)
void | ChangeFileNameNotify (const TCHAR *pszTabCaption, const TCHAR *pszFilePath, BOOL m_bIsGrep)
void | InitMenu (HMENU, UINT, BOOL)
void | InitMenubarMessageFont (void)
LRESULT | WinListMenu (HMENU hMenu, EditNode *pEditNodeArr, int nRowNum, BOOL bFull)
現在開いている編集窓のリストをメニューにする
LRESULT | PopupWinList (bool bMousePos)
ウィンドウ一覧をポップアップ表示
void | LayoutToolBar (void)
void | LayoutFuncKey (void)
void | LayoutTabBar (void)
void | LayoutStatusBar (void)
void | EndLayoutBars (BOOL bAdjust=TRUE)
void | PrintPreviewModeONOFF (void)
void | SetWindowIcon (HICON, int)
ウィンドウのアイコン設定
void | GetDefaultIcon (HICON &hIconBig, HICON &hIconSmall) const
bool | GetRelatedIcon (const TCHAR *szFile, HICON &hIconBig, HICON &hIconSmall) const
BOOL | IsActiveApp () const
自アプリがアクティブかどうか // 2007.03.08 ryoji
void | GetTooltipText (TCHAR *wszBuf, size_t nBufCount, int nID) const
ツールチップのテキストを取得。2007.09.08 kobake 追加
bool | IsInPreviewMode ()
印刷プレビュー中かどうか
void | PrintMenubarMessage (const TCHAR *msg) const
void | SendStatusMessage (const TCHAR *msg)
メッセージの表示
void | WindowTopMost (int)
LRESULT | Views_DispatchEvent (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
void | Views_RedrawAll ()
void | Views_Redraw ()
void | SetActivePane (int)
int | GetActivePane (void) const
void | RedrawInactivePane (void)
void | Views_DisableSelectArea (bool bRedraw)
BOOL | DetectWidthOfLineNumberAreaAllPane (bool bRedraw)
void | ChangeLayoutParam (bool bShowProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas)
CLogicPoint * | SavePhysPosOfAllView (void)
void | RestorePhysPosOfAllView (CLogicPoint *pptPosArray)
void | SetDebugModeON (void)
void | SetDebugModeOFF (void)
デバックモニタモードの解除
HWND | GetHwnd () const
CMenuDrawer & GetMenuDrawer ()
CEditDoc & GetDocument ()
const CEditDoc & | GetDocument () const
const CEditView & | GetActiveView () const
CEditView & GetActiveView ()
void | IncrementTimerCount (int nInterval)
周期内でm_nTimerCountをインクリメント
void | SetDragPosOrg (CMyPoint ptDragPosOrg)
void | SetDragMode (bool bDragMode)
bool | GetDragMode () const
const CMyPoint & | GetDragPosOrg () const
int | GetCurrentFocus () const
void | SetCurrentFocus (int n)

Public 変数

CMainToolBar m_cToolbar
ツールバー
CTabWnd m_cTabWnd
タブウインドウ //@@ 2003.05.31 MIK
CFuncKeyWnd m_CFuncKeyWnd
ファンクションバー
CMainStatusBar m_cStatusBar
ステータスバー
CPrintPreview * m_pPrintPreview
印刷プレビュー表示情報。必要になったときのみインスタンスを生成する。
CSplitterWnd m_cSplitterWnd
分割フレーム
CEditView * | m_pcEditViewArr [4]
ビュー
int | m_nActivePaneIndex
アクティブなビュー
CDlgFind m_cDlgFind
CDlgReplace m_cDlgReplace
CDlgJump m_cDlgJump
CDlgGrep m_cDlgGrep
CDlgFuncList m_cDlgFuncList
CDlgOpenFile m_cDlgOpenFile
CHokanMgr m_cHokanMgr
CPropCommon m_cPropCommon
CPropTypes m_cPropTypes

Protected 型

enum | EIconClickStatus { icNone, icDown, icClicked, icDoubleClicked }

Protected メソッド

int | CreateFileDropDownMenu (HWND)
void | Timer_ONOFF (BOOL)

Private 変数

HINSTANCE | m_hInstance
HWND | m_hWnd
HWND | m_hwndParent
DLLSHAREDATA * m_pShareData
CMenuDrawer m_CMenuDrawer
UINT | m_uMSIMEReconvertMsg
UINT | m_uATOKReconvertMsg
const TCHAR * | m_pszWndClass
ウィンドウクラス名
BOOL | m_bIsActiveApp
自アプリがアクティブかどうか // 2007.03.08 ryoji
LPTSTR | m_pszLastCaption
int | m_nTimerCount
OnTimer用 2003.08.29 wmlhq
int | m_nCurrentFocus
現在のフォーカス情報
int | m_nWinSizeType
サイズ変更のタイプ。SIZE_MAXIMIZED, SIZE_MINIMIZED 等。
HFONT | m_hFontCaretPosInfo
キャレットの行桁位置表示用フォント
int | m_nCaretPosInfoCharWidth
キャレットの行桁位置表示用フォントの幅
int | m_nCaretPosInfoCharHeight
キャレットの行桁位置表示用フォントの高さ
bool | m_bDragMode
CMyPoint m_ptDragPosOrg
BOOL | m_bUIPI
EIconClickStatus m_IconClicked

説明

編集ウィンドウ（外枠）管理クラス

CEditWnd.h の 74 行で定義されています。

列挙型

enum CEditWnd::EIconClickStatus [protected]

列挙型の値:
icNone
icDown
icClicked
icDoubleClicked

CEditWnd.h の 244 行で定義されています。

コンストラクタとデストラクタ

CEditWnd::CEditWnd ( )

CEditWnd.cpp の 113 行で定義されています。

参照先 g_pcEditWnd, CShareData::getInstance(), CShareData::GetShareData(), InitMenubarMessageFont(), m_pcEditViewArr, と m_pShareData.

CEditWnd::~CEditWnd ( )

ウィンドウ生成用の矩形を取得

CEditWnd.cpp の 139 行で定義されています。

参照先 g_pcEditWnd, m_hFontCaretPosInfo, m_hWnd, m_pcEditViewArr, m_pszLastCaption, と NULL.

関数

HWND CEditWnd::Create | ( | HINSTANCE | hInstance,
 |  | int | nGroup
 | ) |  |

作成

作成

日付:
2002.03.07 genta nDocumentType追加

2007.06.26 ryoji nGroup追加

引数:
hInstance | [in] Instance Handle
nGroup | [in] グループID

CEditWnd.cpp の 397 行で定義されています。

参照先 _AdjustInMonitor(), _CreateMainWindow(), _GetTabGroupInfo(), CShareData::AddEditWndList(), CPropTypes::Create(), CPropCommon::Create(), CEditView::Create(), CSplitterWnd::Create(), CMenuDrawer::Create(), CHokanMgr::DoModeless(), EndLayoutBars(), FALSE, GetDocument(), CEditView::GetHwnd(), CWnd::GetHwnd(), GetHwnd(), CShareData::getInstance(), GetMenuDrawer(), GSTR_APPNAME, GSTR_APPNAME_A, GWLP_USERDATA, IDT_EDIT, TSingleInstance< CEditApp >::Instance(), LayoutFuncKey(), LayoutStatusBar(), LayoutTabBar(), LayoutToolBar(), LONG_PTR, m_bIsActiveApp, m_bUIPI, m_cHokanMgr, m_CMenuDrawer, m_cPropCommon, m_cPropTypes, m_cSplitterWnd, m_hInstance, m_hWnd, DLLSHAREDATA::m_hwndTray, DLLSHAREDATA::m_nEditArrNum, Types::m_nImeState, m_nTimerCount, m_pcEditViewArr, m_pShareData, DLLSHAREDATA::m_Types, MAX_EDITWINDOWS, MY_RUNNINGTIMER, MY_TRACETIME, MyInitCommonControls(), MYMESSAGEBOX, MYMESSAGEBOX_A, MYWM_UIPI_CHECK, NULL, OkMessage, CEditView::OnSetFocus(), CSplitterWnd::SetChildWndArr(), CEditDoc::SetImeMode(), CShareData::SetTraceOutSource(), SetWindowLongPtr, Timer_ONOFF(), と TRUE.

参照元 CEditApp::CEditApp().

void CEditWnd::_GetTabGroupInfo | ( | STabGroupInfo * | pTabGroupInfo,
 |  | int & | nGroup
 | ) |  |

CEditWnd.cpp の 269 行で定義されています。

参照先 CShareData::GetEditNodeAt(), EditNode::GetHwnd(), CShareData::getInstance(), STabGroupInfo::hwndTop, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, m_pShareData, EditNode::m_showCmdRestore, CommonSetting::m_sTabBar, NULL, と STabGroupInfo::wpTop.

参照元 Create().

void CEditWnd::_GetWindowRectForInit | ( | CMyRect * | rcResult,
 |  | int | nGroup,
 |  | const STabGroupInfo & | sTabGroupInfo
 | ) |  |

ウィンドウ生成用の矩形を取得

CEditWnd.cpp の 159 行で定義されています。

参照先 CCommandLine::GetFileInfo(), GetMonitorWorkRect(), STabGroupInfo::hwndTop, CCommandLine::Instance(), STabGroupInfo::IsValid(), DLLSHAREDATA::m_Common, CommonSetting_Window::m_nSaveWindowPos, CommonSetting_Window::m_nSaveWindowSize, FileInfo::m_nWindowOriginX, FileInfo::m_nWindowOriginY, FileInfo::m_nWindowSizeX, FileInfo::m_nWindowSizeY, CommonSetting_Window::m_nWinPosX, CommonSetting_Window::m_nWinPosY, CommonSetting_Window::m_nWinSizeCX, CommonSetting_Window::m_nWinSizeCY, m_pShareData, CommonSetting::m_sWindow, CMyRect::SetXYWH(), WINSIZEMODE_DEF, と STabGroupInfo::wpTop.

参照元 _CreateMainWindow().

HWND CEditWnd::_CreateMainWindow | ( | int | nGroup,
 |  | const STabGroupInfo & | sTabGroupInfo
 | ) |  |

CEditWnd.cpp の 218 行で定義されています。

参照先 _GetWindowRectForInit(), CEditWndProc(), FN_APP_ICON, GetAppIcon(), CMyRect::Height(), ICON_DEFAULT_APP, IDR_MENU1, m_hInstance, m_pszWndClass, NULL, と CMyRect::Width().

参照元 Create().

void CEditWnd::_AdjustInMonitor ( const STabGroupInfo & sTabGroupInfo )

CEditWnd.cpp の 305 行で定義されています。

参照先 GetHwnd(), GetMonitorWorkRect(), GetWindowLongPtr, STabGroupInfo::hwndTop, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, CommonSetting_Window::m_nSaveWindowSize, CommonSetting_Window::m_nWinSizeType, m_pShareData, CommonSetting::m_sTabBar, CommonSetting::m_sWindow, WINSIZEMODE_DEF, WINSIZEMODE_SET, と STabGroupInfo::wpTop.

参照元 Create().

void CEditWnd::OpenDocumentWhenCreate | ( | const TCHAR * | pszPath,
 |  | ECodeType | nCharCode,
 |  | bool | bReadOnly
 | ) |  |

起動時のファイルオープン処理

引数:
pszPath | [in] 最初に開くファイルのパス．NULLのとき開くファイル無し．
nCharCode | [in] 漢字コード
bReadOnly | [in] 読みとり専用で開くかどうか

CEditWnd.cpp の 540 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CEditDoc::FileRead(), GetDocument(), GetHwnd(), CommonSetting_File::m_bQueryIfCodeChange, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sFile, と PostMessageAny.

参照元 CNormalProcess::Initialize().

void CEditWnd::SetDocumentTypeWhenCreate | ( | ECodeType | nCharCode,
 |  | bool | bReadOnly,
 |  | int | nDocumentType = -1
 | ) |  |

引数:
nCharCode | [in] 漢字コード
bReadOnly | [in] 読みとり専用で開くかどうか
nDocumentType | [in] 文書タイプ．-1のとき強制指定無し．

CEditWnd.cpp の 571 行で定義されています。

参照先 GetDocument(), CEditDoc::LockDocumentType(), CEditDoc::m_bReadOnly, CEditDoc::OnChangeSetting(), と CEditDoc::SetDocumentType().

参照元 CNormalProcess::Initialize().

void CEditWnd::MessageLoop ( void )

CEditWnd.cpp の 695 行で定義されています。

参照先 CMainToolBar::EatMessage(), CDialog::GetHwnd(), GetHwnd(), CPrintPreview::GetPrintPreviewBarHANDLE_Safe(), m_cDlgFind, m_cDlgFuncList, m_cDlgGrep, m_cDlgReplace, m_cHokanMgr, m_cToolbar, DLLSHAREDATA::m_hAccel, m_pPrintPreview, m_pShareData, MyIsDialogMessage(), と NULL.

参照元 CNormalProcess::MainLoop().

LRESULT CEditWnd::DispatchEvent | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 727 行で定義されています。

参照先 _ALT, _CARETMARGINRATE, _countof, _tcscpy(), CMainToolBar::AcceptSharedSearchKey(), ActivateFrameWindow(), CShareData::AddEditWndList(), CNativeA::AppendNativeData(), CNativeA::AppendString(), auto_memcpy(), BOOL, CFuncKeyWnd::Close(), CODE_DEFAULT, CreateFileDropDownMenu(), CEditView::CreateScrollBar(), CShareData::DeleteEditWndList(), CEditView::DestroyScrollBar(), CMainToolBar::DestroyToolBar(), CMenuDrawer::DrawItem(), EndLayoutBars(), F_ADDTAIL_W, F_CHGMOD_EOL_CR, F_CHGMOD_EOL_CRLF, F_CHGMOD_EOL_LF, F_CHGMOD_INS, F_COPY, F_GOFILEEND, F_JUMP_DIALOG, F_PASTE, F_RECKEYMACRO, FALSE, GetActiveView(), CEditView::GetCaret(), CEditView::GetCommander(), CKeyBind::GetDefFuncCode(), GetDocument(), CShareData::GetEditNode(), CEditDoc::GetFileInfo(), CSplitterWnd::GetFirstPane(), CShareData::GetGroupId(), GetHwnd(), CShareData::getInstance(), CKeyBind::GetKeyStrList(), CSplitterWnd::GetLastPane(), CDocLine::GetLengthWithoutEOL(), CDocLineMgr::GetLineInfo(), CDocLineMgr::GetLineStr(), CMainToolBar::GetRebarHwnd(), CEditView::GetSelectionInfo(), CMainStatusBar::GetStatusHwnd(), CNativeA::GetStringPtr(), CMainToolBar::GetToolbarHwnd(), GetTooltipText(), GetWindowLongPtr, DLLSHAREDATA::GetWorkBuffer(), DLLSHAREDATA::GetWorkBufferCount(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CEditDoc::HandleCommand(), CViewCommander::HandleCommand(), IDT_CAPTION, IDT_TOOLBAR, IDW_STATUSBAR, InitMenu(), TSingleInstance< CEditApp >::Instance(), CShareData::IsEditWnd(), IsVisualStyle(), LayoutFuncKey(), LayoutStatusBar(), LayoutTabBar(), CLayoutMgr::LayoutToLogic(), LayoutToolBar(), CLayoutMgr::LogicToLayout(), EditNode::m_bClosing, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_bEditWndChanging, m_bIsActiveApp, DLLSHAREDATA::m_bRecordingKeyMacro, CommonSetting_Window::m_bScrollBarHorz, CViewSelect::m_bSelectingLock, CommonSetting_TabBar::m_bTab_RetainEmptyWin, m_bUIPI, CEditDoc::m_cDocLineMgr, m_CFuncKeyWnd, CEditDoc::m_cLayoutMgr, m_CMenuDrawer, DLLSHAREDATA::m_Common, m_cSplitterWnd, m_cStatusBar, m_cTabWnd, m_cToolbar, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, m_hInstance, m_hWnd, DLLSHAREDATA::m_hwndDebug, CEditView::m_hwndHScrollBar, DLLSHAREDATA::m_hwndRecordingKeyMacro, DLLSHAREDATA::m_hwndTray, DLLSHAREDATA::m_nKeyNameArrNum, CommonSetting_Window::m_nSaveWindowPos, m_nTimerCount, CommonSetting_Window::m_nWinPosX, CommonSetting_Window::m_nWinPosY, m_pcEditViewArr, DLLSHAREDATA::m_pKeyNameArr, m_pPrintPreview, m_pShareData, m_pszLastCaption, CommonSetting::m_sTabBar, CommonSetting::m_sWindow, m_uATOKReconvertMsg, m_uMSIMEReconvertMsg, CMenuDrawer::MeasureItem(), CEditView::MoveCursorSelecting(), CMenuDrawer::MyAppendMenu(), MYBCN_FUNCKEY, MYBCN_STATUSBAR, MYBCN_TAB, MYBCN_TOOLBAR, MYWM_ADDSTRING, MYWM_BAR_CHANGE_NOTIFY, MYWM_CHANGESETTING, MYWM_CLOSE, MYWM_DELETE_ME, MYWM_GETCARETPOS, MYWM_GETFILEINFO, MYWM_GETLINEDATA, MYWM_IME_REQUEST, MYWM_SETACTIVEPANE, MYWM_SETCARETPOS, MYWM_SHOWOWNEDPOPUPS, MYWM_TAB_WINDOW_NOTIFY, MYWM_UIPI_CHECK, NULL, CEditDoc::OnChangeSetting(), OnClose(), OnCommand(), OnDropFiles(), OnHScroll(), OnLButtonDblClk(), OnLButtonDown(), OnLButtonUp(), CMenuDrawer::OnMenuChar(), OnMouseMove(), OnMouseWheel(), OnNcLButtonDown(), OnNcLButtonUp(), OnPaint(), OnSize(), OnTimer(), OnVScroll(), CControlTray::OpenNewEditor(), PostMessageAny, PrintPreviewModeONOFF(), CTabWnd::Refresh(), CEditDoc::ReloadAutoSaveParam(), RELPRINT_A, CMenuDrawer::ResetContents(), SetActivePane(), CEditDoc::SetDocumentIcon(), CPrintPreview::SetFocusToPrintPreviewBar(), CEditDoc::SetParentCaption(), CMainStatusBar::SetStatusText(), CCaret::ShowEditCaret(), CEditApp::ShowFuncHelp(), CTabWnd::TabWindowNotify(), Timer_ONOFF(), CFuncKeyWnd::Timer_ONOFF(), CMainToolBar::ToolBarOwnerDraw(), TRUE, Views_DispatchEvent(), WindowTopMost(), WINSIZEMODE_SAVE, WM_MOUSEWHEEL, と WM_THEMECHANGED.

参照元 CEditWndProc().

LRESULT CEditWnd::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 2993 行で定義されています。

参照先 m_pPrintPreview, と CPrintPreview::OnPaint().

参照元 DispatchEvent().

LRESULT CEditWnd::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 2769 行で定義されています。

参照先 BOOL, FALSE, CShareData::GetEditNode(), CWnd::GetHwnd(), EditNode::GetHwnd(), GetHwnd(), CShareData::getInstance(), CMainToolBar::GetRebarHwnd(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), m_CFuncKeyWnd, DLLSHAREDATA::m_Common, m_cSplitterWnd, m_cStatusBar, m_cTabWnd, m_cToolbar, CommonSetting_Window::m_nFUNCKEYWND_Place, CommonSetting_Window::m_nSaveWindowSize, CommonSetting_Window::m_nWinSizeCX, CommonSetting_Window::m_nWinSizeCY, m_nWinSizeType, CommonSetting_Window::m_nWinSizeType, m_pPrintPreview, m_pShareData, EditNode::m_showCmdRestore, CommonSetting::m_sWindow, NULL, CPrintPreview::OnSize(), SendMessageAny, CMainStatusBar::SetStatusText(), CFuncKeyWnd::SizeBox_ONOFF(), TRUE, と WINSIZEMODE_SAVE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnLButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3052 行で定義されています。

参照先 FALSE, GetHwnd(), icClicked, icDown, icNone, IDT_SYSMENU, m_bDragMode, m_IconClicked, NULL, と TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnLButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3038 行で定義されています。

参照先 GetHwnd(), icNone, m_bDragMode, m_IconClicked, と m_ptDragPosOrg.

参照元 DispatchEvent().

LRESULT CEditWnd::OnMouseMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3074 行で定義されています。

参照先 _countof, _tcstowcs(), GetDocument(), CEditDoc::GetFilePath(), GetHwnd(), icDown, icNone, m_IconClicked, m_pPrintPreview, NULL, CPrintPreview::OnMouseMove(), SendMessageAny, to_wchar(), と TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnMouseWheel | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3182 行で定義されています。

参照先 ActivateFrameWindow(), GetHwnd(), CWnd::GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CommonSetting_TabBar::m_bChgWndByWheel, DLLSHAREDATA::m_Common, m_cTabWnd, CTabWnd::m_hwndTab, EditNode::m_nGroup, m_pPrintPreview, m_pShareData, CommonSetting::m_sTabBar, NULL, CPrintPreview::OnMouseWheel(), TRUE, Views_DispatchEvent(), と WM_MOUSEWHEEL.

参照元 DispatchEvent().

LRESULT CEditWnd::OnHScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3028 行で定義されています。

参照先 m_pPrintPreview, と CPrintPreview::OnHScroll().

参照元 DispatchEvent().

LRESULT CEditWnd::OnVScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3014 行で定義されています。

参照先 m_pPrintPreview, と CPrintPreview::OnVScroll().

参照元 DispatchEvent().

int CEditWnd::OnClose ( void )

終了時の処理

戻り値:
TRUE,: 終了して良い / FALSE: 終了しない

CEditWnd.cpp の 1502 行で定義されています。

参照先 ActivateFrameWindow(), FALSE, GetDocument(), EditNode::GetHwnd(), GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sTabBar, NULL, と CEditDoc::OnFileClose().

参照元 DispatchEvent().

void CEditWnd::OnDropFiles ( HDROP hDrop )

CEditWnd.cpp の 2448 行で定義されています。

参照先 _countof, _MAX_PATH, _tcscpy(), ActivateFrameWindow(), CMRU::Add(), auto_sprintf(), CODE_AUTODETECT, FALSE, CEditDoc::FileRead(), GetDocument(), GetHwnd(), CShareData::getInstance(), GetLongFileName(), GSTR_APPNAME, CEditDoc::Init(), CEditDoc::InitAllView(), CommonSetting_File::m_bDropFileAndClose, CommonSetting_File::m_bQueryIfCodeChange, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, m_hInstance, CommonSetting_File::m_nDropFileNumMax, DLLSHAREDATA::m_nEditArrNum, m_pShareData, CommonSetting::m_sFile, MAX_EDITWINDOWS, MYWM_GETFILEINFO, NULL, CControlTray::OpenNewEditor(), ResolveShortcutLink(), SendMessageAny, CEditDoc::SetParentCaption(), と TRUE.

参照元 DispatchEvent().

BOOL CEditWnd::OnPrintPageSetting ( void )

CEditWnd.cpp の 3270 行で定義されています。

参照先 BOOL, CDlgPrintSetting::DoModal(), GetDocument(), CEditDoc::GetDocumentAttribute(), GetHwnd(), CPrintPreview::InitPreviewScrollBar(), m_hInstance, Types::m_nCurrentPrintSetting, m_pPrintPreview, DLLSHAREDATA::m_PrintSettingArr, m_pShareData, DLLSHAREDATA::m_Types, MAX_PRINTSETTINGARR, NULL, CPrintPreview::OnChangePrintSetting(), CPrintPreview::SetPrintSetting(), と TRUE.

参照元 CViewCommander::Command_PRINT_PAGESETUP(), と CPrintPreview::DispatchEvent_PPB().

LRESULT CEditWnd::OnTimer | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

WM_TIMER 処理

日付:
2007.04.03 ryoji 新規

CEditWnd.cpp の 2579 行で定義されています。

参照先 IDT_CAPTION, IDT_EDIT, IDT_SYSMENU, IDT_TOOLBAR, m_cToolbar, OnCaptionTimer(), OnEditTimer(), OnSysMenuTimer(), と CMainToolBar::OnToolbarTimer().

参照元 DispatchEvent().

void CEditWnd::OnEditTimer ( void )

タイマーの処理

日付:
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 の 3952 行で定義されています。

参照先 CEditDoc::CheckAutoSave(), CEditDoc::CheckFileTimeStamp(), GetDocument(), IncrementTimerCount(), m_nTimerCount, と NULL.

参照元 OnTimer().

void CEditWnd::OnCaptionTimer ( void )

キャプション更新用タイマーの処理

日付:
2007.04.03 ryoji 新規

CEditWnd.cpp の 2607 行で定義されています。

参照先 GetHwnd(), IDT_CAPTION, DLLSHAREDATA::m_bEditWndChanging, m_pShareData, と m_pszLastCaption.

参照元 OnTimer().

void CEditWnd::OnSysMenuTimer ( void )

システムメニュー表示用タイマーの処理

日付:
2007.04.03 ryoji パラメータ無しにした 以前はコールバック関数でやっていたKillTimer()をここで行うようにした

CEditWnd.cpp の 2621 行で定義されています。

参照先 GetHwnd(), GetMonitorWorkRect(), icClicked, icNone, IDT_SYSMENU, m_IconClicked, と PostMessageAny.

参照元 OnTimer().

void CEditWnd::OnCommand | ( | WORD | wNotifyCode,
 |  | WORD | wID,
 |  | HWND | hwndCtl
 | ) |  |

CEditWnd.cpp の 1583 行で定義されています。

参照先 _countof, _MAX_PATH, ActivateFrameWindow(), CShareData::AddToSearchKeyArr(), CMD_FROM_MOUSE, CODE_AUTODETECT, CDlgAbout::DoModal(), F_ABOUT, F_EXITALL, F_HELP_CONTENTS, F_HELP_SEARCH, F_SEARCH_BOX, GetActiveView(), GetDocument(), CMRU::GetFileInfo(), CKeyBind::GetFuncCode(), CEditView::GetHwnd(), EditNode::GetHwnd(), GetHwnd(), CShareData::getInstance(), CMRUFolder::GetPath(), CMainToolBar::GetSearchHwnd(), CMainToolBar::GetSearchKey(), CEditDoc::HandleCommand(), IDM_SELMRU, IDM_SELOPENFOLDER, IDM_SELWINDOW, TSingleInstance< CEditApp >::Instance(), m_cToolbar, m_hInstance, FileInfo::m_nCharCode, m_nCurrentFocus, DLLSHAREDATA::m_nKeyNameArrNum, DLLSHAREDATA::m_pEditArr, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, FileInfo::m_szPath, MyWinHelp(), NetConnect(), NULL, CEditDoc::OpenFile(), ShowWinHelpContents(), CControlTray::TerminateApplication(), と ULONG_PTR.

参照元 DispatchEvent(), と CMainToolBar::ProcSearchBox().

LRESULT CEditWnd::OnNcLButtonDown | ( | WPARAM | wp,
 |  | LPARAM | lp
 | ) |  |

CEditWnd.cpp の 3327 行で定義されています。

参照先 GetHwnd(), icDown, と m_IconClicked.

参照元 DispatchEvent().

LRESULT CEditWnd::OnNcLButtonUp | ( | WPARAM | wp,
 |  | LPARAM | lp
 | ) |  |

CEditWnd.cpp の 3342 行で定義されています。

参照先 GetHwnd(), icNone, と m_IconClicked.

参照元 DispatchEvent().

LRESULT CEditWnd::OnLButtonDblClk | ( | WPARAM | wp,
 |  | LPARAM | lp
 | ) |  |

CEditWnd.cpp の 3364 行で定義されています。

参照先 GetHwnd(), icDoubleClicked, icNone, m_IconClicked, と SendMessageCmd.

参照元 DispatchEvent().

void CEditWnd::ChangeFileNameNotify | ( | const TCHAR * | pszTabCaption,
 |  | const TCHAR * | _pszFilePath,
 |  | BOOL | bIsGrep
 | ) |  |

ファイル名変更通知

作者:
MIK
日付:
2003.05.31 新規作成

2006.01.28 ryoji ファイル名、Grepモードパラメータを追加

CEditWnd.cpp の 3669 行で定義されています。

参照先 _countof, _countof2, _FT, CRecentEditNode::FindItemByHwnd(), CShareData::GetGroupId(), GetHwnd(), CShareData::getInstance(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), EditNode::m_bIsGrep, EditNode::m_szFilePath, EditNode::m_szTabCaption, MYWM_TAB_WINDOW_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と TWNT_FILE.

参照元 CEditDoc::SetParentCaption().

void CEditWnd::InitMenu | ( | HMENU | hMenu,
 |  | UINT | uPos,
 |  | BOOL | fSystemMenu
 | ) |  |

CEditWnd.cpp の 1723 行で定義されています。

参照先 BOOL, CMRUFolder::CreateMenu(), CMRU::CreateMenu(), 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_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_BASE, 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_DOWN2, F_DOWN2_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_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_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_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_HfromtoC, F_OPTION, F_OPTION_TYPE, F_OUTLINE, 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_RTRIM, F_SAVEKEYMACRO, 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_UP2, F_UP2_SEL, F_USERMACRO_0, F_UUDECODE, F_WIN_CLOSEALL, F_WIN_OUTPUT, F_WINCLOSE, F_WINLIST, F_WordCut, F_WordDelete, F_WordDeleteToEnd, F_WordDeleteToStart, F_WORDLEFT, F_WORDLEFT_SEL, F_WORDRIGHT, F_WORDRIGHT_SEL, F_WRAPWINDOWWIDTH, FALSE, GetActiveView(), CSplitterWnd::GetAllSplitCols(), CSplitterWnd::GetAllSplitRows(), GetDocument(), CWnd::GetHwnd(), GetHwnd(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), GetWindowLongPtr, CEditView::GetWrapMode(), MacroRec::IsEnabled(), IsFuncChecked(), IsFuncEnable(), CMRUFolder::Length(), CMRU::Length(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_Window::m_bMenuIcon, DLLSHAREDATA::m_bRecordingKeyMacro, m_CFuncKeyWnd, m_CMenuDrawer, DLLSHAREDATA::m_Common, m_cSplitterWnd, m_cStatusBar, m_cTabWnd, m_cToolbar, DLLSHAREDATA::m_MacroTable, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pPrintPreview, m_pShareData, CommonSetting::m_sCustomMenu, CommonSetting::m_sTabBar, CommonSetting::m_sWindow, CommonSetting_CustomMenu::m_szCustMenuNameArr, MacroRec::m_szFile, MacroRec::m_szName, MAX_CUSTMACRO, MAX_CUSTOM_MENU, CMenuDrawer::MyAppendMenu(), CMenuDrawer::MyAppendMenuSep(), NULL, CMenuDrawer::ResetContents(), CEditView::TGWRAP_FULL, CEditView::TGWRAP_NONE, CEditView::TGWRAP_WINDOW, TRUE, と WinListMenu().

参照元 DispatchEvent().

void CEditWnd::InitMenubarMessageFont ( void )

CEditWnd.cpp の 3548 行で定義されています。

参照先 _tcscpy(), m_hFontCaretPosInfo, m_nCaretPosInfoCharHeight, m_nCaretPosInfoCharWidth, と memset_raw().

参照元 CEditWnd().

LRESULT CEditWnd::WinListMenu | ( | HMENU | hMenu,
 |  | EditNode * | pEditNodeArr,
 |  | int | nRowNum,
 |  | BOOL | bFull
 | ) |  |

現在開いている編集窓のリストをメニューにする

ウィンドウ一覧メニュー作成処理

日付:
2006.03.23 fon CEditWnd::InitMenuから移動。////が元からあるコメント。//>は追加コメントアウト。

CEditWnd.cpp の 3834 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), auto_sprintf(), dupamp(), GetHwnd(), EditNode::GetHwnd(), CShareData::getInstance(), CNativeW::GetStringPtr(), CShareData::GetTransformFileNameFast(), gm_pszCodeNameArr_Bracket, IDM_SELWINDOW, IsValidCodeTypeExceptSJIS(), LimitStringLengthW(), 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, SendMessageAny, と CShareData::TransformFileName_MakeCache().

参照元 InitMenu(), と PopupWinList().

LRESULT CEditWnd::PopupWinList ( bool bMousePos )

ウィンドウ一覧をポップアップ表示

ウィンドウ一覧ポップアップ表示処理

引数:
[in] bMousePos true: マウス位置にポップアップ表示する
日付:
2006.03.23 fon OnListBtnClickをベースに新規作成

2006.05.10 ryoji ポップアップ位置変更、その他微修正 2007.02.28 ryoji フルパス指定のパラメータを削除

CEditWnd.cpp の 3789 行で定義されています。

参照先 GetActiveView(), GetHwnd(), CWnd::GetHwnd(), CEditView::GetHwnd(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetOpenedWindowArr(), m_cTabWnd, NULL, SendMessageCmd, CTabWnd::TabListMenu(), TRUE, と WinListMenu().

参照元 CViewCommander::Command_WINLIST().

void CEditWnd::LayoutToolBar ( void )

ツールバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 594 行で定義されています。

参照先 CMainToolBar::CreateToolBar(), CMainToolBar::DestroyToolBar(), CommonSetting_Window::m_bDispTOOLBAR, DLLSHAREDATA::m_Common, m_cToolbar, m_pShareData, と CommonSetting::m_sWindow.

参照元 CViewCommander::Command_SHOWTOOLBAR(), Create(), と DispatchEvent().

void CEditWnd::LayoutFuncKey ( void )

ファンクションキーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 621 行で定義されています。

参照先 BOOL, CFuncKeyWnd::Close(), FALSE, GetDocument(), GetHwnd(), CWnd::GetHwnd(), CMainStatusBar::GetStatusHwnd(), CommonSetting_Window::m_bDispFUNCKEYWND, m_CFuncKeyWnd, DLLSHAREDATA::m_Common, m_cStatusBar, m_hInstance, CommonSetting_Window::m_nFUNCKEYWND_Place, m_pShareData, CommonSetting::m_sWindow, NULL, CFuncKeyWnd::Open(), と TRUE.

参照元 CViewCommander::Command_SHOWFUNCKEY(), Create(), と DispatchEvent().

void CEditWnd::LayoutTabBar ( void )

タブバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 646 行で定義されています。

参照先 CTabWnd::Close(), GetHwnd(), CWnd::GetHwnd(), CommonSetting_TabBar::m_bDispTabWnd, DLLSHAREDATA::m_Common, m_cTabWnd, m_hInstance, m_pShareData, CommonSetting::m_sTabBar, NULL, と CTabWnd::Open().

参照元 CViewCommander::Command_SHOWTAB(), Create(), と DispatchEvent().

void CEditWnd::LayoutStatusBar ( void )

ステータスバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 606 行で定義されています。

参照先 CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), CommonSetting_Window::m_bDispSTATUSBAR, DLLSHAREDATA::m_Common, m_cStatusBar, m_pShareData, と CommonSetting::m_sWindow.

参照元 CViewCommander::Command_SHOWSTATUSBAR(), Create(), と DispatchEvent().

void CEditWnd::EndLayoutBars ( BOOL bAdjust = TRUE )

バーの配置終了処理

日付:
2006.12.19 ryoji 新規作成 2007.03.04 ryoji 印刷プレビュー時はバーを隠す

CEditWnd.cpp の 661 行で定義されています。

参照先 CSplitterWnd::DoSplit(), GetActiveView(), GetHwnd(), CWnd::GetHwnd(), CMainToolBar::GetRebarHwnd(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), m_CFuncKeyWnd, m_cSplitterWnd, m_cStatusBar, m_cTabWnd, m_cToolbar, m_nWinSizeType, m_pPrintPreview, NULL, SendMessageAny, と CEditView::SetIMECompFormPos().

参照元 CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), Create(), と DispatchEvent().

void CEditWnd::PrintPreviewModeONOFF ( void )

CEditWnd.cpp の 2688 行で定義されています。

参照先 BOOL, FALSE, GetDocument(), GetHwnd(), CWnd::GetHwnd(), CMainToolBar::GetRebarHwnd(), CEditDoc::GetSplitterHwnd(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), GSTR_APPNAME, IDR_MENU1, m_CFuncKeyWnd, m_cStatusBar, m_cTabWnd, m_cToolbar, m_hInstance, m_pPrintPreview, DLLSHAREDATA::m_PrintSettingArr, m_pShareData, MYMESSAGEBOX, NULL, と TRUE.

参照元 CViewCommander::Command_PRINT_PREVIEW(), DispatchEvent(), CPrintPreview::DispatchEvent_PPB(), と CPrintPreview::OnPrint().

void CEditWnd::SetWindowIcon | ( | HICON | hIcon,
 |  | int | flag
 | ) |  |

ウィンドウのアイコン設定

指定されたアイコンをウィンドウに設定する． 以前のアイコンは破棄する．

引数:
hIcon | [in] 設定するアイコン
flag | [in] アイコン種別．ICON_BIGまたはICON_SMALL.
作者:
genta
日付:
2002.09.10

CEditWnd.cpp の 3474 行で定義されています。

参照先 GetHwnd(), NULL, と SendMessageAny.

参照元 CEditView::DoGrep(), と CEditDoc::SetDocumentIcon().

void CEditWnd::GetDefaultIcon | ( | HICON & | hIconBig,
 |  | HICON & | hIconSmall |
 | ) |  |  | const

標準アイコンの取得

引数:
hIconBig | [out] 大きいアイコンのハンドル
hIconSmall | [out] 小さいアイコンのハンドル
作者:
genta
日付:
2002.09.10

2002.12.02 genta 新設した共通関数を使うように

CEditWnd.cpp の 3492 行で定義されています。

参照先 FN_APP_ICON, GetAppIcon(), ICON_DEFAULT_APP, と m_hInstance.

参照元 GetRelatedIcon(), と CEditDoc::SetDocumentIcon().

bool CEditWnd::GetRelatedIcon | ( | const TCHAR * | szFile,
 |  | HICON & | hIconBig,
 |  | HICON & | hIconSmall |
 | ) |  |  | const

アイコンの取得

指定されたファイル名に対応するアイコン(大・小)を取得して返す．

引数:
szFile | [in] ファイル名
hIconBig | [out] 大きいアイコンのハンドル
hIconSmall | [out] 小さいアイコンのハンドル
戻り値:
true | 関連づけられたアイコンが見つかった
false | 関連づけられたアイコンが見つからなかった
作者:
genta
日付:
2002.09.10

CEditWnd.cpp の 3513 行で定義されています。

参照先 _countof, _MAX_EXT, GetDefaultIcon(), NULL, と ReadRegistry().

参照元 CEditDoc::SetDocumentIcon().

BOOL CEditWnd::IsActiveApp ( ) const [inline]

自アプリがアクティブかどうか // 2007.03.08 ryoji

CEditWnd.h の 181 行で定義されています。

参照元 CEditView::DispatchEvent(), と CEditDoc::SetParentCaption().

void CEditWnd::GetTooltipText | ( | TCHAR * | wszBuf,
 |  | size_t | nBufCount,
 |  | int | nID |
 | ) |  |  | const

ツールチップのテキストを取得。2007.09.08 kobake 追加

ツールチップのテキストを取得

CEditWnd.cpp の 3913 行で定義されています。

参照先 _countof, _wcstotcs(), GetDocument(), CKeyBind::GetKeyStrList(), CNativeA::GetStringPtr(), LTEXT, m_hInstance, DLLSHAREDATA::m_nKeyNameArrNum, DLLSHAREDATA::m_pKeyNameArr, と m_pShareData.

参照元 DispatchEvent().

bool CEditWnd::IsInPreviewMode ( ) [inline]

印刷プレビュー中かどうか

CEditWnd.h の 187 行で定義されています。

参照先 NULL.

参照元 CMainToolBar::OnToolbarTimer().

void CEditWnd::PrintMenubarMessage ( const TCHAR * msg ) const

CEditWnd.cpp の 3591 行で定義されています。

参照先 auto_memset(), COLOR_MENUBAR, GetHwnd(), m_hFontCaretPosInfo, m_nCaretPosInfoCharHeight, m_nCaretPosInfoCharWidth, と NULL.

参照元 CCaret::DrawCaretPosInfo(), と SendStatusMessage().

void CEditWnd::SendStatusMessage ( const TCHAR * msg )

メッセージの表示

指定されたメッセージをステータスバーに表示する． ステータスバーが非表示の場合はメニューバーの右端に表示する．

引数:
msg [in] 表示するメッセージ
日付:
2002.01.26 hor 新規作成

2002.12.04 genta CEditViewより移動

CEditWnd.cpp の 3651 行で定義されています。

参照先 CMainStatusBar::GetStatusHwnd(), m_cStatusBar, NULL, PrintMenubarMessage(), と CMainStatusBar::SetStatusText().

参照元 CEditDoc::CheckFileTimeStamp().

void CEditWnd::WindowTopMost ( int top )

常に手前に表示

引数:
top 0:トグル動作 1:最前面 2:最前面解除 その他:なにもしない
日付:
2004.09.21 Moca

CEditWnd.cpp の 3717 行で定義されています。

参照先 EditNode::GetHwnd(), GetHwnd(), CShareData::getInstance(), GetWindowLongPtr, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_pEditArr, m_pShareData, と CommonSetting::m_sTabBar.

参照元 CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_WINTOPMOST(), と DispatchEvent().

LRESULT CEditWnd::Views_DispatchEvent | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 3970 行で定義されています。

参照先 CEditView::DispatchEvent(), GetActiveView(), と m_pcEditViewArr.

参照元 DispatchEvent(), と OnMouseWheel().

void CEditWnd::Views_RedrawAll ( )

CEditWnd.cpp の 3985 行で定義されています。

参照先 GetActiveView(), m_nActivePaneIndex, m_pcEditViewArr, と CEditView::RedrawAll().

参照元 CEditDoc::FileWrite().

void CEditWnd::Views_Redraw ( )

CEditWnd.cpp の 3997 行で定義されています。

参照先 GetActiveView(), m_nActivePaneIndex, m_pcEditViewArr, と CEditView::Redraw().

参照元 CViewCommander::Command_BOOKMARK_PATTERN(), CViewCommander::Command_BOOKMARK_RESET(), と CViewCommander::Command_BOOKMARK_SET().

void CEditWnd::SetActivePane ( int nIndex )

CEditWnd.cpp の 4010 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineOFF(), CDlgFuncList::ChangeView(), CHokanMgr::ChangeView(), CDlgReplace::ChangeView(), CDlgFind::ChangeView(), GetActiveView(), CEditView::GetCaret(), CDialog::GetHwnd(), CHokanMgr::Hide(), m_cDlgFind, m_cDlgFuncList, m_cDlgReplace, m_cHokanMgr, m_cSplitterWnd, CCaret::m_cUnderLine, m_nActivePaneIndex, NULL, CEditView::OnKillFocus(), CEditView::OnSetFocus(), CEditView::RedrawAll(), CSplitterWnd::SetActivePane(), と TRUE.

参照元 DispatchEvent(), CEditView::DispatchEvent(), CEditView::DragEnter(), と CEditDoc::HandleCommand().

int CEditWnd::GetActivePane ( void ) const

CEditWnd.cpp の 4047 行で定義されています。

参照先 m_nActivePaneIndex.

参照元 CEditView::DispatchEvent(), と CCaret::ShowEditCaret().

void CEditWnd::RedrawInactivePane ( void )

非アクティブなペインをRedrawする

スクロールバーの状態更新はパラメータでフラグ制御 or 別関数にしたほうがいい？

日付:
2007.07.22 ryoji スクロールバーの状態更新を追加

CEditWnd.cpp の 4059 行で定義されています。

参照先 CEditView::AdjustScrollBars(), CSplitterWnd::GetAllSplitCols(), CSplitterWnd::GetAllSplitRows(), m_cSplitterWnd, m_nActivePaneIndex, m_pcEditViewArr, と CEditView::Redraw().

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), と CViewCommander::HandleCommand().

void CEditWnd::Views_DisableSelectArea ( bool bRedraw )

CEditWnd.cpp の 4075 行で定義されています。

参照先 CViewSelect::DisableSelectArea(), CEditView::GetSelectionInfo(), と m_pcEditViewArr.

参照元 CEditDoc::FileRead().

BOOL CEditWnd::DetectWidthOfLineNumberAreaAllPane ( bool bRedraw )

CEditWnd.cpp の 4087 行で定義されています。

参照先 CTextArea::DetectWidthOfLineNumberArea(), FALSE, CSplitterWnd::GetAllSplitCols(), CSplitterWnd::GetAllSplitRows(), CEditView::GetTextArea(), m_cSplitterWnd, m_nActivePaneIndex, m_pcEditViewArr, と TRUE.

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CEditView::DeleteData(), CEditView::InsertData_CEditView(), と CEditView::ReplaceData_CEditView().

void CEditWnd::ChangeLayoutParam | ( | bool | bShowProgress,
 |  | CLayoutInt | nTabSize,
 |  | CLayoutInt | nMaxLineKetas
 | ) |  |

レイアウトパラメータの変更

具体的にはタブ幅と折り返し位置を変更する． 現在のドキュメントのレイアウトのみを変更し，共通設定は変更しない．

日付:
2005.08.14 genta 新規作成

CEditWnd.cpp の 4121 行で定義されています。

参照先 CLayoutMgr::ChangeLayoutParam(), GetDocument(), GetHwnd(), CMainStatusBar::GetProgressHwnd(), CEditDoc::m_cLayoutMgr, m_cStatusBar, m_pcEditViewArr, NULL, RestorePhysPosOfAllView(), SavePhysPosOfAllView(), と TRUE.

参照元 CViewCommander::Command_WRAPWINDOWWIDTH(), と CMacro::HandleFunction().

CLogicPoint * CEditWnd::SavePhysPosOfAllView ( void )

レイアウトの変更に先立って，全てのViewの座標を物理座標に変換して保存する．

戻り値:
データを保存した配列へのポインタ
覚え書き:
取得した値はレイアウト変更後にCEditDocRestorePhysPosOfAllViewへ渡す． 渡し忘れるとメモリリークとなる．
日付:
2005.08.11 genta 新規作成

2007.09.06 kobake 戻り値をCLogicPoint*に変更

CEditWnd.cpp の 4165 行で定義されています。

参照先 GetDocument(), CLayoutMgr::LayoutToLogic(), と CEditDoc::m_cLayoutMgr.

参照元 ChangeLayoutParam(), と CEditDoc::OnChangeSetting().

void CEditWnd::RestorePhysPosOfAllView ( CLogicPoint * pptPosArray )

座標の復元

CEditDoc::SavePhysPosOfAllViewで保存したデータを元に座標値を再計算する．

日付:
2005.08.11 genta 新規作成

2007.09.06 kobake 引数をCLogicPoint*に変更

CEditWnd.cpp の 4213 行で定義されています。

参照先 CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pcEditViewArr, CCaret::MoveCursor(), と TRUE.

参照元 ChangeLayoutParam(), と CEditDoc::OnChangeSetting().

void CEditWnd::SetDebugModeON ( void )

CEditWnd.cpp の 2653 行で定義されています。

参照先 FALSE, GetDocument(), GetHwnd(), CShareData::IsEditWnd(), CEditDoc::m_bDebugMode, CEditDoc::m_bReadOnly, DLLSHAREDATA::m_hwndDebug, m_pShareData, NULL, CEditDoc::SetParentCaption(), と TRUE.

参照元 CNormalProcess::Initialize().

void CEditWnd::SetDebugModeOFF ( void )

デバックモニタモードの解除

CEditWnd.cpp の 2672 行で定義されています。

参照先 FALSE, GetDocument(), GetHwnd(), CEditDoc::m_bDebugMode, DLLSHAREDATA::m_hwndDebug, m_pShareData, NULL, と CEditDoc::SetParentCaption().

参照元 CEditDoc::Init().

HWND CEditWnd::GetHwnd ( ) const [inline]

CEditWnd.h の 230 行で定義されています。

参照元 _AdjustInMonitor(), ChangeFileNameNotify(), ChangeLayoutParam(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CPrintPreview::CPrintPreview(), Create(), CPrintPreview::CreatePrintPreviewControls(), CMainStatusBar::CreateStatusBar(), CMainToolBar::CreateToolBar(), DispatchEvent(), CPrintPreview::DispatchEvent_PPB(), EndLayoutBars(), GetMessageBoxOwner(), CEditDoc::GetOwnerHwnd(), CNormalProcess::Initialize(), InitMenu(), CPrintPreview::InitPreviewScrollBar(), IsFuncChecked(), LayoutFuncKey(), LayoutTabBar(), MessageLoop(), OnCaptionTimer(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnCheckAntialias(), OnClose(), OnCommand(), CDlgFuncList::OnDestroy(), OnDropFiles(), CPrintPreview::OnHScroll(), CDlgFuncList::OnInitDialog(), OnLButtonDblClk(), OnLButtonDown(), OnLButtonUp(), CPrintPreview::OnMouseMove(), OnMouseMove(), CPrintPreview::OnMouseWheel(), OnMouseWheel(), OnNcLButtonDown(), OnNcLButtonUp(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), OnPrintPageSetting(), CPrintPreview::OnSize(), OnSize(), OnSysMenuTimer(), CPrintPreview::OnVScroll(), OpenDocumentWhenCreate(), PopupWinList(), PrintMenubarMessage(), PrintPreviewModeONOFF(), CMainToolBar::ProcSearchBox(), SetDebugModeOFF(), SetDebugModeON(), SetWindowIcon(), Timer_ONOFF(), WindowTopMost(), と WinListMenu().

CMenuDrawer& CEditWnd::GetMenuDrawer ( ) [inline]

CEditWnd.h の 231 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CViewCommander::Command_MENU_ALLFUNC(), Create(), CEditView::CreatePopUpMenu_R(), CMainToolBar::CreateToolBar(), CMainToolBar::OnToolbarTimer(), と CMainToolBar::ToolBarOwnerDraw().

CEditDoc & CEditWnd::GetDocument ( )

CEditWnd.cpp の 4255 行で定義されています。

参照先 CEditApp::GetDocument(), と TSingleInstance< CEditApp >::Instance().

参照元 ChangeLayoutParam(), Create(), DispatchEvent(), CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), CPrintPreview::DrawPageText(), GetTooltipText(), CNormalProcess::Initialize(), InitMenu(), LayoutFuncKey(), CPrintPreview::OnChangePrintSetting(), OnClose(), OnCommand(), OnDropFiles(), OnEditTimer(), OnMouseMove(), CPrintPreview::OnPrint(), OnPrintPageSetting(), CMainToolBar::OnToolbarTimer(), OpenDocumentWhenCreate(), CPrintPreview::Print_DrawLine(), PrintPreviewModeONOFF(), RestorePhysPosOfAllView(), SavePhysPosOfAllView(), SetDebugModeOFF(), SetDebugModeON(), と SetDocumentTypeWhenCreate().

const CEditDoc & CEditWnd::GetDocument ( ) const

CEditWnd.cpp の 4259 行で定義されています。

参照先 CEditApp::GetDocument(), と TSingleInstance< CEditApp >::Instance().

const CEditView& CEditWnd::GetActiveView ( ) const [inline]

CEditWnd.h の 236 行で定義されています。

参照元 CViewCommander::Command_SEARCH_DIALOG(), DispatchEvent(), EndLayoutBars(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileSaveAs(), CEditDoc::GetFileInfo(), CEditDoc::HandleCommand(), CNormalProcess::Initialize(), InitMenu(), IsFuncChecked(), IsFuncEnable(), CDlgJump::OnBnClicked(), OnCommand(), PopupWinList(), CMainToolBar::ProcSearchBox(), SetActivePane(), CEditDoc::SetParentCaption(), Views_DispatchEvent(), Views_Redraw(), と Views_RedrawAll().

CEditView& CEditWnd::GetActiveView ( ) [inline]

CEditWnd.h の 237 行で定義されています。

int CEditWnd::CreateFileDropDownMenu ( HWND hwnd ) [protected]

ドロップダウンメニュー(開く)

CEditWnd.cpp の 3385 行で定義されています。

参照先 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), F_FILENEW, F_FILEOPEN, FALSE, GetMonitorWorkRect(), CMRUFolder::Length(), CMRU::Length(), m_CMenuDrawer, CMenuDrawer::MyAppendMenu(), CMenuDrawer::MyAppendMenuSep(), NULL, CMenuDrawer::ResetContents(), と SendMessageAny.

参照元 DispatchEvent().

void CEditWnd::Timer_ONOFF ( BOOL bStart ) [protected]

CEditWnd.cpp の 3763 行で定義されています。

参照先 GetHwnd(), GSTR_APPNAME, IDT_TOOLBAR, MYMESSAGEBOX, と NULL.

参照元 Create(), と DispatchEvent().

void CEditWnd::IncrementTimerCount ( int nInterval ) [inline]

周期内でm_nTimerCountをインクリメント

CEditWnd.h の 260 行で定義されています。

参照元 OnEditTimer(), と CMainToolBar::OnToolbarTimer().

void CEditWnd::SetDragPosOrg ( CMyPoint ptDragPosOrg ) [inline]

CEditWnd.h の 269 行で定義されています。

参照元 CPrintPreview::OnMouseMove(), と CPrintPreview::OnSize().

void CEditWnd::SetDragMode ( bool bDragMode ) [inline]

CEditWnd.h の 270 行で定義されています。

参照元 CPrintPreview::OnSize().

bool CEditWnd::GetDragMode ( ) const [inline]

CEditWnd.h の 271 行で定義されています。

参照元 CPrintPreview::OnMouseMove().

const CMyPoint& CEditWnd::GetDragPosOrg ( ) const [inline]

CEditWnd.h の 272 行で定義されています。

参照元 CPrintPreview::OnMouseMove().

int CEditWnd::GetCurrentFocus ( ) const [inline]

CEditWnd.h の 275 行で定義されています。

void CEditWnd::SetCurrentFocus ( int n ) [inline]

CEditWnd.h の 276 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), と CMainToolBar::DestroyToolBar().

変数

HINSTANCE CEditWnd::m_hInstance [private]

CEditWnd.h の 284 行で定義されています。

参照元 _CreateMainWindow(), Create(), DispatchEvent(), GetDefaultIcon(), GetTooltipText(), LayoutFuncKey(), LayoutTabBar(), OnCommand(), OnDropFiles(), OnPrintPageSetting(), と PrintPreviewModeONOFF().

HWND CEditWnd::m_hWnd [private]

CEditWnd.h の 287 行で定義されています。

参照元 Create(), DispatchEvent(), と ~CEditWnd().

HWND CEditWnd::m_hwndParent [private]

CEditWnd.h の 290 行で定義されています。

CMainToolBar CEditWnd::m_cToolbar

ツールバー

CEditWnd.h の 294 行で定義されています。

参照元 CViewCommander::Command_SEARCH_BOX(), CViewCommander::Command_SHOWTOOLBAR(), DispatchEvent(), EndLayoutBars(), InitMenu(), IsFuncChecked(), LayoutToolBar(), MessageLoop(), OnCommand(), OnSize(), OnTimer(), と PrintPreviewModeONOFF().

CTabWnd CEditWnd::m_cTabWnd

タブウインドウ //@@ 2003.05.31 MIK

CEditWnd.h の 295 行で定義されています。

参照元 CViewCommander::Command_NEXTGROUP(), CViewCommander::Command_PREVGROUP(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_TAB_JOINTNEXT(), CViewCommander::Command_TAB_JOINTPREV(), CViewCommander::Command_TAB_MOVELEFT(), CViewCommander::Command_TAB_MOVERIGHT(), CViewCommander::Command_TAB_SEPARATE(), DispatchEvent(), EndLayoutBars(), InitMenu(), IsFuncChecked(), LayoutTabBar(), OnMouseWheel(), OnSize(), PopupWinList(), と PrintPreviewModeONOFF().

CFuncKeyWnd CEditWnd::m_CFuncKeyWnd

ファンクションバー

CEditWnd.h の 296 行で定義されています。

参照元 CViewCommander::Command_SHOWFUNCKEY(), CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), DispatchEvent(), CSplitterWnd::DoSplit(), EndLayoutBars(), InitMenu(), IsFuncChecked(), LayoutFuncKey(), CSplitterWnd::OnSize(), OnSize(), と PrintPreviewModeONOFF().

CMainStatusBar CEditWnd::m_cStatusBar

ステータスバー

CEditWnd.h の 297 行で定義されています。

参照元 ChangeLayoutParam(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_SHOWSTATUSBAR(), DispatchEvent(), CSplitterWnd::DoSplit(), CCaret::DrawCaretPosInfo(), EndLayoutBars(), CEditDoc::FileRead(), CEditDoc::FileWrite(), InitMenu(), IsFuncChecked(), LayoutFuncKey(), LayoutStatusBar(), CEditDoc::OnChangeSetting(), CSplitterWnd::OnSize(), OnSize(), PrintPreviewModeONOFF(), CViewSelect::PrintSelectionInfoMsg(), と SendStatusMessage().

CPrintPreview* CEditWnd::m_pPrintPreview

印刷プレビュー表示情報。必要になったときのみインスタンスを生成する。

CEditWnd.h の 298 行で定義されています。

参照元 CViewCommander::Command_PRINT(), DispatchEvent(), EndLayoutBars(), InitMenu(), MessageLoop(), OnHScroll(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnPrintPageSetting(), OnSize(), OnVScroll(), と PrintPreviewModeONOFF().

CSplitterWnd CEditWnd::m_cSplitterWnd

分割フレーム

CEditWnd.h の 300 行で定義されています。

参照元 CViewCommander::Command_SPLIT_H(), CViewCommander::Command_SPLIT_V(), CViewCommander::Command_SPLIT_VH(), Create(), CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), DetectWidthOfLineNumberAreaAllPane(), DispatchEvent(), EndLayoutBars(), CEditDoc::GetSplitterHwnd(), CEditDoc::HandleCommand(), InitMenu(), OnSize(), RedrawInactivePane(), と SetActivePane().

CEditView* CEditWnd::m_pcEditViewArr[4]

ビュー

CEditWnd.h の 301 行で定義されています。

参照元 CEditWnd(), ChangeLayoutParam(), CViewCommander::Command_Diff_Reset(), Create(), DetectWidthOfLineNumberAreaAllPane(), DispatchEvent(), CEditDoc::InitAllView(), CNormalProcess::Initialize(), CPrintPreview::OnChangePrintSetting(), CEditDoc::OnChangeSetting(), CEditDoc::OpenPropertySheet(), RedrawInactivePane(), RestorePhysPosOfAllView(), CEditView::SyncScrollH(), CEditView::SyncScrollV(), CEditView::ViewDiffInfo(), Views_DisableSelectArea(), Views_DispatchEvent(), Views_Redraw(), Views_RedrawAll(), と ~CEditWnd().

int CEditWnd::m_nActivePaneIndex

アクティブなビュー

CEditWnd.h の 302 行で定義されています。

参照元 DetectWidthOfLineNumberAreaAllPane(), GetActivePane(), CEditView::OnPaint(), RedrawInactivePane(), SetActivePane(), CEditView::ViewDiffInfo(), Views_Redraw(), と Views_RedrawAll().

CDlgFind CEditWnd::m_cDlgFind

CEditWnd.h の 305 行で定義されています。

参照元 CViewCommander::Command_SEARCH_DIALOG(), MessageLoop(), と SetActivePane().

CDlgReplace CEditWnd::m_cDlgReplace

CEditWnd.h の 306 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CMacro::HandleCommand(), MessageLoop(), と SetActivePane().

CDlgJump CEditWnd::m_cDlgJump

CEditWnd.h の 307 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_JUMP(), と CMacro::HandleCommand().

CDlgGrep CEditWnd::m_cDlgGrep

CEditWnd.h の 308 行で定義されています。

参照元 CViewCommander::Command_GREP(), CViewCommander::Command_GREP_DIALOG(), CNormalProcess::Initialize(), と MessageLoop().

CDlgFuncList CEditWnd::m_cDlgFuncList

CEditWnd.h の 309 行で定義されています。

参照元 CViewCommander::Command_FUNCLIST(), IsFuncChecked(), MessageLoop(), と SetActivePane().

CDlgOpenFile CEditWnd::m_cDlgOpenFile

CEditWnd.h の 310 行で定義されています。

参照元 CEditDoc::OpenFileDialog(), と CEditDoc::SaveFileDialog().

CHokanMgr CEditWnd::m_cHokanMgr

CEditWnd.h の 311 行で定義されています。

参照元 Create(), CEditView::DispatchEvent(), MessageLoop(), CEditView::OnKillFocus(), CEditView::OnLBUTTONDOWN(), CEditView::PostprocessCommand_hokan(), CEditView::PreprocessCommand_hokan(), SetActivePane(), と CEditView::ShowHokanMgr().

CPropCommon CEditWnd::m_cPropCommon

CEditWnd.h の 312 行で定義されています。

参照元 Create(), と CEditDoc::OpenPropertySheet().

CPropTypes CEditWnd::m_cPropTypes

CEditWnd.h の 313 行で定義されています。

参照元 Create(), と CEditDoc::OpenPropertySheetTypes().

DLLSHAREDATA* CEditWnd::m_pShareData [private]

CEditWnd.h の 317 行で定義されています。

参照元 _AdjustInMonitor(), _GetTabGroupInfo(), _GetWindowRectForInit(), CEditWnd(), Create(), DispatchEvent(), GetTooltipText(), InitMenu(), LayoutFuncKey(), LayoutStatusBar(), LayoutTabBar(), LayoutToolBar(), MessageLoop(), OnCaptionTimer(), OnClose(), OnCommand(), OnDropFiles(), OnMouseWheel(), OnPrintPageSetting(), OnSize(), OpenDocumentWhenCreate(), PrintPreviewModeONOFF(), SetDebugModeOFF(), SetDebugModeON(), WindowTopMost(), と WinListMenu().

CMenuDrawer CEditWnd::m_CMenuDrawer [private]

CEditWnd.h の 320 行で定義されています。

参照元 Create(), CreateFileDropDownMenu(), DispatchEvent(), InitMenu(), と WinListMenu().

UINT CEditWnd::m_uMSIMEReconvertMsg [private]

CEditWnd.h の 323 行で定義されています。

参照元 DispatchEvent().

UINT CEditWnd::m_uATOKReconvertMsg [private]

CEditWnd.h の 324 行で定義されています。

参照元 DispatchEvent().

const TCHAR* CEditWnd::m_pszWndClass [private]

ウィンドウクラス名

CEditWnd.h の 327 行で定義されています。

参照元 _CreateMainWindow().

BOOL CEditWnd::m_bIsActiveApp [private]

自アプリがアクティブかどうか // 2007.03.08 ryoji

CEditWnd.h の 328 行で定義されています。

参照元 Create(), と DispatchEvent().

LPTSTR CEditWnd::m_pszLastCaption [private]

CEditWnd.h の 329 行で定義されています。

参照元 DispatchEvent(), OnCaptionTimer(), と ~CEditWnd().

int CEditWnd::m_nTimerCount [private]

OnTimer用 2003.08.29 wmlhq

CEditWnd.h の 330 行で定義されています。

参照元 Create(), DispatchEvent(), と OnEditTimer().

int CEditWnd::m_nCurrentFocus [private]

現在のフォーカス情報

CEditWnd.h の 331 行で定義されています。

参照元 OnCommand().

int CEditWnd::m_nWinSizeType [private]

サイズ変更のタイプ。SIZE_MAXIMIZED, SIZE_MINIMIZED 等。

CEditWnd.h の 332 行で定義されています。

参照元 EndLayoutBars(), と OnSize().

HFONT CEditWnd::m_hFontCaretPosInfo [private]

キャレットの行桁位置表示用フォント

CEditWnd.h の 335 行で定義されています。

参照元 InitMenubarMessageFont(), PrintMenubarMessage(), と ~CEditWnd().

int CEditWnd::m_nCaretPosInfoCharWidth [private]

キャレットの行桁位置表示用フォントの幅

CEditWnd.h の 336 行で定義されています。

参照元 InitMenubarMessageFont(), と PrintMenubarMessage().

int CEditWnd::m_nCaretPosInfoCharHeight [private]

キャレットの行桁位置表示用フォントの高さ

CEditWnd.h の 337 行で定義されています。

参照元 InitMenubarMessageFont(), と PrintMenubarMessage().

bool CEditWnd::m_bDragMode [private]

CEditWnd.h の 340 行で定義されています。

参照元 OnLButtonDown(), と OnLButtonUp().

CMyPoint CEditWnd::m_ptDragPosOrg [private]

CEditWnd.h の 341 行で定義されています。

参照元 OnLButtonDown().

BOOL CEditWnd::m_bUIPI [private]

CEditWnd.h の 344 行で定義されています。

参照元 Create(), と DispatchEvent().

EIconClickStatus CEditWnd::m_IconClicked [private]

CEditWnd.h の 345 行で定義されています。

参照元 OnLButtonDblClk(), OnLButtonDown(), OnLButtonUp(), OnMouseMove(), OnNcLButtonDown(), OnNcLButtonUp(), と OnSysMenuTimer().

このクラスの説明は次のファイルから生成されました:
  • CEditWnd.h
  • CEditWnd.cpp
Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditWnd メンバ一覧

これは全メンバの一覧です。CEditWnd継承メンバも含んでいます。

_AdjustInMonitor(const STabGroupInfo &sTabGroupInfo) | CEditWnd |
_CreateMainWindow(int nGroup, const STabGroupInfo &sTabGroupInfo) | CEditWnd |
_GetTabGroupInfo(STabGroupInfo *pTabGroupInfo, int &nGroup) | CEditWnd |
_GetWindowRectForInit(CMyRect *rcResult, int nGroup, const STabGroupInfo &sTabGroupInfo) | CEditWnd |
CEditWnd() | CEditWnd |
ChangeFileNameNotify(const TCHAR *pszTabCaption, const TCHAR *pszFilePath, BOOL m_bIsGrep) | CEditWnd |
ChangeLayoutParam(bool bShowProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas) | CEditWnd |
Create(HINSTANCE hInstance, int nGroup) | CEditWnd |
CreateFileDropDownMenu(HWND) | CEditWnd | [protected]
DetectWidthOfLineNumberAreaAllPane(bool bRedraw) | CEditWnd |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditWnd |
EIconClickStatus Enum | CEditWnd | [protected]
EndLayoutBars(BOOL bAdjust=TRUE) | CEditWnd |
GetActivePane(void) const | CEditWnd |
GetActiveView() const | CEditWnd | [inline]
GetActiveView() | CEditWnd | [inline]
GetCurrentFocus() const | CEditWnd | [inline]
GetDefaultIcon(HICON &hIconBig, HICON &hIconSmall) const | CEditWnd |
GetDocument() | CEditWnd |
GetDocument() const | CEditWnd |
GetDragMode() const | CEditWnd | [inline]
GetDragPosOrg() const | CEditWnd | [inline]
GetHwnd() const | CEditWnd | [inline]
GetMenuDrawer() | CEditWnd | [inline]
GetRelatedIcon(const TCHAR *szFile, HICON &hIconBig, HICON &hIconSmall) const | CEditWnd |
GetTooltipText(TCHAR *wszBuf, size_t nBufCount, int nID) const | CEditWnd |
icClicked Enum 値 | CEditWnd | [protected]
icDoubleClicked Enum 値 | CEditWnd | [protected]
icDown Enum 値 | CEditWnd | [protected]
icNone Enum 値 | CEditWnd | [protected]
IncrementTimerCount(int nInterval) | CEditWnd | [inline]
InitMenu(HMENU, UINT, BOOL) | CEditWnd |
InitMenubarMessageFont(void) | CEditWnd |
IsActiveApp() const | CEditWnd | [inline]
IsInPreviewMode() | CEditWnd | [inline]
LayoutFuncKey(void) | CEditWnd |
LayoutStatusBar(void) | CEditWnd |
LayoutTabBar(void) | CEditWnd |
LayoutToolBar(void) | CEditWnd |
m_bDragMode | CEditWnd | [private]
m_bIsActiveApp | CEditWnd | [private]
m_bUIPI | CEditWnd | [private]
m_cDlgFind | CEditWnd |
m_cDlgFuncList | CEditWnd |
m_cDlgGrep | CEditWnd |
m_cDlgJump | CEditWnd |
m_cDlgOpenFile | CEditWnd |
m_cDlgReplace | CEditWnd |
m_CFuncKeyWnd | CEditWnd |
m_cHokanMgr | CEditWnd |
m_CMenuDrawer | CEditWnd | [private]
m_cPropCommon | CEditWnd |
m_cPropTypes | CEditWnd |
m_cSplitterWnd | CEditWnd |
m_cStatusBar | CEditWnd |
m_cTabWnd | CEditWnd |
m_cToolbar | CEditWnd |
m_hFontCaretPosInfo | CEditWnd | [private]
m_hInstance | CEditWnd | [private]
m_hWnd | CEditWnd | [private]
m_hwndParent | CEditWnd | [private]
m_IconClicked | CEditWnd | [private]
m_nActivePaneIndex | CEditWnd |
m_nCaretPosInfoCharHeight | CEditWnd | [private]
m_nCaretPosInfoCharWidth | CEditWnd | [private]
m_nCurrentFocus | CEditWnd | [private]
m_nTimerCount | CEditWnd | [private]
m_nWinSizeType | CEditWnd | [private]
m_pcEditViewArr | CEditWnd |
m_pPrintPreview | CEditWnd |
m_pShareData | CEditWnd | [private]
m_pszLastCaption | CEditWnd | [private]
m_pszWndClass | CEditWnd | [private]
m_ptDragPosOrg | CEditWnd | [private]
m_uATOKReconvertMsg | CEditWnd | [private]
m_uMSIMEReconvertMsg | CEditWnd | [private]
MessageLoop(void) | CEditWnd |
OnCaptionTimer(void) | CEditWnd |
OnClose(void) | CEditWnd |
OnCommand(WORD, WORD, HWND) | CEditWnd |
OnDropFiles(HDROP) | CEditWnd |
OnEditTimer(void) | CEditWnd |
OnHScroll(WPARAM, LPARAM) | CEditWnd |
OnLButtonDblClk(WPARAM, LPARAM) | CEditWnd |
OnLButtonDown(WPARAM, LPARAM) | CEditWnd |
OnLButtonUp(WPARAM, LPARAM) | CEditWnd |
OnMouseMove(WPARAM, LPARAM) | CEditWnd |
OnMouseWheel(WPARAM, LPARAM) | CEditWnd |
OnNcLButtonDown(WPARAM, LPARAM) | CEditWnd |
OnNcLButtonUp(WPARAM, LPARAM) | CEditWnd |
OnPaint(HWND, UINT, WPARAM, LPARAM) | CEditWnd |
OnPrintPageSetting(void) | CEditWnd |
OnSize(WPARAM, LPARAM) | CEditWnd |
OnSysMenuTimer(void) | CEditWnd |
OnTimer(WPARAM, LPARAM) | CEditWnd |
OnVScroll(WPARAM, LPARAM) | CEditWnd |
OpenDocumentWhenCreate(const TCHAR *pszPath, ECodeType nCharCode, bool bReadOnly) | CEditWnd |
PopupWinList(bool bMousePos) | CEditWnd |
PrintMenubarMessage(const TCHAR *msg) const | CEditWnd |
PrintPreviewModeONOFF(void) | CEditWnd |
RedrawInactivePane(void) | CEditWnd |
RestorePhysPosOfAllView(CLogicPoint *pptPosArray) | CEditWnd |
SavePhysPosOfAllView(void) | CEditWnd |
SendStatusMessage(const TCHAR *msg) | CEditWnd |
SetActivePane(int) | CEditWnd |
SetCurrentFocus(int n) | CEditWnd | [inline]
SetDebugModeOFF(void) | CEditWnd |
SetDebugModeON(void) | CEditWnd |
SetDocumentTypeWhenCreate(ECodeType nCharCode, bool bReadOnly, int nDocumentType=-1) | CEditWnd |
SetDragMode(bool bDragMode) | CEditWnd | [inline]
SetDragPosOrg(CMyPoint ptDragPosOrg) | CEditWnd | [inline]
SetWindowIcon(HICON, int) | CEditWnd |
Timer_ONOFF(BOOL) | CEditWnd | [protected]
Views_DisableSelectArea(bool bRedraw) | CEditWnd |
Views_DispatchEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | CEditWnd |
Views_Redraw() | CEditWnd |
Views_RedrawAll() | CEditWnd |
WindowTopMost(int) | CEditWnd |
WinListMenu(HMENU hMenu, EditNode *pEditNodeArr, int nRowNum, BOOL bFull) | CEditWnd |
~CEditWnd() | CEditWnd |

Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEOL

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEOL

行末の改行コードを管理 [詳細]

#include <CEol.h>

すべてのメンバ一覧

Public メソッド

void | Init (void)
bool | SetType (enumEOLType t)
void | GetTypeFromString (const wchar_t *pszData, int nDataLen)
void | GetTypeFromString (const char *pszData, int nDataLen)
enumEOLType | GetType () const
現在のTypeを取得
CLogicInt | GetLen () const
現在のEOL長を取得。文字単位。
const TCHAR * | GetName () const
現在のEOLの名称取得
const char * | GetValue () const
現在のEOL文字列先頭へのポインタを取得
const wchar_t * | GetUnicodeValue () const
Unicode版GetValue 2002/5/9 Frozen
const wchar_t * | GetUnicodeBEValue () 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 | GetEOLType (const wchar_t *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 TCHAR * | gm_pszEolNameArr [EOL_TYPE_NUM]
static const wchar_t * | gm_aEolInfoStrings [EOL_TYPE_NUM]

説明

行末の改行コードを管理

管理とは言ってもオブジェクト化することで安全に設定を行えたり関連情報の取得を オブジェクトに対するメソッドで行えるだけだが、グローバル変数への参照を クラス内部に閉じこめることができるのでそれなりに意味はあると思う。

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

コンストラクタとデストラクタ

CEOL::CEOL ( ) [inline]

CEol.h の 89 行で定義されています。

CEOL::CEOL ( enumEOLType t ) [inline]

CEol.h の 90 行で定義されています。

関数

void CEOL::Init ( void ) [inline]

CEol.h の 58 行で定義されています。

参照先 EOL_NONE.

enumEOLType CEOL::GetEOLType | ( | const char * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [static]

行終端子の種類を調べる。

引数:
pszData | 調査対象文字列へのポインタ
nDataLen | 調査対象文字列の長さ
戻り値:
改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。

CEol.cpp の 113 行で定義されています。

参照先 auto_memcmp(), EOL_NONE, EOL_TYPE_NUM, gm_pnEolLenArr, gm_pnEolTypeArr, と gm_pszEolDataArr.

enumEOLType CEOL::GetEOLType | ( | const wchar_t * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [static]

CEol.cpp の 126 行で定義されています。

参照先 EOL_NONE, EOL_TYPE_NUM, gm_pnEolLenArr, gm_pnEolTypeArr, と gm_pszEolUnicodeDataArr.

enumEOLType CEOL::GetEOLTypeUni | ( | const wchar_t * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [static]

行端子の種類を調べるUnicode版

引数:
pszData | 調査対象文字列へのポインタ
nDataLen | 調査対象文字列の長さ(wchar_tの長さ)
戻り値:
改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。

CEol.cpp の 146 行で定義されています。

参照先 auto_memcmp(), EOL_NONE, EOL_TYPE_NUM, gm_pnEolLenArr, gm_pnEolTypeArr, と gm_pszEolUnicodeDataArr.

参照元 GetNextLineW().

enumEOLType CEOL::GetEOLTypeUniBE | ( | const wchar_t * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [static]

CEol.cpp の 166 行で定義されています。

参照先 auto_memcmp(), EOL_NONE, EOL_TYPE_NUM, gm_pnEolLenArr, gm_pnEolTypeArr, と gm_pszEolUnicodeBEDataArr.

参照元 GetNextLineWB().

bool CEOL::SetType ( enumEOLType t )

行末種別の設定。

引数:
t 行末種別
戻り値:
true | 正常終了。設定が反映された。
false | 異常終了。強制的にCRLFに設定。

CEol.cpp の 95 行で定義されています。

参照先 EOL_CR, EOL_CRLF, EOL_NONE, と m_enumEOLType.

参照元 CLayoutMgr::CreateLayout(), CDocLineMgr::DeleteData_CDocLineMgr(), GetNextLine(), GetNextLineW(), GetNextLineWB(), CEditDoc::Init(), CDocLineMgr::InsertData_CDocLineMgr(), と CDocLineMgr::ReplaceData().

void CEOL::GetTypeFromString | ( | const wchar_t * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [inline]

CEol.h の 68 行で定義されています。

参照元 GetNextLine(), CDocLineMgr::InsertData_CDocLineMgr(), と CDocLineMgr::ReplaceData().

void CEOL::GetTypeFromString | ( | const char * | pszData,
 |  | int | nDataLen |
 | ) |  |  | [inline]

CEol.h の 70 行で定義されています。

enumEOLType CEOL::GetType ( ) const [inline]

現在のTypeを取得

CEol.h の 74 行で定義されています。

参照元 CTextDrawer::_DrawEOL(), CViewCommander::Command_RIGHT(), と CLayoutMgr::IsEndOfLine().

CLogicInt CEOL::GetLen ( ) const [inline]

現在のEOL長を取得。文字単位。

CEol.h の 75 行で定義されています。

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_WCHAR(), CEditView::CopyCurLine(), CLayoutMgr::CreateLayout(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CDocLineMgr::DeleteData_CDocLineMgr(), CEditView::DispLineNew(), CConvert_Trim::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CCaret::DrawCaretPosInfo(), CLayoutMgr::DUMP(), CDocLineMgr::DUMP(), CLayout::GetLengthWithoutEOL(), CDocLine::GetLengthWithoutEOL(), GetNextLine(), CFileLoad::GetNextLineCharCode(), GetNextLineW(), GetNextLineWB(), CEditView::GetSelectedData(), CDocLineMgr::InsertData_CDocLineMgr(), CLayoutMgr::LogicToLayout(), CEditDoc::MakeFuncList_BookMark(), CCaret::MoveCursorProperly(), CViewSelect::PrintSelectionInfoMsg(), CFileLoad::ReadLine(), CDocLineMgr::ReplaceData(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), CNativeA::SPACEToTAB(), CNativeA::TABToSPACE(), と CDocLineMgr::WriteFile().

const TCHAR* CEOL::GetName ( ) const [inline]

現在のEOLの名称取得

CEol.h の 76 行で定義されています。

参照元 CCaret::DrawCaretPosInfo(), CLayoutMgr::DUMP(), と CDocLineMgr::DUMP().

const char* CEOL::GetValue ( ) const [inline]

現在のEOL文字列先頭へのポインタを取得

CEol.h の 77 行で定義されています。

参照元 CNativeA::SPACEToTAB(), CNativeA::TABToSPACE(), と CDocLineMgr::WriteFile().

const wchar_t* CEOL::GetUnicodeValue ( ) const [inline]

Unicode版GetValue 2002/5/9 Frozen

CEol.h の 78 行で定義されています。

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_WCHAR(), CConvert_Trim::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CEditView::GetSelectedData(), CFileLoad::ReadLine(), と CDocLineMgr::WriteFile().

const wchar_t* CEOL::GetUnicodeBEValue ( ) const [inline]

UnicodeBE版のGetValue 2002.05.30 Moca

CEol.h の 79 行で定義されています。

参照元 CEditView::CopyCurLine(), と CDocLineMgr::WriteFile().

bool CEOL::operator== ( enumEOLType t ) const [inline]

CEol.h の 82 行で定義されています。

bool CEOL::operator!= ( enumEOLType t ) const [inline]

CEol.h の 83 行で定義されています。

const CEOL& CEOL::operator= ( const CEOL & t ) [inline]

CEol.h の 84 行で定義されています。

参照先 m_enumEOLType.

CEOL::operator enumEOLType ( void ) const [inline]

CEol.h の 86 行で定義されています。

変数

const char * CEOL::gm_pszEolDataArr [static, private]

初期値:

 {
    "",
    "\x0d\x0a",
    "\x0a\x0d",
    "\x0a",
    "\x0d"
}
行終端子のデータの配列

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

参照元 GetEOLType().

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 行で定義されています。

参照元 GetEOLType(), と GetEOLTypeUni().

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 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 TCHAR * CEOL::gm_pszEolNameArr [static, private]

初期値:

 {

    _T("改行無"),
    _T("CRLF"),
    _T("LFCR"),
    _T("LF"),

}

CEol.h の 53 行で定義されています。

const wchar_t* CEOL::gm_aEolInfoStrings[EOL_TYPE_NUM] [static, private]

CEol.h の 54 行で定義されています。

enumEOLType CEOL::m_enumEOLType [private]

改行コードの種類

CEol.h の 93 行で定義されています。

参照元 operator=(), と SetType().

このクラスの説明は次のファイルから生成されました:
  • CEol.h
  • CEol.cpp
Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEOL メンバ一覧

これは全メンバの一覧です。CEOL継承メンバも含んでいます。

CEOL() | CEOL | [inline]
CEOL(enumEOLType t) | CEOL | [inline]
GetEOLType(const char *pszData, int nDataLen) | CEOL | [static]
GetEOLType(const wchar_t *pszData, int nDataLen) | CEOL | [static]
GetEOLTypeUni(const wchar_t *pszData, int nDataLen) | CEOL | [static]
GetEOLTypeUniBE(const wchar_t *pszData, int nDataLen) | CEOL | [static]
GetLen() const | CEOL | [inline]
GetName() const | CEOL | [inline]
GetType() const | CEOL | [inline]
GetTypeFromString(const wchar_t *pszData, int nDataLen) | CEOL | [inline]
GetTypeFromString(const char *pszData, int nDataLen) | CEOL | [inline]
GetUnicodeBEValue() const | CEOL | [inline]
GetUnicodeValue() const | CEOL | [inline]
GetValue() const | CEOL | [inline]
gm_aEolInfoStrings | CEOL | [private, static]
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 Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CError_FileOpen

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileOpen

ファイルのオープンに失敗したときに送出する例外 [詳細]

#include <CFileLoad.h>

説明

ファイルのオープンに失敗したときに送出する例外

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

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CError_FileRead

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileRead

ファイルの読み込みに失敗したときに放出する例外 [詳細]

#include <CFileLoad.h>

説明

ファイルの読み込みに失敗したときに放出する例外

CFileLoad.h の 54 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CError_FileWrite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileWrite

ファイルの書き込みに失敗したときに送出する例外 [詳細]

#include <CFileWrite.h>

説明

ファイルの書き込みに失敗したときに送出する例外

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

このクラスの説明は次のファイルから生成されました:
  • CFileWrite.h
Sakura-Editorに対してSat Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


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().

関数

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(), と CCodeMediator::CheckKanjiCode().

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.

参照元 CCodeMediator::CheckKanjiCode().

int CESI::DetectMultibyte ( MBCODE_INFO * pEI_result )

マルチバイト系文字コードを判定.

戻り値:
判定ポイント（特有バイト数 − 不正バイト数）の最も大きいものを返す． pEI_result: 判定ポイントが最も高かった文字コードの詳細．

CESI.cpp の 124 行で定義されています。

参照先 m_pEI, EncodingInfo_t::nDiff, と NUM_OF_MBCODE.

参照元 CCodeMediator::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 Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CEuc

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEuc

#include <CEuc.h>

CEucに対する継承グラフ

[凡例]
CEucのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | EUCToUnicode (CMemory *pMem)
static EConvertResult | UnicodeToEUC (CMemory *pMem)
static void | EUCToSJIS (CMemory *pMem)
static void | SJISToEUC (CMemory *pMem)

説明

CEuc.h の 5 行で定義されています。

関数

EConvertResult CEuc::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CEuc.h の 8 行で定義されています。

参照先 CNative::_GetMemory(), と EUCToUnicode().

EConvertResult CEuc::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CEuc.h の 9 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToEUC().

EConvertResult CEuc::EUCToUnicode ( CMemory * pMem ) [static]

CEuc.cpp の 10 行で定義されています。

参照先 EUCToSJIS(), RESULT_COMPLETE, と CShiftJis::SJISToUnicode().

参照元 CodeToUnicode().

EConvertResult CEuc::UnicodeToEUC ( CMemory * pMem ) [static]

CEuc.cpp の 19 行で定義されています。

参照先 RESULT_COMPLETE, SJISToEUC(), と CShiftJis::UnicodeToSJIS().

参照元 UnicodeToCode().

void CEuc::EUCToSJIS ( CMemory * pMem ) [static]

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

参照先 CMemory::GetRawPtr(), Charcode::IsEucKan1(), Charcode::IsEucKan2(), と CMemory::SetRawData().

参照元 EUCToUnicode().

void CEuc::SJISToEUC ( CMemory * pMem ) [static]

CEuc.cpp の 106 行で定義されています。

参照先 _mbcjmstojis_ex(), CMemory::GetRawPtr(), CShiftJis::GetSizeOfChar(), と CMemory::SetRawData().

参照元 UnicodeToEUC().

このクラスの説明は次のファイルから生成されました:
  • CEuc.h
  • CEuc.cpp
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEuc メンバ一覧

これは全メンバの一覧です。CEuc継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CEuc | [inline, virtual]
EUCToSJIS(CMemory *pMem) | CEuc | [static]
EUCToUnicode(CMemory *pMem) | CEuc | [static]
SJISToEUC(CMemory *pMem) | CEuc | [static]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CEuc | [inline, virtual]
UnicodeToEUC(CMemory *pMem) | CEuc | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFileExt

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileExt

#include <CFileExt.h>

CFileExtのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CFileExt ()
~CFileExt ()
bool | AppendExt (const TCHAR *pszName, const TCHAR *pszExt)
bool | AppendExtRaw (const TCHAR *pszName, const TCHAR *pszExt)
const TCHAR * | GetName (int nIndex)
const TCHAR * | GetExt (int nIndex)
const TCHAR * | GetExtFilter (void)
int | GetCount (void)

Protected メソッド

bool | ConvertTypesExtToDlgExt (const TCHAR *pszSrcExt, TCHAR *pszDstExt)

Private 変数

int | m_nCount
FileExtInfoTag * m_puFileExtInfo
TCHAR | m_szFilter [4096]

構成

struct | FileExtInfoTag

説明

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

コンストラクタとデストラクタ

CFileExt::CFileExt ( )

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

参照先 _tcscpy(), m_nCount, m_puFileExtInfo, m_szFilter, と NULL.

CFileExt::~CFileExt ( )

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

参照先 m_nCount, m_puFileExtInfo, と NULL.

関数

bool CFileExt::AppendExt | ( | const TCHAR * | pszName,
 |  | const TCHAR * | pszExt
 | ) |  |

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

参照先 AppendExtRaw(), と ConvertTypesExtToDlgExt().

bool CFileExt::AppendExtRaw | ( | const TCHAR * | pszName,
 |  | const TCHAR * | pszExt
 | ) |  |

CFileExt.cpp の 67 行で定義されています。

参照先 _tcscpy(), m_nCount, m_puFileExtInfo, と NULL.

参照元 AppendExt().

const TCHAR * CFileExt::GetName ( int nIndex )

CFileExt.cpp の 93 行で定義されています。

参照先 m_nCount, m_puFileExtInfo, CFileExt::FileExtInfoTag::m_szName, と NULL.

const TCHAR * CFileExt::GetExt ( int nIndex )

CFileExt.cpp の 100 行で定義されています。

参照先 m_nCount, m_puFileExtInfo, CFileExt::FileExtInfoTag::m_szExt, と NULL.

const TCHAR * CFileExt::GetExtFilter ( void )

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

参照先 _tcscpy(), auto_sprintf(), m_nCount, m_puFileExtInfo, と m_szFilter.

int CFileExt::GetCount ( void ) [inline]

CFileExt.h の 50 行で定義されています。

bool CFileExt::ConvertTypesExtToDlgExt | ( | const TCHAR * | pszSrcExt,
 |  | TCHAR * | pszDstExt |
 | ) |  |  | [protected]

CFileExt.cpp の 136 行で定義されています。

参照先 _tcscpy(), と NULL.

参照元 AppendExt().

変数

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().

TCHAR CFileExt::m_szFilter[4096] [private]

CFileExt.h の 64 行で定義されています。

参照元 CFileExt(), と GetExtFilter().

このクラスの説明は次のファイルから生成されました:
  • CFileExt.h
  • CFileExt.cpp
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileExt メンバ一覧

これは全メンバの一覧です。CFileExt継承メンバも含んでいます。

AppendExt(const TCHAR *pszName, const TCHAR *pszExt) | CFileExt |
AppendExtRaw(const TCHAR *pszName, const TCHAR *pszExt) | CFileExt |
CFileExt() | CFileExt |
ConvertTypesExtToDlgExt(const TCHAR *pszSrcExt, TCHAR *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 Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CFileExt::FileExtInfoTag

  • 構成
  • クラス階層
  • 構成メンバ
CFileExt::FileExtInfoTag

構造体 CFileExt::FileExtInfoTag

すべてのメンバ一覧

Public 変数

TCHAR | m_szName [64]
TCHAR | m_szExt [64 *3+1]

説明

CFileExt.h の 57 行で定義されています。

変数

TCHAR CFileExt::FileExtInfoTag::m_szName[64]

CFileExt.h の 58 行で定義されています。

参照元 CFileExt::GetName().

TCHAR CFileExt::FileExtInfoTag::m_szExt[64 *3+1]

CFileExt.h の 59 行で定義されています。

参照元 CFileExt::GetExt().

この構造体の説明は次のファイルから生成されました:
  • CFileExt.h
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileExt::FileExtInfoTag メンバ一覧

これは全メンバの一覧です。CFileExt::FileExtInfoTag継承メンバも含んでいます。

m_szExt | CFileExt::FileExtInfoTag
m_szName | CFileExt::FileExtInfoTag

Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFileLoad

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileLoad

#include <CFileLoad.h>

すべてのメンバ一覧

Public メソッド

CFileLoad (void)
~CFileLoad (void)
ECodeType | FileOpen (LPCTSTR, ECodeType, int, BOOL *pbBomExist=NULL)
void | FileClose (void)
const wchar_t * | ReadLine (CNativeW *pUnicodeBuffer, int *pnLineLen, CEOL *pcEol)
1行データをロードする 順アクセス用
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)

Protected 変数

HANDLE | m_hFile
int | m_nFileSize
int | m_nFileDataLen
int | m_nReadLength
int | m_nLineIndex
ECodeType 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 の 63 行で定義されています。

列挙型

enum CFileLoad::enumFileLoadMode [protected]

列挙型の値:
FLMODE_CLOSE | 初期状態
FLMODE_OPEN | ファイルオープンのみ
FLMODE_REDY | 順アクセスOK
FLMODE_READBUFEND | ファイルの終端までバッファに入れた

CFileLoad.h の 135 行で定義されています。

コンストラクタとデストラクタ

CFileLoad::CFileLoad ( void )

ロード用バッファサイズの設定可能な最低値

コンストラクタ

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

参照先 CODE_DEFAULT, 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 の 83 行で定義されています。

参照先 FileClose(), m_hFile, m_pReadBuf, と NULL.

CFileLoad::CFileLoad ( const CFileLoad & ) [inline, protected]

CFileLoad.h の 108 行で定義されています。

関数

ECodeType CFileLoad::FileOpen | ( | LPCTSTR | pFileName,
 |  | ECodeType | 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 の 102 行で定義されています。

参照先 Buffering(), CCodeMediator::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.

参照元 CViewCommander::Command_INSFILE(), と CDocLineMgr::ReadFile().

void CFileLoad::FileClose ( void )

ファイルを閉じる 読み込み用バッファとm_memLineもクリアされる

CFileLoad.cpp の 194 行で定義されています。

参照先 CODE_DEFAULT, FALSE, FLMODE_CLOSE, m_bBomExist, m_CharCode, m_eMode, m_hFile, m_nFileDataLen, m_nFileSize, m_nFlag, m_nLineIndex, m_nReadLength, NULL, と ReadBufEmpty().

参照元 CViewCommander::Command_INSFILE(), FileOpen(), CDocLineMgr::ReadFile(), と ~CFileLoad().

const wchar_t * CFileLoad::ReadLine | ( | CNativeW * | pUnicodeBuffer,
 |  | int * | pnLineLen,
 |  | CEOL * | pcEol
 | ) |  |

1行データをロードする 順アクセス用

ファイルの先頭にポインタを移動する BOMはここで読み飛ばす

日付:
2003.06.13 Moca 使わないのでコメントアウト
次の論理行を文字コード変換してロードする 順次アクセス専用 GetNextLineのような動作をする
戻り値:
NULL以外 1行を保持しているデータの先頭アドレスを返す。永続的ではない一時的な領域。 NULL データがなかった
引数:
pUnicodeBuffer | [out] UNICODEデータ受け取りバッファ
pnLineLen | [out] 改行コード長を含む一行のデータ長。文字単位。
pcEol | [i/o]

CFileLoad.cpp の 261 行で定義されています。

参照先 CMemory::AppendRawData(), CNativeW::AppendString(), Buffering(), CIoBridge::FileToImpl(), FLMODE_REDY, CEOL::GetLen(), GetNextLineCharCode(), CMemory::GetRawLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), m_CharCode, m_eMode, m_nFlag, m_nLineIndex, m_nReadBufOffSet, m_nReadDataLen, m_nReadLength, m_pReadBuf, MYTRACE_A, NULL, と CMemory::SetRawData().

参照元 CViewCommander::Command_INSFILE(), と CDocLineMgr::ReadFile().

BOOL CFileLoad::GetFileTime | ( | FILETIME * | pftCreate,
 |  | FILETIME * | pftLastAccess,
 |  | FILETIME * | pftLastWrite |
 | ) |  |  | [inline]

ファイルの日時を取得する

CFileLoad.h の 155 行で定義されています。

参照先 m_hFile.

参照元 CDocLineMgr::ReadFile().

BOOL CFileLoad::IsBomExist ( void ) [inline]

開いたファイルにはBOMがあるか？

CFileLoad.h の 94 行で定義されています。

int CFileLoad::GetPercent ( void )

現在の進行率を取得する(0% - 100%) 若干誤差が出る

バッファサイズの変更

覚え書き:
ファイルサイズを考慮しない FileOpenより先に呼ぶと確実にバッファサイズを小さくできる
現在の進行率を取得する
戻り値:
0% - 100% 若干誤差が出る

CFileLoad.cpp の 434 行で定義されています。

参照先 m_nFileDataLen, と m_nReadLength.

参照元 CViewCommander::Command_INSFILE(), と CDocLineMgr::ReadFile().

int CFileLoad::GetFileSize ( void ) [inline]

ファイルサイズを取得する

CFileLoad.h の 100 行で定義されています。

参照元 CViewCommander::Command_INSFILE(), と FileOpen().

CFileLoad& CFileLoad::operator= ( const CFileLoad & ) [inline, protected]

CFileLoad.h の 109 行で定義されています。

void CFileLoad::Buffering ( void ) [protected]

バッファにデータを読み込む

覚え書き:
エラー時は throw する

CFileLoad.cpp の 336 行で定義されています。

参照先 FLMODE_READBUFEND, gm_nBufSizeDef, m_eMode, m_nFileSize, m_nReadBufOffSet, m_nReadBufSize, m_nReadDataLen, m_pReadBuf, NULL, と Read().

参照元 FileOpen(), と ReadLine().

void CFileLoad::ReadBufEmpty ( void ) [protected]

バッファクリア

CFileLoad.cpp の 379 行で定義されています。

参照先 m_nReadBufOffSet, m_nReadBufSize, m_nReadDataLen, m_pReadBuf, と NULL.

参照元 FileClose().

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 の 449 行で定義されています。

参照先 CODE_UNICODE, CODE_UNICODEBE, CEOL::GetLen(), GetNextLine(), GetNextLineW(), GetNextLineWB(), と m_CharCode.

参照元 ReadLine().

int CFileLoad::Read | ( | void * | pBuf,
 |  | size_t | nSize |
 | ) |  |  | [inline, protected]

CFileLoad.h の 160 行で定義されています。

参照先 FALSE, m_hFile, と NULL.

参照元 Buffering().

DWORD CFileLoad::FilePointer | ( | DWORD | offset,
 |  | DWORD | origin |
 | ) |  |  | [inline, protected]

CFileLoad.h の 169 行で定義されています。

参照先 INVALID_SET_FILE_POINTER, m_hFile, と NULL.

変数

const int CFileLoad::gm_nBufSizeDef = 32768 [static]

ロード用バッファサイズの初期値

CFileLoad.h の 102 行で定義されています。

参照元 Buffering().

HANDLE CFileLoad::m_hFile [protected]

CFileLoad.h の 125 行で定義されています。

参照元 CFileLoad(), FileClose(), FileOpen(), FilePointer(), GetFileTime(), Read(), と ~CFileLoad().

int CFileLoad::m_nFileSize [protected]

CFileLoad.h の 126 行で定義されています。

参照元 Buffering(), CFileLoad(), FileClose(), と FileOpen().

int CFileLoad::m_nFileDataLen [protected]

CFileLoad.h の 127 行で定義されています。

参照元 CFileLoad(), FileClose(), FileOpen(), と GetPercent().

int CFileLoad::m_nReadLength [protected]

CFileLoad.h の 128 行で定義されています。

参照元 CFileLoad(), FileClose(), GetPercent(), と ReadLine().

int CFileLoad::m_nLineIndex [protected]

CFileLoad.h の 129 行で定義されています。

参照元 CFileLoad(), FileClose(), と ReadLine().

ECodeType CFileLoad::m_CharCode [protected]

CFileLoad.h の 130 行で定義されています。

参照元 CFileLoad(), FileClose(), FileOpen(), GetNextLineCharCode(), と ReadLine().

BOOL CFileLoad::m_bBomExist [protected]

CFileLoad.h の 131 行で定義されています。

参照元 CFileLoad(), FileClose(), と FileOpen().

int CFileLoad::m_nFlag [protected]

CFileLoad.h の 132 行で定義されています。

参照元 CFileLoad(), FileClose(), FileOpen(), と ReadLine().

enumFileLoadMode CFileLoad::m_eMode [protected]

CFileLoad.h の 141 行で定義されています。

参照元 Buffering(), CFileLoad(), FileClose(), FileOpen(), と ReadLine().

char* CFileLoad::m_pReadBuf [protected]

CFileLoad.h の 144 行で定義されています。

参照元 Buffering(), CFileLoad(), FileOpen(), ReadBufEmpty(), ReadLine(), と ~CFileLoad().

int CFileLoad::m_nReadBufSize [protected]

CFileLoad.h の 145 行で定義されています。

参照元 Buffering(), CFileLoad(), と ReadBufEmpty().

int CFileLoad::m_nReadDataLen [protected]

CFileLoad.h の 146 行で定義されています。

参照元 Buffering(), CFileLoad(), FileOpen(), ReadBufEmpty(), と ReadLine().

int CFileLoad::m_nReadBufOffSet [protected]

CFileLoad.h の 147 行で定義されています。

参照元 Buffering(), CFileLoad(), FileOpen(), ReadBufEmpty(), と ReadLine().

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
  • CFileLoad.cpp
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


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, ECodeType, 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]
GetPercent(void) | CFileLoad |
gm_nBufSizeDef | CFileLoad | [static]
IsBomExist(void) | CFileLoad | [inline]
m_bBomExist | CFileLoad | [protected]
m_CharCode | 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(CNativeW *pUnicodeBuffer, int *pnLineLen, CEOL *pcEol) | CFileLoad |
~CFileLoad(void) | CFileLoad |

Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFileWrite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileWrite

ファイル書き込みクラス（Cのライブラリ関数を使用して実装） [詳細]

#include <CFileWrite.h>

すべてのメンバ一覧

Public メソッド

CFileWrite (const TCHAR *pszPath)
~CFileWrite ()
void | Close ()
void | Write (const void *buffer, size_t size)
void | WriteSz (const char *szData)

Private 変数

FILE * | m_hFile
DWORD | m_dwFileAttribute
TCHAR * | m_pszPath
bool | m_ChangeAttribute

説明

ファイル書き込みクラス（Cのライブラリ関数を使用して実装）

CFileWrite.h の 35 行で定義されています。

コンストラクタとデストラクタ

CFileWrite::CFileWrite ( const TCHAR * pszPath )

CFileWrite.cpp の 20 行で定義されています。

参照先 m_ChangeAttribute, m_dwFileAttribute, m_hFile, m_pszPath, と NULL.

CFileWrite::~CFileWrite ( )

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

参照先 Close(), と m_hFile.

関数

void CFileWrite::Close ( )

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

参照先 assert, m_ChangeAttribute, m_dwFileAttribute, m_hFile, と m_pszPath.

参照元 CDocLineMgr::WriteFile(), と ~CFileWrite().

void CFileWrite::Write | ( | const void * | buffer,
 |  | size_t | size |
 | ) |  |  | [inline]

CFileWrite.h の 41 行で定義されています。

参照先 assert, と m_hFile.

参照元 CViewCommander::Command_PUTFILE(), CDocLineMgr::WriteFile(), と WriteSz().

void CFileWrite::WriteSz ( const char * szData ) [inline]

CFileWrite.h の 48 行で定義されています。

参照先 Write().

参照元 CDocLineMgr::WriteFile().

変数

FILE* CFileWrite::m_hFile [private]

CFileWrite.h の 53 行で定義されています。

参照元 CFileWrite(), Close(), Write(), と ~CFileWrite().

DWORD CFileWrite::m_dwFileAttribute [private]

CFileWrite.h の 54 行で定義されています。

参照元 CFileWrite(), と Close().

TCHAR* CFileWrite::m_pszPath [private]

CFileWrite.h の 55 行で定義されています。

参照元 CFileWrite(), と Close().

bool CFileWrite::m_ChangeAttribute [private]

CFileWrite.h の 56 行で定義されています。

参照元 CFileWrite(), と Close().

このクラスの説明は次のファイルから生成されました:
  • CFileWrite.h
  • CFileWrite.cpp
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileWrite メンバ一覧

これは全メンバの一覧です。CFileWrite継承メンバも含んでいます。

CFileWrite(const TCHAR *pszPath) | CFileWrite |
Close() | 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]
WriteSz(const char *szData) | CFileWrite | [inline]
~CFileWrite() | CFileWrite |

Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFuncInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncInfo

アウトライン解析 データ要素 [詳細]

#include <CFuncInfo.h>

CFuncInfoのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CFuncInfo (CLogicInt, CLayoutInt, const TCHAR *, int)
~CFuncInfo ()
bool | IsAddClipText (void)
クリップボードに追加する要素か？

Public 変数

CLogicInt m_nFuncLineCRLF
CLayoutInt m_nFuncLineLAYOUT
CNativeT m_cmemFuncName
int | m_nInfo
int | m_nDepth

説明

アウトライン解析 データ要素

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

コンストラクタとデストラクタ

CFuncInfo::CFuncInfo | ( | CLogicInt | nFuncLineCRLF,
 |  | CLayoutInt | nFuncLineLAYOUT,
 |  | const TCHAR * | pszFuncName,
 |  | int | nInfo
 | ) |  |

CFuncInfoクラス構築

引数:
nFuncLineCRLF | 関数のある行(CRLF単位)
nFuncLineLAYOUT | 関数のある行(折り返し単位)
pszFuncName | 関数名
nInfo | 付加情報

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

参照先 m_cmemFuncName, m_nFuncLineCRLF, m_nFuncLineLAYOUT, m_nInfo, と CNativeA::SetString().

CFuncInfo::~CFuncInfo ( )

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

関数

bool CFuncInfo::IsAddClipText ( void ) [inline]

クリップボードに追加する要素か？

CFuncInfo.h の 37 行で定義されています。

参照先 FUNCINFO_NOCLIPTEXT, と m_nInfo.

参照元 CDlgFuncList::SetTree().

変数

CLogicInt CFuncInfo::m_nFuncLineCRLF

関数のある行(CRLF単位)

CFuncInfo.h の 39 行で定義されています。

参照元 _CompareFunc_(), CFuncInfo(), CDlgFuncList::GetData(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

CLayoutInt CFuncInfo::m_nFuncLineLAYOUT

関数のある行(折り返し単位)

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

参照元 CFuncInfo(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

CNativeT CFuncInfo::m_cmemFuncName

関数名

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

参照元 _CompareFunc_(), CFuncInfo(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

int CFuncInfo::m_nInfo

付加情報

CFuncInfo.h の 45 行で定義されています。

参照元 _CompareFunc_(), CFuncInfo(), IsAddClipText(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), と CDlgFuncList::SetTreeJava().

int CFuncInfo::m_nDepth

深さ

CFuncInfo.h の 46 行で定義されています。

参照元 CFuncInfoArr::AppendData(), と CDlgFuncList::SetTree().

このクラスの説明は次のファイルから生成されました:
  • CFuncInfo.h
  • CFuncInfo.cpp
Sakura-Editorに対してSat Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncInfo メンバ一覧

これは全メンバの一覧です。CFuncInfo継承メンバも含んでいます。

CFuncInfo(CLogicInt, CLayoutInt, const TCHAR *, 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 Nov 17 20:28:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFuncInfoArr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncInfoArr

アウトライン解析 データ配列 [詳細]

#include <CFuncInfoArr.h>

CFuncInfoArrのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CFuncInfoArr ()
~CFuncInfoArr ()
CFuncInfo * | GetAt (int)
void | AppendData (CFuncInfo *)
void | AppendData (CLogicInt, CLayoutInt, const TCHAR *, int, int nDepth=0)
void | AppendData (CLogicInt, CLayoutInt, const NOT_TCHAR *, int, int nDepth=0)
int | GetNum (void)
void | Empty (void)
void | DUMP (void)

Public 変数

SFilePath m_szFilePath

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().

関数

CFuncInfo * CFuncInfoArr::GetAt ( int nIdx )

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

参照先 m_nFuncInfoArrNum, m_ppcFuncInfoArr, と NULL.

参照元 _CompareFunc_(), CDlgFuncList::GetData(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

void CFuncInfoArr::AppendData ( CFuncInfo * pcFuncInfo )

配列の最後にデータを追加する

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

参照先 m_nFuncInfoArrNum, と m_ppcFuncInfoArr.

参照元 AppendData(), 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().

void CFuncInfoArr::AppendData | ( | CLogicInt | nFuncLineCRLF,
 |  | CLayoutInt | nFuncLineLAYOUT,
 |  | const TCHAR * | pszFuncName,
 |  | int | nInfo,
 |  | int | nDepth = 0
 | ) |  |

配列の最後にデータを追加する

日付:
2002.04.01 YAZAKI 深さ導入
引数:
nFuncLineCRLF | 関数のある行(CRLF単位)
nFuncLineLAYOUT | 関数のある行(折り返し単位)
pszFuncName | 関数名
nInfo | 付加情報
nDepth | 深さ

CFuncInfoArr.cpp の 87 行で定義されています。

参照先 AppendData(), と CFuncInfo::m_nDepth.

void CFuncInfoArr::AppendData | ( | CLogicInt | nFuncLineCRLF,
 |  | CLayoutInt | nFuncLineLAYOUT,
 |  | const NOT_TCHAR * | pszFuncName,
 |  | int | nInfo,
 |  | int | nDepth = 0
 | ) |  |

引数:
nFuncLineCRLF | 関数のある行(CRLF単位)
nFuncLineLAYOUT | 関数のある行(折り返し単位)
pszFuncName | 関数名
nInfo | 付加情報
nDepth | 深さ

CFuncInfoArr.cpp の 101 行で定義されています。

参照先 AppendData(), と to_tchar.

int CFuncInfoArr::GetNum ( void ) [inline]

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

参照先 m_nFuncInfoArrNum.

参照元 CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

void CFuncInfoArr::Empty ( void )

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

参照先 m_nFuncInfoArrNum, m_ppcFuncInfoArr, と NULL.

参照元 CViewCommander::Command_FUNCLIST(), と ~CFuncInfoArr().

void CFuncInfoArr::DUMP ( void )

CFuncInfoArr.cpp の 113 行で定義されています。

参照先 m_nFuncInfoArrNum, m_ppcFuncInfoArr, と MYTRACE_A.

参照元 CEditDoc::MakeFuncList_Java(), と CEditDoc::MakeFuncList_Perl().

変数

SFilePath CFuncInfoArr::m_szFilePath

解析対象ファイル名

CFuncInfoArr.h の 39 行で定義されています。

参照元 CViewCommander::Command_FUNCLIST(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), と CDlgFuncList::SetTreeJava().

int CFuncInfoArr::m_nFuncInfoArrNum [private]

配列要素数

CFuncInfoArr.h の 41 行で定義されています。

参照元 AppendData(), CFuncInfoArr(), DUMP(), Empty(), GetAt(), と GetNum().

CFuncInfo** CFuncInfoArr::m_ppcFuncInfoArr [private]

配列

CFuncInfoArr.h の 42 行で定義されています。

参照元 AppendData(), CFuncInfoArr(), DUMP(), Empty(), と GetAt().

このクラスの説明は次のファイルから生成されました:
  • CFuncInfoArr.h
  • CFuncInfoArr.cpp
Sakura-Editorに対してSat Nov 17 20:28:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncInfoArr メンバ一覧

これは全メンバの一覧です。CFuncInfoArr継承メンバも含んでいます。

AppendData(CFuncInfo *) | CFuncInfoArr |
AppendData(CLogicInt, CLayoutInt, const TCHAR *, int, int nDepth=0) | CFuncInfoArr |
AppendData(CLogicInt, CLayoutInt, const NOT_TCHAR *, 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 Nov 17 20:28:15 2007に生成されました。 doxygen 1.5.4


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 TCHAR * | m_pszClassName
CEditDoc * m_pCEditDoc
DLLSHAREDATA * m_pShareData
int | m_nCurrentKeyState
WCHAR | 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 行で定義されています。

参照先 _countof, _tcscpy(), FALSE, CShareData::getInstance(), CShareData::GetShareData(), LTEXT, m_bSizeBox, m_hFont, m_hwndButtonArr, m_hwndSizeBox, m_nCurrentKeyState, m_nTimerCount, m_pCEditDoc, m_pShareData, m_pszClassName, m_szFuncNameArr, memset_raw(), と NULL.

CFuncKeyWnd::~CFuncKeyWnd ( ) [virtual]

CFuncKeyWnd.cpp の 102 行で定義されています。

参照先 m_hFont.

関数

HWND CFuncKeyWnd::Open | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | CEditDoc * | pCEditDoc,
 |  | BOOL | bSizeBox
 | ) |  |

CFuncKeyWnd.cpp の 113 行で定義されています。

参照先 CWnd::Create(), CreateButtons(), CWnd::GetAppInstance(), CWnd::GetHwnd(), IDT_FUNCWND, m_bSizeBox, DLLSHAREDATA::m_Common, m_hwndSizeBox, m_nButtonGroupNum, m_nCurrentKeyState, CommonSetting_Window::m_nFUNCKEYWND_GroupNum, m_pCEditDoc, m_pShareData, m_pszClassName, CommonSetting::m_sWindow, NULL, OnTimer(), CWnd::RegisterWC(), Timer_ONOFF(), と TRUE.

参照元 CEditWnd::LayoutFuncKey().

void CFuncKeyWnd::Close ( void )

CFuncKeyWnd.cpp の 184 行で定義されています。

参照先 CWnd::DestroyWindow().

参照元 CEditWnd::DispatchEvent(), と CEditWnd::LayoutFuncKey().

void CFuncKeyWnd::SizeBox_ONOFF ( BOOL bSizeBox )

サイズボックスの表示／非表示切り替え

CFuncKeyWnd.cpp の 471 行で定義されています。

参照先 CWnd::DestroyWindow(), FALSE, CWnd::GetAppInstance(), CWnd::GetHwnd(), m_bSizeBox, m_hwndSizeBox, NULL, OnSize(), と TRUE.

参照元 CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), と CEditWnd::OnSize().

void CFuncKeyWnd::Timer_ONOFF ( BOOL bStart )

CFuncKeyWnd.cpp の 512 行で定義されています。

参照先 CWnd::GetHwnd(), GSTR_APPNAME_A, IDT_FUNCWND, m_nCurrentKeyState, MYMESSAGEBOX_A, NULL, と TIMER_TIMEOUT.

参照元 CEditWnd::DispatchEvent(), OnDestroy(), と Open().

void CFuncKeyWnd::CreateButtons ( void ) [protected]

ボタンの生成

日付:
2007.02.05 ryoji ボタンの水平位置・幅の設定処理を削除（OnSizeで再配置されるので不要）

CFuncKeyWnd.cpp の 431 行で定義されています。

参照先 _countof, CWnd::GetHwnd(), GetWindowLongPtr, GWLP_HINSTANCE, m_hFont, m_hwndButtonArr, m_nCurrentKeyState, m_nFuncCodeArr, NULL, SendMessageAny, と TRUE.

参照元 Open().

int CFuncKeyWnd::CalcButtonSize ( void ) [protected]

ボタンのサイズを計算

CFuncKeyWnd.cpp の 396 行で定義されています。

参照先 _countof, CWnd::GetHwnd(), m_hwndButtonArr, m_hwndSizeBox, m_nButtonGroupNum, NULL, と TRUE.

参照元 OnSize().

virtual void CFuncKeyWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

CWndを再定義しています。

CFuncKeyWnd.h の 66 行で定義されています。

LRESULT CFuncKeyWnd::OnTimer | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CFuncKeyWnd.cpp の 293 行で定義されています。

参照先 _countof, FALSE, CFuncLookup::Funccode2Name(), getCtrlKeyState(), CKeyBind::GetFuncCode(), CWnd::GetHwnd(), CWnd::GetParentHwnd(), IsFuncEnable(), LTEXT, CEditDoc::m_cFuncLookup, m_hwndButtonArr, m_nCurrentKeyState, m_nFuncCodeArr, DLLSHAREDATA::m_nKeyNameArrNum, m_nTimerCount, m_pCEditDoc, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, m_szFuncNameArr, NULL, TIMER_CHECKFUNCENABLE, TIMER_TIMEOUT, TRUE, と ApiWrap::Wnd_SetText().

参照元 Open().

LRESULT CFuncKeyWnd::OnCommand | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CFuncKeyWnd.cpp の 265 行で定義されています。

参照先 _countof, CWnd::GetParentHwnd(), m_hwndButtonArr, m_nFuncCodeArr, と SendMessageCmd.

LRESULT CFuncKeyWnd::OnSize | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

* WM_SIZE処理 */

CFuncKeyWnd.cpp の 199 行で定義されています。

参照先 _countof, CalcButtonSize(), CWnd::GetHwnd(), m_hwndButtonArr, m_nButtonGroupNum, NULL, と TRUE.

参照元 SizeBox_ONOFF().

LRESULT CFuncKeyWnd::OnDestroy | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CFuncKeyWnd.cpp の 367 行で定義されています。

参照先 _countof, CWnd::_SetHwnd(), CWnd::DestroyWindow(), FALSE, m_hwndButtonArr, m_hwndSizeBox, NULL, と Timer_ONOFF().

変数

const TCHAR* CFuncKeyWnd::m_pszClassName [private]

クラス名

CFuncKeyWnd.h の 46 行で定義されています。

参照元 CFuncKeyWnd(), と Open().

CEditDoc* CFuncKeyWnd::m_pCEditDoc [private]

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

参照元 CFuncKeyWnd(), OnTimer(), と Open().

DLLSHAREDATA* CFuncKeyWnd::m_pShareData [private]

CFuncKeyWnd.h の 48 行で定義されています。

参照元 CFuncKeyWnd(), OnTimer(), と Open().

int CFuncKeyWnd::m_nCurrentKeyState [private]

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

参照元 CFuncKeyWnd(), CreateButtons(), OnTimer(), Open(), と Timer_ONOFF().

WCHAR CFuncKeyWnd::m_szFuncNameArr[12][256] [private]

CFuncKeyWnd.h の 50 行で定義されています。

参照元 CFuncKeyWnd(), と OnTimer().

HWND CFuncKeyWnd::m_hwndButtonArr[12] [private]

CFuncKeyWnd.h の 51 行で定義されています。

参照元 CalcButtonSize(), CFuncKeyWnd(), CreateButtons(), OnCommand(), OnDestroy(), OnSize(), と OnTimer().

HFONT CFuncKeyWnd::m_hFont [private]

表示用フォント

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

参照元 CFuncKeyWnd(), CreateButtons(), と ~CFuncKeyWnd().

BOOL CFuncKeyWnd::m_bSizeBox [private]

CFuncKeyWnd.h の 53 行で定義されています。

参照元 CFuncKeyWnd(), Open(), と SizeBox_ONOFF().

HWND CFuncKeyWnd::m_hwndSizeBox [private]

CFuncKeyWnd.h の 54 行で定義されています。

参照元 CalcButtonSize(), CFuncKeyWnd(), OnDestroy(), Open(), と SizeBox_ONOFF().

int CFuncKeyWnd::m_nTimerCount [private]

CFuncKeyWnd.h の 55 行で定義されています。

参照元 CFuncKeyWnd(), と OnTimer().

int CFuncKeyWnd::m_nButtonGroupNum [private]

CFuncKeyWnd.h の 56 行で定義されています。

参照元 CalcButtonSize(), OnSize(), と Open().

int CFuncKeyWnd::m_nFuncCodeArr[12] [private]

CFuncKeyWnd.h の 57 行で定義されています。

参照元 CreateButtons(), OnCommand(), と OnTimer().

このクラスの説明は次のファイルから生成されました:
  • CFuncKeyWnd.h
  • CFuncKeyWnd.cpp
Sakura-Editorに対してSat Nov 17 20:28:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncKeyWnd メンバ一覧

これは全メンバの一覧です。CFuncKeyWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
AfterCreateWindow(void) | CFuncKeyWnd | [inline, protected, virtual]
CalcButtonSize(void) | CFuncKeyWnd | [protected]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
CFuncKeyWnd() | CFuncKeyWnd |
Close(void) | CFuncKeyWnd |
Create(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CreateButtons(void) | CFuncKeyWnd | [protected]
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
GetAppInstance() const | CWnd | [inline]
GetHwnd() const | CWnd | [inline]
GetParentHwnd() const | CWnd | [inline]
Init(HINSTANCE, HWND) | CWnd |
m_bSizeBox | CFuncKeyWnd | [private]
m_hFont | CFuncKeyWnd | [private]
m_hwndButtonArr | CFuncKeyWnd | [private]
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_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(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | CWnd |
SizeBox_ONOFF(BOOL) | CFuncKeyWnd |
Timer_ONOFF(BOOL) | CFuncKeyWnd |
~CFuncKeyWnd() | CFuncKeyWnd | [virtual]
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CFuncLookup

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncLookup

表示用文字列等の取得 [詳細]

#include <CFuncLookup.h>

CFuncLookupのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CFuncLookup (HINSTANCE hInst, CSMacroMgr *SMacroMgr, CommonSetting *pCom)
CFuncLookup ()
void | Init (HINSTANCE hInst, CSMacroMgr *SMacroMgr, CommonSetting *pCom)
EFunctionCode | Pos2FuncCode (int category, int position) const
分類中の位置に対応する機能番号を返す．
bool | Pos2FuncName (int category, int position, WCHAR *ptr, int bufsize) const
分類中の位置に対応する機能名称を返す．
bool | Funccode2Name (int funccode, WCHAR *ptr, int bufsize) const
機能番号に対応する機能名称を返す．
const TCHAR * | 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
マクロ管理クラス
CommonSetting * m_pCommon

説明

表示用文字列等の取得

機能，機能分類と位置，機能番号，文字列などの対応を集約する．

CFuncLookup.h の 48 行で定義されています。

コンストラクタとデストラクタ

CFuncLookup::CFuncLookup | ( | HINSTANCE | hInst,
 |  | CSMacroMgr * | SMacroMgr,
 |  | CommonSetting * | pCom |
 | ) |  |  | [inline]

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

CFuncLookup::CFuncLookup ( ) [inline]

CFuncLookup.h の 54 行で定義されています。

関数

void CFuncLookup::Init | ( | HINSTANCE | hInst,
 |  | CSMacroMgr * | SMacroMgr,
 |  | CommonSetting * | pCom |
 | ) |  |  | [inline]

CFuncLookup.h の 56 行で定義されています。

参照元 CPropCommon::Create(), と CEditDoc::Create().

EFunctionCode CFuncLookup::Pos2FuncCode | ( | int | category,
 |  | int | position |
 | ) |  |  | const

分類中の位置に対応する機能番号を返す．

引数:
category | [in] 分類番号 (0-)
position | [in] 分類中のindex (0-)

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

参照先 F_CUSTMENU_BASE, F_DEFAULT, F_MENU_RBUTTON, F_USERMACRO_0, CSMacroMgr::IsEnabled(), LUOFFSET_CUSTMENU, LUOFFSET_MACRO, m_pcSMacroMgr, MAX_CUSTOM_MENU, nsFuncCode::nFuncKindNum, と nsFuncCode::ppnFuncListArr.

参照元 CViewCommander::Command_MENU_ALLFUNC(), CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

bool CFuncLookup::Pos2FuncName | ( | int | category,
 |  | int | position,
 |  | WCHAR * | ptr,
 |  | int | bufsize |
 | ) |  |  | const

分類中の位置に対応する機能名称を返す．

戻り値:
true | 名称の設定に成功
false | 失敗。文字列は格納されていない
引数:
category | [in] 分類番号 (0-)
position | [in] 分類中のindex (0-)
ptr | [out] 文字列を格納するバッファの先頭
bufsize | [in] 文字列を格納するバッファのサイズ

CFuncLookup.cpp の 78 行で定義されています。

参照先 _tcstowcs(), CSMacroMgr::GetTitle(), ApiWrap::LoadStringW_AnyBuild(), LTEXT, LUOFFSET_CUSTMENU, LUOFFSET_MACRO, m_hInstance, m_pCommon, m_pcSMacroMgr, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, MAX_CUSTOM_MENU, nsFuncCode::nFuncKindNum, NULL, と nsFuncCode::ppnFuncListArr.

参照元 CViewCommander::Command_MENU_ALLFUNC().

bool CFuncLookup::Funccode2Name | ( | int | funccode,
 |  | WCHAR * | ptr,
 |  | int | bufsize |
 | ) |  |  | const

機能番号に対応する機能名称を返す．

引数:
funccode | [in] 機能番号
ptr | [out] 文字列を格納するバッファの先頭
bufsize | [in] 文字列を格納するバッファのサイズ
戻り値:
true | 名称の設定に成功
false | 失敗。文字列は格納されていない

CFuncLookup.cpp の 120 行で定義されています。

参照先 F_CUSTMENU_1, F_CUSTMENU_BASE, F_MENU_RBUTTON, F_USERMACRO_0, CSMacroMgr::GetTitle(), CSMacroMgr::IsEnabled(), ApiWrap::LoadStringW_AnyBuild(), LTEXT, m_hInstance, m_pCommon, m_pcSMacroMgr, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, MAX_CUSTMACRO, NULL, と to_wchar().

参照元 CViewCommander::Command_CUSTMENU(), CKeyBind::CreateKeyBindList(), CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p8(), CPropCommon::DrawToolBarItemList(), CFuncKeyWnd::OnTimer(), と CPropCommon::SetData_p8().

const TCHAR * CFuncLookup::Category2Name ( int category ) const

機能分類番号に対応する機能名称を返す．

引数:
category [in] 機能分類番号
戻り値:
NULL 分類名称．取得に失敗したらNULL．

CFuncLookup.cpp の 155 行で定義されています。

参照先 DynCategory, LUOFFSET_CUSTMENU, LUOFFSET_MACRO, nsFuncCode::nFuncKindNum, NULL, と nsFuncCode::ppszFuncKind.

参照元 CViewCommander::Command_MENU_ALLFUNC().

void CFuncLookup::SetCategory2Combo ( HWND hComboBox ) const

ComboBoxに利用可能な機能分類一覧を登録する

引数:
hComboBox [in(out)] データを設定するコンボボックス

CFuncLookup.cpp の 173 行で定義されています。

参照先 ApiWrap::Combo_AddString(), DynCategory, nsFuncCode::nFuncKindNum, nsFuncCode::ppszFuncKind, と SendMessageAny.

参照元 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 行で定義されています。

参照先 _WINT, CSMacroMgr::GetTitle(), CSMacroMgr::IsEnabled(), ApiWrap::List_AddString(), LUOFFSET_CUSTMENU, LUOFFSET_MACRO, m_hInstance, m_pCommon, m_pcSMacroMgr, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, MAX_CUSTMACRO, MAX_CUSTOM_MENU, nsFuncCode::nFuncKindNum, nsFuncCode::pnFuncListNumArr, nsFuncCode::ppnFuncListArr, と SendMessageAny.

参照元 CPropCommon::DispatchEvent_p5(), と CPropCommon::DispatchEvent_p8().

int CFuncLookup::GetCategoryCount ( void ) const [inline]

CFuncLookup.h の 70 行で定義されています。

参照先 nsFuncCode::nFuncKindNum.

参照元 CViewCommander::Command_MENU_ALLFUNC().

int CFuncLookup::GetItemCount ( int category ) const

指定分類中の機能数を取得する．

引数:
category [in] 機能分類番号

CFuncLookup.cpp の 236 行で定義されています。

参照先 LUOFFSET_CUSTMENU, LUOFFSET_MACRO, MAX_CUSTMACRO, MAX_CUSTOM_MENU, nsFuncCode::nFuncKindNum, と nsFuncCode::pnFuncListNumArr.

参照元 CViewCommander::Command_MENU_ALLFUNC(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

変数

HINSTANCE CFuncLookup::m_hInstance [private]

文字列リソースを持つインスタンス

CFuncLookup.h の 78 行で定義されています。

参照元 Funccode2Name(), Pos2FuncName(), と SetListItem().

CSMacroMgr* CFuncLookup::m_pcSMacroMgr [private]

マクロ管理クラス

CFuncLookup.h の 79 行で定義されています。

参照元 Funccode2Name(), Pos2FuncCode(), Pos2FuncName(), と SetListItem().

CommonSetting* CFuncLookup::m_pCommon [private]

CFuncLookup.h の 81 行で定義されています。

参照元 Funccode2Name(), Pos2FuncName(), と SetListItem().

このクラスの説明は次のファイルから生成されました:
  • CFuncLookup.h
  • CFuncLookup.cpp
Sakura-Editorに対してSat Nov 17 20:28:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncLookup メンバ一覧

これは全メンバの一覧です。CFuncLookup継承メンバも含んでいます。

Category2Name(int category) const | CFuncLookup |
CFuncLookup(HINSTANCE hInst, CSMacroMgr *SMacroMgr, CommonSetting *pCom) | CFuncLookup | [inline]
CFuncLookup() | CFuncLookup | [inline]
Funccode2Name(int funccode, WCHAR *ptr, int bufsize) const | CFuncLookup |
GetCategoryCount(void) const | CFuncLookup | [inline]
GetItemCount(int category) const | CFuncLookup |
Init(HINSTANCE hInst, CSMacroMgr *SMacroMgr, CommonSetting *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, WCHAR *ptr, int bufsize) const | CFuncLookup |
SetCategory2Combo(HWND hComboBox) const | CFuncLookup |
SetListItem(HWND hListBox, int category) const | CFuncLookup |

Sakura-Editorに対してSat Nov 17 20:28:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CharPointerA

  • 構成
  • クラス階層
  • 構成メンバ

クラス CharPointerA

< ディレクトリを除いた、ファイル名だけを取得する [詳細]

#include <CharPointer.h>

すべてのメンバ一覧

Public メソッド

CharPointerA ()
CharPointerA (const char *p)
CharPointerA (const CharPointerA &rhs)
const char * | operator++ ()
++p;
const char * | operator++ (int)
p++;
const char * | operator+= (size_t n)
p+=n;
const char * | operator+ (size_t n) const
WORD | operator[] (size_t n) const
const char * | operator= (const char *p)
WORD | operator * () const
const char * | GetPointer () const

Protected メソッド

void | _forward ()
WORD | _get () const
< 1文字取得する

Private 変数

const char * | m_p

説明

< ディレクトリを除いた、ファイル名だけを取得する

CharPointer.h の 6 行で定義されています。

コンストラクタとデストラクタ

CharPointerA::CharPointerA ( ) [inline]

CharPointer.h の 8 行で定義されています。

CharPointerA::CharPointerA ( const char * p ) [inline]

CharPointer.h の 9 行で定義されています。

CharPointerA::CharPointerA ( const CharPointerA & rhs ) [inline]

CharPointer.h の 10 行で定義されています。

関数

const char* CharPointerA::operator++ ( ) [inline]

++p;

CharPointer.h の 13 行で定義されています。

参照先 _forward(), と m_p.

const char* CharPointerA::operator++ ( int ) [inline]

p++;

CharPointer.h の 14 行で定義されています。

参照先 _forward(), と m_p.

const char* CharPointerA::operator+= ( size_t n ) [inline]

p+=n;

CharPointer.h の 15 行で定義されています。

参照先 _forward(), と m_p.

const char* CharPointerA::operator+ ( size_t n ) const [inline]

CharPointer.h の 18 行で定義されています。

WORD CharPointerA::operator[] ( size_t n ) const [inline]

CharPointer.h の 19 行で定義されています。

const char* CharPointerA::operator= ( const char * p ) [inline]

CharPointer.h の 22 行で定義されています。

参照先 m_p.

WORD CharPointerA::operator * ( ) const [inline]

CharPointer.h の 25 行で定義されています。

参照先 _get().

const char* CharPointerA::GetPointer ( ) const [inline]

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

参照先 m_p.

void CharPointerA::_forward ( ) [inline, protected]

CharPointer.h の 32 行で定義されています。

参照先 _IS_SJIS_1, _IS_SJIS_2(), と m_p.

参照元 operator++(), と operator+=().

WORD CharPointerA::_get ( ) const [inline, protected]

< 1文字取得する

CharPointer.h の 37 行で定義されています。

参照先 _IS_SJIS_1, _IS_SJIS_2(), と m_p.

参照元 operator *().

変数

const char* CharPointerA::m_p [private]

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

参照元 _forward(), _get(), GetPointer(), operator++(), operator+=(), と operator=().

このクラスの説明は次のファイルから生成されました:
  • CharPointer.h
Sakura-Editorに対してSat Nov 17 20:28:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CharPointerA メンバ一覧

これは全メンバの一覧です。CharPointerA継承メンバも含んでいます。

_forward() | CharPointerA | [inline, protected]
_get() const | CharPointerA | [inline, protected]
CharPointerA() | CharPointerA | [inline]
CharPointerA(const char *p) | CharPointerA | [inline]
CharPointerA(const CharPointerA &rhs) | CharPointerA | [inline]
GetPointer() const | CharPointerA | [inline]
m_p | CharPointerA | [private]
operator *() const | CharPointerA | [inline]
operator+(size_t n) const | CharPointerA | [inline]
operator++() | CharPointerA | [inline]
operator++(int) | CharPointerA | [inline]
operator+=(size_t n) | CharPointerA | [inline]
operator=(const char *p) | CharPointerA | [inline]
operator[](size_t n) const | CharPointerA | [inline]

Sakura-Editorに対してSat Nov 17 20:28:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CharPointerW

  • 構成
  • クラス階層
  • 構成メンバ

クラス CharPointerW

#include <CharPointer.h>

すべてのメンバ一覧

Public メソッド

CharPointerW ()
CharPointerW (const wchar_t *p)
CharPointerW (const CharPointerW &rhs)
const wchar_t * | operator++ ()
++p;
const wchar_t * | operator++ (int)
p++;
const wchar_t * | operator+= (size_t n)
p+=n;
const wchar_t * | operator+ (size_t n) const
WORD | operator[] (size_t n) const
const wchar_t * | operator= (const wchar_t *p)
WORD | operator * () const
const wchar_t * | GetPointer () const

Protected メソッド

void | _forward ()
WORD | _get () const
< 1文字取得する

Private 変数

const wchar_t * | m_p

説明

CharPointer.h の 48 行で定義されています。

コンストラクタとデストラクタ

CharPointerW::CharPointerW ( ) [inline]

CharPointer.h の 50 行で定義されています。

CharPointerW::CharPointerW ( const wchar_t * p ) [inline]

CharPointer.h の 51 行で定義されています。

CharPointerW::CharPointerW ( const CharPointerW & rhs ) [inline]

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

関数

const wchar_t* CharPointerW::operator++ ( ) [inline]

++p;

CharPointer.h の 55 行で定義されています。

参照先 _forward(), と m_p.

const wchar_t* CharPointerW::operator++ ( int ) [inline]

p++;

CharPointer.h の 56 行で定義されています。

参照先 _forward(), と m_p.

const wchar_t* CharPointerW::operator+= ( size_t n ) [inline]

p+=n;

CharPointer.h の 57 行で定義されています。

参照先 _forward(), と m_p.

const wchar_t* CharPointerW::operator+ ( size_t n ) const [inline]

CharPointer.h の 60 行で定義されています。

WORD CharPointerW::operator[] ( size_t n ) const [inline]

CharPointer.h の 61 行で定義されています。

const wchar_t* CharPointerW::operator= ( const wchar_t * p ) [inline]

CharPointer.h の 64 行で定義されています。

参照先 m_p.

WORD CharPointerW::operator * ( ) const [inline]

CharPointer.h の 67 行で定義されています。

参照先 _get().

const wchar_t* CharPointerW::GetPointer ( ) const [inline]

CharPointer.h の 71 行で定義されています。

参照先 m_p.

void CharPointerW::_forward ( ) [inline, protected]

CharPointer.h の 74 行で定義されています。

参照先 m_p.

参照元 operator++(), と operator+=().

WORD CharPointerW::_get ( ) const [inline, protected]

< 1文字取得する

CharPointer.h の 78 行で定義されています。

参照先 m_p.

参照元 operator *().

変数

const wchar_t* CharPointerW::m_p [private]

CharPointer.h の 84 行で定義されています。

参照元 _forward(), _get(), GetPointer(), operator++(), operator+=(), と operator=().

このクラスの説明は次のファイルから生成されました:
  • CharPointer.h
Sakura-Editorに対してSat Nov 17 20:28:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CharPointerW メンバ一覧

これは全メンバの一覧です。CharPointerW継承メンバも含んでいます。

_forward() | CharPointerW | [inline, protected]
_get() const | CharPointerW | [inline, protected]
CharPointerW() | CharPointerW | [inline]
CharPointerW(const wchar_t *p) | CharPointerW | [inline]
CharPointerW(const CharPointerW &rhs) | CharPointerW | [inline]
GetPointer() const | CharPointerW | [inline]
m_p | CharPointerW | [private]
operator *() const | CharPointerW | [inline]
operator+(size_t n) const | CharPointerW | [inline]
operator++() | CharPointerW | [inline]
operator++(int) | CharPointerW | [inline]
operator+=(size_t n) | CharPointerW | [inline]
operator=(const wchar_t *p) | CharPointerW | [inline]
operator[](size_t n) const | CharPointerW | [inline]

Sakura-Editorに対してSat Nov 17 20:28:18 2007に生成されました。 doxygen 1.5.4


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 wchar_t *pszCurWord, const TCHAR *pszHokanFile, BOOL bHokanLoHiCase, BOOL bHokanByFile, CNativeW *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 変数

CNativeW m_cmemCurWord
CNativeW * 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 の 78 行で定義されています。

参照先 m_bTimerFlag, m_cmemCurWord, m_nCurKouhoIdx, m_nKouhoNum, m_pcmemKouho, m_pszCurKouho, NULL, CNativeW::SetString(), と TRUE.

CHokanMgr::~CHokanMgr ( )

CHokanMgr.cpp の 94 行で定義されています。

参照先 m_nKouhoNum, m_pcmemKouho, m_pszCurKouho, と NULL.

関数

HWND CHokanMgr::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | LPARAM | lParam
 | ) |  |

CHokanMgr.cpp の 109 行で定義されています。

参照先 CDialog::DoModeless(), CDialog::GetHwnd(), gm_wpHokanListProc, GWLP_WNDPROC, HokanList_SubclassProc(), IDC_LIST_WORDS, IDD_HOKAN, LONG_PTR, OnSize(), と SetWindowLongPtr.

参照元 CEditWnd::Create().

void CHokanMgr::Hide ( void )

CHokanMgr.cpp の 129 行で定義されています。

参照先 CDialog::GetHwnd(), CDialog::m_hwndParent, CDialog::m_lParam, m_nCurKouhoIdx, CEditView::OnSetFocus(), と TRUE.

参照元 CEditView::DispatchEvent(), DoHokan(), OnBnClicked(), CEditView::OnKillFocus(), CEditView::OnLBUTTONDOWN(), CEditView::PostprocessCommand_hokan(), CEditView::PreprocessCommand_hokan(), CEditWnd::SetActivePane(), と CEditView::ShowHokanMgr().

int CHokanMgr::Search | ( | POINT * | ppoWin,
 |  | int | nWinHeight,
 |  | int | nColmWidth,
 |  | const wchar_t * | pszCurWord,
 |  | const TCHAR * | pszHokanFile,
 |  | BOOL | bHokanLoHiCase,
 |  | BOOL | bHokanByFile,
 |  | CNativeW * | pcmemHokanWord = NULL
 | ) |  |

BOOL CHokanMgr::DoHokan ( int nVKey )

CHokanMgr.cpp の 498 行で定義されています。

参照先 F_INSTEXT_W, F_WordDeleteToStart, FALSE, CEditView::GetCommander(), CDialog::GetHwnd(), CViewCommander::HandleCommand(), Hide(), IDC_LIST_WORDS, ApiWrap::List_GetText(), CommonSetting_Helper::m_bHokanKey_RETURN, CommonSetting_Helper::m_bHokanKey_RIGHT, CommonSetting_Helper::m_bHokanKey_TAB, CommonSetting_Helper::m_bUseHokan, DLLSHAREDATA::m_Common, CDialog::m_lParam, CDialog::m_pShareData, CommonSetting::m_sHelper, MYTRACE_A, SendMessageAny, と TRUE.

参照元 KeyProc(), OnBnClicked(), と OnLbnDblclk().

void CHokanMgr::ChangeView ( LPARAM pcEditView )

CHokanMgr.cpp の 123 行で定義されています。

参照先 CDialog::m_lParam.

参照元 CEditWnd::SetActivePane().

BOOL CHokanMgr::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 352 行で定義されています。

参照先 CDialog::_SetHwnd(), と CDialog::OnInitDialog().

BOOL CHokanMgr::OnDestroy ( void ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 361 行で定義されています。

参照先 CDialog::CreateSizeBox(), と CDialog::OnDestroy().

BOOL CHokanMgr::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 371 行で定義されています。

参照先 _countof, CDialog::GetHwnd(), IDC_LIST_WORDS, m_poWin, NULL, CDialog::OnSize(), ShowTip(), と TRUE.

参照元 DoModeless().

BOOL CHokanMgr::OnBnClicked ( int wID ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 436 行で定義されています。

参照先 DoHokan(), FALSE, Hide(), と TRUE.

BOOL CHokanMgr::OnKeyDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 455 行で定義されています。

BOOL CHokanMgr::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID |
 | ) |  |  | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 473 行で定義されています。

参照先 ShowTip(), と TRUE.

BOOL CHokanMgr::OnLbnDblclk ( int wID ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 480 行で定義されています。

参照先 DoHokan(), と TRUE.

BOOL CHokanMgr::OnKillFocus | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 489 行で定義されています。

参照先 TRUE.

int CHokanMgr::KeyProc | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CHokanMgr.cpp の 577 行で定義されています。

参照先 DoHokan(), FALSE, CommonSetting_Helper::m_bUseHokan, DLLSHAREDATA::m_Common, CDialog::m_pShareData, と CommonSetting::m_sHelper.

参照元 HokanList_SubclassProc().

void CHokanMgr::ShowTip ( )

CHokanMgr.cpp の 624 行で定義されています。

参照先 CDialog::GetHwnd(), IDC_LIST_WORDS, ApiWrap::List_GetText(), CEditView::m_dwTipTimer, CDialog::m_lParam, CDialog::m_nHeight, CDialog::m_nWidth, m_poWin, と SendMessageAny.

参照元 OnCbnSelChange(), と OnSize().

LPVOID CHokanMgr::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 672 行で定義されています。

変数

CNativeW CHokanMgr::m_cmemCurWord

CHokanMgr.h の 78 行で定義されています。

参照元 CHokanMgr().

CNativeW* CHokanMgr::m_pcmemKouho

CHokanMgr.h の 79 行で定義されています。

参照元 CHokanMgr(), と ~CHokanMgr().

int CHokanMgr::m_nKouhoNum

CHokanMgr.h の 80 行で定義されています。

参照元 CHokanMgr(), と ~CHokanMgr().

int CHokanMgr::m_nCurKouhoIdx

CHokanMgr.h の 82 行で定義されています。

参照元 CHokanMgr(), と Hide().

char* CHokanMgr::m_pszCurKouho

CHokanMgr.h の 83 行で定義されています。

参照元 CHokanMgr(), と ~CHokanMgr().

POINT CHokanMgr::m_poWin

CHokanMgr.h の 85 行で定義されています。

参照元 OnSize(), と ShowTip().

int CHokanMgr::m_nWinHeight

CHokanMgr.h の 86 行で定義されています。

int CHokanMgr::m_nColmWidth

CHokanMgr.h の 87 行で定義されています。

int CHokanMgr::m_bTimerFlag

CHokanMgr.h の 89 行で定義されています。

参照元 CHokanMgr().

このクラスの説明は次のファイルから生成されました:
  • CHokanMgr.h
  • CHokanMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CHokanMgr メンバ一覧

これは全メンバの一覧です。CHokanMgr継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CDialog | [inline]
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]
GetHwnd() const | CDialog | [inline]
Hide(void) | CHokanMgr |
KeyProc(WPARAM, LPARAM) | CHokanMgr |
m_bInited | CDialog |
m_bModal | CDialog |
m_bTimerFlag | CHokanMgr |
m_cmemCurWord | CHokanMgr |
m_hInstance | 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 wchar_t *pszCurWord, const TCHAR *pszHokanFile, BOOL bHokanLoHiCase, BOOL bHokanByFile, CNativeW *pcmemHokanWord=NULL) | CHokanMgr |
SetData(void) | CDialog | [inline, virtual]
ShowTip() | CHokanMgr |
~CDialog() | CDialog | [virtual]
~CHokanMgr() | CHokanMgr |

Sakura-Editorに対してSat Nov 17 20:28:20 2007に生成されました。 doxygen 1.5.4


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 LPCTSTR | GetDllName (LPCTSTR)

説明

HtmpHelp動的ロード

HTMLヘルプコンポーネントの動的ロードをサポートするクラス

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

型定義

typedef HWND(WINAPI* CHtmlHelp::Proc_HtmlHelp)(HWND, LPCTSTR, UINT, DWORD_PTR)

コンストラクタとデストラクタ

CHtmlHelp::CHtmlHelp ( ) [inline]

CHtmlHelp.h の 46 行で定義されています。

CHtmlHelp::~CHtmlHelp ( void ) [virtual]

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

関数

int CHtmlHelp::InitDll ( void ) [protected, virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CDllHandlerを実装しています。

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

参照先 CDllHandler::GetInstance(), HtmlHelp, と NULL.

LPCTSTR CHtmlHelp::GetDllName ( LPCTSTR ) [protected, virtual]

HTML Help のファイル名を渡す

CDllHandlerを再定義しています。

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

変数

Proc_HtmlHelp CHtmlHelp::HtmlHelp

CHtmlHelp.h の 51 行で定義されています。

参照元 InitDll(), と OpenHtmlHelp().

このクラスの説明は次のファイルから生成されました:
  • CHtmlHelp.h
  • CHtmlHelp.cpp
Sakura-Editorに対してSat Nov 17 20:28:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CHtmlHelp メンバ一覧

これは全メンバの一覧です。CHtmlHelp継承メンバも含んでいます。

CDllHandler() | CDllHandler |
CHtmlHelp() | CHtmlHelp | [inline]
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CHtmlHelp | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
HtmlHelp | CHtmlHelp |
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CHtmlHelp | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(LPCTSTR 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 Nov 17 20:28:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CImageListMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CImageListMgr

ImageListの管理 [詳細]

#include <CImageListMgr.h>

すべてのメンバ一覧

Public メソッド

CImageListMgr ()
~CImageListMgr ()
bool | Create (HINSTANCE hInstance)
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.

関数

bool CImageListMgr::Create ( HINSTANCE hInstance )

CImageListMgr.cpp の 62 行で定義されています。

参照先 _MAX_PATH, FN_TOOL_BMP, GetInidirOrExedir(), IDB_MYTOOL, m_cTrans, m_cx, m_cy, m_hIconBitmap, MY_RUNNINGTIMER, と NULL.

参照元 CEditApp::CEditApp(), と CControlTray::Create().

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 背景の透過処理に伴い背景色指定削除
指定されたDCの指定された座標にアイコンを描画する．

引数:
index | [in] 描画するアイコン番号
dc | [in] 描画するDevice Context
x | [in] 描画するX座標
y | [in] 描画するY座標
fstyle | [in] 描画スタイル
bgColor | [in] 背景色(透明部分の描画用)
覚え書き:
描画スタイルとして有効なのは，ILD_NORMAL, ILD_MASK
日付:
2003.07.21 genta 独自描画ルーチンを使う

2003.08.30 genta 背景色を指定する引数を追加

2003.09.06 genta Mocaさんの背景色透過処理に伴い，背景色引数削除

CImageListMgr.cpp の 327 行で定義されています。

参照先 cx(), cy(), DitherBlt2(), m_hIconBitmap, MAX_X, MyBitBlt(), と NULL.

参照元 CMenuDrawer::DrawItem(), CPropCommon::DrawToolBarItemList(), と CMainToolBar::ToolBarOwnerDraw().

int CImageListMgr::Count ( void ) const

アイコン数を返す

アイコン数を返す

日付:
2003.07.21 genta 個数を自分で管理する必要がある．

CImageListMgr.cpp の 347 行で定義されています。

参照先 MAX_X, と MAX_Y.

int CImageListMgr::cx ( void ) const [inline]

アイコンの幅

CImageListMgr.h の 81 行で定義されています。

参照元 Draw().

int CImageListMgr::cy ( void ) const [inline]

アイコンの高さ

CImageListMgr.h の 83 行で定義されています。

参照元 Draw(), と CMainToolBar::ToolBarOwnerDraw().

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 行で定義されています。

参照元 CMainToolBar::CreateToolBar().

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::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().

変数

int CImageListMgr::m_cx [protected]

width of icon

CImageListMgr.h の 97 行で定義されています。

参照元 Create().

int CImageListMgr::m_cy [protected]

height of icon

CImageListMgr.h の 98 行で定義されています。

参照元 Create().

COLORREF CImageListMgr::m_cTrans [protected]

透過色

描画を自前で行うため，透過色を覚えておく必要がある．

日付:
2003.07.21 genta

CImageListMgr.h の 104 行で定義されています。

参照元 Create(), DitherBlt2(), と MyBitBlt().

HBITMAP CImageListMgr::m_hIconBitmap [protected]

アイコン用ビットマップを保持する

日付:
2003.07.21 genta

CImageListMgr.h の 109 行で定義されています。

参照元 Create(), Draw(), と ~CImageListMgr().

このクラスの説明は次のファイルから生成されました:
  • CImageListMgr.h
  • CImageListMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CImageListMgr メンバ一覧

これは全メンバの一覧です。CImageListMgr継承メンバも含んでいます。

CImageListMgr() | CImageListMgr | [inline]
Count(void) const | CImageListMgr |
Create(HINSTANCE hInstance) | 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 Nov 17 20:28:21 2007に生成されました。 doxygen 1.5.4


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, EFunctionCode 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 の 390 行で定義されています。

CInterfaceObject::~CInterfaceObject ( )

CWSH.cpp の 395 行で定義されています。

参照先 m_TypeInfo, と NULL.

関数

void CInterfaceObject::AddMethod | ( | wchar_t * | Name,
 |  | EFunctionCode | ID,
 |  | VARTYPE * | ArgumentTypes,
 |  | int | ArgumentCount,
 |  | VARTYPE | ResultType,
 |  | CInterfaceObjectMethod | Method
 | ) |  |

CWSH.cpp の 486 行で定義されています。

参照先 CInterfaceObject::CMethodInfo::Arguments, CInterfaceObject::CMethodInfo::Desc, CInterfaceObject::CMethodInfo::ID, m_Methods, CInterfaceObject::CMethodInfo::Method, と CInterfaceObject::CMethodInfo::Name.

参照元 CWSHMacroManager::ReadyCommands().

void CInterfaceObject::ReserveMethods ( int Count ) [inline]

CWSH.h の 86 行で定義されています。

参照先 m_Methods.

HRESULT STDMETHODCALLTYPE CInterfaceObject::QueryInterface | ( | REFIID | iid,
 |  | void ** | ppvObject |
 | ) |  |  | [virtual]

ImplementsIUnknown< IDispatch >を再定義しています。

CWSH.cpp の 402 行で定義されています。

参照先 ImplementsIUnknown< IDispatch >::AddRef(), と NULL.

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetIDsOfNames | ( | REFIID | riid,
 |  | OLECHAR FAR *FAR * | rgszNames,
 |  | UINT | cNames,
 |  | LCID | lcid,
 |  | DISPID FAR * | rgdispid |
 | ) |  |  | [virtual]

CWSH.cpp の 458 行で定義されています。

参照先 m_Methods.

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 の 416 行で定義されています。

参照先 CWSHClient::m_Data, m_Methods, と m_Owner.

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfo | ( | UINT | iTInfo,
 |  | LCID | lcid,
 |  | ITypeInfo __RPC_FAR *__RPC_FAR * | ppTInfo |
 | ) |  |  | [virtual]

CWSH.cpp の 432 行で定義されています。

参照先 m_TypeInfo, と NULL.

参照元 CWSHSite::GetItemInfo().

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfoCount ( UINT __RPC_FAR * pctinfo ) [virtual]

CWSH.cpp の 448 行で定義されています。

変数

ITypeInfo* CInterfaceObject::m_TypeInfo [private]

CWSH.h の 68 行で定義されています。

参照元 GetTypeInfo(), と ~CInterfaceObject().

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().

このクラスの説明は次のファイルから生成されました:
  • CWSH.h
  • CWSH.cpp
Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CInterfaceObject メンバ一覧

これは全メンバの一覧です。CInterfaceObject継承メンバも含んでいます。

AddMethod(wchar_t *Name, EFunctionCode 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 Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CInterfaceObject::CMethodInfo

  • 構成
  • クラス階層
  • 構成メンバ
CInterfaceObject::CMethodInfo

構造体 CInterfaceObject::CMethodInfo

#include <CWSH.h>

すべてのメンバ一覧

Public 変数

FUNCDESC | Desc
wchar_t | Name [64]
CInterfaceObjectMethod Method
ELEMDESC | Arguments [8]
EFunctionCode ID

説明

CWSH.h の 70 行で定義されています。

変数

FUNCDESC CInterfaceObject::CMethodInfo::Desc

CWSH.h の 72 行で定義されています。

参照元 CInterfaceObject::AddMethod().

wchar_t CInterfaceObject::CMethodInfo::Name[64]

CWSH.h の 73 行で定義されています。

参照元 CInterfaceObject::AddMethod().

CInterfaceObjectMethod CInterfaceObject::CMethodInfo::Method

CWSH.h の 74 行で定義されています。

参照元 CInterfaceObject::AddMethod().

ELEMDESC CInterfaceObject::CMethodInfo::Arguments[8]

CWSH.h の 75 行で定義されています。

参照元 CInterfaceObject::AddMethod().

EFunctionCode CInterfaceObject::CMethodInfo::ID

CWSH.h の 76 行で定義されています。

参照元 CInterfaceObject::AddMethod().

この構造体の説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CInterfaceObject::CMethodInfo メンバ一覧

これは全メンバの一覧です。CInterfaceObject::CMethodInfo継承メンバも含んでいます。

Arguments | CInterfaceObject::CMethodInfo
Desc | CInterfaceObject::CMethodInfo
ID | CInterfaceObject::CMethodInfo
Method | CInterfaceObject::CMethodInfo
Name | CInterfaceObject::CMethodInfo

Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


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 の 31 行で定義されています。

コンストラクタとデストラクタ

CInterfaceObjectTypeInfo::CInterfaceObjectTypeInfo ( CInterfaceObject * AObject )

CWSH.cpp の 355 行で定義されています。

参照先 CInterfaceObject::m_Methods, m_Object, と m_TypeAttr.

関数

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetTypeAttr ( TYPEATTR __RPC_FAR *__RPC_FAR * ppTypeAttr ) [inline, virtual]

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

参照先 m_TypeAttr.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetTypeComp ( ITypeComp __RPC_FAR *__RPC_FAR * ppTComp ) [inline, virtual]

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

HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetFuncDesc | ( | UINT | index,
 |  | FUNCDESC __RPC_FAR *__RPC_FAR * | ppFuncDesc |
 | ) |  |  | [virtual]

CWSH.cpp の 363 行で定義されています。

参照先 CInterfaceObject::m_Methods, と m_Object.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetVarDesc | ( | UINT | index,
 |  | VARDESC __RPC_FAR *__RPC_FAR * | ppVarDesc |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 62 行で定義されています。

HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetNames | ( | MEMBERID | memid,
 |  | BSTR __RPC_FAR * | rgBstrNames,
 |  | UINT | cMaxNames,
 |  | UINT __RPC_FAR * | pcNames |
 | ) |  |  | [virtual]

CWSH.cpp の 374 行で定義されています。

参照先 CInterfaceObject::m_Methods, と m_Object.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetRefTypeOfImplType | ( | UINT | index,
 |  | HREFTYPE __RPC_FAR * | pRefType |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 75 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetImplTypeFlags | ( | UINT | index,
 |  | INT __RPC_FAR * | pImplTypeFlags |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 82 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetIDsOfNames | ( | LPOLESTR __RPC_FAR * | rgszNames,
 |  | UINT | cNames,
 |  | MEMBERID __RPC_FAR * | pMemId |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 89 行で定義されています。

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 の 97 行で定義されています。

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 の 109 行で定義されています。

参照先 NULL.

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 の 125 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetRefTypeInfo | ( | HREFTYPE | hRefType,
 |  | ITypeInfo __RPC_FAR *__RPC_FAR * | ppTInfo |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 135 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::AddressOfMember | ( | MEMBERID | memid,
 |  | INVOKEKIND | invKind,
 |  | PVOID __RPC_FAR * | ppv |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 142 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::CreateInstance | ( | IUnknown __RPC_FAR * | pUnkOuter,
 |  | REFIID | riid,
 |  | PVOID __RPC_FAR * | ppvObj |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 150 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetMops | ( | MEMBERID | memid,
 |  | BSTR __RPC_FAR * | pBstrMops |
 | ) |  |  | [inline, virtual]

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

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetContainingTypeLib | ( | ITypeLib __RPC_FAR *__RPC_FAR * | ppTLib,
 |  | UINT __RPC_FAR * | pIndex |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 165 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseTypeAttr ( TYPEATTR __RPC_FAR * pTypeAttr ) [inline, virtual]

CWSH.cpp の 172 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseFuncDesc ( FUNCDESC __RPC_FAR * pFuncDesc ) [inline, virtual]

CWSH.cpp の 177 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseVarDesc ( VARDESC __RPC_FAR * pVarDesc ) [inline, virtual]

CWSH.cpp の 182 行で定義されています。

変数

CInterfaceObject* CInterfaceObjectTypeInfo::m_Object [private]

CWSH.cpp の 34 行で定義されています。

参照元 CInterfaceObjectTypeInfo(), GetFuncDesc(), と GetNames().

TYPEATTR CInterfaceObjectTypeInfo::m_TypeAttr [private]

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

参照元 CInterfaceObjectTypeInfo(), と GetTypeAttr().

このクラスの説明は次のファイルから生成されました:
  • CWSH.cpp
Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CIoBridge

  • 構成
  • クラス階層
  • 構成メンバ

クラス CIoBridge

#include <CIoBridge.h>

すべてのメンバ一覧

Static Public メソッド

static EConvertResult | FileToImpl (const CMemory *pSrc, CNativeW *pDst, ECodeType eCharcodeFrom, int nFlag)
内部実装のエンコードへ変換
static EConvertResult | ImplToFile (const CNativeW *pSrc, CMemory *pDst, ECodeType eCharcodeTo)
ファイルのエンコードへ変更

説明

CIoBridge.h の 6 行で定義されています。

関数

EConvertResult CIoBridge::FileToImpl | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst,
 |  | ECodeType | eCharcodeFrom,
 |  | int | nFlag |
 | ) |  |  | [static]

内部実装のエンコードへ変換

引数:
pSrc | [in] 変換元メモリ
pDst | [out] 変換先メモリ(UNICODE)
eCharcodeFrom | [in] 変換元メモリの文字コード
nFlag | [in] bit 0: MIME Encodeされたヘッダをdecodeするかどうか

CIoBridge.cpp の 7 行で定義されています。

参照先 CCodeBase::CodeToUnicode(), と CCodeFactory::CreateCodeBase().

参照元 CFileLoad::ReadLine().

EConvertResult CIoBridge::ImplToFile | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst,
 |  | ECodeType | eCharcodeTo |
 | ) |  |  | [static]

ファイルのエンコードへ変更

引数:
pSrc | [in] 変換元メモリ(UNICODE)
pDst | [out] 変換先メモリ
eCharcodeTo | [in] 変換先メモリの文字コード

CIoBridge.cpp の 23 行で定義されています。

参照先 CCodeFactory::CreateCodeBase(), と CCodeBase::UnicodeToCode().

参照元 CDocLineMgr::WriteFile().

このクラスの説明は次のファイルから生成されました:
  • CIoBridge.h
  • CIoBridge.cpp
Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CIoBridge メンバ一覧

これは全メンバの一覧です。CIoBridge継承メンバも含んでいます。

FileToImpl(const CMemory *pSrc, CNativeW *pDst, ECodeType eCharcodeFrom, int nFlag) | CIoBridge | [static]
ImplToFile(const CNativeW *pSrc, CMemory *pDst, ECodeType eCharcodeTo) | CIoBridge | [static]

Sakura-Editorに対してSat Nov 17 20:28:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CJis

  • 構成
  • クラス階層
  • 構成メンバ

クラス CJis

#include <CJis.h>

CJisに対する継承グラフ

[凡例]
CJisのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CJis (bool base64decode=true)
EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | JISToUnicode (CMemory *pMem, bool base64decode=true)
static EConvertResult | UnicodeToJIS (CMemory *pMem)
static void | SJIStoJIS (CMemory *pMem)
static void | JIStoSJIS (CMemory *pMem, bool base64decode=true)

Static Protected メソッド

static long | MemJIStoSJIS (unsigned char *, long)
static long | MemSJIStoJIS (unsigned char *, long)
static int | StrSJIStoJIS (CMemory *, unsigned char *, int)
static long | QuotedPrintable_Decode (char *, long)

Private 変数

bool | m_base64decode

説明

CJis.h の 5 行で定義されています。

コンストラクタとデストラクタ

CJis::CJis ( bool base64decode = true ) [inline]

CJis.h の 7 行で定義されています。

関数

EConvertResult CJis::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CJis.h の 10 行で定義されています。

参照先 CNative::_GetMemory(), と JISToUnicode().

EConvertResult CJis::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CJis.h の 11 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToJIS().

EConvertResult CJis::JISToUnicode | ( | CMemory * | pMem,
 |  | bool | base64decode = true |
 | ) |  |  | [static]

CJis.cpp の 25 行で定義されています。

参照先 JIStoSJIS(), RESULT_COMPLETE, と CShiftJis::SJISToUnicode().

参照元 CodeToUnicode().

EConvertResult CJis::UnicodeToJIS ( CMemory * pMem ) [static]

CJis.cpp の 34 行で定義されています。

参照先 RESULT_COMPLETE, SJIStoJIS(), と CShiftJis::UnicodeToSJIS().

参照元 UnicodeToCode().

void CJis::SJIStoJIS ( CMemory * pMem ) [static]

CJis.cpp の 290 行で定義されています。

参照先 CMemory::GetRawLength(), CMemory::GetRawPtr(), CMemory::SetRawData(), と StrSJIStoJIS().

参照元 UnicodeToJIS().

void CJis::JIStoSJIS | ( | CMemory * | pMem,
 |  | bool | base64decode = true |
 | ) |  |  | [static]

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

参照先 auto_memicmp(), BOOL, CHAR_8BITCODE, CHAR_ASCII, CHAR_ZENKAKU, FALSE, CMemory::GetRawLength(), CMemory::GetRawPtr(), CConvert_Base64Decode::MemBASE64_Decode(), MemJIStoSJIS(), MIME_BASE64, MIME_QUOTED, QuotedPrintable_Decode(), CMemory::SetRawData(), と TRUE.

参照元 JISToUnicode().

long CJis::MemJIStoSJIS | ( | unsigned char * | pszSrc,
 |  | long | nSrcLen |
 | ) |  |  | [static, protected]

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

参照元 JIStoSJIS().

long CJis::MemSJIStoJIS | ( | unsigned char * | pszSrc,
 |  | long | nSrcLen |
 | ) |  |  | [static, protected]

CJis.cpp の 422 行で定義されています。

参照先 _mbcjmstojis_ex().

参照元 StrSJIStoJIS().

int CJis::StrSJIStoJIS | ( | CMemory * | pcmemDes,
 |  | unsigned char * | pszSrc,
 |  | int | nSrcLen |
 | ) |  |  | [static, protected]

SJIS→JIS

日付:
2003.09.07 genta 不要なキャスト除去

CJis.cpp の 309 行で定義されています。

参照先 CMemory::_AppendSz(), _IS_SJIS_1, _IS_SJIS_2(), CMemory::AllocBuffer(), CMemory::AppendRawData(), CHAR_8BITCODE, CHAR_ASCII, CHAR_NULL, CHAR_ZENKAKU, ESC_8BIT, ESC_ASCII, ESC_JIS, FALSE, CMemory::GetRawLength(), MemSJIStoJIS(), CMemory::SetRawData(), と TRUE.

参照元 SJIStoJIS().

long CJis::QuotedPrintable_Decode | ( | char * | pszSrc,
 |  | long | nSrcLen |
 | ) |  |  | [static, protected]

CJis.cpp の 253 行で定義されています。

参照元 JIStoSJIS().

変数

bool CJis::m_base64decode [private]

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

このクラスの説明は次のファイルから生成されました:
  • CJis.h
  • CJis.cpp
Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CJis メンバ一覧

これは全メンバの一覧です。CJis継承メンバも含んでいます。

CJis(bool base64decode=true) | CJis | [inline]
CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CJis | [inline, virtual]
JIStoSJIS(CMemory *pMem, bool base64decode=true) | CJis | [static]
JISToUnicode(CMemory *pMem, bool base64decode=true) | CJis | [static]
m_base64decode | CJis | [private]
MemJIStoSJIS(unsigned char *, long) | CJis | [protected, static]
MemSJIStoJIS(unsigned char *, long) | CJis | [protected, static]
QuotedPrintable_Decode(char *, long) | CJis | [protected, static]
SJIStoJIS(CMemory *pMem) | CJis | [static]
StrSJIStoJIS(CMemory *, unsigned char *, int) | CJis | [protected, static]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CJis | [inline, virtual]
UnicodeToJIS(CMemory *pMem) | CJis | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CKeyBind

  • 構成
  • クラス階層
  • 構成メンバ

クラス CKeyBind

キー割り当て関連ルーチン [詳細]

#include <CKeyBind.h>

すべてのメンバ一覧

Public メソッド

CKeyBind ()
~CKeyBind ()

Static Public メソッド

static HACCEL | CreateAccerelator (int, KEYDATA *)
static EFunctionCode | GetFuncCode (WORD nAccelCmd, int nKeyNameArrNum, KEYDATA *pKeyNameArr, BOOL bGetDefFuncCode=TRUE)
static EFunctionCode | GetFuncCodeAt (KEYDATA &KeyData, int nState, BOOL bGetDefFuncCode=TRUE)
static EFunctionCode | GetDefFuncCode (int nKeyCode, int nState)
static int | CreateKeyBindList (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CNativeW &cMemList, CFuncLookup *pcFuncLookup, BOOL bGetDefFuncCode=TRUE)
キー割り当て一覧を作成する
static int | GetKeyStr (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CNativeT &cMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE)
static int | GetKeyStrList (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CNativeT ***pppcMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE)
static TCHAR * | GetMenuLabel (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, int nFuncId, TCHAR *pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode=TRUE)

説明

キー割り当て関連ルーチン

すべての関数はstaticで保持するデータはない。

CKeyBind.h の 50 行で定義されています。

コンストラクタとデストラクタ

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 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, GetFuncCodeAt(), KEYDATA::m_nKeyCode, と NULL.

参照元 CControlTray::CControlTray(), と CControlTray::DispatchEvent().

EFunctionCode CKeyBind::GetFuncCode | ( | WORD | nAccelCmd,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | BOOL | bGetDefFuncCode = TRUE |
 | ) |  |  | [static]

アクラセレータ識別子に対応するコマンド識別子を返す． 対応するアクラセレータ識別子がない場合または機能未割り当ての場合は0を返す．

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 109 行で定義されています。

参照先 F_DEFAULT, と GetFuncCodeAt().

参照元 CDlgFuncList::Key2Command(), CEditWnd::OnCommand(), と CFuncKeyWnd::OnTimer().

EFunctionCode 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 の 446 行で定義されています。

参照先 F_DEFAULT, GetDefFuncCode(), KEYDATA::m_nFuncCodeArr, と KEYDATA::m_nKeyCode.

参照元 CreateAccerelator(), CreateKeyBindList(), GetFuncCode(), GetKeyStr(), と GetKeyStrList().

EFunctionCode CKeyBind::GetDefFuncCode | ( | int | nKeyCode,
 |  | int | nState |
 | ) |  |  | [static]

キーのデフォルト機能を取得する

引数:
nKeyCode | [in] キーコード
nState | [in] Shift,Ctrl,Altキー状態
戻り値:
機能番号
日付:
2007.02.22 ryoji 新規作成

CKeyBind.cpp の 409 行で定義されています。

参照先 _ALT, _CTRL, F_DEFAULT, F_FILECLOSE, F_GROUPCLOSE, F_WINCLOSE, CShareData::getInstance(), CShareData::GetShareData(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_TabBar::m_bTab_CloseOneWin, DLLSHAREDATA::m_Common, CommonSetting::m_sTabBar, と NULL.

参照元 CEditWnd::DispatchEvent(), と GetFuncCodeAt().

int CKeyBind::CreateKeyBindList | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CNativeW & | cMemList,
 |  | CFuncLookup * | pcFuncLookup,
 |  | BOOL | bGetDefFuncCode = TRUE |
 | ) |  |  | [static]

キー割り当て一覧を作成する

戻り値:
機能が割り当てられているキーストロークの数
日付:
Oct. 31, 2001 genta 動的な機能名に対応するため引数追加

2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

引数:
hInstance | [in] インスタンスハンドル
nKeyNameArrNum | [in]
pKeyNameArr | [out]
pcFuncLookup | [in] 機能番号→名前の対応を取る
bGetDefFuncCode | [in] ON:デフォルト機能割り当てを使う/OFF:使わない デフォルト:TRUE

CKeyBind.cpp の 137 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, CNativeW::AppendString(), auto_sprintf(), auto_strcpy(), CSMacroMgr::CanFuncIsKeyMacro(), CFuncLookup::Funccode2Name(), GetFuncCodeAt(), CSMacroMgr::GetFuncInfoByID(), LTEXT, CNativeW::SetString(), と to_wchar().

参照元 CViewCommander::Command_CREATEKEYBINDLIST().

int CKeyBind::GetKeyStr | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CNativeT & | cMemList,
 |  | int | nFuncId,
 |  | BOOL | bGetDefFuncCode = TRUE |
 | ) |  |  | [static]

機能に対応するキー名の取得

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 251 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, CNativeA::AppendString(), GetFuncCodeAt(), と CNativeA::SetString().

参照元 GetMenuLabel().

int CKeyBind::GetKeyStrList | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CNativeT *** | pppcMemList,
 |  | int | nFuncId,
 |  | BOOL | bGetDefFuncCode = TRUE |
 | ) |  |  | [static]

機能に対応するキー名の取得(複数)

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 295 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, GetFuncCodeAt(), と NULL.

参照元 CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_p5(), と CEditWnd::GetTooltipText().

TCHAR * CKeyBind::GetMenuLabel | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | int | nFuncId,
 |  | TCHAR * | pszLabel,
 |  | BOOL | bKeyStr,
 |  | BOOL | bGetDefFuncCode = TRUE |
 | ) |  |  | [static]

メニューラベルの作成

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 361 行で定義されています。

参照先 _tcscpy(), GetKeyStr(), CNativeA::GetStringPtr(), IDM_SELMRU, IDM_SELOPENFOLDER, と IDM_SELWINDOW.

参照元 CMenuDrawer::MyAppendMenu().

このクラスの説明は次のファイルから生成されました:
  • CKeyBind.h
  • CKeyBind.cpp
Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyBind メンバ一覧

これは全メンバの一覧です。CKeyBind継承メンバも含んでいます。

CKeyBind() | CKeyBind |
CreateAccerelator(int, KEYDATA *) | CKeyBind | [static]
CreateKeyBindList(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CNativeW &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, CNativeT &cMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetKeyStrList(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CNativeT ***pppcMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetMenuLabel(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, int nFuncId, TCHAR *pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
~CKeyBind() | CKeyBind |

Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CKeyMacroMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CKeyMacroMgr

キーボードマクロ [詳細]

#include <CKeyMacroMgr.h>

CKeyMacroMgrに対する継承グラフ

[凡例]
CKeyMacroMgrのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CKeyMacroMgr ()
~CKeyMacroMgr ()
void | ClearAll (void)
void | Append (EFunctionCode, LPARAM, class CEditView *pcEditView)
void | Append (class CMacro *macro)
BOOL | SaveKeyMacro (HINSTANCE hInstance, const TCHAR *pszPath) const
virtual void | ExecKeyMacro (class CEditView *pcEditView) const
virtual BOOL | LoadKeyMacro (HINSTANCE hInstance, const TCHAR *pszPath)

Static Public メソッド

static CMacroManagerBase * | Creator (const TCHAR *ext)
static void | declare (void)

Protected 変数

CMacro * m_pTop
CMacro * m_pBot

説明

キーボードマクロ

キーボードマクロクラス

CKeyMacroMgr.h の 33 行で定義されています。

コンストラクタとデストラクタ

CKeyMacroMgr::CKeyMacroMgr ( )

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

参照先 m_pBot, m_pTop, と NULL.

CKeyMacroMgr::~CKeyMacroMgr ( )

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

参照先 ClearAll().

関数

void CKeyMacroMgr::ClearAll ( void )

キーマクロのバッファをクリアする

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

参照先 CMacro::GetNext(), m_pBot, m_pTop, と NULL.

参照元 LoadKeyMacro(), と ~CKeyMacroMgr().

void CKeyMacroMgr::Append | ( | EFunctionCode | nFuncID,
 |  | LPARAM | lParam1,
 |  | class CEditView * | pcEditView
 | ) |  |

キーマクロのバッファにデータ追加 機能番号と、引数ひとつを追加版。

日付:
2002.2.2 YAZAKI pcEditViewも渡すようにした。

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

参照先 CMacro::AddLParam().

参照元 CSMacroMgr::Append(), と LoadKeyMacro().

void CKeyMacroMgr::Append ( class CMacro * macro )

キーマクロのバッファにデータ追加 CMacroを指定して追加する版

CKeyMacroMgr.cpp の 84 行で定義されています。

参照先 m_pBot, m_pTop, と CMacro::SetNext().

BOOL CKeyMacroMgr::SaveKeyMacro | ( | HINSTANCE | hInstance,
 |  | const TCHAR * | pszPath |
 | ) |  |  | const

キーボードマクロの保存 エラーメッセージは出しません。呼び出し側でよきにはからってください。

CKeyMacroMgr.cpp の 103 行で定義されています。

参照先 CStream::Close(), FALSE, CMacro::GetNext(), m_pTop, CMacro::Save(), TRUE, と CTextOutputStream::WriteF().

参照元 CSMacroMgr::Save().

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 TCHAR * | pszPath |
 | ) |  |  | [virtual]

キーボードマクロの読み込み エラーメッセージは出しません。呼び出し側でよきにはからってください。

CMacroManagerBaseを実装しています。

CKeyMacroMgr.cpp の 141 行で定義されています。

参照先 _countof, CMacro::AddStringParam(), Append(), auto_memcpy(), auto_strlen(), ClearAll(), CStream::Close(), FALSE, CSMacroMgr::GetFuncInfoByID(), CSMacroMgr::GetFuncInfoByName(), CNativeW::GetStringPtr(), CStream::Good(), WCODE::is09(), LTEXT, CMacroManagerBase::m_nReady, MacroFuncInfo::m_varArguments, MYMESSAGEBOX, NULL, CTextInputStream::ReadLineW(), CNativeW::Replace(), CNativeW::SetString(), WCODE::SPACE, WCODE::TAB, と TRUE.

CMacroManagerBase * CKeyMacroMgr::Creator ( const TCHAR * ext ) [static]

Factory

引数:
ext [in] オブジェクト生成の判定に使う拡張子(小文字)
日付:
2004-01-31 genta RegisterExtの廃止のためRegisterCreatorに置き換え そのため，過ったオブジェクト生成を行わないために拡張子チェックは必須．

CKeyMacroMgr.cpp の 389 行で定義されています。

参照先 NULL.

参照元 declare().

void CKeyMacroMgr::declare ( void ) [static]

CKeyMacroManagerの登録

日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え

CKeyMacroMgr.cpp の 401 行で定義されています。

参照先 Creator(), CMacroFactory::Instance(), と CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

変数

CMacro* CKeyMacroMgr::m_pTop [protected]

CKeyMacroMgr.h の 60 行で定義されています。

参照元 Append(), CKeyMacroMgr(), ClearAll(), ExecKeyMacro(), と SaveKeyMacro().

CMacro* CKeyMacroMgr::m_pBot [protected]

CKeyMacroMgr.h の 61 行で定義されています。

参照元 Append(), CKeyMacroMgr(), と ClearAll().

このクラスの説明は次のファイルから生成されました:
  • CKeyMacroMgr.h
  • CKeyMacroMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyMacroMgr メンバ一覧

これは全メンバの一覧です。CKeyMacroMgr継承メンバも含んでいます。

Append(EFunctionCode, LPARAM, class CEditView *pcEditView) | CKeyMacroMgr |
Append(class CMacro *macro) | CKeyMacroMgr |
CKeyMacroMgr() | CKeyMacroMgr |
ClearAll(void) | CKeyMacroMgr |
CMacroManagerBase() | CMacroManagerBase |
Creator(const TCHAR *ext) | CKeyMacroMgr | [static]
declare(void) | CKeyMacroMgr | [static]
ExecKeyMacro(class CEditView *pcEditView) const | CKeyMacroMgr | [virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const TCHAR *pszPath) | CKeyMacroMgr | [virtual]
m_nReady | CMacroManagerBase | [protected]
m_pBot | CKeyMacroMgr | [protected]
m_pTop | CKeyMacroMgr | [protected]
SaveKeyMacro(HINSTANCE hInstance, const TCHAR *pszPath) const | CKeyMacroMgr |
~CKeyMacroMgr() | CKeyMacroMgr |
~CMacroManagerBase() | CMacroManagerBase | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:23 2007に生成されました。 doxygen 1.5.4


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 wchar_t *, BOOL, int nSize=-1)
セットの追加
BOOL | DelKeyWordSet (int)
const wchar_t * | GetTypeName (int)
const wchar_t * | SetTypeName (int, const wchar_t *)
ｎ番目のセット名を設定する // 2005.01.26 Moca
void | SetKeyWordCase (int, int)
int | GetKeyWordCase (int)
void | SortKeyWord (int)
int | SetKeyWordArr (int, int, const wchar_t *)
iniからキーワードを設定する
int | SetKeyWordArr (int, int, const wchar_t *const *)
キーワードの配列から設定する
キーワード操作
int | GetKeyWordNum (int)
const wchar_t * | GetKeyWord (int, int)
const wchar_t * | UpdateKeyWord (int, int, const WCHAR *)
ｎ番目のセットのｍ番目のキーワードを編集
int | AddKeyWord (int, const wchar_t *)
int | DelKeyWord (int, int)
bool | CanAddKeyWord (int)
キーワードが追加可能か
検索
BOOL | IsModify (CKeyWordSetMgr &, BOOL *pnModifyFlagArr)
int | SearchKeyWord2 (int, const wchar_t *, int)

Public 変数

int | m_nCurrentKeyWordSetIdx
現在のキーワードセット番号(GUI用)
int | m_nKeyWordSetNum
wchar_t | m_szSetNameArr [MAX_SETNUM][MAX_SETNAMELEN+1]
int | m_nKEYWORDCASEArr [MAX_SETNUM]
int | m_nKeyWordNumArr [MAX_SETNUM]

Protected メソッド

bool | KeyWordReAlloc (int, int)

Protected 変数

int | m_nStartIdx [MAX_SETNUM+1]
int | m_nKeyWordMaxLenArr [MAX_SETNUM]
一番長いキーワードの長さ(ソート後のみ有効)(INI未保存)

Private 変数

wchar_t | m_szKeyWordArr [MAX_KEYWORDNUM][MAX_KEYWORDLEN+1]
char | m_IsSorted [MAX_SETNUM]

説明

強調キーワード管理

日付:
2005.01.27 Moca キーワード数を可変に．
キーワード数可変について
従来は各キーワードセット毎に固定サイズを割り当てていたが PHPキーワードなど多数のキーワードを登録できない一方で 少数のキーワード割り当てでは無駄が多かった．

キーワードを全体で1つの配列に入れ，開始位置を別途管理することで キーワード総数を全体で管理するように変更した．

セットが複数ある場合に前のセットにキーワードを登録していく場合に 保管場所が不足するとそれ以降を後ろにずらす必要がある． 頻繁にずらす操作が発生しないよう，nKeyWordSetBlockSize(50個)ずつの ブロック単位で場所を確保するようにしている．

CKeyWordSetMgr.h の 71 行で定義されています。

コンストラクタとデストラクタ

CKeyWordSetMgr::CKeyWordSetMgr ( void )

覚え書き:
CKeyWordSetMgrは共有メモリ構造体に埋め込まれているため， そのままではコンストラクタが動かないことに注意．

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

参照先 m_nCurrentKeyWordSetIdx, m_nKeyWordSetNum, m_nStartIdx, と MAX_SETNUM.

CKeyWordSetMgr::~CKeyWordSetMgr ( void )

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

参照先 m_nKeyWordSetNum.

関数

BOOL CKeyWordSetMgr::AddKeyWordSet | ( | const wchar_t * | 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 の 123 行で定義されています。

参照先 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::DelKeyWordSet ( int nIdx )

CKeyWordSetMgr.cpp の 144 行で定義されています。

参照先 FALSE, KeyWordReAlloc(), m_IsSorted, m_nCurrentKeyWordSetIdx, m_nKEYWORDCASEArr, m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, m_szSetNameArr, memcpy_raw(), と TRUE.

参照元 CPropCommon::DispatchEvent_p7().

const wchar_t * CKeyWordSetMgr::GetTypeName ( int nIdx )

ｎ番目のセットのセット名を返す

引数:
nIdx [in] セット番号 0〜キーワードセット数-1

CKeyWordSetMgr.cpp の 181 行で定義されています。

参照先 m_nKeyWordSetNum, m_szSetNameArr, と NULL.

参照元 CPropCommon::DispatchEvent_p7(), CPropCommon::p7_Export_List_KeyWord(), CDlgKeywordSelect::SetData(), CPropTypes::SetData_p3_new(), と CPropCommon::SetData_p7().

const wchar_t * CKeyWordSetMgr::SetTypeName | ( | int | nIdx,
 |  | const wchar_t * | name
 | ) |  |

ｎ番目のセット名を設定する // 2005.01.26 Moca

ｎ番目のセットのセット名を再設定

日付:
2005.01.26 Moca 新規作成

CKeyWordSetMgr.cpp の 193 行で定義されています。

参照先 m_nKeyWordSetNum, m_szSetNameArr, MAX_SETNAMELEN, と NULL.

参照元 CPropCommon::DispatchEvent_p7().

void CKeyWordSetMgr::SetKeyWordCase | ( | int | nIdx,
 |  | int | nCase
 | ) |  |

CKeyWordSetMgr.cpp の 414 行で定義されています。

参照先 FALSE, m_IsSorted, m_nKEYWORDCASEArr, と TRUE.

参照元 CPropCommon::DispatchEvent_p7().

int CKeyWordSetMgr::GetKeyWordCase ( int nIdx )

CKeyWordSetMgr.cpp の 430 行で定義されています。

参照先 m_nKEYWORDCASEArr.

参照元 CPropCommon::SetData_p7_KeyWordSet().

void CKeyWordSetMgr::SortKeyWord ( int nIdx )

CKeyWordSetMgr.cpp の 340 行で定義されています。

参照先 m_IsSorted, m_nKEYWORDCASEArr, m_nKeyWordMaxLenArr, m_nKeyWordNumArr, m_nStartIdx, と m_szKeyWordArr.

参照元 CleanKeyWords(), CPropCommon::p7_Export_List_KeyWord(), と SearchKeyWord2().

int CKeyWordSetMgr::SetKeyWordArr | ( | int | nIdx,
 |  | int | nSize,
 |  | const wchar_t * | pszKeyWordArr
 | ) |  |

iniからキーワードを設定する

\0またはTABで区切られた文字列からキーワードを設定

引数:
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 の 449 行で定義されています。

参照先 KeyWordReAlloc(), m_nKeyWordNumArr, m_nStartIdx, と m_szKeyWordArr.

参照元 CShareData::ShareData_IO_KeyWords().

int CKeyWordSetMgr::SetKeyWordArr | ( | int | nIdx,
 |  | int | nSize,
 |  | const wchar_t *const * | ppszKeyWordArr
 | ) |  |

キーワードの配列から設定する

キーワードリストを設定

引数:
[in] | nSize | ppszKeyWordArrの要素数
[in] | ppszKeyWordArr | キーワードの配列(重複・長さ制限等、考慮済みであること)
nIdx | [in] キーワードセット番号
戻り値:
登録したキーワード数．0は失敗．

CKeyWordSetMgr.cpp の 484 行で定義されています。

参照先 KeyWordReAlloc(), m_nKeyWordNumArr, m_nStartIdx, と m_szKeyWordArr.

int CKeyWordSetMgr::GetKeyWordNum ( int nIdx )

CKeyWordSetMgr.cpp の 204 行で定義されています。

参照先 m_nKeyWordNumArr, と m_nKeyWordSetNum.

参照元 CleanKeyWords(), CPropCommon::DispKeywordCount(), CPropCommon::p7_Export_List_KeyWord(), と CPropCommon::SetData_p7_KeyWordSet().

const wchar_t * CKeyWordSetMgr::GetKeyWord | ( | int | nIdx,
 |  | int | nIdx2
 | ) |  |

ｎ番目のセットのｍ番目のキーワードを返す

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号

CKeyWordSetMgr.cpp の 217 行で定義されています。

参照先 m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, m_szKeyWordArr, と NULL.

参照元 CleanKeyWords(), CPropCommon::p7_Edit_List_KeyWord(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::SetData_p7_KeyWordSet(), と CShareData::ShareData_IO_KeyWords().

const wchar_t * CKeyWordSetMgr::UpdateKeyWord | ( | int | nIdx,
 |  | int | nIdx2,
 |  | const WCHAR * | pszKeyWord
 | ) |  |

ｎ番目のセットのｍ番目のキーワードを編集

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号
pszKeyWord | [in] 設定するキーワード

CKeyWordSetMgr.cpp の 229 行で定義されています。

参照先 m_IsSorted, m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, m_szKeyWordArr, と NULL.

参照元 CPropCommon::DispatchEvent_p7(), と CPropCommon::p7_Edit_List_KeyWord().

int CKeyWordSetMgr::AddKeyWord | ( | int | nIdx,
 |  | const wchar_t * | pszKeyWord
 | ) |  |

ｎ番目のセットにキーワードを追加

引数:
nIdx | [in] セット番号
pszKeyWord | [in] キーワード文字列
戻り値:
0: 成功, 1: セット番号エラー，2: メモリ確保エラー 3: キーワード不正，4: キーワード重複

CKeyWordSetMgr.cpp の 266 行で定義されています。

参照先 KeyWordReAlloc(), m_IsSorted, m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, m_szKeyWordArr, と MAX_KEYWORDLEN.

参照元 CPropCommon::DispatchEvent_p7(), と CPropCommon::p7_Import_List_KeyWord().

int CKeyWordSetMgr::DelKeyWord | ( | int | nIdx,
 |  | int | nIdx2
 | ) |  |

ｎ番目のセットのｍ番目のキーワードを削除

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号

CKeyWordSetMgr.cpp の 308 行で定義されています。

参照先 KeyWordReAlloc(), m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, と m_szKeyWordArr.

参照元 CleanKeyWords(), CPropCommon::DispatchEvent_p7(), CPropCommon::p7_Delete_List_KeyWord(), と CPropCommon::p7_Edit_List_KeyWord().

bool CKeyWordSetMgr::CanAddKeyWord ( int nIdx )

キーワードが追加可能か

キーワード追加余地の問い合わせ

引数:
nIdx [in] キーワードセット番号
戻り値:
true: もう1つ追加可能, false: 追加不可能
日付:
2005.01.26 Moca 新規作成

2005.01.29 genta 割り当て済みの領域に空きがあれば拡張不能でも追加可能

CKeyWordSetMgr.cpp の 563 行で定義されています。

参照先 GetAllocSize(), GetFreeSize(), m_nKeyWordNumArr, と nKeyWordSetBlockSize.

参照元 CPropCommon::DispatchEvent_p7().

BOOL CKeyWordSetMgr::IsModify | ( | CKeyWordSetMgr & | ,
 |  | BOOL * | pnModifyFlagArr
 | ) |  |

int CKeyWordSetMgr::SearchKeyWord2 | ( | int | nIdx,
 |  | const wchar_t * | pszKeyWord,
 |  | int | nKeyWordLen
 | ) |  |

CKeyWordSetMgr.cpp の 375 行で定義されています。

参照先 m_IsSorted, m_nKEYWORDCASEArr, m_nKeyWordMaxLenArr, m_nKeyWordNumArr, m_nStartIdx, m_szKeyWordArr, と SortKeyWord().

参照元 CEditView::DispLineNew().

int CKeyWordSetMgr::CleanKeyWords ( int nIdx )

キーワードの整頓・利用できないキーワードの削除

キーワードの整理

重複や使用不可のキーワードを取り除く

引数:
nIdx [in] キーワードセット番号
戻り値:
削除したキーワード数

< 削除キーワード数

< trueなら削除対象

CKeyWordSetMgr.cpp の 509 行で定義されています。

参照先 auto_memcmp(), auto_memicmp(), DelKeyWord(), GetKeyWord(), GetKeyWordNum(), IS_KEYWORD_CHAR(), m_IsSorted, m_nKEYWORDCASEArr, と SortKeyWord().

int CKeyWordSetMgr::GetAllocSize ( int nIdx ) const

確保している数を返す

割り当て済みキーワード数

引数:
nIdx [in] キーワードセット番号
戻り値:
キーワードセットに割り当て済みのキーワード数

CKeyWordSetMgr.cpp の 651 行で定義されています。

参照元 CanAddKeyWord(), と CPropCommon::DispKeywordCount().

int CKeyWordSetMgr::GetFreeSize ( void ) const

未割り当てブロックのキーワード数を返す

共有空きスペース

日付:
2004.07.29 Moca 新規作成
戻り値:
共有空き領域(キーワード数)

CKeyWordSetMgr.cpp の 662 行で定義されています。

参照元 CanAddKeyWord(), と CPropCommon::DispKeywordCount().

void CKeyWordSetMgr::ResetAllKeyWordSet ( void )

全キーワードセットの削除と初期化

キーワードセットのインデックスを全て0とする．

日付:
2004.07.29 Moca 可変長記憶

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

参照先 m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, と MAX_SETNUM.

参照元 CShareData::ShareData_IO_KeyWords().

const CKeyWordSetMgr & CKeyWordSetMgr::operator= ( CKeyWordSetMgr & cKeyWordSetMgr )

CKeyWordSetMgr.cpp の 91 行で定義されています。

参照先 m_IsSorted, m_nCurrentKeyWordSetIdx, m_nKEYWORDCASEArr, m_nKeyWordNumArr, m_nKeyWordSetNum, m_nStartIdx, m_szKeyWordArr, m_szSetNameArr, と memcpy_raw().

bool CKeyWordSetMgr::KeyWordReAlloc | ( | int | nIdx,
 |  | int | nSize |
 | ) |  |  | [protected]

初期化済みのキーワードセットのキーワード領域の再割り当て、解放を行う

引数:
nIdx | [in] キーワードセット番号
nSize | [in] 必要なキーワード数 (0〜)

CKeyWordSetMgr.cpp の 610 行で定義されています。

参照元 AddKeyWord(), AddKeyWordSet(), DelKeyWord(), DelKeyWordSet(), と SetKeyWordArr().

変数

int CKeyWordSetMgr::m_nCurrentKeyWordSetIdx

現在のキーワードセット番号(GUI用)

本来の処理とは無関係だが，あるウィンドウで選択したセットが 別のウィンドウの設定画面にも引き継がれるようにするため．

CKeyWordSetMgr.h の 133 行で定義されています。

参照元 CKeyWordSetMgr(), DelKeyWordSet(), CPropCommon::DispatchEvent_p7(), CPropCommon::DispKeywordCount(), CShareData::InitKeyword(), operator=(), CPropCommon::p7_Delete_List_KeyWord(), CPropCommon::p7_Edit_List_KeyWord(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p7_Import_List_KeyWord(), CPropCommon::SetData_p7(), CPropCommon::SetData_p7_KeyWordSet(), と CShareData::ShareData_IO_KeyWords().

int CKeyWordSetMgr::m_nKeyWordSetNum

キーワードセット数

CKeyWordSetMgr.h の 134 行で定義されています。

参照元 AddKeyWord(), AddKeyWordSet(), CKeyWordSetMgr(), DelKeyWord(), DelKeyWordSet(), CPropCommon::DispatchEvent_p7(), GetKeyWord(), GetKeyWordNum(), GetTypeName(), operator=(), ResetAllKeyWordSet(), CDlgKeywordSelect::SetData(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p7(), SetTypeName(), CShareData::ShareData_IO_KeyWords(), UpdateKeyWord(), と ~CKeyWordSetMgr().

wchar_t CKeyWordSetMgr::m_szSetNameArr[MAX_SETNUM][MAX_SETNAMELEN+1]

キーワードセット名

CKeyWordSetMgr.h の 135 行で定義されています。

参照元 AddKeyWordSet(), DelKeyWordSet(), GetTypeName(), operator=(), SetTypeName(), と CShareData::ShareData_IO_KeyWords().

int CKeyWordSetMgr::m_nKEYWORDCASEArr[MAX_SETNUM]

キーワードの英大文字小文字区別

CKeyWordSetMgr.h の 136 行で定義されています。

参照元 AddKeyWordSet(), CleanKeyWords(), DelKeyWordSet(), GetKeyWordCase(), operator=(), SearchKeyWord2(), SetKeyWordCase(), CShareData::ShareData_IO_KeyWords(), と SortKeyWord().

int CKeyWordSetMgr::m_nKeyWordNumArr[MAX_SETNUM]

キーワードセットに登録されているキーワード数

CKeyWordSetMgr.h の 137 行で定義されています。

参照元 AddKeyWord(), AddKeyWordSet(), CanAddKeyWord(), DelKeyWord(), DelKeyWordSet(), GetKeyWord(), GetKeyWordNum(), operator=(), ResetAllKeyWordSet(), SearchKeyWord2(), SetKeyWordArr(), CShareData::ShareData_IO_KeyWords(), SortKeyWord(), と UpdateKeyWord().

wchar_t CKeyWordSetMgr::m_szKeyWordArr[MAX_KEYWORDNUM][MAX_KEYWORDLEN+1] [private]

キーワード格納領域

CKeyWordSetMgr.h の 140 行で定義されています。

参照元 AddKeyWord(), DelKeyWord(), GetKeyWord(), operator=(), SearchKeyWord2(), SetKeyWordArr(), SortKeyWord(), と UpdateKeyWord().

char CKeyWordSetMgr::m_IsSorted[MAX_SETNUM] [private]

ソートしたかどうかのフラグ(INI未保存)

CKeyWordSetMgr.h の 141 行で定義されています。

参照元 AddKeyWord(), AddKeyWordSet(), CleanKeyWords(), DelKeyWordSet(), operator=(), SearchKeyWord2(), SetKeyWordCase(), SortKeyWord(), と UpdateKeyWord().

int CKeyWordSetMgr::m_nStartIdx[MAX_SETNUM+1] [protected]

キーワードセットの開始位置(INI未保存) 次の開始位置までが確保済みの領域． +1しているのは最後が0で終わるようにするため．

CKeyWordSetMgr.h の 149 行で定義されています。

参照元 AddKeyWord(), AddKeyWordSet(), CKeyWordSetMgr(), DelKeyWord(), DelKeyWordSet(), GetKeyWord(), operator=(), ResetAllKeyWordSet(), SearchKeyWord2(), SetKeyWordArr(), SortKeyWord(), と UpdateKeyWord().

int CKeyWordSetMgr::m_nKeyWordMaxLenArr[MAX_SETNUM] [protected]

一番長いキーワードの長さ(ソート後のみ有効)(INI未保存)

CKeyWordSetMgr.h の 150 行で定義されています。

参照元 SearchKeyWord2(), と SortKeyWord().

このクラスの説明は次のファイルから生成されました:
  • CKeyWordSetMgr.h
  • CKeyWordSetMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyWordSetMgr メンバ一覧

これは全メンバの一覧です。CKeyWordSetMgr継承メンバも含んでいます。

AddKeyWord(int, const wchar_t *) | CKeyWordSetMgr |
AddKeyWordSet(const wchar_t *, 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 | [private]
m_nCurrentKeyWordSetIdx | CKeyWordSetMgr |
m_nKEYWORDCASEArr | CKeyWordSetMgr |
m_nKeyWordMaxLenArr | CKeyWordSetMgr | [protected]
m_nKeyWordNumArr | CKeyWordSetMgr |
m_nKeyWordSetNum | CKeyWordSetMgr |
m_nStartIdx | CKeyWordSetMgr | [protected]
m_szKeyWordArr | CKeyWordSetMgr | [private]
m_szSetNameArr | CKeyWordSetMgr |
operator=(CKeyWordSetMgr &) | CKeyWordSetMgr |
ResetAllKeyWordSet(void) | CKeyWordSetMgr |
SearchKeyWord2(int, const wchar_t *, int) | CKeyWordSetMgr |
SetKeyWordArr(int, int, const wchar_t *) | CKeyWordSetMgr |
SetKeyWordArr(int, int, const wchar_t *const *) | CKeyWordSetMgr |
SetKeyWordCase(int, int) | CKeyWordSetMgr |
SetTypeName(int, const wchar_t *) | CKeyWordSetMgr |
SortKeyWord(int) | CKeyWordSetMgr |
UpdateKeyWord(int, int, const WCHAR *) | CKeyWordSetMgr |
~CKeyWordSetMgr() | CKeyWordSetMgr |

Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CLaxInteger

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLaxInteger

型チェックの緩い整数型 [詳細]

#include <CLaxInteger.h>

すべてのメンバ一覧

Public メソッド

CLaxInteger ()
CLaxInteger (const Me &rhs)
CLaxInteger (int value)
operator const int & () const
operator int & ()

Private 型

typedef CLaxInteger | Me

Private 変数

int | m_value

説明

型チェックの緩い整数型

CLaxInteger.h の 4 行で定義されています。

型定義

typedef CLaxInteger CLaxInteger::Me [private]

CLaxInteger.h の 6 行で定義されています。

コンストラクタとデストラクタ

CLaxInteger::CLaxInteger ( ) [inline]

CLaxInteger.h の 10 行で定義されています。

参照先 m_value.

CLaxInteger::CLaxInteger ( const Me & rhs ) [inline]

CLaxInteger.h の 11 行で定義されています。

参照先 m_value.

CLaxInteger::CLaxInteger ( int value ) [inline]

CLaxInteger.h の 12 行で定義されています。

参照先 m_value.

関数

CLaxInteger::operator const int & ( ) const [inline]

CLaxInteger.h の 15 行で定義されています。

参照先 m_value.

CLaxInteger::operator int & ( ) [inline]

CLaxInteger.h の 16 行で定義されています。

参照先 m_value.

変数

int CLaxInteger::m_value [private]

CLaxInteger.h の 19 行で定義されています。

参照元 CLaxInteger(), operator const int &(), と operator int &().

このクラスの説明は次のファイルから生成されました:
  • CLaxInteger.h
Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLaxInteger メンバ一覧

これは全メンバの一覧です。CLaxInteger継承メンバも含んでいます。

CLaxInteger() | CLaxInteger | [inline]
CLaxInteger(const Me &rhs) | CLaxInteger | [inline]
CLaxInteger(int value) | CLaxInteger | [inline]
m_value | CLaxInteger | [private]
Me typedef | CLaxInteger | [private]
operator const int &() const | CLaxInteger | [inline]
operator int &() | CLaxInteger | [inline]

Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CLayout

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLayout

#include <CLayout.h>

CLayoutのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CLayout (const CDocLine *pcDocLine, CLogicPoint ptLogicPos, CLogicInt nLength, EColorIndexType nTypePrev, CLayoutInt nTypeIndent)
~CLayout ()
void | DUMP (void)
const wchar_t * | GetPtr () const
int | GetLengthWithEOL () const
int | GetLengthWithoutEOL () const
CLogicInt | GetLength () const
CLayoutInt | GetIndent () const
CLogicInt | GetLogicLineNo () const
このレイアウト行のインデントサイズを取得。単位は半角文字。 CMemoryIterator用
CLogicInt | GetLogicOffset () const
CLogicPoint | GetLogicPos () const
EColorIndexType | GetColorTypePrev () const
void | OffsetLogicLineNo (CLogicInt n)
void | SetColorTypePrev (EColorIndexType n)
CLayoutInt | CalcLayoutWidth () const
レイアウト幅を計算。インデントも改行も含まない。2007.10.11 kobake
CLayoutInt | CalcLayoutOffset (const CLayoutMgr &pLayoutMgr) const
オフセット値をレイアウト単位に変換して取得。2007.10.17 kobake
CStringRef | GetStringRef () const
文字列参照を取得

Public 変数

CLayout * m_pPrev
CLayout * m_pNext
const CDocLine * | m_pCDocLine
CEOL m_cEol

Private 変数

CLogicPoint m_ptLogicPos
対応するロジック参照位置
CLogicInt m_nLength
このレイアウト行の長さ。文字単位。
EColorIndexType m_nTypePrev
タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列
CLayoutInt m_nIndent
このレイアウト行のインデント数 @@ 2002.09.23 YAZAKI

説明

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

コンストラクタとデストラクタ

CLayout::CLayout | ( | const CDocLine * | pcDocLine,
 |  | CLogicPoint | ptLogicPos,
 |  | CLogicInt | nLength,
 |  | EColorIndexType | nTypePrev,
 |  | CLayoutInt | nTypeIndent |
 | ) |  |  | [inline]

引数:
pcDocLine | 実データへの参照
ptLogicPos | 実データ参照位置
nLength | 実データ内データ長

CLayout.h の 37 行で定義されています。

参照先 m_nIndent, m_nLength, m_nTypePrev, m_pCDocLine, m_pNext, m_pPrev, m_ptLogicPos, と NULL.

CLayout::~CLayout ( )

CLayout.cpp の 22 行で定義されています。

関数

void CLayout::DUMP ( void )

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

参照先 m_nLength, m_nTypePrev, m_ptLogicPos, と MYTRACE_A.

const wchar_t* CLayout::GetPtr ( void ) const [inline]

CLayout.h の 57 行で定義されています。

参照先 CNativeW::GetStringPtr(), CDocLine::m_cLine, m_pCDocLine, と m_ptLogicPos.

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_WORDRIGHT(), CEditView::CopyCurLine(), CPrintPreview::DrawPageText(), と GetStringRef().

int CLayout::GetLengthWithEOL ( ) const [inline]

CLayout.h の 58 行で定義されています。

参照先 m_nLength.

参照元 CViewCommander::Command_GOLINEEND(), CViewCommander::Command_LEFT(), と CViewCommander::Command_RIGHT().

int CLayout::GetLengthWithoutEOL ( void ) const [inline]

CLayout.h の 59 行で定義されています。

参照先 CEOL::GetLen(), m_cEol, と m_nLength.

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_LEFT(), CViewCommander::Command_RIGHT(), CViewCommander::Command_WCHAR(), CEditView::CopyCurLine(), CCaret::Cursor_UPDOWN(), CPrintPreview::DrawPageText(), CViewSelect::DrawSelectAreaLine(), CCaret::MoveCursorProperly(), と CViewSelect::PrintSelectionInfoMsg().

CLogicInt CLayout::GetLength ( ) const [inline]

CLayout.h の 60 行で定義されています。

参照先 m_nLength.

参照元 CLayoutMgr::CreateLayout(), CLayoutMgr::DeleteLayoutAsLogical(), CEditView::DispLineNew(), CLayoutMgr::DUMP(), CCaret::GetAdjustCursorPos(), CLayoutMgr::GetLineStr(), GetStringRef(), CLayoutMgr::IsEndOfLine(), CViewCalc::LineColmnToIndex2(), と CLayoutMgr::LogicToLayout().

CLayoutInt CLayout::GetIndent ( ) const [inline]

CLayout.h の 61 行で定義されています。

参照先 m_nIndent.

参照元 CViewCommander::Command_GOLINETOP(), CViewCommander::Command_LEFT(), CViewCommander::Command_RIGHT(), CEditView::DispLineNew(), CEditView::DispTextSelected(), CPrintPreview::DrawPageText(), CViewSelect::DrawSelectAreaLine(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CEditView::InsertData_CEditView(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), と CCaret::MoveCursorProperly().

CLogicInt CLayout::GetLogicLineNo ( ) const [inline]

このレイアウト行のインデントサイズを取得。単位は半角文字。 CMemoryIterator用

CLayout.h の 64 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), と m_ptLogicPos.

参照元 CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_WCHAR(), CLayoutMgr::DeleteData_CLayoutMgr(), CLayoutMgr::DeleteLayoutAsLogical(), CTextDrawer::DispLineNumber(), CLayoutMgr::DoLayout_Range(), CPrintPreview::DrawPageText(), CLayoutMgr::DUMP(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CLayoutMgr::PrevOrNextWord(), CLayoutMgr::ReplaceData_CLayoutMgr(), CLayoutMgr::SearchWord(), と CLayoutMgr::WhereCurrentWord().

CLogicInt CLayout::GetLogicOffset ( ) const [inline]

CLayout.h の 65 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), と m_ptLogicPos.

参照元 CalcLayoutOffset(), CViewCommander::Command_INDENT(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNINDENT(), CLayoutMgr::CreateLayout(), CLayoutMgr::DeleteData_CLayoutMgr(), CLayoutMgr::DeleteLayoutAsLogical(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CPrintPreview::DrawPageText(), CLayoutMgr::DUMP(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CLayoutMgr::GetLineStr(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditView::OnPaint(), CLayoutMgr::PrevOrNextWord(), CLayoutMgr::ReplaceData_CLayoutMgr(), CLayoutMgr::SearchWord(), と CLayoutMgr::WhereCurrentWord().

CLogicPoint CLayout::GetLogicPos ( ) const [inline]

CLayout.h の 66 行で定義されています。

参照先 m_ptLogicPos.

EColorIndexType CLayout::GetColorTypePrev ( ) const [inline]

CLayout.h の 67 行で定義されています。

参照先 m_nTypePrev.

参照元 CLayoutMgr::DeleteData_CLayoutMgr(), CEditView::DispLineNew(), CLayoutMgr::DoLayout_Range(), CLayoutMgr::DUMP(), CLayoutMgr::InsertData_CLayoutMgr(), と CLayoutMgr::ReplaceData_CLayoutMgr().

void CLayout::OffsetLogicLineNo ( CLogicInt n ) [inline]

CLayout.h の 70 行で定義されています。

参照先 m_ptLogicPos.

参照元 CLayoutMgr::ShiftLogicalLineNum().

void CLayout::SetColorTypePrev ( EColorIndexType n ) [inline]

CLayout.h の 71 行で定義されています。

参照先 m_nTypePrev.

参照元 CLayoutMgr::DoLayout_Range().

CLayoutInt CLayout::CalcLayoutWidth ( ) const [inline]

レイアウト幅を計算。インデントも改行も含まない。2007.10.11 kobake

CLayout.h の 74 行で定義されています。

参照先 CNativeW::GetKetaOfChar(), CDocLine::GetLengthWithoutEOL(), CDocLine::GetPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), m_nLength, m_pCDocLine, と m_ptLogicPos.

参照元 CLayoutMgr::LogicToLayout().

CLayoutInt CLayout::CalcLayoutOffset ( const CLayoutMgr & pLayoutMgr ) const

オフセット値をレイアウト単位に変換して取得。2007.10.17 kobake

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

参照先 CLayoutMgr::GetActualTabSpace(), CNativeW::GetKetaOfChar(), CDocLine::GetLength(), GetLogicOffset(), CDocLine::GetPtr(), m_pCDocLine, と WCODE::TAB.

参照元 CCaret::DrawCaretPosInfo().

CStringRef CLayout::GetStringRef ( ) const [inline]

文字列参照を取得

CLayout.h の 92 行で定義されています。

参照先 GetLength(), と GetPtr().

変数

CLayout* CLayout::m_pPrev

CLayout.h の 94 行で定義されています。

参照元 CLayoutMgr::AddLineBottom(), CLayout(), CLayoutMgr::DeleteData_CLayoutMgr(), CLayoutMgr::DeleteLayoutAsLogical(), CLayoutMgr::DUMP(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::InsertLineNext(), CLayoutMgr::LogicToLayout(), CLayoutMgr::ReplaceData_CLayoutMgr(), と CLayoutMgr::SearchLineByLayoutY().

CLayout* CLayout::m_pNext

CLayout.h の 95 行で定義されています。

参照元 CLayoutMgr::AddLineBottom(), CLayout(), CViewCommander::Command_RIGHT(), CLayoutMgr::DeleteData_CLayoutMgr(), CLayoutMgr::DeleteLayoutAsLogical(), CLayoutMgr::DoLayout_Range(), CLayoutMgr::DUMP(), CLayoutMgr::Empty(), CEditView::GetSelectedData(), CEditView::InsertData_CEditView(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::InsertLineNext(), CLayoutMgr::LogicToLayout(), CLayoutMgr::ReplaceData_CLayoutMgr(), CLayoutMgr::SearchLineByLayoutY(), と CLayoutMgr::ShiftLogicalLineNum().

const CDocLine* CLayout::m_pCDocLine

CLayout.h の 96 行で定義されています。

参照元 CalcLayoutOffset(), CalcLayoutWidth(), CLayout(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_PREV(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CLayoutMgr::GetLineStr(), GetPtr(), と CLayoutMgr::LogicToLayout().

CLogicPoint CLayout::m_ptLogicPos [private]

対応するロジック参照位置

CLayout.h の 99 行で定義されています。

参照元 CalcLayoutWidth(), CLayout(), DUMP(), GetLogicLineNo(), GetLogicOffset(), GetLogicPos(), GetPtr(), と OffsetLogicLineNo().

CLogicInt CLayout::m_nLength [private]

このレイアウト行の長さ。文字単位。

CLayout.h の 100 行で定義されています。

参照元 CalcLayoutWidth(), CLayout(), DUMP(), GetLength(), GetLengthWithEOL(), と GetLengthWithoutEOL().

EColorIndexType CLayout::m_nTypePrev [private]

タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列

CLayout.h の 101 行で定義されています。

参照元 CLayout(), DUMP(), GetColorTypePrev(), と SetColorTypePrev().

CLayoutInt CLayout::m_nIndent [private]

このレイアウト行のインデント数 @@ 2002.09.23 YAZAKI

CLayout.h の 102 行で定義されています。

参照元 CLayout(), と GetIndent().

CEOL CLayout::m_cEol

CLayout.h の 105 行で定義されています。

参照元 CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_MERGE(), CViewCommander::Command_RIGHT(), CEditView::CopyCurLine(), CLayoutMgr::CreateLayout(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DispLineNew(), CCaret::DrawCaretPosInfo(), CLayoutMgr::DUMP(), CCaret::GetAdjustCursorPos(), CLayoutMgr::GetEndLayoutPos(), GetLengthWithoutEOL(), CEditView::InsertData_CEditView(), CLayoutMgr::IsEndOfLine(), CLayoutMgr::LogicToLayout(), CCaret::MoveCursorProperly(), と CViewSelect::PrintSelectionInfoMsg().

このクラスの説明は次のファイルから生成されました:
  • CLayout.h
  • CLayout.cpp
Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLayout メンバ一覧

これは全メンバの一覧です。CLayout継承メンバも含んでいます。

CalcLayoutOffset(const CLayoutMgr &pLayoutMgr) const | CLayout |
CalcLayoutWidth() const | CLayout | [inline]
CLayout(const CDocLine *pcDocLine, CLogicPoint ptLogicPos, CLogicInt nLength, EColorIndexType nTypePrev, CLayoutInt nTypeIndent) | CLayout | [inline]
DUMP(void) | CLayout |
GetColorTypePrev() const | CLayout | [inline]
GetIndent() const | CLayout | [inline]
GetLength() const | CLayout | [inline]
GetLengthWithEOL() const | CLayout | [inline]
GetLengthWithoutEOL() const | CLayout | [inline]
GetLogicLineNo() const | CLayout | [inline]
GetLogicOffset() const | CLayout | [inline]
GetLogicPos() const | CLayout | [inline]
GetPtr() const | CLayout | [inline]
GetStringRef() const | CLayout | [inline]
m_cEol | CLayout |
m_nIndent | CLayout | [private]
m_nLength | CLayout | [private]
m_nTypePrev | CLayout | [private]
m_pCDocLine | CLayout |
m_pNext | CLayout |
m_pPrev | CLayout |
m_ptLogicPos | CLayout | [private]
OffsetLogicLineNo(CLogicInt n) | CLayout | [inline]
SetColorTypePrev(EColorIndexType n) | CLayout | [inline]
~CLayout() | CLayout |

Sakura-Editorに対してSat Nov 17 20:28:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CLayoutMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLayoutMgr

テキストのレイアウト情報管理 [詳細]

#include <CLayoutMgr.h>

CLayoutMgrのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CLayoutMgr ()
~CLayoutMgr ()
void | Create (CEditDoc *, CDocLineMgr *)
CLayoutInt | GetLineCount () const
const wchar_t * | GetLineStr (CLayoutInt nLine, CLogicInt *pnLineLen) const
const wchar_t * | GetLineStr (CLayoutInt nLine, CLogicInt *pnLineLen, const CLayout **ppcLayoutDes) const
bool | IsEndOfLine (const CLayoutPoint &ptLinePos)
const CLayout * | SearchLineByLayoutY (CLayoutInt nLineLayout) const
指定された物理行のレイアウト情報を取得
CLayout * | SearchLineByLayoutY (CLayoutInt nLineLayout)
bool | WhereCurrentWord (CLayoutInt, CLogicInt, CLayoutRange *pSelect, CNativeW *, CNativeW *)
CLayoutInt | GetTabSpace (void) const
CLayoutInt | GetActualTabSpace (CLayoutInt pos) const
CLayoutInt | GetMaxLineKetas (void) const
bool | ChangeLayoutParam (HWND hwndProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas)
void | GetEndLayoutPos (CLayoutPoint *ptLayoutEnd)
ファイル末尾のレイアウト位置を取得する
int | PrevWord (CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint *pptLayoutNew, BOOL bStopsBothEnds)
int | NextWord (CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint *pptLayoutNew, BOOL bStopsBothEnds)
int | SearchWord (CLayoutInt nLine, CLogicInt nIdx, const wchar_t *, ESearchDirection eSearchDirection, const SSearchOption &sSearchOption, CLayoutRange *pMatchRange, CBregexp *)
単語検索
void | LogicToLayout (const CLogicPoint &ptLogic, CLayoutPoint *pptLayout, CLayoutInt nLineHint=CLayoutInt(0))
ロジック→レイアウト
void | LogicToLayout (const CLogicRange &rangeLogic, CLayoutRange *prangeLayout)
void | LayoutToLogic (const CLayoutPoint &ptLayout, CLogicPoint *pptLogic) const
レイアウト→ロジック変換
void | LayoutToLogic (const CLayoutRange &rangeLayout, CLogicRange *prangeLogic) const
void | DUMP (void)
void | SetLayoutInfo (int, HWND, Types &refType)
void | DeleteData_CLayoutMgr (CLayoutInt nLineNum, CLogicInt nDelPos, CLogicInt nDelLen, CLayoutInt *pnModifyLayoutLinesOld, CLayoutInt *pnModifyLayoutLinesNew, CLayoutInt *pnDeleteLayoutLines, CNativeW *cmemDeleted)
void | InsertData_CLayoutMgr (CLayoutInt nLineNum, CLogicInt nInsPos, const wchar_t *pInsData, CLogicInt nInsDataLen, CLayoutInt *pnModifyLayoutLinesOld, CLayoutInt *pnInsLineNum, CLayoutPoint *pptNewLayout)
void | ReplaceData_CLayoutMgr (LayoutReplaceArg *pArg)
void | Init ()
void | Empty ()

Public 変数

CDocLineMgr * m_pcDocLineMgr

Protected メソッド

int | PrevOrNextWord (CLayoutInt, CLogicInt, CLayoutPoint *pptLayoutNew, BOOL, BOOL bStopsBothEnds)
const char * | GetFirstLinrStr (int *)
const char * | GetNextLinrStr (int *)
void | DoLayout (HWND)
CLayoutInt DoLayout_Range (CLayout *, CLogicInt, CLogicPoint, EColorIndexType, CLayoutInt *)
CLayout * DeleteLayoutAsLogical (CLayout *, CLayoutInt, CLogicInt, CLogicInt, CLogicPoint, CLayoutInt *)
void | ShiftLogicalLineNum (CLayout *, CLogicInt)
CLayout * | CreateLayout (CDocLine *pCDocLine, CLogicPoint ptLogicPos, CLogicInt nLength, EColorIndexType nTypePrev, CLayoutInt nIndent)
CLayout * InsertLineNext (CLayout *, CLayout *)
void | AddLineBottom (CLayout *)

Protected 変数

CLayout * m_pLayoutTop
CLayout * m_pLayoutBot
EColorIndexType m_nLineTypeBot
タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列
CLayoutInt m_nLines
CLayoutInt m_nMaxLineKetas
BOOL | m_bWordWrap
BOOL | m_bKinsokuHead
BOOL | m_bKinsokuTail
BOOL | m_bKinsokuRet
BOOL | m_bKinsokuKuto
std::vector< wchar_t > | m_pszKinsokuHead_1
std::vector< wchar_t > | m_pszKinsokuTail_1
std::vector< wchar_t > | m_pszKinsokuKuto_1
CLayoutInt m_nTabSpace
BOOL | m_bDispComment
BOOL | m_bDispSString
BOOL | m_bDispWString
CLineComment m_cLineComment
CBlockComment m_cBlockComment
int | m_nStringType
CalcIndentProc m_getIndentOffset
CLayoutInt m_nPrevReferLine
CLayout * m_pLayoutPrevRefer
CLayoutInt m_nEOFLine
EOF行数
CLayoutInt m_nEOFColumn
EOF幅位置
CEditDoc * m_pcEditDoc

Private 型

typedef CLayoutInt(CLayoutMgr::* | CalcIndentProc )(CLayout *)

Private メソッド

bool | _ExistKinsokuKuto (wchar_t wc) const
bool | _ExistKinsokuHead (wchar_t wc) const
bool | IsKinsokuHead (const wchar_t *pLine, CLogicInt length)
bool | IsKinsokuTail (const wchar_t *pLine, CLogicInt length)
bool | IsKutoTen (wchar_t wc)
bool | IsKinsokuKuto (const wchar_t *pLine, CLogicInt length)
bool | IsKinsokuPosKuto (CLayoutInt nRest, CLayoutInt nCharChars) const
bool | IsKinsokuPosHead (CLayoutInt, CLayoutInt, CLayoutInt)
行頭禁則の処理位置か
bool | IsKinsokuPosTail (CLayoutInt, CLayoutInt, CLayoutInt)
行末禁則の処理位置か
bool | CheckColorMODE (EColorIndexType &nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const wchar_t *pLine)
int | Match_Quote (wchar_t wcQuote, int nPos, int nLineLen, const wchar_t *pLine)
CLayoutInt | getIndentOffset_Normal (CLayout *pLayoutPrev)
行の長さを計算する (2行目以降の字下げ無し)
CLayoutInt | getIndentOffset_Tx2x (CLayout *pLayoutPrev)
インデント幅を計算する (Tx2x)
CLayoutInt | getIndentOffset_LeftSpace (CLayout *pLayoutPrev)
インデント幅を計算する (スペース字下げ版)

説明

テキストのレイアウト情報管理

日付:
2005.11.21 Moca 色分け情報をメンバーへ移動．不要となった引数をメンバ関数から削除．

CLayoutMgr.h の 62 行で定義されています。

型定義

typedef CLayoutInt(CLayoutMgr::* CLayoutMgr::CalcIndentProc)(CLayout *) [private]

コンストラクタとデストラクタ

CLayoutMgr::CLayoutMgr ( )

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

参照先 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_pszKinsokuKuto_1, m_pszKinsokuTail_1, NULL, と TRUE.

CLayoutMgr::~CLayoutMgr ( )

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

参照先 Empty(), m_pszKinsokuHead_1, m_pszKinsokuKuto_1, と m_pszKinsokuTail_1.

関数

void CLayoutMgr::Create | ( | CEditDoc * | pcEditDoc,
 |  | CDocLineMgr * | pcDocLineMgr
 | ) |  |

CLayoutMgr.cpp の 180 行で定義されています。

参照先 Init(), m_pcDocLineMgr, と m_pcEditDoc.

参照元 CEditDoc::CEditDoc(), と CPrintPreview::OnChangePrintSetting().

CLayoutInt CLayoutMgr::GetLineCount ( void ) const [inline]

CLayoutMgr.h の 81 行で定義されています。

参照元 CEditView::AdjustScrollBars(), CViewCommander::Command_1PageDown(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_INDENT(), CViewCommander::Command_JUMP(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WndScrollDown(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CEditView::DispTextSelected(), CEditView::DoGrep(), CEditDoc::FileRead(), CCaret::GetAdjustCursorPos(), GetEndLayoutPos(), CNormalProcess::Initialize(), LogicToLayout(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), CPrintPreview::OnChangePrintSetting(), CEditView::OnLBUTTONDOWN(), CEditView::OnVScroll(), CViewSelect::PrintSelectionInfoMsg(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtV(), と CDlgProperty::SetData().

const wchar_t * CLayoutMgr::GetLineStr | ( | CLayoutInt | nLine,
 |  | CLogicInt * | pnLineLen |
 | ) |  |  | const

CLayoutMgr.cpp の 436 行で定義されています。

参照先 CLayout::GetLength(), CLayout::GetLogicOffset(), CNativeW::GetStringPtr(), CDocLine::m_cLine, CLayout::m_pCDocLine, NULL, と SearchLineByLayoutY().

参照元 CViewCommander::Command_GOLINETOP(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), DeleteData_CLayoutMgr(), CTextDrawer::DispEmptyLine(), CCaret::DrawCaretPosInfo(), CEditView::GetCurrentTextForSearch(), CViewParser::GetLeftWord(), CEditView::GetSelectedData(), CEditView::InsertData_CEditView(), InsertData_CLayoutMgr(), LayoutToLogic(), CCaret::MoveCursorProperly(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CViewSelect::PrintSelectionInfoMsg(), CEditView::ReplaceData_CEditView(), と CCaret::ShowEditCaret().

const wchar_t * CLayoutMgr::GetLineStr | ( | CLayoutInt | nLine,
 |  | CLogicInt * | pnLineLen,
 |  | const CLayout ** | ppcLayoutDes |
 | ) |  |  | const

指定された物理行のデータへのポインタとその長さを返す Ver1

日付:
2002/03/24 YAZAKI GetLineStr( int nLine, int* pnLineLen )と同じ動作に変更。

CLayoutMgr.cpp の 449 行で定義されています。

参照先 NULL, と SearchLineByLayoutY().

bool CLayoutMgr::IsEndOfLine ( const CLayoutPoint & ptLinePos )

CLayoutMgr.cpp の 463 行で定義されています。

参照先 EOL_NONE, CLayout::GetLength(), CEOL::GetType(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayout::m_cEol, NULL, と SearchLineByLayoutY().

参照元 CViewCommander::Command_RIGHT(), と CEditView::InsertData_CEditView().

const CLayout * CLayoutMgr::SearchLineByLayoutY ( CLayoutInt nLineLayout ) const

指定された物理行のレイアウト情報を取得

引数:
nLineNum [in] 物理行番号 (0〜)

CLayoutMgr.cpp の 229 行で定義されています。

参照先 m_nLines, m_nPrevReferLine, m_pLayoutBot, m_pLayoutPrevRefer, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, MYTRACE_A, NULL, と t_abs().

参照元 CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::CopyCurLine(), CEditView::DispLineNew(), CEditView::DispTextSelected(), CPrintPreview::DrawPageText(), CViewSelect::DrawSelectAreaLine(), CCaret::GetAdjustCursorPos(), CViewParser::GetCurrentWord(), GetLineStr(), CEditView::ISearchExec(), IsEndOfLine(), LayoutToLogic(), LogicToLayout(), CEditView::OnPaint(), PrevOrNextWord(), ReplaceData_CLayoutMgr(), SearchWord(), と WhereCurrentWord().

CLayout* CLayoutMgr::SearchLineByLayoutY ( CLayoutInt nLineLayout ) [inline]

CLayoutMgr.h の 86 行で定義されています。

bool CLayoutMgr::WhereCurrentWord | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLayoutRange * | pSelect,
 |  | CNativeW * | pcmcmWord,
 |  | CNativeW * | pcmcmWordLeft
 | ) |  |

引数:
pSelect | [out]
pcmcmWord | [out]
pcmcmWordLeft | [out]

CLayoutMgr.cpp の 972 行で定義されています。

参照先 CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), LogicToLayout(), m_pcDocLineMgr, NULL, SearchLineByLayoutY(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), と CDocLineMgr::WhereCurrentWord().

参照元 CEditView::GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), CViewParser::GetLeftWord(), CEditView::OnLBUTTONDOWN(), と CEditView::OnMOUSEMOVE().

CLayoutInt CLayoutMgr::GetTabSpace ( void ) const [inline]

タブ幅の取得

戻り値:
タブ幅

CLayoutMgr.h の 93 行で定義されています。

参照元 CViewCommander::Command_INDENT_TAB(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CViewSelect::DrawSelectAreaLine(), GetEndLayoutPos(), CViewCalc::GetTabSpace(), CMacro::HandleFunction(), CCaret::MoveCursorProperly(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::Print_DrawLine(), と CEditView::SmartIndent_CPP().

CLayoutInt CLayoutMgr::GetActualTabSpace ( CLayoutInt pos ) const [inline]

次のTAB位置までの幅

引数:
pos [in] 現在の位置
戻り値:
次のTAB位置までの文字数．1〜TAB幅

CLayoutMgr.h の 99 行で定義されています。

参照元 CLayout::CalcLayoutOffset(), CTextDrawer::DispTab(), DoLayout(), DoLayout_Range(), LayoutToLogic(), LogicToLayout(), と CEditView::SmartIndent_CPP().

CLayoutInt CLayoutMgr::GetMaxLineKetas ( void ) const [inline]

CLayoutMgr.h の 103 行で定義されています。

参照元 CEditView::AdjustScrollBars(), CViewCommander::Command_INDENT(), CCaret::Cursor_UPDOWN(), CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CCaret::GetAdjustCursorPos(), GetEndLayoutPos(), CMacro::HandleFunction(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), CEditView::OnHScroll(), CEditView::OnPaint(), と CEditView::ScrollAtH().

bool CLayoutMgr::ChangeLayoutParam | ( | HWND | hwndProgress,
 |  | CLayoutInt | nTabSize,
 |  | CLayoutInt | nMaxLineKetas
 | ) |  |

CLayoutMgr.cpp の 950 行で定義されています。

参照先 DoLayout(), m_nMaxLineKetas, m_nTabSpace, と MAXLINEKETAS.

参照元 CEditWnd::ChangeLayoutParam().

void CLayoutMgr::GetEndLayoutPos ( CLayoutPoint * ptLayoutEnd )

ファイル末尾のレイアウト位置を取得する

ファイル末尾まで選択する場合に正確な位置情報を与えるため

既存の関数では物理行からレイアウト位置を変換する必要があり， 処理に無駄が多いため，専用関数を作成

日付:
2006.07.29 genta

2006.10.01 Moca メンバで保持するように。データ変更時には、DoLayout/DoLayout_Rangeで無効にする。

CLayoutMgr.cpp の 493 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), EOL_NONE, CMemoryIterator::getColumn(), GetLineCount(), GetMaxLineKetas(), GetTabSpace(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CLayout::m_cEol, m_nEOFColumn, m_nEOFLine, m_nLines, m_pLayoutBot, NULL, CMemoryIterator::scanNext(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SetX().

参照元 CViewCommander::Command_SELECTALL(), CEditView::DispTextSelected(), と CViewSelect::DrawSelectArea().

int CLayoutMgr::PrevOrNextWord | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | BOOL | bLEFT,
 |  | BOOL | bStopsBothEnds |
 | ) |  |  | [protected]

CLayoutMgr.cpp の 1016 行で定義されています。

参照先 FALSE, CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), LogicToLayout(), m_pcDocLineMgr, NULL, CDocLineMgr::PrevOrNextWord(), と SearchLineByLayoutY().

int CLayoutMgr::PrevWord | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | BOOL | bStopsBothEnds |
 | ) |  |  | [inline]

CLayoutMgr.h の 118 行で定義されています。

参照先 TRUE.

参照元 CViewCommander::Command_WORDLEFT().

int CLayoutMgr::NextWord | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nIdx,
 |  | CLayoutPoint * | pptLayoutNew,
 |  | BOOL | bStopsBothEnds |
 | ) |  |  | [inline]

CLayoutMgr.h の 119 行で定義されています。

参照先 FALSE.

参照元 CViewCommander::Command_WORDRIGHT().

int CLayoutMgr::SearchWord | ( | CLayoutInt | nLine,
 |  | CLogicInt | nIdx,
 |  | const wchar_t * | pszPattern,
 |  | ESearchDirection | eSearchDirection,
 |  | const SSearchOption & | sSearchOption,
 |  | CLayoutRange * | pMatchRange,
 |  | CBregexp * | pRegexp
 | ) |  |

単語検索

引数:
nLine | [in] 検索開始レイアウト行
nIdx | [in] 検索開始データ位置
pszPattern | [in] 検索条件
eSearchDirection | [in] 検索方向
sSearchOption | [in] 検索オプション
pMatchRange | [out] マッチレイアウト範囲
pRegexp | [in] 正規表現コンパイルデータ Jun. 26, 2001 genta

CLayoutMgr.cpp の 1058 行で定義されています。

参照先 FALSE, CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), LogicToLayout(), m_pcDocLineMgr, NULL, SearchLineByLayoutY(), と CDocLineMgr::SearchWord().

参照元 CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), と CEditView::ISearchExec().

void CLayoutMgr::LogicToLayout | ( | const CLogicPoint & | ptLogic,
 |  | CLayoutPoint * | pptLayout,
 |  | CLayoutInt | nLineHint = CLayoutInt(0)
 | ) |  |

ロジック→レイアウト

カーソル位置変換 物理→レイアウト

物理位置(行頭からのバイト数、折り返し無し行位置) →レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)

引数:
nX | [in] 物理位置X
nY | [in] 物理位置Y
pnCaretPosX | [out] 論理位置X
pnCaretPosY | [out] 論理位置Y
日付:
2004.06.16 Moca インデント表示の際のTABを含む行の座標ずれ修正

2007.09.06 kobake 関数名をLogicToLayoutからLogicToLayoutに変更

引数:
ptLogic | [in] ロジック位置
pptLayout | [out] レイアウト位置
nLineHint | [in] レイアウトY値のヒント。求める値に近い値を渡すと高速に検索できる。

CLayoutMgr.cpp の 1118 行で定義されています。

参照先 CLayout::CalcLayoutWidth(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Clear(), GetActualTabSpace(), CLayout::GetIndent(), CNativeW::GetKetaOfChar(), CEOL::GetLen(), CLayout::GetLength(), GetLineCount(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CNativeW::GetSizeOfChar(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CLayout::m_cEol, CDocLine::m_cLine, m_nLines, CLayout::m_pCDocLine, CLayout::m_pNext, CLayout::m_pPrev, SearchLineByLayoutY(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SetY(), と WCODE::TAB.

参照元 CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMP_SRCHSTARTPOS(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CEditWnd::DispatchEvent(), CEditDoc::FileRead(), CNormalProcess::Initialize(), 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(), CEditView::OnLBUTTONDOWN(), PrevOrNextWord(), ReplaceData_CLayoutMgr(), CEditWnd::RestorePhysPosOfAllView(), CEditView::RTrimPrevLine(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), SearchWord(), CEditView::SmartIndent_CPP(), と WhereCurrentWord().

void CLayoutMgr::LogicToLayout | ( | const CLogicRange & | rangeLogic,
 |  | CLayoutRange * | prangeLayout |
 | ) |  |  | [inline]

CLayoutMgr.h の 130 行で定義されています。

参照先 CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CRangeBase< PointType >::GetTo(), と CRangeBase< PointType >::GetToPointer().

void CLayoutMgr::LayoutToLogic | ( | const CLayoutPoint & | ptLayout,
 |  | CLogicPoint * | pptLogic |
 | ) |  |  | const

レイアウト→ロジック変換

引数:
ptLayout | [in]
pptLogic | [out]

CLayoutMgr.cpp の 1255 行で定義されています。

参照先 BOOL, FALSE, GetActualTabSpace(), CLayout::GetIndent(), CNativeW::GetKetaOfChar(), CDocLineMgr::GetLineCount(), GetLineStr(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CNativeW::GetSizeOfChar(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), m_nLines, m_pcDocLineMgr, MAXLINEKETAS, NULL, SearchLineByLayoutY(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set(), WCODE::TAB, と TRUE.

参照元 CEditView::AddCurrentLineToHistory(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPYTAG(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_JUMP(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SORT(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CEditView::DeleteData(), CEditView::DeleteData2(), CEditWnd::DispatchEvent(), CEditDoc::GetFileInfo(), CEditView::InsertData_CEditView(), CEditView::IsCurrentPositionURL(), CCaret::MoveCursor(), CEditView::OPEN_ExtFromtoExt(), CEditView::ReplaceData_CEditView(), ReplaceData_CLayoutMgr(), CEditWnd::SavePhysPosOfAllView(), CEditView::SearchBracket(), CEditView::SetReconvertStruct(), と CEditView::TagJumpSub().

void CLayoutMgr::LayoutToLogic | ( | const CLayoutRange & | rangeLayout,
 |  | CLogicRange * | prangeLogic |
 | ) |  |  | const [inline]

CLayoutMgr.h の 138 行で定義されています。

参照先 CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CRangeBase< PointType >::GetTo(), と CRangeBase< PointType >::GetToPointer().

void CLayoutMgr::DUMP ( void )

CLayoutMgr.cpp の 1362 行で定義されています。

参照先 CLayout::GetColorTypePrev(), CEOL::GetLen(), CLayout::GetLength(), CDocLineMgr::GetLineStr(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CEOL::GetName(), CLayout::m_cEol, m_nLines, m_nMaxLineKetas, m_nTabSpace, m_pcDocLineMgr, m_pLayoutBot, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, MYTRACE_A, と NULL.

void CLayoutMgr::SetLayoutInfo | ( | int | bDoRayout,
 |  | HWND | hwndProgress,
 |  | Types & | refType
 | ) |  |

CLayoutMgr.cpp の 84 行で定義されています。

参照先 _ExistKinsokuKuto(), COLORIDX_COMMENT, COLORIDX_SSTRING, COLORIDX_WSTRING, DoLayout(), 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_bKinsokuRet, m_bKinsokuRet, Types::m_bKinsokuTail, m_bKinsokuTail, Types::m_bWordWrap, m_bWordWrap, Types::m_cBlockComment, m_cBlockComment, Types::m_cLineComment, m_cLineComment, Types::m_ColorInfoArr, m_getIndentOffset, Types::m_nIndentLayout, Types::m_nMaxLineKetas, m_nMaxLineKetas, Types::m_nStringType, m_nStringType, Types::m_nTabSpace, m_nTabSpace, m_pszKinsokuHead_1, m_pszKinsokuKuto_1, m_pszKinsokuTail_1, Types::m_szKinsokuHead, Types::m_szKinsokuTail, と MY_RUNNINGTIMER.

参照元 CEditDoc::CEditDoc(), CEditDoc::FileRead(), CEditDoc::Init(), CPrintPreview::OnChangePrintSetting(), と CEditDoc::OnChangeSetting().

void CLayoutMgr::DeleteData_CLayoutMgr | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nDelPos,
 |  | CLogicInt | nDelLen,
 |  | CLayoutInt * | pnModifyLayoutLinesOld,
 |  | CLayoutInt * | pnModifyLayoutLinesNew,
 |  | CLayoutInt * | pnDeleteLayoutLines,
 |  | CNativeW * | cmemDeleted
 | ) |  |

行内文字削除

日付:
2002/03/24 YAZAKI bUndo削除
引数:
cmemDeleted [out] 削除されたデータ

CLayoutMgr.cpp の 541 行で定義されています。

参照先 CDocLineMgr::DeleteData_CDocLineMgr(), DeleteLayoutAsLogical(), DoLayout_Range(), CLayout::GetColorTypePrev(), CDocLineMgr::GetLineCount(), GetLineStr(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), m_nLines, m_pcDocLineMgr, m_pLayoutPrevRefer, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, NULL, と ShiftLogicalLineNum().

参照元 CEditView::DeleteData2().

void CLayoutMgr::InsertData_CLayoutMgr | ( | CLayoutInt | nLineNum,
 |  | CLogicInt | nInsPos,
 |  | const wchar_t * | pInsData,
 |  | CLogicInt | nInsDataLen,
 |  | CLayoutInt * | pnModifyLayoutLinesOld,
 |  | CLayoutInt * | pnInsLineNum,
 |  | CLayoutPoint * | pptNewLayout
 | ) |  |

文字列挿入

日付:
2002/03/24 YAZAKI bUndo削除

CLayoutMgr.cpp の 660 行で定義されています。

参照先 COLORIDX_DEFAULT, WCODE::CR, DeleteLayoutAsLogical(), DoLayout_Range(), CLayout::GetColorTypePrev(), CDocLineMgr::GetLineCount(), GetLineStr(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CDocLineMgr::InsertData_CDocLineMgr(), WCODE::LF, LogicToLayout(), m_nLines, m_nLineTypeBot, m_nPrevReferLine, m_pcDocLineMgr, m_pLayoutBot, m_pLayoutPrevRefer, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, NULL, と ShiftLogicalLineNum().

参照元 CEditView::InsertData_CEditView().

void CLayoutMgr::ReplaceData_CLayoutMgr ( LayoutReplaceArg * pArg )

CLayoutMgr_New2.cpp の 25 行で定義されています。

参照先 COLORIDX_DEFAULT, DeleteLayoutAsLogical(), DoLayout_Range(), CLayout::GetColorTypePrev(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineCount(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), LayoutToLogic(), LogicToLayout(), m_nLines, m_pcDocLineMgr, m_pLayoutBot, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, LayoutReplaceArg::nAddLineNum, LayoutReplaceArg::nInsDataLen, LayoutReplaceArg::nModLineFrom, LayoutReplaceArg::nModLineTo, NULL, LayoutReplaceArg::pcmemDeleted, LayoutReplaceArg::pInsData, LayoutReplaceArg::ptLayoutNew, CDocLineMgr::ReplaceData(), LayoutReplaceArg::sDelRange, SearchLineByLayoutY(), と ShiftLogicalLineNum().

参照元 CEditView::ReplaceData_CEditView().

const char* CLayoutMgr::GetFirstLinrStr ( int * ) [protected]

const char* CLayoutMgr::GetNextLinrStr ( int * ) [protected]

void CLayoutMgr::DoLayout ( HWND hwndProgress ) [protected]

現在の折り返し文字数に合わせて全データのレイアウト情報を再生成します

日付:
2004.04.03 Moca TABが使われると折り返し位置がずれるのを防ぐため， nPosXがインデントを含む幅を保持するように変更．nMaxLineKetasは 固定値となったが，既存コードの置き換えは避けて最初に値を代入するようにした．

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

参照先 AddLineBottom(), BlockingHook(), CheckColorMODE(), COLORIDX_COMMENT, COLORIDX_TEXT, CreateLayout(), Empty(), GetActualTabSpace(), CDocLineMgr::GetDocLineTop(), CNativeW::GetKetaOfChar(), CEOL::GetLen(), CDocLineMgr::GetLineCount(), CNativeW::GetSizeOfChar(), CNativeW::GetStringPtr(), Init(), IS_KEYWORD_CHAR(), IsKinsokuHead(), IsKinsokuKuto(), IsKinsokuPosHead(), IsKinsokuPosKuto(), IsKinsokuPosTail(), IsKinsokuTail(), KINSOKU_TYPE_KINSOKU_HEAD, KINSOKU_TYPE_KINSOKU_KUTO, KINSOKU_TYPE_KINSOKU_TAIL, KINSOKU_TYPE_NONE, KINSOKU_TYPE_WORDWRAP, m_bKinsokuHead, m_bKinsokuKuto, m_bKinsokuRet, m_bKinsokuTail, m_bWordWrap, CDocLine::m_cEol, CDocLine::m_cLine, m_getIndentOffset, m_nLineTypeBot, m_nMaxLineKetas, m_nPrevReferLine, m_nTabSpace, m_pcDocLineMgr, m_pLayoutBot, m_pLayoutPrevRefer, CDocLine::m_pNext, MY_RUNNINGTIMER, NULL, PostMessageAny, と WCODE::TAB.

参照元 ChangeLayoutParam(), と SetLayoutInfo().

CLayoutInt CLayoutMgr::DoLayout_Range | ( | CLayout * | pLayoutPrev,
 |  | CLogicInt | nLineNum,
 |  | CLogicPoint | ptDelLogicalFrom,
 |  | EColorIndexType | nCurrentLineType,
 |  | CLayoutInt * | pnExtInsLineNum |
 | ) |  |  | [protected]

指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする

日付:
2002.10.07 YAZAKI rename from "DoLayout3_New"

2004.04.03 Moca TABが使われると折り返し位置がずれるのを防ぐため， nPosXがインデントを含む幅を保持するように変更．nMaxLineKetasは 固定値となったが，既存コードの置き換えは避けて最初に値を代入するようにした．

覚え書き:
2004.04.03 Moca DoLayoutとは違ってレイアウト情報がリスト中間に挿入されるため， 挿入後にm_nLineTypeBotへコメントモードを指定してはならない 代わりに最終行のコメントモードを終了間際に確認している．

CLayoutMgr_New.cpp の 421 行で定義されています。

参照先 CheckColorMODE(), COLORIDX_COMMENT, COLORIDX_TEXT, CreateLayout(), GetActualTabSpace(), CLayout::GetColorTypePrev(), CNativeW::GetKetaOfChar(), CEOL::GetLen(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), CLayout::GetLogicLineNo(), CNativeW::GetSizeOfChar(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InsertLineNext(), IS_KEYWORD_CHAR(), IsKinsokuHead(), IsKinsokuKuto(), IsKinsokuPosHead(), IsKinsokuPosKuto(), IsKinsokuPosTail(), IsKinsokuTail(), KINSOKU_TYPE_KINSOKU_HEAD, KINSOKU_TYPE_KINSOKU_KUTO, KINSOKU_TYPE_KINSOKU_TAIL, KINSOKU_TYPE_NONE, KINSOKU_TYPE_WORDWRAP, m_bKinsokuHead, m_bKinsokuKuto, m_bKinsokuRet, m_bKinsokuTail, m_bWordWrap, CDocLine::m_cEol, CDocLine::m_cLine, m_getIndentOffset, m_nEOFColumn, m_nEOFLine, m_nLineTypeBot, m_nMaxLineKetas, m_pcDocLineMgr, CDocLine::m_pNext, CLayout::m_pNext, NULL, CLayout::SetColorTypePrev(), と WCODE::TAB.

参照元 DeleteData_CLayoutMgr(), InsertData_CLayoutMgr(), と ReplaceData_CLayoutMgr().

CLayout * CLayoutMgr::DeleteLayoutAsLogical | ( | CLayout * | pLayoutInThisArea,
 |  | CLayoutInt | nLineOf_pLayoutInThisArea,
 |  | CLogicInt | nLineFrom,
 |  | CLogicInt | nLineTo,
 |  | CLogicPoint | ptDelLogicalFrom,
 |  | CLayoutInt * | pnDeleteLines |
 | ) |  |  | [protected]

CLayoutMgr.cpp の 830 行で定義されています。

参照先 CLayout::GetLength(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), m_nLines, m_nPrevReferLine, m_pLayoutBot, m_pLayoutPrevRefer, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, MYTRACE_A, と NULL.

参照元 DeleteData_CLayoutMgr(), InsertData_CLayoutMgr(), と ReplaceData_CLayoutMgr().

void CLayoutMgr::ShiftLogicalLineNum | ( | CLayout * | pLayoutPrev,
 |  | CLogicInt | nShiftLines |
 | ) |  |  | [protected]

CLayoutMgr.cpp の 927 行で定義されています。

参照先 m_pLayoutTop, CLayout::m_pNext, MY_RUNNINGTIMER, NULL, と CLayout::OffsetLogicLineNo().

参照元 DeleteData_CLayoutMgr(), InsertData_CLayoutMgr(), と ReplaceData_CLayoutMgr().

void CLayoutMgr::Init ( void )

CLayoutMgr.cpp の 191 行で定義されています。

参照先 m_nEOFColumn, m_nEOFLine, m_nLines, m_nPrevReferLine, m_pLayoutBot, m_pLayoutPrevRefer, m_pLayoutTop, と NULL.

参照元 CLayoutMgr(), Create(), と DoLayout().

void CLayoutMgr::Empty ( void )

CLayoutMgr.cpp の 210 行で定義されています。

参照先 m_pLayoutTop, CLayout::m_pNext, と NULL.

参照元 DoLayout(), と ~CLayoutMgr().

bool CLayoutMgr::_ExistKinsokuKuto ( wchar_t wc ) const [inline, private]

CLayoutMgr.h の 220 行で定義されています。

参照先 NULL.

参照元 SetLayoutInfo().

bool CLayoutMgr::_ExistKinsokuHead ( wchar_t wc ) const [inline, private]

CLayoutMgr.h の 221 行で定義されています。

参照先 NULL.

bool CLayoutMgr::IsKinsokuHead | ( | const wchar_t * | pLine,
 |  | CLogicInt | length |
 | ) |  |  | [private]

行頭禁則文字をチェックする

行頭禁則文字に該当するかを調べる．

引数:
[in] | pLine | 調べる文字へのポインタ
[in] | length | 当該箇所の文字サイズ
戻り値:
true | 禁則文字に該当
false | 禁則文字に該当しない

CLayoutMgr_New.cpp の 857 行で定義されています。

参照先 m_pszKinsokuHead_1, と NULL.

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::IsKinsokuTail | ( | const wchar_t * | pLine,
 |  | CLogicInt | length |
 | ) |  |  | [private]

行末禁則文字をチェックする

行末禁則文字に該当するかを調べる．

引数:
[in] | pLine | 調べる文字へのポインタ
[in] | length | 当該箇所の文字サイズ
戻り値:
true | 禁則文字に該当
false | 禁則文字に該当しない

CLayoutMgr_New.cpp の 876 行で定義されています。

参照先 m_pszKinsokuTail_1, と NULL.

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::IsKutoTen ( wchar_t wc ) [private]

句読点文字をチェックする

句読点か

引数:
[in] | c1 | 調べる文字1バイト目
[in] | c2 | 調べる文字2バイト目
戻り値:
true | 句読点である
false | 句読点でない

CLayoutMgr_New.cpp の 896 行で定義されています。

参照元 SetLayoutInfo().

bool CLayoutMgr::IsKinsokuKuto | ( | const wchar_t * | pLine,
 |  | CLogicInt | length |
 | ) |  |  | [private]

句読点文字をチェックする

禁則対象句読点に該当するかを調べる．

引数:
[in] | pLine | 調べる文字へのポインタ
[in] | length | 当該箇所の文字サイズ
戻り値:
true | 禁則文字に該当
false | 禁則文字に該当しない

CLayoutMgr_New.cpp の 919 行で定義されています。

参照先 m_pszKinsokuKuto_1, と NULL.

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::IsKinsokuPosKuto | ( | CLayoutInt | nRest,
 |  | CLayoutInt | nCharChars |
 | ) |  |  | const [inline, private]

句読点ぶら下げの処理位置か

日付:
2005-08-20 D.S.Koba

Sep. 3, 2005 genta 最適化

CLayoutMgr.h の 231 行で定義されています。

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::IsKinsokuPosHead | ( | CLayoutInt | nRest,
 |  | CLayoutInt | nCharKetas,
 |  | CLayoutInt | nCharKetas2 |
 | ) |  |  | [private]

行頭禁則の処理位置か

引数:
[in] | nRest | 行の残り文字数
[in] | nCharChars | 現在位置の文字サイズ
[in] | nCharChars2 | 現在位置の次の文字サイズ
日付:
2005-08-20 D.S.Koba DoLayout()とDoLayout_Range()から分離

CLayoutMgr_New.cpp の 937 行で定義されています。

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::IsKinsokuPosTail | ( | CLayoutInt | nRest,
 |  | CLayoutInt | nCharKetas,
 |  | CLayoutInt | nCharKetas2 |
 | ) |  |  | [private]

行末禁則の処理位置か

引数:
[in] | nRest | 行の残り文字数
[in] | nCharChars | 現在位置の文字サイズ
[in] | nCharChars2 | 現在位置の次の文字サイズ
日付:
2005-08-20 D.S.Koba DoLayout()とDoLayout_Range()から分離

CLayoutMgr_New.cpp の 983 行で定義されています。

参照元 DoLayout(), と DoLayout_Range().

bool CLayoutMgr::CheckColorMODE | ( | EColorIndexType & | nCOMMENTMODE,
 |  | int & | nCOMMENTEND,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const wchar_t * | pLine |
 | ) |  |  | [private]

CLayoutMgr_New.cpp の 1051 行で定義されています。

参照先 COLORIDX_BLOCK1, COLORIDX_BLOCK2, COLORIDX_COMMENT, COLORIDX_SSTRING, COLORIDX_TEXT, COLORIDX_WSTRING, CBlockComment::getBlockFromLen(), m_bDispComment, m_bDispSString, m_bDispWString, m_cBlockComment, m_cLineComment, CLineComment::Match(), CBlockComment::Match_CommentFrom(), CBlockComment::Match_CommentTo(), と Match_Quote().

参照元 DoLayout(), と DoLayout_Range().

int CLayoutMgr::Match_Quote | ( | wchar_t | wcQuote,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const wchar_t * | pLine |
 | ) |  |  | [private]

CLayoutMgr_New.cpp の 1017 行で定義されています。

参照先 CNativeW::GetSizeOfChar(), と m_nStringType.

参照元 CheckColorMODE().

CLayoutInt CLayoutMgr::getIndentOffset_Normal ( CLayout * pLayoutPrev ) [private]

行の長さを計算する (2行目以降の字下げ無し)

字下げを行わないので，常に0を返す． 引数は使わない．

戻り値:
1行の表示文字数 (常に0)
作者:
genta
日付:
2002.10.01

CLayoutMgr_New.cpp の 1143 行で定義されています。

参照元 SetLayoutInfo().

CLayoutInt CLayoutMgr::getIndentOffset_Tx2x ( CLayout * pLayoutPrev ) [private]

インデント幅を計算する (Tx2x)

前の行の最後のTABの位置をインデント位置として返す． ただし，残り幅が6文字未満の場合はインデントを行わない．

作者:
Yazaki
戻り値:
インデントすべき文字数
日付:
2002.10.01

2002.10.07 YAZAKI 名称変更, 処理見直し

CLayoutMgr_New.cpp の 1160 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getColumnDelta(), CMemoryIterator::getCurrentChar(), CLayout::GetIndent(), CMemoryIterator::getIndexDelta(), CLayout::GetLogicOffset(), m_nMaxLineKetas, m_nTabSpace, NULL, CMemoryIterator::scanNext(), と WCODE::TAB.

参照元 SetLayoutInfo().

CLayoutInt CLayoutMgr::getIndentOffset_LeftSpace ( CLayout * pLayoutPrev ) [private]

インデント幅を計算する (スペース字下げ版)

論理行行頭のホワイトスペースの終わりインデント位置として返す． ただし，残り幅が6文字未満の場合はインデントを行わない．

作者:
genta
戻り値:
インデントすべき文字数
日付:
2002.10.01

CLayoutMgr_New.cpp の 1196 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), FALSE, CMemoryIterator::getColumn(), CMemoryIterator::getCurrentChar(), CMemoryIterator::getCurrentPos(), CEditDoc::GetDocumentAttribute(), CLayout::GetIndent(), CMemoryIterator::getIndexDelta(), CLayout::GetLogicOffset(), WCODE::isIndentChar(), Types::m_bAutoIndent_ZENSPACE, m_nMaxLineKetas, m_nTabSpace, m_pcEditDoc, Types::m_szIndentChars, NULL, と CMemoryIterator::scanNext().

参照元 SetLayoutInfo().

CLayout * CLayoutMgr::CreateLayout | ( | CDocLine * | pCDocLine,
 |  | CLogicPoint | ptLogicPos,
 |  | CLogicInt | nLength,
 |  | EColorIndexType | nTypePrev,
 |  | CLayoutInt | nIndent |
 | ) |  |  | [protected]

CLayoutMgr.cpp の 400 行で定義されています。

参照先 EOL_NONE, CEOL::GetLen(), CLayout::GetLength(), CLayout::GetLogicOffset(), CNativeW::GetStringLength(), CLayout::m_cEol, CDocLine::m_cEol, CDocLine::m_cLine, と CEOL::SetType().

参照元 DoLayout(), と DoLayout_Range().

CLayout * CLayoutMgr::InsertLineNext | ( | CLayout * | pLayoutPrev,
 |  | CLayout * | pLayout |
 | ) |  |  | [protected]

CLayoutMgr.cpp の 362 行で定義されています。

参照先 m_nLines, m_pLayoutBot, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, と NULL.

参照元 DoLayout_Range().

void CLayoutMgr::AddLineBottom ( CLayout * pLayout ) [protected]

CLayoutMgr.cpp の 346 行で定義されています。

参照先 m_nLines, m_pLayoutBot, m_pLayoutTop, CLayout::m_pNext, CLayout::m_pPrev, と NULL.

参照元 DoLayout().

変数

CDocLineMgr* CLayoutMgr::m_pcDocLineMgr

CLayoutMgr.h の 260 行で定義されています。

参照元 CLayoutMgr(), Create(), DeleteData_CLayoutMgr(), DoLayout(), DoLayout_Range(), DUMP(), InsertData_CLayoutMgr(), LayoutToLogic(), PrevOrNextWord(), ReplaceData_CLayoutMgr(), SearchWord(), と WhereCurrentWord().

CLayout* CLayoutMgr::m_pLayoutTop [protected]

CLayoutMgr.h の 268 行で定義されています。

参照元 AddLineBottom(), DeleteData_CLayoutMgr(), DeleteLayoutAsLogical(), DUMP(), Empty(), Init(), InsertData_CLayoutMgr(), InsertLineNext(), ReplaceData_CLayoutMgr(), SearchLineByLayoutY(), と ShiftLogicalLineNum().

CLayout* CLayoutMgr::m_pLayoutBot [protected]

CLayoutMgr.h の 269 行で定義されています。

参照元 AddLineBottom(), DeleteLayoutAsLogical(), DoLayout(), DUMP(), GetEndLayoutPos(), Init(), InsertData_CLayoutMgr(), InsertLineNext(), ReplaceData_CLayoutMgr(), と SearchLineByLayoutY().

EColorIndexType CLayoutMgr::m_nLineTypeBot [protected]

タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列

CLayoutMgr.h の 272 行で定義されています。

参照元 DoLayout(), DoLayout_Range(), と InsertData_CLayoutMgr().

CLayoutInt CLayoutMgr::m_nLines [protected]

CLayoutMgr.h の 273 行で定義されています。

参照元 AddLineBottom(), DeleteData_CLayoutMgr(), DeleteLayoutAsLogical(), DUMP(), GetEndLayoutPos(), Init(), InsertData_CLayoutMgr(), InsertLineNext(), LayoutToLogic(), LogicToLayout(), ReplaceData_CLayoutMgr(), と SearchLineByLayoutY().

CLayoutInt CLayoutMgr::m_nMaxLineKetas [protected]

CLayoutMgr.h の 274 行で定義されています。

参照元 ChangeLayoutParam(), DoLayout(), DoLayout_Range(), DUMP(), getIndentOffset_LeftSpace(), getIndentOffset_Tx2x(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bWordWrap [protected]

CLayoutMgr.h の 275 行で定義されています。

参照元 CLayoutMgr(), DoLayout(), DoLayout_Range(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuHead [protected]

CLayoutMgr.h の 276 行で定義されています。

参照元 CLayoutMgr(), DoLayout(), DoLayout_Range(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuTail [protected]

CLayoutMgr.h の 277 行で定義されています。

参照元 CLayoutMgr(), DoLayout(), DoLayout_Range(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuRet [protected]

CLayoutMgr.h の 278 行で定義されています。

参照元 CLayoutMgr(), DoLayout(), DoLayout_Range(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuKuto [protected]

CLayoutMgr.h の 279 行で定義されています。

参照元 CLayoutMgr(), DoLayout(), DoLayout_Range(), と SetLayoutInfo().

std::vector<wchar_t> CLayoutMgr::m_pszKinsokuHead_1 [protected]

CLayoutMgr.h の 280 行で定義されています。

参照元 CLayoutMgr(), IsKinsokuHead(), SetLayoutInfo(), と ~CLayoutMgr().

std::vector<wchar_t> CLayoutMgr::m_pszKinsokuTail_1 [protected]

CLayoutMgr.h の 281 行で定義されています。

参照元 CLayoutMgr(), IsKinsokuTail(), SetLayoutInfo(), と ~CLayoutMgr().

std::vector<wchar_t> CLayoutMgr::m_pszKinsokuKuto_1 [protected]

CLayoutMgr.h の 282 行で定義されています。

参照元 CLayoutMgr(), IsKinsokuKuto(), SetLayoutInfo(), と ~CLayoutMgr().

CLayoutInt CLayoutMgr::m_nTabSpace [protected]

CLayoutMgr.h の 283 行で定義されています。

参照元 ChangeLayoutParam(), CLayoutMgr(), DoLayout(), DUMP(), getIndentOffset_LeftSpace(), getIndentOffset_Tx2x(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bDispComment [protected]

CLayoutMgr.h の 284 行で定義されています。

参照元 CheckColorMODE(), CLayoutMgr(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bDispSString [protected]

CLayoutMgr.h の 285 行で定義されています。

参照元 CheckColorMODE(), CLayoutMgr(), と SetLayoutInfo().

BOOL CLayoutMgr::m_bDispWString [protected]

CLayoutMgr.h の 286 行で定義されています。

参照元 CheckColorMODE(), CLayoutMgr(), と SetLayoutInfo().

CLineComment CLayoutMgr::m_cLineComment [protected]

CLayoutMgr.h の 287 行で定義されています。

参照元 CheckColorMODE(), と SetLayoutInfo().

CBlockComment CLayoutMgr::m_cBlockComment [protected]

CLayoutMgr.h の 288 行で定義されています。

参照元 CheckColorMODE(), と SetLayoutInfo().

int CLayoutMgr::m_nStringType [protected]

CLayoutMgr.h の 289 行で定義されています。

参照元 CLayoutMgr(), Match_Quote(), と SetLayoutInfo().

CalcIndentProc CLayoutMgr::m_getIndentOffset [protected]

CLayoutMgr.h の 290 行で定義されています。

参照元 DoLayout(), DoLayout_Range(), と SetLayoutInfo().

CLayoutInt CLayoutMgr::m_nPrevReferLine [mutable, protected]

CLayoutMgr.h の 292 行で定義されています。

参照元 DeleteLayoutAsLogical(), DoLayout(), Init(), InsertData_CLayoutMgr(), と SearchLineByLayoutY().

CLayout* CLayoutMgr::m_pLayoutPrevRefer [mutable, protected]

CLayoutMgr.h の 293 行で定義されています。

参照元 DeleteData_CLayoutMgr(), DeleteLayoutAsLogical(), DoLayout(), Init(), InsertData_CLayoutMgr(), と SearchLineByLayoutY().

CLayoutInt CLayoutMgr::m_nEOFLine [protected]

EOF行数

CLayoutMgr.h の 296 行で定義されています。

参照元 DoLayout_Range(), GetEndLayoutPos(), と Init().

CLayoutInt CLayoutMgr::m_nEOFColumn [protected]

EOF幅位置

CLayoutMgr.h の 297 行で定義されています。

参照元 DoLayout_Range(), GetEndLayoutPos(), と Init().

CEditDoc* CLayoutMgr::m_pcEditDoc [protected]

CLayoutMgr.h の 301 行で定義されています。

参照元 Create(), と getIndentOffset_LeftSpace().

このクラスの説明は次のファイルから生成されました:
  • CLayoutMgr.h
  • CLayoutMgr.cpp
  • CLayoutMgr_New.cpp
  • CLayoutMgr_New2.cpp
Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLayoutMgr メンバ一覧

これは全メンバの一覧です。CLayoutMgr継承メンバも含んでいます。

_ExistKinsokuHead(wchar_t wc) const | CLayoutMgr | [inline, private]
_ExistKinsokuKuto(wchar_t wc) const | CLayoutMgr | [inline, private]
AddLineBottom(CLayout *) | CLayoutMgr | [protected]
CalcIndentProc typedef | CLayoutMgr | [private]
ChangeLayoutParam(HWND hwndProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas) | CLayoutMgr |
CheckColorMODE(EColorIndexType &nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const wchar_t *pLine) | CLayoutMgr | [private]
CLayoutMgr() | CLayoutMgr |
Create(CEditDoc *, CDocLineMgr *) | CLayoutMgr |
CreateLayout(CDocLine *pCDocLine, CLogicPoint ptLogicPos, CLogicInt nLength, EColorIndexType nTypePrev, CLayoutInt nIndent) | CLayoutMgr | [protected]
DeleteData_CLayoutMgr(CLayoutInt nLineNum, CLogicInt nDelPos, CLogicInt nDelLen, CLayoutInt *pnModifyLayoutLinesOld, CLayoutInt *pnModifyLayoutLinesNew, CLayoutInt *pnDeleteLayoutLines, CNativeW *cmemDeleted) | CLayoutMgr |
DeleteLayoutAsLogical(CLayout *, CLayoutInt, CLogicInt, CLogicInt, CLogicPoint, CLayoutInt *) | CLayoutMgr | [protected]
DoLayout(HWND) | CLayoutMgr | [protected]
DoLayout_Range(CLayout *, CLogicInt, CLogicPoint, EColorIndexType, CLayoutInt *) | CLayoutMgr | [protected]
DUMP(void) | CLayoutMgr |
Empty() | CLayoutMgr |
GetActualTabSpace(CLayoutInt pos) const | CLayoutMgr | [inline]
GetEndLayoutPos(CLayoutPoint *ptLayoutEnd) | CLayoutMgr |
GetFirstLinrStr(int *) | CLayoutMgr | [protected]
getIndentOffset_LeftSpace(CLayout *pLayoutPrev) | CLayoutMgr | [private]
getIndentOffset_Normal(CLayout *pLayoutPrev) | CLayoutMgr | [private]
getIndentOffset_Tx2x(CLayout *pLayoutPrev) | CLayoutMgr | [private]
GetLineCount() const | CLayoutMgr | [inline]
GetLineStr(CLayoutInt nLine, CLogicInt *pnLineLen) const | CLayoutMgr |
GetLineStr(CLayoutInt nLine, CLogicInt *pnLineLen, const CLayout **ppcLayoutDes) const | CLayoutMgr |
GetMaxLineKetas(void) const | CLayoutMgr | [inline]
GetNextLinrStr(int *) | CLayoutMgr | [protected]
GetTabSpace(void) const | CLayoutMgr | [inline]
Init() | CLayoutMgr |
InsertData_CLayoutMgr(CLayoutInt nLineNum, CLogicInt nInsPos, const wchar_t *pInsData, CLogicInt nInsDataLen, CLayoutInt *pnModifyLayoutLinesOld, CLayoutInt *pnInsLineNum, CLayoutPoint *pptNewLayout) | CLayoutMgr |
InsertLineNext(CLayout *, CLayout *) | CLayoutMgr | [protected]
IsEndOfLine(const CLayoutPoint &ptLinePos) | CLayoutMgr |
IsKinsokuHead(const wchar_t *pLine, CLogicInt length) | CLayoutMgr | [private]
IsKinsokuKuto(const wchar_t *pLine, CLogicInt length) | CLayoutMgr | [private]
IsKinsokuPosHead(CLayoutInt, CLayoutInt, CLayoutInt) | CLayoutMgr | [private]
IsKinsokuPosKuto(CLayoutInt nRest, CLayoutInt nCharChars) const | CLayoutMgr | [inline, private]
IsKinsokuPosTail(CLayoutInt, CLayoutInt, CLayoutInt) | CLayoutMgr | [private]
IsKinsokuTail(const wchar_t *pLine, CLogicInt length) | CLayoutMgr | [private]
IsKutoTen(wchar_t wc) | CLayoutMgr | [private]
LayoutToLogic(const CLayoutPoint &ptLayout, CLogicPoint *pptLogic) const | CLayoutMgr |
LayoutToLogic(const CLayoutRange &rangeLayout, CLogicRange *prangeLogic) const | CLayoutMgr | [inline]
LogicToLayout(const CLogicPoint &ptLogic, CLayoutPoint *pptLayout, CLayoutInt nLineHint=CLayoutInt(0)) | CLayoutMgr |
LogicToLayout(const CLogicRange &rangeLogic, CLayoutRange *prangeLayout) | CLayoutMgr | [inline]
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_getIndentOffset | CLayoutMgr | [protected]
m_nEOFColumn | CLayoutMgr | [protected]
m_nEOFLine | CLayoutMgr | [protected]
m_nLines | CLayoutMgr | [protected]
m_nLineTypeBot | CLayoutMgr | [protected]
m_nMaxLineKetas | CLayoutMgr | [protected]
m_nPrevReferLine | CLayoutMgr | [mutable, protected]
m_nStringType | CLayoutMgr | [protected]
m_nTabSpace | CLayoutMgr | [protected]
m_pcDocLineMgr | CLayoutMgr |
m_pcEditDoc | CLayoutMgr | [protected]
m_pLayoutBot | CLayoutMgr | [protected]
m_pLayoutPrevRefer | CLayoutMgr | [mutable, protected]
m_pLayoutTop | CLayoutMgr | [protected]
m_pszKinsokuHead_1 | CLayoutMgr | [protected]
m_pszKinsokuKuto_1 | CLayoutMgr | [protected]
m_pszKinsokuTail_1 | CLayoutMgr | [protected]
Match_Quote(wchar_t wcQuote, int nPos, int nLineLen, const wchar_t *pLine) | CLayoutMgr | [private]
NextWord(CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint *pptLayoutNew, BOOL bStopsBothEnds) | CLayoutMgr | [inline]
PrevOrNextWord(CLayoutInt, CLogicInt, CLayoutPoint *pptLayoutNew, BOOL, BOOL bStopsBothEnds) | CLayoutMgr | [protected]
PrevWord(CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint *pptLayoutNew, BOOL bStopsBothEnds) | CLayoutMgr | [inline]
ReplaceData_CLayoutMgr(LayoutReplaceArg *pArg) | CLayoutMgr |
SearchLineByLayoutY(CLayoutInt nLineLayout) const | CLayoutMgr |
SearchLineByLayoutY(CLayoutInt nLineLayout) | CLayoutMgr | [inline]
SearchWord(CLayoutInt nLine, CLogicInt nIdx, const wchar_t *, ESearchDirection eSearchDirection, const SSearchOption &sSearchOption, CLayoutRange *pMatchRange, CBregexp *) | CLayoutMgr |
SetLayoutInfo(int, HWND, Types &refType) | CLayoutMgr |
ShiftLogicalLineNum(CLayout *, CLogicInt) | CLayoutMgr | [protected]
WhereCurrentWord(CLayoutInt, CLogicInt, CLayoutRange *pSelect, CNativeW *, CNativeW *) | CLayoutMgr |
~CLayoutMgr() | CLayoutMgr |

Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CLineComment

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLineComment

#include <CLineComment.h>

すべてのメンバ一覧

Public メソッド

CLineComment ()
void | CopyTo (const int n, const wchar_t *buffer, int nCommentPos)
bool | Match (int nPos, int nLineLen, const wchar_t *pLine) const
const wchar_t * | getLineComment (const int n)
int | getLineCommentPos (const int n) const

Private 変数

wchar_t | 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 wchar_t * | buffer,
 |  | int | nCommentPos
 | ) |  |

行コメントデリミタをコピーする

引数:
n | [in] コピー対象のコメント番号
buffer | [in] コメント文字列
nCommentPos | [in] コメント位置．-1のときは指定無し．

CLineComment.cpp の 33 行で定義されています。

参照先 COMMENT_DELIMITER_BUFFERSIZE, m_nLineCommentLen, m_nLineCommentPos, と m_pszLineComment.

参照元 CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), と CShareData::ShareData_IO_Types().

bool CLineComment::Match | ( | int | nPos,
 |  | int | nLineLen,
 |  | const wchar_t * | pLine |
 | ) |  |  | const

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

参照先 auto_memicmp(), COMMENT_DELIMITER_NUM, m_nLineCommentLen, m_nLineCommentPos, と m_pszLineComment.

参照元 CLayoutMgr::CheckColorMODE(), と CEditView::DispLineNew().

const wchar_t* CLineComment::getLineComment ( const int n ) [inline]

CLineComment.h の 45 行で定義されています。

参照元 CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

int CLineComment::getLineCommentPos ( const int n ) const [inline]

CLineComment.h の 48 行で定義されています。

参照元 CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

変数

wchar_t CLineComment::m_pszLineComment[COMMENT_DELIMITER_NUM][COMMENT_DELIMITER_BUFFERSIZE] [private]

CLineComment.h の 32 行で定義されています。

参照元 CLineComment(), CopyTo(), と Match().

int CLineComment::m_nLineCommentPos[COMMENT_DELIMITER_NUM] [private]

行コメントの開始位置(負数は指定無し)

CLineComment.h の 33 行で定義されています。

参照元 CLineComment(), CopyTo(), と Match().

int CLineComment::m_nLineCommentLen[COMMENT_DELIMITER_NUM] [private]

行コメント文字列の長さ

CLineComment.h の 34 行で定義されています。

参照元 CopyTo(), と Match().

このクラスの説明は次のファイルから生成されました:
  • CLineComment.h
  • CLineComment.cpp
Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLineComment メンバ一覧

これは全メンバの一覧です。CLineComment継承メンバも含んでいます。

CLineComment() | CLineComment |
CopyTo(const int n, const wchar_t *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 wchar_t *pLine) const | CLineComment |

Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMacro

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacro

キーボードマクロの1コマンド [詳細]

#include <CMacro.h>

CMacroのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMacro (EFunctionCode nFuncID)
~CMacro ()
void | SetNext (CMacro *pNext)
CMacro * GetNext ()
void | Exec (CEditView *pcEditView) const
void | Save (HINSTANCE hInstance, CTextOutputStream &out) const
void | AddLParam (LPARAM lParam, const CEditView *pcEditView)
void | AddStringParam (const WCHAR *lParam)
void | AddStringParam (const ACHAR *lParam)
void | AddIntParam (const int lParam)

Static Public メソッド

static void | HandleCommand (CEditView *pcEditView, const EFunctionCode Index, const WCHAR *Argument[], const int ArgSize)
static bool | HandleFunction (CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result)

Protected 変数

EFunctionCode m_nFuncID
CMacroParam * m_pParamTop
CMacroParam * m_pParamBot
CMacro * m_pNext

構成

struct | CMacroParam

説明

キーボードマクロの1コマンド

引数をリスト構造にして、いくつでも持てるようにしてみました。 スタックにするのが通例なのかもしれません（よくわかりません）。

今後、制御構造が入っても困らないようにしようと思ったのですが、挫折しました。

さて、このクラスは次のような前提で動作している。

  • 引数のリストを、m_pParamTopからのリスト構造で保持。
  • 引数を新たに追加するには、AddParam()を使用する。 AddParamにどんな値が渡されてもよいように準備するコト。 渡された値が数値なのか、文字列へのポインタなのかは、m_nFuncID（機能 ID）によって、このクラス内で判別し、よろしくやること。
  • 引数は、CMacro内部ではすべて文字列で保持すること（数値97は、"97"として保持）（いまのところ）

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

コンストラクタとデストラクタ

CMacro::CMacro ( EFunctionCode nFuncID )

CMacro.cpp の 33 行で定義されています。

参照先 m_nFuncID, m_pNext, m_pParamBot, m_pParamTop, と NULL.

CMacro::~CMacro ( void )

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

参照先 CMacro::CMacroParam::m_pData, CMacro::CMacroParam::m_pNext, と m_pParamTop.

関数

void CMacro::SetNext ( CMacro * pNext ) [inline]

CMacro.h の 53 行で定義されています。

参照先 m_pNext.

参照元 CKeyMacroMgr::Append().

CMacro* CMacro::GetNext ( ) [inline]

CMacro.h の 54 行で定義されています。

参照先 m_pNext.

参照元 CKeyMacroMgr::ClearAll(), CKeyMacroMgr::ExecKeyMacro(), と CKeyMacroMgr::SaveKeyMacro().

void CMacro::Exec ( CEditView * pcEditView ) const

CMacro.cpp の 207 行で定義されています。

参照先 HandleCommand(), m_nFuncID, CMacro::CMacroParam::m_pData, CMacro::CMacroParam::m_pNext, m_pParamTop, と NULL.

参照元 CKeyMacroMgr::ExecKeyMacro().

void CMacro::Save | ( | HINSTANCE | hInstance,
 |  | CTextOutputStream & | out |
 | ) |  |  | const

CMacro.cpp の 226 行で定義されています。

参照先 F_BOOKMARK_PATTERN, F_EXECCOMMAND, F_FILEOPEN, F_GREP, F_INSTEXT_W, F_JUMP, F_REPLACE, F_REPLACE_ALL, F_SEARCH_NEXT, F_SEARCH_PREV, CSMacroMgr::GetFuncInfoByID(), CNativeW::GetStringPtr(), LTEXT, m_nFuncID, CMacro::CMacroParam::m_pData, CMacro::CMacroParam::m_pNext, m_pParamTop, CNativeW::Replace(), CNativeW::SetString(), と CTextOutputStream::WriteF().

参照元 CKeyMacroMgr::SaveKeyMacro().

void CMacro::AddLParam | ( | LPARAM | lParam,
 |  | const CEditView * | pcEditView
 | ) |  |

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

参照先 AddIntParam(), AddStringParam(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CODE_AUTODETECT, F_BOOKMARK_PATTERN, F_EXECCOMMAND, F_FILEOPEN, F_GREP, F_INSTEXT_W, F_JUMP, F_REPLACE, F_REPLACE_ALL, F_SEARCH_NEXT, F_SEARCH_PREV, F_WCHAR, DLLSHAREDATA::m_aGrepFiles, DLLSHAREDATA::m_aGrepFolders, DLLSHAREDATA::m_aReplaceKeys, DLLSHAREDATA::m_aSearchKeys, CommonSetting_Search::m_bAutoCloseDlgFind, CommonSetting_Search::m_bConsecutiveAll, CommonSetting_Search::m_bGrepOutputLine, CommonSetting_Search::m_bGrepSubFolder, DLLSHAREDATA::m_bLineNumIsCRLF, CommonSetting_Search::m_bNOTIFYNOTFOUND, CDlgJump::m_bPLSQL, CommonSetting_Search::m_bSearchAll, CommonSetting_Search::m_bSelectedArea, CEditWnd::m_cDlgJump, CEditWnd::m_cDlgReplace, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_nExecFlgOpt, m_nFuncID, CommonSetting_Search::m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, CDlgJump::m_nLineNum, CDlgReplace::m_nPaste, CDlgReplace::m_nReplaceTarget, CEditView::m_pcEditDoc, CEditDoc::m_pcEditWnd, CEditView::m_pShareData, CommonSetting::m_sSearch, と CommonSetting_Search::m_sSearchOption.

参照元 CKeyMacroMgr::Append().

void CMacro::AddStringParam ( const WCHAR * lParam )

CMacro.cpp の 153 行で定義されています。

参照先 auto_memcpy(), auto_strlen(), LTEXT, CMacro::CMacroParam::m_pData, CMacro::CMacroParam::m_pNext, m_pParamBot, m_pParamTop, と NULL.

参照元 AddLParam(), AddStringParam(), と CKeyMacroMgr::LoadKeyMacro().

void CMacro::AddStringParam ( const ACHAR * lParam ) [inline]

CMacro.h の 60 行で定義されています。

参照先 AddStringParam(), と to_wchar().

void CMacro::AddIntParam ( const int lParam )

CMacro.cpp の 177 行で定義されています。

参照先 CMacro::CMacroParam::m_pData, CMacro::CMacroParam::m_pNext, m_pParamBot, m_pParamTop, と NULL.

参照元 AddLParam().

void CMacro::HandleCommand | ( | CEditView * | pcEditView,
 |  | const EFunctionCode | Index,
 |  | const WCHAR * | Argument[],
 |  | const int | ArgSize |
 | ) |  |  | [static]

MacroコマンドをCEditViewHandleCommandに引き渡す。

引数がないマクロを除き，マクロとHandleCommandでの対応をここで定義する必要がある．

引数:
pcEditView | [in] 操作対象EditView
Index | [in] 機能 ID
Argument | [in] 引数
ArgSize | [in] 引数の数

CMacro.cpp の 361 行で定義されています。

参照先 CShareData::AddToReplaceKeyArr(), CShareData::AddToSearchKeyArr(), auto_sprintf(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CheckRegexpSyntax(), CODE_AUTODETECT, CODE_DEFAULT, CODE_SJIS, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, EOL_CR, EOL_CRLF, EOL_LF, EOL_NONE, F_ADDTAIL_W, F_BOOKMARK_PATTERN, 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_W, 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, F_WCHAR, FALSE, CEditView::GetCommander(), CShareData::getInstance(), CNativeA::GetStringPtr(), CViewCommander::HandleCommand(), IsValidCodeType(), IsValidCodeTypeExceptSJIS(), CommonSetting_Search::m_bAutoCloseDlgFind, CEditDoc::m_bBomExist, CommonSetting_Search::m_bConsecutiveAll, DLLSHAREDATA::m_bLineNumIsCRLF, CommonSetting_Search::m_bNOTIFYNOTFOUND, CDlgJump::m_bPLSQL, CommonSetting_Search::m_bSearchAll, CommonSetting_Search::m_bSelectedArea, CEditWnd::m_cDlgJump, CEditWnd::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, CEditDoc::m_pcEditWnd, CEditView::m_pShareData, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, MYMESSAGEBOX, NULL, CControlTray::OpenNewEditor(), CNativeA::Replace(), CNativeA::SetStringW(), と TRUE.

参照元 Exec(), MacroCommand(), と 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 の 869 行で定義されています。

参照先 CEditWnd::ChangeLayoutParam(), Variant::Data, EOL_CR, EOL_CRLF, EOL_LF, CEditDoc::ExpandParameter(), F_CHGTABWIDTH, F_EXPANDPARAMETER, F_GETCHARCODE, F_GETFILENAME, F_GETLINECODE, F_GETLINECOUNT, F_GETLINESTR, F_GETSELCOLMFROM, F_GETSELCOLMTO, F_GETSELECTED, F_GETSELLINEFROM, F_GETSELLINETO, F_ISINSMODE, F_ISPOSSIBLEREDO, F_ISPOSSIBLEUNDO, F_ISTEXTSELECTED, FALSE, CEditView::GetCaret(), CCaret::GetCaretLogicPos(), CEditDoc::GetFilePath(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CLayoutMgr::GetMaxLineKetas(), CEditDoc::GetNewLineCode(), CEditView::GetSelectedData(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CLayoutMgr::GetTabSpace(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsBoxSelecting(), CEditDoc::IsEnableRedo(), CEditDoc::IsEnableUndo(), CEditView::IsInsMode(), CViewSelect::IsTextSelected(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CEditDoc::m_nCharCode, CEditView::m_pcEditDoc, CEditDoc::m_pcEditWnd, CViewSelect::m_sSelect, NULL, Variant::Receive(), と Wrap().

参照元 CPPA::CallHandleFunction(), と MacroCommand().

変数

EFunctionCode CMacro::m_nFuncID [protected]

CMacro.h の 83 行で定義されています。

参照元 AddLParam(), CMacro(), Exec(), と Save().

CMacroParam* CMacro::m_pParamTop [protected]

CMacro.h の 84 行で定義されています。

参照元 AddIntParam(), AddStringParam(), CMacro(), Exec(), Save(), と ~CMacro().

CMacroParam* CMacro::m_pParamBot [protected]

CMacro.h の 85 行で定義されています。

参照元 AddIntParam(), AddStringParam(), と CMacro().

CMacro* CMacro::m_pNext [protected]

CMacro.h の 86 行で定義されています。

参照元 CMacro(), GetNext(), と SetNext().

このクラスの説明は次のファイルから生成されました:
  • CMacro.h
  • CMacro.cpp
Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacro メンバ一覧

これは全メンバの一覧です。CMacro継承メンバも含んでいます。

AddIntParam(const int lParam) | CMacro |
AddLParam(LPARAM lParam, const CEditView *pcEditView) | CMacro |
AddStringParam(const WCHAR *lParam) | CMacro |
AddStringParam(const ACHAR *lParam) | CMacro | [inline]
CMacro(EFunctionCode nFuncID) | CMacro |
Exec(CEditView *pcEditView) const | CMacro |
GetNext() | CMacro | [inline]
HandleCommand(CEditView *pcEditView, const EFunctionCode Index, const WCHAR *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, CTextOutputStream &out) const | CMacro |
SetNext(CMacro *pNext) | CMacro | [inline]
~CMacro() | CMacro |

Sakura-Editorに対してSat Nov 17 20:28:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CMacro::CMacroParam

  • 構成
  • クラス階層
  • 構成メンバ
CMacro::CMacroParam

構造体 CMacro::CMacroParam

#include <CMacro.h>

CMacro::CMacroParamのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

WCHAR * m_pData
CMacroParam * m_pNext

説明

CMacro.h の 75 行で定義されています。

変数

WCHAR* CMacro::CMacroParam::m_pData

CMacro.h の 76 行で定義されています。

参照元 CMacro::AddIntParam(), CMacro::AddStringParam(), CMacro::Exec(), CMacro::Save(), と CMacro::~CMacro().

CMacroParam* CMacro::CMacroParam::m_pNext

CMacro.h の 77 行で定義されています。

参照元 CMacro::AddIntParam(), CMacro::AddStringParam(), CMacro::Exec(), CMacro::Save(), と CMacro::~CMacro().

この構造体の説明は次のファイルから生成されました:
  • CMacro.h
Sakura-Editorに対してSat Nov 17 20:28:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacro::CMacroParam メンバ一覧

これは全メンバの一覧です。CMacro::CMacroParam継承メンバも含んでいます。

m_pData | CMacro::CMacroParam
m_pNext | CMacro::CMacroParam

Sakura-Editorに対してSat Nov 17 20:28:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMacroFactory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacroFactory

マクロHandler生成クラス [詳細]

#include <CMacroFactory.h>

すべてのメンバ一覧

Public 型

typedef CMacroManagerBase *(* | Creator )(const TCHAR *)

Public メソッド

bool | RegisterCreator (Creator)
bool | Unregister (Creator)
CMacroManagerBase * | Create (const TCHAR *ext)

Static Public メソッド

static CMacroFactory * | Instance ()

Private 型

typedef std::list< Creator > | MacroEngineRep

Private メソッド

CMacroFactory ()
std::tstring | Ext2Key (const TCHAR *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 TCHAR *)

typedef std::list<Creator> CMacroFactory::MacroEngineRep [private]

CMacroFactory.h の 78 行で定義されています。

コンストラクタとデストラクタ

CMacroFactory::CMacroFactory ( ) [private]

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

関数

bool CMacroFactory::RegisterCreator ( Creator f )

Creatorの登録

拡張子の対応を初期に登録しないCreatorを登録する． ただし，一旦対応がわかったら次回以降は対応表が使われる．

引数:
f [in] 登録するFactory関数
参照:
CMacroFactory::RegisterExts
日付:
2002.08.25 genta 追加

CMacroFactory.cpp の 75 行で定義されています。

参照先 m_mMacroCreators, と NULL.

参照元 CWSHMacroManager::declare(), CPPAMacroMgr::declare(), と CKeyMacroMgr::declare().

bool CMacroFactory::Unregister ( Creator f )

Creatorの登録解除

引数:
f [in] 登録解除するCreator

CMacroFactory.cpp の 90 行で定義されています。

参照先 m_mMacroCreators.

CMacroManagerBase * CMacroFactory::Create ( const TCHAR * ext )

CMacroFactory.cpp の 122 行で定義されています。

参照先 DBPRINT_A, Ext2Key(), m_mMacroCreators, NULL, と tstring.

参照元 CSMacroMgr::Load().

CMacroFactory * CMacroFactory::Instance ( void ) [static]

SingletonのためのInstance取得関数。

Scott MeyersのSingleton

CMacroFactory.cpp の 144 行で定義されています。

参照元 CWSHMacroManager::declare(), CPPAMacroMgr::declare(), CKeyMacroMgr::declare(), と CSMacroMgr::Load().

std::tstring CMacroFactory::Ext2Key ( const TCHAR * ext ) [private]

与えられた拡張子をmapのkeyに変換する

引数:
ext [in] 拡張子
Rule
  • NULLは""にする。
  • アルファベットは小文字に統一

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

参照先 NULL, NULSTR, と tstring.

参照元 Create().

変数

MacroEngineRep CMacroFactory::m_mMacroCreators [private]

Creatorリスト

日付:
2002.08.25 genta 追加

CMacroFactory.h の 87 行で定義されています。

参照元 Create(), RegisterCreator(), と Unregister().

このクラスの説明は次のファイルから生成されました:
  • CMacroFactory.h
  • CMacroFactory.cpp
Sakura-Editorに対してSat Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacroFactory メンバ一覧

これは全メンバの一覧です。CMacroFactory継承メンバも含んでいます。

CMacroFactory() | CMacroFactory | [private]
Create(const TCHAR *ext) | CMacroFactory |
Creator typedef | CMacroFactory |
Ext2Key(const TCHAR *ext) | CMacroFactory | [private]
Instance() | CMacroFactory | [static]
m_mMacroCreators | CMacroFactory | [private]
MacroEngineRep typedef | CMacroFactory | [private]
RegisterCreator(Creator) | CMacroFactory |
Unregister(Creator) | CMacroFactory |

Sakura-Editorに対してSat Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMacroManagerBase

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacroManagerBase

マクロを処理するエンジン部分の基底クラス [詳細]

#include <CMacroManagerBase.h>

CMacroManagerBaseに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual void | ExecKeyMacro (class CEditView *pcEditView) const =0
virtual BOOL | LoadKeyMacro (HINSTANCE hInstance, const TCHAR *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().

virtual BOOL CMacroManagerBase::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const TCHAR * | pszPath |
 | ) |  |  | [pure virtual]

キーボードマクロを読み込む

引数:
hInstance | [in]
pszPath | [in] ファイル名

CKeyMacroMgr, CPPAMacroMgr, と CWSHMacroManagerで実装されています。

bool CMacroManagerBase::IsReady ( ) [inline]

Load済みかどうか

戻り値:
true | Load済み
false | 未Load

CMacroManagerBase.h の 74 行で定義されています。

参照先 m_nReady.

変数

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 Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacroManagerBase メンバ一覧

これは全メンバの一覧です。CMacroManagerBase継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
ExecKeyMacro(class CEditView *pcEditView) const =0 | CMacroManagerBase | [pure virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const TCHAR *pszPath)=0 | CMacroManagerBase | [pure virtual]
m_nReady | CMacroManagerBase | [protected]
~CMacroManagerBase() | CMacroManagerBase | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMainStatusBar

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMainStatusBar

#include <CMainStatusBar.h>

CMainStatusBarのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMainStatusBar (CEditWnd *pOwner)
void | CreateStatusBar (void)
void | DestroyStatusBar (void)
void | SendStatusMessage2 (const TCHAR *msg)
メッセージの表示
bool | SendStatusMessage2IsEffective (void) const
HWND | GetStatusHwnd () const
HWND | GetProgressHwnd () const
void | SetStatusText (int nIndex, int nOption, const TCHAR *pszText)

Private 変数

CEditWnd * m_pOwner
HWND | m_hwndStatusBar
HWND | m_hwndProgressBar

説明

CMainStatusBar.h の 5 行で定義されています。

コンストラクタとデストラクタ

CMainStatusBar::CMainStatusBar ( CEditWnd * pOwner )

CMainStatusBar.cpp の 6 行で定義されています。

関数

void CMainStatusBar::CreateStatusBar ( void )

CMainStatusBar.cpp の 16 行で定義されています。

参照先 CSplitterWnd::DoSplit(), FALSE, CEditApp::GetAppInstance(), CWnd::GetHwnd(), CEditWnd::GetHwnd(), IDW_STATUSBAR, TSingleInstance< CEditApp >::Instance(), CEditWnd::m_CFuncKeyWnd, CEditWnd::m_cSplitterWnd, m_hwndProgressBar, m_hwndStatusBar, m_pOwner, NULL, と CFuncKeyWnd::SizeBox_ONOFF().

参照元 CEditWnd::LayoutStatusBar().

void CMainStatusBar::DestroyStatusBar ( void )

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

参照先 BOOL, CSplitterWnd::DoSplit(), FALSE, GetDllShareData(), CWnd::GetHwnd(), CEditWnd::m_CFuncKeyWnd, DLLSHAREDATA::m_Common, CEditWnd::m_cSplitterWnd, m_hwndProgressBar, m_hwndStatusBar, CommonSetting_Window::m_nFUNCKEYWND_Place, m_pOwner, CommonSetting::m_sWindow, NULL, CFuncKeyWnd::SizeBox_ONOFF(), と TRUE.

参照元 CEditWnd::LayoutStatusBar().

void CMainStatusBar::SendStatusMessage2 ( const TCHAR * msg )

メッセージの表示

指定されたメッセージをステータスバーに表示する． メニューバー右端に入らないものや，桁位置表示を隠したくないものに使う

呼び出し前にSendStatusMessage2IsEffective()で処理の有無を 確認することで無駄な処理を省くことが出来る．

引数:
msg [in] 表示するメッセージ
日付:
2005.07.09 genta 新規作成
参照:
SendStatusMessage2IsEffective

CMainStatusBar.cpp の 99 行で定義されています。

参照先 m_hwndStatusBar, NULL, と ApiWrap::StatusBar_SetText().

参照元 CViewSelect::PrintSelectionInfoMsg().

bool CMainStatusBar::SendStatusMessage2IsEffective ( void ) const [inline]

SendStatusMessage2()が効き目があるかを予めチェック

日付:
2005.07.09 genta
覚え書き:
もしSendStatusMessage2()でステータスバー表示以外の処理を追加 する場合にはここを変更しないと新しい場所への出力が行われない．
参照:
SendStatusMessage2

CMainStatusBar.h の 19 行で定義されています。

参照先 m_hwndStatusBar, と NULL.

参照元 CViewSelect::PrintSelectionInfoMsg().

HWND CMainStatusBar::GetStatusHwnd ( ) const [inline]

CMainStatusBar.h の 24 行で定義されています。

参照先 m_hwndStatusBar.

参照元 CViewCommander::Command_SHOWSTATUSBAR(), CEditWnd::DispatchEvent(), CSplitterWnd::DoSplit(), CCaret::DrawCaretPosInfo(), CEditWnd::EndLayoutBars(), CEditWnd::InitMenu(), IsFuncChecked(), CEditWnd::LayoutFuncKey(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CEditWnd::PrintPreviewModeONOFF(), と CEditWnd::SendStatusMessage().

HWND CMainStatusBar::GetProgressHwnd ( ) const [inline]

CMainStatusBar.h の 25 行で定義されています。

参照先 m_hwndProgressBar.

参照元 CEditWnd::ChangeLayoutParam(), CViewCommander::Command_PUTFILE(), CEditDoc::FileRead(), CEditDoc::FileWrite(), と CEditDoc::OnChangeSetting().

void CMainStatusBar::SetStatusText | ( | int | nIndex,
 |  | int | nOption,
 |  | const TCHAR * | pszText
 | ) |  |

CMainStatusBar.cpp の 108 行で定義されています。

参照先 m_hwndStatusBar, と ApiWrap::StatusBar_SetText().

参照元 CEditWnd::DispatchEvent(), CEditWnd::OnSize(), と CEditWnd::SendStatusMessage().

変数

CEditWnd* CMainStatusBar::m_pOwner [private]

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

参照元 CreateStatusBar(), と DestroyStatusBar().

HWND CMainStatusBar::m_hwndStatusBar [private]

CMainStatusBar.h の 32 行で定義されています。

参照元 CreateStatusBar(), DestroyStatusBar(), GetStatusHwnd(), SendStatusMessage2(), SendStatusMessage2IsEffective(), と SetStatusText().

HWND CMainStatusBar::m_hwndProgressBar [private]

CMainStatusBar.h の 33 行で定義されています。

参照元 CreateStatusBar(), DestroyStatusBar(), と GetProgressHwnd().

このクラスの説明は次のファイルから生成されました:
  • CMainStatusBar.h
  • CMainStatusBar.cpp
Sakura-Editorに対してSat Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMainStatusBar メンバ一覧

これは全メンバの一覧です。CMainStatusBar継承メンバも含んでいます。

CMainStatusBar(CEditWnd *pOwner) | CMainStatusBar |
CreateStatusBar(void) | CMainStatusBar |
DestroyStatusBar(void) | CMainStatusBar |
GetProgressHwnd() const | CMainStatusBar | [inline]
GetStatusHwnd() const | CMainStatusBar | [inline]
m_hwndProgressBar | CMainStatusBar | [private]
m_hwndStatusBar | CMainStatusBar | [private]
m_pOwner | CMainStatusBar | [private]
SendStatusMessage2(const TCHAR *msg) | CMainStatusBar |
SendStatusMessage2IsEffective(void) const | CMainStatusBar | [inline]
SetStatusText(int nIndex, int nOption, const TCHAR *pszText) | CMainStatusBar |

Sakura-Editorに対してSat Nov 17 20:28:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMainToolBar

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMainToolBar

#include <CMainToolBar.h>

CMainToolBarのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMainToolBar (CEditWnd *pOwner)
void | CreateToolBar (void)
ツールバー作成
void | DestroyToolBar (void)
ツールバー破棄
bool | EatMessage (MSG *msg)
メッセージ処理。なんか処理したなら true を返す。
void | ProcSearchBox (MSG *)
検索コンボボックスのメッセージ処理
void | OnToolbarTimer (void)
タイマーの処理 20060128 aroka
LPARAM | ToolBarOwnerDraw (LPNMCUSTOMDRAW pnmh)
ToolBarのOwnerDraw
void | AcceptSharedSearchKey ()
HWND | GetToolbarHwnd () const
HWND | GetRebarHwnd () const
HWND | GetSearchHwnd () const
int | GetSearchKey (wchar_t *pBuf, int nBufCount)
検索キーを取得。戻り値は検索キーの文字数。
void | SetFocusSearchBox (void) const

Private 変数

CEditWnd * m_pOwner
HWND | m_hwndToolBar
HWND | m_hwndReBar
Rebar ウィンドウ //@@ 2006.06.17 ryoji
HWND | m_hwndSearchBox
検索コンボボックス
HFONT | m_fontSearchBox
検索コンボボックスのフォント

説明

CMainToolBar.h の 5 行で定義されています。

コンストラクタとデストラクタ

CMainToolBar::CMainToolBar ( CEditWnd * pOwner )

CMainToolBar.cpp の 8 行で定義されています。

関数

void CMainToolBar::CreateToolBar ( void )

ツールバー作成

CMainToolBar.cpp の 83 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), ApiWrap::Combo_AddString(), DestroyToolBar(), F_SEARCH_BOX, FALSE, g_pOldToolBarWndProc, CEditApp::GetAppInstance(), CMenuDrawer::getButton(), GetDllShareData(), CEditWnd::GetHwnd(), CEditApp::GetIcons(), CEditWnd::GetMenuDrawer(), GSTR_APPNAME, GWLP_WNDPROC, ID_TOOLBAR, TSingleInstance< CEditApp >::Instance(), INT_PTR, IsVisualStyle(), LONG_PTR, DLLSHAREDATA::m_aSearchKeys, CommonSetting_ToolBar::m_bToolBarIsFlat, DLLSHAREDATA::m_Common, m_fontSearchBox, m_hwndReBar, m_hwndSearchBox, m_hwndToolBar, CommonSetting_ToolBar::m_nToolBarButtonIdxArr, CommonSetting_ToolBar::m_nToolBarButtonNum, m_pOwner, CommonSetting::m_sToolBar, memset_raw(), MYMESSAGEBOX, NULL, PreventVisualStyle(), SendMessageAny, CEditWnd::SetCurrentFocus(), CImageListMgr::SetToolBarImages(), SetWindowLongPtr, TB_SETEXTENDEDSTYLE, TBSTYLE_COMBOBOX, TBSTYLE_DROPDOWN, TBSTYLE_EX_DRAWDDARROWS, TBSTYLE_FLAT, ToolBarWndProc(), と TRUE.

参照元 CEditWnd::LayoutToolBar().

void CMainToolBar::DestroyToolBar ( void )

ツールバー破棄

CMainToolBar.cpp の 345 行で定義されています。

参照先 m_fontSearchBox, m_hwndReBar, m_hwndSearchBox, m_hwndToolBar, m_pOwner, NULL, と CEditWnd::SetCurrentFocus().

参照元 CreateToolBar(), CEditWnd::DispatchEvent(), と CEditWnd::LayoutToolBar().

bool CMainToolBar::EatMessage ( MSG * msg )

メッセージ処理。なんか処理したなら true を返す。

CMainToolBar.cpp の 381 行で定義されています。

参照先 m_hwndSearchBox, と ProcSearchBox().

参照元 CEditWnd::MessageLoop().

void CMainToolBar::ProcSearchBox ( MSG * msg )

検索コンボボックスのメッセージ処理

検索ボックスでの処理

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

参照先 _countof, _MAX_PATH, CShareData::AddToSearchKeyArr(), F_SEARCH_NEXT, CEditWnd::GetActiveView(), CEditView::GetCaret(), CCaret::GetCaretLogicPos(), CEditWnd::GetHwnd(), CShareData::getInstance(), CEditView::m_hWnd, m_hwndSearchBox, m_pOwner, CEditView::m_ptSrchStartPos_PHY, と CEditWnd::OnCommand().

参照元 EatMessage().

void CMainToolBar::OnToolbarTimer ( void )

タイマーの処理 20060128 aroka

ツールバー更新用タイマーの処理

日付:
2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。

2003.08.29 wmlhq, ryoji nTimerCountの導入

2006.01.28 aroka OnTimerから分離

2007.04.03 ryoji パラメータ無しにした

CMainToolBar.cpp の 452 行で定義されています。

参照先 CMenuDrawer::getButton(), GetDllShareData(), CEditWnd::GetDocument(), CEditWnd::GetMenuDrawer(), CEditWnd::IncrementTimerCount(), IsFuncChecked(), IsFuncEnable(), CEditWnd::IsInPreviewMode(), DLLSHAREDATA::m_Common, m_hwndToolBar, CommonSetting_ToolBar::m_nToolBarButtonNum, m_pOwner, CommonSetting::m_sToolBar, と PostMessageAny.

参照元 CEditWnd::OnTimer().

LPARAM CMainToolBar::ToolBarOwnerDraw ( LPNMCUSTOMDRAW pnmh )

ToolBarのOwnerDraw

引数:
pnmh [in] Owner Draw情報
覚え書き:
Common Control V4.71以降はNMTBCUSTOMDRAWを送ってくるが， Common Control V4.70はLPNMCUSTOMDRAWしか送ってこないので 安全のため小さい方に合わせて処理を行う．
作者:
genta
日付:
2003.07.21 作成

CMainToolBar.cpp の 403 行で定義されています。

参照先 CImageListMgr::cy(), CImageListMgr::Draw(), CMenuDrawer::FindIndexFromCommandId(), CMenuDrawer::GetIconId(), CEditApp::GetIcons(), CEditWnd::GetMenuDrawer(), TSingleInstance< CEditApp >::Instance(), と m_pOwner.

参照元 CEditWnd::DispatchEvent().

void CMainToolBar::AcceptSharedSearchKey ( )

CMainToolBar.cpp の 487 行で定義されています。

参照先 ApiWrap::Combo_AddString(), GetDllShareData(), DLLSHAREDATA::m_aSearchKeys, m_hwndSearchBox, と SendMessageAny.

参照元 CEditWnd::DispatchEvent().

HWND CMainToolBar::GetToolbarHwnd ( ) const [inline]

CMainToolBar.h の 27 行で定義されています。

参照先 m_hwndToolBar.

参照元 CViewCommander::Command_SHOWTOOLBAR(), CEditWnd::DispatchEvent(), CEditWnd::EndLayoutBars(), CEditWnd::InitMenu(), IsFuncChecked(), CEditWnd::OnSize(), と CEditWnd::PrintPreviewModeONOFF().

HWND CMainToolBar::GetRebarHwnd ( ) const [inline]

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

参照先 m_hwndReBar.

参照元 CEditWnd::DispatchEvent(), CEditWnd::EndLayoutBars(), CEditWnd::OnSize(), と CEditWnd::PrintPreviewModeONOFF().

HWND CMainToolBar::GetSearchHwnd ( ) const [inline]

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

参照先 m_hwndSearchBox.

参照元 CEditWnd::OnCommand().

int CMainToolBar::GetSearchKey | ( | wchar_t * | pBuf,
 |  | int | nBufCount
 | ) |  |

検索キーを取得。戻り値は検索キーの文字数。

CMainToolBar.cpp の 501 行で定義されています。

参照先 m_hwndSearchBox.

参照元 CEditWnd::OnCommand().

void CMainToolBar::SetFocusSearchBox ( void ) const

ツールバーの検索ボックスにフォーカスを移動する.

日付:
2006.06.04 yukihane 新規作成

CMainToolBar.cpp の 516 行で定義されています。

参照先 m_hwndSearchBox.

参照元 CViewCommander::Command_SEARCH_BOX().

変数

CEditWnd* CMainToolBar::m_pOwner [private]

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

参照元 CreateToolBar(), DestroyToolBar(), OnToolbarTimer(), ProcSearchBox(), と ToolBarOwnerDraw().

HWND CMainToolBar::m_hwndToolBar [private]

CMainToolBar.h の 37 行で定義されています。

参照元 CreateToolBar(), DestroyToolBar(), GetToolbarHwnd(), と OnToolbarTimer().

HWND CMainToolBar::m_hwndReBar [private]

Rebar ウィンドウ //@@ 2006.06.17 ryoji

CMainToolBar.h の 40 行で定義されています。

参照元 CreateToolBar(), DestroyToolBar(), と GetRebarHwnd().

HWND CMainToolBar::m_hwndSearchBox [private]

検索コンボボックス

CMainToolBar.h の 41 行で定義されています。

参照元 AcceptSharedSearchKey(), CreateToolBar(), DestroyToolBar(), EatMessage(), GetSearchHwnd(), GetSearchKey(), ProcSearchBox(), と SetFocusSearchBox().

HFONT CMainToolBar::m_fontSearchBox [private]

検索コンボボックスのフォント

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

参照元 CreateToolBar(), と DestroyToolBar().

このクラスの説明は次のファイルから生成されました:
  • CMainToolBar.h
  • CMainToolBar.cpp
Sakura-Editorに対してSat Nov 17 20:28:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMainToolBar メンバ一覧

これは全メンバの一覧です。CMainToolBar継承メンバも含んでいます。

AcceptSharedSearchKey() | CMainToolBar |
CMainToolBar(CEditWnd *pOwner) | CMainToolBar |
CreateToolBar(void) | CMainToolBar |
DestroyToolBar(void) | CMainToolBar |
EatMessage(MSG *msg) | CMainToolBar |
GetRebarHwnd() const | CMainToolBar | [inline]
GetSearchHwnd() const | CMainToolBar | [inline]
GetSearchKey(wchar_t *pBuf, int nBufCount) | CMainToolBar |
GetToolbarHwnd() const | CMainToolBar | [inline]
m_fontSearchBox | CMainToolBar | [private]
m_hwndReBar | CMainToolBar | [private]
m_hwndSearchBox | CMainToolBar | [private]
m_hwndToolBar | CMainToolBar | [private]
m_pOwner | CMainToolBar | [private]
OnToolbarTimer(void) | CMainToolBar |
ProcSearchBox(MSG *) | CMainToolBar |
SetFocusSearchBox(void) const | CMainToolBar |
ToolBarOwnerDraw(LPNMCUSTOMDRAW pnmh) | CMainToolBar |

Sakura-Editorに対してSat Nov 17 20:28:32 2007に生成されました。 doxygen 1.5.4


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 の 88 行で定義されています。

typedef std::vector<CMark>::const_iterator CMarkMgr::CMarkIterator

CMarkMgr.h の 89 行で定義されています。

コンストラクタとデストラクタ

CMarkMgr::CMarkMgr ( ) [inline]

CMarkMgr.h の 93 行で定義されています。

関数

int CMarkMgr::Count ( void ) const [inline]

項目数を返す

CMarkMgr.h の 96 行で定義されています。

参照先 m_cMarkChain.

参照元 CheckCurrent(), CheckNext(), と NextValid().

int CMarkMgr::GetMax ( void ) const [inline]

最大項目数を返す

CMarkMgr.h の 97 行で定義されています。

参照先 m_nMaxitem.

参照元 CAutoMarkMgr::Expire().

void CMarkMgr::SetMax ( int max )

最大項目数を設定

保管する最大件数を指定する。

現在より小さい値を設定したときは余分な要素は削除される。

引数:
max 設定する最大件数

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

参照先 Expire(), と m_nMaxitem.

参照元 CEditView::Create().

virtual void CMarkMgr::Add ( const CMark & m ) [pure virtual]

要素の追加

CAutoMarkMgrで実装されています。

void CMarkMgr::Flush ( void ) [virtual]

要素の全消去

現在のデータを全て消去し、現在位置のポインタをリセットする。

history
Apr. 1, 2001 genta 新規追加

CMarkMgr.cpp の 136 行で定義されています。

参照先 m_cMarkChain, と m_nCurpos.

参照元 CEditDoc::InitAllView().

const CMark& CMarkMgr::GetCurrent ( void ) const [inline]

要素の取得

CMarkMgr.h の 106 行で定義されています。

参照先 m_cMarkChain, と m_nCurpos.

参照元 CViewCommander::Command_JUMPHIST_NEXT(), と CViewCommander::Command_JUMPHIST_PREV().

bool CMarkMgr::CheckCurrent ( void ) const

現在位置の要素が有効かどうかの判定

戻り値:
true | 有効
false | 無効

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

参照先 Count(), m_cMarkChain, と m_nCurpos.

bool CMarkMgr::CheckPrev ( void ) const

現在位置の前に有効な要素があるかどうかを調べる

戻り値:
true | 有る
false | 無い

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

参照先 m_cMarkChain, と m_nCurpos.

参照元 CViewCommander::Command_JUMPHIST_PREV(), と IsFuncEnable().

bool CMarkMgr::CheckNext ( void ) const

現在位置の後に有効な要素があるかどうかを調べる

戻り値:
true | 有る
false | 無い

CMarkMgr.cpp の 87 行で定義されています。

参照先 Count(), m_cMarkChain, と m_nCurpos.

参照元 CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), と IsFuncEnable().

bool CMarkMgr::NextValid ( void )

現在位置を後の有効な位置まで進める

戻り値:
true | 正常終了。現在位置は1つ後の有効な要素に移動した。
false | 有効な要素が見つからなかった。現在位置は移動していない。

CMarkMgr.cpp の 118 行で定義されています。

参照先 Count(), m_cMarkChain, と m_nCurpos.

参照元 CViewCommander::Command_JUMPHIST_NEXT().

bool CMarkMgr::PrevValid ( void )

現在位置を前の有効な位置まで進める

戻り値:
true | 正常終了。現在位置は1つ前の有効な要素に移動した。
false | 有効な要素が見つからなかった。現在位置は移動していない。

CMarkMgr.cpp の 102 行で定義されています。

参照先 m_cMarkChain, と m_nCurpos.

参照元 CViewCommander::Command_JUMPHIST_PREV().

const CMark& CMarkMgr::operator[] ( int index ) const [inline]

CMarkMgr.h の 117 行で定義されています。

参照先 m_cMarkChain.

virtual void CMarkMgr::Expire ( void ) [protected, pure virtual]

CAutoMarkMgrで実装されています。

参照元 SetMax().

変数

CMarkChain CMarkMgr::m_cMarkChain [protected]

CMarkMgr.h の 128 行で定義されています。

参照元 CAutoMarkMgr::Add(), CheckCurrent(), CheckNext(), CheckPrev(), Count(), CAutoMarkMgr::Expire(), Flush(), GetCurrent(), NextValid(), operator[](), と PrevValid().

int CMarkMgr::m_nCurpos [protected]

CMarkMgr.h の 129 行で定義されています。

参照元 CAutoMarkMgr::Add(), CheckCurrent(), CheckNext(), CheckPrev(), CAutoMarkMgr::Expire(), Flush(), GetCurrent(), NextValid(), と PrevValid().

int CMarkMgr::m_nMaxitem [protected]

CMarkMgr.h の 131 行で定義されています。

参照元 GetMax(), と SetMax().

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
  • CMarkMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:35 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMarkMgr::CMark

  • 構成
  • クラス階層
  • 構成メンバ
CMarkMgr::CMark

クラス CMarkMgr::CMark

#include <CMarkMgr.h>

CMarkMgr::CMarkのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMark (const CLogicPoint &pt)
int | GetLine (void) const
int | GetPos (void) const
void | SetPosition (const CLogicPoint &pt)
bool | IsValid (void) const
bool | operator== (CMark &r) const
bool | operator!= (CMark &r) const

Private 変数

CLogicPoint m_ptLogic

説明

CMarkMgr.h の 63 行で定義されています。

コンストラクタとデストラクタ

CMarkMgr::CMark::CMark ( const CLogicPoint & pt ) [inline]

CMarkMgr.h の 66 行で定義されています。

関数

int CMarkMgr::CMark::GetLine ( void ) const [inline]

CMarkMgr.h の 68 行で定義されています。

参照先 m_ptLogic.

int CMarkMgr::CMark::GetPos ( void ) const [inline]

CMarkMgr.h の 69 行で定義されています。

参照先 m_ptLogic.

void CMarkMgr::CMark::SetPosition ( const CLogicPoint & pt ) [inline]

CMarkMgr.h の 70 行で定義されています。

参照先 m_ptLogic.

bool CMarkMgr::CMark::IsValid ( void ) const [inline]

CMarkMgr.h の 72 行で定義されています。

bool CMarkMgr::CMark::operator== ( CMark & r ) const [inline]

CMarkMgr.h の 74 行で定義されています。

参照先 m_ptLogic.

bool CMarkMgr::CMark::operator!= ( CMark & r ) const [inline]

CMarkMgr.h の 75 行で定義されています。

参照先 m_ptLogic.

変数

CLogicPoint CMarkMgr::CMark::m_ptLogic [private]

CMarkMgr.h の 78 行で定義されています。

参照元 GetLine(), GetPos(), operator!=(), operator==(), と SetPosition().

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
Sakura-Editorに対してSat Nov 17 20:28:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMarkMgr::CMark メンバ一覧

これは全メンバの一覧です。CMarkMgr::CMark継承メンバも含んでいます。

CMark(const CLogicPoint &pt) | CMarkMgr::CMark | [inline]
GetLine(void) const | CMarkMgr::CMark | [inline]
GetPos(void) const | CMarkMgr::CMark | [inline]
IsValid(void) const | CMarkMgr::CMark | [inline]
m_ptLogic | CMarkMgr::CMark | [private]
operator!=(CMark &r) const | CMarkMgr::CMark | [inline]
operator==(CMark &r) const | CMarkMgr::CMark | [inline]
SetPosition(const CLogicPoint &pt) | CMarkMgr::CMark | [inline]

Sakura-Editorに対してSat Nov 17 20:28:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMemory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMemory

メモリバッファクラス [詳細]

#include <CMemory.h>

CMemoryに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

CMemory ()
CMemory (const void *pData, int nDataLenBytes)
~CMemory ()
void | AllocBuffer (int)
バッファサイズの調整。必要に応じて拡大する。
void | SetRawData (const void *pData, int nDataLen)
バッファの内容を置き換える
void | SetRawData (const CMemory &)
バッファの内容を置き換える
void | AppendRawData (const void *pData, int nDataLen)
バッファの最後にデータを追加する
void | AppendRawData (const CMemory *)
バッファの最後にデータを追加する
void | Clean ()
void | Clear ()
__forceinline const void * | GetRawPtr (int *pnLength) const
データへのポインタと長さ返す
__forceinline void * | GetRawPtr (int *pnLength)
データへのポインタと長さ返す
__forceinline const void * | GetRawPtr () const
データへのポインタを返す
__forceinline void * | GetRawPtr ()
データへのポインタを返す
int | GetRawLength () const
データ長を返す。バイト単位。
const CMemory & | operator= (const CMemory &)
void | SwapHLByte ()
void | _AppendSz (const char *str)
void | _SetRawLength (int nLength)

Static Public メソッド

static int | IsEqual (CMemory &, CMemory &)

Protected 型

typedef char * | PCHAR

Protected メソッド

void | _Empty (void)
解放する。m_pDataはNULLになる。
void | _AddData (const void *, int)
PCHAR & _DebugGetPointerRef ()

Private 変数

int | m_nDataBufSize
char * | m_pData
int | m_nDataLen

説明

メモリバッファクラス

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

型定義

typedef char* CMemory::PCHAR [protected]

CMemory.h の 99 行で定義されています。

コンストラクタとデストラクタ

CMemory::CMemory ( )

CMemory.cpp の 68 行で定義されています。

CMemory::CMemory | ( | const void * | pData,
 |  | int | nDataLenBytes
 | ) |  |

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

CMemory::~CMemory ( )

CMemory.cpp の 108 行で定義されています。

関数

void CMemory::AllocBuffer ( int nNewDataLen )

バッファサイズの調整。必要に応じて拡大する。

CMemory.cpp の 265 行で定義されています。

参照先 _Empty(), GSTR_APPNAME_A, m_nDataBufSize, m_pData, malloc_char, MYMESSAGEBOX_A, と NULL.

参照元 _AppendSz(), CNativeW::AllocStringBuffer(), CNativeA::AllocStringBuffer(), AppendRawData(), CCodeMediator::CheckKanjiCodeOfFile(), SetRawData(), CJis::StrSJIStoJIS(), と CUtf8::UnicodeToUTF8().

void CMemory::SetRawData | ( | const void * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの内容を置き換える

CMemory.cpp の 305 行で定義されています。

参照先 _AddData(), _Empty(), と AllocBuffer().

参照元 CConvert_Base64Decode::BASE64Decode(), CNative::Clear(), CEuc::EUCToSJIS(), CJis::JIStoSJIS(), LimitStringLengthB(), CNativeA::operator=(), operator=(), CFileLoad::ReadLine(), CNativeW::SetNativeData(), CNativeA::SetNativeData(), CNativeW::SetString(), CNativeA::SetString(), CNativeW::SetStringOld(), CEuc::SJISToEUC(), CJis::SJIStoJIS(), CShiftJis::SJISToUnicode(), CNativeA::SPACEToTAB(), CJis::StrSJIStoJIS(), CNativeA::TABToSPACE(), CNativeA::ToZenkaku(), CShiftJis::UnicodeToSJIS(), CUtf7::UnicodeToUTF7(), CUtf7::UTF7ToUnicode(), と CConvert_UuDecode::UUDECODE().

void CMemory::SetRawData ( const CMemory & pcmemData )

バッファの内容を置き換える

CMemory.cpp の 314 行で定義されています。

参照先 _AddData(), _Empty(), AllocBuffer(), と GetRawPtr().

void CMemory::AppendRawData | ( | const void * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの最後にデータを追加する

CMemory.cpp の 327 行で定義されています。

参照先 _AddData(), AllocBuffer(), と m_nDataLen.

参照元 AppendRawData(), CNativeW::AppendString(), CNativeA::AppendString(), CConvert_Base64Decode::BASE64Decode(), CFileLoad::ReadLine(), CTextInputStream::ReadLineW(), CJis::StrSJIStoJIS(), CConvert_UuDecode::UUDECODE(), と CDocLineMgr::WriteFile().

void CMemory::AppendRawData ( const CMemory * pcmemData )

バッファの最後にデータを追加する

CMemory.cpp の 334 行で定義されています。

参照先 _AddData(), AllocBuffer(), AppendRawData(), GetRawPtr(), と m_nDataLen.

void CMemory::Clean ( ) [inline]

CMemory.h の 62 行で定義されています。

参照元 CUtf8::UnicodeToUTF8().

void CMemory::Clear ( ) [inline]

CNativeで再定義されています。

CMemory.h の 63 行で定義されています。

__forceinline const void * CMemory::GetRawPtr ( int * pnLength ) const

データへのポインタと長さ返す

< データへのポインタと長さ返す

CMemory.h の 118 行で定義されています。

参照元 AppendRawData(), CConvert_Base64Decode::BASE64Decode(), CCodeMediator::CheckKanjiCodeOfFile(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_UUDECODE(), CEuc::EUCToSJIS(), CClipboard::GetText(), IsEqual(), CJis::JIStoSJIS(), CTextInputStream::ReadLineW(), SetRawData(), CEditView::SetReconvertStruct(), CEuc::SJISToEUC(), CJis::SJIStoJIS(), CShiftJis::SJISToUnicode(), CShiftJis::UnicodeToSJIS(), CUtf7::UnicodeToUTF7(), CUtf8::UnicodeToUTF8(), CUtf7::UTF7ToUnicode(), CUtf8::UTF8ToUnicode(), CConvert_UuDecode::UUDECODE(), と CDocLineMgr::WriteFile().

__forceinline void * CMemory::GetRawPtr ( int * pnLength )

データへのポインタと長さ返す

引数:
pnLength データへのポインタと長さ返す

CMemory.h の 123 行で定義されています。

参照先 GetRawLength(), と m_pData.

__forceinline const void* CMemory::GetRawPtr ( ) const [inline]

データへのポインタを返す

CMemory.h の 67 行で定義されています。

参照元 CNativeW::GetStringPtr(), CNativeA::GetStringPtr(), と SwapHLByte().

__forceinline void* CMemory::GetRawPtr ( ) [inline]

データへのポインタを返す

CMemory.h の 68 行で定義されています。

int CMemory::GetRawLength ( ) const [inline]

データ長を返す。バイト単位。

CMemory.h の 69 行で定義されています。

参照元 CConvert_Base64Decode::BASE64Decode(), CViewCommander::Command_PUTFILE(), GetRawPtr(), CNativeW::GetStringLength(), CNativeA::GetStringLength(), CJis::JIStoSJIS(), CFileLoad::ReadLine(), CEditView::SetReconvertStruct(), CJis::SJIStoJIS(), CJis::StrSJIStoJIS(), CConvert_UuDecode::UUDECODE(), と CDocLineMgr::WriteFile().

const CMemory & CMemory::operator= ( const CMemory & cMemory )

CMemory.cpp の 132 行で定義されています。

参照先 SetRawData().

int CMemory::IsEqual | ( | CMemory & | cmem1,
 |  | CMemory & | cmem2 |
 | ) |  |  | [static]

CMemory.cpp の 176 行で定義されています。

参照先 FALSE, GetRawPtr(), と TRUE.

void CMemory::SwapHLByte ( void )

CMemory.cpp の 218 行で定義されています。

参照先 GetRawPtr().

参照元 CUnicodeBe::UnicodeBEToUnicode(), と CUnicodeBe::UnicodeToUnicodeBE().

void CMemory::_Empty ( void ) [protected]

解放する。m_pDataはNULLになる。

CMemory.cpp の 346 行で定義されています。

参照先 m_nDataBufSize, m_nDataLen, m_pData, と NULL.

参照元 AllocBuffer(), と SetRawData().

void CMemory::_AddData | ( | const void * | pData,
 |  | int | nDataLen |
 | ) |  |  | [protected]

CMemory.cpp の 150 行で定義されています。

参照先 m_nDataLen, m_pData, と NULL.

参照元 _AppendSz(), AppendRawData(), と SetRawData().

void CMemory::_AppendSz ( const char * str )

CMemory.cpp の 360 行で定義されています。

参照先 _AddData(), AllocBuffer(), と m_nDataLen.

参照元 CJis::StrSJIStoJIS().

void CMemory::_SetRawLength ( int nLength )

CMemory.cpp の 368 行で定義されています。

参照先 assert, m_nDataBufSize, m_nDataLen, と m_pData.

参照元 CNativeW::_SetStringLength(), と CUtf8::UnicodeToUTF8().

PCHAR& CMemory::_DebugGetPointerRef ( ) [inline, protected]

CMemory.h の 100 行で定義されています。

変数

int CMemory::m_nDataBufSize [private]

CMemory.h の 106 行で定義されています。

参照元 _Empty(), _SetRawLength(), と AllocBuffer().

char* CMemory::m_pData [private]

CMemory.h の 107 行で定義されています。

参照元 _AddData(), _Empty(), _SetRawLength(), AllocBuffer(), と GetRawPtr().

int CMemory::m_nDataLen [private]

CMemory.h の 108 行で定義されています。

参照元 _AddData(), _AppendSz(), _Empty(), _SetRawLength(), と AppendRawData().

このクラスの説明は次のファイルから生成されました:
  • CMemory.h
  • CMemory.cpp
Sakura-Editorに対してSat Nov 17 20:28:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMemory メンバ一覧

これは全メンバの一覧です。CMemory継承メンバも含んでいます。

_AddData(const void *, int) | CMemory | [protected]
_AppendSz(const char *str) | CMemory |
_DebugGetPointerRef() | CMemory | [inline, protected]
_Empty(void) | CMemory | [protected]
_SetRawLength(int nLength) | CMemory |
AllocBuffer(int) | CMemory |
AppendRawData(const void *pData, int nDataLen) | CMemory |
AppendRawData(const CMemory *) | CMemory |
Clean() | CMemory | [inline]
Clear() | CMemory | [inline]
CMemory() | CMemory |
CMemory(const void *pData, int nDataLenBytes) | CMemory |
GetRawLength() const | CMemory | [inline]
GetRawPtr(int *pnLength) const | CMemory |
GetRawPtr(int *pnLength) | CMemory |
GetRawPtr() const | CMemory | [inline]
GetRawPtr() | CMemory | [inline]
IsEqual(CMemory &, CMemory &) | CMemory | [static]
m_nDataBufSize | CMemory | [private]
m_nDataLen | CMemory | [private]
m_pData | CMemory | [private]
operator=(const CMemory &) | CMemory |
PCHAR typedef | CMemory | [protected]
SetRawData(const void *pData, int nDataLen) | CMemory |
SetRawData(const CMemory &) | CMemory |
SwapHLByte() | CMemory |
~CMemory() | CMemory |

Sakura-Editorに対してSat Nov 17 20:28:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMemoryIterator

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMemoryIterator

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

#include <CMemoryIterator.h>

すべてのメンバ一覧

Public メソッド

CMemoryIterator (const CDocLine *pcT, CLayoutInt nTabSpace)
CMemoryIterator (const CLayout *pcT, CLayoutInt nTabSpace)
void | first ()
桁位置を行の先頭にセット
bool | end () const
void | scanNext ()
void | addDelta ()
CLogicInt | getIndex () const
CLayoutInt | getColumn () const
CLogicInt | getIndexDelta () const
CLayoutInt | getColumnDelta () const
const wchar_t | getCurrentChar ()
const wchar_t * | getCurrentPos ()

Private 変数

const wchar_t * | m_pLine
const int | m_nLineLen
const CLayoutInt | m_nTabSpace
const CLayoutInt | m_nIndent
CLogicInt m_nIndex
CLayoutInt m_nColumn
CLogicInt m_nIndex_Delta
CLayoutInt m_nColumn_Delta

説明

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

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

コンストラクタとデストラクタ

CMemoryIterator::CMemoryIterator | ( | const CDocLine * | pcT,
 |  | CLayoutInt | nTabSpace |
 | ) |  |  | [inline]

CMemoryIterator.h の 35 行で定義されています。

CMemoryIterator::CMemoryIterator | ( | const CLayout * | pcT,
 |  | CLayoutInt | nTabSpace |
 | ) |  |  | [inline]

CMemoryIterator.h の 45 行で定義されています。

関数

void CMemoryIterator::first ( ) [inline]

桁位置を行の先頭にセット

CMemoryIterator.h の 55 行で定義されています。

bool CMemoryIterator::end ( ) const [inline]

行末かどうか

戻り値:
true: 行末, false: 行末ではない

CMemoryIterator.h の 66 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CViewCalc::LineColmnToIndex(), CViewCalc::LineColmnToIndex2(), と CViewCalc::LineIndexToColmn().

void CMemoryIterator::scanNext ( ) [inline]

CMemoryIterator.h の 72 行で定義されています。

参照先 CNativeW::GetKetaOfChar(), CNativeW::GetSizeOfChar(), と WCODE::TAB.

参照元 CLayoutMgr::GetEndLayoutPos(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CViewCalc::LineColmnToIndex(), CViewCalc::LineColmnToIndex2(), と CViewCalc::LineIndexToColmn().

void CMemoryIterator::addDelta ( ) [inline]

予め計算した差分を桁位置に加える．

参照:
scanNext()

CMemoryIterator.h の 96 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CViewCalc::LineColmnToIndex(), CViewCalc::LineColmnToIndex2(), と CViewCalc::LineIndexToColmn().

CLogicInt CMemoryIterator::getIndex ( ) const [inline]

CMemoryIterator.h の 101 行で定義されています。

参照元 CViewCalc::LineColmnToIndex(), CViewCalc::LineColmnToIndex2(), と CViewCalc::LineIndexToColmn().

CLayoutInt CMemoryIterator::getColumn ( ) const [inline]

CMemoryIterator.h の 102 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos(), CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), CViewCalc::LineColmnToIndex(), CViewCalc::LineColmnToIndex2(), と CViewCalc::LineIndexToColmn().

CLogicInt CMemoryIterator::getIndexDelta ( ) const [inline]

CMemoryIterator.h の 103 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace(), CLayoutMgr::getIndentOffset_Tx2x(), と CViewCalc::LineIndexToColmn().

CLayoutInt CMemoryIterator::getColumnDelta ( ) const [inline]

CMemoryIterator.h の 104 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_Tx2x(), CViewCalc::LineColmnToIndex(), と CViewCalc::LineColmnToIndex2().

const wchar_t CMemoryIterator::getCurrentChar ( ) [inline]

CMemoryIterator.h の 107 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace(), と CLayoutMgr::getIndentOffset_Tx2x().

const wchar_t* CMemoryIterator::getCurrentPos ( ) [inline]

CMemoryIterator.h の 110 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace().

変数

const wchar_t* CMemoryIterator::m_pLine [private]

CMemoryIterator.h の 110 行で定義されています。

const int CMemoryIterator::m_nLineLen [private]

CMemoryIterator.h の 116 行で定義されています。

const CLayoutInt CMemoryIterator::m_nTabSpace [private]

CMemoryIterator.h の 117 行で定義されています。

const CLayoutInt CMemoryIterator::m_nIndent [private]

CMemoryIterator.h の 118 行で定義されています。

CLogicInt CMemoryIterator::m_nIndex [private]

CMemoryIterator.h の 121 行で定義されています。

CLayoutInt CMemoryIterator::m_nColumn [private]

CMemoryIterator.h の 122 行で定義されています。

CLogicInt CMemoryIterator::m_nIndex_Delta [private]

CMemoryIterator.h の 123 行で定義されています。

CLayoutInt CMemoryIterator::m_nColumn_Delta [private]

CMemoryIterator.h の 124 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CMemoryIterator.h
Sakura-Editorに対してSat Nov 17 20:28:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMemoryIterator メンバ一覧

これは全メンバの一覧です。CMemoryIterator継承メンバも含んでいます。

addDelta() | CMemoryIterator | [inline]
CMemoryIterator(const CDocLine *pcT, CLayoutInt nTabSpace) | CMemoryIterator | [inline]
CMemoryIterator(const CLayout *pcT, CLayoutInt nTabSpace) | CMemoryIterator | [inline]
end() const | CMemoryIterator | [inline]
first() | CMemoryIterator | [inline]
getColumn() const | CMemoryIterator | [inline]
getColumnDelta() const | CMemoryIterator | [inline]
getCurrentChar() | CMemoryIterator | [inline]
getCurrentPos() | CMemoryIterator | [inline]
getIndex() const | CMemoryIterator | [inline]
getIndexDelta() const | CMemoryIterator | [inline]
m_nColumn | CMemoryIterator | [private]
m_nColumn_Delta | CMemoryIterator | [private]
m_nIndent | CMemoryIterator | [private]
m_nIndex | CMemoryIterator | [private]
m_nIndex_Delta | CMemoryIterator | [private]
m_nLineLen | CMemoryIterator | [private]
m_nTabSpace | CMemoryIterator | [private]
m_pLine | CMemoryIterator | [private]
scanNext() | CMemoryIterator | [inline]

Sakura-Editorに対してSat Nov 17 20:28:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMenuDrawer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMenuDrawer

メニュー表示＆管理 [詳細]

#include <CMenuDrawer.h>

CMenuDrawerのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMenuDrawer ()
~CMenuDrawer ()
void | Create (HINSTANCE, HWND, CImageListMgr *)
void | ResetContents (void)
void | MyAppendMenu (HMENU hMenu, int nFlag, int nFuncId, const TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-1)
void | MyAppendMenu (HMENU hMenu, int nFlag, int nFuncId, const NOT_TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-1)
void | MyAppendMenuSep (HMENU hMenu, int nFlag, int nFuncId, const TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-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 TCHAR * | GetLabel (int nFuncID)
TCHAR | GetAccelCharFromLabel (const TCHAR *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]
CNativeT | 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 の 43 行で定義されています。

参照先 _countof, 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_NOT_USED_FIRST, 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_nMyButtonNum, m_pShareData, m_tbMyButton, NULL, SetTBBUTTONVal(), TBSTYLE_COMBOBOX, と TBSTYLE_DROPDOWN.

CMenuDrawer::~CMenuDrawer ( )

CMenuDrawer.cpp の 584 行で定義されています。

参照先 m_hFontMenu, m_hFontMenuUndelLine, と NULL.

関数

void CMenuDrawer::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hWndOwner,
 |  | CImageListMgr * | pcIcons
 | ) |  |

CMenuDrawer.cpp の 597 行で定義されています。

参照先 m_hInstance, m_hWndOwner, と m_pcIcons.

参照元 CEditWnd::Create(), と CControlTray::Create().

void CMenuDrawer::ResetContents ( void )

CMenuDrawer.cpp の 607 行で定義されています。

参照先 m_cmemMenuItemStrArr, m_hFontMenu, m_hFontMenuUndelLine, m_nMenuHeight, m_nMenuItemFuncArr, m_nMenuItemNum, NULL, CNativeA::SetString(), と TRUE.

参照元 CViewCommander::Command_CUSTMENU(), CViewCommander::Command_MENU_ALLFUNC(), CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CEditView::CreatePopUpMenu_R(), CControlTray::CreatePopUpMenu_R(), CEditWnd::DispatchEvent(), と CEditWnd::InitMenu().

void CMenuDrawer::MyAppendMenu | ( | HMENU | hMenu,
 |  | int | nFlag,
 |  | int | nFuncId,
 |  | const TCHAR * | pszLabel,
 |  | BOOL | bAddKeyStr = TRUE,
 |  | int | nForceIconId = -1
 | ) |  |

CMenuDrawer.cpp の 679 行で定義されています。

参照先 _countof, CKeyBind::GetMenuLabel(), GSTR_APPNAME_A, CommonSetting_Window::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, CommonSetting::m_sWindow, m_tbMyButton, MAX_MENUITEMS, memset_raw(), MYMESSAGEBOX_A, NULL, CNativeA::SetString(), ApiWrap::SIZEOF_MENUITEMINFO, TRUE, と ULONG_PTR.

参照元 CViewCommander::Command_CUSTMENU(), CViewCommander::Command_MENU_ALLFUNC(), CEditWnd::CreateFileDropDownMenu(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CEditView::CreatePopUpMenu_R(), CControlTray::CreatePopUpMenu_R(), CEditWnd::DispatchEvent(), CEditWnd::InitMenu(), と CEditWnd::WinListMenu().

void CMenuDrawer::MyAppendMenu | ( | HMENU | hMenu,
 |  | int | nFlag,
 |  | int | nFuncId,
 |  | const NOT_TCHAR * | pszLabel,
 |  | BOOL | bAddKeyStr = TRUE,
 |  | int | nForceIconId = -1 |
 | ) |  |  | [inline]

CMenuDrawer.h の 70 行で定義されています。

参照先 to_tchar.

void CMenuDrawer::MyAppendMenuSep | ( | HMENU | hMenu,
 |  | int | nFlag,
 |  | int | nFuncId,
 |  | const TCHAR * | pszLabel,
 |  | BOOL | bAddKeyStr = TRUE,
 |  | int | nForceIconId = -1 |
 | ) |  |  | [inline]

CMenuDrawer.h の 74 行で定義されています。

参照元 CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::CreatePopUpMenu_R(), と CEditWnd::InitMenu().

int CMenuDrawer::MeasureItem | ( | int | nFuncID,
 |  | int * | pnItemHeight
 | ) |  |

CMenuDrawer.cpp の 648 行で定義されています。

参照先 GetLabel(), m_hFontMenu, m_hWndOwner, m_nMenuHeight, と NULL.

参照元 CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

void CMenuDrawer::DrawItem ( DRAWITEMSTRUCT * lpdis )

メニューアイテム描画

日付:
2001.12.21 YAZAKI デバッグモードでもメニューを選択したらハイライト。

2003.08.27 Moca システムカラーのブラシはCreateSolidBrushをやめGetSysColorBrushに

CMenuDrawer.cpp の 790 行で定義されています。

参照先 _countof, _tcscpy(), CImageListMgr::Draw(), CSplitBoxWnd::Draw3dRect(), FALSE, Find(), FuncID_To_HelpContextID(), CNativeA::GetStringPtr(), m_cmemMenuItemStrArr, m_hFontMenu, m_nMenuItemBitmapIdxArr, m_pcIcons, memset_raw(), NULL, と ApiWrap::SIZEOF_MENUITEMINFO.

参照元 CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

LRESULT CMenuDrawer::OnMenuChar | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

メニューアクセスキー押下時の処理(WM_MENUCHAR処理)

CMenuDrawer.cpp の 1124 行で定義されています。

参照先 _countof, _tcscpy(), GetAccelCharFromLabel(), GetLabel(), memset_raw(), NULL, ApiWrap::SIZEOF_MENUITEMINFO, と TRUE.

参照元 CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

int CMenuDrawer::FindIndexFromCommandId ( int idCommand )

CMenuDrawer.cpp の 1066 行で定義されています。

参照先 m_nMyButtonNum, と m_tbMyButton.

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR(), と CMainToolBar::ToolBarOwnerDraw().

int CMenuDrawer::GetIconId ( int nIndex ) [inline]

CMenuDrawer.h の 82 行で定義されています。

参照元 CMainToolBar::ToolBarOwnerDraw().

TBBUTTON CMenuDrawer::getButton ( int index ) const [inline]

CMenuDrawer.h の 84 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CPropCommon::DrawToolBarItemList(), と CMainToolBar::OnToolbarTimer().

int CMenuDrawer::Find ( int nFuncID ) [private]

CMenuDrawer.cpp の 1079 行で定義されています。

参照先 m_nMenuItemFuncArr, と m_nMenuItemNum.

参照元 DrawItem(), と GetLabel().

const TCHAR * CMenuDrawer::GetLabel ( int nFuncID ) [private]

CMenuDrawer.cpp の 1095 行で定義されています。

参照先 Find(), CNativeA::GetStringPtr(), m_cmemMenuItemStrArr, と NULL.

参照元 MeasureItem(), と OnMenuChar().

TCHAR CMenuDrawer::GetAccelCharFromLabel ( const TCHAR * pszLabel ) [private]

CMenuDrawer.cpp の 1104 行で定義されています。

参照元 OnMenuChar().

int CMenuDrawer::GetData ( void ) [protected]

void CMenuDrawer::SetTBBUTTONVal | ( | TBBUTTON * | ptb,
 |  | int | iBitmap,
 |  | int | idCommand,
 |  | BYTE | fsState,
 |  | BYTE | fsStyle,
 |  | DWORD_PTR | dwData,
 |  | INT_PTR | iString |
 | ) |  |  | [protected]

CMenuDrawer.cpp の 1204 行で定義されています。

参照元 CMenuDrawer().

変数

DLLSHAREDATA* CMenuDrawer::m_pShareData [private]

CMenuDrawer.h の 92 行で定義されています。

参照元 CMenuDrawer(), と MyAppendMenu().

HINSTANCE CMenuDrawer::m_hInstance [private]

CMenuDrawer.h の 94 行で定義されています。

参照元 Create(), と MyAppendMenu().

HWND CMenuDrawer::m_hWndOwner [private]

CMenuDrawer.h の 95 行で定義されています。

参照元 Create(), と MeasureItem().

int CMenuDrawer::m_nMenuItemNum [private]

CMenuDrawer.h の 97 行で定義されています。

参照元 CMenuDrawer(), Find(), MyAppendMenu(), と ResetContents().

TBBUTTON CMenuDrawer::m_tbMyButton[MAX_TOOLBARBUTTONS+1] [private]

CMenuDrawer.h の 99 行で定義されています。

参照元 CMenuDrawer(), FindIndexFromCommandId(), と MyAppendMenu().

int CMenuDrawer::m_nMyButtonNum [private]

CMenuDrawer.h の 100 行で定義されています。

参照元 CMenuDrawer(), FindIndexFromCommandId(), と MyAppendMenu().

int CMenuDrawer::m_nMenuItemBitmapIdxArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 102 行で定義されています。

参照元 DrawItem(), と MyAppendMenu().

int CMenuDrawer::m_nMenuItemFuncArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 103 行で定義されています。

参照元 Find(), MyAppendMenu(), と ResetContents().

CNativeT CMenuDrawer::m_cmemMenuItemStrArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 104 行で定義されています。

参照元 DrawItem(), GetLabel(), MyAppendMenu(), と ResetContents().

int CMenuDrawer::m_nMenuHeight [private]

CMenuDrawer.h の 105 行で定義されています。

参照元 CMenuDrawer(), MeasureItem(), と ResetContents().

HFONT CMenuDrawer::m_hFontMenu [private]

CMenuDrawer.h の 106 行で定義されています。

参照元 CMenuDrawer(), DrawItem(), MeasureItem(), ResetContents(), と ~CMenuDrawer().

HFONT CMenuDrawer::m_hFontMenuUndelLine [private]

CMenuDrawer.h の 107 行で定義されています。

参照元 CMenuDrawer(), ResetContents(), と ~CMenuDrawer().

CImageListMgr* CMenuDrawer::m_pcIcons [private]

CMenuDrawer.h の 110 行で定義されています。

参照元 Create(), と DrawItem().

このクラスの説明は次のファイルから生成されました:
  • CMenuDrawer.h
  • CMenuDrawer.cpp
Sakura-Editorに対してSat Nov 17 20:28:38 2007に生成されました。 doxygen 1.5.4


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 TCHAR *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 hMenu, int nFlag, int nFuncId, const TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-1) | CMenuDrawer |
MyAppendMenu(HMENU hMenu, int nFlag, int nFuncId, const NOT_TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-1) | CMenuDrawer | [inline]
MyAppendMenuSep(HMENU hMenu, int nFlag, int nFuncId, const TCHAR *pszLabel, BOOL bAddKeyStr=TRUE, int nForceIconId=-1) | CMenuDrawer | [inline]
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 Nov 17 20:28:38 2007に生成されました。 doxygen 1.5.4


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_a (int dict_id, const char *dict_file)
int | migemo_load_w (int dict_id, const wchar_t *dict_file)
int | migemo_is_enable ()
int | migemo_load_all ()

Static Public メソッド

static CMigemo * | getInstance ()

Static Public 変数

static CMigemo * | _instance

Protected 型

typedef unsigned char * | string
typedef int | index
typedef int unsigned char * | op
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 | dict_id
typedef int const char * | dict_file

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
typedef | int (__cdecl *Proc_migemo_set_operator)(migemo *object
typedef const uchar_t *__cdecl * | Proc_migemo_get_operator (migemo *object, int index)
typedef | int (__cdecl *Proc_migemo_load)(migemo *obj
typedef | int (__cdecl *Proc_migemo_is_enable)(migemo *obj)
LPCTSTR | GetDllName (LPCTSTR)
DLLファイル名の取得
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 の 52 行で定義されています。

型定義

typedef unsigned char* CMigemo::string [protected]

CMigemo.h の 68 行で定義されています。

typedef int CMigemo::index [protected]

CMigemo.h の 69 行で定義されています。

typedef int unsigned char* CMigemo::op [protected]

CMigemo.h の 69 行で定義されています。

typedef void(__cdecl * CMigemo::Proc_migemo_setproc_char2int)(migemo *object, MIGEMO_PROC_CHAR2INT proc) [protected]

typedef void(__cdecl * CMigemo::Proc_migemo_setproc_int2char)(migemo *object, MIGEMO_PROC_INT2CHAR proc) [protected]

typedef int CMigemo::dict_id [protected]

CMigemo.h の 73 行で定義されています。

typedef int const char* CMigemo::dict_file [protected]

CMigemo.h の 73 行で定義されています。

コンストラクタとデストラクタ

CMigemo::CMigemo ( )

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

参照先 _instance.

CMigemo::~CMigemo ( ) [virtual]

CMigemo.cpp の 218 行で定義されています。

関数

CMigemo * CMigemo::getInstance ( ) [static]

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

参照先 _instance.

参照元 CEditView::ISearchEnter().

typedef migemo* __cdecl* CMigemo::Proc_migemo_open ( char * dict ) [protected]

typedef CMigemo::void ( __cdecl * Proc_migemo_close ) [protected]

typedef unsigned char* __cdecl* CMigemo::Proc_migemo_query | ( | migemo * | object,
 |  | unsigned char * | query |
 | ) |  |  | [protected]

typedef CMigemo::void ( __cdecl * Proc_migemo_release ) [protected]

typedef CMigemo::int ( __cdecl * Proc_migemo_set_operator ) [protected]

typedef const uchar_t* __cdecl* CMigemo::Proc_migemo_get_operator | ( | migemo * | object,
 |  | int | index |
 | ) |  |  | [protected]

typedef CMigemo::int ( __cdecl * Proc_migemo_load ) [protected]

typedef CMigemo::int ( __cdecl * Proc_migemo_is_enable ) [protected]

LPCTSTR CMigemo::GetDllName ( LPCTSTR str ) [protected, virtual]

DLLファイル名の取得

日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使用する場合は必須ではないので， 純粋仮想関数はやめてプレースホルダーを用意する．

CDllHandlerを再定義しています。

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

参照先 _IS_REL_PATH(), _MAX_PATH, GetInidir(), GetInidirOrExedir(), CShareData::getInstance(), CShareData::GetShareData(), DLLSHAREDATA::m_Common, CommonSetting::m_sHelper, と CommonSetting_Helper::m_szMigemoDll.

int CMigemo::InitDll ( void ) [protected, virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CDllHandlerを実装しています。

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

参照先 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().

int CMigemo::DeInitDll ( void ) [protected]

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

参照先 migemo_close().

long CMigemo::migemo_open ( char * dict )

CMigemo.cpp の 90 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, と NULL.

参照元 InitDll().

void CMigemo::migemo_close ( )

CMigemo.cpp の 106 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, と NULL.

参照元 DeInitDll().

unsigned char * CMigemo::migemo_query ( unsigned char * query )

CMigemo.cpp の 114 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, m_migemo_query, と NULL.

参照元 CEditView::ISearchWordMake().

void CMigemo::migemo_release ( unsigned char * string )

CMigemo.cpp の 121 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, と NULL.

参照元 CEditView::ISearchWordMake().

int CMigemo::migemo_set_operator | ( | int | index,
 |  | unsigned char * | op
 | ) |  |

CMigemo.cpp の 129 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, m_migemo_set_operator, と NULL.

const unsigned char * CMigemo::migemo_get_operator ( int index )

CMigemo.cpp の 137 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, m_migemo_get_operator, と NULL.

void CMigemo::migemo_setproc_char2int ( MIGEMO_PROC_CHAR2INT proc )

CMigemo.cpp の 145 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, と NULL.

void CMigemo::migemo_setproc_int2char ( MIGEMO_PROC_INT2CHAR proc )

CMigemo.cpp の 152 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, と NULL.

int CMigemo::migemo_load_a | ( | int | dict_id,
 |  | const char * | dict_file
 | ) |  |

CMigemo.cpp の 160 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, m_migemo_load, と NULL.

参照元 migemo_load_w().

int CMigemo::migemo_load_w | ( | int | dict_id,
 |  | const wchar_t * | dict_file
 | ) |  |

CMigemo.cpp の 168 行で定義されています。

参照先 _countof, _MAX_PATH, migemo_load_a(), と wcstombs2().

int CMigemo::migemo_is_enable ( )

CMigemo.cpp の 175 行で定義されています。

参照先 CDllHandler::IsAvailable(), m_migemo, m_migemo_is_enable, と NULL.

参照元 CEditView::ISearchEnter(), と migemo_load_all().

int CMigemo::migemo_load_all ( )

CMigemo.cpp の 183 行で定義されています。

参照先 _IS_REL_PATH(), _tcscpy(), GetInidirOrExedir(), CShareData::getInstance(), CShareData::GetShareData(), DLLSHAREDATA::m_Common, CommonSetting::m_sHelper, CommonSetting_Helper::m_szMigemoDict, MIGEMO_DICTID_HAN2ZEN, MIGEMO_DICTID_HIRA2KATA, MIGEMO_DICTID_MIGEMO, MIGEMO_DICTID_ROMA2HIRA, migemo_is_enable(), と migemo_load_t.

参照元 CEditView::ISearchEnter().

変数

CMigemo * CMigemo::_instance [static]

CMigemo.h の 58 行で定義されています。

参照元 CMigemo(), と getInstance().

Proc_migemo_open CMigemo::m_migemo_open [protected]

CMigemo.h の 76 行で定義されています。

参照元 InitDll().

Proc_migemo_close CMigemo::m_migemo_close [protected]

CMigemo.h の 77 行で定義されています。

参照元 InitDll().

Proc_migemo_query CMigemo::m_migemo_query [protected]

CMigemo.h の 78 行で定義されています。

参照元 InitDll(), と migemo_query().

Proc_migemo_release CMigemo::m_migemo_release [protected]

CMigemo.h の 79 行で定義されています。

参照元 InitDll().

Proc_migemo_set_operator CMigemo::m_migemo_set_operator [protected]

CMigemo.h の 80 行で定義されています。

参照元 InitDll(), と migemo_set_operator().

Proc_migemo_get_operator CMigemo::m_migemo_get_operator [protected]

CMigemo.h の 81 行で定義されています。

参照元 InitDll(), と migemo_get_operator().

Proc_migemo_setproc_char2int CMigemo::m_migemo_setproc_char2int [protected]

CMigemo.h の 82 行で定義されています。

参照元 InitDll().

Proc_migemo_setproc_int2char CMigemo::m_migemo_setproc_int2char [protected]

CMigemo.h の 83 行で定義されています。

参照元 InitDll().

Proc_migemo_load CMigemo::m_migemo_load [protected]

CMigemo.h の 84 行で定義されています。

参照元 InitDll(), と migemo_load_a().

Proc_migemo_is_enable CMigemo::m_migemo_is_enable [protected]

CMigemo.h の 85 行で定義されています。

参照元 InitDll(), と migemo_is_enable().

migemo* CMigemo::m_migemo [protected]

CMigemo.h の 87 行で定義されています。

参照元 migemo_close(), migemo_get_operator(), migemo_is_enable(), migemo_load_a(), migemo_open(), migemo_query(), migemo_release(), migemo_set_operator(), migemo_setproc_char2int(), と migemo_setproc_int2char().

このクラスの説明は次のファイルから生成されました:
  • CMigemo.h
  • CMigemo.cpp
Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMigemo メンバ一覧

これは全メンバの一覧です。CMigemo継承メンバも含んでいます。

_instance | CMigemo | [static]
CDllHandler() | CDllHandler |
CMigemo() | CMigemo |
DeInitDll(void) | CMigemo | [protected]
DeinitDll(void) | CDllHandler | [protected, virtual]
dict_file typedef | CMigemo | [protected]
dict_id typedef | CMigemo | [protected]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CMigemo | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
getInstance() | CMigemo | [static]
GetInstance() const | CDllHandler | [inline]
index typedef | CMigemo | [protected]
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CMigemo | [protected, virtual]
int(__cdecl *Proc_migemo_set_operator)(migemo *object | CMigemo | [protected]
int(__cdecl *Proc_migemo_load)(migemo *obj | CMigemo | [protected]
int(__cdecl *Proc_migemo_is_enable)(migemo *obj) | CMigemo | [protected]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(LPCTSTR 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_a(int dict_id, const char *dict_file) | CMigemo |
migemo_load_all() | CMigemo |
migemo_load_w(int dict_id, const wchar_t *dict_file) | 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 |
op typedef | CMigemo | [protected]
operator!(void) const | CDllHandler | [inline]
Proc_migemo_get_operator(migemo *object, int index) | CMigemo | [protected]
Proc_migemo_open(char *dict) | CMigemo | [protected]
Proc_migemo_query(migemo *object, unsigned char *query) | CMigemo | [protected]
Proc_migemo_setproc_char2int typedef | CMigemo | [protected]
Proc_migemo_setproc_int2char typedef | CMigemo | [protected]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
string typedef | CMigemo | [protected]
void(__cdecl *Proc_migemo_close)(migemo *object) | CMigemo | [protected]
void(__cdecl *Proc_migemo_release)(migemo *object | CMigemo | [protected]
~CDllHandler() | CDllHandler | [virtual]
~CMigemo() | CMigemo | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMRU

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMRU

#include <CMRU.h>

CMRUのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMRU ()
~CMRU ()
HMENU | CreateMenu (class CMenuDrawer *pCMenuDrawer)
BOOL | DestroyMenu (HMENU hMenu)
void | GetPathList (TCHAR **ppszMRU)
int | Length (void)
void | ClearAll (void)
BOOL | GetFileInfo (int num, FileInfo *pfi)
BOOL | GetFileInfo (const TCHAR *pszPath, FileInfo *pfi)
void | Add (FileInfo *pFileInfo)
MRUリストへの登録

Protected メソッド

bool | IsRemovableDrive (const char *pszDrive)

Protected 変数

struct DLLSHAREDATA * | m_pShareData

Private 変数

CRecentFile m_cRecentFile

説明

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

コンストラクタとデストラクタ

CMRU::CMRU ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

参照先 CShareData::getInstance(), CShareData::GetShareData(), と m_pShareData.

CMRU::~CMRU ( )

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

参照先 m_cRecentFile, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

関数

HMENU CMRU::CreateMenu ( class CMenuDrawer * pCMenuDrawer )

ファイル履歴メニューの作成

引数:
pCMenuDrawer [in] (out?) メニュー作成で用いるMenuDrawer
作者:
Norio Nakantani
戻り値:
生成したメニューのハンドル

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

参照先 _MAX_PATH, auto_sprintf(), dupamp(), F_FAVORITE, FALSE, CShareData::getInstance(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), CShareData::GetTransformFileNameFast(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetViewCount(), gm_pszCodeNameArr_Bracket, IDM_SELMRU, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), IsValidCodeTypeExceptSJIS(), CommonSetting_Window::m_bMenuIcon, DLLSHAREDATA::m_Common, m_cRecentFile, FileInfo::m_nCharCode, m_pShareData, CommonSetting::m_sWindow, FileInfo::m_szPath, CMenuDrawer::MyAppendMenu(), CShareData::TransformFileName_MakeCache(), と TRUE.

参照元 CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), と CEditWnd::InitMenu().

BOOL CMRU::DestroyMenu ( HMENU hMenu )

CMRU.cpp の 101 行で定義されています。

void CMRU::GetPathList ( TCHAR ** ppszMRU )

ファイル履歴の一覧を返す

引数:
ppszMRU [out] 文字列へのポインタリストを格納する． 最後の要素の次にはNULLが入る． 予め呼び出す側で最大値+1の領域を確保しておくこと．

CMRU.cpp の 113 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), CRecentFile::GetItemText(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetViewCount(), m_cRecentFile, と NULL.

参照元 CControlTray::DispatchEvent(), CEditDoc::OpenFileDialog(), と CEditDoc::SaveFileDialog().

int CMRU::Length ( void )

アイテム数を返す

CMRU.cpp の 127 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), と m_cRecentFile.

参照元 CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), CEditWnd::InitMenu(), CEditDoc::OpenFileDialog(), と CEditDoc::SaveFileDialog().

void CMRU::ClearAll ( void )

ファイル履歴のクリア

CMRU.cpp の 135 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), と m_cRecentFile.

参照元 CPropCommon::DispatchEvent_p1(), と CShareData::Init().

BOOL CMRU::GetFileInfo | ( | int | num,
 |  | FileInfo * | pfi
 | ) |  |

ファイル情報の取得

引数:
num | [in] 履歴番号(0~)
pfi | [out] 構造体へのポインタ格納先
戻り値:
TRUE | データが格納された
FALSE | 正しくない番号が指定された．データは格納されなかった．

CMRU.cpp の 149 行で定義されています。

参照先 FALSE, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), m_cRecentFile, NULL, と TRUE.

参照元 CViewCommander::Command_INSFILE(), CControlTray::DispatchEvent(), CEditDoc::FileRead(), と CEditWnd::OnCommand().

BOOL CMRU::GetFileInfo | ( | const TCHAR * | pszPath,
 |  | FileInfo * | pfi
 | ) |  |

指定された名前のファイルがMRUリストに存在するか調べる。存在するならばファイル情報を返す。

引数:
pszPath | [in] 検索するファイル名
pfi | [out] データが見つかったときにファイル情報を格納する領域。 呼び出し側で領域をあらかじめ用意する必要がある。
戻り値:
TRUE | ファイルが見つかった。pfiにファイル情報が格納されている。
FALSE | 指定されたファイルはMRU Listに無い。
日付:
2001.12.26 CShareData::IsExistInMRUListから移動した。（YAZAKI）

CMRU.cpp の 170 行で定義されています。

参照先 FALSE, CRecentFile::FindItemByPath(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), m_cRecentFile, NULL, と TRUE.

void CMRU::Add ( FileInfo * pFileInfo )

MRUリストへの登録

引数:
pFileInfo [in] 追加するファイルの情報
該当ファイルがリムーバブルディスク上にある場合にはMRU Listへの登録は行わない。

日付:
2001.03.29 MIK リムーバブルディスク上のファイルを登録しないようにした。

2001.12.26 YAZAKI CShareData::AddMRUListから移動

CMRU.cpp の 189 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_PATH, _tcscpy(), CMRUFolder::Add(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), m_cRecentFile, FileInfo::m_szPath, と NULL.

参照元 CEditDoc::FileRead(), CShareData::IsPathOpened(), と CEditWnd::OnDropFiles().

bool CMRU::IsRemovableDrive ( const char * pszDrive ) [protected]

変数

struct DLLSHAREDATA* CMRU::m_pShareData [read, protected]

CMRU.h の 66 行で定義されています。

参照元 CMRU(), と CreateMenu().

CRecentFile CMRU::m_cRecentFile [private]

CMRU.h の 70 行で定義されています。

参照元 Add(), ClearAll(), CreateMenu(), GetFileInfo(), GetPathList(), Length(), と ~CMRU().

このクラスの説明は次のファイルから生成されました:
  • CMRU.h
  • CMRU.cpp
Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


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 TCHAR *pszPath, FileInfo *pfi) | CMRU |
GetPathList(TCHAR **ppszMRU) | CMRU |
IsRemovableDrive(const char *pszDrive) | CMRU | [protected]
Length(void) | CMRU |
m_cRecentFile | CMRU | [private]
m_pShareData | CMRU | [protected]
~CMRU() | CMRU |

Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMRUFolder

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMRUFolder

#include <CMRUFolder.h>

CMRUFolderのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMRUFolder ()
~CMRUFolder ()
HMENU | CreateMenu (class CMenuDrawer *pCMenuDrawer)
BOOL | DestroyMenu (HMENU hMenu)
void | GetPathList (TCHAR **ppszMRU)
int | Length ()
void | ClearAll ()
void | Add (const TCHAR *pszFolder)
const TCHAR * | GetPath (int num)

Protected 変数

struct DLLSHAREDATA * | m_pShareData

Private 変数

CRecentFolder m_cRecentFolder

説明

CMRUFolder.h の 46 行で定義されています。

コンストラクタとデストラクタ

CMRUFolder::CMRUFolder ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

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

参照先 CShareData::getInstance(), CShareData::GetShareData(), と m_pShareData.

CMRUFolder::~CMRUFolder ( )

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

参照先 m_cRecentFolder, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

関数

HMENU CMRUFolder::CreateMenu ( class CMenuDrawer * pCMenuDrawer )

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

参照先 _MAX_PATH, auto_sprintf(), dupamp(), F_FAVORITE, FALSE, CShareData::getInstance(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), CRecentFolder::GetItemText(), CShareData::GetTransformFileNameFast(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetViewCount(), IDM_SELOPENFOLDER, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CommonSetting_Window::m_bMenuIcon, DLLSHAREDATA::m_Common, m_cRecentFolder, m_pShareData, CommonSetting::m_sWindow, CMenuDrawer::MyAppendMenu(), CShareData::TransformFileName_MakeCache(), と TRUE.

参照元 CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), と CEditWnd::InitMenu().

BOOL CMRUFolder::DestroyMenu ( HMENU hMenu )

void CMRUFolder::GetPathList ( TCHAR ** ppszMRU )

CMRUFolder.cpp の 75 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), CRecentFolder::GetItemText(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetViewCount(), m_cRecentFolder, と NULL.

参照元 CControlTray::DispatchEvent(), CEditDoc::OpenFileDialog(), と CEditDoc::SaveFileDialog().

int CMRUFolder::Length ( void )

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

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), と m_cRecentFolder.

参照元 CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), CEditWnd::InitMenu(), CControlTray::OnNewEditor(), CEditDoc::OpenFileDialog(), と CEditDoc::SaveFileDialog().

void CMRUFolder::ClearAll ( void )

CMRUFolder.cpp の 93 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), と m_cRecentFolder.

参照元 CPropCommon::DispatchEvent_p1(), と CShareData::Init().

void CMRUFolder::Add ( const TCHAR * pszFolder )

CMRUFolder.cpp の 102 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), m_cRecentFolder, と NULL.

参照元 CMRU::Add().

const TCHAR * CMRUFolder::GetPath ( int num )

CMRUFolder.cpp の 113 行で定義されています。

参照先 CRecentFolder::GetItemText(), と m_cRecentFolder.

参照元 CControlTray::DispatchEvent(), CEditWnd::OnCommand(), と CControlTray::OnNewEditor().

変数

struct DLLSHAREDATA* CMRUFolder::m_pShareData [read, protected]

CMRUFolder.h の 68 行で定義されています。

参照元 CMRUFolder(), と CreateMenu().

CRecentFolder CMRUFolder::m_cRecentFolder [private]

CMRUFolder.h の 71 行で定義されています。

参照元 Add(), ClearAll(), CreateMenu(), GetPath(), GetPathList(), Length(), と ~CMRUFolder().

このクラスの説明は次のファイルから生成されました:
  • CMRUFolder.h
  • CMRUFolder.cpp
Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMRUFolder メンバ一覧

これは全メンバの一覧です。CMRUFolder継承メンバも含んでいます。

Add(const TCHAR *pszFolder) | CMRUFolder |
ClearAll() | CMRUFolder |
CMRUFolder() | CMRUFolder |
CreateMenu(class CMenuDrawer *pCMenuDrawer) | CMRUFolder |
DestroyMenu(HMENU hMenu) | CMRUFolder |
GetPath(int num) | CMRUFolder |
GetPathList(TCHAR **ppszMRU) | CMRUFolder |
Length() | CMRUFolder |
m_cRecentFolder | CMRUFolder | [private]
m_pShareData | CMRUFolder | [protected]
~CMRUFolder() | CMRUFolder |

Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


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.

BOOL CMutex::Unlock ( ) [inline]

CMutex.h の 62 行で定義されています。

参照先 m_hObj.

CMutex::operator HANDLE ( ) const [inline]

CMutex.h の 66 行で定義されています。

参照先 m_hObj.

変数

HANDLE CMutex::m_hObj [protected]

CMutex.h の 68 行で定義されています。

参照元 CMutex(), Lock(), operator HANDLE(), Unlock(), と ~CMutex().

このクラスの説明は次のファイルから生成されました:
  • CMutex.h
Sakura-Editorに対してSat Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMyPoint

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMyPoint

#include <CMyPoint.h>

すべてのメンバ一覧

Public メソッド

CMyPoint ()
CMyPoint (int _x, int _y)
CMyPoint (const POINT &rhs)
CMyPoint & | operator+= (const POINT &rhs)
CMyPoint & | operator-= (const POINT &rhs)
CMyPoint & | operator *= (int n)
CMyPoint & | operator/= (int n)
CMyPoint | operator+ (const POINT &rhs) const
CMyPoint | operator- (const POINT &rhs) const
CMyPoint | operator * (int n) const
CMyPoint | operator/ (int n) const
CMyPoint & | operator= (const POINT &rhs)
bool | operator== (const POINT &rhs) const
bool | operator!= (const POINT &rhs) const
void | Set (int _x, int _y)
void | Set (const CMyPoint &pt)
void | SetX (int _x)
void | SetY (int _y)
void | Offset (int _x, int _y)
void | Offset (const CMyPoint &pt)
int | GetX () const
int | GetY () const
CMyPoint | Get () const
bool | HasNegative () const
x,y いずれかが 0 より小さい場合に true を返す
bool | BothNatural () const
x,y どちらも自然数であれば true

説明

CMyPoint.h の 5 行で定義されています。

コンストラクタとデストラクタ

CMyPoint::CMyPoint ( ) [inline]

CMyPoint.h の 8 行で定義されています。

CMyPoint::CMyPoint | ( | int | _x,
 |  | int | _y |
 | ) |  |  | [inline]

CMyPoint.h の 9 行で定義されています。

CMyPoint::CMyPoint ( const POINT & rhs ) [inline]

CMyPoint.h の 10 行で定義されています。

関数

CMyPoint& CMyPoint::operator+= ( const POINT & rhs ) [inline]

CMyPoint.h の 13 行で定義されています。

CMyPoint& CMyPoint::operator-= ( const POINT & rhs ) [inline]

CMyPoint.h の 14 行で定義されています。

CMyPoint& CMyPoint::operator *= ( int n ) [inline]

CMyPoint.h の 15 行で定義されています。

CMyPoint& CMyPoint::operator/= ( int n ) [inline]

CMyPoint.h の 16 行で定義されています。

CMyPoint CMyPoint::operator+ ( const POINT & rhs ) const [inline]

CMyPoint.h の 19 行で定義されています。

CMyPoint CMyPoint::operator- ( const POINT & rhs ) const [inline]

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

CMyPoint CMyPoint::operator * ( int n ) const [inline]

CMyPoint.h の 21 行で定義されています。

CMyPoint CMyPoint::operator/ ( int n ) const [inline]

CMyPoint.h の 22 行で定義されています。

CMyPoint& CMyPoint::operator= ( const POINT & rhs ) [inline]

CMyPoint.h の 25 行で定義されています。

bool CMyPoint::operator== ( const POINT & rhs ) const [inline]

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

参照元 operator!=().

bool CMyPoint::operator!= ( const POINT & rhs ) const [inline]

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

参照先 operator==().

void CMyPoint::Set | ( | int | _x,
 |  | int | _y |
 | ) |  |  | [inline]

CMyPoint.h の 32 行で定義されています。

void CMyPoint::Set ( const CMyPoint & pt ) [inline]

CMyPoint.h の 33 行で定義されています。

void CMyPoint::SetX ( int _x ) [inline]

CMyPoint.h の 34 行で定義されています。

void CMyPoint::SetY ( int _y ) [inline]

CMyPoint.h の 35 行で定義されています。

void CMyPoint::Offset | ( | int | _x,
 |  | int | _y |
 | ) |  |  | [inline]

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

void CMyPoint::Offset ( const CMyPoint & pt ) [inline]

CMyPoint.h の 37 行で定義されています。

int CMyPoint::GetX ( ) const [inline]

CMyPoint.h の 40 行で定義されています。

int CMyPoint::GetY ( ) const [inline]

CMyPoint.h の 41 行で定義されています。

CMyPoint CMyPoint::Get ( ) const [inline]

CMyPoint.h の 42 行で定義されています。

bool CMyPoint::HasNegative ( ) const [inline]

x,y いずれかが 0 より小さい場合に true を返す

CMyPoint.h の 45 行で定義されています。

bool CMyPoint::BothNatural ( ) const [inline]

x,y どちらも自然数であれば true

CMyPoint.h の 51 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CMyPoint.h
Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMyPoint メンバ一覧

これは全メンバの一覧です。CMyPoint継承メンバも含んでいます。

BothNatural() const | CMyPoint | [inline]
CMyPoint() | CMyPoint | [inline]
CMyPoint(int _x, int _y) | CMyPoint | [inline]
CMyPoint(const POINT &rhs) | CMyPoint | [inline]
Get() const | CMyPoint | [inline]
GetX() const | CMyPoint | [inline]
GetY() const | CMyPoint | [inline]
HasNegative() const | CMyPoint | [inline]
Offset(int _x, int _y) | CMyPoint | [inline]
Offset(const CMyPoint &pt) | CMyPoint | [inline]
operator *(int n) const | CMyPoint | [inline]
operator *=(int n) | CMyPoint | [inline]
operator!=(const POINT &rhs) const | CMyPoint | [inline]
operator+(const POINT &rhs) const | CMyPoint | [inline]
operator+=(const POINT &rhs) | CMyPoint | [inline]
operator-(const POINT &rhs) const | CMyPoint | [inline]
operator-=(const POINT &rhs) | CMyPoint | [inline]
operator/(int n) const | CMyPoint | [inline]
operator/=(int n) | CMyPoint | [inline]
operator=(const POINT &rhs) | CMyPoint | [inline]
operator==(const POINT &rhs) const | CMyPoint | [inline]
Set(int _x, int _y) | CMyPoint | [inline]
Set(const CMyPoint &pt) | CMyPoint | [inline]
SetX(int _x) | CMyPoint | [inline]
SetY(int _y) | CMyPoint | [inline]

Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMyRect

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMyRect

#include <CMyRect.h>

すべてのメンバ一覧

Public メソッド

CMyRect ()
CMyRect (int l, int t, int r, int b)
CMyRect (const RECT &rc)
void | SetLTRB (int l, int t, int r, int b)
void | SetXYWH (int x, int y, int w, int h)
int | Width () const
int | Height () const
CMyPoint | UpperLeft () const
左上座標 (TopLeft)
CMyPoint | LowerRight () const
右下座標 (BottomRight)

説明

CMyRect.h の 6 行で定義されています。

コンストラクタとデストラクタ

CMyRect::CMyRect ( ) [inline]

CMyRect.h の 9 行で定義されています。

参照先 SetLTRB().

CMyRect::CMyRect | ( | int | l,
 |  | int | t,
 |  | int | r,
 |  | int | b |
 | ) |  |  | [inline]

CMyRect.h の 13 行で定義されています。

参照先 SetLTRB().

CMyRect::CMyRect ( const RECT & rc ) [inline]

CMyRect.h の 17 行で定義されています。

関数

void CMyRect::SetLTRB | ( | int | l,
 |  | int | t,
 |  | int | r,
 |  | int | b |
 | ) |  |  | [inline]

CMyRect.h の 26 行で定義されています。

参照元 CMyRect().

void CMyRect::SetXYWH | ( | int | x,
 |  | int | y,
 |  | int | w,
 |  | int | h |
 | ) |  |  | [inline]

CMyRect.h の 33 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit().

int CMyRect::Width ( ) const [inline]

CMyRect.h の 42 行で定義されています。

参照元 CEditWnd::_CreateMainWindow(), CTextArea::DetectWidthOfLineNumberArea(), と CTextDrawer::DispText().

int CMyRect::Height ( ) const [inline]

CMyRect.h の 46 行で定義されています。

参照元 CEditWnd::_CreateMainWindow(), と CTextDrawer::DispHankakuSpace().

CMyPoint CMyRect::UpperLeft ( ) const [inline]

左上座標 (TopLeft)

CMyRect.h の 51 行で定義されています。

参照元 CPrintPreview::DrawHeader(), と TwoPointToRange().

CMyPoint CMyRect::LowerRight ( ) const [inline]

右下座標 (BottomRight)

CMyRect.h の 56 行で定義されています。

参照元 TwoPointToRange().

このクラスの説明は次のファイルから生成されました:
  • CMyRect.h
Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMyRect メンバ一覧

これは全メンバの一覧です。CMyRect継承メンバも含んでいます。

CMyRect() | CMyRect | [inline]
CMyRect(int l, int t, int r, int b) | CMyRect | [inline]
CMyRect(const RECT &rc) | CMyRect | [inline]
Height() const | CMyRect | [inline]
LowerRight() const | CMyRect | [inline]
SetLTRB(int l, int t, int r, int b) | CMyRect | [inline]
SetXYWH(int x, int y, int w, int h) | CMyRect | [inline]
UpperLeft() const | CMyRect | [inline]
Width() const | CMyRect | [inline]

Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMySize

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMySize

#include <CMySize.h>

すべてのメンバ一覧

Public メソッド

CMySize ()
CMySize (int _cx, int _cy)
CMySize (const SIZE &rhs)
void | Set (int _cx, int _cy)
bool | operator== (const SIZE &rhs) const
bool | operator!= (const SIZE &rhs) const

説明

CMySize.h の 5 行で定義されています。

コンストラクタとデストラクタ

CMySize::CMySize ( ) [inline]

CMySize.h の 8 行で定義されています。

CMySize::CMySize | ( | int | _cx,
 |  | int | _cy |
 | ) |  |  | [inline]

CMySize.h の 9 行で定義されています。

CMySize::CMySize ( const SIZE & rhs ) [inline]

CMySize.h の 10 行で定義されています。

関数

void CMySize::Set | ( | int | _cx,
 |  | int | _cy |
 | ) |  |  | [inline]

CMySize.h の 13 行で定義されています。

参照元 CCaret::SetCaretSize().

bool CMySize::operator== ( const SIZE & rhs ) const [inline]

CMySize.h の 16 行で定義されています。

参照元 operator!=().

bool CMySize::operator!= ( const SIZE & rhs ) const [inline]

CMySize.h の 17 行で定義されています。

参照先 operator==().

このクラスの説明は次のファイルから生成されました:
  • CMySize.h
Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMySize メンバ一覧

これは全メンバの一覧です。CMySize継承メンバも含んでいます。

CMySize() | CMySize | [inline]
CMySize(int _cx, int _cy) | CMySize | [inline]
CMySize(const SIZE &rhs) | CMySize | [inline]
operator!=(const SIZE &rhs) const | CMySize | [inline]
operator==(const SIZE &rhs) const | CMySize | [inline]
Set(int _cx, int _cy) | CMySize | [inline]

Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CMyString

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMyString

#include <CMyString.h>

すべてのメンバ一覧

Public メソッド

CMyString (WCHAR wc)
CMyString (const WCHAR *szData=L"")
CMyString (const WCHAR *pData, size_t nLength)
CMyString (const ACHAR *szData)
CMyString (const ACHAR *pData, size_t nLength)
CMyString (ACHAR wc)
CMyString (const CMyString &rhs)
~CMyString ()
operator const wchar_t * () const
operator const char * () const
CMyString & | operator= (const CMyString &rhs)
void | set (const wchar_t *wszData)
void | set (const char *szData)
void | set (const char *szData, int nLength)
void | set (const CMyString &cszData)
const wchar_t * | c_wstr () const
const char * | c_astr () const
int | wlength () const
int | alength () const
const TCHAR * | c_tstr () const

Private 変数

std::wstring | m_wstr
char * | m_str_cache

説明

CMyString.h の 7 行で定義されています。

コンストラクタとデストラクタ

CMyString::CMyString ( WCHAR wc ) [inline]

CMyString.h の 10 行で定義されています。

CMyString::CMyString ( const WCHAR * szData = L"" ) [inline]

CMyString.h の 11 行で定義されています。

CMyString::CMyString | ( | const WCHAR * | pData,
 |  | size_t | nLength |
 | ) |  |  | [inline]

CMyString.h の 12 行で定義されています。

CMyString::CMyString ( const ACHAR * szData ) [inline]

CMyString.h の 13 行で定義されています。

CMyString::CMyString | ( | const ACHAR * | pData,
 |  | size_t | nLength |
 | ) |  |  | [inline]

CMyString.h の 14 行で定義されています。

CMyString::CMyString ( ACHAR wc ) [inline]

CMyString.h の 15 行で定義されています。

CMyString::CMyString ( const CMyString & rhs ) [inline]

CMyString.h の 16 行で定義されています。

CMyString::~CMyString ( )

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

参照先 m_delete2, と m_str_cache.

関数

CMyString::operator const wchar_t * ( ) const [inline]

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

参照先 c_wstr().

CMyString::operator const char * ( ) const [inline]

CMyString.h の 21 行で定義されています。

参照先 c_astr().

CMyString& CMyString::operator= ( const CMyString & rhs ) [inline]

CMyString.h の 22 行で定義されています。

void CMyString::set ( const wchar_t * wszData ) [inline]

CMyString.h の 25 行で定義されています。

参照先 m_delete2, m_str_cache, と m_wstr.

void CMyString::set ( const char * szData )

CMyString.cpp の 6 行で定義されています。

参照先 mbstowcs_new().

void CMyString::set | ( | const char * | szData,
 |  | int | nLength
 | ) |  |

CMyString.cpp の 13 行で定義されています。

参照先 mbstowcs_new().

void CMyString::set ( const CMyString & cszData ) [inline]

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

const wchar_t* CMyString::c_wstr ( ) const [inline]

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

参照先 m_wstr.

参照元 operator const wchar_t *(), と wlength().

const char * CMyString::c_astr ( ) const

CMyString.cpp の 20 行で定義されています。

参照先 m_str_cache, m_wstr, と wcstombs_new().

参照元 alength(), c_tstr(), と operator const char *().

int CMyString::wlength ( ) const [inline]

CMyString.h の 33 行で定義されています。

参照先 c_wstr().

int CMyString::alength ( ) const [inline]

CMyString.h の 34 行で定義されています。

参照先 c_astr().

const TCHAR* CMyString::c_tstr ( ) const [inline]

CMyString.h の 41 行で定義されています。

参照先 c_astr().

変数

std::wstring CMyString::m_wstr [private]

CMyString.h の 45 行で定義されています。

参照元 c_astr(), c_wstr(), と set().

char* CMyString::m_str_cache [mutable, private]

CMyString.h の 46 行で定義されています。

参照元 c_astr(), set(), と ~CMyString().

このクラスの説明は次のファイルから生成されました:
  • CMyString.h
  • CMyString.cpp
Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMyString メンバ一覧

これは全メンバの一覧です。CMyString継承メンバも含んでいます。

alength() const | CMyString | [inline]
c_astr() const | CMyString |
c_tstr() const | CMyString | [inline]
c_wstr() const | CMyString | [inline]
CMyString(WCHAR wc) | CMyString | [inline]
CMyString(const WCHAR *szData=L"") | CMyString | [inline]
CMyString(const WCHAR *pData, size_t nLength) | CMyString | [inline]
CMyString(const ACHAR *szData) | CMyString | [inline]
CMyString(const ACHAR *pData, size_t nLength) | CMyString | [inline]
CMyString(ACHAR wc) | CMyString | [inline]
CMyString(const CMyString &rhs) | CMyString | [inline]
m_str_cache | CMyString | [mutable, private]
m_wstr | CMyString | [private]
operator const char *() const | CMyString | [inline]
operator const wchar_t *() const | CMyString | [inline]
operator=(const CMyString &rhs) | CMyString | [inline]
set(const wchar_t *wszData) | CMyString | [inline]
set(const char *szData) | CMyString |
set(const char *szData, int nLength) | CMyString |
set(const CMyString &cszData) | CMyString | [inline]
wlength() const | CMyString | [inline]
~CMyString() | CMyString |

Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CNative

  • 構成
  • クラス階層
  • 構成メンバ

クラス CNative

#include <CNative.h>

CNativeに対する継承グラフ

[凡例]
CNativeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CMemory * _GetMemory ()
const CMemory * | _GetMemory () const
void | Clear ()
空っぽにする

説明

CNative.h の 6 行で定義されています。

関数

CMemory* CNative::_GetMemory ( ) [inline]

CNative.h の 9 行で定義されています。

参照元 CNativeW::_SetStringLength(), CUtf7::CodeToUnicode(), CUnicodeBe::CodeToUnicode(), CUnicode::CodeToUnicode(), CShiftJis::CodeToUnicode(), CJis::CodeToUnicode(), CEuc::CodeToUnicode(), CViewCommander::Command_BASE64DECODE(), CEditView::SetReconvertStruct(), CUtf7::UnicodeToCode(), CUnicodeBe::UnicodeToCode(), CUnicode::UnicodeToCode(), CShiftJis::UnicodeToCode(), CJis::UnicodeToCode(), と CEuc::UnicodeToCode().

const CMemory* CNative::_GetMemory ( ) const [inline]

CNative.h の 10 行で定義されています。

void CNative::Clear ( )

空っぽにする

CMemoryを再定義しています。

CNative.cpp の 5 行で定義されています。

参照先 CMemory::SetRawData().

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CDocLineMgr::DeleteData_CDocLineMgr(), CEditView::InsertData_CEditView(), CEditView::ReplaceData_CEditView(), と CUtf8::UTF8ToUnicode().

このクラスの説明は次のファイルから生成されました:
  • CNative.h
  • CNative.cpp
Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CNative メンバ一覧

これは全メンバの一覧です。CNative継承メンバも含んでいます。

_AddData(const void *, int) | CMemory | [protected]
_AppendSz(const char *str) | CMemory | [protected]
_DebugGetPointerRef() | CMemory | [inline, protected]
_Empty(void) | CMemory | [protected]
_GetMemory() | CNative | [inline]
_GetMemory() const | CNative | [inline]
_SetRawLength(int nLength) | CMemory | [protected]
AllocBuffer(int) | CMemory | [protected]
AppendRawData(const void *pData, int nDataLen) | CMemory | [protected]
AppendRawData(const CMemory *) | CMemory | [protected]
Clean() | CMemory | [inline, protected]
Clear() | CNative |
CMemory() | CMemory | [protected]
CMemory(const void *pData, int nDataLenBytes) | CMemory | [protected]
GetRawLength() const | CMemory | [inline, protected]
GetRawPtr(int *pnLength) const | CMemory | [protected]
GetRawPtr(int *pnLength) | CMemory | [protected]
GetRawPtr() const | CMemory | [inline, protected]
GetRawPtr() | CMemory | [inline, protected]
IsEqual(CMemory &, CMemory &) | CMemory | [protected, static]
operator=(const CMemory &) | CMemory | [protected]
PCHAR typedef | CMemory | [protected]
SetRawData(const void *pData, int nDataLen) | CMemory | [protected]
SetRawData(const CMemory &) | CMemory | [protected]
SwapHLByte() | CMemory | [protected]
~CMemory() | CMemory | [protected]

Sakura-Editorに対してSat Nov 17 20:28:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CNativeA

  • 構成
  • クラス階層
  • 構成メンバ

クラス CNativeA

#include <CNativeA.h>

CNativeAに対する継承グラフ

[凡例]
CNativeAのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CNativeA ()
CNativeA (const CNativeA &rhs)
CNativeA (const char *szData)
CNativeA (const char *pData, int nLength)
void | SetString (const char *pszData)
バッファの内容を置き換える
void | SetString (const char *pData, int nDataLen)
バッファの内容を置き換える。nDataLenは文字単位。
void | SetNativeData (const CNativeA &pcNative)
バッファの内容を置き換える
void | AppendString (const char *pszData)
バッファの最後にデータを追加する
void | AppendString (const char *pszData, int nLength)
バッファの最後にデータを追加する。nLengthは文字単位。
void | AppendNativeData (const CNativeA &pcNative)
バッファの最後にデータを追加する
void | AllocStringBuffer (int nDataLen)
(重要：nDataLenは文字単位) バッファサイズの調整。必要に応じて拡大する。
int | GetStringLength () const
char | operator[] (int nIndex) const
任意位置の文字取得。nIndexは文字単位。
const char * | GetStringPtr () const
char * | GetStringPtr ()
const char * | GetStringPtr (int *pnLength) const
const CNativeA & | operator= (char)
const CNativeA & | operator+= (char)
void | Replace (const char *pszFrom, const char *pszTo)
文字列置換
void | Replace_j (const char *pszFrom, const char *pszTo)
文字列置換（日本語考慮版）
void | ToLower ()
void | ToUpper ()
void | ToZenkaku (int, int)
void | TABToSPACE (int)
void | SPACEToTAB (int)
空白→TAB変換
void | SetStringNew (const wchar_t *wszData, int nDataLen)
void | SetStringNew (const wchar_t *wszData)
void | AppendStringNew (const wchar_t *pszData)
バッファの最後にデータを追加する
void | AppendStringNew (const wchar_t *pszData, int nDataLen)
バッファの最後にデータを追加する。nDataLenは文字単位。
void | SetStringW (const wchar_t *pszData)
void | SetStringW (const wchar_t *pData, int nLength)
void | AppendStringW (const wchar_t *pszData)
void | AppendStringW (const wchar_t *pData, int nLength)
const wchar_t * | GetStringW () const
void | SetStringT (const TCHAR *pszData)
void | SetStringT (const TCHAR *pData, int nLength)

Static Public メソッド

static int | GetSizeOfChar (const char *pData, int nDataLen, int nIdx)
指定した位置の文字が何バイト文字かを返す
static const char * | GetCharNext (const char *pData, int nDataLen, const char *pDataCurrent)
ポインタで示した文字の次にある文字の位置を返します */
static const char * | GetCharPrev (const char *pData, int nDataLen, const char *pDataCurrent)
ポインタで示した文字の直前にある文字の位置を返します */

説明

CNativeA.h の 5 行で定義されています。

コンストラクタとデストラクタ

CNativeA::CNativeA ( )

CNativeA.cpp の 17 行で定義されています。

CNativeA::CNativeA ( const CNativeA & rhs )

CNativeA::CNativeA ( const char * szData )

CNativeA.cpp の 10 行で定義されています。

参照先 SetString().

CNativeA::CNativeA | ( | const char * | pData,
 |  | int | nLength
 | ) |  |

関数

void CNativeA::SetString ( const char * pszData )

バッファの内容を置き換える

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

参照元 CFuncInfo::CFuncInfo(), CNativeA(), CViewCommander::Command_GREP(), CControlTray::DoGrep(), CDlgInput1::DoModal(), CPPA::Execute(), CKeyBind::GetKeyStr(), CNormalProcess::Initialize(), CEditView::ISearchSetStatusMsg(), CEditView::KeySearchCore(), CMenuDrawer::MyAppendMenu(), CCommandLine::ParseCommandLine(), CMenuDrawer::ResetContents(), SetStringNew(), SetStringT(), CTipWnd::Show(), CPPA::stdFinishProc(), CPPA::stdStrFunc(), と CPPA::stdStrObj().

void CNativeA::SetString | ( | const char * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの内容を置き換える。nDataLenは文字単位。

CNativeA.cpp の 33 行で定義されています。

参照先 CMemory::SetRawData().

void CNativeA::SetNativeData ( const CNativeA & pcNative )

バッファの内容を置き換える

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

参照先 CMemory::SetRawData().

参照元 Replace(), と Replace_j().

void CNativeA::AppendString ( const char * pszData )

バッファの最後にデータを追加する

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

参照元 AppendNativeData(), AppendStringNew(), CEditWnd::DispatchEvent(), CKeyBind::GetKeyStr(), CEditView::ISearchExec(), CEditView::ISearchSetStatusMsg(), CEditView::KeySearchCore(), operator+=(), Replace(), Replace_j(), CDlgProperty::SetData(), と CDlgFuncList::SetTree().

void CNativeA::AppendString | ( | const char * | pszData,
 |  | int | nLength
 | ) |  |

バッファの最後にデータを追加する。nLengthは文字単位。

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

参照先 CMemory::AppendRawData().

void CNativeA::AppendNativeData ( const CNativeA & pcNative )

バッファの最後にデータを追加する

CNativeA.cpp の 67 行で定義されています。

参照先 AppendString(), GetStringLength(), と GetStringPtr().

参照元 CEditWnd::DispatchEvent(), と CDlgFuncList::SetTree().

void CNativeA::AllocStringBuffer ( int nDataLen )

(重要：nDataLenは文字単位) バッファサイズの調整。必要に応じて拡大する。

CNativeA.cpp の 73 行で定義されています。

参照先 CMemory::AllocBuffer().

参照元 CDlgInput1::DispatchEvent(), と CDlgFuncList::SetTree().

int CNativeA::GetStringLength ( ) const

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

参照先 CMemory::GetRawLength().

参照元 AppendNativeData(), CNativeW::AppendNativeDataT(), GetStringPtr(), GetStringW(), CEditView::KeySearchCore(), operator[](), Replace(), Replace_j(), CDlgFuncList::SetTree(), SPACEToTAB(), CPPA::stdError(), TABToSPACE(), ToLower(), ToUpper(), と ToZenkaku().

char CNativeA::operator[] ( int nIndex ) const

任意位置の文字取得。nIndexは文字単位。

CNativeA.cpp の 119 行で定義されています。

参照先 GetStringLength(), と GetStringPtr().

const char* CNativeA::GetStringPtr ( ) const [inline]

CNativeA.h の 24 行で定義されています。

参照先 CMemory::GetRawPtr().

参照元 _CompareFunc_(), AppendNativeData(), CNativeW::AppendNativeDataT(), CViewCommander::Command_GREP(), CViewCommander::Command_MENU_RBUTTON(), CEditView::CreatePopUpMenu_R(), CEditWnd::DispatchEvent(), CDlgInput1::DispatchEvent(), CDlgDebug::DispatchEvent(), CPropCommon::DispatchEvent_p5(), CEditView::DoGrep(), CControlTray::DoGrep(), CDlgInput1::DoModal(), CMenuDrawer::DrawItem(), CMenuDrawer::GetLabel(), CKeyBind::GetMenuLabel(), GetStringPtr(), GetStringW(), CEditWnd::GetTooltipText(), CTipWnd::GetWindowSize(), CMacro::HandleCommand(), CNormalProcess::Initialize(), CEditView::ISearchBack(), CEditView::ISearchEnter(), CEditView::ISearchExec(), CTipWnd::OnPaint(), operator[](), CCommandLine::ParseCommandLine(), Replace(), Replace_j(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), CDlgFuncList::SetTreeJava(), CTipWnd::Show(), SPACEToTAB(), CPPA::stdError(), CPPA::stdStrFunc(), CPPA::stdStrObj(), TABToSPACE(), ToLower(), ToUpper(), と ToZenkaku().

char* CNativeA::GetStringPtr ( ) [inline]

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

参照先 CMemory::GetRawPtr().

const char * CNativeA::GetStringPtr ( int * pnLength ) const

CNativeA.cpp の 112 行で定義されています。

参照先 GetStringLength(), と GetStringPtr().

const CNativeA & CNativeA::operator= ( char cChar )

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

参照先 CMemory::SetRawData().

const CNativeA & CNativeA::operator+= ( char ch )

CNativeA.cpp の 78 行で定義されています。

参照先 AppendString().

void CNativeA::Replace | ( | const char * | pszFrom,
 |  | const char * | pszTo
 | ) |  |

文字列置換

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

参照先 AppendString(), auto_memcmp(), GetStringLength(), GetStringPtr(), と SetNativeData().

参照元 CViewCommander::Command_GREP(), CControlTray::DoGrep(), CMacro::HandleCommand(), と CCommandLine::ParseCommandLine().

void CNativeA::Replace_j | ( | const char * | pszFrom,
 |  | const char * | pszTo
 | ) |  |

文字列置換（日本語考慮版）

CNativeA.cpp の 162 行で定義されています。

参照先 _IS_SJIS_1, AppendString(), GetStringLength(), GetStringPtr(), と SetNativeData().

void CNativeA::ToLower ( )

CNativeA.cpp の 197 行で定義されています。

参照先 CShiftJis::GetSizeOfChar(), GetStringLength(), と GetStringPtr().

void CNativeA::ToUpper ( )

CNativeA.cpp の 248 行で定義されています。

参照先 CShiftJis::GetSizeOfChar(), GetStringLength(), と GetStringPtr().

void CNativeA::ToZenkaku | ( | int | bHiragana,
 |  | int | bHanKataOnly
 | ) |  |

英数変換用に新たな条件を付加 2001/07/30 Misaka

英数変換用に新たな条件を付加 2001/07/30 Misaka bHiragana != 2 //英数変換フラグがオンではない場合

CNativeA.cpp の 296 行で定義されています。

参照先 BOOL, FALSE, CShiftJis::GetSizeOfChar(), GetStringLength(), GetStringPtr(), NULL, CMemory::SetRawData(), と TRUE.

void CNativeA::TABToSPACE ( int nTabSpace )

CNativeA.cpp の 423 行で定義されています。

参照先 auto_memcpy(), auto_memset(), CEOL::GetLen(), GetNextLine(), GetStringLength(), GetStringPtr(), CEOL::GetValue(), NULL, CMemory::SetRawData(), と WCODE::TAB.

void CNativeA::SPACEToTAB ( int nTabSpace )

空白→TAB変換

引数:
nTabSpace TABの文字数 単独のスペースは変換しない
作者:
Stonee
日付:
2001/5/27

CNativeA.cpp の 499 行で定義されています。

参照先 BOOL, FALSE, CEOL::GetLen(), GetNextLine(), GetStringLength(), GetStringPtr(), CEOL::GetValue(), NULL, CMemory::SetRawData(), WCODE::SPACE, WCODE::TAB, と TRUE.

void CNativeA::SetStringNew | ( | const wchar_t * | wszData,
 |  | int | nDataLen
 | ) |  |

CNativeA.cpp の 89 行で定義されています。

参照先 SetString(), と wcstombs_new().

参照元 SetStringNew(), と SetStringW().

void CNativeA::SetStringNew ( const wchar_t * wszData )

CNativeA.cpp の 97 行で定義されています。

参照先 SetStringNew().

void CNativeA::AppendStringNew ( const wchar_t * pszData )

バッファの最後にデータを追加する

CNativeA.cpp の 698 行で定義されています。

参照元 AppendStringW().

void CNativeA::AppendStringNew | ( | const wchar_t * | pszData,
 |  | int | nDataLen
 | ) |  |

バッファの最後にデータを追加する。nDataLenは文字単位。

CNativeA.cpp の 702 行で定義されています。

参照先 AppendString(), と wcstombs_new().

void CNativeA::SetStringW ( const wchar_t * pszData ) [inline]

CNativeA.h の 68 行で定義されています。

参照先 SetStringNew().

参照元 CMacro::HandleCommand().

void CNativeA::SetStringW | ( | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeA.h の 69 行で定義されています。

参照先 SetStringNew().

void CNativeA::AppendStringW ( const wchar_t * pszData ) [inline]

CNativeA.h の 70 行で定義されています。

参照先 AppendStringNew().

参照元 CEditView::KeySearchCore().

void CNativeA::AppendStringW | ( | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeA.h の 71 行で定義されています。

参照先 AppendStringNew().

const wchar_t * CNativeA::GetStringW ( ) const

CNativeA.cpp の 710 行で定義されています。

参照先 GetStringLength(), GetStringPtr(), と to_wchar().

void CNativeA::SetStringT ( const TCHAR * pszData ) [inline]

CNativeA.h の 79 行で定義されています。

参照先 SetString().

参照元 CCommandLine::ParseCommandLine().

void CNativeA::SetStringT | ( | const TCHAR * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeA.h の 80 行で定義されています。

参照先 SetString().

int CNativeA::GetSizeOfChar | ( | const char * | pData,
 |  | int | nDataLen,
 |  | int | nIdx |
 | ) |  |  | [static]

指定した位置の文字が何バイト文字かを返す

CNativeA.cpp の 619 行で定義されています。

参照先 CShiftJis::GetSizeOfChar().

参照元 CTipWnd::ComputeWindowSize(), CTipWnd::DrawTipText(), GetNextLimitedLengthText(), LimitStringLengthB(), と CDlgFuncList::SetTreeJava().

const char * CNativeA::GetCharNext | ( | const char * | pData,
 |  | int | nDataLen,
 |  | const char * | pDataCurrent |
 | ) |  |  | [static]

ポインタで示した文字の次にある文字の位置を返します */

CNativeA.cpp の 626 行で定義されています。

参照先 _IS_SJIS_1, と _IS_SJIS_2().

const char * CNativeA::GetCharPrev | ( | const char * | pData,
 |  | int | nDataLen,
 |  | const char * | pDataCurrent |
 | ) |  |  | [static]

ポインタで示した文字の直前にある文字の位置を返します */

CNativeA.cpp の 659 行で定義されています。

参照元 AddLastYenFromDirectoryPath(), CutLastYenFromDirectoryPath(), CEditView::DoGrep(), CShareData::ShareData_IO_Common(), と SplitPath_FolderAndFile().

このクラスの説明は次のファイルから生成されました:
  • CNativeA.h
  • CNativeA.cpp
Sakura-Editorに対してSat Nov 17 20:28:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CNativeA メンバ一覧

これは全メンバの一覧です。CNativeA継承メンバも含んでいます。

_AddData(const void *, int) | CMemory | [protected]
_AppendSz(const char *str) | CMemory | [protected]
_DebugGetPointerRef() | CMemory | [inline, protected]
_Empty(void) | CMemory | [protected]
_GetMemory() | CNative | [inline]
_GetMemory() const | CNative | [inline]
_SetRawLength(int nLength) | CMemory | [protected]
AllocBuffer(int) | CMemory | [protected]
AllocStringBuffer(int nDataLen) | CNativeA |
AppendNativeData(const CNativeA &pcNative) | CNativeA |
AppendRawData(const void *pData, int nDataLen) | CMemory | [protected]
AppendRawData(const CMemory *) | CMemory | [protected]
AppendString(const char *pszData) | CNativeA |
AppendString(const char *pszData, int nLength) | CNativeA |
AppendStringNew(const wchar_t *pszData) | CNativeA |
AppendStringNew(const wchar_t *pszData, int nDataLen) | CNativeA |
AppendStringW(const wchar_t *pszData) | CNativeA | [inline]
AppendStringW(const wchar_t *pData, int nLength) | CNativeA | [inline]
Clean() | CMemory | [inline, protected]
Clear() | CNative |
CMemory() | CMemory | [protected]
CMemory(const void *pData, int nDataLenBytes) | CMemory | [protected]
CNativeA() | CNativeA |
CNativeA(const CNativeA &rhs) | CNativeA |
CNativeA(const char *szData) | CNativeA |
CNativeA(const char *pData, int nLength) | CNativeA |
GetCharNext(const char *pData, int nDataLen, const char *pDataCurrent) | CNativeA | [static]
GetCharPrev(const char *pData, int nDataLen, const char *pDataCurrent) | CNativeA | [static]
GetRawLength() const | CMemory | [inline, protected]
GetRawPtr(int *pnLength) const | CMemory | [protected]
GetRawPtr(int *pnLength) | CMemory | [protected]
GetRawPtr() const | CMemory | [inline, protected]
GetRawPtr() | CMemory | [inline, protected]
GetSizeOfChar(const char *pData, int nDataLen, int nIdx) | CNativeA | [static]
GetStringLength() const | CNativeA |
GetStringPtr() const | CNativeA | [inline]
GetStringPtr() | CNativeA | [inline]
GetStringPtr(int *pnLength) const | CNativeA |
GetStringW() const | CNativeA |
IsEqual(CMemory &, CMemory &) | CMemory | [protected, static]
operator+=(char) | CNativeA |
operator=(char) | CNativeA |
CNative::operator=(const CMemory &) | CMemory |
operator[](int nIndex) const | CNativeA |
PCHAR typedef | CMemory | [protected]
Replace(const char *pszFrom, const char *pszTo) | CNativeA |
Replace_j(const char *pszFrom, const char *pszTo) | CNativeA |
SetNativeData(const CNativeA &pcNative) | CNativeA |
SetRawData(const void *pData, int nDataLen) | CMemory | [protected]
SetRawData(const CMemory &) | CMemory | [protected]
SetString(const char *pszData) | CNativeA |
SetString(const char *pData, int nDataLen) | CNativeA |
SetStringNew(const wchar_t *wszData, int nDataLen) | CNativeA |
SetStringNew(const wchar_t *wszData) | CNativeA |
SetStringT(const TCHAR *pszData) | CNativeA | [inline]
SetStringT(const TCHAR *pData, int nLength) | CNativeA | [inline]
SetStringW(const wchar_t *pszData) | CNativeA | [inline]
SetStringW(const wchar_t *pData, int nLength) | CNativeA | [inline]
SPACEToTAB(int) | CNativeA |
SwapHLByte() | CMemory | [protected]
TABToSPACE(int) | CNativeA |
ToLower() | CNativeA |
ToUpper() | CNativeA |
ToZenkaku(int, int) | CNativeA |
~CMemory() | CMemory | [protected]

Sakura-Editorに対してSat Nov 17 20:28:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CNativeW

  • 構成
  • クラス階層
  • 構成メンバ

クラス CNativeW

#include <CNativeW.h>

CNativeWに対する継承グラフ

[凡例]
CNativeWのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CNativeW ()
CNativeW (const CNativeW &)
CNativeW (const wchar_t *pData, int nDataLen)
nDataLenは文字単位。
CNativeW (const wchar_t *pData)
void | AllocStringBuffer (int nDataLen)
(重要：nDataLenは文字単位) バッファサイズの調整。必要に応じて拡大する。
void | SetString (const wchar_t *pData, int nDataLen)
バッファの内容を置き換える。nDataLenは文字単位。
void | SetString (const wchar_t *pszData)
バッファの内容を置き換える
void | AppendString (const wchar_t *pszData)
バッファの最後にデータを追加する
void | AppendString (const wchar_t *pszData, int nLength)
バッファの最後にデータを追加する。nLengthは文字単位。成功すればtrue。メモリ確保に失敗したらfalseを返す。
void | SetNativeData (const CNativeW &pcNative)
バッファの内容を置き換える
void | AppendNativeData (const CNativeW &)
バッファの最後にデータを追加する
const CNativeW & | operator+= (wchar_t wch)
const CNativeW & | operator= (wchar_t wch)
const CNativeW & | operator+= (const CNativeW &rhs)
const CNativeW & | operator= (const CNativeW &rhs)
wchar_t | operator[] (int nIndex) const
任意位置の文字取得。nIndexは文字単位。
CLogicInt | GetStringLength () const
文字列長を返す。文字単位。
const wchar_t * | GetStringPtr () const
wchar_t * | GetStringPtr ()
const wchar_t * | GetStringPtr (int *pnLength) const
void | _SetStringLength (int nLength)
void | Replace (const wchar_t *pszFrom, const wchar_t *pszTo)
文字列置換
void | SetStringOld (const char *pData, int nDataLen)
バッファの内容を置き換える。pDataはSJIS。nDataLenは文字単位。
void | SetStringOld (const char *pszData)
バッファの内容を置き換える。pszDataはSJIS。
void | AppendStringOld (const char *pData, int nDataLen)
バッファの最後にデータを追加する。pszDataはSJIS。
void | AppendStringOld (const char *pszData)
バッファの最後にデータを追加する。pszDataはSJIS。
const char * | GetStringPtrOld () const
void | SetStringW (const wchar_t *pszData)
void | SetStringW (const wchar_t *pData, int nLength)
void | AppendStringW (const wchar_t *pszData)
void | AppendStringW (const wchar_t *pData, int nLength)
const wchar_t * | GetStringW () const
void | SetStringT (const TCHAR *pData, int nDataLen)
void | SetStringT (const TCHAR *pszData)
void | AppendStringT (const TCHAR *pszData)
void | AppendStringT (const TCHAR *pData, int nLength)
void | AppendNativeDataT (const CNativeT &rhs)
const TCHAR * | GetStringT () const

Static Public メソッド

static bool | IsEqual (const CNativeW &cmem1, const CNativeW &cmem2)
同一の文字列ならtrue
static CLogicInt | GetSizeOfChar (const wchar_t *pData, int nDataLen, int nIdx)
指定した位置の文字がwchar_t何個分かを返す
static CLayoutInt | GetKetaOfChar (const wchar_t *pData, int nDataLen, int nIdx)
指定した位置の文字が半角何個分かを返す
static const wchar_t * | GetCharNext (const wchar_t *pData, int nDataLen, const wchar_t *pDataCurrent)
ポインタで示した文字の次にある文字の位置を返します */
static const wchar_t * | GetCharPrev (const wchar_t *pData, int nDataLen, const wchar_t *pDataCurrent)
ポインタで示した文字の直前にある文字の位置を返します */

Private 型

typedef wchar_t * | PWCHAR

Private 変数

PWCHAR & m_pDebugData

説明

CNativeW.h の 6 行で定義されています。

型定義

typedef wchar_t* CNativeW::PWCHAR [private]

CNativeW.h の 122 行で定義されています。

コンストラクタとデストラクタ

CNativeW::CNativeW ( )

CNativeW.cpp の 11 行で定義されています。

CNativeW::CNativeW ( const CNativeW & )

CNativeW::CNativeW | ( | const wchar_t * | pData,
 |  | int | nDataLen
 | ) |  |

nDataLenは文字単位。

CNativeW.cpp の 17 行で定義されています。

参照先 SetString().

CNativeW::CNativeW ( const wchar_t * pData )

CNativeW.cpp の 23 行で定義されています。

参照先 SetString().

関数

void CNativeW::AllocStringBuffer ( int nDataLen )

(重要：nDataLenは文字単位) バッファサイズの調整。必要に応じて拡大する。

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

参照先 CMemory::AllocBuffer().

参照元 CEditView::DoGrep(), CEditView::GetSelectedData(), CEditView::ReplaceData_CEditView(), と CUtf8::UTF8ToUnicode().

void CNativeW::SetString | ( | const wchar_t * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの内容を置き換える。nDataLenは文字単位。

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

参照先 CMemory::SetRawData().

参照元 CDocLineMgr::AddLineStrX(), CHokanMgr::CHokanMgr(), CNativeW(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_GREP(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), CViewCommander::Command_WCHAR(), CEditView::CopyCurLine(), CKeyBind::CreateKeyBindList(), CDocLineMgr::DeleteData_CDocLineMgr(), CConvert_ZenkanaToHankana::DoConvert(), CConvert_Trim::DoConvert(), CConvert_ToZenkana::DoConvert(), CConvert_ToZenhira::DoConvert(), CConvert_ToHankaku::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CConvert_HankanaToZenkana::DoConvert(), CConvert_HankanaToZenhira::DoConvert(), CEditView::DoGrep(), CControlTray::DoGrep(), CEditView::GetCurrentTextForSearch(), CEditView::GetSelectedData(), CClipboard::GetText(), CEditView::HokanSearchByFile(), CDocLineMgr::InsertData_CDocLineMgr(), CEditView::InsertData_CEditView(), CEditView::KeyWordHelpSearchDict(), LimitStringLengthW(), CKeyMacroMgr::LoadKeyMacro(), operator=(), CDocLineMgr::ReplaceData(), CMacro::Save(), CDicMgr::Search(), CDlgFuncList::SetData(), CEditView::SetReconvertStruct(), SetString(), SetStringW(), CEditView::ShowKeywordHelp(), CWordParse::WhereCurrentWord_2(), と CDocLineMgr::WriteFile().

void CNativeW::SetString ( const wchar_t * pszData )

バッファの内容を置き換える

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

参照先 SetString().

void CNativeW::AppendString ( const wchar_t * pszData )

バッファの最後にデータを追加する

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

参照元 AppendNativeData(), AppendStringOld(), AppendStringW(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_SORT(), CEditView::CopyCurLine(), CKeyBind::CreateKeyBindList(), CEditView::DoGrep(), CViewParser::GetLeftWord(), CEditView::GetSelectedData(), CDicMgr::HokanSearch(), CEditView::InsertData_CEditView(), CPPAMacroMgr::LoadKeyMacro(), operator+=(), CFileLoad::ReadLine(), Replace(), CDocLineMgr::ReplaceData(), と CDlgFuncList::SetTreeJava().

void CNativeW::AppendString | ( | const wchar_t * | pszData,
 |  | int | nLength
 | ) |  |

バッファの最後にデータを追加する。nLengthは文字単位。成功すればtrue。メモリ確保に失敗したらfalseを返す。

バッファの最後にデータを追加する。nLengthは文字単位。

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

参照先 CMemory::AppendRawData().

void CNativeW::SetNativeData ( const CNativeW & pcNative )

バッファの内容を置き換える

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

参照先 CMemory::SetRawData().

参照元 CViewCommander::Command_WCHAR(), CDocLineMgr::InsertData_CDocLineMgr(), CPPAMacroMgr::LoadKeyMacro(), operator=(), Replace(), と CDocLineMgr::ReplaceData().

void CNativeW::AppendNativeData ( const CNativeW & cmemData )

バッファの最後にデータを追加する

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

参照先 AppendString(), GetStringLength(), と GetStringPtr().

参照元 CViewCommander::Command_WCHAR(), CEditView::DoGrep(), operator+=(), と CDocLineMgr::ReplaceData().

const CNativeW& CNativeW::operator+= ( wchar_t wch ) [inline]

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

参照先 AppendString().

const CNativeW& CNativeW::operator= ( wchar_t wch ) [inline]

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

参照先 SetString().

const CNativeW& CNativeW::operator+= ( const CNativeW & rhs ) [inline]

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

参照先 AppendNativeData().

const CNativeW& CNativeW::operator= ( const CNativeW & rhs ) [inline]

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

参照先 SetNativeData().

wchar_t CNativeW::operator[] ( int nIndex ) const

任意位置の文字取得。nIndexは文字単位。

CNativeW.cpp の 110 行で定義されています。

参照先 GetStringLength(), と GetStringPtr().

CLogicInt CNativeW::GetStringLength ( ) const

文字列長を返す。文字単位。

CNativeW.cpp の 120 行で定義されています。

参照先 CMemory::GetRawLength().

参照元 AppendNativeData(), CViewCommander::Command_COPY(), CViewCommander::Command_CREATEKEYBINDLIST(), CViewCommander::Command_CUT(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_MERGE(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SORT(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_UNDO(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CEditView::CopyCurLine(), CEditView::CopySelectedAllLines(), CLayoutMgr::CreateLayout(), CControlTray::CreatePopUpMenu_L(), CEditView::DeleteData2(), CEditView::DispLineNew(), CConvert_ZenkanaToHankana::DoConvert(), CConvert_ZeneisuToHaneisu::DoConvert(), CConvert_Trim::DoConvert(), CConvert_ToZenkana::DoConvert(), CConvert_ToZenhira::DoConvert(), CConvert_ToUpper::DoConvert(), CConvert_ToLower::DoConvert(), CConvert_ToHankaku::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CConvert_HankanaToZenkana::DoConvert(), CConvert_HankanaToZenhira::DoConvert(), CConvert_HaneisuToZeneisu::DoConvert(), CDocLineMgr::DUMP(), CViewParser::GetLeftWord(), CDocLine::GetLength(), CDocLine::GetLengthWithoutEOL(), GetStringPtr(), GetStringPtrOld(), CMacro::HandleFunction(), CDocLineMgr::InsertData_CDocLineMgr(), CEditView::InsertData_CEditView(), CDlgFuncList::OnBnClicked(), operator[](), Replace(), CDocLineMgr::ReplaceData(), CEditView::ReplaceData_CEditView(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), と CEditView::ShowHokanMgr().

const wchar_t* CNativeW::GetStringPtr ( ) const [inline]

CNativeW.h の 37 行で定義されています。

参照先 CMemory::GetRawPtr().

参照元 AppendNativeData(), CConvert_Base64Decode::BASE64Decode(), CViewCommander::Command_COPY(), CViewCommander::Command_CREATEKEYBINDLIST(), CViewCommander::Command_CUT(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_GREP(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_SORT(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_UNDO(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CEditView::CopyCurLine(), CEditView::CopySelectedAllLines(), CDocLineMgr::DeleteData_CDocLineMgr(), CEditView::DispLineNew(), CConvert_ZenkanaToHankana::DoConvert(), CConvert_ZeneisuToHaneisu::DoConvert(), CConvert_Trim::DoConvert(), CConvert_ToZenkana::DoConvert(), CConvert_ToZenhira::DoConvert(), CConvert_ToUpper::DoConvert(), CConvert_ToLower::DoConvert(), CConvert_ToHankaku::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CConvert_HankanaToZenkana::DoConvert(), CConvert_HankanaToZenhira::DoConvert(), CConvert_HaneisuToZeneisu::DoConvert(), CEditView::DoGrep(), CControlTray::DoGrep(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), COpe::DUMP(), CDocLineMgr::DUMP(), CPPAMacroMgr::ExecKeyMacro(), CDocLineMgr::GetAllData(), CEditView::GetCurrentTextForSearch(), CDocLineMgr::GetFirstLinrStr(), CLayoutMgr::GetLineStr(), CDocLineMgr::GetLineStr(), CDocLineMgr::GetLineStrWithoutEOL(), CDocLineMgr::GetNextLinrStr(), CLayout::GetPtr(), CDocLine::GetPtr(), GetStringPtrOld(), GetStringW(), CMacro::HandleFunction(), CNormalProcess::Initialize(), CDocLineMgr::InsertData_CDocLineMgr(), CEditView::InsertData_CEditView(), IsEqual(), CEditView::KeySearchCore(), CEditView::KeyWordHelpSearchDict(), CKeyMacroMgr::LoadKeyMacro(), CLayoutMgr::LogicToLayout(), CDocLineMgr::MarkSearchWord(), CDlgFuncList::OnBnClicked(), CEditView::OnLBUTTONDOWN(), operator[](), CDocLineMgr::PrevOrNextWord(), CFileLoad::ReadLine(), CTextInputStream::ReadLineW(), Replace(), CDocLineMgr::ReplaceData(), CMacro::Save(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), CEditView::ShowHokanMgr(), CUtf8::UnicodeToUTF8(), CUtf8::UTF8ToUnicode(), CConvert_UuDecode::UUDECODE(), CDocLineMgr::WhereCurrentWord(), CEditWnd::WinListMenu(), と CDocLineMgr::WriteFile().

wchar_t* CNativeW::GetStringPtr ( ) [inline]

CNativeW.h の 41 行で定義されています。

参照先 CMemory::GetRawPtr().

const wchar_t* CNativeW::GetStringPtr ( int * pnLength ) const [inline]

CNativeW.h の 45 行で定義されています。

参照先 CMemory::GetRawPtr(), と GetStringLength().

void CNativeW::_SetStringLength ( int nLength ) [inline]

CNativeW.h の 61 行で定義されています。

参照先 CNative::_GetMemory(), と CMemory::_SetRawLength().

参照元 CUtf8::UTF8ToUnicode().

bool CNativeW::IsEqual | ( | const CNativeW & | cmem1,
 |  | const CNativeW & | cmem2 |
 | ) |  |  | [static]

同一の文字列ならtrue

CNativeW.cpp の 127 行で定義されています。

参照先 GetStringPtr().

参照元 CEditView::KeyWordHelpSearchDict(), と CEditView::ShowKeywordHelp().

void CNativeW::Replace | ( | const wchar_t * | pszFrom,
 |  | const wchar_t * | pszTo
 | ) |  |

文字列置換

CNativeW.cpp の 152 行で定義されています。

参照先 AppendString(), GetStringLength(), GetStringPtr(), と SetNativeData().

参照元 CViewCommander::Command_GREP(), CEditView::DoGrep(), CControlTray::DoGrep(), CKeyMacroMgr::LoadKeyMacro(), CCommandLine::ParseCommandLine(), と CMacro::Save().

void CNativeW::SetStringOld | ( | const char * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの内容を置き換える。pDataはSJIS。nDataLenは文字単位。

バッファの内容を置き換える。nDataLenは文字単位。

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

参照先 CMemory::SetRawData(), と CShiftJis::SJISToUnicode().

参照元 SetStringOld(), と SetStringT().

void CNativeW::SetStringOld ( const char * pszData )

バッファの内容を置き換える。pszDataはSJIS。

バッファの内容を置き換える

CNativeW.cpp の 86 行で定義されています。

参照先 SetStringOld().

void CNativeW::AppendStringOld | ( | const char * | pData,
 |  | int | nDataLen
 | ) |  |

バッファの最後にデータを追加する。pszDataはSJIS。

CNativeW.cpp の 91 行で定義されています。

参照先 AppendString(), と mbstowcs_new().

参照元 AppendNativeDataT(), AppendStringOld(), と AppendStringT().

void CNativeW::AppendStringOld ( const char * pszData )

バッファの最後にデータを追加する。pszDataはSJIS。

CNativeW.cpp の 99 行で定義されています。

参照先 AppendStringOld().

const char * CNativeW::GetStringPtrOld ( ) const

CNativeW.cpp の 240 行で定義されています。

参照先 GetStringLength(), GetStringPtr(), と to_achar().

参照元 GetStringT().

void CNativeW::SetStringW ( const wchar_t * pszData ) [inline]

CNativeW.h の 98 行で定義されています。

参照先 SetString().

void CNativeW::SetStringW | ( | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeW.h の 99 行で定義されています。

参照先 SetString().

void CNativeW::AppendStringW ( const wchar_t * pszData ) [inline]

CNativeW.h の 100 行で定義されています。

参照先 AppendString().

void CNativeW::AppendStringW | ( | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeW.h の 101 行で定義されています。

参照先 AppendString().

const wchar_t* CNativeW::GetStringW ( ) const [inline]

CNativeW.h の 102 行で定義されています。

参照先 GetStringPtr().

void CNativeW::SetStringT | ( | const TCHAR * | pData,
 |  | int | nDataLen |
 | ) |  |  | [inline]

CNativeW.h の 113 行で定義されています。

参照先 SetStringOld().

参照元 CEditView::DoGrep(), と CCommandLine::ParseCommandLine().

void CNativeW::SetStringT ( const TCHAR * pszData ) [inline]

CNativeW.h の 114 行で定義されています。

参照先 SetStringOld().

void CNativeW::AppendStringT ( const TCHAR * pszData ) [inline]

CNativeW.h の 115 行で定義されています。

参照先 AppendStringOld().

参照元 CEditView::DoGrep(), CDlgFuncList::SetData(), と CDlgFuncList::SetListVB().

void CNativeW::AppendStringT | ( | const TCHAR * | pData,
 |  | int | nLength |
 | ) |  |  | [inline]

CNativeW.h の 116 行で定義されています。

参照先 AppendStringOld().

void CNativeW::AppendNativeDataT ( const CNativeT & rhs ) [inline]

CNativeW.h の 117 行で定義されています。

参照先 AppendStringOld(), CNativeA::GetStringLength(), と CNativeA::GetStringPtr().

参照元 CDlgFuncList::SetTree().

const TCHAR* CNativeW::GetStringT ( ) const [inline]

CNativeW.h の 118 行で定義されています。

参照先 GetStringPtrOld().

参照元 CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CControlTray::CreatePopUpMenu_L(), と CEditView::KeySearchCore().

CLogicInt CNativeW::GetSizeOfChar | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int | nIdx |
 | ) |  |  | [static]

指定した位置の文字がwchar_t何個分かを返す

CNativeW.cpp の 189 行で定義されています。

参照元 C_IsLineEsc(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_WCHAR(), CDocLineMgr::CreateCharCharsArr(), CEditView::DispLineNew(), CTextDrawer::DispText(), CConvert_Trim::DoConvert(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_C(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_Perl(), CEditDoc::MakeFuncList_PLSQL(), CEditDoc::MakeFuncList_VisualBasic(), CEditDoc::MakeTopicList_txt(), CBlockComment::Match_CommentTo(), CLayoutMgr::Match_Quote(), CEditView::RTrimPrevLine(), CMemoryIterator::scanNext(), COutlinePython::ScanNormal(), COutlinePython::ScanString(), CWordParse::SearchNextWordPosition(), CDocLineMgr::SearchWord(), CEditView::SmartIndent_CPP(), CWordParse::WhatKindOfChar(), と CWordParse::WhereCurrentWord_2().

CLayoutInt CNativeW::GetKetaOfChar | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int | nIdx |
 | ) |  |  | [static]

指定した位置の文字が半角何個分かを返す

CNativeW.cpp の 198 行で定義されています。

参照先 WCODE::isHankaku().

参照元 CLayout::CalcLayoutOffset(), CLayout::CalcLayoutWidth(), CTextDrawer::DispText(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CMemoryIterator::scanNext(), と CCaret::ShowEditCaret().

const wchar_t * CNativeW::GetCharNext | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | const wchar_t * | pDataCurrent |
 | ) |  |  | [static]

ポインタで示した文字の次にある文字の位置を返します */

CNativeW.cpp の 216 行で定義されています。

参照元 CEditView::DeleteData(), CEditView::SearchBracketForward(), と CEditView::SearchBracketForward2().

const wchar_t * CNativeW::GetCharPrev | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | const wchar_t * | pDataCurrent |
 | ) |  |  | [static]

ポインタで示した文字の直前にある文字の位置を返します */

CNativeW.cpp の 228 行で定義されています。

参照元 CViewParser::GetLeftWord(), CDocLineMgr::PrevOrNextWord(), CEditView::SearchBracket(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SmartIndent_CPP(), と CWordParse::WhereCurrentWord_2().

変数

PWCHAR& CNativeW::m_pDebugData [private]

CNativeW.h の 123 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CNativeW.h
  • CNativeW.cpp
Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CNativeW メンバ一覧

これは全メンバの一覧です。CNativeW継承メンバも含んでいます。

_AddData(const void *, int) | CMemory | [protected]
_AppendSz(const char *str) | CMemory | [protected]
_DebugGetPointerRef() | CMemory | [inline, protected]
_Empty(void) | CMemory | [protected]
_GetMemory() | CNative | [inline]
_GetMemory() const | CNative | [inline]
_SetRawLength(int nLength) | CMemory | [protected]
_SetStringLength(int nLength) | CNativeW | [inline]
AllocBuffer(int) | CMemory | [protected]
AllocStringBuffer(int nDataLen) | CNativeW |
AppendNativeData(const CNativeW &) | CNativeW |
AppendNativeDataT(const CNativeT &rhs) | CNativeW | [inline]
AppendRawData(const void *pData, int nDataLen) | CMemory | [protected]
AppendRawData(const CMemory *) | CMemory | [protected]
AppendString(const wchar_t *pszData) | CNativeW |
AppendString(const wchar_t *pszData, int nLength) | CNativeW |
AppendStringOld(const char *pData, int nDataLen) | CNativeW |
AppendStringOld(const char *pszData) | CNativeW |
AppendStringT(const TCHAR *pszData) | CNativeW | [inline]
AppendStringT(const TCHAR *pData, int nLength) | CNativeW | [inline]
AppendStringW(const wchar_t *pszData) | CNativeW | [inline]
AppendStringW(const wchar_t *pData, int nLength) | CNativeW | [inline]
Clean() | CMemory | [inline, protected]
Clear() | CNative |
CMemory() | CMemory | [protected]
CMemory(const void *pData, int nDataLenBytes) | CMemory | [protected]
CNativeW() | CNativeW |
CNativeW(const CNativeW &) | CNativeW |
CNativeW(const wchar_t *pData, int nDataLen) | CNativeW |
CNativeW(const wchar_t *pData) | CNativeW |
GetCharNext(const wchar_t *pData, int nDataLen, const wchar_t *pDataCurrent) | CNativeW | [static]
GetCharPrev(const wchar_t *pData, int nDataLen, const wchar_t *pDataCurrent) | CNativeW | [static]
GetKetaOfChar(const wchar_t *pData, int nDataLen, int nIdx) | CNativeW | [static]
GetRawLength() const | CMemory | [inline, protected]
GetRawPtr(int *pnLength) const | CMemory | [protected]
GetRawPtr(int *pnLength) | CMemory | [protected]
GetRawPtr() const | CMemory | [inline, protected]
GetRawPtr() | CMemory | [inline, protected]
GetSizeOfChar(const wchar_t *pData, int nDataLen, int nIdx) | CNativeW | [static]
GetStringLength() const | CNativeW |
GetStringPtr() const | CNativeW | [inline]
GetStringPtr() | CNativeW | [inline]
GetStringPtr(int *pnLength) const | CNativeW | [inline]
GetStringPtrOld() const | CNativeW |
GetStringT() const | CNativeW | [inline]
GetStringW() const | CNativeW | [inline]
IsEqual(const CNativeW &cmem1, const CNativeW &cmem2) | CNativeW | [static]
CNative::IsEqual(CMemory &, CMemory &) | CMemory | [static]
m_pDebugData | CNativeW | [private]
operator+=(wchar_t wch) | CNativeW | [inline]
operator+=(const CNativeW &rhs) | CNativeW | [inline]
operator=(wchar_t wch) | CNativeW | [inline]
operator=(const CNativeW &rhs) | CNativeW | [inline]
CNative::operator=(const CMemory &) | CMemory |
operator[](int nIndex) const | CNativeW |
PCHAR typedef | CMemory | [protected]
PWCHAR typedef | CNativeW | [private]
Replace(const wchar_t *pszFrom, const wchar_t *pszTo) | CNativeW |
SetNativeData(const CNativeW &pcNative) | CNativeW |
SetRawData(const void *pData, int nDataLen) | CMemory | [protected]
SetRawData(const CMemory &) | CMemory | [protected]
SetString(const wchar_t *pData, int nDataLen) | CNativeW |
SetString(const wchar_t *pszData) | CNativeW |
SetStringOld(const char *pData, int nDataLen) | CNativeW |
SetStringOld(const char *pszData) | CNativeW |
SetStringT(const TCHAR *pData, int nDataLen) | CNativeW | [inline]
SetStringT(const TCHAR *pszData) | CNativeW | [inline]
SetStringW(const wchar_t *pszData) | CNativeW | [inline]
SetStringW(const wchar_t *pData, int nLength) | CNativeW | [inline]
SwapHLByte() | CMemory | [protected]
~CMemory() | CMemory | [protected]

Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CNormalProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CNormalProcess

エディタプロセスクラス [詳細]

#include <CNormalProcess.h>

CNormalProcessに対する継承グラフ

[凡例]
CNormalProcessのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CNormalProcess (HINSTANCE hInstance, LPTSTR lpCmdLine)
virtual | ~CNormalProcess ()

Protected メソッド

CNormalProcess ()
virtual bool | Initialize ()
エディタプロセスを初期化する
virtual bool | MainLoop ()
エディタプロセスのメッセージループ
virtual void | Terminate ()
エディタプロセスを終了する
HANDLE | GetInitializeMutex () const
Mutex(プロセス初期化の目印)を取得する

Private 変数

CEditApp * m_pcEditApp
CMigemo m_cMigemo

説明

エディタプロセスクラス

エディタプロセスはCEditWndクラスのインスタンスを作る。

CNormalProcess.h の 32 行で定義されています。

コンストラクタとデストラクタ

CNormalProcess::CNormalProcess | ( | HINSTANCE | hInstance,
 |  | LPTSTR | lpCmdLine |
 | ) |  |  | [inline]

CNormalProcess.h の 34 行で定義されています。

CNormalProcess::~CNormalProcess ( ) [virtual]

デストラクタ

日付:
2002/2/3 aroka ヘッダから移動

CNormalProcess.cpp の 324 行で定義されています。

CNormalProcess::CNormalProcess ( ) [protected]

関数

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 行で定義されています。

参照先 _tcscpy(), ActivateFrameWindow(), CShareData::AddToGrepFileArr(), CShareData::AddToGrepFolderArr(), CShareData::AddToSearchKeyArr(), GrepInfo::bGrepOutputLine, GrepInfo::bGrepSubFolder, GrepInfo::cmGrepFile, GrepInfo::cmGrepFolder, GrepInfo::cmGrepKey, CEditView::DoGrep(), CDlgGrep::DoModal(), F_GREP, FALSE, CEditWnd::GetActiveView(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetCommander(), CProcess::GetDllShareData(), CEditWnd::GetDocument(), CCommandLine::GetFileInfo(), CCommandLine::GetGrepInfo(), CEditWnd::GetHwnd(), GetInitializeMutex(), CShareData::getInstance(), CDocLine::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), GetLongFileName(), CProcess::GetProcessInstance(), CProcess::GetShareData(), CNativeW::GetStringPtr(), CNativeA::GetStringPtr(), CEditView::GetTextArea(), CEditApp::GetWindow(), DLLSHAREDATA::GetWorkBuffer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewCommander::HandleCommand(), CProcess::Initialize(), CCommandLine::Instance(), CCommandLine::IsDebugMode(), CCommandLine::IsGrepDlg(), CCommandLine::IsGrepMode(), CCommandLine::IsReadOnly(), CLayoutMgr::LogicToLayout(), CommonSetting_Search::m_bGrepOutputLine, CommonSetting_Search::m_bGrepSubFolder, CEditWnd::m_cDlgGrep, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, FileInfo::m_nCharCode, CommonSetting_Search::m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, m_pcEditApp, CEditWnd::m_pcEditViewArr, FileInfo::m_ptCursor, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, FileInfo::m_szDocType, CDlgGrep::m_szFile, CDlgGrep::m_szFolder, FileInfo::m_szPath, CDlgGrep::m_szText, CCaret::MoveCursor(), MY_RUNNINGTIMER, MY_TRACETIME, MYWM_GETCARETPOS, MYWM_SETCARETPOS, GrepInfo::nGrepCharSet, GrepInfo::nGrepOutputStyle, NULL, CEditWnd::OpenDocumentWhenCreate(), PostMessageAny, CEditView::RedrawAll(), SendMessageAny, CEditWnd::SetDebugModeON(), CEditDoc::SetDocumentType(), CEditWnd::SetDocumentTypeWhenCreate(), CEditView::SetIMECompFormPos(), CProcess::SetMainWindow(), CEditDoc::SetParentCaption(), CNativeA::SetString(), CTextArea::SetViewLeftCol(), CTextArea::SetViewTopLine(), GrepInfo::sGrepSearchOption, と TRUE.

bool CNormalProcess::MainLoop ( ) [protected, virtual]

エディタプロセスのメッセージループ

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

CProcessを実装しています。

CNormalProcess.cpp の 297 行で定義されています。

参照先 CProcess::GetMainWindow(), CEditApp::GetWindow(), m_pcEditApp, と CEditWnd::MessageLoop().

void CNormalProcess::Terminate ( ) [protected, virtual]

エディタプロセスを終了する

作者:
aroka
日付:
2002/01/07 こいつはなにもしない。後始末はdtorで。

CProcessを実装しています。

CNormalProcess.cpp の 313 行で定義されています。

HANDLE CNormalProcess::GetInitializeMutex ( ) const [protected]

Mutex(プロセス初期化の目印)を取得する

多数同時に起動するとウィンドウが表に出てこないことがある。

日付:
2002/2/8 aroka Initializeから移動
戻り値:
Mutex | のハンドルを返す
失敗した時はリリースしてから | NULL を返す

CNormalProcess.cpp の 338 行で定義されています。

参照先 GSTR_APPNAME, GSTR_MUTEX_SAKURA_INIT, MY_RUNNINGTIMER, MYMESSAGEBOX, NULL, と TRUE.

参照元 Initialize().

変数

CEditApp* CNormalProcess::m_pcEditApp [private]

CNormalProcess.h の 48 行で定義されています。

参照元 Initialize(), と MainLoop().

CMigemo CNormalProcess::m_cMigemo [private]

CNormalProcess.h の 51 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CNormalProcess.h
  • CNormalProcess.cpp
Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CNormalProcess メンバ一覧

これは全メンバの一覧です。CNormalProcess継承メンバも含んでいます。

CNormalProcess(HINSTANCE hInstance, LPTSTR lpCmdLine) | CNormalProcess | [inline]
CNormalProcess() | CNormalProcess | [protected]
CProcess(HINSTANCE hInstance, LPTSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
GetDllShareData() | CProcess | [inline]
GetInitializeMutex() const | CNormalProcess | [protected]
GetMainWindow() const | CProcess | [inline]
GetProcessInstance() const | CProcess | [inline]
GetShareData() | CProcess | [inline]
Initialize() | CNormalProcess | [protected, virtual]
Instance() | TSingleInstance< CNormalProcess > | [inline, static]
m_cMigemo | CNormalProcess | [private]
m_pcEditApp | CNormalProcess | [private]
MainLoop() | CNormalProcess | [protected, virtual]
Run() | CProcess |
SetMainWindow(HWND hwnd) | CProcess | [inline, protected]
Terminate() | CNormalProcess | [protected, virtual]
TSingleInstance() | TSingleInstance< CNormalProcess > | [inline, protected]
~CNormalProcess() | CNormalProcess | [virtual]
~CProcess() | CProcess | [inline, virtual]
~TSingleInstance() | TSingleInstance< CNormalProcess > | [inline, protected]

Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 ColorAttributeData_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ColorAttributeData_t

#include <global.h>

すべてのメンバ一覧

Public 変数

TCHAR * | szName
unsigned int | fAttribute

説明

global.h の 416 行で定義されています。

変数

TCHAR* ColorAttributeData_t::szName

global.h の 417 行で定義されています。

参照元 GetColorNameByIndex().

unsigned int ColorAttributeData_t::fAttribute

global.h の 418 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DrawColorListItem(), と CShareData::IO_ColorSet().

この構造体の説明は次のファイルから生成されました:
  • global.h
Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ColorAttributeData_t メンバ一覧

これは全メンバの一覧です。ColorAttributeData_t継承メンバも含んでいます。

fAttribute | ColorAttributeData_t
szName | ColorAttributeData_t

Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


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
TCHAR | m_szName [32]
wchar_t | m_cReserved [60]

説明

色設定

CShareData.h の 120 行で定義されています。

変数

int ColorInfo::m_nColorIdx

CShareData.h の 121 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), CPropTypes::DrawColorListItem(), CShareData::InitTypeConfig(), と CPropTypes::SetData_Regex().

BOOL ColorInfo::m_bDisp

CShareData.h の 122 行で定義されています。

参照元 CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), ColorList_SubclassProc(), CEditView::Create(), CTextArea::DetectWidthOfLineNumberArea(), CPropTypes::DispatchEvent_p3_new(), CEditView::DispLineNew(), CPropTypes::DrawColorListItem(), CShareData::InitTypeConfig(), CShareData::IO_ColorSet(), CTypeSupport::IsDisp(), CPrintPreview::OnChangePrintSetting(), CEditView::OnChangeSetting(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CPropTypes::RearrangeKeywordSet(), CEditView::SetCurrentColor(), CLayoutMgr::SetLayoutInfo(), と CCaret::ShowEditCaret().

BOOL ColorInfo::m_bFatFont

CShareData.h の 123 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DrawColorListItem(), CShareData::InitTypeConfig(), CShareData::IO_ColorSet(), CTypeSupport::IsFatFont(), CPropTypes::RearrangeKeywordSet(), CEditView::SetCurrentColor(), と CTypeSupport::SetFont().

BOOL ColorInfo::m_bUnderLine

CShareData.h の 124 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DrawColorListItem(), CTypeSupport::HasUnderLine(), CShareData::InitTypeConfig(), CShareData::IO_ColorSet(), CPropTypes::RearrangeKeywordSet(), CEditView::SetCurrentColor(), と CTypeSupport::SetFont().

COLORREF ColorInfo::m_colTEXT

CShareData.h の 125 行で定義されています。

参照元 CEditView::CaretUnderLineON(), ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DoPropertySheet(), CPropTypes::DrawColorListItem(), CTypeSupport::GetTextColor(), CShareData::InitTypeConfig(), CShareData::IO_ColorSet(), CDlgSameColor::OnBnClicked(), CDlgSameColor::OnInitDialog(), CDlgSameColor::OnSelChangeListColors(), CPropTypes::RearrangeKeywordSet(), CEditView::SetCurrentColor(), CTypeSupport::SetTextColor(), と CCaret::ShowEditCaret().

COLORREF ColorInfo::m_colBACK

CShareData.h の 126 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DoPropertySheet(), CPropTypes::DrawColorListItem(), CTypeSupport::FillBack(), CTypeSupport::GetBackColor(), CShareData::InitTypeConfig(), CDlgSameColor::OnBnClicked(), CDlgSameColor::OnInitDialog(), CEditView::OnPaint(), CDlgSameColor::OnSelChangeListColors(), CPropTypes::RearrangeKeywordSet(), CTypeSupport::SetBkColor(), CEditView::SetCurrentColor(), と CCaret::ShowEditCaret().

TCHAR ColorInfo::m_szName[32]

CShareData.h の 127 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), CPropTypes::DrawColorListItem(), CPropTypes::Export_Regex(), CPropTypes::GetData_Regex(), CPropTypes::Import_Regex(), CShareData::InitTypeConfig(), CDlgSameColor::OnSelChangeListColors(), CPropTypes::p3_Import_Colors(), CPropTypes::SetData_p3_new(), と CPropTypes::SetData_Regex().

wchar_t ColorInfo::m_cReserved[60]

CShareData.h の 128 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 ColorInfoIni

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ColorInfoIni

色設定(保存用) [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

const TCHAR * | m_pszName
BOOL | m_bDisp
BOOL | m_bFatFont
BOOL | m_bUnderLine
COLORREF | m_colTEXT
COLORREF | m_colBACK

説明

色設定(保存用)

CShareData.h の 132 行で定義されています。

変数

const TCHAR* ColorInfoIni::m_pszName

CShareData.h の 133 行で定義されています。

参照元 CShareData::InitTypeConfig().

BOOL ColorInfoIni::m_bDisp

CShareData.h の 134 行で定義されています。

参照元 CShareData::InitTypeConfig().

BOOL ColorInfoIni::m_bFatFont

CShareData.h の 135 行で定義されています。

参照元 CShareData::InitTypeConfig().

BOOL ColorInfoIni::m_bUnderLine

CShareData.h の 136 行で定義されています。

参照元 CShareData::InitTypeConfig().

COLORREF ColorInfoIni::m_colTEXT

CShareData.h の 137 行で定義されています。

参照元 CShareData::InitTypeConfig().

COLORREF ColorInfoIni::m_colBACK

CShareData.h の 138 行で定義されています。

参照元 CShareData::InitTypeConfig().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting

共通設定 [詳細]

#include <CommonSetting.h>

CommonSettingのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

CommonSetting_General m_sGeneral
CommonSetting_Window m_sWindow
CommonSetting_Edit m_sEdit
CommonSetting_File m_sFile
CommonSetting_Backup m_sBackup
CommonSetting_Format m_sFormat
CommonSetting_CustomMenu m_sCustomMenu
CommonSetting_Helper m_sHelper
CommonSetting_Search m_sSearch
CommonSetting_TabBar m_sTabBar
CommonSetting_ToolBar m_sToolBar
CommonSetting_OutLine m_sOutline
CommonSetting_Compare m_sCompare
CommonSetting_View m_sView
CommonSetting_Others m_sOthers

説明

共通設定

CommonSetting.h の 423 行で定義されています。

変数

CommonSetting_General CommonSetting::m_sGeneral

CommonSetting.h の 425 行で定義されています。

参照元 CEditDoc::CEditDoc(), CControlTray::CloseAllEditor(), CViewCommander::Command_DOWN(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_UP(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CControlTray::CreateTrayIcon(), CCaret::Cursor_UPDOWN(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CEditDoc::Init(), CCaret::MoveCursorProperly(), CControlTray::OnDestroy(), CEditView::OnVScroll(), CPropCommon::SetData_p1(), CShareData::ShareData_IO_Common(), CCaret::ShowEditCaret(), と CControlTray::TerminateApplication().

CommonSetting_Window CommonSetting::m_sWindow

CommonSetting.h の 426 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetWindowRectForInit(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTOOLBAR(), CEditView::Create(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CEditView::CreateScrollBar(), CTextArea::CTextArea(), CMainStatusBar::DestroyStatusBar(), CTextArea::DetectWidthOfLineNumberArea(), CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_PROP_WIN(), CTextDrawer::DispLineNumber(), CTextDrawer::DispVerticalLines(), CSplitterWnd::DoSplit(), CRuler::DrawRulerBg(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::InitMenu(), CEditWnd::LayoutFuncKey(), CEditWnd::LayoutStatusBar(), CEditWnd::LayoutToolBar(), CMenuDrawer::MyAppendMenu(), CEditView::OnChangeSetting(), CEditView::OnPaint(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CFuncKeyWnd::Open(), CPropCommon::SetData_PROP_WIN(), CEditDoc::SetParentCaption(), CShareData::ShareData_IO_Common(), CEditView::SyncScrollH(), と CEditView::SyncScrollV().

CommonSetting_Edit CommonSetting::m_sEdit

CommonSetting.h の 427 行で定義されています。

参照元 CViewCommander::Command_IME_CHAR(), CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::DragEnter(), CEditView::GetCurrentTextForSearch(), CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CEditView::KeyWordHelpSearchDict(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CEditView::OnTimer(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

CommonSetting_File CommonSetting::m_sFile

CommonSetting.h の 428 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp(), CControlTray::DispatchEvent(), CEditDoc::DoFileLock(), CEditDoc::FileRead(), CEditDoc::FileSave(), CShareData::Init(), IsFuncEnable(), CEditDoc::OnChangeSetting(), CEditWnd::OnDropFiles(), CEditWnd::OpenDocumentWhenCreate(), CEditDoc::OpenFile(), CEditDoc::SaveFileDialog(), CDlgProperty::SetData(), と CShareData::ShareData_IO_Common().

CommonSetting_Backup CommonSetting::m_sBackup

CommonSetting.h の 429 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), CEditDoc::FileWrite(), CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), CEditDoc::MakeBackUp(), CEditDoc::ReloadAutoSaveParam(), と CShareData::ShareData_IO_Common().

CommonSetting_Format CommonSetting::m_sFormat

CommonSetting.h の 430 行で定義されています。

参照元 CPropCommon::ChangeDateExample(), CViewCommander::Command_SET_QUOTESTRING(), CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), CShareData::Init(), CEditDoc::MakeTopicList_txt(), CShareData::MyGetDateFormat(), CShareData::MyGetTimeFormat(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

CommonSetting_CustomMenu CommonSetting::m_sCustomMenu

CommonSetting.h の 431 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p8(), CFuncLookup::Funccode2Name(), CShareData::Init(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CFuncLookup::Pos2FuncName(), CPropCommon::SetData_p8(), CFuncLookup::SetListItem(), と CShareData::ShareData_IO_CustMenu().

CommonSetting_Helper CommonSetting::m_sHelper

CommonSetting.h の 432 行で定義されています。

参照元 CViewCommander::Command_HOKAN(), CTipWnd::Create(), CPropCommon::DispatchEvent_p10(), CHokanMgr::DoHokan(), CShareData::ExtHTMLHelpIsSet(), CShareData::ExtWinHelpIsSet(), CPropCommon::GetData_p10(), CMigemo::GetDllName(), CShareData::GetExtHTMLHelp(), CShareData::GetExtWinHelp(), CShareData::HTMLHelpIsSingle(), CShareData::Init(), CHokanMgr::KeyProc(), CMigemo::migemo_load_all(), CEditDoc::OpenPropertySheet(), CEditView::PostprocessCommand_hokan(), CPropCommon::SetData_p10(), CShareData::ShareData_IO_Common(), と CEditView::ShowHokanMgr().

CommonSetting_Search CommonSetting::m_sSearch

CommonSetting.h の 433 行で定義されています。

参照元 CMacro::AddLParam(), CEditView::ChangeCurRegexp(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_ToggleKeySearch(), CEditView::Create(), CEditView::DoGrep(), CDlgGrep::DoModal(), CDlgReplace::DoModeless(), CDlgFind::DoModeless(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CPropCommon::GetData_PROP_GREP(), CMacro::HandleCommand(), CShareData::Init(), CNormalProcess::Initialize(), CEditView::ISearchEnter(), IsFuncChecked(), CEditView::IsSearchString(), CEditView::KeyWordHelpSearchDict(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CEditView::OnLBUTTONDBLCLK(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), CDlgDiff::SetData(), CPropCommon::SetData_PROP_GREP(), CShareData::ShareData_IO_Common(), と CEditView::TranslateCommand_grep().

CommonSetting_TabBar CommonSetting::m_sTabBar

CommonSetting.h の 434 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), ActivateFrameWindow(), CTabWnd::AdjustWindowPlacement(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_SHOWTAB(), CEditWnd::DispatchEvent(), CTabWnd::DrawCloseBtn(), CPropCommon::GetData_PROP_TAB(), CKeyBind::GetDefFuncCode(), CTabWnd::GetImageIndex(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CTabWnd::HideOtherWindows(), CShareData::Init(), CTabWnd::InitImageList(), CEditWnd::InitMenu(), IsFuncChecked(), IsFuncEnable(), CTabWnd::LayoutTab(), CEditWnd::LayoutTabBar(), CTabWnd::MoveLeft(), CTabWnd::MoveRight(), CEditWnd::OnClose(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CEditWnd::OnMouseWheel(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CTabWnd::Separate(), CDlgCompare::SetData(), CPropCommon::SetData_PROP_TAB(), CEditDoc::SetParentCaption(), CShareData::ShareData_IO_Common(), CTabWnd::ShowHideWindow(), CTabWnd::TabListMenu(), と CEditWnd::WindowTopMost().

CommonSetting_ToolBar CommonSetting::m_sToolBar

CommonSetting.h の 435 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CPropCommon::GetData_PROP_TOOLBAR(), CShareData::InitToolButtons(), CMainToolBar::OnToolbarTimer(), CPropCommon::SetData_PROP_TOOLBAR(), と CShareData::ShareData_IO_Toolbar().

CommonSetting_OutLine CommonSetting::m_sOutline

CommonSetting.h の 436 行で定義されています。

参照元 CShareData::Init(), CEditDoc::MakeFuncList_BookMark(), CDlgFuncList::OnBnClicked(), CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), CDlgFuncList::OnJump(), CDlgFuncList::OnNotify(), CDlgFuncList::SetData(), と CShareData::ShareData_IO_Common().

CommonSetting_Compare CommonSetting::m_sCompare

CommonSetting.h の 437 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CShareData::Init(), と CShareData::ShareData_IO_Common().

CommonSetting_View CommonSetting::m_sView

CommonSetting.h の 438 行で定義されています。

参照元 CViewCommander::Command_FONT(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE_ALL(), CViewFont::CViewFont(), CShareData::Init(), IsFuncEnable(), CEditView::OnLBUTTONDBLCLK(), CEditView::SetIMECompFormFont(), CShareData::ShareData_IO_Font(), と CViewFont::UpdateFont().

CommonSetting_Others CommonSetting::m_sOthers

CommonSetting.h の 439 行で定義されています。

参照元 CShareData::Init(), OFNHookProc(), OFNHookProcMain(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting メンバ一覧

これは全メンバの一覧です。CommonSetting継承メンバも含んでいます。

m_sBackup | CommonSetting
m_sCompare | CommonSetting
m_sCustomMenu | CommonSetting
m_sEdit | CommonSetting
m_sFile | CommonSetting
m_sFormat | CommonSetting
m_sGeneral | CommonSetting
m_sHelper | CommonSetting
m_sOthers | CommonSetting
m_sOutline | CommonSetting
m_sSearch | CommonSetting
m_sTabBar | CommonSetting
m_sToolBar | CommonSetting
m_sView | CommonSetting
m_sWindow | CommonSetting

Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Backup

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Backup

#include <CommonSetting.h>

CommonSetting_Backupのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

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)

Public 変数

BOOL | m_bBackUp
BOOL | m_bBackUpDialog
BOOL | m_bBackUpFolder
SFilePath m_szBackUpFolder
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
SFilePath m_szBackUpPathAdvanced

説明

CommonSetting.h の 191 行で定義されています。

関数

int CommonSetting_Backup::GetBackupType ( void ) const [inline]

CommonSetting.h の 196 行で定義されています。

参照先 m_nBackUpType.

参照元 CEditDoc::FormatBackUpPath(), と CEditDoc::MakeBackUp().

void CommonSetting_Backup::SetBackupType ( int n ) [inline]

CommonSetting.h の 197 行で定義されています。

参照先 m_nBackUpType.

参照元 CPropCommon::GetData_PROP_BACKUP().

bool CommonSetting_Backup::GetBackupOpt ( int flag ) const [inline]

CommonSetting.h の 199 行で定義されています。

参照先 m_nBackUpType_Opt1.

参照元 CEditDoc::FormatBackUpPath(), と IsAutoBackupEnabled().

void CommonSetting_Backup::SetBackupOpt | ( | int | flag,
 |  | bool | value |
 | ) |  |  | [inline]

CommonSetting.h の 200 行で定義されています。

参照先 m_nBackUpType_Opt1.

参照元 EnableAutoBackup(), と CPropCommon::GetData_PROP_BACKUP().

int CommonSetting_Backup::GetBackupCount ( void ) const [inline]

CommonSetting.h の 203 行で定義されています。

参照先 m_nBackUpType_Opt2.

参照元 CEditDoc::MakeBackUp().

void CommonSetting_Backup::SetBackupCount ( int value ) [inline]

CommonSetting.h の 204 行で定義されています。

参照先 m_nBackUpType_Opt2.

参照元 CPropCommon::GetData_PROP_BACKUP().

int CommonSetting_Backup::GetBackupExtChar ( void ) const [inline]

CommonSetting.h の 207 行で定義されています。

参照先 m_nBackUpType_Opt2.

参照元 CEditDoc::FormatBackUpPath().

void CommonSetting_Backup::SetBackupExtChar ( int value ) [inline]

CommonSetting.h の 208 行で定義されています。

参照先 m_nBackUpType_Opt2.

bool CommonSetting_Backup::IsAutoBackupEnabled ( void ) const [inline]

CommonSetting.h の 212 行で定義されています。

参照先 BKUP_AUTO, と GetBackupOpt().

参照元 CEditDoc::ReloadAutoSaveParam().

void CommonSetting_Backup::EnableAutoBackup ( bool flag ) [inline]

CommonSetting.h の 213 行で定義されています。

参照先 BKUP_AUTO, と SetBackupOpt().

int CommonSetting_Backup::GetAutoBackupInterval ( void ) const [inline]

CommonSetting.h の 215 行で定義されています。

参照先 m_nBackUpType_Opt3.

参照元 CEditDoc::ReloadAutoSaveParam().

void CommonSetting_Backup::SetAutoBackupInterval ( int i ) [inline]

CommonSetting.h の 216 行で定義されています。

参照先 m_nBackUpType_Opt3.

int CommonSetting_Backup::GetBackupTypeAdv ( void ) const [inline]

CommonSetting.h の 219 行で定義されています。

参照先 m_nBackUpType_Opt4.

参照元 CEditDoc::FormatBackUpPath().

void CommonSetting_Backup::SetBackupTypeAdv ( int n ) [inline]

CommonSetting.h の 220 行で定義されています。

参照先 m_nBackUpType_Opt4.

参照元 CPropCommon::GetData_PROP_BACKUP().

変数

BOOL CommonSetting_Backup::m_bBackUp

CommonSetting.h の 223 行で定義されています。

参照元 CEditDoc::FileWrite(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Backup::m_bBackUpDialog

CommonSetting.h の 224 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), CEditDoc::MakeBackUp(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Backup::m_bBackUpFolder

CommonSetting.h の 225 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), CEditDoc::MakeBackUp(), と CShareData::ShareData_IO_Common().

SFilePath CommonSetting_Backup::m_szBackUpFolder

CommonSetting.h の 226 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), CEditDoc::MakeBackUp(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType

CommonSetting.h の 227 行で定義されています。

参照元 GetBackupType(), CShareData::Init(), SetBackupType(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType_Opt1

CommonSetting.h の 228 行で定義されています。

参照元 GetBackupOpt(), CShareData::Init(), SetBackupOpt(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType_Opt2

CommonSetting.h の 229 行で定義されています。

参照元 GetBackupCount(), GetBackupExtChar(), CShareData::Init(), SetBackupCount(), SetBackupExtChar(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType_Opt3

CommonSetting.h の 230 行で定義されています。

参照元 GetAutoBackupInterval(), CShareData::Init(), SetAutoBackupInterval(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType_Opt4

CommonSetting.h の 231 行で定義されています。

参照元 GetBackupTypeAdv(), CShareData::Init(), SetBackupTypeAdv(), と CShareData::ShareData_IO_Common().

int CommonSetting_Backup::m_nBackUpType_Opt5

CommonSetting.h の 232 行で定義されています。

参照元 CShareData::Init().

int CommonSetting_Backup::m_nBackUpType_Opt6

CommonSetting.h の 233 行で定義されています。

参照元 CShareData::Init().

BOOL CommonSetting_Backup::m_bBackUpDustBox

CommonSetting.h の 234 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), CEditDoc::MakeBackUp(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Backup::m_bBackUpPathAdvanced

CommonSetting.h の 235 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), と CShareData::ShareData_IO_Common().

SFilePath CommonSetting_Backup::m_szBackUpPathAdvanced

CommonSetting.h の 236 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), CShareData::Init(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Backup メンバ一覧

これは全メンバの一覧です。CommonSetting_Backup継承メンバも含んでいます。

EnableAutoBackup(bool flag) | CommonSetting_Backup | [inline]
GetAutoBackupInterval(void) const | CommonSetting_Backup | [inline]
GetBackupCount(void) const | CommonSetting_Backup | [inline]
GetBackupExtChar(void) const | CommonSetting_Backup | [inline]
GetBackupOpt(int flag) const | CommonSetting_Backup | [inline]
GetBackupType(void) const | CommonSetting_Backup | [inline]
GetBackupTypeAdv(void) const | CommonSetting_Backup | [inline]
IsAutoBackupEnabled(void) const | CommonSetting_Backup | [inline]
m_bBackUp | CommonSetting_Backup |
m_bBackUpDialog | CommonSetting_Backup |
m_bBackUpDustBox | CommonSetting_Backup |
m_bBackUpFolder | CommonSetting_Backup |
m_bBackUpPathAdvanced | CommonSetting_Backup |
m_nBackUpType | CommonSetting_Backup |
m_nBackUpType_Opt1 | CommonSetting_Backup |
m_nBackUpType_Opt2 | CommonSetting_Backup |
m_nBackUpType_Opt3 | CommonSetting_Backup |
m_nBackUpType_Opt4 | CommonSetting_Backup |
m_nBackUpType_Opt5 | CommonSetting_Backup |
m_nBackUpType_Opt6 | CommonSetting_Backup |
m_szBackUpFolder | CommonSetting_Backup |
m_szBackUpPathAdvanced | CommonSetting_Backup |
SetAutoBackupInterval(int i) | CommonSetting_Backup | [inline]
SetBackupCount(int value) | CommonSetting_Backup | [inline]
SetBackupExtChar(int value) | CommonSetting_Backup | [inline]
SetBackupOpt(int flag, bool value) | CommonSetting_Backup | [inline]
SetBackupType(int n) | CommonSetting_Backup | [inline]
SetBackupTypeAdv(int n) | CommonSetting_Backup | [inline]

Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Compare

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Compare

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

BOOL m_bCompareAndTileHorz

説明

CommonSetting.h の 389 行で定義されています。

変数

BOOL CommonSetting_Compare::m_bCompareAndTileHorz

CommonSetting.h の 392 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CShareData::Init(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Compare メンバ一覧

これは全メンバの一覧です。CommonSetting_Compare継承メンバも含んでいます。

m_bCompareAndTileHorz CommonSetting_Compare

Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_CustomMenu

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_CustomMenu

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

WCHAR | 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]
KEYCODE m_nCustMenuItemKeyArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]

説明

CommonSetting.h の 263 行で定義されています。

変数

WCHAR CommonSetting_CustomMenu::m_szCustMenuNameArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN+1]

CommonSetting.h の 265 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), CFuncLookup::Funccode2Name(), CShareData::Init(), CEditWnd::InitMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CFuncLookup::Pos2FuncName(), CPropCommon::SetData_p8(), CFuncLookup::SetListItem(), と CShareData::ShareData_IO_CustMenu().

int CommonSetting_CustomMenu::m_nCustMenuItemNumArr[MAX_CUSTOM_MENU]

CommonSetting.h の 266 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p8(), CShareData::Init(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CPropCommon::SetData_p8(), と CShareData::ShareData_IO_CustMenu().

int CommonSetting_CustomMenu::m_nCustMenuItemFuncArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]

CommonSetting.h の 267 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p8(), CShareData::Init(), CShareData::InitPopupMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CPropCommon::SetData_p8(), と CShareData::ShareData_IO_CustMenu().

KEYCODE CommonSetting_CustomMenu::m_nCustMenuItemKeyArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]

CommonSetting.h の 268 行で定義されています。

参照元 CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p8(), CShareData::Init(), CShareData::InitPopupMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CPropCommon::SetData_p8(), と CShareData::ShareData_IO_CustMenu().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_CustomMenu メンバ一覧

これは全メンバの一覧です。CommonSetting_CustomMenu継承メンバも含んでいます。

m_nCustMenuItemFuncArr | CommonSetting_CustomMenu
m_nCustMenuItemKeyArr | CommonSetting_CustomMenu
m_nCustMenuItemNumArr | CommonSetting_CustomMenu
m_szCustMenuNameArr | CommonSetting_CustomMenu

Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Edit

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Edit

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

bool | m_bAddCRLFWhenCopy
BOOL | m_bCopyAndDisablSelection
bool | m_bEnableLineModePaste
BOOL | m_bUseOLE_DragDrop
BOOL | m_bUseOLE_DropSource
BOOL | m_bNotOverWriteCRLF
BOOL | m_bJumpSingleClickURL
BOOL | m_bSelectClickedURL
BOOL | m_bAutoColmnPaste

説明

CommonSetting.h の 109 行で定義されています。

変数

bool CommonSetting_Edit::m_bAddCRLFWhenCopy

CommonSetting.h の 112 行で定義されています。

参照元 CViewCommander::Command_REPLACE_ALL(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::GetCurrentTextForSearch(), CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CEditView::KeyWordHelpSearchDict(), CEditView::OnLBUTTONDOWN(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bCopyAndDisablSelection

CommonSetting.h の 113 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

bool CommonSetting_Edit::m_bEnableLineModePaste

CommonSetting.h の 114 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bUseOLE_DragDrop

CommonSetting.h の 117 行で定義されています。

参照元 CEditView::DragEnter(), CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CEditView::OnTimer(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bUseOLE_DropSource

CommonSetting.h の 118 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bNotOverWriteCRLF

CommonSetting.h の 121 行で定義されています。

参照元 CViewCommander::Command_IME_CHAR(), CViewCommander::Command_WCHAR(), CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bJumpSingleClickURL

CommonSetting.h の 124 行で定義されています。

BOOL CommonSetting_Edit::m_bSelectClickedURL

CommonSetting.h の 125 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), CShareData::Init(), CEditView::OnLBUTTONDOWN(), CPropCommon::SetData_PROP_EDIT(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Edit::m_bAutoColmnPaste

CommonSetting.h の 129 行で定義されています。

参照元 CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE_ALL(), CShareData::Init(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Edit メンバ一覧

これは全メンバの一覧です。CommonSetting_Edit継承メンバも含んでいます。

m_bAddCRLFWhenCopy | CommonSetting_Edit
m_bAutoColmnPaste | CommonSetting_Edit
m_bCopyAndDisablSelection | CommonSetting_Edit
m_bEnableLineModePaste | CommonSetting_Edit
m_bJumpSingleClickURL | CommonSetting_Edit
m_bNotOverWriteCRLF | CommonSetting_Edit
m_bSelectClickedURL | CommonSetting_Edit
m_bUseOLE_DragDrop | CommonSetting_Edit
m_bUseOLE_DropSource | CommonSetting_Edit

Sakura-Editorに対してSat Nov 17 20:28:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_File

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_File

#include <CommonSetting.h>

すべてのメンバ一覧

Public メソッド

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 変数

EShareMode m_nFileShareMode
BOOL | m_bCheckFileTimeStamp
BOOL | m_bEnableUnmodifiedOverwrite
BOOL | m_bNoFilterSaveNew
BOOL | m_bNoFilterSaveFile
BOOL | m_bDropFileAndClose
int | m_nDropFileNumMax
BOOL | m_bRestoreCurPosition
BOOL | m_bRestoreBookmarks
BOOL | m_bAutoMIMEdecode
BOOL | m_bQueryIfCodeChange
BOOL | m_bAlertIfFileNotExist

説明

CommonSetting.h の 142 行で定義されています。

関数

bool CommonSetting_File::GetRestoreCurPosition ( void ) const [inline]

CommonSetting.h の 146 行で定義されています。

参照先 m_bRestoreCurPosition.

参照元 CControlTray::DispatchEvent(), と CEditDoc::FileRead().

void CommonSetting_File::SetRestoreCurPosition ( bool i ) [inline]

CommonSetting.h の 147 行で定義されています。

参照先 m_bRestoreCurPosition.

bool CommonSetting_File::GetRestoreBookmarks ( void ) const [inline]

CommonSetting.h の 150 行で定義されています。

参照先 m_bRestoreBookmarks.

参照元 CEditDoc::FileRead().

void CommonSetting_File::SetRestoreBookmarks ( bool i ) [inline]

CommonSetting.h の 151 行で定義されています。

参照先 m_bRestoreBookmarks.

bool CommonSetting_File::GetAutoMIMEdecode ( void ) const [inline]

CommonSetting.h の 154 行で定義されています。

参照先 m_bAutoMIMEdecode.

参照元 CEditDoc::FileRead().

void CommonSetting_File::SetAutoMIMEdecode ( bool i ) [inline]

CommonSetting.h の 155 行で定義されています。

参照先 m_bAutoMIMEdecode.

bool CommonSetting_File::GetQueryIfCodeChange ( void ) const [inline]

CommonSetting.h の 158 行で定義されています。

参照先 m_bQueryIfCodeChange.

void CommonSetting_File::SetQueryIfCodeChange ( bool i ) [inline]

CommonSetting.h の 159 行で定義されています。

参照先 m_bQueryIfCodeChange.

bool CommonSetting_File::GetAlertIfFileNotExist ( void ) const [inline]

CommonSetting.h の 162 行で定義されています。

参照先 m_bAlertIfFileNotExist.

参照元 CEditDoc::FileRead().

void CommonSetting_File::SetAlertIfFileNotExist ( bool i ) [inline]

CommonSetting.h の 163 行で定義されています。

参照先 m_bAlertIfFileNotExist.

変数

EShareMode CommonSetting_File::m_nFileShareMode

CommonSetting.h の 167 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp(), CEditDoc::DoFileLock(), CShareData::Init(), CEditDoc::OnChangeSetting(), CDlgProperty::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bCheckFileTimeStamp

CommonSetting.h の 168 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp(), CShareData::Init(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bEnableUnmodifiedOverwrite

CommonSetting.h の 171 行で定義されています。

参照元 CEditDoc::FileSave(), CShareData::Init(), IsFuncEnable(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bNoFilterSaveNew

CommonSetting.h の 175 行で定義されています。

参照元 CShareData::Init(), CEditDoc::SaveFileDialog(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bNoFilterSaveFile

CommonSetting.h の 176 行で定義されています。

参照元 CShareData::Init(), CEditDoc::SaveFileDialog(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bDropFileAndClose

CommonSetting.h の 179 行で定義されています。

参照元 CShareData::Init(), CEditWnd::OnDropFiles(), と CShareData::ShareData_IO_Common().

int CommonSetting_File::m_nDropFileNumMax

CommonSetting.h の 180 行で定義されています。

参照元 CShareData::Init(), CEditWnd::OnDropFiles(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bRestoreCurPosition

CommonSetting.h の 181 行で定義されています。

参照元 GetRestoreCurPosition(), CShareData::Init(), SetRestoreCurPosition(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bRestoreBookmarks

CommonSetting.h の 182 行で定義されています。

参照元 GetRestoreBookmarks(), CShareData::Init(), SetRestoreBookmarks(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bAutoMIMEdecode

CommonSetting.h の 183 行で定義されています。

参照元 GetAutoMIMEdecode(), CShareData::Init(), SetAutoMIMEdecode(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bQueryIfCodeChange

CommonSetting.h の 184 行で定義されています。

参照元 GetQueryIfCodeChange(), CShareData::Init(), CEditWnd::OnDropFiles(), CEditWnd::OpenDocumentWhenCreate(), CEditDoc::OpenFile(), SetQueryIfCodeChange(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_File::m_bAlertIfFileNotExist

CommonSetting.h の 185 行で定義されています。

参照元 GetAlertIfFileNotExist(), CShareData::Init(), SetAlertIfFileNotExist(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_File メンバ一覧

これは全メンバの一覧です。CommonSetting_File継承メンバも含んでいます。

GetAlertIfFileNotExist(void) const | CommonSetting_File | [inline]
GetAutoMIMEdecode(void) const | CommonSetting_File | [inline]
GetQueryIfCodeChange(void) const | CommonSetting_File | [inline]
GetRestoreBookmarks(void) const | CommonSetting_File | [inline]
GetRestoreCurPosition(void) const | CommonSetting_File | [inline]
m_bAlertIfFileNotExist | CommonSetting_File |
m_bAutoMIMEdecode | CommonSetting_File |
m_bCheckFileTimeStamp | CommonSetting_File |
m_bDropFileAndClose | CommonSetting_File |
m_bEnableUnmodifiedOverwrite | CommonSetting_File |
m_bNoFilterSaveFile | CommonSetting_File |
m_bNoFilterSaveNew | CommonSetting_File |
m_bQueryIfCodeChange | CommonSetting_File |
m_bRestoreBookmarks | CommonSetting_File |
m_bRestoreCurPosition | CommonSetting_File |
m_nDropFileNumMax | CommonSetting_File |
m_nFileShareMode | CommonSetting_File |
SetAlertIfFileNotExist(bool i) | CommonSetting_File | [inline]
SetAutoMIMEdecode(bool i) | CommonSetting_File | [inline]
SetQueryIfCodeChange(bool i) | CommonSetting_File | [inline]
SetRestoreBookmarks(bool i) | CommonSetting_File | [inline]
SetRestoreCurPosition(bool i) | CommonSetting_File | [inline]

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Format

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Format

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

int | m_nDateFormatType
TCHAR | m_szDateFormat [MAX_DATETIMEFOREMAT_LEN]
int | m_nTimeFormatType
TCHAR | m_szTimeFormat [MAX_DATETIMEFOREMAT_LEN]
wchar_t | m_szMidashiKigou [256]
wchar_t | m_szInyouKigou [32]

説明

CommonSetting.h の 243 行で定義されています。

変数

int CommonSetting_Format::m_nDateFormatType

CommonSetting.h の 246 行で定義されています。

参照元 CPropCommon::ChangeDateExample(), CPropCommon::GetData_p9(), CShareData::Init(), CShareData::MyGetDateFormat(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Format::m_szDateFormat[MAX_DATETIMEFOREMAT_LEN]

CommonSetting.h の 247 行で定義されています。

参照元 CPropCommon::ChangeDateExample(), CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), CShareData::Init(), CShareData::MyGetDateFormat(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

int CommonSetting_Format::m_nTimeFormatType

CommonSetting.h の 250 行で定義されています。

参照元 CPropCommon::GetData_p9(), CShareData::Init(), CShareData::MyGetTimeFormat(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Format::m_szTimeFormat[MAX_DATETIMEFOREMAT_LEN]

CommonSetting.h の 251 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), CShareData::Init(), CShareData::MyGetTimeFormat(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

wchar_t CommonSetting_Format::m_szMidashiKigou[256]

CommonSetting.h の 254 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), CShareData::Init(), CEditDoc::MakeTopicList_txt(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

wchar_t CommonSetting_Format::m_szInyouKigou[32]

CommonSetting.h の 257 行で定義されています。

参照元 CViewCommander::Command_SET_QUOTESTRING(), CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), CShareData::Init(), CPropCommon::SetData_p9(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Format メンバ一覧

これは全メンバの一覧です。CommonSetting_Format継承メンバも含んでいます。

m_nDateFormatType | CommonSetting_Format
m_nTimeFormatType | CommonSetting_Format
m_szDateFormat | CommonSetting_Format
m_szInyouKigou | CommonSetting_Format
m_szMidashiKigou | CommonSetting_Format
m_szTimeFormat | CommonSetting_Format

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_General

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_General

#include <CommonSetting.h>

すべてのメンバ一覧

Public メソッド

int | GetCaretType (void) const
void | SetCaretType (const int f)

Public 変数

int | m_nCaretType
int | m_bIsINSMode
int | m_bIsFreeCursorMode
BOOL | m_bStopsBothEndsWhenSearchWord
BOOL | m_bStopsBothEndsWhenSearchParagraph
BOOL | m_bNoCaretMoveByActivation
CLayoutInt m_nRepeatedScrollLineNum
BOOL | m_nRepeatedScroll_Smooth
BOOL | m_bUseTaskTray
BOOL | m_bStayTaskTray
WORD | m_wTrayMenuHotKeyCode
WORD | m_wTrayMenuHotKeyMods
int | m_nMRUArrNum_MAX
int | m_nOPENFOLDERArrNum_MAX
BOOL | m_bCloseAllConfirm
BOOL | m_bExitConfirm
BOOL | m_bDispExitingDialog

説明

CommonSetting.h の 24 行で定義されています。

関数

int CommonSetting_General::GetCaretType ( void ) const [inline]

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

参照先 m_nCaretType.

参照元 CPropCommon::SetData_p1(), と CCaret::ShowEditCaret().

void CommonSetting_General::SetCaretType ( const int f ) [inline]

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

参照先 m_nCaretType.

参照元 CPropCommon::GetData_p1().

変数

int CommonSetting_General::m_nCaretType

CommonSetting.h の 34 行で定義されています。

参照元 GetCaretType(), CShareData::Init(), SetCaretType(), と CShareData::ShareData_IO_Common().

int CommonSetting_General::m_bIsINSMode

CommonSetting.h の 35 行で定義されています。

参照元 CEditDoc::CEditDoc(), CShareData::Init(), と CEditDoc::Init().

int CommonSetting_General::m_bIsFreeCursorMode

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

参照元 CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CCaret::Cursor_UPDOWN(), CPropCommon::GetData_p1(), CShareData::Init(), CCaret::MoveCursorProperly(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bStopsBothEndsWhenSearchWord

CommonSetting.h の 37 行で定義されています。

参照元 CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph

CommonSetting.h の 38 行で定義されています。

参照元 CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bNoCaretMoveByActivation

CommonSetting.h の 39 行で定義されています。

参照元 CEditView::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

CLayoutInt CommonSetting_General::m_nRepeatedScrollLineNum

CommonSetting.h の 42 行で定義されています。

参照元 CViewCommander::Command_DOWN(), CViewCommander::Command_UP(), CPropCommon::GetData_p1(), CShareData::Init(), CEditView::OnVScroll(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_nRepeatedScroll_Smooth

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

参照元 CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bUseTaskTray

CommonSetting.h の 46 行で定義されています。

参照元 CControlTray::CreateTrayIcon(), CControlTray::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bStayTaskTray

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

参照元 CControlTray::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

WORD CommonSetting_General::m_wTrayMenuHotKeyCode

CommonSetting.h の 48 行で定義されています。

参照元 CControlTray::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

WORD CommonSetting_General::m_wTrayMenuHotKeyMods

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

参照元 CControlTray::DispatchEvent(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

int CommonSetting_General::m_nMRUArrNum_MAX

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

参照元 CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

int CommonSetting_General::m_nOPENFOLDERArrNum_MAX

CommonSetting.h の 53 行で定義されています。

参照元 CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bCloseAllConfirm

CommonSetting.h の 56 行で定義されています。

参照元 CControlTray::CloseAllEditor(), CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_General::m_bExitConfirm

CommonSetting.h の 57 行で定義されています。

参照元 CPropCommon::GetData_p1(), CShareData::Init(), CPropCommon::SetData_p1(), CShareData::ShareData_IO_Common(), と CControlTray::TerminateApplication().

BOOL CommonSetting_General::m_bDispExitingDialog

CommonSetting.h の 60 行で定義されています。

参照元 CShareData::Init(), CControlTray::OnDestroy(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_General メンバ一覧

これは全メンバの一覧です。CommonSetting_General継承メンバも含んでいます。

GetCaretType(void) const | CommonSetting_General | [inline]
m_bCloseAllConfirm | CommonSetting_General |
m_bDispExitingDialog | CommonSetting_General |
m_bExitConfirm | CommonSetting_General |
m_bIsFreeCursorMode | CommonSetting_General |
m_bIsINSMode | CommonSetting_General |
m_bNoCaretMoveByActivation | CommonSetting_General |
m_bStayTaskTray | CommonSetting_General |
m_bStopsBothEndsWhenSearchParagraph | CommonSetting_General |
m_bStopsBothEndsWhenSearchWord | CommonSetting_General |
m_bUseTaskTray | CommonSetting_General |
m_nCaretType | CommonSetting_General |
m_nMRUArrNum_MAX | CommonSetting_General |
m_nOPENFOLDERArrNum_MAX | CommonSetting_General |
m_nRepeatedScroll_Smooth | CommonSetting_General |
m_nRepeatedScrollLineNum | CommonSetting_General |
m_wTrayMenuHotKeyCode | CommonSetting_General |
m_wTrayMenuHotKeyMods | CommonSetting_General |
SetCaretType(const int f) | CommonSetting_General | [inline]

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Helper

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Helper

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

BOOL | m_bHokanKey_RETURN
BOOL | m_bHokanKey_TAB
BOOL | m_bHokanKey_RIGHT
BOOL | m_bHokanKey_SPACE
TCHAR | m_szExtHelp [_MAX_PATH]
TCHAR | m_szExtHtmlHelp [_MAX_PATH]
BOOL | m_bHtmlHelpIsSingle
TCHAR | m_szMigemoDll [_MAX_PATH]
TCHAR | m_szMigemoDict [_MAX_PATH]
LOGFONT | m_lf_kh
int | m_bUseHokan

説明

CommonSetting.h の 275 行で定義されています。

変数

BOOL CommonSetting_Helper::m_bHokanKey_RETURN

CommonSetting.h の 278 行で定義されています。

参照元 CHokanMgr::DoHokan(), CPropCommon::GetData_p10(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Helper::m_bHokanKey_TAB

CommonSetting.h の 279 行で定義されています。

参照元 CHokanMgr::DoHokan(), CPropCommon::GetData_p10(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Helper::m_bHokanKey_RIGHT

CommonSetting.h の 280 行で定義されています。

参照元 CHokanMgr::DoHokan(), CPropCommon::GetData_p10(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Helper::m_bHokanKey_SPACE

CommonSetting.h の 281 行で定義されています。

参照元 CShareData::Init(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Helper::m_szExtHelp[_MAX_PATH]

CommonSetting.h の 284 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10(), CShareData::ExtWinHelpIsSet(), CPropCommon::GetData_p10(), CShareData::GetExtWinHelp(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Helper::m_szExtHtmlHelp[_MAX_PATH]

CommonSetting.h の 287 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10(), CShareData::ExtHTMLHelpIsSet(), CPropCommon::GetData_p10(), CShareData::GetExtHTMLHelp(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Helper::m_bHtmlHelpIsSingle

CommonSetting.h の 288 行で定義されています。

参照元 CPropCommon::GetData_p10(), CShareData::HTMLHelpIsSingle(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Helper::m_szMigemoDll[_MAX_PATH]

CommonSetting.h の 291 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10(), CPropCommon::GetData_p10(), CMigemo::GetDllName(), CShareData::Init(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Helper::m_szMigemoDict[_MAX_PATH]

CommonSetting.h の 292 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10(), CPropCommon::GetData_p10(), CShareData::Init(), CMigemo::migemo_load_all(), CPropCommon::SetData_p10(), と CShareData::ShareData_IO_Common().

LOGFONT CommonSetting_Helper::m_lf_kh

CommonSetting.h の 295 行で定義されています。

参照元 CTipWnd::Create(), CPropCommon::DispatchEvent_p10(), CShareData::Init(), CEditDoc::OpenPropertySheet(), と CShareData::ShareData_IO_Common().

int CommonSetting_Helper::m_bUseHokan

CommonSetting.h の 298 行で定義されています。

参照元 CViewCommander::Command_HOKAN(), CHokanMgr::DoHokan(), CShareData::Init(), CHokanMgr::KeyProc(), CEditView::PostprocessCommand_hokan(), CShareData::ShareData_IO_Common(), と CEditView::ShowHokanMgr().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Helper メンバ一覧

これは全メンバの一覧です。CommonSetting_Helper継承メンバも含んでいます。

m_bHokanKey_RETURN | CommonSetting_Helper
m_bHokanKey_RIGHT | CommonSetting_Helper
m_bHokanKey_SPACE | CommonSetting_Helper
m_bHokanKey_TAB | CommonSetting_Helper
m_bHtmlHelpIsSingle | CommonSetting_Helper
m_bUseHokan | CommonSetting_Helper
m_lf_kh | CommonSetting_Helper
m_szExtHelp | CommonSetting_Helper
m_szExtHtmlHelp | CommonSetting_Helper
m_szMigemoDict | CommonSetting_Helper
m_szMigemoDll | CommonSetting_Helper

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Others

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Others

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

RECT m_rcOpenDialog

説明

CommonSetting.h の 408 行で定義されています。

変数

RECT CommonSetting_Others::m_rcOpenDialog

CommonSetting.h の 411 行で定義されています。

参照元 CShareData::Init(), OFNHookProc(), OFNHookProcMain(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Others メンバ一覧

これは全メンバの一覧です。CommonSetting_Others継承メンバも含んでいます。

m_rcOpenDialog CommonSetting_Others

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_OutLine

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_OutLine

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

int | m_bRememberOutlineWindowPos
int | m_widthOutlineWindow
int | m_heightOutlineWindow
int | m_xOutlineWindowPos
int | m_yOutlineWindowPos
BOOL | m_bAutoCloseDlgFuncList
BOOL | m_bFunclistSetFocusOnJump
BOOL | m_bMarkUpBlankLineEnable

説明

CommonSetting.h の 371 行で定義されています。

変数

int CommonSetting_OutLine::m_bRememberOutlineWindowPos

CommonSetting.h の 374 行で定義されています。

参照元 CDlgFuncList::OnBnClicked(), CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), CDlgFuncList::SetData(), と CShareData::ShareData_IO_Common().

int CommonSetting_OutLine::m_widthOutlineWindow

CommonSetting.h の 375 行で定義されています。

参照元 CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), と CShareData::ShareData_IO_Common().

int CommonSetting_OutLine::m_heightOutlineWindow

CommonSetting.h の 376 行で定義されています。

参照元 CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), と CShareData::ShareData_IO_Common().

int CommonSetting_OutLine::m_xOutlineWindowPos

CommonSetting.h の 377 行で定義されています。

参照元 CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), と CShareData::ShareData_IO_Common().

int CommonSetting_OutLine::m_yOutlineWindowPos

CommonSetting.h の 378 行で定義されています。

参照元 CDlgFuncList::OnDestroy(), CDlgFuncList::OnInitDialog(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_OutLine::m_bAutoCloseDlgFuncList

CommonSetting.h の 381 行で定義されています。

参照元 CShareData::Init(), CDlgFuncList::OnBnClicked(), CDlgFuncList::OnJump(), CDlgFuncList::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_OutLine::m_bFunclistSetFocusOnJump

CommonSetting.h の 382 行で定義されています。

参照元 CShareData::Init(), CDlgFuncList::OnBnClicked(), CDlgFuncList::OnJump(), CDlgFuncList::OnNotify(), CDlgFuncList::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_OutLine::m_bMarkUpBlankLineEnable

CommonSetting.h の 383 行で定義されています。

参照元 CShareData::Init(), CEditDoc::MakeFuncList_BookMark(), CDlgFuncList::OnBnClicked(), CDlgFuncList::SetData(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_OutLine メンバ一覧

これは全メンバの一覧です。CommonSetting_OutLine継承メンバも含んでいます。

m_bAutoCloseDlgFuncList | CommonSetting_OutLine
m_bFunclistSetFocusOnJump | CommonSetting_OutLine
m_bMarkUpBlankLineEnable | CommonSetting_OutLine
m_bRememberOutlineWindowPos | CommonSetting_OutLine
m_heightOutlineWindow | CommonSetting_OutLine
m_widthOutlineWindow | CommonSetting_OutLine
m_xOutlineWindowPos | CommonSetting_OutLine
m_yOutlineWindowPos | CommonSetting_OutLine

Sakura-Editorに対してSat Nov 17 20:28:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Search

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Search

#include <CommonSetting.h>

CommonSetting_Searchのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

SSearchOption m_sSearchOption
int | m_bConsecutiveAll
int | m_bNOTIFYNOTFOUND
int | m_bSelectedArea
int | m_bGrepSubFolder
BOOL | m_bGrepOutputLine
int | m_nGrepOutputStyle
int | m_bGrepDefaultFolder
ECodeType m_nGrepCharSet
BOOL | m_bCaretTextForSearch
TCHAR | m_szRegexpLib [_MAX_PATH]
BOOL | m_bGrepExitConfirm
int | m_bGrepRealTimeView
BOOL | m_bGTJW_RETURN
BOOL | m_bGTJW_LDBLCLK
BOOL | m_bAutoCloseDlgFind
BOOL | m_bAutoCloseDlgReplace
BOOL | m_bSearchAll
BOOL | m_bUseCaretKeyWord

説明

CommonSetting.h の 304 行で定義されています。

変数

SSearchOption CommonSetting_Search::m_sSearchOption

CommonSetting.h の 306 行で定義されています。

参照元 CMacro::AddLParam(), CEditView::ChangeCurRegexp(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_CLEARMARK(), CDlgGrep::DoModal(), CDlgReplace::DoModeless(), CDlgFind::DoModeless(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CMacro::HandleCommand(), CShareData::Init(), CNormalProcess::Initialize(), CEditView::ISearchEnter(), CEditView::IsSearchString(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bConsecutiveAll

CommonSetting.h の 308 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_REPLACE_ALL(), CDlgReplace::DoModeless(), CDlgReplace::GetData(), CMacro::HandleCommand(), CShareData::Init(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bNOTIFYNOTFOUND

CommonSetting.h の 309 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CDlgReplace::DoModeless(), CDlgFind::DoModeless(), CDlgReplace::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CMacro::HandleCommand(), CShareData::Init(), CDlgDiff::SetData(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bSelectedArea

CommonSetting.h の 310 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_REPLACE_ALL(), CDlgReplace::DoModeless(), CDlgReplace::GetData(), CMacro::HandleCommand(), CShareData::Init(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bGrepSubFolder

CommonSetting.h の 312 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::DoModal(), CDlgGrep::GetData(), CShareData::Init(), CNormalProcess::Initialize(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bGrepOutputLine

CommonSetting.h の 313 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::DoModal(), CDlgGrep::GetData(), CShareData::Init(), CNormalProcess::Initialize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_nGrepOutputStyle

CommonSetting.h の 314 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::DoModal(), CDlgGrep::GetData(), CShareData::Init(), CNormalProcess::Initialize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bGrepDefaultFolder

CommonSetting.h の 315 行で定義されています。

参照元 CShareData::Init(), CDlgGrep::OnBnClicked(), CDlgGrep::SetData(), と CShareData::ShareData_IO_Common().

ECodeType CommonSetting_Search::m_nGrepCharSet

CommonSetting.h の 316 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::DoModal(), CDlgGrep::GetData(), CShareData::Init(), CNormalProcess::Initialize(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bCaretTextForSearch

CommonSetting.h の 319 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CPropCommon::SetData_PROP_GREP(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Search::m_szRegexpLib[_MAX_PATH]

CommonSetting.h の 320 行で定義されています。

参照元 CEditView::Create(), CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CPropCommon::SetData_PROP_GREP(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bGrepExitConfirm

CommonSetting.h の 322 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CPropCommon::SetData_PROP_GREP(), と CShareData::ShareData_IO_Common().

int CommonSetting_Search::m_bGrepRealTimeView

CommonSetting.h の 323 行で定義されています。

参照元 CEditView::DoGrep(), CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CPropCommon::SetData_PROP_GREP(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bGTJW_RETURN

CommonSetting.h の 325 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CPropCommon::SetData_PROP_GREP(), CShareData::ShareData_IO_Common(), と CEditView::TranslateCommand_grep().

BOOL CommonSetting_Search::m_bGTJW_LDBLCLK

CommonSetting.h の 326 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), CShareData::Init(), CEditView::OnLBUTTONDBLCLK(), CPropCommon::SetData_PROP_GREP(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bAutoCloseDlgFind

CommonSetting.h の 329 行で定義されています。

参照元 CMacro::AddLParam(), CDlgFind::GetData(), CMacro::HandleCommand(), CShareData::Init(), CDlgFind::OnBnClicked(), CDlgFind::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bAutoCloseDlgReplace

CommonSetting.h の 330 行で定義されています。

参照元 CDlgReplace::GetData(), CShareData::Init(), CDlgReplace::OnBnClicked(), CDlgReplace::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bSearchAll

CommonSetting.h の 331 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CDlgReplace::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CMacro::HandleCommand(), CShareData::Init(), CDlgReplace::SetData(), CDlgFind::SetData(), CDlgDiff::SetData(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Search::m_bUseCaretKeyWord

CommonSetting.h の 334 行で定義されています。

参照元 CViewCommander::Command_ToggleKeySearch(), IsFuncChecked(), と CEditView::KeyWordHelpSearchDict().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Search メンバ一覧

これは全メンバの一覧です。CommonSetting_Search継承メンバも含んでいます。

m_bAutoCloseDlgFind | CommonSetting_Search
m_bAutoCloseDlgReplace | CommonSetting_Search
m_bCaretTextForSearch | CommonSetting_Search
m_bConsecutiveAll | CommonSetting_Search
m_bGrepDefaultFolder | CommonSetting_Search
m_bGrepExitConfirm | CommonSetting_Search
m_bGrepOutputLine | CommonSetting_Search
m_bGrepRealTimeView | CommonSetting_Search
m_bGrepSubFolder | CommonSetting_Search
m_bGTJW_LDBLCLK | CommonSetting_Search
m_bGTJW_RETURN | CommonSetting_Search
m_bNOTIFYNOTFOUND | CommonSetting_Search
m_bSearchAll | CommonSetting_Search
m_bSelectedArea | CommonSetting_Search
m_bUseCaretKeyWord | CommonSetting_Search
m_nGrepCharSet | CommonSetting_Search
m_nGrepOutputStyle | CommonSetting_Search
m_sSearchOption | CommonSetting_Search
m_szRegexpLib | CommonSetting_Search

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_TabBar

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_TabBar

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

BOOL | m_bDispTabWnd
BOOL | m_bDispTabWndMultiWin
BOOL | m_bTab_RetainEmptyWin
最後の文書が閉じられたとき(無題)を残す
BOOL | m_bTab_CloseOneWin
タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる
wchar_t | m_szTabWndCaption [MAX_CAPTION_CONF_LEN]
BOOL | m_bSameTabWidth
BOOL | m_bDispTabIcon
BOOL | m_bSortTabList
BOOL | m_bTab_ListFull
BOOL | m_bChgWndByWheel

説明

CommonSetting.h の 340 行で定義されています。

変数

BOOL CommonSetting_TabBar::m_bDispTabWnd

CommonSetting.h の 342 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), ActivateFrameWindow(), CTabWnd::AdjustWindowPlacement(), CViewCommander::Command_SHOWTAB(), CEditWnd::DispatchEvent(), CTabWnd::DrawCloseBtn(), CPropCommon::GetData_PROP_TAB(), CKeyBind::GetDefFuncCode(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CTabWnd::HideOtherWindows(), CShareData::Init(), CEditWnd::InitMenu(), IsFuncChecked(), IsFuncEnable(), CEditWnd::LayoutTabBar(), CTabWnd::MoveLeft(), CTabWnd::MoveRight(), CEditWnd::OnClose(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CTabWnd::Separate(), CDlgCompare::SetData(), CPropCommon::SetData_PROP_TAB(), CShareData::ShareData_IO_Common(), CTabWnd::ShowHideWindow(), と CEditWnd::WindowTopMost().

BOOL CommonSetting_TabBar::m_bDispTabWndMultiWin

CommonSetting.h の 343 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), ActivateFrameWindow(), CTabWnd::AdjustWindowPlacement(), CViewCommander::Command_BIND_WINDOW(), CEditWnd::DispatchEvent(), CTabWnd::DrawCloseBtn(), CPropCommon::GetData_PROP_TAB(), CKeyBind::GetDefFuncCode(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CTabWnd::HideOtherWindows(), CShareData::Init(), CEditWnd::InitMenu(), IsFuncChecked(), IsFuncEnable(), CEditWnd::OnClose(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CTabWnd::Separate(), CDlgCompare::SetData(), CPropCommon::SetData_PROP_TAB(), CShareData::ShareData_IO_Common(), CTabWnd::ShowHideWindow(), と CEditWnd::WindowTopMost().

BOOL CommonSetting_TabBar::m_bTab_RetainEmptyWin

最後の文書が閉じられたとき(無題)を残す

CommonSetting.h の 344 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CPropCommon::GetData_PROP_TAB(), CShareData::Init(), CPropCommon::SetData_PROP_TAB(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_TabBar::m_bTab_CloseOneWin

タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる

CommonSetting.h の 345 行で定義されています。

参照元 CTabWnd::DrawCloseBtn(), CPropCommon::GetData_PROP_TAB(), CKeyBind::GetDefFuncCode(), CShareData::Init(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CPropCommon::SetData_PROP_TAB(), と CShareData::ShareData_IO_Common().

wchar_t CommonSetting_TabBar::m_szTabWndCaption[MAX_CAPTION_CONF_LEN]

CommonSetting.h の 347 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB(), CShareData::Init(), CPropCommon::SetData_PROP_TAB(), CEditDoc::SetParentCaption(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_TabBar::m_bSameTabWidth

CommonSetting.h の 348 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB(), CShareData::Init(), CTabWnd::LayoutTab(), CPropCommon::SetData_PROP_TAB(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_TabBar::m_bDispTabIcon

CommonSetting.h の 349 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB(), CTabWnd::GetImageIndex(), CShareData::Init(), CTabWnd::InitImageList(), CTabWnd::LayoutTab(), CPropCommon::SetData_PROP_TAB(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_TabBar::m_bSortTabList

CommonSetting.h の 350 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB(), CShareData::Init(), CPropCommon::SetData_PROP_TAB(), CShareData::ShareData_IO_Common(), と CTabWnd::TabListMenu().

BOOL CommonSetting_TabBar::m_bTab_ListFull

CommonSetting.h の 351 行で定義されています。

参照元 CShareData::Init(), CShareData::ShareData_IO_Common(), と CTabWnd::TabListMenu().

BOOL CommonSetting_TabBar::m_bChgWndByWheel

CommonSetting.h の 353 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB(), CShareData::Init(), CEditWnd::OnMouseWheel(), CPropCommon::SetData_PROP_TAB(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_TabBar メンバ一覧

これは全メンバの一覧です。CommonSetting_TabBar継承メンバも含んでいます。

m_bChgWndByWheel | CommonSetting_TabBar
m_bDispTabIcon | CommonSetting_TabBar
m_bDispTabWnd | CommonSetting_TabBar
m_bDispTabWndMultiWin | CommonSetting_TabBar
m_bSameTabWidth | CommonSetting_TabBar
m_bSortTabList | CommonSetting_TabBar
m_bTab_CloseOneWin | CommonSetting_TabBar
m_bTab_ListFull | CommonSetting_TabBar
m_bTab_RetainEmptyWin | CommonSetting_TabBar
m_szTabWndCaption | CommonSetting_TabBar

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_ToolBar

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_ToolBar

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

int | m_nToolBarButtonNum
int | m_nToolBarButtonIdxArr [MAX_TOOLBARBUTTONS]
int | m_bToolBarIsFlat

説明

CommonSetting.h の 360 行で定義されています。

変数

int CommonSetting_ToolBar::m_nToolBarButtonNum

CommonSetting.h の 362 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CPropCommon::GetData_PROP_TOOLBAR(), CShareData::InitToolButtons(), CMainToolBar::OnToolbarTimer(), CPropCommon::SetData_PROP_TOOLBAR(), と CShareData::ShareData_IO_Toolbar().

int CommonSetting_ToolBar::m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTONS]

CommonSetting.h の 363 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CPropCommon::GetData_PROP_TOOLBAR(), CShareData::InitToolButtons(), CPropCommon::SetData_PROP_TOOLBAR(), と CShareData::ShareData_IO_Toolbar().

int CommonSetting_ToolBar::m_bToolBarIsFlat

CommonSetting.h の 364 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CPropCommon::GetData_PROP_TOOLBAR(), CShareData::InitToolButtons(), CPropCommon::SetData_PROP_TOOLBAR(), と CShareData::ShareData_IO_Toolbar().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_ToolBar メンバ一覧

これは全メンバの一覧です。CommonSetting_ToolBar継承メンバも含んでいます。

m_bToolBarIsFlat | CommonSetting_ToolBar
m_nToolBarButtonIdxArr | CommonSetting_ToolBar
m_nToolBarButtonNum | CommonSetting_ToolBar

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_View

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_View

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

LOGFONT | m_lf
BOOL | m_bFontIs_FIXED_PITCH

説明

CommonSetting.h の 398 行で定義されています。

変数

LOGFONT CommonSetting_View::m_lf

CommonSetting.h の 401 行で定義されています。

参照元 CViewCommander::Command_FONT(), CViewFont::CViewFont(), CShareData::Init(), CEditView::SetIMECompFormFont(), CShareData::ShareData_IO_Font(), と CViewFont::UpdateFont().

BOOL CommonSetting_View::m_bFontIs_FIXED_PITCH

CommonSetting.h の 402 行で定義されています。

参照元 CViewCommander::Command_FONT(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE_ALL(), CShareData::Init(), IsFuncEnable(), CEditView::OnLBUTTONDBLCLK(), と CShareData::ShareData_IO_Font().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_View メンバ一覧

これは全メンバの一覧です。CommonSetting_View継承メンバも含んでいます。

m_bFontIs_FIXED_PITCH | CommonSetting_View
m_lf | CommonSetting_View

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonSetting_Window

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonSetting_Window

#include <CommonSetting.h>

すべてのメンバ一覧

Public 変数

BOOL | m_bDispTOOLBAR
BOOL | m_bDispSTATUSBAR
BOOL | m_bDispFUNCKEYWND
BOOL | m_bMenuIcon
BOOL | m_bScrollBarHorz
int | m_nSaveWindowSize
int | m_nWinSizeType
int | m_nWinSizeCX
int | m_nWinSizeCY
int | m_nSaveWindowPos
int | m_nWinPosX
int | m_nWinPosY
int | m_nFUNCKEYWND_Place
int | m_nFUNCKEYWND_GroupNum
int | m_nRulerHeight
int | m_nRulerBottomSpace
int | m_nRulerType
int | m_nLineNumRightSpace
BOOL | m_bSplitterWndHScroll
BOOL | m_bSplitterWndVScroll
TCHAR | m_szWindowCaptionActive [MAX_CAPTION_CONF_LEN]
TCHAR | m_szWindowCaptionInactive [MAX_CAPTION_CONF_LEN]
int | m_nVertLineOffset

説明

CommonSetting.h の 66 行で定義されています。

変数

BOOL CommonSetting_Window::m_bDispTOOLBAR

CommonSetting.h の 69 行で定義されています。

参照元 CViewCommander::Command_SHOWTOOLBAR(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::LayoutToolBar(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Window::m_bDispSTATUSBAR

CommonSetting.h の 70 行で定義されています。

参照元 CViewCommander::Command_SHOWSTATUSBAR(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::LayoutStatusBar(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Window::m_bDispFUNCKEYWND

CommonSetting.h の 71 行で定義されています。

参照元 CViewCommander::Command_SHOWFUNCKEY(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::LayoutFuncKey(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Window::m_bMenuIcon

CommonSetting.h の 72 行で定義されています。

参照元 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::InitMenu(), CMenuDrawer::MyAppendMenu(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Window::m_bScrollBarHorz

CommonSetting.h の 73 行で定義されています。

参照元 CEditView::CreateScrollBar(), CEditWnd::DispatchEvent(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nSaveWindowSize

CommonSetting.h の 76 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetWindowRectForInit(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), CEditWnd::OnSize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nWinSizeType

CommonSetting.h の 77 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), CEditWnd::OnSize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nWinSizeCX

CommonSetting.h の 78 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), CEditWnd::OnSize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nWinSizeCY

CommonSetting.h の 79 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), CEditWnd::OnSize(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nSaveWindowPos

CommonSetting.h の 80 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nWinPosX

CommonSetting.h の 81 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nWinPosY

CommonSetting.h の 82 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_PROP_WIN(), CShareData::Init(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nFUNCKEYWND_Place

CommonSetting.h の 85 行で定義されています。

参照元 CEditView::CreateScrollBar(), CMainStatusBar::DestroyStatusBar(), CSplitterWnd::DoSplit(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditWnd::LayoutFuncKey(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nFUNCKEYWND_GroupNum

CommonSetting.h の 86 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CFuncKeyWnd::Open(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nRulerHeight

CommonSetting.h の 89 行で定義されています。

参照元 CEditView::Create(), CRuler::DrawRulerBg(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditView::OnChangeSetting(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nRulerBottomSpace

CommonSetting.h の 90 行で定義されています。

参照元 CEditView::Create(), CTextArea::CTextArea(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditView::OnChangeSetting(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nRulerType

CommonSetting.h の 91 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nLineNumRightSpace

CommonSetting.h の 92 行で定義されています。

参照元 CTextArea::DetectWidthOfLineNumberArea(), CTextDrawer::DispLineNumber(), CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CEditView::OnPaint(), CPropCommon::SetData_PROP_WIN(), と CShareData::ShareData_IO_Common().

BOOL CommonSetting_Window::m_bSplitterWndHScroll

CommonSetting.h の 95 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), CShareData::ShareData_IO_Common(), と CEditView::SyncScrollH().

BOOL CommonSetting_Window::m_bSplitterWndVScroll

CommonSetting.h の 96 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), CShareData::ShareData_IO_Common(), と CEditView::SyncScrollV().

TCHAR CommonSetting_Window::m_szWindowCaptionActive[MAX_CAPTION_CONF_LEN]

CommonSetting.h の 99 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), CEditDoc::SetParentCaption(), と CShareData::ShareData_IO_Common().

TCHAR CommonSetting_Window::m_szWindowCaptionInactive[MAX_CAPTION_CONF_LEN]

CommonSetting.h の 100 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), CShareData::Init(), CPropCommon::SetData_PROP_WIN(), CEditDoc::SetParentCaption(), と CShareData::ShareData_IO_Common().

int CommonSetting_Window::m_nVertLineOffset

CommonSetting.h の 103 行で定義されています。

参照元 CTextDrawer::DispVerticalLines(), CShareData::Init(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonSetting_Window メンバ一覧

これは全メンバの一覧です。CommonSetting_Window継承メンバも含んでいます。

m_bDispFUNCKEYWND | CommonSetting_Window
m_bDispSTATUSBAR | CommonSetting_Window
m_bDispTOOLBAR | CommonSetting_Window
m_bMenuIcon | CommonSetting_Window
m_bScrollBarHorz | CommonSetting_Window
m_bSplitterWndHScroll | CommonSetting_Window
m_bSplitterWndVScroll | CommonSetting_Window
m_nFUNCKEYWND_GroupNum | CommonSetting_Window
m_nFUNCKEYWND_Place | CommonSetting_Window
m_nLineNumRightSpace | CommonSetting_Window
m_nRulerBottomSpace | CommonSetting_Window
m_nRulerHeight | CommonSetting_Window
m_nRulerType | CommonSetting_Window
m_nSaveWindowPos | CommonSetting_Window
m_nSaveWindowSize | CommonSetting_Window
m_nVertLineOffset | CommonSetting_Window
m_nWinPosX | CommonSetting_Window
m_nWinPosY | CommonSetting_Window
m_nWinSizeCX | CommonSetting_Window
m_nWinSizeCY | CommonSetting_Window
m_nWinSizeType | CommonSetting_Window
m_szWindowCaptionActive | CommonSetting_Window
m_szWindowCaptionInactive | CommonSetting_Window

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CommonValue< T >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CommonValue< T >

CommonValue< T >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CommonValue ()
void | Regist (const char *szEntryKey)
Me & | operator= (const T &rhs)
operator T & ()
operator const T & () const

Private 型

typedef CommonValue< T > | Me

Private 変数

T | m_value

説明

template<class T>
class CommonValue< T >

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

型定義

template<class T>
typedef CommonValue<T> CommonValue< T >::Me [private]

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

コンストラクタとデストラクタ

template<class T>
CommonValue< T >::CommonValue ( ) [inline]

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

関数

template<class T>
void CommonValue< T >::Regist ( const char * szEntryKey ) [inline]

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

参照先 g_commonvalues, と CommonValue< T >::m_value.

参照元 sample().

template<class T>
Me& CommonValue< T >::operator= ( const T & rhs ) [inline]

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

参照先 CommonValue< T >::m_value.

template<class T>
CommonValue< T >::operator T & ( ) [inline]

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

参照先 CommonValue< T >::m_value.

template<class T>
CommonValue< T >::operator const T & ( ) const [inline]

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

参照先 CommonValue< T >::m_value.

変数

template<class T>
T CommonValue< T >::m_value [private]

CommonSetting.cpp の 67 行で定義されています。

参照元 CommonValue< T >::operator const T &(), CommonValue< T >::operator T &(), CommonValue< T >::operator=(), と CommonValue< T >::Regist().

このクラスの説明は次のファイルから生成されました:
  • CommonSetting.cpp
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonValue< T > メンバ一覧

これは全メンバの一覧です。CommonValue< T >継承メンバも含んでいます。

CommonValue() | CommonValue< T > | [inline]
m_value | CommonValue< T > | [private]
Me typedef | CommonValue< T > | [private]
operator const T &() const | CommonValue< T > | [inline]
operator T &() | CommonValue< T > | [inline]
operator=(const T &rhs) | CommonValue< T > | [inline]
Regist(const char *szEntryKey) | CommonValue< T > | [inline]

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CommonValueInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 CommonValueInfo

すべてのメンバ一覧

Public 型

enum | EType { TYPE_UNKNOWN, TYPE_ASTR, TYPE_WSTR }

Public メソッド

CommonValueInfo (void *pValue, int nValueSize, const char *szEntryKey, EType eType=TYPE_UNKNOWN)
void | Save ()

Public 変数

void * | m_pValue
値へのポインタ
int | m_nValueSize
値のサイズ。バイト単位。
char | m_szEntryKey [32]
EType m_eType

説明

CommonSetting.cpp の 7 行で定義されています。

列挙型

enum CommonValueInfo::EType

列挙型の値:
TYPE_UNKNOWN
TYPE_ASTR
TYPE_WSTR

CommonSetting.cpp の 8 行で定義されています。

コンストラクタとデストラクタ

CommonValueInfo::CommonValueInfo | ( | void * | pValue,
 |  | int | nValueSize,
 |  | const char * | szEntryKey,
 |  | EType | eType = TYPE_UNKNOWN |
 | ) |  |  | [inline]

CommonSetting.cpp の 19 行で定義されています。

参照先 _countof, と m_szEntryKey.

関数

void CommonValueInfo::Save ( ) [inline]

CommonSetting.cpp の 25 行で定義されています。

参照先 m_nValueSize, m_pValue, と m_szEntryKey.

変数

void* CommonValueInfo::m_pValue

値へのポインタ

CommonSetting.cpp の 14 行で定義されています。

参照元 Save().

int CommonValueInfo::m_nValueSize

値のサイズ。バイト単位。

CommonSetting.cpp の 15 行で定義されています。

参照元 Save().

char CommonValueInfo::m_szEntryKey[32]

CommonSetting.cpp の 16 行で定義されています。

参照元 CommonValueInfo(), と Save().

EType CommonValueInfo::m_eType

CommonSetting.cpp の 17 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CommonSetting.cpp
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CommonValueInfo メンバ一覧

これは全メンバの一覧です。CommonValueInfo継承メンバも含んでいます。

CommonValueInfo(void *pValue, int nValueSize, const char *szEntryKey, EType eType=TYPE_UNKNOWN) | CommonValueInfo | [inline]
EType Enum | CommonValueInfo |
m_eType | CommonValueInfo |
m_nValueSize | CommonValueInfo |
m_pValue | CommonValueInfo |
m_szEntryKey | CommonValueInfo |
Save() | CommonValueInfo | [inline]
TYPE_ASTR Enum 値 | CommonValueInfo |
TYPE_UNKNOWN Enum 値 | CommonValueInfo |
TYPE_WSTR Enum 値 | CommonValueInfo |

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 ComPropSheetInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ComPropSheetInfo

すべてのメンバ一覧

Public メソッド

INT_PTR (CALLBACK *DProc)(HWND

Public 変数

const TCHAR * | szTabname
TABの表示名
unsigned int | resId
Property sheetに対応するDialog resource
UINT
WPARAM
LPARAM
Dialog Procedure

説明

「共通設定」プロパティシートの作成時に必要な情報を 保持する構造体

CPropCommon.cpp の 391 行で定義されています。

関数

ComPropSheetInfo::INT_PTR ( CALLBACK * DProc )

変数

const TCHAR* ComPropSheetInfo::szTabname

TABの表示名

CPropCommon.cpp の 392 行で定義されています。

unsigned int ComPropSheetInfo::resId

Property sheetに対応するDialog resource

CPropCommon.cpp の 393 行で定義されています。

ComPropSheetInfo::UINT

CPropCommon.cpp の 394 行で定義されています。

ComPropSheetInfo::WPARAM

CPropCommon.cpp の 394 行で定義されています。

ComPropSheetInfo::LPARAM

Dialog Procedure

CPropCommon.cpp の 394 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CPropCommon.cpp
Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ComPropSheetInfo メンバ一覧

これは全メンバの一覧です。ComPropSheetInfo継承メンバも含んでいます。

INT_PTR(CALLBACK *DProc)(HWND | ComPropSheetInfo
LPARAM | ComPropSheetInfo
resId | ComPropSheetInfo
szTabname | ComPropSheetInfo
UINT | ComPropSheetInfo
WPARAM | ComPropSheetInfo

Sakura-Editorに対してSat Nov 17 20:28:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス COpe

  • 構成
  • クラス階層
  • 構成メンバ

クラス COpe

#include <COpe.h>

COpeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

COpe (EOpeCode eCode=OPE_UNKNOWN)
~COpe ()
void | DUMP (void)
EOpeCode | GetCode () const

Public 変数

CLogicPoint m_ptCaretPos_PHY_Before
キャレット位置。文字単位。
CLogicPoint m_ptCaretPos_PHY_To
操作前のキャレット位置。文字単位。
CLogicPoint m_ptCaretPos_PHY_After
キャレット位置。文字単位。
CLogicInt m_nDataLen
操作に関連するデータのサイズ
CNativeW m_pcmemData
操作に関連するデータ

Private 変数

EOpeCode m_nOpe
操作種別

説明

編集操作要素

Undoのためにに操作手順を記録するために用いる。 1オブジェクトが１つの操作を表す。

COpe.h の 38 行で定義されています。

コンストラクタとデストラクタ

COpe::COpe ( EOpeCode eCode = OPE_UNKNOWN )

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

参照先 m_nDataLen, m_nOpe, m_ptCaretPos_PHY_After, m_ptCaretPos_PHY_Before, m_ptCaretPos_PHY_To, と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set().

COpe::~COpe ( )

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

関数

void COpe::DUMP ( void )

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

参照先 CNativeW::GetStringPtr(), m_nDataLen, m_nOpe, m_pcmemData, m_ptCaretPos_PHY_After, m_ptCaretPos_PHY_Before, と MYTRACE_A.

参照元 COpeBlk::DUMP().

EOpeCode COpe::GetCode ( ) const [inline]

COpe.h の 45 行で定義されています。

参照先 m_nOpe.

参照元 CViewCommander::Command_REDO(), と CViewCommander::Command_UNDO().

変数

EOpeCode COpe::m_nOpe [private]

操作種別

COpe.h の 48 行で定義されています。

参照元 COpe(), DUMP(), と GetCode().

CLogicPoint COpe::m_ptCaretPos_PHY_Before

キャレット位置。文字単位。

COpe.h の 51 行で定義されています。

参照元 COpeBlk::AppendOpe(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CEditView::ConvSelectedArea(), COpe(), CEditView::DeleteData(), CEditView::DeleteData2(), DUMP(), CEditView::InsertData_CEditView(), CEditView::ReplaceData_CEditView(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

CLogicPoint COpe::m_ptCaretPos_PHY_To

操作前のキャレット位置。文字単位。

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

参照元 CViewCommander::Command_REDO(), COpe(), CEditView::DeleteData2(), CEditView::InsertData_CEditView(), と CEditView::ReplaceData_CEditView().

CLogicPoint COpe::m_ptCaretPos_PHY_After

キャレット位置。文字単位。

COpe.h の 53 行で定義されています。

参照元 COpeBlk::AppendOpe(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CEditView::ConvSelectedArea(), COpe(), CEditView::DeleteData(), CEditView::DeleteData2(), DUMP(), CEditView::InsertData_CEditView(), CEditView::ReplaceData_CEditView(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

CLogicInt COpe::m_nDataLen

操作に関連するデータのサイズ

COpe.h の 55 行で定義されています。

参照元 CViewCommander::Command_UNDO(), COpe(), CEditView::DeleteData2(), DUMP(), CEditView::InsertData_CEditView(), と CEditView::ReplaceData_CEditView().

CNativeW COpe::m_pcmemData

操作に関連するデータ

COpe.h の 56 行で定義されています。

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CEditView::DeleteData2(), DUMP(), CEditView::InsertData_CEditView(), と CEditView::ReplaceData_CEditView().

このクラスの説明は次のファイルから生成されました:
  • COpe.h
  • COpe.cpp
Sakura-Editorに対してSat Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COpe メンバ一覧

これは全メンバの一覧です。COpe継承メンバも含んでいます。

COpe(EOpeCode eCode=OPE_UNKNOWN) | COpe |
DUMP(void) | COpe |
GetCode() const | COpe | [inline]
m_nDataLen | COpe |
m_nOpe | COpe | [private]
m_pcmemData | COpe |
m_ptCaretPos_PHY_After | COpe |
m_ptCaretPos_PHY_Before | COpe |
m_ptCaretPos_PHY_To | COpe |
~COpe() | COpe |

Sakura-Editorに対してSat Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


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::GetNum ( void ) [inline]

COpeBlk.h の 37 行で定義されています。

参照先 m_nCOpeArrNum.

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), と CEditView::DoGrep().

int COpeBlk::AppendOpe ( COpe * pcOpe )

COpeBlk.cpp の 67 行で定義されています。

参照先 FALSE, GSTR_APPNAME_A, CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::HasNegative(), m_nCOpeArrNum, m_ppCOpeArr, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, MYMESSAGEBOX_A, NULL, と TRUE.

参照元 CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_SORT(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CEditView::ConvSelectedArea(), CEditView::DeleteData(), CEditView::DeleteData2(), CEditView::InsertData_CEditView(), CEditView::ReplaceData_CEditView(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

COpe * COpeBlk::GetOpe ( int nIndex )

COpeBlk.cpp の 102 行で定義されています。

参照先 m_nCOpeArrNum, m_ppCOpeArr, と NULL.

参照元 CViewCommander::Command_REDO(), と CViewCommander::Command_UNDO().

void COpeBlk::DUMP ( void )

COpeBlk.cpp の 112 行で定義されています。

参照先 COpe::DUMP(), m_nCOpeArrNum, m_ppCOpeArr, と MYTRACE_A.

参照元 COpeBuf::DUMP().

void COpeBlk::Init ( void ) [private]

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

参照先 m_nCOpeArrNum, m_ppCOpeArr, と NULL.

参照元 COpeBlk().

void COpeBlk::Empty ( void ) [private]

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

参照先 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 Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


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 (bool *)
COpeBlk * | DoRedo (bool *)
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 の 32 行で定義されています。

コンストラクタとデストラクタ

COpeBuf::COpeBuf ( )

COpeBuf.cpp の 19 行で定義されています。

参照先 m_nCOpeBlkArrNum, m_nCurrentPointer, m_nNoModifiedIndex, m_ppCOpeBlkArr, と NULL.

COpeBuf::~COpeBuf ( )

COpeBuf.cpp の 34 行で定義されています。

参照先 m_nCOpeBlkArrNum, m_ppCOpeBlkArr, と NULL.

関数

void COpeBuf::ClearAll ( void )

COpeBuf.cpp の 190 行で定義されています。

参照先 m_nCOpeBlkArrNum, m_nCurrentPointer, m_nNoModifiedIndex, m_ppCOpeBlkArr, と NULL.

参照元 CEditDoc::Init().

int COpeBuf::AppendOpeBlk ( COpeBlk * pcOpeBlk )

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

参照先 FALSE, m_nCOpeBlkArrNum, m_nCurrentPointer, m_ppCOpeBlkArr, NULL, と TRUE.

参照元 CEditView::DoGrep(), と CViewCommander::HandleCommand().

int COpeBuf::IsEnableUndo ( void )

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

参照先 FALSE, m_nCOpeBlkArrNum, m_nCurrentPointer, と TRUE.

参照元 DoUndo(), と CEditDoc::IsEnableUndo().

int COpeBuf::IsEnableRedo ( void )

COpeBuf.cpp の 112 行で定義されています。

参照先 FALSE, m_nCOpeBlkArrNum, m_nCurrentPointer, と TRUE.

参照元 DoRedo(), と CEditDoc::IsEnableRedo().

COpeBlk * COpeBuf::DoUndo ( bool * pbModified )

COpeBuf.cpp の 126 行で定義されています。

参照先 IsEnableUndo(), m_nCurrentPointer, m_nNoModifiedIndex, m_ppCOpeBlkArr, と NULL.

COpeBlk * COpeBuf::DoRedo ( bool * pbModified )

COpeBuf.cpp の 146 行で定義されています。

参照先 IsEnableRedo(), m_nCurrentPointer, m_nNoModifiedIndex, m_ppCOpeBlkArr, と NULL.

void COpeBuf::SetNoModified ( void )

COpeBuf.cpp の 166 行で定義されています。

参照先 m_nCurrentPointer, と m_nNoModifiedIndex.

参照元 CEditDoc::FileWrite(), と CEditDoc::SaveFile().

void COpeBuf::DUMP ( void )

COpeBuf.cpp の 174 行で定義されています。

参照先 COpeBlk::DUMP(), m_nCOpeBlkArrNum, m_nCurrentPointer, m_ppCOpeBlkArr, と MYTRACE_A.

変数

int COpeBuf::m_nCOpeBlkArrNum [private]

COpeBuf.h の 46 行で定義されています。

参照元 AppendOpeBlk(), ClearAll(), COpeBuf(), DUMP(), IsEnableRedo(), IsEnableUndo(), と ~COpeBuf().

COpeBlk** COpeBuf::m_ppCOpeBlkArr [private]

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

参照元 AppendOpeBlk(), ClearAll(), COpeBuf(), DoRedo(), DoUndo(), DUMP(), と ~COpeBuf().

int COpeBuf::m_nCurrentPointer [private]

COpeBuf.h の 48 行で定義されています。

参照元 AppendOpeBlk(), ClearAll(), COpeBuf(), DoRedo(), DoUndo(), DUMP(), IsEnableRedo(), IsEnableUndo(), と SetNoModified().

int COpeBuf::m_nNoModifiedIndex [private]

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

参照元 ClearAll(), COpeBuf(), DoRedo(), DoUndo(), と SetNoModified().

このクラスの説明は次のファイルから生成されました:
  • COpeBuf.h
  • COpeBuf.cpp
Sakura-Editorに対してSat Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COpeBuf メンバ一覧

これは全メンバの一覧です。COpeBuf継承メンバも含んでいます。

AppendOpeBlk(COpeBlk *) | COpeBuf |
ClearAll(void) | COpeBuf |
COpeBuf() | COpeBuf |
DoRedo(bool *) | COpeBuf |
DoUndo(bool *) | 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 Nov 17 20:28:46 2007に生成されました。 doxygen 1.5.4


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, と memset_raw().

関数

BOOL COsVersionInfo::GetVersion ( ) [inline]

COsVersionInfo.h の 50 行で定義されています。

参照先 m_bSuccess.

参照元 CProcessFactory::IsValidVersion().

BOOL COsVersionInfo::OsIsEnableVersion ( ) [inline]

COsVersionInfo.h の 55 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CProcessFactory::IsValidVersion().

BOOL COsVersionInfo::IsWin32NT ( ) [inline]

NTプラットフォームかどうか調べる

戻り値:
TRUE | NT platform
FALSE | non-NT platform

COsVersionInfo.h の 66 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CViewCommander::Command_TagsMake(), HasWinHelpContentsProblem(), CProcessFactory::IsValidVersion(), 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::HasWinHelpContentsProblem ( ) [inline]

COsVersionInfo.h の 84 行で定義されています。

参照先 IsWin32NT(), と m_cOsVersionInfo.

参照元 ShowWinHelpContents().

BOOL COsVersionInfo::OsDoesNOTSupportReconvert ( ) [inline]

COsVersionInfo.h の 95 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CViewCommander::Command_Reconvert(), と CEditView::Create().

BOOL COsVersionInfo::IsWinXP_or_later ( ) [inline]

Windows XP以上か調べる

戻り値:
TRUE Windows XP or later
日付:
2003.09.06 genta

COsVersionInfo.h の 112 行で定義されています。

参照先 m_cOsVersionInfo.

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::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::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 Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 COutlinePython

  • 構成
  • クラス階層
  • 構成メンバ

構造体 COutlinePython

すべてのメンバ一覧

Public 型

enum | { STATE_NORMAL, STATE_STRING, STATE_CONTINUE }

Public メソッド

COutlinePython ()
int | ScanNormal (const wchar_t *data, int linelen, int start_offset)
Pythonプログラムの処理
int | ScanString (const wchar_t *data, int linelen, int start_offset)
python文字列(1行)を調査する
int | EnterString (const wchar_t *data, int linelen, int start_offset)
Python文字列の入り口で文字列種別を決定する
void | DoScanLine (const wchar_t *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 の 98 行で定義されています。

列挙型

anonymous enum

列挙型の値:
STATE_NORMAL | 通常行 : 行頭を含む
STATE_STRING | 文字列中
STATE_CONTINUE | 継続行 : 前の行からの続きなので行頭とはみなされない

CEditDoc_FuncList2.cpp の 99 行で定義されています。

コンストラクタとデストラクタ

COutlinePython::COutlinePython ( )

コンストラクタ: 初期化

初期状態をSTATE_NORMALに設定する．

CEditDoc_FuncList2.cpp の 128 行で定義されています。

関数

int COutlinePython::ScanNormal | ( | const wchar_t * | 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 の 210 行で定義されています。

参照先 assert, WCODE::CR, EnterString(), CNativeW::GetSizeOfChar(), WCODE::LF, m_state, STATE_CONTINUE, と STATE_NORMAL.

参照元 DoScanLine().

int COutlinePython::ScanString | ( | const wchar_t * | 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 の 275 行で定義されています。

参照先 assert, WCODE::CR, CNativeW::GetSizeOfChar(), WCODE::LF, m_long_string, m_quote_char, m_raw_string, m_state, STATE_NORMAL, と STATE_STRING.

参照元 DoScanLine().

int COutlinePython::EnterString | ( | const wchar_t * | 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 の 156 行で定義されています。

参照先 assert, m_long_string, m_quote_char, m_raw_string, m_state, と STATE_STRING.

参照元 ScanNormal().

void COutlinePython::DoScanLine | ( | const wchar_t * | 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 の 356 行で定義されています。

参照先 m_state, ScanNormal(), ScanString(), STATE_CONTINUE, STATE_NORMAL, と STATE_STRING.

参照元 CEditDoc::MakeFuncList_python().

bool COutlinePython::IsLogicalLineTop ( void ) const [inline]

CEditDoc_FuncList2.cpp の 121 行で定義されています。

参照先 m_state, と STATE_NORMAL.

参照元 CEditDoc::MakeFuncList_python().

変数

enum { ... } COutlinePython::m_state

参照元 DoScanLine(), EnterString(), IsLogicalLineTop(), ScanNormal(), と ScanString().

int COutlinePython::m_quote_char

引用符記号

CEditDoc_FuncList2.cpp の 105 行で定義されています。

参照元 EnterString(), と ScanString().

bool COutlinePython::m_raw_string

エスケープ記号無視ならtrue

CEditDoc_FuncList2.cpp の 106 行で定義されています。

参照元 EnterString(), と ScanString().

bool COutlinePython::m_long_string

長い文字列中ならtrue

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

参照元 EnterString(), と ScanString().

この構造体の説明は次のファイルから生成されました:
  • CEditDoc_FuncList2.cpp
Sakura-Editorに対してSat Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COutlinePython メンバ一覧

これは全メンバの一覧です。COutlinePython継承メンバも含んでいます。

COutlinePython() | COutlinePython |
DoScanLine(const wchar_t *data, int linelen, int start_offset) | COutlinePython |
EnterString(const wchar_t *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 wchar_t *data, int linelen, int start_offset) | COutlinePython |
ScanString(const wchar_t *data, int linelen, int start_offset) | COutlinePython |
STATE_CONTINUE Enum 値 | COutlinePython |
STATE_NORMAL Enum 値 | COutlinePython |
STATE_STRING Enum 値 | COutlinePython |

Sakura-Editorに対してSat Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


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 行で定義されています。

関数

void CPassiveTimer::SetInterval ( int m )

時間間隔の設定

時間間隔の設定

引数:
m 間隔(min) 間隔を0以下に設定したときは1秒とみなす。設定可能な最大間隔は35792分。

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

参照先 MSec2Min, と nInterval.

参照元 CEditDoc::ReloadAutoSaveParam().

int CPassiveTimer::GetInterval ( void ) const [inline]

時間間隔の取得

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

参照先 MSec2Min.

void CPassiveTimer::Reset ( void ) [inline]

基準時刻のリセット

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

参照元 CheckAction(), と Enable().

void CPassiveTimer::Enable ( bool flag )

有効／無効の設定

タイマーの有効・無効の切り替え

引数:
flag true:有効 / false: 無効 無効→有効に切り替えたときはリセットされる。

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

参照先 bEnabled, と Reset().

参照元 CEditDoc::CheckAutoSave(), と CEditDoc::ReloadAutoSaveParam().

bool CPassiveTimer::IsEnabled ( void ) const [inline]

有効／無効の読み出し

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

参照元 CheckAction(), と CEditDoc::CheckAutoSave().

bool CPassiveTimer::CheckAction ( void )

規定時間に達したかどうかの判定

外部で定期に実行されるところから呼び出される関数。 呼び出されると経過時間をチェックする。

戻り値:
true | 所定時間が経過した。このときは測定基準が自動的にリセットされる。
false | 所定の時間に達していない。

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

参照先 IsEnabled(), nInterval, nLastTick, と Reset().

参照元 CEditDoc::CheckAutoSave().

変数

DWORD CPassiveTimer::nLastTick [private]

最後にチェックしたときの時刻 (GetTickCount()で取得したもの)

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

参照元 CheckAction().

int CPassiveTimer::nInterval [private]

Action間隔 (分)

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

参照元 CheckAction(), と SetInterval().

bool CPassiveTimer::bEnabled [private]

有効かどうか

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

参照元 Enable().

このクラスの説明は次のファイルから生成されました:
  • CAutoSave.h
  • CAutoSave.cpp
Sakura-Editorに対してSat Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:47 2007に生成されました。 doxygen 1.5.4


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_SetDeclare )(const char *ss)
typedef void(WINAPI * | PPA_SetDefProc )(const char *ss)
typedef const char | int
typedef void(WINAPI * | PPA_SetIntFunc )(void *p)
typedef void(WINAPI * | PPA_SetStrFunc )(void *p)
typedef void(WINAPI * | PPA_SetErrProc )(void *p)
typedef int(WINAPI * | PPA_GetVersion )()
typedef char *(WINAPI * | PPA_GetArgBStr )(int)
typedef const char | BOOL
typedef const char | int
typedef char *(WINAPI * | PPA_GetBStrVar )(const char *ss)
typedef const char *typedef | double
typedef const char *typedef | BOOL
typedef void(WINAPI * | PPA_SetRealObj )(void *p)
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 *p)
typedef DWORD(WINAPI * | PPA_GetArgReal )(int)
typedef BYTE(WINAPI * | PPA_IsRunning )()
typedef void(WINAPI * | PPA_SetFinishProc )(void *p)

Private メソッド

typedef | void (WINAPI *PPA_SetSource)(const char *ss)
typedef | void (WINAPI *PPA_SetDefine)(const char *ss)
typedef | void (WINAPI *PPA_AddIntVar)(const char *
typedef | void (WINAPI *PPA_AddStrVar)(const char *
typedef | void (WINAPI *PPA_SetProc)(void *p)
typedef | void (WINAPI *PPA_Abort)()
typedef | void (WINAPI *PPA_DeleteVar)(const char *)
typedef | int (WINAPI *PPA_GetArgInt)(int)
typedef char *WINAPI * | PPA_GetArgStr (int)
typedef | void (WINAPI *PPA_SetStrObj)(void *proc)
typedef | void (WINAPI *PPA_SetIntObj)(void *proc)
typedef | void (WINAPI *PPA_AddIntObj)(const char *
typedef | void (WINAPI *PPA_AddStrObj)(const char *
typedef | int (WINAPI *PPA_GetIntVar)(const char *ss)
typedef char *WINAPI * | PPA_GetStrVar (const char *ss)
typedef | BOOL (WINAPI *PPA_SetIntVar)(const char *
typedef | BOOL (WINAPI *PPA_SetStrVar)(const char *
typedef const char *typedef | void (WINAPI *PPA_AddRealVar)(const char *

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 変数

typedef | int
typedef | BOOL
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 CNativeA | m_cMemRet
コールバックからDLLに渡す文字列を保持
static CEditView * | m_pcEditView = NULL
static DLLSHAREDATA * | m_pShareData = NULL
static bool | m_bError = false
static CNativeA | m_cMemDebug

説明

PPA.DLL をサポートするクラス

DLLの動的ロードを行うため、DllHandlerを継承している。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CPPA.h の 62 行で定義されています。

型定義

typedef void(WINAPI * CPPA::PPA_Execute)() [private]

typedef void(WINAPI * CPPA::PPA_SetDeclare)(const char *ss) [private]

typedef void(WINAPI * CPPA::PPA_SetDefProc)(const char *ss) [private]

typedef const char CPPA::int [private]

CPPA.h の 97 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetIntFunc)(void *p) [private]

typedef void(WINAPI * CPPA::PPA_SetStrFunc)(void *p) [private]

typedef void(WINAPI * CPPA::PPA_SetErrProc)(void *p) [private]

typedef int(WINAPI * CPPA::PPA_GetVersion)() [private]

typedef char*(WINAPI * CPPA::PPA_GetArgBStr)(int) [private]

typedef const char CPPA::BOOL [private]

CPPA.h の 111 行で定義されています。

typedef const char CPPA::int [private]

CPPA.h の 111 行で定義されています。

typedef char*(WINAPI * CPPA::PPA_GetBStrVar)(const char *ss) [private]

typedef const char* typedef CPPA::double [private]

CPPA.h の 120 行で定義されています。

typedef const char* typedef CPPA::BOOL [private]

CPPA.h の 120 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetRealObj)(void *p) [private]

typedef void(WINAPI * CPPA::PPA_AddRealObj)(const char *, double, BOOL, LONG) [private]

typedef double(WINAPI * CPPA::PPA_GetRealVar)(const char *) [private]

typedef BOOL(WINAPI * CPPA::PPA_SetRealVar)(const char *, double) [private]

typedef void(WINAPI * CPPA::PPA_SetRealFunc)(void *p) [private]

typedef DWORD(WINAPI * CPPA::PPA_GetArgReal)(int) [private]

typedef BYTE(WINAPI * CPPA::PPA_IsRunning)() [private]

typedef void(WINAPI * CPPA::PPA_SetFinishProc)(void *p) [private]

コンストラクタとデストラクタ

CPPA::CPPA ( )

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

CPPA::~CPPA ( ) [virtual]

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

参照先 DeinitDll(), と CDllHandler::IsAvailable().

関数

const char* CPPA::GetVersion ( ) [inline]

< DLLのバージョン情報を取得。m_szMsgを壊す

CPPA.h の 67 行で定義されています。

参照先 auto_sprintf(), と CDllHandler::IsAvailable().

const char* CPPA::GetLastMessage ( void ) const [inline]

PPAメッセージを取得する

CPPA.h の 76 行で定義されています。

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 の 207 行で定義されています。

参照先 auto_sprintf(), MacroFuncInfo::m_nFuncID, MacroFuncInfo::m_pszFuncName, MacroFuncInfo::m_varArguments, と MacroFuncInfo::m_varResult.

参照元 InitDll(), と stdError().

LPCTSTR CPPA::GetDllName ( LPCTSTR str ) [virtual]

DLLファイル名の取得

日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使用する場合は必須ではないので， 純粋仮想関数はやめてプレースホルダーを用意する．

CDllHandlerを再定義しています。

CPPA.cpp の 84 行で定義されています。

int CPPA::InitDll ( void ) [protected, virtual]

DLLの初期化

関数のアドレスを取得してメンバに保管する．

戻り値:
0 | 成功
1 | アドレス取得に失敗

CDllHandlerを実装しています。

CPPA.cpp の 97 行で定義されています。

参照先 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_MacroFuncInfoArr, CSMacroMgr::m_MacroFuncInfoNotCommandArr, MacroFuncInfo::m_pszFuncName, NULL, CDllHandler::RegisterEntries(), SetDefine(), SetDefProc(), SetErrProc(), SetFinishProc(), SetIntFunc(), SetProc(), SetStrFunc(), SetStrObj(), stdError(), stdFinishProc(), stdIntFunc(), stdProc(), stdStrFunc(), と stdStrObj().

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 の 277 行で定義されています。

参照元 ~CPPA().

typedef CPPA::void ( WINAPI * PPA_SetSource ) const [private]

typedef CPPA::void ( WINAPI * PPA_SetDefine ) const [private]

typedef CPPA::void ( WINAPI * PPA_AddIntVar ) const [private]

typedef CPPA::void ( WINAPI * PPA_AddStrVar ) const [private]

typedef CPPA::void ( WINAPI * PPA_SetProc ) [private]

typedef CPPA::void ( WINAPI * PPA_Abort ) [private]

typedef CPPA::void ( WINAPI * PPA_DeleteVar ) const [private]

typedef CPPA::int ( WINAPI * PPA_GetArgInt ) [private]

typedef char* WINAPI* CPPA::PPA_GetArgStr ( int ) [private]

typedef CPPA::void ( WINAPI * PPA_SetStrObj ) [private]

typedef CPPA::void ( WINAPI * PPA_SetIntObj ) [private]

typedef CPPA::void ( WINAPI * PPA_AddIntObj ) const [private]

typedef CPPA::void ( WINAPI * PPA_AddStrObj ) const [private]

typedef CPPA::int ( WINAPI * PPA_GetIntVar ) const [private]

typedef char* WINAPI* CPPA::PPA_GetStrVar ( const char * ss ) [private]

typedef CPPA::BOOL ( WINAPI * PPA_SetIntVar ) const [private]

typedef CPPA::BOOL ( WINAPI * PPA_SetStrVar ) const [private]

typedef const char* typedef CPPA::void ( WINAPI * PPA_AddRealVar ) const [private]

void CPPA::Execute ( class CEditView * pcEditView )

CPPA.cpp の 75 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), m_bError, m_cMemDebug, m_fnExecute, m_pcEditView, m_pShareData, と CNativeA::SetString().

参照元 CPPAMacroMgr::ExecKeyMacro().

void CPPA::SetSource ( const char * ss ) [inline]

CPPA.h の 180 行で定義されています。

参照元 CPPAMacroMgr::ExecKeyMacro().

void CPPA::SetDeclare ( const char * ss ) [inline]

CPPA.h の 182 行で定義されています。

void CPPA::SetDefProc ( const char * ss ) [inline]

CPPA.h の 184 行で定義されています。

参照元 InitDll().

void CPPA::SetDefine ( const char * ss ) [inline]

CPPA.h の 186 行で定義されています。

参照元 InitDll().

void CPPA::AddIntVar | ( | const char * | lpszDef,
 |  | int | nVal,
 |  | int | nCnst |
 | ) |  |  | [inline]

CPPA.h の 188 行で定義されています。

void CPPA::AddStrVar | ( | const char * | lpszDef,
 |  | const char * | lpszVal,
 |  | int | nCnst |
 | ) |  |  | [inline]

CPPA.h の 190 行で定義されています。

void CPPA::SetIntFunc ( void * proc ) [inline]

CPPA.h の 192 行で定義されています。

参照元 InitDll().

void CPPA::SetStrFunc ( void * proc ) [inline]

CPPA.h の 194 行で定義されています。

参照元 InitDll().

void CPPA::SetProc ( void * proc ) [inline]

CPPA.h の 196 行で定義されています。

参照元 InitDll().

void CPPA::SetErrProc ( void * proc ) [inline]

CPPA.h の 198 行で定義されています。

参照元 InitDll().

void CPPA::Abort ( ) [inline]

CPPA.h の 200 行で定義されています。

void CPPA::DeleteVar ( const char * ss ) [inline]

CPPA.h の 204 行で定義されています。

int CPPA::GetArgInt ( int index ) [inline]

CPPA.h の 206 行で定義されています。

char* CPPA::GetArgStr ( int index ) [inline]

CPPA.h の 208 行で定義されています。

char* CPPA::GetArgBStr ( int index ) [inline]

CPPA.h の 210 行で定義されています。

void CPPA::SetStrObj ( void * proc ) [inline]

CPPA.h の 212 行で定義されています。

参照元 InitDll().

void CPPA::SetIntObj ( void * proc ) [inline]

CPPA.h の 214 行で定義されています。

void CPPA::AddIntObj | ( | const char * | ss,
 |  | int | def,
 |  | BOOL | read,
 |  | int | index |
 | ) |  |  | [inline]

CPPA.h の 216 行で定義されています。

void CPPA::AddStrObj | ( | const char * | ss,
 |  | const char * | def,
 |  | BOOL | read,
 |  | int | index |
 | ) |  |  | [inline]

CPPA.h の 218 行で定義されています。

参照元 InitDll().

int CPPA::GetIntVar ( const char * ss ) [inline]

CPPA.h の 220 行で定義されています。

char* CPPA::GetStrVar ( const char * ss ) [inline]

CPPA.h の 222 行で定義されています。

char* CPPA::GetBStrVar ( const char * ss ) [inline]

CPPA.h の 224 行で定義されています。

BOOL CPPA::SetIntVar | ( | const char * | ss,
 |  | int | val |
 | ) |  |  | [inline]

CPPA.h の 226 行で定義されています。

BOOL CPPA::SetStrVar | ( | const char * | ss,
 |  | const char * | val |
 | ) |  |  | [inline]

CPPA.h の 228 行で定義されています。

void CPPA::AddRealVar | ( | const char * | ss,
 |  | double | val,
 |  | BOOL | cnst |
 | ) |  |  | [inline]

CPPA.h の 232 行で定義されています。

void CPPA::SetRealObj ( void * proc ) [inline]

CPPA.h の 234 行で定義されています。

void CPPA::AddRealObj | ( | const char * | ss,
 |  | double | val,
 |  | BOOL | read,
 |  | LONG | index |
 | ) |  |  | [inline]

CPPA.h の 236 行で定義されています。

double CPPA::GetRealVar ( const char * ss ) [inline]

CPPA.h の 238 行で定義されています。

BOOL CPPA::SetRealVar | ( | const char * | ss,
 |  | double | val |
 | ) |  |  | [inline]

CPPA.h の 240 行で定義されています。

void CPPA::SetRealFunc ( void * proc ) [inline]

CPPA.h の 242 行で定義されています。

DWORD CPPA::GetArgReal ( int index ) [inline]

CPPA.h の 244 行で定義されています。

BOOL CPPA::IsRunning ( ) [inline]

CPPA.h の 249 行で定義されています。

参照先 BOOL.

void CPPA::SetFinishProc ( void * proc ) [inline]

CPPA.h の 251 行で定義されています。

参照元 InitDll().

void __stdcall CPPA::stdStrObj | ( | const char * | ObjName,
 |  | int | Index,
 |  | BYTE | GS_Mode,
 |  | int * | Err_CD,
 |  | char ** | Value |
 | ) |  |  | [static, private]

ユーザー定義文字列型オブジェクト 現在は、デバッグ用文字列を設定する為のみ

CPPA.cpp の 289 行で定義されています。

参照先 CNativeA::GetStringPtr(), m_cMemDebug, NEVER_USED_PARAM, omGet, omSet, と CNativeA::SetString().

参照元 InitDll().

void __stdcall CPPA::stdProc | ( | const char * | FuncName,
 |  | const int | Index,
 |  | const char * | Argument[],
 |  | const int | ArgSize,
 |  | int * | Err_CD |
 | ) |  |  | [static, private]

CPPA.cpp の 378 行で定義されています。

参照先 CMacro::HandleCommand(), m_pcEditView, mbstowcs_new(), NEVER_USED_PARAM, と NULL.

参照元 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 の 424 行で定義されています。

参照先 CallHandleFunction(), と 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 の 464 行で定義されています。

参照先 CallHandleFunction(), CNativeA::GetStringPtr(), m_cMemRet, NEVER_USED_PARAM, CNativeA::SetString(), と Wrap().

参照元 InitDll().

bool CPPA::CallHandleFunction | ( | const int | Index,
 |  | const char * | Arg[],
 |  | int | ArgSize,
 |  | VARIANT * | Result |
 | ) |  |  | [static, private]

引数型変換

文字列で与えられた引数をVARIANT/BSTRに変換してCMacroHandleFunction()を呼びだす

作者:
Moca

CPPA.cpp の 498 行で定義されています。

参照先 F_FUNCTION_FIRST, CSMacroMgr::GetFuncInfoByID(), CMacro::HandleFunction(), m_pcEditView, MacroFuncInfo::m_varArguments, Variant::Receive(), と Wrap().

参照元 stdIntFunc(), と stdStrFunc().

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 の 325 行で定義されています。

参照先 auto_sprintf(), GetDeclarations(), CNativeA::GetStringLength(), CNativeA::GetStringPtr(), m_bError, m_cMemDebug, CEditView::m_hWnd, CSMacroMgr::m_MacroFuncInfoNotCommandArr, MacroFuncInfo::m_nFuncID, と m_pcEditView.

参照元 InitDll().

void __stdcall CPPA::stdFinishProc ( ) [static, private]

PPAマクロの実行終了時に呼ばれる

日付:
2003.06.01 Moca

CPPA.cpp の 561 行で定義されています。

参照先 m_bError, m_cMemDebug, m_cMemRet, m_pcEditView, m_pShareData, NULL, と CNativeA::SetString().

参照元 InitDll().

変数

typedef CPPA::int [private]

CPPA.h の 96 行で定義されています。

typedef CPPA::BOOL [private]

CPPA.h の 110 行で定義されています。

PPA_Execute CPPA::m_fnExecute [private]

CPPA.h の 135 行で定義されています。

参照元 Execute(), と InitDll().

PPA_SetSource CPPA::m_fnSetSource [private]

CPPA.h の 136 行で定義されています。

参照元 InitDll().

PPA_SetDeclare CPPA::m_fnSetDeclare [private]

CPPA.h の 137 行で定義されています。

参照元 InitDll().

PPA_SetDefProc CPPA::m_fnSetDefProc [private]

CPPA.h の 138 行で定義されています。

参照元 InitDll().

PPA_SetDefine CPPA::m_fnSetDefine [private]

CPPA.h の 139 行で定義されています。

参照元 InitDll().

PPA_AddIntVar CPPA::m_fnAddIntVar [private]

CPPA.h の 140 行で定義されています。

参照元 InitDll().

PPA_AddStrVar CPPA::m_fnAddStrVar [private]

CPPA.h の 141 行で定義されています。

参照元 InitDll().

PPA_SetIntFunc CPPA::m_fnSetIntFunc [private]

CPPA.h の 142 行で定義されています。

参照元 InitDll().

PPA_SetStrFunc CPPA::m_fnSetStrFunc [private]

CPPA.h の 143 行で定義されています。

参照元 InitDll().

PPA_SetProc CPPA::m_fnSetProc [private]

CPPA.h の 144 行で定義されています。

参照元 InitDll().

PPA_SetErrProc CPPA::m_fnSetErrProc [private]

CPPA.h の 145 行で定義されています。

参照元 InitDll().

PPA_Abort CPPA::m_fnAbort [private]

CPPA.h の 146 行で定義されています。

参照元 InitDll().

PPA_GetVersion CPPA::m_fnGetVersion [private]

CPPA.h の 147 行で定義されています。

参照元 InitDll().

PPA_DeleteVar CPPA::m_fnDeleteVar [private]

CPPA.h の 148 行で定義されています。

参照元 InitDll().

PPA_GetArgInt CPPA::m_fnGetArgInt [private]

CPPA.h の 149 行で定義されています。

参照元 InitDll().

PPA_GetArgStr CPPA::m_fnGetArgStr [private]

CPPA.h の 150 行で定義されています。

参照元 InitDll().

PPA_GetArgBStr CPPA::m_fnGetArgBStr [private]

CPPA.h の 151 行で定義されています。

参照元 InitDll().

PPA_SetStrObj CPPA::m_fnSetStrObj [private]

CPPA.h の 152 行で定義されています。

参照元 InitDll().

PPA_SetIntObj CPPA::m_fnSetIntObj [private]

CPPA.h の 153 行で定義されています。

参照元 InitDll().

PPA_AddIntObj CPPA::m_fnAddIntObj [private]

CPPA.h の 154 行で定義されています。

参照元 InitDll().

PPA_AddStrObj CPPA::m_fnAddStrObj [private]

CPPA.h の 155 行で定義されています。

参照元 InitDll().

PPA_GetIntVar CPPA::m_fnGetIntVar [private]

CPPA.h の 156 行で定義されています。

参照元 InitDll().

PPA_GetStrVar CPPA::m_fnGetStrVar [private]

CPPA.h の 157 行で定義されています。

参照元 InitDll().

PPA_GetBStrVar CPPA::m_fnGetBStrVar [private]

CPPA.h の 158 行で定義されています。

参照元 InitDll().

PPA_SetIntVar CPPA::m_fnSetIntVar [private]

CPPA.h の 159 行で定義されています。

参照元 InitDll().

PPA_SetStrVar CPPA::m_fnSetStrVar [private]

CPPA.h の 160 行で定義されています。

参照元 InitDll().

PPA_AddRealVar CPPA::m_fnAddRealVar [private]

CPPA.h の 163 行で定義されています。

参照元 InitDll().

PPA_SetRealObj CPPA::m_fnSetRealObj [private]

CPPA.h の 164 行で定義されています。

参照元 InitDll().

PPA_AddRealObj CPPA::m_fnAddRealObj [private]

CPPA.h の 165 行で定義されています。

参照元 InitDll().

PPA_GetRealVar CPPA::m_fnGetRealVar [private]

CPPA.h の 166 行で定義されています。

参照元 InitDll().

PPA_SetRealVar CPPA::m_fnSetRealVar [private]

CPPA.h の 167 行で定義されています。

参照元 InitDll().

PPA_SetRealFunc CPPA::m_fnSetRealFunc [private]

CPPA.h の 168 行で定義されています。

参照元 InitDll().

PPA_GetArgReal CPPA::m_fnGetArgReal [private]

CPPA.h の 169 行で定義されています。

参照元 InitDll().

PPA_IsRunning CPPA::m_fnIsRunning [private]

CPPA.h の 173 行で定義されています。

参照元 InitDll().

PPA_SetFinishProc CPPA::m_fnSetFinishProc [private]

CPPA.h の 174 行で定義されています。

参照元 InitDll().

char CPPA::m_szMsg[80] [private]

CPPAからのメッセージを保持する

CPPA.h の 269 行で定義されています。

CNativeA CPPA::m_cMemRet [static, private]

コールバックからDLLに渡す文字列を保持

CPPA.h の 271 行で定義されています。

参照元 stdFinishProc(), と stdStrFunc().

CEditView * CPPA::m_pcEditView = NULL [static, private]

CPPA.h の 272 行で定義されています。

参照元 CallHandleFunction(), Execute(), stdError(), stdFinishProc(), と stdProc().

DLLSHAREDATA * CPPA::m_pShareData = NULL [static, private]

CPPA.h の 273 行で定義されています。

参照元 Execute(), と stdFinishProc().

bool CPPA::m_bError = false [static, private]

CPPA.h の 274 行で定義されています。

参照元 Execute(), stdError(), と stdFinishProc().

CNativeA CPPA::m_cMemDebug [static, private]

CPPA.h の 275 行で定義されています。

参照元 Execute(), stdError(), stdFinishProc(), と stdStrObj().

このクラスの説明は次のファイルから生成されました:
  • CPPA.h
  • CPPA.cpp
Sakura-Editorに対してSat Nov 17 20:28:48 2007に生成されました。 doxygen 1.5.4


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]
BOOL | CPPA | [private]
BOOL typedef | CPPA | [private]
BOOL typedef | CPPA | [private]
BOOL(WINAPI *PPA_SetIntVar)(const char * | CPPA | [private]
BOOL(WINAPI *PPA_SetStrVar)(const char * | CPPA | [private]
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]
double typedef | CPPA | [private]
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(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CPPA | [protected, virtual]
int | CPPA | [private]
int typedef | CPPA | [private]
int typedef | CPPA | [private]
int(WINAPI *PPA_GetArgInt)(int) | CPPA | [private]
int(WINAPI *PPA_GetIntVar)(const char *ss) | CPPA | [private]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsRunning() | CPPA | [inline]
LoadLibrary(LPCTSTR 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_AddRealObj typedef | CPPA | [private]
PPA_Execute typedef | CPPA | [private]
PPA_GetArgBStr typedef | CPPA | [private]
PPA_GetArgReal typedef | CPPA | [private]
PPA_GetArgStr(int) | CPPA | [private]
PPA_GetBStrVar typedef | CPPA | [private]
PPA_GetRealVar typedef | CPPA | [private]
PPA_GetStrVar(const char *ss) | CPPA | [private]
PPA_GetVersion typedef | CPPA | [private]
PPA_IsRunning typedef | CPPA | [private]
PPA_SetDeclare typedef | CPPA | [private]
PPA_SetDefProc typedef | CPPA | [private]
PPA_SetErrProc typedef | CPPA | [private]
PPA_SetFinishProc typedef | CPPA | [private]
PPA_SetIntFunc typedef | CPPA | [private]
PPA_SetRealFunc typedef | CPPA | [private]
PPA_SetRealObj typedef | CPPA | [private]
PPA_SetRealVar typedef | CPPA | [private]
PPA_SetStrFunc 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]
void(WINAPI *PPA_SetSource)(const char *ss) | CPPA | [private]
void(WINAPI *PPA_SetDefine)(const char *ss) | CPPA | [private]
void(WINAPI *PPA_AddIntVar)(const char * | CPPA | [private]
void(WINAPI *PPA_AddStrVar)(const char * | CPPA | [private]
void(WINAPI *PPA_SetProc)(void *p) | CPPA | [private]
void(WINAPI *PPA_Abort)() | CPPA | [private]
void(WINAPI *PPA_DeleteVar)(const char *) | CPPA | [private]
void(WINAPI *PPA_SetStrObj)(void *proc) | CPPA | [private]
void(WINAPI *PPA_SetIntObj)(void *proc) | CPPA | [private]
void(WINAPI *PPA_AddIntObj)(const char * | CPPA | [private]
void(WINAPI *PPA_AddStrObj)(const char * | CPPA | [private]
void(WINAPI *PPA_AddRealVar)(const char * | CPPA | [private]
~CDllHandler() | CDllHandler | [virtual]
~CPPA() | CPPA | [virtual]

Sakura-Editorに対してSat Nov 17 20:28:48 2007に生成されました。 doxygen 1.5.4


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 TCHAR *pszPath)

Static Public メソッド

static CMacroManagerBase * | Creator (const TCHAR *ext)
Factory
static void | declare (void)

Static Public 変数

static class CPPA | m_cPPA

Protected 変数

CNativeW m_cBuffer

説明

PPAマクロ

CPPAMacroMgr.h の 27 行で定義されています。

コンストラクタとデストラクタ

CPPAMacroMgr::CPPAMacroMgr ( )

CPPAMacroMgr.cpp の 25 行で定義されています。

CPPAMacroMgr::~CPPAMacroMgr ( )

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

関数

void CPPAMacroMgr::ExecKeyMacro ( class CEditView * pcEditView ) const [virtual]

キーボードマクロの実行 PPA.DLLに、バッファ内容を渡して実行。

CMacroManagerBaseを実装しています。

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

参照先 CPPA::Execute(), CNativeW::GetStringPtr(), m_cBuffer, m_cPPA, CPPA::SetSource(), と to_achar().

BOOL CPPAMacroMgr::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const TCHAR * | pszPath |
 | ) |  |  | [virtual]

キーボードマクロの読み込み エラーメッセージは出しません。呼び出し側でよきにはからってください。

CMacroManagerBaseを実装しています。

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

参照先 CNativeW::AppendString(), CStream::Close(), FALSE, m_cBuffer, CMacroManagerBase::m_nReady, CTextInputStream::ReadLineW(), CNativeW::SetNativeData(), と TRUE.

CMacroManagerBase * CPPAMacroMgr::Creator ( const TCHAR * ext ) [static]

Factory

引数:
ext [in] オブジェクト生成の判定に使う拡張子(小文字)
日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え そのため，過ったオブジェクト生成を行わないために拡張子チェックは必須．

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

参照先 NULL.

参照元 declare().

void CPPAMacroMgr::declare ( void ) [static]

CPPAMacroManagerの登録

PPAが利用できないときは何もしない。

日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え

CPPAMacroMgr.cpp の 93 行で定義されています。

参照先 Creator(), CDllHandler::Init(), CMacroFactory::Instance(), m_cPPA, と CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

変数

CPPA CPPAMacroMgr::m_cPPA [static]

CPPAMacroMgr.h の 42 行で定義されています。

参照元 declare(), と ExecKeyMacro().

CNativeW CPPAMacroMgr::m_cBuffer [protected]

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

参照元 ExecKeyMacro(), と LoadKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CPPAMacroMgr.h
  • CPPAMacroMgr.cpp
Sakura-Editorに対してSat Nov 17 20:28:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPPAMacroMgr メンバ一覧

これは全メンバの一覧です。CPPAMacroMgr継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
CPPAMacroMgr() | CPPAMacroMgr |
Creator(const TCHAR *ext) | CPPAMacroMgr | [static]
declare(void) | CPPAMacroMgr | [static]
ExecKeyMacro(class CEditView *pcEditView) const | CPPAMacroMgr | [virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const TCHAR *pszPath) | CPPAMacroMgr | [virtual]
m_cBuffer | CPPAMacroMgr | [protected]
m_cPPA | CPPAMacroMgr | [static]
m_nReady | CMacroManagerBase | [protected]
~CMacroManagerBase() | CMacroManagerBase | [virtual]
~CPPAMacroMgr() | CPPAMacroMgr |

Sakura-Editorに対してSat Nov 17 20:28:49 2007に生成されました。 doxygen 1.5.4


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, TCHAR *pszErrMsg)
BOOL | PrintOpen (TCHAR *pszJobName, MYDEVMODE *pMYDEVMODE, HDC *phdc, TCHAR *pszErrMsg)
void | PrintStartPage (HDC)
void | PrintEndPage (HDC)
void | PrintClose (HDC)

Static Public メソッド

static void | SettingInitialize (PRINTSETTING &, const TCHAR *settingName)
PRINTSETTINGの初期化
static TCHAR * | GetPaperName (int, TCHAR *)
static BOOL | GetPaperSize (int *pnPaperAllWidth, int *pnPaperAllHeight, MYDEVMODE *pDEVMODE)

Static Public 変数

static const PAPER_INFO | m_paperInfoArr []
用紙情報一覧
static const int | m_nPaperInfoArrNum = _countof( m_paperInfoArr )
用紙情報一覧の要素数

Protected メソッド

HDC | CreateDC (MYDEVMODE *pMYDEVMODE, TCHAR *pszErrMsg)
プリンタをオープンし、hDCを作成する

Static Protected メソッド

static const PAPER_INFO * | FindPaperInfo (int id)

Private 変数

HGLOBAL | m_hDevMode
現在プリンタのDEVMODEへのメモリハンドル
HGLOBAL | m_hDevNames
現在プリンタのDEVNAMESへのメモリハンドル

説明

印刷関連機能

オブジェクト指向でないクラス

CPrint.h の 71 行で定義されています。

コンストラクタとデストラクタ

CPrint::CPrint ( void )

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

参照先 m_hDevMode, m_hDevNames, と NULL.

CPrint::~CPrint ( void )

CPrint.cpp の 84 行で定義されています。

参照先 m_hDevMode, m_hDevNames, と NULL.

関数

void CPrint::SettingInitialize | ( | PRINTSETTING & | pPrintSetting,
 |  | const TCHAR * | settingName |
 | ) |  |  | [static]

PRINTSETTINGの初期化

ここではm_mdmDevModeの プリンタ設定は取得・初期化しない

日付:
2006.08.14 Moca Initializeから名称変更。初期化単位をShareDate全てからPRINTSETTING単位に変更． 本関数からDLLSHAREDATAへアクセスする代わりに，CShareDataからPPRINTSETTING単位で逐一渡してもらう．

CPrint.cpp の 579 行で定義されています。

参照先 _tcscpy(), 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.

参照元 CShareData::Init().

TCHAR * CPrint::GetPaperName | ( | int | nPaperSize,
 |  | TCHAR * | pszPaperName |
 | ) |  |  | [static]

CPrint.cpp の 545 行で定義されています。

参照先 _tcscpy(), FindPaperInfo(), PAPER_INFO::m_pszName, と NULL.

参照元 CPrintPreview::OnChangePrintSetting(), と CPrintPreview::OnPaint().

BOOL CPrint::GetPaperSize | ( | int * | pnPaperAllWidth,
 |  | int * | pnPaperAllHeight,
 |  | MYDEVMODE * | pDEVMODE |
 | ) |  |  | [static]

CPrint.cpp の 414 行で定義されています。

参照先 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::GetDefaultPrinter ( MYDEVMODE * pMYDEVMODE )

デフォルトのプリンタを取得し、MYDEVMODE に設定

引数:
pMYDEVMODE [out] 印刷設定

CPrint.cpp の 194 行で定義されています。

参照先 _countof, MYDEVMODE::dmFields, MYDEVMODE::dmOrientation, MYDEVMODE::dmPaperLength, MYDEVMODE::dmPaperSize, MYDEVMODE::dmPaperWidth, FALSE, MYDEVMODE::m_bPrinterNotFound, m_hDevMode, m_hDevNames, MYDEVMODE::m_szPrinterDeviceName, MYDEVMODE::m_szPrinterDriverName, MYDEVMODE::m_szPrinterOutputName, memset_raw(), MYTRACE_A, NULL, PrintDlg(), と TRUE.

参照元 CPrintPreview::GetDefaultPrinterInfo(), と PrintDlg().

BOOL CPrint::PrintDlg | ( | PRINTDLG * | pPD,
 |  | MYDEVMODE * | pMYDEVMODE
 | ) |  |

プリンタダイアログを表示して、プリンタを選択する

引数:
pPD | [i/o] プリンタダイアログ構造体
pMYDEVMODE | [i/o] 印刷設定
作者:
かろと
日付:
2003.

CPrint.cpp の 109 行で定義されています。

参照先 _countof, 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_A, NULL, と TRUE.

参照元 CPrintPreview::DispatchEvent_PPB(), GetDefaultPrinter(), と CPrintPreview::OnPrint().

BOOL CPrint::GetPrintMetrics | ( | MYDEVMODE * | pMYDEVMODE,
 |  | int * | pnPaperAllWidth,
 |  | int * | pnPaperAllHeight,
 |  | int * | pnPaperWidth,
 |  | int * | pnPaperHeight,
 |  | int * | pnPaperOffsetLeft,
 |  | int * | pnPaperOffsetTop,
 |  | TCHAR * | pszErrMsg
 | ) |  |

CPrint.cpp の 346 行で定義されています。

参照先 BOOL, CreateDC(), FALSE, GetPaperSize(), NULL, と TRUE.

参照元 CPrintPreview::OnChangePrintSetting().

BOOL CPrint::PrintOpen | ( | TCHAR * | pszJobName,
 |  | MYDEVMODE * | pMYDEVMODE,
 |  | HDC * | phdc,
 |  | TCHAR * | pszErrMsg
 | ) |  |

CPrint.cpp の 465 行で定義されています。

参照先 auto_sprintf(), BOOL, CreateDC(), FALSE, MYDEVMODE::m_szPrinterDeviceName, memset_raw(), NULL, と TRUE.

参照元 CPrintPreview::OnPrint().

void CPrint::PrintStartPage ( HDC hdc )

CPrint.cpp の 517 行で定義されています。

参照元 CPrintPreview::OnPrint().

void CPrint::PrintEndPage ( HDC hdc )

CPrint.cpp の 526 行で定義されています。

参照元 CPrintPreview::OnPrint().

void CPrint::PrintClose ( HDC hdc )

CPrint.cpp の 534 行で定義されています。

参照元 CPrintPreview::OnPrint().

HDC CPrint::CreateDC | ( | MYDEVMODE * | pMYDEVMODE,
 |  | TCHAR * | pszErrMsg |
 | ) |  |  | [protected]

プリンタをオープンし、hDCを作成する

CPrint.cpp の 269 行で定義されています。

参照先 auto_sprintf(), 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 の 561 行で定義されています。

参照先 m_nPaperInfoArrNum, m_paperInfoArr, と NULL.

参照元 GetPaperName(), と GetPaperSize().

変数

const PAPER_INFO CPrint::m_paperInfoArr [static]

用紙情報一覧

CPrint.h の 74 行で定義されています。

参照元 FindPaperInfo(), と CDlgPrintSetting::SetData().

const int CPrint::m_nPaperInfoArrNum = _countof( m_paperInfoArr ) [static]

用紙情報一覧の要素数

CPrint.h の 75 行で定義されています。

参照元 FindPaperInfo(), と CDlgPrintSetting::SetData().

HGLOBAL CPrint::m_hDevMode [private]

現在プリンタのDEVMODEへのメモリハンドル

CPrint.h の 139 行で定義されています。

参照元 CPrint(), CreateDC(), GetDefaultPrinter(), PrintDlg(), と ~CPrint().

HGLOBAL CPrint::m_hDevNames [private]

現在プリンタのDEVNAMESへのメモリハンドル

CPrint.h の 140 行で定義されています。

参照元 CPrint(), GetDefaultPrinter(), PrintDlg(), と ~CPrint().

このクラスの説明は次のファイルから生成されました:
  • CPrint.h
  • CPrint.cpp
Sakura-Editorに対してSat Nov 17 20:28:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPrint メンバ一覧

これは全メンバの一覧です。CPrint継承メンバも含んでいます。

CPrint() | CPrint |
CreateDC(MYDEVMODE *pMYDEVMODE, TCHAR *pszErrMsg) | CPrint | [protected]
FindPaperInfo(int id) | CPrint | [protected, static]
GetDefaultPrinter(MYDEVMODE *pMYDEVMODE) | CPrint |
GetPaperName(int, TCHAR *) | 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, TCHAR *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(TCHAR *pszJobName, MYDEVMODE *pMYDEVMODE, HDC *phdc, TCHAR *pszErrMsg) | CPrint |
PrintStartPage(HDC) | CPrint |
SettingInitialize(PRINTSETTING &, const TCHAR *settingName) | CPrint | [static]
~CPrint() | CPrint |

Sakura-Editorに対してSat Nov 17 20:28:49 2007に生成されました。 doxygen 1.5.4


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)
HWND | GetPrintPreviewBarHANDLE_Safe () const
thisがNULLでも実行できる版。2007.10.29 kobake
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, const CMyRect &rect, HFONT hFontZen)
void | DrawPageText (HDC, int, int, int, HFONT hFontZen, class CDlgCancel *)
void | DrawFooter (HDC hdc, const CMyRect &rect, HFONT hFontZen)
void | Print_DrawLine (HDC hdc, POINT ptDraw, const wchar_t *pLine, int nLineLen, CLayoutInt nIndent, HFONT hFontZen)
void | SetPreviewFontHan (const LOGFONT *lf)
void | SetPreviewFontZen (const 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
CLayoutInt 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
class CLayoutMgr * | m_pLayoutMgr_Print

Static Protected 変数

static CPrint | m_cPrint
現在のプリンタ情報

説明

CPrintPreview.h の 22 行で定義されています。

コンストラクタとデストラクタ

CPrintPreview::CPrintPreview ( class CEditWnd * pParentWnd )

コンストラクタ 印刷プレビューを表示するために必要な情報を初期化、領域確保。 コントロールも作成する。

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

参照先 CreatePrintPreviewControls(), CEditWnd::GetHwnd(), m_hdcCompatDC, と m_pLayoutMgr_Print.

CPrintPreview::~CPrintPreview ( )

CPrintPreview.cpp の 75 行で定義されています。

参照先 DestroyPrintPreviewControls(), m_hbmpCompatBMP, m_hbmpCompatBMPOld, m_hdcCompatDC, m_pLayoutMgr_Print, と NULL.

関数

LRESULT CPrintPreview::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

印刷プレビュー時の、WM_PAINTを処理

日付:
2007.02.11 Moca プレビューを滑らかにする機能． 拡大描画してから縮小することでアンチエイリアス効果を出す．

CPrintPreview.cpp の 101 行で定義されています。

参照先 _tcscpy(), auto_sprintf(), COMPAT_BMP_BASE, ApiWrap::DlgItem_SetText(), 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.

参照元 CEditWnd::OnPaint().

LRESULT CPrintPreview::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPrintPreview.cpp の 322 行で定義されています。

参照先 COMPAT_BMP_BASE, COMPAT_BMP_SCALE, CEditWnd::GetHwnd(), IDC_CHECK_ANTIALIAS, InitPreviewScrollBar(), COsVersionInfo::IsWin2000_or_later(), m_hbmpCompatBMP, m_hbmpCompatBMPOld, m_hdcCompatDC, m_hwndHScrollBar, m_hwndPrintPreviewBar, m_hwndSizeBox, m_hwndVScrollBar, m_nbmpCompatScale, m_nPreview_PaperAllHeight, m_nPreview_PaperAllWidth, m_nPreview_ViewHeight, m_nPreview_ViewMarginLeft, m_nPreview_ViewMarginTop, m_nPreview_ViewWidth, m_nPreview_Zoom, m_pParentWnd, NULL, OnMouseMove(), CEditWnd::SetDragMode(), CEditWnd::SetDragPosOrg(), と TRUE.

参照元 CreatePrintPreviewControls(), OnChangePrintSetting(), OnCheckAntialias(), OnPreviewZoom(), と CEditWnd::OnSize().

LRESULT CPrintPreview::OnVScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

日付:
2006.08.14 Moca SB_TOP, SB_BOTTOMへの対応

CPrintPreview.cpp の 435 行で定義されています。

参照先 CEditWnd::GetHwnd(), LINE_RANGE_Y, m_nPreviewVScrollPos, m_pParentWnd, NULL, PAGE_RANGE_Y, と TRUE.

参照元 CEditWnd::OnVScroll().

LRESULT CPrintPreview::OnHScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

日付:
2006.08.14 Moca SB_LEFT, SB_RIGHTへの対応

CPrintPreview.cpp の 502 行で定義されています。

参照先 CEditWnd::GetHwnd(), LINE_RANGE_Y, m_nPreviewHScrollPos, m_pParentWnd, NULL, PAGE_RANGE_Y, と TRUE.

参照元 CEditWnd::OnHScroll().

LRESULT CPrintPreview::OnMouseMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPrintPreview.cpp の 564 行で定義されています。

参照先 CEditApp::GetAppInstance(), CEditWnd::GetDragMode(), CEditWnd::GetDragPosOrg(), CEditWnd::GetHwnd(), IDC_CURSOR_HAND, TSingleInstance< CEditApp >::Instance(), m_hwndHScrollBar, m_hwndVScrollBar, m_nPreviewHScrollPos, m_nPreviewVScrollPos, m_pParentWnd, m_SCROLLBAR_HORZ, m_SCROLLBAR_VERT, NULL, CEditWnd::SetDragPosOrg(), と TRUE.

参照元 CEditWnd::OnMouseMove(), と OnSize().

LRESULT CPrintPreview::OnMouseWheel | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPrintPreview.cpp の 637 行で定義されています。

参照先 BlockingHook(), CEditWnd::GetHwnd(), m_hwndVScrollBar, m_pParentWnd, NULL, と PostMessageAny.

参照元 CEditWnd::OnMouseWheel().

void CPrintPreview::OnChangePrintSetting ( void )

CPrintPreview.cpp の 664 行で定義されています。

参照先 COLORIDX_COMMENT, COLORIDX_SSTRING, COLORIDX_WSTRING, CBlockComment::CopyTo(), CLineComment::CopyTo(), CLayoutMgr::Create(), CTextArea::DetectWidthOfLineNumberArea_calculate(), MYDEVMODE::dmFields, MYDEVMODE::dmOrientation, MYDEVMODE::dmPaperLength, MYDEVMODE::dmPaperSize, MYDEVMODE::dmPaperWidth, FALSE, CEditWnd::GetDocument(), CEditDoc::GetDocumentAttribute(), CEditWnd::GetHwnd(), CLayoutMgr::GetLineCount(), CPrint::GetPaperName(), CPrint::GetPrintMetrics(), CLayoutMgr::GetTabSpace(), CEditView::GetTextArea(), GSTR_APPNAME_A, ColorInfo::m_bDisp, Types::m_bKinsokuHead, Types::m_bKinsokuKuto, Types::m_bKinsokuRet, Types::m_bKinsokuTail, m_bPreview_EnableColms, m_bPreview_EnableLines, PRINTSETTING::m_bPrintKinsokuHead, PRINTSETTING::m_bPrintKinsokuKuto, PRINTSETTING::m_bPrintKinsokuRet, PRINTSETTING::m_bPrintKinsokuTail, PRINTSETTING::m_bPrintLineNumber, PRINTSETTING::m_bPrintWordWrap, Types::m_bWordWrap, Types::m_cBlockComment, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, Types::m_cLineComment, Types::m_ColorInfoArr, m_cPrint, PRINTSETTING::m_mdmDevMode, m_nAllPageNum, m_nCurPageNum, Types::m_nMaxLineKetas, m_nPreview_LineNumberColmns, m_nPreview_PaperAllHeight, m_nPreview_PaperAllWidth, m_nPreview_PaperHeight, m_nPreview_PaperOffsetLeft, m_nPreview_PaperOffsetTop, m_nPreview_PaperWidth, m_nPreview_ViewMarginLeft, m_nPreview_ViewMarginTop, 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, Types::m_nStringType, Types::m_nTabSpace, CEditWnd::m_pcEditViewArr, m_pLayoutMgr_Print, m_pParentWnd, m_pPrintSetting, MYDEVMODE::m_szPrinterDeviceName, MyEnumFontFamProc(), MYMESSAGEBOX_A, NULL, OnPreviewGoPage(), OnSize(), CLayoutMgr::SetLayoutInfo(), と TRUE.

参照元 DispatchEvent_PPB(), と CEditWnd::OnPrintPageSetting().

void CPrintPreview::OnPreviewGoPage ( int nPage )

CPrintPreview.cpp の 840 行で定義されています。

参照先 auto_sprintf(), ApiWrap::DlgItem_SetText(), FALSE, CEditWnd::GetHwnd(), IDC_BUTTON_NEXTPAGE, IDC_BUTTON_PREVPAGE, IDC_STATIC_PAGENUM, IDC_STATIC_ZOOM, m_hwndPrintPreviewBar, m_nAllPageNum, m_nCurPageNum, m_nPreview_Zoom, m_pParentWnd, NULL, と TRUE.

参照元 OnChangePrintSetting(), OnPreviewGoDirectPage(), OnPreviewGoNextPage(), と OnPreviewGoPreviousPage().

void CPrintPreview::OnPreviewGoPreviousPage ( ) [inline]

CPrintPreview.h の 45 行で定義されています。

参照先 m_nCurPageNum, と OnPreviewGoPage().

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewGoNextPage ( ) [inline]

CPrintPreview.h の 46 行で定義されています。

参照先 m_nCurPageNum, と OnPreviewGoPage().

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewGoDirectPage ( void )

ページ番号直接指定によるジャンプ

作者:
Moca

CPrintPreview.cpp の 808 行で定義されています。

参照先 auto_sprintf(), BOOL, CDlgInput1::DoModal(), FALSE, TSingleInstance< CEditApp >::Instance(), m_hwndPrintPreviewBar, m_nAllPageNum, m_nCurPageNum, と OnPreviewGoPage().

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewZoom ( BOOL bZoomUp )

CPrintPreview.cpp の 883 行で定義されています。

参照先 auto_sprintf(), ApiWrap::DlgItem_SetText(), FALSE, CEditWnd::GetHwnd(), IDC_BUTTON_ZOOMDOWN, IDC_BUTTON_ZOOMUP, IDC_STATIC_ZOOM, InitPreviewScrollBar(), 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 の 947 行で定義されています。

参照先 _MAX_EXT, _MAX_FNAME, _tcscpy(), auto_sprintf(), CDialog::CloseDialog(), ApiWrap::DlgItem_SetText(), CDlgCancel::DoModeless(), DrawFooter(), DrawHeader(), DrawPageText(), FALSE, CEditWnd::GetDocument(), CEditDoc::GetFilePath(), CDialog::GetHwnd(), CEditWnd::GetHwnd(), GSTR_APPNAME_A, IDC_STATIC_JOBNAME, IDC_STATIC_PROGRESS, IDD_PRINTING, TSingleInstance< CEditApp >::Instance(), CDlgCancel::IsCanceled(), CEditDoc::IsFilePathAvailable(), m_cPrint, m_lfPreviewHan, m_lfPreviewZen, PRINTSETTING::m_mdmDevMode, m_nAllPageNum, m_nCurPageNum, m_nPreview_PaperAllHeight, m_nPreview_PaperAllWidth, m_nPreview_PaperOffsetLeft, m_nPreview_PaperOffsetTop, PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintLineSpacing, PRINTSETTING::m_nPrintMarginBY, PRINTSETTING::m_nPrintMarginLX, PRINTSETTING::m_nPrintMarginRX, PRINTSETTING::m_nPrintMarginTY, m_pParentWnd, m_pPrintSetting, memset_raw(), MYMESSAGEBOX_A, NULL, CPrint::PrintClose(), CPrint::PrintDlg(), CPrint::PrintEndPage(), CPrint::PrintOpen(), CEditWnd::PrintPreviewModeONOFF(), CPrint::PrintStartPage(), と TRUE.

参照元 CViewCommander::Command_PRINT(), と DispatchEvent_PPB().

BOOL CPrintPreview::OnPrintPageSetting ( void )

void CPrintPreview::OnCheckAntialias ( void )

滑らか チェック時、2倍(COMPAT_BMP_SCALE/COMPAT_BMP_BASE)サイズでレンダリングする

CPrintPreview.cpp の 936 行で定義されています。

参照先 CEditWnd::GetHwnd(), m_pParentWnd, と OnSize().

参照元 DispatchEvent_PPB().

void CPrintPreview::InitPreviewScrollBar ( void )

CPrintPreview.cpp の 1362 行で定義されています。

参照先 FALSE, CEditWnd::GetHwnd(), 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(), CEditWnd::OnPrintPageSetting(), と OnSize().

void CPrintPreview::CreatePrintPreviewControls ( void )

印刷プレビューに必要なコントロールを作成する

CPrintPreview.cpp の 1578 行で定義されています。

参照先 CEditApp::GetAppInstance(), CEditWnd::GetHwnd(), IDD_PRINTPREVIEWBAR, TSingleInstance< CEditApp >::Instance(), m_hwndHScrollBar, m_hwndPrintPreviewBar, m_hwndSizeBox, m_hwndVScrollBar, m_pParentWnd, NULL, OnSize(), PrintPreviewBar_DlgProc(), と TRUE.

参照元 CPrintPreview().

void CPrintPreview::DestroyPrintPreviewControls ( void )

印刷プレビューに必要だったコントロールを破棄する

CPrintPreview.cpp の 1674 行で定義されています。

参照先 m_hwndHScrollBar, m_hwndPrintPreviewBar, m_hwndSizeBox, m_hwndVScrollBar, と NULL.

参照元 ~CPrintPreview().

void CPrintPreview::SetFocusToPrintPreviewBar ( void )

CPrintPreview.cpp の 1730 行で定義されています。

参照先 m_hwndPrintPreviewBar, と NULL.

参照元 CEditWnd::DispatchEvent().

HWND CPrintPreview::GetPrintPreviewBarHANDLE ( void ) [inline]

CPrintPreview.h の 64 行で定義されています。

参照先 m_hwndPrintPreviewBar.

HWND CPrintPreview::GetPrintPreviewBarHANDLE_Safe ( ) const [inline]

thisがNULLでも実行できる版。2007.10.29 kobake

CPrintPreview.h の 65 行で定義されています。

参照先 m_hwndPrintPreviewBar, と NULL.

参照元 CEditWnd::MessageLoop().

INT_PTR CALLBACK CPrintPreview::PrintPreviewBar_DlgProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

CPrintPreview.cpp の 1700 行で定義されています。

参照先 DispatchEvent_PPB(), DWLP_USER, FALSE, GetWindowLongPtr, NULL, SetWindowLongPtr, と TRUE.

参照元 CreatePrintPreviewControls().

INT_PTR CPrintPreview::DispatchEvent_PPB | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPrintPreview.cpp の 1739 行で定義されています。

参照先 MYDEVMODE::dmOrientation, MYDEVMODE::dmPaperSize, F_PRINT_PREVIEW, FALSE, FuncID_To_HelpContextID(), CEditWnd::GetHwnd(), 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(), TSingleInstance< CEditApp >::Instance(), COsVersionInfo::IsWin2000_or_later(), m_cPrint, PRINTSETTING::m_mdmDevMode, PRINTSETTING::m_nPrintPaperOrientation, PRINTSETTING::m_nPrintPaperSize, m_pParentWnd, m_pPrintSetting, memset_raw(), MyWinHelp(), NULL, OnChangePrintSetting(), OnCheckAntialias(), OnPreviewGoDirectPage(), OnPreviewGoNextPage(), OnPreviewGoPreviousPage(), OnPreviewZoom(), OnPrint(), CEditWnd::OnPrintPageSetting(), CPrint::PrintDlg(), CEditWnd::PrintPreviewModeONOFF(), と TRUE.

参照元 PrintPreviewBar_DlgProc().

void CPrintPreview::DrawHeader | ( | HDC | hdc,
 |  | const CMyRect & | rect,
 |  | HFONT | hFontZen |
 | ) |  |  | [protected]

印刷/印刷プレビュー ヘッダの描画

CPrintPreview.cpp の 1108 行で定義されています。

参照先 CTextMetrics::CalcTextWidth2(), CEditDoc::ExpandParameter(), CEditWnd::GetDocument(), PRINTSETTING::m_nPrintFontWidth, m_pParentWnd, m_pPrintSetting, PRINTSETTING::m_szHeaderForm, POS_CENTER, POS_LEFT, POS_RIGHT, Print_DrawLine(), と CMyRect::UpperLeft().

参照元 OnPaint(), と OnPrint().

void CPrintPreview::DrawPageText | ( | HDC | hdc,
 |  | int | nOffX,
 |  | int | nOffY,
 |  | int | nPageNum,
 |  | HFONT | hFontZen,
 |  | class CDlgCancel * | pCDlgCancel |
 | ) |  |  | [protected]

CPrintPreview.cpp の 1227 行で定義されています。

参照先 auto_sprintf(), BlockingHook(), ApiWrap::ExtTextOutW_AnyBuild(), CTextMetrics::GenerateDxArray(), CEditWnd::GetDocument(), CEditDoc::GetDocumentAttribute(), CDialog::GetHwnd(), CLayout::GetIndent(), CLayout::GetLengthWithoutEOL(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CLayout::GetPtr(), Types::m_bLineNumIsCRLF, m_bPreview_EnableColms, m_bPreview_EnableLines, PRINTSETTING::m_bPrintLineNumber, Types::m_cLineTermChar, Types::m_nLineTermType, m_nPreview_LineNumberColmns, PRINTSETTING::m_nPrintDanSpace, PRINTSETTING::m_nPrintDansuu, PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintFontWidth, PRINTSETTING::m_nPrintLineSpacing, m_pLayoutMgr_Print, m_pParentWnd, m_pPrintSetting, NULL, Print_DrawLine(), と CLayoutMgr::SearchLineByLayoutY().

参照元 OnPaint(), と OnPrint().

void CPrintPreview::DrawFooter | ( | HDC | hdc,
 |  | const CMyRect & | rect,
 |  | HFONT | hFontZen |
 | ) |  |  | [protected]

印刷/印刷プレビュー フッタの描画

CPrintPreview.cpp の 1163 行で定義されています。

参照先 CTextMetrics::CalcTextWidth2(), CEditDoc::ExpandParameter(), CEditWnd::GetDocument(), PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintFontWidth, m_pParentWnd, m_pPrintSetting, PRINTSETTING::m_szFooterForm, POS_CENTER, POS_LEFT, POS_RIGHT, と Print_DrawLine().

参照元 OnPaint(), と OnPrint().

void CPrintPreview::Print_DrawLine | ( | HDC | hdc,
 |  | POINT | ptDraw,
 |  | const wchar_t * | pLine,
 |  | int | nLineLen,
 |  | CLayoutInt | nIndent,
 |  | HFONT | hFontZen |
 | ) |  |  | [protected]

印刷／プレビュー 行描画

引数:
[in] nIndent 行頭折り返しインデント桁数
日付:
2006.08.14 Moca 折り返しインデントが印刷時に反映されるように
引数:
ptDraw | 描画座標。HDC内部単位。
nIndent | 折り返しインデント桁数 // 2006.08.14 Moca

CPrintPreview.cpp の 1427 行で定義されています。

参照先 ApiWrap::ExtTextOutW_AnyBuild(), CTextMetrics::GenerateDxArray(), CEditWnd::GetDocument(), CLayoutMgr::GetTabSpace(), CEditDoc::m_cLayoutMgr, PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintFontWidth, m_pParentWnd, m_pPrintSetting, NULL, と WCODE::TAB.

参照元 DrawFooter(), DrawHeader(), と DrawPageText().

int CALLBACK CPrintPreview::MyEnumFontFamProc | ( | ENUMLOGFONT * | pelf,
 |  | NEWTEXTMETRIC * | pntm,
 |  | int | nFontType,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

CPrintPreview.cpp の 1557 行で定義されています。

参照先 m_pPrintSetting, PRINTSETTING::m_szPrintFontFaceHan, PRINTSETTING::m_szPrintFontFaceZen, SetPreviewFontHan(), と SetPreviewFontZen().

参照元 OnChangePrintSetting().

void CPrintPreview::SetPrintSetting ( PRINTSETTING * pPrintSetting ) [inline]

CPrintPreview.h の 116 行で定義されています。

参照先 m_pPrintSetting.

参照元 CEditWnd::OnPrintPageSetting().

BOOL CPrintPreview::GetDefaultPrinterInfo ( ) [inline]

CPrintPreview.h の 117 行で定義されています。

参照先 CPrint::GetDefaultPrinter(), m_cPrint, PRINTSETTING::m_mdmDevMode, と m_pPrintSetting.

int CPrintPreview::GetCurPageNum ( ) [inline]

CPrintPreview.h の 118 行で定義されています。

参照先 m_nCurPageNum.

int CPrintPreview::GetAllPageNum ( ) [inline]

CPrintPreview.h の 119 行で定義されています。

参照先 m_nAllPageNum.

void CPrintPreview::SetHeader ( char * pszWork[] )

void CPrintPreview::SetFooter ( char * pszWork[] )

void CPrintPreview::SetPreviewFontHan ( const LOGFONT * lf ) [protected]

CPrintPreview.cpp の 1538 行で定義されています。

参照先 _tcscpy(), m_lfPreviewHan, PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintFontWidth, m_pPrintSetting, と PRINTSETTING::m_szPrintFontFaceHan.

参照元 MyEnumFontFamProc().

void CPrintPreview::SetPreviewFontZen ( const LOGFONT * lf ) [protected]

CPrintPreview.cpp の 1548 行で定義されています。

参照先 _tcscpy(), m_lfPreviewZen, PRINTSETTING::m_nPrintFontHeight, PRINTSETTING::m_nPrintFontWidth, m_pPrintSetting, と PRINTSETTING::m_szPrintFontFaceZen.

参照元 MyEnumFontFamProc().

変数

CEditWnd* CPrintPreview::m_pParentWnd [protected]

CPrintPreview.h の 137 行で定義されています。

参照元 CreatePrintPreviewControls(), DispatchEvent_PPB(), DrawFooter(), DrawHeader(), DrawPageText(), InitPreviewScrollBar(), OnChangePrintSetting(), OnCheckAntialias(), OnHScroll(), OnMouseMove(), OnMouseWheel(), OnPreviewGoPage(), OnPreviewZoom(), OnPrint(), OnSize(), OnVScroll(), と Print_DrawLine().

HDC CPrintPreview::m_hdcCompatDC [protected]

再描画用コンパチブルDC

CPrintPreview.h の 140 行で定義されています。

参照元 CPrintPreview(), OnPaint(), OnSize(), と ~CPrintPreview().

HBITMAP CPrintPreview::m_hbmpCompatBMP [protected]

再描画用メモリBMP

CPrintPreview.h の 141 行で定義されています。

参照元 OnSize(), と ~CPrintPreview().

HBITMAP CPrintPreview::m_hbmpCompatBMPOld [protected]

再描画用メモリBMP(OLD)

CPrintPreview.h の 142 行で定義されています。

参照元 OnSize(), と ~CPrintPreview().

int CPrintPreview::m_nbmpCompatScale [protected]

BMPの画面の10(COMPAT_BMP_BASE)ピクセル幅あたりのBMPのピクセル幅

CPrintPreview.h の 143 行で定義されています。

参照元 OnPaint(), と OnSize().

HWND CPrintPreview::m_hwndPrintPreviewBar [protected]

CPrintPreview.h の 147 行で定義されています。

参照元 CreatePrintPreviewControls(), DestroyPrintPreviewControls(), GetPrintPreviewBarHANDLE(), GetPrintPreviewBarHANDLE_Safe(), InitPreviewScrollBar(), OnPaint(), OnPreviewGoDirectPage(), OnPreviewGoPage(), OnPreviewZoom(), OnSize(), と SetFocusToPrintPreviewBar().

int CPrintPreview::m_nPreviewVScrollPos [protected]

CPrintPreview.h の 149 行で定義されています。

参照元 InitPreviewScrollBar(), OnMouseMove(), OnPaint(), OnPreviewZoom(), と OnVScroll().

int CPrintPreview::m_nPreviewHScrollPos [protected]

CPrintPreview.h の 150 行で定義されています。

参照元 InitPreviewScrollBar(), OnHScroll(), OnMouseMove(), OnPaint(), と OnPreviewZoom().

BOOL CPrintPreview::m_SCROLLBAR_HORZ [protected]

CPrintPreview.h の 151 行で定義されています。

参照元 InitPreviewScrollBar(), と OnMouseMove().

BOOL CPrintPreview::m_SCROLLBAR_VERT [protected]

CPrintPreview.h の 152 行で定義されています。

参照元 InitPreviewScrollBar(), と OnMouseMove().

HWND CPrintPreview::m_hwndVScrollBar [protected]

CPrintPreview.h の 153 行で定義されています。

参照元 CreatePrintPreviewControls(), DestroyPrintPreviewControls(), InitPreviewScrollBar(), OnMouseMove(), OnMouseWheel(), と OnSize().

HWND CPrintPreview::m_hwndHScrollBar [protected]

CPrintPreview.h の 154 行で定義されています。

参照元 CreatePrintPreviewControls(), DestroyPrintPreviewControls(), InitPreviewScrollBar(), OnMouseMove(), と OnSize().

HWND CPrintPreview::m_hwndSizeBox [protected]

CPrintPreview.h の 156 行で定義されています。

参照元 CreatePrintPreviewControls(), DestroyPrintPreviewControls(), と OnSize().

BOOL CPrintPreview::m_SizeBoxCanMove [protected]

CPrintPreview.h の 157 行で定義されています。

int CPrintPreview::m_nPreview_Zoom [protected]

CPrintPreview.h の 160 行で定義されています。

参照元 OnPaint(), OnPreviewGoPage(), OnPreviewZoom(), と OnSize().

int CPrintPreview::m_nPreview_ViewWidth [protected]

CPrintPreview.h の 163 行で定義されています。

参照元 InitPreviewScrollBar(), と OnSize().

int CPrintPreview::m_nPreview_ViewHeight [protected]

CPrintPreview.h の 164 行で定義されています。

参照元 InitPreviewScrollBar(), と OnSize().

int CPrintPreview::m_nPreview_ViewMarginLeft [protected]

CPrintPreview.h の 165 行で定義されています。

参照元 OnChangePrintSetting(), OnPaint(), と OnSize().

int CPrintPreview::m_nPreview_ViewMarginTop [protected]

CPrintPreview.h の 166 行で定義されています。

参照元 OnChangePrintSetting(), OnPaint(), と OnSize().

int CPrintPreview::m_nPreview_PaperAllWidth [protected]

CPrintPreview.h の 167 行で定義されています。

参照元 OnChangePrintSetting(), OnPaint(), OnPrint(), と OnSize().

int CPrintPreview::m_nPreview_PaperAllHeight [protected]

CPrintPreview.h の 168 行で定義されています。

参照元 OnChangePrintSetting(), OnPaint(), OnPrint(), と OnSize().

int CPrintPreview::m_nPreview_PaperWidth [protected]

CPrintPreview.h の 169 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperHeight [protected]

CPrintPreview.h の 170 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperOffsetLeft [protected]

CPrintPreview.h の 171 行で定義されています。

参照元 OnChangePrintSetting(), と OnPrint().

int CPrintPreview::m_nPreview_PaperOffsetTop [protected]

CPrintPreview.h の 172 行で定義されています。

参照元 OnChangePrintSetting(), と OnPrint().

CLayoutInt CPrintPreview::m_bPreview_EnableColms [protected]

CPrintPreview.h の 175 行で定義されています。

参照元 DrawPageText(), と OnChangePrintSetting().

int CPrintPreview::m_bPreview_EnableLines [protected]

CPrintPreview.h の 176 行で定義されています。

参照元 DrawPageText(), と OnChangePrintSetting().

int CPrintPreview::m_nPreview_LineNumberColmns [protected]

CPrintPreview.h の 177 行で定義されています。

参照元 DrawPageText(), と OnChangePrintSetting().

int CPrintPreview::m_nAllPageNum [protected]

CPrintPreview.h の 178 行で定義されています。

参照元 GetAllPageNum(), OnChangePrintSetting(), OnPreviewGoDirectPage(), OnPreviewGoPage(), と OnPrint().

int CPrintPreview::m_nCurPageNum [protected]

CPrintPreview.h の 179 行で定義されています。

参照元 GetCurPageNum(), OnChangePrintSetting(), OnPaint(), OnPreviewGoDirectPage(), OnPreviewGoNextPage(), OnPreviewGoPage(), OnPreviewGoPreviousPage(), と OnPrint().

PRINTSETTING* CPrintPreview::m_pPrintSetting [protected]

CPrintPreview.h の 181 行で定義されています。

参照元 DispatchEvent_PPB(), DrawFooter(), DrawHeader(), DrawPageText(), GetDefaultPrinterInfo(), MyEnumFontFamProc(), OnChangePrintSetting(), OnPaint(), OnPrint(), Print_DrawLine(), SetPreviewFontHan(), SetPreviewFontZen(), と SetPrintSetting().

LOGFONT CPrintPreview::m_lfPreviewHan [protected]

CPrintPreview.h の 182 行で定義されています。

参照元 OnPaint(), OnPrint(), と SetPreviewFontHan().

LOGFONT CPrintPreview::m_lfPreviewZen [protected]

CPrintPreview.h の 183 行で定義されています。

参照元 OnPaint(), OnPrint(), と SetPreviewFontZen().

class CLayoutMgr* CPrintPreview::m_pLayoutMgr_Print [protected]

CPrintPreview.h の 185 行で定義されています。

参照元 CPrintPreview(), DrawPageText(), OnChangePrintSetting(), と ~CPrintPreview().

CPrint CPrintPreview::m_cPrint [static, protected]

現在のプリンタ情報

現在のプリンタ情報 2003.05.02 かろと

CPrintPreview.h の 188 行で定義されています。

参照元 DispatchEvent_PPB(), GetDefaultPrinterInfo(), OnChangePrintSetting(), と OnPrint().

このクラスの説明は次のファイルから生成されました:
  • CPrintPreview.h
  • CPrintPreview.cpp
Sakura-Editorに対してSat Nov 17 20:28:50 2007に生成されました。 doxygen 1.5.4


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, const CMyRect &rect, HFONT hFontZen) | CPrintPreview | [protected]
DrawHeader(HDC hdc, const CMyRect &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]
GetPrintPreviewBarHANDLE_Safe() const | 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_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, POINT ptDraw, const wchar_t *pLine, int nLineLen, CLayoutInt 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(const LOGFONT *lf) | CPrintPreview | [protected]
SetPreviewFontZen(const LOGFONT *lf) | CPrintPreview | [protected]
SetPrintSetting(PRINTSETTING *pPrintSetting) | CPrintPreview | [inline]
~CPrintPreview() | CPrintPreview |

Sakura-Editorに対してSat Nov 17 20:28:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProcess

プロセス基底クラス [詳細]

#include <CProcess.h>

CProcessに対する継承グラフ

[凡例]
CProcessのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CProcess (HINSTANCE hInstance, LPTSTR lpCmdLine)
プロセス基底クラス
bool | Run ()
プロセス実行
virtual | ~CProcess ()
HINSTANCE | GetProcessInstance () const
CShareData & GetShareData ()
DLLSHAREDATA & GetDllShareData ()
HWND | GetMainWindow () const

Protected メソッド

CProcess ()
virtual bool | Initialize ()
プロセスを初期化する
virtual bool | MainLoop ()=0
virtual void | Terminate ()=0
void | SetMainWindow (HWND hwnd)

Private 変数

HINSTANCE | m_hInstance
HWND | m_hWnd
LPTSTR | m_CommandLine
CShareData m_cShareData

説明

プロセス基底クラス

CProcess.h の 26 行で定義されています。

コンストラクタとデストラクタ

CProcess::CProcess | ( | HINSTANCE | hInstance,
 |  | LPTSTR | lpCmdLine
 | ) |  |

プロセス基底クラス

作者:
aroka
日付:
2002/01/07
引数:
hInstance | handle to process instance
lpCmdLine | pointer to command line

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

virtual CProcess::~CProcess ( ) [inline, virtual]

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

CProcess::CProcess ( ) [protected]

関数

bool CProcess::Run ( void )

プロセス実行

作者:
aroka
日付:
2002/01/16

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

参照先 Initialize(), MainLoop(), と Terminate().

参照元 _tWinMain().

bool CProcess::Initialize ( ) [protected, virtual]

プロセスを初期化する

共有メモリを初期化する

CControlProcess, と CNormalProcessで再定義されています。

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

参照先 GSTR_APPNAME, CShareData::Init(), m_cShareData, MYMESSAGEBOX, と NULL.

参照元 CNormalProcess::Initialize(), CControlProcess::Initialize(), と Run().

virtual bool CProcess::MainLoop ( ) [protected, pure virtual]

CControlProcess, と CNormalProcessで実装されています。

参照元 Run().

virtual void CProcess::Terminate ( ) [protected, pure virtual]

CControlProcess, と CNormalProcessで実装されています。

参照元 Run().

void CProcess::SetMainWindow ( HWND hwnd ) [inline, protected]

CProcess.h の 38 行で定義されています。

参照元 CNormalProcess::Initialize(), と CControlProcess::Initialize().

HINSTANCE CProcess::GetProcessInstance ( ) const [inline]

CProcess.h の 40 行で定義されています。

参照元 CNormalProcess::Initialize(), と CControlProcess::Initialize().

CShareData& CProcess::GetShareData ( ) [inline]

CProcess.h の 41 行で定義されています。

参照元 CNormalProcess::Initialize(), と CControlProcess::Initialize().

DLLSHAREDATA& CProcess::GetDllShareData ( ) [inline]

CProcess.h の 42 行で定義されています。

参照元 GetDllShareData(), CNormalProcess::Initialize(), CControlProcess::Initialize(), と CControlProcess::Terminate().

HWND CProcess::GetMainWindow ( ) const [inline]

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

参照元 CNormalProcess::MainLoop(), と CControlProcess::MainLoop().

変数

HINSTANCE CProcess::m_hInstance [private]

CProcess.h の 46 行で定義されています。

HWND CProcess::m_hWnd [private]

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

LPTSTR CProcess::m_CommandLine [private]

CProcess.h の 48 行で定義されています。

CShareData CProcess::m_cShareData [private]

CProcess.h の 51 行で定義されています。

参照元 Initialize().

このクラスの説明は次のファイルから生成されました:
  • CProcess.h
  • CProcess.cpp
Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProcess メンバ一覧

これは全メンバの一覧です。CProcess継承メンバも含んでいます。

CProcess(HINSTANCE hInstance, LPTSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
GetDllShareData() | CProcess | [inline]
GetMainWindow() const | CProcess | [inline]
GetProcessInstance() const | CProcess | [inline]
GetShareData() | CProcess | [inline]
Initialize() | CProcess | [protected, virtual]
m_CommandLine | CProcess | [private]
m_cShareData | CProcess | [private]
m_hInstance | CProcess | [private]
m_hWnd | CProcess | [private]
MainLoop()=0 | CProcess | [protected, pure virtual]
Run() | CProcess |
SetMainWindow(HWND hwnd) | CProcess | [inline, protected]
Terminate()=0 | CProcess | [protected, pure virtual]
~CProcess() | CProcess | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CProcessFactory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProcessFactory

プロセス生成クラス [詳細]

#include <CProcessFactory.h>

すべてのメンバ一覧

Public メソッド

CProcess * | Create (HINSTANCE hInstance, LPTSTR 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,
 |  | LPTSTR | lpCmdLine
 | ) |  |

プロセスクラスを生成する

コマンドライン、コントロールプロセスの有無を判定し、 適当なプロセスクラスを生成する。

引数:
[in] | hInstance | インスタンスハンドル
[in] | lpCmdLine | コマンドライン文字列
作者:
aroka
日付:
2002/01/08

2006/04/10 ryoji

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

参照先 CCommandLine::Instance(), IsExistControlProcess(), IsStartingControlProcess(), IsValidVersion(), StartControlProcess(), TestWriteQuit(), と WaitForInitializedControlProcess().

参照元 _tWinMain().

bool CProcessFactory::IsValidVersion ( ) [private]

Windowsバージョンのチェック

Windows 95以上，Windows NT4.0以上であることを確認する． Windows 95系では残りリソースのチェックも行う．

作者:
aroka
日付:
2002/01/03

CProcessFactory.cpp の 96 行で定義されています。

参照先 CheckSystemResources(), COsVersionInfo::GetVersion(), GSTR_APPNAME, GSTR_APPNAME_A, COsVersionInfo::IsWin32NT(), MYMESSAGEBOX_A, NULL, と COsVersionInfo::OsIsEnableVersion().

参照元 Create().

bool CProcessFactory::IsStartingControlProcess ( ) [private]

コマンドラインに -NOWIN があるかを判定する。

作者:
aroka
日付:
2002/01/03 作成 2002/01/18 変更

CProcessFactory.cpp の 131 行で定義されています。

参照先 CCommandLine::Instance(), と CCommandLine::IsNoWindow().

参照元 Create().

bool CProcessFactory::IsExistControlProcess ( ) [private]

コントロールプロセスの有無を調べる。

作者:
aroka
日付:
2002/01/03

2006/04/10 ryoji

CProcessFactory.cpp の 143 行で定義されています。

参照先 FALSE, GSTR_MUTEX_SAKURA_CP, と NULL.

参照元 Create(), と WaitForInitializedControlProcess().

bool CProcessFactory::StartControlProcess ( ) [private]

コントロールプロセスを起動する

自分自身に -NOWIN オプションを付けて起動する． 共有メモリをチェックしてはいけないので，残念ながらCControlTrayOpenNewEditorは使えない．

作者:
genta
日付:
Aug. 28, 2001

CProcessFactory.cpp の 165 行で定義されています。

参照先 _countof, auto_sprintf(), BOOL, FALSE, GSTR_APPNAME, MY_RUNNINGTIMER, MYMESSAGEBOX, と NULL.

参照元 Create().

bool CProcessFactory::WaitForInitializedControlProcess ( ) [private]

コントロールプロセスの初期化完了イベントを待つ。

作者:
ryoji by assitance with karoto
日付:
2006/04/10

CProcessFactory.cpp の 254 行で定義されています。

参照先 FALSE, GSTR_APPNAME, GSTR_EVENT_SAKURA_CP_INITIALIZED, IsExistControlProcess(), MYMESSAGEBOX, と NULL.

参照元 Create().

bool CProcessFactory::TestWriteQuit ( ) [private]

「設定を保存して終了する」オプション処理（sakuext連携用）

作者:
ryoji
日付:
2007.09.04

CProcessFactory.cpp の 298 行で定義されています。

参照先 _MAX_PATH, FALSE, CShareData::GetIniFileNameDirect(), と CCommandLine::Instance().

参照元 Create().

このクラスの説明は次のファイルから生成されました:
  • CProcessFactory.h
  • CProcessFactory.cpp
Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProcessFactory メンバ一覧

これは全メンバの一覧です。CProcessFactory継承メンバも含んでいます。

Create(HINSTANCE hInstance, LPTSTR lpCmdLine) | CProcessFactory |
IsExistControlProcess() | CProcessFactory | [private]
IsStartingControlProcess() | CProcessFactory | [private]
IsValidVersion() | CProcessFactory | [private]
StartControlProcess() | CProcessFactory | [private]
TestWriteQuit() | CProcessFactory | [private]
WaitForInitializedControlProcess() | CProcessFactory | [private]

Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CProfile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProfile

INIファイル入出力 [詳細]

#include <CProfile.h>

CProfileに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

CProfile ()
~CProfile ()
void | Init (void)
bool | IsReadingMode (void)
void | SetReadingMode (void)
void | SetWritingMode (void)
bool | ReadProfile (const TCHAR *)
bool | WriteProfile (const TCHAR *, const WCHAR *pszComment)
void | DUMP (void)

Protected メソッド

void | ReadOneline (const wstring &line)
bool | WriteFile (const tstring &strFilename, const std::vector< wstring > &vecLine)
bool | GetProfileDataImp (const wstring &strSectionName, const wstring &strEntryKey, wstring &strEntryValue)
bool | SetProfileDataImp (const wstring &strSectionName, const wstring &strEntryKey, const wstring &strEntryValue)

Protected 変数

tstring m_strProfileName
最後に読み書きしたファイル名
std::vector< Section > | m_ProfileData
bool | m_bRead
モード(true=読み込み/false=書き出し)

Private 型

typedef std::wstring | wstring
typedef std::tstring | tstring
typedef std::pair< wstring,
wstring > 		PAIR_STR_STR
typedef std::map< wstring,
wstring > 		MAP_STR_STR

構成

struct | Section

説明

INIファイル入出力

CProfile.h の 51 行で定義されています。

型定義

typedef std::wstring CProfile::wstring [private]

CDataProfileで再定義されています。

CProfile.h の 54 行で定義されています。

typedef std::tstring CProfile::tstring [private]

CDataProfileで再定義されています。

CProfile.h の 55 行で定義されています。

typedef std::pair< wstring, wstring > CProfile::PAIR_STR_STR [private]

CProfile.h の 57 行で定義されています。

typedef std::map< wstring, wstring > CProfile::MAP_STR_STR [private]

CProfile.h の 58 行で定義されています。

コンストラクタとデストラクタ

CProfile::CProfile ( ) [inline]

CProfile.h の 66 行で定義されています。

CProfile::~CProfile ( ) [inline]

CProfile.h の 67 行で定義されています。

関数

void CProfile::Init ( void )

Profileを初期化

日付:
2003-10-21 D.S.Koba STLで書き直す

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

参照先 m_bRead, m_ProfileData, と m_strProfileName.

bool CProfile::IsReadingMode ( void ) [inline]

CProfile.h の 69 行で定義されています。

参照先 m_bRead.

参照元 CShareData::IO_ColorSet(), CShareData::ShareData_IO_Cmd(), CShareData::ShareData_IO_Common(), 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().

void CProfile::SetReadingMode ( void ) [inline]

CProfile.h の 70 行で定義されています。

参照先 m_bRead.

参照元 CPropTypes::p3_Import_Colors(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), と CShareData::ShareData_IO_2().

void CProfile::SetWritingMode ( void ) [inline]

CProfile.h の 71 行で定義されています。

参照先 m_bRead.

参照元 CPropTypes::p3_Export_Colors(), と CShareData::ShareData_IO_2().

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 の 106 行で定義されています。

参照先 m_strProfileName, と ReadOneline().

参照元 CPropTypes::p3_Import_Colors(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), と CShareData::ShareData_IO_2().

bool CProfile::WriteProfile | ( | const TCHAR * | pszProfileName,
 |  | const WCHAR * | 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 の 143 行で定義されています。

参照先 LTEXT, m_ProfileData, m_strProfileName, NULL, と WriteFile().

参照元 CPropTypes::p3_Export_Colors(), と CShareData::ShareData_IO_2().

void CProfile::DUMP ( void )

CProfile.cpp の 284 行で定義されています。

参照先 m_ProfileData, と MYTRACE_A.

void CProfile::ReadOneline ( const wstring & line ) [protected]

sakura.iniの1行を処理する．

1行の読み込みが完了するごとに呼ばれる．

引数:
line [in] 読み込んだ行

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

参照先 LTEXT, m_ProfileData, と CProfile::Section::strSectionName.

参照元 ReadProfile().

bool CProfile::WriteFile | ( | const tstring & | strFilename,
 |  | const std::vector< wstring > & | vecLine |
 | ) |  |  | [protected]

参照元 WriteProfile().

bool CProfile::GetProfileDataImp | ( | const wstring & | strSectionName,
 |  | const wstring & | strEntryKey,
 |  | wstring & | strEntryValue |
 | ) |  |  | [protected]

エントリ値をProfileから読み込む

戻り値:
true | 成功
false | 失敗
日付:
2003-10-22 D.S.Koba 作成
引数:
strSectionName | [in] セクション名
strEntryKey | [in] エントリ名
strEntryValue | [out] エントリ値

CProfile.cpp の 217 行で定義されています。

参照先 m_ProfileData.

参照元 CDataProfile::IOProfileData().

bool CProfile::SetProfileDataImp | ( | const wstring & | strSectionName,
 |  | const wstring & | strEntryKey,
 |  | const wstring & | strEntryValue |
 | ) |  |  | [protected]

エントリをProfileへ書き込む

戻り値:
true | 成功
false | 失敗(処理を入れていないのでfalseは返らない)
日付:
2003-10-21 D.S.Koba 作成
引数:
strSectionName | [in] セクション名
strEntryKey | [in] エントリ名
strEntryValue | [in] エントリ値

CProfile.cpp の 246 行で定義されています。

参照先 m_ProfileData, CProfile::Section::mapEntries, と CProfile::Section::strSectionName.

参照元 CDataProfile::IOProfileData().

変数

tstring CProfile::m_strProfileName [protected]

最後に読み書きしたファイル名

CProfile.h の 90 行で定義されています。

参照元 Init(), ReadProfile(), と WriteProfile().

std::vector< Section > CProfile::m_ProfileData [protected]

CProfile.h の 91 行で定義されています。

参照元 DUMP(), GetProfileDataImp(), Init(), ReadOneline(), SetProfileDataImp(), と WriteProfile().

bool CProfile::m_bRead [protected]

モード(true=読み込み/false=書き出し)

CProfile.h の 92 行で定義されています。

参照元 Init(), CDataProfile::IOProfileData(), IsReadingMode(), SetReadingMode(), と SetWritingMode().

このクラスの説明は次のファイルから生成されました:
  • CProfile.h
  • CProfile.cpp
Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProfile メンバ一覧

これは全メンバの一覧です。CProfile継承メンバも含んでいます。

CProfile() | CProfile | [inline]
DUMP(void) | CProfile |
GetProfileDataImp(const wstring &strSectionName, const wstring &strEntryKey, wstring &strEntryValue) | CProfile | [protected]
Init(void) | 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 wstring &line) | CProfile | [protected]
ReadProfile(const TCHAR *) | CProfile |
SetProfileDataImp(const wstring &strSectionName, const wstring &strEntryKey, const wstring &strEntryValue) | CProfile | [protected]
SetReadingMode(void) | CProfile | [inline]
SetWritingMode(void) | CProfile | [inline]
tstring typedef | CProfile | [private]
WriteFile(const tstring &strFilename, const std::vector< wstring > &vecLine) | CProfile | [protected]
WriteProfile(const TCHAR *, const WCHAR *pszComment) | CProfile |
wstring typedef | CProfile | [private]
~CProfile() | CProfile | [inline]

Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CProfile::Section

  • 構成
  • クラス階層
  • 構成メンバ
CProfile::Section

構造体 CProfile::Section

すべてのメンバ一覧

Public 変数

wstring strSectionName
MAP_STR_STR mapEntries

説明

CProfile.h の 59 行で定義されています。

変数

wstring CProfile::Section::strSectionName

CProfile.h の 61 行で定義されています。

参照元 CProfile::ReadOneline(), と CProfile::SetProfileDataImp().

MAP_STR_STR CProfile::Section::mapEntries

CProfile.h の 62 行で定義されています。

参照元 CProfile::SetProfileDataImp().

この構造体の説明は次のファイルから生成されました:
  • CProfile.h
Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProfile::Section メンバ一覧

これは全メンバの一覧です。CProfile::Section継承メンバも含んでいます。

mapEntries | CProfile::Section
strSectionName | CProfile::Section

Sakura-Editorに対してSat Nov 17 20:28:51 2007に生成されました。 doxygen 1.5.4


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
SFilePath m_szHelpFile
CommonSetting 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]
キー割り当て用マクロテーブル
TCHAR | m_szMACROFOLDER [_MAX_PATH]
int | m_nTransformFileNameArrNum
ファイル名簡易表示
TCHAR | m_szTransformFileNameFrom [MAX_TRANSFORM_FILENAME][_MAX_PATH]
TCHAR | 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 の 59 行で定義されています。

コンストラクタとデストラクタ

CPropCommon::CPropCommon ( )

CPropCommon.cpp の 160 行で定義されています。

参照先 CEditApp::GetHelpFilePath(), CShareData::getInstance(), CShareData::GetShareData(), TSingleInstance< CEditApp >::Instance(), m_hInstance, m_hwndParent, m_hwndThis, m_nPageNum, m_pShareData, m_szHelpFile, と NULL.

CPropCommon::~CPropCommon ( )

CPropCommon.cpp の 183 行で定義されています。

関数

void CPropCommon::Create | ( | HINSTANCE | hInstApp,
 |  | HWND | hwndParent,
 |  | CImageListMgr * | cIcons,
 |  | CSMacroMgr * | pMacro,
 |  | CMenuDrawer * | pMenuDrawer
 | ) |  |

CPropCommon.cpp の 193 行で定義されています。

参照先 CFuncLookup::Init(), m_cLookup, m_Common, m_hInstance, m_hwndParent, m_pcIcons, m_pcMenuDrawer, と m_pcSMacro.

参照元 CEditWnd::Create().

int CPropCommon::DoPropertySheet ( int nPageNum )

プロパティシートの作成

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

「共通設定」プロパティシートの作成時に必要な情報の配列．

CPropCommon.cpp の 402 行で定義されています。

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::InitData ( void )

DLLSHAREDATAから一時データ領域に設定を複製する

ShareDataから一時領域へ設定をコピーする

日付:
2002.12.11 Moca CEditDoc::OpenPropertySheetから移動

CPropCommon.cpp の 525 行で定義されています。

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::ApplyData ( void )

一時データ領域からにDLLSHAREDATA設定をコピーする

ShareData に 設定を適用・コピーする

覚え書き:
ShareDataにコピーするだけなので，更新要求などは，利用する側で処理してもらう
日付:
2002.12.11 Moca CEditDoc::OpenPropertySheetから移動

CPropCommon.cpp の 572 行で定義されています。

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::OnHelp | ( | HWND | hwndParent,
 |  | int | nPageID |
 | ) |  |  | [protected]

CPropCommon.cpp の 973 行で定義されています。

参照先 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_p1(), DispatchEvent_p10(), DispatchEvent_p5(), DispatchEvent_p7(), DispatchEvent_p8(), DispatchEvent_p9(), DispatchEvent_PROP_BACKUP(), DispatchEvent_PROP_EDIT(), DispatchEvent_PROP_FILENAME(), DispatchEvent_PROP_GREP(), DispatchEvent_PROP_TAB(), DispatchEvent_PROP_TOOLBAR(), と DispatchEvent_PROP_WIN().

int CPropCommon::SearchIntArr | ( | int | nKey,
 |  | int * | pnArr,
 |  | int | nArrNum |
 | ) |  |  | [protected]

CPropCommon.cpp の 95 行で定義されています。

BOOL CPropCommon::SelectColor | ( | HWND | hwndParent,
 |  | COLORREF * | pColor |
 | ) |  |  | [protected]

CPropCommon.cpp の 211 行で定義されています。

参照先 FALSE, NULL, sizeof_raw, と TRUE.

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 行で定義されています。

参照元 DlgProc_PROP_FILENAME(), DlgProc_PROP_TAB(), と DlgProc_PROP_WIN().

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 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p1 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CPropCommon.cpp の 613 行で定義されています。

参照先 CMRUFolder::ClearAll(), CMRU::ClearAll(), DWLP_USER, FALSE, GetData_p1(), GSTR_APPNAME_A, ID_PAGENUM_ZENPAN, IDC_BUTTON_CLEAR_MRU_FILE, IDC_BUTTON_CLEAR_MRU_FOLDER, IDC_CHECK_STAYTASKTRAY, IDC_CHECK_USETRAYICON, IDC_EDIT_MAX_MRU_FILE, IDC_EDIT_MAX_MRU_FOLDER, IDC_EDIT_REPEATEDSCROLLLINENUM, IDC_SPIN_MAX_MRU_FILE, IDC_SPIN_MAX_MRU_FOLDER, IDC_SPIN_REPEATEDSCROLLLINENUM, IDD_PROP1P1, m_nPageNum, m_szHelpFile, MAX_MRU, MAX_OPENFOLDER, MYMESSAGEBOX_A, MyWinHelp(), OnHelp(), p_helpids, SetData_p1(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_p1 ( HWND hwndDlg ) [protected]

CPropCommon.cpp の 812 行で定義されています。

参照先 BOOL, FALSE, CommonSetting_General::GetCaretType(), IDC_CHECK_CLOSEALLCONFIRM, IDC_CHECK_EXITCONFIRM, IDC_CHECK_FREECARET, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, IDC_CHECK_REPEATEDSCROLLSMOOTH, IDC_CHECK_STAYTASKTRAY, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, IDC_CHECK_USETRAYICON, IDC_EDIT_MAX_MRU_FILE, IDC_EDIT_MAX_MRU_FOLDER, IDC_EDIT_REPEATEDSCROLLLINENUM, IDC_HOTKEY_TRAYMENU, IDC_RADIO_CARETTYPE0, IDC_RADIO_CARETTYPE1, CommonSetting_General::m_bCloseAllConfirm, CommonSetting_General::m_bExitConfirm, CommonSetting_General::m_bIsFreeCursorMode, CommonSetting_General::m_bNoCaretMoveByActivation, CommonSetting_General::m_bStayTaskTray, CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CommonSetting_General::m_bStopsBothEndsWhenSearchWord, CommonSetting_General::m_bUseTaskTray, m_Common, CommonSetting_General::m_nMRUArrNum_MAX, CommonSetting_General::m_nOPENFOLDERArrNum_MAX, CommonSetting_General::m_nRepeatedScroll_Smooth, CommonSetting_General::m_nRepeatedScrollLineNum, CommonSetting::m_sGeneral, CommonSetting_General::m_wTrayMenuHotKeyCode, CommonSetting_General::m_wTrayMenuHotKeyMods, SendMessageAny, と TRUE.

参照元 DispatchEvent_p1().

int CPropCommon::GetData_p1 ( HWND hwndDlg ) [protected]

CPropCommon.cpp の 880 行で定義されています。

参照先 FALSE, IDC_CHECK_CLOSEALLCONFIRM, IDC_CHECK_EXITCONFIRM, IDC_CHECK_FREECARET, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, IDC_CHECK_REPEATEDSCROLLSMOOTH, IDC_CHECK_STAYTASKTRAY, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, IDC_CHECK_USETRAYICON, IDC_EDIT_MAX_MRU_FILE, IDC_EDIT_MAX_MRU_FOLDER, IDC_EDIT_REPEATEDSCROLLLINENUM, IDC_HOTKEY_TRAYMENU, IDC_RADIO_CARETTYPE0, IDC_RADIO_CARETTYPE1, CommonSetting_General::m_bCloseAllConfirm, CommonSetting_General::m_bExitConfirm, CommonSetting_General::m_bIsFreeCursorMode, CommonSetting_General::m_bNoCaretMoveByActivation, CommonSetting_General::m_bStayTaskTray, CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CommonSetting_General::m_bStopsBothEndsWhenSearchWord, CommonSetting_General::m_bUseTaskTray, m_Common, CommonSetting_General::m_nMRUArrNum_MAX, CommonSetting_General::m_nOPENFOLDERArrNum_MAX, CommonSetting_General::m_nRepeatedScroll_Smooth, CommonSetting_General::m_nRepeatedScrollLineNum, CommonSetting::m_sGeneral, CommonSetting_General::m_wTrayMenuHotKeyCode, CommonSetting_General::m_wTrayMenuHotKeyMods, MAX_MRU, MAX_OPENFOLDER, SendMessageAny, CommonSetting_General::SetCaretType(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), TRUE, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView().

参照元 DispatchEvent_p1().

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 行で定義されています。

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 行で定義されています。

void CPropCommon::SetData_p2 ( HWND hwndDlg ) [protected]

ファイルページ: ダイアログデータの設定 共有メモリからデータを読み出して各コントロールに値を設定する。

バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
引数:
hwndDlg プロパティページのWindow Handle

CPropComFile.cpp の 247 行で定義されています。

int CPropCommon::GetData_p2 ( HWND hwndDlg ) [protected]

ファイルページ ダイアログデータの取得 ダイアログボックスに設定されたデータを共有メモリに反映させる

バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
引数:
hwndDlg プロパティページのWindow Handle
戻り値:
常にTRUE

CPropComFile.cpp の 317 行で定義されています。

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 の 94 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p5 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Key Bind page

CPropComKeybind.cpp の 124 行で定義されています。

参照先 _ALT, _countof, _CTRL, _SHIFT, auto_memcmp(), auto_memset(), DWLP_USER, F_DEFAULT, FALSE, CFuncLookup::Funccode2Name(), GetData_p5(), CKeyBind::GetKeyStrList(), CNativeA::GetStringPtr(), 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, ApiWrap::List_AddString(), ApiWrap::List_GetText(), m_cLookup, m_hInstance, KEYDATA::m_nFuncCodeArr, m_nKeyNameArrNum, m_nPageNum, m_pKeyNameArr, m_szHelpFile, MyWinHelp(), OnHelp(), p5_ChangeKeyList(), p5_Export_KeySetting(), p5_Import_KeySetting(), p_helpids, CFuncLookup::Pos2FuncCode(), SendMessageAny, SendMessageCmd, SetData_p5(), CFuncLookup::SetListItem(), SetWindowLongPtr, STR_ALT_PLUS, STR_CTRL_PLUS, STR_SHIFT_PLUS, TRUE, ULONG_PTR, と ApiWrap::Wnd_SetText().

void CPropCommon::SetData_p5 ( HWND hwndDlg ) [protected]

CPropComKeybind.cpp の 425 行で定義されています。

参照先 IDC_COMBO_FUNCKIND, IDC_LIST_KEY, ApiWrap::List_AddString(), m_cLookup, m_nKeyNameArrNum, m_pKeyNameArr, KEYDATA::m_szKeyName, SendMessageAny, と CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_p5().

int CPropCommon::GetData_p5 ( HWND hwndDlg ) [protected]

CPropComKeybind.cpp の 449 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p5().

void CPropCommon::p5_ChangeKeyList ( HWND hwndDlg ) [protected]

p5: キーリストをチェックボックスの状態に合わせて更新する

CPropComKeybind.cpp の 456 行で定義されています。

参照元 DispatchEvent_p5().

void CPropCommon::p5_Import_KeySetting ( HWND hwndDlg ) [protected]

CPropComKeybind.cpp の 493 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), auto_atol(), auto_sprintf(), auto_strchr(), auto_strcpy(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetOpenFileName(), ErrorMessage_A, F_DEFAULT, F_INVALID, CSMacroMgr::GetFuncInfoByName(), GSTR_APPNAME_A, IDC_LIST_FUNC, IDC_LIST_KEY, CDataProfile::IOProfileData(), WCODE::is09(), m_hInstance, KEYDATA::m_nFuncCodeArr, KEYDATA::m_nKeyCode, m_pKeyNameArr, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, MakeStringBufferW, memcpy_raw(), MYMESSAGEBOX_A, NULL, CProfile::ReadProfile(), SendMessageCmd, CProfile::SetReadingMode(), sizeof_raw, SplitPath_FolderAndFile(), to_tchar, と WSTR_KEYDATA_HEAD.

参照元 DispatchEvent_p5().

void CPropCommon::p5_Export_KeySetting ( HWND hwndDlg ) [protected]

CPropComKeybind.cpp の 619 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), CSMacroMgr::GetFuncInfoByID(), GSTR_APPNAME_A, m_hInstance, m_pKeyNameArr, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, MYMESSAGEBOX_A, NULL, SplitPath_FolderAndFile(), CTextOutputStream::WriteF(), と WSTR_KEYDATA_HEAD.

参照元 DispatchEvent_p5().

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 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_PROP_TOOLBAR | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Toolbar page

CPropComToolbar.cpp の 151 行で定義されています。

参照先 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(), SendMessageAny, SendMessageCmd, SetData_PROP_TOOLBAR(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_PROP_TOOLBAR ( HWND hwndDlg ) [protected]

CPropComToolbar.cpp の 488 行で定義されています。

参照先 IDC_CHECK_TOOLBARISFLAT, IDC_COMBO_FUNCKIND, IDC_LIST_RES, Listbox_ADDDATA(), CommonSetting_ToolBar::m_bToolBarIsFlat, m_cLookup, m_Common, CommonSetting_ToolBar::m_nToolBarButtonIdxArr, CommonSetting_ToolBar::m_nToolBarButtonNum, CommonSetting::m_sToolBar, PostMessageCmd, SendMessageAny, と CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_PROP_TOOLBAR().

int CPropCommon::GetData_PROP_TOOLBAR ( HWND hwndDlg ) [protected]

CPropComToolbar.cpp の 540 行で定義されています。

参照先 IDC_CHECK_TOOLBARISFLAT, IDC_LIST_RES, CommonSetting_ToolBar::m_bToolBarIsFlat, m_Common, CommonSetting_ToolBar::m_nToolBarButtonIdxArr, CommonSetting_ToolBar::m_nToolBarButtonNum, CommonSetting::m_sToolBar, SendMessageAny, と TRUE.

参照元 DispatchEvent_PROP_TOOLBAR().

void CPropCommon::DrawToolBarItemList ( DRAWITEMSTRUCT * pDis ) [protected]

CPropComToolbar.cpp の 577 行で定義されています。

参照先 _countof, auto_sprintf(), auto_strcpy(), CImageListMgr::Draw(), F_MENU_NOT_USED_FIRST, CFuncLookup::Funccode2Name(), CMenuDrawer::getButton(), LTEXT, m_cLookup, m_pcIcons, m_pcMenuDrawer, と ApiWrap::TextOutW_AnyBuild().

参照元 DispatchEvent_PROP_TOOLBAR().

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 の 78 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p7 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Keyword page

CPropComKeyword.cpp の 86 行で定義されています。

参照先 _tcscpy(), CKeyWordSetMgr::AddKeyWord(), CKeyWordSetMgr::AddKeyWordSet(), BOOL, CKeyWordSetMgr::CanAddKeyWord(), CKeyWordSetMgr::DelKeyWord(), CKeyWordSetMgr::DelKeyWordSet(), CDlgInput1::DoModal(), DWLP_USER, FALSE, GetData_p7(), CKeyWordSetMgr::GetTypeName(), GSTR_APPNAME_A, ID_PAGENUM_KEYWORD, IDC_BUTTON_ADDKEYWORD, IDC_BUTTON_ADDSET, IDC_BUTTON_DELKEYWORD, IDC_BUTTON_DELSET, IDC_BUTTON_EDITKEYWORD, IDC_BUTTON_EXPORT, IDC_BUTTON_IMPORT, IDC_BUTTON_KEYCLEAN, IDC_BUTTON_KEYSETRENAME, IDC_CHECK_KEYWORDCASE, IDC_COMBO_SET, IDC_LIST_KEYWORD, IDD_PROP_KEYWORD, m_CKeyWordSetMgr, m_hInstance, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, CKeyWordSetMgr::m_nKeyWordSetNum, m_nPageNum, m_pShareData, m_szHelpFile, 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_A, MYTRACE_A, MyWinHelp(), NULL, OnHelp(), p7_Clean_List_KeyWord(), p7_Delete_List_KeyWord(), p7_Edit_List_KeyWord(), p7_Export_List_KeyWord(), p7_Import_List_KeyWord(), p_helpids, SendMessageAny, SetData_p7(), SetData_p7_KeyWordSet(), CKeyWordSetMgr::SetKeyWordCase(), CKeyWordSetMgr::SetTypeName(), SetWindowLongPtr, to_wchar(), TRUE, ULONG_PTR, と CKeyWordSetMgr::UpdateKeyWord().

void CPropCommon::SetData_p7 ( HWND hwndDlg ) [protected]

CPropComKeyword.cpp の 664 行で定義されています。

参照先 ApiWrap::Combo_AddString(), CKeyWordSetMgr::GetTypeName(), IDC_COMBO_SET, m_CKeyWordSetMgr, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, CKeyWordSetMgr::m_nKeyWordSetNum, SendMessageAny, と SetData_p7_KeyWordSet().

参照元 DispatchEvent_p7().

void CPropCommon::SetData_p7_KeyWordSet | ( | HWND | hwndDlg,
 |  | int | nIdx |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 695 行で定義されています。

参照先 DispKeywordCount(), FALSE, CKeyWordSetMgr::GetKeyWord(), CKeyWordSetMgr::GetKeyWordCase(), CKeyWordSetMgr::GetKeyWordNum(), 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, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, SendMessageAny, to_tchar, と TRUE.

参照元 DispatchEvent_p7(), p7_Delete_List_KeyWord(), p7_Edit_List_KeyWord(), p7_Export_List_KeyWord(), p7_Import_List_KeyWord(), と SetData_p7().

int CPropCommon::GetData_p7 ( HWND hwndDlg ) [protected]

CPropComKeyword.cpp の 772 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p7().

void CPropCommon::GetData_p7_KeyWordSet | ( | HWND | hwndDlg,
 |  | int | nIdx |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 787 行で定義されています。

void CPropCommon::DispKeywordCount ( HWND hwndDlg ) [protected]

CPropComKeyword.cpp の 792 行で定義されています。

参照先 auto_sprintf(), CKeyWordSetMgr::GetAllocSize(), CKeyWordSetMgr::GetFreeSize(), CKeyWordSetMgr::GetKeyWordNum(), IDC_LIST_KEYWORD, IDC_STATIC_KEYWORD_COUNT, m_CKeyWordSetMgr, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, と MAX_KEYWORDLEN.

参照元 p7_Delete_List_KeyWord(), と SetData_p7_KeyWordSet().

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 の 87 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p8 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Custom Menu page

CPropComCustmenu.cpp の 95 行で定義されています。

参照先 _tcscpy(), _tctomb(), auto_sprintf(), auto_strcpy(), BOOL, ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), CDlgInput1::DoModal(), DWLP_USER, FALSE, CFuncLookup::Funccode2Name(), GetData_p8(), ID_PAGENUM_CUSTMENU, IDC_BUTTON_ADD, IDC_BUTTON_DELETE, IDC_BUTTON_DOWN, IDC_BUTTON_EXPORT, IDC_BUTTON_IMPORT, IDC_BUTTON_INSERT, IDC_BUTTON_INSERTSEPARATOR, IDC_BUTTON_MENUNAME, IDC_BUTTON_UP, IDC_COMBO_FUNCKIND, IDC_COMBO_MENU, IDC_EDIT_MENUNAME, IDC_LIST_FUNC, IDC_LIST_RES, IDD_PROP_CUSTMENU, ApiWrap::List_AddString(), ApiWrap::List_GetText(), LTEXT, m_cLookup, m_Common, m_hInstance, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_nPageNum, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, m_szHelpFile, MAX_CUSTOM_MENU_ITEMS, MAX_CUSTOM_MENU_NAME_LEN, MyWinHelp(), NULL, OnHelp(), p8_Export_CustMenuSetting(), p8_Import_CustMenuSetting(), p_helpids, CFuncLookup::Pos2FuncCode(), SendMessageAny, SendMessageCmd, SetData_p8(), CFuncLookup::SetListItem(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_p8 ( HWND hwndDlg ) [protected]

CPropComCustmenu.cpp の 628 行で定義されています。

参照先 auto_sprintf(), auto_strcpy(), ApiWrap::Combo_AddString(), ApiWrap::DlgItem_SetText(), CFuncLookup::Funccode2Name(), IDC_COMBO_FUNCKIND, IDC_COMBO_MENU, IDC_EDIT_MENUNAME, IDC_LIST_RES, ApiWrap::List_AddString(), LTEXT, m_cLookup, m_Common, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, MAX_CUSTOM_MENU, SendMessageAny, と CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_p8().

int CPropCommon::GetData_p8 ( HWND hwndDlg ) [protected]

CPropComCustmenu.cpp の 689 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p8().

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 の 95 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p9 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Format page

CPropComFormat.cpp の 131 行で定義されています。

参照先 _countof, 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, CommonSetting::m_sFormat, CommonSetting_Format::m_szDateFormat, m_szHelpFile, CommonSetting_Format::m_szInyouKigou, CommonSetting_Format::m_szMidashiKigou, CommonSetting_Format::m_szTimeFormat, MyWinHelp(), OnHelp(), p_helpids, SetData_p9(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_p9 ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 275 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), 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, CommonSetting_Format::m_nDateFormatType, CommonSetting_Format::m_nTimeFormatType, CommonSetting::m_sFormat, CommonSetting_Format::m_szDateFormat, CommonSetting_Format::m_szInyouKigou, CommonSetting_Format::m_szMidashiKigou, と CommonSetting_Format::m_szTimeFormat.

参照元 DispatchEvent_p9().

int CPropCommon::GetData_p9 ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 316 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_GetText(), IDC_EDIT_DFORM, IDC_EDIT_INYOUKIGOU, IDC_EDIT_MIDASHIKIGOU, IDC_EDIT_TFORM, IDC_RADIO_DFORM_0, IDC_RADIO_TFORM_0, m_Common, CommonSetting_Format::m_nDateFormatType, CommonSetting_Format::m_nTimeFormatType, CommonSetting::m_sFormat, CommonSetting_Format::m_szDateFormat, CommonSetting_Format::m_szInyouKigou, CommonSetting_Format::m_szMidashiKigou, CommonSetting_Format::m_szTimeFormat, と TRUE.

参照元 ChangeDateExample(), と DispatchEvent_p9().

void CPropCommon::ChangeDateExample ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 102 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_SetText(), GetData_p9(), CShareData::getInstance(), IDC_EDIT_DFORM_EX, m_Common, CommonSetting_Format::m_nDateFormatType, CommonSetting::m_sFormat, CommonSetting_Format::m_szDateFormat, と CShareData::MyGetDateFormat().

参照元 DispatchEvent_p9().

void CPropCommon::ChangeTimeExample ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 115 行で定義されています。

参照元 DispatchEvent_p9().

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 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_p10 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Custom Menu page

CPropComHelper.cpp の 95 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, _tcscpy(), CDlgOpenFile::Create(), ApiWrap::DlgItem_SetText(), CDlgOpenFile::DoModal_GetOpenFileName(), DWLP_USER, FALSE, GetData_p10(), GetInidirOrExedir(), ID_PAGENUM_HELPER, 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, IDD_PROP_HELPER, m_Common, m_hInstance, CommonSetting_Helper::m_lf_kh, m_nPageNum, CommonSetting::m_sHelper, CommonSetting_Helper::m_szExtHelp, CommonSetting_Helper::m_szExtHtmlHelp, m_szHelpFile, CommonSetting_Helper::m_szMigemoDict, CommonSetting_Helper::m_szMigemoDll, memcpy_raw(), memset_raw(), MyWinHelp(), NULL, OnHelp(), p_helpids, SelectDir(), SetData_p10(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_p10 ( HWND hwndDlg ) [protected]

CPropComHelper.cpp の 306 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), 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, CommonSetting_Helper::m_bHokanKey_RETURN, CommonSetting_Helper::m_bHokanKey_RIGHT, CommonSetting_Helper::m_bHokanKey_TAB, CommonSetting_Helper::m_bHtmlHelpIsSingle, m_Common, CommonSetting::m_sHelper, CommonSetting_Helper::m_szExtHelp, CommonSetting_Helper::m_szExtHtmlHelp, CommonSetting_Helper::m_szMigemoDict, と CommonSetting_Helper::m_szMigemoDll.

参照元 DispatchEvent_p10().

int CPropCommon::GetData_p10 ( HWND hwndDlg ) [protected]

CPropComHelper.cpp の 331 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_GetText(), 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, CommonSetting_Helper::m_bHokanKey_RETURN, CommonSetting_Helper::m_bHokanKey_RIGHT, CommonSetting_Helper::m_bHokanKey_TAB, CommonSetting_Helper::m_bHtmlHelpIsSingle, m_Common, CommonSetting::m_sHelper, CommonSetting_Helper::m_szExtHelp, CommonSetting_Helper::m_szExtHtmlHelp, CommonSetting_Helper::m_szMigemoDict, CommonSetting_Helper::m_szMigemoDll, と TRUE.

参照元 DispatchEvent_p10().

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 の 86 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_PROP_BACKUP | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Backup page

CPropComBackup.cpp の 95 行で定義されています。

参照先 _countof, _countof2, _MAX_PATH, _tcscpy(), ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), 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, CommonSetting::m_sBackup, CommonSetting_Backup::m_szBackUpFolder, CommonSetting_Backup::m_szBackUpPathAdvanced, m_szHelpFile, MyWinHelp(), NULL, OnHelp(), p_helpids, SelectDir(), SetData_PROP_BACKUP(), SetWindowLongPtr, TRUE, ULONG_PTR, と UpdateBackupFile().

void CPropCommon::SetData_PROP_BACKUP ( HWND hwndDlg ) [protected]

ダイアログデータの設定

日付:
2004.06.05 genta 元の拡張子を残す設定を追加． 日時指定でチェックボックスが空欄で残ると設定されない問題を避けるため， IDC_RADIO_BACKUP_TYPE2 を廃止してレイアウト変更

CPropComBackup.cpp の 250 行で定義されています。

参照元 DispatchEvent_PROP_BACKUP().

int CPropCommon::GetData_PROP_BACKUP ( HWND hwndDlg ) [protected]

CPropComBackup.cpp の 352 行で定義されています。

参照先 _countof2, BKUP_DAY, BKUP_HOUR, BKUP_MIN, BKUP_MONTH, BKUP_SEC, BKUP_YEAR, ApiWrap::DlgItem_GetText(), FALSE, IDC_EDIT_BACKUP_3, IDC_RADIO_BACKUP_DATETYPE1, IDC_RADIO_BACKUP_DATETYPE1A, IDC_RADIO_BACKUP_DATETYPE2, IDC_RADIO_BACKUP_DATETYPE2A, IDC_RADIO_BACKUP_TYPE1, IDC_RADIO_BACKUP_TYPE3, CommonSetting_Backup::m_bBackUp, CommonSetting_Backup::m_bBackUpDialog, CommonSetting_Backup::m_bBackUpDustBox, CommonSetting_Backup::m_bBackUpFolder, CommonSetting_Backup::m_bBackUpPathAdvanced, m_Common, CommonSetting::m_sBackup, CommonSetting_Backup::m_szBackUpFolder, CommonSetting_Backup::m_szBackUpPathAdvanced, NULL, CommonSetting_Backup::SetBackupCount(), CommonSetting_Backup::SetBackupOpt(), CommonSetting_Backup::SetBackupType(), CommonSetting_Backup::SetBackupTypeAdv(), と TRUE.

参照元 DispatchEvent_PROP_BACKUP().

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 の 63 行で定義されています。

参照先 DispatchEvent_PROP_WIN(), と DlgProc().

INT_PTR CPropCommon::DispatchEvent_PROP_WIN | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for Window page

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

参照先 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, CommonSetting_Window::m_nSaveWindowPos, CommonSetting_Window::m_nSaveWindowSize, CommonSetting_Window::m_nWinPosX, CommonSetting_Window::m_nWinPosY, CommonSetting_Window::m_nWinSizeCX, CommonSetting_Window::m_nWinSizeCY, CommonSetting_Window::m_nWinSizeType, CommonSetting::m_sWindow, m_szHelpFile, MyWinHelp(), NULL, OnHelp(), p_helpids, SetData_PROP_WIN(), SetWindowLongPtr, TRUE, と ULONG_PTR.

参照元 DlgProc_PROP_WIN().

void CPropCommon::SetData_PROP_WIN ( HWND hwndDlg ) [protected]

CPropComWin.cpp の 267 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_SetText(), 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, CommonSetting_Window::m_bDispFUNCKEYWND, CommonSetting_Window::m_bDispSTATUSBAR, CommonSetting_Window::m_bDispTOOLBAR, CommonSetting_Window::m_bMenuIcon, CommonSetting_Window::m_bScrollBarHorz, CommonSetting_Window::m_bSplitterWndHScroll, CommonSetting_Window::m_bSplitterWndVScroll, m_Common, CommonSetting_Window::m_nFUNCKEYWND_GroupNum, CommonSetting_Window::m_nFUNCKEYWND_Place, CommonSetting_Window::m_nLineNumRightSpace, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, CommonSetting_Window::m_nRulerType, CommonSetting::m_sWindow, CommonSetting_Window::m_szWindowCaptionActive, CommonSetting_Window::m_szWindowCaptionInactive, と TRUE.

参照元 DispatchEvent_PROP_WIN().

int CPropCommon::GetData_PROP_WIN ( HWND hwndDlg ) [protected]

CPropComWin.cpp の 343 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_GetText(), 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, CommonSetting_Window::m_bDispFUNCKEYWND, CommonSetting_Window::m_bDispSTATUSBAR, CommonSetting_Window::m_bDispTOOLBAR, CommonSetting_Window::m_bMenuIcon, CommonSetting_Window::m_bScrollBarHorz, CommonSetting_Window::m_bSplitterWndHScroll, CommonSetting_Window::m_bSplitterWndVScroll, m_Common, CommonSetting_Window::m_nFUNCKEYWND_GroupNum, CommonSetting_Window::m_nFUNCKEYWND_Place, CommonSetting_Window::m_nLineNumRightSpace, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, CommonSetting_Window::m_nRulerType, CommonSetting::m_sWindow, CommonSetting_Window::m_szWindowCaptionActive, CommonSetting_Window::m_szWindowCaptionInactive, NULL, と TRUE.

参照元 DispatchEvent_PROP_WIN().

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 の 42 行で定義されています。

参照先 DispatchEvent_PROP_TAB(), と DlgProc().

INT_PTR CPropCommon::DispatchEvent_PROP_TAB | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for TAB page

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

参照先 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().

void CPropCommon::SetData_PROP_TAB ( HWND hwndDlg ) [protected]

CPropComTab.cpp の 125 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_SetText(), 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, CommonSetting_TabBar::m_bChgWndByWheel, CommonSetting_TabBar::m_bDispTabIcon, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_TabBar::m_bSameTabWidth, CommonSetting_TabBar::m_bSortTabList, CommonSetting_TabBar::m_bTab_CloseOneWin, CommonSetting_TabBar::m_bTab_RetainEmptyWin, m_Common, CommonSetting::m_sTabBar, と CommonSetting_TabBar::m_szTabWndCaption.

参照元 DispatchEvent_PROP_TAB().

int CPropCommon::GetData_PROP_TAB ( HWND hwndDlg ) [protected]

CPropComTab.cpp の 147 行で定義されています。

参照先 _countof, ApiWrap::DlgItem_GetText(), 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, CommonSetting_TabBar::m_bChgWndByWheel, CommonSetting_TabBar::m_bDispTabIcon, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_TabBar::m_bSameTabWidth, CommonSetting_TabBar::m_bSortTabList, CommonSetting_TabBar::m_bTab_CloseOneWin, CommonSetting_TabBar::m_bTab_RetainEmptyWin, m_Common, CommonSetting::m_sTabBar, CommonSetting_TabBar::m_szTabWndCaption, と TRUE.

参照元 DispatchEvent_PROP_TAB().

void CPropCommon::EnableTabPropInput ( HWND hwndDlg ) [protected]

「タブバー」シート上のアイテムの有効・無効を適切に設定する

日付:
2007.02.12 genta 新規作成

CPropComTab.cpp の 170 行で定義されています。

参照先 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().

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 の 59 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_PROP_EDIT | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for edit page

CPropComEdit.cpp の 67 行で定義されています。

参照先 DBPRINT_A, DWLP_USER, FALSE, GetData_PROP_EDIT(), ID_PAGENUM_EDIT, IDC_CHECK_DRAGDROP, IDC_CHECK_DROPSOURCE, IDD_PROP_EDIT, m_nPageNum, m_szHelpFile, MyWinHelp(), OnHelp(), p_helpids, SetData_PROP_EDIT(), SetWindowLongPtr, TRUE, と ULONG_PTR.

void CPropCommon::SetData_PROP_EDIT ( HWND hwndDlg ) [protected]

CPropComEdit.cpp の 160 行で定義されています。

参照先 FALSE, IDC_CHECK_ADDCRLFWHENCOPY, IDC_CHECK_bEnableLineModePaste, IDC_CHECK_bNotOverWriteCRLF, IDC_CHECK_bSelectClickedURL, IDC_CHECK_COPYnDISABLESELECTEDAREA, IDC_CHECK_DRAGDROP, IDC_CHECK_DROPSOURCE, CommonSetting_Edit::m_bAddCRLFWhenCopy, CommonSetting_Edit::m_bCopyAndDisablSelection, CommonSetting_Edit::m_bEnableLineModePaste, CommonSetting_Edit::m_bNotOverWriteCRLF, CommonSetting_Edit::m_bSelectClickedURL, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, m_Common, CommonSetting::m_sEdit, と TRUE.

参照元 DispatchEvent_PROP_EDIT().

int CPropCommon::GetData_PROP_EDIT ( HWND hwndDlg ) [protected]

CPropComEdit.cpp の 196 行で定義されています。

参照先 IDC_CHECK_ADDCRLFWHENCOPY, IDC_CHECK_bEnableLineModePaste, IDC_CHECK_bNotOverWriteCRLF, IDC_CHECK_bSelectClickedURL, IDC_CHECK_COPYnDISABLESELECTEDAREA, IDC_CHECK_DRAGDROP, IDC_CHECK_DROPSOURCE, CommonSetting_Edit::m_bAddCRLFWhenCopy, CommonSetting_Edit::m_bCopyAndDisablSelection, CommonSetting_Edit::m_bEnableLineModePaste, CommonSetting_Edit::m_bNotOverWriteCRLF, CommonSetting_Edit::m_bSelectClickedURL, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, m_Common, CommonSetting::m_sEdit, と TRUE.

参照元 DispatchEvent_PROP_EDIT().

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 行で定義されています。

INT_PTR CPropCommon::DispatchEvent_PROP_GREP | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | 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.

void CPropCommon::SetData_PROP_GREP ( HWND hwndDlg ) [protected]

CPropComGrep.cpp の 137 行で定義されています。

参照先 IDC_CHECK_bCaretTextForSearch, IDC_CHECK_bGrepExitConfirm, IDC_CHECK_GREPREALTIME, IDC_CHECK_GTJW_LDBLCLK, IDC_CHECK_GTJW_RETURN, IDC_EDIT_REGEXPLIB, CommonSetting_Search::m_bCaretTextForSearch, CommonSetting_Search::m_bGrepExitConfirm, CommonSetting_Search::m_bGrepRealTimeView, CommonSetting_Search::m_bGTJW_LDBLCLK, CommonSetting_Search::m_bGTJW_RETURN, m_Common, CommonSetting::m_sSearch, CommonSetting_Search::m_szRegexpLib, と SetRegexpVersion().

参照元 DispatchEvent_PROP_GREP().

int CPropCommon::GetData_PROP_GREP ( HWND hwndDlg ) [protected]

CPropComGrep.cpp の 167 行で定義されています。

参照先 IDC_CHECK_bCaretTextForSearch, IDC_CHECK_bGrepExitConfirm, IDC_CHECK_GREPREALTIME, IDC_CHECK_GTJW_LDBLCLK, IDC_CHECK_GTJW_RETURN, IDC_EDIT_REGEXPLIB, CommonSetting_Search::m_bCaretTextForSearch, CommonSetting_Search::m_bGrepExitConfirm, CommonSetting_Search::m_bGrepRealTimeView, CommonSetting_Search::m_bGTJW_LDBLCLK, CommonSetting_Search::m_bGTJW_RETURN, m_Common, CommonSetting::m_sSearch, CommonSetting_Search::m_szRegexpLib, と TRUE.

参照元 DispatchEvent_PROP_GREP().

void CPropCommon::SetRegexpVersion ( HWND hwndDlg ) [protected]

CPropComGrep.cpp の 193 行で定義されています。

参照先 _MAX_PATH, CBregexp::GetVersionT(), IDC_EDIT_REGEXPLIB, IDC_LABEL_REGEXP_VER, と CDllHandler::Init().

参照元 DispatchEvent_PROP_GREP(), と SetData_PROP_GREP().

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 の 81 行で定義されています。

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 の 93 行で定義されています。

void CPropCommon::SetData_PROP_Macro ( HWND hwndDlg ) [protected]

ダイアログデータの設定 Macro

ダイアログ上のコントロールにデータを設定する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 219 行で定義されています。

int CPropCommon::GetData_PROP_Macro ( HWND hwndDlg ) [protected]

ダイアログデータの取得 Macro

ダイアログ上のコントロールからデータを取得してメモリに格納する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 272 行で定義されています。

void CPropCommon::InitDialog_PROP_Macro ( HWND hwndDlg ) [protected]

Macroページの初期化

CPropComMacro.cpp の 327 行で定義されています。

参照先 _countof, auto_sprintf(), IDC_COMBO_MACROID, IDC_MACROLIST, memset_raw(), NULL, と SendMessageAny.

void CPropCommon::SetMacro2List_Macro ( HWND hwndDlg ) [protected]

Macroデータの設定

CPropComMacro.cpp の 401 行で定義されています。

参照先 _MAX_PATH, ApiWrap::DlgItem_GetText(), IDC_CHECK_RELOADWHENEXECUTE, IDC_COMBO_MACROID, IDC_MACROLIST, IDC_MACRONAME, IDC_MACROPATH, MACRONAME_MAX, memset_raw(), と SendMessageAny.

void CPropCommon::SelectBaseDir_Macro ( HWND hwndDlg ) [protected]

Macroディレクトリの選択

Macro格納用ディレクトリを選択する

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 452 行で定義されています。

void CPropCommon::OnFileDropdown_Macro ( HWND hwndDlg ) [protected]

ファイルドロップダウンが開かれるとき

マクロファイル指定用コンボボックスのドロップダウンリストが開かれるときに， 指定ディレクトリのファイル一覧から候補を生成する．

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 484 行で定義されています。

void CPropCommon::CheckListPosition_Macro ( HWND hwndDlg ) [protected]

リストビューのFocus位置確認

CPropComMacro.cpp の 525 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), IDC_CHECK_RELOADWHENEXECUTE, IDC_COMBO_MACROID, IDC_MACROLIST, IDC_MACRONAME, IDC_MACROPATH, MACRONAME_MAX, memset_raw(), nLastPos_Macro, と SendMessageAny.

static int CALLBACK CPropCommon::DirCallback_Macro | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | LPARAM | lParam,
 |  | LPARAM | lpData |
 | ) |  |  | [static, protected]

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILENAME | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

ファイル名表示ページのDialog Procedure

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

参照先 DispatchEvent_PROP_FILENAME(), と DlgProc().

INT_PTR CPropCommon::DispatchEvent_PROP_FILENAME | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

Message Handler for FileName page

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

参照先 _MAX_PATH, ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), 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().

void CPropCommon::SetData_PROP_FILENAME ( HWND hwndDlg ) [protected]

ダイアログ上のコントロールにデータを設定する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComFileName.cpp の 277 行で定義されています。

参照先 IDC_LIST_FNAME, m_nTransformFileNameArrNum, m_szTransformFileNameFrom, m_szTransformFileNameTo, と sizeof_raw.

参照元 DispatchEvent_PROP_FILENAME().

int CPropCommon::GetData_PROP_FILENAME ( HWND hwndDlg ) [protected]

ダイアログ上のコントロールからデータを取得してメモリに格納する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComFileName.cpp の 328 行で定義されています。

参照先 _MAX_PATH, IDC_LIST_FNAME, m_nTransformFileNameArrNum, m_szTransformFileNameFrom, m_szTransformFileNameTo, MAX_TRANSFORM_FILENAME, と TRUE.

参照元 DispatchEvent_PROP_FILENAME().

int CPropCommon::SetListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | nIndex,
 |  | LPTSTR | szFrom,
 |  | LPTSTR | szTo,
 |  | bool | bInsMode |
 | ) |  |  | [static, protected]

ListViewのアイテムを設定

CPropComFileName.cpp の 366 行で定義されています。

参照先 GSTR_APPNAME, MAX_TRANSFORM_FILENAME, と sizeof_raw.

参照元 DispatchEvent_PROP_FILENAME(), と MoveListViewItem_FILENAME().

void CPropCommon::GetListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | nIndex,
 |  | LPTSTR | szFrom,
 |  | LPTSTR | szTo |
 | ) |  |  | [static, protected]

ListViewのアイテムを取得

CPropComFileName.cpp の 404 行で定義されています。

参照先 _MAX_PATH.

参照元 DispatchEvent_PROP_FILENAME(), と MoveListViewItem_FILENAME().

int CPropCommon::MoveListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | nIndex,
 |  | int | nIndex2 |
 | ) |  |  | [static, protected]

ListViewのアイテムを移動する

CPropComFileName.cpp の 411 行で定義されています。

参照先 _MAX_PATH, GetListViewItem_FILENAME(), と SetListViewItem_FILENAME().

参照元 DispatchEvent_PROP_FILENAME().

void CPropCommon::p7_Edit_List_KeyWord | ( | HWND | hwndDlg,
 |  | HWND | hwndLIST_KEYWORD |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 455 行で定義されています。

参照先 CKeyWordSetMgr::DelKeyWord(), CDlgInput1::DoModal(), FALSE, CKeyWordSetMgr::GetKeyWord(), m_CKeyWordSetMgr, m_hInstance, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, MAX_KEYWORDLEN, SetData_p7_KeyWordSet(), と CKeyWordSetMgr::UpdateKeyWord().

参照元 DispatchEvent_p7().

void CPropCommon::p7_Delete_List_KeyWord | ( | HWND | hwndDlg,
 |  | HWND | hwndLIST_KEYWORD |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 499 行で定義されています。

参照先 CKeyWordSetMgr::DelKeyWord(), DispKeywordCount(), m_CKeyWordSetMgr, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, と SetData_p7_KeyWordSet().

参照元 DispatchEvent_p7().

void CPropCommon::p7_Import_List_KeyWord | ( | HWND | hwndDlg,
 |  | HWND | hwndLIST_KEYWORD |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 527 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CKeyWordSetMgr::AddKeyWord(), auto_memcmp(), CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetOpenFileName(), GSTR_APPNAME_A, m_CKeyWordSetMgr, m_hInstance, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, MYMESSAGEBOX_A, NULL, CTextInputStream::ReadLineW(), SetData_p7_KeyWordSet(), と SplitPath_FolderAndFile().

参照元 DispatchEvent_p7().

void CPropCommon::p7_Export_List_KeyWord | ( | HWND | hwndDlg,
 |  | HWND | hwndLIST_KEYWORD |
 | ) |  |  | [protected]

CPropComKeyword.cpp の 589 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), CKeyWordSetMgr::GetKeyWord(), CKeyWordSetMgr::GetKeyWordNum(), CKeyWordSetMgr::GetTypeName(), GSTR_APPNAME_A, m_CKeyWordSetMgr, m_hInstance, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, MYMESSAGEBOX_A, NULL, SetData_p7_KeyWordSet(), CKeyWordSetMgr::SortKeyWord(), SplitPath_FolderAndFile(), と CTextOutputStream::WriteF().

参照元 DispatchEvent_p7().

void CPropCommon::p7_Clean_List_KeyWord | ( | HWND | hwndDlg,
 |  | HWND | hwndLIST_KEYWORD |
 | ) |  |  | [protected]

キーワードを整頓する

CPropComKeyword.cpp の 653 行で定義されています。

参照元 DispatchEvent_p7().

void CPropCommon::p8_Import_CustMenuSetting ( HWND hwndDlg ) [protected]

p7:リスト中のキーワードを整理する 2005.01.26 Moca

CPropComCustmenu.cpp の 702 行で定義されています。

参照先 _MAX_PATH, auto_sprintf(), CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetOpenFileName(), easy_format(), ErrorMessage_A, IDC_COMBO_MENU, CDataProfile::IOProfileData(), m_Common, m_hInstance, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pShareData, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, DLLSHAREDATA::m_szIMPORTFOLDER, MakeStringBufferW, MAX_CUSTOM_MENU, NULL, CTextInputStream::ReadLineW(), CProfile::ReadProfile(), SendMessageCmd, CProfile::SetReadingMode(), SplitPath_FolderAndFile(), と WSTR_CUSTMENU_HEAD_V2.

参照元 DispatchEvent_p8().

void CPropCommon::p8_Export_CustMenuSetting ( HWND hwndDlg ) [protected]

CPropComCustmenu.cpp の 765 行で定義されています。

参照先 _MAX_PATH, CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), ErrorMessage_A, m_Common, m_hInstance, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pShareData, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, DLLSHAREDATA::m_szIMPORTFOLDER, MAX_CUSTOM_MENU, NULL, SplitPath_FolderAndFile(), CTextOutputStream::WriteF(), と WSTR_CUSTMENU_HEAD_V2.

参照元 DispatchEvent_p8().

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 の 465 行で定義されています。

参照元 DispatchEvent_PROP_BACKUP().

void CPropCommon::UpdateBackupFile ( HWND hwndDlg ) [protected]

バックアップファイルの詳細設定エディットボックスを適切に更新する

日付:
2005.11.07 aroka 新規追加
覚え書き:
詳細設定切り替え時のデフォルトをオプションに合わせるため、 m_szBackUpPathAdvanced を更新する

CPropComBackup.cpp の 599 行で定義されています。

参照元 DispatchEvent_PROP_BACKUP().

void CPropCommon::EnableFilePropInput ( HWND hwndDlg ) [protected]

チェック状態に応じてダイアログボックス要素のEnable/Disableを 適切に設定する

引数:
hwndDlg プロパティシートのWindow Handle

CPropComFile.cpp の 400 行で定義されています。

void CPropCommon::EnableWinPropInput ( HWND hwndDlg ) [protected]

CPropComWin.cpp の 439 行で定義されています。

参照先 FALSE, IDC_CHECK_DispFUNCKEYWND, IDC_GROUP_FUNCKEYWND_POSITION, IDC_RADIO_FUNCKEYWND_PLACE1, IDC_RADIO_FUNCKEYWND_PLACE2, と TRUE.

参照元 DispatchEvent_PROP_WIN(), と SetData_PROP_WIN().

void CPropCommon::EnableFormatPropInput ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 374 行で定義されています。

参照先 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().

変数

HINSTANCE CPropCommon::m_hInstance

CPropCommon.h の 83 行で定義されています。

参照元 CPropCommon(), Create(), DispatchEvent_p10(), DispatchEvent_p5(), DispatchEvent_p7(), DispatchEvent_p8(), 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 の 84 行で定義されています。

参照元 CPropCommon(), と Create().

HWND CPropCommon::m_hwndThis

CPropCommon.h の 85 行で定義されています。

参照元 CPropCommon().

int CPropCommon::m_nPageNum

CPropCommon.h の 86 行で定義されています。

参照元 CPropCommon(), DispatchEvent_p1(), DispatchEvent_p10(), DispatchEvent_p5(), DispatchEvent_p7(), DispatchEvent_p8(), DispatchEvent_p9(), DispatchEvent_PROP_BACKUP(), DispatchEvent_PROP_EDIT(), DispatchEvent_PROP_FILENAME(), DispatchEvent_PROP_GREP(), DispatchEvent_PROP_TAB(), DispatchEvent_PROP_TOOLBAR(), と DispatchEvent_PROP_WIN().

DLLSHAREDATA* CPropCommon::m_pShareData

CPropCommon.h の 87 行で定義されています。

参照元 CPropCommon(), DispatchEvent_p7(), p5_Export_KeySetting(), p5_Import_KeySetting(), p7_Export_List_KeyWord(), p7_Import_List_KeyWord(), p8_Export_CustMenuSetting(), と p8_Import_CustMenuSetting().

int CPropCommon::m_nSettingType

CPropCommon.h の 88 行で定義されています。

CImageListMgr* CPropCommon::m_pcIcons

CPropCommon.h の 92 行で定義されています。

参照元 Create(), と DrawToolBarItemList().

CFuncLookup CPropCommon::m_cLookup

CPropCommon.h の 97 行で定義されています。

参照元 Create(), DispatchEvent_p5(), DispatchEvent_p8(), DispatchEvent_PROP_TOOLBAR(), DrawToolBarItemList(), SetData_p5(), SetData_p8(), と SetData_PROP_TOOLBAR().

CSMacroMgr* CPropCommon::m_pcSMacro

CPropCommon.h の 98 行で定義されています。

参照元 Create().

CMenuDrawer* CPropCommon::m_pcMenuDrawer

CPropCommon.h の 100 行で定義されています。

参照元 Create(), DispatchEvent_PROP_TOOLBAR(), と DrawToolBarItemList().

SFilePath CPropCommon::m_szHelpFile

CPropCommon.h の 104 行で定義されています。

参照元 CPropCommon(), DispatchEvent_p1(), DispatchEvent_p10(), DispatchEvent_p5(), DispatchEvent_p7(), DispatchEvent_p8(), DispatchEvent_p9(), DispatchEvent_PROP_BACKUP(), DispatchEvent_PROP_EDIT(), DispatchEvent_PROP_FILENAME(), DispatchEvent_PROP_GREP(), DispatchEvent_PROP_TAB(), DispatchEvent_PROP_TOOLBAR(), DispatchEvent_PROP_WIN(), と OnHelp().

CommonSetting CPropCommon::m_Common

CPropCommon.h の 105 行で定義されています。

参照元 ChangeDateExample(), Create(), DispatchEvent_p10(), DispatchEvent_p8(), DispatchEvent_p9(), DispatchEvent_PROP_BACKUP(), DispatchEvent_PROP_WIN(), GetData_p1(), GetData_p10(), GetData_p9(), GetData_PROP_BACKUP(), GetData_PROP_EDIT(), GetData_PROP_GREP(), GetData_PROP_TAB(), GetData_PROP_TOOLBAR(), GetData_PROP_WIN(), p8_Export_CustMenuSetting(), p8_Import_CustMenuSetting(), SetData_p1(), SetData_p10(), SetData_p8(), SetData_p9(), SetData_PROP_EDIT(), SetData_PROP_GREP(), SetData_PROP_TAB(), SetData_PROP_TOOLBAR(), と SetData_PROP_WIN().

short CPropCommon::m_nKeyNameArrNum

CPropCommon.h の 106 行で定義されています。

参照元 DispatchEvent_p5(), と SetData_p5().

KEYDATA CPropCommon::m_pKeyNameArr[100]

CPropCommon.h の 107 行で定義されています。

参照元 DispatchEvent_p5(), p5_Export_KeySetting(), p5_Import_KeySetting(), と SetData_p5().

CKeyWordSetMgr CPropCommon::m_CKeyWordSetMgr

CPropCommon.h の 109 行で定義されています。

参照元 DispatchEvent_p7(), DispKeywordCount(), p7_Delete_List_KeyWord(), p7_Edit_List_KeyWord(), p7_Export_List_KeyWord(), p7_Import_List_KeyWord(), SetData_p7(), と SetData_p7_KeyWordSet().

int CPropCommon::m_Types_nKeyWordSetIdx[MAX_TYPES][MAX_KEYWORDSET_PER_TYPE]

CPropCommon.h の 113 行で定義されています。

参照元 DispatchEvent_p7().

MacroRec CPropCommon::m_MacroTable[MAX_CUSTMACRO]

キー割り当て用マクロテーブル

CPropCommon.h の 115 行で定義されています。

TCHAR CPropCommon::m_szMACROFOLDER[_MAX_PATH]

CPropCommon.h の 116 行で定義されています。

int CPropCommon::m_nTransformFileNameArrNum

ファイル名簡易表示

CPropCommon.h の 119 行で定義されています。

参照元 GetData_PROP_FILENAME(), と SetData_PROP_FILENAME().

TCHAR CPropCommon::m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CPropCommon.h の 120 行で定義されています。

参照元 GetData_PROP_FILENAME(), と SetData_PROP_FILENAME().

TCHAR CPropCommon::m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CPropCommon.h の 121 行で定義されています。

参照元 GetData_PROP_FILENAME(), と SetData_PROP_FILENAME().

int CPropCommon::nLastPos_Macro [protected]

前回フォーカスのあった場所

CPropCommon.h の 303 行で定義されています。

参照元 CheckListPosition_Macro().

int CPropCommon::m_nLastPos_FILENAME [protected]

前回フォーカスのあった場所 ファイル名タブ用

CPropCommon.h の 304 行で定義されています。

参照元 DispatchEvent_PROP_FILENAME().

このクラスの説明は次のファイルから生成されました:
  • 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 Nov 17 20:28:53 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:28:53 2007に生成されました。 doxygen 1.5.4


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 wchar_t *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
SFilePath m_szHelpFile
CLayoutInt m_nMaxLineKetas_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 の 46 行で定義されています。

コンストラクタとデストラクタ

CPropTypes::CPropTypes ( )

CPropTypes.cpp の 316 行で定義されています。

参照先 _countof, CEditApp::GetHelpFilePath(), CShareData::getInstance(), CShareData::GetShareData(), TSingleInstance< CEditApp >::Instance(), DLLSHAREDATA::m_CKeyWordSetMgr, m_dwCustColors, m_hInstance, m_hwndParent, m_hwndThis, m_nPageNum, m_pCKeyWordSetMgr, m_pShareData, m_szHelpFile, と NULL.

CPropTypes::~CPropTypes ( )

CPropTypes.cpp の 344 行で定義されています。

関数

void CPropTypes::Create | ( | HINSTANCE | hInstApp,
 |  | HWND | hwndParent
 | ) |  |

CPropTypes.cpp の 358 行で定義されています。

参照先 m_hInstance, と m_hwndParent.

参照元 CEditWnd::Create().

int CPropTypes::DoPropertySheet ( int nPageNum )

CPropTypes.cpp の 549 行で定義されています。

参照先 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_nMaxLineKetas, m_nMaxLineKetas_org, m_nPageNum, m_Types, memset_raw(), MYMESSAGEBOX, MyPropertySheet(), NULL, PropTypesKeyHelp(), PropTypesP1Proc(), PropTypesP2Proc(), PropTypesP3_newProc(), PropTypesRegex(), ApiWrap::sizeof_old_PROPSHEETHEADER, と sizeof_raw.

参照元 CEditDoc::OpenPropertySheetTypes().

INT_PTR CPropTypes::DispatchEvent_p1 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 701 行で定義されています。

参照先 _countof, _countof2, _IS_REL_PATH(), _MAX_PATH, _tcscpy(), COLUMNSPACE_MAX, CDlgOpenFile::Create(), ApiWrap::DlgItem_SetText(), CDlgOpenFile::DoModal_GetOpenFileName(), DWLP_USER, FALSE, GetData_p1(), GetInidirOrExedir(), IDC_BUTTON_RULEFILE_REF, IDC_CHECK_TAB_ARROW, IDC_COMBO_OUTLINES, IDC_EDIT_CHARSPACE, IDC_EDIT_INDENTCHARS, IDC_EDIT_LINESPACE, IDC_EDIT_MAXLINELEN, IDC_EDIT_OUTLINERULEFILE, IDC_EDIT_REPEATEDSCROLLLINENUM, IDC_EDIT_TABSPACE, IDC_EDIT_TABVIEWSTRING, IDC_EDIT_TYPEEXTS, IDC_EDIT_TYPENAME, IDC_RADIO_OUTLINEDEFAULT, IDC_RADIO_OUTLINERULEFILE, IDC_SPIN_CHARSPACE, IDC_SPIN_LINESPACE, IDC_SPIN_MAXLINELEN, IDC_SPIN_REPEATEDSCROLLLINENUM, IDC_SPIN_TABSPACE, IDD_PROPTYPESP1, LINESPACE_MAX, m_hInstance, m_hwndThis, Types::m_nIdx, m_nPageNum, m_szHelpFile, Types::m_szIndentChars, Types::m_szOutlineRuleFilename, Types::m_szTabViewString, Types::m_szTypeExts, Types::m_szTypeName, m_Types, MAXLINEKETAS, MINLINEKETAS, MyWinHelp(), NULL, OnHelp(), p_helpids1, SendMessageAny, SetData_p1(), SetWindowLongPtr, TRUE, と ULONG_PTR.

参照元 PropTypesP1Proc().

INT_PTR CPropTypes::DispatchEvent_p2 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 1284 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, _tcscpy(), CDlgOpenFile::Create(), ApiWrap::DlgItem_SetText(), CDlgOpenFile::DoModal_GetOpenFileName(), DWLP_USER, FALSE, 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, IDD_PROPTYPESP2, m_hInstance, m_nPageNum, Types::m_szExtHelp, Types::m_szExtHtmlHelp, m_szHelpFile, Types::m_szHokanFile, m_Types, MyWinHelp(), OnHelp(), p_helpids3, SetData_p2(), SetWindowLongPtr, TRUE, と ULONG_PTR.

参照元 PropTypesP2Proc().

INT_PTR CPropTypes::DispatchEvent_p3 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |  |

INT_PTR CPropTypes::DispatchEvent_p3_new | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 1756 行で定義されています。

参照先 COLOR_ATTRIB_FORCE_DISP, COLOR_ATTRIB_NO_BACK, COLOR_ATTRIB_NO_BOLD, COLOR_ATTRIB_NO_UNDERLINE, 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(), NULL, OnHelp(), p3_Export_Colors(), p3_Import_Colors(), p_helpids2, RearrangeKeywordSet(), SelectColor(), SendMessageAny, SetData_p3_new(), SetWindowLongPtr, TRUE, と ULONG_PTR.

参照元 PropTypesP3_newProc().

BOOL CPropTypes::SelectColor | ( | HWND | hwndParent,
 |  | COLORREF * | pColor,
 |  | DWORD * | pCustColors |
 | ) |  |  | [static]

CPropTypes.cpp の 370 行で定義されています。

参照先 FALSE, NULL, sizeof_raw, と TRUE.

参照元 ColorList_SubclassProc(), と DispatchEvent_p3_new().

INT_PTR CPropTypes::DispatchEvent_Regex | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypesRegex.cpp の 263 行で定義されています。

参照先 _countof, auto_memset(), CheckRegexpSyntax(), CheckRegexpVersion(), COLOR_ATTRIB_NO_BACK, COLORIDX_LAST, COLORIDX_REGEX1, ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), DWLP_USER, Export_Regex(), FALSE, g_ColorAttributeArr, GetData_Regex(), GSTR_APPNAME, IDC_BUTTON_REGEX_ADD, IDC_BUTTON_REGEX_DEL, IDC_BUTTON_REGEX_DOWN, IDC_BUTTON_REGEX_EXPORT, IDC_BUTTON_REGEX_IMPORT, IDC_BUTTON_REGEX_INS, IDC_BUTTON_REGEX_LAST, IDC_BUTTON_REGEX_TOP, IDC_BUTTON_REGEX_UP, IDC_BUTTON_REGEX_UPD, IDC_CHECK_REGEX, IDC_COMBO_REGEX_COLOR, IDC_EDIT_REGEX, IDC_LABEL_REGEX_VERSION, IDC_LIST_REGEX, IDD_PROP_REGEX, Import_Regex(), Types::m_ColorInfoArr, ColorInfo::m_nColorIdx, m_nPageNum, Types::m_nRegexKeyMagicNumber, m_szHelpFile, ColorInfo::m_szName, m_Types, MAX_REGEX_KEYWORD, MYMESSAGEBOX, MyWinHelp(), NULL, OnHelp(), p_helpids, RegexKakomiCheck(), SendMessageAny, SetData_Regex(), SetWindowLongPtr, to_wchar(), TRUE, と ULONG_PTR.

参照元 PropTypesRegex().

INT_PTR CPropTypes::DispatchEvent_KeyHelp | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

キーワード辞書ファイル設定 メッセージ処理

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 106 行で定義されています。

参照先 _countof, _IS_REL_PATH(), _MAX_PATH, _wcstotcs(), auto_memset(), BOOL, CStream::Close(), CDlgOpenFile::Create(), DICT_ABOUT_LEN, ApiWrap::DlgItem_GetText(), ApiWrap::DlgItem_SetText(), 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, IDD_PROP_KEYHELP, Import_KeyHelp(), ListView_SetCheckState, m_hInstance, Types::m_nKeyHelpNum, m_nPageNum, m_szHelpFile, m_Types, MAX_KEYHELP_FILE, MYMESSAGEBOX, MyWinHelp(), OnHelp(), p_helpids, CTextInputStream::ReadLineW(), SendMessageCmd, SetData_KeyHelp(), SetWindowLongPtr, strcnv(), TRUE, と ULONG_PTR.

参照元 PropTypesKeyHelp().

void CPropTypes::OnHelp | ( | HWND | hwndParent,
 |  | int | nPageID |
 | ) |  |  | [protected]

CPropTypes.cpp の 2586 行で定義されています。

参照先 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_KeyHelp(), DispatchEvent_p1(), DispatchEvent_p2(), DispatchEvent_p3_new(), と DispatchEvent_Regex().

void CPropTypes::DrawColorButton | ( | DRAWITEMSTRUCT * | pDis,
 |  | COLORREF | cColor |
 | ) |  |  | [protected]

CPropTypes.cpp の 394 行で定義されています。

参照先 NULL.

参照元 DispatchEvent_p3_new().

void CPropTypes::SetData_p1 ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 959 行で定義されています。

参照先 _countof, BOOL, ApiWrap::DlgItem_SetText(), FALSE, IDC_BUTTON_RULEFILE_REF, IDC_CHECK_DOCICON, IDC_CHECK_INDENT, IDC_CHECK_INDENT_WSPACE, IDC_CHECK_INS_SPACE, IDC_CHECK_KINSOKUHEAD, IDC_CHECK_KINSOKUKUTO, IDC_CHECK_KINSOKURET, IDC_CHECK_KINSOKUTAIL, IDC_CHECK_RTRIM_PREVLINE, IDC_CHECK_TAB_ARROW, IDC_CHECK_WORDWRAP, IDC_COMBO_IMESTATE, IDC_COMBO_IMESWITCH, IDC_COMBO_INDENTLAYOUT, IDC_COMBO_OUTLINES, IDC_COMBO_SMARTINDENT, IDC_EDIT_CHARSPACE, IDC_EDIT_INDENTCHARS, IDC_EDIT_KINSOKUHEAD, IDC_EDIT_KINSOKUTAIL, IDC_EDIT_LINESPACE, IDC_EDIT_MAXLINELEN, IDC_EDIT_OUTLINERULEFILE, IDC_EDIT_TABSPACE, IDC_EDIT_TABVIEWSTRING, IDC_EDIT_TYPEEXTS, IDC_EDIT_TYPENAME, IDC_RADIO_OUTLINEDEFAULT, IDC_RADIO_OUTLINERULEFILE, Types::m_bAutoIndent, Types::m_bAutoIndent_ZENSPACE, Types::m_bInsSpace, Types::m_bKinsokuHead, Types::m_bKinsokuKuto, Types::m_bKinsokuRet, Types::m_bKinsokuTail, Types::m_bRTrimPrevLine, Types::m_bTabArrow, Types::m_bUseDocumentIcon, Types::m_bWordWrap, Types::m_nColmSpace, Types::m_nDefaultOutline, Types::m_nImeState, Types::m_nIndentLayout, Types::m_nLineSpace, Types::m_nMaxLineKetas, Types::m_nSmartIndent, Types::m_nTabSpace, Types::m_szIndentChars, Types::m_szKinsokuHead, Types::m_szKinsokuTail, Types::m_szOutlineRuleFilename, Types::m_szTabViewString, Types::m_szTypeExts, Types::m_szTypeName, m_Types, OUTLINE_FILE, SendMessageAny, と TRUE.

参照元 DispatchEvent_p1().

int CPropTypes::GetData_p1 ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 1133 行で定義されています。

参照先 _countof, _countof2, COLUMNSPACE_MAX, ApiWrap::DlgItem_GetText(), FALSE, IDC_CHECK_DOCICON, IDC_CHECK_INDENT, IDC_CHECK_INDENT_WSPACE, IDC_CHECK_INS_SPACE, IDC_CHECK_KINSOKUHEAD, IDC_CHECK_KINSOKUKUTO, IDC_CHECK_KINSOKURET, IDC_CHECK_KINSOKUTAIL, IDC_CHECK_RTRIM_PREVLINE, IDC_CHECK_TAB_ARROW, IDC_CHECK_WORDWRAP, IDC_COMBO_IMESTATE, IDC_COMBO_IMESWITCH, IDC_COMBO_INDENTLAYOUT, IDC_COMBO_OUTLINES, IDC_COMBO_SMARTINDENT, IDC_EDIT_CHARSPACE, IDC_EDIT_INDENTCHARS, IDC_EDIT_KINSOKUHEAD, IDC_EDIT_KINSOKUTAIL, IDC_EDIT_LINESPACE, IDC_EDIT_MAXLINELEN, IDC_EDIT_OUTLINERULEFILE, IDC_EDIT_TABSPACE, IDC_EDIT_TABVIEWSTRING, IDC_EDIT_TYPEEXTS, IDC_EDIT_TYPENAME, IDC_RADIO_OUTLINERULEFILE, ACODE::isTabAvailableCode(), LINESPACE_MAX, Types::m_bAutoIndent, Types::m_bAutoIndent_ZENSPACE, Types::m_bInsSpace, Types::m_bKinsokuHead, Types::m_bKinsokuKuto, Types::m_bKinsokuRet, Types::m_bKinsokuTail, Types::m_bRTrimPrevLine, Types::m_bTabArrow, Types::m_bUseDocumentIcon, Types::m_bWordWrap, Types::m_nColmSpace, Types::m_nDefaultOutline, Types::m_nImeState, Types::m_nIndentLayout, Types::m_nLineSpace, Types::m_nMaxLineKetas, Types::m_nSmartIndent, Types::m_nTabSpace, Types::m_szIndentChars, Types::m_szKinsokuHead, Types::m_szKinsokuTail, Types::m_szOutlineRuleFilename, Types::m_szTabViewString, Types::m_szTypeExts, Types::m_szTypeName, m_Types, MAXLINEKETAS, MINLINEKETAS, TYPE_NAME::nMethod, NULL, OUTLINE_FILE, SendMessageAny, と TRUE.

参照元 DispatchEvent_p1().

void CPropTypes::SetData_p2 ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 1437 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), 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().

int CPropTypes::GetData_p2 ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 1457 行で定義されています。

参照先 _countof2, ApiWrap::DlgItem_GetText(), 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().

void CPropTypes::SetData_p3 ( HWND ) [protected]

int CPropTypes::GetData_p3 ( HWND ) [protected]

void CPropTypes::SetData_p3_new ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 2095 行で定義されています。

参照先 auto_sprintf(), BLOCKCOMMENT_BUFFERSIZE, cLineComment, COLORIDX_LAST, ApiWrap::Combo_AddString(), COMMENT_DELIMITER_BUFFERSIZE, COMMENT_DELIMITER_NUM, ApiWrap::DlgItem_SetText(), EnableTypesPropInput(), FALSE, CBlockComment::getBlockCommentFrom(), CBlockComment::getBlockCommentTo(), CLineComment::getLineComment(), CLineComment::getLineCommentPos(), CKeyWordSetMgr::GetTypeName(), IDC_COMBO_SET, 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, IDC_EDIT_LINETERMCHAR, IDC_EDIT_VERTLINE, IDC_LIST_COLORS, IDC_RADIO_ESCAPETYPE_1, IDC_RADIO_ESCAPETYPE_2, IDC_RADIO_LINENUM_CRLF, IDC_RADIO_LINENUM_LAYOUT, IDC_RADIO_LINETERMTYPE0, IDC_RADIO_LINETERMTYPE1, IDC_RADIO_LINETERMTYPE2, ApiWrap::List_AddString(), Types::m_bLineNumIsCRLF, Types::m_cBlockComment, Types::m_cLineComment, Types::m_cLineTermChar, Types::m_ColorInfoArr, m_nCurrentColorType, Types::m_nKeyWordSetIdx, CKeyWordSetMgr::m_nKeyWordSetNum, Types::m_nLineTermType, m_nSet, Types::m_nStringType, Types::m_nVertLineIdx, m_pCKeyWordSetMgr, ColorInfo::m_szName, m_Types, MAX_KEYWORDSET_PER_TYPE, MAX_VERTLINES, SendMessageAny, SendMessageCmd, と TRUE.

参照元 DispatchEvent_p3_new(), と p3_Import_Colors().

int CPropTypes::GetData_p3_new ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 2266 行で定義されています。

参照先 BLOCKCOMMENT_BUFFERSIZE, BOOL, cLineComment, COMMENT_DELIMITER_BUFFERSIZE, COMMENT_DELIMITER_NUM, CBlockComment::CopyTo(), CLineComment::CopyTo(), ApiWrap::DlgItem_GetText(), FALSE, IDC_COMBO_SET, IDC_EDIT_BLOCKCOMMENT_FROM, IDC_EDIT_BLOCKCOMMENT_FROM2, IDC_EDIT_BLOCKCOMMENT_TO, IDC_EDIT_BLOCKCOMMENT_TO2, IDC_EDIT_LINETERMCHAR, IDC_EDIT_VERTLINE, IDC_RADIO_ESCAPETYPE_1, IDC_RADIO_LINENUM_LAYOUT, IDC_RADIO_LINETERMTYPE0, IDC_RADIO_LINETERMTYPE1, IDC_RADIO_LINETERMTYPE2, Types::m_bLineNumIsCRLF, Types::m_cBlockComment, Types::m_cLineComment, Types::m_cLineTermChar, Types::m_nKeyWordSetIdx, Types::m_nLineTermType, m_nSet, Types::m_nStringType, Types::m_nVertLineIdx, m_Types, MAX_KEYWORDSET_PER_TYPE, MAX_VERTLINES, MAXLINEKETAS, SendMessageAny, と TRUE.

参照元 DispatchEvent_p3_new().

void CPropTypes::p3_Import_Colors ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 1484 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CStream::Close(), COLORIDX_LAST, CDlgOpenFile::Create2(), CDlgOpenFile::DoModal_GetOpenFileName(), ErrorMessage, ErrorMessage_A, GSTR_APPNAME_A, CShareData::IO_ColorSet(), LTEXT, Types::m_ColorInfoArr, m_hInstance, Types::m_nColorInfoArrNum, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, ColorInfo::m_szName, m_Types, MYMESSAGEBOX_A, NULL, CTextInputStream::ReadLineW(), CProfile::ReadProfile(), SetData_p3_new(), CProfile::SetReadingMode(), SplitPath_FolderAndFile(), STR_COLORDATA_HEAD3, と STR_COLORDATA_SECTION.

参照元 DispatchEvent_p3_new().

void CPropTypes::p3_Export_Colors ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 1585 行で定義されています。

参照先 _MAX_PATH, CDlgOpenFile::Create2(), CDlgOpenFile::DoModal_GetSaveFileName(), CShareData::IO_ColorSet(), LTEXT, Types::m_ColorInfoArr, m_hInstance, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, m_Types, NULL, CProfile::SetWritingMode(), SplitPath_FolderAndFile(), STR_COLORDATA_HEAD3, STR_COLORDATA_SECTION, と CProfile::WriteProfile().

参照元 DispatchEvent_p3_new().

void CPropTypes::DrawColorListItem ( DRAWITEMSTRUCT * pDis ) [protected]

CPropTypes.cpp の 2425 行で定義されています。

参照先 COLOR_ATTRIB_NO_BACK, ColorAttributeData_t::fAttribute, g_ColorAttributeArr, ColorInfo::m_bDisp, ColorInfo::m_bFatFont, ColorInfo::m_bUnderLine, ColorInfo::m_colBACK, ColorInfo::m_colTEXT, ColorInfo::m_nColorIdx, ColorInfo::m_szName, と NULL.

参照元 DispatchEvent_p3_new().

void CPropTypes::EnableTypesPropInput ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 2627 行で定義されています。

参照先 FALSE, IDC_CHECK_LCPOS, IDC_CHECK_LCPOS2, IDC_CHECK_LCPOS3, IDC_EDIT_LINECOMMENTPOS, IDC_EDIT_LINECOMMENTPOS2, IDC_EDIT_LINECOMMENTPOS3, IDC_EDIT_LINETERMCHAR, IDC_LABEL_LCPOS, IDC_LABEL_LCPOS2, IDC_LABEL_LCPOS3, IDC_LABEL_LINETERMCHAR, IDC_RADIO_LINETERMTYPE2, IDC_SPIN_LCColNum, IDC_SPIN_LCColNum2, IDC_SPIN_LCColNum3, と TRUE.

参照元 DispatchEvent_p3_new(), と SetData_p3_new().

void CPropTypes::SetData_Regex ( HWND hwndDlg ) [protected]

CPropTypesRegex.cpp の 786 行で定義されています。

参照先 _countof, COLOR_ATTRIB_NO_BACK, COLORIDX_LAST, COLORIDX_REGEX1, ApiWrap::DlgItem_SetText(), g_ColorAttributeArr, IDC_CHECK_REGEX, IDC_COMBO_REGEX_COLOR, IDC_EDIT_REGEX, IDC_LIST_REGEX, Types::m_bUseRegexKeyword, Types::m_ColorInfoArr, ColorInfo::m_nColorIdx, RegexKeywordInfo::m_nColorIndex, Types::m_RegexKeywordArr, RegexKeywordInfo::m_szKeyword, ColorInfo::m_szName, m_Types, MAX_REGEX_KEYWORD, SendMessageAny, と to_tchar.

参照元 DispatchEvent_Regex().

int CPropTypes::GetData_Regex ( HWND hwndDlg ) [protected]

CPropTypesRegex.cpp の 847 行で定義されています。

参照先 _countof, _tcstowcs(), COLORIDX_LAST, COLORIDX_REGEX1, FALSE, IDC_CHECK_REGEX, IDC_LIST_REGEX, Types::m_bUseRegexKeyword, Types::m_ColorInfoArr, RegexKeywordInfo::m_nColorIndex, Types::m_nRegexKeyMagicNumber, Types::m_RegexKeywordArr, RegexKeywordInfo::m_szKeyword, ColorInfo::m_szName, m_Types, MAX_REGEX_KEYWORD, と TRUE.

参照元 DispatchEvent_Regex().

BOOL CPropTypes::Import_Regex ( HWND hwndDlg ) [protected]

CPropTypesRegex.cpp の 92 行で定義されています。

参照先 _countof, _MAX_PATH, _tcstowcs(), _wcstotcs(), auto_memcmp(), auto_strcmp(), auto_strlen(), auto_strstr(), CStream::Close(), COLORIDX_LAST, CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetOpenFileName(), ErrorMessage, FALSE, GetColorIndexByName(), IDC_LIST_REGEX, Types::m_ColorInfoArr, m_hInstance, RegexKeywordInfo::m_nColorIndex, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, ColorInfo::m_szName, m_Types, MAX_REGEX_KEYWORD, NULL, CTextInputStream::ReadLineW(), RegexKakomiCheck(), SplitPath_FolderAndFile(), to_tchar, to_wchar(), と TRUE.

参照元 DispatchEvent_Regex().

BOOL CPropTypes::Export_Regex ( HWND hwndDlg ) [protected]

CPropTypesRegex.cpp の 199 行で定義されています。

参照先 _countof, _MAX_PATH, auto_memset(), CStream::Close(), COLORIDX_LAST, CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), ErrorMessage, FALSE, GetColorNameByIndex(), GSTR_APPNAME, IDC_LIST_REGEX, Types::m_ColorInfoArr, m_hInstance, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, ColorInfo::m_szName, m_Types, MYMESSAGEBOX, NULL, SplitPath_FolderAndFile(), TRUE, と CTextOutputStream::WriteF().

参照元 DispatchEvent_Regex().

INT_PTR CALLBACK CPropTypes::PropTypesRegex | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

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

参照先 DispatchEvent_Regex(), DWLP_USER, FALSE, GetWindowLongPtr, と NULL.

参照元 DoPropertySheet().

BOOL CPropTypes::RegexKakomiCheck ( const wchar_t * s ) [protected]

CPropTypesRegex.cpp の 900 行で定義されています。

参照先 FALSE, NULL, と TRUE.

参照元 DispatchEvent_Regex(), と Import_Regex().

void CPropTypes::RearrangeKeywordSet ( HWND hwndDlg ) [protected]

キーワードセットの再配列

キーワードセットの色分けでは未指定のキーワードセット以降はチェックを省略する． そのためセットの途中に未指定のものがある場合はそれ以降を前に詰めることで 指定された全てのキーワードセットが有効になるようにする． その際，色分けの設定も同時に移動する．

m_nSet, m_Types.m_ColorInfoArr[]が変更される．

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル
作者:
genta
日付:
2005.01.23 genta new

CPropTypes.cpp の 2689 行で定義されています。

参照先 COLORIDX_KEYWORD1, IDC_BUTTON_BACKCOLOR, IDC_BUTTON_TEXTCOLOR, IDC_LIST_COLORS, 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, NULL, と TRUE.

参照元 DispatchEvent_p3_new().

void CPropTypes::SetData_KeyHelp ( HWND hwndDlg ) [protected]

ダイアログデータの設定 キーワード辞書ファイル設定

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 568 行で定義されています。

参照先 _countof2, 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, SendMessageAny, と TRUE.

参照元 DispatchEvent_KeyHelp(), と Import_KeyHelp().

int CPropTypes::GetData_KeyHelp ( HWND hwndDlg ) [protected]

ダイアログデータの取得 キーワード辞書ファイル設定

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 637 行で定義されています。

参照先 _countof, _MAX_PATH, _tcscpy(), 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, Types::m_nKeyHelpNum, KeyHelpInfo::m_nUse, KeyHelpInfo::m_szAbout, KeyHelpInfo::m_szPath, m_Types, MAX_KEYHELP_FILE, と TRUE.

参照元 DispatchEvent_KeyHelp(), Export_KeyHelp(), と Import_KeyHelp().

BOOL CPropTypes::Import_KeyHelp ( HWND hwndDlg ) [protected]

キーワードヘルプファイルリストのインポート

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 692 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), _tfopen_absini(), auto_memcmp(), CStream::Close(), CDlgOpenFile::Create(), DICT_ABOUT_LEN, CDlgOpenFile::DoModal_GetOpenFileName(), ErrorMessage, FALSE, GetData_KeyHelp(), GSTR_APPNAME, IDC_LIST_KEYHELP, LTEXT, m_hInstance, Types::m_KeyHelpArr, KeyHelpInfo::m_nUse, m_pShareData, KeyHelpInfo::m_szAbout, DLLSHAREDATA::m_szIMPORTFOLDER, KeyHelpInfo::m_szPath, m_Types, MAX_KEYHELP_FILE, MYMESSAGEBOX, NULL, CTextInputStream::ReadLineW(), SetData_KeyHelp(), SplitPath_FolderAndFile(), to_tchar, と TRUE.

参照元 DispatchEvent_KeyHelp().

BOOL CPropTypes::Export_KeyHelp ( HWND hwndDlg ) [protected]

キーワードヘルプファイルリストのインポートエクスポート

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 820 行で定義されています。

参照先 _MAX_PATH, CStream::Close(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), ErrorMessage, FALSE, GetData_KeyHelp(), GSTR_APPNAME, IDC_LIST_KEYHELP, m_hInstance, Types::m_KeyHelpArr, KeyHelpInfo::m_nUse, m_pShareData, KeyHelpInfo::m_szAbout, DLLSHAREDATA::m_szIMPORTFOLDER, KeyHelpInfo::m_szPath, m_Types, MYMESSAGEBOX, NULL, SplitPath_FolderAndFile(), TRUE, と CTextOutputStream::WriteF().

参照元 DispatchEvent_KeyHelp().

INT_PTR CALLBACK CPropTypes::PropTypesKeyHelp | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static, protected]

キーワード辞書ファイル設定 ダイアログプロシージャ

日付:
2006.04.10 fon 新規作成

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

参照先 DispatchEvent_KeyHelp(), DWLP_USER, FALSE, GetWindowLongPtr, と NULL.

参照元 DoPropertySheet().

void CPropTypes::SetTypeData ( const Types & t ) [inline]

CPropTypes.h の 132 行で定義されています。

参照元 CEditDoc::OpenPropertySheetTypes().

void CPropTypes::GetTypeData ( Types & t ) const [inline]

CPropTypes.h の 133 行で定義されています。

参照元 CEditDoc::OpenPropertySheetTypes().

変数

HINSTANCE CPropTypes::m_hInstance [private]

CPropTypes.h の 69 行で定義されています。

参照元 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 の 70 行で定義されています。

参照元 CPropTypes(), Create(), と DoPropertySheet().

HWND CPropTypes::m_hwndThis [private]

CPropTypes.h の 71 行で定義されています。

参照元 CPropTypes(), と DispatchEvent_p1().

int CPropTypes::m_nPageNum [private]

CPropTypes.h の 72 行で定義されています。

参照元 CPropTypes(), DispatchEvent_KeyHelp(), DispatchEvent_p1(), DispatchEvent_p2(), DispatchEvent_p3_new(), DispatchEvent_Regex(), と DoPropertySheet().

SFilePath CPropTypes::m_szHelpFile [private]

CPropTypes.h の 77 行で定義されています。

参照元 CPropTypes(), DispatchEvent_KeyHelp(), DispatchEvent_p1(), DispatchEvent_p2(), DispatchEvent_p3_new(), DispatchEvent_Regex(), と OnHelp().

CLayoutInt CPropTypes::m_nMaxLineKetas_org [private]

CPropTypes.h の 78 行で定義されています。

参照元 DoPropertySheet().

Types CPropTypes::m_Types [private]

CPropTypes.h の 79 行で定義されています。

参照元 DispatchEvent_KeyHelp(), DispatchEvent_p1(), DispatchEvent_p2(), DispatchEvent_p3_new(), DispatchEvent_Regex(), DoPropertySheet(), Export_KeyHelp(), Export_Regex(), GetData_KeyHelp(), GetData_p1(), GetData_p2(), GetData_p3_new(), GetData_Regex(), Import_KeyHelp(), Import_Regex(), p3_Export_Colors(), p3_Import_Colors(), RearrangeKeywordSet(), SetData_KeyHelp(), SetData_p1(), SetData_p2(), SetData_p3_new(), と SetData_Regex().

CKeyWordSetMgr* CPropTypes::m_pCKeyWordSetMgr [private]

CPropTypes.h の 80 行で定義されています。

参照元 CPropTypes(), と SetData_p3_new().

int CPropTypes::m_nCurrentColorType [private]

CPropTypes.h の 81 行で定義されています。

参照元 DispatchEvent_p3_new(), と SetData_p3_new().

DLLSHAREDATA* CPropTypes::m_pShareData [private]

CPropTypes.h の 82 行で定義されています。

参照元 CPropTypes(), Export_KeyHelp(), Export_Regex(), Import_KeyHelp(), Import_Regex(), p3_Export_Colors(), と p3_Import_Colors().

int CPropTypes::m_nSet[MAX_KEYWORDSET_PER_TYPE] [private]

CPropTypes.h の 83 行で定義されています。

参照元 DispatchEvent_p3_new(), GetData_p3_new(), RearrangeKeywordSet(), と SetData_p3_new().

DWORD CPropTypes::m_dwCustColors[16] [private]

CPropTypes.h の 86 行で定義されています。

参照元 CPropTypes(), DispatchEvent_p3_new(), と DoPropertySheet().

このクラスの説明は次のファイルから生成されました:
  • CPropTypes.h
  • CPropTypes.cpp
  • CPropTypesKeyHelp.cpp
  • CPropTypesRegex.cpp
Sakura-Editorに対してSat Nov 17 20:28:54 2007に生成されました。 doxygen 1.5.4


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_nMaxLineKetas_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 wchar_t *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 Nov 17 20:28:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CRangeBase< PointType >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CRangeBase< PointType >

#include <CStrictRange.h>

CRangeBase< PointType >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public 型

typedef PointType::IntType | IntType

Public メソッド

CRangeBase ()
CRangeBase (const CRangeBase &rhs)
CRangeBase (const PointType &_ptFrom, const PointType &_ptTo)
CRangeBase & | operator= (const CRangeBase &rhs)
bool | operator== (const CRangeBase &rhs) const
bool | operator!= (const CRangeBase &rhs) const
bool | IsOne () const
1文字しか選択してない状態ならtrue
bool | IsLineOne () const
bool | IsValid () const
有効な範囲ならtrue
PointType | GetFrom () const
PointType | GetTo () const
PointType * | GetFromPointer ()
PointType * | GetToPointer ()
void | Clear (int n)
void | Set (const PointType &pt)
void | SetFrom (const PointType &pt)
void | SetTo (const PointType &pt)
void | SetFromX (int nX)
void | SetFromY (IntType nY)
void | SetToX (IntType nX)
void | SetToY (IntType nY)
void | SetLine (IntType nY)
void | SetXs (IntType nXFrom, IntType nXTo)

Private 変数

PointType | m_ptFrom
PointType | m_ptTo

説明

template<class PointType>
class CRangeBase< PointType >

CStrictRange.h の 4 行で定義されています。

型定義

template<class PointType>
typedef PointType::IntType CRangeBase< PointType >::IntType

CStrictRange.h の 6 行で定義されています。

コンストラクタとデストラクタ

template<class PointType>
CRangeBase< PointType >::CRangeBase ( ) [inline]

CStrictRange.h の 9 行で定義されています。

template<class PointType>
CRangeBase< PointType >::CRangeBase ( const CRangeBase< PointType > & rhs ) [inline]

CStrictRange.h の 12 行で定義されています。

参照先 CRangeBase< PointType >::operator=().

template<class PointType>
CRangeBase< PointType >::CRangeBase | ( | const PointType & | _ptFrom,
 |  | const PointType & | _ptTo |
 | ) |  |  | [inline]

CStrictRange.h の 16 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

関数

template<class PointType>
CRangeBase& CRangeBase< PointType >::operator= ( const CRangeBase< PointType > & rhs ) [inline]

CStrictRange.h の 23 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CRangeBase< PointType >::CRangeBase().

template<class PointType>
bool CRangeBase< PointType >::operator== ( const CRangeBase< PointType > & rhs ) const [inline]

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

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CRangeBase< PointType >::operator!=().

template<class PointType>
bool CRangeBase< PointType >::operator!= ( const CRangeBase< PointType > & rhs ) const [inline]

CStrictRange.h の 35 行で定義されています。

参照先 CRangeBase< PointType >::operator==().

template<class PointType>
bool CRangeBase< PointType >::IsOne ( ) const [inline]

1文字しか選択してない状態ならtrue

CStrictRange.h の 42 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CEditView::SmartIndent_CPP().

template<class PointType>
bool CRangeBase< PointType >::IsLineOne ( ) const [inline]

CStrictRange.h の 46 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SORT(), CEditView::DispTextSelected(), CViewSelect::DrawSelectAreaLine(), CViewCommander::HandleCommand(), と CViewSelect::PrintSelectionInfoMsg().

template<class PointType>
bool CRangeBase< PointType >::IsValid ( ) const [inline]

有効な範囲ならtrue

CStrictRange.h の 50 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CViewSelect::IsTextSelected().

template<class PointType>
PointType CRangeBase< PointType >::GetFrom ( ) const [inline]

CStrictRange.h の 56 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom.

参照元 CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSFILE(), CViewCommander::Command_LEFT(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SORT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CEditView::ConvSelectedArea(), CEditView::DeleteData(), CEditView::DispTextSelected(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CEditView::GetSelectedData(), CMacro::HandleFunction(), CEditView::IsCurrentPositionSelected(), CEditView::IsCurrentPositionSelectedTEST(), CEditView::ISearchBack(), CEditView::ISearchExec(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditView::OnMOUSEMOVE(), CViewSelect::PrintSelectionInfoMsg(), CDocLineMgr::ReplaceData(), CEditView::ReplaceData_CEditView(), CLayoutMgr::ReplaceData_CLayoutMgr(), CEditView::RTrimPrevLine(), CDocLineMgr::SearchWord(), CViewSelect::SetSelectArea(), と CEditView::SmartIndent_CPP().

template<class PointType>
PointType CRangeBase< PointType >::GetTo ( ) const [inline]

CStrictRange.h の 60 行で定義されています。

参照先 CRangeBase< PointType >::m_ptTo.

参照元 CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_UNINDENT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::DeleteData(), CEditView::DispTextSelected(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CEditView::GetSelectedData(), CMacro::HandleFunction(), CEditView::IsCurrentPositionSelected(), CEditView::IsCurrentPositionSelectedTEST(), CEditView::ISearchExec(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditView::OnMOUSEMOVE(), CViewSelect::PrintSelectionInfoMsg(), CDocLineMgr::ReplaceData(), CEditView::ReplaceData_CEditView(), CLayoutMgr::ReplaceData_CLayoutMgr(), CEditView::RTrimPrevLine(), と CEditView::SmartIndent_CPP().

template<class PointType>
PointType* CRangeBase< PointType >::GetFromPointer ( ) [inline]

CStrictRange.h の 66 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom.

参照元 CViewCommander::Command_INDENT(), CViewCommander::Command_REPLACE_ALL(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditView::ReplaceData_CEditView(), と CEditView::RTrimPrevLine().

template<class PointType>
PointType* CRangeBase< PointType >::GetToPointer ( ) [inline]

CStrictRange.h の 70 行で定義されています。

参照先 CRangeBase< PointType >::m_ptTo.

参照元 CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SORT(), CViewCommander::Command_UNINDENT(), CEditView::CopySelectedAllLines(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), と CEditView::RTrimPrevLine().

template<class PointType>
void CRangeBase< PointType >::Clear ( int n ) [inline]

CStrictRange.h の 77 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CEditView::CaretUnderLineOFF(), CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNDO(), CViewSelect::CViewSelect(), CViewSelect::DisableSelectArea(), と CEditView::SmartIndent_CPP().

template<class PointType>
void CRangeBase< PointType >::Set ( const PointType & pt ) [inline]

CStrictRange.h の 82 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CViewSelect::BeginSelectArea(), CViewCommander::Command_REDO(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_UNDO(), CEditView::ISearchEnter(), CEditView::ISearchExec(), CEditView::ReplaceData_CEditView(), CViewSelect::SetSelectArea(), と CEditView::SmartIndent_CPP().

template<class PointType>
void CRangeBase< PointType >::SetFrom ( const PointType & pt ) [inline]

CStrictRange.h の 87 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom.

参照元 CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::OnLBUTTONDOWN(), CEditView::SmartIndent_CPP(), TwoPointToRange(), と CLayoutMgr::WhereCurrentWord().

template<class PointType>
void CRangeBase< PointType >::SetTo ( const PointType & pt ) [inline]

CStrictRange.h の 91 行で定義されています。

参照先 CRangeBase< PointType >::m_ptTo.

参照元 CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_INDENT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::SmartIndent_CPP(), TwoPointToRange(), と CLayoutMgr::WhereCurrentWord().

template<class PointType>
void CRangeBase< PointType >::SetFromX ( int nX ) [inline]

CStrictRange.h の 96 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom.

参照元 CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CEditView::ReplaceData_CEditView(), と CDocLineMgr::SearchWord().

template<class PointType>
void CRangeBase< PointType >::SetFromY ( IntType nY ) [inline]

CStrictRange.h の 106 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom.

参照元 CDocLineMgr::SearchWord().

template<class PointType>
void CRangeBase< PointType >::SetToX ( IntType nX ) [inline]

CStrictRange.h の 111 行で定義されています。

参照先 CRangeBase< PointType >::m_ptTo.

参照元 CViewCommander::Command_INDENT(), CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CEditView::ISearchBack(), CEditView::ReplaceData_CEditView(), と CDocLineMgr::SearchWord().

template<class PointType>
void CRangeBase< PointType >::SetToY ( IntType nY ) [inline]

CStrictRange.h の 121 行で定義されています。

参照先 CRangeBase< PointType >::m_ptTo.

参照元 CViewCommander::Command_REPLACE_ALL(), と CDocLineMgr::SearchWord().

template<class PointType>
void CRangeBase< PointType >::SetLine ( IntType nY ) [inline]

CStrictRange.h の 127 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CEditView::IsCurrentPositionURL().

template<class PointType>
void CRangeBase< PointType >::SetXs | ( | IntType | nXFrom,
 |  | IntType | nXTo |
 | ) |  |  | [inline]

CStrictRange.h の 128 行で定義されています。

参照先 CRangeBase< PointType >::m_ptFrom, と CRangeBase< PointType >::m_ptTo.

参照元 CEditView::IsCurrentPositionURL().

変数

template<class PointType>
PointType CRangeBase< PointType >::m_ptFrom [private]

CStrictRange.h の 130 行で定義されています。

参照元 CRangeBase< PointType >::Clear(), CRangeBase< PointType >::CRangeBase(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CRangeBase< PointType >::IsLineOne(), CRangeBase< PointType >::IsOne(), CRangeBase< PointType >::IsValid(), CRangeBase< PointType >::operator=(), CRangeBase< PointType >::operator==(), CRangeBase< PointType >::Set(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetFromX(), CRangeBase< PointType >::SetFromY(), CRangeBase< PointType >::SetLine(), と CRangeBase< PointType >::SetXs().

template<class PointType>
PointType CRangeBase< PointType >::m_ptTo [private]

CStrictRange.h の 131 行で定義されています。

参照元 CRangeBase< PointType >::Clear(), CRangeBase< PointType >::CRangeBase(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CRangeBase< PointType >::IsLineOne(), CRangeBase< PointType >::IsOne(), CRangeBase< PointType >::IsValid(), CRangeBase< PointType >::operator=(), CRangeBase< PointType >::operator==(), CRangeBase< PointType >::Set(), CRangeBase< PointType >::SetLine(), CRangeBase< PointType >::SetTo(), CRangeBase< PointType >::SetToX(), CRangeBase< PointType >::SetToY(), と CRangeBase< PointType >::SetXs().

このクラスの説明は次のファイルから生成されました:
  • CStrictRange.h
Sakura-Editorに対してSat Nov 17 20:28:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRangeBase< PointType > メンバ一覧

これは全メンバの一覧です。CRangeBase< PointType >継承メンバも含んでいます。

Clear(int n) | CRangeBase< PointType > | [inline]
CRangeBase() | CRangeBase< PointType > | [inline]
CRangeBase(const CRangeBase &rhs) | CRangeBase< PointType > | [inline]
CRangeBase(const PointType &_ptFrom, const PointType &_ptTo) | CRangeBase< PointType > | [inline]
GetFrom() const | CRangeBase< PointType > | [inline]
GetFromPointer() | CRangeBase< PointType > | [inline]
GetTo() const | CRangeBase< PointType > | [inline]
GetToPointer() | CRangeBase< PointType > | [inline]
IntType typedef | CRangeBase< PointType > |
IsLineOne() const | CRangeBase< PointType > | [inline]
IsOne() const | CRangeBase< PointType > | [inline]
IsValid() const | CRangeBase< PointType > | [inline]
m_ptFrom | CRangeBase< PointType > | [private]
m_ptTo | CRangeBase< PointType > | [private]
operator!=(const CRangeBase &rhs) const | CRangeBase< PointType > | [inline]
operator=(const CRangeBase &rhs) | CRangeBase< PointType > | [inline]
operator==(const CRangeBase &rhs) const | CRangeBase< PointType > | [inline]
Set(const PointType &pt) | CRangeBase< PointType > | [inline]
SetFrom(const PointType &pt) | CRangeBase< PointType > | [inline]
SetFromX(int nX) | CRangeBase< PointType > | [inline]
SetFromY(IntType nY) | CRangeBase< PointType > | [inline]
SetLine(IntType nY) | CRangeBase< PointType > | [inline]
SetTo(const PointType &pt) | CRangeBase< PointType > | [inline]
SetToX(IntType nX) | CRangeBase< PointType > | [inline]
SetToY(IntType nY) | CRangeBase< PointType > | [inline]
SetXs(IntType nXFrom, IntType nXTo) | CRangeBase< PointType > | [inline]

Sakura-Editorに対してSat Nov 17 20:28:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecent

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecent

#include <CRecent.h>

CRecentに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual | ~CRecent ()
virtual void | Terminate ()=0
virtual const TCHAR * | GetItemText (int nIndex) const =0
virtual int | GetItemCount () const =0
virtual void | DeleteAllItem ()=0
virtual bool | DeleteItem (int nIndex)=0
アイテムをクリア
int | FindItemByText (const TCHAR *pszText) const
virtual bool | SetFavorite (int nIndex, bool bFavorite=true)=0
お気に入りに設定
virtual bool | IsFavorite (int nIndex) const =0
お気に入りか調べる
virtual int | GetViewCount () const =0
virtual bool | UpdateView ()=0
DLLSHAREDATA * GetShareData ()

説明

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

コンストラクタとデストラクタ

virtual CRecent::~CRecent ( ) [inline, virtual]

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

関数

virtual void CRecent::Terminate ( ) [pure virtual]

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::~CDlgFavorite().

virtual const TCHAR* CRecent::GetItemText ( int nIndex ) const [pure virtual]

CRecentCmd, CRecentEditNode, CRecentFile, CRecentFolder, CRecentGrepFile, CRecentGrepFolder, CRecentReplace, CRecentSearch, と CRecentTagjumpKeywordで実装されています。

参照元 FindItemByText(), と CDlgFavorite::SetDataOne().

virtual int CRecent::GetItemCount ( ) const [pure virtual]

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 FindItemByText(), CDlgFavorite::OnBnClicked(), CDlgFavorite::RefreshListOne(), と CDlgFavorite::SetDataOne().

virtual void CRecent::DeleteAllItem ( ) [pure virtual]

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::OnBnClicked().

virtual bool CRecent::DeleteItem ( int nIndex ) [pure virtual]

アイテムをクリア

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::OnBnClicked().

int CRecent::FindItemByText ( const TCHAR * pszText ) const [inline]

CRecent.h の 59 行で定義されています。

参照先 GetItemCount(), と GetItemText().

参照元 CDlgFavorite::RefreshListOne().

virtual bool CRecent::SetFavorite | ( | int | nIndex,
 |  | bool | bFavorite = true |
 | ) |  |  | [pure virtual]

お気に入りに設定

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::GetData(), と CDlgFavorite::OnBnClicked().

virtual bool CRecent::IsFavorite ( int nIndex ) const [pure virtual]

お気に入りか調べる

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::SetDataOne().

virtual int CRecent::GetViewCount ( ) const [pure virtual]

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::RefreshListOne(), と CDlgFavorite::SetDataOne().

virtual bool CRecent::UpdateView ( ) [pure virtual]

CRecentImp< DATA_TYPE, RECEIVE_TYPE >, CRecentImp< FileInfo >, CRecentImp< EditNode >, CRecentImp< StaticString, LPCTSTR >, と CRecentImp< StaticString, LPCWSTR >で実装されています。

参照元 CDlgFavorite::GetData().

DLLSHAREDATA * CRecent::GetShareData ( )

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

参照先 CShareData::getInstance(), と CShareData::GetShareData().

参照元 CRecentCmd::CRecentCmd(), CRecentEditNode::CRecentEditNode(), CRecentFile::CRecentFile(), CRecentFolder::CRecentFolder(), CRecentGrepFile::CRecentGrepFile(), CRecentGrepFolder::CRecentGrepFolder(), CRecentReplace::CRecentReplace(), CRecentSearch::CRecentSearch(), と CRecentTagjumpKeyword::CRecentTagjumpKeyword().

このクラスの説明は次のファイルから生成されました:
  • CRecent.h
  • CRecent.cpp
Sakura-Editorに対してSat Nov 17 20:28:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecent メンバ一覧

これは全メンバの一覧です。CRecent継承メンバも含んでいます。

DeleteAllItem()=0 | CRecent | [pure virtual]
DeleteItem(int nIndex)=0 | CRecent | [pure virtual]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetItemCount() const =0 | CRecent | [pure virtual]
GetItemText(int nIndex) const =0 | CRecent | [pure virtual]
GetShareData() | CRecent |
GetViewCount() const =0 | CRecent | [pure virtual]
IsFavorite(int nIndex) const =0 | CRecent | [pure virtual]
SetFavorite(int nIndex, bool bFavorite=true)=0 | CRecent | [pure virtual]
Terminate()=0 | CRecent | [pure virtual]
UpdateView()=0 | CRecent | [pure virtual]
~CRecent() | CRecent | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentCmd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentCmd

コマンドの履歴を管理 (RECENT_FOR_CMD) [詳細]

#include <CRecentCmd.h>

CRecentCmdに対する継承グラフ

[凡例]
CRecentCmdのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentCmd ()
int | CompareItem (const CCmdString *p1, LPCTSTR p2) const
void | CopyItem (CCmdString *dst, LPCTSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

コマンドの履歴を管理 (RECENT_FOR_CMD)

CRecentCmd.h の 10 行で定義されています。

コンストラクタとデストラクタ

CRecentCmd::CRecentCmd ( )

CRecentCmd.cpp の 13 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_CMDARR, と NULL.

関数

int CRecentCmd::CompareItem | ( | const CCmdString * | p1,
 |  | LPCTSTR | p2 |
 | ) |  |  | const

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

void CRecentCmd::CopyItem | ( | CCmdString * | dst,
 |  | LPCTSTR | src |
 | ) |  |  | const

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

参照先 _tcscpy().

const TCHAR * CRecentCmd::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentCmd.cpp の 33 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem().

このクラスの説明は次のファイルから生成されました:
  • CRecentCmd.h
  • CRecentCmd.cpp
Sakura-Editorに対してSat Nov 17 20:28:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentCmd メンバ一覧

これは全メンバの一覧です。CRecentCmd継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CCmdString *p1, LPCTSTR p2) const | CRecentCmd |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CCmdString *dst, LPCTSTR src) const | CRecentCmd |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentCmd() | CRecentCmd |
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentCmd | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentEditNode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentEditNode

EditNode(ウィンドウリスト)の履歴を管理 (RECENT_FOR_EDITNODE) [詳細]

#include <CRecentEditNode.h>

CRecentEditNodeに対する継承グラフ

[凡例]
CRecentEditNodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentEditNode ()
int | CompareItem (const EditNode *p1, const EditNode *p2) const
void | CopyItem (EditNode *dst, const EditNode *src) const
const TCHAR * | GetItemText (int nIndex) const
int | FindItemByHwnd (HWND hwnd) const
void | DeleteItemByHwnd (HWND hwnd)

説明

EditNode(ウィンドウリスト)の履歴を管理 (RECENT_FOR_EDITNODE)

CRecentEditNode.h の 7 行で定義されています。

コンストラクタとデストラクタ

CRecentEditNode::CRecentEditNode ( )

CRecentEditNode.cpp の 13 行で定義されています。

参照先 CRecentImp< EditNode >::Create(), CRecent::GetShareData(), MAX_EDITWINDOWS, と NULL.

関数

int CRecentEditNode::CompareItem | ( | const EditNode * | p1,
 |  | const EditNode * | p2 |
 | ) |  |  | const

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

参照先 EditNode::m_hWnd.

void CRecentEditNode::CopyItem | ( | EditNode * | dst,
 |  | const EditNode * | src |
 | ) |  |  | const

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

const TCHAR * CRecentEditNode::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentEditNode.cpp の 33 行で定義されています。

int CRecentEditNode::FindItemByHwnd ( HWND hwnd ) const

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

参照先 CRecentImp< EditNode >::GetItem(), と CRecentImp< EditNode >::GetItemCount().

参照元 CShareData::AddEditWndList(), CEditWnd::ChangeFileNameNotify(), と DeleteItemByHwnd().

void CRecentEditNode::DeleteItemByHwnd ( HWND hwnd )

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

参照先 DBPRINT_A, CRecentImp< EditNode >::DeleteItem(), と FindItemByHwnd().

参照元 CShareData::DeleteEditWndList().

このクラスの説明は次のファイルから生成されました:
  • CRecentEditNode.h
  • CRecentEditNode.cpp
Sakura-Editorに対してSat Nov 17 20:28:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentEditNode メンバ一覧

これは全メンバの一覧です。CRecentEditNode継承メンバも含んでいます。

_Recovery() | CRecentImp< EditNode > |
AppendItem(ReceiveType pItemData) | CRecentImp< EditNode > |
ChangeViewCount(int nViewCount) | CRecentImp< EditNode > |
CompareItem(const EditNode *p1, const EditNode *p2) const | CRecentEditNode |
CRecentImp< EditNode >::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< EditNode > | [pure virtual]
CopyItem(EditNode *dst, const EditNode *src) const | CRecentEditNode |
CRecentImp< EditNode >::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< EditNode > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< EditNode > | [protected]
CRecentEditNode() | CRecentEditNode |
CRecentImp() | CRecentImp< EditNode > | [inline]
DeleteAllItem() | CRecentImp< EditNode > | [virtual]
DeleteItem(int nIndex) | CRecentImp< EditNode > | [virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< EditNode > | [inline]
DeleteItemByHwnd(HWND hwnd) | CRecentEditNode |
FindItem(ReceiveType pItemData) const | CRecentImp< EditNode > |
FindItemByHwnd(HWND hwnd) const | CRecentEditNode |
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< EditNode > | [inline]
GetItem(int nIndex) const | CRecentImp< EditNode > |
GetItem(int nIndex) | CRecentImp< EditNode > | [inline]
GetItemCount() const | CRecentImp< EditNode > | [inline, virtual]
GetItemText(int nIndex) const | CRecentEditNode | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< EditNode > | [inline, virtual]
IsAvailable() const | CRecentImp< EditNode > |
IsFavorite(int nIndex) const | CRecentImp< EditNode > | [virtual]
m_bCreate | CRecentImp< EditNode > | [protected]
m_nArrayCount | CRecentImp< EditNode > | [protected]
m_pbUserItemFavorite | CRecentImp< EditNode > | [protected]
m_pnUserItemCount | CRecentImp< EditNode > | [protected]
m_pnUserViewCount | CRecentImp< EditNode > | [protected]
m_puUserItemData | CRecentImp< EditNode > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< EditNode > |
ResetAllFavorite() | CRecentImp< EditNode > |
ResetFavorite(int nIndex) | CRecentImp< EditNode > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< EditNode > | [virtual]
Terminate() | CRecentImp< EditNode > | [virtual]
UpdateView() | CRecentImp< EditNode > | [virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< EditNode > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentFile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentFile

FileInfoの履歴を管理 (RECENT_FOR_FILE) [詳細]

#include <CRecentFile.h>

CRecentFileに対する継承グラフ

[凡例]
CRecentFileのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentFile ()
int | CompareItem (const FileInfo *p1, const FileInfo *p2) const
void | CopyItem (FileInfo *dst, const FileInfo *src) const
const TCHAR * | GetItemText (int nIndex) const
int | FindItemByPath (const TCHAR *pszPath) const

説明

FileInfoの履歴を管理 (RECENT_FOR_FILE)

CRecentFile.h の 7 行で定義されています。

コンストラクタとデストラクタ

CRecentFile::CRecentFile ( )

CRecentFile.cpp の 26 行で定義されています。

参照先 CRecentImp< FileInfo >::Create(), CRecent::GetShareData(), と MAX_MRU.

関数

int CRecentFile::CompareItem | ( | const FileInfo * | p1,
 |  | const FileInfo * | p2 |
 | ) |  |  | const

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

参照先 FileInfo::m_szPath.

void CRecentFile::CopyItem | ( | FileInfo * | dst,
 |  | const FileInfo * | src |
 | ) |  |  | const

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

参照先 memcpy_raw().

const TCHAR * CRecentFile::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentFile.cpp の 14 行で定義されています。

参照先 CRecentImp< FileInfo >::GetItem(), と FileInfo::m_szPath.

参照元 CMRU::GetPathList().

int CRecentFile::FindItemByPath ( const TCHAR * pszPath ) const

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

参照先 CRecentImp< FileInfo >::GetItem(), と CRecentImp< FileInfo >::GetItemCount().

参照元 CMRU::GetFileInfo().

このクラスの説明は次のファイルから生成されました:
  • CRecentFile.h
  • CRecentFile.cpp
Sakura-Editorに対してSat Nov 17 20:28:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentFile メンバ一覧

これは全メンバの一覧です。CRecentFile継承メンバも含んでいます。

_Recovery() | CRecentImp< FileInfo > |
AppendItem(ReceiveType pItemData) | CRecentImp< FileInfo > |
ChangeViewCount(int nViewCount) | CRecentImp< FileInfo > |
CompareItem(const FileInfo *p1, const FileInfo *p2) const | CRecentFile |
CRecentImp< FileInfo >::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< FileInfo > | [pure virtual]
CopyItem(FileInfo *dst, const FileInfo *src) const | CRecentFile |
CRecentImp< FileInfo >::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< FileInfo > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< FileInfo > | [protected]
CRecentFile() | CRecentFile |
CRecentImp() | CRecentImp< FileInfo > | [inline]
DeleteAllItem() | CRecentImp< FileInfo > | [virtual]
DeleteItem(int nIndex) | CRecentImp< FileInfo > | [virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< FileInfo > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< FileInfo > |
FindItemByPath(const TCHAR *pszPath) const | CRecentFile |
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< FileInfo > | [inline]
GetItem(int nIndex) const | CRecentImp< FileInfo > |
GetItem(int nIndex) | CRecentImp< FileInfo > | [inline]
GetItemCount() const | CRecentImp< FileInfo > | [inline, virtual]
GetItemText(int nIndex) const | CRecentFile | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< FileInfo > | [inline, virtual]
IsAvailable() const | CRecentImp< FileInfo > |
IsFavorite(int nIndex) const | CRecentImp< FileInfo > | [virtual]
m_bCreate | CRecentImp< FileInfo > | [protected]
m_nArrayCount | CRecentImp< FileInfo > | [protected]
m_pbUserItemFavorite | CRecentImp< FileInfo > | [protected]
m_pnUserItemCount | CRecentImp< FileInfo > | [protected]
m_pnUserViewCount | CRecentImp< FileInfo > | [protected]
m_puUserItemData | CRecentImp< FileInfo > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< FileInfo > |
ResetAllFavorite() | CRecentImp< FileInfo > |
ResetFavorite(int nIndex) | CRecentImp< FileInfo > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< FileInfo > | [virtual]
Terminate() | CRecentImp< FileInfo > | [virtual]
UpdateView() | CRecentImp< FileInfo > | [virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< FileInfo > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentFolder

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentFolder

フォルダの履歴を管理 (RECENT_FOR_FOLDER) [詳細]

#include <CRecentFolder.h>

CRecentFolderに対する継承グラフ

[凡例]
CRecentFolderのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentFolder ()
int | CompareItem (const CPathString *p1, LPCTSTR p2) const
void | CopyItem (CPathString *dst, LPCTSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

フォルダの履歴を管理 (RECENT_FOR_FOLDER)

CRecentFolder.h の 11 行で定義されています。

コンストラクタとデストラクタ

CRecentFolder::CRecentFolder ( )

CRecentFolder.cpp の 16 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), と MAX_OPENFOLDER.

関数

int CRecentFolder::CompareItem | ( | const CPathString * | p1,
 |  | LPCTSTR | p2 |
 | ) |  |  | const

void CRecentFolder::CopyItem | ( | CPathString * | dst,
 |  | LPCTSTR | src |
 | ) |  |  | const

const TCHAR * CRecentFolder::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

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

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem().

参照元 CMRUFolder::CreateMenu(), CMRUFolder::GetPath(), と CMRUFolder::GetPathList().

このクラスの説明は次のファイルから生成されました:
  • CRecentFolder.h
  • CRecentFolder.cpp
Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentFolder メンバ一覧

これは全メンバの一覧です。CRecentFolder継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CPathString *p1, LPCTSTR p2) const | CRecentFolder |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CPathString *dst, LPCTSTR src) const | CRecentFolder |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentFolder() | CRecentFolder |
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentFolder | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentGrepFile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentGrepFile

GREPファイルの履歴を管理 (RECENT_FOR_GREP_FILE) [詳細]

#include <CRecentGrepFile.h>

CRecentGrepFileに対する継承グラフ

[凡例]
CRecentGrepFileのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentGrepFile ()
int | CompareItem (const CGrepFileString *p1, LPCTSTR p2) const
void | CopyItem (CGrepFileString *dst, LPCTSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

GREPファイルの履歴を管理 (RECENT_FOR_GREP_FILE)

CRecentGrepFile.h の 9 行で定義されています。

コンストラクタとデストラクタ

CRecentGrepFile::CRecentGrepFile ( )

CRecentGrepFile.cpp の 13 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_GREPFILE, と NULL.

関数

int CRecentGrepFile::CompareItem | ( | const CGrepFileString * | p1,
 |  | LPCTSTR | p2 |
 | ) |  |  | const

void CRecentGrepFile::CopyItem | ( | CGrepFileString * | dst,
 |  | LPCTSTR | src |
 | ) |  |  | const

const TCHAR * CRecentGrepFile::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentGrepFile.cpp の 33 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem().

このクラスの説明は次のファイルから生成されました:
  • CRecentGrepFile.h
  • CRecentGrepFile.cpp
Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentGrepFile メンバ一覧

これは全メンバの一覧です。CRecentGrepFile継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CGrepFileString *p1, LPCTSTR p2) const | CRecentGrepFile |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CGrepFileString *dst, LPCTSTR src) const | CRecentGrepFile |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentGrepFile() | CRecentGrepFile |
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentGrepFile | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentGrepFolder

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentGrepFolder

GREPフォルダの履歴を管理 (RECENT_FOR_GREP_FOLDER) [詳細]

#include <CRecentGrepFolder.h>

CRecentGrepFolderに対する継承グラフ

[凡例]
CRecentGrepFolderのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentGrepFolder ()
int | CompareItem (const CGrepFolderString *p1, LPCTSTR p2) const
void | CopyItem (CGrepFolderString *dst, LPCTSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

GREPフォルダの履歴を管理 (RECENT_FOR_GREP_FOLDER)

CRecentGrepFolder.h の 9 行で定義されています。

コンストラクタとデストラクタ

CRecentGrepFolder::CRecentGrepFolder ( )

CRecentGrepFolder.cpp の 13 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_GREPFOLDER, と NULL.

関数

int CRecentGrepFolder::CompareItem | ( | const CGrepFolderString * | p1,
 |  | LPCTSTR | p2 |
 | ) |  |  | const

void CRecentGrepFolder::CopyItem | ( | CGrepFolderString * | dst,
 |  | LPCTSTR | src |
 | ) |  |  | const

const TCHAR * CRecentGrepFolder::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentGrepFolder.cpp の 33 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem().

このクラスの説明は次のファイルから生成されました:
  • CRecentGrepFolder.h
  • CRecentGrepFolder.cpp
Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentGrepFolder メンバ一覧

これは全メンバの一覧です。CRecentGrepFolder継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CGrepFolderString *p1, LPCTSTR p2) const | CRecentGrepFolder |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CGrepFolderString *dst, LPCTSTR src) const | CRecentGrepFolder |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentGrepFolder() | CRecentGrepFolder |
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentGrepFolder | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CRecentImp< DATA_TYPE, RECEIVE_TYPE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CRecentImp< DATA_TYPE, RECEIVE_TYPE >

#include <CRecentImp.h>

CRecentImp< DATA_TYPE, RECEIVE_TYPE >に対する継承グラフ

[凡例]
CRecentImp< DATA_TYPE, RECEIVE_TYPE >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentImp ()
virtual | ~CRecentImp ()
void | Terminate ()
bool | IsAvailable () const
void | _Recovery ()
リカバリ
bool | ChangeViewCount (int nViewCount)
bool | UpdateView ()
int | GetArrayCount () const
int | GetItemCount () const
int | GetViewCount () const
bool | SetFavorite (int nIndex, bool bFavorite=true)
お気に入りに設定
bool | ResetFavorite (int nIndex)
void | ResetAllFavorite ()
bool | IsFavorite (int nIndex) const
お気に入りか調べる
bool | AppendItem (ReceiveType pItemData)
bool | DeleteItem (int nIndex)
アイテムをクリア
bool | DeleteItem (ReceiveType pItemData)
void | DeleteAllItem ()
const DataType * | GetItem (int nIndex) const
DataType * | GetItem (int nIndex)
int | FindItem (ReceiveType pItemData) const
bool | MoveItem (int nSrcIndex, int nDstIndex)
virtual int | CompareItem (const DataType *p1, ReceiveType p2) const =0
virtual void | CopyItem (DataType *dst, ReceiveType src) const =0

Protected メソッド

bool | Create (DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount)

Protected 変数

bool | m_bCreate
Create済みか
DataType * m_puUserItemData
アイテム配列へのポインタ
int * | m_pnUserItemCount
アイテム個数へのポインタ
bool * | m_pbUserItemFavorite
お気に入りへのポインタ (NULL許可)
int | m_nArrayCount
最大管理可能なアイテム数
int * | m_pnUserViewCount
表示個数 (NULL許可)

Private 型

typedef CRecentImp< DATA_TYPE,
RECEIVE_TYPE > 		Me
typedef DATA_TYPE | DataType
typedef RECEIVE_TYPE | ReceiveType

Private メソッド

const DataType * | GetItemPointer (int nIndex) const
DataType * | GetItemPointer (int nIndex)
void | ZeroItem (int nIndex)
int | GetOldestItem (int nIndex, bool bFavorite)
bool | CopyItem (int nSrcIndex, int nDstIndex)

説明

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
class CRecentImp< DATA_TYPE, RECEIVE_TYPE >

CRecentImp.h の 7 行で定義されています。

型定義

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
typedef CRecentImp<DATA_TYPE,RECEIVE_TYPE> CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Me [private]

CRecentImp.h の 9 行で定義されています。

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
typedef DATA_TYPE CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DataType [private]

CRecentImp.h の 10 行で定義されています。

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
typedef RECEIVE_TYPE CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ReceiveType [private]

CRecentImp.h の 11 行で定義されています。

コンストラクタとデストラクタ

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CRecentImp ( ) [inline]

CRecentImp.h の 14 行で定義されています。

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
virtual CRecentImp< DATA_TYPE, RECEIVE_TYPE >::~CRecentImp ( ) [inline, virtual]

CRecentImp.h の 15 行で定義されています。

関数

template<class T, class S>
bool CRecentImp< T, S >::Create | ( | DataType * | pszItemArray,
 |  | int * | pnItemCount,
 |  | bool * | pbItemFavorite,
 |  | int | nArrayCount,
 |  | int * | pnViewCount |
 | ) |  |  | [inline, protected]

引数:
pszItemArray | アイテム配列へのポインタ
pnItemCount | アイテム個数へのポインタ
pbItemFavorite | お気に入りへのポインタ(NULL許可)
nArrayCount | 最大管理可能なアイテム数
pnViewCount | 表示個数(NULL許可)

CRecentImp.cpp の 20 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_bCreate, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_puUserItemData, NULL, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView().

参照元 CRecentCmd::CRecentCmd(), CRecentFolder::CRecentFolder(), CRecentGrepFile::CRecentGrepFile(), CRecentGrepFolder::CRecentGrepFolder(), CRecentReplace::CRecentReplace(), CRecentSearch::CRecentSearch(), と CRecentTagjumpKeyword::CRecentTagjumpKeyword().

template<class T, class S>
void CRecentImp< T, S >::Terminate ( ) [inline, virtual]

CRecentを実装しています。

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

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_bCreate, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_puUserItemData, と NULL.

参照元 CShareData::AddEditWndList(), CEditView::AddToCmdArr(), CShareData::AddToGrepFileArr(), CShareData::AddToGrepFolderArr(), CShareData::AddToReplaceKeyArr(), CShareData::AddToSearchKeyArr(), CEditWnd::ChangeFileNameNotify(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< StaticString, LPCWSTR >::CRecentImp(), CShareData::DeleteEditWndList(), CDlgTagJumpList::GetData(), CPropCommon::GetData_p1(), CDlgTagJumpList::SetData(), CMRU::~CMRU(), CMRUFolder::~CMRUFolder(), と CRecentImp< StaticString, LPCWSTR >::~CRecentImp().

template<class T, class S>
bool CRecentImp< T, S >::IsAvailable ( void ) const [inline]

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

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::_Recovery(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_bCreate.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::FindItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< StaticString, LPCWSTR >::GetItemCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetOldestItem(), CRecentImp< StaticString, LPCWSTR >::GetViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ResetAllFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

template<class T, class S>
void CRecentImp< T, S >::_Recovery ( ) [inline]

リカバリ

CRecentImp.cpp の 83 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable().

template<class T, class S>
bool CRecentImp< T, S >::ChangeViewCount ( int nViewCount ) [inline]

CRecentImp.cpp の 412 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetOldestItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem().

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView().

template<class T, class S>
bool CRecentImp< T, S >::UpdateView ( ) [inline, virtual]

CRecentを実装しています。

CRecentImp.cpp の 455 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), と CPropCommon::GetData_p1().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetArrayCount ( ) const [inline]

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

参照元 CShareData::AddEditWndList().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount ( ) const [inline, virtual]

CRecentを実装しています。

CRecentImp.h の 37 行で定義されています。

参照元 CShareData::AddEditWndList(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CShareData::DeleteEditWndList(), CMRUFolder::GetPathList(), CMRU::GetPathList(), CMRUFolder::Length(), CMRU::Length(), と CDlgTagJumpList::SetData().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetViewCount ( ) const [inline, virtual]

CRecentを実装しています。

CRecentImp.h の 38 行で定義されています。

参照元 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CMRUFolder::GetPathList(), と CMRU::GetPathList().

template<class T, class S>
bool CRecentImp< T, S >::SetFavorite | ( | int | nIndex,
 |  | bool | bFavorite = true |
 | ) |  |  | [inline, virtual]

お気に入りに設定

CRecentを実装しています。

CRecentImp.cpp の 109 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と NULL.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ResetAllFavorite(), と CRecentImp< StaticString, LPCWSTR >::ResetFavorite().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
bool CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ResetFavorite ( int nIndex ) [inline]

CRecentImp.h の 42 行で定義されています。

template<class T, class S>
void CRecentImp< T, S >::ResetAllFavorite ( ) [inline]

CRecentImp.cpp の 124 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite().

template<class T, class S>
bool CRecentImp< T, S >::IsFavorite ( int nIndex ) const [inline, virtual]

お気に入りか調べる

CRecentを実装しています。

CRecentImp.cpp の 141 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と NULL.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetOldestItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem().

template<class T, class S>
bool CRecentImp< T, S >::AppendItem ( ReceiveType pItemData ) [inline]

CRecentImp.cpp の 164 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::FindItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetOldestItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem().

参照元 CMRUFolder::Add(), CMRU::Add(), CShareData::AddEditWndList(), CEditView::AddToCmdArr(), CShareData::AddToGrepFileArr(), CShareData::AddToGrepFolderArr(), CShareData::AddToReplaceKeyArr(), CShareData::AddToSearchKeyArr(), と CDlgTagJumpList::GetData().

template<class T, class S>
bool CRecentImp< T, S >::DeleteItem ( int nIndex ) [inline, virtual]

アイテムをクリア

CRecentを実装しています。

CRecentImp.cpp の 238 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< StaticString, LPCWSTR >::DeleteItem().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
bool CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem ( ReceiveType pItemData ) [inline]

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

template<class T, class S>
void CRecentImp< T, S >::DeleteAllItem ( ) [inline, virtual]

CRecentを実装しています。

CRecentImp.cpp の 264 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

参照元 CMRUFolder::ClearAll(), と CMRU::ClearAll().

template<class T, class S>
const T * CRecentImp< T, S >::GetItem ( int nIndex ) const [inline]

CRecentImp.cpp の 349 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_puUserItemData, と NULL.

参照元 CShareData::AddEditWndList(), CEditWnd::ChangeFileNameNotify(), CMRU::CreateMenu(), CMRU::GetFileInfo(), CRecentImp< StaticString, LPCWSTR >::GetItem(), CRecentTagjumpKeyword::GetItemText(), CRecentSearch::GetItemText(), CRecentReplace::GetItemText(), CRecentGrepFolder::GetItemText(), CRecentGrepFile::GetItemText(), CRecentFolder::GetItemText(), と CRecentCmd::GetItemText().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
DataType* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem ( int nIndex ) [inline]

CRecentImp.h の 57 行で定義されています。

template<class T, class S>
int CRecentImp< T, S >::FindItem ( ReceiveType pItemData ) const [inline]

CRecentImp.cpp の 366 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CompareItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< StaticString, LPCWSTR >::DeleteItem().

template<class T, class S>
bool CRecentImp< T, S >::MoveItem | ( | int | nSrcIndex,
 |  | int | nDstIndex |
 | ) |  |  | [inline]

CRecentImp.cpp の 284 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount, memcpy_raw(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite().

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
virtual int CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CompareItem | ( | const DataType * | p1,
 |  | ReceiveType | p2 |
 | ) |  |  | const [pure virtual]

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::FindItem().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
virtual void CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem | ( | DataType * | dst,
 |  | ReceiveType | src |
 | ) |  |  | const [pure virtual]

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem().

template<class T, class S>
const T * CRecentImp< T, S >::GetItemPointer ( int nIndex ) const [inline, private]

CRecentImp.cpp の 356 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_puUserItemData, と NULL.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::FindItem(), CRecentImp< StaticString, LPCWSTR >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
DataType* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer ( int nIndex ) [inline, private]

CRecentImp.h の 70 行で定義されています。

template<class T, class S>
void CRecentImp< T, S >::ZeroItem ( int nIndex ) [inline, private]

CRecentImp.cpp の 222 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, と memset_raw().

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem().

template<class T, class S>
int CRecentImp< T, S >::GetOldestItem | ( | int | nIndex,
 |  | bool | bFavorite |
 | ) |  |  | [inline, private]

CRecentImp.cpp の 386 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount.

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount().

template<class T, class S>
bool CRecentImp< T, S >::CopyItem | ( | int | nSrcIndex,
 |  | int | nDstIndex |
 | ) |  |  | [inline, private]

CRecentImp.cpp の 325 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite, と memcpy_raw().

変数

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
bool CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_bCreate [protected]

Create済みか

CRecentImp.h の 77 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsAvailable(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
DataType* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_puUserItemData [protected]

アイテム配列へのポインタ

CRecentImp.h の 80 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserItemCount [protected]

アイテム個数へのポインタ

CRecentImp.h の 81 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::_Recovery(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::FindItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< StaticString, LPCWSTR >::GetItemCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetOldestItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ResetAllFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
bool* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pbUserItemFavorite [protected]

お気に入りへのポインタ (NULL許可)

CRecentImp.h の 82 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_nArrayCount [protected]

最大管理可能なアイテム数

CRecentImp.h の 83 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::_Recovery(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::DeleteAllItem(), CRecentImp< StaticString, LPCWSTR >::GetArrayCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CRecentImp< StaticString, LPCWSTR >::GetViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

template<class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE*>
int* CRecentImp< DATA_TYPE, RECEIVE_TYPE >::m_pnUserViewCount [protected]

表示個数 (NULL許可)

CRecentImp.h の 84 行で定義されています。

参照元 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::_Recovery(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ChangeViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecentImp< StaticString, LPCWSTR >::GetViewCount(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::UpdateView().

このクラスの説明は次のファイルから生成されました:
  • CRecentImp.h
  • CRecentImp.cpp
Sakura-Editorに対してSat Nov 17 20:28:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentImp< DATA_TYPE, RECEIVE_TYPE > メンバ一覧

これは全メンバの一覧です。CRecentImp< DATA_TYPE, RECEIVE_TYPE >継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, private]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
DataType typedef | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [private]
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemPointer(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, private]
GetItemPointer(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, private]
GetItemText(int nIndex) const =0 | CRecent | [pure virtual]
GetOldestItem(int nIndex, bool bFavorite) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, private]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
Me typedef | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [private]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ReceiveType typedef | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [private]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
ZeroItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, private]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentReplace

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentReplace

置換の履歴を管理 (RECENT_FOR_REPLACE) [詳細]

#include <CRecentReplace.h>

CRecentReplaceに対する継承グラフ

[凡例]
CRecentReplaceのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentReplace ()
int | CompareItem (const CReplaceString *p1, LPCWSTR p2) const
void | CopyItem (CReplaceString *dst, LPCWSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

置換の履歴を管理 (RECENT_FOR_REPLACE)

CRecentReplace.h の 9 行で定義されています。

コンストラクタとデストラクタ

CRecentReplace::CRecentReplace ( )

CRecentReplace.cpp の 13 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_REPLACEKEY, と NULL.

関数

int CRecentReplace::CompareItem | ( | const CReplaceString * | p1,
 |  | LPCWSTR | p2 |
 | ) |  |  | const

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

void CRecentReplace::CopyItem | ( | CReplaceString * | dst,
 |  | LPCWSTR | src |
 | ) |  |  | const

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

const TCHAR * CRecentReplace::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentReplace.cpp の 33 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), と to_tchar.

このクラスの説明は次のファイルから生成されました:
  • CRecentReplace.h
  • CRecentReplace.cpp
Sakura-Editorに対してSat Nov 17 20:28:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentReplace メンバ一覧

これは全メンバの一覧です。CRecentReplace継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CReplaceString *p1, LPCWSTR p2) const | CRecentReplace |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CReplaceString *dst, LPCWSTR src) const | CRecentReplace |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CRecentReplace() | CRecentReplace |
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentReplace | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentSearch

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentSearch

検索の履歴を管理 (RECENT_FOR_SEARCH) [詳細]

#include <CRecentSearch.h>

CRecentSearchに対する継承グラフ

[凡例]
CRecentSearchのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentSearch ()
int | CompareItem (const CSearchString *p1, LPCWSTR p2) const
void | CopyItem (CSearchString *dst, LPCWSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

検索の履歴を管理 (RECENT_FOR_SEARCH)

CRecentSearch.h の 9 行で定義されています。

コンストラクタとデストラクタ

CRecentSearch::CRecentSearch ( )

CRecentSearch.cpp の 16 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_SEARCHKEY, と NULL.

関数

int CRecentSearch::CompareItem | ( | const CSearchString * | p1,
 |  | LPCWSTR | p2 |
 | ) |  |  | const

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

void CRecentSearch::CopyItem | ( | CSearchString * | dst,
 |  | LPCWSTR | src |
 | ) |  |  | const

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

const TCHAR * CRecentSearch::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

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

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), と to_tchar.

このクラスの説明は次のファイルから生成されました:
  • CRecentSearch.h
  • CRecentSearch.cpp
Sakura-Editorに対してSat Nov 17 20:28:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentSearch メンバ一覧

これは全メンバの一覧です。CRecentSearch継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CSearchString *p1, LPCWSTR p2) const | CRecentSearch |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CSearchString *dst, LPCWSTR src) const | CRecentSearch |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CRecentSearch() | CRecentSearch |
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentSearch | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:28:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecentTagjumpKeyword

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecentTagjumpKeyword

タグジャンプキーワードの履歴を管理 (RECENT_FOR_TAGJUMP_KEYWORD) [詳細]

#include <CRecentTagjumpKeyword.h>

CRecentTagjumpKeywordに対する継承グラフ

[凡例]
CRecentTagjumpKeywordのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRecentTagjumpKeyword ()
int | CompareItem (const CTagjumpKeywordString *p1, LPCWSTR p2) const
void | CopyItem (CTagjumpKeywordString *dst, LPCWSTR src) const
const TCHAR * | GetItemText (int nIndex) const

説明

タグジャンプキーワードの履歴を管理 (RECENT_FOR_TAGJUMP_KEYWORD)

CRecentTagjumpKeyword.h の 9 行で定義されています。

コンストラクタとデストラクタ

CRecentTagjumpKeyword::CRecentTagjumpKeyword ( )

CRecentTagjumpKeyword.cpp の 13 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CRecent::GetShareData(), MAX_TAGJUMP_KEYWORD, と NULL.

関数

int CRecentTagjumpKeyword::CompareItem | ( | const CTagjumpKeywordString * | p1,
 |  | LPCWSTR | p2 |
 | ) |  |  | const

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

void CRecentTagjumpKeyword::CopyItem | ( | CTagjumpKeywordString * | dst,
 |  | LPCWSTR | src |
 | ) |  |  | const

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

const TCHAR * CRecentTagjumpKeyword::GetItemText ( int nIndex ) const [virtual]

CRecentを実装しています。

CRecentTagjumpKeyword.cpp の 33 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), と to_tchar.

参照元 CDlgTagJumpList::SetData().

このクラスの説明は次のファイルから生成されました:
  • CRecentTagjumpKeyword.h
  • CRecentTagjumpKeyword.cpp
Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecentTagjumpKeyword メンバ一覧

これは全メンバの一覧です。CRecentTagjumpKeyword継承メンバも含んでいます。

_Recovery() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
AppendItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ChangeViewCount(int nViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CompareItem(const CTagjumpKeywordString *p1, LPCWSTR p2) const | CRecentTagjumpKeyword |
CRecentImp::CompareItem(const DataType *p1, ReceiveType p2) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
CopyItem(CTagjumpKeywordString *dst, LPCWSTR src) const | CRecentTagjumpKeyword |
CRecentImp::CopyItem(DataType *dst, ReceiveType src) const =0 | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [pure virtual]
Create(DataType *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *pnViewCount) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, protected]
CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
CRecentTagjumpKeyword() | CRecentTagjumpKeyword |
DeleteAllItem() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
DeleteItem(ReceiveType pItemData) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItem(ReceiveType pItemData) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
FindItemByText(const TCHAR *pszText) const | CRecent | [inline]
GetArrayCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItem(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
GetItemCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
GetItemText(int nIndex) const | CRecentTagjumpKeyword | [virtual]
GetShareData() | CRecent |
GetViewCount() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
IsAvailable() const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
IsFavorite(int nIndex) const | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
m_bCreate | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_nArrayCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pbUserItemFavorite | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserItemCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_pnUserViewCount | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
m_puUserItemData | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [protected]
MoveItem(int nSrcIndex, int nDstIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetAllFavorite() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
ResetFavorite(int nIndex) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline]
SetFavorite(int nIndex, bool bFavorite=true) | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
Terminate() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
UpdateView() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]
~CRecent() | CRecent | [inline, virtual]
~CRecentImp() | CRecentImp< DATA_TYPE, RECEIVE_TYPE > | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecycledBuffer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecycledBuffer

#include <CRecycledBuffer.h>

すべてのメンバ一覧

Public メソッド

CRecycledBuffer ()
template<class T>
T * | GetBuffer (size_t *nCount)
一時的に確保されたメモリブロックを取得。このメモリブロックを解放してはいけない。
template<class T>
size_t | GetMaxCount () const
領域の要素数を取得。T単位

Private 変数

BYTE | m_buf [CHAIN_COUNT][BLOCK_SIZE]
int | m_current

Static Private 変数

static const int | BLOCK_SIZE = 1024
static const int | CHAIN_COUNT = 64

説明

CRecycledBuffer.h の 7 行で定義されています。

コンストラクタとデストラクタ

CRecycledBuffer::CRecycledBuffer ( ) [inline]

CRecycledBuffer.h の 15 行で定義されています。

参照先 m_current.

関数

template<class T>
T* CRecycledBuffer::GetBuffer ( size_t * nCount ) [inline]

一時的に確保されたメモリブロックを取得。このメモリブロックを解放してはいけない。

引数:
nCount [out] 領域の要素数を受け取る。T単位。

CRecycledBuffer.h の 24 行で定義されています。

参照先 BLOCK_SIZE, CHAIN_COUNT, m_buf, と m_current.

参照元 to_achar(), と to_wchar().

template<class T>
size_t CRecycledBuffer::GetMaxCount ( ) const [inline]

領域の要素数を取得。T単位

CRecycledBuffer.h の 35 行で定義されています。

参照先 BLOCK_SIZE.

参照元 to_achar(), と to_wchar().

変数

const int CRecycledBuffer::BLOCK_SIZE = 1024 [static, private]

CRecycledBuffer.h の 10 行で定義されています。

参照元 GetBuffer(), と GetMaxCount().

const int CRecycledBuffer::CHAIN_COUNT = 64 [static, private]

CRecycledBuffer.h の 11 行で定義されています。

参照元 GetBuffer().

BYTE CRecycledBuffer::m_buf[CHAIN_COUNT][BLOCK_SIZE] [private]

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

参照元 GetBuffer().

int CRecycledBuffer::m_current [private]

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

参照元 CRecycledBuffer(), と GetBuffer().

このクラスの説明は次のファイルから生成されました:
  • CRecycledBuffer.h
Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecycledBuffer メンバ一覧

これは全メンバの一覧です。CRecycledBuffer継承メンバも含んでいます。

BLOCK_SIZE | CRecycledBuffer | [private, static]
CHAIN_COUNT | CRecycledBuffer | [private, static]
CRecycledBuffer() | CRecycledBuffer | [inline]
GetBuffer(size_t *nCount) | CRecycledBuffer | [inline]
GetMaxCount() const | CRecycledBuffer | [inline]
m_buf | CRecycledBuffer | [private]
m_current | CRecycledBuffer | [private]

Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRecycledBufferDynamic

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecycledBufferDynamic

#include <CRecycledBuffer.h>

すべてのメンバ一覧

Public メソッド

CRecycledBufferDynamic ()
~CRecycledBufferDynamic ()
template<class T>
T * | GetBuffer (size_t nCount)
一時的に確保されたメモリブロックを取得。このメモリブロックを解放してはいけない。

Private 変数

BYTE * | m_buf [CHAIN_COUNT]
int | m_current

Static Private 変数

static const int | CHAIN_COUNT = 64

説明

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

コンストラクタとデストラクタ

CRecycledBufferDynamic::CRecycledBufferDynamic ( ) [inline]

CRecycledBuffer.h の 56 行で定義されています。

参照先 _countof, m_buf, m_current, と NULL.

CRecycledBufferDynamic::~CRecycledBufferDynamic ( ) [inline]

CRecycledBuffer.h の 63 行で定義されています。

参照先 _countof, と m_buf.

関数

template<class T>
T* CRecycledBufferDynamic::GetBuffer ( size_t nCount ) [inline]

一時的に確保されたメモリブロックを取得。このメモリブロックを解放してはいけない。

引数:
nCount [in] 確保する要素数。T単位。

CRecycledBuffer.h の 74 行で定義されています。

参照先 CHAIN_COUNT, m_buf, と m_current.

参照元 easy_format(), to_achar(), と to_wchar().

変数

const int CRecycledBufferDynamic::CHAIN_COUNT = 64 [static, private]

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

参照元 GetBuffer().

BYTE* CRecycledBufferDynamic::m_buf[CHAIN_COUNT] [private]

CRecycledBuffer.h の 89 行で定義されています。

参照元 CRecycledBufferDynamic(), GetBuffer(), と ~CRecycledBufferDynamic().

int CRecycledBufferDynamic::m_current [private]

CRecycledBuffer.h の 90 行で定義されています。

参照元 CRecycledBufferDynamic(), と GetBuffer().

このクラスの説明は次のファイルから生成されました:
  • CRecycledBuffer.h
Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecycledBufferDynamic メンバ一覧

これは全メンバの一覧です。CRecycledBufferDynamic継承メンバも含んでいます。

CHAIN_COUNT | CRecycledBufferDynamic | [private, static]
CRecycledBufferDynamic() | CRecycledBufferDynamic | [inline]
GetBuffer(size_t nCount) | CRecycledBufferDynamic | [inline]
m_buf | CRecycledBufferDynamic | [private]
m_current | CRecycledBufferDynamic | [private]
~CRecycledBufferDynamic() | CRecycledBufferDynamic | [inline]

Sakura-Editorに対してSat Nov 17 20:29:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRegexKeyword

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRegexKeyword

正規表現キーワードクラス [詳細]

#include <CRegexKeyword.h>

CRegexKeywordに対する継承グラフ

[凡例]
CRegexKeywordのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRegexKeyword (LPCTSTR)
コンストラクタ
~CRegexKeyword ()
デストラクタ
BOOL | RegexKeyLineStart (void)
行検索開始
BOOL | RegexIsKeyword (const wchar_t *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor)
行検索
BOOL | RegexKeySetTypes (Types *pTypesPtr)
タイプ設定
BOOL | RegexKeyCheckSyntax (const wchar_t *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]
wchar_t | m_szMsg [256]
BREGEXP_Wからのメッセージを保持する

説明

正規表現キーワードクラス

正規表現キーワードを扱う。

CRegexKeyword.h の 87 行で定義されています。

コンストラクタとデストラクタ

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 行で定義されています。

参照先 CBregexpDll2::BRegfree(), CDllHandler::IsAvailable(), m_nTypeIndex, m_pTypes, m_sInfo, MAX_REGEX_KEYWORD, MYDBGMSG, NULL, RegexInfo_t::pBregexp, と RegexKeyInit().

関数

BOOL CRegexKeyword::RegexKeyLineStart ( void )

行検索開始

行検索開始処理

行検索開始

行検索を開始する。

戻り値:
TRUE | 成功
FALSE | 失敗または検索しない指定あり
覚え書き:
それぞれの行検索の最初に実行する。 タイプ設定等が変更されている場合はリロードする。

CRegexKeyword.cpp の 287 行で定義されています。

参照元 CEditView::DispLineNew().

BOOL CRegexKeyword::RegexIsKeyword | ( | const wchar_t * | pLine,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | int * | nMatchLen,
 |  | int * | nMatchColor
 | ) |  |

行検索

正規表現検索処理

正規表現検索

正規表現キーワードを検索する。

引数:
pLine | [in] １行のデータ
nPos | [in] 検索開始オフセット
nLineLen | [in] １行の長さ
nMatchLen | [out] マッチした長さ
nMatchColor | [out] マッチした色番号
戻り値:
TRUE | 一致
FALSE | 不一致
覚え書き:
RegexKeyLineStart関数によって初期化されていること。

CRegexKeyword.cpp の 338 行で定義されています。

参照元 CEditView::DispLineNew().

BOOL CRegexKeyword::RegexKeySetTypes ( Types * pTypesPtr )

タイプ設定

現在タイプ設定処理

現在タイプ設定

現在のタイプ設定を設定する。

引数:
pTypesPtr [in] タイプ設定構造体へのポインタ
戻り値:
TRUE | 成功
FALSE | 失敗
覚え書き:
タイプ設定が変わったら再ロードしコンパイルする。

CRegexKeyword.cpp の 122 行で定義されています。

参照元 CEditView::Create(), と CEditView::OnPaint().

BOOL CRegexKeyword::RegexKeyCheckSyntax ( const wchar_t * s )

書式(囲み)チェック

CRegexKeyword.cpp の 416 行で定義されています。

BOOL CRegexKeyword::RegexKeyCompile ( void ) [protected]

コンパイル

正規表現キーワードコンパイル処理

正規表現キーワードコンパイル

正規表現キーワードをコンパイルする。

戻り値:
TRUE | 成功
FALSE | 失敗
覚え書き:
すでにコンパイル済みの場合はそれを破棄する。 キーワードはコンパイルデータとして内部変数にコピーする。 先頭指定、色指定側の使用・未使用をチェックする。

CRegexKeyword.cpp の 169 行で定義されています。

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, RegexInfo_t::pBregexp, と TRUE.

参照元 CRegexKeyword(), と ~CRegexKeyword().

変数

int CRegexKeyword::m_nTypeIndex

CRegexKeyword.h の 101 行で定義されています。

参照元 CRegexKeyword(), RegexKeyInit(), と ~CRegexKeyword().

BOOL CRegexKeyword::m_bUseRegexKeyword

CRegexKeyword.h の 102 行で定義されています。

参照元 CEditView::OnPaint(), と RegexKeyInit().

Types* CRegexKeyword::m_pTypes [private]

CRegexKeyword.h の 113 行で定義されています。

参照元 CRegexKeyword(), と ~CRegexKeyword().

int CRegexKeyword::m_nCompiledMagicNumber [private]

CRegexKeyword.h の 114 行で定義されています。

参照元 RegexKeyInit().

int CRegexKeyword::m_nRegexKeyCount [private]

CRegexKeyword.h の 115 行で定義されています。

参照元 RegexKeyInit().

REGEX_INFO CRegexKeyword::m_sInfo[MAX_REGEX_KEYWORD] [private]

CRegexKeyword.h の 116 行で定義されています。

参照元 RegexKeyInit(), と ~CRegexKeyword().

wchar_t CRegexKeyword::m_szMsg[256] [private]

BREGEXP_Wからのメッセージを保持する

CBregexpを再定義しています。

CRegexKeyword.h の 117 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CRegexKeyword.h
  • CRegexKeyword.cpp
Sakura-Editorに対してSat Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRegexKeyword メンバ一覧

これは全メンバの一覧です。CRegexKeyword継承メンバも含んでいます。

BMatch(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BMatchEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BREGEXP_BRegexpVersionW2 typedef | CBregexpDll2 | [protected]
BRegexpVersion(void) | CBregexpDll2 | [inline]
BRegfree(BREGEXP_W *rx) | CBregexpDll2 | [inline]
BSplit(const wchar_t *str, wchar_t *target, wchar_t *targetendp, int limit, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubst(const wchar_t *str, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BSubstEx(const wchar_t *str, const wchar_t *targetbeg, const wchar_t *target, const wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
BTrans(const wchar_t *str, wchar_t *target, wchar_t *targetendp, BREGEXP_W **rxp, wchar_t *msg) | CBregexpDll2 | [inline]
CBregexp() | CBregexp |
CBregexpDll2() | CBregexpDll2 |
CDllHandler() | CDllHandler |
Compile(const wchar_t *szPattern, int nOption=0) | CBregexp | [inline]
Compile(const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption=0) | CBregexp |
CRegexKeyword(LPCTSTR) | CRegexKeyword |
DeinitDll(void) | CBregexpDll2 | [protected, virtual]
ExistBMatchEx() const | CBregexpDll2 | [inline]
ExistBSubstEx() const | CBregexpDll2 | [inline]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR str) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR, int) | CBregexpDll2 | [protected, virtual]
GetIndex(void) | CBregexp | [inline]
GetInstance() const | CDllHandler | [inline]
GetLastIndex(void) | CBregexp | [inline]
GetLastMessage() const | CBregexp |
GetMatchLen(void) | CBregexp | [inline]
GetString(void) | CBregexp | [inline]
GetStringLen(void) | CBregexp | [inline]
GetVersionT() | CBregexp | [inline]
Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CBregexpDll2 | [protected, virtual]
int(__cdecl *BREGEXP_BMatchW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BTransW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSplitW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BMatchExW2)(const wchar_t *str | CBregexpDll2 | [protected]
int(__cdecl *BREGEXP_BSubstExW2)(const wchar_t *str | CBregexpDll2 | [protected]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsLookAhead(void) | CBregexp | [inline]
IsLookAhead(const wchar_t *pattern) | CBregexp | [inline]
limit typedef | CBregexpDll2 | [protected]
LoadLibrary(LPCTSTR 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 wchar_t *szTarget, int nLen, int nStart=0) | CBregexp |
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
msg typedef | CBregexpDll2 | [protected]
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 wchar_t *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor) | CRegexKeyword |
RegexKeyCheckSyntax(const wchar_t *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 wchar_t *szTarget, int nLen, int nStart=0) | CBregexp |
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
rxp typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
target typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetbeg typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
targetendp typedef | CBregexpDll2 | [protected]
void(__cdecl *BREGEXP_BRegfreeW2)(BREGEXP_W *rx) | CBregexpDll2 | [protected]
~CBregexp() | CBregexp | [virtual]
~CBregexpDll2() | CBregexpDll2 | [virtual]
~CDllHandler() | CDllHandler | [virtual]
~CRegexKeyword() | CRegexKeyword |

Sakura-Editorに対してSat Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CRuler

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRuler

#include <CRuler.h>

CRulerのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CRuler (const CEditView *pEditView, const CEditDoc *pEditDoc)
virtual | ~CRuler ()
void | DispRuler (HDC)
ルーラー描画 (背景とキャレット)
void | DrawRulerBg (HDC hdc)
ルーラーの背景のみ描画 2007.08.29 kobake 追加
void | DrawRulerCaret (HDC hdc)
ルーラーのキャレットのみ描画 2002.02.25 Add By KK
void | SetRedrawFlag ()

Private メソッド

void | _DrawRulerCaret (HDC hdc, int nCaretDrawX, int nCaretWidth)

Private 変数

const CEditView * | m_pEditView
const CEditDoc * | m_pEditDoc
bool | m_bRedrawRuler
int | m_nOldRulerDrawX
int | m_nOldRulerWidth

説明

CRuler.h の 8 行で定義されています。

コンストラクタとデストラクタ

CRuler::CRuler | ( | const CEditView * | pEditView,
 |  | const CEditDoc * | pEditDoc
 | ) |  |

CRuler.cpp の 8 行で定義されています。

参照先 m_nOldRulerDrawX, と m_nOldRulerWidth.

CRuler::~CRuler ( ) [virtual]

CRuler.cpp の 16 行で定義されています。

関数

void CRuler::DispRuler ( HDC hdc )

ルーラー描画 (背景とキャレット)

ルーラー描画

日付:
2005.08.14 genta 折り返し幅をLayoutMgrから取得するように

CRuler.cpp の 187 行で定義されています。

参照先 _DrawRulerCaret(), CCaret::CalcCaretDrawPos(), COLORIDX_RULER, DrawRulerBg(), DrawRulerCaret(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretSize(), CEditView::GetDrawSwitch(), CTextArea::GetRightCol(), CEditView::GetTextArea(), CTextArea::GetViewLeftCol(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CTypeSupport::IsDisp(), m_bRedrawRuler, DLLSHAREDATA::m_Common, m_nOldRulerDrawX, m_nOldRulerWidth, m_pEditView, と CEditView::m_pShareData.

参照元 CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CCaret::MoveCursor(), CEditView::OnKillFocus(), CEditView::OnPaint(), CEditView::OnSetFocus(), CEditView::ScrollAtH(), と CEditView::SyncScrollH().

void CRuler::DrawRulerBg ( HDC hdc )

ルーラーの背景のみ描画 2007.08.29 kobake 追加

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

参照先 _tcscpy(), COLORIDX_RULER, CTypeSupport::FillBack(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CTextMetrics::GetHankakuDx(), CLayoutMgr::GetMaxLineKetas(), CTextArea::GetRulerHeight(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTextArea::GetTopYohaku(), CTextArea::GetViewLeftCol(), CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CommonSetting_Window::m_nRulerHeight, m_pEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sWindow, memset_raw(), NULL, CTypeSupport::RewindColors(), CTypeSupport::RewindPen(), CTypeSupport::SetSolidPen(), CTypeSupport::SetTextColor(), と ApiWrap::TextOutW_AnyBuild().

参照元 DispRuler().

void CRuler::DrawRulerCaret ( HDC hdc )

ルーラーのキャレットのみ描画 2002.02.25 Add By KK

ルーラーのキャレットを再描画 2002.02.25 Add By KK

引数:
hdc [in] デバイスコンテキスト DispRulerの内容を元に作成

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

参照先 _DrawRulerCaret(), CCaret::CalcCaretDrawPos(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretSize(), CTextArea::GetRightCol(), CEditView::GetRuler(), CEditView::GetTextArea(), CTextArea::GetViewLeftCol(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), m_nOldRulerDrawX, m_nOldRulerWidth, と m_pEditView.

参照元 DispRuler().

void CRuler::SetRedrawFlag ( ) [inline]

CRuler.h の 27 行で定義されています。

参照先 m_bRedrawRuler.

参照元 CEditView::Create(), CTextArea::DetectWidthOfLineNumberArea(), CCaret::MoveCursor(), CEditView::OnHScroll(), CEditView::OnPaint(), CEditView::ScrollAtH(), と CEditView::SyncScrollH().

void CRuler::_DrawRulerCaret | ( | HDC | hdc,
 |  | int | nCaretDrawX,
 |  | int | nCaretWidth |
 | ) |  |  | [private]

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

参照先 CTextArea::GetAreaTop(), CTextMetrics::GetHankakuDx(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTextArea::GetTopYohaku(), と m_pEditView.

参照元 DispRuler(), と DrawRulerCaret().

変数

const CEditView* CRuler::m_pEditView [private]

CRuler.h の 37 行で定義されています。

参照元 _DrawRulerCaret(), DispRuler(), DrawRulerBg(), と DrawRulerCaret().

const CEditDoc* CRuler::m_pEditDoc [private]

CRuler.h の 38 行で定義されています。

参照元 DrawRulerBg().

bool CRuler::m_bRedrawRuler [private]

CRuler.h の 41 行で定義されています。

参照元 DispRuler(), と SetRedrawFlag().

int CRuler::m_nOldRulerDrawX [private]

CRuler.h の 42 行で定義されています。

参照元 CRuler(), DispRuler(), と DrawRulerCaret().

int CRuler::m_nOldRulerWidth [private]

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

参照元 CRuler(), DispRuler(), と DrawRulerCaret().

このクラスの説明は次のファイルから生成されました:
  • CRuler.h
  • CRuler.cpp
Sakura-Editorに対してSat Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRuler メンバ一覧

これは全メンバの一覧です。CRuler継承メンバも含んでいます。

_DrawRulerCaret(HDC hdc, int nCaretDrawX, int nCaretWidth) | CRuler | [private]
CRuler(const CEditView *pEditView, const CEditDoc *pEditDoc) | CRuler |
DispRuler(HDC) | CRuler |
DrawRulerBg(HDC hdc) | CRuler |
DrawRulerCaret(HDC hdc) | CRuler |
m_bRedrawRuler | CRuler | [private]
m_nOldRulerDrawX | CRuler | [private]
m_nOldRulerWidth | CRuler | [private]
m_pEditDoc | CRuler | [private]
m_pEditView | CRuler | [private]
SetRedrawFlag() | CRuler | [inline]
~CRuler() | CRuler | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


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 ( )

関数

void CRunningTimer::Reset ( )

参照元 CViewCommander::Command_PROPERTY_FILE().

DWORD CRunningTimer::Read ( )

参照元 CEditView::DoGrep().

void CRunningTimer::WriteTrace ( const char * msg = "" ) const

変数

DWORD CRunningTimer::m_nStartTime [protected]

CRunningTimer.h の 73 行で定義されています。

char CRunningTimer::m_szText[100] [protected]

CRunningTimer.h の 74 行で定義されています。

int CRunningTimer::m_nDeapth [protected]

CRunningTimer.h の 75 行で定義されています。

int CRunningTimer::m_nNestCount = 0 [static, protected]

CRunningTimer.h の 77 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CRunningTimer.h
  • CRunningTimer.cpp
Sakura-Editorに対してSat Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CShareData

  • 構成
  • クラス階層
  • 構成メンバ

クラス CShareData

共有データの管理 [詳細]

#include <CShareData.h>

CShareDataのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CShareData ()
~CShareData ()
bool | Init (void)
CShareDataクラスの初期化処理
DLLSHAREDATA * GetShareData ()
int | GetDocumentType (const TCHAR *pszFilePath)
int | GetDocumentTypeExt (const TCHAR *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 TCHAR *pszPath, HWND *phwndOwner)
指定ファイルが開かれているか調べる
BOOL | IsPathOpened (const TCHAR *pszPath, HWND *phwndOwner, ECodeType nCharCode)
指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認
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, TCHAR *pszPath, int nBufLen)
bool | BeReloadWhenExecuteMacro (int idx)
void | AddToSearchKeyArr (const wchar_t *pszSearchKey)
void | AddToReplaceKeyArr (const wchar_t *pszReplaceKey)
void | AddToGrepFileArr (const TCHAR *pszGrepFile)
void | AddToGrepFolderArr (const TCHAR *pszGrepFolder)
bool | ExtWinHelpIsSet (int nType=-1)
const TCHAR * | GetExtWinHelp (int nType=-1)
bool | ExtHTMLHelpIsSet (int nType=-1)
const TCHAR * | GetExtHTMLHelp (int nType=-1)
bool | HTMLHelpIsSingle (int nType=-1)
const TCHAR * | MyGetDateFormat (const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen)
const TCHAR * | MyGetTimeFormat (const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen)
const TCHAR * | MyGetDateFormat (const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen, int nDateFormatType, const TCHAR *szDateFormat)
const TCHAR * | MyGetTimeFormat (const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen, int nTimeFormatType, const TCHAR *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, TCHAR *, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode)
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 (CDataProfile *, const WCHAR *, 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 (CDataProfile &)
共有データのMruセクションの入出力
void | ShareData_IO_Keys (CDataProfile &)
共有データのKeysセクションの入出力
void | ShareData_IO_Grep (CDataProfile &)
共有データのGrepセクションの入出力
void | ShareData_IO_Folders (CDataProfile &)
共有データのFoldersセクションの入出力
void | ShareData_IO_Cmd (CDataProfile &)
共有データのCmdセクションの入出力
void | ShareData_IO_Nickname (CDataProfile &)
共有データのNicknameセクションの入出力
void | ShareData_IO_Common (CDataProfile &)
共有データのCommonセクションの入出力
void | ShareData_IO_Toolbar (CDataProfile &)
共有データのToolbarセクションの入出力
void | ShareData_IO_CustMenu (CDataProfile &)
共有データのCustMenuセクションの入出力
void | ShareData_IO_Font (CDataProfile &)
共有データのFontセクションの入出力
void | ShareData_IO_KeyBind (CDataProfile &)
共有データのKeyBindセクションの入出力
void | ShareData_IO_Print (CDataProfile &)
共有データのPrintセクションの入出力
void | ShareData_IO_Types (CDataProfile &)
共有データのTypesセクションの入出力
void | ShareData_IO_KeyWords (CDataProfile &)
共有データのKeyWordsセクションの入出力
void | ShareData_IO_Macro (CDataProfile &)
共有データのMacroセクションの入出力
void | ShareData_IO_Other (CDataProfile &)
共有データの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 の 435 行で定義されています。

コンストラクタとデストラクタ

CShareData::CShareData ( )

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

参照先 m_hFileMap, m_nTransformFileNameCount, m_pShareData, と NULL.

CShareData::~CShareData ( )

共有メモリ領域がある場合はプロセスのアドレス空間から､ すでにマップされているファイル ビューをアンマップする。

CShareData.cpp の 285 行で定義されています。

参照先 m_pShareData, と NULL.

関数

CShareData * CShareData::getInstance ( ) [static]

CShareData.cpp の 276 行で定義されています。

参照先 _instance.

参照元 CEditWnd::_GetTabGroupInfo(), ActivateFrameWindow(), CTabWnd::AdjustWindowPlacement(), CControlTray::CControlTray(), CDialog::CDialog(), CDlgOpenFile::CDlgOpenFile(), CEditDoc::CEditDoc(), CEditWnd::CEditWnd(), CFuncKeyWnd::CFuncKeyWnd(), CPropCommon::ChangeDateExample(), CEditWnd::ChangeFileNameNotify(), CControlTray::CloseAllEditor(), CMenuDrawer::CMenuDrawer(), CMRU::CMRU(), CMRUFolder::CMRUFolder(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_CASCADE(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILECLOSEALL(), CViewCommander::Command_FILESAVEALL(), CViewCommander::Command_FONT(), CViewCommander::Command_GROUPCLOSE(), CViewCommander::Command_INS_DATE(), CViewCommander::Command_INS_TIME(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_TAGJUMPBACK(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CViewCommander::Command_TRACEOUT(), CPropCommon::CPropCommon(), CPropTypes::CPropTypes(), CTipWnd::Create(), CEditWnd::Create(), CEditView::Create(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CSMacroMgr::CSMacroMgr(), CSplitterWnd::CSplitterWnd(), CTabWnd::CTabWnd(), CTextArea::CTextArea(), CViewFont::CViewFont(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CSMacroMgr::Exec(), CPPA::Execute(), CEditDoc::FileRead(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CKeyBind::GetDefFuncCode(), CMigemo::GetDllName(), GetInidir(), GetInidirOrExedir(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CRecent::GetShareData(), CTabWnd::GetTabName(), CMacro::HandleCommand(), CEditDoc::HandleCommand(), CTabWnd::HideOtherWindows(), CEditDoc::Init(), CNormalProcess::Initialize(), CEditWnd::InitMenu(), CEditView::ISearchExit(), CMigemo::migemo_load_all(), MyPropertySheet(), OFNHookProcMain(), CEditDoc::OnChangeSetting(), CEditWnd::OnClose(), CEditWnd::OnCommand(), CControlTray::OnDestroy(), CEditWnd::OnDropFiles(), CEditWnd::OnMouseWheel(), CEditWnd::OnSize(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CTabWnd::OnTabNotify(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenFile(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), CEditDoc::OpenPropertySheet(), CEditDoc::OpenPropertySheetTypes(), CEditWnd::PopupWinList(), CMainToolBar::ProcSearchBox(), PropSheetWndProc(), CTabWnd::Refresh(), CTabWnd::ReorderTab(), CTabWnd::SeparateGroup(), CDlgProperty::SetData(), CDlgGrep::SetData(), CDlgDiff::SetData(), CDlgCompare::SetData(), CTabWnd::TabListMenu(), CTabWnd::TabWindowNotify(), CEditView::TagJumpSub(), CControlTray::TerminateApplication(), CViewFont::UpdateFont(), CEditWnd::WindowTopMost(), と CEditWnd::WinListMenu().

bool CShareData::Init ( void )

CShareDataクラスの初期化処理

CShareDataクラスを利用する前に必ず呼び出すこと。

戻り値:
true | 初期化成功
false | 初期化失敗
覚え書き:
既に存在する共有メモリのバージョンがこのエディタが使うものと 異なる場合は致命的エラーを防ぐためにfalseを返します。CProcessInitialize() でInit()に失敗するとメッセージを出してエディタの起動を中止します。

CShareData.cpp の 307 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), AddLastChar(), auto_sprintf(), BKUP_DAY, BKUP_MONTH, BKUP_YEAR, StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::clear(), CMRUFolder::ClearAll(), CMRU::ClearAll(), CODE_AUTODETECT, CUSTMENU_INDEX_FOR_TABWND, FALSE, GetAppVersionInfo(), GetInidir(), GSTR_CSHAREDATA, InitKeyAssign(), InitKeyword(), InitPopupMenu(), InitToolButtons(), InitTypeConfig(), LTEXT, DLLSHAREDATA::m_aCommands, DLLSHAREDATA::m_aGrepFiles, DLLSHAREDATA::m_aGrepFolders, DLLSHAREDATA::m_aReplaceKeys, DLLSHAREDATA::m_aSearchKeys, DLLSHAREDATA::m_aTagJumpKeywords, CommonSetting_Edit::m_bAddCRLFWhenCopy, CommonSetting_File::m_bAlertIfFileNotExist, CommonSetting_Search::m_bAutoCloseDlgFind, CommonSetting_OutLine::m_bAutoCloseDlgFuncList, CommonSetting_Search::m_bAutoCloseDlgReplace, CommonSetting_Edit::m_bAutoColmnPaste, CommonSetting_File::m_bAutoMIMEdecode, CommonSetting_Backup::m_bBackUp, CommonSetting_Backup::m_bBackUpDialog, CommonSetting_Backup::m_bBackUpDustBox, CommonSetting_Backup::m_bBackUpFolder, CommonSetting_Backup::m_bBackUpPathAdvanced, CommonSetting_Search::m_bCaretTextForSearch, CommonSetting_File::m_bCheckFileTimeStamp, CommonSetting_TabBar::m_bChgWndByWheel, CommonSetting_General::m_bCloseAllConfirm, CommonSetting_Compare::m_bCompareAndTileHorz, CommonSetting_Search::m_bConsecutiveAll, CommonSetting_Edit::m_bCopyAndDisablSelection, CommonSetting_General::m_bDispExitingDialog, CommonSetting_Window::m_bDispFUNCKEYWND, CommonSetting_Window::m_bDispSTATUSBAR, CommonSetting_TabBar::m_bDispTabIcon, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_Window::m_bDispTOOLBAR, CommonSetting_File::m_bDropFileAndClose, DLLSHAREDATA::m_bEditWndChanging, CommonSetting_Edit::m_bEnableLineModePaste, CommonSetting_File::m_bEnableUnmodifiedOverwrite, CommonSetting_General::m_bExitConfirm, CommonSetting_View::m_bFontIs_FIXED_PITCH, CommonSetting_OutLine::m_bFunclistSetFocusOnJump, CommonSetting_Search::m_bGrepDefaultFolder, CommonSetting_Search::m_bGrepExitConfirm, CommonSetting_Search::m_bGrepOutputLine, CommonSetting_Search::m_bGrepRealTimeView, CommonSetting_Search::m_bGrepSubFolder, CommonSetting_Search::m_bGTJW_LDBLCLK, CommonSetting_Search::m_bGTJW_RETURN, CommonSetting_Helper::m_bHokanKey_RETURN, CommonSetting_Helper::m_bHokanKey_RIGHT, CommonSetting_Helper::m_bHokanKey_SPACE, CommonSetting_Helper::m_bHokanKey_TAB, CommonSetting_Helper::m_bHtmlHelpIsSingle, IniFolder::m_bInit, CommonSetting_General::m_bIsFreeCursorMode, CommonSetting_General::m_bIsINSMode, DLLSHAREDATA::m_bLineNumIsCRLF, CommonSetting_OutLine::m_bMarkUpBlankLineEnable, CommonSetting_Window::m_bMenuIcon, CommonSetting_General::m_bNoCaretMoveByActivation, CommonSetting_File::m_bNoFilterSaveFile, CommonSetting_File::m_bNoFilterSaveNew, CommonSetting_Search::m_bNOTIFYNOTFOUND, CommonSetting_Edit::m_bNotOverWriteCRLF, CommonSetting_File::m_bQueryIfCodeChange, DLLSHAREDATA::m_bRecordingKeyMacro, MacroRec::m_bReloadWhenExecute, CommonSetting_File::m_bRestoreBookmarks, CommonSetting_File::m_bRestoreCurPosition, CommonSetting_TabBar::m_bSameTabWidth, CommonSetting_Window::m_bScrollBarHorz, CommonSetting_Search::m_bSearchAll, CommonSetting_Edit::m_bSelectClickedURL, CommonSetting_Search::m_bSelectedArea, CommonSetting_TabBar::m_bSortTabList, CommonSetting_Window::m_bSplitterWndHScroll, CommonSetting_Window::m_bSplitterWndVScroll, CommonSetting_General::m_bStayTaskTray, CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CommonSetting_General::m_bStopsBothEndsWhenSearchWord, CommonSetting_TabBar::m_bTab_CloseOneWin, CommonSetting_TabBar::m_bTab_ListFull, CommonSetting_TabBar::m_bTab_RetainEmptyWin, DLLSHAREDATA::m_bTagJumpAnyWhere, DLLSHAREDATA::m_bTagJumpICase, CommonSetting_Helper::m_bUseHokan, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, CommonSetting_General::m_bUseTaskTray, 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, CommonSetting_View::m_lf, CommonSetting_Helper::m_lf_kh, DLLSHAREDATA::m_MacroTable, CommonSetting_Backup::m_nBackUpType, CommonSetting_Backup::m_nBackUpType_Opt1, CommonSetting_Backup::m_nBackUpType_Opt2, CommonSetting_Backup::m_nBackUpType_Opt3, CommonSetting_Backup::m_nBackUpType_Opt4, CommonSetting_Backup::m_nBackUpType_Opt5, CommonSetting_Backup::m_nBackUpType_Opt6, CommonSetting_General::m_nCaretType, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, CommonSetting_Format::m_nDateFormatType, DLLSHAREDATA::m_nDiffFlgOpt, CommonSetting_File::m_nDropFileNumMax, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_nExecFlgOpt, CommonSetting_File::m_nFileShareMode, CommonSetting_Window::m_nFUNCKEYWND_GroupNum, CommonSetting_Window::m_nFUNCKEYWND_Place, CommonSetting_Search::m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, DLLSHAREDATA::m_nGroupSequences, CommonSetting_Window::m_nLineNumRightSpace, CommonSetting_General::m_nMRUArrNum_MAX, CommonSetting_General::m_nOPENFOLDERArrNum_MAX, CommonSetting_General::m_nRepeatedScroll_Smooth, CommonSetting_General::m_nRepeatedScrollLineNum, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, CommonSetting_Window::m_nRulerType, CommonSetting_Window::m_nSaveWindowPos, CommonSetting_Window::m_nSaveWindowSize, DLLSHAREDATA::m_nSequences, DLLSHAREDATA::m_nTagsOpt, CommonSetting_Format::m_nTimeFormatType, DLLSHAREDATA::m_nTransformFileNameArrNum, CommonSetting_Window::m_nVertLineOffset, CommonSetting_Window::m_nWinPosX, CommonSetting_Window::m_nWinPosY, CommonSetting_Window::m_nWinSizeCX, CommonSetting_Window::m_nWinSizeCY, CommonSetting_Window::m_nWinSizeType, DLLSHAREDATA::m_PrintSettingArr, m_pShareData, CommonSetting_Others::m_rcOpenDialog, CommonSetting::m_sBackup, CommonSetting::m_sCompare, CommonSetting::m_sCustomMenu, CommonSetting::m_sEdit, CommonSetting::m_sFile, CommonSetting::m_sFormat, CommonSetting::m_sGeneral, CommonSetting::m_sHelper, CommonSetting::m_sOthers, CommonSetting::m_sOutline, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CommonSetting::m_sTabBar, CommonSetting::m_sView, CommonSetting::m_sWindow, CommonSetting_Backup::m_szBackUpFolder, CommonSetting_Backup::m_szBackUpPathAdvanced, CommonSetting_CustomMenu::m_szCustMenuNameArr, CommonSetting_Format::m_szDateFormat, CommonSetting_Helper::m_szExtHelp, CommonSetting_Helper::m_szExtHtmlHelp, MacroRec::m_szFile, DLLSHAREDATA::m_szIMPORTFOLDER, CommonSetting_Format::m_szInyouKigou, DLLSHAREDATA::m_szKeyMacroFileName, DLLSHAREDATA::m_szMACROFOLDER, CommonSetting_Format::m_szMidashiKigou, CommonSetting_Helper::m_szMigemoDict, CommonSetting_Helper::m_szMigemoDll, MacroRec::m_szName, PRINTSETTING::m_szPrintSettingName, CommonSetting_Search::m_szRegexpLib, CommonSetting_TabBar::m_szTabWndCaption, DLLSHAREDATA::m_szTagsCmdLine, CommonSetting_Format::m_szTimeFormat, DLLSHAREDATA::m_szTransformFileNameFrom, DLLSHAREDATA::m_szTransformFileNameTo, CommonSetting_Window::m_szWindowCaptionActive, CommonSetting_Window::m_szWindowCaptionInactive, DLLSHAREDATA::m_TagJumpNum, DLLSHAREDATA::m_TagJumpTop, DLLSHAREDATA::m_vStructureVersion, CommonSetting_General::m_wTrayMenuHotKeyCode, CommonSetting_General::m_wTrayMenuHotKeyMods, MAX_CUSTMACRO, MAX_CUSTOM_MENU, MAX_CUSTOM_MENU_ITEMS, MAX_PRINTSETTINGARR, MAX_TRANSFORM_FILENAME, memset_raw(), MY_RUNNINGTIMER, NULL, SSearchOption::Reset(), CPrint::SettingInitialize(), SHAREMODE_DENY_WRITE, TRUE, uShareDataVersion, WINSIZEMODE_DEF, と WINSIZEMODE_SAVE.

参照元 CProcess::Initialize().

DLLSHAREDATA* CShareData::GetShareData ( ) [inline]

CShareData.h の 458 行で定義されています。

参照元 ActivateFrameWindow(), CControlTray::CControlTray(), CDialog::CDialog(), CDlgOpenFile::CDlgOpenFile(), CEditDoc::CEditDoc(), CEditWnd::CEditWnd(), CFuncKeyWnd::CFuncKeyWnd(), CControlTray::CloseAllEditor(), CMenuDrawer::CMenuDrawer(), CMRU::CMRU(), CMRUFolder::CMRUFolder(), CPropCommon::CPropCommon(), CPropTypes::CPropTypes(), CTipWnd::Create(), CEditView::Create(), CSMacroMgr::CSMacroMgr(), CSplitterWnd::CSplitterWnd(), CTabWnd::CTabWnd(), CTextArea::CTextArea(), CViewFont::CViewFont(), CPPA::Execute(), CEditDoc::FileRead(), CDlgGrep::GetData(), CKeyBind::GetDefFuncCode(), CMigemo::GetDllName(), CRecent::GetShareData(), CEditDoc::Init(), CMigemo::migemo_load_all(), OFNHookProcMain(), CEditDoc::OnChangeSetting(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), PropSheetWndProc(), CDlgProperty::SetData(), CDlgGrep::SetData(), CControlTray::TerminateApplication(), と CViewFont::UpdateFont().

int CShareData::GetDocumentType ( const TCHAR * pszFilePath )

ファイル名から、ドキュメントタイプ（数値）を取得する

引数:
pszFilePath [in] ファイル名
拡張子を切り出して GetDocumentTypeExt に渡すだけ．

CShareData.cpp の 763 行で定義されています。

参照先 _MAX_EXT, GetDocumentTypeExt(), と NULL.

参照元 CEditDoc::FileRead(), CEditDoc::Init(), と CEditDoc::OnChangeSetting().

int CShareData::GetDocumentTypeExt ( const TCHAR * pszExt )

拡張子から、ドキュメントタイプ（数値）を取得する

引数:
pszExt [in] 拡張子 (先頭の,は含まない)
指定された拡張子の属する文書タイプ番号を返す． とりあえず今のところはタイプは拡張子のみに依存すると仮定している． ファイル全体の形式に対応させるときは，また考え直す．

CShareData.cpp の 787 行で定義されています。

参照先 _tcscpy(), m_pShareData, Types::m_szTypeExts, DLLSHAREDATA::m_Types, MAX_TYPES, と NULL.

参照元 GetDocumentType().

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 の 820 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), DBPRINT_A, FALSE, CRecentEditNode::FindItemByHwnd(), g_cEditArrMutex, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetArrayCount(), GetGroupId(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), GetWindowLongPtr, LONG_PTR, EditNode::m_bClosing, EditNode::m_hWnd, EditNode::m_nGroup, DLLSHAREDATA::m_nGroupSequences, EditNode::m_nIndex, DLLSHAREDATA::m_nSequences, m_pShareData, EditNode::m_showCmdRestore, memcpy_raw(), memset_raw(), MYWM_TAB_WINDOW_NOTIFY, NULL, PostMessageToAllEditors(), SetWindowLongPtr, CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), TRUE, TWNT_ADD, と TWNT_ORDER.

参照元 CEditWnd::Create(), と CEditWnd::DispatchEvent().

void CShareData::DeleteEditWndList ( HWND hWnd )

編集ウィンドウリストからの削除

日付:
2003.06.28 MIK CRecent利用で書き換え

2007.07.05 ryoji mutexで保護

CShareData.cpp の 905 行で定義されています。

参照先 DBPRINT_A, CRecentEditNode::DeleteItemByHwnd(), g_cEditArrMutex, GetGroupId(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemCount(), MYWM_TAB_WINDOW_NOTIFY, PostMessageToAllEditors(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), と TWNT_DEL.

参照元 CEditWnd::DispatchEvent().

void CShareData::ResetGroupId ( void )

グループをIDリセットする

日付:
2007.06.20 ryoji

CShareData.cpp の 931 行で定義されています。

参照先 IsEditWnd(), EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, EditNode::m_nGroup, DLLSHAREDATA::m_nGroupSequences, DLLSHAREDATA::m_pEditArr, と m_pShareData.

参照元 CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_SHOWTAB(), と CEditDoc::OpenPropertySheet().

EditNode * CShareData::GetEditNode ( HWND hWnd )

編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji
警告:
この関数はm_pEditArr内の要素へのポインタを返す． m_pEditArrが変更された後ではアクセスしないよう注意が必要．

CShareData.cpp の 953 行で定義されています。

参照先 IsEditWnd(), EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_pEditArr, m_pShareData, と NULL.

参照元 CEditWnd::DispatchEvent(), GetGroupId(), CEditWnd::OnSize(), CTabWnd::OnTabNotify(), CTabWnd::SeparateGroup(), SeparateGroup(), と CTabWnd::TabWindowNotify().

int CShareData::GetGroupId ( HWND hWnd )

グループIDを取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 973 行で定義されています。

参照先 GetEditNode(), EditNode::m_nGroup, と NULL.

参照元 AddEditWndList(), CEditWnd::ChangeFileNameNotify(), CViewCommander::Command_FILECLOSEALL(), CViewCommander::Command_GROUPCLOSE(), DeleteEditWndList(), CEditWnd::DispatchEvent(), GetEditorWindowsNum(), GetTopEditNode(), IsSameGroup(), CControlTray::OpenNewEditor(), と CTabWnd::ReorderTab().

bool CShareData::IsSameGroup | ( | HWND | hWnd1,
 |  | HWND | hWnd2
 | ) |  |

同一グループかどうかを調べる

引数:
[in] | hWnd1 | 比較するウィンドウ1
[in] | hWnd2 | 比較するウィンドウ2
戻り値:
2つのウィンドウが同一グループに属していればtrue
日付:
2007.06.20 ryoji

CShareData.cpp の 989 行で定義されています。

参照先 GetGroupId().

bool CShareData::ReorderTab | ( | HWND | hwndSrc,
 |  | HWND | hwndDst
 | ) |  |

ウィンドウの並び替え

引数:
[in] | hSrcTab | 移動するウィンドウ
[in] | hSrcTab | 移動先ウィンドウ
作者:
ryoji
日付:
2007.07.07 genta ウィンドウ配列操作部をCTabWndより移動

CShareData.cpp の 1559 行で定義されています。

参照先 g_cEditArrMutex, GetOpenedWindowArrCore(), EditNode::m_nIndex, DLLSHAREDATA::m_pEditArr, m_pShareData, NULL, と TRUE.

参照元 CTabWnd::ReorderTab().

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 の 1627 行で定義されています。

参照先 g_cEditArrMutex, GetEditNode(), EditNode::m_nGroup, DLLSHAREDATA::m_nGroupSequences, EditNode::m_nIndex, DLLSHAREDATA::m_nSequences, m_pShareData, と NULL.

参照元 CTabWnd::SeparateGroup().

EditNode * CShareData::GetEditNodeAt | ( | int | nGroup,
 |  | int | nIndex
 | ) |  |

指定位置の編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 1012 行で定義されています。

参照先 IsEditWnd(), EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, EditNode::m_nGroup, DLLSHAREDATA::m_pEditArr, m_pShareData, と NULL.

参照元 CEditWnd::_GetTabGroupInfo(), GetTopEditNode(), と CTabWnd::SeparateGroup().

EditNode * CShareData::GetTopEditNode ( HWND hWnd )

先頭の編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 1038 行で定義されています。

参照先 GetEditNodeAt(), と GetGroupId().

参照元 CTabWnd::AdjustWindowPlacement(), と GetTopEditWnd().

HWND CShareData::GetTopEditWnd ( HWND hWnd )

先頭の編集ウィンドウを取得する

戻り値:
与えられたエディタウィンドウと同一グループに属す 先頭ウィンドウのハンドル
日付:
2007.06.20 ryoji

CShareData.cpp の 1053 行で定義されています。

参照先 GetTopEditNode(), EditNode::m_hWnd, と NULL.

参照元 CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), と CTabWnd::SeparateGroup().

bool CShareData::IsTopEditWnd ( HWND hWnd ) [inline]

CShareData.h の 474 行で定義されています。

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 の 1087 行で定義されています。

参照先 ActivateFrameWindow(), FALSE, GetOpenedWindowArr(), IsEditWnd(), MYWM_CLOSE, SendMessageAny, と TRUE.

BOOL CShareData::IsPathOpened | ( | const TCHAR * | pszPath,
 |  | HWND * | phwndOwner
 | ) |  |

指定ファイルが開かれているか調べる

指定のファイルが開かれている場合は開いているウィンドウのハンドルを返す

戻り値:
TRUE | すでに開いていた
FALSE | 開いていなかった

CShareData.cpp の 1126 行で定義されています。

参照先 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, SendMessageAny, と TRUE.

参照元 CControlTray::DispatchEvent(), IsPathOpened(), CEditView::OPEN_ExtFromtoExt(), と CEditDoc::OpenFile().

BOOL CShareData::IsPathOpened | ( | const TCHAR * | pszPath,
 |  | HWND * | phwndOwner,
 |  | ECodeType | nCharCode
 | ) |  |

指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認

もしすでに開いていればアクティブにして、ウィンドウのハンドルを返す。 さらに、文字コードが異なるときのワーニングも処理する。 あちこちに散らばった多重オープン処理を集結させるのが目的。

戻り値:
開かれている場合は開いているウィンドウのハンドル
覚え書き:
CEditDoc::FileReadに先立って実行されることもあるが、 CEditDoc::FileReadからも実行される必要があることに注意。 (フォルダ指定の場合やCEditDocFileReadが直接実行される場合もあるため)
戻り値:
TRUE | すでに開いていた
FALSE | 開いていなかった
日付:
2007.03.12 maru 新規作成

CShareData.cpp の 1170 行で定義されています。

参照先 ActivateFrameWindow(), CMRU::Add(), CODE_AUTODETECT, FALSE, gm_pszCodeNameArr_Normal, GSTR_APPNAME_A, IsPathOpened(), IsValidCodeType(), DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO, FileInfo::m_nCharCode, m_pShareData, MYMESSAGEBOX_A, MYWM_GETFILEINFO, NULL, SendMessageAny, と TRUE.

int CShareData::GetEditorWindowsNum ( int nGroup )

現在の編集ウィンドウの数を調べる

引数:
nGroup [in] グループ指定（0:全グループ）
日付:
2007.06.22 ryoji nGroup引数を追加

CShareData.cpp の 1239 行で定義されています。

参照先 GetGroupId(), IsEditWnd(), EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_pEditArr, と m_pShareData.

参照元 IsPathOpened().

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 の 1265 行で定義されています。

参照先 FALSE, GetOpenedWindowArr(), IsEditWnd(), EditNode::m_hWnd, NULL, と TRUE.

参照元 AddEditWndList(), CEditWnd::ChangeFileNameNotify(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_FONT(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), DeleteEditWndList(), CControlTray::DispatchEvent(), CTabWnd::ReorderTab(), と CTabWnd::SeparateGroup().

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 の 1319 行で定義されています。

参照先 FALSE, GetOpenedWindowArr(), IsEditWnd(), EditNode::m_hWnd, NULL, と TRUE.

参照元 CViewCommander::Command_FILESAVEALL(), CEditDoc::OpenPropertySheet(), と CEditDoc::OpenPropertySheetTypes().

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 の 1449 行で定義されています。

参照先 g_cEditArrMutex, と GetOpenedWindowArrCore().

参照元 CViewCommander::Command_CASCADE(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CControlTray::DispatchEvent(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CEditDoc::HandleCommand(), CEditWnd::InitMenu(), CEditWnd::OnClose(), CEditWnd::OnMouseWheel(), CEditWnd::PopupWinList(), PostMessageToAllEditors(), CTabWnd::Refresh(), RequestCloseAllEditor(), SendMessageToAllEditors(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CTabWnd::TabListMenu().

BOOL CShareData::IsEditWnd ( HWND hWnd ) [static]

CShareData.cpp の 1367 行で定義されています。

参照先 _countof, FALSE, GSTR_EDITWINDOWNAME, NULL, と TRUE.

参照元 ActivateFrameWindow(), CControlTray::CloseAllEditor(), CViewCommander::Command_MINIMIZE_ALL(), CViewCommander::Command_TAGJUMPBACK(), CViewCommander::Command_WIN_OUTPUT(), CControlTray::CreatePopUpMenu_L(), CEditWnd::DispatchEvent(), GetEditNode(), GetEditNodeAt(), GetEditorWindowsNum(), GetOpenedWindowArrCore(), IsPathOpened(), CTabWnd::OnTabLButtonUp(), PostMessageToAllEditors(), RequestCloseAllEditor(), ResetGroupId(), SendMessageToAllEditors(), CEditWnd::SetDebugModeON(), と TraceOut().

void CShareData::SetKeyNameArrVal | ( | DLLSHAREDATA * | pShareData,
 |  | int | nIdx,
 |  | short | nKeyCode,
 |  | TCHAR * | pszKeyName,
 |  | EFunctionCode | nFuncCode_0,
 |  | EFunctionCode | nFuncCode_1,
 |  | EFunctionCode | nFuncCode_2,
 |  | EFunctionCode | nFuncCode_3,
 |  | EFunctionCode | nFuncCode_4,
 |  | EFunctionCode | nFuncCode_5,
 |  | EFunctionCode | nFuncCode_6,
 |  | EFunctionCode | nFuncCode_7 |
 | ) |  |  | [static]

CShareData.cpp の 726 行で定義されています。

参照先 _tcscpy(), KEYDATA::m_nFuncCodeArr, KEYDATA::m_nKeyCode, DLLSHAREDATA::m_pKeyNameArr, と KEYDATA::m_szKeyName.

参照元 InitKeyAssign().

static LONG CShareData::MY_RegSetVal | ( | HKEY | hKey,
 |  | LPCTSTR | lpValueName,
 |  | CONST BYTE * | lpData,
 |  | DWORD | cbData |
 | ) |  |  | [static]

static LONG CShareData::MY_RegQuerVal | ( | HKEY | hKey,
 |  | LPCTSTR | lpValueName,
 |  | BYTE * | lpData,
 |  | DWORD | cbData |
 | ) |  |  | [static]

void CShareData::TraceOut | ( | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |  |

アウトプットウインドウに出力

アウトプットウインドウが無ければオープンする

引数:
lpFmt [in] 書式指定文字列

CShareData.cpp の 1672 行で定義されています。

参照先 ActivateFrameWindow(), auto_vsprintf(), CODE_SJIS, FALSE, DLLSHAREDATA::GetWorkBuffer(), IsEditWnd(), DLLSHAREDATA::m_hwndDebug, m_hwndTraceOutSource, m_pShareData, MYWM_ADDSTRING, NULL, CControlTray::OpenNewEditor(), と to_wchar().

参照元 CViewCommander::Command_TRACEOUT().

void CShareData::SetTraceOutSource ( HWND hwnd ) [inline]

CShareData.h の 502 行で定義されています。

参照元 CEditWnd::Create().

BOOL CShareData::LoadShareData ( void )

CShareData.cpp の 1061 行で定義されています。

参照先 ShareData_IO_2().

参照元 CControlProcess::Initialize().

void CShareData::SaveShareData ( void )

CShareData.cpp の 1070 行で定義されています。

参照先 ShareData_IO_2().

参照元 CControlProcess::Initialize(), と CControlTray::OnDestroy().

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 の 65 行で定義されています。

参照先 _countof, _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _MAX_PATH, auto_snprintf(), GetSpecialFolderPath(), と NULL.

参照元 GetIniFileName(), と CProcessFactory::TestWriteQuit().

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 の 130 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_PATH, auto_snprintf(), GetIniFileNameDirect(), CCommandLine::Instance(), IniFolder::m_bInit, IniFolder::m_bReadPrivate, IniFolder::m_bWritePrivate, DLLSHAREDATA::m_IniFolder, m_pShareData, IniFolder::m_szIniFile, IniFolder::m_szPrivateIniFile, MakeSureDirectoryPathExistsT, と NULL.

参照元 GetInidir(), CControlProcess::Initialize(), と ShareData_IO_2().

BOOL CShareData::IsPrivateSettings ( void ) [inline]

CShareData.h の 507 行で定義されています。

参照元 GetInidirOrExedir().

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 の 169 行で定義されています。

参照先 _MAX_PATH, FALSE, GetIniFileName(), LTEXT, MY_RUNNINGTIMER, CProfile::ReadProfile(), CProfile::SetReadingMode(), CProfile::SetWritingMode(), 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(), TRUE, と CProfile::WriteProfile().

参照元 LoadShareData(), と SaveShareData().

void CShareData::IO_ColorSet | ( | CDataProfile * | pcProfile,
 |  | const WCHAR * | pszSecName,
 |  | ColorInfo * | pColorInfoArr |
 | ) |  |  | [static]

色設定 I/O

指定された色設定を指定されたセクションに書き込む。または 指定されたセクションからいろ設定を読み込む。

引数:
[in,out] | pcProfile | 書き出し、読み込み先Profile object (入出力方向はbReadに依存)
[in] | pszSecName | セクション名
[in,out] | pColorInfoArr | 書き出し、読み込み対象の色設定へのポインタ (入出力方向はbReadに依存)

CShareData_new.cpp の 1459 行で定義されています。

参照先 auto_sprintf(), COLOR_ATTRIB_FORCE_DISP, COLOR_ATTRIB_NO_BOLD, COLOR_ATTRIB_NO_UNDERLINE, COLORIDX_CARET, COLORIDX_LAST, COLORIDX_TEXT, FALSE, ColorAttributeData_t::fAttribute, g_ColorAttributeArr, CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, ColorInfo::m_bDisp, ColorInfo::m_bFatFont, ColorInfo::m_bUnderLine, ColorInfo::m_colTEXT, MakeStringBufferW, と TRUE.

参照元 CPropTypes::p3_Export_Colors(), CPropTypes::p3_Import_Colors(), と ShareData_IO_Types().

int CShareData::GetMacroFilename | ( | int | idx,
 |  | TCHAR * | 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 の 1727 行で定義されています。

参照先 _countof2, _IS_REL_PATH(), _MAX_PATH, _tcscpy(), AddLastChar(), GetInidirOrExedir(), MacroRec::IsEnabled(), DLLSHAREDATA::m_MacroTable, m_pShareData, MacroRec::m_szFile, DLLSHAREDATA::m_szMACROFOLDER, と NULL.

参照元 CViewCommander::Command_RECKEYMACRO(), と CSMacroMgr::Exec().

bool CShareData::BeReloadWhenExecuteMacro ( int idx )

idxで指定したマクロのm_bReloadWhenExecuteを取得する。 idxは正確なものでなければならない。 YAZAKI

CShareData.cpp の 1793 行で定義されています。

参照先 MacroRec::IsEnabled(), MacroRec::m_bReloadWhenExecute, DLLSHAREDATA::m_MacroTable, m_pShareData, と TRUE.

void CShareData::AddToSearchKeyArr ( const wchar_t * pszSearchKey )

m_aSearchKeysにpszSearchKeyを追加する。 YAZAKI

CShareData.cpp の 1804 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

参照元 CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CMacro::HandleCommand(), CNormalProcess::Initialize(), CEditView::ISearchExit(), CEditWnd::OnCommand(), と CMainToolBar::ProcSearchBox().

void CShareData::AddToReplaceKeyArr ( const wchar_t * pszReplaceKey )

m_aReplaceKeysにpszReplaceKeyを追加する YAZAKI

CShareData.cpp の 1814 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

参照元 CDlgReplace::GetData(), と CMacro::HandleCommand().

void CShareData::AddToGrepFileArr ( const TCHAR * pszGrepFile )

m_aGrepFilesにpszGrepFileを追加する YAZAKI

CShareData.cpp の 1826 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

参照元 CDlgGrep::GetData(), と CNormalProcess::Initialize().

void CShareData::AddToGrepFolderArr ( const TCHAR * pszGrepFolder )

m_aGrepFolders.size()にpszGrepFolderを追加する YAZAKI

CShareData.cpp の 1836 行で定義されています。

参照先 CRecentImp< DATA_TYPE, RECEIVE_TYPE >::AppendItem(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate().

参照元 CDlgGrep::GetData(), と CNormalProcess::Initialize().

bool CShareData::ExtWinHelpIsSet ( int nTypeNo = -1 )

外部Winヘルプが設定されているか確認。

CShareData.cpp の 1845 行で定義されています。

参照先 DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sHelper, Types::m_szExtHelp, CommonSetting_Helper::m_szExtHelp, DLLSHAREDATA::m_Types, と MAX_TYPES.

const TCHAR * CShareData::GetExtWinHelp ( int nTypeNo = -1 )

設定されている外部Winヘルプのファイル名を返す。 タイプ別設定にファイル名が設定されていれば、そのファイル名を返します。 そうでなければ、共通設定のファイル名を返します。

CShareData.cpp の 1863 行で定義されています。

参照先 DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sHelper, CommonSetting_Helper::m_szExtHelp, Types::m_szExtHelp, と DLLSHAREDATA::m_Types.

参照元 CViewCommander::Command_EXTHELP1().

bool CShareData::ExtHTMLHelpIsSet ( int nTypeNo = -1 )

外部HTMLヘルプが設定されているか確認。

CShareData.cpp の 1874 行で定義されています。

参照先 DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sHelper, Types::m_szExtHtmlHelp, CommonSetting_Helper::m_szExtHtmlHelp, DLLSHAREDATA::m_Types, と MAX_TYPES.

const TCHAR * CShareData::GetExtHTMLHelp ( int nTypeNo = -1 )

設定されている外部Winヘルプのファイル名を返す。 タイプ別設定にファイル名が設定されていれば、そのファイル名を返します。 そうでなければ、共通設定のファイル名を返します。

CShareData.cpp の 1892 行で定義されています。

参照先 DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sHelper, CommonSetting_Helper::m_szExtHtmlHelp, Types::m_szExtHtmlHelp, と DLLSHAREDATA::m_Types.

参照元 CViewCommander::Command_EXTHTMLHELP().

bool CShareData::HTMLHelpIsSingle ( int nTypeNo = -1 )

ビューアを複数起動しないがONかを返す。

CShareData.cpp の 1903 行で定義されています。

参照先 FALSE, CommonSetting_Helper::m_bHtmlHelpIsSingle, Types::m_bHtmlHelpIsSingle, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sHelper, と DLLSHAREDATA::m_Types.

const TCHAR * CShareData::MyGetDateFormat | ( | const SYSTEMTIME & | systime,
 |  | TCHAR * | pszDest,
 |  | int | nDestLen
 | ) |  |

日付をフォーマット systime：時刻データ

pszDest：フォーマット済みテキスト格納用バッファ nDestLen：pszDestの長さ

pszDateFormat： カスタムのときのフォーマット

CShareData.cpp の 1921 行で定義されています。

参照先 DLLSHAREDATA::m_Common, CommonSetting_Format::m_nDateFormatType, m_pShareData, CommonSetting::m_sFormat, と CommonSetting_Format::m_szDateFormat.

参照元 CPropCommon::ChangeDateExample(), と CViewCommander::Command_INS_DATE().

const TCHAR * CShareData::MyGetTimeFormat | ( | const SYSTEMTIME & | systime,
 |  | TCHAR * | pszDest,
 |  | int | nDestLen
 | ) |  |

CShareData.cpp の 1956 行で定義されています。

参照先 DLLSHAREDATA::m_Common, CommonSetting_Format::m_nTimeFormatType, m_pShareData, CommonSetting::m_sFormat, と CommonSetting_Format::m_szTimeFormat.

参照元 CViewCommander::Command_INS_TIME().

const TCHAR * CShareData::MyGetDateFormat | ( | const SYSTEMTIME & | systime,
 |  | TCHAR * | pszDest,
 |  | int | nDestLen,
 |  | int | nDateFormatType,
 |  | const TCHAR * | szDateFormat
 | ) |  |

CShareData.cpp の 1932 行で定義されています。

参照先 NULL.

const TCHAR * CShareData::MyGetTimeFormat | ( | const SYSTEMTIME & | systime,
 |  | TCHAR * | pszDest,
 |  | int | nDestLen,
 |  | int | nTimeFormatType,
 |  | const TCHAR * | szTimeFormat
 | ) |  |

CShareData.cpp の 1968 行で定義されています。

参照先 NULL.

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 の 1998 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), GetFilePathFormat(), m_nTransformFileNameCount, m_nTransformFileNameOrgId, m_pShareData, m_szTransformFileNameFromExp, DLLSHAREDATA::m_szTransformFileNameTo, と TransformFileName_MakeCache().

参照元 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CTabWnd::GetTabName(), と CEditWnd::WinListMenu().

int CShareData::TransformFileName_MakeCache ( void )

展開済みメタ文字列のキャッシュを作成・更新する

戻り値:
有効な展開済み置換前文字列の数
日付:
2003.01.27 Moca 新規作成

2003.06.23 Moca 関数名変更

CShareData.cpp の 2031 行で定義されています。

参照先 _MAX_PATH, ExpandMetaToFolder(), DLLSHAREDATA::m_nTransformFileNameArrNum, m_nTransformFileNameCount, m_nTransformFileNameOrgId, m_pShareData, DLLSHAREDATA::m_szTransformFileNameFrom, と m_szTransformFileNameFromExp.

参照元 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), GetTransformFileNameFast(), CEditDoc::OnChangeSetting(), と CEditWnd::WinListMenu().

LPCTSTR CShareData::GetFilePathFormat | ( | LPCTSTR | pszSrc,
 |  | LPTSTR | pszDest,
 |  | int | nDestLen,
 |  | LPCTSTR | pszFrom,
 |  | LPCTSTR | pszTo |
 | ) |  |  | [static]

ファイル・フォルダ名を置換して、簡易表示名を取得する

日付:
2002.11.27 Moca 新規作成
覚え書き:
大小文字を区別しない。nDestLenに達したときは後ろを切り捨てられる

CShareData.cpp の 2053 行で定義されています。

参照先 _IS_SJIS_1, _IS_SJIS_2(), と strnicmp.

参照元 GetTransformFileNameFast().

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 の 2110 行で定義されています。

参照先 _countof, _IS_SJIS_1, _IS_SJIS_2(), _MAX_PATH, _tcscpy(), _tmemcpy, FALSE, GetExedir(), GetInidir(), GetLongFileName(), my_tcsicmp, my_tcsnicmp, NULL, と ReadRegistry().

参照元 TransformFileName_MakeCache().

void CShareData::PushTagJump ( const TagJump * pTagJump )

タグジャンプ情報の保存

タグジャンプするときに、タグジャンプ先の情報を保存する。

引数:
[in] pTagJump 保存するタグジャンプ情報
戻り値:
true | 保存成功
false | 保存失敗
日付:
2004/06/21 新規作成

2004/06/22 Moca 一杯になったら一番古い情報を削除しそこに新しい情報を入れる

CShareData_new.cpp の 1520 行で定義されています。

参照先 m_pShareData, DLLSHAREDATA::m_TagJump, DLLSHAREDATA::m_TagJumpNum, DLLSHAREDATA::m_TagJumpTop, と MAX_TAGJUMPNUM.

参照元 CEditView::OPEN_ExtFromtoExt(), と CEditView::TagJumpSub().

bool CShareData::PopTagJump ( TagJump * pTagJump )

タグジャンプ情報の参照

タグジャンプバックするときに、タグジャンプ元の情報を参照する。

引数:
[out] pTagJump 参照するタグジャンプ情報
戻り値:
true | 参照成功
false | 参照失敗
日付:
2004/06/21 新規作成

2004/06/22 Moca SetTagJump変更による修正

CShareData_new.cpp の 1546 行で定義されています。

参照先 m_pShareData, DLLSHAREDATA::m_TagJump, DLLSHAREDATA::m_TagJumpNum, DLLSHAREDATA::m_TagJumpTop, と MAX_TAGJUMPNUM.

void CShareData::InitKeyword ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/強調キーワード

強調キーワード関連の初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離． キーワード定義を関数の外に出し，登録をマクロ化して簡潔に．

CShareData.cpp の 4565 行で定義されています。

参照先 FALSE, DLLSHAREDATA::m_CKeyWordSetMgr, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, PopulateKeyword, ppszKeyWordsAWK, ppszKeyWordsBAT, ppszKeyWordsCOBOL, ppszKeyWordsCORBA_IDL, ppszKeyWordsCPP, ppszKeyWordsHTML, ppszKeyWordsJAVA, ppszKeyWordsPASCAL, ppszKeyWordsPERL, ppszKeyWordsPERL2, ppszKeyWordsPLSQL, ppszKeyWordsRTF, ppszKeyWordsTEX, ppszKeyWordsTEX2, ppszKeyWordsVB, ppszKeyWordsVB2, と TRUE.

参照元 Init().

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 の 4602 行で定義されています。

参照先 _countof, F_0, 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, DLLSHAREDATA::m_nKeyNameArrNum, と SetKeyNameArrVal().

参照元 Init().

void CShareData::InitToolButtons ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/ツールバー

ツールバー関連の初期化処理

作者:
genta
日付:
2005.01.30 genta CShareData::Init()から分離． 一つずつ設定しないで一気にデータ転送するように．

CShareData.cpp の 4880 行で定義されています。

参照先 _countof, IsVisualStyle(), CommonSetting_ToolBar::m_bToolBarIsFlat, DLLSHAREDATA::m_Common, CommonSetting_ToolBar::m_nToolBarButtonIdxArr, CommonSetting_ToolBar::m_nToolBarButtonNum, CommonSetting::m_sToolBar, MAX_TOOLBARBUTTONS, と memcpy_raw().

参照元 Init().

void CShareData::InitTypeConfig ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/タイプ別設定

タイプ別設定の初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離．

入力補完 開いているファイル内から候補を探す

入力補完 開いているファイル内から候補を探す

CShareData.cpp の 4939 行で定義されています。

参照先 _countof, _EDITL, _tcscpy(), COLORIDX_BRACKET_PAIR, COLORIDX_DIGIT, COLORIDX_LAST, COLORIDX_REGEX1, COLORIDX_SSTRING, COLORIDX_URL, COLORIDX_VERTLINE, COLORIDX_WSTRING, CBlockComment::CopyTo(), CLineComment::CopyTo(), FALSE, Types::m_bAutoIndent, Types::m_bAutoIndent_ZENSPACE, ColorInfoIni::m_bDisp, ColorInfo::m_bDisp, ColorInfoIni::m_bFatFont, ColorInfo::m_bFatFont, 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, ColorInfoIni::m_bUnderLine, ColorInfo::m_bUnderLine, 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, ColorInfoIni::m_colBACK, ColorInfo::m_colBACK, Types::m_ColorInfoArr, ColorInfoIni::m_colTEXT, ColorInfo::m_colTEXT, Types::m_KeyHelpArr, Types::m_nColmSpace, ColorInfo::m_nColorIdx, RegexKeywordInfo::m_nColorIndex, 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_nMaxLineKetas, Types::m_nSmartIndent, Types::m_nStringType, Types::m_nTabSpace, KeyHelpInfo::m_nUse, Types::m_nVertLineIdx, m_pShareData, ColorInfoIni::m_pszName, Types::m_RegexKeywordArr, KeyHelpInfo::m_szAbout, Types::m_szExtHelp, Types::m_szExtHtmlHelp, Types::m_szHokanFile, Types::m_szIndentChars, RegexKeywordInfo::m_szKeyword, Types::m_szKinsokuHead, Types::m_szKinsokuTail, ColorInfo::m_szName, Types::m_szOutlineRuleFilename, KeyHelpInfo::m_szPath, Types::m_szTabViewString, Types::m_szTypeExts, Types::m_szTypeName, DLLSHAREDATA::m_Types, MAX_KEYHELP_FILE, MAX_KEYWORDSET_PER_TYPE, MAX_TYPES, MAX_VERTLINES, MAXLINEKETAS, OUTLINE_ASM, OUTLINE_COBOL, OUTLINE_CPP, OUTLINE_JAVA, OUTLINE_PERL, OUTLINE_PLSQL, OUTLINE_TEX, OUTLINE_TEXT, OUTLINE_VB, SMARTINDENT_CPP, SMARTINDENT_NONE, と TRUE.

参照元 Init().

void CShareData::InitPopupMenu ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/ポップアップメニュー

ポップアップメニューの初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離．

CShareData.cpp の 5366 行で定義されています。

参照先 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, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pShareData, と CommonSetting::m_sCustomMenu.

参照元 Init().

void CShareData::ShareData_IO_Mru ( CDataProfile & cProfile ) [protected]

共有データのMruセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 230 行で定義されています。

参照先 _tcscpy(), auto_sprintf(), CODE_DEFAULT, CDataProfile::IOProfileData(), CDataProfile::IOProfileData_WrapInt(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_bMRUArrFavorite, DLLSHAREDATA::m_bOPENFOLDERArrFavorite, DLLSHAREDATA::m_fiMRUArr, FileInfo::m_nCharCode, DLLSHAREDATA::m_nMRUArrNum, DLLSHAREDATA::m_nOPENFOLDERArrNum, FileInfo::m_nViewLeftCol, FileInfo::m_nViewTopLine, m_pShareData, FileInfo::m_ptCursor, FileInfo::m_szMarkLines, DLLSHAREDATA::m_szOPENFOLDERArr, FileInfo::m_szPath, MakeStringBufferT, MakeStringBufferW, MAX_MRU, MAX_OPENFOLDER, と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set().

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Keys ( CDataProfile & cProfile ) [protected]

共有データのKeysセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 301 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_aReplaceKeys, DLLSHAREDATA::m_aSearchKeys, m_pShareData, MAX_REPLACEKEY, と MAX_SEARCHKEY.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Grep ( CDataProfile & cProfile ) [protected]

共有データのGrepセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 341 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_aGrepFiles, DLLSHAREDATA::m_aGrepFolders, m_pShareData, MAX_GREPFILE, と MAX_GREPFOLDER.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Folders ( CDataProfile & cProfile ) [protected]

共有データのFoldersセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 381 行で定義されています。

参照先 CDataProfile::IOProfileData(), LTEXT, m_pShareData, DLLSHAREDATA::m_szIMPORTFOLDER, と DLLSHAREDATA::m_szMACROFOLDER.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Cmd ( CDataProfile & cProfile ) [protected]

共有データのCmdセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 396 行で定義されています。

参照先 StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::_GetSizeRef(), auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_aCommands, m_pShareData, MAX_CMDARR, と StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::size().

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Nickname ( CDataProfile & cProfile ) [protected]

共有データのNicknameセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 422 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_nTransformFileNameArrNum, m_pShareData, DLLSHAREDATA::m_szTransformFileNameFrom, DLLSHAREDATA::m_szTransformFileNameTo, MakeStringBufferT, と MAX_TRANSFORM_FILENAME.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Common ( CDataProfile & cProfile ) [protected]

共有データのCommonセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 451 行で定義されています。

参照先 auto_sprintf(), SSearchOption::bLoHiCase, SSearchOption::bRegularExp, SSearchOption::bWordOnly, CNativeA::GetCharPrev(), CDataProfile::IOProfileData(), CDataProfile::IOProfileData_WrapInt(), CProfile::IsReadingMode(), LTEXT, CommonSetting_Edit::m_bAddCRLFWhenCopy, CommonSetting_File::m_bAlertIfFileNotExist, CommonSetting_Search::m_bAutoCloseDlgFind, CommonSetting_OutLine::m_bAutoCloseDlgFuncList, CommonSetting_Search::m_bAutoCloseDlgReplace, CommonSetting_Edit::m_bAutoColmnPaste, CommonSetting_File::m_bAutoMIMEdecode, CommonSetting_Backup::m_bBackUp, CommonSetting_Backup::m_bBackUpDialog, CommonSetting_Backup::m_bBackUpDustBox, CommonSetting_Backup::m_bBackUpFolder, CommonSetting_Backup::m_bBackUpPathAdvanced, CommonSetting_Search::m_bCaretTextForSearch, CommonSetting_File::m_bCheckFileTimeStamp, CommonSetting_TabBar::m_bChgWndByWheel, CommonSetting_General::m_bCloseAllConfirm, CommonSetting_Compare::m_bCompareAndTileHorz, CommonSetting_Search::m_bConsecutiveAll, CommonSetting_Edit::m_bCopyAndDisablSelection, CommonSetting_General::m_bDispExitingDialog, CommonSetting_Window::m_bDispFUNCKEYWND, CommonSetting_Window::m_bDispSTATUSBAR, CommonSetting_TabBar::m_bDispTabIcon, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_Window::m_bDispTOOLBAR, CommonSetting_File::m_bDropFileAndClose, CommonSetting_Edit::m_bEnableLineModePaste, CommonSetting_File::m_bEnableUnmodifiedOverwrite, CommonSetting_General::m_bExitConfirm, CommonSetting_OutLine::m_bFunclistSetFocusOnJump, CommonSetting_Search::m_bGrepDefaultFolder, CommonSetting_Search::m_bGrepExitConfirm, CommonSetting_Search::m_bGrepOutputLine, CommonSetting_Search::m_bGrepRealTimeView, CommonSetting_Search::m_bGrepSubFolder, CommonSetting_Search::m_bGTJW_LDBLCLK, CommonSetting_Search::m_bGTJW_RETURN, CommonSetting_Helper::m_bHokanKey_RETURN, CommonSetting_Helper::m_bHokanKey_RIGHT, CommonSetting_Helper::m_bHokanKey_SPACE, CommonSetting_Helper::m_bHokanKey_TAB, CommonSetting_Helper::m_bHtmlHelpIsSingle, CommonSetting_General::m_bIsFreeCursorMode, CommonSetting_OutLine::m_bMarkUpBlankLineEnable, CommonSetting_Window::m_bMenuIcon, CommonSetting_General::m_bNoCaretMoveByActivation, CommonSetting_File::m_bNoFilterSaveFile, CommonSetting_File::m_bNoFilterSaveNew, CommonSetting_Search::m_bNOTIFYNOTFOUND, CommonSetting_Edit::m_bNotOverWriteCRLF, CommonSetting_File::m_bQueryIfCodeChange, CommonSetting_OutLine::m_bRememberOutlineWindowPos, CommonSetting_File::m_bRestoreBookmarks, CommonSetting_File::m_bRestoreCurPosition, CommonSetting_TabBar::m_bSameTabWidth, CommonSetting_Window::m_bScrollBarHorz, CommonSetting_Search::m_bSearchAll, CommonSetting_Edit::m_bSelectClickedURL, CommonSetting_Search::m_bSelectedArea, CommonSetting_TabBar::m_bSortTabList, CommonSetting_Window::m_bSplitterWndHScroll, CommonSetting_Window::m_bSplitterWndVScroll, CommonSetting_General::m_bStayTaskTray, CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CommonSetting_General::m_bStopsBothEndsWhenSearchWord, CommonSetting_TabBar::m_bTab_CloseOneWin, CommonSetting_TabBar::m_bTab_ListFull, CommonSetting_TabBar::m_bTab_RetainEmptyWin, CommonSetting_Helper::m_bUseHokan, CommonSetting_Edit::m_bUseOLE_DragDrop, CommonSetting_Edit::m_bUseOLE_DropSource, CommonSetting_General::m_bUseTaskTray, DLLSHAREDATA::m_Common, CommonSetting_OutLine::m_heightOutlineWindow, CommonSetting_Helper::m_lf_kh, CommonSetting_Backup::m_nBackUpType, CommonSetting_Backup::m_nBackUpType_Opt1, CommonSetting_Backup::m_nBackUpType_Opt2, CommonSetting_Backup::m_nBackUpType_Opt3, CommonSetting_Backup::m_nBackUpType_Opt4, CommonSetting_General::m_nCaretType, CommonSetting_Format::m_nDateFormatType, CommonSetting_File::m_nDropFileNumMax, CommonSetting_File::m_nFileShareMode, CommonSetting_Window::m_nFUNCKEYWND_GroupNum, CommonSetting_Window::m_nFUNCKEYWND_Place, CommonSetting_Search::m_nGrepCharSet, CommonSetting_Search::m_nGrepOutputStyle, CommonSetting_Window::m_nLineNumRightSpace, CommonSetting_General::m_nMRUArrNum_MAX, CommonSetting_General::m_nOPENFOLDERArrNum_MAX, CommonSetting_General::m_nRepeatedScroll_Smooth, CommonSetting_General::m_nRepeatedScrollLineNum, CommonSetting_Window::m_nRulerBottomSpace, CommonSetting_Window::m_nRulerHeight, CommonSetting_Window::m_nRulerType, CommonSetting_Window::m_nSaveWindowPos, CommonSetting_Window::m_nSaveWindowSize, CommonSetting_Format::m_nTimeFormatType, CommonSetting_Window::m_nVertLineOffset, CommonSetting_Window::m_nWinPosX, CommonSetting_Window::m_nWinPosY, CommonSetting_Window::m_nWinSizeCX, CommonSetting_Window::m_nWinSizeCY, CommonSetting_Window::m_nWinSizeType, m_pShareData, CommonSetting_Others::m_rcOpenDialog, CommonSetting::m_sBackup, CommonSetting::m_sCompare, CommonSetting::m_sEdit, CommonSetting::m_sFile, CommonSetting::m_sFormat, CommonSetting::m_sGeneral, CommonSetting::m_sHelper, CommonSetting::m_sOthers, CommonSetting::m_sOutline, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CommonSetting::m_sTabBar, CommonSetting::m_sWindow, CommonSetting_Backup::m_szBackUpFolder, CommonSetting_Backup::m_szBackUpPathAdvanced, CommonSetting_Format::m_szDateFormat, CommonSetting_Helper::m_szExtHelp, CommonSetting_Helper::m_szExtHtmlHelp, CommonSetting_Format::m_szInyouKigou, CommonSetting_Format::m_szMidashiKigou, CommonSetting_Helper::m_szMigemoDict, CommonSetting_Helper::m_szMigemoDll, CommonSetting_Search::m_szRegexpLib, CommonSetting_TabBar::m_szTabWndCaption, CommonSetting_Format::m_szTimeFormat, CommonSetting_Window::m_szWindowCaptionActive, CommonSetting_Window::m_szWindowCaptionInactive, CommonSetting_OutLine::m_widthOutlineWindow, CommonSetting_General::m_wTrayMenuHotKeyCode, CommonSetting_General::m_wTrayMenuHotKeyMods, CommonSetting_OutLine::m_xOutlineWindowPos, CommonSetting_OutLine::m_yOutlineWindowPos, MakeStringBufferT, と MakeStringBufferW.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Toolbar ( CDataProfile & cProfile ) [protected]

共有データのToolbarセクションの入出力

引数:
[in] | bRead | true: 読み込み / false: 書き込み
[in,out] | cProfile | INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 725 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, CommonSetting_ToolBar::m_bToolBarIsFlat, DLLSHAREDATA::m_Common, CommonSetting_ToolBar::m_nToolBarButtonIdxArr, CommonSetting_ToolBar::m_nToolBarButtonNum, m_pShareData, CommonSetting::m_sToolBar, と MAX_TOOLBARBUTTONS.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_CustMenu ( CDataProfile & cProfile ) [protected]

共有データのCustMenuセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 753 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), LTEXT, DLLSHAREDATA::m_Common, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemKeyArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, m_pShareData, CommonSetting::m_sCustomMenu, CommonSetting_CustomMenu::m_szCustMenuNameArr, MakeStringBufferW, と MAX_CUSTOM_MENU.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Font ( CDataProfile & cProfile ) [protected]

共有データのFontセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 781 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, CommonSetting_View::m_bFontIs_FIXED_PITCH, DLLSHAREDATA::m_Common, CommonSetting_View::m_lf, m_pShareData, CommonSetting::m_sView, MakeStringBufferT, と MakeStringBufferW.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_KeyBind ( CDataProfile & cProfile ) [protected]

共有データのKeyBindセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 835 行で定義されています。

参照先 _countof, _tcstowcs(), auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, KEYDATA::m_nFuncCodeArr, DLLSHAREDATA::m_nKeyNameArrNum, DLLSHAREDATA::m_pKeyNameArr, m_pShareData, KEYDATA::m_szKeyName, と MakeStringBufferW.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Print ( CDataProfile & cProfile ) [protected]

共有データのPrintセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 882 行で定義されています。

参照先 _EDITL, _tcscpy(), auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, 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, DLLSHAREDATA::m_PrintSettingArr, m_pShareData, PRINTSETTING::m_szFooterForm, PRINTSETTING::m_szHeaderForm, MYDEVMODE::m_szPrinterDeviceName, MYDEVMODE::m_szPrinterDriverName, MYDEVMODE::m_szPrinterOutputName, PRINTSETTING::m_szPrintFontFaceHan, PRINTSETTING::m_szPrintFontFaceZen, PRINTSETTING::m_szPrintSettingName, MakeStringBufferT, MakeStringBufferW, と MAX_PRINTSETTINGARR.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Types ( CDataProfile & cProfile ) [protected]

共有データのTypesセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 984 行で定義されています。

参照先 _countof, _countof2, _wcstotcs(), auto_sprintf(), auto_strcpy(), BLOCKCOMMENT_BUFFERSIZE, COLORIDX_LAST, COLORIDX_REGEX1, COMMENT_DELIMITER_BUFFERSIZE, CLineComment::CopyTo(), CBlockComment::CopyTo(), CBlockComment::getBlockCommentFrom(), CBlockComment::getBlockCommentTo(), GetColorIndexByName(), GetColorNameByIndex(), CLineComment::getLineComment(), CLineComment::getLineCommentPos(), IO_ColorSet(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LINESPACE_MAX, LTEXT, Types::m_bAutoIndent, Types::m_bAutoIndent_ZENSPACE, Types::m_bHokanLoHiCase, 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, RegexKeywordInfo::m_nColorIndex, 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_nMaxLineKetas, Types::m_nSmartIndent, Types::m_nStringType, Types::m_nTabSpace, KeyHelpInfo::m_nUse, Types::m_nVertLineIdx, m_pShareData, Types::m_RegexKeywordArr, KeyHelpInfo::m_szAbout, Types::m_szExtHelp, Types::m_szExtHtmlHelp, Types::m_szHokanFile, Types::m_szIndentChars, RegexKeywordInfo::m_szKeyword, Types::m_szKinsokuHead, Types::m_szKinsokuTail, Types::m_szOutlineRuleFilename, KeyHelpInfo::m_szPath, Types::m_szTabViewString, Types::m_szTypeExts, Types::m_szTypeName, DLLSHAREDATA::m_Types, MakeStringBufferT, MakeStringBufferW, MakeStringBufferW0, MAX_KEYHELP_FILE, MAX_TYPES, MAX_VERTLINES, MINLINEKETAS, NULL, と to_tchar.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_KeyWords ( CDataProfile & cProfile ) [protected]

共有データのKeyWordsセクションの入出力

引数:
[in] | bRead | true: 読み込み / false: 書き込み
[in,out] | cProfile | INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1300 行で定義されています。

参照先 CKeyWordSetMgr::AddKeyWordSet(), auto_memcpy(), auto_sprintf(), CKeyWordSetMgr::GetKeyWord(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_CKeyWordSetMgr, CKeyWordSetMgr::m_nCurrentKeyWordSetIdx, CKeyWordSetMgr::m_nKEYWORDCASEArr, CKeyWordSetMgr::m_nKeyWordNumArr, CKeyWordSetMgr::m_nKeyWordSetNum, m_pShareData, CKeyWordSetMgr::m_szSetNameArr, MakeStringBufferW, MAX_KEYWORDLEN, MAX_KEYWORDNUM, CKeyWordSetMgr::ResetAllKeyWordSet(), と CKeyWordSetMgr::SetKeyWordArr().

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Macro ( CDataProfile & cProfile ) [protected]

共有データのMacroセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1377 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, MacroRec::m_bReloadWhenExecute, DLLSHAREDATA::m_MacroTable, m_pShareData, MacroRec::m_szFile, MacroRec::m_szName, MakeStringBufferT, と MAX_CUSTMACRO.

参照元 ShareData_IO_2().

void CShareData::ShareData_IO_Other ( CDataProfile & cProfile ) [protected]

共有データのOtherセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1402 行で定義されています。

参照先 auto_sprintf(), CDataProfile::IOProfileData(), CProfile::IsReadingMode(), LTEXT, DLLSHAREDATA::m_aTagJumpKeywords, DLLSHAREDATA::m_bLineNumIsCRLF, DLLSHAREDATA::m_bTagJumpAnyWhere, DLLSHAREDATA::m_bTagJumpICase, DLLSHAREDATA::m_dwProductVersionLS, DLLSHAREDATA::m_dwProductVersionMS, DLLSHAREDATA::m_nDiffFlgOpt, DLLSHAREDATA::m_nExecFlgOpt, DLLSHAREDATA::m_nTagsOpt, m_pShareData, DLLSHAREDATA::m_szTagsCmdLine, と MakeStringBufferT.

参照元 ShareData_IO_2().

int CShareData::GetOpenedWindowArrCore | ( | EditNode ** | ppEditNode,
 |  | BOOL | bSort,
 |  | BOOL | bGSort = FALSE |
 | ) |  |  | [protected]

CShareData.cpp の 1460 行で定義されています。

参照先 cmpGetOpenedWindowArr(), IsEditWnd(), EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, EditNode::m_nGroup, EditNode::m_nIndex, DLLSHAREDATA::m_pEditArr, m_pShareData, EditNodeEx::nGroupMru, NULL, EditNodeEx::p, s_bGSort, と s_bSort.

参照元 GetOpenedWindowArr(), と ReorderTab().

変数

CShareData * CShareData::_instance = NULL [static, protected]

CShareData.h の 444 行で定義されています。

参照元 getInstance().

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 の 445 行で定義されています。

参照元 AddEditWndList(), DeleteEditWndList(), GetOpenedWindowArr(), ReorderTab(), と SeparateGroup().

HANDLE CShareData::m_hFileMap [protected]

CShareData.h の 551 行で定義されています。

参照元 CShareData(), と Init().

DLLSHAREDATA* CShareData::m_pShareData [protected]

CShareData.h の 552 行で定義されています。

参照元 AddEditWndList(), BeReloadWhenExecuteMacro(), CShareData(), ExtHTMLHelpIsSet(), ExtWinHelpIsSet(), GetDocumentTypeExt(), GetEditNode(), GetEditNodeAt(), GetEditorWindowsNum(), GetExtHTMLHelp(), GetExtWinHelp(), GetIniFileName(), GetMacroFilename(), GetOpenedWindowArrCore(), GetTransformFileNameFast(), HTMLHelpIsSingle(), Init(), InitPopupMenu(), InitTypeConfig(), IsPathOpened(), MyGetDateFormat(), MyGetTimeFormat(), PopTagJump(), PushTagJump(), ReorderTab(), 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().

HWND CShareData::m_hwndTraceOutSource [protected]

CShareData.h の 553 行で定義されています。

参照元 Init(), と TraceOut().

int CShareData::m_nTransformFileNameCount [protected]

CShareData.h の 563 行で定義されています。

参照元 CShareData(), GetTransformFileNameFast(), と TransformFileName_MakeCache().

TCHAR CShareData::m_szTransformFileNameFromExp[MAX_TRANSFORM_FILENAME][_MAX_PATH] [protected]

CShareData.h の 564 行で定義されています。

参照元 GetTransformFileNameFast(), と TransformFileName_MakeCache().

int CShareData::m_nTransformFileNameOrgId[MAX_TRANSFORM_FILENAME] [protected]

CShareData.h の 565 行で定義されています。

参照元 GetTransformFileNameFast(), と TransformFileName_MakeCache().

このクラスの説明は次のファイルから生成されました:
  • CShareData.h
  • CShareData.cpp
  • CShareData_new.cpp
Sakura-Editorに対してSat Nov 17 20:29:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CShareData メンバ一覧

これは全メンバの一覧です。CShareData継承メンバも含んでいます。

_instance | CShareData | [protected, static]
AddEditWndList(HWND, int nGroup=0) | CShareData |
AddToGrepFileArr(const TCHAR *pszGrepFile) | CShareData |
AddToGrepFolderArr(const TCHAR *pszGrepFolder) | CShareData |
AddToReplaceKeyArr(const wchar_t *pszReplaceKey) | CShareData |
AddToSearchKeyArr(const wchar_t *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 TCHAR *pszFilePath) | CShareData |
GetDocumentTypeExt(const TCHAR *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, TCHAR *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(CDataProfile *, const WCHAR *, ColorInfo *) | CShareData | [static]
IsEditWnd(HWND) | CShareData | [static]
IsPathOpened(const TCHAR *pszPath, HWND *phwndOwner) | CShareData |
IsPathOpened(const TCHAR *pszPath, HWND *phwndOwner, ECodeType nCharCode) | 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(const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen) | CShareData |
MyGetDateFormat(const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen, int nDateFormatType, const TCHAR *szDateFormat) | CShareData |
MyGetTimeFormat(const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen) | CShareData |
MyGetTimeFormat(const SYSTEMTIME &systime, TCHAR *pszDest, int nDestLen, int nTimeFormatType, const TCHAR *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, TCHAR *, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode) | CShareData | [static]
SetTraceOutSource(HWND hwnd) | CShareData | [inline]
ShareData_IO_2(bool) | CShareData |
ShareData_IO_Cmd(CDataProfile &) | CShareData | [protected]
ShareData_IO_Common(CDataProfile &) | CShareData | [protected]
ShareData_IO_CustMenu(CDataProfile &) | CShareData | [protected]
ShareData_IO_Folders(CDataProfile &) | CShareData | [protected]
ShareData_IO_Font(CDataProfile &) | CShareData | [protected]
ShareData_IO_Grep(CDataProfile &) | CShareData | [protected]
ShareData_IO_KeyBind(CDataProfile &) | CShareData | [protected]
ShareData_IO_Keys(CDataProfile &) | CShareData | [protected]
ShareData_IO_KeyWords(CDataProfile &) | CShareData | [protected]
ShareData_IO_Macro(CDataProfile &) | CShareData | [protected]
ShareData_IO_Mru(CDataProfile &) | CShareData | [protected]
ShareData_IO_Nickname(CDataProfile &) | CShareData | [protected]
ShareData_IO_Other(CDataProfile &) | CShareData | [protected]
ShareData_IO_Print(CDataProfile &) | CShareData | [protected]
ShareData_IO_Toolbar(CDataProfile &) | CShareData | [protected]
ShareData_IO_Types(CDataProfile &) | CShareData | [protected]
TraceOut(LPCTSTR lpFmt,...) | CShareData |
TransformFileName_MakeCache(void) | CShareData |
~CShareData() | CShareData |

Sakura-Editorに対してSat Nov 17 20:29:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CShiftJis

  • 構成
  • クラス階層
  • 構成メンバ

クラス CShiftJis

#include <CShiftJis.h>

CShiftJisに対する継承グラフ

[凡例]
CShiftJisのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | SJISToUnicode (CMemory *pMem)
static EConvertResult | UnicodeToSJIS (CMemory *pMem)
static int | GetSizeOfChar (const char *pData, int nDataLen, int nIdx)
指定した位置の文字が何バイト文字かを返す

Static Protected メソッド

static int | MemSJISToUnicode (char **, const char *, int)

説明

CShiftJis.h の 5 行で定義されています。

関数

EConvertResult CShiftJis::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CShiftJis.h の 10 行で定義されています。

参照先 CNative::_GetMemory(), と SJISToUnicode().

EConvertResult CShiftJis::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CShiftJis.h の 11 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToSJIS().

EConvertResult CShiftJis::SJISToUnicode ( CMemory * pMem ) [static]

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

参照先 CMemory::GetRawPtr(), NULL, RESULT_COMPLETE, と CMemory::SetRawData().

参照元 CodeToUnicode(), CEuc::EUCToUnicode(), CClipboard::GetText(), CJis::JISToUnicode(), CTextInputStream::ReadLineW(), と CNativeW::SetStringOld().

EConvertResult CShiftJis::UnicodeToSJIS ( CMemory * pMem ) [static]

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

参照先 BOOL, FALSE, CMemory::GetRawPtr(), NULL, RESULT_COMPLETE, RESULT_LOSESOME, と CMemory::SetRawData().

参照元 CEditView::SetReconvertStruct(), UnicodeToCode(), CEuc::UnicodeToEUC(), と CJis::UnicodeToJIS().

int CShiftJis::GetSizeOfChar | ( | const char * | pData,
 |  | int | nDataLen,
 |  | int | nIdx |
 | ) |  |  | [static]

指定した位置の文字が何バイト文字かを返す

引数:
[in] | pData | 位置を求めたい文字列の先頭
[in] | nDataLen | 文字列長
[in] | nIdx | 位置(0オリジン)
戻り値:
1 | 1バイト文字
2 | 2バイト文字
0 | エラー
日付:
2005-09-02 D.S.Koba 作成
覚え書き:
nIdxは予め文字の先頭位置とわかっていなければならない． 2バイト文字の2バイト目をnIdxに与えると正しい結果が得られない．

CShiftJis.cpp の 19 行で定義されています。

参照先 _IS_SJIS_1, と _IS_SJIS_2().

参照元 CNativeA::GetSizeOfChar(), CEuc::SJISToEUC(), CNativeA::ToLower(), CNativeA::ToUpper(), と CNativeA::ToZenkaku().

static int CShiftJis::MemSJISToUnicode | ( | char ** | ,
 |  | const char * | ,
 |  | int |  |
 | ) |  |  | [static, protected]

このクラスの説明は次のファイルから生成されました:
  • CShiftJis.h
  • CShiftJis.cpp
Sakura-Editorに対してSat Nov 17 20:29:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CShiftJis メンバ一覧

これは全メンバの一覧です。CShiftJis継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CShiftJis | [inline, virtual]
GetSizeOfChar(const char *pData, int nDataLen, int nIdx) | CShiftJis | [static]
MemSJISToUnicode(char **, const char *, int) | CShiftJis | [protected, static]
SJISToUnicode(CMemory *pMem) | CShiftJis | [static]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CShiftJis | [inline, virtual]
UnicodeToSJIS(CMemory *pMem) | CShiftJis | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:03 2007に生成されました。 doxygen 1.5.4


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 TCHAR * | GetTitle (int idx) const
表示する名前の取得
const TCHAR * | GetName (int idx) const
表示名の取得
const TCHAR * | GetFile (int idx) const
ファイル名の取得
BOOL | Load (int idx, HINSTANCE hInstance, const TCHAR *pszPath)
BOOL | Save (int idx, HINSTANCE hInstance, const TCHAR *pszPath)
void | UnloadAll (void)
int | Append (int idx, EFunctionCode nFuncID, LPARAM lParam1, CEditView *pcEditView)
キーマクロのバッファにデータ追加
BOOL | IsSaveOk (void)
int | GetCurrentIdx (void) const
void | SetCurrentIdx (int idx)

Static Public メソッド

static WCHAR * | GetFuncInfoByID (HINSTANCE, int, WCHAR *, WCHAR *)
static EFunctionCode | GetFuncInfoByName (HINSTANCE, const WCHAR *, WCHAR *)
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 の 65 行で定義されています。

コンストラクタとデストラクタ

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(), INVALID_MACRO_IDX, m_cSavedKeyMacro, m_pKeyMacro, m_pShareData, MAX_CUSTMACRO, MY_RUNNINGTIMER, NULL, と SetCurrentIdx().

CSMacroMgr::~CSMacroMgr ( )

CSMacroMgr.cpp の 382 行で定義されています。

参照先 ClearAll().

関数

void CSMacroMgr::Clear ( int idx )

CSMacroMgr.cpp の 591 行で定義されています。

参照先 Idx2Ptr(), と NULL.

参照元 CViewCommander::Command_RECKEYMACRO().

void CSMacroMgr::ClearAll ( void )

キーマクロのバッファをクリアする

CSMacroMgr.cpp の 392 行で定義されています。

参照先 m_cSavedKeyMacro, m_pKeyMacro, MAX_CUSTMACRO, と NULL.

参照元 ~CSMacroMgr().

BOOL CSMacroMgr::Exec | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | CEditView * | pcEditView
 | ) |  |

キーボードマクロの実行

キーボードマクロの実行

CShareDataからファイル名を取得し、実行する。

引数:
hInstance | [in] インスタンス
hwndParent | [in] 親ウィンドウの
pViewClass | [in] macro実行対象のView
idx | [in] マクロ番号。

CSMacroMgr.cpp の 444 行で定義されています。

参照先 _countof, _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.

参照元 CViewCommander::Command_EXECKEYMACRO().

bool CSMacroMgr::IsEnabled ( int idx ) const [inline]

実行可能か？CShareDataに問い合わせ

CSMacroMgr.h の 91 行で定義されています。

参照先 MacroRec::IsEnabled(), DLLSHAREDATA::m_MacroTable, m_pShareData, と MAX_CUSTMACRO.

参照元 CFuncLookup::Funccode2Name(), CFuncLookup::Pos2FuncCode(), と CFuncLookup::SetListItem().

const TCHAR* CSMacroMgr::GetTitle ( int idx ) const [inline]

表示する名前の取得

CSMacroMgr.h の 97 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable, m_pShareData, MacroRec::m_szFile, MacroRec::m_szName, MAX_CUSTMACRO, と NULL.

参照元 CFuncLookup::Funccode2Name(), CFuncLookup::Pos2FuncName(), と CFuncLookup::SetListItem().

const TCHAR* CSMacroMgr::GetName ( int idx ) const [inline]

表示名の取得

CSMacroMgr.h の 107 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable, m_pShareData, MacroRec::m_szName, MAX_CUSTMACRO, と NULL.

const TCHAR* CSMacroMgr::GetFile ( int idx ) const [inline]

ファイル名の取得

引数:
idx [in] マクロ番号

CSMacroMgr.h の 117 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable, m_pShareData, MacroRec::m_szFile, MAX_CUSTMACRO, と NULL.

BOOL CSMacroMgr::Load | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | const TCHAR * | pszPath
 | ) |  |

キーボードマクロの読み込み

キーボードマクロの読み込み

引数:
idx | [in] 読み込み先マクロバッファ番号
pszPath | [in] マクロファイル名
読み込みに失敗したときはマクロバッファのオブジェクトは解放され， NULLが設定される．

作者:
Norio Nakatani, YAZAKI, genta

CSMacroMgr.cpp の 500 行で定義されています。

参照先 CMacroFactory::Create(), FALSE, Idx2Ptr(), CMacroFactory::Instance(), MYTRACE_A, NULL, と TRUE.

参照元 CViewCommander::Command_EXECKEYMACRO(), と Exec().

BOOL CSMacroMgr::Save | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | const TCHAR * | pszPath
 | ) |  |

キーボードマクロの保存

引数:
idx | [in] 読み込み先マクロバッファ番号
pszPath | [in] マクロファイル名
hInstance | [in] インスタンスハンドル
作者:
YAZAKI

CSMacroMgr.cpp の 565 行で定義されています。

参照先 assert, FALSE, m_pKeyMacro, NULL, CKeyMacroMgr::SaveKeyMacro(), STAND_KEYMACRO, と TRUE.

参照元 CViewCommander::Command_RECKEYMACRO(), と CViewCommander::Command_SAVEKEYMACRO().

void CSMacroMgr::UnloadAll ( void )

マクロオブジェクトをすべて破棄する(キーボードマクロ以外)

マクロの登録を変更した場合に，変更前のマクロが 引き続き実行されてしまうのを防ぐ．

日付:
2007.10.19 genta 新規作成

CSMacroMgr.cpp の 548 行で定義されています。

参照先 m_cSavedKeyMacro, MAX_CUSTMACRO, と NULL.

参照元 CEditDoc::OpenPropertySheet().

int CSMacroMgr::Append | ( | int | idx,
 |  | EFunctionCode | nFuncID,
 |  | LPARAM | lParam1,
 |  | CEditView * | pcEditView
 | ) |  |

キーマクロのバッファにデータ追加

キーマクロのバッファにデータ追加

引数:
mbuf [in] 読み込み先マクロバッファ
日付:
2002.06.16 genta キーマクロの多種対応のため変更
引数:
nFuncID | [in] 機能番号
lParam1 | [in] パラメータ。

CSMacroMgr.cpp の 411 行で定義されています。

参照先 CKeyMacroMgr::Append(), assert, m_pKeyMacro, NULL, STAND_KEYMACRO, と TRUE.

参照元 CViewCommander::HandleCommand().

WCHAR * CSMacroMgr::GetFuncInfoByID | ( | HINSTANCE | hInstance,
 |  | int | nFuncID,
 |  | WCHAR * | pszFuncName,
 |  | WCHAR * | pszFuncNameJapanese |
 | ) |  |  | [static]

機能番号から関数名と機能名日本語を取得

戻り値:
成功したときはpszFuncName．見つからなかったときはNULL．
覚え書き:
それぞれ，文字列格納領域の指す先がNULLの時は文字列を格納しない． ただし，pszFuncNameをNULLにしてしまうと戻り値が常にNULLになって 成功判定が行えなくなる．
日付:
2002.06.16 genta 新設のGetFuncInfoById(int)を内部で使うように．
引数:
hInstance | [in] リソース取得のためのInstance Handle
nFuncID | [in] 機能番号
pszFuncName | [out] 関数名．この先には最長関数名＋1バイトのメモリが必要．
pszFuncNameJapanese | [out] 機能名日本語．この先には256バイトのメモリが必要．

CSMacroMgr.cpp の 643 行で定義されています。

参照先 auto_strcpy(), ApiWrap::LoadStringW_AnyBuild(), LTEXT, MacroFuncInfo::m_pszFuncName, と NULL.

参照元 CPPA::CallHandleFunction(), CKeyBind::CreateKeyBindList(), CKeyMacroMgr::LoadKeyMacro(), CPropCommon::p5_Export_KeySetting(), と CMacro::Save().

EFunctionCode CSMacroMgr::GetFuncInfoByName | ( | HINSTANCE | hInstance,
 |  | const WCHAR * | pszFuncName,
 |  | WCHAR * | pszFuncNameJapanese |
 | ) |  |  | [static]

関数名（S_xxxx）から機能番号と機能名日本語を取得． 関数名はS_で始まる場合と始まらない場合の両方に対応．

戻り値:
成功したときは機能番号．見つからなかったときは-1．
覚え書き:
pszFuncNameJapanese の指す先がNULLの時は日本語名を格納しない．
日付:
2002.06.16 genta ループ内の文字列コピーを排除
引数:
hInstance | [in] リソース取得のためのInstance Handle
pszFuncName | [in] 関数名
pszFuncNameJapanese | [out] 機能名日本語．この先には256バイトのメモリが必要．

CSMacroMgr.cpp の 683 行で定義されています。

参照先 auto_strcmp(), F_INVALID, ApiWrap::LoadStringW_AnyBuild(), LTEXT, m_MacroFuncInfoArr, MacroFuncInfo::m_nFuncID, MacroFuncInfo::m_pszFuncName, と NULL.

参照元 CKeyMacroMgr::LoadKeyMacro(), と CPropCommon::p5_Import_KeySetting().

BOOL CSMacroMgr::CanFuncIsKeyMacro ( int nFuncID ) [static]

case F_BROWSE ://ブラウズ

CSMacroMgr.cpp の 716 行で定義されています。

参照先 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_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_W, 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_WCHAR, F_WIN_OUTPUT, F_WordCut, F_WordDelete, F_WordDeleteToEnd, F_WordDeleteToStart, F_WORDLEFT, F_WORDLEFT_SEL, F_WORDRIGHT, F_WORDRIGHT_SEL, FALSE, と TRUE.

参照元 CKeyBind::CreateKeyBindList(), と CViewCommander::HandleCommand().

const MacroFuncInfo * CSMacroMgr::GetFuncInfoByID ( int nFuncID ) [static]

CSMacroMgr.cpp の 613 行で定義されています。

参照先 m_MacroFuncInfoArr, m_MacroFuncInfoNotCommandArr, MacroFuncInfo::m_pszFuncName, と NULL.

BOOL CSMacroMgr::IsSaveOk ( void )

キーボードマクロの保存が可能かどうか

戻り値:
TRUE | 保存可能
FALSE | 保存不可

CSMacroMgr.cpp の 1047 行で定義されています。

参照先 FALSE, m_pKeyMacro, NULL, と TRUE.

参照元 IsFuncEnable().

int CSMacroMgr::GetCurrentIdx ( void ) const [inline]

CSMacroMgr.h の 144 行で定義されています。

参照先 m_CurrentIdx.

void CSMacroMgr::SetCurrentIdx ( int idx ) [inline]

CSMacroMgr.h の 147 行で定義されています。

参照先 m_CurrentIdx.

参照元 CSMacroMgr(), と Exec().

CMacroManagerBase ** CSMacroMgr::Idx2Ptr ( int idx ) [private]

マクロ番号から対応するマクロオブジェクト格納位置へのポインタへの変換

引数:
idx [in] マクロ番号(0-), STAND_KEYMACROは標準キーマクロバッファを表す．
戻り値:
オブジェクト位置へのポインタ．マクロ番号が不当な場合はNULL．

CSMacroMgr.cpp の 1023 行で定義されています。

参照先 m_cSavedKeyMacro, m_pKeyMacro, MAX_CUSTMACRO, MYTRACE_A, NULL, と STAND_KEYMACRO.

参照元 Clear(), と Load().

変数

CMacroManagerBase* CSMacroMgr::m_cSavedKeyMacro[MAX_CUSTMACRO] [private]

CSMacroMgr.h の 68 行で定義されています。

参照元 ClearAll(), CSMacroMgr(), Exec(), Idx2Ptr(), と UnloadAll().

CMacroManagerBase* CSMacroMgr::m_pKeyMacro [private]

CSMacroMgr.h の 71 行で定義されています。

参照元 Append(), ClearAll(), CSMacroMgr(), Exec(), Idx2Ptr(), IsSaveOk(), と Save().

DLLSHAREDATA* CSMacroMgr::m_pShareData [private]

CSMacroMgr.h の 152 行で定義されています。

参照元 CSMacroMgr(), GetFile(), GetName(), GetTitle(), と IsEnabled().

int CSMacroMgr::m_CurrentIdx [private]

実行中マクロのインデックス番号 (INVALID_MACRO_IDX:無効)

日付:
Sep. 15, 2005 FILE

CSMacroMgr.h の 158 行で定義されています。

参照元 GetCurrentIdx(), と SetCurrentIdx().

MacroFuncInfo CSMacroMgr::m_MacroFuncInfoArr [static]

CSMacroMgr.h の 161 行で定義されています。

参照元 CWSHMacroManager::ExecKeyMacro(), GetFuncInfoByID(), GetFuncInfoByName(), と CPPA::InitDll().

MacroFuncInfo CSMacroMgr::m_MacroFuncInfoNotCommandArr [static]

初期値:

{

    {F_GETFILENAME,         LTEXT("GetFilename"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL },
    {F_GETSELECTED,         LTEXT("GetSelectedString"),     {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL },
    {F_EXPANDPARAMETER,     LTEXT("ExpandParameter"),       {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL },
    {F_GETLINESTR,          LTEXT("GetLineStr"),            {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL },
    {F_GETLINECOUNT,        LTEXT("GetLineCount"),          {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_CHGTABWIDTH,         LTEXT("ChangeTabWidth"),        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_ISTEXTSELECTED,      LTEXT("IsTextSelected"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETSELLINEFROM,      LTEXT("GetSelectLineFrom"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETSELCOLMFROM,      LTEXT("GetSelectColmFrom"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETSELLINETO,        LTEXT("GetSelectLineTo"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETSELCOLMTO,        LTEXT("GetSelectColmTo"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_ISINSMODE,           LTEXT("IsInsMode"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETCHARCODE,         LTEXT("GetCharCode"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_GETLINECODE,         LTEXT("GetLineCode"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_ISPOSSIBLEUNDO,      LTEXT("IsPossibleUndo"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },
    {F_ISPOSSIBLEREDO,      LTEXT("IsPossibleRedo"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL },

    {F_INVALID, NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY,   NULL}
}

CSMacroMgr.h の 162 行で定義されています。

参照元 CWSHMacroManager::ExecKeyMacro(), GetFuncInfoByID(), CPPA::InitDll(), と CPPA::stdError().

このクラスの説明は次のファイルから生成されました:
  • CSMacroMgr.h
  • CSMacroMgr.cpp
Sakura-Editorに対してSat Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSMacroMgr メンバ一覧

これは全メンバの一覧です。CSMacroMgr継承メンバも含んでいます。

Append(int idx, EFunctionCode 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, WCHAR *, WCHAR *) | CSMacroMgr | [static]
GetFuncInfoByID(int) | CSMacroMgr | [static]
GetFuncInfoByName(HINSTANCE, const WCHAR *, WCHAR *) | 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 TCHAR *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 TCHAR *pszPath) | CSMacroMgr |
SetCurrentIdx(int idx) | CSMacroMgr | [inline]
UnloadAll(void) | CSMacroMgr |
~CSMacroMgr() | CSMacroMgr |

Sakura-Editorに対してSat Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CSortedTagJumpList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CSortedTagJumpList

ダイレクトタグジャンプ用検索結果をソートして保持する． [詳細]

#include <CSortedTagJumpList.h>

CSortedTagJumpListのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 型

typedef struct
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, Free(), CSortedTagJumpList::tagjump_info_t::keyword, m_bOverflow, m_MAX_TAGJUMPLIST, m_nCount, m_pTagjump, MAX_TAG_STRING_LENGTH, CSortedTagJumpList::tagjump_info_t::next, CSortedTagJumpList::tagjump_info_t::no, CSortedTagJumpList::tagjump_info_t::note, NULL, TRUE, と CSortedTagJumpList::tagjump_info_t::type.

参照元 CDlgTagJumpList::AddParam(), と CDlgTagJumpList::find_key().

BOOL CSortedTagJumpList::GetParam | ( | int | index,
 |  | TCHAR * | keyword,
 |  | TCHAR * | filename,
 |  | int * | no,
 |  | TCHAR * | type,
 |  | TCHAR * | note,
 |  | int * | depth
 | ) |  |

CSortedTagJumpList.cpp の 155 行で定義されています。

参照先 _tcscpy(), 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().

int CSortedTagJumpList::GetCount ( void ) [inline]

CSortedTagJumpList.h の 48 行で定義されています。

参照先 m_nCount.

参照元 CDlgTagJumpList::GetSelectedParam(), CDlgTagJumpList::OnNotify(), CDlgTagJumpList::SearchBestTag(), と CDlgTagJumpList::UpdateData().

void CSortedTagJumpList::Empty ( void )

CSortedTagJumpList.cpp の 68 行で定義されています。

参照先 Free(), m_bOverflow, m_nCount, m_pTagjump, CSortedTagJumpList::tagjump_info_t::next, と NULL.

参照元 CDlgTagJumpList::Empty(), と ~CSortedTagJumpList().

bool CSortedTagJumpList::IsOverflow ( void ) [inline]

CSortedTagJumpList.h の 50 行で定義されています。

参照先 m_bOverflow.

参照元 CDlgTagJumpList::UpdateData().

CSortedTagJumpList::TagJumpInfo * CSortedTagJumpList::GetPtr ( int index )

CSortedTagJumpList.cpp の 186 行で定義されています。

参照先 m_pTagjump, CSortedTagJumpList::tagjump_info_t::next, と NULL.

参照元 GetParam(), CDlgTagJumpList::SearchBestTag(), と CDlgTagJumpList::UpdateData().

int CSortedTagJumpList::GetCapacity ( void ) const [inline]

管理数の最大値を取得する

日付:
2005.04.22 genta 最大値を可変に

CSortedTagJumpList.h の 68 行で定義されています。

参照先 m_MAX_TAGJUMPLIST.

参照元 CDlgTagJumpList::GetData().

void CSortedTagJumpList::Free ( TagJumpInfo * item ) [private]

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

参照先 CSortedTagJumpList::tagjump_info_t::filename, CSortedTagJumpList::tagjump_info_t::keyword, と CSortedTagJumpList::tagjump_info_t::note.

参照元 AddParam(), と Empty().

変数

TagJumpInfo* CSortedTagJumpList::m_pTagjump [private]

タグジャンプ情報

CSortedTagJumpList.h の 71 行で定義されています。

参照元 AddParam(), Empty(), と GetPtr().

int CSortedTagJumpList::m_nCount [private]

個数

CSortedTagJumpList.h の 72 行で定義されています。

参照元 AddParam(), Empty(), と GetCount().

bool CSortedTagJumpList::m_bOverflow [private]

オーバーフロー

CSortedTagJumpList.h の 73 行で定義されています。

参照元 AddParam(), Empty(), と IsOverflow().

const int CSortedTagJumpList::m_MAX_TAGJUMPLIST [private]

管理する情報の最大数

CSortedTagJumpList.h の 76 行で定義されています。

参照元 AddParam(), と GetCapacity().

このクラスの説明は次のファイルから生成されました:
  • CSortedTagJumpList.h
  • CSortedTagJumpList.cpp
Sakura-Editorに対してSat Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 CSortedTagJumpList::tagjump_info_t

  • 構成
  • クラス階層
  • 構成メンバ
CSortedTagJumpList::tagjump_info_t

構造体 CSortedTagJumpList::tagjump_info_t

#include <CSortedTagJumpList.h>

CSortedTagJumpList::tagjump_info_tのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

struct tagjump_info_t * | next
次のリスト
TCHAR * | keyword
キーワード
TCHAR * | filename
ファイル名
int | no
行番号
TCHAR | type
種類
TCHAR * | note
備考
int | depth
(さかのぼる)階層

説明

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

変数

struct tagjump_info_t* CSortedTagJumpList::tagjump_info_t::next [read]

次のリスト

CSortedTagJumpList.h の 53 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::Empty(), と CSortedTagJumpList::GetPtr().

TCHAR* CSortedTagJumpList::tagjump_info_t::keyword

キーワード

CSortedTagJumpList.h の 54 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::Free(), CSortedTagJumpList::GetParam(), と CDlgTagJumpList::UpdateData().

TCHAR* CSortedTagJumpList::tagjump_info_t::filename

ファイル名

CSortedTagJumpList.h の 55 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::Free(), CSortedTagJumpList::GetParam(), CDlgTagJumpList::SearchBestTag(), と CDlgTagJumpList::UpdateData().

int CSortedTagJumpList::tagjump_info_t::no

行番号

CSortedTagJumpList.h の 56 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::GetParam(), と CDlgTagJumpList::UpdateData().

TCHAR CSortedTagJumpList::tagjump_info_t::type

種類

CSortedTagJumpList.h の 57 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::GetParam(), と CDlgTagJumpList::UpdateData().

TCHAR* CSortedTagJumpList::tagjump_info_t::note

備考

CSortedTagJumpList.h の 58 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::Free(), CSortedTagJumpList::GetParam(), と CDlgTagJumpList::UpdateData().

int CSortedTagJumpList::tagjump_info_t::depth

(さかのぼる)階層

CSortedTagJumpList.h の 59 行で定義されています。

参照元 CSortedTagJumpList::AddParam(), CSortedTagJumpList::GetParam(), と CDlgTagJumpList::UpdateData().

この構造体の説明は次のファイルから生成されました:
  • CSortedTagJumpList.h
Sakura-Editorに対してSat Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:04 2007に生成されました。 doxygen 1.5.4


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 TCHAR * | m_pszClassName
int | m_bVertical
int | m_nDragPosY
int | m_nDragPosX

説明

分割ボックスウィンドウクラス

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

コンストラクタとデストラクタ

CSplitBoxWnd::CSplitBoxWnd ( )

CSplitBoxWnd.cpp の 20 行で定義されています。

参照先 m_bVertical, m_pszClassName, NULL, と TRUE.

CSplitBoxWnd::~CSplitBoxWnd ( ) [virtual]

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

関数

HWND CSplitBoxWnd::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int | bVertical
 | ) |  |

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

参照先 CWnd::Create(), CWnd::GetParentHwnd(), m_bVertical, m_pszClassName, NULL, と CWnd::RegisterWC().

参照元 CEditView::Create(), と CEditView::SplitBoxOnOff().

void CSplitBoxWnd::Draw3dRect | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | cx,
 |  | int | cy,
 |  | COLORREF | clrTopLeft,
 |  | COLORREF | clrBottomRight |
 | ) |  |  | [static]

CSplitBoxWnd.cpp の 90 行で定義されています。

参照元 CSplitterWnd::DrawFrame(), CMenuDrawer::DrawItem(), と OnPaint().

void CSplitBoxWnd::FillSolidRect | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | cx,
 |  | int | cy,
 |  | COLORREF | clr |
 | ) |  |  | [static]

CSplitBoxWnd.cpp の 114 行で定義されています。

参照先 ApiWrap::ExtTextOutW_AnyBuild(), と NULL.

LRESULT CSplitBoxWnd::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CSplitBoxWnd.cpp の 127 行で定義されています。

参照先 Draw3dRect(), と m_bVertical.

LRESULT CSplitBoxWnd::OnLButtonDown | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CSplitBoxWnd.cpp の 171 行で定義されています。

参照先 CWnd::GetParentHwnd(), m_bVertical, m_nDragPosX, と m_nDragPosY.

LRESULT CSplitBoxWnd::OnMouseMove | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CSplitBoxWnd.cpp の 232 行で定義されています。

参照先 CWnd::GetParentHwnd(), m_bVertical, m_nDragPosX, と m_nDragPosY.

LRESULT CSplitBoxWnd::OnLButtonUp | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CSplitBoxWnd.cpp の 364 行で定義されています。

参照先 CWnd::GetParentHwnd(), m_bVertical, m_nDragPosX, m_nDragPosY, MYWM_DOSPLIT, と PostMessageAny.

LRESULT CSplitBoxWnd::OnLButtonDblClk | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

CSplitBoxWnd.cpp の 435 行で定義されています。

参照先 CWnd::GetParentHwnd(), m_bVertical, MYWM_DOSPLIT, と PostMessageAny.

変数

const TCHAR* CSplitBoxWnd::m_pszClassName [private]

CSplitBoxWnd.h の 46 行で定義されています。

参照元 Create(), と CSplitBoxWnd().

int CSplitBoxWnd::m_bVertical [private]

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

参照元 Create(), CSplitBoxWnd(), OnLButtonDblClk(), OnLButtonDown(), OnLButtonUp(), OnMouseMove(), と OnPaint().

int CSplitBoxWnd::m_nDragPosY [private]

CSplitBoxWnd.h の 48 行で定義されています。

参照元 OnLButtonDown(), OnLButtonUp(), と OnMouseMove().

int CSplitBoxWnd::m_nDragPosX [private]

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

参照元 OnLButtonDown(), OnLButtonUp(), と OnMouseMove().

このクラスの説明は次のファイルから生成されました:
  • CSplitBoxWnd.h
  • CSplitBoxWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSplitBoxWnd メンバ一覧

これは全メンバの一覧です。CSplitBoxWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(HINSTANCE, HWND, int) | CSplitBoxWnd |
CWnd::Create(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CSplitBoxWnd() | CSplitBoxWnd |
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
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]
GetAppInstance() const | CWnd | [inline]
GetHwnd() const | CWnd | [inline]
GetParentHwnd() const | CWnd | [inline]
Init(HINSTANCE, HWND) | CWnd |
m_bVertical | CSplitBoxWnd | [private]
m_nDragPosX | CSplitBoxWnd | [private]
m_nDragPosY | CSplitBoxWnd | [private]
m_pszClassName | CSplitBoxWnd | [private]
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(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | CWnd |
~CSplitBoxWnd() | CSplitBoxWnd | [virtual]
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:05 2007に生成されました。 doxygen 1.5.4


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 変数

TCHAR * | 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, MAXCOUNTOFVIEW, と NULL.

CSplitterWnd::~CSplitterWnd ( )

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

関数

HWND CSplitterWnd::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | void * | pCEditWnd
 | ) |  |

CSplitterWnd.cpp の 62 行で定義されています。

参照先 CWnd::Create(), GSTR_APPNAME, m_pCEditWnd, m_pszClassName, MYMESSAGEBOX, NULL, と CWnd::RegisterWC().

参照元 CEditWnd::Create().

void CSplitterWnd::SetChildWndArr ( HWND * pcEditViewArr )

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

参照先 m_ChildWndArr, と MAXCOUNTOFVIEW.

参照元 CEditWnd::Create().

void CSplitterWnd::DoSplit | ( | int | nHorizontal,
 |  | int | nVertical
 | ) |  |

CSplitterWnd.cpp の 239 行で定義されています。

参照先 BOOL, CEditView::CopyViewStatus(), FALSE, CWnd::GetHwnd(), CWnd::GetParentHwnd(), CMainStatusBar::GetStatusHwnd(), CEditView::GetTextArea(), GetWindowLongPtr, CEditWnd::m_CFuncKeyWnd, m_ChildWndArr, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, m_nActivePane, m_nAllSplitCols, m_nAllSplitRows, CommonSetting_Window::m_nFUNCKEYWND_Place, m_nHSplitPos, m_nVSplitPos, m_pCEditWnd, m_pShareData, CommonSetting::m_sWindow, MAXCOUNTOFVIEW, MYWM_SETACTIVEPANE, NULL, OnSize(), PostMessageAny, CTextArea::SetViewTopLine(), CEditView::SplitBoxOnOff(), と TRUE.

参照元 CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), DispatchEvent_WM_APP(), CEditWnd::EndLayoutBars(), HSplitOnOff(), OnLButtonDblClk(), OnLButtonUp(), VHSplitOnOff(), と VSplitOnOff().

void CSplitterWnd::SetActivePane ( int nIndex )

CSplitterWnd.cpp の 574 行で定義されています。

参照先 m_nActivePane.

参照元 DispatchEvent_WM_APP(), と CEditWnd::SetActivePane().

int CSplitterWnd::GetPrevPane ( void )

CSplitterWnd.cpp の 655 行で定義されています。

参照先 m_nActivePane, m_nAllSplitCols, と m_nAllSplitRows.

参照元 CEditDoc::HandleCommand().

int CSplitterWnd::GetNextPane ( void )

CSplitterWnd.cpp の 704 行で定義されています。

参照先 m_nActivePane, m_nAllSplitCols, と m_nAllSplitRows.

参照元 CEditDoc::HandleCommand().

int CSplitterWnd::GetFirstPane ( void )

CSplitterWnd.cpp の 751 行で定義されています。

参照元 CEditWnd::DispatchEvent().

int CSplitterWnd::GetLastPane ( void )

CSplitterWnd.cpp の 759 行で定義されています。

参照先 m_nAllSplitCols, と m_nAllSplitRows.

参照元 CEditWnd::DispatchEvent().

void CSplitterWnd::VSplitOnOff ( void )

CSplitterWnd.cpp の 582 行で定義されています。

参照先 DoSplit(), CWnd::GetHwnd(), m_nAllSplitCols, m_nAllSplitRows, と m_nHSplitPos.

参照元 CViewCommander::Command_SPLIT_V().

void CSplitterWnd::HSplitOnOff ( void )

CSplitterWnd.cpp の 604 行で定義されています。

参照先 DoSplit(), CWnd::GetHwnd(), m_nAllSplitCols, m_nAllSplitRows, と m_nVSplitPos.

参照元 CViewCommander::Command_SPLIT_H().

void CSplitterWnd::VHSplitOnOff ( void )

CSplitterWnd.cpp の 626 行で定義されています。

参照先 DoSplit(), CWnd::GetHwnd(), m_nAllSplitCols, m_nAllSplitRows, m_nHSplitPos, と m_nVSplitPos.

参照元 CViewCommander::Command_SPLIT_VH().

int CSplitterWnd::GetAllSplitRows ( ) [inline]

CSplitterWnd.h の 74 行で定義されています。

参照元 CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CEditWnd::InitMenu(), と CEditWnd::RedrawInactivePane().

int CSplitterWnd::GetAllSplitCols ( ) [inline]

CSplitterWnd.h の 75 行で定義されています。

参照元 CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CEditWnd::InitMenu(), と CEditWnd::RedrawInactivePane().

LRESULT CSplitterWnd::DispatchEvent_WM_APP | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CWndを再定義しています。

CSplitterWnd.cpp の 1056 行で定義されています。

参照先 DoSplit(), m_nHSplitPos, m_nVSplitPos, MYWM_DOSPLIT, MYWM_SETACTIVEPANE, と SetActivePane().

LRESULT CSplitterWnd::OnSize | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 808 行で定義されています。

参照先 BOOL, FALSE, CWnd::GetHwnd(), CWnd::GetParentHwnd(), CMainStatusBar::GetStatusHwnd(), GetWindowLongPtr, CEditWnd::m_CFuncKeyWnd, m_ChildWndArr, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, m_nAllSplitCols, m_nAllSplitRows, CommonSetting_Window::m_nFUNCKEYWND_Place, m_nHSplitPos, m_nVSplitPos, m_pCEditWnd, m_pShareData, CommonSetting::m_sWindow, MAXCOUNTOFVIEW, NULL, CEditView::SplitBoxOnOff(), と TRUE.

参照元 DoSplit().

LRESULT CSplitterWnd::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 780 行で定義されています。

参照先 CWnd::GetHwnd(), m_nAllSplitCols, m_nAllSplitRows, m_nHSplitPos, と m_nVSplitPos.

LRESULT CSplitterWnd::OnMouseMove | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 899 行で定義されています。

参照先 DrawSplitter(), CWnd::GetHwnd(), HitTestSplitter(), m_bDragging, NULL, と TRUE.

参照元 OnLButtonDblClk().

LRESULT CSplitterWnd::OnLButtonDown | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 947 行で定義されています。

参照先 DrawSplitter(), FALSE, CWnd::GetHwnd(), CWnd::GetParentHwnd(), HitTestSplitter(), と m_bDragging.

LRESULT CSplitterWnd::OnLButtonUp | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 973 行で定義されています。

参照先 DoSplit(), DrawSplitter(), FALSE, m_bDragging, m_hcurOld, m_nAllSplitCols, m_nAllSplitRows, m_nDragPosX, m_nDragPosY, m_nHSplitPos, m_nVSplitPos, と NULL.

LRESULT CSplitterWnd::OnLButtonDblClk | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

CSplitterWnd.cpp の 1017 行で定義されています。

参照先 DoSplit(), CWnd::GetHwnd(), HitTestSplitter(), m_nAllSplitCols, m_nAllSplitRows, m_nHSplitPos, m_nVSplitPos, と OnMouseMove().

void CSplitterWnd::DrawFrame | ( | HDC | hdc,
 |  | RECT * | prc |
 | ) |  |  | [protected]

CSplitterWnd.cpp の 124 行で定義されています。

参照先 CSplitBoxWnd::Draw3dRect().

int CSplitterWnd::HitTestSplitter | ( | int | xPos,
 |  | int | yPos |
 | ) |  |  | [protected]

CSplitterWnd.cpp の 201 行で定義されています。

参照先 m_nAllSplitCols, m_nAllSplitRows, m_nHSplitPos, と m_nVSplitPos.

参照元 OnLButtonDblClk(), OnLButtonDown(), と OnMouseMove().

void CSplitterWnd::DrawSplitter | ( | int | xPos,
 |  | int | yPos,
 |  | int | bEraseOld |
 | ) |  |  | [protected]

CSplitterWnd.cpp の 141 行で定義されています。

参照先 CWnd::GetHwnd(), m_bDragging, m_nDragPosX, と m_nDragPosY.

参照元 OnLButtonDown(), OnLButtonUp(), と OnMouseMove().

変数

TCHAR* CSplitterWnd::m_pszClassName [private]

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

参照元 Create().

DLLSHAREDATA* CSplitterWnd::m_pShareData [private]

CSplitterWnd.h の 48 行で定義されています。

参照元 CSplitterWnd(), DoSplit(), と OnSize().

void* CSplitterWnd::m_pCEditWnd [private]

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

参照元 Create(), DoSplit(), と OnSize().

int CSplitterWnd::m_nAllSplitRows [private]

CSplitterWnd.h の 50 行で定義されています。

参照元 DoSplit(), GetLastPane(), GetNextPane(), GetPrevPane(), HitTestSplitter(), HSplitOnOff(), OnLButtonDblClk(), OnLButtonUp(), OnPaint(), OnSize(), VHSplitOnOff(), と VSplitOnOff().

int CSplitterWnd::m_nAllSplitCols [private]

CSplitterWnd.h の 51 行で定義されています。

参照元 DoSplit(), GetLastPane(), GetNextPane(), GetPrevPane(), HitTestSplitter(), HSplitOnOff(), OnLButtonDblClk(), OnLButtonUp(), OnPaint(), OnSize(), VHSplitOnOff(), と VSplitOnOff().

int CSplitterWnd::m_nVSplitPos [private]

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

参照元 DispatchEvent_WM_APP(), DoSplit(), HitTestSplitter(), HSplitOnOff(), OnLButtonDblClk(), OnLButtonUp(), OnPaint(), OnSize(), と VHSplitOnOff().

int CSplitterWnd::m_nHSplitPos [private]

CSplitterWnd.h の 53 行で定義されています。

参照元 DispatchEvent_WM_APP(), DoSplit(), HitTestSplitter(), OnLButtonDblClk(), OnLButtonUp(), OnPaint(), OnSize(), VHSplitOnOff(), と VSplitOnOff().

HWND CSplitterWnd::m_ChildWndArr[MAXCOUNTOFVIEW] [private]

CSplitterWnd.h の 54 行で定義されています。

参照元 CSplitterWnd(), DoSplit(), OnSize(), と SetChildWndArr().

HCURSOR CSplitterWnd::m_hcurOld [private]

CSplitterWnd.h の 55 行で定義されています。

参照元 CSplitterWnd(), と OnLButtonUp().

int CSplitterWnd::m_bDragging [private]

CSplitterWnd.h の 56 行で定義されています。

参照元 DrawSplitter(), OnLButtonDown(), OnLButtonUp(), と OnMouseMove().

int CSplitterWnd::m_nDragPosX [private]

CSplitterWnd.h の 57 行で定義されています。

参照元 DrawSplitter(), と OnLButtonUp().

int CSplitterWnd::m_nDragPosY [private]

CSplitterWnd.h の 58 行で定義されています。

参照元 DrawSplitter(), と OnLButtonUp().

int CSplitterWnd::m_nActivePane [private]

CSplitterWnd.h の 59 行で定義されています。

参照元 DoSplit(), GetNextPane(), GetPrevPane(), と SetActivePane().

このクラスの説明は次のファイルから生成されました:
  • CSplitterWnd.h
  • CSplitterWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSplitterWnd メンバ一覧

これは全メンバの一覧です。CSplitterWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(HINSTANCE, HWND, void *pCEditWnd) | CSplitterWnd |
CWnd::Create(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CSplitterWnd() | CSplitterWnd |
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
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]
GetAppInstance() const | CWnd | [inline]
GetFirstPane(void) | CSplitterWnd |
GetHwnd() const | CWnd | [inline]
GetLastPane(void) | CSplitterWnd |
GetNextPane(void) | CSplitterWnd |
GetParentHwnd() const | CWnd | [inline]
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_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]
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(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | CWnd |
SetActivePane(int) | CSplitterWnd |
SetChildWndArr(HWND *) | CSplitterWnd |
VHSplitOnOff(void) | CSplitterWnd |
VSplitOnOff(void) | CSplitterWnd |
~CSplitterWnd() | CSplitterWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CStream

  • 構成
  • クラス階層
  • 構成メンバ

クラス CStream

#include <CStream.h>

CStreamに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

CStream (const TCHAR *tszPath, const TCHAR *tszMode)
CStream ()
virtual | ~CStream ()
operator bool () const
void | Open (const TCHAR *tszPath, const TCHAR *tszMode)
void | Close ()
void | SeekSet (long offset)
void | SeekEnd (long offset)
virtual bool | Good () const
bool | Eof () const

Protected 変数

FILE * | m_fp

説明

CStream.h の 4 行で定義されています。

コンストラクタとデストラクタ

CStream::CStream | ( | const TCHAR * | tszPath,
 |  | const TCHAR * | tszMode
 | ) |  |

CStream.cpp の 5 行で定義されています。

参照先 m_fp, NULL, と Open().

CStream::CStream ( )

CStream.cpp の 11 行で定義されています。

参照先 m_fp, と NULL.

CStream::~CStream ( ) [virtual]

CStream.cpp の 16 行で定義されています。

参照先 Close().

関数

CStream::operator bool ( ) const [inline]

CStream.h の 12 行で定義されています。

参照先 Good().

void CStream::Open | ( | const TCHAR * | tszPath,
 |  | const TCHAR * | tszMode
 | ) |  |

CStream.cpp の 22 行で定義されています。

参照先 Close(), と m_fp.

参照元 CStream(), と CTextInputStream::Open().

void CStream::Close ( void )

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

参照先 m_fp, と NULL.

参照元 CCodeMediator::CheckKanjiCodeOfFile(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CDicMgr::HokanSearch(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CPPAMacroMgr::LoadKeyMacro(), CKeyMacroMgr::LoadKeyMacro(), Open(), CPropTypes::p3_Import_Colors(), CPropCommon::p5_Export_KeySetting(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p7_Import_List_KeyWord(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CKeyMacroMgr::SaveKeyMacro(), と ~CStream().

void CStream::SeekSet ( long offset )

引数:
offset シーク ストリーム先頭からのオフセット

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

参照先 m_fp.

void CStream::SeekEnd ( long offset )

引数:
offset シーク ストリーム終端からのオフセット

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

参照先 m_fp.

virtual bool CStream::Good ( ) const [inline, virtual]

CStream.h の 25 行で定義されています。

参照先 Eof(), m_fp, と NULL.

参照元 CTextOutputStream::CTextOutputStream(), CKeyMacroMgr::LoadKeyMacro(), CTextInputStream::Open(), と operator bool().

bool CStream::Eof ( ) const [inline]

CStream.h の 26 行で定義されています。

参照先 m_fp, と NULL.

参照元 Good().

変数

FILE* CStream::m_fp [protected]

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

参照元 Close(), CStream(), CTextOutputStream::CTextOutputStream(), Eof(), CBinaryInputStream::GetLength(), Good(), CTextInputStream::Open(), Open(), CBinaryInputStream::Read(), CTextInputStream::ReadLineW(), SeekEnd(), SeekSet(), CBinaryOutputStream::Write(), と CTextOutputStream::WriteString().

このクラスの説明は次のファイルから生成されました:
  • CStream.h
  • CStream.cpp
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStream メンバ一覧

これは全メンバの一覧です。CStream継承メンバも含んでいます。

Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
Eof() const | CStream | [inline]
Good() const | CStream | [inline, virtual]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
~CStream() | CStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >

暗黙の変換を許さない、整数クラス [詳細]

#include <CStrictInteger.h>

すべてのメンバ一覧

Public メソッド

CStrictInteger ()
CStrictInteger (const Me &rhs)
CStrictInteger (int value)
Me & | operator+= (const Me &rhs)
Me & | operator-= (const Me &rhs)
Me & | operator *= (int n)
Me & | operator/= (int n)
Me & | operator%= (int n)
Me & | operator%= (const Me &rhs)
Me | operator+ (const Me &rhs) const
Me | operator- (const Me &rhs) const
Me | operator * (int n) const
Me | operator/ (int n) const
Me | operator% (int n) const
Me | operator% (const Me &rhs) const
int | operator++ ()
int | operator++ (int)
int | operator-- ()
int | operator-- (int)
Me | operator- () const
Me & | operator= (const Me &rhs)
bool | operator< (const Me &rhs) const
bool | operator<= (const Me &rhs) const
bool | operator> (const Me &rhs) const
bool | operator>= (const Me &rhs) const
bool | operator== (const Me &rhs) const
bool | operator!= (const Me &rhs) const
int | GetValue () const
void | SetValue (int n)
operator Int () const
Me & | operator+= (AddsubIntegerType rhs)
Me & | operator-= (AddsubIntegerType rhs)
Me | operator+ (AddsubIntegerType rhs) const
Me | operator- (AddsubIntegerType rhs) const
bool | operator< (CmpIntegerType rhs) const
bool | operator<= (CmpIntegerType rhs) const
bool | operator> (CmpIntegerType rhs) const
bool | operator>= (CmpIntegerType rhs) const
bool | operator== (CmpIntegerType rhs) const
bool | operator!= (CmpIntegerType rhs) const
operator CastIntegerType () const
Me & | operator= (const AssignIntegerType &rhs)

Private 型

typedef CStrictInteger
< STRICT_ID, ALLOW_CMP_INT,
ALLOW_ADDSUB_INT,
ALLOW_CAST_INT,
ALLOW_ASSIGNOP_INT > 		Me
typedef AddsubInteger
< ALLOW_ADDSUB_INT >::Type 		AddsubIntegerType
typedef AddsubInteger
<!ALLOW_ADDSUB_INT >::Type 		NotAddsubIntegerType
typedef CmpInteger
< ALLOW_CMP_INT >::Type 		CmpIntegerType
typedef CmpInteger
<!ALLOW_CMP_INT >::Type 		NotCmpIntegerType
typedef CastInteger
< ALLOW_CAST_INT >::Type 		CastIntegerType
typedef CastInteger
<!ALLOW_CAST_INT >::Type 		NotCastIntegerType
typedef AssignInteger
< ALLOW_ASSIGNOP_INT >::Type 		AssignIntegerType
typedef AssignInteger
<!ALLOW_ASSIGNOP_INT >::Type 		NotAssignIntegerType

Private メソッド

template<bool B0, bool B1, bool B2, bool B3>
Me & | operator+= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &)
template<bool B0, bool B1, bool B2, bool B3>
Me & | operator-= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &)
template<bool B0, bool B1, bool B2, bool B3>
Me | operator+ (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
Me | operator- (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
Me & | operator= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &)
template<bool B0, bool B1, bool B2, bool B3>
bool | operator< (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
bool | operator<= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
bool | operator> (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
bool | operator>= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
bool | operator== (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
template<bool B0, bool B1, bool B2, bool B3>
bool | operator!= (const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const
Me & | operator+= (NotAddsubIntegerType rhs)
Me & | operator-= (NotAddsubIntegerType rhs)
Me | operator+ (NotAddsubIntegerType rhs) const
Me | operator- (NotAddsubIntegerType rhs) const
bool | operator< (NotCmpIntegerType rhs) const
bool | operator<= (NotCmpIntegerType rhs) const
bool | operator> (NotCmpIntegerType rhs) const
bool | operator>= (NotCmpIntegerType rhs) const
bool | operator== (NotCmpIntegerType rhs) const
bool | operator!= (NotCmpIntegerType rhs) const
operator NotCastIntegerType () const
Me & | operator= (const NotAssignIntegerType &)

Private 変数

int | m_value

Static Private 変数

static const int | NOT_STRICT_ID = (1-STRICT_ID)

構成

struct | AddsubInteger
struct | AddsubInteger< false >
struct | AddsubInteger< true >
struct | AssignInteger
struct | AssignInteger< false >
struct | AssignInteger< true >
struct | CastInteger
struct | CastInteger< false >
struct | CastInteger< true >
class | CDummy
ゴミクラス [詳細]
struct | CmpInteger
struct | CmpInteger< false >
struct | CmpInteger< true >

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
class CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >

暗黙の変換を許さない、整数クラス

CStrictInteger.h の 56 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::Me [private]

CStrictInteger.h の 64 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef AddsubInteger< ALLOW_ADDSUB_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubIntegerType [private]

CStrictInteger.h の 150 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef AddsubInteger<!ALLOW_ADDSUB_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::NotAddsubIntegerType [private]

CStrictInteger.h の 151 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CmpInteger< ALLOW_CMP_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpIntegerType [private]

CStrictInteger.h の 170 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CmpInteger<!ALLOW_CMP_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::NotCmpIntegerType [private]

CStrictInteger.h の 171 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CastInteger< ALLOW_CAST_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastIntegerType [private]

CStrictInteger.h の 194 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CastInteger<!ALLOW_CAST_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::NotCastIntegerType [private]

CStrictInteger.h の 195 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef AssignInteger< ALLOW_ASSIGNOP_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignIntegerType [private]

CStrictInteger.h の 208 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef AssignInteger<!ALLOW_ASSIGNOP_INT>::Type CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::NotAssignIntegerType [private]

CStrictInteger.h の 209 行で定義されています。

コンストラクタとデストラクタ

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CStrictInteger ( ) [inline]

CStrictInteger.h の 76 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CStrictInteger ( const Me & rhs ) [inline]

CStrictInteger.h の 77 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CStrictInteger ( int value ) [inline, explicit]

CStrictInteger.h の 80 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

関数

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+= ( const Me & rhs ) [inline]

CStrictInteger.h の 83 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-= ( const Me & rhs ) [inline]

CStrictInteger.h の 84 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator *= ( int n ) [inline]

CStrictInteger.h の 85 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator/= ( int n ) [inline]

CStrictInteger.h の 86 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator%= ( int n ) [inline]

CStrictInteger.h の 87 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator%= ( const Me & rhs ) [inline]

CStrictInteger.h の 88 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+ ( const Me & rhs ) const [inline]

CStrictInteger.h の 91 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator- ( const Me & rhs ) const [inline]

CStrictInteger.h の 92 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator * ( int n ) const [inline]

CStrictInteger.h の 93 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator/ ( int n ) const [inline]

CStrictInteger.h の 94 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator% ( int n ) const [inline]

CStrictInteger.h の 95 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator% ( const Me & rhs ) const [inline]

CStrictInteger.h の 96 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator++ ( ) [inline]

CStrictInteger.h の 99 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator++ ( int ) [inline]

CStrictInteger.h の 100 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-- ( ) [inline]

CStrictInteger.h の 101 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-- ( int ) [inline]

CStrictInteger.h の 102 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator- ( ) const [inline]

CStrictInteger.h の 105 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator= ( const Me & rhs ) [inline]

CStrictInteger.h の 108 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator< ( const Me & rhs ) const [inline]

CStrictInteger.h の 111 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<= ( const Me & rhs ) const [inline]

CStrictInteger.h の 112 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator> ( const Me & rhs ) const [inline]

CStrictInteger.h の 113 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>= ( const Me & rhs ) const [inline]

CStrictInteger.h の 114 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator== ( const Me & rhs ) const [inline]

CStrictInteger.h の 115 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator!= ( const Me & rhs ) const [inline]

CStrictInteger.h の 116 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::GetValue ( ) const [inline]

CStrictInteger.h の 119 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
void CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::SetValue ( int n ) [inline]

CStrictInteger.h の 120 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator Int ( ) const [inline]

CStrictInteger.h の 123 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) [inline, private]

CStrictInteger.h の 132 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) [inline, private]

CStrictInteger.h の 133 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+ ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 134 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator- ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 135 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) [inline, private]

CStrictInteger.h の 136 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator< ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 137 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 138 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator> ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 139 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 140 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator== ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 141 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool B0, bool B1, bool B2, bool B3>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator!= ( const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > & ) const [inline, private]

CStrictInteger.h の 142 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+= ( AddsubIntegerType rhs ) [inline]

CStrictInteger.h の 153 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-= ( AddsubIntegerType rhs ) [inline]

CStrictInteger.h の 154 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+ ( AddsubIntegerType rhs ) const [inline]

CStrictInteger.h の 155 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator- ( AddsubIntegerType rhs ) const [inline]

CStrictInteger.h の 156 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+= ( NotAddsubIntegerType rhs ) [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-= ( NotAddsubIntegerType rhs ) [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+ ( NotAddsubIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator- ( NotAddsubIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator< ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 173 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<= ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 174 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator> ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 175 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>= ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 176 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator== ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 177 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator!= ( CmpIntegerType rhs ) const [inline]

CStrictInteger.h の 178 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator< ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<= ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator> ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>= ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator== ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
bool CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator!= ( NotCmpIntegerType rhs ) const [private]

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator CastIntegerType ( ) const [inline]

CStrictInteger.h の 197 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator NotCastIntegerType ( ) const [inline, private]

CStrictInteger.h の 200 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator= ( const AssignIntegerType & rhs ) [inline]

CStrictInteger.h の 211 行で定義されています。

参照先 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value.

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
Me& CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator= ( const NotAssignIntegerType & ) [private]

変数

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
const int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::NOT_STRICT_ID = (1-STRICT_ID) [static, private]

CStrictInteger.h の 65 行で定義されています。

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::m_value [private]

CStrictInteger.h の 219 行で定義されています。

参照元 CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CStrictInteger(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::GetValue(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator *=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator CastIntegerType(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator Int(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator!=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator%=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator++(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator+=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator--(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator-=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator/=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator<=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator=(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator==(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>(), CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::operator>=(), と CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::SetValue().

このクラスの説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >継承メンバも含んでいます。

AddsubIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
AssignIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
CastIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
CmpIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
CStrictInteger() | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
CStrictInteger(const Me &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
CStrictInteger(int value) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, explicit]
GetValue() const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
m_value | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
Me typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
NOT_STRICT_ID | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private, static]
NotAddsubIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
NotAssignIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
NotCastIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
NotCmpIntegerType typedef | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator *(int n) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator *=(int n) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator CastIntegerType() const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator Int() const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator NotCastIntegerType() const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator!=(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator!=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator!=(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator!=(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator%(int n) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator%(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator%=(int n) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator%=(const Me &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator+(AddsubIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+(NotAddsubIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator++() | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator++(int) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+=(const Me &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator+=(AddsubIntegerType rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator+=(NotAddsubIntegerType rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator-(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-() const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator-(AddsubIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-(NotAddsubIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator--() | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator--(int) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-=(const Me &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator-=(AddsubIntegerType rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator-=(NotAddsubIntegerType rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator/(int n) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator/=(int n) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator<(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator<(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator<(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator<(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator<=(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator<=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator<=(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator<=(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator=(const Me &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator=(const AssignIntegerType &rhs) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator=(const NotAssignIntegerType &) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator==(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator==(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator==(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator==(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator>(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator>(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator>(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator>(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
operator>=(const Me &rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator>=(const CStrictInteger< NOT_STRICT_ID, B0, B1, B2, B3 > &) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline, private]
operator>=(CmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]
operator>=(NotCmpIntegerType rhs) const | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [private]
SetValue(int n) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > | [inline]

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AddsubInteger

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW >

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool ALLOW>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW >

CStrictInteger.h の 147 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AddsubInteger< false >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >

すべてのメンバ一覧

Public 型

typedef CDummy Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >

CStrictInteger.h の 149 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CDummy CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >::Type

CStrictInteger.h の 149 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AddsubInteger< true >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >

すべてのメンバ一覧

Public 型

typedef int Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >

CStrictInteger.h の 148 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >::Type

CStrictInteger.h の 148 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AssignInteger

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW >

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool ALLOW>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW >

CStrictInteger.h の 205 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AssignInteger< false >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >

すべてのメンバ一覧

Public 型

typedef CDummy Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >

CStrictInteger.h の 207 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CDummy CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >::Type

CStrictInteger.h の 207 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::AssignInteger< true >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >

すべてのメンバ一覧

Public 型

typedef int Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >

CStrictInteger.h の 206 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >::Type

CStrictInteger.h の 206 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >

Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CastInteger

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW >

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool ALLOW>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW >

CStrictInteger.h の 191 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CastInteger< false >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >

すべてのメンバ一覧

Public 型

typedef CDummy Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >

CStrictInteger.h の 193 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CDummy CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >::Type

CStrictInteger.h の 193 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CastInteger< true >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >

すべてのメンバ一覧

Public 型

typedef int Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >

CStrictInteger.h の 192 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >::Type

CStrictInteger.h の 192 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CDummy

クラス CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy

ゴミクラス [詳細]

すべてのメンバ一覧

Public メソッド

CDummy ()
CDummy (int)

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
class CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy

ゴミクラス

CStrictInteger.h の 69 行で定義されています。

コンストラクタとデストラクタ

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy::CDummy ( )

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy::CDummy ( int )

このクラスの説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy継承メンバも含んでいます。

CDummy() | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy
CDummy(int) | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CmpInteger

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW >

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<bool ALLOW>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW >

CStrictInteger.h の 167 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CmpInteger< false >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >

すべてのメンバ一覧

Public 型

typedef CDummy Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >

CStrictInteger.h の 169 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef CDummy CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >::Type

CStrictInteger.h の 169 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >

  • 構成
  • クラス階層
  • 構成メンバ
CStrictInteger::CmpInteger< true >

構造体 テンプレート CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >

すべてのメンバ一覧

Public 型

typedef int Type

説明

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
template<>
struct CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >

CStrictInteger.h の 168 行で定義されています。

型定義

template<int STRICT_ID, bool ALLOW_CMP_INT, bool ALLOW_ADDSUB_INT, bool ALLOW_CAST_INT, bool ALLOW_ASSIGNOP_INT>
typedef int CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >::Type

CStrictInteger.h の 168 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CStrictInteger.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true > メンバ一覧

これは全メンバの一覧です。CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >継承メンバも含んでいます。

Type typedef CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >

#include <CStrictPoint.h>

すべてのメンバ一覧

Public 型

typedef INT_TYPE | IntType
typedef SUPER_INT_TYPE | SuperIntType

Public メソッド

CStrictPoint ()
CStrictPoint (int _x, int _y)
CStrictPoint (const SUPER &rhs)
template<class SRC>
CStrictPoint (const SRC &rhs)
CStrictPoint & | operator+= (const SUPER &rhs)
CStrictPoint & | operator-= (const SUPER &rhs)
CStrictPoint & | operator *= (int n)
CStrictPoint & | operator/= (int n)
CStrictPoint | operator+ (const SUPER &rhs) const
CStrictPoint | operator- (const SUPER &rhs) const
CStrictPoint | operator * (int n) const
CStrictPoint | operator/ (int n) const
CStrictPoint & | operator= (const SUPER &rhs)
bool | operator== (const SUPER &rhs) const
bool | operator!= (const SUPER &rhs) const
void | Clear ()
void | Set (INT_TYPE _x, INT_TYPE _y)
void | Set (const SUPER &pt)
void | SetX (INT_TYPE _x)
void | SetY (INT_TYPE _y)
void | Offset (int _x, int _y)
void | Offset (const SUPER &pt)
SuperIntType | GetX () const
SuperIntType | GetY () const
SUPER | Get () const
INT_TYPE | GetX2 () const
INT_TYPE | GetY2 () const
bool | HasNegative () const
x,y いずれかが 0 より小さい場合に true を返す
bool | BothNatural () const
x,y どちらも自然数であれば true
POINT | GetPOINT () const

Private 型

typedef CStrictPoint< SUPER,
INT_TYPE > 		Me

説明

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
class CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >

CStrictPoint.h の 16 行で定義されています。

型定義

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
typedef CStrictPoint<SUPER, INT_TYPE> CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Me [private]

CStrictPoint.h の 18 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
typedef INT_TYPE CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::IntType

CStrictPoint.h の 20 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
typedef SUPER_INT_TYPE CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SuperIntType

CStrictPoint.h の 21 行で定義されています。

コンストラクタとデストラクタ

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::CStrictPoint ( ) [inline]

CStrictPoint.h の 24 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::CStrictPoint | ( | int | _x,
 |  | int | _y |
 | ) |  |  | [inline]

CStrictPoint.h の 25 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::CStrictPoint ( const SUPER & rhs ) [inline]

CStrictPoint.h の 29 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
template<class SRC>
CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::CStrictPoint ( const SRC & rhs ) [inline, explicit]

CStrictPoint.h の 33 行で定義されています。

関数

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint& CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator+= ( const SUPER & rhs ) [inline]

CStrictPoint.h の 36 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint& CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator-= ( const SUPER & rhs ) [inline]

CStrictPoint.h の 37 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint& CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator *= ( int n ) [inline]

CStrictPoint.h の 38 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint& CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator/= ( int n ) [inline]

CStrictPoint.h の 39 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator+ ( const SUPER & rhs ) const [inline]

CStrictPoint.h の 42 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator- ( const SUPER & rhs ) const [inline]

CStrictPoint.h の 43 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator * ( int n ) const [inline]

CStrictPoint.h の 44 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator/ ( int n ) const [inline]

CStrictPoint.h の 45 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
CStrictPoint& CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator= ( const SUPER & rhs ) [inline]

CStrictPoint.h の 48 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
bool CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator== ( const SUPER & rhs ) const [inline]

CStrictPoint.h の 51 行で定義されています。

参照元 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator!=().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
bool CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator!= ( const SUPER & rhs ) const [inline]

CStrictPoint.h の 52 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::operator==().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Clear ( ) [inline]

CStrictPoint.h の 55 行で定義されています。

参照元 CLayoutMgr::LogicToLayout().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set | ( | INT_TYPE | _x,
 |  | INT_TYPE | _y |
 | ) |  |  | [inline]

CStrictPoint.h の 56 行で定義されています。

参照元 CTextArea::ClientToLayout(), CEditView::ConvSelectedArea(), COpe::COpe(), CEditView::Create(), CCaret::GetAdjustCursorPos(), CLayoutMgr::GetEndLayoutPos(), CEditDoc::GetFileInfo(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CCaret::MoveCursorProperly(), CShareData::ShareData_IO_Mru(), と CEditView::TagJumpSub().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set ( const SUPER & pt ) [inline]

CStrictPoint.h の 57 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SetX ( INT_TYPE _x ) [inline]

CStrictPoint.h の 58 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos(), と CCaret::MoveCursorProperly().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::SetY ( INT_TYPE _y ) [inline]

CStrictPoint.h の 59 行で定義されています。

参照元 CLayoutMgr::LogicToLayout().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Offset | ( | int | _x,
 |  | int | _y |
 | ) |  |  | [inline]

CStrictPoint.h の 60 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
void CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Offset ( const SUPER & pt ) [inline]

CStrictPoint.h の 61 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
SuperIntType CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX ( ) const [inline]

CStrictPoint.h の 64 行で定義されています。

参照元 CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CEditView::DeleteData(), CEditView::DeleteData2(), CViewSelect::DisableSelectArea(), CRuler::DispRuler(), CCaret::DrawCaretPosInfo(), CRuler::DrawRulerCaret(), CCaret::MoveCursor(), CEditView::ReplaceData_CEditView(), と CEditView::SmartIndent_CPP().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
SuperIntType CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY ( ) const [inline]

CStrictPoint.h の 65 行で定義されています。

参照元 CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CViewCommander::Command_TRIM(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), と CCaret::DrawCaretPosInfo().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
SUPER CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Get ( ) const [inline]

CStrictPoint.h の 66 行で定義されています。

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
INT_TYPE CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2 ( ) const [inline]

CStrictPoint.h の 67 行で定義されています。

参照元 CLayout::CalcLayoutWidth(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::DeleteData2(), CLayoutMgr::DeleteLayoutAsLogical(), CEditView::DispTextSelected(), CLayoutMgr::DoLayout_Range(), CEditDoc::FileRead(), CViewParser::GetCurrentWord(), CLayoutMgr::GetEndLayoutPos(), CViewParser::GetLeftWord(), CLayout::GetLogicOffset(), CNormalProcess::Initialize(), CEditView::InsertData_CEditView(), CEditView::IsCurrentPositionURL(), CEditView::ISearchExec(), CLayoutMgr::LayoutToLogic(), CCaret::MoveCursor(), CCaret::MoveCursorProperly(), CEditView::MoveCursorSelecting(), CCaret::MoveCursorToClientPoint(), CEditView::OnSetFocus(), CEditWnd::RestorePhysPosOfAllView(), CDocLineMgr::SearchWord(), CEditView::ShowHokanMgr(), と TwoPointToRect().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
INT_TYPE CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2 ( ) const [inline]

CStrictPoint.h の 68 行で定義されています。

参照元 CEditView::CaretUnderLineON(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_COMPARE(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::DeleteData2(), CLayoutMgr::DeleteLayoutAsLogical(), CEditWnd::DispatchEvent(), CLayoutMgr::DoLayout_Range(), CEditDoc::FileRead(), CCaret::GetAdjustCursorPos(), CViewParser::GetCurrentWord(), CViewParser::GetLeftWord(), CLayout::GetLogicLineNo(), CMacro::HandleFunction(), CNormalProcess::Initialize(), CEditView::InsertData_CEditView(), CEditView::IsCurrentPositionURL(), CEditView::ISearchExec(), CLayoutMgr::IsEndOfLine(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), 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(), CCaret::MoveCursorProperly(), CDlgFuncList::OnBnClicked(), CLayoutMgr::ReplaceData_CLayoutMgr(), CEditView::SearchBracket(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDocLineMgr::SearchWord(), CEditView::SetReconvertStruct(), CEditView::ShowHokanMgr(), と TwoPointToRect().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
bool CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::HasNegative ( ) const [inline]

x,y いずれかが 0 より小さい場合に true を返す

CStrictPoint.h の 71 行で定義されています。

参照元 COpeBlk::AppendOpe().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
bool CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::BothNatural ( ) const [inline]

x,y どちらも自然数であれば true

CStrictPoint.h の 77 行で定義されています。

参照元 CViewCommander::Command_JUMP_SRCHSTARTPOS(), と IsFuncEnable().

template<class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE>
POINT CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetPOINT ( ) const [inline]

CStrictPoint.h の 83 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CStrictPoint.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > メンバ一覧

これは全メンバの一覧です。CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >継承メンバも含んでいます。

BothNatural() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
Clear() | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
CStrictPoint() | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
CStrictPoint(int _x, int _y) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
CStrictPoint(const SUPER &rhs) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
CStrictPoint(const SRC &rhs) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline, explicit]
Get() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
GetPOINT() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
GetX() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
GetX2() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
GetY() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
GetY2() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
HasNegative() const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
IntType typedef | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > |
Me typedef | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [private]
Offset(int _x, int _y) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
Offset(const SUPER &pt) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator *(int n) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator *=(int n) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator!=(const SUPER &rhs) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator+(const SUPER &rhs) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator+=(const SUPER &rhs) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator-(const SUPER &rhs) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator-=(const SUPER &rhs) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator/(int n) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator/=(int n) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator=(const SUPER &rhs) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
operator==(const SUPER &rhs) const | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
Set(INT_TYPE _x, INT_TYPE _y) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
Set(const SUPER &pt) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
SetX(INT_TYPE _x) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
SetY(INT_TYPE _y) | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > | [inline]
SuperIntType typedef | CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > |

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CStrictRect< INT_TYPE, POINT_TYPE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CStrictRect< INT_TYPE, POINT_TYPE >

#include <CStrictRect.h>

すべてのメンバ一覧

Public 型

typedef INT_TYPE | IntType
typedef POINT_TYPE | PointType

Public メソッド

PointType | UpperLeft () const
左上座標 (TopLeft)
PointType | LowerRight () const
右下座標 (BottomRight)
bool | PtInRect (const PointType &pt) const
ヒットチェック

Public 変数

IntType left
IntType top
IntType right
IntType bottom

Private 型

typedef CStrictRect< INT_TYPE,
POINT_TYPE > 		Me

説明

template<class INT_TYPE, class POINT_TYPE>
class CStrictRect< INT_TYPE, POINT_TYPE >

CStrictRect.h の 3 行で定義されています。

型定義

template<class INT_TYPE, class POINT_TYPE>
typedef CStrictRect<INT_TYPE, POINT_TYPE> CStrictRect< INT_TYPE, POINT_TYPE >::Me [private]

CStrictRect.h の 5 行で定義されています。

template<class INT_TYPE, class POINT_TYPE>
typedef INT_TYPE CStrictRect< INT_TYPE, POINT_TYPE >::IntType

CStrictRect.h の 7 行で定義されています。

template<class INT_TYPE, class POINT_TYPE>
typedef POINT_TYPE CStrictRect< INT_TYPE, POINT_TYPE >::PointType

CStrictRect.h の 8 行で定義されています。

関数

template<class INT_TYPE, class POINT_TYPE>
PointType CStrictRect< INT_TYPE, POINT_TYPE >::UpperLeft ( ) const [inline]

左上座標 (TopLeft)

CStrictRect.h の 18 行で定義されています。

参照先 CStrictRect< INT_TYPE, POINT_TYPE >::left, と CStrictRect< INT_TYPE, POINT_TYPE >::top.

参照元 CEditView::ConvSelectedArea().

template<class INT_TYPE, class POINT_TYPE>
PointType CStrictRect< INT_TYPE, POINT_TYPE >::LowerRight ( ) const [inline]

右下座標 (BottomRight)

CStrictRect.h の 23 行で定義されています。

参照先 CStrictRect< INT_TYPE, POINT_TYPE >::bottom, と CStrictRect< INT_TYPE, POINT_TYPE >::right.

template<class INT_TYPE, class POINT_TYPE>
bool CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect ( const PointType & pt ) const [inline]

ヒットチェック

CStrictRect.h の 29 行で定義されています。

参照先 CStrictRect< INT_TYPE, POINT_TYPE >::bottom, CStrictRect< INT_TYPE, POINT_TYPE >::left, CStrictRect< INT_TYPE, POINT_TYPE >::right, と CStrictRect< INT_TYPE, POINT_TYPE >::top.

参照元 CEditView::IsCurrentPositionSelected().

変数

template<class INT_TYPE, class POINT_TYPE>
IntType CStrictRect< INT_TYPE, POINT_TYPE >::left

CStrictRect.h の 11 行で定義されています。

参照元 CEditView::ConvSelectedArea(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::GetSelectedData(), CEditView::IsCurrentPositionSelected(), CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect(), と CStrictRect< INT_TYPE, POINT_TYPE >::UpperLeft().

template<class INT_TYPE, class POINT_TYPE>
IntType CStrictRect< INT_TYPE, POINT_TYPE >::top

CStrictRect.h の 12 行で定義されています。

参照元 CEditView::ConvSelectedArea(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::GetSelectedData(), CEditView::IsCurrentPositionSelected(), CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect(), と CStrictRect< INT_TYPE, POINT_TYPE >::UpperLeft().

template<class INT_TYPE, class POINT_TYPE>
IntType CStrictRect< INT_TYPE, POINT_TYPE >::right

CStrictRect.h の 13 行で定義されています。

参照元 CEditView::ConvSelectedArea(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::GetSelectedData(), CEditView::IsCurrentPositionSelected(), CStrictRect< INT_TYPE, POINT_TYPE >::LowerRight(), と CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect().

template<class INT_TYPE, class POINT_TYPE>
IntType CStrictRect< INT_TYPE, POINT_TYPE >::bottom

CStrictRect.h の 14 行で定義されています。

参照元 CEditView::ConvSelectedArea(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::GetSelectedData(), CEditView::IsCurrentPositionSelected(), CStrictRect< INT_TYPE, POINT_TYPE >::LowerRight(), と CStrictRect< INT_TYPE, POINT_TYPE >::PtInRect().

このクラスの説明は次のファイルから生成されました:
  • CStrictRect.h
Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStrictRect< INT_TYPE, POINT_TYPE > メンバ一覧

これは全メンバの一覧です。CStrictRect< INT_TYPE, POINT_TYPE >継承メンバも含んでいます。

bottom | CStrictRect< INT_TYPE, POINT_TYPE > |
IntType typedef | CStrictRect< INT_TYPE, POINT_TYPE > |
left | CStrictRect< INT_TYPE, POINT_TYPE > |
LowerRight() const | CStrictRect< INT_TYPE, POINT_TYPE > | [inline]
Me typedef | CStrictRect< INT_TYPE, POINT_TYPE > | [private]
PointType typedef | CStrictRect< INT_TYPE, POINT_TYPE > |
PtInRect(const PointType &pt) const | CStrictRect< INT_TYPE, POINT_TYPE > | [inline]
right | CStrictRect< INT_TYPE, POINT_TYPE > |
top | CStrictRect< INT_TYPE, POINT_TYPE > |
UpperLeft() const | CStrictRect< INT_TYPE, POINT_TYPE > | [inline]

Sakura-Editorに対してSat Nov 17 20:29:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CStringRef

  • 構成
  • クラス階層
  • 構成メンバ

クラス CStringRef

文字列への参照を保持するクラス [詳細]

#include <CNativeW.h>

CStringRefに対する継承グラフ

[凡例]
CStringRefのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CStringRef (const wchar_t *pData, int nDataLen)
const wchar_t * | GetPtr () const
int | GetLength () const

Private 変数

const wchar_t * | m_pData
int | m_nDataLen

説明

文字列への参照を保持するクラス

CNativeW.h の 142 行で定義されています。

コンストラクタとデストラクタ

CStringRef::CStringRef | ( | const wchar_t * | pData,
 |  | int | nDataLen |
 | ) |  |  | [inline]

CNativeW.h の 144 行で定義されています。

関数

const wchar_t* CStringRef::GetPtr ( void ) const [inline, virtual]

IStringRefを実装しています。

CNativeW.h の 145 行で定義されています。

参照先 m_pData.

int CStringRef::GetLength ( ) const [inline, virtual]

IStringRefを実装しています。

CNativeW.h の 146 行で定義されています。

参照先 m_nDataLen.

変数

const wchar_t* CStringRef::m_pData [private]

CNativeW.h の 148 行で定義されています。

参照元 GetPtr().

int CStringRef::m_nDataLen [private]

CNativeW.h の 149 行で定義されています。

参照元 GetLength().

このクラスの説明は次のファイルから生成されました:
  • CNativeW.h
Sakura-Editorに対してSat Nov 17 20:29:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CStringRef メンバ一覧

これは全メンバの一覧です。CStringRef継承メンバも含んでいます。

CStringRef(const wchar_t *pData, int nDataLen) | CStringRef | [inline]
GetLength() const | CStringRef | [inline, virtual]
GetPtr() const | CStringRef | [inline, virtual]
m_nDataLen | CStringRef | [private]
m_pData | CStringRef | [private]

Sakura-Editorに対してSat Nov 17 20:29:08 2007に生成されました。 doxygen 1.5.4


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]

Protected 型

enum | DragState { DRAG_NONE, DRAG_CHECK, DRAG_DRAG }
enum | CaptureSrc { CAPT_NONE, CAPT_CLOSE }
typedef HIMAGELIST(WINAPI * | FN_ImageList_Duplicate )(HIMAGELIST himl)

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 | 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)

Private 変数

DragState m_eDragState
ドラッグ状態
int | m_nSrcTab
移動元タブ
POINT | m_ptSrcCursor
ドラッグ開始カーソル位置
FN_ImageList_Duplicate m_RealImageList_Duplicate
HIMAGELIST | m_hIml
イメージリスト
HICON | m_hIconApp
アプリケーションアイコン
HICON | m_hIconGrep
Grepアイコン
int | m_iIconApp
アプリケーションアイコンのインデックス
int | m_iIconGrep
Grepアイコンのインデックス
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 行で定義されています。

型定義

typedef HIMAGELIST(WINAPI * CTabWnd::FN_ImageList_Duplicate)(HIMAGELIST himl) [protected]

列挙型

enum CTabWnd::DragState [protected]

列挙型の値:
DRAG_NONE
DRAG_CHECK
DRAG_DRAG

CTabWnd.h の 146 行で定義されています。

enum CTabWnd::CaptureSrc [protected]

列挙型の値:
CAPT_NONE
CAPT_CLOSE

CTabWnd.h の 147 行で定義されています。

コンストラクタとデストラクタ

CTabWnd::CTabWnd ( )

CTabWnd.cpp の 630 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), gm_pOldWndProc, m_hFont, m_hIml, m_hwndTab, m_hwndToolTip, m_pShareData, m_pszClassName, m_RealImageList_Duplicate, と NULL.

CTabWnd::~CTabWnd ( ) [virtual]

CTabWnd.cpp の 657 行で定義されています。

関数

HWND CTabWnd::Open | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent
 | ) |  |

ウィンドウ オープン

CTabWnd.cpp の 663 行で定義されています。

参照先 _tcscpy(), CAPT_NONE, CWnd::Create(), DRAG_NONE, FALSE, CWnd::GetAppInstance(), CWnd::GetHwnd(), 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, m_hwndTab, m_hwndToolTip, m_pszClassName, MAX_TABITEM_WIDTH, NULL, Refresh(), CWnd::RegisterWC(), SendMessageAny, SetWindowLongPtr, TAB_ITEM_HEIGHT, TAB_MARGIN_LEFT, TAB_MARGIN_TOP, TAB_WINDOW_HEIGHT, TabWndProc(), と TRUE.

参照元 CEditWnd::LayoutTabBar().

void CTabWnd::Close ( void )

ウィンドウ クローズ

CTabWnd.cpp の 810 行で定義されています。

参照先 CWnd::DestroyWindow(), CWnd::GetHwnd(), gm_pOldWndProc, GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, m_hwndTab, m_hwndToolTip, NULL, と SetWindowLongPtr.

参照元 CEditWnd::LayoutTabBar().

void CTabWnd::TabWindowNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CTabWnd.cpp の 1319 行で定義されています。

参照先 _countof, _tcscpy(), AdjustWindowPlacement(), BOOL, BreakDrag(), FALSE, FindTabIndexByHWND(), ForceActiveWindow(), CShareData::GetEditNode(), CWnd::GetHwnd(), GetImageIndex(), CShareData::getInstance(), CWnd::GetParentHwnd(), GetTabName(), HideOtherWindows(), LayoutTab(), m_hwndTab, NULL, Refresh(), SendMessageAny, ShowHideWindow(), TabWnd_ActivateFrameWindow(), TRUE, TWNT_ADD, TWNT_DEL, TWNT_FILE, TWNT_MODE_DISABLE, TWNT_MODE_ENABLE, TWNT_ORDER, TWNT_REFRESH, と TWNT_WNDPL_ADJUST.

参照元 CEditWnd::DispatchEvent().

void CTabWnd::Refresh | ( | BOOL | bEnsureVisible = TRUE,
 |  | BOOL | bRebuild = FALSE
 | ) |  |

タブリストを再表示する

日付:
2004.06.19 genta &が含まれているファイル名が正しく表示されない

2006.02.06 ryoji 選択タブを指定するHWND引数およびその処理は不要なので削除（自ウィンドウを常時選択）

2006.06.24 ryoji スクロールしないで更新する方法を変更

CTabWnd.cpp の 1560 行で定義されています。

参照先 _countof, _tcscpy(), FALSE, GetImageIndex(), CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CWnd::GetParentHwnd(), GetTabName(), CWnd::m_hWnd, m_hwndTab, EditNode::m_nGroup, NULL, PostMessageAny, SendMessageAny, と TRUE.

参照元 CEditWnd::DispatchEvent(), LayoutTab(), Open(), と TabWindowNotify().

void CTabWnd::NextGroup ( void )

次のグループをアクティブにする

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2587 行で定義されています。

参照先 ActivateFrameWindow(), と GetNextGroupWnd().

参照元 CViewCommander::Command_NEXTGROUP().

void CTabWnd::PrevGroup ( void )

前のグループをアクティブにする

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2599 行で定義されています。

参照先 ActivateFrameWindow(), と GetPrevGroupWnd().

参照元 CViewCommander::Command_PREVGROUP().

void CTabWnd::MoveRight ( void )

タブを右に移動する

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2611 行で定義されています。

参照先 FindTabIndexByHWND(), CWnd::GetParentHwnd(), CommonSetting_TabBar::m_bDispTabWnd, DLLSHAREDATA::m_Common, m_hwndTab, m_pShareData, CommonSetting::m_sTabBar, と ReorderTab().

参照元 CViewCommander::Command_TAB_MOVERIGHT().

void CTabWnd::MoveLeft ( void )

タブを左に移動する

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2630 行で定義されています。

参照先 FindTabIndexByHWND(), CWnd::GetParentHwnd(), CommonSetting_TabBar::m_bDispTabWnd, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sTabBar, と ReorderTab().

参照元 CViewCommander::Command_TAB_MOVELEFT().

void CTabWnd::Separate ( void )

新規グループを作成する（現在のグループから分離）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2648 行で定義されています。

参照先 GetMonitorWorkRect(), CWnd::GetParentHwnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sTabBar, NULL, と SeparateGroup().

参照元 CViewCommander::Command_TAB_SEPARATE().

void CTabWnd::JoinNext ( void )

次のグループに移動する（現在のグループから分離、結合）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2693 行で定義されています。

参照先 GetNextGroupWnd(), CWnd::GetParentHwnd(), と SeparateGroup().

参照元 CViewCommander::Command_TAB_JOINTNEXT().

void CTabWnd::JoinPrev ( void )

前のグループに移動する（現在のグループから分離、結合）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2708 行で定義されています。

参照先 CWnd::GetParentHwnd(), GetPrevGroupWnd(), と SeparateGroup().

参照元 CViewCommander::Command_TAB_JOINTPREV().

LRESULT CTabWnd::TabWndDispatchEvent | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CTabWnd.cpp の 122 行で定義されています。

参照先 CWnd::GetHwnd(), IsVisualStyle(), m_bVisualStyle, NULL, OnTabCaptureChanged(), OnTabLButtonDown(), OnTabLButtonUp(), OnTabMButtonDown(), OnTabMButtonUp(), OnTabMouseMove(), OnTabNotify(), OnTabRButtonDown(), OnTabRButtonUp(), TRUE, と WM_THEMECHANGED.

参照元 TabWndProc().

LRESULT CTabWnd::TabListMenu | ( | POINT | pt,
 |  | BOOL | bSel = TRUE,
 |  | BOOL | bFull = FALSE,
 |  | BOOL | bOtherGroup = TRUE
 | ) |  |

タブ一覧メニュー作成処理

タブ一覧表示処理

引数:
pt | [in] 表示位置
bSel | [in] 表示切替メニューを追加する
bFull | [in] パス名で表示する（bSelがTRUEの場合は無効）
bOtherGroup | [in] 他グループのウィンドウも表示する
日付:
2006.02.01 ryoji 新規作成

2006.03.23 fon OnListBtnClickから移動(行頭の//>が変更部)

2006.10.31 ryoji メニューのフルパス名を簡易表示する

2007.02.28 ryoji タブ名一覧／パス名一覧の表示をメニュー自身で切り替える

2007.06.28 ryoji グループ化対応（他グループのウィンドウを表示する／しない）

CTabWnd.cpp の 2331 行で定義されています。

参照先 _countof, ActivateFrameWindow(), compTABMENU_DATA(), CWnd::GetHwnd(), GetImageIndex(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetOpenedWindowArr(), CWnd::GetParentHwnd(), GetTabName(), TABMENU_DATA::hwnd, IDM_SELWINDOW, TABMENU_DATA::iImage, TABMENU_DATA::iItem, CommonSetting_TabBar::m_bSortTabList, CommonSetting_TabBar::m_bTab_ListFull, DLLSHAREDATA::m_Common, m_hIml, EditNode::m_hWnd, CWnd::m_hWnd, EditNode::m_nGroup, m_pShareData, CommonSetting::m_sTabBar, NULL, と TRUE.

参照元 OnLButtonDown(), OnRButtonDown(), と CEditWnd::PopupWinList().

int CTabWnd::FindTabIndexByHWND ( HWND hWnd ) [protected]

指定のウインドウハンドル情報を持つタブ位置を探す

CTabWnd.cpp の 1533 行で定義されています。

参照先 m_hwndTab, と NULL.

参照元 MoveLeft(), MoveRight(), OnTabLButtonUp(), と TabWindowNotify().

void CTabWnd::AdjustWindowPlacement ( void ) [protected]

編集ウィンドウの位置合わせ

編集ウィンドウの位置合わせ

作者:
ryoji
日付:
2007.04.03 新規作成

CTabWnd.cpp の 1697 行で定義されています。

参照先 CShareData::getInstance(), CWnd::GetParentHwnd(), CShareData::GetTopEditNode(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, EditNode::m_hWnd, m_pShareData, EditNode::m_showCmdRestore, CommonSetting::m_sTabBar, と NULL.

参照元 TabWindowNotify().

void CTabWnd::ShowHideWindow | ( | HWND | hwnd,
 |  | BOOL | bDisp |
 | ) |  |  | [protected]

CTabWnd.cpp の 1757 行で定義されています。

参照先 DWORD_PTR, FALSE, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_bEditWndChanging, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sTabBar, MYWM_TAB_WINDOW_NOTIFY, NULL, TabWnd_ActivateFrameWindow(), TRUE, と TWNT_WNDPL_ADJUST.

参照元 ExecTabCommand(), OnTabLButtonUp(), と TabWindowNotify().

void CTabWnd::HideOtherWindows ( HWND hwndExclude ) [protected]

他の編集ウィンドウを隠す

他の編集ウィンドウを隠す

引数:
hwndExclude [in] 非表示化から除外するウィンドウ
作者:
ryoji
日付:
2007.05.17 新規作成

CTabWnd.cpp の 1797 行で定義されています。

参照先 CShareData::getInstance(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, EditNode::m_hWnd, DLLSHAREDATA::m_nEditArrNum, DLLSHAREDATA::m_pEditArr, m_pShareData, と CommonSetting::m_sTabBar.

参照元 TabWindowNotify().

void CTabWnd::ForceActiveWindow ( HWND hwnd ) [protected]

ウインドウを強制的に前面に持ってくる

CTabWnd.cpp の 1820 行で定義されています。

参照先 FALSE, NULL, SPI_GETFOREGROUNDLOCKTIMEOUT, SPI_SETFOREGROUNDLOCKTIMEOUT, と TRUE.

参照元 TabWindowNotify().

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 の 1852 行で定義されています。

参照先 NULL.

参照元 ShowHideWindow(), と TabWindowNotify().

HWND CTabWnd::GetNextGroupWnd ( void ) [protected]

次のグループの先頭ウィンドウを探す

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2488 行で定義されています。

参照先 FALSE, CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CWnd::GetParentHwnd(), CShareData::GetTopEditWnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, CWnd::m_hWnd, m_pShareData, CommonSetting::m_sTabBar, NULL, と TRUE.

参照元 JoinNext(), と NextGroup().

HWND CTabWnd::GetPrevGroupWnd ( void ) [protected]

前のグループの先頭ウィンドウを探す

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2538 行で定義されています。

参照先 FALSE, CShareData::getInstance(), CShareData::GetOpenedWindowArr(), CWnd::GetParentHwnd(), CShareData::GetTopEditWnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, CWnd::m_hWnd, m_pShareData, CommonSetting::m_sTabBar, 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 の 2275 行で定義されています。

参照先 dupamp(), CShareData::getInstance(), CShareData::GetTransformFileNameFast(), EditNode::m_szFilePath, EditNode::m_szTabCaption, と NULL.

参照元 OnTabNotify(), Refresh(), TabListMenu(), と TabWindowNotify().

virtual void CTabWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

ウィンドウ作成後の処理

CWndを再定義しています。

CTabWnd.h の 89 行で定義されています。

LRESULT CTabWnd::OnSize | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_SIZE処理

CTabWnd.cpp の 835 行で定義されています。

参照先 FALSE, CWnd::GetHwnd(), LayoutTab(), m_hwndTab, NULL, TAB_MARGIN_LEFT, TAB_MARGIN_RIGHT, TAB_MARGIN_TOP, TAB_WINDOW_HEIGHT, と TRUE.

LRESULT CTabWnd::OnDestroy | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_DSESTROY処理

CTabWnd.cpp の 853 行で定義されています。

参照先 CWnd::_SetHwnd(), CWnd::DestroyWindow(), m_hFont, m_hIml, m_hwndTab, と NULL.

LRESULT CTabWnd::OnNotify | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_NOTIFY処理

WM_NOTIFY処理

日付:
2005.09.01 ryoji ウィンドウ切り替えは OnTabLButtonUp() に移動

CTabWnd.cpp の 1313 行で定義されています。

LRESULT CTabWnd::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_PAINT処理

WM_PAINT処理

日付:
2005.09.01 ryoji タブの上に境界線を追加

2006.01.30 ryoji 背景描画処理を追加（背景ブラシは NULL に変更）

2006.02.01 ryoji 一覧ボタンの描画処理を追加

2006.10.21 ryoji 閉じるボタンの描画処理を追加

2007.03.27 ryoji Windowsクラシックスタイルの場合はアクティブタブの上部にトップバンドを描画する

CTabWnd.cpp の 1240 行で定義されています。

参照先 DrawCloseBtn(), DrawListBtn(), CWnd::GetHwnd(), m_bVisualStyle, m_hwndTab, NULL, TAB_MARGIN_LEFT, と TAB_MARGIN_TOP.

LRESULT CTabWnd::OnCaptureChanged | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_CAPTURECHANGED 処理

WM_CAPTURECHANGED処理

日付:
2006.11.30 ryoji 新規作成

CTabWnd.cpp の 896 行で定義されています。

参照先 CAPT_NONE, と m_eCaptureSrc.

LRESULT CTabWnd::OnLButtonDown | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_LBUTTONDOWN処理

WM_LBUTTONDOWN処理

日付:
2006.02.01 ryoji 新規作成

2006.11.30 ryoji タブ一覧ボタンクリック関数を廃止して処理取り込み 閉じるボタン上ならキャプチャー開始

CTabWnd.cpp の 909 行で定義されています。

参照先 CAPT_CLOSE, FALSE, GetCloseBtnRect(), CWnd::GetHwnd(), GetListBtnRect(), m_eCaptureSrc, と TabListMenu().

LRESULT CTabWnd::OnLButtonUp | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_LBUTTONUP処理

WM_LBUTTONUP処理

日付:
2006.11.30 ryoji 新規作成

CTabWnd.cpp の 945 行で定義されています。

参照先 CAPT_CLOSE, CAPT_NONE, F_EXITALLEDITORS, F_GROUPCLOSE, F_WINCLOSE, GetCloseBtnRect(), CWnd::GetHwnd(), CWnd::GetParentHwnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_TabBar::m_bTab_CloseOneWin, DLLSHAREDATA::m_Common, m_eCaptureSrc, m_pShareData, CommonSetting::m_sTabBar, NULL, と PostMessageAny.

LRESULT CTabWnd::OnRButtonDown | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_RBUTTONDOWN処理

WM_RBUTTONDOWN処理

日付:
2006.02.01 ryoji 新規作成

2006.11.30 ryoji タブ一覧ボタンクリック関数を廃止して処理取り込み

CTabWnd.cpp の 995 行で定義されています。

参照先 FALSE, CWnd::GetHwnd(), GetListBtnRect(), TabListMenu(), と TRUE.

LRESULT CTabWnd::OnLButtonDblClk | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_LBUTTONDBLCLK処理

WM_LBUTTONDBLCLK処理

日付:
2006.03.26 ryoji 新規作成

CTabWnd.cpp の 886 行で定義されています。

参照先 F_FILENEW, CWnd::GetParentHwnd(), NULL, と SendMessageCmd.

LRESULT CTabWnd::OnMouseMove | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_MOUSEMOVE処理

WM_MOUSEMOVE処理

日付:
2006.02.01 ryoji 新規作成

2007.03.05 ryoji ボタンの出入りでツールチップを更新する

CTabWnd.cpp の 1122 行で定義されています。

参照先 _countof, _tcscpy(), BOOL, F_EXITALLEDITORS, F_GROUPCLOSE, FALSE, CWnd::GetAppInstance(), GetCloseBtnRect(), CWnd::GetHwnd(), GetListBtnRect(), m_bCloseBtnHilighted, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, m_bHovering, m_bListBtnHilighted, CommonSetting_TabBar::m_bTab_CloseOneWin, DLLSHAREDATA::m_Common, m_hwndToolTip, m_pShareData, CommonSetting::m_sTabBar, m_szTextTip1, と NULL.

LRESULT CTabWnd::OnTimer | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_TIMER処理

WM_TIMER処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 1214 行で定義されています。

参照先 SendMessageAny.

LRESULT CTabWnd::OnMeasureItem | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_MEASUREITEM処理

WM_MEASUREITEM処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 1021 行で定義されています。

参照先 CreateMenuFont(), CX_SMICON, と TABMENU_DATA::szText.

LRESULT CTabWnd::OnDrawItem | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected, virtual]

WM_DRAWITEM処理

WM_DRAWITEM処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 1049 行で定義されています。

参照先 CreateMenuFont(), CX_SMICON, CY_SMICON, TABMENU_DATA::iImage, m_hIml, NULL, と TABMENU_DATA::szText.

LRESULT CTabWnd::OnTabLButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_LBUTTONDOWN 処理

CTabWnd.cpp の 169 行で定義されています。

参照先 DRAG_CHECK, m_eDragState, m_hwndTab, m_nSrcTab, と m_ptSrcCursor.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabLButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_LBUTTONUP 処理

CTabWnd.cpp の 191 行で定義されています。

参照先 BreakDrag(), DRAG_CHECK, DRAG_DRAG, FindTabIndexByHWND(), GA_ROOT, CShareData::getInstance(), CWnd::GetParentHwnd(), CShareData::IsEditWnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, m_eDragState, m_hwndTab, m_nSrcTab, m_pShareData, m_ptSrcCursor, CommonSetting::m_sTabBar, MyGetAncestor(), NULL, ReorderTab(), SeparateGroup(), ShowHideWindow(), と TRUE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMouseMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_MOUSEMOVE 処理

CTabWnd.cpp の 258 行で定義されています。

参照先 DRAG_CHECK, DRAG_DRAG, GA_ROOT, CShareData::getInstance(), CWnd::GetParentHwnd(), IDC_CURSOR_TAB_JOIN, IDC_CURSOR_TAB_LEFT, IDC_CURSOR_TAB_RIGHT, IDC_CURSOR_TAB_SEPARATE, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, m_eDragState, m_hwndTab, m_nSrcTab, m_pShareData, CommonSetting::m_sTabBar, MyGetAncestor(), と NULL.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabCaptureChanged | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_CAPTURECHANGED 処理

CTabWnd.cpp の 319 行で定義されています。

参照先 DRAG_NONE, と m_eDragState.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabRButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_RBUTTONDOWN 処理

CTabWnd.cpp の 328 行で定義されています。

参照先 BreakDrag().

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabRButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_RBUTTONUP 処理

CTabWnd.cpp の 336 行で定義されています。

参照先 CUSTMENU_INDEX_FOR_TABWND, ExecTabCommand(), と F_CUSTMENU_BASE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_MBUTTONDOWN 処理

タブ部 WM_MBUTTONDOWN 処理

日付:
2006.01.28 ryoji 新規作成

CTabWnd.cpp の 345 行で定義されています。

参照先 BreakDrag().

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_MBUTTONUP 処理

タブ部 WM_MBUTTONUP 処理

日付:
2006.01.28 ryoji 新規作成

CTabWnd.cpp の 355 行で定義されています。

参照先 ExecTabCommand(), と F_WINCLOSE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [protected]

タブ部 WM_NOTIFY 処理

タブ部 WM_NOTIFY 処理

日付:
2005.09.01 ryoji 関数化

2006.10.31 ryoji ツールチップのフルパス名を簡易表示する

CTabWnd.cpp の 367 行で定義されています。

参照先 _countof, FALSE, CShareData::GetEditNode(), CShareData::getInstance(), GetTabName(), m_hwndTab, m_hwndToolTip, NULL, と TRUE.

参照元 TabWndDispatchEvent().

void CTabWnd::BreakDrag ( void ) [inline, protected]

ドラッグ状態解除処理

CTabWnd.h の 119 行で定義されています。

参照元 OnTabLButtonUp(), OnTabMButtonDown(), OnTabRButtonDown(), と TabWindowNotify().

BOOL CTabWnd::ReorderTab | ( | int | nSrcTab,
 |  | int | nDstTab |
 | ) |  |  | [protected]

タブ順序変更処理

タブ順序変更処理

引数:
[in] | nSrcTab | 移動するタブのインデックス
[in] | nDstTab | 移動先タブのインデックス
日付:
2005.09.01 ryoji 新規作成

2007.07.07 genta ウィンドウリスト操作部をCShareDataReorderTab()へ

CTabWnd.cpp の 409 行で定義されています。

参照先 FALSE, CShareData::GetGroupId(), CShareData::getInstance(), CWnd::GetParentHwnd(), m_hwndTab, MYWM_TAB_WINDOW_NOTIFY, CShareData::PostMessageToAllEditors(), CShareData::ReorderTab(), TRUE, と TWNT_REFRESH.

参照元 MoveLeft(), MoveRight(), と OnTabLButtonUp().

BOOL CTabWnd::SeparateGroup | ( | HWND | hwndSrc,
 |  | HWND | hwndDst,
 |  | POINT | ptDrag,
 |  | POINT | ptDrop |
 | ) |  |  | [protected]

タブ分離処理

タブ分離処理

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 451 行で定義されています。

参照先 _countof, DWORD_PTR, FALSE, CShareData::GetEditNode(), CShareData::GetEditNodeAt(), CShareData::getInstance(), GetMonitorWorkRect(), CWnd::GetParentHwnd(), CShareData::GetTopEditWnd(), GetWindowLongPtr, EditNode::m_hWnd, EditNode::m_nGroup, MYWM_TAB_WINDOW_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), CShareData::SeparateGroup(), TRUE, TWNT_REFRESH, と TWNT_WNDPL_ADJUST.

参照元 JoinNext(), JoinPrev(), OnTabLButtonUp(), と Separate().

LRESULT CTabWnd::ExecTabCommand | ( | int | nId,
 |  | POINTS | pts |
 | ) |  |  | [protected]

タブ部 コマンド実行処理

タブ部 コマンド実行処理

日付:
2006.01.28 ryoji 新規作成

CTabWnd.cpp の 602 行で定義されています。

参照先 m_hwndTab, NULL, PostMessageCmd, ShowHideWindow(), と TRUE.

参照元 OnTabMButtonUp(), と OnTabRButtonUp().

void CTabWnd::LayoutTab ( void ) [protected]

タブのレイアウト調整処理

タブのレイアウト調整処理

日付:
2006.01.28 ryoji 新規作成

CTabWnd.cpp の 1895 行で定義されています。

参照先 GetWindowLongPtr, InitImageList(), CommonSetting_TabBar::m_bDispTabIcon, CommonSetting_TabBar::m_bSameTabWidth, DLLSHAREDATA::m_Common, m_hwndTab, m_pShareData, CommonSetting::m_sTabBar, MAX_TABITEM_WIDTH, MIN_TABITEM_WIDTH, NULL, Refresh(), SetWindowLongPtr, TAB_ITEM_HEIGHT, と TRUE.

参照元 OnSize(), と TabWindowNotify().

HIMAGELIST CTabWnd::InitImageList ( void ) [protected]

イメージリストの初期化処理

イメージリストの初期化処理

日付:
2006.02.22 ryoji 新規作成

CTabWnd.cpp の 1948 行で定義されています。

参照先 FN_APP_ICON, FN_GREP_ICON, GetAppIcon(), CWnd::GetAppInstance(), ICON_DEFAULT_APP, ICON_DEFAULT_GREP, ImageList_Duplicate(), CommonSetting_TabBar::m_bDispTabIcon, DLLSHAREDATA::m_Common, m_hIconApp, m_hIconGrep, m_hIml, m_hwndTab, m_iIconApp, m_iIconGrep, m_pShareData, CommonSetting::m_sTabBar, と NULL.

参照元 LayoutTab(), と Open().

int CTabWnd::GetImageIndex ( EditNode * pNode ) [protected]

イメージリストのインデックス取得処理

イメージリストのインデックス取得処理

日付:
2006.01.28 ryoji 新規作成

CTabWnd.cpp の 2013 行で定義されています。

参照先 _MAX_EXT, ImageList_Duplicate(), CommonSetting_TabBar::m_bDispTabIcon, EditNode::m_bIsGrep, DLLSHAREDATA::m_Common, m_hIconApp, m_hIconGrep, m_hIml, m_hwndTab, m_iIconApp, m_iIconGrep, m_pShareData, CommonSetting::m_sTabBar, EditNode::m_szFilePath, と NULL.

参照元 Refresh(), TabListMenu(), と TabWindowNotify().

HIMAGELIST CTabWnd::ImageList_Duplicate ( HIMAGELIST himl ) [protected]

イメージリストの複製処理

イメージリストの複製処理

日付:
2006.02.17 ryoji 新規作成

CTabWnd.cpp の 2068 行で定義されています。

参照先 CX_SMICON, CY_SMICON, m_RealImageList_Duplicate, と NULL.

参照元 GetImageIndex(), と InitImageList().

void CTabWnd::DrawBtnBkgnd | ( | HDC | hdc,
 |  | const LPRECT | lprcBtn,
 |  | BOOL | bBtnHilighted |
 | ) |  |  | [protected]

ボタン背景描画処理

ボタン背景描画処理

日付:
2006.10.21 ryoji 新規作成

CTabWnd.cpp の 2112 行で定義されています。

参照元 DrawCloseBtn(), と DrawListBtn().

void CTabWnd::DrawListBtn | ( | HDC | hdc,
 |  | const LPRECT | lprcClient |
 | ) |  |  | [protected]

一覧ボタン描画処理

一覧ボタン描画処理

日付:
2006.02.01 ryoji 新規作成

2006.10.21 ryoji 背景描画を関数呼び出しに変更

CTabWnd.cpp の 2134 行で定義されています。

参照先 _countof, DrawBtnBkgnd(), GetListBtnRect(), と m_bListBtnHilighted.

参照元 OnPaint().

void CTabWnd::DrawCloseBtn | ( | HDC | hdc,
 |  | const LPRECT | lprcClient |
 | ) |  |  | [protected]

閉じるボタン描画処理

閉じるボタン描画処理

日付:
2006.10.21 ryoji 新規作成

CTabWnd.cpp の 2165 行で定義されています。

参照先 _countof, DrawBtnBkgnd(), GetCloseBtnRect(), m_bCloseBtnHilighted, CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_TabBar::m_bTab_CloseOneWin, DLLSHAREDATA::m_Common, m_pShareData, CommonSetting::m_sTabBar, と NULL.

参照元 OnPaint().

void CTabWnd::GetListBtnRect | ( | const LPRECT | lprcClient,
 |  | LPRECT | lprc |
 | ) |  |  | [protected]

一覧ボタンの矩形取得処理

一覧ボタンの矩形取得処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 2249 行で定義されています。

参照先 rcBtnBase, TAB_MARGIN_RIGHT, と TAB_MARGIN_TOP.

参照元 DrawListBtn(), OnLButtonDown(), OnMouseMove(), と OnRButtonDown().

void CTabWnd::GetCloseBtnRect | ( | const LPRECT | lprcClient,
 |  | LPRECT | lprc |
 | ) |  |  | [protected]

閉じるボタンの矩形取得処理

閉じるボタンの矩形取得処理

日付:
2006.10.21 ryoji 新規作成

CTabWnd.cpp の 2258 行で定義されています。

参照先 rcBtnBase, TAB_MARGIN_RIGHT, と TAB_MARGIN_TOP.

参照元 DrawCloseBtn(), OnLButtonDown(), OnLButtonUp(), と OnMouseMove().

HFONT CTabWnd::CreateMenuFont ( void ) [inline, protected]

CTabWnd.h の 136 行で定義されています。

参照元 OnDrawItem(), と OnMeasureItem().

変数

LPCTSTR CTabWnd::m_pszClassName

クラス名

CTabWnd.h の 155 行で定義されています。

参照元 CTabWnd(), と Open().

DLLSHAREDATA* CTabWnd::m_pShareData

共有データ

CTabWnd.h の 156 行で定義されています。

参照元 AdjustWindowPlacement(), CTabWnd(), DrawCloseBtn(), GetImageIndex(), GetNextGroupWnd(), GetPrevGroupWnd(), HideOtherWindows(), InitImageList(), LayoutTab(), MoveLeft(), MoveRight(), OnLButtonUp(), OnMouseMove(), OnTabLButtonUp(), OnTabMouseMove(), Separate(), ShowHideWindow(), と TabListMenu().

HFONT CTabWnd::m_hFont

表示用フォント

CTabWnd.h の 157 行で定義されています。

参照元 CTabWnd(), OnDestroy(), と Open().

HWND CTabWnd::m_hwndTab

タブコントロール

CTabWnd.h の 158 行で定義されています。

参照元 Close(), CTabWnd(), ExecTabCommand(), FindTabIndexByHWND(), GetImageIndex(), InitImageList(), LayoutTab(), MoveRight(), OnDestroy(), CEditWnd::OnMouseWheel(), OnPaint(), OnSize(), OnTabLButtonDown(), OnTabLButtonUp(), OnTabMouseMove(), OnTabNotify(), Open(), Refresh(), ReorderTab(), と TabWindowNotify().

HWND CTabWnd::m_hwndToolTip

ツールチップ

CTabWnd.h の 159 行で定義されています。

参照元 Close(), CTabWnd(), OnMouseMove(), OnTabNotify(), と Open().

TCHAR CTabWnd::m_szTextTip1[1024]

CTabWnd.h の 160 行で定義されています。

参照元 OnMouseMove().

DragState CTabWnd::m_eDragState [private]

ドラッグ状態

CTabWnd.h の 163 行で定義されています。

参照元 OnTabCaptureChanged(), OnTabLButtonDown(), OnTabLButtonUp(), OnTabMouseMove(), と Open().

int CTabWnd::m_nSrcTab [private]

移動元タブ

CTabWnd.h の 164 行で定義されています。

参照元 OnTabLButtonDown(), OnTabLButtonUp(), と OnTabMouseMove().

POINT CTabWnd::m_ptSrcCursor [private]

ドラッグ開始カーソル位置

CTabWnd.h の 165 行で定義されています。

参照元 OnTabLButtonDown(), と OnTabLButtonUp().

FN_ImageList_Duplicate CTabWnd::m_RealImageList_Duplicate [private]

CTabWnd.h の 168 行で定義されています。

参照元 CTabWnd(), と ImageList_Duplicate().

HIMAGELIST CTabWnd::m_hIml [private]

イメージリスト

CTabWnd.h の 170 行で定義されています。

参照元 CTabWnd(), GetImageIndex(), InitImageList(), OnDestroy(), OnDrawItem(), と TabListMenu().

HICON CTabWnd::m_hIconApp [private]

アプリケーションアイコン

CTabWnd.h の 171 行で定義されています。

参照元 GetImageIndex(), と InitImageList().

HICON CTabWnd::m_hIconGrep [private]

Grepアイコン

CTabWnd.h の 172 行で定義されています。

参照元 GetImageIndex(), と InitImageList().

int CTabWnd::m_iIconApp [private]

アプリケーションアイコンのインデックス

CTabWnd.h の 173 行で定義されています。

参照元 GetImageIndex(), と InitImageList().

int CTabWnd::m_iIconGrep [private]

Grepアイコンのインデックス

CTabWnd.h の 174 行で定義されています。

参照元 GetImageIndex(), と InitImageList().

BOOL CTabWnd::m_bVisualStyle [private]

ビジュアルスタイルかどうか // 2007.04.01 ryoji

CTabWnd.h の 176 行で定義されています。

参照元 OnPaint(), Open(), と TabWndDispatchEvent().

BOOL CTabWnd::m_bHovering [private]

CTabWnd.h の 177 行で定義されています。

参照元 OnMouseMove(), と Open().

BOOL CTabWnd::m_bListBtnHilighted [private]

CTabWnd.h の 178 行で定義されています。

参照元 DrawListBtn(), OnMouseMove(), と Open().

BOOL CTabWnd::m_bCloseBtnHilighted [private]

閉じるボタンハイライト状態 // 2006.10.21 ryoji

CTabWnd.h の 179 行で定義されています。

参照元 DrawCloseBtn(), OnMouseMove(), と Open().

CaptureSrc CTabWnd::m_eCaptureSrc [private]

キャプチャー元

CTabWnd.h の 180 行で定義されています。

参照元 OnCaptureChanged(), OnLButtonDown(), OnLButtonUp(), と Open().

このクラスの説明は次のファイルから生成されました:
  • CTabWnd.h
  • CTabWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTabWnd メンバ一覧

これは全メンバの一覧です。CTabWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
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(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CreateMenuFont(void) | CTabWnd | [inline, protected]
CTabWnd() | CTabWnd |
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
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]
FN_ImageList_Duplicate typedef | CTabWnd | [protected]
ForceActiveWindow(HWND hwnd) | CTabWnd | [protected]
GetAppInstance() const | CWnd | [inline]
GetCloseBtnRect(const LPRECT lprcClient, LPRECT lprc) | CTabWnd | [protected]
GetHwnd() const | CWnd | [inline]
GetImageIndex(EditNode *pNode) | CTabWnd | [protected]
GetListBtnRect(const LPRECT lprcClient, LPRECT lprc) | CTabWnd | [protected]
GetNextGroupWnd(void) | CTabWnd | [protected]
GetParentHwnd() const | CWnd | [inline]
GetPrevGroupWnd(void) | CTabWnd | [protected]
GetTabName(EditNode *pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen) | CTabWnd | [protected]
HideOtherWindows(HWND hwndExclude) | 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 | [private]
m_bHovering | CTabWnd | [private]
m_bListBtnHilighted | CTabWnd | [private]
m_bVisualStyle | CTabWnd | [private]
m_eCaptureSrc | CTabWnd | [private]
m_eDragState | CTabWnd | [private]
m_hFont | CTabWnd |
m_hIconApp | CTabWnd | [private]
m_hIconGrep | CTabWnd | [private]
m_hIml | CTabWnd | [private]
m_hwndTab | CTabWnd |
m_hwndToolTip | CTabWnd |
m_iIconApp | CTabWnd | [private]
m_iIconGrep | CTabWnd | [private]
m_nSrcTab | CTabWnd | [private]
m_pShareData | CTabWnd |
m_pszClassName | CTabWnd |
m_ptSrcCursor | CTabWnd | [private]
m_RealImageList_Duplicate | CTabWnd | [private]
m_szTextTip1 | 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(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | 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 Nov 17 20:29:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextArea

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextArea

#include <CTextArea.h>

CTextAreaのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTextArea (CEditView *pEditView)
virtual | ~CTextArea ()
void | CopyTextAreaStatus (CTextArea *pDst) const
CLayoutInt | GetViewTopLine () const
表示される最初の行
void | SetViewTopLine (CLayoutInt nLine)
CLayoutInt | GetViewLeftCol () const
表示域の一番左の桁
void | SetViewLeftCol (CLayoutInt nLeftCol)
CLayoutInt | GetRightCol () const
右にはみ出した最初の列を返す
CLayoutInt | GetBottomLine () const
下にはみ出した最初の行を返す
int | GetAreaLeft () const
int | GetAreaTop () const
int | GetAreaRight () const
int | GetAreaBottom () const
int | GetAreaWidth () const
int | GetAreaHeight () const
int | GetTopYohaku () const
void | SetTopYohaku (int nPixel)
void | TextArea_OnSize (const CMySize &sizeClient, int nCxVScroll, int nCyHScroll)
クライアントサイズ更新
bool | DetectWidthOfLineNumberArea (bool bRedraw)
行番号表示に必要な幅を設定
int | DetectWidthOfLineNumberArea_calculate () const
行番号表示に必要な桁数を計算
int | GetRulerHeight () const
int | GetDocumentLeftClientPointX () const
ドキュメント左端のクライアント座標を取得 (つまり、スクロールされた状態であれば、マイナスを返す)
void | ClientToLayout (CMyPoint ptClient, CLayoutPoint *pptLayout) const
クライアント座標からレイアウト位置に変換する
void | UpdateAreaMetrics (HDC hdc)
フォント変更の際、各種パラメータを計算し直す
void | SetAreaLeft (int nAreaLeft)
void | SetAreaTop (int nAreaTop)
void | OffsetViewTopLine (CLayoutInt nOff)
bool | GenerateClipRect (RECT *rc, const DispPos &sPos, int nHankakuNum) const
クリッピング矩形を作成。表示範囲外だった場合はfalseを返す。
bool | GenerateClipRectRight (RECT *rc, const DispPos &sPos) const
右端まで全部
bool | GenerateClipRectLine (RECT *rc, const DispPos &sPos) const
行全部
void | GenerateTopRect (RECT *rc, CLayoutInt nLineCount) const
void | GenerateBottomRect (RECT *rc, CLayoutInt nLineCount) const
void | GenerateLeftRect (RECT *rc, CLayoutInt nColCount) const
void | GenerateRightRect (RECT *rc, CLayoutInt nColCount) const
void | GenerateLineNumberRect (RECT *rc) const
void | GenerateTextAreaRect (RECT *rc) const

Public 変数

CLayoutInt m_nViewRowNum
CLayoutInt m_nViewColNum
int | m_nViewAlignLeftCols

Private 変数

CEditView * m_pEditView
int | m_nViewAlignLeft
int | m_nViewAlignTop
int | m_nTopYohaku
int | m_nViewCx
int | m_nViewCy
CLayoutInt m_nViewTopLine
CLayoutInt m_nViewLeftCol

説明

CTextArea.h の 7 行で定義されています。

コンストラクタとデストラクタ

CTextArea::CTextArea ( CEditView * pEditView )

CTextArea.cpp の 8 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), GetTopYohaku(), DLLSHAREDATA::m_Common, CommonSetting_Window::m_nRulerBottomSpace, m_nViewAlignLeft, m_nViewAlignLeftCols, m_nViewAlignTop, m_nViewColNum, m_nViewCx, m_nViewCy, m_nViewLeftCol, m_nViewRowNum, m_nViewTopLine, CommonSetting::m_sWindow, と SetTopYohaku().

CTextArea::~CTextArea ( ) [virtual]

CTextArea.cpp の 25 行で定義されています。

関数

void CTextArea::CopyTextAreaStatus ( CTextArea * pDst ) const

CTextArea.cpp の 29 行で定義されています。

参照先 m_nViewAlignLeftCols, SetAreaLeft(), SetAreaTop(), SetViewLeftCol(), と SetViewTopLine().

参照元 CEditView::CopyViewStatus().

CLayoutInt CTextArea::GetViewTopLine ( ) const [inline]

表示される最初の行

CTextArea.h の 18 行で定義されています。

参照先 m_nViewTopLine.

参照元 CEditView::AdjustScrollBars(), CCaret::CalcCaretDrawPos(), CEditView::CaretUnderLineON(), ClientToLayout(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CTextDrawer::DispEmptyLine(), CTextDrawer::DispVerticalLines(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CEditDoc::GetFileInfo(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtV(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), と CEditView::ShowHokanMgr().

void CTextArea::SetViewTopLine ( CLayoutInt nLine ) [inline]

CTextArea.h の 22 行で定義されています。

参照先 m_nViewTopLine.

参照元 CViewCommander::Command_CURLINECENTER(), CopyTextAreaStatus(), CSplitterWnd::DoSplit(), CEditDoc::FileRead(), CNormalProcess::Initialize(), と CEditView::ScrollAtV().

CLayoutInt CTextArea::GetViewLeftCol ( ) const [inline]

表示域の一番左の桁

CTextArea.h の 28 行で定義されています。

参照先 m_nViewLeftCol.

参照元 CEditView::AdjustScrollBars(), CCaret::CalcCaretDrawPos(), ClientToLayout(), CRuler::DispRuler(), CEditView::DispTextSelected(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CRuler::DrawRulerCaret(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), GetDocumentLeftClientPointX(), CEditDoc::GetFileInfo(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ScrollAtH(), と CEditView::ShowHokanMgr().

void CTextArea::SetViewLeftCol ( CLayoutInt nLeftCol ) [inline]

CTextArea.h の 32 行で定義されています。

参照先 m_nViewLeftCol.

参照元 CViewCommander::Command_WRAPWINDOWWIDTH(), CopyTextAreaStatus(), CEditDoc::FileRead(), CNormalProcess::Initialize(), CCaret::MoveCursor(), と CEditView::ScrollAtH().

CLayoutInt CTextArea::GetRightCol ( ) const [inline]

右にはみ出した最初の列を返す

CTextArea.h の 38 行で定義されています。

参照先 m_nViewColNum, と m_nViewLeftCol.

参照元 CRuler::DispRuler(), CRuler::DrawRulerCaret(), CViewSelect::DrawSelectArea(), と CViewSelect::DrawSelectAreaLine().

CLayoutInt CTextArea::GetBottomLine ( ) const [inline]

下にはみ出した最初の行を返す

CTextArea.h の 44 行で定義されています。

参照先 m_nViewRowNum, と m_nViewTopLine.

参照元 CViewSelect::DrawSelectArea(), CEditView::SearchBracketForward(), と CEditView::SearchBracketForward2().

int CTextArea::GetAreaLeft ( ) const [inline]

CTextArea.h の 52 行で定義されています。

参照先 m_nViewAlignLeft.

参照元 CCaret::CalcCaretDrawPos(), CEditView_Paint::Call_OnPaint(), CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), ClientToLayout(), DetectWidthOfLineNumberArea(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), GenerateClipRect(), GenerateClipRectRight(), GetDocumentLeftClientPointX(), CCaret::MoveCursor(), CCaret::MoveCursorToClientPoint(), CEditView::OnPaint(), CEditView::ScrollAtH(), CCaret::ShowEditCaret(), CEditView::ShowHokanMgr(), と TextArea_OnSize().

int CTextArea::GetAreaTop ( ) const [inline]

CTextArea.h の 56 行で定義されています。

参照先 m_nViewAlignTop.

参照元 CRuler::_DrawRulerCaret(), CCaret::CalcCaretDrawPos(), CEditView_Paint::Call_OnPaint(), CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), ClientToLayout(), CEditView::DispLineNew(), CTextDrawer::DispText(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtH(), CEditView::ScrollAtV(), CCaret::ShowEditCaret(), CEditView::ShowHokanMgr(), と TextArea_OnSize().

int CTextArea::GetAreaRight ( ) const [inline]

CTextArea.h の 60 行で定義されています。

参照先 m_nViewAlignLeft, と m_nViewCx.

参照元 CEditView_Paint::Call_OnPaint(), CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CEditView::DispTextSelected(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), GenerateClipRect(), GenerateClipRectLine(), GenerateClipRectRight(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtH(), と CEditView::ScrollAtV().

int CTextArea::GetAreaBottom ( ) const [inline]

CTextArea.h の 64 行で定義されています。

参照先 m_nViewAlignTop, と m_nViewCy.

参照元 CEditView_Paint::Call_OnPaint(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtH(), と CEditView::ScrollAtV().

int CTextArea::GetAreaWidth ( ) const [inline]

CTextArea.h の 69 行で定義されています。

参照先 m_nViewCx.

参照元 CTextDrawer::DispText().

int CTextArea::GetAreaHeight ( ) const [inline]

CTextArea.h の 73 行で定義されています。

参照先 m_nViewCy.

int CTextArea::GetTopYohaku ( ) const [inline]

CTextArea.h の 78 行で定義されています。

参照先 m_nTopYohaku.

参照元 CRuler::_DrawRulerCaret(), CTextArea(), CRuler::DrawRulerBg(), と GetRulerHeight().

void CTextArea::SetTopYohaku ( int nPixel ) [inline]

CTextArea.h の 82 行で定義されています。

参照先 m_nTopYohaku.

参照元 CEditView::Create(), CTextArea(), と CEditView::OnChangeSetting().

void CTextArea::TextArea_OnSize | ( | const CMySize & | sizeClient,
 |  | int | nCxVScroll,
 |  | int | nCyHScroll
 | ) |  |

クライアントサイズ更新

引数:
sizeClient | ウィンドウのクライアントサイズ
nCxVScroll | 垂直スクロールバーの横幅
nCyHScroll | 水平スクロールバーの縦幅

CTextArea.cpp の 207 行で定義されています。

参照先 GetAreaLeft(), GetAreaTop(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), m_nViewColNum, m_nViewCx, m_nViewCy, m_nViewRowNum, と m_pEditView.

参照元 CEditView::OnSize().

bool CTextArea::DetectWidthOfLineNumberArea ( bool bRedraw )

行番号表示に必要な幅を設定

CTextArea.cpp の 121 行で定義されています。

参照先 CEditView_Paint::Call_OnPaint(), COLORIDX_GYOU, DetectWidthOfLineNumberArea_calculate(), GetAreaLeft(), CEditView::GetCaret(), CEditDoc::GetDocumentAttribute(), CTextMetrics::GetHankakuDx(), CEditView::GetRuler(), CEditView::GetTextMetrics(), CCaretUnderLine::Lock(), ColorInfo::m_bDisp, Types::m_ColorInfoArr, DLLSHAREDATA::m_Common, CCaret::m_cUnderLine, CEditView::m_hWnd, CommonSetting_Window::m_nLineNumRightSpace, m_nViewAlignLeftCols, m_nViewCx, CEditView::m_pcEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sWindow, PAINT_BODY, PAINT_LINENUMBER, PAINT_RULER, SetAreaLeft(), CRuler::SetRedrawFlag(), CCaret::ShowEditCaret(), TRUE, CCaretUnderLine::UnLock(), と CMyRect::Width().

参照元 CEditWnd::DetectWidthOfLineNumberAreaAllPane(), と CEditView::SetFont().

int CTextArea::DetectWidthOfLineNumberArea_calculate ( ) const

行番号表示に必要な桁数を計算

CTextArea.cpp の 177 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineCount(), Types::m_bLineNumIsCRLF, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, と m_pEditView.

参照元 DetectWidthOfLineNumberArea(), CEditView::GetSelectedData(), と CPrintPreview::OnChangePrintSetting().

int CTextArea::GetRulerHeight ( ) const [inline]

CTextArea.h の 103 行で定義されています。

参照先 GetTopYohaku(), と m_nViewAlignTop.

参照元 CRuler::DrawRulerBg(), と CEditView::OnPaint().

int CTextArea::GetDocumentLeftClientPointX ( ) const

ドキュメント左端のクライアント座標を取得 (つまり、スクロールされた状態であれば、マイナスを返す)

CTextArea.cpp の 223 行で定義されています。

参照先 GetAreaLeft(), CTextMetrics::GetHankakuDx(), CEditView::GetTextMetrics(), GetViewLeftCol(), と m_pEditView.

void CTextArea::ClientToLayout | ( | CMyPoint | ptClient,
 |  | CLayoutPoint * | pptLayout |
 | ) |  |  | const

クライアント座標からレイアウト位置に変換する

CTextArea.cpp の 229 行で定義されています。

参照先 GetAreaLeft(), GetAreaTop(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), GetViewLeftCol(), GetViewTopLine(), m_pEditView, と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::Set().

参照元 CCaret::MoveCursorToClientPoint(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), と CEditView::OnRBUTTONDOWN().

void CTextArea::UpdateAreaMetrics ( HDC hdc )

フォント変更の際、各種パラメータを計算し直す

CTextArea.cpp の 44 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CTextMetrics::GetHankakuHeight(), CTextMetrics::GetHankakuWidth(), CEditView::GetTextMetrics(), Types::m_nColmSpace, Types::m_nLineSpace, m_nViewColNum, m_nViewCx, m_nViewCy, m_nViewRowNum, CEditView::m_pcEditDoc, m_pEditView, CTextMetrics::SetHankakuDx(), と CTextMetrics::SetHankakuDy().

参照元 CEditView::SetFont().

void CTextArea::SetAreaLeft ( int nAreaLeft ) [inline]

CTextArea.h の 118 行で定義されています。

参照先 m_nViewAlignLeft.

参照元 CopyTextAreaStatus(), と DetectWidthOfLineNumberArea().

void CTextArea::SetAreaTop ( int nAreaTop ) [inline]

CTextArea.h の 122 行で定義されています。

参照先 m_nViewAlignTop.

参照元 CopyTextAreaStatus(), CEditView::Create(), と CEditView::OnChangeSetting().

void CTextArea::OffsetViewTopLine ( CLayoutInt nOff ) [inline]

CTextArea.h の 126 行で定義されています。

参照先 m_nViewTopLine.

参照元 CCaret::MoveCursor().

bool CTextArea::GenerateClipRect | ( | RECT * | rc,
 |  | const DispPos & | sPos,
 |  | int | nHankakuNum |
 | ) |  |  | const

クリッピング矩形を作成。表示範囲外だった場合はfalseを返す。

CTextArea.cpp の 61 行で定義されています。

参照先 GetAreaLeft(), GetAreaRight(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), と m_pEditView.

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CEditView::DispLineNew(), と CTextDrawer::DispWrap().

bool CTextArea::GenerateClipRectRight | ( | RECT * | rc,
 |  | const DispPos & | sPos |
 | ) |  |  | const

右端まで全部

右の残りを表す矩形を生成する

CTextArea.cpp の 85 行で定義されています。

参照先 GetAreaLeft(), GetAreaRight(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), と m_pEditView.

bool CTextArea::GenerateClipRectLine | ( | RECT * | rc,
 |  | const DispPos & | sPos |
 | ) |  |  | const

行全部

CTextArea.cpp の 108 行で定義されています。

参照先 GetAreaRight(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), と m_pEditView.

参照元 CTextDrawer::DispEmptyLine().

void CTextArea::GenerateTopRect | ( | RECT * | rc,
 |  | CLayoutInt | nLineCount |
 | ) |  |  | const

CTextArea.cpp の 239 行で定義されています。

参照先 CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), m_nViewAlignLeft, m_nViewAlignTop, m_nViewCx, と m_pEditView.

参照元 CCaret::MoveCursor().

void CTextArea::GenerateBottomRect | ( | RECT * | rc,
 |  | CLayoutInt | nLineCount |
 | ) |  |  | const

CTextArea.cpp の 247 行で定義されています。

参照先 CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), m_nViewAlignLeft, m_nViewAlignTop, m_nViewCx, m_nViewCy, と m_pEditView.

参照元 CCaret::MoveCursor().

void CTextArea::GenerateLeftRect | ( | RECT * | rc,
 |  | CLayoutInt | nColCount |
 | ) |  |  | const

CTextArea.cpp の 255 行で定義されています。

参照先 CTextMetrics::GetHankakuDx(), CEditView::GetTextMetrics(), m_nViewAlignLeft, m_nViewAlignTop, m_nViewCy, と m_pEditView.

参照元 CCaret::MoveCursor().

void CTextArea::GenerateRightRect | ( | RECT * | rc,
 |  | CLayoutInt | nColCount |
 | ) |  |  | const

CTextArea.cpp の 263 行で定義されています。

参照先 CTextMetrics::GetHankakuDx(), CEditView::GetTextMetrics(), m_nViewAlignLeft, m_nViewAlignTop, m_nViewCx, m_nViewCy, と m_pEditView.

参照元 CCaret::MoveCursor().

void CTextArea::GenerateLineNumberRect ( RECT * rc ) const

CTextArea.cpp の 271 行で定義されています。

参照先 m_nViewAlignLeft, m_nViewAlignTop, と m_nViewCy.

参照元 CCaret::MoveCursor().

void CTextArea::GenerateTextAreaRect ( RECT * rc ) const

CTextArea.cpp の 279 行で定義されています。

参照先 m_nViewAlignLeft, m_nViewAlignTop, m_nViewCx, と m_nViewCy.

参照元 CCaret::MoveCursor().

変数

CEditView* CTextArea::m_pEditView [private]

CTextArea.h の 152 行で定義されています。

参照元 ClientToLayout(), DetectWidthOfLineNumberArea(), DetectWidthOfLineNumberArea_calculate(), GenerateBottomRect(), GenerateClipRect(), GenerateClipRectLine(), GenerateClipRectRight(), GenerateLeftRect(), GenerateRightRect(), GenerateTopRect(), GetDocumentLeftClientPointX(), TextArea_OnSize(), と UpdateAreaMetrics().

int CTextArea::m_nViewAlignLeft [private]

CTextArea.h の 158 行で定義されています。

参照元 CTextArea(), GenerateBottomRect(), GenerateLeftRect(), GenerateLineNumberRect(), GenerateRightRect(), GenerateTextAreaRect(), GenerateTopRect(), GetAreaLeft(), GetAreaRight(), と SetAreaLeft().

int CTextArea::m_nViewAlignTop [private]

CTextArea.h の 159 行で定義されています。

参照元 CTextArea(), GenerateBottomRect(), GenerateLeftRect(), GenerateLineNumberRect(), GenerateRightRect(), GenerateTextAreaRect(), GenerateTopRect(), GetAreaBottom(), GetAreaTop(), GetRulerHeight(), と SetAreaTop().

int CTextArea::m_nTopYohaku [private]

CTextArea.h の 161 行で定義されています。

参照元 GetTopYohaku(), と SetTopYohaku().

int CTextArea::m_nViewCx [private]

CTextArea.h の 163 行で定義されています。

参照元 CTextArea(), DetectWidthOfLineNumberArea(), GenerateBottomRect(), GenerateRightRect(), GenerateTextAreaRect(), GenerateTopRect(), GetAreaRight(), GetAreaWidth(), TextArea_OnSize(), と UpdateAreaMetrics().

int CTextArea::m_nViewCy [private]

CTextArea.h の 164 行で定義されています。

参照元 CTextArea(), GenerateBottomRect(), GenerateLeftRect(), GenerateLineNumberRect(), GenerateRightRect(), GenerateTextAreaRect(), GetAreaBottom(), GetAreaHeight(), TextArea_OnSize(), と UpdateAreaMetrics().

CLayoutInt CTextArea::m_nViewTopLine [private]

CTextArea.h の 168 行で定義されています。

参照元 CTextArea(), GetBottomLine(), GetViewTopLine(), OffsetViewTopLine(), と SetViewTopLine().

CLayoutInt CTextArea::m_nViewRowNum

CTextArea.h の 170 行で定義されています。

参照元 CEditView::AdjustScrollBars(), CViewCommander::Command_1PageDown(), CViewCommander::Command_1PageUp(), CViewCommander::Command_CURLINECENTER(), CViewCommander::Command_HalfPageDown(), CViewCommander::Command_HalfPageUp(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CTextArea(), GetBottomLine(), CCaret::MoveCursor(), CEditView::OnMOUSEWHEEL(), CEditView::OnVScroll(), CEditView::ScrollAtV(), TextArea_OnSize(), と UpdateAreaMetrics().

CLayoutInt CTextArea::m_nViewLeftCol [private]

CTextArea.h の 173 行で定義されています。

参照元 CTextArea(), GetRightCol(), GetViewLeftCol(), と SetViewLeftCol().

CLayoutInt CTextArea::m_nViewColNum

CTextArea.h の 175 行で定義されています。

参照元 CEditView::AdjustScrollBars(), CTextArea(), GetRightCol(), CEditView::GetWrapMode(), CCaret::MoveCursor(), CEditView::OnHScroll(), CEditView::ScrollAtH(), TextArea_OnSize(), と UpdateAreaMetrics().

int CTextArea::m_nViewAlignLeftCols

CTextArea.h の 178 行で定義されています。

参照元 CopyTextAreaStatus(), CTextArea(), DetectWidthOfLineNumberArea(), と CTextDrawer::DispLineNumber().

このクラスの説明は次のファイルから生成されました:
  • CTextArea.h
  • CTextArea.cpp
Sakura-Editorに対してSat Nov 17 20:29:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextArea メンバ一覧

これは全メンバの一覧です。CTextArea継承メンバも含んでいます。

ClientToLayout(CMyPoint ptClient, CLayoutPoint *pptLayout) const | CTextArea |
CopyTextAreaStatus(CTextArea *pDst) const | CTextArea |
CTextArea(CEditView *pEditView) | CTextArea |
DetectWidthOfLineNumberArea(bool bRedraw) | CTextArea |
DetectWidthOfLineNumberArea_calculate() const | CTextArea |
GenerateBottomRect(RECT *rc, CLayoutInt nLineCount) const | CTextArea |
GenerateClipRect(RECT *rc, const DispPos &sPos, int nHankakuNum) const | CTextArea |
GenerateClipRectLine(RECT *rc, const DispPos &sPos) const | CTextArea |
GenerateClipRectRight(RECT *rc, const DispPos &sPos) const | CTextArea |
GenerateLeftRect(RECT *rc, CLayoutInt nColCount) const | CTextArea |
GenerateLineNumberRect(RECT *rc) const | CTextArea |
GenerateRightRect(RECT *rc, CLayoutInt nColCount) const | CTextArea |
GenerateTextAreaRect(RECT *rc) const | CTextArea |
GenerateTopRect(RECT *rc, CLayoutInt nLineCount) const | CTextArea |
GetAreaBottom() const | CTextArea | [inline]
GetAreaHeight() const | CTextArea | [inline]
GetAreaLeft() const | CTextArea | [inline]
GetAreaRight() const | CTextArea | [inline]
GetAreaTop() const | CTextArea | [inline]
GetAreaWidth() const | CTextArea | [inline]
GetBottomLine() const | CTextArea | [inline]
GetDocumentLeftClientPointX() const | CTextArea |
GetRightCol() const | CTextArea | [inline]
GetRulerHeight() const | CTextArea | [inline]
GetTopYohaku() const | CTextArea | [inline]
GetViewLeftCol() const | CTextArea | [inline]
GetViewTopLine() const | CTextArea | [inline]
m_nTopYohaku | CTextArea | [private]
m_nViewAlignLeft | CTextArea | [private]
m_nViewAlignLeftCols | CTextArea |
m_nViewAlignTop | CTextArea | [private]
m_nViewColNum | CTextArea |
m_nViewCx | CTextArea | [private]
m_nViewCy | CTextArea | [private]
m_nViewLeftCol | CTextArea | [private]
m_nViewRowNum | CTextArea |
m_nViewTopLine | CTextArea | [private]
m_pEditView | CTextArea | [private]
OffsetViewTopLine(CLayoutInt nOff) | CTextArea | [inline]
SetAreaLeft(int nAreaLeft) | CTextArea | [inline]
SetAreaTop(int nAreaTop) | CTextArea | [inline]
SetTopYohaku(int nPixel) | CTextArea | [inline]
SetViewLeftCol(CLayoutInt nLeftCol) | CTextArea | [inline]
SetViewTopLine(CLayoutInt nLine) | CTextArea | [inline]
TextArea_OnSize(const CMySize &sizeClient, int nCxVScroll, int nCyHScroll) | CTextArea |
UpdateAreaMetrics(HDC hdc) | CTextArea |
~CTextArea() | CTextArea | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextDrawer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextDrawer

#include <CTextDrawer.h>

CTextDrawerのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTextDrawer (const CEditView *pEditView)
virtual | ~CTextDrawer ()
const CTextArea * | GetTextArea () const
void | DispText (HDC hdc, DispPos *pDispPos, const wchar_t *pData, int nLength) const
void | DispText (HDC hdc, int x, int y, const wchar_t *pData, int nLength) const
void | DispEOF (HDC hdc, DispPos *pDispPos) const
void | _DrawEOL (HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, CEOL cEol, bool bBold, COLORREF pColor) const
void | DispEOL (HDC hdc, DispPos *pDispPos, CEOL cEol, bool bSearchStringMode) const
void | DispTab (HDC hdc, DispPos *pDispPos, int nColorIdx) const
void | _DrawTabArrow (HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor) const
void | DispZenkakuSpace (HDC hdc, DispPos *pDispPos, bool bSearchStringMode) const
void | DispHankakuSpace (HDC hdc, DispPos *pDispPos, bool bSearchStringMode) const
void | DispWrap (HDC hdc, DispPos *pDispPos) const
bool | DispEmptyLine (HDC hdc, DispPos *pDispPos) const
空行を描画。EOFを描画した場合はtrueを返す。
void | DispVerticalLines (HDC hdc, int nTop, int nBottom, CLayoutInt nLeftCol, CLayoutInt nRightCol) const
指定桁縦線描画関数 // 2005.11.08 Moca
void | DispLineNumber (HDC hdc, const CLayout *pcLayout, int nLineNum, int y) const

Protected メソッド

int | _GetColorIdx (int nColorIdx, bool bSearchStringMode) const

Private 変数

const CEditView * | m_pEditView

説明

CTextDrawer.h の 12 行で定義されています。

コンストラクタとデストラクタ

CTextDrawer::CTextDrawer ( const CEditView * pEditView ) [inline]

CTextDrawer.h の 14 行で定義されています。

virtual CTextDrawer::~CTextDrawer ( ) [inline, virtual]

CTextDrawer.h の 15 行で定義されています。

関数

const CTextArea * CTextDrawer::GetTextArea ( ) const

CTextDrawer.cpp の 14 行で定義されています。

参照先 CEditView::GetTextArea(), と m_pEditView.

参照元 DispEOF(), DispTab(), DispText(), DispVerticalLines(), と DispZenkakuSpace().

void CTextDrawer::DispText | ( | HDC | hdc,
 |  | DispPos * | pDispPos,
 |  | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | const

CTextDrawer.cpp の 34 行で定義されています。

参照先 CTextMetrics::CalcTextWidth(), ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), CTextMetrics::GenerateDxArray(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CTextArea::GetAreaWidth(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CNativeW::GetKetaOfChar(), CNativeW::GetSizeOfChar(), GetTextArea(), CEditView::GetTextMetrics(), m_pEditView, と CMyRect::Width().

参照元 CEditView::DispLineNew(), と DispText().

void CTextDrawer::DispText | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | const wchar_t * | pData,
 |  | int | nLength |
 | ) |  |  | const

CTextDrawer.cpp の 138 行で定義されています。

参照先 DispText(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CEditView::GetTextMetrics(), と m_pEditView.

void CTextDrawer::DispEOF | ( | HDC | hdc,
 |  | DispPos * | pDispPos |
 | ) |  |  | const

EOF記号の描画

日付:
2004.05.29 genta MIKさんのアドバイスにより関数にくくりだし

2007.08.28 kobake 引数 nCharWidth 削除

2007.08.28 kobake 引数 fuOptions 削除

2007.08.30 kobake 引数 EofColInfo 削除

引数:
hdc | [in] 描画対象のDevice Context
pDispPos | [in] 表示座標

CTextDrawer.cpp の 153 行で定義されています。

参照先 _countof, COLORIDX_EOF, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), CTextArea::GenerateClipRect(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllHankaku(), GetTextArea(), CEditView::GetTextMetrics(), m_pEditView, CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 DispEmptyLine(), と CEditView::DispLineNew().

void CTextDrawer::_DrawEOL | ( | HDC | hdc,
 |  | int | nPosX,
 |  | int | nPosY,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | CEOL | cEol,
 |  | bool | bBold,
 |  | COLORREF | pColor |
 | ) |  |  | const

画面描画補助関数: 行末の改行マークを改行コードによって書き分ける（メイン）

覚え書き:
bBoldがTRUEの時は横に1ドットずらして重ね書きを行うが、 あまり太く見えない。
日付:
2001.12.21 YAZAKI 改行記号の描きかたを変更。ペンはこの関数内で作るようにした。 矢印の先頭を、sx, syにして描画ルーチン書き直し。
引数:
hdc | Device Context Handle
nPosX | 描画座標X
nPosY | 描画座標Y
nWidth | 描画エリアのサイズX
nHeight | 描画エリアのサイズY
cEol | 行末コード種別
bBold | TRUE: 太字
pColor | 色

CTextDrawer.cpp の 211 行で定義されています。

参照先 EOL_CR, EOL_CRLF, EOL_LF, EOL_LFCR, CEOL::GetType(), と NULL.

参照元 DispEOL().

void CTextDrawer::DispEOL | ( | HDC | hdc,
 |  | DispPos * | pDispPos,
 |  | CEOL | cEol,
 |  | bool | bSearchStringMode |
 | ) |  |  | const

CTextDrawer.cpp の 387 行で定義されています。

参照先 _DrawEOL(), _GetColorIdx(), COLORIDX_CRLF, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), CTextArea::GenerateClipRect(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllHankaku(), CTextMetrics::GetHankakuHeight(), CTextMetrics::GetHankakuWidth(), CEditView::GetTextArea(), CTypeSupport::GetTextColor(), CEditView::GetTextMetrics(), CTypeSupport::IsFatFont(), m_pEditView, NULL, CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 CEditView::DispLineNew().

void CTextDrawer::DispTab | ( | HDC | hdc,
 |  | DispPos * | pDispPos,
 |  | int | nColorIdx |
 | ) |  |  | const

CTextDrawer.cpp の 451 行で定義されています。

参照先 _DrawTabArrow(), COLORIDX_SEARCH, COLORIDX_TAB, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), CLayoutMgr::GetActualTabSpace(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CEditDoc::GetDocumentAttribute(), DispPos::GetDrawCol(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllHankaku(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CTextMetrics::GetHankakuHeight(), CTextMetrics::GetHankakuWidth(), GetTextArea(), CTypeSupport::GetTextColor(), CEditView::GetTextMetrics(), CTypeSupport::IsDisp(), CTypeSupport::IsFatFont(), Types::m_bTabArrow, CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, m_pEditView, Types::m_szTabViewString, CTypeSupport::RewindColors(), CTypeSupport::SetBkColor(), CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 CEditView::DispLineNew().

void CTextDrawer::_DrawTabArrow | ( | HDC | hdc,
 |  | int | nPosX,
 |  | int | nPosY,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | int | bBold,
 |  | COLORREF | pColor |
 | ) |  |  | const

CTextDrawer.cpp の 548 行で定義されています。

参照先 NULL.

参照元 DispTab().

void CTextDrawer::DispZenkakuSpace | ( | HDC | hdc,
 |  | DispPos * | pDispPos,
 |  | bool | bSearchStringMode |
 | ) |  |  | const

CTextDrawer.cpp の 589 行で定義されています。

参照先 _GetColorIdx(), COLORIDX_ZENSPACE, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllZenkaku(), GetTextArea(), CEditView::GetTextMetrics(), m_pEditView, CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 CEditView::DispLineNew().

void CTextDrawer::DispHankakuSpace | ( | HDC | hdc,
 |  | DispPos * | pDispPos,
 |  | bool | bSearchStringMode |
 | ) |  |  | const

CTextDrawer.cpp の 621 行で定義されています。

参照先 _GetColorIdx(), COLORIDX_SPACE, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), DispPos::ForwardDrawCol(), CTextArea::GenerateClipRect(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllHankaku(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CMyRect::Height(), m_pEditView, CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 CEditView::DispLineNew().

void CTextDrawer::DispWrap | ( | HDC | hdc,
 |  | DispPos * | pDispPos |
 | ) |  |  | const

CTextDrawer.cpp の 669 行で定義されています。

参照先 COLORIDX_WRAP, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), CTextArea::GenerateClipRect(), DispPos::GetDrawPos(), CTextMetrics::GetDxArray_AllHankaku(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTypeSupport::IsDisp(), m_pEditView, CTypeSupport::SetColors(), と CTypeSupport::SetFont().

参照元 CEditView::DispLineNew().

bool CTextDrawer::DispEmptyLine | ( | HDC | hdc,
 |  | DispPos * | pDispPos |
 | ) |  |  | const

空行を描画。EOFを描画した場合はtrueを返す。

CTextDrawer.cpp の 711 行で定義されています。

参照先 COLORIDX_EOF, COLORIDX_TEXT, DispEOF(), DispVerticalLines(), CTypeSupport::FillBack(), DispPos::ForwardDrawLine(), CTextArea::GenerateClipRectLine(), DispPos::GetDrawPos(), CTextMetrics::GetHankakuDy(), DispPos::GetLayoutLineRef(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CLayoutMgr::GetMaxLineKetas(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CTextArea::GetViewTopLine(), CEditView::IsBkBitmap(), CTypeSupport::IsDisp(), WCODE::isLineDelimiter(), CViewCalc::LineIndexToColmn(), CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, と m_pEditView.

参照元 CEditView::DispLineNew().

void CTextDrawer::DispVerticalLines | ( | HDC | hdc,
 |  | int | nTop,
 |  | int | nBottom,
 |  | CLayoutInt | nLeftCol,
 |  | CLayoutInt | nRightCol |
 | ) |  |  | const

指定桁縦線描画関数 // 2005.11.08 Moca

指定桁縦線の描画

日付:
2005.11.08 Moca 新規作成

2006.04.29 Moca 太線・点線のサポート。選択中の反転対策に行ごとに作画するように変更 縦線の色がテキストの背景色と同じ場合は、縦線の背景色をEXORで作画する

覚え書き:
Common::m_nVertLineOffsetにより、指定桁の前の文字の上に作画されることがある。
引数:
hdc | 作画するウィンドウのDC
nTop | 線を引く上端のクライアント座標y
nBottom | 線を引く下端のクライアント座標y
nLeftCol | 線を引く範囲の左桁の指定
nRightCol | 線を引く範囲の右桁の指定(-1で未指定)

CTextDrawer.cpp の 788 行で定義されています。

参照先 COLORIDX_TEXT, COLORIDX_VERTLINE, CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CTypeSupport::GetBackColor(), CEditDoc::GetDocumentAttribute(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayoutMgr::GetMaxLineKetas(), GetTextArea(), CEditView::GetTextArea(), CTypeSupport::GetTextColor(), CEditView::GetTextMetrics(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CTypeSupport::HasUnderLine(), CTypeSupport::IsDisp(), CTypeSupport::IsFatFont(), CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, Types::m_nVertLineIdx, CommonSetting_Window::m_nVertLineOffset, CEditView::m_pcEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sWindow, MAX_VERTLINES, NULL, と t_max().

参照元 DispEmptyLine(), CEditView::DispLineNew(), と CEditView::OnPaint().

void CTextDrawer::DispLineNumber | ( | HDC | hdc,
 |  | const CLayout * | pcLayout,
 |  | int | nLineNum,
 |  | int | y |
 | ) |  |  | const

CTextDrawer.cpp の 915 行で定義されています。

参照先 COLORIDX_DIFF_APPEND, COLORIDX_DIFF_CHANGE, COLORIDX_DIFF_DELETE, COLORIDX_GYOU, COLORIDX_GYOU_MOD, COLORIDX_MARK, COLORIDX_TEXT, ApiWrap::ExtTextOutOption(), ApiWrap::ExtTextOutW_AnyBuild(), CTypeSupport::FillBack(), CTextArea::GetAreaLeft(), CTypeSupport::GetBackColor(), CEditDoc::GetDocumentAttribute(), CTextMetrics::GetDxArray_AllHankaku(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CDocLine::IsBookMarked(), CDocLine::IsDiffMarked(), CTypeSupport::IsDisp(), CEditDoc::IsModified(), CDocLine::IsModifyed(), Types::m_bLineNumIsCRLF, Types::m_cLineTermChar, DLLSHAREDATA::m_Common, CommonSetting_Window::m_nLineNumRightSpace, Types::m_nLineTermType, CTextArea::m_nViewAlignLeftCols, CLayout::m_pCDocLine, CEditView::m_pcEditDoc, m_pEditView, CEditView::m_pShareData, CommonSetting::m_sWindow, MARK_DIFF_APPEND, MARK_DIFF_CHANGE, MARK_DIFF_DEL_EX, MARK_DIFF_DELETE, NULL, CTypeSupport::RewindColors(), CTypeSupport::RewindFont(), CTypeSupport::RewindPen(), CTypeSupport::SetBkColor(), CTypeSupport::SetFont(), CTypeSupport::SetSolidPen(), と CTypeSupport::SetTextColor().

参照元 CEditView::DispLineNew().

int CTextDrawer::_GetColorIdx | ( | int | nColorIdx,
 |  | bool | bSearchStringMode |
 | ) |  |  | const [protected]

CTextDrawer.cpp の 21 行で定義されています。

参照先 COLORIDX_SEARCH, と m_pEditView.

参照元 DispEOL(), DispHankakuSpace(), と DispZenkakuSpace().

変数

const CEditView* CTextDrawer::m_pEditView [private]

CTextDrawer.h の 76 行で定義されています。

参照元 _GetColorIdx(), DispEmptyLine(), DispEOF(), DispEOL(), DispHankakuSpace(), DispLineNumber(), DispTab(), DispText(), DispVerticalLines(), DispWrap(), DispZenkakuSpace(), と GetTextArea().

このクラスの説明は次のファイルから生成されました:
  • CTextDrawer.h
  • CTextDrawer.cpp
Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextDrawer メンバ一覧

これは全メンバの一覧です。CTextDrawer継承メンバも含んでいます。

_DrawEOL(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, CEOL cEol, bool bBold, COLORREF pColor) const | CTextDrawer |
_DrawTabArrow(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor) const | CTextDrawer |
_GetColorIdx(int nColorIdx, bool bSearchStringMode) const | CTextDrawer | [protected]
CTextDrawer(const CEditView *pEditView) | CTextDrawer | [inline]
DispEmptyLine(HDC hdc, DispPos *pDispPos) const | CTextDrawer |
DispEOF(HDC hdc, DispPos *pDispPos) const | CTextDrawer |
DispEOL(HDC hdc, DispPos *pDispPos, CEOL cEol, bool bSearchStringMode) const | CTextDrawer |
DispHankakuSpace(HDC hdc, DispPos *pDispPos, bool bSearchStringMode) const | CTextDrawer |
DispLineNumber(HDC hdc, const CLayout *pcLayout, int nLineNum, int y) const | CTextDrawer |
DispTab(HDC hdc, DispPos *pDispPos, int nColorIdx) const | CTextDrawer |
DispText(HDC hdc, DispPos *pDispPos, const wchar_t *pData, int nLength) const | CTextDrawer |
DispText(HDC hdc, int x, int y, const wchar_t *pData, int nLength) const | CTextDrawer |
DispVerticalLines(HDC hdc, int nTop, int nBottom, CLayoutInt nLeftCol, CLayoutInt nRightCol) const | CTextDrawer |
DispWrap(HDC hdc, DispPos *pDispPos) const | CTextDrawer |
DispZenkakuSpace(HDC hdc, DispPos *pDispPos, bool bSearchStringMode) const | CTextDrawer |
GetTextArea() const | CTextDrawer |
m_pEditView | CTextDrawer | [private]
~CTextDrawer() | CTextDrawer | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextInputStream

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextInputStream

#include <CTextStream.h>

CTextInputStreamに対する継承グラフ

[凡例]
CTextInputStreamのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTextInputStream (const TCHAR *tszPath)
CTextInputStream ()
virtual | ~CTextInputStream ()
void | Open (const TCHAR *tszPath)
std::wstring | ReadLineW ()
1行読込。改行は削る

Private 変数

bool | m_bIsUtf8
UTF-8ならtrue

説明

CTextStream.h の 16 行で定義されています。

コンストラクタとデストラクタ

CTextInputStream::CTextInputStream ( const TCHAR * tszPath )

CTextStream.cpp の 30 行で定義されています。

参照先 m_bIsUtf8, と Open().

CTextInputStream::CTextInputStream ( )

CTextStream.cpp の 37 行で定義されています。

参照先 m_bIsUtf8.

CTextInputStream::~CTextInputStream ( ) [virtual]

CTextStream.cpp の 43 行で定義されています。

関数

void CTextInputStream::Open ( const TCHAR * tszPath )

CTextStream.cpp の 47 行で定義されています。

参照先 CStream::Good(), m_bIsUtf8, CStream::m_fp, CStream::Open(), と UTF8_BOM.

参照元 CTextInputStream(), と CTextInputStream_AbsIni::CTextInputStream_AbsIni().

wstring CTextInputStream::ReadLineW ( )

1行読込。改行は削る

CTextStream.cpp の 67 行で定義されています。

参照先 CMemory::AppendRawData(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), m_bIsUtf8, CStream::m_fp, CShiftJis::SJISToUnicode(), と CUtf8::UTF8ToUnicode().

参照元 CPropTypes::DispatchEvent_KeyHelp(), CDicMgr::HokanSearch(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CWSHMacroManager::LoadKeyMacro(), CPPAMacroMgr::LoadKeyMacro(), CKeyMacroMgr::LoadKeyMacro(), CPropTypes::p3_Import_Colors(), CPropCommon::p7_Import_List_KeyWord(), CPropCommon::p8_Import_CustMenuSetting(), と CDicMgr::Search().

変数

bool CTextInputStream::m_bIsUtf8 [private]

UTF-8ならtrue

CTextStream.h の 28 行で定義されています。

参照元 CTextInputStream(), Open(), と ReadLineW().

このクラスの説明は次のファイルから生成されました:
  • CTextStream.h
  • CTextStream.cpp
Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextInputStream メンバ一覧

これは全メンバの一覧です。CTextInputStream継承メンバも含んでいます。

Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
CTextInputStream(const TCHAR *tszPath) | CTextInputStream |
CTextInputStream() | CTextInputStream |
Eof() const | CStream | [inline]
Good() const | CStream | [inline, virtual]
m_bIsUtf8 | CTextInputStream | [private]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath) | CTextInputStream |
CStream::Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
ReadLineW() | CTextInputStream |
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
~CStream() | CStream | [virtual]
~CTextInputStream() | CTextInputStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextInputStream_AbsIni

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextInputStream_AbsIni

#include <CTextStream.h>

CTextInputStream_AbsIniに対する継承グラフ

[凡例]
CTextInputStream_AbsIniのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTextInputStream_AbsIni (const TCHAR *tszPath, bool bOrExedir=true)

説明

CTextStream.h の 49 行で定義されています。

コンストラクタとデストラクタ

CTextInputStream_AbsIni::CTextInputStream_AbsIni | ( | const TCHAR * | tszPath,
 |  | bool | bOrExedir = true
 | ) |  |

CTextStream.cpp の 187 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, GetInidir(), GetInidirOrExedir(), と CTextInputStream::Open().

このクラスの説明は次のファイルから生成されました:
  • CTextStream.h
  • CTextStream.cpp
Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextInputStream_AbsIni メンバ一覧

これは全メンバの一覧です。CTextInputStream_AbsIni継承メンバも含んでいます。

Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
CTextInputStream(const TCHAR *tszPath) | CTextInputStream |
CTextInputStream() | CTextInputStream |
CTextInputStream_AbsIni(const TCHAR *tszPath, bool bOrExedir=true) | CTextInputStream_AbsIni |
Eof() const | CStream | [inline]
Good() const | CStream | [inline, virtual]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath) | CTextInputStream |
CStream::Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
ReadLineW() | CTextInputStream |
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
~CStream() | CStream | [virtual]
~CTextInputStream() | CTextInputStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextMetrics

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextMetrics

#include <CTextMetrics.h>

すべてのメンバ一覧

Public メソッド

CTextMetrics ()
virtual | ~CTextMetrics ()
void | CopyTextMetricsStatus (CTextMetrics *pDst) const
void | Update (HFONT hFont)
void | SetHankakuWidth (int nHankakuWidth)
半角文字の幅を設定。単位はピクセル。
void | SetHankakuHeight (int nHankakuHeight)
半角文字の縦幅を設定。単位はピクセル。
void | SetHankakuDx (int nHankakuDx)
半角文字の文字間隔を設定。単位はピクセル。
void | SetHankakuDy (int nHankakuDy)
半角文字の行間隔を設定。単位はピクセル。
int | GetHankakuWidth () const
半角文字の横幅を取得。単位はピクセル。
int | GetHankakuHeight () const
半角文字の縦幅を取得。単位はピクセル。
int | GetHankakuDx () const
半角文字の文字間隔を取得。単位はピクセル。
int | GetZenkakuDx () const
全角文字の文字間隔を取得。単位はピクセル。
int | GetHankakuDy () const
const int * | GetDxArray_AllHankaku () const
半角文字列の文字間隔配列を取得。要素数は64。
const int * | GetDxArray_AllZenkaku () const
半角文字列の文字間隔配列を取得。要素数は64。

Static Public メソッド

static const int * | GenerateDxArray (std::vector< int > *vResultArray, const wchar_t *pText, int nLength, int nHankakuDx)
指定した文字列により文字間隔配列を生成する。
static int | CalcTextWidth (const wchar_t *pText, int nLength, const int *pnDx)
文字列のピクセル幅を返す。
static int | CalcTextWidth2 (const wchar_t *pText, int nLength, int nHankakuDx)
文字列のピクセル幅を返す。

Private 変数

int | m_nCharWidth
半角文字の横幅
int | m_nCharHeight
半角文字の縦幅
int | m_nDxBasis
半角文字の文字間隔 (横幅+α)
int | m_nDyBasis
半角文字の行間隔 (縦幅+α)
int | m_anHankakuDx [64]
半角用文字間隔配列
int | m_anZenkakuDx [64]
全角用文字間隔配列

説明

CTextMetrics.h の 7 行で定義されています。

コンストラクタとデストラクタ

CTextMetrics::CTextMetrics ( )

CTextMetrics.cpp の 11 行で定義されています。

参照先 SetHankakuDx(), SetHankakuDy(), SetHankakuHeight(), と SetHankakuWidth().

CTextMetrics::~CTextMetrics ( ) [virtual]

CTextMetrics.cpp の 20 行で定義されています。

関数

void CTextMetrics::CopyTextMetricsStatus ( CTextMetrics * pDst ) const

CTextMetrics.cpp の 24 行で定義されています。

参照先 GetHankakuHeight(), GetHankakuWidth(), SetHankakuHeight(), と SetHankakuWidth().

参照元 CEditView::CopyViewStatus().

void CTextMetrics::Update ( HFONT hFont )

CTextMetrics.cpp の 36 行で定義されています。

参照先 NULL, SetHankakuHeight(), と SetHankakuWidth().

参照元 CEditView::SetFont().

void CTextMetrics::SetHankakuWidth ( int nHankakuWidth )

半角文字の幅を設定。単位はピクセル。

CTextMetrics.cpp の 59 行で定義されています。

参照先 m_nCharWidth.

参照元 CopyTextMetricsStatus(), CTextMetrics(), と Update().

void CTextMetrics::SetHankakuHeight ( int nHankakuHeight )

半角文字の縦幅を設定。単位はピクセル。

CTextMetrics.cpp の 65 行で定義されています。

参照先 m_nCharHeight.

参照元 CopyTextMetricsStatus(), CTextMetrics(), と Update().

void CTextMetrics::SetHankakuDx ( int nHankakuDx )

半角文字の文字間隔を設定。単位はピクセル。

文字間隔基準設定。nDxBasisは半角文字の基準ピクセル幅。SetHankakuDx

CTextMetrics.cpp の 72 行で定義されています。

参照先 _countof, GetHankakuDx(), GetZenkakuDx(), m_anHankakuDx, m_anZenkakuDx, と m_nDxBasis.

参照元 CTextMetrics(), と CTextArea::UpdateAreaMetrics().

void CTextMetrics::SetHankakuDy ( int nHankakuDy )

半角文字の行間隔を設定。単位はピクセル。

CTextMetrics.cpp の 78 行で定義されています。

参照先 m_nDyBasis.

参照元 CTextMetrics(), と CTextArea::UpdateAreaMetrics().

int CTextMetrics::GetHankakuWidth ( ) const [inline]

半角文字の横幅を取得。単位はピクセル。

CTextMetrics.h の 22 行で定義されています。

参照先 m_nCharWidth.

参照元 CopyTextMetricsStatus(), CTextDrawer::DispEOL(), CTextDrawer::DispTab(), と CTextArea::UpdateAreaMetrics().

int CTextMetrics::GetHankakuHeight ( ) const [inline]

半角文字の縦幅を取得。単位はピクセル。

CTextMetrics.h の 23 行で定義されています。

参照先 m_nCharHeight.

参照元 CEditView::CaretUnderLineON(), CopyTextMetricsStatus(), CTextDrawer::DispEOL(), CTextDrawer::DispTab(), CCaret::GetHankakuHeight(), CEditView::SetIMECompFormPos(), と CTextArea::UpdateAreaMetrics().

int CTextMetrics::GetHankakuDx ( ) const [inline]

半角文字の文字間隔を取得。単位はピクセル。

CTextMetrics.h の 24 行で定義されています。

参照先 m_nDxBasis.

参照元 CRuler::_DrawRulerCaret(), CTextArea::ClientToLayout(), CTextArea::DetectWidthOfLineNumberArea(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CEditView::DispTextSelected(), CTextDrawer::DispVerticalLines(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CTextArea::GenerateClipRect(), CTextArea::GenerateLeftRect(), CTextArea::GenerateRightRect(), CTextArea::GetDocumentLeftClientPointX(), CCaret::GetHankakuDx(), CCaret::MoveCursorProperly(), CCaret::MoveCursorToClientPoint(), CEditView::OnPaint(), CEditView::ScrollAtH(), SetHankakuDx(), CEditView::ShowHokanMgr(), CTextArea::TextArea_OnSize(), と CTextArea::UpdateAreaMetrics().

int CTextMetrics::GetZenkakuDx ( ) const [inline]

全角文字の文字間隔を取得。単位はピクセル。

CTextMetrics.h の 25 行で定義されています。

参照先 m_nDxBasis.

参照元 SetHankakuDx().

int CTextMetrics::GetHankakuDy ( ) const [inline]

CTextMetrics.h の 26 行で定義されています。

参照先 m_nDyBasis.

参照元 CCaret::CalcCaretDrawPos(), CEditView::CaretUnderLineON(), CTextArea::ClientToLayout(), CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CEditView::DispTextSelected(), CTextDrawer::DispVerticalLines(), CViewSelect::DrawSelectArea(), CViewSelect::DrawSelectAreaLine(), CTextArea::GenerateBottomRect(), CTextArea::GenerateClipRect(), CTextArea::GenerateClipRectLine(), CTextArea::GenerateClipRectRight(), CTextArea::GenerateTopRect(), CCaret::GetHankakuDy(), CEditView::InsertData_CEditView(), CCaret::MoveCursor(), CEditView::OnPaint(), CEditView::ReplaceData_CEditView(), CEditView::ScrollAtV(), CEditView::ShowHokanMgr(), CTextArea::TextArea_OnSize(), と CTextArea::UpdateAreaMetrics().

const int* CTextMetrics::GetDxArray_AllHankaku ( ) const [inline]

半角文字列の文字間隔配列を取得。要素数は64。

CTextMetrics.h の 29 行で定義されています。

参照先 m_anHankakuDx.

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), と CTextDrawer::DispWrap().

const int* CTextMetrics::GetDxArray_AllZenkaku ( ) const [inline]

半角文字列の文字間隔配列を取得。要素数は64。

CTextMetrics.h の 30 行で定義されています。

参照先 m_anZenkakuDx.

参照元 CTextDrawer::DispZenkakuSpace().

const int * CTextMetrics::GenerateDxArray | ( | std::vector< int > * | vResultArray,
 |  | const wchar_t * | pText,
 |  | int | nLength,
 |  | int | nHankakuDx |
 | ) |  |  | [static]

指定した文字列により文字間隔配列を生成する。

引数:
vResultArray | [out] 文字間隔配列の受け取りコンテナ
pText | [in] 文字列
nLength | [in] 文字列長
nHankakuDx | [in] 半角文字の文字間隔

CTextMetrics.cpp の 88 行で定義されています。

参照先 WCODE::isHankaku(), と NULL.

参照元 CalcTextWidth2(), CTextDrawer::DispText(), CPrintPreview::DrawPageText(), と CPrintPreview::Print_DrawLine().

int CTextMetrics::CalcTextWidth | ( | const wchar_t * | pText,
 |  | int | nLength,
 |  | const int * | pnDx |
 | ) |  |  | [static]

文字列のピクセル幅を返す。

引数:
pText | 文字列
nLength | 文字列長
pnDx | 文字間隔の入った配列

CTextMetrics.cpp の 120 行で定義されています。

参照元 CalcTextWidth2(), と CTextDrawer::DispText().

int CTextMetrics::CalcTextWidth2 | ( | const wchar_t * | pText,
 |  | int | nLength,
 |  | int | nHankakuDx |
 | ) |  |  | [static]

文字列のピクセル幅を返す。

引数:
pText | 文字列
nLength | 文字列長
nHankakuDx | 半角文字の文字間隔

CTextMetrics.cpp の 138 行で定義されています。

参照先 CalcTextWidth(), と GenerateDxArray().

参照元 CPrintPreview::DrawFooter(), と CPrintPreview::DrawHeader().

変数

int CTextMetrics::m_nCharWidth [private]

半角文字の横幅

CTextMetrics.h の 56 行で定義されています。

参照元 GetHankakuWidth(), と SetHankakuWidth().

int CTextMetrics::m_nCharHeight [private]

半角文字の縦幅

CTextMetrics.h の 57 行で定義されています。

参照元 GetHankakuHeight(), と SetHankakuHeight().

int CTextMetrics::m_nDxBasis [private]

半角文字の文字間隔 (横幅+α)

CTextMetrics.h の 58 行で定義されています。

参照元 GetHankakuDx(), GetZenkakuDx(), と SetHankakuDx().

int CTextMetrics::m_nDyBasis [private]

半角文字の行間隔 (縦幅+α)

CTextMetrics.h の 59 行で定義されています。

参照元 GetHankakuDy(), と SetHankakuDy().

int CTextMetrics::m_anHankakuDx[64] [private]

半角用文字間隔配列

CTextMetrics.h の 60 行で定義されています。

参照元 GetDxArray_AllHankaku(), と SetHankakuDx().

int CTextMetrics::m_anZenkakuDx[64] [private]

全角用文字間隔配列

CTextMetrics.h の 61 行で定義されています。

参照元 GetDxArray_AllZenkaku(), と SetHankakuDx().

このクラスの説明は次のファイルから生成されました:
  • CTextMetrics.h
  • CTextMetrics.cpp
Sakura-Editorに対してSat Nov 17 20:29:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextMetrics メンバ一覧

これは全メンバの一覧です。CTextMetrics継承メンバも含んでいます。

CalcTextWidth(const wchar_t *pText, int nLength, const int *pnDx) | CTextMetrics | [static]
CalcTextWidth2(const wchar_t *pText, int nLength, int nHankakuDx) | CTextMetrics | [static]
CopyTextMetricsStatus(CTextMetrics *pDst) const | CTextMetrics |
CTextMetrics() | CTextMetrics |
GenerateDxArray(std::vector< int > *vResultArray, const wchar_t *pText, int nLength, int nHankakuDx) | CTextMetrics | [static]
GetDxArray_AllHankaku() const | CTextMetrics | [inline]
GetDxArray_AllZenkaku() const | CTextMetrics | [inline]
GetHankakuDx() const | CTextMetrics | [inline]
GetHankakuDy() const | CTextMetrics | [inline]
GetHankakuHeight() const | CTextMetrics | [inline]
GetHankakuWidth() const | CTextMetrics | [inline]
GetZenkakuDx() const | CTextMetrics | [inline]
m_anHankakuDx | CTextMetrics | [private]
m_anZenkakuDx | CTextMetrics | [private]
m_nCharHeight | CTextMetrics | [private]
m_nCharWidth | CTextMetrics | [private]
m_nDxBasis | CTextMetrics | [private]
m_nDyBasis | CTextMetrics | [private]
SetHankakuDx(int nHankakuDx) | CTextMetrics |
SetHankakuDy(int nHankakuDy) | CTextMetrics |
SetHankakuHeight(int nHankakuHeight) | CTextMetrics |
SetHankakuWidth(int nHankakuWidth) | CTextMetrics |
Update(HFONT hFont) | CTextMetrics |
~CTextMetrics() | CTextMetrics | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTextOutputStream

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTextOutputStream

#include <CTextStream.h>

CTextOutputStreamに対する継承グラフ

[凡例]
CTextOutputStreamのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTextOutputStream (const TCHAR *tszPath)
virtual | ~CTextOutputStream ()
void | WriteString (const wchar_t *szData)
void | WriteF (const wchar_t *format,...)
void | WriteInt (int n)

説明

CTextStream.h の 32 行で定義されています。

コンストラクタとデストラクタ

CTextOutputStream::CTextOutputStream ( const TCHAR * tszPath )

CTextStream.cpp の 100 行で定義されています。

参照先 CStream::Good(), CStream::m_fp, と UTF8_BOM.

CTextOutputStream::~CTextOutputStream ( ) [virtual]

CTextStream.cpp の 109 行で定義されています。

関数

void CTextOutputStream::WriteString ( const wchar_t * szData )

CTextStream.cpp の 113 行で定義されています。

参照先 CStream::m_fp, と NULL.

参照元 WriteF().

void CTextOutputStream::WriteF | ( | const wchar_t * | format,
 |  |  | ...
 | ) |  |

CTextStream.cpp の 168 行で定義されています。

参照先 _countof, auto_vsprintf_s(), と WriteString().

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CPropCommon::p5_Export_KeySetting(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p8_Export_CustMenuSetting(), CMacro::Save(), と CKeyMacroMgr::SaveKeyMacro().

void CTextOutputStream::WriteInt ( int n )

このクラスの説明は次のファイルから生成されました:
  • CTextStream.h
  • CTextStream.cpp
Sakura-Editorに対してSat Nov 17 20:29:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTextOutputStream メンバ一覧

これは全メンバの一覧です。CTextOutputStream継承メンバも含んでいます。

Close() | CStream |
CStream(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
CStream() | CStream |
CTextOutputStream(const TCHAR *tszPath) | CTextOutputStream |
Eof() const | CStream | [inline]
Good() const | CStream | [inline, virtual]
m_fp | CStream | [protected]
Open(const TCHAR *tszPath, const TCHAR *tszMode) | CStream |
operator bool() const | CStream | [inline]
SeekEnd(long offset) | CStream |
SeekSet(long offset) | CStream |
WriteF(const wchar_t *format,...) | CTextOutputStream |
WriteInt(int n) | CTextOutputStream |
WriteString(const wchar_t *szData) | CTextOutputStream |
~CStream() | CStream | [virtual]
~CTextOutputStream() | CTextOutputStream | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTipWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTipWnd

#include <CTipWnd.h>

CTipWndに対する継承グラフ

[凡例]
CTipWndのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTipWnd ()
~CTipWnd ()
void | Create (HINSTANCE, HWND)
void | Show (int, int, const TCHAR *, RECT *pRect=NULL)
void | Hide (void)
void | GetWindowSize (LPRECT pRect)
void | ChangeFont (LOGFONT *lf)

Public 変数

CNativeW m_cKey
BOOL | m_KeyWasHit
int | m_nSearchLine
int | m_nSearchDict
CNativeT m_cInfo

Protected メソッド

void | ComputeWindowSize (HDC, HFONT, const TCHAR *, RECT *)
void | DrawTipText (HDC, HFONT, const TCHAR *)
virtual void | AfterCreateWindow (void)
LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)

Protected 変数

TCHAR * | m_pszClassName
HFONT | m_hFont

説明

CTipWnd.h の 27 行で定義されています。

コンストラクタとデストラクタ

CTipWnd::CTipWnd ( )

CTipWnd.cpp の 24 行で定義されています。

参照先 FALSE, m_KeyWasHit, と m_pszClassName.

CTipWnd::~CTipWnd ( )

CTipWnd.cpp の 35 行で定義されています。

参照先 m_hFont, と NULL.

関数

void CTipWnd::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent
 | ) |  |

CTipWnd.cpp の 47 行で定義されています。

参照先 CWnd::Create(), CShareData::getInstance(), CShareData::GetShareData(), DLLSHAREDATA::m_Common, m_hFont, CommonSetting_Helper::m_lf_kh, m_pszClassName, CommonSetting::m_sHelper, NULL, と CWnd::RegisterWC().

参照元 CEditView::Create().

void CTipWnd::Show | ( | int | nX,
 |  | int | nY,
 |  | const TCHAR * | szText,
 |  | RECT * | pRect = NULL
 | ) |  |

CTipWnd.cpp の 100 行で定義されています。

参照先 ComputeWindowSize(), CWnd::GetHwnd(), CNativeA::GetStringPtr(), m_cInfo, m_hFont, NULL, CNativeA::SetString(), と TRUE.

参照元 CEditView::OnTimer(), と CEditView::ShowKeywordHelp().

void CTipWnd::Hide ( void )

CTipWnd.cpp の 279 行で定義されています。

参照先 CWnd::GetHwnd().

参照元 CEditView::DispatchEvent(), CViewCommander::HandleCommand(), CEditView::OnKillFocus(), CEditView::OnLBUTTONDOWN(), と CEditView::OnMOUSEMOVE().

void CTipWnd::GetWindowSize ( LPRECT pRect )

CTipWnd.cpp の 306 行で定義されています。

参照先 ComputeWindowSize(), CWnd::GetHwnd(), CNativeA::GetStringPtr(), m_cInfo, と m_hFont.

参照元 CEditView::ShowKeywordHelp().

void CTipWnd::ChangeFont ( LOGFONT * lf ) [inline]

CTipWnd.h の 44 行で定義されています。

参照元 CEditDoc::OpenPropertySheet().

void CTipWnd::ComputeWindowSize | ( | HDC | hdc,
 |  | HFONT | hFont,
 |  | const TCHAR * | pszText,
 |  | RECT * | pRect |
 | ) |  |  | [protected]

CTipWnd.cpp の 132 行で定義されています。

参照先 auto_memcpy(), と CNativeA::GetSizeOfChar().

参照元 GetWindowSize(), と Show().

void CTipWnd::DrawTipText | ( | HDC | hdc,
 |  | HFONT | hFont,
 |  | const TCHAR * | pszText |
 | ) |  |  | [protected]

CTipWnd.cpp の 202 行で定義されています。

参照先 auto_memcpy(), と CNativeA::GetSizeOfChar().

参照元 OnPaint().

void CTipWnd::AfterCreateWindow ( void ) [protected, virtual]

CreateWindowの後

CWnd::AfterCreateWindowでウィンドウを表示するようになっているのを 動かなくするための空関数

日付:
2006.01.09 genta 新規作成

CWndを再定義しています。

CTipWnd.cpp の 95 行で定義されています。

LRESULT CTipWnd::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | l_Param |
 | ) |  |  | [protected]

CTipWnd.cpp の 290 行で定義されています。

参照先 DrawTipText(), CNativeA::GetStringPtr(), m_cInfo, と m_hFont.

変数

TCHAR* CTipWnd::m_pszClassName [protected]

CTipWnd.h の 49 行で定義されています。

参照元 Create(), と CTipWnd().

HFONT CTipWnd::m_hFont [protected]

CTipWnd.h の 53 行で定義されています。

参照元 Create(), GetWindowSize(), OnPaint(), Show(), と ~CTipWnd().

CNativeW CTipWnd::m_cKey

CTipWnd.h の 56 行で定義されています。

参照元 CEditView::KeyWordHelpSearchDict(), と CEditView::ShowKeywordHelp().

BOOL CTipWnd::m_KeyWasHit

CTipWnd.h の 57 行で定義されています。

参照元 CTipWnd(), CEditView::KeySearchCore(), CEditView::KeyWordHelpSearchDict(), と CEditView::ShowKeywordHelp().

int CTipWnd::m_nSearchLine

CTipWnd.h の 58 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), と CEditView::KeySearchCore().

int CTipWnd::m_nSearchDict

CTipWnd.h の 59 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), と CEditView::KeySearchCore().

CNativeT CTipWnd::m_cInfo

CTipWnd.h の 61 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), CEditView::CreatePopUpMenu_R(), GetWindowSize(), CEditView::KeySearchCore(), OnPaint(), と Show().

このクラスの説明は次のファイルから生成されました:
  • CTipWnd.h
  • CTipWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTipWnd メンバ一覧

これは全メンバの一覧です。CTipWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
AfterCreateWindow(void) | CTipWnd | [protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
ChangeFont(LOGFONT *lf) | CTipWnd | [inline]
ComputeWindowSize(HDC, HFONT, const TCHAR *, RECT *) | CTipWnd | [protected]
Create(HINSTANCE, HWND) | CTipWnd |
CWnd::Create(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CTipWnd() | CTipWnd |
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
DrawTipText(HDC, HFONT, const TCHAR *) | CTipWnd | [protected]
GetAppInstance() const | CWnd | [inline]
GetHwnd() const | CWnd | [inline]
GetParentHwnd() const | CWnd | [inline]
GetWindowSize(LPRECT pRect) | CTipWnd |
Hide(void) | CTipWnd |
Init(HINSTANCE, HWND) | CWnd |
m_cInfo | CTipWnd |
m_cKey | CTipWnd |
m_hFont | CTipWnd | [protected]
m_KeyWasHit | CTipWnd |
m_nSearchDict | CTipWnd |
m_nSearchLine | CTipWnd |
m_pszClassName | CTipWnd | [protected]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CTipWnd | [protected]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | CWnd |
Show(int, int, const TCHAR *, RECT *pRect=NULL) | CTipWnd |
~CTipWnd() | CTipWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 ctrl_info_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ctrl_info_t

すべてのメンバ一覧

Public 変数

wchar_t | code
unsigned int | vKey
TCHAR | name [4]
TCHAR * | jname

説明

CDlgCtrlCode.cpp の 54 行で定義されています。

変数

wchar_t ctrl_info_t::code

CDlgCtrlCode.cpp の 55 行で定義されています。

参照元 CDlgCtrlCode::GetData().

unsigned int ctrl_info_t::vKey

CDlgCtrlCode.cpp の 56 行で定義されています。

参照元 CDlgCtrlCode::OnNotify().

TCHAR ctrl_info_t::name[4]

CDlgCtrlCode.cpp の 57 行で定義されています。

参照元 CDlgCtrlCode::SetData().

TCHAR* ctrl_info_t::jname

CDlgCtrlCode.cpp の 58 行で定義されています。

参照元 CDlgCtrlCode::SetData().

この構造体の説明は次のファイルから生成されました:
  • CDlgCtrlCode.cpp
Sakura-Editorに対してSat Nov 17 20:29:13 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CTypeSupport

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTypeSupport

タイプサポートクラス [詳細]

#include <CTypeSupport.h>

CTypeSupportのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CTypeSupport (const CEditView *pEditView, int nColorIdx)
virtual | ~CTypeSupport ()
COLORREF | GetTextColor () const
前景色(文字色)
COLORREF | GetBackColor () const
背景色
bool | IsDisp () const
表示するかどうか
bool | IsFatFont () const
太字かどうか
bool | HasUnderLine () const
下線を持つかどうか
void | FillBack (HDC hdc, const RECT &rc)
void | SetFont (HDC hdc)
void | RewindFont (HDC hdc)
void | SetSolidPen (HDC hdc, int nPenWidth)
void | RewindPen (HDC hdc)
void | SetBkColor (HDC hdc)
void | SetTextColor (HDC hdc)
void | SetColors (HDC hdc)
void | RewindColors (HDC hdc)

Private 変数

const CViewFont * | m_pFontset
const Types * | m_pTypes
int | m_nColorIdx
HDC | m_hdc
HFONT | m_hfntOld
HPEN | m_hpnNew
HPEN | m_hpnOld
COLORREF | m_clrOldBack
COLORREF | m_clrOldText

Static Private 変数

static const COLORREF | INVALID_COLOR = 0xFFFFFFFF

説明

タイプサポートクラス

CTypeSupport.h の 9 行で定義されています。

コンストラクタとデストラクタ

CTypeSupport::CTypeSupport | ( | const CEditView * | pEditView,
 |  | int | nColorIdx |
 | ) |  |  | [inline]

CTypeSupport.h の 14 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute(), INVALID_COLOR, m_clrOldBack, m_clrOldText, m_hdc, m_hfntOld, m_hpnNew, m_hpnOld, CEditView::m_pcEditDoc, m_pTypes, と NULL.

virtual CTypeSupport::~CTypeSupport ( ) [inline, virtual]

CTypeSupport.h の 27 行で定義されています。

参照先 m_hdc, RewindColors(), RewindFont(), と RewindPen().

関数

COLORREF CTypeSupport::GetTextColor ( ) const [inline]

前景色(文字色)

CTypeSupport.h の 44 行で定義されています。

参照先 Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispEOL(), CTextDrawer::DispTab(), CTextDrawer::DispVerticalLines(), と SetSolidPen().

COLORREF CTypeSupport::GetBackColor ( ) const [inline]

背景色

CTypeSupport.h の 50 行で定義されています。

参照先 ColorInfo::m_colBACK, Types::m_ColorInfoArr, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispLineNumber(), と CTextDrawer::DispVerticalLines().

bool CTypeSupport::IsDisp ( ) const [inline]

表示するかどうか

CTypeSupport.h の 56 行で定義されています。

参照先 FALSE, ColorInfo::m_bDisp, Types::m_ColorInfoArr, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CRuler::DispRuler(), CTextDrawer::DispTab(), CTextDrawer::DispVerticalLines(), CTextDrawer::DispWrap(), と CEditView::OnPaint().

bool CTypeSupport::IsFatFont ( ) const [inline]

太字かどうか

CTypeSupport.h の 62 行で定義されています。

参照先 FALSE, ColorInfo::m_bFatFont, Types::m_ColorInfoArr, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispEOL(), CTextDrawer::DispTab(), と CTextDrawer::DispVerticalLines().

bool CTypeSupport::HasUnderLine ( ) const [inline]

下線を持つかどうか

CTypeSupport.h の 68 行で定義されています。

参照先 FALSE, ColorInfo::m_bUnderLine, Types::m_ColorInfoArr, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispVerticalLines().

void CTypeSupport::FillBack | ( | HDC | hdc,
 |  | const RECT & | rc |
 | ) |  |  | [inline]

CTypeSupport.h の 76 行で定義されています。

参照先 ColorInfo::m_colBACK, Types::m_ColorInfoArr, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CRuler::DrawRulerBg(), と CEditView::OnPaint().

void CTypeSupport::SetFont ( HDC hdc ) [inline]

CTypeSupport.h の 86 行で定義されています。

参照先 CViewFont::ChooseFontHandle(), ColorInfo::m_bFatFont, ColorInfo::m_bUnderLine, Types::m_ColorInfoArr, m_hdc, m_hfntOld, m_nColorIdx, m_pFontset, m_pTypes, と NULL.

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), と CEditView::OnPaint().

void CTypeSupport::RewindFont ( HDC hdc ) [inline]

CTypeSupport.h の 100 行で定義されています。

参照先 m_hdc, m_hfntOld, と NULL.

参照元 CTextDrawer::DispLineNumber(), CEditView::OnPaint(), と ~CTypeSupport().

void CTypeSupport::SetSolidPen | ( | HDC | hdc,
 |  | int | nPenWidth |
 | ) |  |  | [inline]

CTypeSupport.h の 109 行で定義されています。

参照先 GetTextColor(), m_hdc, m_hpnNew, m_hpnOld, と NULL.

参照元 CTextDrawer::DispLineNumber(), CRuler::DrawRulerBg(), と CEditView::OnPaint().

void CTypeSupport::RewindPen ( HDC hdc ) [inline]

CTypeSupport.h の 125 行で定義されています。

参照先 m_hdc, m_hpnNew, m_hpnOld, と NULL.

参照元 CTextDrawer::DispLineNumber(), CRuler::DrawRulerBg(), CEditView::OnPaint(), と ~CTypeSupport().

void CTypeSupport::SetBkColor ( HDC hdc ) [inline]

CTypeSupport.h の 140 行で定義されています。

参照先 INVALID_COLOR, m_clrOldBack, ColorInfo::m_colBACK, Types::m_ColorInfoArr, m_hdc, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), RewindColors(), と SetColors().

void CTypeSupport::SetTextColor ( HDC hdc ) [inline]

CTypeSupport.h の 147 行で定義されています。

参照先 INVALID_COLOR, m_clrOldText, Types::m_ColorInfoArr, ColorInfo::m_colTEXT, m_hdc, m_nColorIdx, と m_pTypes.

参照元 CTextDrawer::DispLineNumber(), CRuler::DrawRulerBg(), RewindColors(), と SetColors().

void CTypeSupport::SetColors ( HDC hdc ) [inline]

CTypeSupport.h の 154 行で定義されています。

参照先 SetBkColor(), と SetTextColor().

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispTab(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), と CEditView::OnPaint().

void CTypeSupport::RewindColors ( HDC hdc ) [inline]

CTypeSupport.h の 159 行で定義されています。

参照先 INVALID_COLOR, m_clrOldBack, m_clrOldText, SetBkColor(), と SetTextColor().

参照元 CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CRuler::DrawRulerBg(), CEditView::OnPaint(), と ~CTypeSupport().

変数

const COLORREF CTypeSupport::INVALID_COLOR = 0xFFFFFFFF [static, private]

CTypeSupport.h の 11 行で定義されています。

参照元 CTypeSupport(), RewindColors(), SetBkColor(), と SetTextColor().

const CViewFont* CTypeSupport::m_pFontset [private]

CTypeSupport.h の 173 行で定義されています。

参照元 SetFont().

const Types* CTypeSupport::m_pTypes [private]

CTypeSupport.h の 174 行で定義されています。

参照元 CTypeSupport(), FillBack(), GetBackColor(), GetTextColor(), HasUnderLine(), IsDisp(), IsFatFont(), SetBkColor(), SetFont(), と SetTextColor().

int CTypeSupport::m_nColorIdx [private]

CTypeSupport.h の 175 行で定義されています。

参照元 FillBack(), GetBackColor(), GetTextColor(), HasUnderLine(), IsDisp(), IsFatFont(), SetBkColor(), SetFont(), と SetTextColor().

HDC CTypeSupport::m_hdc [private]

CTypeSupport.h の 177 行で定義されています。

参照元 CTypeSupport(), RewindFont(), RewindPen(), SetBkColor(), SetFont(), SetSolidPen(), SetTextColor(), と ~CTypeSupport().

HFONT CTypeSupport::m_hfntOld [private]

CTypeSupport.h の 178 行で定義されています。

参照元 CTypeSupport(), RewindFont(), と SetFont().

HPEN CTypeSupport::m_hpnNew [private]

CTypeSupport.h の 179 行で定義されています。

参照元 CTypeSupport(), RewindPen(), と SetSolidPen().

HPEN CTypeSupport::m_hpnOld [private]

CTypeSupport.h の 180 行で定義されています。

参照元 CTypeSupport(), RewindPen(), と SetSolidPen().

COLORREF CTypeSupport::m_clrOldBack [private]

CTypeSupport.h の 181 行で定義されています。

参照元 CTypeSupport(), RewindColors(), と SetBkColor().

COLORREF CTypeSupport::m_clrOldText [private]

CTypeSupport.h の 182 行で定義されています。

参照元 CTypeSupport(), RewindColors(), と SetTextColor().

このクラスの説明は次のファイルから生成されました:
  • CTypeSupport.h
Sakura-Editorに対してSat Nov 17 20:29:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTypeSupport メンバ一覧

これは全メンバの一覧です。CTypeSupport継承メンバも含んでいます。

CTypeSupport(const CEditView *pEditView, int nColorIdx) | CTypeSupport | [inline]
FillBack(HDC hdc, const RECT &rc) | CTypeSupport | [inline]
GetBackColor() const | CTypeSupport | [inline]
GetTextColor() const | CTypeSupport | [inline]
HasUnderLine() const | CTypeSupport | [inline]
INVALID_COLOR | CTypeSupport | [private, static]
IsDisp() const | CTypeSupport | [inline]
IsFatFont() const | CTypeSupport | [inline]
m_clrOldBack | CTypeSupport | [private]
m_clrOldText | CTypeSupport | [private]
m_hdc | CTypeSupport | [private]
m_hfntOld | CTypeSupport | [private]
m_hpnNew | CTypeSupport | [private]
m_hpnOld | CTypeSupport | [private]
m_nColorIdx | CTypeSupport | [private]
m_pFontset | CTypeSupport | [private]
m_pTypes | CTypeSupport | [private]
RewindColors(HDC hdc) | CTypeSupport | [inline]
RewindFont(HDC hdc) | CTypeSupport | [inline]
RewindPen(HDC hdc) | CTypeSupport | [inline]
SetBkColor(HDC hdc) | CTypeSupport | [inline]
SetColors(HDC hdc) | CTypeSupport | [inline]
SetFont(HDC hdc) | CTypeSupport | [inline]
SetSolidPen(HDC hdc, int nPenWidth) | CTypeSupport | [inline]
SetTextColor(HDC hdc) | CTypeSupport | [inline]
~CTypeSupport() | CTypeSupport | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CUnicode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUnicode

#include <CUnicode.h>

CUnicodeに対する継承グラフ

[凡例]
CUnicodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | UnicodeToUnicode (CMemory *pMem)

説明

CUnicode.h の 5 行で定義されています。

関数

EConvertResult CUnicode::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CUnicode.h の 7 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToUnicode().

EConvertResult CUnicode::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CUnicode.h の 8 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToUnicode().

EConvertResult CUnicode::UnicodeToUnicode ( CMemory * pMem ) [static]

CUnicode.cpp の 4 行で定義されています。

参照先 RESULT_COMPLETE.

参照元 CodeToUnicode(), と UnicodeToCode().

このクラスの説明は次のファイルから生成されました:
  • CUnicode.h
  • CUnicode.cpp
Sakura-Editorに対してSat Nov 17 20:29:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUnicode メンバ一覧

これは全メンバの一覧です。CUnicode継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CUnicode | [inline, virtual]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CUnicode | [inline, virtual]
UnicodeToUnicode(CMemory *pMem) | CUnicode | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CUnicodeBe

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUnicodeBe

#include <CUnicodeBe.h>

CUnicodeBeに対する継承グラフ

[凡例]
CUnicodeBeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | UnicodeBEToUnicode (CMemory *pMem)
UnicodeBE→Unicodeコード変換
static EConvertResult | UnicodeToUnicodeBE (CMemory *pMem)

説明

CUnicodeBe.h の 5 行で定義されています。

関数

EConvertResult CUnicodeBe::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CUnicodeBe.h の 8 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeBEToUnicode().

EConvertResult CUnicodeBe::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CUnicodeBe.h の 9 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToUnicodeBE().

EConvertResult CUnicodeBe::UnicodeBEToUnicode ( CMemory * pMem ) [static]

UnicodeBE→Unicodeコード変換

CUnicodeBe.cpp の 6 行で定義されています。

参照先 RESULT_COMPLETE, と CMemory::SwapHLByte().

参照元 CodeToUnicode().

EConvertResult CUnicodeBe::UnicodeToUnicodeBE ( CMemory * pMem ) [static]

CUnicodeBe.cpp の 12 行で定義されています。

参照先 RESULT_COMPLETE, と CMemory::SwapHLByte().

参照元 UnicodeToCode().

このクラスの説明は次のファイルから生成されました:
  • CUnicodeBe.h
  • CUnicodeBe.cpp
Sakura-Editorに対してSat Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUnicodeBe メンバ一覧

これは全メンバの一覧です。CUnicodeBe継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CUnicodeBe | [inline, virtual]
UnicodeBEToUnicode(CMemory *pMem) | CUnicodeBe | [static]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CUnicodeBe | [inline, virtual]
UnicodeToUnicodeBE(CMemory *pMem) | CUnicodeBe | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CUrlWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUrlWnd

About Box管理 [詳細]

#include <CDlgAbout.h>

すべてのメンバ一覧

Public メソッド

CUrlWnd ()
virtual | ~CUrlWnd ()
BOOL | SubclassWindow (HWND hWnd)
HWND | GetHwnd () const

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 の 196 行で定義されています。

参照先 FALSE, GetHwnd(), GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, m_hFont, m_hWnd, m_pOldProc, NULL, SendMessageAny, SetWindowLongPtr, TRUE, と UrlWndProc().

参照元 CDlgAbout::OnInitDialog().

HWND CUrlWnd::GetHwnd ( ) const [inline]

CDlgAbout.h の 33 行で定義されています。

参照先 m_hWnd.

参照元 SubclassWindow().

LRESULT CALLBACK CUrlWnd::UrlWndProc | ( | HWND | hWnd,
 |  | UINT | msg,
 |  | WPARAM | wp,
 |  | LPARAM | lp |
 | ) |  |  | [static, protected]

CDlgAbout.cpp の 229 行で定義されています。

参照先 _countof, BOOL, ApiWrap::ExtTextOutW_AnyBuild(), FALSE, GetWindowLongPtr, GWLP_USERDATA, GWLP_WNDPROC, IDC_CURSOR_HAND, LONG_PTR, m_bHilighted, m_hFont, m_hWnd, m_pOldProc, NULL, SendMessageAny, SetWindowLongPtr, と TRUE.

参照元 SubclassWindow().

変数

HWND CUrlWnd::m_hWnd [protected]

CDlgAbout.h の 37 行で定義されています。

参照元 CUrlWnd(), GetHwnd(), SubclassWindow(), と UrlWndProc().

HFONT CUrlWnd::m_hFont [protected]

CDlgAbout.h の 38 行で定義されています。

参照元 CUrlWnd(), SubclassWindow(), と UrlWndProc().

BOOL CUrlWnd::m_bHilighted [protected]

CDlgAbout.h の 39 行で定義されています。

参照元 CUrlWnd(), と UrlWndProc().

WNDPROC CUrlWnd::m_pOldProc [protected]

CDlgAbout.h の 40 行で定義されています。

参照元 CUrlWnd(), SubclassWindow(), と UrlWndProc().

このクラスの説明は次のファイルから生成されました:
  • CDlgAbout.h
  • CDlgAbout.cpp
Sakura-Editorに対してSat Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUrlWnd メンバ一覧

これは全メンバの一覧です。CUrlWnd継承メンバも含んでいます。

CUrlWnd() | CUrlWnd | [inline]
GetHwnd() const | 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 Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CUtf7

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUtf7

#include <CUtf7.h>

CUtf7に対する継承グラフ

[凡例]
CUtf7のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | UTF7ToUnicode (CMemory *pMem)
UTF-7→Unicodeコード変換
static EConvertResult | UnicodeToUTF7 (CMemory *pMem)
static int | IsUTF7Direct (wchar_t)
static int | MemBASE64_Encode (const char *, int, char **, int, int)

説明

CUtf7.h の 5 行で定義されています。

関数

EConvertResult CUtf7::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CUtf7.h の 8 行で定義されています。

参照先 CNative::_GetMemory(), と UTF7ToUnicode().

EConvertResult CUtf7::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CUtf7.h の 9 行で定義されています。

参照先 CNative::_GetMemory(), と UnicodeToUTF7().

EConvertResult CUtf7::UTF7ToUnicode ( CMemory * pMem ) [static]

UTF-7→Unicodeコード変換

CUtf7.cpp の 7 行で定義されています。

参照先 CMemory::GetRawPtr(), NULL, RESULT_COMPLETE, と CMemory::SetRawData().

参照元 CodeToUnicode().

EConvertResult CUtf7::UnicodeToUTF7 ( CMemory * pMem ) [static]

コード変換 Unicode→UTF-7

日付:
2002.10.25 Moca UTF-7で直接エンコードできる文字をRFCに合わせて制限した

CUtf7.cpp の 48 行で定義されています。

参照先 BOOL, FALSE, CMemory::GetRawPtr(), IsUTF7Direct(), MemBASE64_Encode(), NULL, RESULT_COMPLETE, CMemory::SetRawData(), と TRUE.

参照元 UnicodeToCode().

int CUtf7::IsUTF7Direct ( wchar_t wc ) [static]

Unicodeの文字がUTF-7で直接エンコードできるか調べる

作者:
Moca
日付:
2002.10.25 新規作成
TAB SP CR LF は 直接エンコード可能 基本セット '(),-./012...789:?ABC...XYZabc...xyz 以下はオプションでメールでは支障をきたす場合がある !"#$%&*;<=>@[\]^_`{|} とりあえず無条件でオプションは直接変換できないと判断する

CUtf7.cpp の 258 行で定義されています。

参照先 Charcode::IsUtf7SetDChar().

参照元 UnicodeToUTF7().

int CUtf7::MemBASE64_Encode | ( | const char * | pszSrc,
 |  | int | nSrcLen,
 |  | char ** | ppszDes,
 |  | int | nWrap,
 |  | int | bPadding |
 | ) |  |  | [static]

CUtf7.cpp の 277 行で定義されています。

参照先 _countof, ACODE::CR, と ACODE::LF.

参照元 UnicodeToUTF7().

このクラスの説明は次のファイルから生成されました:
  • CUtf7.h
  • CUtf7.cpp
Sakura-Editorに対してSat Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUtf7 メンバ一覧

これは全メンバの一覧です。CUtf7継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CUtf7 | [inline, virtual]
IsUTF7Direct(wchar_t) | CUtf7 | [static]
MemBASE64_Encode(const char *, int, char **, int, int) | CUtf7 | [static]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CUtf7 | [inline, virtual]
UnicodeToUTF7(CMemory *pMem) | CUtf7 | [static]
UTF7ToUnicode(CMemory *pMem) | CUtf7 | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CUtf8

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUtf8

#include <CUtf8.h>

CUtf8に対する継承グラフ

[凡例]
CUtf8のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

EConvertResult | CodeToUnicode (const CMemory *pSrc, CNativeW *pDst)
特定コード → UNICODE 変換
EConvertResult | UnicodeToCode (const CNativeW *pSrc, CMemory *pDst)
UNICODE → 特定コード 変換

Static Public メソッド

static EConvertResult | UTF8ToUnicode (const CMemory *pSrcMem, CNativeW *pDstMem)
UTF-8→Unicodeコード変換
static EConvertResult | UnicodeToUTF8 (const CNativeW *pSrcMem, CMemory *pDstMem)
コード変換 Unicode→UTF-8

説明

CUtf8.h の 5 行で定義されています。

関数

EConvertResult CUtf8::CodeToUnicode | ( | const CMemory * | pSrc,
 |  | CNativeW * | pDst |
 | ) |  |  | [inline, virtual]

特定コード → UNICODE 変換

CCodeBaseを実装しています。

CUtf8.h の 8 行で定義されています。

参照先 UTF8ToUnicode().

EConvertResult CUtf8::UnicodeToCode | ( | const CNativeW * | pSrc,
 |  | CMemory * | pDst |
 | ) |  |  | [inline, virtual]

UNICODE → 特定コード 変換

CCodeBaseを実装しています。

CUtf8.h の 9 行で定義されています。

参照先 UnicodeToUTF8().

EConvertResult CUtf8::UTF8ToUnicode | ( | const CMemory * | pSrcMem,
 |  | CNativeW * | pDstMem |
 | ) |  |  | [static]

UTF-8→Unicodeコード変換

CUtf8.cpp の 6 行で定義されています。

参照先 CNativeW::_SetStringLength(), CNativeW::AllocStringBuffer(), CNative::Clear(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), NULL, と RESULT_COMPLETE.

参照元 CodeToUnicode(), と CTextInputStream::ReadLineW().

EConvertResult CUtf8::UnicodeToUTF8 | ( | const CNativeW * | pSrcMem,
 |  | CMemory * | pDstMem |
 | ) |  |  | [static]

コード変換 Unicode→UTF-8

CUtf8.cpp の 46 行で定義されています。

参照先 CMemory::_SetRawLength(), CMemory::AllocBuffer(), CMemory::Clean(), CMemory::GetRawPtr(), CNativeW::GetStringPtr(), NULL, と RESULT_COMPLETE.

参照元 UnicodeToCode().

このクラスの説明は次のファイルから生成されました:
  • CUtf8.h
  • CUtf8.cpp
Sakura-Editorに対してSat Nov 17 20:29:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUtf8 メンバ一覧

これは全メンバの一覧です。CUtf8継承メンバも含んでいます。

CodeToUnicode(const CMemory *pSrc, CNativeW *pDst) | CUtf8 | [inline, virtual]
UnicodeToCode(const CNativeW *pSrc, CMemory *pDst) | CUtf8 | [inline, virtual]
UnicodeToUTF8(const CNativeW *pSrcMem, CMemory *pDstMem) | CUtf8 | [static]
UTF8ToUnicode(const CMemory *pSrcMem, CNativeW *pDstMem) | CUtf8 | [static]
~CCodeBase() | CCodeBase | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:16 2007に生成されました。 doxygen 1.5.4


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 (TCHAR *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 行で定義されています。

関数

static CUxTheme& CUxTheme::getInstance ( void ) [inline, static]

CUxTheme.h の 50 行で定義されています。

参照元 IsVisualStyle(), と PreventVisualStyle().

bool CUxTheme::Init ( TCHAR * 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().

LPCTSTR CUxTheme::GetDllName ( LPCTSTR ) [protected, virtual]

UxTheme のファイル名を渡す

CDllHandlerを再定義しています。

CUxTheme.cpp の 68 行で定義されています。

CUxTheme::BOOL ( WINAPI * m_pfnIsThemeActive ) [protected]

CUxTheme::HRESULT ( WINAPI * m_pfnSetWindowTheme ) [protected]

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().

変数

CUxTheme CUxTheme::m_cUxTheme [static, protected]

CUxTheme.h の 45 行で定義されています。

bool CUxTheme::m_bInitialized [protected]

CUxTheme.h の 53 行で定義されています。

参照元 Init().

LPCWSTR CUxTheme::pszSubAppName [protected]

CUxTheme.h の 62 行で定義されています。

LPCWSTR LPCWSTR CUxTheme::pszSubIdList [protected]

CUxTheme.h の 62 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CUxTheme.h
  • CUxTheme.cpp
Sakura-Editorに対してSat Nov 17 20:29:16 2007に生成されました。 doxygen 1.5.4


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(TCHAR *str=NULL) | CUxTheme | [protected]
CDllHandler::Init(LPCTSTR str=NULL) | CDllHandler | [inline]
InitDll(void) | CUxTheme | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsThemeActive(VOID) | CUxTheme |
LoadLibrary(LPCTSTR 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 Nov 17 20:29:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CViewCalc

  • 構成
  • クラス階層
  • 構成メンバ

クラス CViewCalc

#include <CViewCalc.h>

CViewCalcに対する継承グラフ

[凡例]
CViewCalcのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CViewCalc (const CEditView *pOwner)
virtual | ~CViewCalc ()
CLogicInt | LineColmnToIndex (const CLayout *pcLayout, CLayoutInt nColumn) const
CLogicInt | LineColmnToIndex (const CDocLine *pcDocLine, CLayoutInt nColumn) const
CLogicInt | LineColmnToIndex2 (const CLayout *pcLayout, CLayoutInt nColumn, CLayoutInt *pnLineAllColLen) const
CLayoutInt | LineIndexToColmn (const CLayout *pcLayout, CLogicInt nIndex) const
CLayoutInt | LineIndexToColmn (const CDocLine *pcLayout, CLogicInt nIndex) const

Protected メソッド

CLayoutInt | GetTabSpace () const

Private 変数

const CEditView * | m_pOwner

説明

CViewCalc.h の 11 行で定義されています。

コンストラクタとデストラクタ

CViewCalc::CViewCalc ( const CEditView * pOwner ) [inline]

CViewCalc.h の 17 行で定義されています。

virtual CViewCalc::~CViewCalc ( ) [inline, virtual]

CViewCalc.h の 18 行で定義されています。

関数

CLayoutInt CViewCalc::GetTabSpace ( void ) const [protected]

CViewCalc.cpp の 9 行で定義されています。

参照先 CLayoutMgr::GetTabSpace(), CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, と m_pOwner.

参照元 LineColmnToIndex(), LineColmnToIndex2(), と LineIndexToColmn().

CLogicInt CViewCalc::LineColmnToIndex | ( | const CLayout * | pcLayout,
 |  | CLayoutInt | nColumn |
 | ) |  |  | const

CViewCalc.cpp の 39 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getColumnDelta(), CMemoryIterator::getIndex(), GetTabSpace(), と CMemoryIterator::scanNext().

参照元 CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::DeleteData(), CEditView::DeleteData2(), CCaret::DrawCaretPosInfo(), CEditView::GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), CViewParser::GetLeftWord(), CEditView::GetSelectedData(), CEditView::ISearchExec(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CViewSelect::PrintSelectionInfoMsg(), CEditView::ReplaceData_CEditView(), と CCaret::ShowEditCaret().

CLogicInt CViewCalc::LineColmnToIndex | ( | const CDocLine * | pcDocLine,
 |  | CLayoutInt | nColumn |
 | ) |  |  | const

CViewCalc.cpp の 19 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getColumnDelta(), CMemoryIterator::getIndex(), GetTabSpace(), と CMemoryIterator::scanNext().

CLogicInt CViewCalc::LineColmnToIndex2 | ( | const CLayout * | pcLayout,
 |  | CLayoutInt | nColumn,
 |  | CLayoutInt * | pnLineAllColLen |
 | ) |  |  | const

CViewCalc.cpp の 62 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getColumnDelta(), CMemoryIterator::getIndex(), CLayout::GetLength(), GetTabSpace(), と CMemoryIterator::scanNext().

参照元 CViewCommander::Command_DELETE_LINE(), と CEditView::InsertData_CEditView().

CLayoutInt CViewCalc::LineIndexToColmn | ( | const CLayout * | pcLayout,
 |  | CLogicInt | nIndex |
 | ) |  |  | const

CViewCalc.cpp の 93 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getIndex(), CMemoryIterator::getIndexDelta(), GetTabSpace(), と CMemoryIterator::scanNext().

参照元 CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_INDENT(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::DeleteData2(), CTextDrawer::DispEmptyLine(), CCaret::GetAdjustCursorPos(), CEditView::InsertData_CEditView(), CCaret::MoveCursorProperly(), と CEditView::ReplaceData_CEditView().

CLayoutInt CViewCalc::LineIndexToColmn | ( | const CDocLine * | pcLayout,
 |  | CLogicInt | nIndex |
 | ) |  |  | const

CViewCalc.cpp の 115 行で定義されています。

参照先 CMemoryIterator::addDelta(), CMemoryIterator::end(), CMemoryIterator::getColumn(), CMemoryIterator::getIndex(), CMemoryIterator::getIndexDelta(), GetTabSpace(), と CMemoryIterator::scanNext().

変数

const CEditView* CViewCalc::m_pOwner [private]

CViewCalc.h の 30 行で定義されています。

参照元 GetTabSpace().

このクラスの説明は次のファイルから生成されました:
  • CViewCalc.h
  • CViewCalc.cpp
Sakura-Editorに対してSat Nov 17 20:29:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CViewCalc メンバ一覧

これは全メンバの一覧です。CViewCalc継承メンバも含んでいます。

CViewCalc(const CEditView *pOwner) | CViewCalc | [inline]
GetTabSpace() const | CViewCalc | [protected]
LineColmnToIndex(const CLayout *pcLayout, CLayoutInt nColumn) const | CViewCalc |
LineColmnToIndex(const CDocLine *pcDocLine, CLayoutInt nColumn) const | CViewCalc |
LineColmnToIndex2(const CLayout *pcLayout, CLayoutInt nColumn, CLayoutInt *pnLineAllColLen) const | CViewCalc |
LineIndexToColmn(const CLayout *pcLayout, CLogicInt nIndex) const | CViewCalc |
LineIndexToColmn(const CDocLine *pcLayout, CLogicInt nIndex) const | CViewCalc |
m_pOwner | CViewCalc | [private]
~CViewCalc() | CViewCalc | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CViewCommander

  • 構成
  • クラス階層
  • 構成メンバ

クラス CViewCommander

#include <CViewCommander.h>

CViewCommanderのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CViewCommander (CEditView *pEditView)
CEditDoc * GetDocument ()
CEditWnd * GetEditWindow ()
DLLSHAREDATA * GetShareData ()
HWND | GetMainWindow ()
HINSTANCE | GetInstance ()
COpeBlk * GetOpeBlk ()
void | ClearOpeBlk ()
void | SetOpeBlk (COpeBlk *p)
CLayoutRange & GetSelect ()
CCaret & GetCaret ()
BOOL | HandleCommand (EFunctionCode nCommand, bool bRedraw, LPARAM lparam1, LPARAM lparam2, LPARAM lparam3, LPARAM lparam4)
void | Command_FILENEW (void)
void | Command_FILEOPEN (const WCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
ファイルを開く
BOOL | Command_FILESAVE (bool warnbeep=true, bool askname=true)
BOOL | Command_FILESAVEAS_DIALOG ()
BOOL | Command_FILESAVEAS (const WCHAR *filename)
BOOL | Command_FILESAVEALL (void)
void | Command_FILECLOSE (void)
void | Command_FILECLOSE_OPEN (LPCWSTR filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
閉じて開く
void | Command_FILE_REOPEN (ECodeType nCharCode, bool bNoConfirm)
ファイルの再オープン
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 (LPCWSTR, ECodeType, int)
編集中の内容を別名保存
BOOL | Command_INSFILE (LPCWSTR, ECodeType, int)
カーソル位置にファイルを挿入
void | Command_WCHAR (wchar_t)
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 (wchar_t cChar)
void | Command_INDENT (const wchar_t *, CLogicInt, BOOL=FALSE)
void | Command_INDENT_TAB (void)
void | Command_UNINDENT (wchar_t wcChar)
void | Command_TRIM (BOOL)
void | Command_SORT (BOOL)
物理行のソート
void | Command_MERGE (void)
物理行のマージ
void | Command_Reconvert (void)
void | Command_CtrlCode_Dialog (void)
int | Command_UP (bool bSelect, bool bRepeat, int line=0)
int | Command_DOWN (bool bSelect, bool bRepeat)
int | Command_LEFT (bool, bool)
カーソル左移動
void | Command_RIGHT (bool bSelect, bool bIgnoreCurrentSelection, bool bRepeat)
void | Command_UP2 (bool bSelect)
void | Command_DOWN2 (bool bSelect)
void | Command_WORDLEFT (bool bSelect)
void | Command_WORDRIGHT (bool bSelect)
void | Command_GOLINETOP (bool bSelect, int lparam)
行頭に移動
void | Command_GOLINEEND (bool bSelect, int)
void | Command_HalfPageUp (bool bSelect)
* スクロールアップ */
void | Command_HalfPageDown (bool bSelect)
void | Command_1PageUp (bool bSelect)
void | Command_1PageDown (bool bSelect)
void | Command_GOFILETOP (bool bSelect)
void | Command_GOFILEEND (bool bSelect)
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 (bool bSelect)
void | Command_GOPREVPARAGRAPH (bool 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 (bool, bool bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN)
選択範囲をクリップボードにコピー
void | Command_PASTE (void)
void | Command_PASTEBOX (void)
void | Command_PASTEBOX (const wchar_t *szPaste, int nPasteSize)
void | Command_INSTEXT (bool bRedraw, const wchar_t *, CLogicInt, bool bNoWaitCursor)
void | Command_ADDTAIL (const wchar_t *pszData, int nDataLen)
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 | 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 WCHAR *)
void | Command_SEARCH_PREV (bool bRedraw, 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 | Command_GREP_DIALOG (void)
void | Command_GREP (void)
void | Command_JUMP_DIALOG (void)
void | Command_JUMP (void)
BOOL | Command_FUNCLIST (int nAction, int nOutlineType=OUTLINE_DEFAULT)
bool | Command_TAGJUMP (bool bClose=false)
void | Command_TAGJUMPBACK (void)
bool | Command_TagJumpByTagsFile (void)
bool | Command_TagsMake (void)
bool | Command_TagJumpByTagsFileKeyword (const wchar_t *keyword)
void | Command_COMPARE (void)
void | Command_Diff_Dialog (void)
void | Command_Diff (const WCHAR *szTmpFile2, int nFlgOpt)
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 | 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 wchar_t *)
引用符の設定
void | Command_RECKEYMACRO (void)
void | Command_SAVEKEYMACRO (void)
void | Command_LOADKEYMACRO (void)
void | Command_EXECKEYMACRO (void)
void | Command_EXECCOMMAND_DIALOG (void)
void | Command_EXECCOMMAND (LPCWSTR cmd, const int nFlgOpt)
void | Command_MENU_RBUTTON (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 wchar_t *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 | Command_ToggleKeySearch (void)
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 WCHAR *helpfile=NULL, const WCHAR *kwd=NULL)
void | Command_ABOUT (void)

Public 変数

int | m_bPrevCommand

Private 変数

CEditView * m_pCommanderView

説明

CViewCommander.h の 11 行で定義されています。

コンストラクタとデストラクタ

CViewCommander::CViewCommander ( CEditView * pEditView ) [inline]

CViewCommander.h の 13 行で定義されています。

参照先 m_bPrevCommand.

関数

CEditDoc * CViewCommander::GetDocument ( )

CViewCommander.cpp の 82 行で定義されています。

参照先 CEditView::m_pcEditDoc, と m_pCommanderView.

参照元 Command_1PageDown(), 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_CASCADE(), Command_CHGMOD_EOL(), Command_COMPARE(), 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_EXECCOMMAND(), 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_GREP_DIALOG(), Command_HOKAN(), Command_IME_CHAR(), Command_INDENT(), Command_INDENT_TAB(), Command_INSFILE(), Command_INSTEXT(), Command_JUMP(), Command_JUMP_DIALOG(), Command_JUMP_SRCHSTARTPOS(), Command_JUMPHIST_NEXT(), Command_JUMPHIST_PREV(), Command_LEFT(), Command_LineCutToEnd(), Command_LineCutToStart(), Command_LineDeleteToEnd(), Command_LineDeleteToStart(), Command_MENU_ALLFUNC(), Command_MENU_RBUTTON(), 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_RIGHT(), Command_SAVEKEYMACRO(), Command_SEARCH_BOX(), Command_SEARCH_NEXT(), Command_SEARCH_PREV(), Command_SELECTALL(), Command_SELECTWORD(), Command_SHOWFUNCKEY(), Command_SHOWSTATUSBAR(), Command_SHOWTAB(), Command_SHOWTOOLBAR(), Command_SORT(), Command_TAB_JOINTNEXT(), Command_TAB_JOINTPREV(), Command_TAB_MOVELEFT(), Command_TAB_MOVERIGHT(), Command_TAB_SEPARATE(), Command_TAGJUMP(), Command_TagJumpByTagsFile(), Command_TagJumpByTagsFileKeyword(), Command_TagsMake(), Command_TILE_H(), Command_TILE_V(), Command_TRACEOUT(), Command_TRIM(), Command_TYPE_LIST(), Command_UNDO(), Command_UNINDENT(), Command_UUDECODE(), Command_WCHAR(), Command_WINLIST(), Command_WINTOPMOST(), Command_WndScrollDown(), Command_WordDeleteToEnd(), Command_WordDeleteToStart(), Command_WORDLEFT(), Command_WORDRIGHT(), Command_WRAPWINDOWWIDTH(), と HandleCommand().

CEditWnd * CViewCommander::GetEditWindow ( )

CViewCommander.cpp の 86 行で定義されています。

参照先 CEditView::m_pcEditWnd, と m_pCommanderView.

参照元 Command_BOOKMARK_PATTERN(), Command_BOOKMARK_RESET(), Command_BOOKMARK_SET(), Command_Diff_Reset(), Command_FUNCLIST(), Command_GREP(), Command_GREP_DIALOG(), Command_JUMP(), Command_JUMP_DIALOG(), Command_REDO(), Command_REPLACE(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_SEARCH_DIALOG(), Command_SPLIT_H(), Command_SPLIT_V(), Command_SPLIT_VH(), Command_UNDO(), Command_WRAPWINDOWWIDTH(), と HandleCommand().

DLLSHAREDATA * CViewCommander::GetShareData ( )

CViewCommander.cpp の 90 行で定義されています。

参照先 m_pCommanderView, と CEditView::m_pShareData.

参照元 Command_BASE64DECODE(), Command_BEGIN_BOXSELECT(), Command_BIND_WINDOW(), Command_BOOKMARK_NEXT(), Command_BOOKMARK_PATTERN(), Command_BOOKMARK_PREV(), Command_COMPARE(), Command_COPY(), Command_COPYLINESASPASSAGE(), Command_CREATEKEYBINDLIST(), Command_CUSTMENU(), Command_CUT(), Command_CUT_LINE(), Command_DELETE_LINE(), Command_Diff_Next(), Command_Diff_Prev(), Command_DOWN(), Command_EXECKEYMACRO(), Command_EXTHTMLHELP(), Command_FONT(), Command_GONEXTPARAGRAPH(), Command_GOPREVPARAGRAPH(), Command_GREP(), Command_GREP_DIALOG(), Command_GROUPCLOSE(), Command_HOKAN(), Command_IME_CHAR(), Command_JUMP(), Command_LOADKEYMACRO(), Command_MENU_RBUTTON(), Command_MINIMIZE_ALL(), Command_PASTE(), Command_PASTEBOX(), Command_RECKEYMACRO(), Command_REPLACE(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_RIGHT(), 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_WCHAR(), Command_WIN_OUTPUT(), Command_WORDLEFT(), Command_WORDRIGHT(), と HandleCommand().

HWND CViewCommander::GetMainWindow ( )

CViewCommander.cpp の 94 行で定義されています。

参照先 CEditView::m_hwndParent, と m_pCommanderView.

参照元 Command_COMPARE(), Command_CUSTMENU(), Command_EXITALL(), Command_EXITALLEDITORS(), Command_EXTHTMLHELP(), Command_FILECLOSEALL(), Command_FONT(), Command_GROUPCLOSE(), Command_MAXIMIZE_H(), Command_MAXIMIZE_V(), Command_MENU_ALLFUNC(), Command_MENU_RBUTTON(), Command_RECKEYMACRO(), Command_REPLACE_ALL(), Command_WINCLOSE(), と HandleCommand().

HINSTANCE CViewCommander::GetInstance ( )

CViewCommander.cpp の 98 行で定義されています。

参照先 CEditView::m_hInstance, と m_pCommanderView.

参照元 Command_ABOUT(), Command_COMPARE(), Command_CREATEKEYBINDLIST(), Command_CtrlCode_Dialog(), Command_Diff_Dialog(), Command_EXECCOMMAND_DIALOG(), Command_EXECKEYMACRO(), Command_Favorite(), Command_FILENEW(), Command_FUNCLIST(), Command_GREP(), Command_GREP_DIALOG(), Command_JUMP_DIALOG(), Command_LOADKEYMACRO(), Command_PROPERTY_FILE(), Command_RECKEYMACRO(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_SAVEKEYMACRO(), Command_SEARCH_DIALOG(), Command_TagJumpByTagsFile(), Command_TagJumpByTagsFileKeyword(), Command_TagsMake(), Command_TYPE_LIST(), と HandleCommand().

COpeBlk * CViewCommander::GetOpeBlk ( )

CViewCommander.cpp の 102 行で定義されています。

参照先 m_pCommanderView, と CEditView::m_pcOpeBlk.

参照元 Command_DELETE_BACK(), Command_DELETE_LINE(), Command_DUPLICATELINE(), Command_INDENT(), Command_PASTE(), Command_PASTEBOX(), Command_UNINDENT(), Command_WordDeleteToEnd(), Command_WordDeleteToStart(), と HandleCommand().

void CViewCommander::ClearOpeBlk ( )

CViewCommander.cpp の 106 行で定義されています。

参照先 m_pCommanderView, CEditView::m_pcOpeBlk, と NULL.

参照元 HandleCommand().

void CViewCommander::SetOpeBlk ( COpeBlk * p )

CViewCommander.cpp の 111 行で定義されています。

参照先 m_pCommanderView, と CEditView::m_pcOpeBlk.

参照元 HandleCommand().

CLayoutRange & CViewCommander::GetSelect ( )

CViewCommander.cpp の 115 行で定義されています。

参照先 CEditView::GetSelectionInfo(), m_pCommanderView, と CViewSelect::m_sSelect.

参照元 Command_DELETE_LINE(), Command_INDENT(), Command_INDENT_TAB(), Command_INSTEXT(), Command_LEFT(), Command_PASTE(), Command_REPLACE(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_RIGHT(), Command_SEARCH_NEXT(), Command_SEARCH_PREV(), Command_UNINDENT(), Command_WordDeleteToEnd(), Command_WordDeleteToStart(), と HandleCommand().

CCaret & CViewCommander::GetCaret ( )

CViewCommander.cpp の 119 行で定義されています。

参照先 CEditView::GetCaret(), と m_pCommanderView.

参照元 Command_1PageDown(), Command_1PageUp(), Command_ADDTAIL(), Command_BOOKMARK_NEXT(), Command_BOOKMARK_PREV(), Command_BOOKMARK_SET(), Command_BRACKETPAIR(), Command_CHGMOD_EOL(), Command_CHGMOD_INS(), Command_COMPARE(), Command_COPYTAG(), Command_CURLINECENTER(), Command_CUT_LINE(), Command_DELETE_BACK(), Command_DELETE_LINE(), Command_Diff_Next(), Command_Diff_Prev(), Command_DOWN(), Command_DOWN2(), Command_DUPLICATELINE(), Command_FILE_REOPEN(), Command_FUNCLIST(), Command_GOFILEEND(), Command_GOFILETOP(), Command_GOLINEEND(), Command_GOLINETOP(), Command_GONEXTPARAGRAPH(), Command_GOPREVPARAGRAPH(), Command_HalfPageDown(), Command_HalfPageUp(), 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_RECKEYMACRO(), Command_REDO(), Command_REPLACE(), Command_REPLACE_ALL(), Command_RIGHT(), Command_SEARCH_NEXT(), Command_SEARCH_PREV(), Command_SELECTALL(), Command_SELECTWORD(), Command_SORT(), Command_TAGJUMP(), Command_TRIM(), Command_UNDO(), Command_UNINDENT(), Command_UP(), Command_UP2(), Command_WCHAR(), Command_WndScrollDown(), Command_WndScrollUp(), Command_WORDLEFT(), と Command_WORDRIGHT().

BOOL CViewCommander::HandleCommand | ( | EFunctionCode | nCommand,
 |  | bool | bRedraw,
 |  | LPARAM | lparam1,
 |  | LPARAM | lparam2,
 |  | LPARAM | lparam3,
 |  | LPARAM | lparam4
 | ) |  |

CViewCommander.cpp の 127 行で定義されています。

参照先 CSMacroMgr::Append(), COpeBuf::AppendOpeBlk(), BOOL, CSMacroMgr::CanFuncIsKeyMacro(), ClearOpeBlk(), CODE_EUC, CODE_JIS, CODE_SJIS, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF7, CODE_UTF8, Command_1PageDown(), Command_1PageUp(), Command_ABOUT(), Command_ACTIVATE_SQLPLUS(), Command_ADDTAIL(), Command_BASE64DECODE(), Command_BEGIN_BOXSELECT(), Command_BEGIN_SELECT(), Command_BIND_WINDOW(), Command_BOOKMARK_NEXT(), Command_BOOKMARK_PATTERN(), Command_BOOKMARK_PREV(), Command_BOOKMARK_RESET(), Command_BOOKMARK_SET(), Command_BRACKETPAIR(), Command_BROWSE(), Command_CANCEL_MODE(), Command_CASCADE(), Command_CHGMOD_EOL(), Command_CHGMOD_INS(), 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_COMPARE(), Command_COPY(), Command_COPYFILENAME(), Command_COPYLINES(), Command_COPYLINESASPASSAGE(), Command_COPYLINESWITHLINENUMBER(), Command_COPYPATH(), Command_COPYTAG(), Command_CREATEKEYBINDLIST(), Command_CtrlCode_Dialog(), Command_CURLINECENTER(), Command_CUSTMENU(), Command_CUT(), Command_CUT_LINE(), Command_DELETE(), Command_DELETE_BACK(), Command_DELETE_LINE(), Command_Diff(), Command_Diff_Dialog(), Command_Diff_Next(), Command_Diff_Prev(), Command_Diff_Reset(), Command_DOWN(), Command_DOWN2(), Command_DUPLICATELINE(), Command_EXECCOMMAND(), Command_EXECCOMMAND_DIALOG(), Command_EXECKEYMACRO(), Command_EXITALL(), Command_EXITALLEDITORS(), Command_EXTHELP1(), Command_EXTHTMLHELP(), Command_Favorite(), Command_FILE_REOPEN(), Command_FILECLOSE(), Command_FILECLOSE_OPEN(), Command_FILECLOSEALL(), Command_FILENEW(), Command_FILEOPEN(), Command_FILESAVE(), Command_FILESAVEALL(), Command_FILESAVEAS(), Command_FILESAVEAS_DIALOG(), Command_FONT(), Command_FUNCLIST(), Command_GOFILEEND(), Command_GOFILETOP(), Command_GOLINEEND(), Command_GOLINETOP(), Command_GONEXTPARAGRAPH(), Command_GOPREVPARAGRAPH(), Command_GREP(), Command_GREP_DIALOG(), Command_GROUPCLOSE(), Command_HalfPageDown(), Command_HalfPageUp(), Command_HANKATATOZENKAKUHIRA(), Command_HANKATATOZENKAKUKATA(), Command_HELP_CONTENTS(), Command_HELP_SEARCH(), Command_HOKAN(), Command_IME_CHAR(), Command_INDENT(), Command_INDENT_TAB(), Command_INS_DATE(), Command_INS_TIME(), Command_INSFILE(), Command_INSTEXT(), Command_JUMP(), Command_JUMP_DIALOG(), Command_JUMP_SRCHSTARTPOS(), Command_JUMPHIST_NEXT(), Command_JUMPHIST_PREV(), Command_JUMPHIST_SET(), Command_LEFT(), Command_LineCutToEnd(), Command_LineCutToStart(), Command_LineDeleteToEnd(), Command_LineDeleteToStart(), Command_LOADKEYMACRO(), Command_MAXIMIZE_H(), Command_MAXIMIZE_V(), Command_MENU_ALLFUNC(), Command_MENU_RBUTTON(), Command_MERGE(), Command_MINIMIZE_ALL(), Command_NEXTGROUP(), Command_OPEN_CCPP(), Command_OPEN_HfromtoC(), Command_OPEN_HHPP(), 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_Reconvert(), Command_REDO(), Command_REDRAW(), Command_REPLACE(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_RIGHT(), Command_SAVEKEYMACRO(), Command_SEARCH_BOX(), Command_SEARCH_CLEARMARK(), Command_SEARCH_DIALOG(), Command_SEARCH_NEXT(), Command_SEARCH_PREV(), Command_SELECTALL(), Command_SELECTWORD(), Command_SET_QUOTESTRING(), Command_SHOWFUNCKEY(), Command_SHOWSTATUSBAR(), Command_SHOWTAB(), Command_SHOWTOOLBAR(), Command_SORT(), Command_SPACETOTAB(), 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_TABTOSPACE(), Command_TAGJUMP(), Command_TAGJUMPBACK(), Command_TagJumpByTagsFile(), Command_TagJumpByTagsFileKeyword(), Command_TagsMake(), Command_TILE_H(), Command_TILE_V(), Command_ToggleKeySearch(), Command_TOHANEI(), Command_TOHANKAKU(), Command_TOHANKATA(), Command_TOLOWER(), Command_TOUPPER(), Command_TOZENEI(), Command_TOZENKAKUHIRA(), Command_TOZENKAKUKATA(), Command_TRACEOUT(), Command_TRIM(), Command_TYPE_LIST(), Command_UNDO(), Command_UNINDENT(), Command_UP(), Command_UP2(), Command_UUDECODE(), Command_WCHAR(), Command_WIN_OUTPUT(), Command_WINCLOSE(), Command_WINLIST(), Command_WINTOPMOST(), Command_WndScrollDown(), Command_WndScrollUp(), Command_WordCut(), Command_WordDelete(), Command_WordDeleteToEnd(), Command_WordDeleteToStart(), Command_WORDLEFT(), Command_WORDRIGHT(), Command_WRAPWINDOWWIDTH(), EOL_CR, EOL_CRLF, EOL_LF, F_1PageDown, F_1PageDown_Sel, F_1PageUp, F_1PageUp_Sel, F_ABOUT, F_ACTIVATE_SQLPLUS, F_ADDTAIL_W, F_BASE64DECODE, F_BEGIN_BOX, F_BEGIN_SEL, F_BIND_WINDOW, F_BOOKMARK_NEXT, F_BOOKMARK_PATTERN, F_BOOKMARK_PREV, F_BOOKMARK_RESET, F_BOOKMARK_SET, F_BOOKMARK_VIEW, F_BRACKETPAIR, F_BROWSE, F_CANCEL_MODE, F_CASCADE, F_CHGMOD_EOL, 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, 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, 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_FILESAVE_QUIET, F_FILESAVEALL, F_FILESAVEAS, 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, 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_IME_CHAR, F_INDENT_SPACE, F_INDENT_TAB, F_INS_DATE, F_INS_TIME, F_INSFILE, F_INSTEXT_W, F_JUMP, 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_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_PRINT, F_PRINT_PAGESETUP, F_PRINT_PREVIEW, F_PROPERTY_FILE, F_PUTFILE, F_READONLY, F_RECKEYMACRO, F_RECONVERT, F_REDO, F_REDRAW, F_REPLACE, F_REPLACE_ALL, 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_SET_QUOTESTRING, 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_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_TRACEOUT, 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_WCHAR, 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, FALSE, GetDocument(), GetEditWindow(), GetInstance(), GetMainWindow(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CTipWnd::Hide(), InfoMessage, WCODE::isControlCode(), CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CEditView::m_bExecutingKeyMacro, m_bPrevCommand, DLLSHAREDATA::m_bRecordingKeyMacro, CViewSelect::m_bSelectingLock, CEditDoc::m_cOpeBuf, CEditView::m_cTipWnd, CEditView::m_dwTipTimer, DLLSHAREDATA::m_hwndRecordingKeyMacro, CEditDoc::m_nCommandExecNum, CEditDoc::m_pcEditWnd, m_pCommanderView, CEditDoc::m_pcSMacroMgr, MAX_CUSTMACRO, NULL, OUTLINE_BOOKMARK, PostMessageCmd, CEditView::PreprocessCommand_hokan(), CEditView::ProcessCommand_isearch(), CEditWnd::RedrawInactivePane(), SetOpeBlk(), SHOW_TOGGLE, WCODE::SPACE, STAND_KEYMACRO, WCODE::TAB, CEditView::TranslateCommand_grep(), CEditView::TranslateCommand_isearch(), と TRUE.

参照元 Command_EXECCOMMAND_DIALOG(), Command_GREP_DIALOG(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CHokanMgr::DoHokan(), CEditDoc::FileRead(), CMacro::HandleCommand(), CEditDoc::HandleCommand(), CNormalProcess::Initialize(), CDlgFuncList::Key2Command(), CDlgReplace::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgFuncList::OnBnClicked(), と CDlgFind::OnBnClicked().

void CViewCommander::Command_FILENEW ( void )

CViewCommander.cpp の 3321 行で定義されています。

参照先 CODE_DEFAULT, FALSE, CEditView::GetHwnd(), GetInstance(), m_pCommanderView, NULL, と CControlTray::OpenNewEditor().

参照元 HandleCommand().

void CViewCommander::Command_FILEOPEN | ( | const WCHAR * | filename = NULL,
 |  | ECodeType | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) |  |

ファイルを開く

日付:
2003.03.30 genta 「閉じて開く」から利用するために引数追加

2004.10.09 genta 実装をCEditDocへ移動

CViewCommander.cpp の 3335 行で定義されています。

参照先 FALSE, GetDocument(), CEditDoc::OpenFile(), と to_tchar.

参照元 HandleCommand().

BOOL CViewCommander::Command_FILESAVE | ( | bool | warnbeep = true,
 |  | bool | askname = true
 | ) |  |

上書き保存

F_FILESAVEALLとの組み合わせのみで使われるコマンド．

引数:
warnbeep | [in] true: 保存不要 or 保存禁止のときに警告を出す
askname | [in] true: ファイル名未設定の時に入力を促す
日付:
2004.02.28 genta 引数warnbeep追加

2005.01.24 genta 引数askname追加

CViewCommander.cpp の 3375 行で定義されています。

参照先 CEditDoc::FileSave(), と GetDocument().

参照元 Command_PLSQL_COMPILE_ON_SQLPLUS(), と HandleCommand().

BOOL CViewCommander::Command_FILESAVEAS_DIALOG ( )

CViewCommander.cpp の 3381 行で定義されています。

参照先 CEditDoc::FileSaveAs_Dialog(), と GetDocument().

参照元 Command_PLSQL_COMPILE_ON_SQLPLUS(), と HandleCommand().

BOOL CViewCommander::Command_FILESAVEAS ( const WCHAR * filename )

CViewCommander.cpp の 3390 行で定義されています。

参照先 CEditDoc::FileSaveAs(), GetDocument(), と to_tchar.

参照元 HandleCommand().

BOOL CViewCommander::Command_FILESAVEALL ( void )

全て上書き保存

編集中の全てのウィンドウで上書き保存を行う． ただし，上書き保存の指示を出すのみで実行結果の確認は行わない．

上書き禁止及びファイル名未設定のウィンドウでは何も行わない．

日付:
2005.01.24 genta 新規作成

CViewCommander.cpp の 3404 行で定義されています。

参照先 F_FILESAVE_QUIET, CShareData::getInstance(), NULL, CShareData::SendMessageToAllEditors(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_FILECLOSE ( void )

CViewCommander.cpp の 3344 行で定義されています。

参照先 CEditDoc::FileClose(), と GetDocument().

参照元 HandleCommand().

void CViewCommander::Command_FILECLOSE_OPEN | ( | LPCWSTR | filename = NULL,
 |  | ECodeType | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) |  |

閉じて開く

日付:
2003.03.30 genta 開くダイアログでキャンセルしたとき元のファイルが残るように。 ついでにFILEOPENと同じように引数を追加しておく

CViewCommander.cpp の 3357 行で定義されています。

参照先 FALSE, CEditDoc::FileCloseOpen(), GetDocument(), と to_tchar.

参照元 HandleCommand().

void CViewCommander::Command_FILE_REOPEN | ( | ECodeType | nCharCode,
 |  | bool | bNoConfirm
 | ) |  |

ファイルの再オープン

引数:
nCharCode | [in] 開き直す際の文字コード
bNoConfirm | [in] ファイルが更新された場合に確認を行わ「ない」かどうか。true:確認しない false:確認する

CViewCommander.cpp の 7946 行で定義されています。

参照先 CCaret::DrawCaretPosInfo(), GetCaret(), GetDocument(), CEditDoc::GetFilePath(), CEditView::GetHwnd(), GSTR_APPNAME_A, m_bReadOnly, m_pCommanderView, MYMESSAGEBOX_A, と CEditDoc::ReloadCurrentFile().

参照元 HandleCommand().

void CViewCommander::Command_PRINT ( void )

CViewCommander.cpp の 7586 行で定義されています。

参照先 Command_PRINT_PREVIEW(), GetDocument(), CEditDoc::m_pcEditWnd, CEditWnd::m_pPrintPreview, と CPrintPreview::OnPrint().

参照元 HandleCommand().

void CViewCommander::Command_PRINT_PREVIEW ( void )

CViewCommander.cpp の 7600 行で定義されています。

参照先 GetDocument(), CEditDoc::m_pcEditWnd, と CEditWnd::PrintPreviewModeONOFF().

参照元 Command_PRINT(), と HandleCommand().

void CViewCommander::Command_PRINT_PAGESETUP ( void )

CViewCommander.cpp の 7613 行で定義されています。

参照先 BOOL, GetDocument(), CEditDoc::m_pcEditWnd, と CEditWnd::OnPrintPageSetting().

参照元 HandleCommand().

BOOL CViewCommander::Command_OPEN_HfromtoC ( BOOL bCheckOnly )

CViewCommander.cpp の 5680 行で定義されています。

参照先 Command_OPEN_CCPP(), Command_OPEN_HHPP(), FALSE, と TRUE.

参照元 HandleCommand().

BOOL CViewCommander::Command_OPEN_HHPP | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss
 | ) |  |

CViewCommander.cpp の 5648 行で定義されています。

参照先 _countof, m_pCommanderView, と CEditView::OPEN_ExtFromtoExt().

参照元 Command_OPEN_HfromtoC(), と HandleCommand().

BOOL CViewCommander::Command_OPEN_CCPP | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss
 | ) |  |

CViewCommander.cpp の 5664 行で定義されています。

参照先 _countof, m_pCommanderView, と CEditView::OPEN_ExtFromtoExt().

参照元 Command_OPEN_HfromtoC(), と HandleCommand().

void CViewCommander::Command_ACTIVATE_SQLPLUS ( void )

CViewCommander.cpp の 7043 行で定義されています。

参照先 ActivateFrameWindow(), CEditView::GetHwnd(), GSTR_APPNAME_A, m_pCommanderView, MYMESSAGEBOX_A, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS ( void )

CViewCommander.cpp の 6951 行で定義されています。

参照先 ActivateFrameWindow(), auto_sprintf(), BOOL, Command_FILESAVE(), Command_FILESAVEAS_DIALOG(), DWORD_PTR, FALSE, GetDocument(), CEditDoc::GetFilePath(), CEditView::GetHwnd(), GSTR_APPNAME_A, CEditDoc::IsFilePathAvailable(), CEditDoc::IsModified(), m_pCommanderView, MYMESSAGEBOX_A, CEditView::MySetClipboardData(), NULL, WCODE::SPACE, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BROWSE ( void )

CViewCommander.cpp の 7627 行で定義されています。

参照先 GetDocument(), CEditDoc::GetFilePath(), と NULL.

参照元 HandleCommand().

void CViewCommander::Command_READONLY ( void )

CViewCommander.cpp の 7063 行で定義されています。

参照先 GetDocument(), CEditDoc::m_bReadOnly, と CEditDoc::SetParentCaption().

参照元 HandleCommand().

void CViewCommander::Command_PROPERTY_FILE ( void )

CViewCommander.cpp の 7072 行で定義されています。

参照先 CDlgProperty::DoModal(), CDocLineMgr::GetAllData(), GetDocument(), CEditView::GetHwnd(), GetInstance(), CEditDoc::m_cDocLineMgr, m_pCommanderView, NULL, と CRunningTimer::Reset().

参照元 HandleCommand().

void CViewCommander::Command_EXITALLEDITORS ( void )

CViewCommander.cpp の 7100 行で定義されています。

参照先 CControlTray::CloseAllEditor(), GetMainWindow(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_EXITALL ( void )

CViewCommander.cpp の 7107 行で定義されています。

参照先 GetMainWindow(), と CControlTray::TerminateApplication().

参照元 HandleCommand().

BOOL CViewCommander::Command_PUTFILE | ( | LPCWSTR | filename,
 |  | ECodeType | nCharCode,
 |  | int | nFlgOpt
 | ) |  |

編集中の内容を別名保存

主に編集中の一時ファイル出力などの目的に使用する． 現在開いているファイル(m_szFilePath)には影響しない．

引数:
[in] filename 出力ファイル名
[in] nCharCode 文字コード指定
  • CODE_xxxxxxxxxx:各種文字コード
  • CODE_AUTODETECT:現在の文字コードを維持
[in] nFlgOpt 動作オプション
  • 0x01:選択範囲を出力 (非選択状態でも空ファイルを出力する)
戻り値:
TRUE | 正常終了
FALSE | ファイル作成に失敗
作者:
maru
日付:
2006.12.10 maru 新規作成

CViewCommander.cpp の 8210 行で定義されています。

参照先 BOOL, CODE_AUTODETECT, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, CCodeFactory::CreateCodeBase(), EOL_NONE, FALSE, GetDocument(), CEditView::GetHwnd(), CMainStatusBar::GetProgressHwnd(), CMemory::GetRawLength(), CMemory::GetRawPtr(), CEditView::GetSelectedData(), CEditDoc::m_cDocLineMgr, CEditWnd::m_cStatusBar, CEditDoc::m_nCharCode, CEditDoc::m_pcEditWnd, m_pCommanderView, MYMESSAGEBOX, NULL, RESULT_FAILURE, to_tchar, TRUE, CCodeBase::UnicodeToCode(), WarningMessage, CFileWrite::Write(), と CDocLineMgr::WriteFile().

参照元 HandleCommand().

BOOL CViewCommander::Command_INSFILE | ( | LPCWSTR | filename,
 |  | ECodeType | nCharCode,
 |  | int | nFlgOpt
 | ) |  |

カーソル位置にファイルを挿入

現在のカーソル位置に指定のファイルを読み込む．

引数:
[in] | filename | 入力ファイル名
[in] nCharCode 文字コード指定
  • CODE_xxxxxxxxxx:各種文字コード
  • CODE_AUTODETECT:前回文字コードもしくは自動判別の結果による
[in] | nFlgOpt | 動作オプション（現在は未定義．0を指定のこと）
戻り値:
TRUE | 正常終了
FALSE | ファイルオープンに失敗
作者:
maru
日付:
2006.12.10 maru 新規作成

CViewCommander.cpp の 8339 行で定義されています。

参照先 BlockingHook(), BOOL, CODE_AUTODETECT, CODE_CODEMAX, CODE_SJIS, Command_INSTEXT(), CDlgCancel::DoModeless(), CViewSelect::DrawSelectArea(), FALSE, CFileLoad::FileClose(), CFileLoad::FileOpen(), GetCaret(), GetDocument(), CMRU::GetFileInfo(), CFileLoad::GetFileSize(), CRangeBase< PointType >::GetFrom(), CDialog::GetHwnd(), CEditView::GetHwnd(), CFileLoad::GetPercent(), CEditView::GetSelectionInfo(), IDC_PROGRESS, IDD_OPERATIONRUNNING, CDlgCancel::IsCanceled(), CViewSelect::IsTextSelected(), CEditDoc::m_nCharCode, FileInfo::m_nCharCode, m_pCommanderView, CViewSelect::m_sSelect, NULL, CFileLoad::ReadLine(), CEditView::Redraw(), CViewSelect::SetSelectArea(), to_tchar, TRUE, と WarningMessage.

参照元 HandleCommand().

void CViewCommander::Command_WCHAR ( wchar_t wcChar )

CViewCommander.cpp の 2582 行で定義されています。

参照先 CNativeW::AppendNativeData(), BOOL, Command_INDENT(), WCODE::CR, CEditView::DeleteData(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditDoc::GetDocumentAttribute(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CDocLineMgr::GetLineInfo(), CDocLineMgr::GetLineStr(), CLayoutMgr::GetLineStr(), CLayout::GetLogicLineNo(), CEditDoc::GetNewLineCode(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetSizeOfChar(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CViewSelect::IsBoxSelecting(), WCODE::isIndentChar(), CEditView::IsInsMode(), WCODE::isLineDelimiter(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), Types::m_bAutoIndent_ZENSPACE, CommonSetting_Edit::m_bNotOverWriteCRLF, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CommonSetting::m_sEdit, CCaret::MoveCursor(), NULL, CEditView::PostprocessCommand_hokan(), CEditView::RTrimPrevLine(), CLayoutMgr::SearchLineByLayoutY(), CEditDoc::SetModified(), CNativeW::SetNativeData(), CNativeW::SetString(), CEditView::SmartIndent_CPP(), SMARTINDENT_CPP, と TRUE.

参照元 Command_CtrlCode_Dialog(), Command_IME_CHAR(), Command_INDENT_TAB(), Command_UNINDENT(), と HandleCommand().

void CViewCommander::Command_IME_CHAR ( WORD wChar )

2バイト文字入力

WM_IME_CHARで送られてきた文字を処理する． ただし，挿入モードではWM_IME_CHARではなくWM_IME_COMPOSITIONで文字列を 取得するのでここには来ない．

引数:
wChar [in] SJIS漢字コード．上位が1バイト目，下位が2バイト目．
日付:
2002.10.06 genta 引数の上下バイトの意味を逆転． WM_IME_CHARのwParamに合わせた．

CViewCommander.cpp の 2761 行で定義されています。

参照先 BOOL, Command_INDENT(), Command_WCHAR(), CEditView::DeleteData(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayout::GetLengthWithoutEOL(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CViewSelect::IsBoxSelecting(), CEditView::IsInsMode(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CommonSetting_Edit::m_bNotOverWriteCRLF, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CommonSetting::m_sEdit, CCaret::MoveCursor(), NULL, CEditView::PostprocessCommand_hokan(), CLayoutMgr::SearchLineByLayoutY(), CEditDoc::SetModified(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_UNDO ( void )

CViewCommander_New.cpp の 36 行で定義されています。

参照先 CEditView::AdjustScrollBars(), CEditView_Paint::Call_OnPaint(), CNative::Clear(), CRangeBase< PointType >::Clear(), Command_CANCEL_MODE(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CRuler::DispRuler(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), COpe::GetCode(), GetDocument(), GetEditWindow(), CRangeBase< PointType >::GetFrom(), COpeBlk::GetNum(), COpeBlk::GetOpe(), CEditView::GetRuler(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEditDoc::IsEnableUndo(), CViewSelect::IsMouseSelecting(), CLayoutMgr::LogicToLayout(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, CCaret::m_nCaretPosX_Prev, COpe::m_nDataLen, COpe::m_pcmemData, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CViewSelect::m_sSelect, CViewSelect::m_sSelectBgn, CCaret::MoveCursor(), MY_RUNNINGTIMER, NULL, OPE_DELETE, OPE_INSERT, OPE_MOVECARET, PAINT_BODY, PAINT_LINENUMBER, CEditWnd::RedrawInactivePane(), CEditView::ReplaceData_CEditView(), CRangeBase< PointType >::Set(), CEditView::SetBracketPairPos(), CEditView::SetDrawSwitch(), CRangeBase< PointType >::SetFrom(), CEditDoc::SetModified(), CRangeBase< PointType >::SetTo(), CCaret::ShowEditCaret(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_REDO ( void )

CViewCommander_New.cpp の 180 行で定義されています。

参照先 CEditView::AdjustScrollBars(), CEditView_Paint::Call_OnPaint(), CNative::Clear(), Command_CANCEL_MODE(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CRuler::DispRuler(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), COpe::GetCode(), GetDocument(), GetEditWindow(), CEditView::GetHwnd(), COpeBlk::GetNum(), COpeBlk::GetOpe(), CEditView::GetRuler(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEditDoc::IsEnableRedo(), CViewSelect::IsMouseSelecting(), CLayoutMgr::LogicToLayout(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, CCaret::m_nCaretPosX_Prev, COpe::m_pcmemData, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, COpe::m_ptCaretPos_PHY_To, CCaret::MoveCursor(), MY_RUNNINGTIMER, NULL, OPE_DELETE, OPE_INSERT, OPE_MOVECARET, PAINT_BODY, PAINT_LINENUMBER, CEditWnd::RedrawInactivePane(), CEditView::ReplaceData_CEditView(), CRangeBase< PointType >::Set(), CEditView::SetBracketPairPos(), CEditView::SetDrawSwitch(), CEditDoc::SetModified(), CCaret::ShowEditCaret(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_DELETE ( void )

CViewCommander.cpp の 1606 行で定義されています。

参照先 CEditView::DeleteData(), CEditView::GetSelectionInfo(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), m_pCommanderView, と TRUE.

参照元 Command_DELETE_LINE(), と HandleCommand().

void CViewCommander::Command_DELETE_BACK ( void )

CViewCommander.cpp の 1625 行で定義されています。

参照先 COpeBlk::AppendOpe(), BOOL, Command_LEFT(), CEditView::DeleteData(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), GetOpeBlk(), CEditView::GetSelectionInfo(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, OPE_MOVECARET, CEditView::PostprocessCommand_hokan(), CEditDoc::SetModified(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_WordDeleteToStart ( void )

CViewCommander.cpp の 1712 行で定義されています。

参照先 COpeBlk::AppendOpe(), Command_WORDLEFT(), CEditView::DeleteData(), GetDocument(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, と TRUE.

参照元 HandleCommand(), と CEditView::ShowHokanMgr().

void CViewCommander::Command_WordDeleteToEnd ( void )

CViewCommander.cpp の 1669 行で定義されています。

参照先 COpeBlk::AppendOpe(), Command_WORDRIGHT(), CEditView::DeleteData(), GetDocument(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, NULL, OPE_MOVECARET, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_WordCut ( void )

CViewCommander.cpp の 1753 行で定義されています。

参照先 Command_CUT(), Command_RIGHT(), Command_SELECTWORD(), FALSE, CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_WordDelete ( void )

CViewCommander.cpp の 1775 行で定義されています。

参照先 Command_SELECTWORD(), CEditView::DeleteData(), CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_LineCutToStart ( void )

CViewCommander.cpp の 1793 行で定義されています。

参照先 Command_CUT(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayout::GetLogicLineNo(), CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cLayoutMgr, m_pCommanderView, NULL, CLayoutMgr::SearchLineByLayoutY(), と CViewSelect::SetSelectArea().

参照元 HandleCommand().

void CViewCommander::Command_LineCutToEnd ( void )

CViewCommander.cpp の 1827 行で定義されています。

参照先 Command_CUT(), EOL_NONE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEOL::GetLen(), CLayout::GetLogicLineNo(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CDocLine::m_cEol, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, CLayout::m_pCDocLine, m_pCommanderView, NULL, CLayoutMgr::SearchLineByLayoutY(), と CViewSelect::SetSelectArea().

参照元 HandleCommand().

void CViewCommander::Command_LineDeleteToStart ( void )

CViewCommander.cpp の 1880 行で定義されています。

参照先 CEditView::DeleteData(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayout::GetLogicLineNo(), CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CEditDoc::m_cLayoutMgr, m_pCommanderView, NULL, CLayoutMgr::SearchLineByLayoutY(), CViewSelect::SetSelectArea(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_LineDeleteToEnd ( void )

CViewCommander.cpp の 1914 行で定義されています。

参照先 CEditView::DeleteData(), EOL_NONE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEOL::GetLen(), CLayout::GetLogicLineNo(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CDocLine::m_cEol, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, CLayout::m_pCDocLine, m_pCommanderView, NULL, CLayoutMgr::SearchLineByLayoutY(), CViewSelect::SetSelectArea(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_CUT_LINE ( void )

CViewCommander.cpp の 1965 行で定義されています。

参照先 Command_DELETE_LINE(), CEditView::CopyCurLine(), EOL_UNKNOWN, GetCaret(), GetDocument(), CEditView::GetSelectionInfo(), GetShareData(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, m_pCommanderView, NULL, と CLayoutMgr::SearchLineByLayoutY().

参照元 Command_CUT(), と HandleCommand().

void CViewCommander::Command_DELETE_LINE ( void )

CViewCommander.cpp の 1997 行で定義されています。

参照先 COpeBlk::AppendOpe(), Command_DELETE(), GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex2(), CViewCalc::LineIndexToColmn(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CLayoutMgr::SearchLineByLayoutY(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), と TRUE.

参照元 Command_CUT_LINE(), と HandleCommand().

void CViewCommander::Command_DUPLICATELINE ( void )

CViewCommander.cpp の 3777 行で定義されています。

参照先 COpeBlk::AppendOpe(), CNativeW::AppendString(), Command_GOLINETOP(), CViewSelect::DisableSelectArea(), EOL_NONE, FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CEditDoc::GetNewLineCode(), GetOpeBlk(), CLayout::GetPtr(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEOL::GetUnicodeValue(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CEditView::InsertData_CEditView(), CViewSelect::IsTextSelected(), CEditView::m_bDoing_UndoRedo, CViewSelect::m_bSelectingLock, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CLayoutMgr::SearchLineByLayoutY(), CNativeW::SetString(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_INDENT ( wchar_t cChar )

CViewCommander.cpp の 4662 行で定義されています。

参照先 auto_sprintf(), GetDocument(), CRangeBase< PointType >::GetFrom(), GetSelect(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CViewSelect::IsBoxSelecting(), m_pCommanderView, CEditView::RedrawAll(), CRangeBase< PointType >::SetToX(), WCODE::SPACE, と WCODE::TAB.

参照元 Command_IME_CHAR(), Command_INDENT_TAB(), Command_INSTEXT(), Command_PASTE(), Command_WCHAR(), と HandleCommand().

void CViewCommander::Command_INDENT | ( | const wchar_t * | pData,
 |  | CLogicInt | nDataLen,
 |  | BOOL | bIndent = FALSE
 | ) |  |

CViewCommander.cpp の 4685 行で定義されています。

参照先 COpeBlk::AppendOpe(), Command_INSTEXT(), Command_RIGHT(), WCODE::CR, CDocLineMgr::CreateCharCharsArr(), CEditView::DeleteData(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CEditView::GetHwnd(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CLayout::GetLogicOffset(), CLayoutMgr::GetMaxLineKetas(), GetOpeBlk(), CLayout::GetPtr(), GetSelect(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CViewSelect::IsBoxSelecting(), CEditView::IsInsMode(), CViewSelect::IsTextSelected(), WCODE::LF, CViewCalc::LineColmnToIndex(), CViewCalc::LineIndexToColmn(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CEditView::Redraw(), CLayoutMgr::SearchLineByLayoutY(), CViewSelect::SetBoxSelect(), CEditView::SetDrawSwitch(), CRangeBase< PointType >::SetFrom(), CEditDoc::SetModified(), CRangeBase< PointType >::SetTo(), WCODE::SPACE, WCODE::TAB, TRUE, と TwoPointToRange().

void CViewCommander::Command_INDENT_TAB ( void )

CViewCommander.cpp の 4610 行で定義されています。

参照先 Command_INDENT(), Command_WCHAR(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), GetSelect(), CEditView::GetSelectionInfo(), CLayoutMgr::GetTabSpace(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsBoxSelecting(), CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, m_pCommanderView, NULL, CEditView::ReplaceData_CEditView(), WCODE::TAB, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_UNINDENT ( wchar_t wcChar )

CViewCommander.cpp の 4903 行で定義されています。

参照先 COpeBlk::AppendOpe(), Command_WCHAR(), CEditView::DeleteData2(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CEditView::GetHwnd(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CLayout::GetLogicOffset(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CEditView::Redraw(), CEditView::SendStatusMessage(), CRangeBase< PointType >::SetFrom(), CEditDoc::SetModified(), CRangeBase< PointType >::SetTo(), WCODE::SPACE, WCODE::TAB, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_TRIM ( BOOL bLeft )

TRIM Step1

非選択時はカレント行を選択して m_pCommanderView->ConvSelectedArea → ConvMemory へ

引数:
bLeft [in] FALSE: 右TRIM / それ以外: 左TRIM
作者:
hor
日付:
2001.12.03 hor 新規作成

CViewCommander_New.cpp の 726 行で定義されています。

参照先 CEditView::ConvSelectedArea(), CViewSelect::DisableSelectArea(), F_LTRIM, F_RTRIM, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), CViewSelect::IsTextSelected(), m_pCommanderView, CViewSelect::m_sSelect, CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_SORT ( BOOL bAsc )

物理行のソート

非選択時は何も実行しない．矩形選択時は、その範囲をキーにして物理行をソート．

覚え書き:
とりあえず改行コードを含むデータをソートしているので、 ファイルの最終行はソート対象外にしています
作者:
hor
日付:
2001.12.03 hor 新規作成

2001.12.21 hor 選択範囲の調整ロジックを訂正

CViewCommander_New.cpp の 778 行で定義されています。

参照先 COpeBlk::AppendOpe(), CNativeW::AppendString(), EOL_NONE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineInfo(), CDocLineMgr::GetLineStr(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), CViewSelect::IsBoxSelecting(), CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CLayoutMgr::LogicToLayout(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cDocLineMgr, CDocLine::m_cEol, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CEditView::m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CViewSelect::m_sSelect, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CEditView::RedrawAll(), CEditView::ReplaceData_CEditView(), CViewSelect::SetBoxSelect(), CRangeBase< PointType >::SetFromX(), CNativeW::SetString(), CRangeBase< PointType >::SetToX(), _SORTTABLE::sKey1, _SORTTABLE::sKey2, SortByKeyAsc(), と SortByKeyDesc().

参照元 HandleCommand().

void CViewCommander::Command_MERGE ( void )

物理行のマージ

連続する物理行で内容が同一の物を1行にまとめます．

矩形選択時はなにも実行しません．

覚え書き:
改行コードを含むデータを比較しているので、 ファイルの最終行はソート対象外にしています
作者:
hor
日付:
2001.12.03 hor 新規作成

2001.12.21 hor 選択範囲の調整ロジックを訂正

CViewCommander_New.cpp の 924 行で定義されています。

参照先 COpeBlk::AppendOpe(), CNativeW::AppendString(), EOL_NONE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CEditView::GetSelectionInfo(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), GSTR_APPNAME_A, InfoMessage, CViewSelect::IsBoxSelecting(), CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CLayoutMgr::LogicToLayout(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cDocLineMgr, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CEditView::m_pcOpeBlk, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CViewSelect::m_sSelect, CCaret::MoveCursor(), MYMESSAGEBOX_A, NULL, OPE_MOVECARET, CEditView::RedrawAll(), CEditView::ReplaceData_CEditView(), CLayoutMgr::SearchLineByLayoutY(), CRangeBase< PointType >::SetFromX(), CNativeW::SetString(), と CRangeBase< PointType >::SetToX().

参照元 HandleCommand().

void CViewCommander::Command_Reconvert ( void )

CViewCommander_New.cpp の 1025 行で定義されています。

参照先 _countof, FID_RECONVERT_VERSION, CEditView::m_hWnd, m_pCommanderView, CEditView::m_uWM_MSIME_RECONVERTREQUEST, NULL, COsVersionInfo::OsDoesNOTSupportReconvert(), CEditView::SetReconvertStruct(), CEditView::SetSelectionFromReonvert(), と UNICODE_BOOL.

参照元 HandleCommand().

void CViewCommander::Command_CtrlCode_Dialog ( void )

コントロールコードの入力(ダイアログ)

作者:
MIK
日付:
2002/06/02

CViewCommander_New.cpp の 1110 行で定義されています。

参照先 Command_WCHAR(), CDlgCtrlCode::DoModal(), CDlgCtrlCode::GetCharCode(), GetDocument(), GetInstance(), CEditView::m_hWnd, と m_pCommanderView.

参照元 HandleCommand().

int CViewCommander::Command_UP | ( | bool | bSelect,
 |  | bool | bRepeat,
 |  | int | lines = 0
 | ) |  |

カーソル上移動

CViewCommander.cpp の 679 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), FALSE, GetCaret(), CEditView::GetHwnd(), GetShareData(), DLLSHAREDATA::m_Common, CommonSetting_General::m_nRepeatedScrollLineNum, m_pCommanderView, と CommonSetting::m_sGeneral.

参照元 HandleCommand().

int CViewCommander::Command_DOWN | ( | bool | bSelect,
 |  | bool | bRepeat
 | ) |  |

CViewCommander.cpp の 719 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), CEditView::GetHwnd(), GetShareData(), DLLSHAREDATA::m_Common, CommonSetting_General::m_nRepeatedScrollLineNum, m_pCommanderView, と CommonSetting::m_sGeneral.

参照元 Command_1PageDown(), Command_GOFILEEND(), HandleCommand(), と CEditView::OnLBUTTONDOWN().

int CViewCommander::Command_LEFT | ( | bool | bSelect,
 |  | bool | bRepeat
 | ) |  |

カーソル左移動

日付:
2004.03.28 Moca EOFだけの行以降の途中にカーソルがあると落ちるバグ修正． pcLayout == NULLかつキャレット位置が行頭以外の場合は 2つのifのどちらにも当てはまらないが，そのあとのMoveCursorにて適正な 位置に移動させられる．

CViewCommander.cpp の 757 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CLayout::GetIndent(), CLayout::GetLengthWithEOL(), CLayout::GetLengthWithoutEOL(), GetSelect(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), CLayoutMgr::SearchLineByLayoutY(), TRUE, と TwoPointToRange().

参照元 Command_DELETE_BACK(), Command_REPLACE(), Command_WORDLEFT(), と HandleCommand().

void CViewCommander::Command_RIGHT | ( | bool | bSelect,
 |  | bool | bIgnoreCurrentSelection,
 |  | bool | bRepeat
 | ) |  |

CViewCommander.cpp の 866 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::ChangeSelectAreaByCurrentCursor(), Command_GOFILEEND(), CViewSelect::DisableSelectArea(), EOL_NONE, FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditDoc::GetDocumentAttribute(), CRangeBase< PointType >::GetFrom(), CLayout::GetIndent(), CLayout::GetLengthWithEOL(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CRangeBase< PointType >::GetTo(), CEOL::GetType(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsBoxSelecting(), CLayoutMgr::IsEndOfLine(), CViewSelect::IsTextSelected(), Types::m_bKinsokuKuto, Types::m_bKinsokuRet, CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CLayout::m_pNext, CCaret::MoveCursor(), CLayoutMgr::SearchLineByLayoutY(), TRUE, と TwoPointToRange().

参照元 Command_INDENT(), Command_WordCut(), Command_WORDRIGHT(), HandleCommand(), と CEditView::OnLBUTTONDOWN().

void CViewCommander::Command_UP2 ( bool bSelect )

CViewCommander.cpp の 1136 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), と GetCaret().

参照元 HandleCommand().

void CViewCommander::Command_DOWN2 ( bool bSelect )

CViewCommander.cpp の 1146 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), と GetCaret().

参照元 HandleCommand().

void CViewCommander::Command_WORDLEFT ( bool bSelect )

CViewCommander.cpp の 1348 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), BOOL, CViewSelect::ChangeSelectAreaByCurrentCursor(), Command_LEFT(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CommonSetting_General::m_bIsFreeCursorMode, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CommonSetting::m_sGeneral, CCaret::MoveCursor(), NULL, CLayoutMgr::PrevWord(), CLayoutMgr::SearchLineByLayoutY(), と TRUE.

参照元 Command_WordDeleteToStart(), と HandleCommand().

void CViewCommander::Command_WORDRIGHT ( bool bSelect )

CViewCommander.cpp の 1422 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), BOOL, CViewSelect::ChangeSelectAreaByCurrentCursor(), Command_RIGHT(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayout::GetPtr(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CommonSetting_General::m_bIsFreeCursorMode, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CommonSetting::m_sGeneral, CCaret::MoveCursor(), CLayoutMgr::NextWord(), NULL, CLayoutMgr::SearchLineByLayoutY(), WCODE::TAB, と TRUE.

参照元 Command_WordDeleteToEnd(), と HandleCommand().

void CViewCommander::Command_GOLINETOP | ( | bool | bSelect,
 |  | int | lparam
 | ) |  |

行頭に移動

日付:
Oct. 29, 2001 genta マクロ用機能拡張(パラメータ追加) + goto排除

May. 15, 2002 oak 改行単位移動

Oct. 7, 2002 YAZAKI 冗長な引数 bLineTopOnly を削除

Jun. 18, 2007 maru 行頭判定に全角空白のインデント設定も考慮する

引数:
bSelect [in] 選択の有無。true: 選択しながら移動。false: 選択しないで移動。
lparam [in] マクロから使用する拡張フラグ
  • 0: キー操作と同一(default)
  • 1: カーソル位置に関係なく行頭に移動。
  • 4: 選択して移動(合成可)
  • 8: 改行単位で先頭に移動(合成可)

CViewCommander.cpp の 1162 行で定義されています。

参照先 BOOL, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditDoc::GetDocumentAttribute(), CLayout::GetIndent(), CLayoutMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::isIndentChar(), WCODE::isLineDelimiter(), CViewCalc::LineIndexToColmn(), CLayoutMgr::LogicToLayout(), Types::m_bAutoIndent_ZENSPACE, CEditDoc::m_cLayoutMgr, m_pCommanderView, CEditView::MoveCursorSelecting(), NULL, と CLayoutMgr::SearchLineByLayoutY().

参照元 Command_DUPLICATELINE(), Command_PASTE(), と HandleCommand().

void CViewCommander::Command_GOLINEEND | ( | bool | bSelect,
 |  | int | bIgnoreCurrentSelection
 | ) |  |

CViewCommander.cpp の 1255 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), EOL_NONE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayout::GetLengthWithEOL(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), CLayoutMgr::SearchLineByLayoutY(), と TRUE.

参照元 Command_GOFILEEND(), HandleCommand(), と CEditView::OnLBUTTONDOWN().

void CViewCommander::Command_HalfPageUp ( bool bSelect )

* スクロールアップ */

* スクロールダウン */

CViewCommander.cpp の 1053 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), CEditView::GetTextArea(), CTextArea::m_nViewRowNum, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_HalfPageDown ( bool bSelect )

CViewCommander.cpp の 1063 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), CEditView::GetTextArea(), CTextArea::m_nViewRowNum, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_1PageUp ( bool bSelect )

１ページアップ

日付:
2000.10.10 JEPRO 作成

2001.12.13 hor 画面に対するカーソル位置はそのままで １ページアップに動作変更

CViewCommander.cpp の 1078 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CTextArea::m_nViewRowNum, m_pCommanderView, CEditView::RedrawAll(), CEditView::ScrollAtV(), CEditView::SetDrawSwitch(), と CEditView::SyncScrollV().

参照元 HandleCommand().

void CViewCommander::Command_1PageDown ( bool bSelect )

１ページダウン

日付:
2000.10.10 JEPRO 作成

2001.12.13 hor 画面に対するカーソル位置はそのままで １ページダウンに動作変更

CViewCommander.cpp の 1109 行で定義されています。

参照先 Command_DOWN(), CCaret::Cursor_UPDOWN(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayoutMgr::GetLineCount(), CEditView::GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CEditDoc::m_cLayoutMgr, CTextArea::m_nViewRowNum, m_pCommanderView, CEditView::RedrawAll(), CEditView::ScrollAtV(), CEditView::SetDrawSwitch(), CEditView::SyncScrollV(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_GOFILETOP ( bool bSelect )

CViewCommander.cpp の 1307 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsBoxSelecting(), m_pCommanderView, と CEditView::MoveCursorSelecting().

参照元 Command_REPLACE_ALL(), と HandleCommand().

void CViewCommander::Command_GOFILEEND ( bool bSelect )

CViewCommander.cpp の 1325 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), Command_DOWN(), Command_GOLINEEND(), CCaret::Cursor_UPDOWN(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), と TRUE.

参照元 Command_ADDTAIL(), Command_RIGHT(), CEditView::DeleteData(), と HandleCommand().

void CViewCommander::Command_CURLINECENTER ( void )

CViewCommander.cpp の 6824 行で定義されています。

参照先 GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CTextArea::m_nViewRowNum, m_pCommanderView, CEditView::RedrawAll(), CTextArea::SetViewTopLine(), と CEditView::SyncScrollV().

参照元 HandleCommand().

void CViewCommander::Command_JUMPHIST_PREV ( void )

CViewCommander.cpp の 8084 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), CMarkMgr::CheckNext(), CMarkMgr::CheckPrev(), CMarkMgr::GetCurrent(), GetDocument(), CEditView::GetSelectionInfo(), CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditView::m_cHistory, CEditDoc::m_cLayoutMgr, m_pCommanderView, CEditView::MoveCursorSelecting(), NULL, と CMarkMgr::PrevValid().

参照元 HandleCommand().

void CViewCommander::Command_JUMPHIST_NEXT ( void )

CViewCommander.cpp の 8109 行で定義されています。

参照先 CMarkMgr::CheckNext(), CMarkMgr::GetCurrent(), GetDocument(), CEditView::GetSelectionInfo(), CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditView::m_cHistory, CEditDoc::m_cLayoutMgr, m_pCommanderView, CEditView::MoveCursorSelecting(), CMarkMgr::NextValid(), と NULL.

参照元 HandleCommand().

void CViewCommander::Command_JUMPHIST_SET ( void )

CViewCommander.cpp の 8075 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_WndScrollDown ( void )

CViewCommander_New.cpp の 343 行で定義されています。

参照先 _CARETMARGINRATE, CCaretUnderLine::CaretUnderLineOFF(), CCaretUnderLine::CaretUnderLineON(), CCaret::Cursor_UPDOWN(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayoutMgr::GetLineCount(), CEditView::GetSelectionInfo(), CEditView::GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, CCaret::m_cUnderLine, CTextArea::m_nViewRowNum, m_pCommanderView, CEditView::ScrollAtV(), CEditView::SyncScrollV(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_WndScrollUp ( void )

CViewCommander_New.cpp の 379 行で定義されています。

参照先 _CARETMARGINRATE, CCaretUnderLine::CaretUnderLineOFF(), CCaretUnderLine::CaretUnderLineON(), CCaret::Cursor_UPDOWN(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CEditView::GetSelectionInfo(), CEditView::GetTextArea(), CTextArea::GetViewTopLine(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY(), CViewSelect::IsTextSelected(), CCaret::m_cUnderLine, CTextArea::m_nViewRowNum, m_pCommanderView, CEditView::ScrollAtV(), CEditView::SyncScrollV(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_GONEXTPARAGRAPH ( bool bSelect )

CViewCommander_New.cpp の 420 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), GetDocument(), CDocLineMgr::GetLineInfo(), GetShareData(), CDocLine::IsEmptyLine(), CLayoutMgr::LogicToLayout(), CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, と CommonSetting::m_sGeneral.

参照元 HandleCommand().

void CViewCommander::Command_GOPREVPARAGRAPH ( bool bSelect )

CViewCommander_New.cpp の 495 行で定義されています。

参照先 CCaret::Cursor_UPDOWN(), GetCaret(), GetDocument(), CDocLineMgr::GetLineInfo(), GetShareData(), CDocLine::IsEmptyLine(), CLayoutMgr::LogicToLayout(), CommonSetting_General::m_bStopsBothEndsWhenSearchParagraph, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, と CommonSetting::m_sGeneral.

参照元 HandleCommand().

bool CViewCommander::Command_SELECTWORD ( void )

CViewCommander.cpp の 2085 行で定義されています。

参照先 CViewSelect::DisableSelectArea(), CViewSelect::DrawSelectArea(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), NULL, CLayoutMgr::SearchLineByLayoutY(), CViewSelect::SetSelectArea(), と TRUE.

参照元 Command_WordCut(), Command_WordDelete(), と HandleCommand().

void CViewCommander::Command_SELECTALL ( void )

CViewCommander.cpp の 2057 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), CViewSelect::DisableSelectArea(), CViewSelect::DrawSelectArea(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CLayoutMgr::GetEndLayoutPos(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CViewSelect::IsTextSelected(), CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CRangeBase< PointType >::SetFrom(), CViewSelect::SetSelectArea(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BEGIN_SELECT ( void )

CViewCommander.cpp の 3276 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), FALSE, CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), CViewSelect::m_bSelectingLock, m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BEGIN_BOXSELECT ( void )

CViewCommander.cpp の 3297 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), CViewSelect::DisableSelectArea(), CEditView::GetSelectionInfo(), GetShareData(), CViewSelect::IsTextSelected(), CViewSelect::m_bSelectingLock, m_pCommanderView, CViewSelect::SetBoxSelect(), と TRUE.

参照元 HandleCommand().

int CViewCommander::Command_UP_BOX ( BOOL )

void CViewCommander::Command_CUT ( void )

CViewCommander.cpp の 1560 行で定義されています。

参照先 Command_CUT_LINE(), CEditView::DeleteData(), FALSE, GetDocument(), CEditView::GetSelectedData(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CViewSelect::IsBoxSelecting(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), m_pCommanderView, CEditView::MySetClipboardData(), NULL, CEditDoc::SetModified(), と TRUE.

参照元 Command_LineCutToEnd(), Command_LineCutToStart(), Command_WordCut(), と HandleCommand().

void CViewCommander::Command_COPY | ( | bool | bIgnoreLockAndDisable,
 |  | bool | bAddCRLFWhenCopy,
 |  | enumEOLType | neweol = EOL_UNKNOWN
 | ) |  |

選択範囲をクリップボードにコピー

引数:
bIgnoreLockAndDisable | [in] 選択範囲を解除するか？
bAddCRLFWhenCopy | [in] 折り返し位置に改行コードを挿入するか？
neweol | [in] コピーするときのEOL。

CViewCommander.cpp の 1501 行で定義されています。

参照先 CEditView::CopyCurLine(), CViewSelect::DisableSelectArea(), FALSE, CEditView::GetSelectedData(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CViewSelect::m_bSelectingLock, m_pCommanderView, CEditView::MySetClipboardData(), NULL, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_PASTE ( void )

貼り付け(クリップボードから貼り付け)

日付:
2007.10.04 ryoji MSDEVLineSelect形式の行コピー対応処理を追加（VS2003/2005のエディタと類似の挙動に）

CViewCommander.cpp の 2135 行で定義されています。

参照先 COpeBlk::AppendOpe(), CNativeW::AppendString(), BOOL, Command_GOLINETOP(), Command_INDENT(), Command_PASTEBOX(), WCODE::CR, CViewSelect::DisableSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CEditView::GetHwnd(), CLayoutMgr::GetLineStr(), GetOpeBlk(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringPtr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CViewSelect::IsBoxSelecting(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), WCODE::LF, CViewCalc::LineColmnToIndex(), CLayoutMgr::LogicToLayout(), CommonSetting_Edit::m_bAutoColmnPaste, CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CommonSetting::m_sEdit, CCaret::MoveCursor(), CEditView::MyGetClipboardData(), NULL, OPE_MOVECARET, CEditView::ReplaceData_CEditView(), CCaret::SetCaretLayoutPos(), CEditDoc::SetModified(), と TRUE.

参照元 Command_REPLACE(), と HandleCommand().

void CViewCommander::Command_PASTEBOX ( void )

CViewCommander.cpp の 2549 行で定義されています。

参照先 CEditView::AdjustScrollBars(), FALSE, CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringPtr(), CViewSelect::IsMouseSelecting(), CommonSetting_View::m_bFontIs_FIXED_PITCH, DLLSHAREDATA::m_Common, m_pCommanderView, CommonSetting::m_sView, CEditView::MyGetClipboardData(), NULL, と CEditView::Redraw().

参照元 Command_PASTE(), Command_REPLACE_ALL(), と HandleCommand().

void CViewCommander::Command_PASTEBOX | ( | const wchar_t * | szPaste,
 |  | int | nPasteSize
 | ) |  |

CViewCommander.cpp の 2406 行で定義されています。

参照先 COpeBlk::AppendOpe(), BOOL, WCODE::CR, CEditView::DeleteData(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), CLayoutMgr::GetLineStr(), GetOpeBlk(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CViewSelect::IsTextSelected(), WCODE::LF, CViewCalc::LineIndexToColmn(), CEditView::m_bDoing_UndoRedo, CEditDoc::m_cLayoutMgr, CCaret::m_nCaretPosX_Prev, m_pCommanderView, COpe::m_ptCaretPos_PHY_After, COpe::m_ptCaretPos_PHY_Before, CCaret::MoveCursor(), NULL, OPE_MOVECARET, CEditView::SetDrawSwitch(), CEditDoc::SetModified(), と TRUE.

void CViewCommander::Command_INSTEXT | ( | bool | bRedraw,
 |  | const wchar_t * | pszText,
 |  | CLogicInt | nTextLen,
 |  | bool | bNoWaitCursor
 | ) |  |

テキストを貼り付け

日付:
2004.05.14 Moca '\0'を受け入れるように、引数に長さを追加
引数:
pszText | [in] 貼り付ける文字列。
nTextLen | [in] pszTextの長さ。-1を指定すると、pszTextをNUL終端文字列とみなして長さを自動計算する

CViewCommander.cpp の 2307 行で定義されています。

参照先 Command_INDENT(), WCODE::CR, FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetHwnd(), GetSelect(), CEditView::GetSelectionInfo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), GSTR_APPNAME, CEditView::InsertData_CEditView(), CViewSelect::IsBoxSelecting(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), WCODE::LF, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), MYMESSAGEBOX, NULL, CEditView::ReplaceData_CEditView(), と CEditDoc::SetModified().

参照元 Command_INDENT(), Command_INS_DATE(), Command_INS_TIME(), Command_INSFILE(), Command_REPLACE(), Command_REPLACE_ALL(), HandleCommand(), と CEditView::ShowHokanMgr().

void CViewCommander::Command_ADDTAIL | ( | const wchar_t * | pszData,
 |  | int | nDataLen
 | ) |  |

引数:
pszData | 追加するテキスト
nDataLen | 追加するテキストの長さ。文字単位。-1を指定すると、テキスト終端まで。

CViewCommander.cpp の 5017 行で定義されています。

参照先 Command_GOFILEEND(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CEditView::InsertData_CEditView(), CCaret::m_nCaretPosX_Prev, m_pCommanderView, CCaret::MoveCursor(), NULL, CEditDoc::SetModified(), と TRUE.

参照元 CEditView::DoGrep(), と HandleCommand().

void CViewCommander::Command_COPYFILENAME ( void )

現在編集中のファイル名をクリップボードにコピー 2002/2/3 aroka

CViewCommander.cpp の 3419 行で定義されています。

参照先 FALSE, GetDocument(), GetFileName(), m_pCommanderView, CEditView::MySetClipboardData(), と to_wchar().

参照元 HandleCommand().

void CViewCommander::Command_COPYPATH ( void )

CViewCommander.cpp の 3435 行で定義されています。

参照先 FALSE, GetDocument(), CEditDoc::GetFilePath(), m_pCommanderView, と CEditView::MySetClipboardData().

参照元 HandleCommand().

void CViewCommander::Command_COPYTAG ( void )

CViewCommander.cpp の 3454 行で定義されています。

参照先 auto_sprintf(), FALSE, GetCaret(), GetDocument(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cLayoutMgr, m_pCommanderView, と CEditView::MySetClipboardData().

参照元 HandleCommand().

void CViewCommander::Command_COPYLINES ( void )

CViewCommander.cpp の 7248 行で定義されています。

参照先 CEditView::CopySelectedAllLines(), FALSE, m_pCommanderView, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_COPYLINESASPASSAGE ( void )

CViewCommander.cpp の 7262 行で定義されています。

参照先 CEditView::CopySelectedAllLines(), FALSE, GetShareData(), と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_COPYLINESWITHLINENUMBER ( void )

CViewCommander.cpp の 7276 行で定義されています。

参照先 CEditView::CopySelectedAllLines(), m_pCommanderView, NULL, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_CREATEKEYBINDLIST ( void )

CViewCommander.cpp の 7291 行で定義されています。

参照先 CKeyBind::CreateKeyBindList(), FALSE, GetDocument(), GetInstance(), GetShareData(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), と SetClipboardText().

参照元 HandleCommand().

void CViewCommander::Command_INS_DATE ( void )

CViewCommander.cpp の 7976 行で定義されています。

参照先 _countof, Command_INSTEXT(), CShareData::getInstance(), CShareData::MyGetDateFormat(), to_wchar(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_INS_TIME ( void )

CViewCommander.cpp の 7992 行で定義されています。

参照先 _countof, Command_INSTEXT(), CShareData::getInstance(), CShareData::MyGetTimeFormat(), to_wchar(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_TOLOWER ( void )

CViewCommander.cpp の 3871 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOLOWER, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOUPPER ( void )

CViewCommander.cpp の 3882 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOUPPER, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOZENKAKUKATA ( void )

CViewCommander.cpp の 3928 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOZENKAKUKATA, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOZENKAKUHIRA ( void )

CViewCommander.cpp の 3939 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOZENKAKUHIRA, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOHANKAKU ( void )

CViewCommander.cpp の 3893 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOHANKAKU, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOHANKATA ( void )

CViewCommander.cpp の 3902 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOHANKATA, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOZENEI ( void )

半角英数→全角英数

CViewCommander.cpp の 3911 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOZENEI, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TOHANEI ( void )

全角英数→半角英数

CViewCommander.cpp の 3919 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TOHANEI, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_HANKATATOZENKAKUKATA ( void )

CViewCommander.cpp の 3950 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_HANKATATOZENKAKUKATA, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_HANKATATOZENKAKUHIRA ( void )

CViewCommander.cpp の 3961 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_HANKATATOZENKAKUHIRA, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_TABTOSPACE ( void )

CViewCommander.cpp の 3972 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_TABTOSPACE, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_SPACETOTAB ( void )

CViewCommander.cpp の 3980 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_SPACETOTAB, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_AUTO2SJIS ( void )

CViewCommander.cpp の 4106 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_AUTO2SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_EMAIL ( void )

CViewCommander.cpp の 3996 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_EMAIL, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_EUC2SJIS ( void )

CViewCommander.cpp の 4007 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_EUC2SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_UNICODE2SJIS ( void )

CViewCommander.cpp の 4018 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_UNICODE2SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_UNICODEBE2SJIS ( void )

CViewCommander.cpp の 4029 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_UNICODEBE2SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_UTF82SJIS ( void )

CViewCommander.cpp の 4062 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_UTF82SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_UTF72SJIS ( void )

CViewCommander.cpp の 4073 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_UTF72SJIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_SJIS2JIS ( void )

CViewCommander.cpp の 4040 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_SJIS2JIS, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_SJIS2EUC ( void )

CViewCommander.cpp の 4051 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_SJIS2EUC, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_SJIS2UTF8 ( void )

CViewCommander.cpp の 4095 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_SJIS2UTF8, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_CODECNV_SJIS2UTF7 ( void )

CViewCommander.cpp の 4084 行で定義されています。

参照先 CEditView::ConvSelectedArea(), F_CODECNV_SJIS2UTF7, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_BASE64DECODE ( void )

CViewCommander.cpp の 6846 行で定義されています。

参照先 CNative::_GetMemory(), _MAX_PATH, _tcscpy(), FALSE, GetDocument(), CEditView::GetHwnd(), CMemory::GetRawPtr(), CEditView::GetSelectedData(), CEditView::GetSelectionInfo(), GetShareData(), GSTR_APPNAME_A, CViewSelect::IsTextSelected(), m_pCommanderView, MYMESSAGEBOX_A, NULL, と CBinaryOutputStream::Write().

参照元 HandleCommand().

void CViewCommander::Command_UUDECODE ( void )

CViewCommander.cpp の 6893 行で定義されています。

参照先 _MAX_PATH, ErrorMessage, FALSE, GetDocument(), CEditView::GetHwnd(), CMemory::GetRawPtr(), CEditView::GetSelectedData(), CEditView::GetSelectionInfo(), GetShareData(), CViewSelect::IsTextSelected(), m_pCommanderView, NULL, CConvert_UuDecode::UUDECODE(), と CBinaryOutputStream::Write().

参照元 HandleCommand().

void CViewCommander::Command_SEARCH_BOX ( void )

検索(ボックス)コマンド実行. ツールバーの検索ボックスにフォーカスを移動する.

日付:
2006.06.04 yukihane 新規作成

CViewCommander.cpp の 2853 行で定義されています。

参照先 GetDocument(), CEditWnd::m_cToolbar, CEditDoc::m_pcEditWnd, と CMainToolBar::SetFocusSearchBox().

参照元 HandleCommand().

void CViewCommander::Command_SEARCH_DIALOG ( void )

CViewCommander.cpp の 2860 行で定義されています。

参照先 ActivateFrameWindow(), ApiWrap::DlgItem_SetText(), CDlgFind::DoModeless(), CEditWnd::GetActiveView(), CEditView::GetCurrentTextForSearchDlg(), GetEditWindow(), CEditWnd::GetHwnd(), CEditView::GetHwnd(), CDialog::GetHwnd(), GetInstance(), CNativeW::GetStringPtr(), CNativeW::GetStringT(), IDC_COMBO_TEXT, CEditWnd::m_cDlgFind, m_pCommanderView, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_SEARCH_NEXT | ( | bool | bChangeCurRegexp,
 |  | bool | bRedraw,
 |  | HWND | hwndParent,
 |  | const WCHAR * | pszNotFoundMessage
 | ) |  |

次を検索

引数:
bChangeCurRegexp 共有データの検索文字列を使う
日付:
2003.05.22 かろと 無限マッチ対策．行頭・行末処理見直し．

2004.05.30 Moca bChangeCurRegexp=trueで従来通り。falseで、CEditViewの現在設定されている検索パターンを使う

< 長さ０でマッチしているか？フラグ by かろと

CViewCommander.cpp の 3048 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), CEditView::ChangeCurRegexp(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), CCaret::DrawCaretPosInfo(), CViewSelect::DrawSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditView::GetDrawSwitch(), CRangeBase< PointType >::GetFrom(), CEditView::GetHwnd(), CLayoutMgr::GetLineStr(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetSizeOfChar(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CommonSetting_Search::m_bNOTIFYNOTFOUND, CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditView::m_CurRegexp, CCaret::m_nCaretPosX_Prev, m_pCommanderView, CEditView::m_sCurSearchOption, CommonSetting::m_sSearch, CViewSelect::m_sSelectBgn, CEditView::m_szCurSrchKey, CCaret::MoveCursor(), NULL, PointCompare(), SEARCH_FORWARD, CLayoutMgr::SearchWord(), CEditView::SendStatusMessage(), CRangeBase< PointType >::Set(), CCaret::SetCaretLayoutPos(), CRangeBase< PointType >::SetFrom(), CViewSelect::SetSelectArea(), CRangeBase< PointType >::SetTo(), CCaret::ShowEditCaret(), と TRUE.

参照元 Command_REPLACE(), Command_REPLACE_ALL(), と HandleCommand().

void CViewCommander::Command_SEARCH_PREV | ( | bool | bRedraw,
 |  | HWND | hwndParent
 | ) |  |

CViewCommander.cpp の 2885 行で定義されています。

参照先 CEditView::AddCurrentLineToHistory(), CEditView::ChangeCurRegexp(), CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), CViewSelect::DrawSelectArea(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CRangeBase< PointType >::GetFrom(), CEditView::GetHwnd(), CLayoutMgr::GetLineCount(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringLength(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CommonSetting_Search::m_bNOTIFYNOTFOUND, CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, CDocLine::m_cLine, DLLSHAREDATA::m_Common, CEditView::m_CurRegexp, CCaret::m_nCaretPosX_Prev, CLayout::m_pCDocLine, m_pCommanderView, CEditView::m_sCurSearchOption, CommonSetting::m_sSearch, CViewSelect::m_sSelectBgn, CEditView::m_szCurSrchKey, MAXLINEKETAS, CCaret::MoveCursor(), NULL, SEARCH_BACKWARD, CLayoutMgr::SearchLineByLayoutY(), CLayoutMgr::SearchWord(), CEditView::SendStatusMessage(), CRangeBase< PointType >::Set(), CViewSelect::SetSelectArea(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_REPLACE_DIALOG ( void )

CViewCommander.cpp の 6066 行で定義されています。

参照先 ActivateFrameWindow(), BOOL, ApiWrap::DlgItem_SetText(), CDlgReplace::DoModeless(), FALSE, CEditView::GetCurrentTextForSearchDlg(), GetEditWindow(), CDialog::GetHwnd(), CEditView::GetHwnd(), CEditWnd::GetHwnd(), GetInstance(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringPtr(), CNativeW::GetStringT(), IDC_COMBO_TEXT, CRangeBase< PointType >::IsLineOne(), CViewSelect::IsTextSelected(), CEditWnd::m_cDlgReplace, CDlgReplace::m_nPaste, CDlgReplace::m_nReplaceTarget, m_pCommanderView, CDlgReplace::m_szText2, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_REPLACE ( HWND hwndParent )

置換実行

日付:
2002/04/08 親ウィンドウを指定するように変更。

2003.05.17 かろと 長さ０マッチの無限置換回避など

CViewCommander.cpp の 6108 行で定義されています。

参照先 SSearchOption::bLoHiCase, SSearchOption::bRegularExp, CRangeBase< PointType >::Clear(), Command_INSTEXT(), Command_LEFT(), Command_PASTE(), Command_SEARCH_NEXT(), CBregexp::Compile(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), GetDocument(), GetEditWindow(), CRangeBase< PointType >::GetFrom(), CDialog::GetHwnd(), CEditView::GetHwnd(), CDocLine::GetLength(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), CBregexp::GetMatchLen(), CDocLine::GetPtr(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetSizeOfChar(), CBregexp::GetString(), CBregexp::GetStringLen(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), GSTR_APPNAME_A, IDC_CHK_PASTE, IDC_COMBO_TEXT2, InitRegexp(), CViewSelect::IsBoxSelecting(), CViewSelect::IsTextSelected(), CViewCalc::LineColmnToIndex(), CLayoutMgr::LogicToLayout(), LTEXT, CEditWnd::m_cDlgReplace, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CDlgReplace::m_nPaste, CDlgReplace::m_nReplaceTarget, CLayout::m_pCDocLine, m_pCommanderView, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CCaret::MoveCursor(), MYMESSAGEBOX_A, NULL, CEditView::Redraw(), CBregexp::Replace(), CLayoutMgr::SearchLineByLayoutY(), CCaret::SetCaretLayoutPos(), CNativeW::SetString(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_REPLACE_ALL ( )

すべて置換実行

日付:
2003.05.22 かろと 無限マッチ対策．行頭・行末処理など見直し

2006.03.31 かろと 行置換機能追加

2007.01.16 ryoji 行置換機能を全置換のオプションに変更

2009.09.20 genta 左下〜右上で矩形選択された領域の置換が行われない

CViewCommander.cpp の 6270 行で定義されています。

参照先 ActivateFrameWindow(), CEditView::AdjustScrollBars(), BlockingHook(), SSearchOption::bLoHiCase, BOOL, SSearchOption::bRegularExp, CRangeBase< PointType >::Clear(), CDialog::CloseDialog(), Command_GOFILETOP(), Command_INSTEXT(), Command_PASTEBOX(), Command_SEARCH_NEXT(), CBregexp::Compile(), CViewSelect::DisableSelectArea(), CDlgCancel::DoModeless(), FALSE, GetCaret(), CCaret::GetCaretLayoutPos(), CCaret::GetCaretLogicPos(), GetDocument(), GetEditWindow(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetFromPointer(), CEditView::GetHwnd(), GetInstance(), CEOL::GetLen(), CDocLine::GetLength(), CDocLine::GetLengthWithoutEOL(), CDocLineMgr::GetLineCount(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineInfo(), CLayout::GetLogicLineNo(), CLayout::GetLogicOffset(), GetMainWindow(), CBregexp::GetMatchLen(), CDocLine::GetPtr(), GetSelect(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetSizeOfChar(), CBregexp::GetString(), CBregexp::GetStringLen(), CNativeW::GetStringPtr(), CRangeBase< PointType >::GetTo(), CRangeBase< PointType >::GetToPointer(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), GSTR_APPNAME_A, IDC_CHK_PASTE, IDC_COMBO_TEXT2, IDC_PROGRESS_REPLACE, IDC_STATIC_KENSUU, IDD_REPLACERUNNING, InitRegexp(), CViewSelect::IsBoxSelecting(), CDlgCancel::IsCanceled(), CViewSelect::IsMouseSelecting(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CViewCalc::LineColmnToIndex(), CLayoutMgr::LogicToLayout(), CommonSetting_Edit::m_bAddCRLFWhenCopy, CommonSetting_Edit::m_bAutoColmnPaste, CDlgCancel::m_bCANCEL, CDlgReplace::m_bCanceled, CommonSetting_Search::m_bConsecutiveAll, CommonSetting_View::m_bFontIs_FIXED_PITCH, CommonSetting_Search::m_bSelectedArea, CEditWnd::m_cDlgReplace, CEditDoc::m_cDocLineMgr, CDocLine::m_cEol, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CDlgReplace::m_nPaste, CDlgReplace::m_nReplaceCnt, CDlgReplace::m_nReplaceTarget, CLayout::m_pCDocLine, m_pCommanderView, CommonSetting::m_sEdit, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CommonSetting::m_sView, CCaret::MoveCursor(), CEditView::MyGetClipboardData(), MYMESSAGEBOX_A, CBregexp::optCaseSensitive, CBregexp::optGlobal, CBregexp::optNothing, PostMessageAny, CEditView::Redraw(), CBregexp::Replace(), CLayoutMgr::SearchLineByLayoutY(), SendMessageAny, CViewSelect::SetBoxSelect(), CCaret::SetCaretLayoutPos(), CCaret::SetCaretLogicPos(), CEditView::SetDrawSwitch(), CNativeW::SetString(), CRangeBase< PointType >::SetToY(), t_swap(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_SEARCH_CLEARMARK ( void )

CViewCommander.cpp の 7890 行で定義されています。

参照先 SSearchOption::bRegularExp, SSearchOption::bWordOnly, CEditView::ChangeCurRegexp(), CEditView::GetCurrentTextForSearch(), CEditView::GetSelectionInfo(), GetShareData(), CNativeW::GetStringPtr(), CViewSelect::IsTextSelected(), DLLSHAREDATA::m_aSearchKeys, CEditView::m_bCurSrchKeyMark, DLLSHAREDATA::m_Common, m_pCommanderView, CommonSetting::m_sSearch, CommonSetting_Search::m_sSearchOption, CEditView::m_szCurSrchKey, MAX_SEARCHKEY, と CEditView::RedrawAll().

参照元 HandleCommand().

void CViewCommander::Command_JUMP_SRCHSTARTPOS ( void )

検索開始位置へ戻る

作者:
ai
日付:
02/06/26

CViewCommander_New.cpp の 1126 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::BothNatural(), GetDocument(), CEditView::GetSelectionInfo(), CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, m_pCommanderView, CEditView::m_ptSrchStartPos_PHY, と CEditView::MoveCursorSelecting().

参照元 HandleCommand().

void CViewCommander::Command_GREP_DIALOG ( void )

GREPダイアログの表示

日付:
2005.01.10 genta CEditView_Commandより移動
作者:
Yazaki

CViewCommander_Grep.cpp の 15 行で定義されています。

参照先 CDlgGrep::DoModal(), F_GREP, FALSE, CEditView::GetCurrentTextForSearchDlg(), GetDocument(), GetEditWindow(), GetInstance(), GetShareData(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), HandleCommand(), CEditWnd::m_cDlgGrep, CEditView::m_hWnd, m_pCommanderView, CNativeW::SetString(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_GREP ( void )

GREP実行

日付:
2005.01.10 genta CEditView_Commandより移動

CViewCommander_Grep.cpp の 42 行で定義されています。

参照先 auto_sprintf(), CODE_DEFAULT, CEditView::DoGrep(), FALSE, GetDocument(), GetEditWindow(), GetInstance(), GetShareData(), CNativeA::GetStringPtr(), CNativeW::GetStringPtr(), GSTR_APPNAME, CEditWnd::m_cDlgGrep, CEditView::m_hWnd, CDlgGrep::m_nGrepCharSet, m_pCommanderView, MAX_EDITWINDOWS, CControlTray::OpenNewEditor(), CNativeA::Replace(), CNativeW::Replace(), CNativeA::SetString(), と CNativeW::SetString().

参照元 HandleCommand().

void CViewCommander::Command_JUMP_DIALOG ( void )

指定行へジャンプダイアログの表示 2002.2.2 YAZAKI

CViewCommander.cpp の 3477 行で定義されています。

参照先 GetDocument(), GetEditWindow(), CEditView::GetHwnd(), GetInstance(), と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_JUMP ( void )

CViewCommander.cpp の 3489 行で定義されています。

参照先 _CARETMARGINRATE, CEditView::AddCurrentLineToHistory(), WCODE::CR, FALSE, GetDocument(), GetEditWindow(), CDocLineMgr::GetLineCount(), CLayoutMgr::GetLineCount(), CDocLineMgr::GetLineStr(), CEditView::GetSelectionInfo(), GetShareData(), CLayoutMgr::LayoutToLogic(), WCODE::LF, CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditWnd::m_cDlgJump, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, CDlgJump::m_nLineNum, CDlgJump::m_nPLSQL_E1, CDlgJump::m_nPLSQL_E2, m_pCommanderView, CEditView::MoveCursorSelecting(), WCODE::TAB, と TRUE.

参照元 HandleCommand().

BOOL CViewCommander::Command_FUNCLIST | ( | int | nAction,
 |  | int | nOutlineType = OUTLINE_DEFAULT
 | ) |  |

アウトライン解析

2002/3/13 YAZAKI nOutlineTypeとnListTypeを統合。

CViewCommander.cpp の 4121 行で定義されています。

参照先 _tcscpy(), ActivateFrameWindow(), CheckEXT(), CDlgFuncList::CheckListType(), CDlgFuncList::DoModeless(), CFuncInfoArr::Empty(), GetCaret(), CCaret::GetCaretLayoutPos(), GetDocument(), CEditDoc::GetDocumentAttribute(), GetEditWindow(), CEditView::GetHwnd(), CDialog::GetHwnd(), CEditWnd::GetHwnd(), GetInstance(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), Types::m_bLineNumIsCRLF, CEditWnd::m_cDlgFuncList, Types::m_nDefaultOutline, m_pCommanderView, CFuncInfoArr::m_szFilePath, 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(), NULL, OUTLINE_ASM, OUTLINE_BOOKMARK, OUTLINE_C, OUTLINE_COBOL, OUTLINE_CPP, OUTLINE_DEFAULT, OUTLINE_FILE, OUTLINE_HTML, OUTLINE_JAVA, OUTLINE_PERL, OUTLINE_PLSQL, OUTLINE_PYTHON, OUTLINE_TEX, OUTLINE_TEXT, OUTLINE_VB, OUTLINE_WZTXT, CDlgFuncList::Redraw(), SendMessageAny, SHOW_NORMAL, SHOW_RELOAD, SHOW_TOGGLE, と TRUE.

参照元 HandleCommand().

bool CViewCommander::Command_TAGJUMP ( bool bClose = false )

タグジャンプ

引数:
bClose [in] true:元ウィンドウを閉じる
日付:
2003.04.03 genta 元ウィンドウを閉じるかどうかの引数を追加

2004.05.13 Moca 行桁位置の指定が無い場合は、行桁を移動しない

CViewCommander.cpp の 5056 行で定義されています。

参照先 _countof, Command_TagJumpByTagsFile(), GetCaret(), GetDocument(), GetLineColm(), CDocLineMgr::GetLineStr(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), IsFilePath(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_pCommanderView, NULL, CEditView::SendStatusMessage(), CEditView::TagJumpSub(), と to_tchar.

参照元 HandleCommand(), と CEditView::OnLBUTTONDBLCLK().

void CViewCommander::Command_TAGJUMPBACK ( void )

CViewCommander.cpp の 5173 行で定義されています。

参照先 ActivateFrameWindow(), CShareData::getInstance(), GetShareData(), TagJump::hwndReferer, CShareData::IsEditWnd(), m_pCommanderView, memcpy_raw(), MYWM_SETCARETPOS, TagJump::point, SendMessageAny, と CEditView::SendStatusMessage().

参照元 HandleCommand().

bool CViewCommander::Command_TagJumpByTagsFile ( void )

CViewCommander.cpp の 5203 行で定義されています。

参照先 _countof, _MAX_PATH, _tcscpy(), CDlgTagJumpList::AddParam(), auto_sprintf(), CalcDirectoryDepth(), CDlgTagJumpList::DoModal(), CEditView::GetCurrentTextForSearch(), GetDocument(), GetFileName(), CEditView::GetHwnd(), GetInstance(), CDlgTagJumpList::GetSelectedParam(), CNativeW::GetStringLength(), CNativeW::GetStringPtr(), CEditDoc::IsFilePathAvailable(), m_pCommanderView, CDlgTagJumpList::SetFileName(), TAG_FILENAME, TAG_FORMAT, CEditView::TagJumpSub(), と to_wchar().

参照元 Command_TAGJUMP(), と HandleCommand().

bool CViewCommander::Command_TagsMake ( void )

CViewCommander.cpp の 5352 行で定義されています。

参照先 _countof, _MAX_PATH, _tcscpy(), auto_sprintf(), BlockingHook(), BOOL, CDialog::CloseDialog(), CTAGS_COMMAND, CDlgTagsMake::DoModal(), CDlgCancel::DoModeless(), FALSE, GetDocument(), GetExedir(), GetFileName(), CDialog::GetHwnd(), CEditView::GetHwnd(), GetInstance(), GSTR_APPNAME, GSTR_APPNAME_A, IDC_STATIC_CMD, IDD_EXECRUNNING, InfoMessage, CDlgCancel::IsCanceled(), COsVersionInfo::IsWin32NT(), CEditView::m_hwndParent, CDlgTagsMake::m_nTagsOpt, m_pCommanderView, CDlgTagsMake::m_szPath, CDlgTagsMake::m_szTagsCmdLine, MYMESSAGEBOX, MYMESSAGEBOX_A, NULL, SplitPath_FolderAndFile(), と TRUE.

参照元 HandleCommand().

bool CViewCommander::Command_TagJumpByTagsFileKeyword ( const wchar_t * keyword )

キーワードを指定してタグジャンプ

作者:
MIK
日付:
2005.03.31 新規作成

CViewCommander.cpp の 5575 行で定義されています。

参照先 _tcscpy(), auto_sprintf(), CDlgTagJumpList::DoModal(), GetDocument(), GetFileName(), CEditView::GetHwnd(), GetInstance(), CDlgTagJumpList::GetSelectedParam(), m_pCommanderView, CDlgTagJumpList::SetFileName(), CDlgTagJumpList::SetKeyword(), と CEditView::TagJumpSub().

参照元 HandleCommand().

void CViewCommander::Command_COMPARE ( void )

CViewCommander.cpp の 7311 行で定義されています。

参照先 _MAX_PATH, ActivateFrameWindow(), BOOL, CDlgCompare::DoModal(), FALSE, GetCaret(), GetDocument(), CEditDoc::GetFilePath(), CEditView::GetHwnd(), GetInstance(), CDocLineMgr::GetLineStr(), GetMainWindow(), GetMonitorWorkRect(), GetShareData(), DLLSHAREDATA::GetWorkBuffer(), DLLSHAREDATA::GetWorkBufferCount(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), GSTR_APPNAME, GSTR_APPNAME_A, CEditDoc::IsModified(), CLayoutMgr::LayoutToLogic(), CommonSetting_Compare::m_bCompareAndTileHorz, CDlgCompare::m_bCompareAndTileHorz, CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, m_pCommanderView, CommonSetting::m_sCompare, memcpy_raw(), MYMESSAGEBOX, MYMESSAGEBOX_A, MYWM_GETCARETPOS, MYWM_GETLINEDATA, MYWM_SETCARETPOS, NULL, PostMessageAny, SendMessageAny, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_Diff_Dialog ( void )

差分表示

覚え書き:
HandleCommandからの呼び出し対応(ダイアログあり版)
作者:
MIK
日付:
2002/05/25

2002/11/09 編集中ファイルを許可

2005/10/29 maru 一時ファイル作成処理をm_pCommanderView->MakeDiffTmpFileへ移動

CViewCommander_Diff.cpp の 49 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), CDlgDiff::DoModal(), FALSE, GetDocument(), CEditDoc::GetFilePath(), GetInstance(), CEditDoc::IsModified(), CDlgDiff::m_bIsModifiedDst, CEditView::m_hWnd, CDlgDiff::m_hWnd_Dst, CDlgDiff::m_nDiffFlgOpt, m_pCommanderView, CDlgDiff::m_szFile2, CEditView::MakeDiffTmpFile(), NULL, と CEditView::ViewDiffInfo().

参照元 HandleCommand().

void CViewCommander::Command_Diff | ( | const WCHAR * | _szTmpFile2,
 |  | int | nFlgOpt
 | ) |  |

差分表示

覚え書き:
HandleCommandからの呼び出し対応(ダイアログなし版)
作者:
maru
日付:
2005/10/28 これまでのCommand_Diffはm_pCommanderView->ViewDiffInfoに名称変更

CViewCommander_Diff.cpp の 13 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), GetDocument(), CEditDoc::GetFilePath(), GSTR_APPNAME, CEditDoc::IsModified(), CEditView::m_hWnd, m_pCommanderView, CEditView::MakeDiffTmpFile(), MYMESSAGEBOX, NULL, to_tchar, と CEditView::ViewDiffInfo().

参照元 HandleCommand().

void CViewCommander::Command_Diff_Next ( void )

次の差分を探し，見つかったら移動する

CViewCommander_Diff.cpp の 92 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), BOOL, CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), GetDocument(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, m_pCommanderView, CCaret::MoveCursor(), SEARCH_FORWARD, CEditView::SendStatusMessage(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_Diff_Prev ( void )

前の差分を探し，見つかったら移動する

CViewCommander_Diff.cpp の 146 行で定義されています。

参照先 CViewSelect::BeginSelectArea(), BOOL, CViewSelect::ChangeSelectAreaByCurrentCursor(), CViewSelect::DisableSelectArea(), FALSE, GetCaret(), GetDocument(), CLayoutMgr::GetLineCount(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CViewSelect::IsTextSelected(), CLayoutMgr::LogicToLayout(), CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, m_pCommanderView, CCaret::MoveCursor(), SEARCH_BACKWARD, CEditView::SendStatusMessage(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_Diff_Reset ( void )

差分表示の全解除

作者:
MIK
日付:
2002/05/26

CViewCommander_Diff.cpp の 199 行で定義されています。

参照先 GetDocument(), GetEditWindow(), CEditDoc::m_cDocLineMgr, CEditWnd::m_pcEditViewArr, m_pCommanderView, CEditView::Redraw(), と CDocLineMgr::ResetAllDiffMark().

参照元 HandleCommand(), と CEditView::ViewDiffInfo().

void CViewCommander::Command_BRACKETPAIR ( void )

CViewCommander.cpp の 8051 行で定義されています。

参照先 GetCaret(), CEditView::GetSelectionInfo(), CViewSelect::m_bSelectingLock, m_pCommanderView, CEditView::MoveCursorSelecting(), と CEditView::SearchBracket().

参照元 HandleCommand().

void CViewCommander::Command_BOOKMARK_SET ( void )

ブックマークの設定・解除を行う(トグル動作)

CViewCommander_New.cpp の 576 行で定義されています。

参照先 GetCaret(), GetDocument(), GetEditWindow(), CRangeBase< PointType >::GetFrom(), CDocLineMgr::GetLineInfo(), CEditView::GetSelectionInfo(), CRangeBase< PointType >::GetTo(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CDocLine::IsBookMarked(), CViewSelect::IsTextSelected(), CLayoutMgr::LayoutToLogic(), CEditDoc::m_cDocLineMgr, CEditDoc::m_cLayoutMgr, m_pCommanderView, CViewSelect::m_sSelect, NULL, CDocLine::SetBookMark(), と CEditWnd::Views_Redraw().

参照元 HandleCommand().

void CViewCommander::Command_BOOKMARK_NEXT ( void )

次のブックマークを探し，見つかったら移動する

CViewCommander_New.cpp の 607 行で定義されています。

参照先 BOOL, FALSE, GetCaret(), GetDocument(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CLayoutMgr::LogicToLayout(), CommonSetting_Search::m_bSearchAll, CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditView::m_hWnd, m_pCommanderView, CommonSetting::m_sSearch, CEditView::MoveCursorSelecting(), SEARCH_FORWARD, CEditView::SendStatusMessage(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BOOKMARK_PREV ( void )

前のブックマークを探し，見つかったら移動する．

CViewCommander_New.cpp の 650 行で定義されています。

参照先 BOOL, FALSE, GetCaret(), GetDocument(), CLayoutMgr::GetLineCount(), CEditView::GetSelectionInfo(), GetShareData(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), InfoMessage, CLayoutMgr::LogicToLayout(), CommonSetting_Search::m_bSearchAll, CViewSelect::m_bSelectingLock, CEditDoc::m_cLayoutMgr, DLLSHAREDATA::m_Common, CEditView::m_hWnd, m_pCommanderView, CommonSetting::m_sSearch, CEditView::MoveCursorSelecting(), SEARCH_BACKWARD, CEditView::SendStatusMessage(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BOOKMARK_RESET ( void )

ブックマークをクリアする

CViewCommander_New.cpp の 693 行で定義されています。

参照先 GetDocument(), GetEditWindow(), CEditDoc::m_cDocLineMgr, CDocLineMgr::ResetAllBookMark(), と CEditWnd::Views_Redraw().

参照元 HandleCommand().

void CViewCommander::Command_BOOKMARK_PATTERN ( void )

CViewCommander_New.cpp の 703 行で定義されています。

参照先 CEditView::ChangeCurRegexp(), GetDocument(), GetEditWindow(), GetShareData(), CEditDoc::m_cDocLineMgr, CEditView::m_CurRegexp, m_pCommanderView, CDocLineMgr::MarkSearchWord(), と CEditWnd::Views_Redraw().

参照元 HandleCommand().

void CViewCommander::Command_CHGMOD_INS ( void )

挿入／上書きモード切り替え

日付:
2005.10.02 genta InsMode関数化

CViewCommander.cpp の 2832 行で定義されています。

参照先 CCaret::DrawCaretPosInfo(), GetCaret(), CEditView::IsInsMode(), m_pCommanderView, CEditView::SetInsMode(), と CCaret::ShowEditCaret().

参照元 HandleCommand().

void CViewCommander::Command_CHGMOD_EOL ( enumEOLType e )

入力する改行コードを設定

作者:
moca
日付:
2003.06.23 新規作成

CViewCommander_New.cpp の 1168 行で定義されています。

参照先 CCaret::DrawCaretPosInfo(), EOL_CODEMAX, EOL_NONE, GetCaret(), GetDocument(), と CEditDoc::SetNewLineCode().

参照元 HandleCommand().

void CViewCommander::Command_CANCEL_MODE ( void )

CViewCommander.cpp の 3262 行で定義されています。

参照先 CViewSelect::DisableSelectArea(), FALSE, CEditView::GetSelectionInfo(), CViewSelect::IsTextSelected(), CViewSelect::m_bSelectingLock, m_pCommanderView, と TRUE.

参照元 Command_REDO(), Command_UNDO(), と HandleCommand().

void CViewCommander::Command_SHOWTOOLBAR ( void )

ツールバーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutToolBar(), CEditWnd::EndLayoutBars() で行うように変更

CViewCommander.cpp の 7483 行で定義されています。

参照先 CEditWnd::EndLayoutBars(), FALSE, GetDocument(), CEditWnd::GetHwnd(), CShareData::getInstance(), GetShareData(), CMainToolBar::GetToolbarHwnd(), CEditWnd::LayoutToolBar(), CommonSetting_Window::m_bDispTOOLBAR, DLLSHAREDATA::m_Common, CEditWnd::m_cToolbar, CEditDoc::m_pcEditWnd, CommonSetting::m_sWindow, MYBCN_TOOLBAR, MYWM_BAR_CHANGE_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_SHOWFUNCKEY ( void )

ファンクションキーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutFuncKey(), CEditWnd::EndLayoutBars() で行うように変更

CViewCommander.cpp の 7531 行で定義されています。

参照先 CEditWnd::EndLayoutBars(), FALSE, GetDocument(), CEditWnd::GetHwnd(), CWnd::GetHwnd(), CShareData::getInstance(), GetShareData(), CEditWnd::LayoutFuncKey(), CommonSetting_Window::m_bDispFUNCKEYWND, CEditWnd::m_CFuncKeyWnd, DLLSHAREDATA::m_Common, CEditDoc::m_pcEditWnd, CommonSetting::m_sWindow, MYBCN_FUNCKEY, MYWM_BAR_CHANGE_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_SHOWTAB ( void )

タブ(ウインドウ)の表示/非表示

作者:
MIK
日付:
2003.06.10 新規作成

2006.12.19 ryoji 表示切替は CEditWnd::LayoutTabBar(), CEditWnd::EndLayoutBars() で行うように変更

2007.06.20 ryoji グループIDリセット

CViewCommander.cpp の 7556 行で定義されています。

参照先 CEditWnd::EndLayoutBars(), FALSE, GetDocument(), CEditWnd::GetHwnd(), CWnd::GetHwnd(), CShareData::getInstance(), GetShareData(), GetWindowLongPtr, CEditWnd::LayoutTabBar(), CommonSetting_TabBar::m_bDispTabWnd, DLLSHAREDATA::m_Common, CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, CommonSetting::m_sTabBar, MYBCN_TAB, MYWM_BAR_CHANGE_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), CShareData::ResetGroupId(), TRUE, と CEditWnd::WindowTopMost().

参照元 HandleCommand().

void CViewCommander::Command_SHOWSTATUSBAR ( void )

ステータスバーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutStatusBar(), CEditWnd::EndLayoutBars() で行うように変更

CViewCommander.cpp の 7507 行で定義されています。

参照先 CEditWnd::EndLayoutBars(), FALSE, GetDocument(), CEditWnd::GetHwnd(), CShareData::getInstance(), GetShareData(), CMainStatusBar::GetStatusHwnd(), CEditWnd::LayoutStatusBar(), CommonSetting_Window::m_bDispSTATUSBAR, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, CEditDoc::m_pcEditWnd, CommonSetting::m_sWindow, MYBCN_STATUSBAR, MYWM_BAR_CHANGE_NOTIFY, NULL, CShareData::PostMessageToAllEditors(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_TYPE_LIST ( void )

CViewCommander.cpp の 3750 行で定義されています。

参照先 CDlgTypeList::DoModal(), GetDocument(), CEditDoc::GetDocumentType(), CEditView::GetHwnd(), GetInstance(), CEditDoc::LockDocumentType(), m_pCommanderView, CEditDoc::OnChangeSetting(), CEditDoc::OpenPropertySheetTypes(), PROP_TEMPCHANGE_FLAG, と CEditDoc::SetDocumentType().

参照元 HandleCommand().

void CViewCommander::Command_OPTION_TYPE ( void )

CViewCommander.cpp の 3739 行で定義されています。

参照先 GetDocument(), と CEditDoc::OpenPropertySheetTypes().

参照元 HandleCommand().

void CViewCommander::Command_OPTION ( void )

CViewCommander.cpp の 3727 行で定義されています。

参照先 GetDocument(), と CEditDoc::OpenPropertySheet().

参照元 HandleCommand().

void CViewCommander::Command_FONT ( void )

CViewCommander.cpp の 3686 行で定義されています。

参照先 FALSE, GetDocument(), CShareData::getInstance(), GetMainWindow(), GetShareData(), CommonSetting_View::m_bFontIs_FIXED_PITCH, DLLSHAREDATA::m_Common, CommonSetting_View::m_lf, CommonSetting::m_sView, MYWM_CHANGESETTING, CShareData::PostMessageToAllEditors(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_WRAPWINDOWWIDTH ( void )

現在のウィンドウ幅で折り返し

日付:
2002.01.14 YAZAKI 現在のウィンドウ幅で折り返されているときは、最大値にするように

2002.04.08 YAZAKI ときどきウィンドウ幅で折り返されないことがあるバグ修正。

2005.08.14 genta ここでの設定は共通設定に反映しない．

2005.10.22 aroka 現在のウィンドウ幅→最大値→文書タイプの初期値 をトグルにする

覚え書き:
変更する順序を変更したときはCEditWndInitMenu()も変更すること
参照:
CEditWnd::InitMenu()

CViewCommander.cpp の 7864 行で定義されています。

参照先 CEditWnd::ChangeLayoutParam(), GetDocument(), GetEditWindow(), CEditView::GetTextArea(), CEditView::GetWrapMode(), m_pCommanderView, CEditView::RedrawAll(), CTextArea::SetViewLeftCol(), と CEditView::TGWRAP_NONE.

参照元 HandleCommand().

void CViewCommander::Command_Favorite ( void )

履歴の管理(ダイアログ)

作者:
MIK
日付:
2003/04/07

CViewCommander_New.cpp の 1150 行で定義されています。

参照先 CDlgFavorite::DoModal(), FALSE, GetDocument(), GetInstance(), CEditView::m_hWnd, と m_pCommanderView.

参照元 HandleCommand().

void CViewCommander::Command_SET_QUOTESTRING ( const wchar_t * quotestr )

引用符の設定

日付:
Jan. 29, 2005 genta 新規作成

CViewCommander_New.cpp の 1188 行で定義されています。

参照先 _countof, GetShareData(), DLLSHAREDATA::m_Common, CommonSetting::m_sFormat, CommonSetting_Format::m_szInyouKigou, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_RECKEYMACRO ( void )

CViewCommander.cpp の 7663 行で定義されています。

参照先 _tcscpy(), CSMacroMgr::Clear(), CCaret::DrawCaretPosInfo(), FALSE, GetCaret(), GetDocument(), CEditView::GetHwnd(), GetInstance(), CShareData::getInstance(), CShareData::GetMacroFilename(), GetMainWindow(), GetShareData(), GSTR_APPNAME_A, DLLSHAREDATA::m_bRecordingKeyMacro, DLLSHAREDATA::m_hwndRecordingKeyMacro, m_pCommanderView, CEditDoc::m_pcSMacroMgr, DLLSHAREDATA::m_szKeyMacroFileName, MYMESSAGEBOX_A, NULL, CSMacroMgr::Save(), CEditView::SetParentCaption(), STAND_KEYMACRO, と TRUE.

参照元 Command_EXECKEYMACRO(), と HandleCommand().

void CViewCommander::Command_SAVEKEYMACRO ( void )

CViewCommander.cpp の 7715 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, _tcscpy(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetSaveFileName(), FALSE, GetDocument(), CEditView::GetHwnd(), GetInidirOrExedir(), GetInstance(), GetShareData(), GSTR_APPNAME_A, DLLSHAREDATA::m_bRecordingKeyMacro, DLLSHAREDATA::m_hwndRecordingKeyMacro, m_pCommanderView, CEditDoc::m_pcSMacroMgr, MYMESSAGEBOX_A, NULL, CSMacroMgr::Save(), と STAND_KEYMACRO.

参照元 HandleCommand().

void CViewCommander::Command_LOADKEYMACRO ( void )

キーマクロの読み込み

日付:
2005/02/20 novice デフォルトの拡張子変更

CViewCommander.cpp の 7815 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, _tcscpy(), CDlgOpenFile::Create(), CDlgOpenFile::DoModal_GetOpenFileName(), FALSE, CEditView::GetHwnd(), GetInidirOrExedir(), GetInstance(), GetShareData(), DLLSHAREDATA::m_bRecordingKeyMacro, DLLSHAREDATA::m_hwndRecordingKeyMacro, m_pCommanderView, DLLSHAREDATA::m_szMACROFOLDER, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_EXECKEYMACRO ( void )

CViewCommander.cpp の 7768 行で定義されています。

参照先 BOOL, Command_RECKEYMACRO(), CSMacroMgr::Exec(), FALSE, GetDocument(), CEditView::GetHwnd(), GetInstance(), GetShareData(), GSTR_APPNAME_A, CSMacroMgr::Load(), CEditView::m_bExecutingKeyMacro, DLLSHAREDATA::m_bRecordingKeyMacro, DLLSHAREDATA::m_hwndRecordingKeyMacro, m_pCommanderView, CEditDoc::m_pcSMacroMgr, DLLSHAREDATA::m_szKeyMacroFileName, MYMESSAGEBOX_A, NULL, CEditView::RedrawAll(), と STAND_KEYMACRO.

参照元 HandleCommand().

void CViewCommander::Command_EXECCOMMAND_DIALOG ( void )

外部コマンド実行ダイアログ表示

日付:
2002.02.02 YAZAKI.

CViewCommander.cpp の 8008 行で定義されています。

参照先 CEditView::AddToCmdArr(), CDlgExec::DoModal(), F_EXECCOMMAND, CEditView::GetHwnd(), GetInstance(), HandleCommand(), m_pCommanderView, CDlgExec::m_szCommand, to_wchar(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_EXECCOMMAND | ( | LPCWSTR | cmd,
 |  | const int | nFlgOpt
 | ) |  |

CViewCommander.cpp の 8029 行で定義されています。

参照先 CEditView::ExecCmd(), CEditDoc::ExpandParameter(), GetDocument(), m_pCommanderView, と to_tchar.

参照元 HandleCommand().

void CViewCommander::Command_MENU_RBUTTON ( void )

CViewCommander.cpp の 4539 行で定義されています。

参照先 auto_memcpy(), WCODE::CR, CEditView::CreatePopUpMenu_R(), FALSE, GetDocument(), GetMainWindow(), GetShareData(), CNativeA::GetStringPtr(), IDM_COPYDICINFO, IDM_JUMPDICT, WCODE::LF, CTipWnd::m_cInfo, CEditView::m_cTipWnd, CTipWnd::m_nSearchDict, CTipWnd::m_nSearchLine, m_pCommanderView, CEditView::MySetClipboardData(), NULL, PostMessageCmd, と CEditView::TagJumpSub().

参照元 HandleCommand().

int CViewCommander::Command_CUSTMENU ( int nMenuIdx )

CViewCommander.cpp の 7173 行で定義されています。

参照先 _tcscpy(), auto_sprintf(), CFuncLookup::Funccode2Name(), GetDocument(), GetMainWindow(), CEditWnd::GetMenuDrawer(), GetShareData(), IsFuncEnable(), LTEXT, CEditDoc::m_cFuncLookup, DLLSHAREDATA::m_Common, CommonSetting_CustomMenu::m_nCustMenuItemFuncArr, CommonSetting_CustomMenu::m_nCustMenuItemNumArr, CEditDoc::m_pcEditWnd, CommonSetting::m_sCustomMenu, MAX_CUSTOM_MENU, CMenuDrawer::MyAppendMenu(), NULL, と CMenuDrawer::ResetContents().

参照元 HandleCommand().

void CViewCommander::Command_SPLIT_V ( void )

CViewCommander.cpp の 4221 行で定義されています。

参照先 GetEditWindow(), CEditWnd::m_cSplitterWnd, と CSplitterWnd::VSplitOnOff().

参照元 HandleCommand().

void CViewCommander::Command_SPLIT_H ( void )

CViewCommander.cpp の 4231 行で定義されています。

参照先 GetEditWindow(), CSplitterWnd::HSplitOnOff(), と CEditWnd::m_cSplitterWnd.

参照元 HandleCommand().

void CViewCommander::Command_SPLIT_VH ( void )

CViewCommander.cpp の 4241 行で定義されています。

参照先 GetEditWindow(), CEditWnd::m_cSplitterWnd, と CSplitterWnd::VHSplitOnOff().

参照元 HandleCommand().

void CViewCommander::Command_WINCLOSE ( void )

CViewCommander.cpp の 7138 行で定義されています。

参照先 FALSE, GetMainWindow(), MYWM_CLOSE, と PostMessageAny.

参照元 HandleCommand(), と CEditView::TagJumpSub().

void CViewCommander::Command_FILECLOSEALL ( void )

CViewCommander.cpp の 7127 行で定義されています。

参照先 CControlTray::CloseAllEditor(), FALSE, CShareData::GetGroupId(), CShareData::getInstance(), GetMainWindow(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_BIND_WINDOW ( void )

結合して表示

タブウィンドウの結合、非結合を切り替えるコマンドです。 [共通設定]->[ウィンドウ]->[タブ表示 まとめない]の切り替えと同じです。

作者:
Kazika
日付:
2004.07.14 Kazika 新規作成

2007.06.20 ryoji GetShareData()->m_TabWndWndplの廃止，グループIDリセット

CViewCommander.cpp の 5699 行で定義されています。

参照先 GetDocument(), CEditView::GetHwnd(), CShareData::getInstance(), GetShareData(), GetWindowLongPtr, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_Common, CEditDoc::m_pcEditWnd, m_pCommanderView, CommonSetting::m_sTabBar, MYWM_TAB_WINDOW_NOTIFY, CShareData::PostMessageToAllEditors(), CShareData::ResetGroupId(), TWNT_MODE_DISABLE, TWNT_MODE_ENABLE, と CEditWnd::WindowTopMost().

参照元 HandleCommand().

void CViewCommander::Command_CASCADE ( void )

重ねて表示

日付:
2002.01.08 YAZAKI 「左右に並べて表示」すると、 裏で最大化されているエクスプローラが「元の大きさ」になるバグ修正。

2003.06.12 MIK タブウインドウ時は動作しないように

2004.03.19 crayonzen カレントウィンドウを最後に配置． ウィンドウが多い場合に2周目以降は右にずらして配置．

2004.03.20 genta Z-Orderの上から順に並べていくように．(SetWindowPosを利用)

2007.06.20 ryoji タブモードは解除せずグループ単位で並べる

CViewCommander.cpp の 5738 行で定義されています。

参照先 GetDocument(), CEditView::GetHwnd(), EditNode::GetHwnd(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetOpenedWindowArr(), m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_TILE_V ( void )

CViewCommander.cpp の 5935 行で定義されています。

参照先 GetDocument(), EditNode::GetHwnd(), CEditView::GetHwnd(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetOpenedWindowArr(), CEditDoc::GetOwnerHwnd(), m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_TILE_H ( void )

CViewCommander.cpp の 5879 行で定義されています。

参照先 GetDocument(), EditNode::GetHwnd(), CEditView::GetHwnd(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetOpenedWindowArr(), CEditDoc::GetOwnerHwnd(), m_pCommanderView, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_MAXIMIZE_V ( void )

CViewCommander.cpp の 5991 行で定義されています。

参照先 GetMainWindow(), と GetMonitorWorkRect().

参照元 HandleCommand().

void CViewCommander::Command_MAXIMIZE_H ( void )

CViewCommander.cpp の 6014 行で定義されています。

参照先 GetMainWindow(), と GetMonitorWorkRect().

参照元 HandleCommand().

void CViewCommander::Command_MINIMIZE_ALL ( void )

CViewCommander.cpp の 6038 行で定義されています。

参照先 EditNode::GetHwnd(), GetShareData(), CShareData::IsEditWnd(), DLLSHAREDATA::m_nEditArrNum, と DLLSHAREDATA::m_pEditArr.

参照元 HandleCommand().

void CViewCommander::Command_REDRAW ( void )

CViewCommander.cpp の 6940 行で定義されています。

参照先 m_pCommanderView, と CEditView::RedrawAll().

参照元 HandleCommand().

void CViewCommander::Command_WIN_OUTPUT ( void )

CViewCommander.cpp の 7146 行で定義されています。

参照先 ActivateFrameWindow(), CODE_SJIS, FALSE, CEditView::GetHwnd(), GetShareData(), CShareData::IsEditWnd(), m_pCommanderView, NULL, と CControlTray::OpenNewEditor().

参照元 HandleCommand().

void CViewCommander::Command_TRACEOUT | ( | const wchar_t * | outputstr,
 |  | int | nFlgOpt
 | ) |  |

マクロ用アウトプットウインドウに表示

日付:
2006.04.26 maru 新規作成

CViewCommander_New.cpp の 1217 行で定義されています。

参照先 CEditDoc::ExpandParameter(), GetDocument(), CShareData::getInstance(), NULL, と CShareData::TraceOut().

参照元 HandleCommand().

void CViewCommander::Command_WINTOPMOST ( LPARAM lparam )

常に手前に表示

日付:
2004.09.21 Moca

CViewCommander_New.cpp の 1180 行で定義されています。

参照先 GetDocument(), CEditDoc::m_pcEditWnd, と CEditWnd::WindowTopMost().

参照元 HandleCommand().

void CViewCommander::Command_WINLIST ( int nCommandFrom )

ウィンドウ一覧ポップアップ表示処理（ファイル名のみ）

日付:
2006.03.23 fon 新規作成

2006.05.19 genta コマンド実行要因を表す引数追加

CViewCommander_New.cpp の 1203 行で定義されています。

参照先 GetDocument(), CEditDoc::m_pcEditWnd, と CEditWnd::PopupWinList().

参照元 HandleCommand().

void CViewCommander::Command_GROUPCLOSE ( void )

CViewCommander.cpp の 7117 行で定義されています。

参照先 CControlTray::CloseAllEditor(), CShareData::GetGroupId(), CShareData::getInstance(), GetMainWindow(), GetShareData(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_NEXTGROUP ( void )

CViewCommander.cpp の 8128 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, CTabWnd::NextGroup(), と NULL.

参照元 HandleCommand().

void CViewCommander::Command_PREVGROUP ( void )

CViewCommander.cpp の 8137 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, NULL, と CTabWnd::PrevGroup().

参照元 HandleCommand().

void CViewCommander::Command_TAB_MOVERIGHT ( void )

CViewCommander.cpp の 8146 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, CTabWnd::MoveRight(), と NULL.

参照元 HandleCommand().

void CViewCommander::Command_TAB_MOVELEFT ( void )

CViewCommander.cpp の 8155 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, CTabWnd::MoveLeft(), と NULL.

参照元 HandleCommand().

void CViewCommander::Command_TAB_SEPARATE ( void )

CViewCommander.cpp の 8164 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, NULL, と CTabWnd::Separate().

参照元 HandleCommand().

void CViewCommander::Command_TAB_JOINTNEXT ( void )

CViewCommander.cpp の 8173 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CTabWnd::JoinNext(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_TAB_JOINTPREV ( void )

CViewCommander.cpp の 8182 行で定義されています。

参照先 GetDocument(), CWnd::GetHwnd(), CTabWnd::JoinPrev(), CEditWnd::m_cTabWnd, CEditDoc::m_pcEditWnd, と NULL.

参照元 HandleCommand().

void CViewCommander::Command_ToggleKeySearch ( void )

キャレット位置の単語を辞書検索ON-OFF

日付:
2006.03.24 fon 新規作成

CViewCommander.cpp の 4276 行で定義されています。

参照先 FALSE, GetShareData(), CommonSetting_Search::m_bUseCaretKeyWord, DLLSHAREDATA::m_Common, CommonSetting::m_sSearch, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_HOKAN ( void )

入力補完 Ctrl+Spaceでここに到着。 CEditView::m_bHokan： 現在補完ウィンドウが表示されているかを表すフラグ。 m_Common.m_sHelper.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から移動

CViewCommander_Hokan.cpp の 18 行で定義されています。

参照先 FALSE, GetDocument(), CViewParser::GetLeftWord(), CEditView::GetParser(), GetShareData(), GSTR_APPNAME_A, CommonSetting_Helper::m_bUseHokan, DLLSHAREDATA::m_Common, m_pCommanderView, CommonSetting::m_sHelper, MYMESSAGEBOX_A, NULL, CEditDoc::OpenPropertySheetTypes(), CEditView::ShowHokanMgr(), と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_HELP_CONTENTS ( void )

CViewCommander.cpp の 4252 行で定義されています。

参照先 CEditApp::GetHelpFilePath(), CEditView::GetHwnd(), TSingleInstance< CEditApp >::Instance(), m_pCommanderView, と ShowWinHelpContents().

参照元 HandleCommand().

void CViewCommander::Command_HELP_SEARCH ( void )

CViewCommander.cpp の 4262 行で定義されています。

参照先 CEditApp::GetHelpFilePath(), CEditView::GetHwnd(), TSingleInstance< CEditApp >::Instance(), m_pCommanderView, MyWinHelp(), と ULONG_PTR.

参照元 HandleCommand().

void CViewCommander::Command_MENU_ALLFUNC ( void )

CViewCommander.cpp の 4289 行で定義されています。

参照先 CFuncLookup::Category2Name(), CFuncLookup::GetCategoryCount(), GetDocument(), CEditView::GetHwnd(), CFuncLookup::GetItemCount(), GetMainWindow(), CEditWnd::GetMenuDrawer(), CEditDoc::m_cFuncLookup, CEditDoc::m_pcEditWnd, m_pCommanderView, CMenuDrawer::MyAppendMenu(), NULL, CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), PostMessageCmd, と CMenuDrawer::ResetContents().

参照元 HandleCommand().

void CViewCommander::Command_EXTHELP1 ( void )

CViewCommander.cpp の 4363 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, CEditView::GetCurrentTextForSearch(), GetDocument(), CShareData::GetExtWinHelp(), GetInidirOrExedir(), CShareData::getInstance(), CNativeW::GetStringPtr(), GSTR_APPNAME_A, ID_PAGENUM_HELPER, CEditView::m_hwndParent, m_pCommanderView, MYMESSAGEBOX_A, NULL, CEditDoc::OpenPropertySheet(), と ULONG_PTR.

参照元 HandleCommand().

void CViewCommander::Command_EXTHTMLHELP | ( | const WCHAR * | _helpfile = NULL,
 |  | const WCHAR * | kwd = NULL
 | ) |  |

外部HTMLヘルプ

引数:
helpfile | [in] HTMLヘルプファイル名．NULLのときはタイプ別に設定されたファイル．
kwd | [in] 検索キーワード．NULLのときはカーソル位置or選択されたワード
日付:
2002.07.05 genta 任意のファイル・キーワードの指定ができるよう引数追加

CViewCommander.cpp の 4414 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, _tcscpy(), DBPRINT_A, DWORD_PTR, FALSE, CEditView::GetCurrentTextForSearch(), GetDocument(), CShareData::GetExtHTMLHelp(), GetInidirOrExedir(), CShareData::getInstance(), GetMainWindow(), GetShareData(), CNativeW::GetStringT(), DLLSHAREDATA::GetWorkBuffer(), GSTR_APPNAME_A, ID_PAGENUM_HELPER, DLLSHAREDATA::m_hwndTray, m_pCommanderView, MYMESSAGEBOX_A, MYWM_HTMLHELP, NULL, OpenHtmlHelp(), CEditDoc::OpenPropertySheet(), SendMessageAny, CNativeW::SetString(), to_tchar, と TRUE.

参照元 HandleCommand().

void CViewCommander::Command_ABOUT ( void )

CViewCommander.cpp の 4527 行で定義されています。

参照先 CDlgAbout::DoModal(), CEditView::GetHwnd(), GetInstance(), と m_pCommanderView.

参照元 HandleCommand().

変数

CEditView* CViewCommander::m_pCommanderView [private]

CViewCommander.h の 32 行で定義されています。

参照元 ClearOpeBlk(), Command_1PageDown(), Command_1PageUp(), Command_ABOUT(), Command_ACTIVATE_SQLPLUS(), Command_ADDTAIL(), Command_BASE64DECODE(), Command_BEGIN_BOXSELECT(), Command_BEGIN_SELECT(), Command_BIND_WINDOW(), Command_BOOKMARK_NEXT(), Command_BOOKMARK_PATTERN(), Command_BOOKMARK_PREV(), Command_BOOKMARK_SET(), Command_BRACKETPAIR(), Command_CANCEL_MODE(), Command_CASCADE(), Command_CHGMOD_INS(), 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_COMPARE(), Command_COPY(), Command_COPYFILENAME(), Command_COPYLINES(), Command_COPYLINESASPASSAGE(), Command_COPYLINESWITHLINENUMBER(), Command_COPYPATH(), Command_COPYTAG(), Command_CtrlCode_Dialog(), Command_CURLINECENTER(), Command_CUT(), Command_CUT_LINE(), Command_DELETE(), Command_DELETE_BACK(), Command_DELETE_LINE(), Command_Diff(), Command_Diff_Dialog(), Command_Diff_Next(), Command_Diff_Prev(), Command_Diff_Reset(), Command_DOWN(), Command_DUPLICATELINE(), Command_EXECCOMMAND(), Command_EXECCOMMAND_DIALOG(), Command_EXECKEYMACRO(), Command_EXTHELP1(), Command_EXTHTMLHELP(), Command_Favorite(), Command_FILE_REOPEN(), Command_FILENEW(), Command_FUNCLIST(), Command_GOFILEEND(), Command_GOFILETOP(), Command_GOLINEEND(), Command_GOLINETOP(), Command_GREP(), Command_GREP_DIALOG(), Command_HalfPageDown(), Command_HalfPageUp(), Command_HANKATATOZENKAKUHIRA(), Command_HANKATATOZENKAKUKATA(), Command_HELP_CONTENTS(), Command_HELP_SEARCH(), Command_HOKAN(), Command_IME_CHAR(), Command_INDENT(), Command_INDENT_TAB(), Command_INSFILE(), Command_INSTEXT(), Command_JUMP(), Command_JUMP_DIALOG(), Command_JUMP_SRCHSTARTPOS(), Command_JUMPHIST_NEXT(), Command_JUMPHIST_PREV(), Command_JUMPHIST_SET(), Command_LEFT(), Command_LineCutToEnd(), Command_LineCutToStart(), Command_LineDeleteToEnd(), Command_LineDeleteToStart(), Command_LOADKEYMACRO(), Command_MENU_ALLFUNC(), Command_MENU_RBUTTON(), Command_MERGE(), Command_OPEN_CCPP(), Command_OPEN_HHPP(), Command_PASTE(), Command_PASTEBOX(), Command_PLSQL_COMPILE_ON_SQLPLUS(), Command_PROPERTY_FILE(), Command_PUTFILE(), Command_RECKEYMACRO(), Command_Reconvert(), Command_REDO(), Command_REDRAW(), Command_REPLACE(), Command_REPLACE_ALL(), Command_REPLACE_DIALOG(), Command_RIGHT(), Command_SAVEKEYMACRO(), Command_SEARCH_CLEARMARK(), Command_SEARCH_DIALOG(), Command_SEARCH_NEXT(), Command_SEARCH_PREV(), Command_SELECTALL(), Command_SELECTWORD(), Command_SORT(), Command_SPACETOTAB(), Command_TABTOSPACE(), Command_TAGJUMP(), Command_TAGJUMPBACK(), Command_TagJumpByTagsFile(), Command_TagJumpByTagsFileKeyword(), Command_TagsMake(), Command_TILE_H(), Command_TILE_V(), Command_TOHANEI(), Command_TOHANKAKU(), Command_TOHANKATA(), Command_TOLOWER(), Command_TOUPPER(), Command_TOZENEI(), Command_TOZENKAKUHIRA(), Command_TOZENKAKUKATA(), Command_TRIM(), Command_TYPE_LIST(), Command_UNDO(), Command_UNINDENT(), Command_UP(), Command_UUDECODE(), Command_WCHAR(), Command_WIN_OUTPUT(), Command_WndScrollDown(), Command_WndScrollUp(), Command_WordCut(), Command_WordDelete(), Command_WordDeleteToEnd(), Command_WordDeleteToStart(), Command_WORDLEFT(), Command_WORDRIGHT(), Command_WRAPWINDOWWIDTH(), GetCaret(), GetDocument(), GetEditWindow(), GetInstance(), GetMainWindow(), GetOpeBlk(), GetSelect(), GetShareData(), HandleCommand(), と SetOpeBlk().

int CViewCommander::m_bPrevCommand

CViewCommander.h の 36 行で定義されています。

参照元 CViewCommander(), CEditView::DispatchEvent(), と HandleCommand().

このクラスの説明は次のファイルから生成されました:
  • CViewCommander.h
  • CViewCommander.cpp
  • CViewCommander_Diff.cpp
  • CViewCommander_Grep.cpp
  • CViewCommander_Hokan.cpp
  • CViewCommander_New.cpp
Sakura-Editorに対してSat Nov 17 20:29:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CViewCommander メンバ一覧

これは全メンバの一覧です。CViewCommander継承メンバも含んでいます。

ClearOpeBlk() | CViewCommander |
Command_1PageDown(bool bSelect) | CViewCommander |
Command_1PageUp(bool bSelect) | CViewCommander |
Command_ABOUT(void) | CViewCommander |
Command_ACTIVATE_SQLPLUS(void) | CViewCommander |
Command_ADDTAIL(const wchar_t *pszData, int nDataLen) | CViewCommander |
Command_BASE64DECODE(void) | CViewCommander |
Command_BEGIN_BOXSELECT(void) | CViewCommander |
Command_BEGIN_SELECT(void) | CViewCommander |
Command_BIND_WINDOW(void) | CViewCommander |
Command_BOOKMARK_NEXT(void) | CViewCommander |
Command_BOOKMARK_PATTERN(void) | CViewCommander |
Command_BOOKMARK_PREV(void) | CViewCommander |
Command_BOOKMARK_RESET(void) | CViewCommander |
Command_BOOKMARK_SET(void) | CViewCommander |
Command_BRACKETPAIR(void) | CViewCommander |
Command_BROWSE(void) | CViewCommander |
Command_CANCEL_MODE(void) | CViewCommander |
Command_CASCADE(void) | CViewCommander |
Command_CHGMOD_EOL(enumEOLType) | CViewCommander |
Command_CHGMOD_INS(void) | CViewCommander |
Command_CODECNV_AUTO2SJIS(void) | CViewCommander |
Command_CODECNV_EMAIL(void) | CViewCommander |
Command_CODECNV_EUC2SJIS(void) | CViewCommander |
Command_CODECNV_SJIS2EUC(void) | CViewCommander |
Command_CODECNV_SJIS2JIS(void) | CViewCommander |
Command_CODECNV_SJIS2UTF7(void) | CViewCommander |
Command_CODECNV_SJIS2UTF8(void) | CViewCommander |
Command_CODECNV_UNICODE2SJIS(void) | CViewCommander |
Command_CODECNV_UNICODEBE2SJIS(void) | CViewCommander |
Command_CODECNV_UTF72SJIS(void) | CViewCommander |
Command_CODECNV_UTF82SJIS(void) | CViewCommander |
Command_COMPARE(void) | CViewCommander |
Command_COPY(bool, bool bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN) | CViewCommander |
Command_COPYFILENAME(void) | CViewCommander |
Command_COPYLINES(void) | CViewCommander |
Command_COPYLINESASPASSAGE(void) | CViewCommander |
Command_COPYLINESWITHLINENUMBER(void) | CViewCommander |
Command_COPYPATH(void) | CViewCommander |
Command_COPYTAG(void) | CViewCommander |
Command_CREATEKEYBINDLIST(void) | CViewCommander |
Command_CtrlCode_Dialog(void) | CViewCommander |
Command_CURLINECENTER(void) | CViewCommander |
Command_CUSTMENU(int) | CViewCommander |
Command_CUT(void) | CViewCommander |
Command_CUT_LINE(void) | CViewCommander |
Command_DELETE(void) | CViewCommander |
Command_DELETE_BACK(void) | CViewCommander |
Command_DELETE_LINE(void) | CViewCommander |
Command_Diff(const WCHAR *szTmpFile2, int nFlgOpt) | CViewCommander |
Command_Diff_Dialog(void) | CViewCommander |
Command_Diff_Next(void) | CViewCommander |
Command_Diff_Prev(void) | CViewCommander |
Command_Diff_Reset(void) | CViewCommander |
Command_DOWN(bool bSelect, bool bRepeat) | CViewCommander |
Command_DOWN2(bool bSelect) | CViewCommander |
Command_DUPLICATELINE(void) | CViewCommander |
Command_EXECCOMMAND(LPCWSTR cmd, const int nFlgOpt) | CViewCommander |
Command_EXECCOMMAND_DIALOG(void) | CViewCommander |
Command_EXECKEYMACRO(void) | CViewCommander |
Command_EXITALL(void) | CViewCommander |
Command_EXITALLEDITORS(void) | CViewCommander |
Command_EXTHELP1(void) | CViewCommander |
Command_EXTHTMLHELP(const WCHAR *helpfile=NULL, const WCHAR *kwd=NULL) | CViewCommander |
Command_Favorite(void) | CViewCommander |
Command_FILE_REOPEN(ECodeType nCharCode, bool bNoConfirm) | CViewCommander |
Command_FILECLOSE(void) | CViewCommander |
Command_FILECLOSE_OPEN(LPCWSTR filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CViewCommander |
Command_FILECLOSEALL(void) | CViewCommander |
Command_FILENEW(void) | CViewCommander |
Command_FILEOPEN(const WCHAR *filename=NULL, ECodeType nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CViewCommander |
Command_FILESAVE(bool warnbeep=true, bool askname=true) | CViewCommander |
Command_FILESAVEALL(void) | CViewCommander |
Command_FILESAVEAS(const WCHAR *filename) | CViewCommander |
Command_FILESAVEAS_DIALOG() | CViewCommander |
Command_FONT(void) | CViewCommander |
Command_FUNCLIST(int nAction, int nOutlineType=OUTLINE_DEFAULT) | CViewCommander |
Command_GOFILEEND(bool bSelect) | CViewCommander |
Command_GOFILETOP(bool bSelect) | CViewCommander |
Command_GOLINEEND(bool bSelect, int) | CViewCommander |
Command_GOLINETOP(bool bSelect, int lparam) | CViewCommander |
Command_GONEXTPARAGRAPH(bool bSelect) | CViewCommander |
Command_GOPREVPARAGRAPH(bool bSelect) | CViewCommander |
Command_GREP(void) | CViewCommander |
Command_GREP_DIALOG(void) | CViewCommander |
Command_GROUPCLOSE(void) | CViewCommander |
Command_HalfPageDown(bool bSelect) | CViewCommander |
Command_HalfPageUp(bool bSelect) | CViewCommander |
Command_HANKATATOZENKAKUHIRA(void) | CViewCommander |
Command_HANKATATOZENKAKUKATA(void) | CViewCommander |
Command_HELP_CONTENTS(void) | CViewCommander |
Command_HELP_SEARCH(void) | CViewCommander |
Command_HOKAN(void) | CViewCommander |
Command_IME_CHAR(WORD) | CViewCommander |
Command_INDENT(wchar_t cChar) | CViewCommander |
Command_INDENT(const wchar_t *, CLogicInt, BOOL=FALSE) | CViewCommander |
Command_INDENT_TAB(void) | CViewCommander |
Command_INS_DATE(void) | CViewCommander |
Command_INS_TIME(void) | CViewCommander |
Command_INSFILE(LPCWSTR, ECodeType, int) | CViewCommander |
Command_INSTEXT(bool bRedraw, const wchar_t *, CLogicInt, bool bNoWaitCursor) | CViewCommander |
Command_JUMP(void) | CViewCommander |
Command_JUMP_DIALOG(void) | CViewCommander |
Command_JUMP_SRCHSTARTPOS(void) | CViewCommander |
Command_JUMPHIST_NEXT(void) | CViewCommander |
Command_JUMPHIST_PREV(void) | CViewCommander |
Command_JUMPHIST_SET(void) | CViewCommander |
Command_LEFT(bool, bool) | CViewCommander |
Command_LineCutToEnd(void) | CViewCommander |
Command_LineCutToStart(void) | CViewCommander |
Command_LineDeleteToEnd(void) | CViewCommander |
Command_LineDeleteToStart(void) | CViewCommander |
Command_LOADKEYMACRO(void) | CViewCommander |
Command_MAXIMIZE_H(void) | CViewCommander |
Command_MAXIMIZE_V(void) | CViewCommander |
Command_MENU_ALLFUNC(void) | CViewCommander |
Command_MENU_RBUTTON(void) | CViewCommander |
Command_MERGE(void) | CViewCommander |
Command_MINIMIZE_ALL(void) | CViewCommander |
Command_NEXTGROUP(void) | CViewCommander |
Command_OPEN_CCPP(BOOL bCheckOnly, BOOL bBeepWhenMiss) | CViewCommander |
Command_OPEN_HfromtoC(BOOL) | CViewCommander |
Command_OPEN_HHPP(BOOL bCheckOnly, BOOL bBeepWhenMiss) | CViewCommander |
Command_OPTION(void) | CViewCommander |
Command_OPTION_TYPE(void) | CViewCommander |
Command_PASTE(void) | CViewCommander |
Command_PASTEBOX(void) | CViewCommander |
Command_PASTEBOX(const wchar_t *szPaste, int nPasteSize) | CViewCommander |
Command_PLSQL_COMPILE_ON_SQLPLUS(void) | CViewCommander |
Command_PREVGROUP(void) | CViewCommander |
Command_PRINT(void) | CViewCommander |
Command_PRINT_PAGESETUP(void) | CViewCommander |
Command_PRINT_PREVIEW(void) | CViewCommander |
Command_PROPERTY_FILE(void) | CViewCommander |
Command_PUTFILE(LPCWSTR, ECodeType, int) | CViewCommander |
Command_READONLY(void) | CViewCommander |
Command_RECKEYMACRO(void) | CViewCommander |
Command_Reconvert(void) | CViewCommander |
Command_REDO(void) | CViewCommander |
Command_REDRAW(void) | CViewCommander |
Command_REPLACE(HWND hwndParent) | CViewCommander |
Command_REPLACE_ALL() | CViewCommander |
Command_REPLACE_DIALOG(void) | CViewCommander |
Command_RIGHT(bool bSelect, bool bIgnoreCurrentSelection, bool bRepeat) | CViewCommander |
Command_SAVEKEYMACRO(void) | CViewCommander |
Command_SEARCH_BOX(void) | CViewCommander |
Command_SEARCH_CLEARMARK(void) | CViewCommander |
Command_SEARCH_DIALOG(void) | CViewCommander |
Command_SEARCH_NEXT(bool, bool, HWND, const WCHAR *) | CViewCommander |
Command_SEARCH_PREV(bool bRedraw, HWND) | CViewCommander |
Command_SELECTALL(void) | CViewCommander |
Command_SELECTWORD(void) | CViewCommander |
Command_SET_QUOTESTRING(const wchar_t *) | CViewCommander |
Command_SHOWFUNCKEY(void) | CViewCommander |
Command_SHOWSTATUSBAR(void) | CViewCommander |
Command_SHOWTAB(void) | CViewCommander |
Command_SHOWTOOLBAR(void) | CViewCommander |
Command_SORT(BOOL) | CViewCommander |
Command_SPACETOTAB(void) | CViewCommander |
Command_SPLIT_H(void) | CViewCommander |
Command_SPLIT_V(void) | CViewCommander |
Command_SPLIT_VH(void) | CViewCommander |
Command_TAB_JOINTNEXT(void) | CViewCommander |
Command_TAB_JOINTPREV(void) | CViewCommander |
Command_TAB_MOVELEFT(void) | CViewCommander |
Command_TAB_MOVERIGHT(void) | CViewCommander |
Command_TAB_SEPARATE(void) | CViewCommander |
Command_TABTOSPACE(void) | CViewCommander |
Command_TAGJUMP(bool bClose=false) | CViewCommander |
Command_TAGJUMPBACK(void) | CViewCommander |
Command_TagJumpByTagsFile(void) | CViewCommander |
Command_TagJumpByTagsFileKeyword(const wchar_t *keyword) | CViewCommander |
Command_TagsMake(void) | CViewCommander |
Command_TILE_H(void) | CViewCommander |
Command_TILE_V(void) | CViewCommander |
Command_ToggleKeySearch(void) | CViewCommander |
Command_TOHANEI(void) | CViewCommander |
Command_TOHANKAKU(void) | CViewCommander |
Command_TOHANKATA(void) | CViewCommander |
Command_TOLOWER(void) | CViewCommander |
Command_TOUPPER(void) | CViewCommander |
Command_TOZENEI(void) | CViewCommander |
Command_TOZENKAKUHIRA(void) | CViewCommander |
Command_TOZENKAKUKATA(void) | CViewCommander |
Command_TRACEOUT(const wchar_t *outputstr, int) | CViewCommander |
Command_TRIM(BOOL) | CViewCommander |
Command_TYPE_LIST(void) | CViewCommander |
Command_UNDO(void) | CViewCommander |
Command_UNINDENT(wchar_t wcChar) | CViewCommander |
Command_UP(bool bSelect, bool bRepeat, int line=0) | CViewCommander |
Command_UP2(bool bSelect) | CViewCommander |
Command_UP_BOX(BOOL) | CViewCommander |
Command_UUDECODE(void) | CViewCommander |
Command_WCHAR(wchar_t) | CViewCommander |
Command_WIN_OUTPUT(void) | CViewCommander |
Command_WINCLOSE(void) | CViewCommander |
Command_WINLIST(int nCommandFrom) | CViewCommander |
Command_WINTOPMOST(LPARAM) | CViewCommander |
Command_WndScrollDown(void) | CViewCommander |
Command_WndScrollUp(void) | CViewCommander |
Command_WordCut(void) | CViewCommander |
Command_WordDelete(void) | CViewCommander |
Command_WordDeleteToEnd(void) | CViewCommander |
Command_WordDeleteToStart(void) | CViewCommander |
Command_WORDLEFT(bool bSelect) | CViewCommander |
Command_WORDRIGHT(bool bSelect) | CViewCommander |
Command_WRAPWINDOWWIDTH(void) | CViewCommander |
CViewCommander(CEditView *pEditView) | CViewCommander | [inline]
GetCaret() | CViewCommander |
GetDocument() | CViewCommander |
GetEditWindow() | CViewCommander |
GetInstance() | CViewCommander |
GetMainWindow() | CViewCommander |
GetOpeBlk() | CViewCommander |
GetSelect() | CViewCommander |
GetShareData() | CViewCommander |
HandleCommand(EFunctionCode nCommand, bool bRedraw, LPARAM lparam1, LPARAM lparam2, LPARAM lparam3, LPARAM lparam4) | CViewCommander |
m_bPrevCommand | CViewCommander |
m_pCommanderView | CViewCommander | [private]
SetOpeBlk(COpeBlk *p) | CViewCommander |

Sakura-Editorに対してSat Nov 17 20:29:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CViewFont

  • 構成
  • クラス階層
  • 構成メンバ

クラス CViewFont

#include <CViewFont.h>

すべてのメンバ一覧

Public メソッド

CViewFont ()
virtual | ~CViewFont ()
void | UpdateFont ()
HFONT | ChooseFontHandle (BOOL bFat, BOOL bUnderLine) const
HFONT | GetFontHan () const

Private 変数

HFONT | m_hFont_HAN
HFONT | m_hFont_HAN_FAT
HFONT | m_hFont_HAN_UL
HFONT | m_hFont_HAN_FAT_UL

説明

CViewFont.h の 3 行で定義されています。

コンストラクタとデストラクタ

CViewFont::CViewFont ( )

CViewFont.cpp の 5 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), DLLSHAREDATA::m_Common, m_hFont_HAN, m_hFont_HAN_FAT, m_hFont_HAN_FAT_UL, m_hFont_HAN_UL, CommonSetting_View::m_lf, CommonSetting::m_sView, と TRUE.

CViewFont::~CViewFont ( ) [virtual]

CViewFont.cpp の 37 行で定義されています。

参照先 m_hFont_HAN, m_hFont_HAN_FAT, m_hFont_HAN_FAT_UL, と m_hFont_HAN_UL.

関数

void CViewFont::UpdateFont ( )

CViewFont.cpp の 45 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), DLLSHAREDATA::m_Common, m_hFont_HAN, m_hFont_HAN_FAT, m_hFont_HAN_FAT_UL, m_hFont_HAN_UL, CommonSetting_View::m_lf, CommonSetting::m_sView, と TRUE.

参照元 CEditView::OnChangeSetting().

HFONT CViewFont::ChooseFontHandle | ( | BOOL | bFat,
 |  | BOOL | bUnderLine |
 | ) |  |  | const

フォントを選ぶ

引数:
bFat | TRUEで太字
bUnderLine | TRUEでアンダーライン

CViewFont.cpp の 84 行で定義されています。

参照先 m_hFont_HAN, m_hFont_HAN_FAT, m_hFont_HAN_FAT_UL, と m_hFont_HAN_UL.

参照元 CEditView::SetCurrentColor(), と CTypeSupport::SetFont().

HFONT CViewFont::GetFontHan ( ) const [inline]

CViewFont.h の 11 行で定義されています。

参照先 m_hFont_HAN.

変数

HFONT CViewFont::m_hFont_HAN [private]

CViewFont.h の 16 行で定義されています。

参照元 ChooseFontHandle(), CViewFont(), GetFontHan(), UpdateFont(), と ~CViewFont().

HFONT CViewFont::m_hFont_HAN_FAT [private]

CViewFont.h の 17 行で定義されています。

参照元 ChooseFontHandle(), CViewFont(), UpdateFont(), と ~CViewFont().

HFONT CViewFont::m_hFont_HAN_UL [private]

CViewFont.h の 18 行で定義されています。

参照元 ChooseFontHandle(), CViewFont(), UpdateFont(), と ~CViewFont().

HFONT CViewFont::m_hFont_HAN_FAT_UL [private]

CViewFont.h の 19 行で定義されています。

参照元 ChooseFontHandle(), CViewFont(), UpdateFont(), と ~CViewFont().

このクラスの説明は次のファイルから生成されました:
  • CViewFont.h
  • CViewFont.cpp
Sakura-Editorに対してSat Nov 17 20:29:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CViewFont メンバ一覧

これは全メンバの一覧です。CViewFont継承メンバも含んでいます。

ChooseFontHandle(BOOL bFat, BOOL bUnderLine) const | CViewFont |
CViewFont() | CViewFont |
GetFontHan() const | CViewFont | [inline]
m_hFont_HAN | CViewFont | [private]
m_hFont_HAN_FAT | CViewFont | [private]
m_hFont_HAN_FAT_UL | CViewFont | [private]
m_hFont_HAN_UL | CViewFont | [private]
UpdateFont() | CViewFont |
~CViewFont() | CViewFont | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CViewParser

  • 構成
  • クラス階層
  • 構成メンバ

クラス CViewParser

品詞解析クラス [詳細]

#include <CViewParser.h>

CViewParserのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CViewParser (const CEditView *pEditView)
virtual | ~CViewParser ()
int | GetLeftWord (CNativeW *pcmemWord, int nMaxWordLen) const
カーソル直前の単語を取得
BOOL | GetCurrentWord (CNativeW *pcmemWord) const
キャレット位置の単語を取得

Private 変数

const CEditView * | m_pEditView

説明

品詞解析クラス

CViewParser.h の 6 行で定義されています。

コンストラクタとデストラクタ

CViewParser::CViewParser ( const CEditView * pEditView ) [inline]

CViewParser.h の 8 行で定義されています。

virtual CViewParser::~CViewParser ( ) [inline, virtual]

CViewParser.h の 9 行で定義されています。

関数

int CViewParser::GetLeftWord | ( | CNativeW * | pcmemWord,
 |  | int | nMaxWordLen |
 | ) |  |  | const

カーソル直前の単語を取得

CViewParser.cpp の 12 行で定義されています。

参照先 CNativeW::AppendString(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CNativeW::GetCharPrev(), CLayoutMgr::GetLineStr(), CNativeW::GetStringLength(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), WCODE::isLineDelimiter(), WCODE::isWordDelimiter(), CViewCalc::LineColmnToIndex(), CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, m_pEditView, NULL, と CLayoutMgr::WhereCurrentWord().

参照元 CViewCommander::Command_HOKAN().

BOOL CViewParser::GetCurrentWord ( CNativeW * pcmemWord ) const

キャレット位置の単語を取得

キャレット位置の単語を取得 単語区切り

引数:
[out] pcmemWord キャレット位置の単語
戻り値:
true: 成功，false: 失敗
日付:
2006.03.24 fon (CEditView::Command_SELECTWORDを流用)

CViewParser.cpp の 95 行で定義されています。

参照先 CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2(), CViewCalc::LineColmnToIndex(), CEditDoc::m_cLayoutMgr, CEditView::m_pcEditDoc, m_pEditView, NULL, CLayoutMgr::SearchLineByLayoutY(), と CLayoutMgr::WhereCurrentWord().

変数

const CEditView* CViewParser::m_pEditView [private]

CViewParser.h の 19 行で定義されています。

参照元 GetCurrentWord(), と GetLeftWord().

このクラスの説明は次のファイルから生成されました:
  • CViewParser.h
  • CViewParser.cpp
Sakura-Editorに対してSat Nov 17 20:29:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CViewParser メンバ一覧

これは全メンバの一覧です。CViewParser継承メンバも含んでいます。

CViewParser(const CEditView *pEditView) | CViewParser | [inline]
GetCurrentWord(CNativeW *pcmemWord) const | CViewParser |
GetLeftWord(CNativeW *pcmemWord, int nMaxWordLen) const | CViewParser |
m_pEditView | CViewParser | [private]
~CViewParser() | CViewParser | [inline, virtual]

Sakura-Editorに対してSat Nov 17 20:29:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CViewSelect

  • 構成
  • クラス階層
  • 構成メンバ

クラス CViewSelect

#include <CViewSelect.h>

CViewSelectのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CEditView * GetEditView ()
const CEditView * | GetEditView () const
CViewSelect (CEditView *pcEditView)
void | CopySelectStatus (CViewSelect *pSelect) const
void | DisableSelectArea (bool bDraw)
現在の選択範囲を非選択状態に戻す
void | BeginSelectArea ()
現在のカーソル位置から選択を開始する
void | ChangeSelectAreaByCurrentCursor (const CLayoutPoint &ptCaretPos)
void | ChangeSelectAreaByCurrentCursorTEST (const CLayoutPoint &ptCaretPos, CLayoutRange *pSelect)
void | SetSelectArea (const CLayoutRange &sRange)
選択範囲を指定する(原点未選択)
void | SelectBeginWord ()
単語選択開始
void | SelectBeginBox ()
矩形選択開始
void | SelectBeginNazo ()
謎の選択開始
void | SelectEnd ()
範囲選択終了
void | SetBoxSelect (bool b)
m_bBeginBoxSelectを設定。
void | DrawSelectArea () const
指定行の選択領域の描画
void | DrawSelectAreaLine (HDC hdc, CLayoutInt nLineNum, const CLayoutRange &sRange) const
void | PrintSelectionInfoMsg () const
選択情報データの作成 2005.07.09 genta
bool | IsTextSelected () const
テキストが選択されているか
bool | IsTextSelecting () const
テキストの選択中か
bool | IsMouseSelecting () const
マウスで選択中か
bool | IsBoxSelecting () const
矩形選択中か

Public 変数

bool | m_bDrawSelectArea
bool | m_bSelectingLock
bool | m_bBeginLineSelect
bool | m_bBeginWordSelect
CLayoutRange m_sSelectBgn
CLayoutRange m_sSelect
CLayoutRange m_sSelectOld
CMyPoint m_ptMouseRollPosOld

Private 変数

CEditView * m_pcEditView
bool | m_bBeginSelect
bool | m_bBeginBoxSelect

説明

CViewSelect.h の 8 行で定義されています。

コンストラクタとデストラクタ

CViewSelect::CViewSelect ( CEditView * pcEditView )

CViewSelect.cpp の 9 行で定義されています。

参照先 CRangeBase< PointType >::Clear(), m_bBeginBoxSelect, m_bBeginLineSelect, m_bBeginSelect, m_bBeginWordSelect, m_bSelectingLock, m_sSelect, m_sSelectBgn, と m_sSelectOld.

関数

CEditView* CViewSelect::GetEditView ( ) [inline]

CViewSelect.h の 10 行で定義されています。

参照先 m_pcEditView.

参照元 BeginSelectArea(), ChangeSelectAreaByCurrentCursorTEST(), DisableSelectArea(), DrawSelectArea(), DrawSelectAreaLine(), と PrintSelectionInfoMsg().

const CEditView* CViewSelect::GetEditView ( ) const [inline]

CViewSelect.h の 11 行で定義されています。

参照先 m_pcEditView.

void CViewSelect::CopySelectStatus ( CViewSelect * pSelect ) const

CViewSelect.cpp の 23 行で定義されています。

参照先 m_bBeginBoxSelect, m_bBeginSelect, m_bSelectingLock, m_ptMouseRollPosOld, m_sSelect, m_sSelectBgn, と m_sSelectOld.

参照元 CEditView::CopyViewStatus().

void CViewSelect::DisableSelectArea ( bool bDraw )

現在の選択範囲を非選択状態に戻す

CViewSelect.cpp の 47 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineON(), CRangeBase< PointType >::Clear(), DrawSelectArea(), CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), GetEditView(), CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX(), m_bBeginBoxSelect, m_bBeginLineSelect, m_bBeginWordSelect, m_bDrawSelectArea, m_bSelectingLock, CCaret::m_cUnderLine, CCaret::m_nCaretPosX_Prev, m_sSelect, と m_sSelectOld.

参照元 CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_COPY(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_INDENT(), CViewCommander::Command_LEFT(), CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::GetCurrentTextForSearch(), CEditDoc::InitAllView(), CEditView::ISearchBack(), CEditView::ISearchEnter(), CEditView::MoveCursorSelecting(), CEditView::OnLBUTTONDOWN(), CEditView::OnLBUTTONUP(), CEditView::ReplaceData_CEditView(), と CEditWnd::Views_DisableSelectArea().

void CViewSelect::BeginSelectArea ( )

現在のカーソル位置から選択を開始する

CViewSelect.cpp の 37 行で定義されています。

参照先 CEditView::GetCaret(), CCaret::GetCaretLayoutPos(), GetEditView(), m_sSelect, m_sSelectBgn, と CRangeBase< PointType >::Set().

参照元 CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_LEFT(), CViewCommander::Command_RIGHT(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CCaret::Cursor_UPDOWN(), CEditView::MoveCursorSelecting(), CEditView::OnLBUTTONDBLCLK(), と CEditView::OnLBUTTONDOWN().

void CViewSelect::ChangeSelectAreaByCurrentCursor ( const CLayoutPoint & ptCaretPos )

CViewSelect.cpp の 76 行で定義されています。

参照先 ChangeSelectAreaByCurrentCursorTEST(), DrawSelectArea(), m_sSelect, と m_sSelectOld.

参照元 CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_LEFT(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CCaret::Cursor_UPDOWN(), CEditView::MoveCursorSelecting(), CEditView::OnLBUTTONDOWN(), と CEditView::OnMOUSEMOVE().

void CViewSelect::ChangeSelectAreaByCurrentCursorTEST | ( | const CLayoutPoint & | ptCaretPos,
 |  | CLayoutRange * | pSelect
 | ) |  |

CViewSelect.cpp の 92 行で定義されています。

参照先 CRangeBase< PointType >::Clear(), GetEditView(), CRangeBase< PointType >::GetFrom(), CRangeBase< PointType >::GetTo(), m_sSelectBgn, PointCompare(), CRangeBase< PointType >::SetFrom(), と CRangeBase< PointType >::SetTo().

参照元 ChangeSelectAreaByCurrentCursor(), と CEditView::OnMOUSEMOVE().

void CViewSelect::SetSelectArea ( const CLayoutRange & sRange ) [inline]

選択範囲を指定する(原点未選択)

CViewSelect.h の 28 行で定義されています。

参照先 CRangeBase< PointType >::GetFrom(), m_sSelect, m_sSelectBgn, と CRangeBase< PointType >::Set().

参照元 CViewCommander::Command_INSFILE(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CEditView::ISearchBack(), と CEditView::ISearchExec().

void CViewSelect::SelectBeginWord ( ) [inline]

単語選択開始

CViewSelect.h の 35 行で定義されています。

参照先 m_bBeginBoxSelect, m_bBeginLineSelect, m_bBeginSelect, と m_bBeginWordSelect.

参照元 CEditView::OnLBUTTONDBLCLK().

void CViewSelect::SelectBeginBox ( ) [inline]

矩形選択開始

CViewSelect.h の 44 行で定義されています。

参照先 m_bBeginBoxSelect, m_bBeginLineSelect, m_bBeginSelect, と m_bBeginWordSelect.

参照元 CEditView::OnLBUTTONDOWN().

void CViewSelect::SelectBeginNazo ( ) [inline]

謎の選択開始

CViewSelect.h の 53 行で定義されています。

参照先 m_bBeginLineSelect, m_bBeginSelect, と m_bBeginWordSelect.

参照元 CEditView::OnLBUTTONDOWN().

void CViewSelect::SelectEnd ( ) [inline]

範囲選択終了

CViewSelect.h の 62 行で定義されています。

参照先 m_bBeginSelect.

参照元 CEditView::OnLBUTTONUP().

void CViewSelect::SetBoxSelect ( bool b ) [inline]

m_bBeginBoxSelectを設定。

CViewSelect.h の 68 行で定義されています。

参照先 m_bBeginBoxSelect.

参照元 CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_INDENT(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SORT(), と CEditView::OnLBUTTONDBLCLK().

void CViewSelect::DrawSelectArea ( ) const

指定行の選択領域の描画

選択領域の描画

日付:
2006.10.01 Moca 重複コード削除．矩形作画改善．

CViewSelect.cpp の 144 行で定義されています。

参照先 CStrictRect< INT_TYPE, POINT_TYPE >::bottom, DrawSelectAreaLine(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CTextArea::GetBottomLine(), CEditView::GetDrawSwitch(), GetEditView(), CLayoutMgr::GetEndLayoutPos(), CRangeBase< PointType >::GetFrom(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CTextArea::GetRightCol(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CRangeBase< PointType >::GetTo(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), IsBoxSelecting(), CStrictRect< INT_TYPE, POINT_TYPE >::left, m_bDrawSelectArea, CEditDoc::m_cLayoutMgr, CEditView::m_hWnd, CEditView::m_pcEditDoc, m_sSelect, m_sSelectOld, NULL, PointCompare(), PrintSelectionInfoMsg(), CStrictRect< INT_TYPE, POINT_TYPE >::right, SELECTEDAREA_RGB, SELECTEDAREA_ROP2, CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), CStrictRect< INT_TYPE, POINT_TYPE >::top, と TwoPointToRect().

参照元 ChangeSelectAreaByCurrentCursor(), CViewCommander::Command_INSFILE(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), DisableSelectArea(), と CEditView::OnLBUTTONDOWN().

void CViewSelect::DrawSelectAreaLine | ( | HDC | hdc,
 |  | CLayoutInt | nLineNum,
 |  | const CLayoutRange & | sRange |
 | ) |  |  | const

選択領域の中の指定行の描画

複数行に渡る選択範囲のうち，nLineNumで指定された1行分だけを描画する． 選択範囲は固定されたままnLineNumのみが必要行分変化しながら呼びだされる．

日付:
2006.03.29 Moca 3000桁制限を撤廃．
引数:
hdc | 指定行の選択領域の描画 [in] 描画領域のDevice Context Handle
nLineNum | [in] 描画対象行(レイアウト行)
sRange | [in] 選択範囲(レイアウト単位)

CViewSelect.cpp の 340 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineOFF(), CTextArea::GetAreaLeft(), CTextArea::GetAreaRight(), CTextArea::GetAreaTop(), CEditView::GetCaret(), GetEditView(), CRangeBase< PointType >::GetFrom(), CTextMetrics::GetHankakuDx(), CTextMetrics::GetHankakuDy(), CLayout::GetIndent(), CLayout::GetLengthWithoutEOL(), CTextArea::GetRightCol(), CLayoutMgr::GetTabSpace(), CEditView::GetTextArea(), CEditView::GetTextMetrics(), CRangeBase< PointType >::GetTo(), CTextArea::GetViewLeftCol(), CTextArea::GetViewTopLine(), CRangeBase< PointType >::IsLineOne(), CEditDoc::m_cLayoutMgr, CCaret::m_cUnderLine, CEditView::m_pcEditDoc, CLayoutMgr::SearchLineByLayoutY(), t_swap(), と TRUE.

参照元 DrawSelectArea().

void CViewSelect::PrintSelectionInfoMsg ( ) const

選択情報データの作成 2005.07.09 genta

選択範囲情報メッセージの表示

作者:
genta
日付:
2005.07.09 genta 新規作成

2006.06.06 ryoji 選択範囲の行が実在しない場合の対策を追加

CViewSelect.cpp の 428 行で定義されています。

参照先 auto_sprintf(), GetEditView(), CRangeBase< PointType >::GetFrom(), CEOL::GetLen(), CLayout::GetLengthWithoutEOL(), CLayoutMgr::GetLineCount(), CLayoutMgr::GetLineStr(), CRangeBase< PointType >::GetTo(), IsBoxSelecting(), CRangeBase< PointType >::IsLineOne(), IsTextSelected(), CViewCalc::LineColmnToIndex(), CLayout::m_cEol, CEditDoc::m_cLayoutMgr, CEditWnd::m_cStatusBar, CEditView::m_pcEditDoc, CEditDoc::m_pcEditWnd, m_sSelect, NULL, CMainStatusBar::SendStatusMessage2(), と CMainStatusBar::SendStatusMessage2IsEffective().

参照元 DrawSelectArea(), と CEditView::RedrawAll().

bool CViewSelect::IsTextSelected ( ) const [inline]

テキストが選択されているか

CViewSelect.h の 91 行で定義されています。

参照先 CRangeBase< PointType >::IsValid(), と m_sSelect.

参照元 CEditView::CaretUnderLineON(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_COPY(), CViewCommander::Command_CUT(), CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSFILE(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SORT(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_UUDECODE(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WordCut(), CViewCommander::Command_WordDelete(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CCaret::Cursor_UPDOWN(), CEditView::DispTextSelected(), CViewCommander::HandleCommand(), CMacro::HandleFunction(), CEditView::ISearchExec(), IsFuncEnable(), IsTextSelecting(), CEditView::OnPaint(), と PrintSelectionInfoMsg().

bool CViewSelect::IsTextSelecting ( ) const [inline]

テキストの選択中か

CViewSelect.h の 101 行で定義されています。

参照先 IsTextSelected(), と m_bSelectingLock.

bool CViewSelect::IsMouseSelecting ( ) const [inline]

マウスで選択中か

CViewSelect.h の 108 行で定義されています。

参照先 m_bBeginSelect.

参照元 CViewCommander::Command_CUT(), CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_UNDO(), CViewCommander::Command_WCHAR(), CCaret::MoveCursor(), と CCaret::MoveCursorProperly().

bool CViewSelect::IsBoxSelecting ( ) const [inline]

矩形選択中か

CViewSelect.h の 114 行で定義されています。

参照先 m_bBeginBoxSelect.

参照元 CViewCommander::Command_COPY(), CViewCommander::Command_CUT(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOFILETOP(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_LEFT(), CViewCommander::Command_MERGE(), CViewCommander::Command_PASTE(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SORT(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DispTextSelected(), DrawSelectArea(), CMacro::HandleFunction(), CCaret::MoveCursorProperly(), CEditView::OnMOUSEMOVE(), と PrintSelectionInfoMsg().

変数

CEditView* CViewSelect::m_pcEditView [private]

CViewSelect.h の 122 行で定義されています。

参照元 GetEditView().

bool CViewSelect::m_bDrawSelectArea [mutable]

CViewSelect.h の 127 行で定義されています。

参照元 CEditView::Create(), DisableSelectArea(), と DrawSelectArea().

bool CViewSelect::m_bSelectingLock

CViewSelect.h の 130 行で定義されています。

参照元 CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_BRACKETPAIR(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_COPY(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_JUMP(), CViewCommander::Command_JUMP_SRCHSTARTPOS(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CopySelectStatus(), CViewSelect(), DisableSelectArea(), CEditWnd::DispatchEvent(), CViewCommander::HandleCommand(), と IsTextSelecting().

bool CViewSelect::m_bBeginSelect [private]

CViewSelect.h の 132 行で定義されています。

参照元 CopySelectStatus(), CViewSelect(), IsMouseSelecting(), SelectBeginBox(), SelectBeginNazo(), SelectBeginWord(), と SelectEnd().

bool CViewSelect::m_bBeginBoxSelect [private]

CViewSelect.h の 133 行で定義されています。

参照元 CopySelectStatus(), CViewSelect(), DisableSelectArea(), IsBoxSelecting(), SelectBeginBox(), SelectBeginWord(), と SetBoxSelect().

bool CViewSelect::m_bBeginLineSelect

CViewSelect.h の 135 行で定義されています。

参照元 CViewSelect(), DisableSelectArea(), CEditView::OnLBUTTONDOWN(), SelectBeginBox(), SelectBeginNazo(), と SelectBeginWord().

bool CViewSelect::m_bBeginWordSelect

CViewSelect.h の 136 行で定義されています。

参照元 CViewSelect(), DisableSelectArea(), CEditView::OnLBUTTONDOWN(), SelectBeginBox(), SelectBeginNazo(), と SelectBeginWord().

CLayoutRange CViewSelect::m_sSelectBgn

CViewSelect.h の 140 行で定義されています。

参照元 BeginSelectArea(), ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_UNDO(), CopySelectStatus(), CViewSelect(), CEditView::GetCurrentTextForSearch(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), と SetSelectArea().

CLayoutRange CViewSelect::m_sSelect

CViewSelect.h の 141 行で定義されています。

参照元 BeginSelectArea(), CEditView::CaretUnderLineOFF(), ChangeSelectAreaByCurrentCursor(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_INSFILE(), CViewCommander::Command_MERGE(), CViewCommander::Command_SORT(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CopySelectStatus(), CViewSelect(), CEditView::DeleteData(), DisableSelectArea(), CEditView::DispTextSelected(), DrawSelectArea(), CEditView::GetCurrentTextForSearch(), CViewCommander::GetSelect(), CEditView::GetSelectedData(), CMacro::HandleFunction(), CEditView::IsCurrentPositionSelected(), CEditView::ISearchExec(), IsTextSelected(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), PrintSelectionInfoMsg(), と SetSelectArea().

CLayoutRange CViewSelect::m_sSelectOld

CViewSelect.h の 142 行で定義されています。

参照元 ChangeSelectAreaByCurrentCursor(), CopySelectStatus(), CViewSelect(), DisableSelectArea(), と DrawSelectArea().

CMyPoint CViewSelect::m_ptMouseRollPosOld

CViewSelect.h の 144 行で定義されています。

参照元 CopySelectStatus(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), と CEditView::OnMOUSEMOVE().

このクラスの説明は次のファイルから生成されました:
  • CViewSelect.h
  • CViewSelect.cpp
Sakura-Editorに対してSat Nov 17 20:29:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CViewSelect メンバ一覧

これは全メンバの一覧です。CViewSelect継承メンバも含んでいます。

BeginSelectArea() | CViewSelect |
ChangeSelectAreaByCurrentCursor(const CLayoutPoint &ptCaretPos) | CViewSelect |
ChangeSelectAreaByCurrentCursorTEST(const CLayoutPoint &ptCaretPos, CLayoutRange *pSelect) | CViewSelect |
CopySelectStatus(CViewSelect *pSelect) const | CViewSelect |
CViewSelect(CEditView *pcEditView) | CViewSelect |
DisableSelectArea(bool bDraw) | CViewSelect |
DrawSelectArea() const | CViewSelect |
DrawSelectAreaLine(HDC hdc, CLayoutInt nLineNum, const CLayoutRange &sRange) const | CViewSelect |
GetEditView() | CViewSelect | [inline]
GetEditView() const | CViewSelect | [inline]
IsBoxSelecting() const | CViewSelect | [inline]
IsMouseSelecting() const | CViewSelect | [inline]
IsTextSelected() const | CViewSelect | [inline]
IsTextSelecting() const | CViewSelect | [inline]
m_bBeginBoxSelect | CViewSelect | [private]
m_bBeginLineSelect | CViewSelect |
m_bBeginSelect | CViewSelect | [private]
m_bBeginWordSelect | CViewSelect |
m_bDrawSelectArea | CViewSelect | [mutable]
m_bSelectingLock | CViewSelect |
m_pcEditView | CViewSelect | [private]
m_ptMouseRollPosOld | CViewSelect |
m_sSelect | CViewSelect |
m_sSelectBgn | CViewSelect |
m_sSelectOld | CViewSelect |
PrintSelectionInfoMsg() const | CViewSelect |
SelectBeginBox() | CViewSelect | [inline]
SelectBeginNazo() | CViewSelect | [inline]
SelectBeginWord() | CViewSelect | [inline]
SelectEnd() | CViewSelect | [inline]
SetBoxSelect(bool b) | CViewSelect | [inline]
SetSelectArea(const CLayoutRange &sRange) | CViewSelect | [inline]

Sakura-Editorに対してSat Nov 17 20:29:20 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWaitCursor メンバ一覧

これは全メンバの一覧です。CWaitCursor継承メンバも含んでいます。

CWaitCursor(HWND) | CWaitCursor |
m_hCursor | CWaitCursor | [private]
m_hCursorOld | CWaitCursor | [private]
~CWaitCursor() | CWaitCursor |

Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWnd

ウィンドウの基本クラス [詳細]

#include <CWnd.h>

CWndに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

CWnd (const TCHAR *pszInheritanceAppend=_T(""))
virtual | ~CWnd ()
void | Init (HINSTANCE, HWND)
ATOM | RegisterWC (HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName)
HWND | Create (HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu)
virtual LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
HWND | GetHwnd () const
HWND | GetParentHwnd () const
HINSTANCE | GetAppInstance () const
void | _SetHwnd (HWND hwnd)
void | DestroyWindow ()

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)

Private 変数

TCHAR | m_szClassInheritances [1024]
HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd

フレンド

LRESULT CALLBACK | CWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

説明

ウィンドウの基本クラス

CWndクラスの基本的な機能
  • ウィンドウ作成
  • ウィンドウメッセージ配送
普通?のウィンドウの使用方法は以下の手順
  • Init() 初期化
  • RegisterWC() ウィンドウクラス登録
  • Create() ウィンドウ作成

CWnd.h の 38 行で定義されています。

コンストラクタとデストラクタ

CWnd::CWnd ( const TCHAR * pszInheritanceAppend = _T("") )

CWnd.cpp の 87 行で定義されています。

参照先 _tcscpy(), m_hInstance, m_hWnd, m_hwndParent, m_szClassInheritances, と NULL.

CWnd::~CWnd ( ) [virtual]

CWnd.cpp の 96 行で定義されています。

参照先 DestroyWindow(), GWLP_USERDATA, LONG_PTR, m_hWnd, NULL, と SetWindowLongPtr.

関数

void CWnd::Init | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent
 | ) |  |

CWnd.cpp の 110 行で定義されています。

参照先 m_hInstance, と m_hwndParent.

ATOM CWnd::RegisterWC | ( | HINSTANCE | hInstance,
 |  | HICON | hIcon,
 |  | HICON | hIconSm,
 |  | HCURSOR | hCursor,
 |  | HBRUSH | hbrBackground,
 |  | LPCTSTR | lpszMenuName,
 |  | LPCTSTR | lpszClassName
 | ) |  |

CWnd.cpp の 122 行で定義されています。

参照先 CWndProc, と m_hInstance.

参照元 CTipWnd::Create(), CSplitterWnd::Create(), CSplitBoxWnd::Create(), CTabWnd::Open(), と CFuncKeyWnd::Open().

HWND CWnd::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | DWORD | dwExStyle,
 |  | LPCTSTR | lpszClassName,
 |  | LPCTSTR | lpWindowName,
 |  | DWORD | dwStyle,
 |  | int | x,
 |  | int | y,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | HMENU | hMenu
 | ) |  |

CWnd.cpp の 155 行で定義されています。

参照先 AfterCreateWindow(), m_hInstance, m_hWnd, m_hwndParent, NULL, PreviCreateWindow(), CWindowCreationHook::Unuse(), と CWindowCreationHook::Use().

参照元 CTipWnd::Create(), CSplitterWnd::Create(), CSplitBoxWnd::Create(), CTabWnd::Open(), と CFuncKeyWnd::Open().

LRESULT CWnd::DispatchEvent | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wp,
 |  | LPARAM | lp |
 | ) |  |  | [virtual]

CWnd.cpp の 211 行で定義されています。

参照先 CallDefWndProc(), CALLH, DispatchEvent_WM_APP(), OnNcDestroy(), と WM_MOUSEWHEEL.

参照元 CWndProc().

LRESULT CWnd::DispatchEvent_WM_APP | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wp,
 |  | LPARAM | lp |
 | ) |  |  | [protected, virtual]

CSplitterWndで再定義されています。

CWnd.cpp の 284 行で定義されています。

参照先 CallDefWndProc().

参照元 DispatchEvent().

virtual void CWnd::PreviCreateWindow ( void ) [inline, protected, virtual]

CWnd.h の 82 行で定義されています。

参照元 Create().

virtual void CWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

CFuncKeyWnd, CTabWnd, と CTipWndで再定義されています。

CWnd.h の 83 行で定義されています。

参照元 Create().

LRESULT CWnd::OnNcDestroy | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |  |
 | ) |  |  | [protected, virtual]

CWnd.cpp の 292 行で定義されています。

参照先 m_hWnd, と NULL.

参照元 DispatchEvent().

virtual CWnd::DECLH ( OnCreate ) [protected, virtual]

virtual CWnd::DECLH ( OnCommand ) [protected, virtual]

virtual CWnd::DECLH ( OnPaint ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnMouseMove ) [protected, virtual]

virtual CWnd::DECLH ( OnMouseWheel ) [protected, virtual]

virtual CWnd::DECLH ( OnTimer ) [protected, virtual]

virtual CWnd::DECLH ( OnSize ) [protected, virtual]

virtual CWnd::DECLH ( OnMove ) [protected, virtual]

virtual CWnd::DECLH ( OnClose ) [protected, virtual]

virtual CWnd::DECLH ( OnDestroy ) [protected, virtual]

virtual CWnd::DECLH ( OnQueryEndSession ) [protected, virtual]

virtual CWnd::DECLH ( OnMeasureItem ) [protected, virtual]

virtual CWnd::DECLH ( OnMenuChar ) [protected, virtual]

virtual CWnd::DECLH ( OnNotify ) [protected, virtual]

virtual CWnd::DECLH ( OnDrawItem ) [protected, virtual]

virtual CWnd::DECLH ( OnCaptureChanged ) [protected, virtual]

virtual CWnd::DECLH ( OnMDIActivate ) [protected, virtual]

LRESULT CWnd::CallDefWndProc | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wp,
 |  | LPARAM | lp |
 | ) |  |  | [protected, virtual]

CWnd.cpp の 299 行で定義されています。

参照元 DispatchEvent(), と DispatchEvent_WM_APP().

HWND CWnd::GetHwnd ( ) const [inline]

CWnd.h の 154 行で定義されています。

参照元 CFuncKeyWnd::CalcButtonSize(), CTabWnd::Close(), CViewCommander::Command_NEXTGROUP(), CViewCommander::Command_PREVGROUP(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_TAB_JOINTNEXT(), CViewCommander::Command_TAB_JOINTPREV(), CViewCommander::Command_TAB_MOVELEFT(), CViewCommander::Command_TAB_MOVERIGHT(), CViewCommander::Command_TAB_SEPARATE(), CEditWnd::Create(), CFuncKeyWnd::CreateButtons(), CMainStatusBar::CreateStatusBar(), CMainStatusBar::DestroyStatusBar(), CSplitterWnd::DoSplit(), CSplitterWnd::DrawSplitter(), CEditWnd::EndLayoutBars(), CEditDoc::GetSplitterHwnd(), CTipWnd::GetWindowSize(), CTipWnd::Hide(), CSplitterWnd::HSplitOnOff(), CEditWnd::InitMenu(), IsFuncChecked(), CEditWnd::LayoutFuncKey(), CEditWnd::LayoutTabBar(), CSplitterWnd::OnLButtonDblClk(), CTabWnd::OnLButtonDown(), CSplitterWnd::OnLButtonDown(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CSplitterWnd::OnMouseMove(), CEditWnd::OnMouseWheel(), CTabWnd::OnPaint(), CSplitterWnd::OnPaint(), CTabWnd::OnRButtonDown(), CTabWnd::OnSize(), CSplitterWnd::OnSize(), CFuncKeyWnd::OnSize(), CEditWnd::OnSize(), CEditView::OnSize(), CFuncKeyWnd::OnTimer(), CTabWnd::Open(), CFuncKeyWnd::Open(), CEditWnd::PopupWinList(), CEditWnd::PrintPreviewModeONOFF(), CTipWnd::Show(), CEditView::ShowKeywordHelp(), CFuncKeyWnd::SizeBox_ONOFF(), CTabWnd::TabListMenu(), CTabWnd::TabWindowNotify(), CTabWnd::TabWndDispatchEvent(), CFuncKeyWnd::Timer_ONOFF(), CSplitterWnd::VHSplitOnOff(), と CSplitterWnd::VSplitOnOff().

HWND CWnd::GetParentHwnd ( ) const [inline]

CWnd.h の 155 行で定義されています。

参照元 CTabWnd::AdjustWindowPlacement(), CSplitBoxWnd::Create(), CSplitterWnd::DoSplit(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), CTabWnd::JoinNext(), CTabWnd::JoinPrev(), CTabWnd::MoveLeft(), CTabWnd::MoveRight(), CFuncKeyWnd::OnCommand(), CTabWnd::OnLButtonDblClk(), CSplitBoxWnd::OnLButtonDblClk(), CSplitterWnd::OnLButtonDown(), CSplitBoxWnd::OnLButtonDown(), CTabWnd::OnLButtonUp(), CSplitBoxWnd::OnLButtonUp(), CSplitBoxWnd::OnMouseMove(), CSplitterWnd::OnSize(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CFuncKeyWnd::OnTimer(), CTabWnd::Refresh(), CTabWnd::ReorderTab(), CTabWnd::Separate(), CTabWnd::SeparateGroup(), CTabWnd::TabListMenu(), と CTabWnd::TabWindowNotify().

HINSTANCE CWnd::GetAppInstance ( ) const [inline]

CWnd.h の 156 行で定義されています。

参照元 CTabWnd::InitImageList(), CTabWnd::OnMouseMove(), CTabWnd::Open(), CFuncKeyWnd::Open(), と CFuncKeyWnd::SizeBox_ONOFF().

void CWnd::_SetHwnd ( HWND hwnd ) [inline]

CWnd.h の 159 行で定義されています。

参照元 CWindowCreationHook::CBTProc(), CTabWnd::OnDestroy(), と CFuncKeyWnd::OnDestroy().

void CWnd::DestroyWindow ( ) [inline]

CWnd.h の 162 行で定義されています。

参照先 NULL.

参照元 CTabWnd::Close(), CFuncKeyWnd::Close(), CTabWnd::OnDestroy(), CFuncKeyWnd::OnDestroy(), CFuncKeyWnd::SizeBox_ONOFF(), と ~CWnd().

フレンドと関連する関数

LRESULT CALLBACK CWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [friend]

CWnd.cpp の 26 行で定義されています。

参照元 RegisterWC().

変数

TCHAR CWnd::m_szClassInheritances[1024] [private]

CWnd.h の 171 行で定義されています。

参照元 CWnd().

HINSTANCE CWnd::m_hInstance [private]

CWnd.h の 172 行で定義されています。

参照元 Create(), CWnd(), Init(), と RegisterWC().

HWND CWnd::m_hwndParent [private]

CWnd.h の 173 行で定義されています。

参照元 Create(), CWnd(), と Init().

HWND CWnd::m_hWnd [private]

CWnd.h の 174 行で定義されています。

参照元 Create(), CWnd(), CTabWnd::GetNextGroupWnd(), CTabWnd::GetPrevGroupWnd(), OnNcDestroy(), CTabWnd::Refresh(), CTabWnd::TabListMenu(), と ~CWnd().

このクラスの説明は次のファイルから生成されました:
  • CWnd.h
  • CWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWnd メンバ一覧

これは全メンバの一覧です。CWnd継承メンバも含んでいます。

_SetHwnd(HWND hwnd) | CWnd | [inline]
AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(HINSTANCE hInstance, HWND hwndParent, DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HMENU hMenu) | CWnd |
CWnd(const TCHAR *pszInheritanceAppend=_T("")) | CWnd |
CWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CWnd | [friend]
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]
DestroyWindow() | CWnd | [inline]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
GetAppInstance() const | CWnd | [inline]
GetHwnd() const | CWnd | [inline]
GetParentHwnd() const | CWnd | [inline]
Init(HINSTANCE, HWND) | CWnd |
m_hInstance | CWnd | [private]
m_hWnd | CWnd | [private]
m_hwndParent | CWnd | [private]
m_szClassInheritances | CWnd | [private]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HINSTANCE hInstance, HICON hIcon, HICON hIconSm, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName) | CWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス CWordParse

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWordParse

#include <CWordParse.h>

すべてのメンバ一覧

Static Public メソッド

static bool | WhereCurrentWord_2 (const wchar_t *pLine, CLogicInt nLineLen, CLogicInt nIdx, CLogicInt *pnIdxFrom, CLogicInt *pnIdxTo, CNativeW *pcmcmWord, CNativeW *pcmcmWordLeft)
現在位置の単語の範囲を調べる staticメンバ
static ECharKind | WhatKindOfChar (const wchar_t *pData, int pDataLen, int nIdx)
現在位置の文字の種類を調べる
static bool | SearchNextWordPosition (const wchar_t *pLine, CLogicInt nLineLen, CLogicInt nIdx, CLogicInt *pnColmNew, BOOL bStopsBothEnds)

説明

CWordParse.h の 30 行で定義されています。

関数

bool CWordParse::WhereCurrentWord_2 | ( | const wchar_t * | pLine,
 |  | CLogicInt | nLineLen,
 |  | CLogicInt | nIdx,
 |  | CLogicInt * | pnIdxFrom,
 |  | CLogicInt * | pnIdxTo,
 |  | CNativeW * | pcmcmWord,
 |  | CNativeW * | pcmcmWordLeft |
 | ) |  |  | [static]

現在位置の単語の範囲を調べる staticメンバ

作者:
N.Nakatani
戻り値:
true | 成功 現在位置のデータは「単語」と認識する。
false | 失敗 現在位置のデータは「単語」とは言いきれない気がする。
作者:
N.Nakatani
戻り値:
true | 成功 現在位置のデータは「単語」と認識する。
false | 失敗 現在位置のデータは「単語」とは言いきれない気がする。

CWordParse.cpp の 13 行で定義されています。

参照先 CK_HIRA, CK_ZEN_KATA, CK_ZEN_NOBASU, WCODE::CR, CNativeW::GetCharPrev(), CNativeW::GetSizeOfChar(), WCODE::LF, NULL, CNativeW::SetString(), と WhatKindOfChar().

参照元 CEditView::IsSearchString(), と CDocLineMgr::WhereCurrentWord().

ECharKind CWordParse::WhatKindOfChar | ( | const wchar_t * | pData,
 |  | int | pDataLen,
 |  | int | nIdx |
 | ) |  |  | [static]

現在位置の文字の種類を調べる

CWordParse.cpp の 130 行で定義されています。

参照先 CK_CR, CK_CSYM, CK_ETC, CK_GREEK, CK_HIRA, CK_KATA, CK_LF, CK_NULL, CK_SPACE, CK_TAB, CK_ZEN_CSYM, CK_ZEN_ETC, CK_ZEN_KATA, CK_ZEN_KIGO, CK_ZEN_NOBASU, CK_ZEN_ROS, CK_ZEN_SKIGO, CK_ZEN_SPACE, WCODE::CR, CNativeW::GetSizeOfChar(), WCODE::isBoxDrawing(), isCSymbol(), isCSymbolZen(), WCODE::isCyrillic(), WCODE::isGreek(), WCODE::isHankaku(), WCODE::isHankakuKatakana(), WCODE::isHiragana(), WCODE::isZenkakuKatakana(), WCODE::isZenkakuKigou(), WCODE::isZenkakuSpace(), WCODE::LF, WCODE::SPACE, と WCODE::TAB.

参照元 CDocLineMgr::PrevOrNextWord(), SearchNextWordPosition(), と WhereCurrentWord_2().

bool CWordParse::SearchNextWordPosition | ( | const wchar_t * | pLine,
 |  | CLogicInt | nLineLen,
 |  | CLogicInt | nIdx,
 |  | CLogicInt * | pnColmNew,
 |  | BOOL | bStopsBothEnds |
 | ) |  |  | [static]

次の単語の先頭を探す pLine（長さ：nLineLen）の文字列から単語を探す。 探し始める位置はnIdxで指定。方向は後方に限定。単語の両端で止まらない（関係ないから）

CWordParse.cpp の 180 行で定義されています。

参照先 CK_HIRA, CK_SPACE, CK_TAB, CK_ZEN_KATA, CK_ZEN_NOBASU, CNativeW::GetSizeOfChar(), と WhatKindOfChar().

参照元 CDocLineMgr::PrevOrNextWord().

このクラスの説明は次のファイルから生成されました:
  • CWordParse.h
  • CWordParse.cpp
Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWordParse メンバ一覧

これは全メンバの一覧です。CWordParse継承メンバも含んでいます。

SearchNextWordPosition(const wchar_t *pLine, CLogicInt nLineLen, CLogicInt nIdx, CLogicInt *pnColmNew, BOOL bStopsBothEnds) | CWordParse | [static]
WhatKindOfChar(const wchar_t *pData, int pDataLen, int nIdx) | CWordParse | [static]
WhereCurrentWord_2(const wchar_t *pLine, CLogicInt nLineLen, CLogicInt nIdx, CLogicInt *pnIdxFrom, CLogicInt *pnIdxTo, CNativeW *pcmcmWord, CNativeW *pcmcmWordLeft) | CWordParse | [static]

Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


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 の 514 行で定義されています。

参照先 ImplementsIUnknown< Base >::AddRef(), Error(), m_Engine, m_InterfaceObject, と m_Valid.

CWSHClient::~CWSHClient ( )

CWSH.cpp の 543 行で定義されています。

参照先 m_Engine, m_InterfaceObject, NULL, と ImplementsIUnknown< Base >::Release().

関数

void CWSHClient::Execute ( wchar_t const * AScript )

CWSH.cpp の 552 行で定義されています。

参照先 Error(), と m_Engine.

参照元 CWSHMacroManager::ExecKeyMacro().

void CWSHClient::Error | ( | BSTR | Description,
 |  | BSTR | Source
 | ) |  |

CWSH.cpp の 581 行で定義されています。

参照先 m_Data, m_OnError, と NULL.

参照元 CWSHClient(), Error(), Execute(), と CWSHSite::OnScriptError().

void CWSHClient::Error ( wchar_t * Description )

CWSH.cpp の 587 行で定義されています。

参照先 Error().

変数

IActiveScript* CWSHClient::m_Engine [private]

CWSH.h の 118 行で定義されています。

参照元 CWSHClient(), Execute(), と ~CWSHClient().

ScriptErrorHandler CWSHClient::m_OnError [protected]

CWSH.h の 120 行で定義されています。

参照元 Error().

CInterfaceObject* CWSHClient::m_InterfaceObject

CWSH.h の 124 行で定義されています。

参照元 CWSHClient(), CWSHMacroManager::ExecKeyMacro(), CWSHSite::GetItemInfo(), と ~CWSHClient().

void* CWSHClient::m_Data

CWSH.h の 125 行で定義されています。

参照元 Error(), CWSHSite::GetWindow(), と CInterfaceObject::Invoke().

bool CWSHClient::m_Valid

CWSH.h の 126 行で定義されています。

参照元 CWSHClient(), と CWSHMacroManager::ExecKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CWSH.h
  • CWSH.cpp
Sakura-Editorに対してSat Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:21 2007に生成されました。 doxygen 1.5.4


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, const TCHAR *Path)

Static Public メソッド

static CMacroManagerBase * | Creator (const TCHAR *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 の 663 行で定義されています。

参照元 Creator().

CWSHMacroManager::~CWSHMacroManager ( ) [virtual]

CWSH.cpp の 667 行で定義されています。

関数

void CWSHMacroManager::ExecKeyMacro ( CEditView * EditView ) const [virtual]

WSHマクロの実行

引数:
EditView [in] 操作対象EditView

CMacroManagerBaseを実装しています。

CWSH.cpp の 701 行で定義されています。

参照先 CWSHClient::Execute(), CEditView::GetCaret(), m_EngineName, CWSHClient::m_InterfaceObject, CSMacroMgr::m_MacroFuncInfoArr, CSMacroMgr::m_MacroFuncInfoNotCommandArr, m_Source, CWSHClient::m_Valid, MacroError(), ReadyCommands(), と CCaret::ShowEditCaret().

BOOL CWSHMacroManager::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const TCHAR * | szPath |
 | ) |  |  | [virtual]

WSHマクロの読み込み

引数:
Instance | [in] インスタンスハンドル(未使用)
Path | [in] ファイルのパス

CMacroManagerBaseを実装しています。

CWSH.cpp の 724 行で定義されています。

参照先 FALSE, m_Source, CTextInputStream::ReadLineW(), と TRUE.

CMacroManagerBase * CWSHMacroManager::Creator ( const TCHAR * FileExt ) [static]

CWSH.cpp の 739 行で定義されています。

参照先 _countof, _tcscpy(), _tcstowcs(), CWSHMacroManager(), NULL, と ReadRegistry().

参照元 declare().

void CWSHMacroManager::declare ( void ) [static]

CWSH.cpp の 759 行で定義されています。

参照先 Creator(), CMacroFactory::Instance(), と CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

static void CWSHMacroManager::EnumEngines ( EngineCallback Proc ) [static]

void CWSHMacroManager::ReadyCommands | ( | CInterfaceObject * | Object,
 |  | MacroFuncInfo * | Info |
 | ) |  |  | [static, protected]

CWSH.cpp の 671 行で定義されています。

参照先 CInterfaceObject::AddMethod(), MacroFuncInfo::m_nFuncID, MacroFuncInfo::m_pszFuncName, MacroFuncInfo::m_varArguments, MacroFuncInfo::m_varResult, と MacroCommand().

参照元 ExecKeyMacro().

変数

std::wstring CWSHMacroManager::m_Source [protected]

CWSHManager.h の 47 行で定義されています。

参照元 ExecKeyMacro(), と LoadKeyMacro().

std::wstring CWSHMacroManager::m_EngineName [protected]

CWSHManager.h の 48 行で定義されています。

参照元 ExecKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CWSHManager.h
  • CWSH.cpp
Sakura-Editorに対してSat Nov 17 20:29:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWSHMacroManager メンバ一覧

これは全メンバの一覧です。CWSHMacroManager継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
Creator(const TCHAR *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, const TCHAR *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 Nov 17 20:29:22 2007に生成されました。 doxygen 1.5.4


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 の 193 行で定義されています。

コンストラクタとデストラクタ

CWSHSite::CWSHSite ( CWSHClient * AClient ) [inline]

CWSH.cpp の 200 行で定義されています。

関数

virtual ULONG _stdcall CWSHSite::AddRef ( ) [inline, virtual]

CWSH.cpp の 204 行で定義されています。

参照先 m_RefCount.

virtual ULONG _stdcall CWSHSite::Release ( ) [inline, virtual]

CWSH.cpp の 208 行で定義されています。

参照先 m_RefCount.

virtual HRESULT STDMETHODCALLTYPE CWSHSite::QueryInterface | ( | REFIID | iid,
 |  | void ** | ppvObject |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 217 行で定義されています。

参照先 m_RefCount, と NULL.

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetLCID ( LCID * plcid ) [inline, virtual]

CWSH.cpp の 232 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetItemInfo | ( | LPCOLESTR | pstrName,
 |  | DWORD | dwReturnMask,
 |  | IUnknown ** | ppiunkItem,
 |  | ITypeInfo ** | ppti |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 241 行で定義されています。

参照先 ImplementsIUnknown< Base >::AddRef(), CInterfaceObject::GetTypeInfo(), m_Client, と CWSHClient::m_InterfaceObject.

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetDocVersionString ( BSTR * pbstrVersion ) [inline, virtual]

CWSH.cpp の 267 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnScriptTerminate | ( | const VARIANT * | pvarResult,
 |  | const EXCEPINFO * | pexcepinfo |
 | ) |  |  | [inline, virtual]

CWSH.cpp の 276 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnStateChange ( SCRIPTSTATE ssScriptState ) [inline, virtual]

CWSH.cpp の 286 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnScriptError ( IActiveScriptError * pscripterror ) [inline, virtual]

CWSH.cpp の 297 行で定義されています。

参照先 auto_sprintf(), CWSHClient::Error(), と m_Client.

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnEnterScript ( ) [inline, virtual]

CWSH.cpp の 323 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnLeaveScript ( ) [inline, virtual]

CWSH.cpp の 330 行で定義されています。

virtual HRESULT __stdcall CWSHSite::GetWindow ( HWND * phwnd ) [inline, virtual]

CWSH.cpp の 338 行で定義されています。

参照先 m_Client, と CWSHClient::m_Data.

virtual HRESULT __stdcall CWSHSite::EnableModeless ( BOOL fEnable ) [inline, virtual]

CWSH.cpp の 346 行で定義されています。

変数

CWSHClient* CWSHSite::m_Client [private]

CWSH.cpp の 196 行で定義されています。

参照元 GetItemInfo(), GetWindow(), と OnScriptError().

ITypeInfo* CWSHSite::m_TypeInfo [private]

CWSH.cpp の 197 行で定義されています。

ULONG CWSHSite::m_RefCount [private]

CWSH.cpp の 198 行で定義されています。

参照元 AddRef(), QueryInterface(), と Release().

このクラスの説明は次のファイルから生成されました:
  • CWSH.cpp
Sakura-Editorに対してSat Nov 17 20:29:22 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:22 2007に生成されました。 doxygen 1.5.4


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 * | pThis,
 |  | REFIID | owniid,
 |  | REFIID | riid,
 |  | void ** | ppvObj |
 | ) |  |  | [static, protected]

CDropTarget.cpp の 34 行で定義されています。

参照先 NULL.

参照元 CYbInterfaceImpl< IDropTarget >::QueryInterface().

変数

COleLibrary CYbInterfaceBase::m_olelib [static, private]

CDropTarget.h の 45 行で定義されています。

参照元 CYbInterfaceBase(), と ~CYbInterfaceBase().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Nov 17 20:29:23 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート CYbInterfaceImpl< BASEINTERFACE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CYbInterfaceImpl< BASEINTERFACE >

#include <CDropTarget.h>

CYbInterfaceImpl< BASEINTERFACE >に対する継承グラフ

[凡例]
CYbInterfaceImpl< BASEINTERFACE >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

CYbInterfaceImpl ()
STDMETHOD() | QueryInterface (REFIID riid, void **ppvObj)
STDMETHOD_ (ULONG, AddRef)(void)
STDMETHOD_ (ULONG, Release)(void)

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>
STDMETHOD() CYbInterfaceImpl< BASEINTERFACE >::QueryInterface | ( | REFIID | riid,
 |  | void ** | ppvObj |
 | ) |  |  | [inline]

CDropTarget.h の 60 行で定義されています。

template<class BASEINTERFACE>
CYbInterfaceImpl< BASEINTERFACE >::STDMETHOD_ | ( | ULONG | ,
 |  | AddRef |  |
 | ) |  |  | [inline]

CDropTarget.h の 62 行で定義されています。

template<class BASEINTERFACE>
CYbInterfaceImpl< BASEINTERFACE >::STDMETHOD_ | ( | ULONG | ,
 |  | Release |  |
 | ) |  |  | [inline]

CDropTarget.h の 64 行で定義されています。

変数

template<class BASEINTERFACE>
REFIID CYbInterfaceImpl< BASEINTERFACE >::m_owniid [static, private]

CDropTarget.h の 57 行で定義されています。

参照元 CYbInterfaceImpl< IDropTarget >::QueryInterface().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Nov 17 20:29:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CYbInterfaceImpl< BASEINTERFACE > メンバ一覧

これは全メンバの一覧です。CYbInterfaceImpl< BASEINTERFACE >継承メンバも含んでいます。

CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< BASEINTERFACE > | [inline]
m_owniid | CYbInterfaceImpl< BASEINTERFACE > | [private, static]
QueryInterface(REFIID riid, void **ppvObj) | CYbInterfaceImpl< BASEINTERFACE > | [inline]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
STDMETHOD_(ULONG, AddRef)(void) | CYbInterfaceImpl< BASEINTERFACE > | [inline]
STDMETHOD_(ULONG, Release)(void) | CYbInterfaceImpl< BASEINTERFACE > | [inline]
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Nov 17 20:29:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 DispPos

  • 構成
  • クラス階層
  • 構成メンバ

構造体 DispPos

#include <DispPos.h>

DispPosのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

DispPos (int nDx, int nDy)
void | InitDrawPos (const POINT &pt)
CMyPoint | GetDrawPos () const
void | ForwardDrawCol (int nColOffset)
void | ForwardDrawLine (int nOffsetLine)
void | ResetDrawCol ()
CLayoutInt | GetDrawCol () const
CLayoutInt | GetDrawLine () const
void | SetLayoutLineRef (CLayoutInt nLogicLine)
void | ForwardLayoutLineRef (int nOffsetLine)
CLayoutInt | GetLayoutLineRef () const

Private 変数

int | m_nDx
int | m_nDy
POINT | m_ptDrawOrigin
CLayoutPoint m_ptDrawLayout
CLayoutInt m_nLineRef

説明

DispPos.h の 3 行で定義されています。

コンストラクタとデストラクタ

DispPos::DispPos | ( | int | nDx,
 |  | int | nDy |
 | ) |  |  | [inline]

DispPos.h の 5 行で定義されています。

参照先 m_nLineRef, m_ptDrawLayout, と m_ptDrawOrigin.

関数

void DispPos::InitDrawPos ( const POINT & pt ) [inline]

DispPos.h の 20 行で定義されています。

参照先 m_ptDrawLayout, と m_ptDrawOrigin.

参照元 CEditView::OnPaint().

CMyPoint DispPos::GetDrawPos ( ) const [inline]

DispPos.h の 27 行で定義されています。

参照先 m_nDx, m_nDy, m_ptDrawLayout, と m_ptDrawOrigin.

参照元 CTextDrawer::DispEmptyLine(), CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CEditView::DispLineNew(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), CTextArea::GenerateClipRect(), CTextArea::GenerateClipRectLine(), CTextArea::GenerateClipRectRight(), と CEditView::OnPaint().

void DispPos::ForwardDrawCol ( int nColOffset ) [inline]

DispPos.h の 36 行で定義されています。

参照先 m_ptDrawLayout.

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CEditView::DispLineNew(), CTextDrawer::DispTab(), CTextDrawer::DispText(), と CTextDrawer::DispZenkakuSpace().

void DispPos::ForwardDrawLine ( int nOffsetLine ) [inline]

DispPos.h の 37 行で定義されています。

参照先 m_ptDrawLayout.

参照元 CTextDrawer::DispEmptyLine(), と CEditView::DispLineNew().

void DispPos::ResetDrawCol ( ) [inline]

DispPos.h の 40 行で定義されています。

参照先 m_ptDrawLayout.

参照元 CEditView::DispLineNew(), と CEditView::OnPaint().

CLayoutInt DispPos::GetDrawCol ( ) const [inline]

DispPos.h の 43 行で定義されています。

参照先 m_ptDrawLayout.

参照元 CEditView::DispLineNew(), と CTextDrawer::DispTab().

CLayoutInt DispPos::GetDrawLine ( ) const [inline]

DispPos.h の 44 行で定義されています。

参照先 m_ptDrawLayout.

void DispPos::SetLayoutLineRef ( CLayoutInt nLogicLine ) [inline]

DispPos.h の 51 行で定義されています。

参照先 m_nLineRef.

参照元 CEditView::DispLineNew(), と CEditView::OnPaint().

void DispPos::ForwardLayoutLineRef ( int nOffsetLine ) [inline]

DispPos.h の 52 行で定義されています。

参照先 m_nLineRef.

参照元 CEditView::DispLineNew().

CLayoutInt DispPos::GetLayoutLineRef ( ) const [inline]

DispPos.h の 55 行で定義されています。

参照先 m_nLineRef.

参照元 CTextDrawer::DispEmptyLine(), CEditView::DispLineNew(), と CEditView::OnPaint().

変数

int DispPos::m_nDx [private]

DispPos.h の 60 行で定義されています。

参照元 GetDrawPos().

int DispPos::m_nDy [private]

DispPos.h の 61 行で定義されています。

参照元 GetDrawPos().

POINT DispPos::m_ptDrawOrigin [private]

DispPos.h の 62 行で定義されています。

参照元 DispPos(), GetDrawPos(), と InitDrawPos().

CLayoutPoint DispPos::m_ptDrawLayout [private]

DispPos.h の 65 行で定義されています。

参照元 DispPos(), ForwardDrawCol(), ForwardDrawLine(), GetDrawCol(), GetDrawLine(), GetDrawPos(), InitDrawPos(), と ResetDrawCol().

CLayoutInt DispPos::m_nLineRef [private]

DispPos.h の 68 行で定義されています。

参照元 DispPos(), ForwardLayoutLineRef(), GetLayoutLineRef(), と SetLayoutLineRef().

この構造体の説明は次のファイルから生成されました:
  • DispPos.h
Sakura-Editorに対してSat Nov 17 20:29:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

DispPos メンバ一覧

これは全メンバの一覧です。DispPos継承メンバも含んでいます。

DispPos(int nDx, int nDy) | DispPos | [inline]
ForwardDrawCol(int nColOffset) | DispPos | [inline]
ForwardDrawLine(int nOffsetLine) | DispPos | [inline]
ForwardLayoutLineRef(int nOffsetLine) | DispPos | [inline]
GetDrawCol() const | DispPos | [inline]
GetDrawLine() const | DispPos | [inline]
GetDrawPos() const | DispPos | [inline]
GetLayoutLineRef() const | DispPos | [inline]
InitDrawPos(const POINT &pt) | DispPos | [inline]
m_nDx | DispPos | [private]
m_nDy | DispPos | [private]
m_nLineRef | DispPos | [private]
m_ptDrawLayout | DispPos | [private]
m_ptDrawOrigin | DispPos | [private]
ResetDrawCol() | DispPos | [inline]
SetLayoutLineRef(CLayoutInt nLogicLine) | DispPos | [inline]

Sakura-Editorに対してSat Nov 17 20:29:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 DLLSHAREDATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 DLLSHAREDATA

共有データ領域 [詳細]

#include <CShareData.h>

DLLSHAREDATAのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

template<class T>
T * | GetWorkBuffer ()
template<class T>
size_t | GetWorkBufferCount ()

Public 変数

unsigned int | m_vStructureVersion
データ構造 Version
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
StaticString< TCHAR, _MAX_PATH > | m_szOPENFOLDERArr [MAX_OPENFOLDER]
bool | m_bOPENFOLDERArrFavorite [MAX_OPENFOLDER]
int | m_nTransformFileNameArrNum
TCHAR | m_szTransformFileNameFrom [MAX_TRANSFORM_FILENAME][_MAX_PATH]
TCHAR | m_szTransformFileNameTo [MAX_TRANSFORM_FILENAME][_MAX_PATH]
StaticVector< StaticString
< WCHAR, _MAX_PATH >,
MAX_SEARCHKEY, const WCHAR * > 		m_aSearchKeys
StaticVector< StaticString
< WCHAR, _MAX_PATH >,
MAX_REPLACEKEY, const WCHAR * > 		m_aReplaceKeys
StaticVector< StaticString
< TCHAR, _MAX_PATH >,
MAX_GREPFILE, const TCHAR * > 		m_aGrepFiles
StaticVector< StaticString
< TCHAR, _MAX_PATH >,
MAX_GREPFOLDER, const TCHAR * > 		m_aGrepFolders
SFilePath m_szMACROFOLDER
SFilePath m_szIMPORTFOLDER
MacroRec | m_MacroTable [MAX_CUSTMACRO]
キー割り当て用マクロテーブル
int | m_TagJumpNum
タグジャンプ情報の有効データ数
int | m_TagJumpTop
スタックの一番上の位置
TagJump | m_TagJump [MAX_TAGJUMPNUM]
タグジャンプ情報
StaticVector< StaticString
< TCHAR, MAX_CMDLEN >,
MAX_CMDARR > 		m_aCommands
IniFolder m_IniFolder
CommonSetting 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
TCHAR | m_szKeyMacroFileName [MAX_PATH]
int | m_nExecFlgOpt
BOOL | m_bLineNumIsCRLF
int | m_nDiffFlgOpt
TCHAR | m_szTagsCmdLine [_MAX_PATH]
int | m_nTagsOpt
StaticVector< StaticString
< WCHAR, _MAX_PATH >,
MAX_TAGJUMP_KEYWORD > 		m_aTagJumpKeywords
BOOL | m_bTagJumpICase
大文字小文字を同一視
BOOL | m_bTagJumpAnyWhere
文字列の途中にマッチ

Private 変数

BYTE | m_pWork [32000 *sizeof(TCHAR)]

説明

共有データ領域

CShareData.h の 300 行で定義されています。

関数

template<class T>
T* DLLSHAREDATA::GetWorkBuffer ( ) [inline]

CShareData.h の 315 行で定義されています。

参照先 m_pWork.

参照元 CViewCommander::Command_COMPARE(), CViewCommander::Command_EXTHTMLHELP(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CNormalProcess::Initialize(), CEditView::MakeDiffTmpFile(), CDlgFuncList::OnJump(), CEditView::TagJumpSub(), と CShareData::TraceOut().

template<class T>
size_t DLLSHAREDATA::GetWorkBufferCount ( ) [inline]

CShareData.h の 318 行で定義されています。

参照先 m_pWork.

参照元 CViewCommander::Command_COMPARE(), CEditWnd::DispatchEvent(), と CEditView::MakeDiffTmpFile().

変数

unsigned int DLLSHAREDATA::m_vStructureVersion

データ構造 Version

CShareData.h の 306 行で定義されています。

参照元 CShareData::Init().

BYTE DLLSHAREDATA::m_pWork[32000 *sizeof(TCHAR)] [private]

CShareData.h の 312 行で定義されています。

参照元 GetWorkBuffer(), と GetWorkBufferCount().

FileInfo DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO

CShareData.h の 321 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CEditWnd::DispatchEvent(), CDlgDiff::GetData(), CDlgCompare::GetData(), CShareData::IsPathOpened(), CEditWnd::OnDropFiles(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

DWORD DLLSHAREDATA::m_dwProductVersionMS

CShareData.h の 323 行で定義されています。

参照元 CShareData::Init(), と CShareData::ShareData_IO_Other().

DWORD DLLSHAREDATA::m_dwProductVersionLS

CShareData.h の 324 行で定義されています。

参照元 CShareData::Init(), と CShareData::ShareData_IO_Other().

HWND DLLSHAREDATA::m_hwndTray

CShareData.h の 325 行で定義されています。

参照元 CViewCommander::Command_EXTHTMLHELP(), CEditWnd::Create(), CEditWnd::DispatchEvent(), CControlTray::DoGrep(), CShareData::Init(), CControlProcess::Initialize(), CEditDoc::OpenPropertySheet(), CEditDoc::OpenPropertySheetTypes(), CControlProcess::Terminate(), と CControlTray::TerminateApplication().

HWND DLLSHAREDATA::m_hwndDebug

CShareData.h の 326 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CShareData::Init(), CEditWnd::SetDebugModeOFF(), CEditWnd::SetDebugModeON(), CShareData::TraceOut(), と CEditWnd::WinListMenu().

HACCEL DLLSHAREDATA::m_hAccel

CShareData.h の 327 行で定義されています。

参照元 CControlTray::CControlTray(), CControlTray::DispatchEvent(), CShareData::Init(), CEditWnd::MessageLoop(), と CControlTray::OnDestroy().

LONG DLLSHAREDATA::m_nSequences

CShareData.h の 328 行で定義されています。

参照元 CShareData::AddEditWndList(), CShareData::Init(), と CShareData::SeparateGroup().

LONG DLLSHAREDATA::m_nGroupSequences

CShareData.h の 329 行で定義されています。

参照元 CShareData::AddEditWndList(), CShareData::Init(), CShareData::ResetGroupId(), と CShareData::SeparateGroup().

int DLLSHAREDATA::m_nEditArrNum

CShareData.h の 331 行で定義されています。

参照元 CViewCommander::Command_MINIMIZE_ALL(), CEditWnd::Create(), CControlTray::CreatePopUpMenu_L(), CShareData::GetEditNode(), CShareData::GetEditNodeAt(), CShareData::GetEditorWindowsNum(), CShareData::GetOpenedWindowArrCore(), CTabWnd::HideOtherWindows(), CShareData::Init(), IsFuncEnable(), CShareData::IsPathOpened(), CEditWnd::OnDropFiles(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), CShareData::ResetGroupId(), と CEditWnd::WindowTopMost().

EditNode DLLSHAREDATA::m_pEditArr[MAX_EDITWINDOWS]

CShareData.h の 332 行で定義されています。

参照元 CViewCommander::Command_MINIMIZE_ALL(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), CShareData::GetEditNode(), CShareData::GetEditNodeAt(), CShareData::GetEditorWindowsNum(), CShareData::GetOpenedWindowArrCore(), CTabWnd::HideOtherWindows(), CShareData::IsPathOpened(), CEditWnd::OnCommand(), CShareData::ReorderTab(), CShareData::ResetGroupId(), と CEditWnd::WindowTopMost().

BOOL DLLSHAREDATA::m_bEditWndChanging

CShareData.h の 337 行で定義されています。

参照元 ActivateFrameWindow(), CEditWnd::DispatchEvent(), CShareData::Init(), CEditWnd::OnCaptionTimer(), と CTabWnd::ShowHideWindow().

int DLLSHAREDATA::m_nMRUArrNum

CShareData.h の 340 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

FileInfo DLLSHAREDATA::m_fiMRUArr[MAX_MRU]

CShareData.h の 341 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

bool DLLSHAREDATA::m_bMRUArrFavorite[MAX_MRU]

CShareData.h の 342 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

int DLLSHAREDATA::m_nOPENFOLDERArrNum

CShareData.h の 345 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

StaticString<TCHAR,_MAX_PATH> DLLSHAREDATA::m_szOPENFOLDERArr[MAX_OPENFOLDER]

CShareData.h の 346 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

bool DLLSHAREDATA::m_bOPENFOLDERArrFavorite[MAX_OPENFOLDER]

CShareData.h の 347 行で定義されています。

参照元 CShareData::ShareData_IO_Mru().

int DLLSHAREDATA::m_nTransformFileNameArrNum

CShareData.h の 349 行で定義されています。

参照元 CShareData::Init(), CShareData::ShareData_IO_Nickname(), と CShareData::TransformFileName_MakeCache().

TCHAR DLLSHAREDATA::m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CShareData.h の 350 行で定義されています。

参照元 CShareData::Init(), CShareData::ShareData_IO_Nickname(), と CShareData::TransformFileName_MakeCache().

TCHAR DLLSHAREDATA::m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CShareData.h の 351 行で定義されています。

参照元 CShareData::GetTransformFileNameFast(), CShareData::Init(), と CShareData::ShareData_IO_Nickname().

StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_SEARCHKEY, const WCHAR*> DLLSHAREDATA::m_aSearchKeys

CShareData.h の 353 行で定義されています。

参照元 CMainToolBar::AcceptSharedSearchKey(), CMacro::AddLParam(), CDlgGrep::CDlgGrep(), CEditView::ChangeCurRegexp(), CViewCommander::Command_SEARCH_CLEARMARK(), CMainToolBar::CreateToolBar(), CControlTray::DoGrep(), CShareData::Init(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), と CShareData::ShareData_IO_Keys().

StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_REPLACEKEY, const WCHAR*> DLLSHAREDATA::m_aReplaceKeys

CShareData.h の 354 行で定義されています。

参照元 CMacro::AddLParam(), CShareData::Init(), CDlgReplace::SetData(), と CShareData::ShareData_IO_Keys().

StaticVector< StaticString<TCHAR, _MAX_PATH>, MAX_GREPFILE, const TCHAR*> DLLSHAREDATA::m_aGrepFiles

CShareData.h の 355 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::CDlgGrep(), CShareData::Init(), CDlgGrep::SetData(), と CShareData::ShareData_IO_Grep().

StaticVector< StaticString<TCHAR, _MAX_PATH>, MAX_GREPFOLDER, const TCHAR*> DLLSHAREDATA::m_aGrepFolders

CShareData.h の 356 行で定義されています。

参照元 CMacro::AddLParam(), CDlgGrep::CDlgGrep(), CShareData::Init(), CDlgGrep::SetData(), と CShareData::ShareData_IO_Grep().

SFilePath DLLSHAREDATA::m_szMACROFOLDER

CShareData.h の 358 行で定義されています。

参照元 CViewCommander::Command_LOADKEYMACRO(), CShareData::GetMacroFilename(), CShareData::Init(), と CShareData::ShareData_IO_Folders().

SFilePath DLLSHAREDATA::m_szIMPORTFOLDER

CShareData.h の 359 行で定義されています。

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CShareData::Init(), 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().

MacroRec DLLSHAREDATA::m_MacroTable[MAX_CUSTMACRO]

キー割り当て用マクロテーブル

CShareData.h の 362 行で定義されています。

参照元 CShareData::BeReloadWhenExecuteMacro(), CSMacroMgr::GetFile(), CShareData::GetMacroFilename(), CSMacroMgr::GetName(), CSMacroMgr::GetTitle(), CShareData::Init(), CEditWnd::InitMenu(), CSMacroMgr::IsEnabled(), と CShareData::ShareData_IO_Macro().

int DLLSHAREDATA::m_TagJumpNum

タグジャンプ情報の有効データ数

CShareData.h の 365 行で定義されています。

参照元 CShareData::Init(), CShareData::PopTagJump(), と CShareData::PushTagJump().

int DLLSHAREDATA::m_TagJumpTop

スタックの一番上の位置

CShareData.h の 366 行で定義されています。

参照元 CShareData::Init(), CShareData::PopTagJump(), と CShareData::PushTagJump().

TagJump DLLSHAREDATA::m_TagJump[MAX_TAGJUMPNUM]

タグジャンプ情報

CShareData.h の 367 行で定義されています。

参照元 CShareData::PopTagJump(), と CShareData::PushTagJump().

StaticVector< StaticString<TCHAR, MAX_CMDLEN>, MAX_CMDARR > DLLSHAREDATA::m_aCommands

CShareData.h の 370 行で定義されています。

参照元 CShareData::Init(), CDlgExec::SetData(), と CShareData::ShareData_IO_Cmd().

IniFolder DLLSHAREDATA::m_IniFolder

CShareData.h の 373 行で定義されています。

参照元 CShareData::GetIniFileName(), と CShareData::Init().

CommonSetting DLLSHAREDATA::m_Common

CShareData.h の 376 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), CEditWnd::_GetWindowRectForInit(), ActivateFrameWindow(), CMacro::AddLParam(), CTabWnd::AdjustWindowPlacement(), CEditDoc::CEditDoc(), CEditView::ChangeCurRegexp(), CEditDoc::CheckFileTimeStamp(), CControlTray::CloseAllEditor(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_COMPARE(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_DOWN(), CViewCommander::Command_FONT(), CViewCommander::Command_GONEXTPARAGRAPH(), CViewCommander::Command_GOPREVPARAGRAPH(), CViewCommander::Command_HOKAN(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_CLEARMARK(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SET_QUOTESTRING(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_ToggleKeySearch(), CViewCommander::Command_UP(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CTipWnd::Create(), CEditView::Create(), CEditDoc::Create(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CEditView::CreatePopUpMenu_R(), CEditView::CreateScrollBar(), CMainToolBar::CreateToolBar(), CControlTray::CreateTrayIcon(), CTextArea::CTextArea(), CCaret::Cursor_UPDOWN(), CViewFont::CViewFont(), CMainStatusBar::DestroyStatusBar(), CTextArea::DetectWidthOfLineNumberArea(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CTextDrawer::DispLineNumber(), CRuler::DispRuler(), CTextDrawer::DispVerticalLines(), CEditDoc::DoFileLock(), CEditView::DoGrep(), CHokanMgr::DoHokan(), CDlgGrep::DoModal(), CDlgReplace::DoModeless(), CDlgFind::DoModeless(), CSplitterWnd::DoSplit(), CEditView::DragEnter(), CTabWnd::DrawCloseBtn(), CRuler::DrawRulerBg(), CShareData::ExtHTMLHelpIsSet(), CShareData::ExtWinHelpIsSet(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileWrite(), CEditDoc::FormatBackUpPath(), CEditView::GetCurrentTextForSearch(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgDiff::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(), CNormalProcess::Initialize(), CTabWnd::InitImageList(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), CShareData::InitToolButtons(), CEditView::ISearchEnter(), IsFuncChecked(), IsFuncEnable(), CEditView::IsSearchString(), 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(), CCaret::MoveCursorProperly(), CTabWnd::MoveLeft(), CTabWnd::MoveRight(), CMenuDrawer::MyAppendMenu(), CShareData::MyGetDateFormat(), CShareData::MyGetTimeFormat(), OFNHookProc(), OFNHookProcMain(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFuncList::OnBnClicked(), CDlgFind::OnBnClicked(), CEditView::OnChangeSetting(), CEditDoc::OnChangeSetting(), CEditWnd::OnClose(), CDlgFuncList::OnDestroy(), CControlTray::OnDestroy(), CEditWnd::OnDropFiles(), CDlgFuncList::OnInitDialog(), CDlgFuncList::OnJump(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CTabWnd::OnLButtonUp(), CTabWnd::OnMouseMove(), CEditView::OnMOUSEMOVE(), CEditWnd::OnMouseWheel(), CDlgFuncList::OnNotify(), CEditView::OnPaint(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CEditView::OnTimer(), CMainToolBar::OnToolbarTimer(), CEditView::OnVScroll(), CFuncKeyWnd::Open(), CEditWnd::OpenDocumentWhenCreate(), CEditDoc::OpenFile(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CEditView::PostprocessCommand_hokan(), CEditDoc::ReloadAutoSaveParam(), CEditDoc::SaveFileDialog(), CTabWnd::Separate(), CDlgReplace::SetData(), CDlgProperty::SetData(), CDlgGrep::SetData(), CDlgFuncList::SetData(), CDlgFind::SetData(), CDlgDiff::SetData(), CDlgCompare::SetData(), CEditView::SetIMECompFormFont(), CEditDoc::SetParentCaption(), CShareData::ShareData_IO_Common(), CShareData::ShareData_IO_CustMenu(), CShareData::ShareData_IO_Font(), CShareData::ShareData_IO_Toolbar(), CCaret::ShowEditCaret(), CTabWnd::ShowHideWindow(), CEditView::ShowHokanMgr(), CEditView::SyncScrollH(), CEditView::SyncScrollV(), CTabWnd::TabListMenu(), CControlTray::TerminateApplication(), CEditView::TranslateCommand_grep(), CViewFont::UpdateFont(), と CEditWnd::WindowTopMost().

int DLLSHAREDATA::m_nKeyNameArrNum

CShareData.h の 379 行で定義されています。

参照元 CControlTray::CControlTray(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CEditWnd::GetTooltipText(), CShareData::InitKeyAssign(), CDlgFuncList::Key2Command(), CMenuDrawer::MyAppendMenu(), CEditWnd::OnCommand(), CFuncKeyWnd::OnTimer(), と CShareData::ShareData_IO_KeyBind().

KEYDATA DLLSHAREDATA::m_pKeyNameArr[100]

CShareData.h の 380 行で定義されています。

参照元 CControlTray::CControlTray(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CEditWnd::GetTooltipText(), CDlgFuncList::Key2Command(), CMenuDrawer::MyAppendMenu(), CEditWnd::OnCommand(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CFuncKeyWnd::OnTimer(), CEditView::OnXLBUTTONDOWN(), CEditView::OnXRBUTTONDOWN(), CShareData::SetKeyNameArrVal(), と CShareData::ShareData_IO_KeyBind().

PRINTSETTING DLLSHAREDATA::m_PrintSettingArr[MAX_PRINTSETTINGARR]

CShareData.h の 383 行で定義されています。

参照元 CShareData::Init(), CEditWnd::OnPrintPageSetting(), CEditWnd::PrintPreviewModeONOFF(), と CShareData::ShareData_IO_Print().

CKeyWordSetMgr DLLSHAREDATA::m_CKeyWordSetMgr

CShareData.h の 386 行で定義されています。

参照元 CDlgKeywordSelect::CDlgKeywordSelect(), CPropTypes::CPropTypes(), CEditView::DispLineNew(), CShareData::InitKeyword(), と CShareData::ShareData_IO_KeyWords().

char DLLSHAREDATA::m_szKeyWordSetDir[MAX_PATH]

CShareData.h の 387 行で定義されています。

Types DLLSHAREDATA::m_Types[MAX_TYPES]

CShareData.h の 390 行で定義されています。

参照元 CEditWnd::Create(), CPropCommon::DispatchEvent_p7(), CShareData::ExtHTMLHelpIsSet(), CShareData::ExtWinHelpIsSet(), CShareData::GetDocumentTypeExt(), CShareData::GetExtHTMLHelp(), CShareData::GetExtWinHelp(), CShareData::HTMLHelpIsSingle(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CEditWnd::OnPrintPageSetting(), CEditDoc::OpenPropertySheetTypes(), CDlgTypeList::SetData(), と CShareData::ShareData_IO_Types().

BOOL DLLSHAREDATA::m_bRecordingKeyMacro

CShareData.h の 396 行で定義されています。

参照元 CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CEditWnd::DispatchEvent(), CViewCommander::HandleCommand(), CShareData::Init(), CEditWnd::InitMenu(), IsFuncChecked(), と IsFuncEnable().

HWND DLLSHAREDATA::m_hwndRecordingKeyMacro

CShareData.h の 397 行で定義されています。

参照元 CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CEditWnd::DispatchEvent(), CViewCommander::HandleCommand(), CShareData::Init(), IsFuncChecked(), と IsFuncEnable().

TCHAR DLLSHAREDATA::m_szKeyMacroFileName[MAX_PATH]

CShareData.h の 398 行で定義されています。

参照元 CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CShareData::Init(), と IsFuncEnable().

int DLLSHAREDATA::m_nExecFlgOpt

CShareData.h の 403 行で定義されています。

参照元 CMacro::AddLParam(), CDlgExec::GetData(), CShareData::Init(), CDlgExec::SetData(), と CShareData::ShareData_IO_Other().

BOOL DLLSHAREDATA::m_bLineNumIsCRLF

CShareData.h の 404 行で定義されています。

参照元 CMacro::AddLParam(), CDlgJump::GetData(), CMacro::HandleCommand(), CShareData::Init(), CDlgJump::OnBnClicked(), CDlgJump::SetData(), と CShareData::ShareData_IO_Other().

int DLLSHAREDATA::m_nDiffFlgOpt

CShareData.h の 406 行で定義されています。

参照元 CDlgDiff::GetData(), CShareData::Init(), CDlgDiff::SetData(), と CShareData::ShareData_IO_Other().

TCHAR DLLSHAREDATA::m_szTagsCmdLine[_MAX_PATH]

CShareData.h の 408 行で定義されています。

参照元 CDlgTagsMake::GetData(), CShareData::Init(), CDlgTagsMake::SetData(), と CShareData::ShareData_IO_Other().

int DLLSHAREDATA::m_nTagsOpt

CShareData.h の 409 行で定義されています。

参照元 CDlgTagsMake::GetData(), CShareData::Init(), CDlgTagsMake::SetData(), と CShareData::ShareData_IO_Other().

StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_TAGJUMP_KEYWORD > DLLSHAREDATA::m_aTagJumpKeywords

CShareData.h の 412 行で定義されています。

参照元 CShareData::Init(), と CShareData::ShareData_IO_Other().

BOOL DLLSHAREDATA::m_bTagJumpICase

大文字小文字を同一視

CShareData.h の 414 行で定義されています。

参照元 CDlgTagJumpList::GetData(), CShareData::Init(), CDlgTagJumpList::SetData(), と CShareData::ShareData_IO_Other().

BOOL DLLSHAREDATA::m_bTagJumpAnyWhere

文字列の途中にマッチ

CShareData.h の 415 行で定義されています。

参照元 CDlgTagJumpList::GetData(), CShareData::Init(), CDlgTagJumpList::SetData(), と CShareData::ShareData_IO_Other().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

DLLSHAREDATA メンバ一覧

これは全メンバの一覧です。DLLSHAREDATA継承メンバも含んでいます。

GetWorkBuffer() | DLLSHAREDATA | [inline]
GetWorkBufferCount() | DLLSHAREDATA | [inline]
m_aCommands | DLLSHAREDATA |
m_aGrepFiles | DLLSHAREDATA |
m_aGrepFolders | DLLSHAREDATA |
m_aReplaceKeys | DLLSHAREDATA |
m_aSearchKeys | DLLSHAREDATA |
m_aTagJumpKeywords | 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_nDiffFlgOpt | DLLSHAREDATA |
m_nEditArrNum | DLLSHAREDATA |
m_nExecFlgOpt | DLLSHAREDATA |
m_nGroupSequences | DLLSHAREDATA |
m_nKeyNameArrNum | DLLSHAREDATA |
m_nMRUArrNum | DLLSHAREDATA |
m_nOPENFOLDERArrNum | DLLSHAREDATA |
m_nSequences | DLLSHAREDATA |
m_nTagsOpt | DLLSHAREDATA |
m_nTransformFileNameArrNum | DLLSHAREDATA |
m_pEditArr | DLLSHAREDATA |
m_pKeyNameArr | DLLSHAREDATA |
m_PrintSettingArr | DLLSHAREDATA |
m_pWork | DLLSHAREDATA | [private]
m_szIMPORTFOLDER | DLLSHAREDATA |
m_szKeyMacroFileName | DLLSHAREDATA |
m_szKeyWordSetDir | DLLSHAREDATA |
m_szMACROFOLDER | DLLSHAREDATA |
m_szOPENFOLDERArr | DLLSHAREDATA |
m_szTagsCmdLine | DLLSHAREDATA |
m_szTransformFileNameFrom | DLLSHAREDATA |
m_szTransformFileNameTo | DLLSHAREDATA |
m_TagJump | DLLSHAREDATA |
m_TagJumpNum | DLLSHAREDATA |
m_TagJumpTop | DLLSHAREDATA |
m_Types | DLLSHAREDATA |
m_vStructureVersion | DLLSHAREDATA |

Sakura-Editorに対してSat Nov 17 20:29:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 DocLineReplaceArg

  • 構成
  • クラス階層
  • 構成メンバ

構造体 DocLineReplaceArg

#include <CDocLineMgr.h>

DocLineReplaceArgのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

CLogicRange sDelRange
削除範囲。ロジック単位。
CNativeW * pcmemDeleted
削除されたデータを保存 */
CLogicInt nDeletedLineNum
削除した行の総数
const wchar_t * | pInsData
挿入するデータ
int | nInsDataLen
挿入するデータの長さ
CLogicInt nInsLineNum
挿入によって増えた行の数
CLogicPoint ptNewPos
挿入された部分の次の位置

説明

CDocLineMgr.h の 34 行で定義されています。

変数

CLogicRange DocLineReplaceArg::sDelRange

削除範囲。ロジック単位。

CDocLineMgr.h の 35 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

CNativeW* DocLineReplaceArg::pcmemDeleted

削除されたデータを保存 */

CDocLineMgr.h の 36 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

CLogicInt DocLineReplaceArg::nDeletedLineNum

削除した行の総数

CDocLineMgr.h の 37 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

const wchar_t* DocLineReplaceArg::pInsData

挿入するデータ

CDocLineMgr.h の 38 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

int DocLineReplaceArg::nInsDataLen

挿入するデータの長さ

CDocLineMgr.h の 39 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

CLogicInt DocLineReplaceArg::nInsLineNum

挿入によって増えた行の数

CDocLineMgr.h の 40 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

CLogicPoint DocLineReplaceArg::ptNewPos

挿入された部分の次の位置

CDocLineMgr.h の 41 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

この構造体の説明は次のファイルから生成されました:
  • CDocLineMgr.h
Sakura-Editorに対してSat Nov 17 20:29:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

DocLineReplaceArg メンバ一覧

これは全メンバの一覧です。DocLineReplaceArg継承メンバも含んでいます。

nDeletedLineNum | DocLineReplaceArg
nInsDataLen | DocLineReplaceArg
nInsLineNum | DocLineReplaceArg
pcmemDeleted | DocLineReplaceArg
pInsData | DocLineReplaceArg
ptNewPos | DocLineReplaceArg
sDelRange | DocLineReplaceArg

Sakura-Editorに対してSat Nov 17 20:29:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 EditNode

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EditNode

#include <CShareData.h>

EditNodeのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

HWND | GetHwnd () const

Public 変数

int | m_nIndex
int | m_nGroup
HWND | m_hWnd
WIN_CHAR | m_szTabCaption [_MAX_PATH]
SFilePath m_szFilePath
BOOL | m_bIsGrep
UINT | m_showCmdRestore
BOOL | m_bClosing

説明

CShareData.h の 37 行で定義されています。

関数

HWND EditNode::GetHwnd ( ) const [inline]

CShareData.h の 47 行で定義されています。

参照先 m_hWnd.

参照元 CEditWnd::_GetTabGroupInfo(), CViewCommander::Command_CASCADE(), CViewCommander::Command_MINIMIZE_ALL(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), CEditDoc::HandleCommand(), CEditWnd::OnClose(), CEditWnd::OnCommand(), CEditWnd::OnSize(), CDlgDiff::SetData(), CDlgCompare::SetData(), CEditWnd::WindowTopMost(), と CEditWnd::WinListMenu().

変数

int EditNode::m_nIndex

CShareData.h の 38 行で定義されています。

参照元 CShareData::AddEditWndList(), CShareData::GetOpenedWindowArrCore(), CShareData::ReorderTab(), CShareData::SeparateGroup(), と CEditWnd::WinListMenu().

int EditNode::m_nGroup

グループID

CShareData.h の 39 行で定義されています。

参照元 CShareData::AddEditWndList(), CShareData::GetEditNodeAt(), CShareData::GetGroupId(), CShareData::GetOpenedWindowArrCore(), CEditDoc::HandleCommand(), CEditWnd::OnMouseWheel(), CTabWnd::Refresh(), CShareData::ResetGroupId(), CTabWnd::SeparateGroup(), CShareData::SeparateGroup(), と CTabWnd::TabListMenu().

HWND EditNode::m_hWnd

CShareData.h の 40 行で定義されています。

参照元 CShareData::AddEditWndList(), CTabWnd::AdjustWindowPlacement(), CRecentEditNode::CompareItem(), CShareData::GetEditNode(), CShareData::GetEditNodeAt(), CShareData::GetEditorWindowsNum(), GetHwnd(), CShareData::GetOpenedWindowArrCore(), CShareData::GetTopEditWnd(), CTabWnd::HideOtherWindows(), CShareData::IsPathOpened(), CShareData::PostMessageToAllEditors(), CShareData::ResetGroupId(), CShareData::SendMessageToAllEditors(), CTabWnd::SeparateGroup(), と CTabWnd::TabListMenu().

WIN_CHAR EditNode::m_szTabCaption[_MAX_PATH]

タブウインドウ用：キャプション名

CShareData.h の 41 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify(), と CTabWnd::GetTabName().

SFilePath EditNode::m_szFilePath

タブウインドウ用：ファイル名

CShareData.h の 42 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify(), CTabWnd::GetImageIndex(), と CTabWnd::GetTabName().

BOOL EditNode::m_bIsGrep

Grepのウィンドウか

CShareData.h の 43 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify(), と CTabWnd::GetImageIndex().

UINT EditNode::m_showCmdRestore

元のサイズに戻すときのサイズ種別

CShareData.h の 44 行で定義されています。

参照元 CEditWnd::_GetTabGroupInfo(), CShareData::AddEditWndList(), CTabWnd::AdjustWindowPlacement(), と CEditWnd::OnSize().

BOOL EditNode::m_bClosing

終了中か（「最後のファイルを閉じても(無題)を残す」用）

CShareData.h の 45 行で定義されています。

参照元 CShareData::AddEditWndList(), と CEditWnd::DispatchEvent().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EditNode メンバ一覧

これは全メンバの一覧です。EditNode継承メンバも含んでいます。

GetHwnd() const | EditNode | [inline]
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 Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 EditNodeEx

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EditNodeEx

EditNodeExのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

EditNode * p
int nGroupMru

説明

CShareData.cpp の 1390 行で定義されています。

変数

EditNode* EditNodeEx::p

CShareData.cpp の 1391 行で定義されています。

参照元 CShareData::GetOpenedWindowArrCore().

int EditNodeEx::nGroupMru

CShareData.cpp の 1392 行で定義されています。

参照元 CShareData::GetOpenedWindowArrCore().

この構造体の説明は次のファイルから生成されました:
  • CShareData.cpp
Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EditNodeEx メンバ一覧

これは全メンバの一覧です。EditNodeEx継承メンバも含んでいます。

nGroupMru | EditNodeEx
p | EditNodeEx

Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 EncodingInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EncodingInfo_t

#include <charcode.h>

すべてのメンバ一覧

Public 変数

ECodeType eCodeID
int | nSpecBytes
int | nDiff

説明

charcode.h の 110 行で定義されています。

変数

ECodeType EncodingInfo_t::eCodeID

charcode.h の 111 行で定義されています。

参照元 CCodeMediator::CheckKanjiCode(), Charcode::GetEncdInf_EucJp(), Charcode::GetEncdInf_Jis(), Charcode::GetEncdInf_SJis(), Charcode::GetEncdInf_Utf7(), と Charcode::GetEncdInf_Utf8().

int EncodingInfo_t::nSpecBytes

charcode.h の 112 行で定義されています。

参照元 Charcode::GetEncdInf_EucJp(), Charcode::GetEncdInf_Jis(), Charcode::GetEncdInf_SJis(), Charcode::GetEncdInf_Utf7(), と Charcode::GetEncdInf_Utf8().

int EncodingInfo_t::nDiff

charcode.h の 113 行で定義されています。

参照元 CESI::DetectMultibyte(), Charcode::GetEncdInf_EucJp(), Charcode::GetEncdInf_Jis(), Charcode::GetEncdInf_SJis(), Charcode::GetEncdInf_Utf7(), と Charcode::GetEncdInf_Utf8().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EncodingInfo_t メンバ一覧

これは全メンバの一覧です。EncodingInfo_t継承メンバも含んでいます。

eCodeID | EncodingInfo_t
nDiff | EncodingInfo_t
nSpecBytes | EncodingInfo_t

Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 FileInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 FileInfo

#include <FileInfo.h>

FileInfoのコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

FileInfo ()

Public 変数

CLayoutInt m_nViewTopLine
CLayoutInt m_nViewLeftCol
CLogicPoint m_ptCursor
カーソル 物理位置(行頭からのバイト数, 折り返し無し行位置)
int | m_bIsModified
ECodeType m_nCharCode
TCHAR | m_szPath [_MAX_PATH]
BOOL | m_bIsGrep
BOOL | m_bIsDebug
wchar_t | m_szGrepKey [1024]
wchar_t | m_szMarkLines [MAX_MARKLINES_LEN+1]
TCHAR | 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追加

FileInfo.h の 11 行で定義されています。

コンストラクタとデストラクタ

FileInfo::FileInfo ( ) [inline]

FileInfo.h の 30 行で定義されています。

参照先 m_szDocType, m_szMarkLines, と m_szPath.

変数

CLayoutInt FileInfo::m_nViewTopLine

表示域の一番上の行(0開始)

FileInfo.h の 12 行で定義されています。

参照元 CEditDoc::FileRead(), CEditDoc::GetFileInfo(), CNormalProcess::Initialize(), CControlTray::OpenNewEditor2(), CCommandLine::ParseCommandLine(), CShareData::ShareData_IO_Mru(), と CEditView::TagJumpSub().

CLayoutInt FileInfo::m_nViewLeftCol

表示域の一番左の桁(0開始)

FileInfo.h の 13 行で定義されています。

参照元 CEditDoc::FileRead(), CEditDoc::GetFileInfo(), CNormalProcess::Initialize(), CControlTray::OpenNewEditor2(), CCommandLine::ParseCommandLine(), CShareData::ShareData_IO_Mru(), と CEditView::TagJumpSub().

CLogicPoint FileInfo::m_ptCursor

カーソル 物理位置(行頭からのバイト数, 折り返し無し行位置)

FileInfo.h の 14 行で定義されています。

参照元 CEditDoc::FileRead(), CEditDoc::GetFileInfo(), CNormalProcess::Initialize(), CControlTray::OpenNewEditor2(), CCommandLine::ParseCommandLine(), CShareData::ShareData_IO_Mru(), と CEditView::TagJumpSub().

int FileInfo::m_bIsModified

変更フラグ

FileInfo.h の 15 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CDlgDiff::GetData(), CEditDoc::GetFileInfo(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

ECodeType FileInfo::m_nCharCode

文字コード種別

FileInfo.h の 16 行で定義されています。

参照元 CViewCommander::Command_INSFILE(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), CEditDoc::FileRead(), CEditDoc::GetFileInfo(), CNormalProcess::Initialize(), CShareData::IsPathOpened(), CEditWnd::OnCommand(), CControlTray::OpenNewEditor2(), CCommandLine::ParseCommandLine(), CDlgDiff::SetData(), CDlgCompare::SetData(), CShareData::ShareData_IO_Mru(), CEditView::TagJumpSub(), と CEditWnd::WinListMenu().

TCHAR FileInfo::m_szPath[_MAX_PATH]

ファイル名

FileInfo.h の 17 行で定義されています。

参照元 CMRU::Add(), CRecentFile::CompareItem(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FileInfo(), CDlgDiff::GetData(), CDlgCompare::GetData(), CEditDoc::GetFileInfo(), CRecentFile::GetItemText(), CNormalProcess::Initialize(), CShareData::IsPathOpened(), CEditWnd::OnCommand(), CControlTray::OpenNewEditor2(), CCommandLine::ParseCommandLine(), CDlgDiff::SetData(), CDlgCompare::SetData(), CShareData::ShareData_IO_Mru(), CEditView::TagJumpSub(), と CEditWnd::WinListMenu().

BOOL FileInfo::m_bIsGrep

Grepのウィンドウか

FileInfo.h の 18 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CEditDoc::GetFileInfo(), と CEditWnd::WinListMenu().

BOOL FileInfo::m_bIsDebug

デバッグモードか(アウトプットウインドウ)

FileInfo.h の 19 行で定義されています。

参照元 CEditDoc::GetFileInfo().

wchar_t FileInfo::m_szGrepKey[1024]

FileInfo.h の 20 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CEditDoc::GetFileInfo(), と CEditWnd::WinListMenu().

wchar_t FileInfo::m_szMarkLines[MAX_MARKLINES_LEN+1]

ブックマークの物理行リスト

FileInfo.h の 21 行で定義されています。

参照元 CEditDoc::AddToMRU(), FileInfo(), CEditDoc::FileRead(), と CShareData::ShareData_IO_Mru().

TCHAR FileInfo::m_szDocType[MAX_DOCTYPE_LEN+1]

文書タイプ

FileInfo.h の 22 行で定義されています。

参照元 FileInfo(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

int FileInfo::m_nWindowSizeX

ウィンドウ 幅(ピクセル数)

FileInfo.h の 23 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), と CCommandLine::ParseCommandLine().

int FileInfo::m_nWindowSizeY

ウィンドウ 高さ(ピクセル数)

FileInfo.h の 24 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), と CCommandLine::ParseCommandLine().

int FileInfo::m_nWindowOriginX

ウィンドウ 物理位置(ピクセル数・マイナス値も有効)

FileInfo.h の 25 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), と CCommandLine::ParseCommandLine().

int FileInfo::m_nWindowOriginY

ウィンドウ 物理位置(ピクセル数・マイナス値も有効)

FileInfo.h の 26 行で定義されています。

参照元 CEditWnd::_GetWindowRectForInit(), と CCommandLine::ParseCommandLine().

この構造体の説明は次のファイルから生成されました:
  • FileInfo.h
Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


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_ptCursor | FileInfo |
m_szDocType | FileInfo |
m_szGrepKey | FileInfo |
m_szMarkLines | FileInfo |
m_szPath | FileInfo |

Sakura-Editorに対してSat Nov 17 20:29:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 GrepInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 GrepInfo

#include <CShareData.h>

GrepInfoのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

CNativeW cmGrepKey
検索キー
CNativeT cmGrepFile
検索対象ファイル
CNativeT cmGrepFolder
検索対象フォルダ
SSearchOption sGrepSearchOption
検索オプション
bool | bGrepSubFolder
サブフォルダを検索する
bool | bGrepOutputLine
結果出力で該当行を出力する
int | nGrepOutputStyle
結果出力形式
ECodeType nGrepCharSet
文字コードセット

説明

検索オプション 20020118 aroka

CShareData.h の 70 行で定義されています。

変数

CNativeW GrepInfo::cmGrepKey

検索キー

CShareData.h の 71 行で定義されています。

参照元 CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

CNativeT GrepInfo::cmGrepFile

検索対象ファイル

CShareData.h の 72 行で定義されています。

参照元 CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

CNativeT GrepInfo::cmGrepFolder

検索対象フォルダ

CShareData.h の 73 行で定義されています。

参照元 CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

SSearchOption GrepInfo::sGrepSearchOption

検索オプション

CShareData.h の 74 行で定義されています。

参照元 CCommandLine::CCommandLine(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

bool GrepInfo::bGrepSubFolder

サブフォルダを検索する

CShareData.h の 75 行で定義されています。

参照元 CCommandLine::CCommandLine(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

bool GrepInfo::bGrepOutputLine

結果出力で該当行を出力する

CShareData.h の 76 行で定義されています。

参照元 CCommandLine::CCommandLine(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

int GrepInfo::nGrepOutputStyle

結果出力形式

CShareData.h の 77 行で定義されています。

参照元 CCommandLine::CCommandLine(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

ECodeType GrepInfo::nGrepCharSet

文字コードセット

CShareData.h の 78 行で定義されています。

参照元 CCommandLine::CCommandLine(), CNormalProcess::Initialize(), と CCommandLine::ParseCommandLine().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

GrepInfo メンバ一覧

これは全メンバの一覧です。GrepInfo継承メンバも含んでいます。

bGrepOutputLine | GrepInfo
bGrepSubFolder | GrepInfo
cmGrepFile | GrepInfo
cmGrepFolder | GrepInfo
cmGrepKey | GrepInfo
nGrepCharSet | GrepInfo
nGrepOutputStyle | GrepInfo
sGrepSearchOption | GrepInfo

Sakura-Editorに対してSat Nov 17 20:29:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス IDataObject

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDataObject

IDataObjectに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Nov 17 20:29:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス IDispatch

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDispatch

IDispatchに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Nov 17 20:29:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス IDropSource

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDropSource

IDropSourceに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス IDropTarget

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDropTarget

IDropTargetに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


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>
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 >::AddRef ( ) [inline, virtual]

CWSH.h の 50 行で定義されています。

参照元 CWSHClient::CWSHClient(), と CWSHSite::GetItemInfo().

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 Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


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 の 282 行で定義されています。

変数

bool IniFolder::m_bInit

CShareData.h の 283 行で定義されています。

参照元 CShareData::GetIniFileName(), と CShareData::Init().

bool IniFolder::m_bReadPrivate

CShareData.h の 284 行で定義されています。

参照元 CShareData::GetIniFileName().

bool IniFolder::m_bWritePrivate

CShareData.h の 285 行で定義されています。

参照元 CShareData::GetIniFileName().

TCHAR IniFolder::m_szIniFile[_MAX_PATH]

CShareData.h の 286 行で定義されています。

参照元 CShareData::GetIniFileName().

TCHAR IniFolder::m_szPrivateIniFile[_MAX_PATH]

CShareData.h の 287 行で定義されています。

参照元 CShareData::GetIniFileName().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

IniFolder メンバ一覧

これは全メンバの一覧です。IniFolder継承メンバも含んでいます。

m_bInit | IniFolder
m_bReadPrivate | IniFolder
m_bWritePrivate | IniFolder
m_szIniFile | IniFolder
m_szPrivateIniFile | IniFolder

Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス IStringRef

  • 構成
  • クラス階層
  • 構成メンバ

クラス IStringRef

文字列への参照を取得するインターフェース [詳細]

#include <CNativeW.h>

IStringRefに対する継承グラフ

[凡例]

すべてのメンバ一覧

Public メソッド

virtual const wchar_t * | GetPtr () const =0
virtual int | GetLength () const =0

説明

文字列への参照を取得するインターフェース

CNativeW.h の 135 行で定義されています。

関数

virtual const wchar_t* IStringRef::GetPtr ( ) const [pure virtual]

CStringRefで実装されています。

virtual int IStringRef::GetLength ( ) const [pure virtual]

CStringRefで実装されています。

このクラスの説明は次のファイルから生成されました:
  • CNativeW.h
Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

IStringRef メンバ一覧

これは全メンバの一覧です。IStringRef継承メンバも含んでいます。

GetLength() const =0 | IStringRef | [pure virtual]
GetPtr() const =0 | IStringRef | [pure virtual]

Sakura-Editorに対してSat Nov 17 20:29:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス ITypeInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス ITypeInfo

ITypeInfoに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 KAKKO_T

  • 構成
  • クラス階層
  • 構成メンバ

構造体 KAKKO_T

対括弧の対応表 [詳細]

すべてのメンバ一覧

Public 変数

wchar_t * | sStr
wchar_t * | eStr

説明

対括弧の対応表

CEditView_New2.cpp の 339 行で定義されています。

変数

wchar_t* KAKKO_T::sStr

CEditView_New2.cpp の 340 行で定義されています。

参照元 CEditView::IsBracket(), と CEditView::SearchBracket().

wchar_t* KAKKO_T::eStr

CEditView_New2.cpp の 341 行で定義されています。

参照元 CEditView::IsBracket(), と CEditView::SearchBracket().

この構造体の説明は次のファイルから生成されました:
  • CEditView_New2.cpp
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

KAKKO_T メンバ一覧

これは全メンバの一覧です。KAKKO_T継承メンバも含んでいます。

eStr | KAKKO_T
sStr | KAKKO_T

Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 KEYDATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 KEYDATA

キー情報を保持する [詳細]

#include <CKeyBind.h>

すべてのメンバ一覧

Public 変数

short | m_nKeyCode
TCHAR | m_szKeyName [64]
EFunctionCode | m_nFuncCodeArr [8]

説明

キー情報を保持する

CKeyBind.h の 25 行で定義されています。

変数

short KEYDATA::m_nKeyCode

キーコード

CKeyBind.h の 27 行で定義されています。

参照元 CKeyBind::CreateAccerelator(), CKeyBind::GetFuncCodeAt(), CPropCommon::p5_Import_KeySetting(), と CShareData::SetKeyNameArrVal().

TCHAR KEYDATA::m_szKeyName[64]

キーの名前

CKeyBind.h の 30 行で定義されています。

参照元 CPropCommon::SetData_p5(), CShareData::SetKeyNameArrVal(), と CShareData::ShareData_IO_KeyBind().

EFunctionCode KEYDATA::m_nFuncCodeArr[8]

対応する機能番号

SHIFT, CTRL, ALTの３つのシフト状態のそれぞれに対して 機能を割り当てるため、配列になっている。

CKeyBind.h の 37 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5(), CKeyBind::GetFuncCodeAt(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CEditView::OnXLBUTTONDOWN(), CEditView::OnXRBUTTONDOWN(), CPropCommon::p5_Import_KeySetting(), CShareData::SetKeyNameArrVal(), と CShareData::ShareData_IO_KeyBind().

この構造体の説明は次のファイルから生成されました:
  • CKeyBind.h
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

KEYDATA メンバ一覧

これは全メンバの一覧です。KEYDATA継承メンバも含んでいます。

m_nFuncCodeArr | KEYDATA
m_nKeyCode | KEYDATA
m_szKeyName | KEYDATA

Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 KeyHelpInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 KeyHelpInfo

#include <CShareData.h>

KeyHelpInfoのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

int | m_nUse
TCHAR | m_szAbout [DICT_ABOUT_LEN]
SFilePath m_szPath

説明

CShareData.h の 150 行で定義されています。

変数

int KeyHelpInfo::m_nUse

辞書を 使用する/しない

CShareData.h の 151 行で定義されています。

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::GetData_KeyHelp(), CPropTypes::Import_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

TCHAR KeyHelpInfo::m_szAbout[DICT_ABOUT_LEN]

辞書の説明(辞書ファイルの1行目から生成)

CShareData.h の 152 行で定義されています。

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::GetData_KeyHelp(), CPropTypes::Import_KeyHelp(), CShareData::InitTypeConfig(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

SFilePath KeyHelpInfo::m_szPath

ファイルパス

CShareData.h の 153 行で定義されています。

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::GetData_KeyHelp(), CPropTypes::Import_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

KeyHelpInfo メンバ一覧

これは全メンバの一覧です。KeyHelpInfo継承メンバも含んでいます。

m_nUse | KeyHelpInfo
m_szAbout | KeyHelpInfo
m_szPath | KeyHelpInfo

Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 LayoutReplaceArg

  • 構成
  • クラス階層
  • 構成メンバ

構造体 LayoutReplaceArg

#include <CLayoutMgr.h>

LayoutReplaceArgのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

CLayoutRange sDelRange
削除範囲。レイアウト単位。
CNativeW * pcmemDeleted
削除されたデータ
const wchar_t * pInsData
挿入するデータ
CLogicInt nInsDataLen
挿入するデータの長さ
CLayoutInt nAddLineNum
再描画ヒント レイアウト行の増減
CLayoutInt nModLineFrom
再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)
CLayoutInt nModLineTo
再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)
CLayoutPoint ptLayoutNew
挿入された部分の次の位置の位置(レイアウト桁位置, レイアウト行)

説明

CLayoutMgr.h の 42 行で定義されています。

変数

CLayoutRange LayoutReplaceArg::sDelRange

削除範囲。レイアウト単位。

CLayoutMgr.h の 43 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CNativeW* LayoutReplaceArg::pcmemDeleted

削除されたデータ

CLayoutMgr.h の 44 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

const wchar_t* LayoutReplaceArg::pInsData

挿入するデータ

CLayoutMgr.h の 45 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CLogicInt LayoutReplaceArg::nInsDataLen

挿入するデータの長さ

CLayoutMgr.h の 46 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CLayoutInt LayoutReplaceArg::nAddLineNum

再描画ヒント レイアウト行の増減

CLayoutMgr.h の 47 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CLayoutInt LayoutReplaceArg::nModLineFrom

再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)

CLayoutMgr.h の 48 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CLayoutInt LayoutReplaceArg::nModLineTo

再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)

CLayoutMgr.h の 49 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

CLayoutPoint LayoutReplaceArg::ptLayoutNew

挿入された部分の次の位置の位置(レイアウト桁位置, レイアウト行)

CLayoutMgr.h の 50 行で定義されています。

参照元 CEditView::ReplaceData_CEditView(), と CLayoutMgr::ReplaceData_CLayoutMgr().

この構造体の説明は次のファイルから生成されました:
  • CLayoutMgr.h
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

LayoutReplaceArg メンバ一覧

これは全メンバの一覧です。LayoutReplaceArg継承メンバも含んでいます。

nAddLineNum | LayoutReplaceArg
nInsDataLen | LayoutReplaceArg
nModLineFrom | LayoutReplaceArg
nModLineTo | LayoutReplaceArg
pcmemDeleted | LayoutReplaceArg
pInsData | LayoutReplaceArg
ptLayoutNew | LayoutReplaceArg
sDelRange | LayoutReplaceArg

Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス LocalCache

  • 構成
  • クラス階層
  • 構成メンバ

クラス LocalCache

すべてのメンバ一覧

Public メソッド

LocalCache ()
void | SetCache (wchar_t c, bool cache_value)
bool | GetCache (wchar_t c) const
bool | ExistCache (wchar_t c) const

Protected メソッド

int | _GetRaw (wchar_t c) const

Private 変数

BYTE | cache [0x10000/4]
int | test

説明

UNICODE文字情報のキャッシュクラス。 1文字当たり2ビットで、値を保存しておく。 00:未初期化 01:半角 10:全角 11:-

charcode.cpp の 1270 行で定義されています。

コンストラクタとデストラクタ

LocalCache::LocalCache ( ) [inline]

charcode.cpp の 1272 行で定義されています。

参照先 cache, と test.

関数

void LocalCache::SetCache | ( | wchar_t | c,
 |  | bool | cache_value |
 | ) |  |  | [inline]

charcode.cpp の 1277 行で定義されています。

参照先 cache.

参照元 CalcHankakuByFont().

bool LocalCache::GetCache ( wchar_t c ) const [inline]

charcode.cpp の 1283 行で定義されています。

参照先 _GetRaw().

参照元 CalcHankakuByFont().

bool LocalCache::ExistCache ( wchar_t c ) const [inline]

charcode.cpp の 1287 行で定義されています。

参照先 _GetRaw(), assert, と test.

参照元 CalcHankakuByFont().

int LocalCache::_GetRaw ( wchar_t c ) const [inline, protected]

charcode.cpp の 1293 行で定義されています。

参照先 cache.

参照元 ExistCache(), と GetCache().

変数

BYTE LocalCache::cache[0x10000/4] [private]

charcode.cpp の 1298 行で定義されています。

参照元 _GetRaw(), LocalCache(), と SetCache().

int LocalCache::test [private]

charcode.cpp の 1299 行で定義されています。

参照元 ExistCache(), と LocalCache().

このクラスの説明は次のファイルから生成されました:
  • charcode.cpp
Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

LocalCache メンバ一覧

これは全メンバの一覧です。LocalCache継承メンバも含んでいます。

_GetRaw(wchar_t c) const | LocalCache | [inline, protected]
cache | LocalCache | [private]
ExistCache(wchar_t c) const | LocalCache | [inline]
GetCache(wchar_t c) const | LocalCache | [inline]
LocalCache() | LocalCache | [inline]
SetCache(wchar_t c, bool cache_value) | LocalCache | [inline]
test | LocalCache | [private]

Sakura-Editorに対してSat Nov 17 20:29:31 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 MacroFuncInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MacroFuncInfo

#include <CSMacroMgr.h>

すべてのメンバ一覧

Public 変数

EFunctionCode m_nFuncID
const WCHAR * | m_pszFuncName
VARTYPE | m_varArguments [4]
引数の型の配列
VARTYPE | m_varResult
戻り値の型 VT_EMPTYならprocedureということで
wchar_t * | m_pszData

説明

CSMacroMgr.h の 52 行で定義されています。

変数

EFunctionCode MacroFuncInfo::m_nFuncID

CSMacroMgr.h の 53 行で定義されています。

参照元 CPPA::GetDeclarations(), CSMacroMgr::GetFuncInfoByName(), CWSHMacroManager::ReadyCommands(), と CPPA::stdError().

const WCHAR* MacroFuncInfo::m_pszFuncName

CSMacroMgr.h の 54 行で定義されています。

参照元 CPPA::GetDeclarations(), CSMacroMgr::GetFuncInfoByID(), CSMacroMgr::GetFuncInfoByName(), CPPA::InitDll(), と CWSHMacroManager::ReadyCommands().

VARTYPE MacroFuncInfo::m_varArguments[4]

引数の型の配列

CSMacroMgr.h の 55 行で定義されています。

参照元 CPPA::CallHandleFunction(), CPPA::GetDeclarations(), CKeyMacroMgr::LoadKeyMacro(), と CWSHMacroManager::ReadyCommands().

VARTYPE MacroFuncInfo::m_varResult

戻り値の型 VT_EMPTYならprocedureということで

CSMacroMgr.h の 56 行で定義されています。

参照元 CPPA::GetDeclarations(), と CWSHMacroManager::ReadyCommands().

wchar_t* MacroFuncInfo::m_pszData

CSMacroMgr.h の 57 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CSMacroMgr.h
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

MacroFuncInfo メンバ一覧

これは全メンバの一覧です。MacroFuncInfo継承メンバも含んでいます。

m_nFuncID | MacroFuncInfo
m_pszData | MacroFuncInfo
m_pszFuncName | MacroFuncInfo
m_varArguments | MacroFuncInfo
m_varResult | MacroFuncInfo

Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 MacroRec

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MacroRec

マクロ情報 [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public メソッド

bool | IsEnabled () const

Public 変数

TCHAR | m_szName [MACRONAME_MAX]
TCHAR | m_szFile [_MAX_PATH+1]
BOOL | m_bReloadWhenExecute

説明

マクロ情報

CShareData.h の 242 行で定義されています。

関数

bool MacroRec::IsEnabled ( void ) const [inline]

CShareData.h の 247 行で定義されています。

参照先 m_szFile.

参照元 CShareData::BeReloadWhenExecuteMacro(), CShareData::GetMacroFilename(), CEditWnd::InitMenu(), と CSMacroMgr::IsEnabled().

変数

TCHAR MacroRec::m_szName[MACRONAME_MAX]

CShareData.h の 243 行で定義されています。

参照元 CSMacroMgr::GetName(), CSMacroMgr::GetTitle(), CShareData::Init(), CEditWnd::InitMenu(), と CShareData::ShareData_IO_Macro().

TCHAR MacroRec::m_szFile[_MAX_PATH+1]

CShareData.h の 244 行で定義されています。

参照元 CSMacroMgr::GetFile(), CShareData::GetMacroFilename(), CSMacroMgr::GetTitle(), CShareData::Init(), CEditWnd::InitMenu(), IsEnabled(), と CShareData::ShareData_IO_Macro().

BOOL MacroRec::m_bReloadWhenExecute

CShareData.h の 245 行で定義されています。

参照元 CShareData::BeReloadWhenExecuteMacro(), CShareData::Init(), と CShareData::ShareData_IO_Macro().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

MacroRec メンバ一覧

これは全メンバの一覧です。MacroRec継承メンバも含んでいます。

IsEnabled() const | MacroRec | [inline]
m_bReloadWhenExecute | MacroRec |
m_szFile | MacroRec |
m_szName | MacroRec |

Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 MYDEVMODE

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MYDEVMODE

#include <CPrint.h>

すべてのメンバ一覧

Public 変数

BOOL | m_bPrinterNotFound
TCHAR | m_szPrinterDriverName [_MAX_PATH+1]
TCHAR | m_szPrinterDeviceName [_MAX_PATH+1]
TCHAR | 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 の 23 行で定義されています。

変数

BOOL MYDEVMODE::m_bPrinterNotFound

CPrint.h の 24 行で定義されています。

参照元 CPrint::GetDefaultPrinter().

TCHAR MYDEVMODE::m_szPrinterDriverName[_MAX_PATH+1]

CPrint.h の 25 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrint::PrintDlg(), と CShareData::ShareData_IO_Print().

TCHAR MYDEVMODE::m_szPrinterDeviceName[_MAX_PATH+1]

CPrint.h の 26 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnPaint(), CPrint::PrintDlg(), CPrint::PrintOpen(), と CShareData::ShareData_IO_Print().

TCHAR MYDEVMODE::m_szPrinterOutputName[_MAX_PATH+1]

CPrint.h の 27 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrint::PrintDlg(), と CShareData::ShareData_IO_Print().

DWORD MYDEVMODE::dmFields

CPrint.h の 28 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrint::GetPaperSize(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnTimer(), と CPrint::PrintDlg().

short MYDEVMODE::dmOrientation

CPrint.h の 29 行で定義されています。

参照元 CPrint::CreateDC(), CPrintPreview::DispatchEvent_PPB(), CPrint::GetDefaultPrinter(), CPrint::GetPaperSize(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnPaint(), CDlgPrintSetting::OnTimer(), と CPrint::PrintDlg().

short MYDEVMODE::dmPaperSize

CPrint.h の 30 行で定義されています。

参照元 CPrint::CreateDC(), CPrintPreview::DispatchEvent_PPB(), CPrint::GetDefaultPrinter(), CPrint::GetPaperSize(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnPaint(), CDlgPrintSetting::OnTimer(), と CPrint::PrintDlg().

short MYDEVMODE::dmPaperLength

CPrint.h の 31 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrint::GetPaperSize(), CPrintPreview::OnChangePrintSetting(), と CPrint::PrintDlg().

short MYDEVMODE::dmPaperWidth

CPrint.h の 32 行で定義されています。

参照元 CPrint::CreateDC(), CPrint::GetDefaultPrinter(), CPrint::GetPaperSize(), CPrintPreview::OnChangePrintSetting(), と CPrint::PrintDlg().

short MYDEVMODE::dmScale

CPrint.h の 33 行で定義されています。

short MYDEVMODE::dmCopies

CPrint.h の 34 行で定義されています。

short MYDEVMODE::dmDefaultSource

CPrint.h の 35 行で定義されています。

short MYDEVMODE::dmPrintQuality

CPrint.h の 36 行で定義されています。

short MYDEVMODE::dmColor

CPrint.h の 37 行で定義されています。

short MYDEVMODE::dmDuplex

CPrint.h の 38 行で定義されています。

short MYDEVMODE::dmYResolution

CPrint.h の 39 行で定義されています。

short MYDEVMODE::dmTTOption

CPrint.h の 40 行で定義されています。

short MYDEVMODE::dmCollate

CPrint.h の 41 行で定義されています。

BCHAR MYDEVMODE::dmFormName[CCHFORMNAME]

CPrint.h の 42 行で定義されています。

WORD MYDEVMODE::dmLogPixels

CPrint.h の 43 行で定義されています。

DWORD MYDEVMODE::dmBitsPerPel

CPrint.h の 44 行で定義されています。

DWORD MYDEVMODE::dmPelsWidth

CPrint.h の 45 行で定義されています。

DWORD MYDEVMODE::dmPelsHeight

CPrint.h の 46 行で定義されています。

DWORD MYDEVMODE::dmDisplayFlags

CPrint.h の 47 行で定義されています。

DWORD MYDEVMODE::dmDisplayFrequency

CPrint.h の 48 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CPrint.h
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 oneRule

  • 構成
  • クラス階層
  • 構成メンバ

構造体 oneRule

すべてのメンバ一覧

Public 変数

wchar_t | szMatch [256]
int | nLength
wchar_t | szGroupName [256]

説明

ルールファイルの1行を管理する構造体

日付:
2002.04.01 YAZAKI

CEditDoc.cpp の 2212 行で定義されています。

変数

wchar_t oneRule::szMatch[256]

CEditDoc.cpp の 2213 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

int oneRule::nLength

CEditDoc.cpp の 2214 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

wchar_t oneRule::szGroupName[256]

CEditDoc.cpp の 2215 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

この構造体の説明は次のファイルから生成されました:
  • CEditDoc.cpp
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

oneRule メンバ一覧

これは全メンバの一覧です。oneRule継承メンバも含んでいます。

nLength | oneRule
szGroupName | oneRule
szMatch | oneRule

Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 OPENFILENAMEZ

  • 構成
  • クラス階層
  • 構成メンバ

構造体 OPENFILENAMEZ

#include <CDlgOpenFile.h>

すべてのメンバ一覧

Public 変数

void * | pvReserved
DWORD | dwReserved
DWORD | FlagsEx

説明

CDlgOpenFile.h の 38 行で定義されています。

変数

void* OPENFILENAMEZ::pvReserved

CDlgOpenFile.h の 39 行で定義されています。

DWORD OPENFILENAMEZ::dwReserved

CDlgOpenFile.h の 40 行で定義されています。

DWORD OPENFILENAMEZ::FlagsEx

CDlgOpenFile.h の 41 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CDlgOpenFile.h
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

OPENFILENAMEZ メンバ一覧

これは全メンバの一覧です。OPENFILENAMEZ継承メンバも含んでいます。

dwReserved | OPENFILENAMEZ
FlagsEx | OPENFILENAMEZ
pvReserved | OPENFILENAMEZ

Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


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 TCHAR * | m_pszName
用紙名称

説明

用紙情報

CPrint.h の 53 行で定義されています。

変数

int PAPER_INFO::m_nId

用紙ID

CPrint.h の 54 行で定義されています。

参照元 CDlgPrintSetting::SetData().

int PAPER_INFO::m_nAllWidth

幅 (0.1mm単位)

CPrint.h の 55 行で定義されています。

参照元 CPrint::GetPaperSize().

int PAPER_INFO::m_nAllHeight

高さ (0.1mm単位)

CPrint.h の 56 行で定義されています。

参照元 CPrint::GetPaperSize().

const TCHAR* PAPER_INFO::m_pszName

用紙名称

CPrint.h の 57 行で定義されています。

参照元 CPrint::GetPaperName().

この構造体の説明は次のファイルから生成されました:
  • CPrint.h
Sakura-Editorに対してSat Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 PRINTSETTING

  • 構成
  • クラス階層
  • 構成メンバ

構造体 PRINTSETTING

#include <CShareData.h>

PRINTSETTINGのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

TCHAR | m_szPrintSettingName [32+1]
TCHAR | m_szPrintFontFaceHan [LF_FACESIZE]
TCHAR | 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]
EDIT_CHAR | m_szHeaderForm [3][HEADER_MAX]
BOOL | m_bFooterUse [3]
EDIT_CHAR | m_szFooterForm [3][FOOTER_MAX]

説明

CShareData.h の 88 行で定義されています。

変数

TCHAR PRINTSETTING::m_szPrintSettingName[32+1]

印刷設定の名前

CShareData.h の 89 行で定義されています。

参照元 CShareData::Init(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

TCHAR PRINTSETTING::m_szPrintFontFaceHan[LF_FACESIZE]

印刷フォント

CShareData.h の 90 行で定義されています。

参照元 CPrintPreview::MyEnumFontFamProc(), CPrintPreview::OnPaint(), CPrintPreview::SetPreviewFontHan(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

TCHAR PRINTSETTING::m_szPrintFontFaceZen[LF_FACESIZE]

印刷フォント

CShareData.h の 91 行で定義されています。

参照元 CPrintPreview::MyEnumFontFamProc(), CPrintPreview::OnPaint(), CPrintPreview::SetPreviewFontZen(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintFontWidth

印刷フォント幅(1/10mm単位単位)

CShareData.h の 92 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CDlgPrintSetting::OnTimer(), CPrintPreview::Print_DrawLine(), CPrintPreview::SetPreviewFontHan(), CPrintPreview::SetPreviewFontZen(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintFontHeight

印刷フォント高さ(1/10mm単位単位)

CShareData.h の 93 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrintPreview::Print_DrawLine(), CPrintPreview::SetPreviewFontHan(), CPrintPreview::SetPreviewFontZen(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintDansuu

段組の段数

CShareData.h の 94 行で定義されています。

参照元 CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintDanSpace

段と段の隙間(1/10mm単位)

CShareData.h の 95 行で定義されています。

参照元 CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintLineSpacing

印刷フォント行間 文字の高さに対する割合(%)

CShareData.h の 96 行で定義されています。

参照元 CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintMarginTY

印刷用紙マージン 上(mm単位)

CShareData.h の 97 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintMarginBY

印刷用紙マージン 下(mm単位)

CShareData.h の 98 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintMarginLX

印刷用紙マージン 左(mm単位)

CShareData.h の 99 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintMarginRX

印刷用紙マージン 右(mm単位)

CShareData.h の 100 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnChangeSettingType(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintPaperOrientation

用紙方向 DMORIENT_PORTRAIT (1) または DMORIENT_LANDSCAPE (2)

CShareData.h の 101 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

int PRINTSETTING::m_nPrintPaperSize

用紙サイズ

CShareData.h の 102 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CDlgPrintSetting::OnTimer(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintWordWrap

英文ワードラップする

CShareData.h の 103 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintKinsokuHead

行頭禁則する

CShareData.h の 104 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintKinsokuTail

行末禁則する

CShareData.h の 105 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintKinsokuRet

改行文字のぶら下げ

CShareData.h の 106 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintKinsokuKuto

句読点のぶらさげ

CShareData.h の 107 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bPrintLineNumber

行番号を印刷する

CShareData.h の 108 行で定義されています。

参照元 CPrintPreview::DrawPageText(), CDlgPrintSetting::GetData(), CPrintPreview::OnChangePrintSetting(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

MYDEVMODE PRINTSETTING::m_mdmDevMode

プリンタ設定 DEVMODE用

CShareData.h の 111 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB(), CPrintPreview::GetDefaultPrinterInfo(), CPrintPreview::OnChangePrintSetting(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bHeaderUse[3]

CShareData.h の 112 行で定義されています。

参照元 CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

EDIT_CHAR PRINTSETTING::m_szHeaderForm[3][HEADER_MAX]

CShareData.h の 113 行で定義されています。

参照元 CPrintPreview::DrawHeader(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

BOOL PRINTSETTING::m_bFooterUse[3]

CShareData.h の 114 行で定義されています。

参照元 CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

EDIT_CHAR PRINTSETTING::m_szFooterForm[3][FOOTER_MAX]

CShareData.h の 115 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), CPrint::SettingInitialize(), と CShareData::ShareData_IO_Print().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


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::init | ( | char * | infile,
 |  | char * | outfile
 | ) |  |

RcCvt.cpp の 56 行で定義されています。

参照先 buffer, fpi, fpo, nLine, NULL, setErr(), と trail.

参照元 main().

bool RcCvt::convert ( void )

RcCvt.cpp の 84 行で定義されています。

参照先 buffer, font(), fpi, fpo, include(), nLine, と NULL.

参照元 main().

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::setErr ( char * errstr ) [private]

エラー文字列の追加

RcCvt.cpp の 35 行で定義されています。

参照先 NULL, と strerr.

参照元 font(), と init().

変数

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().

char* RcCvt::buffer [private]

読み込みバッファへのポインタ．

RcCvt.h の 25 行で定義されています。

参照元 convert(), init(), と ~RcCvt().

このクラスの説明は次のファイルから生成されました:
  • RcCvt.h
  • RcCvt.cpp
Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 RegexInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 RegexInfo_t

正規表現キーワード検索情報構造体 [詳細]

#include <CRegexKeyword.h>

RegexInfo_tのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

BREGEXP_W * pBregexp
int | nStatus
int | nMatch
int | nOffset
int | nLength
int | nHead
int | nFlag

説明

正規表現キーワード検索情報構造体

CRegexKeyword.h の 68 行で定義されています。

変数

BREGEXP_W* RegexInfo_t::pBregexp

CRegexKeyword.h の 69 行で定義されています。

参照元 CRegexKeyword::RegexKeyInit(), と CRegexKeyword::~CRegexKeyword().

int RegexInfo_t::nStatus

CRegexKeyword.h の 73 行で定義されています。

int RegexInfo_t::nMatch

CRegexKeyword.h の 74 行で定義されています。

int RegexInfo_t::nOffset

CRegexKeyword.h の 75 行で定義されています。

int RegexInfo_t::nLength

CRegexKeyword.h の 76 行で定義されています。

int RegexInfo_t::nHead

CRegexKeyword.h の 77 行で定義されています。

int RegexInfo_t::nFlag

CRegexKeyword.h の 78 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CRegexKeyword.h
Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 RegexKeywordInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 RegexKeywordInfo

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

wchar_t | m_szKeyword [100]
int | m_nColorIndex

説明

CShareData.h の 142 行で定義されています。

変数

wchar_t RegexKeywordInfo::m_szKeyword[100]

CShareData.h の 143 行で定義されています。

参照元 CPropTypes::GetData_Regex(), CShareData::InitTypeConfig(), CPropTypes::SetData_Regex(), と CShareData::ShareData_IO_Types().

int RegexKeywordInfo::m_nColorIndex

CShareData.h の 144 行で定義されています。

参照元 CPropTypes::GetData_Regex(), CPropTypes::Import_Regex(), CShareData::InitTypeConfig(), CPropTypes::SetData_Regex(), と CShareData::ShareData_IO_Types().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

RegexKeywordInfo メンバ一覧

これは全メンバの一覧です。RegexKeywordInfo継承メンバも含んでいます。

m_nColorIndex | RegexKeywordInfo
m_szKeyword | RegexKeywordInfo

Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 SLayoutPoint

  • 構成
  • クラス階層
  • 構成メンバ

構造体 SLayoutPoint

#include <SakuraBasis.h>

すべてのメンバ一覧

Public 変数

CLayoutInt x
CLayoutInt y

説明

SakuraBasis.h の 62 行で定義されています。

変数

CLayoutInt SLayoutPoint::x

SakuraBasis.h の 62 行で定義されています。

CLayoutInt SLayoutPoint::y

SakuraBasis.h の 62 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • SakuraBasis.h
Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

SLayoutPoint メンバ一覧

これは全メンバの一覧です。SLayoutPoint継承メンバも含んでいます。

x | SLayoutPoint
y | SLayoutPoint

Sakura-Editorに対してSat Nov 17 20:29:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 SLogicPoint

  • 構成
  • クラス階層
  • 構成メンバ

構造体 SLogicPoint

#include <SakuraBasis.h>

すべてのメンバ一覧

Public 変数

CLogicInt x
CLogicInt y

説明

SakuraBasis.h の 56 行で定義されています。

変数

CLogicInt SLogicPoint::x

SakuraBasis.h の 56 行で定義されています。

CLogicInt SLogicPoint::y

SakuraBasis.h の 56 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • SakuraBasis.h
Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

SLogicPoint メンバ一覧

これは全メンバの一覧です。SLogicPoint継承メンバも含んでいます。

x | SLogicPoint
y | SLogicPoint

Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 SSearchOption

  • 構成
  • クラス階層
  • 構成メンバ

構造体 SSearchOption

#include <global.h>

すべてのメンバ一覧

Public メソッド

SSearchOption ()
SSearchOption (bool _bRegularExp, bool _bLoHiCase, bool _bWordOnly)
void | Reset ()
bool | operator== (const SSearchOption &rhs) const
bool | operator!= (const SSearchOption &rhs) const

Public 変数

bool | bRegularExp
true==正規表現
bool | bLoHiCase
true==英大文字小文字の区別
bool | bWordOnly
true==単語のみ検索

説明

global.h の 468 行で定義されています。

コンストラクタとデストラクタ

SSearchOption::SSearchOption ( ) [inline]

global.h の 475 行で定義されています。

SSearchOption::SSearchOption | ( | bool | _bRegularExp,
 |  | bool | _bLoHiCase,
 |  | bool | _bWordOnly |
 | ) |  |  | [inline]

global.h の 476 行で定義されています。

関数

void SSearchOption::Reset ( void ) [inline]

global.h の 486 行で定義されています。

参照先 bLoHiCase, bRegularExp, と bWordOnly.

参照元 CCommandLine::CCommandLine(), CDlgFind::CDlgFind(), CDlgGrep::CDlgGrep(), CDlgReplace::CDlgReplace(), CEditView::Create(), と CShareData::Init().

bool SSearchOption::operator== ( const SSearchOption & rhs ) const [inline]

global.h の 494 行で定義されています。

参照元 operator!=().

bool SSearchOption::operator!= ( const SSearchOption & rhs ) const [inline]

global.h の 499 行で定義されています。

参照先 operator==().

変数

bool SSearchOption::bRegularExp

true==正規表現

global.h の 471 行で定義されています。

参照元 CMacro::AddLParam(), CEditView::ChangeCurRegexp(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SEARCH_CLEARMARK(), CEditView::DispLineNew(), CEditView::DoGrep(), CControlTray::DoGrep(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CMacro::HandleCommand(), CEditView::ISearchEnter(), CEditView::ISearchExec(), CEditView::IsSearchString(), CDocLineMgr::MarkSearchWord(), CCommandLine::ParseCommandLine(), Reset(), CDocLineMgr::SearchWord(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), と CShareData::ShareData_IO_Common().

bool SSearchOption::bLoHiCase

true==英大文字小文字の区別

global.h の 472 行で定義されています。

参照元 CMacro::AddLParam(), CEditView::ChangeCurRegexp(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CEditView::DoGrep(), CControlTray::DoGrep(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CMacro::HandleCommand(), CEditView::ISearchWordMake(), CEditView::IsSearchString(), CDocLineMgr::MarkSearchWord(), CCommandLine::ParseCommandLine(), Reset(), CDocLineMgr::SearchWord(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), と CShareData::ShareData_IO_Common().

bool SSearchOption::bWordOnly

true==単語のみ検索

global.h の 473 行で定義されています。

参照元 CMacro::AddLParam(), CViewCommander::Command_SEARCH_CLEARMARK(), CEditView::DoGrep(), CControlTray::DoGrep(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CMacro::HandleCommand(), CEditView::IsSearchString(), CDocLineMgr::MarkSearchWord(), CCommandLine::ParseCommandLine(), Reset(), CDocLineMgr::SearchWord(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), と CShareData::ShareData_IO_Common().

この構造体の説明は次のファイルから生成されました:
  • global.h
Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

SSearchOption メンバ一覧

これは全メンバの一覧です。SSearchOption継承メンバも含んでいます。

bLoHiCase | SSearchOption |
bRegularExp | SSearchOption |
bWordOnly | SSearchOption |
operator!=(const SSearchOption &rhs) const | SSearchOption | [inline]
operator==(const SSearchOption &rhs) const | SSearchOption | [inline]
Reset() | SSearchOption | [inline]
SSearchOption() | SSearchOption | [inline]
SSearchOption(bool _bRegularExp, bool _bLoHiCase, bool _bWordOnly) | SSearchOption | [inline]

Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 STabGroupInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 STabGroupInfo

#include <CEditWnd.h>

すべてのメンバ一覧

Public メソッド

STabGroupInfo ()
bool | IsValid () const

Public 変数

HWND | hwndTop
WINDOWPLACEMENT | wpTop

説明

CEditWnd.h の 62 行で定義されています。

コンストラクタとデストラクタ

STabGroupInfo::STabGroupInfo ( ) [inline]

CEditWnd.h の 66 行で定義されています。

関数

bool STabGroupInfo::IsValid ( ) const [inline]

CEditWnd.h の 67 行で定義されています。

参照先 hwndTop, と NULL.

参照元 CEditWnd::_GetWindowRectForInit().

変数

HWND STabGroupInfo::hwndTop

CEditWnd.h の 63 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), CEditWnd::_GetWindowRectForInit(), と IsValid().

WINDOWPLACEMENT STabGroupInfo::wpTop

CEditWnd.h の 64 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetTabGroupInfo(), と CEditWnd::_GetWindowRectForInit().

この構造体の説明は次のファイルから生成されました:
  • CEditWnd.h
Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

STabGroupInfo メンバ一覧

これは全メンバの一覧です。STabGroupInfo継承メンバも含んでいます。

hwndTop | STabGroupInfo |
IsValid() const | STabGroupInfo | [inline]
STabGroupInfo() | STabGroupInfo | [inline]
wpTop | STabGroupInfo |

Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート StaticString< CHAR_TYPE, N_BUFFER_COUNT >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート StaticString< CHAR_TYPE, N_BUFFER_COUNT >

ヒープを用いない文字列クラス [詳細]

#include <StaticType.h>

StaticString< CHAR_TYPE, N_BUFFER_COUNT >に対する継承グラフ

[凡例]
StaticString< CHAR_TYPE, N_BUFFER_COUNT >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

StaticString ()
StaticString (const CHAR_TYPE *rhs)
size_t | GetBufferCount () const
CHAR_TYPE * | GetBufferPointer ()
const CHAR_TYPE * | GetBufferPointer () const
operator CHAR_TYPE * ()
operator const CHAR_TYPE * () const
Me & | operator= (const CHAR_TYPE *dst)

Static Public 変数

static const int | BUFFER_COUNT = N_BUFFER_COUNT

Private 型

typedef StaticString
< CHAR_TYPE, N_BUFFER_COUNT > 		Me

Private 変数

CHAR_TYPE | m_szData [N_BUFFER_COUNT]

説明

template<class CHAR_TYPE, int N_BUFFER_COUNT>
class StaticString< CHAR_TYPE, N_BUFFER_COUNT >

ヒープを用いない文字列クラス

StaticType.h の 46 行で定義されています。

型定義

template<class CHAR_TYPE, int N_BUFFER_COUNT>
typedef StaticString<CHAR_TYPE,N_BUFFER_COUNT> StaticString< CHAR_TYPE, N_BUFFER_COUNT >::Me [private]

StaticType.h の 48 行で定義されています。

コンストラクタとデストラクタ

template<class CHAR_TYPE, int N_BUFFER_COUNT>
StaticString< CHAR_TYPE, N_BUFFER_COUNT >::StaticString ( ) [inline]

StaticType.h の 53 行で定義されています。

template<class CHAR_TYPE, int N_BUFFER_COUNT>
StaticString< CHAR_TYPE, N_BUFFER_COUNT >::StaticString ( const CHAR_TYPE * rhs ) [inline]

StaticType.h の 54 行で定義されています。

関数

template<class CHAR_TYPE, int N_BUFFER_COUNT>
size_t StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferCount ( ) const [inline]

StaticType.h の 57 行で定義されています。

参照元 CDataProfile::profile_to_value().

template<class CHAR_TYPE, int N_BUFFER_COUNT>
CHAR_TYPE* StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer ( ) [inline]

StaticType.h の 60 行で定義されています。

参照元 CDataProfile::profile_to_value(), と CDataProfile::value_to_profile().

template<class CHAR_TYPE, int N_BUFFER_COUNT>
const CHAR_TYPE* StaticString< CHAR_TYPE, N_BUFFER_COUNT >::GetBufferPointer ( ) const [inline]

StaticType.h の 61 行で定義されています。

template<class CHAR_TYPE, int N_BUFFER_COUNT>
StaticString< CHAR_TYPE, N_BUFFER_COUNT >::operator CHAR_TYPE * ( ) [inline]

StaticType.h の 64 行で定義されています。

template<class CHAR_TYPE, int N_BUFFER_COUNT>
StaticString< CHAR_TYPE, N_BUFFER_COUNT >::operator const CHAR_TYPE * ( ) const [inline]

StaticType.h の 65 行で定義されています。

template<class CHAR_TYPE, int N_BUFFER_COUNT>
Me& StaticString< CHAR_TYPE, N_BUFFER_COUNT >::operator= ( const CHAR_TYPE * dst ) [inline]

StaticType.h の 68 行で定義されています。

変数

template<class CHAR_TYPE, int N_BUFFER_COUNT>
const int StaticString< CHAR_TYPE, N_BUFFER_COUNT >::BUFFER_COUNT = N_BUFFER_COUNT [static]

StaticType.h の 50 行で定義されています。

template<class CHAR_TYPE, int N_BUFFER_COUNT>
CHAR_TYPE StaticString< CHAR_TYPE, N_BUFFER_COUNT >::m_szData[N_BUFFER_COUNT] [private]

StaticType.h の 71 行で定義されています。

参照元 StaticString< TCHAR, _MAX_PATH >::GetBufferPointer(), StaticString< TCHAR, _MAX_PATH >::operator const TCHAR *(), StaticString< TCHAR, _MAX_PATH >::operator TCHAR *(), StaticString< TCHAR, _MAX_PATH >::operator=(), と StaticString< TCHAR, _MAX_PATH >::StaticString().

このクラスの説明は次のファイルから生成されました:
  • StaticType.h
Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

StaticString< CHAR_TYPE, N_BUFFER_COUNT > メンバ一覧

これは全メンバの一覧です。StaticString< CHAR_TYPE, N_BUFFER_COUNT >継承メンバも含んでいます。

BUFFER_COUNT | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [static]
GetBufferCount() const | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
GetBufferPointer() | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
GetBufferPointer() const | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
m_szData | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [private]
Me typedef | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [private]
operator CHAR_TYPE *() | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
operator const CHAR_TYPE *() const | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
operator=(const CHAR_TYPE *dst) | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
StaticString() | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]
StaticString(const CHAR_TYPE *rhs) | StaticString< CHAR_TYPE, N_BUFFER_COUNT > | [inline]

Sakura-Editorに対してSat Nov 17 20:29:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >

ヒープを用いないvector [詳細]

#include <StaticType.h>

StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >に対する継承グラフ

[凡例]

すべてのメンバ一覧

Public 型

typedef ELEMENT_TYPE | ElementType

Public メソッド

int | size () const
ElementType & | operator[] (int nIndex)
const ElementType & | operator[] (int nIndex) const
void | clear ()
void | push_back (SET_TYPE e)
void | resize (int nNewSize)
int & | _GetSizeRef ()

Private 変数

int | m_nCount
ElementType | m_aElements [MAX_SIZE]

説明

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
class StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >

ヒープを用いないvector

StaticType.h の 8 行で定義されています。

型定義

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
typedef ELEMENT_TYPE StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::ElementType

StaticType.h の 11 行で定義されています。

関数

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
int StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::size ( ) const [inline]

StaticType.h の 15 行で定義されています。

参照元 CDlgExec::SetData(), と CShareData::ShareData_IO_Cmd().

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
ElementType& StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::operator[] ( int nIndex ) [inline]

StaticType.h の 18 行で定義されています。

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
const ElementType& StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::operator[] ( int nIndex ) const [inline]

StaticType.h の 19 行で定義されています。

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
void StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::clear ( ) [inline]

StaticType.h の 22 行で定義されています。

参照元 CShareData::Init().

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
void StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::push_back ( SET_TYPE e ) [inline]

StaticType.h の 23 行で定義されています。

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
void StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::resize ( int nNewSize ) [inline]

StaticType.h の 29 行で定義されています。

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
int& StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::_GetSizeRef ( ) [inline]

StaticType.h の 36 行で定義されています。

参照元 CShareData::ShareData_IO_Cmd().

変数

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
int StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::m_nCount [private]

StaticType.h の 39 行で定義されています。

参照元 StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::_GetSizeRef(), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::clear(), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::operator[](), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::push_back(), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::resize(), と StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::size().

template<class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
ElementType StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >::m_aElements[MAX_SIZE] [private]

StaticType.h の 40 行で定義されています。

参照元 StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::operator[](), と StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::push_back().

このクラスの説明は次のファイルから生成されました:
  • StaticType.h
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > メンバ一覧

これは全メンバの一覧です。StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >継承メンバも含んでいます。

_GetSizeRef() | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
clear() | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
ElementType typedef | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > |
m_aElements | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [private]
m_nCount | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [private]
operator[](int nIndex) | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
operator[](int nIndex) const | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
push_back(SET_TYPE e) | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
resize(int nNewSize) | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]
size() const | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > | [inline]

Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 StringBufferA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 StringBufferA

#include <CDataProfile.h>

すべてのメンバ一覧

Public メソッド

StringBufferA ()
StringBufferA (ACHAR *_pData, int _nDataCount)
StringBufferA & | operator= (const StringBufferA &rhs)

Public 変数

ACHAR * pData
int | nDataCount

説明

CDataProfile.h の 20 行で定義されています。

コンストラクタとデストラクタ

StringBufferA::StringBufferA ( ) [inline]

CDataProfile.h の 24 行で定義されています。

StringBufferA::StringBufferA | ( | ACHAR * | _pData,
 |  | int | _nDataCount |
 | ) |  |  | [inline]

CDataProfile.h の 25 行で定義されています。

関数

StringBufferA& StringBufferA::operator= ( const StringBufferA & rhs ) [inline]

CDataProfile.h の 27 行で定義されています。

参照先 auto_strcpy_s(), nDataCount, と pData.

変数

ACHAR* StringBufferA::pData

CDataProfile.h の 21 行で定義されています。

参照元 operator=(), CDataProfile::profile_to_value(), と CDataProfile::value_to_profile().

int StringBufferA::nDataCount

CDataProfile.h の 22 行で定義されています。

参照元 operator=(), と CDataProfile::profile_to_value().

この構造体の説明は次のファイルから生成されました:
  • CDataProfile.h
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

StringBufferA メンバ一覧

これは全メンバの一覧です。StringBufferA継承メンバも含んでいます。

nDataCount | StringBufferA |
operator=(const StringBufferA &rhs) | StringBufferA | [inline]
pData | StringBufferA |
StringBufferA() | StringBufferA | [inline]
StringBufferA(ACHAR *_pData, int _nDataCount) | StringBufferA | [inline]

Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 StringBufferW

  • 構成
  • クラス階層
  • 構成メンバ

構造体 StringBufferW

#include <CDataProfile.h>

すべてのメンバ一覧

Public メソッド

StringBufferW ()
StringBufferW (WCHAR *_pData, int _nDataCount)
StringBufferW & | operator= (const StringBufferW &rhs)

Public 変数

WCHAR * pData
const int | nDataCount

説明

CDataProfile.h の 7 行で定義されています。

コンストラクタとデストラクタ

StringBufferW::StringBufferW ( ) [inline]

CDataProfile.h の 11 行で定義されています。

StringBufferW::StringBufferW | ( | WCHAR * | _pData,
 |  | int | _nDataCount |
 | ) |  |  | [inline]

CDataProfile.h の 12 行で定義されています。

関数

StringBufferW& StringBufferW::operator= ( const StringBufferW & rhs ) [inline]

CDataProfile.h の 14 行で定義されています。

参照先 auto_strcpy_s(), nDataCount, と pData.

変数

WCHAR* StringBufferW::pData

CDataProfile.h の 8 行で定義されています。

参照元 operator=(), CDataProfile::profile_to_value(), と CDataProfile::value_to_profile().

const int StringBufferW::nDataCount

CDataProfile.h の 9 行で定義されています。

参照元 operator=(), と CDataProfile::profile_to_value().

この構造体の説明は次のファイルから生成されました:
  • CDataProfile.h
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

StringBufferW メンバ一覧

これは全メンバの一覧です。StringBufferW継承メンバも含んでいます。

nDataCount | StringBufferW |
operator=(const StringBufferW &rhs) | StringBufferW | [inline]
pData | StringBufferW |
StringBufferW() | StringBufferW | [inline]
StringBufferW(WCHAR *_pData, int _nDataCount) | StringBufferW | [inline]

Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


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)
void | GetW (wchar_t **S, int *L)
void | GetT (TCHAR **S, int *L)

Public 変数

BSTR | Data

説明

BSTRのWrapper class

データ構造はBSTRと互換性あり

OleTypes.h の 23 行で定義されています。

コンストラクタとデストラクタ

SysString::SysString ( ) [inline]

OleTypes.h の 27 行で定義されています。

参照先 Data, と NULL.

SysString::SysString ( SysString & Source ) [inline]

OleTypes.h の 28 行で定義されています。

参照先 Data.

SysString::SysString ( BSTR & Source ) [inline]

OleTypes.h の 29 行で定義されています。

参照先 Data.

SysString::SysString | ( | wchar_t const * | S,
 |  | int | L |
 | ) |  |  | [inline]

OleTypes.h の 30 行で定義されています。

参照先 Data.

SysString::SysString | ( | char const * | S,
 |  | int | L |
 | ) |  |  | [inline]

OleTypes.h の 31 行で定義されています。

参照先 Data.

SysString::~SysString ( ) [inline]

OleTypes.h の 38 行で定義されています。

参照先 Data.

関数

SysString& SysString::operator= ( SysString & Source ) [inline]

OleTypes.h の 39 行で定義されています。

参照先 Data.

int SysString::Length ( void ) [inline]

OleTypes.h の 40 行で定義されています。

参照先 Data.

void SysString::Get | ( | char ** | S,
 |  | int * | L |
 | ) |  |  | [inline]

OleTypes.h の 41 行で定義されています。

参照先 Data, と NULL.

void SysString::GetW | ( | wchar_t ** | S,
 |  | int * | L |
 | ) |  |  | [inline]

OleTypes.h の 48 行で定義されています。

参照先 Data.

void SysString::GetT | ( | TCHAR ** | S,
 |  | int * | L
 | ) |  |

変数

BSTR SysString::Data

OleTypes.h の 25 行で定義されています。

参照元 Get(), GetW(), Length(), operator=(), Variant::Receive(), SysString(), と ~SysString().

この構造体の説明は次のファイルから生成されました:
  • OleTypes.h
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

SysString メンバ一覧

これは全メンバの一覧です。SysString継承メンバも含んでいます。

Data | SysString |
Get(char **S, int *L) | SysString | [inline]
GetT(TCHAR **S, int *L) | SysString |
GetW(wchar_t **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 Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TABMENU_DATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TABMENU_DATA

すべてのメンバ一覧

Public 変数

HWND | hwnd
int | iItem
int | iImage
TCHAR | szText [_MAX_PATH]

説明

CTabWnd.cpp の 77 行で定義されています。

変数

HWND TABMENU_DATA::hwnd

CTabWnd.cpp の 78 行で定義されています。

参照元 CTabWnd::TabListMenu().

int TABMENU_DATA::iItem

CTabWnd.cpp の 79 行で定義されています。

参照元 CTabWnd::TabListMenu().

int TABMENU_DATA::iImage

CTabWnd.cpp の 80 行で定義されています。

参照元 CTabWnd::OnDrawItem(), と CTabWnd::TabListMenu().

TCHAR TABMENU_DATA::szText[_MAX_PATH]

CTabWnd.cpp の 81 行で定義されています。

参照元 CTabWnd::OnDrawItem(), と CTabWnd::OnMeasureItem().

この構造体の説明は次のファイルから生成されました:
  • CTabWnd.cpp
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TABMENU_DATA メンバ一覧

これは全メンバの一覧です。TABMENU_DATA継承メンバも含んでいます。

hwnd | TABMENU_DATA
iImage | TABMENU_DATA
iItem | TABMENU_DATA
szText | TABMENU_DATA

Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TagJump

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TagJump

タグジャンプ情報 [詳細]

#include <CShareData.h>

TagJumpのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

HWND hwndReferer
CLogicPoint point

説明

タグジャンプ情報

CShareData.h の 253 行で定義されています。

変数

HWND TagJump::hwndReferer

CShareData.h の 254 行で定義されています。

参照元 CViewCommander::Command_TAGJUMPBACK(), CEditView::OPEN_ExtFromtoExt(), と CEditView::TagJumpSub().

CLogicPoint TagJump::point

CShareData.h の 255 行で定義されています。

参照元 CViewCommander::Command_TAGJUMPBACK(), CEditView::OPEN_ExtFromtoExt(), と CEditView::TagJumpSub().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TagJump メンバ一覧

これは全メンバの一覧です。TagJump継承メンバも含んでいます。

hwndReferer | TagJump
point | TagJump

Sakura-Editorに対してSat Nov 17 20:29:35 2007に生成されました。 doxygen 1.5.4


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 の 69 行で定義されています。

変数

DWORD tagRECONVERTSTRING::dwSize

CEditView.h の 70 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwVersion

CEditView.h の 71 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwStrLen

CEditView.h の 72 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwStrOffset

CEditView.h の 73 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwCompStrLen

CEditView.h の 74 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwCompStrOffset

CEditView.h の 75 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwTargetStrLen

CEditView.h の 76 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwTargetStrOffset

CEditView.h の 77 行で定義されています。

参照元 CEditView::SetReconvertStruct().

この構造体の説明は次のファイルから生成されました:
  • CEditView.h
Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

tagRECONVERTSTRING メンバ一覧

これは全メンバの一覧です。tagRECONVERTSTRING継承メンバも含んでいます。

dwCompStrLen | tagRECONVERTSTRING
dwCompStrOffset | tagRECONVERTSTRING
dwSize | tagRECONVERTSTRING
dwStrLen | tagRECONVERTSTRING
dwStrOffset | tagRECONVERTSTRING
dwTargetStrLen | tagRECONVERTSTRING
dwTargetStrOffset | tagRECONVERTSTRING
dwVersion | tagRECONVERTSTRING

Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート TcharReceiver< RECEIVE_CHAR_TYPE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート TcharReceiver< RECEIVE_CHAR_TYPE >

#include <tchar_receive.h>

TcharReceiver< RECEIVE_CHAR_TYPE >のコラボレーション図

[凡例]

すべてのメンバ一覧

Public メソッド

TcharReceiver (RECEIVE_CHAR_TYPE *pReceiver, size_t nReceiverCount)
operator TCHAR * ()
~TcharReceiver ()
template<>
TCHAR * | GetBufferPointer ()
template<>
void | Apply ()
template<>
TCHAR * | GetBufferPointer ()
template<>
void | Apply ()

Protected メソッド

TCHAR * | GetBufferPointer ()
一時バッファを提供。バッファ寿命は短いので注意。
void | Apply ()
一時バッファから、実際の受け取りバッファへデータをコピー。

Private 変数

RECEIVE_CHAR_TYPE * | m_pReceiver
size_t | m_nReceiverCount

説明

template<class RECEIVE_CHAR_TYPE>
class TcharReceiver< RECEIVE_CHAR_TYPE >

実際のデータ種に関わらず、TCHAR[]型の受け取りバッファを提供するクラス。 使い方が特殊なので注意。

例: { wchar_t buf[256]; GetWindowText(hwnd,TcharReceiver(buf)); }

このコードは、ANSIビルド、UNICODEビルド、ともに通ります。 ANSIビルド時は、char→wchar_t変換が発生するため、少し負荷がかかります (この例の場合)。 UNICODEビルド時は、負荷は TcharReceiver を使わない場合とほとんど変わりません (この例の場合)。

動作原理はソースを参照のこと。 operator TCHAR* が GetWindowText に渡すポインタを提供し、 ~TcharReceiver において、必要であれば (ビルド種と受け取り型が異なれば)、 TCHAR→wchar_t変換が発生します。

2007.10.27 kobake 作成

tchar_receive.h の 25 行で定義されています。

コンストラクタとデストラクタ

template<class RECEIVE_CHAR_TYPE>
TcharReceiver< RECEIVE_CHAR_TYPE >::TcharReceiver | ( | RECEIVE_CHAR_TYPE * | pReceiver,
 |  | size_t | nReceiverCount |
 | ) |  |  | [inline]

引数:
nReceiverCount 受け取りバッファを指定。

tchar_receive.h の 27 行で定義されています。

template<class RECEIVE_CHAR_TYPE>
TcharReceiver< RECEIVE_CHAR_TYPE >::~TcharReceiver ( ) [inline]

tchar_receive.h の 30 行で定義されています。

参照先 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply().

関数

template<class RECEIVE_CHAR_TYPE>
TcharReceiver< RECEIVE_CHAR_TYPE >::operator TCHAR * ( ) [inline]

tchar_receive.h の 29 行で定義されています。

参照先 TcharReceiver< RECEIVE_CHAR_TYPE >::GetBufferPointer().

template<class RECEIVE_CHAR_TYPE>
TCHAR* TcharReceiver< RECEIVE_CHAR_TYPE >::GetBufferPointer ( ) [protected]

一時バッファを提供。バッファ寿命は短いので注意。

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::operator TCHAR *().

template<class RECEIVE_CHAR_TYPE>
void TcharReceiver< RECEIVE_CHAR_TYPE >::Apply ( ) [protected]

一時バッファから、実際の受け取りバッファへデータをコピー。

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::~TcharReceiver().

template<>
TCHAR * TcharReceiver< WCHAR >::GetBufferPointer ( ) [inline]

tchar_receive.cpp の 20 行で定義されています。

参照先 static_buf.

template<>
void TcharReceiver< WCHAR >::Apply ( ) [inline]

tchar_receive.cpp の 21 行で定義されています。

参照先 _tcstowcs(), TcharReceiver< RECEIVE_CHAR_TYPE >::m_nReceiverCount, TcharReceiver< RECEIVE_CHAR_TYPE >::m_pReceiver, と static_buf.

template<>
TCHAR * TcharReceiver< ACHAR >::GetBufferPointer ( ) [inline]

tchar_receive.cpp の 24 行で定義されています。

参照先 TcharReceiver< RECEIVE_CHAR_TYPE >::m_pReceiver.

template<>
void TcharReceiver< ACHAR >::Apply ( ) [inline]

tchar_receive.cpp の 25 行で定義されています。

変数

template<class RECEIVE_CHAR_TYPE>
RECEIVE_CHAR_TYPE* TcharReceiver< RECEIVE_CHAR_TYPE >::m_pReceiver [private]

tchar_receive.h の 35 行で定義されています。

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply(), と TcharReceiver< RECEIVE_CHAR_TYPE >::GetBufferPointer().

template<class RECEIVE_CHAR_TYPE>
size_t TcharReceiver< RECEIVE_CHAR_TYPE >::m_nReceiverCount [private]

tchar_receive.h の 36 行で定義されています。

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply().

このクラスの説明は次のファイルから生成されました:
  • tchar_receive.h
Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TcharReceiver< RECEIVE_CHAR_TYPE > メンバ一覧

これは全メンバの一覧です。TcharReceiver< RECEIVE_CHAR_TYPE >継承メンバも含んでいます。

Apply() | TcharReceiver< RECEIVE_CHAR_TYPE > | [protected]
Apply() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
Apply() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
GetBufferPointer() | TcharReceiver< RECEIVE_CHAR_TYPE > | [protected]
GetBufferPointer() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
GetBufferPointer() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
m_nReceiverCount | TcharReceiver< RECEIVE_CHAR_TYPE > | [private]
m_pReceiver | TcharReceiver< RECEIVE_CHAR_TYPE > | [private]
operator TCHAR *() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
TcharReceiver(RECEIVE_CHAR_TYPE *pReceiver, size_t nReceiverCount) | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]
~TcharReceiver() | TcharReceiver< RECEIVE_CHAR_TYPE > | [inline]

Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TestArrayA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TestArrayA

すべてのメンバ一覧

Public 変数

char a [100]

説明

Debug.cpp の 27 行で定義されています。

変数

char TestArrayA::a[100]

Debug.cpp の 27 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • Debug.cpp
Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TestArrayA メンバ一覧

これは全メンバの一覧です。TestArrayA継承メンバも含んでいます。

a TestArrayA

Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TestArrayI

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TestArrayI

すべてのメンバ一覧

Public 変数

int a [100]

説明

Debug.cpp の 29 行で定義されています。

変数

int TestArrayI::a[100]

Debug.cpp の 29 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • Debug.cpp
Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TestArrayI メンバ一覧

これは全メンバの一覧です。TestArrayI継承メンバも含んでいます。

a TestArrayI

Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TestArrayW

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TestArrayW

すべてのメンバ一覧

Public 変数

wchar_t a [100]

説明

Debug.cpp の 28 行で定義されています。

変数

wchar_t TestArrayW::a[100]

Debug.cpp の 28 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • Debug.cpp
Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TestArrayW メンバ一覧

これは全メンバの一覧です。TestArrayW継承メンバも含んでいます。

a TestArrayW

Sakura-Editorに対してSat Nov 17 20:29:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス テンプレート TSingleInstance< T >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート TSingleInstance< T >

#include <design_template.h>

TSingleInstance< T >に対する継承グラフ

[凡例]
TSingleInstance< T >のコラボレーション図

[凡例]

すべてのメンバ一覧

Static Public メソッド

static T * | Instance ()
作成済みのインスタンスを返す。インスタンスが存在しなければ NULL。

Protected メソッド

TSingleInstance ()
~TSingleInstance ()

Static Private 変数

static T * | gm_instance = NULL

説明

template<class T>
class TSingleInstance< T >

1個しかインスタンスが存在しないクラスからのインスタンス取得インターフェースをstaticで提供。 Singletonパターンとは異なり、Instance()呼び出しにより、インスタンスが自動生成されない点に注意。

2007.10.23 kobake 作成

design_template.h の 17 行で定義されています。

コンストラクタとデストラクタ

template<class T>
TSingleInstance< T >::TSingleInstance ( ) [inline, protected]

design_template.h の 24 行で定義されています。

template<class T>
TSingleInstance< T >::~TSingleInstance ( ) [inline, protected]

design_template.h の 25 行で定義されています。

関数

template<class T>
static T* TSingleInstance< T >::Instance ( void ) [inline, static]

作成済みのインスタンスを返す。インスタンスが存在しなければ NULL。

design_template.h の 20 行で定義されています。

変数

template<class T>
T * TSingleInstance< T >::gm_instance = NULL [inline, static, private]

design_template.h の 27 行で定義されています。

参照元 TSingleInstance< CEditApp >::Instance(), TSingleInstance< CEditApp >::TSingleInstance(), と TSingleInstance< CEditApp >::~TSingleInstance().

このクラスの説明は次のファイルから生成されました:
  • design_template.h
Sakura-Editorに対してSat Nov 17 20:29:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TSingleInstance< T > メンバ一覧

これは全メンバの一覧です。TSingleInstance< T >継承メンバも含んでいます。

gm_instance | TSingleInstance< T > | [inline, private, static]
Instance() | TSingleInstance< T > | [inline, static]
TSingleInstance() | TSingleInstance< T > | [inline, protected]
~TSingleInstance() | TSingleInstance< T > | [inline, protected]

Sakura-Editorに対してSat Nov 17 20:29:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 TYPE_NAME

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TYPE_NAME

すべてのメンバ一覧

Public 変数

int | nMethod
wchar_t * | pszName

説明

CPropTypes.cpp の 42 行で定義されています。

変数

int TYPE_NAME::nMethod

CPropTypes.cpp の 43 行で定義されています。

参照元 CPropTypes::GetData_p1().

wchar_t* TYPE_NAME::pszName

CPropTypes.cpp の 44 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CPropTypes.cpp
Sakura-Editorに対してSat Nov 17 20:29:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TYPE_NAME メンバ一覧

これは全メンバの一覧です。TYPE_NAME継承メンバも含んでいます。

nMethod | TYPE_NAME
pszName | TYPE_NAME

Sakura-Editorに対してSat Nov 17 20:29:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 Types

  • 構成
  • クラス階層
  • 構成メンバ

構造体 Types

タイプ別設定 [詳細]

#include <CShareData.h>

Typesのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

int | m_nIdx
TCHAR | m_szTypeName [64]
TCHAR | m_szTypeExts [64]
CLayoutInt m_nMaxLineKetas
int | m_nColmSpace
int | m_nLineSpace
CLayoutInt m_nTabSpace
int | m_bTabArrow
EDIT_CHAR | m_szTabViewString [17]
int | m_bInsSpace
int | m_nKeyWordSetIdx [MAX_KEYWORDSET_PER_TYPE]
CLineComment m_cLineComment
CBlockComment m_cBlockComment
int | m_nStringType
wchar_t | m_szIndentChars [64]
int | m_nColorInfoArrNum
ColorInfo | m_ColorInfoArr [64]
int | m_bLineNumIsCRLF
int | m_nLineTermType
wchar_t | m_cLineTermChar
CLayoutInt | m_nVertLineIdx [MAX_VERTLINES]
BOOL | m_bWordWrap
BOOL | m_bKinsokuHead
BOOL | m_bKinsokuTail
BOOL | m_bKinsokuRet
BOOL | m_bKinsokuKuto
wchar_t | m_szKinsokuHead [200]
wchar_t | m_szKinsokuTail [200]
int | m_nCurrentPrintSetting
int | m_nDefaultOutline
SFilePath m_szOutlineRuleFilename
int | m_nSmartIndent
int | m_nImeState
SFilePath m_szHokanFile
int | m_bUseHokanByFile
int | m_bHokanLoHiCase
SFilePath m_szExtHelp
SFilePath m_szExtHtmlHelp
BOOL | m_bHtmlHelpIsSingle
BOOL | m_bUseRegexKeyword
int | m_nRegexKeyMagicNumber
struct RegexKeywordInfo | m_RegexKeywordArr [MAX_REGEX_KEYWORD]
BOOL | m_bUseKeyWordHelp
int | m_nKeyHelpNum
struct 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 の 158 行で定義されています。

変数

int Types::m_nIdx

CShareData.h の 160 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CShareData::InitTypeConfig(), と CShareData::ShareData_IO_Types().

TCHAR Types::m_szTypeName[64]

タイプ属性：名称

CShareData.h の 161 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p7(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CDlgTypeList::SetData(), CDlgProperty::SetData(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

TCHAR Types::m_szTypeExts[64]

タイプ属性：拡張子リスト

CShareData.h の 162 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p7(), CPropTypes::GetData_p1(), CShareData::GetDocumentTypeExt(), CShareData::InitTypeConfig(), CDlgTypeList::SetData(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

CLayoutInt Types::m_nMaxLineKetas

折り返し桁数

CShareData.h の 163 行で定義されています。

参照元 CPropTypes::DoPropertySheet(), CPropTypes::GetData_p1(), CEditView::GetWrapMode(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

int Types::m_nColmSpace

文字と文字の隙間

CShareData.h の 164 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CShareData::ShareData_IO_Types(), と CTextArea::UpdateAreaMetrics().

int Types::m_nLineSpace

行間のすきま

CShareData.h の 165 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CShareData::ShareData_IO_Types(), と CTextArea::UpdateAreaMetrics().

CLayoutInt Types::m_nTabSpace

TABの文字数

CShareData.h の 166 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

int Types::m_bTabArrow

タブ矢印表示

CShareData.h の 167 行で定義されています。

参照元 CTextDrawer::DispTab(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

EDIT_CHAR Types::m_szTabViewString[17]

TAB表示文字列

CShareData.h の 168 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CTextDrawer::DispTab(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

int Types::m_bInsSpace

CShareData.h の 169 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CShareData::ShareData_IO_Types(), と CEditView::SmartIndent_CPP().

int Types::m_nKeyWordSetIdx[MAX_KEYWORDSET_PER_TYPE]

キーワードセット

CShareData.h の 171 行で定義されています。

参照元 CEditView::DispLineNew(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

CLineComment Types::m_cLineComment

行コメントデリミタ

CShareData.h の 173 行で定義されています。

参照元 CEditView::DispLineNew(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), CPropTypes::SetData_p3_new(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

CBlockComment Types::m_cBlockComment

ブロックコメントデリミタ

CShareData.h の 174 行で定義されています。

参照元 CEditView::DispLineNew(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), CPropTypes::SetData_p3_new(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

int Types::m_nStringType

文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""]['']

CShareData.h の 176 行で定義されています。

参照元 CEditView::DispLineNew(), CEditView::DoGrep(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPrintPreview::OnChangePrintSetting(), CPropTypes::SetData_p3_new(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

wchar_t Types::m_szIndentChars[64]

その他のインデント対象文字

CShareData.h の 177 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), CLayoutMgr::getIndentOffset_LeftSpace(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

int Types::m_nColorInfoArrNum

色設定配列の有効数

CShareData.h の 179 行で定義されています。

参照元 CShareData::InitTypeConfig(), と CPropTypes::p3_Import_Colors().

ColorInfo Types::m_ColorInfoArr[64]

色設定配列

CShareData.h の 180 行で定義されています。

参照元 CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), CEditView::Create(), CTextArea::DetectWidthOfLineNumberArea(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DispatchEvent_Regex(), CEditView::DispLineNew(), CPropTypes::DoPropertySheet(), CPropTypes::Export_Regex(), CTypeSupport::FillBack(), CTypeSupport::GetBackColor(), CPropTypes::GetData_Regex(), CTypeSupport::GetTextColor(), CTypeSupport::HasUnderLine(), CPropTypes::Import_Regex(), CShareData::InitTypeConfig(), CTypeSupport::IsDisp(), CTypeSupport::IsFatFont(), CDlgSameColor::OnBnClicked(), CPrintPreview::OnChangePrintSetting(), CEditView::OnChangeSetting(), CDlgSameColor::OnInitDialog(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CEditView::OnMOUSEMOVE(), CEditView::OnPaint(), CDlgSameColor::OnSelChangeListColors(), CPropTypes::p3_Export_Colors(), CPropTypes::p3_Import_Colors(), CPropTypes::RearrangeKeywordSet(), CTypeSupport::SetBkColor(), CEditView::SetCurrentColor(), CPropTypes::SetData_p3_new(), CPropTypes::SetData_Regex(), CTypeSupport::SetFont(), CLayoutMgr::SetLayoutInfo(), CTypeSupport::SetTextColor(), CShareData::ShareData_IO_Types(), と CCaret::ShowEditCaret().

int Types::m_bLineNumIsCRLF

行番号の表示 FALSE=折り返し単位／TRUE=改行単位

CShareData.h の 182 行で定義されています。

参照元 CViewCommander::Command_FUNCLIST(), CTextArea::DetectWidthOfLineNumberArea_calculate(), CTextDrawer::DispLineNumber(), CCaret::DrawCaretPosInfo(), CPrintPreview::DrawPageText(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

int Types::m_nLineTermType

行番号区切り 0=なし 1=縦線 2=任意

CShareData.h の 183 行で定義されています。

参照元 CTextDrawer::DispLineNumber(), CPrintPreview::DrawPageText(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

wchar_t Types::m_cLineTermChar

行番号区切り文字

CShareData.h の 184 行で定義されています。

参照元 CTextDrawer::DispLineNumber(), CPrintPreview::DrawPageText(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

CLayoutInt Types::m_nVertLineIdx[MAX_VERTLINES]

指定桁縦線

CShareData.h の 185 行で定義されています。

参照元 CTextDrawer::DispVerticalLines(), CPropTypes::GetData_p3_new(), CShareData::InitTypeConfig(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bWordWrap

英文ワードラップをする

CShareData.h の 187 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CPrintPreview::OnChangePrintSetting(), CEditView::ReplaceData_CEditView(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bKinsokuHead

行頭禁則をする

CShareData.h の 188 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CPrintPreview::OnChangePrintSetting(), CEditView::ReplaceData_CEditView(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bKinsokuTail

行末禁則をする

CShareData.h の 189 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CPrintPreview::OnChangePrintSetting(), CEditView::ReplaceData_CEditView(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bKinsokuRet

改行文字のぶら下げ

CShareData.h の 190 行で定義されています。

参照元 CViewCommander::Command_RIGHT(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CPrintPreview::OnChangePrintSetting(), CEditView::ReplaceData_CEditView(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bKinsokuKuto

句読点のぶらさげ

CShareData.h の 191 行で定義されています。

参照元 CViewCommander::Command_RIGHT(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CPrintPreview::OnChangePrintSetting(), CEditView::ReplaceData_CEditView(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

wchar_t Types::m_szKinsokuHead[200]

行頭禁則文字

CShareData.h の 192 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

wchar_t Types::m_szKinsokuTail[200]

行頭禁則文字

CShareData.h の 193 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

int Types::m_nCurrentPrintSetting

現在選択している印刷設定

CShareData.h の 195 行で定義されています。

参照元 CShareData::InitTypeConfig(), CEditWnd::OnPrintPageSetting(), と CShareData::ShareData_IO_Types().

int Types::m_nDefaultOutline

アウトライン解析方法

CShareData.h の 197 行で定義されています。

参照元 CViewCommander::Command_FUNCLIST(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CDlgJump::SetData(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

SFilePath Types::m_szOutlineRuleFilename

アウトライン解析ルールファイル

CShareData.h の 198 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

int Types::m_nSmartIndent

スマートインデント種別

CShareData.h の 200 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

int Types::m_nImeState

CShareData.h の 201 行で定義されています。

参照元 CEditWnd::Create(), CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

SFilePath Types::m_szHokanFile

入力補完 単語ファイル

CShareData.h の 204 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2(), CPropTypes::GetData_p2(), CShareData::InitTypeConfig(), CPropTypes::SetData_p2(), CShareData::ShareData_IO_Types(), と CEditView::ShowHokanMgr().

int Types::m_bUseHokanByFile

入力補完 開いているファイル内から候補を探す

CShareData.h の 206 行で定義されています。

参照元 CPropTypes::GetData_p2(), CShareData::InitTypeConfig(), CPropTypes::SetData_p2(), CShareData::ShareData_IO_Types(), と CEditView::ShowHokanMgr().

int Types::m_bHokanLoHiCase

入力補完機能：英大文字小文字を同一視する

CShareData.h の 208 行で定義されています。

参照元 CPropTypes::GetData_p2(), CShareData::InitTypeConfig(), CPropTypes::SetData_p2(), CShareData::ShareData_IO_Types(), と CEditView::ShowHokanMgr().

SFilePath Types::m_szExtHelp

CShareData.h の 210 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2(), CShareData::ExtWinHelpIsSet(), CPropTypes::GetData_p2(), CShareData::GetExtWinHelp(), CShareData::InitTypeConfig(), CPropTypes::SetData_p2(), と CShareData::ShareData_IO_Types().

SFilePath Types::m_szExtHtmlHelp

CShareData.h の 211 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2(), CShareData::ExtHTMLHelpIsSet(), CPropTypes::GetData_p2(), CShareData::GetExtHTMLHelp(), CShareData::InitTypeConfig(), CPropTypes::SetData_p2(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bHtmlHelpIsSingle

CShareData.h の 212 行で定義されています。

参照元 CPropTypes::GetData_p2(), CShareData::HTMLHelpIsSingle(), CShareData::InitTypeConfig(), と CPropTypes::SetData_p2().

BOOL Types::m_bUseRegexKeyword

CShareData.h の 216 行で定義されています。

参照元 CEditView::DispLineNew(), CPropTypes::GetData_Regex(), CShareData::InitTypeConfig(), CEditView::OnPaint(), CPropTypes::SetData_Regex(), と CShareData::ShareData_IO_Types().

int Types::m_nRegexKeyMagicNumber

CShareData.h の 217 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::DispatchEvent_Regex(), と CPropTypes::GetData_Regex().

struct RegexKeywordInfo Types::m_RegexKeywordArr[MAX_REGEX_KEYWORD] [read]

CShareData.h の 218 行で定義されています。

参照元 CPropTypes::GetData_Regex(), CShareData::InitTypeConfig(), CPropTypes::SetData_Regex(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bUseKeyWordHelp

CShareData.h の 222 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeyWordHelpSearchDict(), CPropTypes::SetData_KeyHelp(), CShareData::ShareData_IO_Types(), と CEditView::ShowKeywordHelp().

int Types::m_nKeyHelpNum

CShareData.h の 223 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), と CShareData::ShareData_IO_Types().

struct KeyHelpInfo Types::m_KeyHelpArr[MAX_KEYHELP_FILE] [read]

CShareData.h の 224 行で定義されています。

参照元 CPropTypes::Export_KeyHelp(), CPropTypes::GetData_KeyHelp(), CPropTypes::Import_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bUseKeyHelpAllSearch

CShareData.h の 225 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bUseKeyHelpKeyDisp

CShareData.h の 226 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bUseKeyHelpPrefix

CShareData.h の 227 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp(), CShareData::InitTypeConfig(), CEditView::KeySearchCore(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bAutoIndent

CShareData.h の 231 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bAutoIndent_ZENSPACE

CShareData.h の 232 行で定義されています。

参照元 CViewCommander::Command_GOLINETOP(), CViewCommander::Command_WCHAR(), CPropTypes::GetData_p1(), CLayoutMgr::getIndentOffset_LeftSpace(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

BOOL Types::m_bRTrimPrevLine

CShareData.h の 233 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

int Types::m_nIndentLayout

CShareData.h の 234 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), CLayoutMgr::SetLayoutInfo(), と CShareData::ShareData_IO_Types().

int Types::m_bUseDocumentIcon

ファイルに関連づけられたアイコンを使う

CShareData.h の 237 行で定義されています。

参照元 CPropTypes::GetData_p1(), CShareData::InitTypeConfig(), CPropTypes::SetData_p1(), と CShareData::ShareData_IO_Types().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


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_nMaxLineKetas | 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 Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 UnicodeInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 UnicodeInfo_t

#include <charcode.h>

UnicodeInfo_tのコラボレーション図

[凡例]

すべてのメンバ一覧

Public 変数

WCCODE_INFO Uni
WCCODE_INFO UniBe
int nCRorLF_ascii

説明

charcode.h の 120 行で定義されています。

変数

WCCODE_INFO UnicodeInfo_t::Uni

charcode.h の 121 行で定義されています。

参照元 CESI::DetectUnicode(), Charcode::GetEncdInf_Uni(), と CDlgProperty::SetData().

WCCODE_INFO UnicodeInfo_t::UniBe

charcode.h の 122 行で定義されています。

参照元 CESI::DetectUnicode(), Charcode::GetEncdInf_Uni(), と CDlgProperty::SetData().

int UnicodeInfo_t::nCRorLF_ascii

charcode.h の 123 行で定義されています。

参照元 CESI::DetectUnicode(), Charcode::GetEncdInf_Uni(), と CDlgProperty::SetData().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

UnicodeInfo_t メンバ一覧

これは全メンバの一覧です。UnicodeInfo_t継承メンバも含んでいます。

nCRorLF_ascii | UnicodeInfo_t
Uni | UnicodeInfo_t
UniBe | UnicodeInfo_t

Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


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 の 62 行で定義されています。

コンストラクタとデストラクタ

Variant::Variant ( ) [inline]

OleTypes.h の 65 行で定義されています。

参照先 Data.

Variant::Variant ( Variant & Source ) [inline]

OleTypes.h の 66 行で定義されています。

参照先 Data.

Variant::Variant ( VARIANT & Source ) [inline]

OleTypes.h の 67 行で定義されています。

参照先 Data.

Variant::~Variant ( ) [inline]

OleTypes.h の 68 行で定義されています。

参照先 Data.

関数

Variant& Variant::operator= ( Variant & Source ) [inline]

OleTypes.h の 69 行で定義されています。

参照先 Data.

void Variant::Receive ( SysString & Source ) [inline]

SysStringをVariantにセットする

セット後、SysStringの方は中身がNULLになる。

OleTypes.h の 74 行で定義されています。

参照先 SysString::Data, Data, と NULL.

参照元 CPPA::CallHandleFunction(), と CMacro::HandleFunction().

int Variant::Receive ( int i ) [inline]

OleTypes.h の 84 行で定義されています。

参照先 Data.

変数

VARIANT Variant::Data

OleTypes.h の 64 行で定義されています。

参照元 CMacro::HandleFunction(), MacroCommand(), operator=(), Receive(), Variant(), と ~Variant().

この構造体の説明は次のファイルから生成されました:
  • OleTypes.h
Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 VS_VERSION_INFO_HEAD

  • 構成
  • クラス階層
  • 構成メンバ

構造体 VS_VERSION_INFO_HEAD

すべてのメンバ一覧

Public 変数

WORD | wLength
WORD | wValueLength
WORD | bText
WCHAR | szKey [16]
VS_FIXEDFILEINFO | Value

説明

module.cpp の 116 行で定義されています。

変数

WORD VS_VERSION_INFO_HEAD::wLength

module.cpp の 117 行で定義されています。

WORD VS_VERSION_INFO_HEAD::wValueLength

module.cpp の 118 行で定義されています。

WORD VS_VERSION_INFO_HEAD::bText

module.cpp の 119 行で定義されています。

WCHAR VS_VERSION_INFO_HEAD::szKey[16]

module.cpp の 120 行で定義されています。

VS_FIXEDFILEINFO VS_VERSION_INFO_HEAD::Value

module.cpp の 121 行で定義されています。

参照元 GetAppVersionInfo().

この構造体の説明は次のファイルから生成されました:
  • module.cpp
Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


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 Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構造体 WC_EncodingInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 WC_EncodingInfo_t

#include <charcode.h>

すべてのメンバ一覧

Public 変数

enumCodeType eCodeID
int | nCRorLF
int | nLostBytes

説明

charcode.h の 115 行で定義されています。

変数

enumCodeType WC_EncodingInfo_t::eCodeID

charcode.h の 116 行で定義されています。

参照元 CCodeMediator::CheckKanjiCode(), と Charcode::GetEncdInf_Uni().

int WC_EncodingInfo_t::nCRorLF

charcode.h の 117 行で定義されています。

参照元 CESI::DetectUnicode(), Charcode::GetEncdInf_Uni(), と CDlgProperty::SetData().

int WC_EncodingInfo_t::nLostBytes

charcode.h の 118 行で定義されています。

参照元 Charcode::GetEncdInf_Uni().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

WC_EncodingInfo_t メンバ一覧

これは全メンバの一覧です。WC_EncodingInfo_t継承メンバも含んでいます。

eCodeID | WC_EncodingInfo_t
nCRorLF | WC_EncodingInfo_t
nLostBytes | WC_EncodingInfo_t

Sakura-Editorに対してSat Nov 17 20:29:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 階層索引

  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor クラス階層

クラス階層図を見る。

この継承一覧はおおまかにはソートされていますが、完全にアルファベット順でソートされてはいません。

  • _SORTTABLE
  • ARRHEAD
  • bregexp
  • CBlockComment
  • CCaret
  • CCaretUnderLine
  • CClipboard
  • CCodeBase
    • CEuc
    • CJis
    • CShiftJis
    • CUnicode
    • CUnicodeBe
    • CUtf7
    • CUtf8
  • CCodeFactory
  • CCodeMediator
  • CCommandLine
  • CControlTray
  • CConvert
    • CConvert_Base64Decode
    • CConvert_HaneisuToZeneisu
    • CConvert_HankanaToZenhira
    • CConvert_HankanaToZenkana
    • CConvert_SpaceToTab
    • CConvert_TabToSpace
    • CConvert_ToHankaku
    • CConvert_ToLower
    • CConvert_ToUpper
    • CConvert_ToZenhira
    • CConvert_ToZenkana
    • CConvert_Trim
    • CConvert_UuDecode
    • CConvert_ZeneisuToHaneisu
    • CConvert_ZenkanaToHankana
  • CConvertMediator
  • 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
    • CBregexpDll2
      • CBregexp
        • CRegexKeyword
    • CHtmlHelp
    • CMigemo
    • CPPA
    • CUxTheme
  • CDllHandler::ImportTable
  • CDocLine
  • CDocLineMgr
  • CEditDoc
  • CEditView_Paint
    • CEditView
  • CEditWnd
  • CEOL
  • CError_FileOpen
  • CError_FileRead
  • CError_FileWrite
  • CESI
  • CFileExt
  • CFileExt::FileExtInfoTag
  • CFileLoad
  • CFileWrite
  • CFuncInfo
  • CFuncInfoArr
  • CFuncLookup
  • CharPointerA
  • CharPointerW
  • CImageListMgr
  • CInterfaceObject::CMethodInfo
  • CIoBridge
  • CKeyBind
  • CKeyWordSetMgr
  • CLaxInteger
  • CLayout
  • CLayoutMgr
  • CLineComment
  • CMacro
  • CMacro::CMacroParam
  • CMacroFactory
  • CMacroManagerBase
    • CKeyMacroMgr
    • CPPAMacroMgr
    • CWSHMacroManager
  • CMainStatusBar
  • CMainToolBar
  • CMarkMgr
    • CAutoMarkMgr
  • CMarkMgr::CMark
  • CMemory
    • CNative
      • CNativeA
      • CNativeW
  • CMemoryIterator
  • CMenuDrawer
  • CMRU
  • CMRUFolder
  • CMutex
  • CMyPoint
  • CMyRect
  • CMySize
  • CMyString
  • COleLibrary
  • ColorAttributeData_t
  • ColorInfo
  • ColorInfoIni
  • CommonSetting
  • CommonSetting_Backup
  • CommonSetting_Compare
  • CommonSetting_CustomMenu
  • CommonSetting_Edit
  • CommonSetting_File
  • CommonSetting_Format
  • CommonSetting_General
  • CommonSetting_Helper
  • CommonSetting_Others
  • CommonSetting_OutLine
  • CommonSetting_Search
  • CommonSetting_TabBar
  • CommonSetting_ToolBar
  • CommonSetting_View
  • CommonSetting_Window
  • CommonValue< T >
  • CommonValueInfo
  • ComPropSheetInfo
  • COpe
  • COpeBlk
  • COpeBuf
  • COsVersionInfo
  • COutlinePython
  • CPassiveTimer
  • CPrint
  • CPrintPreview
  • CProcess
    • CControlProcess
    • CNormalProcess
  • CProcessFactory
  • CProfile
    • CDataProfile
  • CProfile::Section
  • CPropCommon
  • CPropTypes
  • CRangeBase< PointType >
  • CRecent
    • CRecentImp< DATA_TYPE, RECEIVE_TYPE >
      • CRecentCmd
      • CRecentFolder
      • CRecentGrepFile
      • CRecentGrepFolder
      • CRecentReplace
      • CRecentSearch
      • CRecentTagjumpKeyword
    • CRecentImp< EditNode >
      • CRecentEditNode
    • CRecentImp< FileInfo >
      • CRecentFile
    • CRecentImp< StaticString, LPCTSTR >
    • CRecentImp< StaticString, LPCWSTR >
  • CRecycledBuffer
  • CRecycledBufferDynamic
  • CRuler
  • CRunningTimer
  • CShareData
  • CSMacroMgr
  • CSortedTagJumpList
  • CSortedTagJumpList::tagjump_info_t
  • CStream
    • CBinaryInputStream
    • CBinaryOutputStream
    • CTextInputStream
      • CTextInputStream_AbsIni
    • CTextOutputStream
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >
  • CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >
  • CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • CStrictRect< INT_TYPE, POINT_TYPE >
  • CTextArea
  • CTextDrawer
  • CTextMetrics
  • ctrl_info_t
  • CTypeSupport
  • CUrlWnd
  • CViewCalc
    • CEditView
  • CViewCommander
  • CViewFont
  • CViewParser
  • CViewSelect
  • CWaitCursor
  • CWnd
    • CFuncKeyWnd
    • CSplitBoxWnd
    • CSplitterWnd
    • CTabWnd
    • CTipWnd
  • CWordParse
  • CWSHClient
  • CWSHSite
  • CYbInterfaceBase
    • CYbInterfaceImpl< BASEINTERFACE >
    • CYbInterfaceImpl< IDataObject >
      • CDataObject
    • CYbInterfaceImpl< IDropSource >
      • CDropSource
    • CYbInterfaceImpl< IDropTarget >
      • CDropTarget
  • DispPos
  • DLLSHAREDATA
  • DocLineReplaceArg
  • EditNode
  • EditNodeEx
  • EncodingInfo_t
  • FileInfo
  • GrepInfo
  • IDataObject
    • CYbInterfaceImpl< IDataObject >
  • IDispatch
    • ImplementsIUnknown< IDispatch >
      • CInterfaceObject
  • IDropSource
    • CYbInterfaceImpl< IDropSource >
  • IDropTarget
    • CYbInterfaceImpl< IDropTarget >
  • ImplementsIUnknown< Base >
  • IniFolder
  • IStringRef
    • CStringRef
  • ITypeInfo
    • ImplementsIUnknown< ITypeInfo >
      • CInterfaceObjectTypeInfo
  • KAKKO_T
  • KEYDATA
  • KeyHelpInfo
  • LayoutReplaceArg
  • LocalCache
  • LockGuard< EXCLUSIVE_OBJECT >
  • MacroFuncInfo
  • MacroRec
  • MYDEVMODE
  • oneRule
  • OPENFILENAMEZ
  • PAPER_INFO
  • PRINTSETTING
  • RcCvt
  • RegexInfo_t
  • RegexKeywordInfo
  • SLayoutPoint
  • SLogicPoint
  • SSearchOption
  • STabGroupInfo
  • StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • StringBufferA
  • StringBufferW
  • SysString
  • TABMENU_DATA
  • TagJump
  • tagRECONVERTSTRING
  • TcharReceiver< RECEIVE_CHAR_TYPE >
  • TestArrayA
  • TestArrayI
  • TestArrayW
  • TSingleInstance< T >
  • TSingleInstance< CEditApp >
    • CEditApp
  • TSingleInstance< CNormalProcess >
    • CNormalProcess
  • TYPE_NAME
  • Types
  • UnicodeInfo_t
  • Variant
  • VS_VERSION_INFO_HEAD
  • WC_EncodingInfo_t
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- _ -

  • _AddData() : CMemory
  • _AdjustInMonitor() : CEditWnd
  • _AppendSz() : CMemory
  • _CreateMainWindow() : CEditWnd
  • _DebugGetPointerRef() : CMemory
  • _DrawEOL() : CTextDrawer
  • _DrawRulerCaret() : CRuler
  • _DrawTabArrow() : CTextDrawer
  • _Empty() : CMemory
  • _ExistKinsokuHead() : CLayoutMgr
  • _ExistKinsokuKuto() : CLayoutMgr
  • _forward() : CharPointerA , CharPointerW
  • _get() : CharPointerA , CharPointerW
  • _GetColorIdx() : CTextDrawer
  • _GetMemory() : CNative
  • _GetRaw() : LocalCache
  • _GetSizeRef() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • _GetTabGroupInfo() : CEditWnd
  • _GetWindowRectForInit() : CEditWnd
  • _Insert() : CDocLineMgr
  • _instance : CMigemo , CShareData , CCommandLine
  • _PushBottom() : CDocLineMgr
  • _Recovery() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • _SetDragMode() : CEditView
  • _SetHwnd() : CDialog , CWnd
  • _SetRawLength() : CMemory
  • _SetStringLength() : CNativeW
  • _work_itow() : CDataProfile
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- j -

  • JIStoSJIS() : CJis
  • JISToUnicode() : CJis
  • jname : ctrl_info_t
  • JoinNext() : CTabWnd
  • JoinPrev() : CTabWnd
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- k -

  • Key2Command() : CDlgFuncList
  • KeyProc() : CHokanMgr
  • KeySearchCore() : CEditView
  • keyword : CSortedTagJumpList::tagjump_info_t
  • KeyWordHelpSearchDict() : CEditView
  • KeyWordReAlloc() : CKeyWordSetMgr
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- l -

  • LayoutFuncKey() : CEditWnd
  • LayoutStatusBar() : CEditWnd
  • LayoutTab() : CTabWnd
  • LayoutTabBar() : CEditWnd
  • LayoutToLogic() : CLayoutMgr
  • LayoutToolBar() : CEditWnd
  • left : CStrictRect< INT_TYPE, POINT_TYPE >
  • Length() : CMRU , CMRUFolder , SysString
  • LID_SKH : CEditView
  • LID_SKH_ONTIMER : CEditView
  • LID_SKH_POPUPMENU_R : CEditView
  • limit : CBregexpDll2
  • LineColmnToIndex() : CViewCalc
  • LineColmnToIndex2() : CViewCalc
  • LineIndexToColmn() : CViewCalc
  • Load() : CSMacroMgr
  • LoadKeyMacro() : CMacroManagerBase , CKeyMacroMgr , CPPAMacroMgr , CWSHMacroManager
  • LoadLibrary() : CDllHandler
  • LoadShareData() : CShareData
  • LocalCache() : LocalCache
  • Lock() : CCaretUnderLine , CMutex
  • LockDocumentType() : CEditDoc
  • LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • LogicToLayout() : CLayoutMgr
  • LowerRight() : CMyRect , CStrictRect< INT_TYPE, POINT_TYPE >
  • LPARAM : ComPropSheetInfo
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- m -

  • m_aCommands : DLLSHAREDATA
  • m_aElements : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • m_aFavoriteInfo : CDlgFavorite
  • m_aGrepFiles : DLLSHAREDATA
  • m_aGrepFolders : DLLSHAREDATA
  • m_anHankakuDx : CTextMetrics
  • m_anZenkakuDx : CTextMetrics
  • m_aReplaceKeys : DLLSHAREDATA
  • m_aSearchKeys : DLLSHAREDATA
  • m_aTagJumpKeywords : DLLSHAREDATA
  • m_bActivateByMouse : CEditView
  • m_bAddCRLFWhenCopy : CommonSetting_Edit
  • m_bAlertIfFileNotExist : CommonSetting_File
  • m_bAllMark : CDocLine
  • m_bAllPage : CDlgPrintPage
  • m_base64decode : CJis
  • m_bAutoCloseDlgFind : CommonSetting_Search
  • m_bAutoCloseDlgFuncList : CommonSetting_OutLine
  • m_bAutoCloseDlgReplace : CommonSetting_Search
  • m_bAutoColmnPaste : CommonSetting_Edit
  • m_bAutoIndent : Types
  • m_bAutoIndent_ZENSPACE : Types
  • m_bAutoMIMEdecode : CommonSetting_File
  • m_bBackUp : CommonSetting_Backup
  • m_bBackUpDialog : CommonSetting_Backup
  • m_bBackUpDustBox : CommonSetting_Backup
  • m_bBackUpFolder : CommonSetting_Backup
  • m_bBackUpPathAdvanced : CommonSetting_Backup
  • m_bBeginBoxSelect : CViewSelect
  • m_bBeginLineSelect : CViewSelect
  • m_bBeginSelect : CViewSelect
  • m_bBeginWordSelect : CViewSelect
  • m_bBom : CDlgOpenFile
  • m_bBomExist : CEditDoc , CFileLoad
  • m_bBookMark : CDocLine
  • m_bCANCEL : CDlgCancel
  • m_bCanceled : CDlgReplace
  • m_bCaretShowFlag : CCaret
  • m_bCaretTextForSearch : CommonSetting_Search
  • m_bCheckFileTimeStamp : CommonSetting_File
  • m_bChgWndByWheel : CommonSetting_TabBar
  • m_bCloseAllConfirm : CommonSetting_General
  • m_bCloseBtnHilighted : CTabWnd
  • m_bClosing : EditNode
  • m_bCommandRunning : CEditView
  • m_bCompareAndTileHorz : CDlgCompare , CommonSetting_Compare
  • m_bConsecutiveAll : CDlgReplace , CommonSetting_Search
  • m_bCopyAndDisablSelection : CommonSetting_Edit
  • m_bCreate : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_bCreatedTrayIcon : CControlTray
  • m_bCurSrchKeyMark : CEditView
  • m_bDebugMode : CCommandLine , CEditDoc
  • m_bDiffMark : CDocLine
  • m_bDisp : ColorInfo , ColorInfoIni
  • m_bDispComment : CLayoutMgr
  • m_bDispExitingDialog : CommonSetting_General
  • m_bDispFUNCKEYWND : CommonSetting_Window
  • m_bDispSString : CLayoutMgr
  • m_bDispSTATUSBAR : CommonSetting_Window
  • m_bDispTabIcon : CommonSetting_TabBar
  • m_bDispTabWnd : CommonSetting_TabBar
  • m_bDispTabWndMultiWin : CommonSetting_TabBar
  • m_bDispTOOLBAR : CommonSetting_Window
  • m_bDispWString : CLayoutMgr
  • m_bDoing_UndoRedo : CEditDoc , CEditView
  • m_bDragging : CSplitterWnd
  • m_bDragMode : CEditView , CEditWnd
  • m_bDragSource : CEditView
  • m_bDrawBracketPairFlag : CEditView
  • m_bDrawSelectArea : CViewSelect
  • m_bDrawSWITCH : CEditView
  • m_bDropFileAndClose : CommonSetting_File
  • m_bEditWndChanging : DLLSHAREDATA
  • m_bEnableLineModePaste : CommonSetting_Edit
  • m_bEnableUnmodifiedOverwrite : CommonSetting_File
  • m_bError : CPPA
  • m_bExecutingKeyMacro : CEditView
  • m_bExitConfirm : CommonSetting_General
  • m_bFatFont : ColorInfo , ColorInfoIni
  • m_bFontIs_FIXED_PITCH : CommonSetting_View
  • m_bFooterUse : PRINTSETTING
  • m_bFromThisText : CDlgGrep
  • m_bFunclistSetFocusOnJump : CommonSetting_OutLine
  • m_bGrepDefaultFolder : CommonSetting_Search
  • m_bGrepDlg : CCommandLine
  • m_bGrepExitConfirm : CommonSetting_Search
  • m_bGrepMode : CCommandLine , CEditDoc
  • m_bGrepOutputLine : CDlgGrep , CommonSetting_Search
  • m_bGrepRealTimeView : CommonSetting_Search
  • m_bGrepRunning : CEditDoc
  • m_bGrepSubFolder : CommonSetting_Search
  • m_bGTJW_LDBLCLK : CommonSetting_Search
  • m_bGTJW_RETURN : CommonSetting_Search
  • m_bHaveFavorite : CDlgFavorite::FavoriteInfoTag
  • m_bHaveView : CDlgFavorite::FavoriteInfoTag
  • m_bHeaderUse : PRINTSETTING
  • m_bHilighted : CUrlWnd
  • m_bHokan : CEditView
  • m_bHokanKey_RETURN : CommonSetting_Helper
  • m_bHokanKey_RIGHT : CommonSetting_Helper
  • m_bHokanKey_SPACE : CommonSetting_Helper
  • m_bHokanKey_TAB : CommonSetting_Helper
  • m_bHokanLoHiCase : Types
  • m_bHovering : CTabWnd
  • m_bHtmlHelpIsSingle : Types , CommonSetting_Helper
  • 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 : CommonSetting_General
  • m_bIsGrep : EditNode , FileInfo
  • m_bIsINSMode : CommonSetting_General
  • m_bIsModified : CDlgCompare , CDlgDiff , CEditDoc , FileInfo
  • m_bIsModifiedDst : CDlgDiff
  • m_bIsUtf8 : CTextInputStream
  • m_bitpattern : CCppPreprocessMng
  • m_bJumpSingleClickURL : CommonSetting_Edit
  • m_bKinsokuHead : CLayoutMgr , Types
  • m_bKinsokuKuto : CLayoutMgr , Types
  • m_bKinsokuRet : CLayoutMgr , Types
  • m_bKinsokuTail : CLayoutMgr , Types
  • m_bLeft : CDropSource , CConvert_Trim
  • m_bLineNumIsCRLF : CDlgFuncList , Types , DLLSHAREDATA
  • m_bListBtnHilighted : CTabWnd
  • m_bMark : CDocLine
  • m_bMarkArray : CDocLine
  • m_bMarkUpBlankLineEnable : CommonSetting_OutLine
  • m_BMatch : CBregexpDll2
  • m_BMatchEx : CBregexpDll2
  • m_bMenuIcon : CommonSetting_Window
  • m_bModal : CDialog
  • m_bModified : CDlgFileUpdateQuery
  • m_bModify : CDocLine
  • m_bMRUArrFavorite : DLLSHAREDATA
  • m_bNoCaretMoveByActivation : CommonSetting_General
  • m_bNoFilterSaveFile : CommonSetting_File
  • m_bNoFilterSaveNew : CommonSetting_File
  • m_bNOTIFYNOTFOUND : CDlgFind , CDlgReplace , CommonSetting_Search
  • m_bNotOverWriteCRLF : CommonSetting_Edit
  • m_bNoWindow : CCommandLine
  • m_bOPENFOLDERArrFavorite : DLLSHAREDATA
  • m_bOpenResult : CClipboard
  • m_bOverflow : CSortedTagJumpList
  • m_bPLSQL : CDlgJump
  • m_bPrevCommand : CViewCommander
  • 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 : CommonSetting_File
  • m_bRead : CProfile
  • m_bReadOnly : CCommandLine , CEditDoc
  • m_bReadPrivate : IniFolder
  • m_bRecordingKeyMacro : DLLSHAREDATA
  • m_bRedrawRuler : CRuler
  • m_BRegexpVersion : CBregexpDll2
  • m_BRegfree : CBregexpDll2
  • m_bReloadWhenExecute : MacroRec
  • m_bRememberOutlineWindowPos : CommonSetting_OutLine
  • m_bRestoreBookmarks : CommonSetting_File
  • m_bRestoreCurPosition : CommonSetting_File
  • m_bRTrimPrevLine : Types
  • m_bSameTabWidth : CommonSetting_TabBar
  • m_bScrollBarHorz : CommonSetting_Window
  • m_bSearch : CEditView
  • m_bSearchAll : CommonSetting_Search
  • m_bSelectClickedURL : CommonSetting_Edit
  • m_bSelected : CDlgReplace
  • m_bSelectedArea : CDlgReplace , CommonSetting_Search
  • m_bSelectingLock : CViewSelect
  • m_bSizeBox : CFuncKeyWnd
  • m_bSortTabList : CommonSetting_TabBar
  • m_BSplit : CBregexpDll2
  • m_bSplitterWndHScroll : CommonSetting_Window
  • m_bSplitterWndVScroll : CommonSetting_Window
  • m_bStayTaskTray : CommonSetting_General
  • m_bStopsBothEndsWhenSearchParagraph : CommonSetting_General
  • m_bStopsBothEndsWhenSearchWord : CommonSetting_General
  • m_bSubFolder : CDlgGrep
  • m_BSubst : CBregexpDll2
  • m_BSubstEx : CBregexpDll2
  • m_bSuccess : COsVersionInfo
  • m_bTab_CloseOneWin : CommonSetting_TabBar
  • m_bTab_ListFull : CommonSetting_TabBar
  • m_bTab_RetainEmptyWin : CommonSetting_TabBar
  • m_bTabArrow : Types
  • m_bTagJumpAnyWhere : CDlgTagJumpList , DLLSHAREDATA
  • m_bTagJumpICase : CDlgTagJumpList , DLLSHAREDATA
  • m_bTimerFlag : CHokanMgr
  • m_bToolBarIsFlat : CommonSetting_ToolBar
  • m_BTrans : CBregexpDll2
  • m_buf : CRecycledBuffer , CRecycledBufferDynamic
  • m_bUIPI : CEditWnd
  • m_bUnderLine : ColorInfo , ColorInfoIni
  • m_bUnderLineON : CEditView
  • m_bUseBom : CDlgOpenFile
  • m_bUseCaretKeyWord : CommonSetting_Search
  • m_bUseDocumentIcon : Types
  • m_bUseEol : CDlgOpenFile
  • m_bUseHokan : CommonSetting_Helper
  • m_bUseHokanByFile : Types
  • m_bUseKeyHelpAllSearch : Types
  • m_bUseKeyHelpKeyDisp : Types
  • m_bUseKeyHelpPrefix : Types
  • m_bUseKeyWordHelp : Types
  • m_bUseOLE_DragDrop : CommonSetting_Edit
  • m_bUseOLE_DropSource : CommonSetting_Edit
  • m_bUseRegexKeyword : CRegexKeyword , Types
  • m_bUseTaskTray : CommonSetting_General
  • m_bUseTrayMenu : CControlTray
  • m_bVertical : CSplitBoxWnd
  • m_bVisualStyle : CTabWnd
  • m_bWaitTreeProcess : CDlgFuncList
  • m_bWordWrap : CLayoutMgr , Types
  • m_bWritePrivate : IniFolder
  • m_bWriteQuit : CCommandLine
  • m_cAutoSave : CEditDoc
  • m_cBlockComment : CLayoutMgr , Types
  • m_cBuffer : CPPAMacroMgr
  • m_cCommander : CEditView
  • m_cDicMgr : CEditView
  • m_cDlgFind : CEditWnd
  • m_cDlgFuncList : CEditWnd
  • m_cDlgGrep : CControlTray , CEditWnd
  • m_cDlgJump : CEditWnd
  • m_cDlgOpenFile : CEditWnd
  • m_cDlgReplace : CEditWnd
  • m_cDocLineMgr : CEditDoc
  • m_cEditDoc : CEditApp
  • m_cEol : CDlgOpenFile , CDocLine , CLayout
  • m_cfFormat : CDataObject
  • m_CFuncKeyWnd : CEditWnd
  • m_cFuncLookup : CEditDoc
  • m_ChangeAttribute : CFileWrite
  • m_CharCode : CFileLoad
  • m_ChildWndArr : CSplitterWnd
  • m_cHistory : CEditView
  • m_cHokanMgr : CEditWnd
  • m_cIcons : CEditApp
  • m_cInfo : CTipWnd
  • m_cKey : CTipWnd
  • m_CKeyWordSetMgr : CPropCommon , DLLSHAREDATA
  • m_cLayoutMgr : CEditDoc
  • m_Client : CWSHSite
  • m_cLine : CDocLine
  • m_cLineComment : CLayoutMgr , Types
  • m_cLineTermChar : Types
  • m_cList : CDlgTagJumpList
  • m_cLookup : CPropCommon
  • m_clrOldBack : CTypeSupport
  • m_clrOldText : CTypeSupport
  • m_cMarkChain : CMarkMgr
  • m_cmemClipText : CDlgFuncList
  • m_cmemCurWord : CHokanMgr
  • m_cMemDebug : CPPA
  • m_cmemDebugInfo : CDlgDebug
  • m_cmemFuncName : CFuncInfo
  • m_cmemMenuItemStrArr : CMenuDrawer
  • m_cMemRet : CPPA
  • m_cmemText : CDlgInput1
  • m_CMenuDrawer : CControlTray , CEditWnd
  • m_cMigemo : CNormalProcess
  • m_cNewLineCode : CEditDoc
  • m_colBACK : ColorInfo , ColorInfoIni
  • m_ColorInfoArr : Types
  • m_colTEXT : ColorInfo , ColorInfoIni
  • m_CommandLine : CProcess
  • m_Common : CPropCommon , DLLSHAREDATA
  • m_cOpeBuf : CEditDoc
  • m_cOsVer : CDlgOpenFile
  • m_cOsVersionInfo : COsVersionInfo
  • m_cParser : CEditView
  • m_cPPA : CPPAMacroMgr
  • m_cPrint : CPrintPreview
  • m_cPropCommon : CEditWnd
  • m_cPropTypes : CEditWnd
  • m_cr : CDlgSameColor
  • m_crBack : CEditView
  • m_crCaret : CCaret
  • m_cRecentCmd : CDlgFavorite
  • m_cRecentFile : CDlgFavorite , CMRU
  • m_cRecentFolder : CDlgFavorite , CMRUFolder
  • 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 : CEditWnd
  • m_cStatusBar : CEditWnd
  • m_cTabWnd : CEditWnd
  • m_cTextDrawer : CEditView
  • m_cTextMetrics : CEditView
  • m_cTipWnd : CEditView
  • m_cToolbar : CEditWnd
  • m_cTrans : CImageListMgr
  • m_cUnderLine : CCaret
  • m_CurRegexp : CEditView
  • m_current : CRecycledBuffer , CRecycledBufferDynamic
  • m_CurrentIdx : CSMacroMgr
  • m_cUxTheme : CUxTheme
  • m_cViewSelect : CEditView
  • m_cx : CImageListMgr
  • m_cy : CImageListMgr
  • m_Data : CWSHClient
  • m_data : CDataObject
  • 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_eType : CommonValueInfo
  • 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 : CMainToolBar
  • m_fp : CStream
  • m_getIndentOffset : CLayoutMgr
  • m_gi : CCommandLine
  • m_hAccel : DLLSHAREDATA
  • m_hAtokModule : CEditView
  • m_hbmpCaret : CCaret
  • m_hbmpCompatBMP : CEditView , CPrintPreview
  • m_hbmpCompatBMPOld : CEditView , CPrintPreview
  • m_hcurOld : CSplitterWnd
  • m_hCursor : CWaitCursor
  • m_hCursorOld : CWaitCursor
  • m_hdc : CTypeSupport
  • m_hdcCompatDC : CEditView , CPrintPreview
  • m_hDevMode : CPrint
  • m_hDevNames : CPrint
  • m_heightOutlineWindow : CommonSetting_OutLine
  • m_hEventCPInitialized : CControlProcess
  • m_hFile : CFileLoad , CFileWrite
  • m_hFileMap : CShareData
  • m_hfntOld : CTypeSupport
  • m_hFont : CUrlWnd , CFuncKeyWnd , CTabWnd , CTipWnd
  • m_hFont_HAN : CViewFont
  • m_hFont_HAN_FAT : CViewFont
  • m_hFont_HAN_FAT_UL : CViewFont
  • m_hFont_HAN_UL : CViewFont
  • m_hFontCaretPosInfo : CEditWnd
  • m_hFontMenu : CMenuDrawer
  • m_hFontMenuUndelLine : CMenuDrawer
  • m_hFontOld : CEditView
  • m_hIconApp : CTabWnd
  • m_hIconBitmap : CImageListMgr
  • m_hIconGrep : CTabWnd
  • m_hIcons : CControlTray
  • m_hIml : CTabWnd
  • m_hInst : CEditApp
  • m_hInstance : CControlTray , CDialog , CDlgDebug , CDlgInput1 , CDlgOpenFile , CDllHandler , CEditDoc , CEditView , CEditWnd , CFuncLookup , CMenuDrawer , CProcess , CPropCommon , CPropTypes , CWnd
  • m_hLockedFile : CEditDoc
  • m_hMutex : CControlProcess
  • m_hMutexCP : CControlProcess
  • m_hObj : CMutex
  • m_hpnNew : CTypeSupport
  • m_hpnOld : CTypeSupport
  • m_hwnd : CClipboard
  • m_hWnd : CControlTray , CDialog , CUrlWnd , CDlgDebug , CDlgInput1 , CDlgOpenFile , CEditView , CEditWnd , CProcess , EditNode , CWnd
  • m_hWnd_DropTarget : CDropTarget
  • m_hWnd_Dst : CDlgDiff
  • m_hwndButtonArr : CFuncKeyWnd
  • m_hwndDebug : DLLSHAREDATA
  • m_hwndHScrollBar : CEditView , CPrintPreview
  • m_hWndOwner : CMenuDrawer
  • m_hwndParent : CPropCommon , CPropTypes , CWnd , CDialog , CDlgDebug , CDlgInput1 , CDlgOpenFile , CEditView , CEditWnd
  • m_hwndPrintPreviewBar : CPrintPreview
  • m_hwndProgressBar : CMainStatusBar
  • m_hwndReBar : CMainToolBar
  • m_hwndRecordingKeyMacro : DLLSHAREDATA
  • m_hwndSearchBox : CMainToolBar
  • m_hwndSizeBox : CDialog , CEditView , CFuncKeyWnd , CPrintPreview
  • m_hwndStatusBar : CMainStatusBar
  • m_hwndTab : CTabWnd
  • m_hwndThis : CPropCommon , CPropTypes
  • m_hwndToolBar : CMainToolBar
  • m_hwndToolTip : CTabWnd
  • m_hwndTraceOutSource : CShareData
  • m_hwndTray : DLLSHAREDATA
  • m_hwndVScrollBar : CEditView , CPrintPreview
  • 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 : CommonSetting_View
  • m_lf_kh : CommonSetting_Helper
  • m_lfPreviewHan : CPrintPreview
  • m_lfPreviewZen : CPrintPreview
  • m_long_string : COutlinePython
  • m_lParam : CDialog
  • m_MacroFuncInfoArr : CSMacroMgr
  • m_MacroFuncInfoNotCommandArr : CSMacroMgr
  • m_MacroTable : CPropCommon , DLLSHAREDATA
  • 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 : CEditWnd
  • m_nAllHeight : PAPER_INFO
  • m_nAllPageNum : CPrintPreview
  • m_nAllSplitCols : CSplitterWnd
  • m_nAllSplitRows : CSplitterWnd
  • m_nAllWidth : PAPER_INFO
  • m_nArrayCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_nBackUpType : CommonSetting_Backup
  • m_nBackUpType_Opt1 : CommonSetting_Backup
  • m_nBackUpType_Opt2 : CommonSetting_Backup
  • m_nBackUpType_Opt3 : CommonSetting_Backup
  • m_nBackUpType_Opt4 : CommonSetting_Backup
  • m_nBackUpType_Opt5 : CommonSetting_Backup
  • m_nBackUpType_Opt6 : CommonSetting_Backup
  • m_nBlockFromLen : CBlockComment
  • m_nBlockToLen : CBlockComment
  • m_nbmpCompatScale : CPrintPreview
  • m_nButtonGroupNum : CFuncKeyWnd
  • m_nCaretPosInfoCharHeight : CEditWnd
  • m_nCaretPosInfoCharWidth : CEditWnd
  • m_nCaretPosX_Prev : CCaret
  • m_nCaretType : CommonSetting_General
  • m_nCharCode : CDlgOpenFile , CEditDoc , FileInfo
  • m_nCharHeight : CTextMetrics
  • m_nCharWidth : CTextMetrics
  • m_nCode : CDlgCtrlCode
  • m_nColmSpace : Types
  • m_nColmWidth : CHokanMgr
  • m_nColorIdx : ColorInfo , CTypeSupport
  • m_nColorIndex : RegexKeywordInfo
  • m_nColorInfoArrNum : Types
  • m_nColumn : CMemoryIterator
  • m_nColumn_Delta : CMemoryIterator
  • m_nCommandExecNum : CEditDoc
  • m_nCompiledMagicNumber : CRegexKeyword
  • m_nCOpeArrNum : COpeBlk
  • m_nCOpeBlkArrNum : COpeBuf
  • m_nCount : CFileExt , CSortedTagJumpList , StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • 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 : CDlgPrintSetting , Types
  • m_nCurrentTab : CDlgFavorite
  • m_nCustMenuItemFuncArr : CommonSetting_CustomMenu
  • m_nCustMenuItemKeyArr : CommonSetting_CustomMenu
  • m_nCustMenuItemNumArr : CommonSetting_CustomMenu
  • m_nDataBufSize : CMemory
  • m_nDataLen : CMemory , CStringRef , COpe
  • m_nDateFormatType : CommonSetting_Format
  • m_nDeapth : CRunningTimer
  • m_nDefaultOutline : Types
  • m_nDepth : CFuncInfo
  • m_nDiffFlgOpt : CDlgDiff , DLLSHAREDATA
  • m_nDragPosX : CSplitBoxWnd , CSplitterWnd
  • m_nDragPosY : CSplitBoxWnd , CSplitterWnd
  • m_nDropFileNumMax : CommonSetting_File
  • m_nDx : DispPos
  • m_nDxBasis : CTextMetrics
  • m_nDy : DispPos
  • m_nDyBasis : CTextMetrics
  • m_nEditArrNum : DLLSHAREDATA
  • m_nEOFColumn : CLayoutMgr
  • m_nEOFLine : CLayoutMgr
  • m_nExecFlgOpt : DLLSHAREDATA
  • m_nFileDataLen : CFileLoad
  • m_nFileShareMode : CommonSetting_File
  • m_nFileShareModeOld : CEditDoc
  • m_nFileSize : CFileLoad
  • m_nFlag : CFileLoad
  • m_nFuncCodeArr : CFuncKeyWnd , KEYDATA
  • m_nFuncID : CMacro , MacroFuncInfo
  • m_nFuncInfoArrNum : CFuncInfoArr
  • m_nFUNCKEYWND_GroupNum : CommonSetting_Window
  • m_nFUNCKEYWND_Place : CommonSetting_Window
  • m_nFuncLineCRLF : CFuncInfo
  • m_nFuncLineLAYOUT : CFuncInfo
  • m_nGrepCharSet : CDlgGrep , CommonSetting_Search
  • m_nGrepOutputStyle : CDlgGrep , CommonSetting_Search
  • m_nGroup : CCommandLine , EditNode
  • m_nGroupSequences : DLLSHAREDATA
  • m_nHeight : CDialog
  • m_nHSplitPos : CSplitterWnd
  • m_nId : CDlgFavorite::FavoriteInfoTag , PAPER_INFO
  • m_nIdx : Types
  • m_nImeState : Types
  • m_nIndent : CMemoryIterator , CLayout
  • m_nIndentLayout : Types
  • m_nIndex : EditNode , CDlgTagJumpList , CMemoryIterator
  • m_nIndex_Delta : CMemoryIterator
  • m_nIndexSave : CDlgDiff
  • m_nInfo : CFuncInfo
  • m_nISearchDirection : CEditView
  • m_nISearchHistoryCount : CEditView
  • m_nISearchMode : CEditView
  • m_nKeyCode : KEYDATA
  • m_nKeyHelpNum : Types
  • m_nKeyNameArrNum : CPropCommon , DLLSHAREDATA
  • 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
  • m_nLineNum : CDlgJump
  • m_nLineNumRightSpace : CommonSetting_Window
  • m_nLineRef : DispPos
  • m_nLines : CDocLineMgr , CLayoutMgr
  • m_nLineSpace : Types
  • m_nLineTermType : Types
  • m_nLineTypeBot : CLayoutMgr
  • m_nListType : CDlgFuncList
  • m_nLockCounter : CCaretUnderLine
  • m_nLoop : CDlgTagJumpList
  • m_nMaxitem : CMarkMgr
  • m_nMaxLineKetas : CLayoutMgr , Types
  • m_nMaxLineKetas_org : CPropTypes
  • m_nMaxTextLen : CDlgInput1
  • m_nMenuHeight : CMenuDrawer
  • m_nMenuItemBitmapIdxArr : CMenuDrawer
  • m_nMenuItemFuncArr : CMenuDrawer
  • m_nMenuItemNum : CMenuDrawer
  • m_nMRUArrNum : DLLSHAREDATA
  • m_nMRUArrNum_MAX : CommonSetting_General
  • m_nMyButtonNum : CMenuDrawer
  • m_nMyIndex : CEditView
  • m_nNestCount : CRunningTimer
  • m_nNoModifiedIndex : COpeBuf
  • m_nOldRulerDrawX : CRuler
  • m_nOldRulerWidth : CRuler
  • m_nOldUnderLineY : CEditView
  • m_nOpe : COpe
  • m_nOPENFOLDERArrNum : DLLSHAREDATA
  • m_nOPENFOLDERArrNum_MAX : CommonSetting_General
  • m_nPageFrom : CDlgPrintPage
  • m_nPageMax : CDlgPrintPage
  • m_nPageMin : CDlgPrintPage
  • m_nPageNum : CPropCommon , CPropTypes
  • 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 : CDocLineMgr , CLayoutMgr
  • 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_nReceiverCount : TcharReceiver< RECEIVE_CHAR_TYPE >
  • m_nRegexKeyCount : CRegexKeyword
  • m_nRegexKeyMagicNumber : Types
  • m_nRepeatedScroll_Smooth : CommonSetting_General
  • m_nRepeatedScrollLineNum : CommonSetting_General
  • m_nReplaceCnt : CDlgReplace
  • m_nReplaceTarget : CDlgReplace
  • m_nRulerBottomSpace : CommonSetting_Window
  • m_nRulerHeight : CommonSetting_Window
  • m_nRulerType : CommonSetting_Window
  • m_nSaveWindowPos : CommonSetting_Window
  • m_nSaveWindowSize : CommonSetting_Window
  • m_nSaveWinPos : CDlgWinSize
  • m_nSaveWinSize : CDlgWinSize
  • m_nSearchDict : CTipWnd
  • m_nSearchLine : CTipWnd
  • m_nSequences : DLLSHAREDATA
  • m_nSet : CDlgKeywordSelect , CPropTypes
  • m_nSettingType : CDlgReplace , CDlgTypeList , CEditDoc , CPropCommon
  • m_nSettingTypeLocked : CEditDoc
  • m_nShowCmd : CDialog
  • m_nSmartIndent : Types
  • m_nSortCol : CDlgFuncList
  • m_nSortType : CDlgFuncList
  • m_nSrcTab : CTabWnd
  • m_nStartIdx : CKeyWordSetMgr
  • m_nStartTime : CRunningTimer
  • m_nStringType : CLayoutMgr , Types
  • m_nTabSpace : CMemoryIterator , Types , CLayoutMgr
  • m_nTabWidth : CConvert_SpaceToTab , CConvert_TabToSpace
  • m_nTagsOpt : CDlgTagsMake , DLLSHAREDATA
  • m_nTimeFormatType : CommonSetting_Format
  • m_nTimerCount : CFuncKeyWnd , CEditWnd
  • m_nTimerId : CDlgTagJumpList
  • m_nToolBarButtonIdxArr : CommonSetting_ToolBar
  • m_nToolBarButtonNum : CommonSetting_ToolBar
  • m_nTopYohaku : CTextArea
  • m_nTransformFileNameArrNum : CPropCommon , DLLSHAREDATA
  • m_nTransformFileNameCount : CShareData
  • m_nTransformFileNameOrgId : CShareData
  • m_nTypeIndex : CRegexKeyword
  • m_nTypePrev : CLayout
  • m_nUse : KeyHelpInfo
  • m_nValueSize : CommonValueInfo
  • m_nVertLineIdx : Types
  • m_nVertLineOffset : CommonSetting_Window
  • m_nViewAlignLeft : CTextArea
  • m_nViewAlignLeftCols : CTextArea
  • m_nViewAlignTop : CTextArea
  • m_nViewColNum : CTextArea
  • m_nViewCount : CDlgFavorite::FavoriteInfoTag
  • m_nViewCx : CTextArea
  • m_nViewCy : CTextArea
  • m_nViewLeftCol : CTextArea , FileInfo
  • m_nViewRowNum : CTextArea
  • m_nViewTopLine : CTextArea , FileInfo
  • 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 : CommonSetting_Window
  • m_nWinPosY : CommonSetting_Window
  • m_nWinSizeCX : CommonSetting_Window
  • m_nWinSizeCY : CommonSetting_Window
  • m_nWinSizeType : CDlgWinSize , CEditWnd , CommonSetting_Window
  • m_Object : CInterfaceObjectTypeInfo
  • m_ofn : CDlgOpenFile
  • m_olelib : CYbInterfaceBase
  • m_OnError : CWSHClient
  • m_Owner : CInterfaceObject
  • m_owniid : CYbInterfaceImpl< BASEINTERFACE >
  • m_p : CharPointerA , CharPointerW
  • m_paperInfoArr : CPrint
  • m_pBot : CKeyMacroMgr
  • m_pbUserItemFavorite : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pcCaret : CEditView
  • m_pCDocLine : CLayout
  • m_pcDocLineMgr : CLayoutMgr
  • m_pcDropTarget : CEditView
  • m_pcEditApp : CNormalProcess
  • m_pcEditDoc : CEditView , CLayoutMgr
  • m_pCEditDoc : CFuncKeyWnd
  • m_pcEditView : CCaretUnderLine , CPPA
  • m_pCEditView : CDropTarget
  • m_pcEditView : CViewSelect
  • m_pcEditViewArr : CEditWnd
  • m_pcEditWnd : CEditDoc , CEditView
  • m_pCEditWnd : CSplitterWnd
  • m_pcEditWnd : CEditApp
  • m_pcFontset : CEditView
  • m_pcFuncInfoArr : CDlgFuncList
  • m_pcIcons : CMenuDrawer , CPropCommon
  • m_pCKeyWordSetMgr : CDlgKeywordSelect , CPropTypes
  • m_pcmemData : COpe
  • m_pcmemKouho : CHokanMgr
  • m_pcMenuDrawer : CPropCommon
  • m_pcmigemo : CEditView
  • m_pCodePrevRefer : CDocLineMgr
  • m_pCommanderView : CViewCommander
  • m_pCommon : CFuncLookup
  • m_pcOpeBlk : CEditView
  • m_pcRuler : CEditView
  • m_pcsbwHSplitBox : CEditView
  • m_pcsbwVSplitBox : CEditView
  • m_pcSMacro : CPropCommon
  • m_pcSMacroMgr : CFuncLookup , CEditDoc
  • m_pcTextArea : CEditView
  • m_pcTray : CControlProcess
  • m_pData : CStringRef , CMacro::CMacroParam , CMemory
  • m_pDataObject : CDropTarget
  • m_pDebugData : CNativeW
  • m_pDocLineBot : CDocLineMgr
  • m_pDocLineCurrent : CDocLineMgr
  • m_pDocLineTop : CDocLineMgr
  • m_pEditArr : DLLSHAREDATA
  • m_pEditDoc : CCaret , CRuler
  • m_pEditView : CTextDrawer , CCaret , CRuler , CTextArea , CViewParser
  • m_pEI : CESI
  • m_pFilename : CDlgFileUpdateQuery
  • m_pFontset : CTypeSupport
  • 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
  • m_pNext : CMacro::CMacroParam , CDocLine , CLayout , CMacro
  • m_pnUserItemCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pnUserViewCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pOldProc : CUrlWnd
  • m_poTipCurPos : CEditView
  • m_poWin : CHokanMgr
  • m_pOwner : CMainToolBar , CMainStatusBar , CViewCalc
  • m_pParamBot : CMacro
  • m_pParamTop : CMacro
  • m_pParentWnd : CPrintPreview
  • m_ppcFuncInfoArr : CFuncInfoArr
  • m_ppCOpeArr : COpeBlk
  • m_ppCOpeBlkArr : COpeBuf
  • m_pPrev : CDocLine , CLayout
  • m_pPrintPreview : CEditWnd
  • m_pPrintSetting : CPrintPreview
  • m_pReadBuf : CFileLoad
  • m_pReceiver : TcharReceiver< RECEIVE_CHAR_TYPE >
  • m_pRecent : CDlgFavorite::FavoriteInfoTag
  • m_pRegExp : CBregexp
  • m_PrintSettingArr : CDlgPrintSetting , DLLSHAREDATA
  • m_ProfileData : CProfile
  • m_pShareData : CControlTray , CMenuDrawer , CMRU , CPropCommon , CSplitterWnd , CTabWnd , CShareData , CEditWnd , CMRUFolder , CDialog , CPropTypes , CEditView , CDlgOpenFile , CEditDoc , CFuncKeyWnd , CPPA , CSMacroMgr
  • m_pszAppName : CControlTray , CEditDoc , CEditView
  • m_pszCaption : CDlgFavorite::FavoriteInfoTag
  • m_pszClassName : CFuncKeyWnd , CTipWnd , CSplitterWnd , CTabWnd , CSplitBoxWnd
  • 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_pszKinsokuKuto_1 : CLayoutMgr
  • m_pszKinsokuTail_1 : CLayoutMgr
  • m_pszLastCaption : CEditWnd
  • m_pszLineComment : CLineComment
  • m_pszMessage : CDlgInput1
  • m_pszName : PAPER_INFO , ColorInfoIni
  • m_pszPath : CDlgCompare , CFileWrite
  • m_pszTitle : CDlgInput1
  • m_pszWndClass : CEditWnd
  • m_pTagjump : CSortedTagJumpList
  • m_ptBracketCaretPos_PHY : CEditView
  • m_ptBracketPairPos_PHY : CEditView
  • m_ptCaretPos_Layout : CCaret
  • m_ptCaretPos_Logic : CCaret
  • m_ptCaretPos_PHY_After : COpe
  • m_ptCaretPos_PHY_Before : COpe
  • m_ptCaretPos_PHY_To : COpe
  • m_ptCursor : FileInfo
  • m_ptDragPosOrg : CEditWnd
  • m_ptDrawLayout : DispPos
  • m_ptDrawOrigin : DispPos
  • m_ptEscCaretPos_PHY : CDlgReplace , CDlgFind
  • m_ptFrom : CRangeBase< PointType >
  • m_ptLogic : CMarkMgr::CMark
  • m_ptLogicPos : CLayout
  • m_ptMouseRollPosOld : CViewSelect
  • m_pTop : CKeyMacroMgr
  • m_ptSrcCursor : CTabWnd
  • m_ptSrchStartPos_PHY : CEditView
  • m_ptTo : CRangeBase< PointType >
  • m_pTypes : CDlgSameColor , CRegexKeyword , CTypeSupport
  • m_puFileExtInfo : CFileExt
  • m_puUserItemData : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pValue : CommonValueInfo
  • m_pWork : DLLSHAREDATA
  • m_quote_char : COutlinePython
  • m_raw_string : COutlinePython
  • m_rc : CDlgWinSize
  • m_rcOpenDialog : CommonSetting_Others
  • m_RealImageList_Duplicate : CTabWnd
  • m_RefCount : CWSHSite , ImplementsIUnknown< Base >
  • m_RegexKeywordArr : Types
  • m_sBackup : CommonSetting
  • m_sCompare : CommonSetting
  • m_SCROLLBAR_HORZ : CPrintPreview
  • m_SCROLLBAR_VERT : CPrintPreview
  • m_sCurSearchOption : CEditView
  • m_sCustomMenu : CommonSetting
  • m_sEdit : CommonSetting
  • m_sFile : CommonSetting
  • m_sFormat : CommonSetting
  • m_sGeneral : CommonSetting
  • m_sHelper : CommonSetting
  • m_showCmdRestore : EditNode
  • m_sInfo : CRegexKeyword
  • m_sISearchHistory : CEditView
  • m_size : CDataObject
  • m_SizeBoxCanMove : CPrintPreview
  • m_sizeCaret : CCaret
  • m_sOthers : CommonSetting
  • m_Source : CWSHMacroManager
  • m_sOutline : CommonSetting
  • m_sSearch : CommonSetting
  • m_sSearchOption : CommonSetting_Search , CDlgReplace , CDlgFind , CDlgGrep
  • m_sSelect : CViewSelect
  • m_sSelectBgn : CViewSelect
  • m_sSelectOld : CViewSelect
  • m_sTabBar : CommonSetting
  • m_stackptr : CCppPreprocessMng
  • m_state : COutlinePython
  • m_sToolBar : CommonSetting
  • m_str_cache : CMyString
  • m_strProfileName : CProfile
  • m_sView : CommonSetting
  • m_sWindow : CommonSetting
  • m_szAbout : KeyHelpInfo
  • m_szBackUpFolder : CommonSetting_Backup
  • m_szBackUpPathAdvanced : CommonSetting_Backup
  • m_szBlockCommentFrom : CBlockComment
  • m_szBlockCommentTo : CBlockComment
  • m_szClassInheritances : CWnd
  • m_szCommand : CDlgExec
  • m_szCurrentFilePath : CDlgGrep
  • m_szCurSrchKey : CEditView
  • m_szCustMenuNameArr : CommonSetting_CustomMenu
  • m_szData : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • m_szDateFormat : CommonSetting_Format
  • m_szDefaultWildCard : CDlgOpenFile
  • m_szDocType : FileInfo
  • m_szEntryKey : CommonValueInfo
  • m_szExt : CFileExt::FileExtInfoTag
  • m_szExtHelp : Types , CommonSetting_Helper
  • m_szExtHtmlHelp : CommonSetting_Helper , Types
  • m_szFile : CDlgGrep , MacroRec
  • m_szFile1 : CDlgDiff
  • m_szFile2 : CDlgDiff
  • m_szFilePath : EditNode , CEditDoc , CFuncInfoArr
  • m_szFilter : CFileExt
  • m_szFolder : CDlgGrep
  • m_szFooterForm : PRINTSETTING
  • m_szFuncNameArr : CFuncKeyWnd
  • m_szGrepKey : FileInfo , CEditDoc
  • m_szHeaderForm : PRINTSETTING
  • m_szHelpFile : CPropCommon , CPropTypes , CDlgInput1 , CDialog
  • m_szHokanFile : Types
  • m_szIMPORTFOLDER : DLLSHAREDATA
  • m_szIndentChars : Types
  • m_szIniFile : IniFolder
  • m_szInitialDir : CDlgOpenFile
  • m_szInyouKigou : CommonSetting_Format
  • m_szKeyMacroFileName : DLLSHAREDATA
  • m_szKeyName : KEYDATA
  • m_szKeyword : RegexKeywordInfo
  • m_szKeyWordArr : CKeyWordSetMgr
  • m_szKeyWordSetDir : DLLSHAREDATA
  • m_szKinsokuHead : Types
  • m_szKinsokuTail : Types
  • m_szMACROFOLDER : CPropCommon , DLLSHAREDATA
  • m_szMarkLines : FileInfo
  • m_szMidashiKigou : CommonSetting_Format
  • m_szMigemoDict : CommonSetting_Helper
  • m_szMigemoDll : CommonSetting_Helper
  • m_szMsg : CRegexKeyword , CDlgFavorite , CPPA , CBregexp
  • m_szName : MacroRec , CFileExt::FileExtInfoTag , ColorInfo
  • m_szOPENFOLDERArr : DLLSHAREDATA
  • m_szOutlineRuleFilename : Types
  • m_szPath : KeyHelpInfo , CDlgTagsMake , FileInfo , CDlgOpenFile
  • m_szPrinterDeviceName : MYDEVMODE
  • m_szPrinterDriverName : MYDEVMODE
  • m_szPrinterOutputName : MYDEVMODE
  • m_szPrintFontFaceHan : PRINTSETTING
  • m_szPrintFontFaceZen : PRINTSETTING
  • m_szPrintSettingName : PRINTSETTING
  • m_szPrivateIniFile : IniFolder
  • m_szRegexpLib : CommonSetting_Search
  • m_szSetNameArr : CKeyWordSetMgr
  • m_szTabCaption : EditNode
  • m_szTabViewString : Types
  • m_szTabWndCaption : CommonSetting_TabBar
  • m_szTagsCmdLine : CDlgTagsMake , DLLSHAREDATA
  • m_szTarget : CBregexp
  • m_szText : CRunningTimer , CDlgReplace , CDlgFind , CDlgGrep
  • m_szText2 : CDlgReplace
  • m_szTextTip1 : CTabWnd
  • m_szTimeFormat : CommonSetting_Format
  • m_szTransformFileNameFrom : CPropCommon , DLLSHAREDATA
  • m_szTransformFileNameFromExp : CShareData
  • m_szTransformFileNameTo : DLLSHAREDATA , CPropCommon
  • m_szTypeExts : Types
  • m_szTypeName : Types
  • m_szWindowCaptionActive : CommonSetting_Window
  • m_szWindowCaptionInactive : CommonSetting_Window
  • 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 : CEditView , CEditWnd
  • m_uCreateTaskBarMsg : CControlTray
  • m_uMSIMEReconvertMsg : CEditWnd , CEditView
  • m_UrlOrgWnd : CDlgAbout
  • m_UrlUrWnd : CDlgAbout
  • m_uWM_MSIME_RECONVERTREQUEST : CEditView
  • m_Valid : CWSHClient
  • m_value : CommonValue< T > , CLaxInteger , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • m_varArguments : MacroFuncInfo
  • m_varResult : MacroFuncInfo
  • m_vStructureVersion : DLLSHAREDATA
  • m_WEI : CESI
  • m_wID : CDlgSameColor
  • m_widthOutlineWindow : CommonSetting_OutLine
  • m_wpColorListProc : CDlgSameColor
  • m_wpColorStaticProc : CDlgSameColor
  • m_wstr : CMyString
  • m_wTrayMenuHotKeyCode : CommonSetting_General
  • m_wTrayMenuHotKeyMods : CommonSetting_General
  • m_xOutlineWindowPos : CommonSetting_OutLine
  • m_xPos : CDialog
  • m_yOutlineWindowPos : CommonSetting_OutLine
  • m_yPos : CDialog
  • MacroEngineRep : CMacroFactory
  • MainLoop() : CControlProcess , CNormalProcess , CProcess
  • 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
  • Me : CStrictRect< INT_TYPE, POINT_TYPE > , CommonValue< T > , StaticString< CHAR_TYPE, N_BUFFER_COUNT > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CLaxInteger
  • MeasureItem() : CMenuDrawer
  • MemBASE64_Decode() : CConvert_Base64Decode
  • MemBASE64_Encode() : CUtf7
  • MemJIStoSJIS() : CJis
  • MemSJIStoJIS() : CJis
  • MemSJISToUnicode() : CShiftJis
  • MessageLoop() : CEditWnd , CControlTray
  • Method : CInterfaceObject::CMethodInfo
  • migemo_close() : CMigemo
  • migemo_get_operator() : CMigemo
  • migemo_is_enable() : CMigemo
  • migemo_load_a() : CMigemo
  • migemo_load_all() : CMigemo
  • migemo_load_w() : CMigemo
  • migemo_open() : CMigemo
  • migemo_query() : CMigemo
  • migemo_release() : CMigemo
  • migemo_set_operator() : CMigemo
  • migemo_setproc_char2int() : CMigemo
  • migemo_setproc_int2char() : CMigemo
  • MoveCursor() : CCaret
  • MoveCursorProperly() : CCaret
  • MoveCursorSelecting() : CEditView
  • MoveCursorToClientPoint() : CCaret
  • MoveItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • MoveLeft() : CTabWnd
  • MoveListViewItem_FILENAME() : CPropCommon
  • MoveRight() : CTabWnd
  • msg : CBregexpDll2
  • MY_RegQuerVal() : CShareData
  • MY_RegSetVal() : CShareData
  • MyAppendMenu() : CMenuDrawer
  • MyAppendMenuSep() : CMenuDrawer
  • MyBitBlt() : CImageListMgr
  • MyEnumFontFamProc() : CPrintPreview
  • MyGetClipboardData() : CEditView
  • MyGetDateFormat() : CShareData
  • MyGetTimeFormat() : CShareData
  • MySetClipboardData() : CEditView
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- n -

  • nAddLineNum : LayoutReplaceArg
  • Name : CInterfaceObject::CMethodInfo
  • name : CDllHandler::ImportTable , ctrl_info_t
  • nCRorLF : WC_EncodingInfo_t
  • nCRorLF_ascii : UnicodeInfo_t
  • nDataCount : StringBufferA , StringBufferW
  • nDeletedLineNum : 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 : DocLineReplaceArg , LayoutReplaceArg
  • nInsLineNum : DocLineReplaceArg
  • nInterval : CPassiveTimer
  • nItemNum : ARRHEAD
  • nLastPos_Macro : CPropCommon
  • nLastTick : CPassiveTimer
  • nLength : oneRule , RegexInfo_t , ARRHEAD
  • nLine : RcCvt
  • nLostBytes : WC_EncodingInfo_t
  • nMatch : RegexInfo_t
  • nMethod : TYPE_NAME
  • nModLineFrom : LayoutReplaceArg
  • nModLineTo : LayoutReplaceArg
  • no : CSortedTagJumpList::tagjump_info_t
  • nOffset : RegexInfo_t
  • NOT_STRICT_ID : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotAddsubIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotAssignIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotCastIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotCmpIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • note : CSortedTagJumpList::tagjump_info_t
  • nparens : bregexp
  • nSpecBytes : EncodingInfo_t
  • nStatus : RegexInfo_t
  • NUM_OF_MBCODE : CESI
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- o -

  • o_ : LockGuard< EXCLUSIVE_OBJECT >
  • Offset() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CMyPoint
  • OffsetLogicLineNo() : CLayout
  • OffsetViewTopLine() : CTextArea
  • OFNHookProc : CDlgOpenFile
  • OnActivate() : CDialog , CDlgFavorite
  • OnBnClicked() : CDlgDiff , CDlgTypeList , CDlgWinSize , CDlgExec , CHokanMgr , CDlgFavorite , CDlgFileUpdateQuery , CDlgFind , CDlgFuncList , CDialog , CDlgGrep , CDlgJump , CDlgAbout , CDlgKeywordSelect , CDlgPrintPage , CDlgCancel , CDlgPrintSetting , CDlgProperty , CDlgCompare , CDlgReplace , CDlgSameColor , CDlgCtrlCode , CDlgTagJumpList , CDlgTagsMake
  • OnCaptionTimer() : CEditWnd
  • OnCaptureChanged() : CTabWnd
  • OnCbnEditChange() : CDialog , CDlgTagJumpList
  • OnCbnSelChange() : CDialog , CDlgDiff , CDlgFuncList , CDlgJump , CDlgPrintSetting , CDlgTagJumpList , CHokanMgr
  • OnChangePrintSetting() : CPrintPreview
  • OnChangeSetting() : CEditDoc , CEditView
  • OnChangeSettingType() : CDlgPrintSetting
  • OnCharToItem() : CDialog
  • OnCheckAntialias() : CPrintPreview
  • OnClose() : CEditWnd
  • OnCmbDropdown() : CDlgOpenFile
  • OnCommand() : CControlTray , CDialog , CEditWnd , CFuncKeyWnd
  • OnContextMenu() : CDialog
  • OnDestroy() : CHokanMgr , CTabWnd , CControlTray , CDialog , CDlgFuncList , CDlgPrintSetting , CFuncKeyWnd
  • OnDeviceChange() : CDialog
  • OnDrawItem() : CDialog , CDlgSameColor , CTabWnd
  • OnDropFiles() : CEditWnd
  • OnEditChange() : CDialog , CDlgDiff
  • OnEditTimer() : CEditWnd
  • OnEnterScript() : CWSHSite
  • OnFileClose() : CEditDoc
  • OnFileDropdown_Macro() : CPropCommon
  • OnHelp() : CPropCommon , CPropTypes
  • OnHScroll() : CEditView , CEditWnd , CPrintPreview
  • OnInitDialog() : CDialog , CDlgAbout , CDlgCancel , CDlgCtrlCode , CDlgFavorite , CDlgFileUpdateQuery , CDlgFuncList , CDlgGrep , CDlgKeywordSelect , CDlgPrintSetting , CDlgReplace , CDlgSameColor , CDlgTagJumpList , CDlgWinSize , CHokanMgr
  • OnJump() : CDlgFuncList
  • OnKeyDown() : CDialog , CHokanMgr
  • OnKillFocus() : CDialog , CEditView , CHokanMgr
  • OnLbnDblclk() : CDialog , CDlgTypeList , CHokanMgr
  • OnLBUTTONDBLCLK() : CEditView
  • OnLButtonDblClk() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLBUTTONDOWN() : CEditView
  • OnLButtonDown() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLBUTTONUP() : CEditView
  • OnLButtonUp() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLeaveScript() : CWSHSite
  • OnMBUTTONDOWN() : CEditView
  • OnMeasureItem() : CTabWnd
  • OnMenuChar() : CMenuDrawer
  • OnMouseMove() : CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnMOUSEMOVE() : CEditView
  • OnMouseMove() : CEditWnd , CPrintPreview
  • OnMOUSEWHEEL() : CEditView
  • OnMouseWheel() : CEditWnd , CPrintPreview
  • OnMove() : CDialog , CEditView
  • OnNcDestroy() : CWnd
  • OnNcLButtonDown() : CEditWnd
  • OnNcLButtonUp() : CEditWnd
  • OnNewEditor() : CControlTray
  • OnNotify() : CDialog , CDlgCtrlCode , CDlgFavorite , CDlgFuncList , CDlgJump , CDlgPrintSetting , CDlgTagJumpList , CTabWnd
  • OnPaint() : CEditView , CEditWnd , CPrintPreview , CSplitBoxWnd , CSplitterWnd , CTabWnd , CTipWnd
  • OnPopupHelp() : CDialog
  • OnPreviewGoDirectPage() : CPrintPreview
  • OnPreviewGoNextPage() : CPrintPreview
  • OnPreviewGoPage() : CPrintPreview
  • OnPreviewGoPreviousPage() : CPrintPreview
  • OnPreviewZoom() : CPrintPreview
  • OnPrint() : CPrintPreview
  • OnPrintPageSetting() : CEditWnd , CPrintPreview
  • OnRBUTTONDOWN() : CEditView
  • OnRButtonDown() : CTabWnd
  • OnRBUTTONUP() : CEditView
  • OnScriptError() : CWSHSite
  • OnScriptTerminate() : CWSHSite
  • OnSelChangeListColors() : CDlgSameColor
  • OnSetFocus() : CEditView
  • OnSize() : CDialog , CDlgFuncList , CEditView , CEditWnd , CFuncKeyWnd , CHokanMgr , CPrintPreview , CSplitterWnd , CTabWnd
  • 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() : CDialog , CDlgPrintSetting , CDlgTagJumpList , CEditView , CEditWnd , CFuncKeyWnd , CTabWnd
  • OnToolbarTimer() : CMainToolBar
  • OnVKeyToItem() : CDialog
  • OnVScroll() : CPrintPreview , CEditView , CEditWnd
  • OnXLBUTTONDOWN() : CEditView
  • OnXRBUTTONDOWN() : CEditView
  • op : CMigemo
  • Open() : CFuncKeyWnd , CTabWnd , CStream , CTextInputStream
  • OPEN_ExtFromtoExt() : CEditView
  • OpenDocumentWhenCreate() : CEditWnd
  • OpenFile() : CEditDoc
  • OpenFileDialog() : CEditDoc
  • OpenNewEditor() : CControlTray
  • OpenNewEditor2() : CControlTray
  • OpenPropertySheet() : CEditDoc
  • OpenPropertySheetTypes() : CEditDoc
  • operator *() : CharPointerW , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CharPointerA
  • operator *=() : CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • operator bool() : CClipboard , CStream
  • operator CastIntegerType() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator CHAR_TYPE *() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • operator const char *() : CMyString
  • operator const CHAR_TYPE *() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • operator const int &() : CLaxInteger
  • operator const T &() : CommonValue< T >
  • operator const wchar_t *() : CMyString
  • operator enumEOLType() : CEOL
  • operator HANDLE() : CMutex
  • operator Int() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator int &() : CLaxInteger
  • operator NotCastIntegerType() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator T &() : CommonValue< T >
  • operator TCHAR *() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • operator!() : CDllHandler
  • operator!=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMySize , CEOL , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMarkMgr::CMark , CMyPoint , SSearchOption , CRangeBase< PointType > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator%() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator%=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator+() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CharPointerW , CharPointerA , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator++() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerW , CharPointerA , CharPointerW , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator+=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerW , CNativeW , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CharPointerA , CNativeW , CNativeA , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator-() : CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator--() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator-=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator/() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • operator/=() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator<() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator<=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator=() : CMyPoint , CKeyWordSetMgr , StringBufferA , CommonValue< T > , StringBufferW , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType > , Variant , CMemory , CFileLoad , StaticString< CHAR_TYPE, N_BUFFER_COUNT > , SysString , ImplementsIUnknown< Base > , CMyString , CNativeA , CEOL , CNativeW , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CNativeW , CharPointerW , CharPointerA , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator==() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMySize , CMarkMgr::CMark , SSearchOption , CMyPoint , CEOL , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType >
  • operator>() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator>=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator[]() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > , CNativeA , StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > , CNativeW , CharPointerA , CharPointerW , CMarkMgr
  • optCaseSensitive : CBregexp
  • optGlobal : CBregexp
  • Option : CBregexp
  • optNothing : CBregexp
  • OsDoesNOTSupportReconvert() : COsVersionInfo
  • OsIsEnableVersion() : COsVersionInfo
  • outendp : bregexp
  • outp : bregexp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- z -

  • ZeroItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- ~ -

  • ~CBregexp() : CBregexp
  • ~CBregexpDll2() : CBregexpDll2
  • ~CCaret() : CCaret
  • ~CClipboard() : CClipboard
  • ~CCodeBase() : CCodeBase
  • ~CControlProcess() : CControlProcess
  • ~CControlTray() : CControlTray
  • ~CConvert() : CConvert
  • ~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
  • ~CEditView_Paint() : CEditView_Paint
  • ~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
  • ~CMyString() : CMyString
  • ~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
  • ~CRecentImp() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ~CRecycledBufferDynamic() : CRecycledBufferDynamic
  • ~CRegexKeyword() : CRegexKeyword
  • ~CRuler() : CRuler
  • ~CRunningTimer() : CRunningTimer
  • ~CShareData() : CShareData
  • ~CSMacroMgr() : CSMacroMgr
  • ~CSortedTagJumpList() : CSortedTagJumpList
  • ~CSplitBoxWnd() : CSplitBoxWnd
  • ~CSplitterWnd() : CSplitterWnd
  • ~CStream() : CStream
  • ~CTabWnd() : CTabWnd
  • ~CTextArea() : CTextArea
  • ~CTextDrawer() : CTextDrawer
  • ~CTextInputStream() : CTextInputStream
  • ~CTextMetrics() : CTextMetrics
  • ~CTextOutputStream() : CTextOutputStream
  • ~CTipWnd() : CTipWnd
  • ~CTypeSupport() : CTypeSupport
  • ~CUrlWnd() : CUrlWnd
  • ~CUxTheme() : CUxTheme
  • ~CViewCalc() : CViewCalc
  • ~CViewFont() : CViewFont
  • ~CViewParser() : CViewParser
  • ~CWaitCursor() : CWaitCursor
  • ~CWnd() : CWnd
  • ~CWSHClient() : CWSHClient
  • ~CWSHMacroManager() : CWSHMacroManager
  • ~CYbInterfaceBase() : CYbInterfaceBase
  • ~ImplementsIUnknown() : ImplementsIUnknown< Base >
  • ~LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • ~RcCvt() : RcCvt
  • ~SysString() : SysString
  • ~TcharReceiver() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • ~TSingleInstance() : TSingleInstance< T >
  • ~Variant() : Variant
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- a -

  • a : TestArrayA , TestArrayW , TestArrayI
  • Abort() : CPPA
  • AcceptSharedSearchKey() : CMainToolBar
  • Add() : CMRU , CMRUFolder , CMarkMgr , CAutoMarkMgr
  • AddCurrentLineToHistory() : CEditView
  • addDelta() : CMemoryIterator
  • AddEditWndList() : CShareData
  • AddIntObj() : CPPA
  • AddIntParam() : CMacro
  • AddIntVar() : CPPA
  • AddKeyWord() : CKeyWordSetMgr
  • AddKeyWordSet() : CKeyWordSetMgr
  • AddLineBottom() : CLayoutMgr
  • AddLineStrX() : CDocLineMgr
  • AddLParam() : CMacro
  • AddMethod() : CInterfaceObject
  • AddParam() : CDlgTagJumpList , CSortedTagJumpList
  • AddRealObj() : CPPA
  • AddRealVar() : CPPA
  • AddRef() : CWSHSite , ImplementsIUnknown< Base >
  • AddressOfMember() : CInterfaceObjectTypeInfo
  • AddStringParam() : CMacro
  • AddStrObj() : CPPA
  • AddStrVar() : CPPA
  • AddsubIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • AddToCmdArr() : CEditView
  • AddToGrepFileArr() : CShareData
  • AddToGrepFolderArr() : CShareData
  • AddToMRU() : CEditDoc
  • AddToReplaceKeyArr() : CShareData
  • AddToSearchKeyArr() : CShareData
  • AdjustScrollBars() : CEditView
  • AdjustWindowPlacement() : CTabWnd
  • AfterCreateWindow() : CFuncKeyWnd , CTabWnd , CTipWnd , CWnd
  • alength() : CMyString
  • AllocBuffer() : CMemory
  • AllocStringBuffer() : CNativeA , CNativeW
  • AnalyzeDiffInfo() : CEditView
  • Append() : CKeyMacroMgr , CSMacroMgr
  • AppendData() : CFuncInfoArr
  • AppendExt() : CFileExt
  • AppendExtRaw() : CFileExt
  • AppendItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • AppendNativeData() : CNativeW , CNativeA
  • AppendNativeDataT() : CNativeW
  • AppendOpe() : COpeBlk
  • AppendOpeBlk() : COpeBuf
  • AppendRawData() : CMemory
  • AppendString() : CNativeA , CNativeW
  • AppendStringNew() : CNativeA
  • AppendStringOld() : CNativeW
  • AppendStringT() : CNativeW
  • AppendStringW() : CNativeA , CNativeW
  • Apply() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • ApplyData() : CPropCommon
  • Arguments : CInterfaceObject::CMethodInfo
  • AssignIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • AtoiOptionInt() : CCommandLine
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- b -

  • BASE64Decode() : CConvert_Base64Decode
  • BeginSelectArea() : CViewSelect
  • bEnabled : CPassiveTimer
  • BeReloadWhenExecuteMacro() : CShareData
  • bGrepOutputLine : GrepInfo
  • bGrepSubFolder : GrepInfo
  • BLOCK_SIZE : CRecycledBuffer
  • bLoHiCase : SSearchOption
  • BMatch() : CBregexpDll2
  • BMatchEx() : CBregexpDll2
  • BOOL() : CPPA , CUxTheme , CPPA , CEditView , CPPA
  • BothNatural() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • bottom : CStrictRect< INT_TYPE, POINT_TYPE >
  • BreakDrag() : CTabWnd
  • BREGEXP_BRegexpVersionW2 : CBregexpDll2
  • BRegexpVersion() : CBregexpDll2
  • BRegfree() : CBregexpDll2
  • bRegularExp : SSearchOption
  • BSplit() : CBregexpDll2
  • BSubst() : CBregexpDll2
  • BSubstEx() : CBregexpDll2
  • bText : VS_VERSION_INFO_HEAD
  • BTrans() : CBregexpDll2
  • buffer : RcCvt
  • BUFFER_COUNT : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • Buffering() : CFileLoad
  • bWordOnly : SSearchOption
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- c -

  • c_astr() : CMyString
  • c_tstr() : CMyString
  • c_wstr() : CMyString
  • cache : LocalCache
  • CalcButtonSize() : CFuncKeyWnd
  • CalcCaretDrawPos() : CCaret
  • CalcIndentProc : CLayoutMgr
  • CalcLayoutOffset() : CLayout
  • CalcLayoutWidth() : CLayout
  • CalcTextWidth() : CTextMetrics
  • CalcTextWidth2() : CTextMetrics
  • Call_OnPaint() : CEditView_Paint
  • CallConvert() : CConvert
  • CallDefWndProc() : CWnd
  • CallHandleFunction() : CPPA
  • CanAddKeyWord() : CKeyWordSetMgr
  • CanFuncIsKeyMacro() : CSMacroMgr
  • CAPT_CLOSE : CTabWnd
  • CAPT_NONE : CTabWnd
  • CaptureSrc : CTabWnd
  • CaretUnderLineOFF() : CCaretUnderLine , CEditView
  • CaretUnderLineON() : CCaretUnderLine , CEditView
  • CastIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • Category2Name() : CFuncLookup
  • CBinaryInputStream() : CBinaryInputStream
  • CBinaryOutputStream() : CBinaryOutputStream
  • CBlockComment() : CBlockComment
  • CBregexp() : CBregexp
  • CBregexpDll2() : CBregexpDll2
  • CCaret() : CCaret
  • CCaretUnderLine() : CCaretUnderLine
  • CClipboard() : CClipboard
  • CCommandLine() : CCommandLine
  • CControlProcess() : CControlProcess
  • CControlTray() : CControlTray
  • CConvert_SpaceToTab() : CConvert_SpaceToTab
  • CConvert_TabToSpace() : CConvert_TabToSpace
  • CConvert_Trim() : CConvert_Trim
  • 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
  • CDummy() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy
  • 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
  • CHAIN_COUNT : CRecycledBuffer , CRecycledBufferDynamic
  • ChangeCurRegexp() : CEditView
  • ChangeDateExample() : CPropCommon
  • ChangeFileNameNotify() : CEditWnd
  • ChangeFont() : CTipWnd
  • ChangeLayoutParam() : CEditWnd , CLayoutMgr
  • ChangeSelectAreaByCurrentCursor() : CViewSelect
  • ChangeSelectAreaByCurrentCursorTEST() : CViewSelect
  • ChangeTimeExample() : CPropCommon
  • ChangeView() : CDlgFind , CDlgFuncList , CDlgReplace , CHokanMgr
  • ChangeViewCount() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • CharPointerA() : CharPointerA
  • CharPointerW() : CharPointerW
  • CheckAction() : CPassiveTimer
  • CheckAutoSave() : CEditDoc
  • CheckColorMODE() : CLayoutMgr
  • CheckCommandLine() : CCommandLine
  • CheckCurrent() : CMarkMgr
  • CheckFileTimeStamp() : CEditDoc
  • CheckKanjiCode() : CCodeMediator
  • CheckKanjiCodeOfFile() : CCodeMediator
  • CheckListPosition_Macro() : CPropCommon
  • CheckListType() : CDlgFuncList
  • CheckNext() : CMarkMgr
  • CheckPattern() : CBregexp
  • CheckPrev() : CMarkMgr
  • CHokanMgr() : CHokanMgr
  • ChooseFontHandle() : CViewFont
  • CHtmlHelp() : CHtmlHelp
  • CImageListMgr() : CImageListMgr
  • CInterfaceObject() : CInterfaceObject
  • CInterfaceObjectTypeInfo() : CInterfaceObjectTypeInfo
  • CJis() : CJis
  • CKeyBind() : CKeyBind
  • CKeyMacroMgr() : CKeyMacroMgr
  • CKeyWordSetMgr() : CKeyWordSetMgr
  • CLaxInteger() : CLaxInteger
  • CLayout() : CLayout
  • CLayoutMgr() : CLayoutMgr
  • Clean() : CMemory
  • CleanKeyWords() : CKeyWordSetMgr
  • Clear() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType > , CMemory , CNative , CSMacroMgr
  • clear() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • ClearAll() : CKeyMacroMgr , CMRU , CMRUFolder , COpeBuf , CSMacroMgr
  • ClearOpeBlk() : CViewCommander
  • ClientToLayout() : CTextArea
  • CLineComment() : CLineComment
  • Close() : CClipboard , CFileWrite , CFuncKeyWnd , CTabWnd , CStream
  • CloseAllEditor() : CControlTray
  • CloseDialog() : CDialog
  • CMacro() : CMacro
  • CMacroFactory() : CMacroFactory
  • CMacroManagerBase() : CMacroManagerBase
  • CMainStatusBar() : CMainStatusBar
  • CMainToolBar() : CMainToolBar
  • CMark() : CMarkMgr::CMark
  • CMarkChain : CMarkMgr
  • CMarkIterator : CMarkMgr
  • CMarkMgr() : CMarkMgr
  • CMemory() : CMemory
  • CMemoryIterator() : CMemoryIterator
  • CMenuDrawer() : CMenuDrawer
  • CMethodInfoList : CInterfaceObject
  • cmGrepFile : GrepInfo
  • cmGrepFolder : GrepInfo
  • cmGrepKey : GrepInfo
  • CMigemo() : CMigemo
  • CmpIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • CMRU() : CMRU
  • CMRUFolder() : CMRUFolder
  • CMutex() : CMutex
  • CMyPoint() : CMyPoint
  • CMyRect() : CMyRect
  • CMySize() : CMySize
  • CMyString() : CMyString
  • CNativeA() : CNativeA
  • CNativeW() : CNativeW
  • CNormalProcess() : CNormalProcess
  • code : ctrl_info_t
  • CodeToUnicode() : CCodeBase , CEuc , CJis , CShiftJis , CUnicode , CUnicodeBe , CUtf7 , CUtf8
  • COleLibrary() : COleLibrary
  • ColorList_SubclassProc() : CDlgSameColor
  • ColorStatic_SubclassProc() : CDlgSameColor
  • Command_1PageDown() : CViewCommander
  • Command_1PageUp() : CViewCommander
  • Command_ABOUT() : CViewCommander
  • Command_ACTIVATE_SQLPLUS() : CViewCommander
  • Command_ADDTAIL() : CViewCommander
  • Command_BASE64DECODE() : CViewCommander
  • Command_BEGIN_BOXSELECT() : CViewCommander
  • Command_BEGIN_SELECT() : CViewCommander
  • Command_BIND_WINDOW() : CViewCommander
  • Command_BOOKMARK_NEXT() : CViewCommander
  • Command_BOOKMARK_PATTERN() : CViewCommander
  • Command_BOOKMARK_PREV() : CViewCommander
  • Command_BOOKMARK_RESET() : CViewCommander
  • Command_BOOKMARK_SET() : CViewCommander
  • Command_BRACKETPAIR() : CViewCommander
  • Command_BROWSE() : CViewCommander
  • Command_CANCEL_MODE() : CViewCommander
  • Command_CASCADE() : CViewCommander
  • Command_CHGMOD_EOL() : CViewCommander
  • Command_CHGMOD_INS() : CViewCommander
  • Command_CODECNV_AUTO2SJIS() : CViewCommander
  • Command_CODECNV_EMAIL() : CViewCommander
  • Command_CODECNV_EUC2SJIS() : CViewCommander
  • Command_CODECNV_SJIS2EUC() : CViewCommander
  • Command_CODECNV_SJIS2JIS() : CViewCommander
  • Command_CODECNV_SJIS2UTF7() : CViewCommander
  • Command_CODECNV_SJIS2UTF8() : CViewCommander
  • Command_CODECNV_UNICODE2SJIS() : CViewCommander
  • Command_CODECNV_UNICODEBE2SJIS() : CViewCommander
  • Command_CODECNV_UTF72SJIS() : CViewCommander
  • Command_CODECNV_UTF82SJIS() : CViewCommander
  • Command_COMPARE() : CViewCommander
  • Command_COPY() : CViewCommander
  • Command_COPYFILENAME() : CViewCommander
  • Command_COPYLINES() : CViewCommander
  • Command_COPYLINESASPASSAGE() : CViewCommander
  • Command_COPYLINESWITHLINENUMBER() : CViewCommander
  • Command_COPYPATH() : CViewCommander
  • Command_COPYTAG() : CViewCommander
  • Command_CREATEKEYBINDLIST() : CViewCommander
  • Command_CtrlCode_Dialog() : CViewCommander
  • Command_CURLINECENTER() : CViewCommander
  • Command_CUSTMENU() : CViewCommander
  • Command_CUT() : CViewCommander
  • Command_CUT_LINE() : CViewCommander
  • Command_DELETE() : CViewCommander
  • Command_DELETE_BACK() : CViewCommander
  • Command_DELETE_LINE() : CViewCommander
  • Command_Diff() : CViewCommander
  • Command_Diff_Dialog() : CViewCommander
  • Command_Diff_Next() : CViewCommander
  • Command_Diff_Prev() : CViewCommander
  • Command_Diff_Reset() : CViewCommander
  • Command_DOWN() : CViewCommander
  • Command_DOWN2() : CViewCommander
  • Command_DUPLICATELINE() : CViewCommander
  • Command_EXECCOMMAND() : CViewCommander
  • Command_EXECCOMMAND_DIALOG() : CViewCommander
  • Command_EXECKEYMACRO() : CViewCommander
  • Command_EXITALL() : CViewCommander
  • Command_EXITALLEDITORS() : CViewCommander
  • Command_EXTHELP1() : CViewCommander
  • Command_EXTHTMLHELP() : CViewCommander
  • Command_Favorite() : CViewCommander
  • Command_FILE_REOPEN() : CViewCommander
  • Command_FILECLOSE() : CViewCommander
  • Command_FILECLOSE_OPEN() : CViewCommander
  • Command_FILECLOSEALL() : CViewCommander
  • Command_FILENEW() : CViewCommander
  • Command_FILEOPEN() : CViewCommander
  • Command_FILESAVE() : CViewCommander
  • Command_FILESAVEALL() : CViewCommander
  • Command_FILESAVEAS() : CViewCommander
  • Command_FILESAVEAS_DIALOG() : CViewCommander
  • Command_FONT() : CViewCommander
  • Command_FUNCLIST() : CViewCommander
  • Command_GOFILEEND() : CViewCommander
  • Command_GOFILETOP() : CViewCommander
  • Command_GOLINEEND() : CViewCommander
  • Command_GOLINETOP() : CViewCommander
  • Command_GONEXTPARAGRAPH() : CViewCommander
  • Command_GOPREVPARAGRAPH() : CViewCommander
  • Command_GREP() : CViewCommander
  • Command_GREP_DIALOG() : CViewCommander
  • Command_GROUPCLOSE() : CViewCommander
  • Command_HalfPageDown() : CViewCommander
  • Command_HalfPageUp() : CViewCommander
  • Command_HANKATATOZENKAKUHIRA() : CViewCommander
  • Command_HANKATATOZENKAKUKATA() : CViewCommander
  • Command_HELP_CONTENTS() : CViewCommander
  • Command_HELP_SEARCH() : CViewCommander
  • Command_HOKAN() : CViewCommander
  • Command_IME_CHAR() : CViewCommander
  • Command_INDENT() : CViewCommander
  • Command_INDENT_TAB() : CViewCommander
  • Command_INS_DATE() : CViewCommander
  • Command_INS_TIME() : CViewCommander
  • Command_INSFILE() : CViewCommander
  • Command_INSTEXT() : CViewCommander
  • Command_JUMP() : CViewCommander
  • Command_JUMP_DIALOG() : CViewCommander
  • Command_JUMP_SRCHSTARTPOS() : CViewCommander
  • Command_JUMPHIST_NEXT() : CViewCommander
  • Command_JUMPHIST_PREV() : CViewCommander
  • Command_JUMPHIST_SET() : CViewCommander
  • Command_LEFT() : CViewCommander
  • Command_LineCutToEnd() : CViewCommander
  • Command_LineCutToStart() : CViewCommander
  • Command_LineDeleteToEnd() : CViewCommander
  • Command_LineDeleteToStart() : CViewCommander
  • Command_LOADKEYMACRO() : CViewCommander
  • Command_MAXIMIZE_H() : CViewCommander
  • Command_MAXIMIZE_V() : CViewCommander
  • Command_MENU_ALLFUNC() : CViewCommander
  • Command_MENU_RBUTTON() : CViewCommander
  • Command_MERGE() : CViewCommander
  • Command_MINIMIZE_ALL() : CViewCommander
  • Command_NEXTGROUP() : CViewCommander
  • Command_OPEN_CCPP() : CViewCommander
  • Command_OPEN_HfromtoC() : CViewCommander
  • Command_OPEN_HHPP() : CViewCommander
  • Command_OPTION() : CViewCommander
  • Command_OPTION_TYPE() : CViewCommander
  • Command_PASTE() : CViewCommander
  • Command_PASTEBOX() : CViewCommander
  • Command_PLSQL_COMPILE_ON_SQLPLUS() : CViewCommander
  • Command_PREVGROUP() : CViewCommander
  • Command_PRINT() : CViewCommander
  • Command_PRINT_PAGESETUP() : CViewCommander
  • Command_PRINT_PREVIEW() : CViewCommander
  • Command_PROPERTY_FILE() : CViewCommander
  • Command_PUTFILE() : CViewCommander
  • Command_READONLY() : CViewCommander
  • Command_RECKEYMACRO() : CViewCommander
  • Command_Reconvert() : CViewCommander
  • Command_REDO() : CViewCommander
  • Command_REDRAW() : CViewCommander
  • Command_REPLACE() : CViewCommander
  • Command_REPLACE_ALL() : CViewCommander
  • Command_REPLACE_DIALOG() : CViewCommander
  • Command_RIGHT() : CViewCommander
  • Command_SAVEKEYMACRO() : CViewCommander
  • Command_SEARCH_BOX() : CViewCommander
  • Command_SEARCH_CLEARMARK() : CViewCommander
  • Command_SEARCH_DIALOG() : CViewCommander
  • Command_SEARCH_NEXT() : CViewCommander
  • Command_SEARCH_PREV() : CViewCommander
  • Command_SELECTALL() : CViewCommander
  • Command_SELECTWORD() : CViewCommander
  • Command_SET_QUOTESTRING() : CViewCommander
  • Command_SHOWFUNCKEY() : CViewCommander
  • Command_SHOWSTATUSBAR() : CViewCommander
  • Command_SHOWTAB() : CViewCommander
  • Command_SHOWTOOLBAR() : CViewCommander
  • Command_SORT() : CViewCommander
  • Command_SPACETOTAB() : CViewCommander
  • Command_SPLIT_H() : CViewCommander
  • Command_SPLIT_V() : CViewCommander
  • Command_SPLIT_VH() : CViewCommander
  • Command_TAB_JOINTNEXT() : CViewCommander
  • Command_TAB_JOINTPREV() : CViewCommander
  • Command_TAB_MOVELEFT() : CViewCommander
  • Command_TAB_MOVERIGHT() : CViewCommander
  • Command_TAB_SEPARATE() : CViewCommander
  • Command_TABTOSPACE() : CViewCommander
  • Command_TAGJUMP() : CViewCommander
  • Command_TAGJUMPBACK() : CViewCommander
  • Command_TagJumpByTagsFile() : CViewCommander
  • Command_TagJumpByTagsFileKeyword() : CViewCommander
  • Command_TagsMake() : CViewCommander
  • Command_TILE_H() : CViewCommander
  • Command_TILE_V() : CViewCommander
  • Command_ToggleKeySearch() : CViewCommander
  • Command_TOHANEI() : CViewCommander
  • Command_TOHANKAKU() : CViewCommander
  • Command_TOHANKATA() : CViewCommander
  • Command_TOLOWER() : CViewCommander
  • Command_TOUPPER() : CViewCommander
  • Command_TOZENEI() : CViewCommander
  • Command_TOZENKAKUHIRA() : CViewCommander
  • Command_TOZENKAKUKATA() : CViewCommander
  • Command_TRACEOUT() : CViewCommander
  • Command_TRIM() : CViewCommander
  • Command_TRIM2() : CConvertMediator
  • Command_TYPE_LIST() : CViewCommander
  • Command_UNDO() : CViewCommander
  • Command_UNINDENT() : CViewCommander
  • Command_UP() : CViewCommander
  • Command_UP2() : CViewCommander
  • Command_UP_BOX() : CViewCommander
  • Command_UUDECODE() : CViewCommander
  • Command_WCHAR() : CViewCommander
  • Command_WIN_OUTPUT() : CViewCommander
  • Command_WINCLOSE() : CViewCommander
  • Command_WINLIST() : CViewCommander
  • Command_WINTOPMOST() : CViewCommander
  • Command_WndScrollDown() : CViewCommander
  • Command_WndScrollUp() : CViewCommander
  • Command_WordCut() : CViewCommander
  • Command_WordDelete() : CViewCommander
  • Command_WordDeleteToEnd() : CViewCommander
  • Command_WordDeleteToStart() : CViewCommander
  • Command_WORDLEFT() : CViewCommander
  • Command_WORDRIGHT() : CViewCommander
  • Command_WRAPWINDOWWIDTH() : CViewCommander
  • CommonValue() : CommonValue< T >
  • CommonValueInfo() : CommonValueInfo
  • CompareItem() : CRecentFolder , CRecentCmd , CRecentSearch , CRecentGrepFile , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentFile , CRecentEditNode , CRecentGrepFolder , CRecentReplace , CRecentTagjumpKeyword
  • Compile() : CBregexp
  • ComputeWindowSize() : CTipWnd
  • convert() : RcCvt
  • ConvertTypesExtToDlgExt() : CFileExt
  • ConvMemory() : CConvertMediator
  • ConvSelectedArea() : CEditView
  • COpe() : COpe
  • COpeBlk() : COpeBlk
  • COpeBuf() : COpeBuf
  • CopyCaretStatus() : CCaret
  • CopyCurLine() : CEditView
  • CopyItem() : CRecentTagjumpKeyword , CRecentGrepFile , CRecentGrepFolder , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentCmd , CRecentFile , CRecentEditNode , CRecentFolder , CRecentSearch , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentReplace
  • CopySelectedAllLines() : CEditView
  • CopySelectStatus() : CViewSelect
  • CopyTextAreaStatus() : CTextArea
  • CopyTextMetricsStatus() : CTextMetrics
  • CopyTo() : CBlockComment , CLineComment
  • CopyViewStatus() : CEditView
  • COsVersionInfo() : COsVersionInfo
  • Count() : CImageListMgr , CMarkMgr
  • COutlinePython() : COutlinePython
  • CPassiveTimer() : CPassiveTimer
  • CPPA() : CPPA
  • CPPAMacroMgr() : CPPAMacroMgr
  • CPrint() : CPrint
  • CPrintPreview() : CPrintPreview
  • CProcess() : CProcess
  • CProfile() : CProfile
  • CPropCommon() : CPropCommon
  • CPropTypes() : CPropTypes
  • CRangeBase() : CRangeBase< PointType >
  • Create() : CProcessFactory , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CPropCommon , CEditWnd , CDlgOpenFile , CEditDoc , CPropTypes , CControlTray , CLayoutMgr , CWnd , CSplitBoxWnd , CImageListMgr , CSplitterWnd , CTipWnd , CMacroFactory , CEditView , CMenuDrawer
  • Create2() : CDlgOpenFile
  • CreateAccerelator() : CKeyBind
  • CreateButtons() : CFuncKeyWnd
  • CreateCharCharsArr() : CDocLineMgr
  • CreateCodeBase() : CCodeFactory
  • CreateDC() : CPrint
  • CreateEditCaret() : CCaret
  • CreateFileDropDownMenu() : CEditWnd
  • CreateInstance() : CInterfaceObjectTypeInfo
  • CreateKeyBindList() : CKeyBind
  • CreateLayout() : CLayoutMgr
  • CreateMenu() : CMRUFolder , CMRU
  • CreateMenuFont() : CTabWnd
  • CreatePopUpMenu_L() : CControlTray
  • CreatePopUpMenu_R() : CEditView , CControlTray
  • CreatePrintPreviewControls() : CPrintPreview
  • CreateScrollBar() : CEditView
  • CreateSizeBox() : CDialog
  • CreateStatusBar() : CMainStatusBar
  • CreateToolBar() : CMainToolBar
  • CreateTrayIcon() : CControlTray
  • Creator() : CPPAMacroMgr , CWSHMacroManager , CKeyMacroMgr , CMacroFactory
  • CRecentCmd() : CRecentCmd
  • CRecentEditNode() : CRecentEditNode
  • CRecentFile() : CRecentFile
  • CRecentFolder() : CRecentFolder
  • CRecentGrepFile() : CRecentGrepFile
  • CRecentGrepFolder() : CRecentGrepFolder
  • CRecentImp() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • CRecentReplace() : CRecentReplace
  • CRecentSearch() : CRecentSearch
  • CRecentTagjumpKeyword() : CRecentTagjumpKeyword
  • CRecycledBuffer() : CRecycledBuffer
  • CRecycledBufferDynamic() : CRecycledBufferDynamic
  • CRegexKeyword() : CRegexKeyword
  • CRuler() : CRuler
  • CRunningTimer() : CRunningTimer
  • CShareData() : CShareData
  • CSMacroMgr() : CSMacroMgr
  • CSortedTagJumpList() : CSortedTagJumpList
  • CSplitBoxWnd() : CSplitBoxWnd
  • CSplitterWnd() : CSplitterWnd
  • CStream() : CStream
  • CStrictInteger() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • CStrictPoint() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • CStringRef() : CStringRef
  • CTabWnd() : CTabWnd
  • CTextArea() : CTextArea
  • CTextDrawer() : CTextDrawer
  • CTextInputStream() : CTextInputStream
  • CTextInputStream_AbsIni() : CTextInputStream_AbsIni
  • CTextMetrics() : CTextMetrics
  • CTextOutputStream() : CTextOutputStream
  • CTipWnd() : CTipWnd
  • CTypeSupport() : CTypeSupport
  • CUrlWnd() : CUrlWnd
  • Cursor_UPDOWN() : CCaret
  • CUxTheme() : CUxTheme
  • CViewCalc() : CViewCalc
  • CViewCommander() : CViewCommander
  • CViewFont() : CViewFont
  • CViewParser() : CViewParser
  • CViewSelect() : CViewSelect
  • CWaitCursor() : CWaitCursor
  • CWnd() : CWnd
  • CWndProc : CWnd
  • CWSHClient() : CWSHClient
  • CWSHMacroManager() : CWSHMacroManager
  • CWSHSite() : CWSHSite
  • cx() : CImageListMgr
  • cy() : CImageListMgr
  • CYbInterfaceBase() : CYbInterfaceBase , COleLibrary
  • CYbInterfaceImpl() : CYbInterfaceImpl< BASEINTERFACE >
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- d -

  • DAdvise() : CDataObject
  • Data : SysString , Variant
  • DataCheckAndCrrect() : CDlgPrintSetting
  • DataType : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • declare() : CWSHMacroManager , CKeyMacroMgr , CPPAMacroMgr
  • DECLH() : CWnd
  • DeInitDll() : CMigemo
  • DeinitDll() : CBregexpDll2 , CDllHandler , CPPA
  • DeleteAllItem() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • DeleteData() : CEditView
  • DeleteData2() : CEditView
  • DeleteData_CDocLineMgr() : CDocLineMgr
  • DeleteData_CLayoutMgr() : CLayoutMgr
  • DeleteEditWndList() : CShareData
  • DeleteItem() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • DeleteItemByHwnd() : CRecentEditNode
  • DeleteLayoutAsLogical() : CLayoutMgr
  • DeleteNode() : CDocLineMgr
  • DeleteVar() : CPPA
  • DelKeyWord() : CKeyWordSetMgr
  • DelKeyWordSet() : CKeyWordSetMgr
  • depth : CSortedTagJumpList::tagjump_info_t
  • Desc : CInterfaceObject::CMethodInfo
  • DestroyCaret() : CCaret
  • DestroyMenu() : CMRU , CMRUFolder
  • DestroyPrintPreviewControls() : CPrintPreview
  • DestroyScrollBar() : CEditView
  • DestroyStatusBar() : CMainStatusBar
  • DestroyToolBar() : CMainToolBar
  • DestroyWindow() : CWnd
  • DetectMultibyte() : CESI
  • DetectUnicode() : CESI
  • DetectWidthOfLineNumberArea() : CTextArea
  • DetectWidthOfLineNumberArea_calculate() : CTextArea
  • DetectWidthOfLineNumberAreaAllPane() : CEditWnd
  • dict_file : CMigemo
  • dict_id : CMigemo
  • DirCallback_Macro() : CPropCommon
  • DisableSelectArea() : CViewSelect
  • DispatchEvent() : CControlTray , CDialog , CDlgAbout , CDlgDebug , CDlgInput1 , CDlgSameColor , CEditView , CEditWnd , CWnd
  • DispatchEvent_KeyHelp() : CPropTypes
  • DispatchEvent_p1() : CPropCommon , CPropTypes
  • DispatchEvent_p10() : CPropCommon
  • DispatchEvent_p2() : CPropCommon , CPropTypes
  • 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() : CSplitterWnd , CWnd
  • DispEmptyLine() : CTextDrawer
  • DispEOF() : CTextDrawer
  • DispEOL() : CTextDrawer
  • DispHankakuSpace() : CTextDrawer
  • DispKeywordCount() : CPropCommon
  • DispLineNew() : CEditView
  • DispLineNumber() : CTextDrawer
  • DispPos() : DispPos
  • DispRuler() : CRuler
  • DispTab() : CTextDrawer
  • DispText() : CTextDrawer
  • DispTextSelected() : CEditView
  • DispVerticalLines() : CTextDrawer
  • DispWrap() : CTextDrawer
  • DispZenkakuSpace() : CTextDrawer
  • 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
  • DoConvert() : CConvert , CConvert_Base64Decode , CConvert_HaneisuToZeneisu , CConvert_HankanaToZenhira , CConvert_HankanaToZenkana , CConvert_TabToSpace , CConvert_ToHankaku , CConvert_ToLower , CConvert_ToZenhira , CConvert_ToZenkana , CConvert_Trim , CConvert_ZeneisuToHaneisu , CConvert_ZenkanaToHankana , CConvert_ToUpper , CConvert_UuDecode , CConvert_SpaceToTab
  • DoFileLock() : CEditDoc
  • DoFileUnLock() : CEditDoc
  • DoGrep() : CControlTray , CEditView
  • DoGrepFile() : CEditView
  • DoGrepTree() : CEditView
  • DoHokan() : CHokanMgr
  • DoLayout() : CLayoutMgr
  • DoLayout_Range() : CLayoutMgr
  • DoModal() : CDlgAbout , CDlgCtrlCode , CDlgProperty , CDlgTypeList , CDlgCompare , CDlgFavorite , CDlgJump , CDlgPrintSetting , CDlgInput1 , CDlgCancel , CDlgDebug , CDlgDiff , CDlgExec , CDlgGrep , CDialog , CDlgKeywordSelect , CDlgSameColor , CDlgWinSize , CDlgPrintPage , CDlgTagJumpList , CDlgTagsMake
  • DoModal_GetOpenFileName() : CDlgOpenFile
  • DoModal_GetSaveFileName() : CDlgOpenFile
  • DoModalOpenDlg() : CDlgOpenFile
  • DoModalSaveDlg() : CDlgOpenFile
  • DoModeless() : CDlgFind , CDialog , CDlgCancel , CDlgFuncList , CHokanMgr , CDlgReplace
  • DoPropertySheet() : CPropTypes , CPropCommon
  • DoRedo() : COpeBuf
  • DoScanLine() : COutlinePython
  • DoSplit() : CSplitterWnd
  • double : CPPA
  • DoUndo() : COpeBuf
  • DRAG_CHECK : CTabWnd
  • DRAG_DRAG : CTabWnd
  • DRAG_NONE : CTabWnd
  • DragDrop() : CDataObject
  • DragEnter() : CDropTarget , CEditView
  • DragLeave() : CEditView , CDropTarget
  • DragOver() : CEditView , CDropTarget
  • DragState : CTabWnd
  • Draw() : CImageListMgr
  • Draw3dRect() : CSplitBoxWnd
  • DrawBracketPair() : CEditView
  • DrawBtnBkgnd() : CTabWnd
  • DrawCaretPosInfo() : CCaret
  • DrawCloseBtn() : CTabWnd
  • DrawColorButton() : CPropTypes
  • DrawColorListItem() : CPropTypes
  • DrawFooter() : CPrintPreview
  • DrawFrame() : CSplitterWnd
  • DrawHeader() : CPrintPreview
  • DrawItem() : CMenuDrawer
  • DrawListBtn() : CTabWnd
  • DrawPageText() : CPrintPreview
  • DrawRulerBg() : CRuler
  • DrawRulerCaret() : CRuler
  • DrawSelectArea() : CViewSelect
  • DrawSelectAreaLine() : CViewSelect
  • DrawSplitter() : CSplitterWnd
  • DrawTipText() : CTipWnd
  • DrawToolBarItemList() : CPropCommon
  • Drop() : CEditView , CDropTarget
  • DUMP() : CFuncInfoArr , CDocLineMgr , COpeBlk , CProfile , COpeBuf , CLayoutMgr , COpe , CLayout
  • DUnadvise() : CDataObject
  • dwCompStrLen : tagRECONVERTSTRING
  • dwCompStrOffset : tagRECONVERTSTRING
  • DWORD : CEditView
  • dwReserved : OPENFILENAMEZ
  • dwSize : tagRECONVERTSTRING
  • dwStrLen : tagRECONVERTSTRING
  • dwStrOffset : tagRECONVERTSTRING
  • dwTargetStrLen : tagRECONVERTSTRING
  • dwTargetStrOffset : tagRECONVERTSTRING
  • dwVersion : tagRECONVERTSTRING
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- e -

  • EatMessage() : CMainToolBar
  • eCodeID : EncodingInfo_t , WC_EncodingInfo_t
  • EIconClickStatus : CEditWnd
  • ElementType : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • Empty() : CDocLineMgr , CFuncInfoArr , CLayoutMgr , COpeBlk , CClipboard , CSortedTagJumpList , CDlgTagJumpList
  • Enable() : CPassiveTimer
  • EnableAutoBackup() : CommonSetting_Backup
  • EnableBackupInput() : CPropCommon
  • EnableFilePropInput() : CPropCommon
  • EnableFormatPropInput() : CPropCommon
  • EnableModeless() : CWSHSite
  • EnableTabPropInput() : CPropCommon
  • EnableTypesPropInput() : CPropTypes
  • EnableWinPropInput() : CPropCommon
  • end() : CMemoryIterator
  • EndLayoutBars() : CEditWnd
  • endp : bregexp
  • EnterString() : COutlinePython
  • enum_CESI_public_constants : CESI
  • EnumDAdvise() : CDataObject
  • EnumEngines() : CWSHMacroManager
  • enumFileLoadMode : CFileLoad
  • EnumFormatEtc() : CDataObject
  • Eof() : CStream
  • Error() : CWSHClient
  • eStr : KAKKO_T
  • EType : CommonValueInfo
  • EUCToSJIS() : CEuc
  • EUCToUnicode() : CEuc
  • Exec() : CMacro , CSMacroMgr
  • ExecCmd() : CEditView
  • ExecKeyMacro() : CPPAMacroMgr , CKeyMacroMgr , CMacroManagerBase , CWSHMacroManager
  • ExecTabCommand() : CTabWnd
  • Execute() : CWSHClient , CPPA
  • ExistBMatchEx() : CBregexpDll2
  • ExistBSubstEx() : CBregexpDll2
  • ExistCache() : LocalCache
  • ExistCaretFocus() : CCaret
  • ExitingDlgProc() : CControlTray
  • ExpandMetaToFolder() : CShareData
  • ExpandParameter() : CEditDoc
  • ExParam_Evaluate() : CEditDoc
  • ExParam_SkipCond() : CEditDoc
  • Expire() : CMarkMgr , CAutoMarkMgr
  • Export_KeyHelp() : CPropTypes
  • Export_Regex() : CPropTypes
  • Ext2Key() : CMacroFactory
  • ExtHTMLHelpIsSet() : CShareData
  • ExtWinHelpIsSet() : CShareData
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • 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
  • FileToImpl() : CIoBridge
  • FileWrite() : CEditDoc
  • FillBack() : CTypeSupport
  • FillSolidRect() : CSplitBoxWnd
  • Find() : CMenuDrawer
  • find_key() : CDlgTagJumpList
  • FindIndexFromCommandId() : CMenuDrawer
  • FindItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • FindItemByHwnd() : CRecentEditNode
  • FindItemByPath() : CRecentFile
  • FindItemByText() : CRecent
  • FindPaperInfo() : CPrint
  • FindTabIndexByHWND() : CTabWnd
  • first() : CMemoryIterator
  • FlagsEx : OPENFILENAMEZ
  • FLMODE_CLOSE : CFileLoad
  • FLMODE_OPEN : CFileLoad
  • FLMODE_READBUFEND : CFileLoad
  • FLMODE_REDY : CFileLoad
  • Flush() : CMarkMgr
  • FN_ImageList_Duplicate : CTabWnd
  • font() : RcCvt
  • ForceActiveWindow() : CTabWnd
  • FormatBackUpPath() : CEditDoc
  • ForwardDrawCol() : DispPos
  • ForwardDrawLine() : DispPos
  • ForwardLayoutLineRef() : DispPos
  • fpi : RcCvt
  • fpo : RcCvt
  • Free() : CSortedTagJumpList
  • FreeLibrary() : CDllHandler
  • Funccode2Name() : CFuncLookup
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- g -

  • g_cEditArrMutex : CShareData
  • GenerateBottomRect() : CTextArea
  • GenerateClipRect() : CTextArea
  • GenerateClipRectLine() : CTextArea
  • GenerateClipRectRight() : CTextArea
  • GenerateDxArray() : CTextMetrics
  • GenerateLeftRect() : CTextArea
  • GenerateLineNumberRect() : CTextArea
  • GenerateRightRect() : CTextArea
  • GenerateTextAreaRect() : CTextArea
  • GenerateTopRect() : CTextArea
  • Get() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , SysString
  • GetAccelCharFromLabel() : CMenuDrawer
  • GetActivePane() : CEditWnd
  • GetActiveView() : CEditWnd
  • GetActualTabSpace() : CLayoutMgr
  • GetAdjustCursorPos() : CCaret
  • GetAlertIfFileNotExist() : CommonSetting_File
  • GetAllData() : CDocLineMgr
  • GetAllocSize() : CKeyWordSetMgr
  • GetAllPageNum() : CPrintPreview
  • GetAllSplitCols() : CSplitterWnd
  • GetAllSplitRows() : CSplitterWnd
  • GetAppInstance() : CEditApp , CWnd
  • GetAreaBottom() : CTextArea
  • GetAreaHeight() : CTextArea
  • GetAreaLeft() : CTextArea
  • GetAreaRight() : CTextArea
  • GetAreaTop() : CTextArea
  • GetAreaWidth() : CTextArea
  • GetArgBStr() : CPPA
  • GetArgInt() : CPPA
  • GetArgReal() : CPPA
  • GetArgStr() : CPPA
  • GetArrayCount() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetAt() : CFuncInfoArr
  • GetAutoBackupInterval() : CommonSetting_Backup
  • GetAutoMIMEdecode() : CommonSetting_File
  • GetBackColor() : CTypeSupport
  • GetBackupCount() : CommonSetting_Backup
  • GetBackupExtChar() : CommonSetting_Backup
  • GetBackupOpt() : CommonSetting_Backup
  • GetBackupType() : CommonSetting_Backup
  • GetBackupTypeAdv() : CommonSetting_Backup
  • getBlockCommentFrom() : CBlockComment
  • getBlockCommentTo() : CBlockComment
  • getBlockFromLen() : CBlockComment
  • getBlockToLen() : CBlockComment
  • GetBookMarks() : CDocLineMgr
  • GetBottomLine() : CTextArea
  • GetBStrVar() : CPPA
  • GetBuffer() : CRecycledBuffer , CRecycledBufferDynamic
  • GetBufferCount() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • GetBufferPointer() : StaticString< CHAR_TYPE, N_BUFFER_COUNT > , TcharReceiver< RECEIVE_CHAR_TYPE >
  • getButton() : CMenuDrawer
  • GetCache() : LocalCache
  • GetCanonicalFormatEtc() : CDataObject
  • GetCapacity() : CSortedTagJumpList
  • GetCaret() : CEditView , CViewCommander
  • GetCaretLayoutPos() : CCaret
  • GetCaretLogicPos() : CCaret
  • GetCaretShowFlag() : CCaret
  • GetCaretSize() : CCaret
  • GetCaretType() : CommonSetting_General
  • GetCategoryCount() : CFuncLookup
  • GetCharCode() : CDlgCtrlCode
  • GetCharNext() : CNativeA , CNativeW
  • GetCharPrev() : CNativeA , CNativeW
  • GetCloseBtnRect() : CTabWnd
  • GetCode() : COpe
  • GetColorIndex() : CEditView
  • GetColorTypePrev() : CLayout
  • getColumn() : CMemoryIterator
  • getColumnDelta() : CMemoryIterator
  • GetCommander() : CEditView
  • GetContainingTypeLib() : CInterfaceObjectTypeInfo
  • GetCount() : CFileExt , CSortedTagJumpList
  • GetCurPageNum() : CPrintPreview
  • GetCurrent() : CMarkMgr
  • getCurrentChar() : CMemoryIterator
  • GetCurrentFocus() : CEditWnd
  • GetCurrentIdx() : CSMacroMgr
  • getCurrentPos() : CMemoryIterator
  • GetCurrentTextForSearch() : CEditView
  • GetCurrentTextForSearchDlg() : CEditView
  • GetCurrentWord() : CViewParser
  • GetData() : CDialog , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgReplace , CDlgTagJumpList , CDlgTagsMake , CDlgWinSize , CDataObject , CMenuDrawer
  • GetData_KeyHelp() : CPropTypes
  • GetData_p1() : CPropCommon , CPropTypes
  • GetData_p10() : CPropCommon
  • GetData_p2() : CPropCommon , CPropTypes
  • 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
  • GetDataHere() : CDataObject
  • GetDeclarations() : CPPA
  • GetDefaultIcon() : CEditWnd
  • GetDefaultPrinter() : CPrint
  • GetDefaultPrinterInfo() : CPrintPreview
  • GetDefFuncCode() : CKeyBind
  • GetDllEntry() : CInterfaceObjectTypeInfo
  • GetDllName() : CDllHandler , CHtmlHelp , CMigemo , CPPA , CUxTheme
  • GetDllNameInOrder() : CBregexpDll2 , CDllHandler
  • GetDllShareData() : CProcess
  • GetDocLineBottom() : CDocLineMgr
  • GetDocLineTop() : CDocLineMgr
  • GetDocument() : CCaret , CEditApp , CEditView , CEditWnd , CViewCommander
  • GetDocumentation() : CInterfaceObjectTypeInfo
  • GetDocumentAttribute() : CEditDoc
  • GetDocumentLeftClientPointX() : CTextArea
  • GetDocumentLockState() : CEditDoc
  • GetDocumentType() : CEditDoc , CShareData
  • GetDocumentTypeExt() : CShareData
  • GetDocVersionString() : CWSHSite
  • GetDragMode() : CEditWnd
  • GetDragPosOrg() : CEditWnd
  • GetDrawCol() : DispPos
  • GetDrawLine() : DispPos
  • GetDrawPos() : DispPos
  • GetDrawSwitch() : CEditView
  • GetDxArray_AllHankaku() : CTextMetrics
  • GetDxArray_AllZenkaku() : CTextMetrics
  • GetEditNode() : CShareData
  • GetEditNodeAt() : CShareData
  • GetEditorWindowsNum() : CShareData
  • GetEditView() : CEditView , CEditView_Paint , CViewSelect
  • GetEditWindow() : CViewCommander
  • GetEndLayoutPos() : CLayoutMgr
  • GetEOLType() : CEOL
  • GetEOLTypeUni() : CEOL
  • GetEOLTypeUniBE() : CEOL
  • GetExt() : CFileExt
  • GetExtFilter() : CFileExt
  • GetExtHTMLHelp() : CShareData
  • GetExtWinHelp() : CShareData
  • GetFile() : CSMacroMgr
  • GetFileInfo() : CCommandLine , CEditDoc , CMRU
  • GetFileName() : CDlgTagJumpList , CEditDoc
  • GetFilePath() : CDlgTagJumpList , CEditDoc
  • GetFilePathFormat() : CShareData
  • GetFileSize() : CFileLoad
  • GetFileTime() : CFileLoad
  • GetFirstLinrStr() : CDocLineMgr , CLayoutMgr
  • GetFirstPane() : CSplitterWnd
  • GetFontHan() : CViewFont
  • GetFontset() : CEditView
  • GetFreeSize() : CKeyWordSetMgr
  • GetFrom() : CRangeBase< PointType >
  • GetFromPointer() : CRangeBase< PointType >
  • GetFuncCode() : CKeyBind
  • GetFuncCodeAt() : CKeyBind
  • GetFuncDesc() : CInterfaceObjectTypeInfo
  • GetFuncInfoByID() : CSMacroMgr
  • GetFuncInfoByName() : CSMacroMgr
  • GetGrepInfo() : CCommandLine
  • GetGroupId() : CCommandLine , CShareData
  • GetHankakuDx() : CCaret , CTextMetrics
  • GetHankakuDy() : CCaret , CTextMetrics
  • GetHankakuHeight() : CCaret , CTextMetrics
  • GetHankakuWidth() : CTextMetrics
  • GetHelpFilePath() : CEditApp
  • GetHelpIdTable() : CDlgTagJumpList , CDlgTagsMake , CDlgTypeList , CDlgWinSize , CHokanMgr , CDialog , CDlgAbout , CDlgCancel , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgProperty , CDlgReplace , CDlgSameColor
  • GetHwnd() : CDialog , CUrlWnd , CEditView , CEditWnd , EditNode , CWnd
  • GetIconId() : CMenuDrawer
  • GetIcons() : CEditApp
  • GetIDsOfNames() : CInterfaceObjectTypeInfo , CInterfaceObject
  • GetImageIndex() : CTabWnd
  • GetImplTypeFlags() : CInterfaceObjectTypeInfo
  • GetIndent() : CLayout
  • getIndentOffset_LeftSpace() : CLayoutMgr
  • getIndentOffset_Normal() : CLayoutMgr
  • getIndentOffset_Tx2x() : CLayoutMgr
  • getIndex() : CMemoryIterator
  • GetIndex() : CBregexp
  • getIndexDelta() : CMemoryIterator
  • GetIniFileName() : CShareData
  • GetIniFileNameDirect() : CShareData
  • GetInitializeMutex() : CNormalProcess
  • getInstance() : CMigemo , CShareData , CUxTheme
  • GetInstance() : CDllHandler , CViewCommander
  • GetInterval() : CPassiveTimer
  • GetIntVar() : CPPA
  • GetItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemCount() : CFuncLookup , CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemInfo() : CWSHSite
  • GetItemPointer() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemText() : CRecent , CRecentEditNode , CRecentFile , CRecentFolder , CRecentGrepFolder , CRecentReplace , CRecentSearch , CRecentTagjumpKeyword , CRecentGrepFile , CRecentCmd
  • GetKetaOfChar() : CNativeW
  • GetKeyStr() : CKeyBind
  • GetKeyStrList() : CKeyBind
  • GetKeyWord() : CKeyWordSetMgr
  • GetKeyWordCase() : CKeyWordSetMgr
  • GetKeyWordNum() : CKeyWordSetMgr
  • GetLabel() : CMenuDrawer
  • GetLastIndex() : CBregexp
  • GetLastMessage() : CBregexp , CPPA
  • GetLastPane() : CSplitterWnd
  • GetLayoutLineRef() : DispPos
  • GetLCID() : CWSHSite
  • GetLeftWord() : CViewParser
  • GetLen() : CEOL
  • GetLength() : CDocLine , CLayout , IStringRef , CStringRef , CBinaryInputStream
  • GetLengthWithEOL() : CLayout
  • GetLengthWithoutEOL() : CDocLine , CLayout
  • GetLine() : CMarkMgr::CMark
  • getLineComment() : CLineComment
  • getLineCommentPos() : CLineComment
  • GetLineCount() : CDocLineMgr , CLayoutMgr
  • GetLineInfo() : CDocLineMgr
  • GetLineStr() : CDocLineMgr , CLayoutMgr
  • GetLineStrWithoutEOL() : CDocLineMgr
  • GetListBtnRect() : CTabWnd
  • GetListViewItem_FILENAME() : CPropCommon
  • GetLogicLineNo() : CLayout
  • GetLogicOffset() : CLayout
  • GetLogicPos() : CLayout
  • GetMacroFilename() : CShareData
  • GetMainWindow() : CViewCommander , CProcess
  • GetMatchLen() : CBregexp
  • GetMax() : CMarkMgr
  • GetMaxCount() : CRecycledBuffer
  • GetMaxLineKetas() : CLayoutMgr
  • GetMenuDrawer() : CEditWnd
  • GetMenuLabel() : CKeyBind
  • GetMops() : CInterfaceObjectTypeInfo
  • GetName() : CSMacroMgr , CEOL , CFileExt
  • GetNameByType() : CDlgTagJumpList
  • GetNames() : CInterfaceObjectTypeInfo
  • GetNewLineCode() : CEditDoc
  • GetNext() : CMacro
  • GetNextGroupWnd() : CTabWnd
  • GetNextLineCharCode() : CFileLoad
  • GetNextLinrStr() : CDocLineMgr , CLayoutMgr
  • GetNextPane() : CSplitterWnd
  • GetNum() : COpeBlk , CFuncInfoArr
  • GetOldestItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetOpe() : COpeBlk
  • GetOpeBlk() : CViewCommander
  • GetOpenedWindowArr() : CShareData
  • GetOpenedWindowArrCore() : CShareData
  • GetOpenFileNameRecover() : CDlgOpenFile
  • GetOwnerHwnd() : CEditDoc
  • GetPaperName() : CPrint
  • GetPaperSize() : CPrint
  • GetParam() : CSortedTagJumpList
  • GetParentHwnd() : CWnd
  • GetParser() : CEditView
  • GetPath() : CMRUFolder
  • GetPathList() : CMRUFolder , CMRU
  • GetPercent() : CFileLoad
  • GetPOINT() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetPointer() : CharPointerA , CharPointerW
  • GetPos() : CMarkMgr::CMark
  • GetPrevGroupWnd() : CTabWnd
  • GetPrevPane() : CSplitterWnd
  • GetPrintMetrics() : CPrint
  • GetPrintPreviewBarHANDLE() : CPrintPreview
  • GetPrintPreviewBarHANDLE_Safe() : CPrintPreview
  • GetProcessInstance() : CProcess
  • GetProfileDataImp() : CProfile
  • GetProgressHwnd() : CMainStatusBar
  • GetPtr() : IStringRef , CStringRef , CSortedTagJumpList , CDocLine , CLayout
  • GetQueryIfCodeChange() : CommonSetting_File
  • GetRawLength() : CMemory
  • GetRawPtr() : CMemory
  • GetRealVar() : CPPA
  • GetRebarHwnd() : CMainToolBar
  • GetRefTypeInfo() : CInterfaceObjectTypeInfo
  • GetRefTypeOfImplType() : CInterfaceObjectTypeInfo
  • GetRelatedIcon() : CEditWnd
  • GetRestoreBookmarks() : CommonSetting_File
  • GetRestoreCurPosition() : CommonSetting_File
  • GetRightCol() : CTextArea
  • GetRuler() : CEditView
  • GetRulerHeight() : CTextArea
  • GetSakuraFormat() : CClipboard
  • GetSaveFileNameRecover() : CDlgOpenFile
  • GetSearchHwnd() : CMainToolBar
  • GetSearchKey() : CMainToolBar
  • GetSelect() : CViewCommander
  • GetSelectedData() : CEditView
  • GetSelectedParam() : CDlgTagJumpList
  • GetSelectionInfo() : CEditView
  • GetShareData() : CShareData , CProcess , CRecent , CViewCommander
  • GetSizeOfChar() : CShiftJis , CNativeA , CNativeW
  • GetSplitterHwnd() : CEditDoc
  • GetStatusHwnd() : CMainStatusBar
  • GetString() : CBregexp
  • GetStringLen() : CBregexp
  • GetStringLength() : CNativeW , CNativeA
  • GetStringPtr() : CNativeW , CNativeA , CNativeW , CNativeA , CNativeW
  • GetStringPtrOld() : CNativeW
  • GetStringRef() : CLayout , CDocLine
  • GetStringT() : CNativeW
  • GetStringW() : CNativeW , CNativeA
  • GetStrVar() : CPPA
  • GetT() : SysString
  • GetTabName() : CTabWnd
  • GetTabSpace() : CLayoutMgr , CViewCalc
  • GetText() : CClipboard
  • GetTextArea() : CTextDrawer , CEditView
  • GetTextColor() : CTypeSupport
  • GetTextDrawer() : CEditView
  • GetTextMetrics() : CEditView
  • GetTitle() : CSMacroMgr
  • GetTo() : CRangeBase< PointType >
  • GetToolbarHwnd() : CMainToolBar
  • GetTooltipText() : CEditWnd
  • GetTopEditNode() : CShareData
  • GetTopEditWnd() : CShareData
  • GetToPointer() : CRangeBase< PointType >
  • GetTopYohaku() : CTextArea
  • GetTransformFileNameFast() : CShareData
  • GetTrayHwnd() : CControlTray
  • GetType() : CEOL
  • GetTypeAttr() : CInterfaceObjectTypeInfo
  • GetTypeComp() : CInterfaceObjectTypeInfo
  • GetTypeData() : CPropTypes
  • GetTypeFromString() : CEOL
  • GetTypeInfo() : CInterfaceObject
  • GetTypeInfoCount() : CInterfaceObject
  • GetTypeName() : CKeyWordSetMgr
  • GetUnicodeBEValue() : CEOL
  • GetUnicodeValue() : CEOL
  • GetValue() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CEOL
  • GetVarDesc() : CInterfaceObjectTypeInfo
  • GetVersion() : CPPA , COsVersionInfo
  • GetVersionT() : CBregexp
  • GetViewCount() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetViewLeftCol() : CTextArea
  • GetViewTopLine() : CTextArea
  • GetW() : SysString
  • GetWindow() : CWSHSite , CEditApp
  • GetWindowSize() : CTipWnd
  • GetWorkBuffer() : DLLSHAREDATA
  • GetWorkBufferCount() : DLLSHAREDATA
  • GetWrapMode() : CEditView
  • GetX() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetX2() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetY() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetY2() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetZenkakuDx() : CTextMetrics
  • GiveFeedback() : CDropSource
  • gm_aEolInfoStrings : CEOL
  • gm_instance : TSingleInstance< T >
  • gm_nBufSizeDef : CFileLoad
  • gm_pnEolLenArr : CEOL
  • gm_pszEolDataArr : CEOL
  • gm_pszEolNameArr : CEOL
  • gm_pszEolUnicodeBEDataArr : CEOL
  • gm_pszEolUnicodeDataArr : CEOL
  • Good() : CStream
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- h -

  • HandleCommand() : CEditDoc , CMacro , CViewCommander
  • HandleFunction() : CMacro
  • HasNegative() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • HasUnderLine() : CTypeSupport
  • HasValidData() : CClipboard
  • HasWinHelpContentsProblem() : COsVersionInfo
  • Height() : CMyRect
  • Hide() : CHokanMgr , CTipWnd
  • HideCaret_() : CCaret
  • HideOtherWindows() : CTabWnd
  • HitTestSplitter() : CSplitterWnd
  • HokanSearch() : CDicMgr
  • HokanSearchByFile() : CEditView
  • HRESULT() : CUxTheme
  • HSplitOnOff() : CSplitterWnd
  • HtmlHelp : CHtmlHelp
  • HTMLHelpIsSingle() : CShareData
  • hwnd : TABMENU_DATA
  • hwndReferer : TagJump
  • hwndTop : STabGroupInfo
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • 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 >
  • ImplToFile() : CIoBridge
  • Import_KeyHelp() : CPropTypes
  • Import_Regex() : CPropTypes
  • include() : RcCvt
  • IncrementTimerCount() : CEditWnd
  • index : CMigemo
  • Init() : CDllHandler , CDocLineMgr , CEditDoc , CEOL , CFuncLookup , CLayoutMgr , COpeBlk , CProfile , CShareData , CUxTheme , CWnd
  • init() : RcCvt
  • InitAllView() : CEditDoc
  • InitData() : CPropCommon
  • InitDialog_PROP_Macro() : CPropCommon
  • InitDll() : CBregexpDll2 , CDllHandler , CHtmlHelp , CMigemo , CPPA , CUxTheme
  • InitDrawPos() : DispPos
  • Initialize() : CControlProcess , COleLibrary , CNormalProcess , CProcess
  • 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() : CCommandLine , CMacroFactory , TSingleInstance< T >
  • int : CPPA , CBregexpDll2 , CMigemo , CPPA , CEditView
  • INT_PTR() : ComPropSheetInfo
  • IntType : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType > , CStrictRect< INT_TYPE, POINT_TYPE >
  • INVALID_COLOR : CTypeSupport
  • Invoke() : CInterfaceObjectTypeInfo , CInterfaceObject
  • IO_ColorSet() : CShareData
  • IOProfileData() : CDataProfile
  • IOProfileData_WrapInt() : CDataProfile
  • IsActiveApp() : CEditWnd
  • IsAddClipText() : CFuncInfo
  • IsAutoBackupEnabled() : CommonSetting_Backup
  • IsAvailable() : CDllHandler , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • IsBkBitmap() : CEditView
  • IsBomExist() : CFileLoad
  • IsBookMarked() : CDocLine
  • IsBoxSelecting() : CViewSelect
  • IsBracket() : CEditView
  • IsCanceled() : CDlgCancel
  • IsCurrentPositionSelected() : CEditView
  • IsCurrentPositionSelectedTEST() : CEditView
  • IsCurrentPositionURL() : CEditView
  • IsDebugMode() : CCommandLine
  • IsDiffMarked() : CDocLine
  • IsDiffUse() : CDocLineMgr
  • IsDisp() : CTypeSupport
  • ISearchBack() : CEditView
  • ISearchEnter() : CEditView
  • ISearchExec() : CEditView
  • ISearchExit() : CEditView
  • ISearchSetStatusMsg() : CEditView
  • ISearchWordMake() : CEditView
  • IsEditWnd() : CShareData
  • IsEmptyLine() : CDocLine
  • IsEnabled() : CPassiveTimer , MacroRec , CSMacroMgr
  • IsEnablePaste() : CEditDoc
  • IsEnableRedo() : CEditDoc , COpeBuf
  • IsEnableUndo() : COpeBuf , CEditDoc
  • IsEndOfLine() : CLayoutMgr
  • IsEqual() : CMemory , CNativeW
  • IsExistControlProcess() : CProcessFactory
  • IsFatFont() : CTypeSupport
  • IsFavorite() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • IsFileOpenInThisWindow() : CEditDoc
  • IsFilePathAvailable() : CEditDoc
  • IsGrepDlg() : CCommandLine
  • IsGrepMode() : CCommandLine
  • IsImeON() : CEditView
  • IsInPreviewMode() : CEditWnd
  • IsInsMode() : CEditDoc , CEditView
  • IsISearchEnabled() : CEditView
  • IsKinsokuHead() : CLayoutMgr
  • IsKinsokuKuto() : CLayoutMgr
  • IsKinsokuPosHead() : CLayoutMgr
  • IsKinsokuPosKuto() : CLayoutMgr
  • IsKinsokuPosTail() : CLayoutMgr
  • IsKinsokuTail() : CLayoutMgr
  • IsKutoTen() : CLayoutMgr
  • IsLineOne() : CRangeBase< PointType >
  • IsLogicalLineTop() : COutlinePython
  • IsLookAhead() : CBregexp
  • IsModificationForbidden() : CEditDoc
  • IsModified() : CEditDoc
  • IsModify() : CKeyWordSetMgr
  • IsModifyed() : CDocLine
  • IsMouseSelecting() : CViewSelect
  • IsNoWindow() : CCommandLine
  • IsOfnV5() : CDlgOpenFile
  • IsOne() : CRangeBase< PointType >
  • IsOverflow() : CSortedTagJumpList
  • IsPathOpened() : CShareData
  • IsPrivateSettings() : CShareData
  • IsReadingMode() : CProfile
  • IsReadOnly() : CCommandLine , CEditDoc
  • IsReady() : CMacroManagerBase
  • IsRemovableDrive() : CMRU
  • IsRunning() : CPPA
  • IsSameGroup() : CShareData
  • IsSaveOk() : CSMacroMgr
  • IsSearchString() : CEditView
  • IsStartingControlProcess() : CProcessFactory
  • IsTextSelected() : CViewSelect
  • IsTextSelecting() : CViewSelect
  • IsThemeActive() : CUxTheme
  • IsTopEditWnd() : CShareData
  • IsUTF7Direct() : CUtf7
  • IsValid() : CMarkMgr::CMark , STabGroupInfo , CRangeBase< PointType >
  • 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 Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


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
  • y
  • 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
  • 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
  • PCHAR : CMemory
  • pcmemDeleted : DocLineReplaceArg , LayoutReplaceArg
  • pData : StringBufferW , StringBufferA
  • pInsData : LayoutReplaceArg , DocLineReplaceArg
  • point : TagJump
  • PointType : CStrictRect< INT_TYPE, POINT_TYPE >
  • PopTagJump() : CShareData
  • PopupWinList() : CEditWnd
  • Pos2FuncCode() : CFuncLookup
  • Pos2FuncName() : CFuncLookup
  • PostMessageToAllEditors() : CShareData
  • PostprocessCommand_hokan() : CEditView
  • PPA_AddRealObj : CPPA
  • PPA_Execute : CPPA
  • PPA_GetArgBStr : CPPA
  • PPA_GetArgReal : CPPA
  • PPA_GetArgStr() : CPPA
  • PPA_GetBStrVar : CPPA
  • PPA_GetRealVar : CPPA
  • PPA_GetStrVar() : CPPA
  • PPA_GetVersion : CPPA
  • PPA_IsRunning : CPPA
  • PPA_SetDeclare : CPPA
  • PPA_SetDefProc : CPPA
  • PPA_SetErrProc : CPPA
  • PPA_SetFinishProc : CPPA
  • PPA_SetIntFunc : CPPA
  • PPA_SetRealFunc : CPPA
  • PPA_SetRealObj : CPPA
  • PPA_SetRealVar : CPPA
  • PPA_SetStrFunc : CPPA
  • PRECONVERTSTRING : CEditView
  • PreprocessCommand_hokan() : CEditView
  • PrevGroup() : CTabWnd
  • PreviCreateWindow() : CWnd
  • PrevOrNextWord() : CDocLineMgr , CLayoutMgr
  • PrevValid() : CMarkMgr
  • PrevWord() : CLayoutMgr
  • Print_DrawLine() : CPrintPreview
  • PrintClose() : CPrint
  • PrintDlg() : CPrint
  • PrintEndPage() : CPrint
  • PrintMenubarMessage() : CEditWnd
  • PrintOpen() : CPrint
  • PrintPreviewBar_DlgProc() : CPrintPreview
  • PrintPreviewModeONOFF() : CEditWnd
  • PrintSelectionInfoMsg() : CViewSelect
  • PrintStartPage() : CPrint
  • proc : CDllHandler::ImportTable
  • Proc_HtmlHelp : CHtmlHelp
  • Proc_migemo_get_operator() : CMigemo
  • Proc_migemo_open() : CMigemo
  • Proc_migemo_query() : CMigemo
  • Proc_migemo_setproc_char2int : CMigemo
  • Proc_migemo_setproc_int2char : CMigemo
  • ProcessCommand_isearch() : CEditView
  • ProcSearchBox() : CMainToolBar
  • profile_to_value() : CDataProfile
  • PropTypesKeyHelp() : CPropTypes
  • PropTypesRegex() : CPropTypes
  • pszName : TYPE_NAME
  • pszSubAppName : CUxTheme
  • pszSubIdList : CUxTheme
  • PtInRect() : CStrictRect< INT_TYPE, POINT_TYPE >
  • ptLayoutNew : LayoutReplaceArg
  • ptNewPos : DocLineReplaceArg
  • push_back() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • PushTagJump() : CShareData
  • pvReserved : OPENFILENAMEZ
  • PWCHAR : CNativeW
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- q -

  • QueryContinueDrag() : CDropSource
  • QueryGetData() : CDataObject
  • QueryInterface() : CWSHSite , CInterfaceObject , ImplementsIUnknown< Base > , CYbInterfaceImpl< BASEINTERFACE >
  • QueryInterfaceImpl() : CYbInterfaceBase
  • QuotedPrintable_Decode() : CJis
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- r -

  • RcCvt() : RcCvt
  • Read() : CFileLoad , CBinaryInputStream , CRunningTimer
  • ReadBufEmpty() : CFileLoad
  • ReadFile() : CDocLineMgr
  • ReadLine() : CFileLoad
  • ReadLineW() : CTextInputStream
  • ReadOneline() : CProfile
  • ReadProfile() : CProfile
  • ReadRuleFile() : CEditDoc
  • ReadyCommands() : CWSHMacroManager
  • RearrangeKeywordSet() : CPropTypes
  • Receive() : Variant
  • ReceiveType : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • Redraw() : CDlgFuncList , CEditView
  • RedrawAll() : CEditView
  • RedrawInactivePane() : CEditWnd
  • Refresh() : CTabWnd
  • RefreshList() : CDlgFavorite
  • RefreshListOne() : CDlgFavorite
  • RegexIsKeyword() : CRegexKeyword
  • RegexKakomiCheck() : CPropTypes
  • RegexKeyCheckSyntax() : CRegexKeyword
  • RegexKeyCompile() : CRegexKeyword
  • RegexKeyInit() : CRegexKeyword
  • RegexKeyLineStart() : CRegexKeyword
  • RegexKeySetTypes() : CRegexKeyword
  • Regist() : CommonValue< T >
  • Register_DropTarget() : CDropTarget
  • RegisterCreator() : CMacroFactory
  • RegisterEntries() : CDllHandler
  • RegisterWC() : CWnd
  • Release() : CWSHSite , ImplementsIUnknown< Base >
  • ReleaseCompileBuffer() : CBregexp
  • ReleaseFuncDesc() : CInterfaceObjectTypeInfo
  • ReleaseTypeAttr() : CInterfaceObjectTypeInfo
  • ReleaseVarDesc() : CInterfaceObjectTypeInfo
  • ReloadAutoSaveParam() : CEditDoc
  • ReloadCurrentFile() : CEditDoc
  • RenewItemState() : CDlgWinSize
  • ReorderTab() : CShareData , CTabWnd
  • Replace() : CBregexp , CNativeA , CNativeW
  • Replace_j() : CNativeA
  • ReplaceData() : CDocLineMgr
  • ReplaceData_CEditView() : CEditView
  • ReplaceData_CLayoutMgr() : CLayoutMgr
  • RequestCloseAllEditor() : CShareData
  • ReserveMethods() : CInterfaceObject
  • Reset() : CPassiveTimer , CRunningTimer , SSearchOption
  • ResetAllBookMark() : CDocLineMgr
  • ResetAllDiffMark() : CDocLineMgr
  • ResetAllFavorite() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ResetAllKeyWordSet() : CKeyWordSetMgr
  • ResetAllModifyFlag() : CDocLineMgr
  • ResetContents() : CMenuDrawer
  • ResetDrawCol() : DispPos
  • ResetFavorite() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ResetGroupId() : CShareData
  • resId : ComPropSheetInfo
  • resize() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • RestorePhysPosOfAllView() : CEditWnd
  • Revoke_DropTarget() : CDropTarget
  • RewindColors() : CTypeSupport
  • RewindFont() : CTypeSupport
  • RewindPen() : CTypeSupport
  • right : CStrictRect< INT_TYPE, POINT_TYPE >
  • rsv1 : bregexp
  • RTrimPrevLine() : CEditView
  • Run() : CProcess
  • rxp : CBregexpDll2
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- s -

  • Save() : CMacro , CSMacroMgr , CommonValueInfo
  • SaveFile() : CEditDoc
  • SaveFileDialog() : CEditDoc
  • SaveKeyMacro() : CKeyMacroMgr
  • SavePhysPosOfAllView() : CEditWnd
  • SaveShareData() : CShareData
  • ScanEncoding() : CESI
  • ScanLine() : CCppPreprocessMng
  • scanNext() : CMemoryIterator
  • ScanNormal() : COutlinePython
  • ScanString() : COutlinePython
  • ScrollAtH() : CEditView
  • ScrollAtV() : CEditView
  • ScrollByH() : CEditView
  • ScrollByV() : CEditView
  • sDelRange : DocLineReplaceArg , LayoutReplaceArg
  • Search() : CDicMgr , CHokanMgr
  • SearchBestTag() : CDlgTagJumpList
  • SearchBookMark() : CDocLineMgr
  • SearchBracket() : CEditView
  • SearchBracketBackward() : CEditView
  • SearchBracketBackward2() : CEditView
  • SearchBracketForward() : CEditView
  • SearchBracketForward2() : CEditView
  • SearchDiffMark() : CDocLineMgr
  • SearchIntArr() : CPropCommon
  • SearchKeyWord2() : CKeyWordSetMgr
  • SearchLineByLayoutY() : CLayoutMgr
  • SearchNextWordPosition() : CWordParse
  • SearchString() : CDocLineMgr
  • SearchWord() : CDocLineMgr , CLayoutMgr
  • SeekEnd() : CStream
  • SeekSet() : CStream
  • SelectBaseDir_Macro() : CPropCommon
  • SelectBeginBox() : CViewSelect
  • SelectBeginNazo() : CViewSelect
  • SelectBeginWord() : CViewSelect
  • SelectColor() : CPropCommon , CPropTypes
  • SelectEnd() : CViewSelect
  • SelectFolder() : CDlgTagsMake
  • SelectFont() : CEditDoc
  • SendMessageToAllEditors() : CShareData
  • SendStatusMessage() : CEditView , CEditWnd
  • SendStatusMessage2() : CEditView , CMainStatusBar
  • SendStatusMessage2IsEffective() : CMainStatusBar
  • Separate() : CTabWnd
  • SeparateGroup() : CShareData , CTabWnd
  • Set() : CMySize , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType >
  • set() : CMyString
  • Set() : CMyPoint
  • SetActivePane() : CEditWnd , CSplitterWnd
  • SetAlertIfFileNotExist() : CommonSetting_File
  • SetAreaLeft() : CTextArea
  • SetAreaTop() : CTextArea
  • SetAutoBackupInterval() : CommonSetting_Backup
  • SetAutoMIMEdecode() : CommonSetting_File
  • SetBackupCount() : CommonSetting_Backup
  • SetBackupExtChar() : CommonSetting_Backup
  • SetBackupOpt() : CommonSetting_Backup
  • SetBackupType() : CommonSetting_Backup
  • SetBackupTypeAdv() : CommonSetting_Backup
  • SetBkColor() : CTypeSupport
  • SetBookMark() : CDocLine
  • SetBookMarks() : CDocLineMgr
  • SetBoxSelect() : CViewSelect
  • SetBracketPairPos() : CEditView
  • SetCache() : LocalCache
  • SetCaretLayoutPos() : CCaret
  • SetCaretLogicPos() : CCaret
  • SetCaretSize() : CCaret
  • SetCaretType() : CommonSetting_General
  • SetCategory2Combo() : CFuncLookup
  • SetChildWndArr() : CSplitterWnd
  • SetColors() : CTypeSupport
  • SetColorTypePrev() : CLayout
  • SetCurrentColor() : CEditView
  • SetCurrentFocus() : CEditWnd
  • SetCurrentIdx() : CSMacroMgr
  • SetData() : CDialog , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgProperty , CDlgReplace , CDlgTagJumpList , CDlgTagsMake , CDlgTypeList , CDlgWinSize , CDataObject
  • SetData_KeyHelp() : CPropTypes
  • SetData_p1() : CPropCommon , CPropTypes
  • SetData_p10() : CPropCommon
  • SetData_p2() : CPropCommon , CPropTypes
  • 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
  • SetDebugModeOFF() : CEditWnd
  • SetDebugModeON() : CEditWnd
  • SetDeclare() : CPPA
  • SetDefine() : CPPA
  • SetDefProc() : CPPA
  • SetDiffMark() : CDocLine
  • SetDiffMarkRange() : CDocLineMgr
  • SetDocumentIcon() : CEditDoc
  • SetDocumentType() : CEditDoc
  • SetDocumentTypeWhenCreate() : CEditWnd
  • SetDragMode() : CEditWnd
  • SetDragPosOrg() : CEditWnd
  • SetDrawSwitch() : CEditView
  • setErr() : RcCvt
  • SetErrProc() : CPPA
  • SetFavorite() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • SetFileName() : CDlgTagJumpList
  • SetFilePath() : CEditDoc
  • SetFinishProc() : CPPA
  • SetFocusSearchBox() : CMainToolBar
  • SetFocusToPrintPreviewBar() : CPrintPreview
  • SetFont() : CEditView , CTypeSupport
  • SetFooter() : CPrintPreview
  • SetFrom() : CRangeBase< PointType >
  • SetFromX() : CRangeBase< PointType >
  • SetFromY() : CRangeBase< PointType >
  • SetGrepResult() : CEditView
  • SetHankakuDx() : CTextMetrics
  • SetHankakuDy() : CTextMetrics
  • SetHankakuHeight() : CTextMetrics
  • SetHankakuWidth() : CTextMetrics
  • SetHeader() : CPrintPreview
  • SetIMECompFormFont() : CEditView
  • SetIMECompFormPos() : CEditView
  • SetImeMode() : CEditDoc
  • SetInsMode() : CEditDoc , CEditView
  • SetInterval() : CPassiveTimer
  • SetIntFunc() : CPPA
  • SetIntObj() : CPPA
  • SetIntVar() : CPPA
  • SetKeyNameArrVal() : CShareData
  • SetKeyword() : CDlgTagJumpList
  • SetKeyWordArr() : CKeyWordSetMgr
  • SetKeyWordCase() : CKeyWordSetMgr
  • SetLayoutInfo() : CLayoutMgr
  • SetLayoutLineRef() : DispPos
  • SetLine() : CRangeBase< PointType >
  • SetListItem() : CFuncLookup
  • SetListVB() : CDlgFuncList
  • SetListViewItem_FILENAME() : CPropCommon
  • SetLTRB() : CMyRect
  • SetMacro2List_Macro() : CPropCommon
  • SetMainWindow() : CProcess
  • SetMax() : CMarkMgr
  • SetModified() : CEditDoc
  • SetModifyFlg() : CDocLine
  • SetNativeData() : CNativeA , CNativeW
  • SetNewLineCode() : CEditDoc
  • SetNext() : CMacro
  • SetNoModified() : COpeBuf
  • SetOpeBlk() : CViewCommander
  • SetParentCaption() : CEditView , CEditDoc
  • SetPosition() : CMarkMgr::CMark
  • SetPreviewFontHan() : CPrintPreview
  • SetPreviewFontZen() : CPrintPreview
  • SetPrintSetting() : CPrintPreview
  • SetProc() : CPPA
  • SetProfileDataImp() : CProfile
  • SetQueryIfCodeChange() : CommonSetting_File
  • SetRawData() : CMemory
  • SetReadingMode() : CProfile
  • SetReadOnly() : CEditDoc
  • SetRealFunc() : CPPA
  • SetRealObj() : CPPA
  • SetRealVar() : CPPA
  • SetReconvertStruct() : CEditView
  • SetRedrawFlag() : CRuler
  • SetRegexpVersion() : CPropCommon
  • SetRestoreBookmarks() : CommonSetting_File
  • SetRestoreCurPosition() : CommonSetting_File
  • SetSelectArea() : CViewSelect
  • SetSelectionFromReonvert() : CEditView
  • SetSolidPen() : CTypeSupport
  • SetSource() : CPPA
  • SetStatusText() : CMainStatusBar
  • SetStrFunc() : CPPA
  • SetString() : CNativeW , CNativeA , CNativeW
  • SetStringNew() : CNativeA
  • SetStringOld() : CNativeW
  • SetStringT() : CNativeW , CNativeA , CNativeW
  • SetStringW() : CNativeA , CNativeW
  • SetStrObj() : CPPA
  • SetStrVar() : CPPA
  • SetTBBUTTONVal() : CMenuDrawer
  • SetText() : CDataObject , CClipboard
  • SetTextColor() : CTypeSupport
  • SettingInitialize() : CPrint
  • SetTo() : CRangeBase< PointType >
  • SetToolBarImages() : CImageListMgr
  • SetTopYohaku() : CTextArea
  • SetToX() : CRangeBase< PointType >
  • SetToY() : CRangeBase< PointType >
  • SetTraceOutSource() : CShareData
  • SetTree() : CDlgFuncList
  • SetTreeCpp() : CDlgFuncList
  • SetTreeJava() : CDlgFuncList
  • SetType() : CEOL
  • SetTypeData() : CPropTypes
  • SetTypeName() : CKeyWordSetMgr
  • SetValue() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • SetViewLeftCol() : CTextArea
  • SetViewTopLine() : CTextArea
  • SetWindowIcon() : CEditWnd
  • SetWindowTheme() : CUxTheme
  • SetWritingMode() : CProfile
  • SetX() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • SetXs() : CRangeBase< PointType >
  • SetXYWH() : CMyRect
  • SetY() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • sGrepSearchOption : GrepInfo
  • 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_() : CCaret
  • ShowEditCaret() : CCaret
  • ShowFuncHelp() : CEditApp
  • ShowHideWindow() : CTabWnd
  • ShowHokanMgr() : CEditView
  • ShowKeywordHelp() : CEditView
  • ShowTip() : CHokanMgr
  • size() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • SizeBox_ONOFF() : CFuncKeyWnd
  • SJISToEUC() : CEuc
  • SJIStoJIS() : CJis
  • SJISToUnicode() : CShiftJis
  • sKey1 : _SORTTABLE
  • sKey2 : _SORTTABLE
  • SmartIndent_CPP() : CEditView
  • SortKeyWord() : CKeyWordSetMgr
  • SortListView() : CDlgFuncList
  • SortTree() : CDlgFuncList
  • SPACEToTAB() : CNativeA
  • SplitBoxOnOff() : CEditView
  • splitctr : bregexp
  • splitp : bregexp
  • SSearchOption() : SSearchOption
  • sStr : KAKKO_T
  • STabGroupInfo() : STabGroupInfo
  • StartControlProcess() : CProcessFactory
  • startp : bregexp
  • StartTimer() : CDlgTagJumpList
  • STATE_CONTINUE : COutlinePython
  • STATE_NORMAL : COutlinePython
  • STATE_STRING : COutlinePython
  • StaticString() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • stdError() : CPPA
  • stdFinishProc() : CPPA
  • stdIntFunc() : CPPA
  • STDMETHOD_() : CYbInterfaceImpl< BASEINTERFACE >
  • stdProc() : CPPA
  • stdStrFunc() : CPPA
  • stdStrObj() : CPPA
  • StopTimer() : CDlgTagJumpList
  • strerr : RcCvt
  • string : CMigemo
  • StringBufferA() : StringBufferA
  • StringBufferW() : StringBufferW
  • strSectionName : CProfile::Section
  • StrSJIStoJIS() : CJis
  • SubclassWindow() : CUrlWnd
  • SuperIntType : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • 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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- t -

  • TabListMenu() : CTabWnd
  • TABToSPACE() : CNativeA
  • TabWindowNotify() : CTabWnd
  • TabWnd_ActivateFrameWindow() : CTabWnd
  • TabWndDispatchEvent() : CTabWnd
  • TagJumpInfo : CSortedTagJumpList
  • TagJumpSub() : CEditView
  • target : CBregexpDll2
  • targetbeg : CBregexpDll2
  • targetendp : CBregexpDll2
  • TcharReceiver() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • Terminate() : CControlProcess , CNormalProcess , CProcess , CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • TerminateApplication() : CControlTray
  • test : LocalCache
  • TestWriteQuit() : CProcessFactory
  • TextArea_OnSize() : CTextArea
  • TGWRAP_FULL : CEditView
  • TGWRAP_NONE : CEditView
  • TGWRAP_PROP : CEditView
  • TGWRAP_WINDOW : CEditView
  • Timer_ONOFF() : CEditWnd , CFuncKeyWnd
  • TOGGLE_WRAP_ACTION : CEditView
  • ToLower() : CNativeA
  • ToolBarOwnerDraw() : CMainToolBar
  • top : CStrictRect< INT_TYPE, POINT_TYPE >
  • ToUpper() : CNativeA
  • ToZenkaku() : CNativeA
  • TraceOut() : CShareData
  • TransformFileName_MakeCache() : CShareData
  • TranslateCommand_grep() : CEditView
  • TranslateCommand_isearch() : CEditView
  • transtblp : bregexp
  • TrayMessage() : CControlTray
  • TSingleInstance() : TSingleInstance< T >
  • tstring : CProfile , CDataProfile
  • Type : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >
  • type : CSortedTagJumpList::tagjump_info_t
  • TYPE_ASTR : CommonValueInfo
  • TYPE_UNKNOWN : CommonValueInfo
  • TYPE_WSTR : CommonValueInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- u -

  • UINT : ComPropSheetInfo
  • Uni : UnicodeInfo_t
  • UniBe : UnicodeInfo_t
  • UnicodeBEToUnicode() : CUnicodeBe
  • UnicodeToCode() : CShiftJis , CUnicode , CCodeBase , CUnicodeBe , CUtf7 , CEuc , CUtf8 , CJis
  • UnicodeToEUC() : CEuc
  • UnicodeToJIS() : CJis
  • UnicodeToSJIS() : CShiftJis
  • UnicodeToUnicode() : CUnicode
  • UnicodeToUnicodeBE() : CUnicodeBe
  • UnicodeToUTF7() : CUtf7
  • UnicodeToUTF8() : CUtf8
  • UnInitialize() : COleLibrary
  • UnloadAll() : CSMacroMgr
  • UnLock() : CCaretUnderLine
  • Unlock() : CMutex
  • UnlockDocumentType() : CEditDoc
  • Unregister() : CMacroFactory
  • Update() : CTextMetrics
  • UpdateAreaMetrics() : CTextArea
  • UpdateBackupFile() : CPropCommon
  • UpdateData() : CDlgTagJumpList
  • UpdateFont() : CViewFont
  • UpdateKeyWord() : CKeyWordSetMgr
  • UpdateView() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • UpperLeft() : CMyRect , CStrictRect< INT_TYPE, POINT_TYPE >
  • UrlWndProc() : CUrlWnd
  • UTF7ToUnicode() : CUtf7
  • UTF8ToUnicode() : CUtf8
  • UUDECODE() : CConvert_UuDecode
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- v -

  • Value : VS_VERSION_INFO_HEAD
  • value_to_profile() : CDataProfile
  • Variant() : Variant
  • VHSplitOnOff() : CSplitterWnd
  • ViewDiffInfo() : CEditView
  • Views_DisableSelectArea() : CEditWnd
  • Views_DispatchEvent() : CEditWnd
  • Views_Redraw() : CEditWnd
  • Views_RedrawAll() : CEditWnd
  • vKey : ctrl_info_t
  • void() : CPPA , CMigemo , CPPA , CBregexpDll2 , CPPA , CMigemo
  • VSplitOnOff() : CSplitterWnd
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- w -

  • WaitForInitializedControlProcess() : CProcessFactory
  • WatchUpdate : CEditDoc
  • WhatKindOfChar() : CWordParse
  • WhereCurrentWord() : CDocLineMgr , CLayoutMgr
  • WhereCurrentWord_2() : CWordParse
  • Width() : CMyRect
  • WindowTopMost() : CEditWnd
  • WinListMenu() : CEditWnd
  • wLength : VS_VERSION_INFO_HEAD
  • wlength() : CMyString
  • WPARAM : ComPropSheetInfo
  • wpTop : STabGroupInfo
  • Write() : CFileWrite , CBinaryOutputStream
  • WriteF() : CTextOutputStream
  • WriteFile() : CDocLineMgr , CProfile
  • WriteInt() : CTextOutputStream
  • WriteProfile() : CProfile
  • WriteString() : CTextOutputStream
  • WriteSz() : CFileWrite
  • WriteTrace() : CRunningTimer
  • wstring : CProfile , CDataProfile
  • WU_NONE : CEditDoc
  • WU_NOTIFY : CEditDoc
  • WU_QUERY : CEditDoc
  • wValueLength : VS_VERSION_INFO_HEAD
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- x -

  • x : SLogicPoint , SLayoutPoint
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • y
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- y -

  • y : SLogicPoint , SLayoutPoint
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 列挙型

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数

  • CaptureSrc : CTabWnd
  • DragState : CTabWnd
  • EIconClickStatus : CEditWnd
  • enum_CESI_public_constants : CESI
  • enumFileLoadMode : CFileLoad
  • EType : CommonValueInfo
  • LID_SKH : CEditView
  • Option : CBregexp
  • Pattern : CBregexp
  • TOGGLE_WRAP_ACTION : CEditView
  • WatchUpdate : CEditDoc
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • TYPE_ASTR : CommonValueInfo
  • TYPE_UNKNOWN : CommonValueInfo
  • TYPE_WSTR : CommonValueInfo

- w -

  • WU_NONE : CEditDoc
  • WU_NOTIFY : CEditDoc
  • WU_QUERY : CEditDoc
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- _ -

  • _AddData() : CMemory
  • _AdjustInMonitor() : CEditWnd
  • _AppendSz() : CMemory
  • _CreateMainWindow() : CEditWnd
  • _DebugGetPointerRef() : CMemory
  • _DrawEOL() : CTextDrawer
  • _DrawRulerCaret() : CRuler
  • _DrawTabArrow() : CTextDrawer
  • _Empty() : CMemory
  • _ExistKinsokuHead() : CLayoutMgr
  • _ExistKinsokuKuto() : CLayoutMgr
  • _forward() : CharPointerA , CharPointerW
  • _get() : CharPointerA , CharPointerW
  • _GetColorIdx() : CTextDrawer
  • _GetMemory() : CNative
  • _GetRaw() : LocalCache
  • _GetSizeRef() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • _GetTabGroupInfo() : CEditWnd
  • _GetWindowRectForInit() : CEditWnd
  • _Insert() : CDocLineMgr
  • _PushBottom() : CDocLineMgr
  • _Recovery() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • _SetDragMode() : CEditView
  • _SetHwnd() : CDialog , CWnd
  • _SetRawLength() : CMemory
  • _SetStringLength() : CNativeW
  • _work_itow() : CDataProfile
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- j -

  • JIStoSJIS() : CJis
  • JISToUnicode() : CJis
  • JoinNext() : CTabWnd
  • JoinPrev() : CTabWnd
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- k -

  • Key2Command() : CDlgFuncList
  • KeyProc() : CHokanMgr
  • KeySearchCore() : CEditView
  • KeyWordHelpSearchDict() : CEditView
  • KeyWordReAlloc() : CKeyWordSetMgr
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- l -

  • LayoutFuncKey() : CEditWnd
  • LayoutStatusBar() : CEditWnd
  • LayoutTab() : CTabWnd
  • LayoutTabBar() : CEditWnd
  • LayoutToLogic() : CLayoutMgr
  • LayoutToolBar() : CEditWnd
  • Length() : CMRU , CMRUFolder , SysString
  • LineColmnToIndex() : CViewCalc
  • LineColmnToIndex2() : CViewCalc
  • LineIndexToColmn() : CViewCalc
  • Load() : CSMacroMgr
  • LoadKeyMacro() : CKeyMacroMgr , CMacroManagerBase , CWSHMacroManager , CPPAMacroMgr
  • LoadLibrary() : CDllHandler
  • LoadShareData() : CShareData
  • LocalCache() : LocalCache
  • Lock() : CMutex , CCaretUnderLine
  • LockDocumentType() : CEditDoc
  • LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • LogicToLayout() : CLayoutMgr
  • LowerRight() : CStrictRect< INT_TYPE, POINT_TYPE > , CMyRect
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- m -

  • MainLoop() : CControlProcess , CNormalProcess , CProcess
  • 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() : CBregexp , CLineComment
  • Match_CommentFrom() : CBlockComment
  • Match_CommentTo() : CBlockComment
  • Match_Quote() : CLayoutMgr
  • MeasureItem() : CMenuDrawer
  • MemBASE64_Decode() : CConvert_Base64Decode
  • MemBASE64_Encode() : CUtf7
  • MemJIStoSJIS() : CJis
  • MemSJIStoJIS() : CJis
  • MemSJISToUnicode() : CShiftJis
  • MessageLoop() : CControlTray , CEditWnd
  • migemo_close() : CMigemo
  • migemo_get_operator() : CMigemo
  • migemo_is_enable() : CMigemo
  • migemo_load_a() : CMigemo
  • migemo_load_all() : CMigemo
  • migemo_load_w() : CMigemo
  • migemo_open() : CMigemo
  • migemo_query() : CMigemo
  • migemo_release() : CMigemo
  • migemo_set_operator() : CMigemo
  • migemo_setproc_char2int() : CMigemo
  • migemo_setproc_int2char() : CMigemo
  • MoveCursor() : CCaret
  • MoveCursorProperly() : CCaret
  • MoveCursorSelecting() : CEditView
  • MoveCursorToClientPoint() : CCaret
  • MoveItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • MoveLeft() : CTabWnd
  • MoveListViewItem_FILENAME() : CPropCommon
  • MoveRight() : CTabWnd
  • MY_RegQuerVal() : CShareData
  • MY_RegSetVal() : CShareData
  • MyAppendMenu() : CMenuDrawer
  • MyAppendMenuSep() : CMenuDrawer
  • MyBitBlt() : CImageListMgr
  • MyEnumFontFamProc() : CPrintPreview
  • MyGetClipboardData() : CEditView
  • MyGetDateFormat() : CShareData
  • MyGetTimeFormat() : CShareData
  • MySetClipboardData() : CEditView
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- n -

  • NextGroup() : CTabWnd
  • NextValid() : CMarkMgr
  • NextWord() : CLayoutMgr
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- o -

  • Offset() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • OffsetLogicLineNo() : CLayout
  • OffsetViewTopLine() : CTextArea
  • OnActivate() : CDlgFavorite , CDialog
  • OnBnClicked() : CDlgFavorite , CHokanMgr , CDlgFileUpdateQuery , CDialog , CDlgFind , CDlgFuncList , CDlgAbout , CDlgGrep , CDlgJump , CDlgCancel , CDlgKeywordSelect , CDlgPrintPage , CDlgCompare , CDlgPrintSetting , CDlgProperty , CDlgCtrlCode , CDlgReplace , CDlgSameColor , CDlgDiff , CDlgTagJumpList , CDlgTagsMake , CDlgExec , CDlgTypeList , CDlgWinSize
  • OnCaptionTimer() : CEditWnd
  • OnCaptureChanged() : CTabWnd
  • OnCbnEditChange() : CDialog , CDlgTagJumpList
  • OnCbnSelChange() : CDialog , CDlgDiff , CDlgFuncList , CDlgJump , CDlgPrintSetting , CDlgTagJumpList , CHokanMgr
  • OnChangePrintSetting() : CPrintPreview
  • OnChangeSetting() : CEditDoc , CEditView
  • OnChangeSettingType() : CDlgPrintSetting
  • OnCharToItem() : CDialog
  • OnCheckAntialias() : CPrintPreview
  • OnClose() : CEditWnd
  • OnCmbDropdown() : CDlgOpenFile
  • OnCommand() : CControlTray , CDialog , CEditWnd , CFuncKeyWnd
  • OnContextMenu() : CDialog
  • OnDestroy() : CControlTray , CDialog , CDlgFuncList , CDlgPrintSetting , CFuncKeyWnd , CHokanMgr , CTabWnd
  • OnDeviceChange() : CDialog
  • OnDrawItem() : CDialog , CDlgSameColor , CTabWnd
  • OnDropFiles() : CEditWnd
  • OnEditChange() : CDialog , CDlgDiff
  • OnEditTimer() : CEditWnd
  • OnEnterScript() : CWSHSite
  • OnFileClose() : CEditDoc
  • OnFileDropdown_Macro() : CPropCommon
  • OnHelp() : CPropCommon , CPropTypes
  • OnHScroll() : CEditView , CEditWnd , CPrintPreview
  • OnInitDialog() : CDialog , CDlgAbout , CDlgCancel , CDlgCtrlCode , CDlgFavorite , CDlgFileUpdateQuery , CDlgFuncList , CDlgGrep , CDlgKeywordSelect , CDlgPrintSetting , CDlgReplace , CDlgSameColor , CDlgTagJumpList , CDlgWinSize , CHokanMgr
  • OnJump() : CDlgFuncList
  • OnKeyDown() : CDialog , CHokanMgr
  • OnKillFocus() : CDialog , CEditView , CHokanMgr
  • OnLbnDblclk() : CDialog , CDlgTypeList , CHokanMgr
  • OnLBUTTONDBLCLK() : CEditView
  • OnLButtonDblClk() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLBUTTONDOWN() : CEditView
  • OnLButtonDown() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLBUTTONUP() : CEditView
  • OnLButtonUp() : CEditWnd , CSplitBoxWnd , CSplitterWnd , CTabWnd
  • OnLeaveScript() : CWSHSite
  • OnMBUTTONDOWN() : CEditView
  • OnMeasureItem() : CTabWnd
  • OnMenuChar() : CMenuDrawer
  • OnMouseMove() : CTabWnd
  • OnMOUSEMOVE() : CEditView
  • OnMouseMove() : CEditWnd , CPrintPreview , CSplitBoxWnd , CSplitterWnd
  • OnMOUSEWHEEL() : CEditView
  • OnMouseWheel() : CEditWnd , CPrintPreview
  • OnMove() : CDialog , CEditView
  • OnNcDestroy() : CWnd
  • OnNcLButtonDown() : CEditWnd
  • OnNcLButtonUp() : CEditWnd
  • OnNewEditor() : CControlTray
  • OnNotify() : CDialog , CDlgCtrlCode , CDlgFavorite , CDlgFuncList , CDlgJump , CDlgPrintSetting , CDlgTagJumpList , CTabWnd
  • OnPaint() : CEditView , CEditWnd , CPrintPreview , CSplitBoxWnd , CSplitterWnd , CTabWnd , CTipWnd
  • OnPopupHelp() : CDialog
  • OnPreviewGoDirectPage() : CPrintPreview
  • OnPreviewGoNextPage() : CPrintPreview
  • OnPreviewGoPage() : CPrintPreview
  • OnPreviewGoPreviousPage() : CPrintPreview
  • OnPreviewZoom() : CPrintPreview
  • OnPrint() : CPrintPreview
  • OnPrintPageSetting() : CEditWnd , CPrintPreview
  • OnRBUTTONDOWN() : CEditView
  • OnRButtonDown() : CTabWnd
  • OnRBUTTONUP() : CEditView
  • OnScriptError() : CWSHSite
  • OnScriptTerminate() : CWSHSite
  • OnSelChangeListColors() : CDlgSameColor
  • OnSetFocus() : CEditView
  • OnSize() : CDialog , CDlgFuncList , CEditView , CEditWnd , CFuncKeyWnd , CHokanMgr , CPrintPreview , CSplitterWnd , CTabWnd
  • 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() : CDlgPrintSetting , CDialog , CDlgTagJumpList , CEditView , CEditWnd , CFuncKeyWnd , CTabWnd
  • OnToolbarTimer() : CMainToolBar
  • OnVKeyToItem() : CDialog
  • OnVScroll() : CEditView , CEditWnd , CPrintPreview
  • OnXLBUTTONDOWN() : CEditView
  • OnXRBUTTONDOWN() : CEditView
  • Open() : CTextInputStream , CFuncKeyWnd , CTabWnd , CStream
  • OPEN_ExtFromtoExt() : CEditView
  • OpenDocumentWhenCreate() : CEditWnd
  • OpenFile() : CEditDoc
  • OpenFileDialog() : CEditDoc
  • OpenNewEditor() : CControlTray
  • OpenNewEditor2() : CControlTray
  • OpenPropertySheet() : CEditDoc
  • OpenPropertySheetTypes() : CEditDoc
  • operator *() : CharPointerA , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CharPointerW
  • operator *=() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator bool() : CClipboard , CStream
  • operator CastIntegerType() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator CHAR_TYPE *() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • operator const char *() : CMyString
  • operator const CHAR_TYPE *() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • operator const int &() : CLaxInteger
  • operator const T &() : CommonValue< T >
  • operator const wchar_t *() : CMyString
  • operator enumEOLType() : CEOL
  • operator HANDLE() : CMutex
  • operator Int() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator int &() : CLaxInteger
  • operator NotCastIntegerType() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator T &() : CommonValue< T >
  • operator TCHAR *() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • operator!() : CDllHandler
  • operator!=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , SSearchOption , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CMySize , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CRangeBase< PointType > , CMarkMgr::CMark , CEOL
  • operator%() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator%=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator+() : CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CharPointerW , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerA
  • operator++() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerA , CharPointerW , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerW , CharPointerA
  • operator+=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CharPointerA , CNativeW , CNativeA , CNativeW , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CMyPoint , CharPointerW , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator-() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint
  • operator--() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator-=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint
  • operator/() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator/=() : CMyPoint , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • operator<() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator<=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator=() : CNativeA , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , Variant , CharPointerW , CharPointerA , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , SysString , CNativeW , CKeyWordSetMgr , CEOL , CFileLoad , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , StringBufferW , StringBufferA , CMyPoint , ImplementsIUnknown< Base > , CRangeBase< PointType > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CNativeW , CMyString , CommonValue< T > , StaticString< CHAR_TYPE, N_BUFFER_COUNT > , CMemory
  • operator==() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , SSearchOption , CRangeBase< PointType > , CMarkMgr::CMark , CMySize , CEOL , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator>() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator>=() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • operator[]() : CMarkMgr , StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE > , CNativeA , CharPointerA , CharPointerW , CNativeW , StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • OsDoesNOTSupportReconvert() : COsVersionInfo
  • OsIsEnableVersion() : COsVersionInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- z -

  • ZeroItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- ~ -

  • ~CBregexp() : CBregexp
  • ~CBregexpDll2() : CBregexpDll2
  • ~CCaret() : CCaret
  • ~CClipboard() : CClipboard
  • ~CCodeBase() : CCodeBase
  • ~CControlProcess() : CControlProcess
  • ~CControlTray() : CControlTray
  • ~CConvert() : CConvert
  • ~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
  • ~CEditView_Paint() : CEditView_Paint
  • ~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
  • ~CMyString() : CMyString
  • ~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
  • ~CRecentImp() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ~CRecycledBufferDynamic() : CRecycledBufferDynamic
  • ~CRegexKeyword() : CRegexKeyword
  • ~CRuler() : CRuler
  • ~CRunningTimer() : CRunningTimer
  • ~CShareData() : CShareData
  • ~CSMacroMgr() : CSMacroMgr
  • ~CSortedTagJumpList() : CSortedTagJumpList
  • ~CSplitBoxWnd() : CSplitBoxWnd
  • ~CSplitterWnd() : CSplitterWnd
  • ~CStream() : CStream
  • ~CTabWnd() : CTabWnd
  • ~CTextArea() : CTextArea
  • ~CTextDrawer() : CTextDrawer
  • ~CTextInputStream() : CTextInputStream
  • ~CTextMetrics() : CTextMetrics
  • ~CTextOutputStream() : CTextOutputStream
  • ~CTipWnd() : CTipWnd
  • ~CTypeSupport() : CTypeSupport
  • ~CUrlWnd() : CUrlWnd
  • ~CUxTheme() : CUxTheme
  • ~CViewCalc() : CViewCalc
  • ~CViewFont() : CViewFont
  • ~CViewParser() : CViewParser
  • ~CWaitCursor() : CWaitCursor
  • ~CWnd() : CWnd
  • ~CWSHClient() : CWSHClient
  • ~CWSHMacroManager() : CWSHMacroManager
  • ~CYbInterfaceBase() : CYbInterfaceBase
  • ~ImplementsIUnknown() : ImplementsIUnknown< Base >
  • ~LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • ~RcCvt() : RcCvt
  • ~SysString() : SysString
  • ~TcharReceiver() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • ~TSingleInstance() : TSingleInstance< T >
  • ~Variant() : Variant
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- a -

  • Abort() : CPPA
  • AcceptSharedSearchKey() : CMainToolBar
  • Add() : CAutoMarkMgr , CMRU , CMarkMgr , CMRUFolder
  • AddCurrentLineToHistory() : CEditView
  • addDelta() : CMemoryIterator
  • AddEditWndList() : CShareData
  • AddIntObj() : CPPA
  • AddIntParam() : CMacro
  • AddIntVar() : CPPA
  • AddKeyWord() : CKeyWordSetMgr
  • AddKeyWordSet() : CKeyWordSetMgr
  • AddLineBottom() : CLayoutMgr
  • AddLineStrX() : CDocLineMgr
  • AddLParam() : CMacro
  • AddMethod() : CInterfaceObject
  • AddParam() : CDlgTagJumpList , CSortedTagJumpList
  • AddRealObj() : CPPA
  • AddRealVar() : CPPA
  • AddRef() : CWSHSite , ImplementsIUnknown< Base >
  • AddressOfMember() : CInterfaceObjectTypeInfo
  • AddStringParam() : CMacro
  • AddStrObj() : CPPA
  • AddStrVar() : CPPA
  • AddToCmdArr() : CEditView
  • AddToGrepFileArr() : CShareData
  • AddToGrepFolderArr() : CShareData
  • AddToMRU() : CEditDoc
  • AddToReplaceKeyArr() : CShareData
  • AddToSearchKeyArr() : CShareData
  • AdjustScrollBars() : CEditView
  • AdjustWindowPlacement() : CTabWnd
  • AfterCreateWindow() : CFuncKeyWnd , CTabWnd , CTipWnd , CWnd
  • alength() : CMyString
  • AllocBuffer() : CMemory
  • AllocStringBuffer() : CNativeA , CNativeW
  • AnalyzeDiffInfo() : CEditView
  • Append() : CKeyMacroMgr , CSMacroMgr
  • AppendData() : CFuncInfoArr
  • AppendExt() : CFileExt
  • AppendExtRaw() : CFileExt
  • AppendItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • AppendNativeData() : CNativeW , CNativeA
  • AppendNativeDataT() : CNativeW
  • AppendOpe() : COpeBlk
  • AppendOpeBlk() : COpeBuf
  • AppendRawData() : CMemory
  • AppendString() : CNativeW , CNativeA , CNativeW , CNativeA
  • AppendStringNew() : CNativeA
  • AppendStringOld() : CNativeW
  • AppendStringT() : CNativeW
  • AppendStringW() : CNativeW , CNativeA , CNativeW
  • Apply() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • ApplyData() : CPropCommon
  • AtoiOptionInt() : CCommandLine
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- b -

  • BASE64Decode() : CConvert_Base64Decode
  • BeginSelectArea() : CViewSelect
  • BeReloadWhenExecuteMacro() : CShareData
  • BMatch() : CBregexpDll2
  • BMatchEx() : CBregexpDll2
  • BOOL() : CPPA , CUxTheme , CEditView , CPPA
  • BothNatural() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • BreakDrag() : CTabWnd
  • BRegexpVersion() : CBregexpDll2
  • BRegfree() : CBregexpDll2
  • BSplit() : CBregexpDll2
  • BSubst() : CBregexpDll2
  • BSubstEx() : CBregexpDll2
  • BTrans() : CBregexpDll2
  • Buffering() : CFileLoad
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- c -

  • c_astr() : CMyString
  • c_tstr() : CMyString
  • c_wstr() : CMyString
  • CalcButtonSize() : CFuncKeyWnd
  • CalcCaretDrawPos() : CCaret
  • CalcLayoutOffset() : CLayout
  • CalcLayoutWidth() : CLayout
  • CalcTextWidth() : CTextMetrics
  • CalcTextWidth2() : CTextMetrics
  • Call_OnPaint() : CEditView_Paint
  • CallConvert() : CConvert
  • CallDefWndProc() : CWnd
  • CallHandleFunction() : CPPA
  • CanAddKeyWord() : CKeyWordSetMgr
  • CanFuncIsKeyMacro() : CSMacroMgr
  • CaretUnderLineOFF() : CCaretUnderLine , CEditView
  • CaretUnderLineON() : CCaretUnderLine , CEditView
  • Category2Name() : CFuncLookup
  • CBinaryInputStream() : CBinaryInputStream
  • CBinaryOutputStream() : CBinaryOutputStream
  • CBlockComment() : CBlockComment
  • CBregexp() : CBregexp
  • CBregexpDll2() : CBregexpDll2
  • CCaret() : CCaret
  • CCaretUnderLine() : CCaretUnderLine
  • CClipboard() : CClipboard
  • CCommandLine() : CCommandLine
  • CControlProcess() : CControlProcess
  • CControlTray() : CControlTray
  • CConvert_SpaceToTab() : CConvert_SpaceToTab
  • CConvert_TabToSpace() : CConvert_TabToSpace
  • CConvert_Trim() : CConvert_Trim
  • 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
  • CDummy() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy
  • 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() : CEditWnd , CLayoutMgr
  • ChangeSelectAreaByCurrentCursor() : CViewSelect
  • ChangeSelectAreaByCurrentCursorTEST() : CViewSelect
  • ChangeTimeExample() : CPropCommon
  • ChangeView() : CDlgFind , CDlgFuncList , CDlgReplace , CHokanMgr
  • ChangeViewCount() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • CharPointerA() : CharPointerA
  • CharPointerW() : CharPointerW
  • CheckAction() : CPassiveTimer
  • CheckAutoSave() : CEditDoc
  • CheckColorMODE() : CLayoutMgr
  • CheckCommandLine() : CCommandLine
  • CheckCurrent() : CMarkMgr
  • CheckFileTimeStamp() : CEditDoc
  • CheckKanjiCode() : CCodeMediator
  • CheckKanjiCodeOfFile() : CCodeMediator
  • CheckListPosition_Macro() : CPropCommon
  • CheckListType() : CDlgFuncList
  • CheckNext() : CMarkMgr
  • CheckPattern() : CBregexp
  • CheckPrev() : CMarkMgr
  • CHokanMgr() : CHokanMgr
  • ChooseFontHandle() : CViewFont
  • CHtmlHelp() : CHtmlHelp
  • CImageListMgr() : CImageListMgr
  • CInterfaceObject() : CInterfaceObject
  • CInterfaceObjectTypeInfo() : CInterfaceObjectTypeInfo
  • CJis() : CJis
  • CKeyBind() : CKeyBind
  • CKeyMacroMgr() : CKeyMacroMgr
  • CKeyWordSetMgr() : CKeyWordSetMgr
  • CLaxInteger() : CLaxInteger
  • CLayout() : CLayout
  • CLayoutMgr() : CLayoutMgr
  • Clean() : CMemory
  • CleanKeyWords() : CKeyWordSetMgr
  • Clear() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType > , CMemory , CNative , CSMacroMgr
  • clear() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • ClearAll() : CKeyMacroMgr , CMRU , CMRUFolder , COpeBuf , CSMacroMgr
  • ClearOpeBlk() : CViewCommander
  • ClientToLayout() : CTextArea
  • CLineComment() : CLineComment
  • Close() : CClipboard , CFileWrite , CFuncKeyWnd , CTabWnd , CStream
  • CloseAllEditor() : CControlTray
  • CloseDialog() : CDialog
  • CMacro() : CMacro
  • CMacroFactory() : CMacroFactory
  • CMacroManagerBase() : CMacroManagerBase
  • CMainStatusBar() : CMainStatusBar
  • CMainToolBar() : CMainToolBar
  • CMark() : CMarkMgr::CMark
  • CMarkMgr() : CMarkMgr
  • CMemory() : CMemory
  • CMemoryIterator() : CMemoryIterator
  • CMenuDrawer() : CMenuDrawer
  • CMigemo() : CMigemo
  • CMRU() : CMRU
  • CMRUFolder() : CMRUFolder
  • CMutex() : CMutex
  • CMyPoint() : CMyPoint
  • CMyRect() : CMyRect
  • CMySize() : CMySize
  • CMyString() : CMyString
  • CNativeA() : CNativeA
  • CNativeW() : CNativeW
  • CNormalProcess() : CNormalProcess
  • CodeToUnicode() : CCodeBase , CEuc , CJis , CShiftJis , CUnicode , CUnicodeBe , CUtf7 , CUtf8
  • COleLibrary() : COleLibrary
  • ColorList_SubclassProc() : CDlgSameColor
  • ColorStatic_SubclassProc() : CDlgSameColor
  • Command_1PageDown() : CViewCommander
  • Command_1PageUp() : CViewCommander
  • Command_ABOUT() : CViewCommander
  • Command_ACTIVATE_SQLPLUS() : CViewCommander
  • Command_ADDTAIL() : CViewCommander
  • Command_BASE64DECODE() : CViewCommander
  • Command_BEGIN_BOXSELECT() : CViewCommander
  • Command_BEGIN_SELECT() : CViewCommander
  • Command_BIND_WINDOW() : CViewCommander
  • Command_BOOKMARK_NEXT() : CViewCommander
  • Command_BOOKMARK_PATTERN() : CViewCommander
  • Command_BOOKMARK_PREV() : CViewCommander
  • Command_BOOKMARK_RESET() : CViewCommander
  • Command_BOOKMARK_SET() : CViewCommander
  • Command_BRACKETPAIR() : CViewCommander
  • Command_BROWSE() : CViewCommander
  • Command_CANCEL_MODE() : CViewCommander
  • Command_CASCADE() : CViewCommander
  • Command_CHGMOD_EOL() : CViewCommander
  • Command_CHGMOD_INS() : CViewCommander
  • Command_CODECNV_AUTO2SJIS() : CViewCommander
  • Command_CODECNV_EMAIL() : CViewCommander
  • Command_CODECNV_EUC2SJIS() : CViewCommander
  • Command_CODECNV_SJIS2EUC() : CViewCommander
  • Command_CODECNV_SJIS2JIS() : CViewCommander
  • Command_CODECNV_SJIS2UTF7() : CViewCommander
  • Command_CODECNV_SJIS2UTF8() : CViewCommander
  • Command_CODECNV_UNICODE2SJIS() : CViewCommander
  • Command_CODECNV_UNICODEBE2SJIS() : CViewCommander
  • Command_CODECNV_UTF72SJIS() : CViewCommander
  • Command_CODECNV_UTF82SJIS() : CViewCommander
  • Command_COMPARE() : CViewCommander
  • Command_COPY() : CViewCommander
  • Command_COPYFILENAME() : CViewCommander
  • Command_COPYLINES() : CViewCommander
  • Command_COPYLINESASPASSAGE() : CViewCommander
  • Command_COPYLINESWITHLINENUMBER() : CViewCommander
  • Command_COPYPATH() : CViewCommander
  • Command_COPYTAG() : CViewCommander
  • Command_CREATEKEYBINDLIST() : CViewCommander
  • Command_CtrlCode_Dialog() : CViewCommander
  • Command_CURLINECENTER() : CViewCommander
  • Command_CUSTMENU() : CViewCommander
  • Command_CUT() : CViewCommander
  • Command_CUT_LINE() : CViewCommander
  • Command_DELETE() : CViewCommander
  • Command_DELETE_BACK() : CViewCommander
  • Command_DELETE_LINE() : CViewCommander
  • Command_Diff() : CViewCommander
  • Command_Diff_Dialog() : CViewCommander
  • Command_Diff_Next() : CViewCommander
  • Command_Diff_Prev() : CViewCommander
  • Command_Diff_Reset() : CViewCommander
  • Command_DOWN() : CViewCommander
  • Command_DOWN2() : CViewCommander
  • Command_DUPLICATELINE() : CViewCommander
  • Command_EXECCOMMAND() : CViewCommander
  • Command_EXECCOMMAND_DIALOG() : CViewCommander
  • Command_EXECKEYMACRO() : CViewCommander
  • Command_EXITALL() : CViewCommander
  • Command_EXITALLEDITORS() : CViewCommander
  • Command_EXTHELP1() : CViewCommander
  • Command_EXTHTMLHELP() : CViewCommander
  • Command_Favorite() : CViewCommander
  • Command_FILE_REOPEN() : CViewCommander
  • Command_FILECLOSE() : CViewCommander
  • Command_FILECLOSE_OPEN() : CViewCommander
  • Command_FILECLOSEALL() : CViewCommander
  • Command_FILENEW() : CViewCommander
  • Command_FILEOPEN() : CViewCommander
  • Command_FILESAVE() : CViewCommander
  • Command_FILESAVEALL() : CViewCommander
  • Command_FILESAVEAS() : CViewCommander
  • Command_FILESAVEAS_DIALOG() : CViewCommander
  • Command_FONT() : CViewCommander
  • Command_FUNCLIST() : CViewCommander
  • Command_GOFILEEND() : CViewCommander
  • Command_GOFILETOP() : CViewCommander
  • Command_GOLINEEND() : CViewCommander
  • Command_GOLINETOP() : CViewCommander
  • Command_GONEXTPARAGRAPH() : CViewCommander
  • Command_GOPREVPARAGRAPH() : CViewCommander
  • Command_GREP() : CViewCommander
  • Command_GREP_DIALOG() : CViewCommander
  • Command_GROUPCLOSE() : CViewCommander
  • Command_HalfPageDown() : CViewCommander
  • Command_HalfPageUp() : CViewCommander
  • Command_HANKATATOZENKAKUHIRA() : CViewCommander
  • Command_HANKATATOZENKAKUKATA() : CViewCommander
  • Command_HELP_CONTENTS() : CViewCommander
  • Command_HELP_SEARCH() : CViewCommander
  • Command_HOKAN() : CViewCommander
  • Command_IME_CHAR() : CViewCommander
  • Command_INDENT() : CViewCommander
  • Command_INDENT_TAB() : CViewCommander
  • Command_INS_DATE() : CViewCommander
  • Command_INS_TIME() : CViewCommander
  • Command_INSFILE() : CViewCommander
  • Command_INSTEXT() : CViewCommander
  • Command_JUMP() : CViewCommander
  • Command_JUMP_DIALOG() : CViewCommander
  • Command_JUMP_SRCHSTARTPOS() : CViewCommander
  • Command_JUMPHIST_NEXT() : CViewCommander
  • Command_JUMPHIST_PREV() : CViewCommander
  • Command_JUMPHIST_SET() : CViewCommander
  • Command_LEFT() : CViewCommander
  • Command_LineCutToEnd() : CViewCommander
  • Command_LineCutToStart() : CViewCommander
  • Command_LineDeleteToEnd() : CViewCommander
  • Command_LineDeleteToStart() : CViewCommander
  • Command_LOADKEYMACRO() : CViewCommander
  • Command_MAXIMIZE_H() : CViewCommander
  • Command_MAXIMIZE_V() : CViewCommander
  • Command_MENU_ALLFUNC() : CViewCommander
  • Command_MENU_RBUTTON() : CViewCommander
  • Command_MERGE() : CViewCommander
  • Command_MINIMIZE_ALL() : CViewCommander
  • Command_NEXTGROUP() : CViewCommander
  • Command_OPEN_CCPP() : CViewCommander
  • Command_OPEN_HfromtoC() : CViewCommander
  • Command_OPEN_HHPP() : CViewCommander
  • Command_OPTION() : CViewCommander
  • Command_OPTION_TYPE() : CViewCommander
  • Command_PASTE() : CViewCommander
  • Command_PASTEBOX() : CViewCommander
  • Command_PLSQL_COMPILE_ON_SQLPLUS() : CViewCommander
  • Command_PREVGROUP() : CViewCommander
  • Command_PRINT() : CViewCommander
  • Command_PRINT_PAGESETUP() : CViewCommander
  • Command_PRINT_PREVIEW() : CViewCommander
  • Command_PROPERTY_FILE() : CViewCommander
  • Command_PUTFILE() : CViewCommander
  • Command_READONLY() : CViewCommander
  • Command_RECKEYMACRO() : CViewCommander
  • Command_Reconvert() : CViewCommander
  • Command_REDO() : CViewCommander
  • Command_REDRAW() : CViewCommander
  • Command_REPLACE() : CViewCommander
  • Command_REPLACE_ALL() : CViewCommander
  • Command_REPLACE_DIALOG() : CViewCommander
  • Command_RIGHT() : CViewCommander
  • Command_SAVEKEYMACRO() : CViewCommander
  • Command_SEARCH_BOX() : CViewCommander
  • Command_SEARCH_CLEARMARK() : CViewCommander
  • Command_SEARCH_DIALOG() : CViewCommander
  • Command_SEARCH_NEXT() : CViewCommander
  • Command_SEARCH_PREV() : CViewCommander
  • Command_SELECTALL() : CViewCommander
  • Command_SELECTWORD() : CViewCommander
  • Command_SET_QUOTESTRING() : CViewCommander
  • Command_SHOWFUNCKEY() : CViewCommander
  • Command_SHOWSTATUSBAR() : CViewCommander
  • Command_SHOWTAB() : CViewCommander
  • Command_SHOWTOOLBAR() : CViewCommander
  • Command_SORT() : CViewCommander
  • Command_SPACETOTAB() : CViewCommander
  • Command_SPLIT_H() : CViewCommander
  • Command_SPLIT_V() : CViewCommander
  • Command_SPLIT_VH() : CViewCommander
  • Command_TAB_JOINTNEXT() : CViewCommander
  • Command_TAB_JOINTPREV() : CViewCommander
  • Command_TAB_MOVELEFT() : CViewCommander
  • Command_TAB_MOVERIGHT() : CViewCommander
  • Command_TAB_SEPARATE() : CViewCommander
  • Command_TABTOSPACE() : CViewCommander
  • Command_TAGJUMP() : CViewCommander
  • Command_TAGJUMPBACK() : CViewCommander
  • Command_TagJumpByTagsFile() : CViewCommander
  • Command_TagJumpByTagsFileKeyword() : CViewCommander
  • Command_TagsMake() : CViewCommander
  • Command_TILE_H() : CViewCommander
  • Command_TILE_V() : CViewCommander
  • Command_ToggleKeySearch() : CViewCommander
  • Command_TOHANEI() : CViewCommander
  • Command_TOHANKAKU() : CViewCommander
  • Command_TOHANKATA() : CViewCommander
  • Command_TOLOWER() : CViewCommander
  • Command_TOUPPER() : CViewCommander
  • Command_TOZENEI() : CViewCommander
  • Command_TOZENKAKUHIRA() : CViewCommander
  • Command_TOZENKAKUKATA() : CViewCommander
  • Command_TRACEOUT() : CViewCommander
  • Command_TRIM() : CViewCommander
  • Command_TRIM2() : CConvertMediator
  • Command_TYPE_LIST() : CViewCommander
  • Command_UNDO() : CViewCommander
  • Command_UNINDENT() : CViewCommander
  • Command_UP() : CViewCommander
  • Command_UP2() : CViewCommander
  • Command_UP_BOX() : CViewCommander
  • Command_UUDECODE() : CViewCommander
  • Command_WCHAR() : CViewCommander
  • Command_WIN_OUTPUT() : CViewCommander
  • Command_WINCLOSE() : CViewCommander
  • Command_WINLIST() : CViewCommander
  • Command_WINTOPMOST() : CViewCommander
  • Command_WndScrollDown() : CViewCommander
  • Command_WndScrollUp() : CViewCommander
  • Command_WordCut() : CViewCommander
  • Command_WordDelete() : CViewCommander
  • Command_WordDeleteToEnd() : CViewCommander
  • Command_WordDeleteToStart() : CViewCommander
  • Command_WORDLEFT() : CViewCommander
  • Command_WORDRIGHT() : CViewCommander
  • Command_WRAPWINDOWWIDTH() : CViewCommander
  • CommonValue() : CommonValue< T >
  • CommonValueInfo() : CommonValueInfo
  • CompareItem() : CRecentCmd , CRecentSearch , CRecentGrepFile , CRecentFile , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentFolder , CRecentEditNode , CRecentGrepFolder , CRecentReplace , CRecentTagjumpKeyword
  • Compile() : CBregexp
  • ComputeWindowSize() : CTipWnd
  • convert() : RcCvt
  • ConvertTypesExtToDlgExt() : CFileExt
  • ConvMemory() : CConvertMediator
  • ConvSelectedArea() : CEditView
  • COpe() : COpe
  • COpeBlk() : COpeBlk
  • COpeBuf() : COpeBuf
  • CopyCaretStatus() : CCaret
  • CopyCurLine() : CEditView
  • CopyItem() : CRecentGrepFile , CRecentGrepFolder , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentFile , CRecentCmd , CRecentEditNode , CRecentFolder , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecentReplace , CRecentSearch , CRecentTagjumpKeyword
  • CopySelectedAllLines() : CEditView
  • CopySelectStatus() : CViewSelect
  • CopyTextAreaStatus() : CTextArea
  • CopyTextMetricsStatus() : CTextMetrics
  • CopyTo() : CBlockComment , CLineComment
  • CopyViewStatus() : CEditView
  • COsVersionInfo() : COsVersionInfo
  • Count() : CImageListMgr , CMarkMgr
  • COutlinePython() : COutlinePython
  • CPassiveTimer() : CPassiveTimer
  • CPPA() : CPPA
  • CPPAMacroMgr() : CPPAMacroMgr
  • CPrint() : CPrint
  • CPrintPreview() : CPrintPreview
  • CProcess() : CProcess
  • CProfile() : CProfile
  • CPropCommon() : CPropCommon
  • CPropTypes() : CPropTypes
  • CRangeBase() : CRangeBase< PointType >
  • Create() : CLayoutMgr , CWnd , CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CEditDoc , CEditView , CSplitBoxWnd , CProcessFactory , CDlgOpenFile , CTipWnd , CSplitterWnd , CControlTray , CPropCommon , CImageListMgr , CPropTypes , CMenuDrawer , CEditWnd , CMacroFactory
  • Create2() : CDlgOpenFile
  • CreateAccerelator() : CKeyBind
  • CreateButtons() : CFuncKeyWnd
  • CreateCharCharsArr() : CDocLineMgr
  • CreateCodeBase() : CCodeFactory
  • CreateDC() : CPrint
  • CreateEditCaret() : CCaret
  • CreateFileDropDownMenu() : CEditWnd
  • CreateInstance() : CInterfaceObjectTypeInfo
  • CreateKeyBindList() : CKeyBind
  • CreateLayout() : CLayoutMgr
  • CreateMenu() : CMRUFolder , CMRU
  • CreateMenuFont() : CTabWnd
  • CreatePopUpMenu_L() : CControlTray
  • CreatePopUpMenu_R() : CControlTray , CEditView
  • CreatePrintPreviewControls() : CPrintPreview
  • CreateScrollBar() : CEditView
  • CreateSizeBox() : CDialog
  • CreateStatusBar() : CMainStatusBar
  • CreateToolBar() : CMainToolBar
  • CreateTrayIcon() : CControlTray
  • Creator() : CWSHMacroManager , CPPAMacroMgr , CKeyMacroMgr
  • CRecentCmd() : CRecentCmd
  • CRecentEditNode() : CRecentEditNode
  • CRecentFile() : CRecentFile
  • CRecentFolder() : CRecentFolder
  • CRecentGrepFile() : CRecentGrepFile
  • CRecentGrepFolder() : CRecentGrepFolder
  • CRecentImp() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • CRecentReplace() : CRecentReplace
  • CRecentSearch() : CRecentSearch
  • CRecentTagjumpKeyword() : CRecentTagjumpKeyword
  • CRecycledBuffer() : CRecycledBuffer
  • CRecycledBufferDynamic() : CRecycledBufferDynamic
  • CRegexKeyword() : CRegexKeyword
  • CRuler() : CRuler
  • CRunningTimer() : CRunningTimer
  • CShareData() : CShareData
  • CSMacroMgr() : CSMacroMgr
  • CSortedTagJumpList() : CSortedTagJumpList
  • CSplitBoxWnd() : CSplitBoxWnd
  • CSplitterWnd() : CSplitterWnd
  • CStream() : CStream
  • CStrictInteger() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • CStrictPoint() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • CStringRef() : CStringRef
  • CTabWnd() : CTabWnd
  • CTextArea() : CTextArea
  • CTextDrawer() : CTextDrawer
  • CTextInputStream() : CTextInputStream
  • CTextInputStream_AbsIni() : CTextInputStream_AbsIni
  • CTextMetrics() : CTextMetrics
  • CTextOutputStream() : CTextOutputStream
  • CTipWnd() : CTipWnd
  • CTypeSupport() : CTypeSupport
  • CUrlWnd() : CUrlWnd
  • Cursor_UPDOWN() : CCaret
  • CUxTheme() : CUxTheme
  • CViewCalc() : CViewCalc
  • CViewCommander() : CViewCommander
  • CViewFont() : CViewFont
  • CViewParser() : CViewParser
  • CViewSelect() : CViewSelect
  • CWaitCursor() : CWaitCursor
  • CWnd() : CWnd
  • CWSHClient() : CWSHClient
  • CWSHMacroManager() : CWSHMacroManager
  • CWSHSite() : CWSHSite
  • cx() : CImageListMgr
  • cy() : CImageListMgr
  • CYbInterfaceBase() : CYbInterfaceBase
  • CYbInterfaceImpl() : CYbInterfaceImpl< BASEINTERFACE >
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- d -

  • DAdvise() : CDataObject
  • DataCheckAndCrrect() : CDlgPrintSetting
  • declare() : CPPAMacroMgr , CWSHMacroManager , CKeyMacroMgr
  • DECLH() : CWnd
  • DeInitDll() : CMigemo
  • DeinitDll() : CBregexpDll2 , CDllHandler , CPPA
  • DeleteAllItem() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • DeleteData() : CEditView
  • DeleteData2() : CEditView
  • DeleteData_CDocLineMgr() : CDocLineMgr
  • DeleteData_CLayoutMgr() : CLayoutMgr
  • DeleteEditWndList() : CShareData
  • DeleteItem() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • DeleteItemByHwnd() : CRecentEditNode
  • DeleteLayoutAsLogical() : CLayoutMgr
  • DeleteNode() : CDocLineMgr
  • DeleteVar() : CPPA
  • DelKeyWord() : CKeyWordSetMgr
  • DelKeyWordSet() : CKeyWordSetMgr
  • DestroyCaret() : CCaret
  • DestroyMenu() : CMRU , CMRUFolder
  • DestroyPrintPreviewControls() : CPrintPreview
  • DestroyScrollBar() : CEditView
  • DestroyStatusBar() : CMainStatusBar
  • DestroyToolBar() : CMainToolBar
  • DestroyWindow() : CWnd
  • DetectMultibyte() : CESI
  • DetectUnicode() : CESI
  • DetectWidthOfLineNumberArea() : CTextArea
  • DetectWidthOfLineNumberArea_calculate() : CTextArea
  • DetectWidthOfLineNumberAreaAllPane() : CEditWnd
  • DirCallback_Macro() : CPropCommon
  • DisableSelectArea() : CViewSelect
  • DispatchEvent() : CControlTray , CDialog , CDlgAbout , CDlgDebug , CDlgInput1 , CDlgSameColor , CEditView , CEditWnd , CWnd
  • DispatchEvent_KeyHelp() : CPropTypes
  • DispatchEvent_p1() : CPropCommon , CPropTypes
  • DispatchEvent_p10() : CPropCommon
  • DispatchEvent_p2() : CPropCommon , CPropTypes
  • 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() : CSplitterWnd , CWnd
  • DispEmptyLine() : CTextDrawer
  • DispEOF() : CTextDrawer
  • DispEOL() : CTextDrawer
  • DispHankakuSpace() : CTextDrawer
  • DispKeywordCount() : CPropCommon
  • DispLineNew() : CEditView
  • DispLineNumber() : CTextDrawer
  • DispPos() : DispPos
  • DispRuler() : CRuler
  • DispTab() : CTextDrawer
  • DispText() : CTextDrawer
  • DispTextSelected() : CEditView
  • DispVerticalLines() : CTextDrawer
  • DispWrap() : CTextDrawer
  • DispZenkakuSpace() : CTextDrawer
  • 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
  • DoConvert() : CConvert , CConvert_HaneisuToZeneisu , CConvert_HankanaToZenhira , CConvert_HankanaToZenkana , CConvert_TabToSpace , CConvert_ToHankaku , CConvert_ToLower , CConvert_ToZenhira , CConvert_ToZenkana , CConvert_Trim , CConvert_UuDecode , CConvert_ZeneisuToHaneisu , CConvert_ZenkanaToHankana , CConvert_ToUpper , CConvert_SpaceToTab , CConvert_Base64Decode
  • DoFileLock() : CEditDoc
  • DoFileUnLock() : CEditDoc
  • DoGrep() : CControlTray , CEditView
  • DoGrepFile() : CEditView
  • DoGrepTree() : CEditView
  • DoHokan() : CHokanMgr
  • DoLayout() : CLayoutMgr
  • DoLayout_Range() : CLayoutMgr
  • DoModal() : CDlgJump , CDlgPrintPage , CDialog , CDlgInput1 , CDlgDiff , CDlgDebug , CDlgExec , CDlgAbout , CDlgCancel , CDlgCompare , CDlgCtrlCode , CDlgGrep , CDlgInput1 , CDlgKeywordSelect , CDlgFavorite , CDlgSameColor , CDlgTagJumpList , CDlgWinSize , CDlgTagsMake , CDlgPrintSetting , CDlgProperty , CDlgTypeList
  • DoModal_GetOpenFileName() : CDlgOpenFile
  • DoModal_GetSaveFileName() : CDlgOpenFile
  • DoModalOpenDlg() : CDlgOpenFile
  • DoModalSaveDlg() : CDlgOpenFile
  • DoModeless() : CDlgCancel , CDlgFuncList , CDlgReplace , CDlgFind , CHokanMgr , CDialog
  • DoPropertySheet() : CPropCommon , CPropTypes
  • DoRedo() : COpeBuf
  • DoScanLine() : COutlinePython
  • DoSplit() : CSplitterWnd
  • DoUndo() : COpeBuf
  • DragDrop() : CDataObject
  • DragEnter() : CDropTarget , CEditView
  • DragLeave() : CEditView , CDropTarget
  • DragOver() : CEditView , CDropTarget
  • Draw() : CImageListMgr
  • Draw3dRect() : CSplitBoxWnd
  • DrawBracketPair() : CEditView
  • DrawBtnBkgnd() : CTabWnd
  • DrawCaretPosInfo() : CCaret
  • DrawCloseBtn() : CTabWnd
  • DrawColorButton() : CPropTypes
  • DrawColorListItem() : CPropTypes
  • DrawFooter() : CPrintPreview
  • DrawFrame() : CSplitterWnd
  • DrawHeader() : CPrintPreview
  • DrawItem() : CMenuDrawer
  • DrawListBtn() : CTabWnd
  • DrawPageText() : CPrintPreview
  • DrawRulerBg() : CRuler
  • DrawRulerCaret() : CRuler
  • DrawSelectArea() : CViewSelect
  • DrawSelectAreaLine() : CViewSelect
  • DrawSplitter() : CSplitterWnd
  • DrawTipText() : CTipWnd
  • DrawToolBarItemList() : CPropCommon
  • Drop() : CDropTarget , CEditView
  • DUMP() : COpeBlk , CLayoutMgr , CProfile , CFuncInfoArr , CDocLineMgr , COpe , COpeBuf , CLayout
  • DUnadvise() : CDataObject
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- e -

  • EatMessage() : CMainToolBar
  • Empty() : CClipboard , CDocLineMgr , CSortedTagJumpList , CFuncInfoArr , CDlgTagJumpList , CLayoutMgr , COpeBlk
  • Enable() : CPassiveTimer
  • EnableAutoBackup() : CommonSetting_Backup
  • EnableBackupInput() : CPropCommon
  • EnableFilePropInput() : CPropCommon
  • EnableFormatPropInput() : CPropCommon
  • EnableModeless() : CWSHSite
  • EnableTabPropInput() : CPropCommon
  • EnableTypesPropInput() : CPropTypes
  • EnableWinPropInput() : CPropCommon
  • end() : CMemoryIterator
  • EndLayoutBars() : CEditWnd
  • EnterString() : COutlinePython
  • EnumDAdvise() : CDataObject
  • EnumEngines() : CWSHMacroManager
  • EnumFormatEtc() : CDataObject
  • Eof() : CStream
  • Error() : CWSHClient
  • EUCToSJIS() : CEuc
  • EUCToUnicode() : CEuc
  • Exec() : CMacro , CSMacroMgr
  • ExecCmd() : CEditView
  • ExecKeyMacro() : CKeyMacroMgr , CMacroManagerBase , CPPAMacroMgr , CWSHMacroManager
  • ExecTabCommand() : CTabWnd
  • Execute() : CPPA , CWSHClient
  • ExistBMatchEx() : CBregexpDll2
  • ExistBSubstEx() : CBregexpDll2
  • ExistCache() : LocalCache
  • ExistCaretFocus() : CCaret
  • ExitingDlgProc() : CControlTray
  • 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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- f -

  • FileClose() : CEditDoc , CFileLoad
  • FileCloseOpen() : CEditDoc
  • FileInfo() : FileInfo
  • FileOpen() : CFileLoad
  • FilePointer() : CFileLoad
  • FileRead() : CEditDoc
  • FileSave() : CEditDoc
  • FileSaveAs() : CEditDoc
  • FileSaveAs_Dialog() : CEditDoc
  • FileToImpl() : CIoBridge
  • FileWrite() : CEditDoc
  • FillBack() : CTypeSupport
  • FillSolidRect() : CSplitBoxWnd
  • Find() : CMenuDrawer
  • find_key() : CDlgTagJumpList
  • FindIndexFromCommandId() : CMenuDrawer
  • FindItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • FindItemByHwnd() : CRecentEditNode
  • FindItemByPath() : CRecentFile
  • FindItemByText() : CRecent
  • FindPaperInfo() : CPrint
  • FindTabIndexByHWND() : CTabWnd
  • first() : CMemoryIterator
  • Flush() : CMarkMgr
  • font() : RcCvt
  • ForceActiveWindow() : CTabWnd
  • FormatBackUpPath() : CEditDoc
  • ForwardDrawCol() : DispPos
  • ForwardDrawLine() : DispPos
  • ForwardLayoutLineRef() : DispPos
  • Free() : CSortedTagJumpList
  • FreeLibrary() : CDllHandler
  • Funccode2Name() : CFuncLookup
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- g -

  • GenerateBottomRect() : CTextArea
  • GenerateClipRect() : CTextArea
  • GenerateClipRectLine() : CTextArea
  • GenerateClipRectRight() : CTextArea
  • GenerateDxArray() : CTextMetrics
  • GenerateLeftRect() : CTextArea
  • GenerateLineNumberRect() : CTextArea
  • GenerateRightRect() : CTextArea
  • GenerateTextAreaRect() : CTextArea
  • GenerateTopRect() : CTextArea
  • Get() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , SysString
  • GetAccelCharFromLabel() : CMenuDrawer
  • GetActivePane() : CEditWnd
  • GetActiveView() : CEditWnd
  • GetActualTabSpace() : CLayoutMgr
  • GetAdjustCursorPos() : CCaret
  • GetAlertIfFileNotExist() : CommonSetting_File
  • GetAllData() : CDocLineMgr
  • GetAllocSize() : CKeyWordSetMgr
  • GetAllPageNum() : CPrintPreview
  • GetAllSplitCols() : CSplitterWnd
  • GetAllSplitRows() : CSplitterWnd
  • GetAppInstance() : CEditApp , CWnd
  • GetAreaBottom() : CTextArea
  • GetAreaHeight() : CTextArea
  • GetAreaLeft() : CTextArea
  • GetAreaRight() : CTextArea
  • GetAreaTop() : CTextArea
  • GetAreaWidth() : CTextArea
  • GetArgBStr() : CPPA
  • GetArgInt() : CPPA
  • GetArgReal() : CPPA
  • GetArgStr() : CPPA
  • GetArrayCount() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetAt() : CFuncInfoArr
  • GetAutoBackupInterval() : CommonSetting_Backup
  • GetAutoMIMEdecode() : CommonSetting_File
  • GetBackColor() : CTypeSupport
  • GetBackupCount() : CommonSetting_Backup
  • GetBackupExtChar() : CommonSetting_Backup
  • GetBackupOpt() : CommonSetting_Backup
  • GetBackupType() : CommonSetting_Backup
  • GetBackupTypeAdv() : CommonSetting_Backup
  • getBlockCommentFrom() : CBlockComment
  • getBlockCommentTo() : CBlockComment
  • getBlockFromLen() : CBlockComment
  • getBlockToLen() : CBlockComment
  • GetBookMarks() : CDocLineMgr
  • GetBottomLine() : CTextArea
  • GetBStrVar() : CPPA
  • GetBuffer() : CRecycledBuffer , CRecycledBufferDynamic
  • GetBufferCount() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • GetBufferPointer() : StaticString< CHAR_TYPE, N_BUFFER_COUNT > , TcharReceiver< RECEIVE_CHAR_TYPE >
  • getButton() : CMenuDrawer
  • GetCache() : LocalCache
  • GetCanonicalFormatEtc() : CDataObject
  • GetCapacity() : CSortedTagJumpList
  • GetCaret() : CEditView , CViewCommander
  • GetCaretLayoutPos() : CCaret
  • GetCaretLogicPos() : CCaret
  • GetCaretShowFlag() : CCaret
  • GetCaretSize() : CCaret
  • GetCaretType() : CommonSetting_General
  • GetCategoryCount() : CFuncLookup
  • GetCharCode() : CDlgCtrlCode
  • GetCharNext() : CNativeA , CNativeW
  • GetCharPrev() : CNativeA , CNativeW
  • GetCloseBtnRect() : CTabWnd
  • GetCode() : COpe
  • GetColorIndex() : CEditView
  • GetColorTypePrev() : CLayout
  • getColumn() : CMemoryIterator
  • getColumnDelta() : CMemoryIterator
  • GetCommander() : CEditView
  • GetContainingTypeLib() : CInterfaceObjectTypeInfo
  • GetCount() : CFileExt , CSortedTagJumpList
  • GetCurPageNum() : CPrintPreview
  • GetCurrent() : CMarkMgr
  • getCurrentChar() : CMemoryIterator
  • GetCurrentFocus() : CEditWnd
  • GetCurrentIdx() : CSMacroMgr
  • getCurrentPos() : CMemoryIterator
  • GetCurrentTextForSearch() : CEditView
  • GetCurrentTextForSearchDlg() : CEditView
  • GetCurrentWord() : CViewParser
  • GetData() : CDialog , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgReplace , CDlgTagJumpList , CDlgTagsMake , CDlgWinSize , CDataObject , CMenuDrawer
  • GetData_KeyHelp() : CPropTypes
  • GetData_p1() : CPropCommon , CPropTypes
  • GetData_p10() : CPropCommon
  • GetData_p2() : CPropCommon , CPropTypes
  • 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
  • GetDataHere() : CDataObject
  • GetDeclarations() : CPPA
  • GetDefaultIcon() : CEditWnd
  • GetDefaultPrinter() : CPrint
  • GetDefaultPrinterInfo() : CPrintPreview
  • GetDefFuncCode() : CKeyBind
  • GetDllEntry() : CInterfaceObjectTypeInfo
  • GetDllName() : CDllHandler , CHtmlHelp , CMigemo , CPPA , CUxTheme
  • GetDllNameInOrder() : CBregexpDll2 , CDllHandler
  • GetDllShareData() : CProcess
  • GetDocLineBottom() : CDocLineMgr
  • GetDocLineTop() : CDocLineMgr
  • GetDocument() : CCaret , CEditApp , CEditView , CEditWnd , CViewCommander
  • GetDocumentation() : CInterfaceObjectTypeInfo
  • GetDocumentAttribute() : CEditDoc
  • GetDocumentLeftClientPointX() : CTextArea
  • GetDocumentLockState() : CEditDoc
  • GetDocumentType() : CEditDoc , CShareData
  • GetDocumentTypeExt() : CShareData
  • GetDocVersionString() : CWSHSite
  • GetDragMode() : CEditWnd
  • GetDragPosOrg() : CEditWnd
  • GetDrawCol() : DispPos
  • GetDrawLine() : DispPos
  • GetDrawPos() : DispPos
  • GetDrawSwitch() : CEditView
  • GetDxArray_AllHankaku() : CTextMetrics
  • GetDxArray_AllZenkaku() : CTextMetrics
  • GetEditNode() : CShareData
  • GetEditNodeAt() : CShareData
  • GetEditorWindowsNum() : CShareData
  • GetEditView() : CEditView , CEditView_Paint , CViewSelect
  • GetEditWindow() : CViewCommander
  • GetEndLayoutPos() : CLayoutMgr
  • GetEOLType() : CEOL
  • GetEOLTypeUni() : CEOL
  • GetEOLTypeUniBE() : CEOL
  • GetExt() : CFileExt
  • GetExtFilter() : CFileExt
  • GetExtHTMLHelp() : CShareData
  • GetExtWinHelp() : CShareData
  • GetFile() : CSMacroMgr
  • GetFileInfo() : CCommandLine , CEditDoc , CMRU
  • GetFileName() : CDlgTagJumpList , CEditDoc
  • GetFilePath() : CDlgTagJumpList , CEditDoc
  • GetFilePathFormat() : CShareData
  • GetFileSize() : CFileLoad
  • GetFileTime() : CFileLoad
  • GetFirstLinrStr() : CDocLineMgr , CLayoutMgr
  • GetFirstPane() : CSplitterWnd
  • GetFontHan() : CViewFont
  • GetFontset() : CEditView
  • GetFreeSize() : CKeyWordSetMgr
  • GetFrom() : CRangeBase< PointType >
  • GetFromPointer() : CRangeBase< PointType >
  • GetFuncCode() : CKeyBind
  • GetFuncCodeAt() : CKeyBind
  • GetFuncDesc() : CInterfaceObjectTypeInfo
  • GetFuncInfoByID() : CSMacroMgr
  • GetFuncInfoByName() : CSMacroMgr
  • GetGrepInfo() : CCommandLine
  • GetGroupId() : CCommandLine , CShareData
  • GetHankakuDx() : CCaret , CTextMetrics
  • GetHankakuDy() : CCaret , CTextMetrics
  • GetHankakuHeight() : CCaret , CTextMetrics
  • GetHankakuWidth() : CTextMetrics
  • GetHelpFilePath() : CEditApp
  • GetHelpIdTable() : CDlgTagsMake , CDlgTypeList , CDlgWinSize , CHokanMgr , CDialog , CDlgAbout , CDlgCancel , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgProperty , CDlgReplace , CDlgSameColor , CDlgTagJumpList
  • GetHwnd() : CDialog , CUrlWnd , CEditView , CEditWnd , EditNode , CWnd
  • GetIconId() : CMenuDrawer
  • GetIcons() : CEditApp
  • GetIDsOfNames() : CInterfaceObjectTypeInfo , CInterfaceObject
  • GetImageIndex() : CTabWnd
  • GetImplTypeFlags() : CInterfaceObjectTypeInfo
  • GetIndent() : CLayout
  • getIndentOffset_LeftSpace() : CLayoutMgr
  • getIndentOffset_Normal() : CLayoutMgr
  • getIndentOffset_Tx2x() : CLayoutMgr
  • getIndex() : CMemoryIterator
  • GetIndex() : CBregexp
  • getIndexDelta() : CMemoryIterator
  • GetIniFileName() : CShareData
  • GetIniFileNameDirect() : CShareData
  • GetInitializeMutex() : CNormalProcess
  • getInstance() : CMigemo , CUxTheme
  • GetInstance() : CDllHandler , CViewCommander
  • getInstance() : CShareData
  • GetInterval() : CPassiveTimer
  • GetIntVar() : CPPA
  • GetItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemCount() : CFuncLookup , CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemInfo() : CWSHSite
  • GetItemPointer() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetItemText() : CRecent , CRecentCmd , CRecentFile , CRecentFolder , CRecentGrepFile , CRecentReplace , CRecentSearch , CRecentTagjumpKeyword , CRecentGrepFolder , CRecentEditNode
  • GetKetaOfChar() : CNativeW
  • GetKeyStr() : CKeyBind
  • GetKeyStrList() : CKeyBind
  • GetKeyWord() : CKeyWordSetMgr
  • GetKeyWordCase() : CKeyWordSetMgr
  • GetKeyWordNum() : CKeyWordSetMgr
  • GetLabel() : CMenuDrawer
  • GetLastIndex() : CBregexp
  • GetLastMessage() : CPPA , CBregexp
  • GetLastPane() : CSplitterWnd
  • GetLayoutLineRef() : DispPos
  • GetLCID() : CWSHSite
  • GetLeftWord() : CViewParser
  • GetLen() : CEOL
  • GetLength() : CDocLine , CLayout , IStringRef , CStringRef , CBinaryInputStream
  • GetLengthWithEOL() : CLayout
  • GetLengthWithoutEOL() : CDocLine , CLayout
  • GetLine() : CMarkMgr::CMark
  • getLineComment() : CLineComment
  • getLineCommentPos() : CLineComment
  • GetLineCount() : CDocLineMgr , CLayoutMgr
  • GetLineInfo() : CDocLineMgr
  • GetLineStr() : CDocLineMgr , CLayoutMgr
  • GetLineStrWithoutEOL() : CDocLineMgr
  • GetListBtnRect() : CTabWnd
  • GetListViewItem_FILENAME() : CPropCommon
  • GetLogicLineNo() : CLayout
  • GetLogicOffset() : CLayout
  • GetLogicPos() : CLayout
  • GetMacroFilename() : CShareData
  • GetMainWindow() : CViewCommander , CProcess
  • GetMatchLen() : CBregexp
  • GetMax() : CMarkMgr
  • GetMaxCount() : CRecycledBuffer
  • GetMaxLineKetas() : CLayoutMgr
  • GetMenuDrawer() : CEditWnd
  • GetMenuLabel() : CKeyBind
  • GetMops() : CInterfaceObjectTypeInfo
  • GetName() : CSMacroMgr , CEOL , CFileExt
  • GetNameByType() : CDlgTagJumpList
  • GetNames() : CInterfaceObjectTypeInfo
  • GetNewLineCode() : CEditDoc
  • GetNext() : CMacro
  • GetNextGroupWnd() : CTabWnd
  • GetNextLineCharCode() : CFileLoad
  • GetNextLinrStr() : CDocLineMgr , CLayoutMgr
  • GetNextPane() : CSplitterWnd
  • GetNum() : CFuncInfoArr , COpeBlk
  • GetOldestItem() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetOpe() : COpeBlk
  • GetOpeBlk() : CViewCommander
  • GetOpenedWindowArr() : CShareData
  • GetOpenedWindowArrCore() : CShareData
  • GetOpenFileNameRecover() : CDlgOpenFile
  • GetOwnerHwnd() : CEditDoc
  • GetPaperName() : CPrint
  • GetPaperSize() : CPrint
  • GetParam() : CSortedTagJumpList
  • GetParentHwnd() : CWnd
  • GetParser() : CEditView
  • GetPath() : CMRUFolder
  • GetPathList() : CMRU , CMRUFolder
  • GetPercent() : CFileLoad
  • GetPOINT() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetPointer() : CharPointerW , CharPointerA
  • GetPos() : CMarkMgr::CMark
  • GetPrevGroupWnd() : CTabWnd
  • GetPrevPane() : CSplitterWnd
  • GetPrintMetrics() : CPrint
  • GetPrintPreviewBarHANDLE() : CPrintPreview
  • GetPrintPreviewBarHANDLE_Safe() : CPrintPreview
  • GetProcessInstance() : CProcess
  • GetProfileDataImp() : CProfile
  • GetProgressHwnd() : CMainStatusBar
  • GetPtr() : CStringRef , CSortedTagJumpList , CDocLine , CLayout , IStringRef
  • GetQueryIfCodeChange() : CommonSetting_File
  • GetRawLength() : CMemory
  • GetRawPtr() : CMemory
  • GetRealVar() : CPPA
  • GetRebarHwnd() : CMainToolBar
  • GetRefTypeInfo() : CInterfaceObjectTypeInfo
  • GetRefTypeOfImplType() : CInterfaceObjectTypeInfo
  • GetRelatedIcon() : CEditWnd
  • GetRestoreBookmarks() : CommonSetting_File
  • GetRestoreCurPosition() : CommonSetting_File
  • GetRightCol() : CTextArea
  • GetRuler() : CEditView
  • GetRulerHeight() : CTextArea
  • GetSakuraFormat() : CClipboard
  • GetSaveFileNameRecover() : CDlgOpenFile
  • GetSearchHwnd() : CMainToolBar
  • GetSearchKey() : CMainToolBar
  • GetSelect() : CViewCommander
  • GetSelectedData() : CEditView
  • GetSelectedParam() : CDlgTagJumpList
  • GetSelectionInfo() : CEditView
  • GetShareData() : CShareData , CRecent , CViewCommander , CProcess
  • GetSizeOfChar() : CNativeW , CNativeA , CShiftJis
  • GetSplitterHwnd() : CEditDoc
  • GetStatusHwnd() : CMainStatusBar
  • GetString() : CBregexp
  • GetStringLen() : CBregexp
  • GetStringLength() : CNativeW , CNativeA
  • GetStringPtr() : CNativeW , CNativeA , CNativeW , CNativeA
  • GetStringPtrOld() : CNativeW
  • GetStringRef() : CLayout , CDocLine
  • GetStringT() : CNativeW
  • GetStringW() : CNativeW , CNativeA
  • GetStrVar() : CPPA
  • GetT() : SysString
  • GetTabName() : CTabWnd
  • GetTabSpace() : CViewCalc , CLayoutMgr
  • GetText() : CClipboard
  • GetTextArea() : CEditView , CTextDrawer
  • GetTextColor() : CTypeSupport
  • GetTextDrawer() : CEditView
  • GetTextMetrics() : CEditView
  • GetTitle() : CSMacroMgr
  • GetTo() : CRangeBase< PointType >
  • GetToolbarHwnd() : CMainToolBar
  • GetTooltipText() : CEditWnd
  • GetTopEditNode() : CShareData
  • GetTopEditWnd() : CShareData
  • GetToPointer() : CRangeBase< PointType >
  • GetTopYohaku() : CTextArea
  • GetTransformFileNameFast() : CShareData
  • GetTrayHwnd() : CControlTray
  • GetType() : CEOL
  • GetTypeAttr() : CInterfaceObjectTypeInfo
  • GetTypeComp() : CInterfaceObjectTypeInfo
  • GetTypeData() : CPropTypes
  • GetTypeFromString() : CEOL
  • GetTypeInfo() : CInterfaceObject
  • GetTypeInfoCount() : CInterfaceObject
  • GetTypeName() : CKeyWordSetMgr
  • GetUnicodeBEValue() : CEOL
  • GetUnicodeValue() : CEOL
  • GetValue() : CEOL , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • GetVarDesc() : CInterfaceObjectTypeInfo
  • GetVersion() : CPPA , COsVersionInfo
  • GetVersionT() : CBregexp
  • GetViewCount() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • GetViewLeftCol() : CTextArea
  • GetViewTopLine() : CTextArea
  • GetW() : SysString
  • GetWindow() : CEditApp , CWSHSite
  • GetWindowSize() : CTipWnd
  • GetWorkBuffer() : DLLSHAREDATA
  • GetWorkBufferCount() : DLLSHAREDATA
  • GetWrapMode() : CEditView
  • GetX() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetX2() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetY() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetY2() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • GetZenkakuDx() : CTextMetrics
  • GiveFeedback() : CDropSource
  • Good() : CStream
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- h -

  • HandleCommand() : CEditDoc , CMacro , CViewCommander
  • HandleFunction() : CMacro
  • HasNegative() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • HasUnderLine() : CTypeSupport
  • HasValidData() : CClipboard
  • HasWinHelpContentsProblem() : COsVersionInfo
  • Height() : CMyRect
  • Hide() : CHokanMgr , CTipWnd
  • HideCaret_() : CCaret
  • HideOtherWindows() : CTabWnd
  • HitTestSplitter() : CSplitterWnd
  • HokanSearch() : CDicMgr
  • HokanSearchByFile() : CEditView
  • HRESULT() : CUxTheme
  • HSplitOnOff() : CSplitterWnd
  • HTMLHelpIsSingle() : CShareData
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- i -

  • Idx2Ptr() : CSMacroMgr
  • ImageList_Duplicate() : CTabWnd
  • ImplementsIUnknown() : ImplementsIUnknown< Base >
  • ImplToFile() : CIoBridge
  • Import_KeyHelp() : CPropTypes
  • Import_Regex() : CPropTypes
  • include() : RcCvt
  • IncrementTimerCount() : CEditWnd
  • Init() : COpeBlk , CProfile , CShareData , CUxTheme , CDllHandler , CWnd
  • init() : RcCvt
  • Init() : CDocLineMgr , CEditDoc , CEOL , CFuncLookup , CLayoutMgr
  • InitAllView() : CEditDoc
  • InitData() : CPropCommon
  • InitDialog_PROP_Macro() : CPropCommon
  • InitDll() : CBregexpDll2 , CDllHandler , CHtmlHelp , CMigemo , CPPA , CUxTheme
  • InitDrawPos() : DispPos
  • Initialize() : CControlProcess , COleLibrary , CNormalProcess , CProcess
  • 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() : CCommandLine , CMacroFactory , TSingleInstance< T >
  • int() : CPPA , CBregexpDll2 , CMigemo
  • INT_PTR() : ComPropSheetInfo
  • Invoke() : CInterfaceObjectTypeInfo , CInterfaceObject
  • IO_ColorSet() : CShareData
  • IOProfileData() : CDataProfile
  • IOProfileData_WrapInt() : CDataProfile
  • IsActiveApp() : CEditWnd
  • IsAddClipText() : CFuncInfo
  • IsAutoBackupEnabled() : CommonSetting_Backup
  • IsAvailable() : CDllHandler , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • IsBkBitmap() : CEditView
  • IsBomExist() : CFileLoad
  • IsBookMarked() : CDocLine
  • IsBoxSelecting() : CViewSelect
  • IsBracket() : CEditView
  • IsCanceled() : CDlgCancel
  • IsCurrentPositionSelected() : CEditView
  • IsCurrentPositionSelectedTEST() : CEditView
  • IsCurrentPositionURL() : CEditView
  • IsDebugMode() : CCommandLine
  • IsDiffMarked() : CDocLine
  • IsDiffUse() : CDocLineMgr
  • IsDisp() : CTypeSupport
  • ISearchBack() : CEditView
  • ISearchEnter() : CEditView
  • ISearchExec() : CEditView
  • ISearchExit() : CEditView
  • ISearchSetStatusMsg() : CEditView
  • ISearchWordMake() : CEditView
  • IsEditWnd() : CShareData
  • IsEmptyLine() : CDocLine
  • IsEnabled() : CPassiveTimer , MacroRec , CSMacroMgr
  • IsEnablePaste() : CEditDoc
  • IsEnableRedo() : CEditDoc , COpeBuf
  • IsEnableUndo() : COpeBuf , CEditDoc
  • IsEndOfLine() : CLayoutMgr
  • IsEqual() : CMemory , CNativeW
  • IsExistControlProcess() : CProcessFactory
  • IsFatFont() : CTypeSupport
  • IsFavorite() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • IsFileOpenInThisWindow() : CEditDoc
  • IsFilePathAvailable() : CEditDoc
  • IsGrepDlg() : CCommandLine
  • IsGrepMode() : CCommandLine
  • IsImeON() : CEditView
  • IsInPreviewMode() : CEditWnd
  • IsInsMode() : CEditDoc , CEditView
  • IsISearchEnabled() : CEditView
  • IsKinsokuHead() : CLayoutMgr
  • IsKinsokuKuto() : CLayoutMgr
  • IsKinsokuPosHead() : CLayoutMgr
  • IsKinsokuPosKuto() : CLayoutMgr
  • IsKinsokuPosTail() : CLayoutMgr
  • IsKinsokuTail() : CLayoutMgr
  • IsKutoTen() : CLayoutMgr
  • IsLineOne() : CRangeBase< PointType >
  • IsLogicalLineTop() : COutlinePython
  • IsLookAhead() : CBregexp
  • IsModificationForbidden() : CEditDoc
  • IsModified() : CEditDoc
  • IsModify() : CKeyWordSetMgr
  • IsModifyed() : CDocLine
  • IsMouseSelecting() : CViewSelect
  • IsNoWindow() : CCommandLine
  • IsOfnV5() : CDlgOpenFile
  • IsOne() : CRangeBase< PointType >
  • 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() : CViewSelect
  • IsTextSelecting() : CViewSelect
  • IsThemeActive() : CUxTheme
  • IsTopEditWnd() : CShareData
  • IsUTF7Direct() : CUtf7
  • IsValid() : STabGroupInfo , CRangeBase< PointType > , 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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • 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
  • PPA_GetArgStr() : CPPA
  • PPA_GetStrVar() : CPPA
  • PreprocessCommand_hokan() : CEditView
  • PrevGroup() : CTabWnd
  • PreviCreateWindow() : CWnd
  • PrevOrNextWord() : CDocLineMgr , CLayoutMgr
  • PrevValid() : CMarkMgr
  • PrevWord() : CLayoutMgr
  • Print_DrawLine() : CPrintPreview
  • PrintClose() : CPrint
  • PrintDlg() : CPrint
  • PrintEndPage() : CPrint
  • PrintMenubarMessage() : CEditWnd
  • PrintOpen() : CPrint
  • PrintPreviewBar_DlgProc() : CPrintPreview
  • PrintPreviewModeONOFF() : CEditWnd
  • PrintSelectionInfoMsg() : CViewSelect
  • PrintStartPage() : CPrint
  • Proc_migemo_get_operator() : CMigemo
  • Proc_migemo_open() : CMigemo
  • Proc_migemo_query() : CMigemo
  • ProcessCommand_isearch() : CEditView
  • ProcSearchBox() : CMainToolBar
  • profile_to_value() : CDataProfile
  • PropTypesKeyHelp() : CPropTypes
  • PropTypesRegex() : CPropTypes
  • PtInRect() : CStrictRect< INT_TYPE, POINT_TYPE >
  • push_back() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • PushTagJump() : CShareData
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- q -

  • QueryContinueDrag() : CDropSource
  • QueryGetData() : CDataObject
  • QueryInterface() : CWSHSite , CInterfaceObject , ImplementsIUnknown< Base > , CYbInterfaceImpl< BASEINTERFACE >
  • QueryInterfaceImpl() : CYbInterfaceBase
  • QuotedPrintable_Decode() : CJis
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- r -

  • RcCvt() : RcCvt
  • Read() : CFileLoad , CBinaryInputStream , CRunningTimer
  • ReadBufEmpty() : CFileLoad
  • ReadFile() : CDocLineMgr
  • ReadLine() : CFileLoad
  • ReadLineW() : CTextInputStream
  • ReadOneline() : CProfile
  • ReadProfile() : CProfile
  • ReadRuleFile() : CEditDoc
  • ReadyCommands() : CWSHMacroManager
  • RearrangeKeywordSet() : CPropTypes
  • Receive() : Variant
  • Redraw() : CDlgFuncList , CEditView
  • RedrawAll() : CEditView
  • RedrawInactivePane() : CEditWnd
  • Refresh() : CTabWnd
  • RefreshList() : CDlgFavorite
  • RefreshListOne() : CDlgFavorite
  • RegexIsKeyword() : CRegexKeyword
  • RegexKakomiCheck() : CPropTypes
  • RegexKeyCheckSyntax() : CRegexKeyword
  • RegexKeyCompile() : CRegexKeyword
  • RegexKeyInit() : CRegexKeyword
  • RegexKeyLineStart() : CRegexKeyword
  • RegexKeySetTypes() : CRegexKeyword
  • Regist() : CommonValue< T >
  • Register_DropTarget() : CDropTarget
  • RegisterCreator() : CMacroFactory
  • RegisterEntries() : CDllHandler
  • RegisterWC() : CWnd
  • Release() : CWSHSite , ImplementsIUnknown< Base >
  • ReleaseCompileBuffer() : CBregexp
  • ReleaseFuncDesc() : CInterfaceObjectTypeInfo
  • ReleaseTypeAttr() : CInterfaceObjectTypeInfo
  • ReleaseVarDesc() : CInterfaceObjectTypeInfo
  • ReloadAutoSaveParam() : CEditDoc
  • ReloadCurrentFile() : CEditDoc
  • RenewItemState() : CDlgWinSize
  • ReorderTab() : CShareData , CTabWnd
  • Replace() : CBregexp , CNativeW , CNativeA
  • Replace_j() : CNativeA
  • ReplaceData() : CDocLineMgr
  • ReplaceData_CEditView() : CEditView
  • ReplaceData_CLayoutMgr() : CLayoutMgr
  • RequestCloseAllEditor() : CShareData
  • ReserveMethods() : CInterfaceObject
  • Reset() : SSearchOption , CPassiveTimer , CRunningTimer
  • ResetAllBookMark() : CDocLineMgr
  • ResetAllDiffMark() : CDocLineMgr
  • ResetAllFavorite() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ResetAllKeyWordSet() : CKeyWordSetMgr
  • ResetAllModifyFlag() : CDocLineMgr
  • ResetContents() : CMenuDrawer
  • ResetDrawCol() : DispPos
  • ResetFavorite() : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • ResetGroupId() : CShareData
  • resize() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • RestorePhysPosOfAllView() : CEditWnd
  • Revoke_DropTarget() : CDropTarget
  • RewindColors() : CTypeSupport
  • RewindFont() : CTypeSupport
  • RewindPen() : CTypeSupport
  • RTrimPrevLine() : CEditView
  • Run() : CProcess
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- s -

  • Save() : CMacro , CSMacroMgr , CommonValueInfo
  • SaveFile() : CEditDoc
  • SaveFileDialog() : CEditDoc
  • SaveKeyMacro() : CKeyMacroMgr
  • SavePhysPosOfAllView() : CEditWnd
  • SaveShareData() : CShareData
  • ScanEncoding() : CESI
  • ScanLine() : CCppPreprocessMng
  • scanNext() : CMemoryIterator
  • ScanNormal() : COutlinePython
  • ScanString() : COutlinePython
  • ScrollAtH() : CEditView
  • ScrollAtV() : CEditView
  • ScrollByH() : CEditView
  • ScrollByV() : CEditView
  • Search() : CDicMgr , CHokanMgr
  • SearchBestTag() : CDlgTagJumpList
  • SearchBookMark() : CDocLineMgr
  • SearchBracket() : CEditView
  • SearchBracketBackward() : CEditView
  • SearchBracketBackward2() : CEditView
  • SearchBracketForward() : CEditView
  • SearchBracketForward2() : CEditView
  • SearchDiffMark() : CDocLineMgr
  • SearchIntArr() : CPropCommon
  • SearchKeyWord2() : CKeyWordSetMgr
  • SearchLineByLayoutY() : CLayoutMgr
  • SearchNextWordPosition() : CWordParse
  • SearchString() : CDocLineMgr
  • SearchWord() : CDocLineMgr , CLayoutMgr
  • SeekEnd() : CStream
  • SeekSet() : CStream
  • SelectBaseDir_Macro() : CPropCommon
  • SelectBeginBox() : CViewSelect
  • SelectBeginNazo() : CViewSelect
  • SelectBeginWord() : CViewSelect
  • SelectColor() : CPropCommon , CPropTypes
  • SelectEnd() : CViewSelect
  • SelectFolder() : CDlgTagsMake
  • SelectFont() : CEditDoc
  • SendMessageToAllEditors() : CShareData
  • SendStatusMessage() : CEditView , CEditWnd
  • SendStatusMessage2() : CEditView , CMainStatusBar
  • SendStatusMessage2IsEffective() : CMainStatusBar
  • Separate() : CTabWnd
  • SeparateGroup() : CShareData , CTabWnd
  • Set() : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType >
  • set() : CMyString
  • Set() : CMyPoint , CMySize , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • SetActivePane() : CEditWnd , CSplitterWnd
  • SetAlertIfFileNotExist() : CommonSetting_File
  • SetAreaLeft() : CTextArea
  • SetAreaTop() : CTextArea
  • SetAutoBackupInterval() : CommonSetting_Backup
  • SetAutoMIMEdecode() : CommonSetting_File
  • SetBackupCount() : CommonSetting_Backup
  • SetBackupExtChar() : CommonSetting_Backup
  • SetBackupOpt() : CommonSetting_Backup
  • SetBackupType() : CommonSetting_Backup
  • SetBackupTypeAdv() : CommonSetting_Backup
  • SetBkColor() : CTypeSupport
  • SetBookMark() : CDocLine
  • SetBookMarks() : CDocLineMgr
  • SetBoxSelect() : CViewSelect
  • SetBracketPairPos() : CEditView
  • SetCache() : LocalCache
  • SetCaretLayoutPos() : CCaret
  • SetCaretLogicPos() : CCaret
  • SetCaretSize() : CCaret
  • SetCaretType() : CommonSetting_General
  • SetCategory2Combo() : CFuncLookup
  • SetChildWndArr() : CSplitterWnd
  • SetColors() : CTypeSupport
  • SetColorTypePrev() : CLayout
  • SetCurrentColor() : CEditView
  • SetCurrentFocus() : CEditWnd
  • SetCurrentIdx() : CSMacroMgr
  • SetData() : CDialog , CDlgCompare , CDlgCtrlCode , CDlgDiff , CDlgExec , CDlgFavorite , CDlgFind , CDlgFuncList , CDlgGrep , CDlgJump , CDlgKeywordSelect , CDlgPrintPage , CDlgPrintSetting , CDlgProperty , CDlgReplace , CDlgTagJumpList , CDlgTagsMake , CDlgTypeList , CDlgWinSize , CDataObject
  • SetData_KeyHelp() : CPropTypes
  • SetData_p1() : CPropCommon , CPropTypes
  • SetData_p10() : CPropCommon
  • SetData_p2() : CPropCommon , CPropTypes
  • 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
  • SetDebugModeOFF() : CEditWnd
  • SetDebugModeON() : CEditWnd
  • SetDeclare() : CPPA
  • SetDefine() : CPPA
  • SetDefProc() : CPPA
  • SetDiffMark() : CDocLine
  • SetDiffMarkRange() : CDocLineMgr
  • SetDocumentIcon() : CEditDoc
  • SetDocumentType() : CEditDoc
  • SetDocumentTypeWhenCreate() : CEditWnd
  • SetDragMode() : CEditWnd
  • SetDragPosOrg() : CEditWnd
  • SetDrawSwitch() : CEditView
  • setErr() : RcCvt
  • SetErrProc() : CPPA
  • SetFavorite() : CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • SetFileName() : CDlgTagJumpList
  • SetFilePath() : CEditDoc
  • SetFinishProc() : CPPA
  • SetFocusSearchBox() : CMainToolBar
  • SetFocusToPrintPreviewBar() : CPrintPreview
  • SetFont() : CEditView , CTypeSupport
  • SetFooter() : CPrintPreview
  • SetFrom() : CRangeBase< PointType >
  • SetFromX() : CRangeBase< PointType >
  • SetFromY() : CRangeBase< PointType >
  • SetGrepResult() : CEditView
  • SetHankakuDx() : CTextMetrics
  • SetHankakuDy() : CTextMetrics
  • SetHankakuHeight() : CTextMetrics
  • SetHankakuWidth() : CTextMetrics
  • SetHeader() : CPrintPreview
  • SetIMECompFormFont() : CEditView
  • SetIMECompFormPos() : CEditView
  • SetImeMode() : CEditDoc
  • SetInsMode() : CEditDoc , CEditView
  • SetInterval() : CPassiveTimer
  • SetIntFunc() : CPPA
  • SetIntObj() : CPPA
  • SetIntVar() : CPPA
  • SetKeyNameArrVal() : CShareData
  • SetKeyword() : CDlgTagJumpList
  • SetKeyWordArr() : CKeyWordSetMgr
  • SetKeyWordCase() : CKeyWordSetMgr
  • SetLayoutInfo() : CLayoutMgr
  • SetLayoutLineRef() : DispPos
  • SetLine() : CRangeBase< PointType >
  • SetListItem() : CFuncLookup
  • SetListVB() : CDlgFuncList
  • SetListViewItem_FILENAME() : CPropCommon
  • SetLTRB() : CMyRect
  • SetMacro2List_Macro() : CPropCommon
  • SetMainWindow() : CProcess
  • SetMax() : CMarkMgr
  • SetModified() : CEditDoc
  • SetModifyFlg() : CDocLine
  • SetNativeData() : CNativeW , CNativeA
  • SetNewLineCode() : CEditDoc
  • SetNext() : CMacro
  • SetNoModified() : COpeBuf
  • SetOpeBlk() : CViewCommander
  • SetParentCaption() : CEditDoc , CEditView
  • SetPosition() : CMarkMgr::CMark
  • SetPreviewFontHan() : CPrintPreview
  • SetPreviewFontZen() : CPrintPreview
  • SetPrintSetting() : CPrintPreview
  • SetProc() : CPPA
  • SetProfileDataImp() : CProfile
  • SetQueryIfCodeChange() : CommonSetting_File
  • SetRawData() : CMemory
  • SetReadingMode() : CProfile
  • SetReadOnly() : CEditDoc
  • SetRealFunc() : CPPA
  • SetRealObj() : CPPA
  • SetRealVar() : CPPA
  • SetReconvertStruct() : CEditView
  • SetRedrawFlag() : CRuler
  • SetRegexpVersion() : CPropCommon
  • SetRestoreBookmarks() : CommonSetting_File
  • SetRestoreCurPosition() : CommonSetting_File
  • SetSelectArea() : CViewSelect
  • SetSelectionFromReonvert() : CEditView
  • SetSolidPen() : CTypeSupport
  • SetSource() : CPPA
  • SetStatusText() : CMainStatusBar
  • SetStrFunc() : CPPA
  • SetString() : CNativeW , CNativeA , CNativeW , CNativeA
  • SetStringNew() : CNativeA
  • SetStringOld() : CNativeW
  • SetStringT() : CNativeW , CNativeA , CNativeW , CNativeA
  • SetStringW() : CNativeA , CNativeW , CNativeA
  • SetStrObj() : CPPA
  • SetStrVar() : CPPA
  • SetTBBUTTONVal() : CMenuDrawer
  • SetText() : CDataObject , CClipboard
  • SetTextColor() : CTypeSupport
  • SettingInitialize() : CPrint
  • SetTo() : CRangeBase< PointType >
  • SetToolBarImages() : CImageListMgr
  • SetTopYohaku() : CTextArea
  • SetToX() : CRangeBase< PointType >
  • SetToY() : CRangeBase< PointType >
  • SetTraceOutSource() : CShareData
  • SetTree() : CDlgFuncList
  • SetTreeCpp() : CDlgFuncList
  • SetTreeJava() : CDlgFuncList
  • SetType() : CEOL
  • SetTypeData() : CPropTypes
  • SetTypeName() : CKeyWordSetMgr
  • SetValue() : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • SetViewLeftCol() : CTextArea
  • SetViewTopLine() : CTextArea
  • SetWindowIcon() : CEditWnd
  • SetWindowTheme() : CUxTheme
  • SetWritingMode() : CProfile
  • SetX() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • SetXs() : CRangeBase< PointType >
  • SetXYWH() : CMyRect
  • SetY() : CMyPoint , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >
  • 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_() : CCaret
  • ShowEditCaret() : CCaret
  • ShowFuncHelp() : CEditApp
  • ShowHideWindow() : CTabWnd
  • ShowHokanMgr() : CEditView
  • ShowKeywordHelp() : CEditView
  • ShowTip() : CHokanMgr
  • size() : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • SizeBox_ONOFF() : CFuncKeyWnd
  • SJISToEUC() : CEuc
  • SJIStoJIS() : CJis
  • SJISToUnicode() : CShiftJis
  • SmartIndent_CPP() : CEditView
  • SortKeyWord() : CKeyWordSetMgr
  • SortListView() : CDlgFuncList
  • SortTree() : CDlgFuncList
  • SPACEToTAB() : CNativeA
  • SplitBoxOnOff() : CEditView
  • SSearchOption() : SSearchOption
  • STabGroupInfo() : STabGroupInfo
  • StartControlProcess() : CProcessFactory
  • StartTimer() : CDlgTagJumpList
  • StaticString() : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • stdError() : CPPA
  • stdFinishProc() : CPPA
  • stdIntFunc() : CPPA
  • STDMETHOD_() : CYbInterfaceImpl< BASEINTERFACE >
  • stdProc() : CPPA
  • stdStrFunc() : CPPA
  • stdStrObj() : CPPA
  • StopTimer() : CDlgTagJumpList
  • StringBufferA() : StringBufferA
  • StringBufferW() : StringBufferW
  • StrSJIStoJIS() : CJis
  • SubclassWindow() : CUrlWnd
  • SwapHLByte() : CMemory
  • SyncScrollH() : CEditView
  • SyncScrollV() : CEditView
  • SysString() : SysString
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- t -

  • TabListMenu() : CTabWnd
  • TABToSPACE() : CNativeA
  • TabWindowNotify() : CTabWnd
  • TabWnd_ActivateFrameWindow() : CTabWnd
  • TabWndDispatchEvent() : CTabWnd
  • TagJumpSub() : CEditView
  • TcharReceiver() : TcharReceiver< RECEIVE_CHAR_TYPE >
  • Terminate() : CControlProcess , CNormalProcess , CProcess , CRecent , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • TerminateApplication() : CControlTray
  • TestWriteQuit() : CProcessFactory
  • TextArea_OnSize() : CTextArea
  • Timer_ONOFF() : CEditWnd , CFuncKeyWnd
  • ToLower() : CNativeA
  • ToolBarOwnerDraw() : CMainToolBar
  • ToUpper() : CNativeA
  • ToZenkaku() : CNativeA
  • TraceOut() : CShareData
  • TransformFileName_MakeCache() : CShareData
  • TranslateCommand_grep() : CEditView
  • TranslateCommand_isearch() : CEditView
  • TrayMessage() : CControlTray
  • TSingleInstance() : TSingleInstance< T >
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- u -

  • UnicodeBEToUnicode() : CUnicodeBe
  • UnicodeToCode() : CCodeBase , CJis , CUtf7 , CUtf8 , CShiftJis , CEuc , CUnicode , CUnicodeBe
  • UnicodeToEUC() : CEuc
  • UnicodeToJIS() : CJis
  • UnicodeToSJIS() : CShiftJis
  • UnicodeToUnicode() : CUnicode
  • UnicodeToUnicodeBE() : CUnicodeBe
  • UnicodeToUTF7() : CUtf7
  • UnicodeToUTF8() : CUtf8
  • UnInitialize() : COleLibrary
  • UnloadAll() : CSMacroMgr
  • Unlock() : CMutex
  • UnLock() : CCaretUnderLine
  • UnlockDocumentType() : CEditDoc
  • Unregister() : CMacroFactory
  • Update() : CTextMetrics
  • UpdateAreaMetrics() : CTextArea
  • UpdateBackupFile() : CPropCommon
  • UpdateData() : CDlgTagJumpList
  • UpdateFont() : CViewFont
  • UpdateKeyWord() : CKeyWordSetMgr
  • UpdateView() : CRecentImp< DATA_TYPE, RECEIVE_TYPE > , CRecent
  • UpperLeft() : CStrictRect< INT_TYPE, POINT_TYPE > , CMyRect
  • UrlWndProc() : CUrlWnd
  • UTF7ToUnicode() : CUtf7
  • UTF8ToUnicode() : CUtf8
  • UUDECODE() : CConvert_UuDecode
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- v -

  • value_to_profile() : CDataProfile
  • Variant() : Variant
  • VHSplitOnOff() : CSplitterWnd
  • ViewDiffInfo() : CEditView
  • Views_DisableSelectArea() : CEditWnd
  • Views_DispatchEvent() : CEditWnd
  • Views_Redraw() : CEditWnd
  • Views_RedrawAll() : CEditWnd
  • void() : CPPA , CBregexpDll2 , CPPA , CMigemo , CPPA , CMigemo
  • VSplitOnOff() : CSplitterWnd
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


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
  • z
  • ~

- w -

  • WaitForInitializedControlProcess() : CProcessFactory
  • WhatKindOfChar() : CWordParse
  • WhereCurrentWord() : CLayoutMgr , CDocLineMgr
  • WhereCurrentWord_2() : CWordParse
  • Width() : CMyRect
  • WindowTopMost() : CEditWnd
  • WinListMenu() : CEditWnd
  • wlength() : CMyString
  • Write() : CFileWrite , CBinaryOutputStream
  • WriteF() : CTextOutputStream
  • WriteFile() : CDocLineMgr , CProfile
  • WriteInt() : CTextOutputStream
  • WriteProfile() : CProfile
  • WriteString() : CTextOutputStream
  • WriteSz() : CFileWrite
  • WriteTrace() : CRunningTimer
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 関連する関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数

  • CWndProc : CWnd
  • CYbInterfaceBase : COleLibrary
  • OFNHookProc : CDlgOpenFile
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 型定義

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • w

- a -

  • AddsubIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • AssignIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >

- b -

  • BOOL : CPPA
  • BREGEXP_BRegexpVersionW2 : CBregexpDll2

- c -

  • CalcIndentProc : CLayoutMgr
  • CastIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • CMarkChain : CMarkMgr
  • CMarkIterator : CMarkMgr
  • CMethodInfoList : CInterfaceObject
  • CmpIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • Creator : CMacroFactory

- d -

  • DataType : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • dict_file : CMigemo
  • dict_id : CMigemo
  • double : CPPA

- e -

  • ElementType : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >

- f -

  • FavoriteInfoTag : CDlgFavorite
  • FN_ImageList_Duplicate : CTabWnd

- i -

  • index : CMigemo
  • int : CPPA
  • IntType : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CRangeBase< PointType > , CStrictRect< INT_TYPE, POINT_TYPE >

- l -

  • limit : CBregexpDll2

- m -

  • MacroEngineRep : CMacroFactory
  • MAP_STR_STR : CProfile
  • Me : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT > , CommonValue< T > , StaticString< CHAR_TYPE, N_BUFFER_COUNT > , CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE > , CLaxInteger , CStrictRect< INT_TYPE, POINT_TYPE > , CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • msg : CBregexpDll2

- n -

  • NotAddsubIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotAssignIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotCastIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • NotCmpIntegerType : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >

- o -

  • op : CMigemo

- p -

  • PAIR_STR_STR : CProfile
  • PCHAR : CMemory
  • PointType : CStrictRect< INT_TYPE, POINT_TYPE >
  • PPA_AddRealObj : CPPA
  • PPA_Execute : CPPA
  • PPA_GetArgBStr : CPPA
  • PPA_GetArgReal : CPPA
  • PPA_GetBStrVar : CPPA
  • PPA_GetRealVar : CPPA
  • PPA_GetVersion : CPPA
  • PPA_IsRunning : CPPA
  • PPA_SetDeclare : CPPA
  • PPA_SetDefProc : CPPA
  • PPA_SetErrProc : CPPA
  • PPA_SetFinishProc : CPPA
  • PPA_SetIntFunc : CPPA
  • PPA_SetRealFunc : CPPA
  • PPA_SetRealObj : CPPA
  • PPA_SetRealVar : CPPA
  • PPA_SetStrFunc : CPPA
  • Proc_HtmlHelp : CHtmlHelp
  • Proc_migemo_setproc_char2int : CMigemo
  • Proc_migemo_setproc_int2char : CMigemo
  • PWCHAR : CNativeW

- r -

  • ReceiveType : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • rxp : CBregexpDll2

- s -

  • string : CMigemo
  • SuperIntType : CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >

- t -

  • TagJumpInfo : CSortedTagJumpList
  • target : CBregexpDll2
  • targetbeg : CBregexpDll2
  • targetendp : CBregexpDll2
  • tstring : CDataProfile , CProfile
  • Type : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true > , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >

- w -

  • wstring : CDataProfile , CProfile
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- _ -

  • _instance : CCommandLine , CShareData , CMigemo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- j -

  • jname : ctrl_info_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- k -

  • keyword : CSortedTagJumpList::tagjump_info_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- l -

  • left : CStrictRect< INT_TYPE, POINT_TYPE >
  • LPARAM : ComPropSheetInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- m -

  • m_aCommands : DLLSHAREDATA
  • m_aElements : StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • m_aFavoriteInfo : CDlgFavorite
  • m_aGrepFiles : DLLSHAREDATA
  • m_aGrepFolders : DLLSHAREDATA
  • m_anHankakuDx : CTextMetrics
  • m_anZenkakuDx : CTextMetrics
  • m_aReplaceKeys : DLLSHAREDATA
  • m_aSearchKeys : DLLSHAREDATA
  • m_aTagJumpKeywords : DLLSHAREDATA
  • m_bActivateByMouse : CEditView
  • m_bAddCRLFWhenCopy : CommonSetting_Edit
  • m_bAlertIfFileNotExist : CommonSetting_File
  • m_bAllMark : CDocLine
  • m_bAllPage : CDlgPrintPage
  • m_base64decode : CJis
  • m_bAutoCloseDlgFind : CommonSetting_Search
  • m_bAutoCloseDlgFuncList : CommonSetting_OutLine
  • m_bAutoCloseDlgReplace : CommonSetting_Search
  • m_bAutoColmnPaste : CommonSetting_Edit
  • m_bAutoIndent : Types
  • m_bAutoIndent_ZENSPACE : Types
  • m_bAutoMIMEdecode : CommonSetting_File
  • m_bBackUp : CommonSetting_Backup
  • m_bBackUpDialog : CommonSetting_Backup
  • m_bBackUpDustBox : CommonSetting_Backup
  • m_bBackUpFolder : CommonSetting_Backup
  • m_bBackUpPathAdvanced : CommonSetting_Backup
  • m_bBeginBoxSelect : CViewSelect
  • m_bBeginLineSelect : CViewSelect
  • m_bBeginSelect : CViewSelect
  • m_bBeginWordSelect : CViewSelect
  • m_bBom : CDlgOpenFile
  • m_bBomExist : CEditDoc , CFileLoad
  • m_bBookMark : CDocLine
  • m_bCANCEL : CDlgCancel
  • m_bCanceled : CDlgReplace
  • m_bCaretShowFlag : CCaret
  • m_bCaretTextForSearch : CommonSetting_Search
  • m_bCheckFileTimeStamp : CommonSetting_File
  • m_bChgWndByWheel : CommonSetting_TabBar
  • m_bCloseAllConfirm : CommonSetting_General
  • m_bCloseBtnHilighted : CTabWnd
  • m_bClosing : EditNode
  • m_bCommandRunning : CEditView
  • m_bCompareAndTileHorz : CDlgCompare , CommonSetting_Compare
  • m_bConsecutiveAll : CDlgReplace , CommonSetting_Search
  • m_bCopyAndDisablSelection : CommonSetting_Edit
  • m_bCreate : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_bCreatedTrayIcon : CControlTray
  • m_bCurSrchKeyMark : CEditView
  • m_bDebugMode : CCommandLine , CEditDoc
  • m_bDiffMark : CDocLine
  • m_bDisp : ColorInfo , ColorInfoIni
  • m_bDispComment : CLayoutMgr
  • m_bDispExitingDialog : CommonSetting_General
  • m_bDispFUNCKEYWND : CommonSetting_Window
  • m_bDispSString : CLayoutMgr
  • m_bDispSTATUSBAR : CommonSetting_Window
  • m_bDispTabIcon : CommonSetting_TabBar
  • m_bDispTabWnd : CommonSetting_TabBar
  • m_bDispTabWndMultiWin : CommonSetting_TabBar
  • m_bDispTOOLBAR : CommonSetting_Window
  • m_bDispWString : CLayoutMgr
  • m_bDoing_UndoRedo : CEditDoc , CEditView
  • m_bDragging : CSplitterWnd
  • m_bDragMode : CEditView , CEditWnd
  • m_bDragSource : CEditView
  • m_bDrawBracketPairFlag : CEditView
  • m_bDrawSelectArea : CViewSelect
  • m_bDrawSWITCH : CEditView
  • m_bDropFileAndClose : CommonSetting_File
  • m_bEditWndChanging : DLLSHAREDATA
  • m_bEnableLineModePaste : CommonSetting_Edit
  • m_bEnableUnmodifiedOverwrite : CommonSetting_File
  • m_bError : CPPA
  • m_bExecutingKeyMacro : CEditView
  • m_bExitConfirm : CommonSetting_General
  • m_bFatFont : ColorInfo , ColorInfoIni
  • m_bFontIs_FIXED_PITCH : CommonSetting_View
  • m_bFooterUse : PRINTSETTING
  • m_bFromThisText : CDlgGrep
  • m_bFunclistSetFocusOnJump : CommonSetting_OutLine
  • m_bGrepDefaultFolder : CommonSetting_Search
  • m_bGrepDlg : CCommandLine
  • m_bGrepExitConfirm : CommonSetting_Search
  • m_bGrepMode : CCommandLine , CEditDoc
  • m_bGrepOutputLine : CDlgGrep , CommonSetting_Search
  • m_bGrepRealTimeView : CommonSetting_Search
  • m_bGrepRunning : CEditDoc
  • m_bGrepSubFolder : CommonSetting_Search
  • m_bGTJW_LDBLCLK : CommonSetting_Search
  • m_bGTJW_RETURN : CommonSetting_Search
  • m_bHaveFavorite : CDlgFavorite::FavoriteInfoTag
  • m_bHaveView : CDlgFavorite::FavoriteInfoTag
  • m_bHeaderUse : PRINTSETTING
  • m_bHilighted : CUrlWnd
  • m_bHokan : CEditView
  • m_bHokanKey_RETURN : CommonSetting_Helper
  • m_bHokanKey_RIGHT : CommonSetting_Helper
  • m_bHokanKey_SPACE : CommonSetting_Helper
  • m_bHokanKey_TAB : CommonSetting_Helper
  • m_bHokanLoHiCase : Types
  • m_bHovering : CTabWnd
  • m_bHtmlHelpIsSingle : Types , CommonSetting_Helper
  • 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 : CommonSetting_General
  • m_bIsGrep : EditNode , FileInfo
  • m_bIsINSMode : CommonSetting_General
  • m_bIsModified : CDlgCompare , CDlgDiff , CEditDoc , FileInfo
  • m_bIsModifiedDst : CDlgDiff
  • m_bIsUtf8 : CTextInputStream
  • m_bitpattern : CCppPreprocessMng
  • m_bJumpSingleClickURL : CommonSetting_Edit
  • m_bKinsokuHead : CLayoutMgr , Types
  • m_bKinsokuKuto : CLayoutMgr , Types
  • m_bKinsokuRet : CLayoutMgr , Types
  • m_bKinsokuTail : CLayoutMgr , Types
  • m_bLeft : CDropSource , CConvert_Trim
  • m_bLineNumIsCRLF : CDlgFuncList , Types , DLLSHAREDATA
  • m_bListBtnHilighted : CTabWnd
  • m_bMark : CDocLine
  • m_bMarkArray : CDocLine
  • m_bMarkUpBlankLineEnable : CommonSetting_OutLine
  • m_BMatch : CBregexpDll2
  • m_BMatchEx : CBregexpDll2
  • m_bMenuIcon : CommonSetting_Window
  • m_bModal : CDialog
  • m_bModified : CDlgFileUpdateQuery
  • m_bModify : CDocLine
  • m_bMRUArrFavorite : DLLSHAREDATA
  • m_bNoCaretMoveByActivation : CommonSetting_General
  • m_bNoFilterSaveFile : CommonSetting_File
  • m_bNoFilterSaveNew : CommonSetting_File
  • m_bNOTIFYNOTFOUND : CDlgFind , CDlgReplace , CommonSetting_Search
  • m_bNotOverWriteCRLF : CommonSetting_Edit
  • m_bNoWindow : CCommandLine
  • m_bOPENFOLDERArrFavorite : DLLSHAREDATA
  • m_bOpenResult : CClipboard
  • m_bOverflow : CSortedTagJumpList
  • m_bPLSQL : CDlgJump
  • m_bPrevCommand : CViewCommander
  • 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 : CommonSetting_File
  • m_bRead : CProfile
  • m_bReadOnly : CCommandLine , CEditDoc
  • m_bReadPrivate : IniFolder
  • m_bRecordingKeyMacro : DLLSHAREDATA
  • m_bRedrawRuler : CRuler
  • m_BRegexpVersion : CBregexpDll2
  • m_BRegfree : CBregexpDll2
  • m_bReloadWhenExecute : MacroRec
  • m_bRememberOutlineWindowPos : CommonSetting_OutLine
  • m_bRestoreBookmarks : CommonSetting_File
  • m_bRestoreCurPosition : CommonSetting_File
  • m_bRTrimPrevLine : Types
  • m_bSameTabWidth : CommonSetting_TabBar
  • m_bScrollBarHorz : CommonSetting_Window
  • m_bSearch : CEditView
  • m_bSearchAll : CommonSetting_Search
  • m_bSelectClickedURL : CommonSetting_Edit
  • m_bSelected : CDlgReplace
  • m_bSelectedArea : CDlgReplace , CommonSetting_Search
  • m_bSelectingLock : CViewSelect
  • m_bSizeBox : CFuncKeyWnd
  • m_bSortTabList : CommonSetting_TabBar
  • m_BSplit : CBregexpDll2
  • m_bSplitterWndHScroll : CommonSetting_Window
  • m_bSplitterWndVScroll : CommonSetting_Window
  • m_bStayTaskTray : CommonSetting_General
  • m_bStopsBothEndsWhenSearchParagraph : CommonSetting_General
  • m_bStopsBothEndsWhenSearchWord : CommonSetting_General
  • m_bSubFolder : CDlgGrep
  • m_BSubst : CBregexpDll2
  • m_BSubstEx : CBregexpDll2
  • m_bSuccess : COsVersionInfo
  • m_bTab_CloseOneWin : CommonSetting_TabBar
  • m_bTab_ListFull : CommonSetting_TabBar
  • m_bTab_RetainEmptyWin : CommonSetting_TabBar
  • m_bTabArrow : Types
  • m_bTagJumpAnyWhere : CDlgTagJumpList , DLLSHAREDATA
  • m_bTagJumpICase : CDlgTagJumpList , DLLSHAREDATA
  • m_bTimerFlag : CHokanMgr
  • m_bToolBarIsFlat : CommonSetting_ToolBar
  • m_BTrans : CBregexpDll2
  • m_buf : CRecycledBuffer , CRecycledBufferDynamic
  • m_bUIPI : CEditWnd
  • m_bUnderLine : ColorInfo , ColorInfoIni
  • m_bUnderLineON : CEditView
  • m_bUseBom : CDlgOpenFile
  • m_bUseCaretKeyWord : CommonSetting_Search
  • m_bUseDocumentIcon : Types
  • m_bUseEol : CDlgOpenFile
  • m_bUseHokan : CommonSetting_Helper
  • m_bUseHokanByFile : Types
  • m_bUseKeyHelpAllSearch : Types
  • m_bUseKeyHelpKeyDisp : Types
  • m_bUseKeyHelpPrefix : Types
  • m_bUseKeyWordHelp : Types
  • m_bUseOLE_DragDrop : CommonSetting_Edit
  • m_bUseOLE_DropSource : CommonSetting_Edit
  • m_bUseRegexKeyword : CRegexKeyword , Types
  • m_bUseTaskTray : CommonSetting_General
  • m_bUseTrayMenu : CControlTray
  • m_bVertical : CSplitBoxWnd
  • m_bVisualStyle : CTabWnd
  • m_bWaitTreeProcess : CDlgFuncList
  • m_bWordWrap : CLayoutMgr , Types
  • m_bWritePrivate : IniFolder
  • m_bWriteQuit : CCommandLine
  • m_cAutoSave : CEditDoc
  • m_cBlockComment : CLayoutMgr , Types
  • m_cBuffer : CPPAMacroMgr
  • m_cCommander : CEditView
  • m_cDicMgr : CEditView
  • m_cDlgFind : CEditWnd
  • m_cDlgFuncList : CEditWnd
  • m_cDlgGrep : CControlTray , CEditWnd
  • m_cDlgJump : CEditWnd
  • m_cDlgOpenFile : CEditWnd
  • m_cDlgReplace : CEditWnd
  • m_cDocLineMgr : CEditDoc
  • m_cEditDoc : CEditApp
  • m_cEol : CDlgOpenFile , CDocLine , CLayout
  • m_cfFormat : CDataObject
  • m_CFuncKeyWnd : CEditWnd
  • m_cFuncLookup : CEditDoc
  • m_ChangeAttribute : CFileWrite
  • m_CharCode : CFileLoad
  • m_ChildWndArr : CSplitterWnd
  • m_cHistory : CEditView
  • m_cHokanMgr : CEditWnd
  • m_cIcons : CEditApp
  • m_cInfo : CTipWnd
  • m_cKey : CTipWnd
  • m_CKeyWordSetMgr : CPropCommon , DLLSHAREDATA
  • m_cLayoutMgr : CEditDoc
  • m_Client : CWSHSite
  • m_cLine : CDocLine
  • m_cLineComment : CLayoutMgr , Types
  • m_cLineTermChar : Types
  • m_cList : CDlgTagJumpList
  • m_cLookup : CPropCommon
  • m_clrOldBack : CTypeSupport
  • m_clrOldText : CTypeSupport
  • m_cMarkChain : CMarkMgr
  • m_cmemClipText : CDlgFuncList
  • m_cmemCurWord : CHokanMgr
  • m_cMemDebug : CPPA
  • m_cmemDebugInfo : CDlgDebug
  • m_cmemFuncName : CFuncInfo
  • m_cmemMenuItemStrArr : CMenuDrawer
  • m_cMemRet : CPPA
  • m_cmemText : CDlgInput1
  • m_CMenuDrawer : CControlTray , CEditWnd
  • m_cMigemo : CNormalProcess
  • m_cNewLineCode : CEditDoc
  • m_colBACK : ColorInfo , ColorInfoIni
  • m_ColorInfoArr : Types
  • m_colTEXT : ColorInfo , ColorInfoIni
  • m_CommandLine : CProcess
  • m_Common : CPropCommon , DLLSHAREDATA
  • m_cOpeBuf : CEditDoc
  • m_cOsVer : CDlgOpenFile
  • m_cOsVersionInfo : COsVersionInfo
  • m_cParser : CEditView
  • m_cPPA : CPPAMacroMgr
  • m_cPrint : CPrintPreview
  • m_cPropCommon : CEditWnd
  • m_cPropTypes : CEditWnd
  • m_cr : CDlgSameColor
  • m_crBack : CEditView
  • m_crCaret : CCaret
  • m_cRecentCmd : CDlgFavorite
  • m_cRecentFile : CDlgFavorite , CMRU
  • m_cRecentFolder : CDlgFavorite , CMRUFolder
  • 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 : CEditWnd
  • m_cStatusBar : CEditWnd
  • m_cTabWnd : CEditWnd
  • m_cTextDrawer : CEditView
  • m_cTextMetrics : CEditView
  • m_cTipWnd : CEditView
  • m_cToolbar : CEditWnd
  • m_cTrans : CImageListMgr
  • m_cUnderLine : CCaret
  • m_CurRegexp : CEditView
  • m_current : CRecycledBuffer , CRecycledBufferDynamic
  • m_CurrentIdx : CSMacroMgr
  • m_cUxTheme : CUxTheme
  • m_cViewSelect : CEditView
  • m_cx : CImageListMgr
  • m_cy : CImageListMgr
  • m_Data : CWSHClient
  • m_data : CDataObject
  • 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_eType : CommonValueInfo
  • 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 : CMainToolBar
  • m_fp : CStream
  • m_getIndentOffset : CLayoutMgr
  • m_gi : CCommandLine
  • m_hAccel : DLLSHAREDATA
  • m_hAtokModule : CEditView
  • m_hbmpCaret : CCaret
  • m_hbmpCompatBMP : CEditView , CPrintPreview
  • m_hbmpCompatBMPOld : CEditView , CPrintPreview
  • m_hcurOld : CSplitterWnd
  • m_hCursor : CWaitCursor
  • m_hCursorOld : CWaitCursor
  • m_hdc : CTypeSupport
  • m_hdcCompatDC : CEditView , CPrintPreview
  • m_hDevMode : CPrint
  • m_hDevNames : CPrint
  • m_heightOutlineWindow : CommonSetting_OutLine
  • m_hEventCPInitialized : CControlProcess
  • m_hFile : CFileLoad , CFileWrite
  • m_hFileMap : CShareData
  • m_hfntOld : CTypeSupport
  • m_hFont : CUrlWnd , CFuncKeyWnd , CTabWnd , CTipWnd
  • m_hFont_HAN : CViewFont
  • m_hFont_HAN_FAT : CViewFont
  • m_hFont_HAN_FAT_UL : CViewFont
  • m_hFont_HAN_UL : CViewFont
  • m_hFontCaretPosInfo : CEditWnd
  • m_hFontMenu : CMenuDrawer
  • m_hFontMenuUndelLine : CMenuDrawer
  • m_hFontOld : CEditView
  • m_hIconApp : CTabWnd
  • m_hIconBitmap : CImageListMgr
  • m_hIconGrep : CTabWnd
  • m_hIcons : CControlTray
  • m_hIml : CTabWnd
  • m_hInst : CEditApp
  • m_hInstance : CControlTray , CDialog , CDlgDebug , CDlgInput1 , CDlgOpenFile , CDllHandler , CEditDoc , CEditView , CEditWnd , CFuncLookup , CMenuDrawer , CProcess , CPropCommon , CPropTypes , CWnd
  • m_hLockedFile : CEditDoc
  • m_hMutex : CControlProcess
  • m_hMutexCP : CControlProcess
  • m_hObj : CMutex
  • m_hpnNew : CTypeSupport
  • m_hpnOld : CTypeSupport
  • m_hwnd : CClipboard
  • m_hWnd : CControlTray , CDialog , CUrlWnd , CDlgDebug , CDlgInput1 , CDlgOpenFile , CEditView , CEditWnd , CProcess , EditNode , CWnd
  • m_hWnd_DropTarget : CDropTarget
  • m_hWnd_Dst : CDlgDiff
  • m_hwndButtonArr : CFuncKeyWnd
  • m_hwndDebug : DLLSHAREDATA
  • m_hwndHScrollBar : CEditView , CPrintPreview
  • m_hWndOwner : CMenuDrawer
  • m_hwndParent : CPropCommon , CPropTypes , CWnd , CDialog , CDlgDebug , CDlgInput1 , CDlgOpenFile , CEditView , CEditWnd
  • m_hwndPrintPreviewBar : CPrintPreview
  • m_hwndProgressBar : CMainStatusBar
  • m_hwndReBar : CMainToolBar
  • m_hwndRecordingKeyMacro : DLLSHAREDATA
  • m_hwndSearchBox : CMainToolBar
  • m_hwndSizeBox : CDialog , CEditView , CFuncKeyWnd , CPrintPreview
  • m_hwndStatusBar : CMainStatusBar
  • m_hwndTab : CTabWnd
  • m_hwndThis : CPropCommon , CPropTypes
  • m_hwndToolBar : CMainToolBar
  • m_hwndToolTip : CTabWnd
  • m_hwndTraceOutSource : CShareData
  • m_hwndTray : DLLSHAREDATA
  • m_hwndVScrollBar : CEditView , CPrintPreview
  • 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 : CommonSetting_View
  • m_lf_kh : CommonSetting_Helper
  • m_lfPreviewHan : CPrintPreview
  • m_lfPreviewZen : CPrintPreview
  • m_long_string : COutlinePython
  • m_lParam : CDialog
  • m_MacroFuncInfoArr : CSMacroMgr
  • m_MacroFuncInfoNotCommandArr : CSMacroMgr
  • m_MacroTable : CPropCommon , DLLSHAREDATA
  • 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 : CEditWnd
  • m_nAllHeight : PAPER_INFO
  • m_nAllPageNum : CPrintPreview
  • m_nAllSplitCols : CSplitterWnd
  • m_nAllSplitRows : CSplitterWnd
  • m_nAllWidth : PAPER_INFO
  • m_nArrayCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_nBackUpType : CommonSetting_Backup
  • m_nBackUpType_Opt1 : CommonSetting_Backup
  • m_nBackUpType_Opt2 : CommonSetting_Backup
  • m_nBackUpType_Opt3 : CommonSetting_Backup
  • m_nBackUpType_Opt4 : CommonSetting_Backup
  • m_nBackUpType_Opt5 : CommonSetting_Backup
  • m_nBackUpType_Opt6 : CommonSetting_Backup
  • m_nBlockFromLen : CBlockComment
  • m_nBlockToLen : CBlockComment
  • m_nbmpCompatScale : CPrintPreview
  • m_nButtonGroupNum : CFuncKeyWnd
  • m_nCaretPosInfoCharHeight : CEditWnd
  • m_nCaretPosInfoCharWidth : CEditWnd
  • m_nCaretPosX_Prev : CCaret
  • m_nCaretType : CommonSetting_General
  • m_nCharCode : CDlgOpenFile , CEditDoc , FileInfo
  • m_nCharHeight : CTextMetrics
  • m_nCharWidth : CTextMetrics
  • m_nCode : CDlgCtrlCode
  • m_nColmSpace : Types
  • m_nColmWidth : CHokanMgr
  • m_nColorIdx : ColorInfo , CTypeSupport
  • m_nColorIndex : RegexKeywordInfo
  • m_nColorInfoArrNum : Types
  • m_nColumn : CMemoryIterator
  • m_nColumn_Delta : CMemoryIterator
  • m_nCommandExecNum : CEditDoc
  • m_nCompiledMagicNumber : CRegexKeyword
  • m_nCOpeArrNum : COpeBlk
  • m_nCOpeBlkArrNum : COpeBuf
  • m_nCount : CFileExt , CSortedTagJumpList , StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
  • 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 : CommonSetting_CustomMenu
  • m_nCustMenuItemKeyArr : CommonSetting_CustomMenu
  • m_nCustMenuItemNumArr : CommonSetting_CustomMenu
  • m_nDataBufSize : CMemory
  • m_nDataLen : COpe , CMemory , CStringRef
  • m_nDateFormatType : CommonSetting_Format
  • m_nDeapth : CRunningTimer
  • m_nDefaultOutline : Types
  • m_nDepth : CFuncInfo
  • m_nDiffFlgOpt : CDlgDiff , DLLSHAREDATA
  • m_nDragPosX : CSplitterWnd , CSplitBoxWnd
  • m_nDragPosY : CSplitBoxWnd , CSplitterWnd
  • m_nDropFileNumMax : CommonSetting_File
  • m_nDx : DispPos
  • m_nDxBasis : CTextMetrics
  • m_nDy : DispPos
  • m_nDyBasis : CTextMetrics
  • m_nEditArrNum : DLLSHAREDATA
  • m_nEOFColumn : CLayoutMgr
  • m_nEOFLine : CLayoutMgr
  • m_nExecFlgOpt : DLLSHAREDATA
  • m_nFileDataLen : CFileLoad
  • m_nFileShareMode : CommonSetting_File
  • m_nFileShareModeOld : CEditDoc
  • m_nFileSize : CFileLoad
  • m_nFlag : CFileLoad
  • m_nFuncCodeArr : CFuncKeyWnd , KEYDATA
  • m_nFuncID : CMacro , MacroFuncInfo
  • m_nFuncInfoArrNum : CFuncInfoArr
  • m_nFUNCKEYWND_GroupNum : CommonSetting_Window
  • m_nFUNCKEYWND_Place : CommonSetting_Window
  • m_nFuncLineCRLF : CFuncInfo
  • m_nFuncLineLAYOUT : CFuncInfo
  • m_nGrepCharSet : CDlgGrep , CommonSetting_Search
  • m_nGrepOutputStyle : CDlgGrep , CommonSetting_Search
  • m_nGroup : CCommandLine , EditNode
  • m_nGroupSequences : DLLSHAREDATA
  • m_nHeight : CDialog
  • m_nHSplitPos : CSplitterWnd
  • m_nId : CDlgFavorite::FavoriteInfoTag , PAPER_INFO
  • m_nIdx : Types
  • m_nImeState : Types
  • m_nIndent : CMemoryIterator , CLayout
  • m_nIndentLayout : Types
  • m_nIndex : EditNode , CDlgTagJumpList , CMemoryIterator
  • m_nIndex_Delta : CMemoryIterator
  • m_nIndexSave : CDlgDiff
  • m_nInfo : CFuncInfo
  • m_nISearchDirection : CEditView
  • m_nISearchHistoryCount : CEditView
  • m_nISearchMode : CEditView
  • m_nKeyCode : KEYDATA
  • m_nKeyHelpNum : Types
  • m_nKeyNameArrNum : CPropCommon , DLLSHAREDATA
  • 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
  • m_nLineNum : CDlgJump
  • m_nLineNumRightSpace : CommonSetting_Window
  • m_nLineRef : DispPos
  • m_nLines : CDocLineMgr , CLayoutMgr
  • m_nLineSpace : Types
  • m_nLineTermType : Types
  • m_nLineTypeBot : CLayoutMgr
  • m_nListType : CDlgFuncList
  • m_nLockCounter : CCaretUnderLine
  • m_nLoop : CDlgTagJumpList
  • m_nMaxitem : CMarkMgr
  • m_nMaxLineKetas : CLayoutMgr , Types
  • m_nMaxLineKetas_org : CPropTypes
  • m_nMaxTextLen : CDlgInput1
  • m_nMenuHeight : CMenuDrawer
  • m_nMenuItemBitmapIdxArr : CMenuDrawer
  • m_nMenuItemFuncArr : CMenuDrawer
  • m_nMenuItemNum : CMenuDrawer
  • m_nMRUArrNum : DLLSHAREDATA
  • m_nMRUArrNum_MAX : CommonSetting_General
  • m_nMyButtonNum : CMenuDrawer
  • m_nMyIndex : CEditView
  • m_nNestCount : CRunningTimer
  • m_nNoModifiedIndex : COpeBuf
  • m_nOldRulerDrawX : CRuler
  • m_nOldRulerWidth : CRuler
  • m_nOldUnderLineY : CEditView
  • m_nOpe : COpe
  • m_nOPENFOLDERArrNum : DLLSHAREDATA
  • m_nOPENFOLDERArrNum_MAX : CommonSetting_General
  • 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 : CDocLineMgr , CLayoutMgr
  • 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_nReceiverCount : TcharReceiver< RECEIVE_CHAR_TYPE >
  • m_nRegexKeyCount : CRegexKeyword
  • m_nRegexKeyMagicNumber : Types
  • m_nRepeatedScroll_Smooth : CommonSetting_General
  • m_nRepeatedScrollLineNum : CommonSetting_General
  • m_nReplaceCnt : CDlgReplace
  • m_nReplaceTarget : CDlgReplace
  • m_nRulerBottomSpace : CommonSetting_Window
  • m_nRulerHeight : CommonSetting_Window
  • m_nRulerType : CommonSetting_Window
  • m_nSaveWindowPos : CommonSetting_Window
  • m_nSaveWindowSize : CommonSetting_Window
  • m_nSaveWinPos : CDlgWinSize
  • m_nSaveWinSize : CDlgWinSize
  • m_nSearchDict : CTipWnd
  • m_nSearchLine : CTipWnd
  • m_nSequences : DLLSHAREDATA
  • m_nSet : CPropTypes , CDlgKeywordSelect
  • m_nSettingType : CDlgReplace , CDlgTypeList , CEditDoc , CPropCommon
  • m_nSettingTypeLocked : CEditDoc
  • m_nShowCmd : CDialog
  • m_nSmartIndent : Types
  • m_nSortCol : CDlgFuncList
  • m_nSortType : CDlgFuncList
  • m_nSrcTab : CTabWnd
  • m_nStartIdx : CKeyWordSetMgr
  • m_nStartTime : CRunningTimer
  • m_nStringType : CLayoutMgr , Types
  • m_nTabSpace : CMemoryIterator , Types , CLayoutMgr
  • m_nTabWidth : CConvert_SpaceToTab , CConvert_TabToSpace
  • m_nTagsOpt : CDlgTagsMake , DLLSHAREDATA
  • m_nTimeFormatType : CommonSetting_Format
  • m_nTimerCount : CFuncKeyWnd , CEditWnd
  • m_nTimerId : CDlgTagJumpList
  • m_nToolBarButtonIdxArr : CommonSetting_ToolBar
  • m_nToolBarButtonNum : CommonSetting_ToolBar
  • m_nTopYohaku : CTextArea
  • m_nTransformFileNameArrNum : CPropCommon , DLLSHAREDATA
  • m_nTransformFileNameCount : CShareData
  • m_nTransformFileNameOrgId : CShareData
  • m_nTypeIndex : CRegexKeyword
  • m_nTypePrev : CLayout
  • m_nUse : KeyHelpInfo
  • m_nValueSize : CommonValueInfo
  • m_nVertLineIdx : Types
  • m_nVertLineOffset : CommonSetting_Window
  • m_nViewAlignLeft : CTextArea
  • m_nViewAlignLeftCols : CTextArea
  • m_nViewAlignTop : CTextArea
  • m_nViewColNum : CTextArea
  • m_nViewCount : CDlgFavorite::FavoriteInfoTag
  • m_nViewCx : CTextArea
  • m_nViewCy : CTextArea
  • m_nViewLeftCol : FileInfo , CTextArea
  • m_nViewRowNum : CTextArea
  • m_nViewTopLine : CTextArea , FileInfo
  • 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 : CommonSetting_Window
  • m_nWinPosY : CommonSetting_Window
  • m_nWinSizeCX : CommonSetting_Window
  • m_nWinSizeCY : CommonSetting_Window
  • m_nWinSizeType : CDlgWinSize , CEditWnd , CommonSetting_Window
  • m_Object : CInterfaceObjectTypeInfo
  • m_ofn : CDlgOpenFile
  • m_olelib : CYbInterfaceBase
  • m_OnError : CWSHClient
  • m_Owner : CInterfaceObject
  • m_owniid : CYbInterfaceImpl< BASEINTERFACE >
  • m_p : CharPointerW , CharPointerA
  • m_paperInfoArr : CPrint
  • m_pBot : CKeyMacroMgr
  • m_pbUserItemFavorite : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pcCaret : CEditView
  • m_pCDocLine : CLayout
  • m_pcDocLineMgr : CLayoutMgr
  • m_pcDropTarget : CEditView
  • m_pcEditApp : CNormalProcess
  • m_pCEditDoc : CFuncKeyWnd
  • m_pcEditDoc : CEditView , CLayoutMgr
  • m_pcEditView : CViewSelect , CCaretUnderLine
  • m_pCEditView : CDropTarget
  • m_pcEditView : CPPA
  • m_pcEditViewArr : CEditWnd
  • m_pCEditWnd : CSplitterWnd
  • m_pcEditWnd : CEditView , CEditApp , CEditDoc
  • m_pcFontset : CEditView
  • m_pcFuncInfoArr : CDlgFuncList
  • m_pcIcons : CMenuDrawer , CPropCommon
  • m_pCKeyWordSetMgr : CDlgKeywordSelect , CPropTypes
  • m_pcmemData : COpe
  • m_pcmemKouho : CHokanMgr
  • m_pcMenuDrawer : CPropCommon
  • m_pcmigemo : CEditView
  • m_pCodePrevRefer : CDocLineMgr
  • m_pCommanderView : CViewCommander
  • m_pCommon : CFuncLookup
  • m_pcOpeBlk : CEditView
  • m_pcRuler : CEditView
  • m_pcsbwHSplitBox : CEditView
  • m_pcsbwVSplitBox : CEditView
  • m_pcSMacro : CPropCommon
  • m_pcSMacroMgr : CEditDoc , CFuncLookup
  • m_pcTextArea : CEditView
  • m_pcTray : CControlProcess
  • m_pData : CMacro::CMacroParam , CMemory , CStringRef
  • m_pDataObject : CDropTarget
  • m_pDebugData : CNativeW
  • m_pDocLineBot : CDocLineMgr
  • m_pDocLineCurrent : CDocLineMgr
  • m_pDocLineTop : CDocLineMgr
  • m_pEditArr : DLLSHAREDATA
  • m_pEditDoc : CCaret , CRuler
  • m_pEditView : CTextDrawer , CCaret , CRuler , CTextArea , CViewParser
  • m_pEI : CESI
  • m_pFilename : CDlgFileUpdateQuery
  • m_pFontset : CTypeSupport
  • 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
  • m_pNext : CMacro::CMacroParam , CLayout , CDocLine , CMacro
  • m_pnUserItemCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pnUserViewCount : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pOldProc : CUrlWnd
  • m_poTipCurPos : CEditView
  • m_poWin : CHokanMgr
  • m_pOwner : CMainToolBar , CMainStatusBar , CViewCalc
  • m_pParamBot : CMacro
  • m_pParamTop : CMacro
  • m_pParentWnd : CPrintPreview
  • m_ppcFuncInfoArr : CFuncInfoArr
  • m_ppCOpeArr : COpeBlk
  • m_ppCOpeBlkArr : COpeBuf
  • m_pPrev : CDocLine , CLayout
  • m_pPrintPreview : CEditWnd
  • m_pPrintSetting : CPrintPreview
  • m_pReadBuf : CFileLoad
  • m_pReceiver : TcharReceiver< RECEIVE_CHAR_TYPE >
  • m_pRecent : CDlgFavorite::FavoriteInfoTag
  • m_pRegExp : CBregexp
  • m_PrintSettingArr : CDlgPrintSetting , DLLSHAREDATA
  • m_ProfileData : CProfile
  • m_pShareData : CTabWnd , CDialog , CControlTray , CMenuDrawer , CEditWnd , CDlgOpenFile , CEditDoc , CEditView , CFuncKeyWnd , CPPA , CPropTypes , CSMacroMgr , CShareData , CMRU , CSplitterWnd , CMRUFolder , CPropCommon
  • m_pszAppName : CControlTray , CEditDoc , CEditView
  • m_pszCaption : CDlgFavorite::FavoriteInfoTag
  • m_pszClassName : CFuncKeyWnd , CSplitterWnd , CTabWnd , CTipWnd , CSplitBoxWnd
  • 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_pszKinsokuKuto_1 : CLayoutMgr
  • m_pszKinsokuTail_1 : CLayoutMgr
  • m_pszLastCaption : CEditWnd
  • m_pszLineComment : CLineComment
  • m_pszMessage : CDlgInput1
  • m_pszName : ColorInfoIni , PAPER_INFO
  • m_pszPath : CDlgCompare , CFileWrite
  • m_pszTitle : CDlgInput1
  • m_pszWndClass : CEditWnd
  • m_pTagjump : CSortedTagJumpList
  • m_ptBracketCaretPos_PHY : CEditView
  • m_ptBracketPairPos_PHY : CEditView
  • m_ptCaretPos_Layout : CCaret
  • m_ptCaretPos_Logic : CCaret
  • m_ptCaretPos_PHY_After : COpe
  • m_ptCaretPos_PHY_Before : COpe
  • m_ptCaretPos_PHY_To : COpe
  • m_ptCursor : FileInfo
  • m_ptDragPosOrg : CEditWnd
  • m_ptDrawLayout : DispPos
  • m_ptDrawOrigin : DispPos
  • m_ptEscCaretPos_PHY : CDlgReplace , CDlgFind
  • m_ptFrom : CRangeBase< PointType >
  • m_ptLogic : CMarkMgr::CMark
  • m_ptLogicPos : CLayout
  • m_ptMouseRollPosOld : CViewSelect
  • m_pTop : CKeyMacroMgr
  • m_ptSrcCursor : CTabWnd
  • m_ptSrchStartPos_PHY : CEditView
  • m_ptTo : CRangeBase< PointType >
  • m_pTypes : CTypeSupport , CRegexKeyword , CDlgSameColor
  • m_puFileExtInfo : CFileExt
  • m_puUserItemData : CRecentImp< DATA_TYPE, RECEIVE_TYPE >
  • m_pValue : CommonValueInfo
  • m_pWork : DLLSHAREDATA
  • m_quote_char : COutlinePython
  • m_raw_string : COutlinePython
  • m_rc : CDlgWinSize
  • m_rcOpenDialog : CommonSetting_Others
  • m_RealImageList_Duplicate : CTabWnd
  • m_RefCount : ImplementsIUnknown< Base > , CWSHSite
  • m_RegexKeywordArr : Types
  • m_sBackup : CommonSetting
  • m_sCompare : CommonSetting
  • m_SCROLLBAR_HORZ : CPrintPreview
  • m_SCROLLBAR_VERT : CPrintPreview
  • m_sCurSearchOption : CEditView
  • m_sCustomMenu : CommonSetting
  • m_sEdit : CommonSetting
  • m_sFile : CommonSetting
  • m_sFormat : CommonSetting
  • m_sGeneral : CommonSetting
  • m_sHelper : CommonSetting
  • m_showCmdRestore : EditNode
  • m_sInfo : CRegexKeyword
  • m_sISearchHistory : CEditView
  • m_size : CDataObject
  • m_SizeBoxCanMove : CPrintPreview
  • m_sizeCaret : CCaret
  • m_sOthers : CommonSetting
  • m_Source : CWSHMacroManager
  • m_sOutline : CommonSetting
  • m_sSearch : CommonSetting
  • m_sSearchOption : CDlgFind , CDlgReplace , CDlgGrep , CommonSetting_Search
  • m_sSelect : CViewSelect
  • m_sSelectBgn : CViewSelect
  • m_sSelectOld : CViewSelect
  • m_sTabBar : CommonSetting
  • m_stackptr : CCppPreprocessMng
  • m_state : COutlinePython
  • m_sToolBar : CommonSetting
  • m_str_cache : CMyString
  • m_strProfileName : CProfile
  • m_sView : CommonSetting
  • m_sWindow : CommonSetting
  • m_szAbout : KeyHelpInfo
  • m_szBackUpFolder : CommonSetting_Backup
  • m_szBackUpPathAdvanced : CommonSetting_Backup
  • m_szBlockCommentFrom : CBlockComment
  • m_szBlockCommentTo : CBlockComment
  • m_szClassInheritances : CWnd
  • m_szCommand : CDlgExec
  • m_szCurrentFilePath : CDlgGrep
  • m_szCurSrchKey : CEditView
  • m_szCustMenuNameArr : CommonSetting_CustomMenu
  • m_szData : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • m_szDateFormat : CommonSetting_Format
  • m_szDefaultWildCard : CDlgOpenFile
  • m_szDocType : FileInfo
  • m_szEntryKey : CommonValueInfo
  • m_szExt : CFileExt::FileExtInfoTag
  • m_szExtHelp : Types , CommonSetting_Helper
  • m_szExtHtmlHelp : CommonSetting_Helper , Types
  • m_szFile : CDlgGrep , MacroRec
  • m_szFile1 : CDlgDiff
  • m_szFile2 : CDlgDiff
  • m_szFilePath : EditNode , CFuncInfoArr , CEditDoc
  • m_szFilter : CFileExt
  • m_szFolder : CDlgGrep
  • m_szFooterForm : PRINTSETTING
  • m_szFuncNameArr : CFuncKeyWnd
  • m_szGrepKey : CEditDoc , FileInfo
  • m_szHeaderForm : PRINTSETTING
  • m_szHelpFile : CPropCommon , CPropTypes , CDlgInput1 , CDialog
  • m_szHokanFile : Types
  • m_szIMPORTFOLDER : DLLSHAREDATA
  • m_szIndentChars : Types
  • m_szIniFile : IniFolder
  • m_szInitialDir : CDlgOpenFile
  • m_szInyouKigou : CommonSetting_Format
  • 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 : CommonSetting_Format
  • m_szMigemoDict : CommonSetting_Helper
  • m_szMigemoDll : CommonSetting_Helper
  • m_szMsg : CRegexKeyword , CPPA , CDlgFavorite , CBregexp
  • m_szName : CFileExt::FileExtInfoTag , MacroRec , ColorInfo
  • m_szOPENFOLDERArr : DLLSHAREDATA
  • m_szOutlineRuleFilename : Types
  • m_szPath : CDlgTagsMake , CDlgOpenFile , KeyHelpInfo , FileInfo
  • m_szPrinterDeviceName : MYDEVMODE
  • m_szPrinterDriverName : MYDEVMODE
  • m_szPrinterOutputName : MYDEVMODE
  • m_szPrintFontFaceHan : PRINTSETTING
  • m_szPrintFontFaceZen : PRINTSETTING
  • m_szPrintSettingName : PRINTSETTING
  • m_szPrivateIniFile : IniFolder
  • m_szRegexpLib : CommonSetting_Search
  • m_szSetNameArr : CKeyWordSetMgr
  • m_szTabCaption : EditNode
  • m_szTabViewString : Types
  • m_szTabWndCaption : CommonSetting_TabBar
  • m_szTagsCmdLine : DLLSHAREDATA , CDlgTagsMake
  • m_szTarget : CBregexp
  • m_szText : CDlgFind , CRunningTimer , CDlgGrep , CDlgReplace
  • m_szText2 : CDlgReplace
  • m_szTextTip1 : CTabWnd
  • m_szTimeFormat : CommonSetting_Format
  • m_szTransformFileNameFrom : DLLSHAREDATA , CPropCommon
  • m_szTransformFileNameFromExp : CShareData
  • m_szTransformFileNameTo : DLLSHAREDATA , CPropCommon
  • m_szTypeExts : Types
  • m_szTypeName : Types
  • m_szWindowCaptionActive : CommonSetting_Window
  • m_szWindowCaptionInactive : CommonSetting_Window
  • m_TagJump : DLLSHAREDATA
  • m_TagJumpNum : DLLSHAREDATA
  • m_TagJumpTop : DLLSHAREDATA
  • m_tbMyButton : CMenuDrawer
  • m_tmpBuf : CBregexp
  • m_TypeAttr : CInterfaceObjectTypeInfo
  • m_TypeInfo : CWSHSite , CInterfaceObject
  • m_Types : CPropTypes , DLLSHAREDATA
  • m_Types_nKeyWordSetIdx : CPropCommon
  • m_uATOKReconvertMsg : CEditWnd , CEditView
  • m_uCreateTaskBarMsg : CControlTray
  • m_uMSIMEReconvertMsg : CEditView , CEditWnd
  • m_UrlOrgWnd : CDlgAbout
  • m_UrlUrWnd : CDlgAbout
  • m_uWM_MSIME_RECONVERTREQUEST : CEditView
  • m_Valid : CWSHClient
  • m_value : CommonValue< T > , CLaxInteger , CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • m_varArguments : MacroFuncInfo
  • m_varResult : MacroFuncInfo
  • m_vStructureVersion : DLLSHAREDATA
  • m_WEI : CESI
  • m_wID : CDlgSameColor
  • m_widthOutlineWindow : CommonSetting_OutLine
  • m_wpColorListProc : CDlgSameColor
  • m_wpColorStaticProc : CDlgSameColor
  • m_wstr : CMyString
  • m_wTrayMenuHotKeyCode : CommonSetting_General
  • m_wTrayMenuHotKeyMods : CommonSetting_General
  • m_xOutlineWindowPos : CommonSetting_OutLine
  • m_xPos : CDialog
  • m_yOutlineWindowPos : CommonSetting_OutLine
  • m_yPos : CDialog
  • mapEntries : CProfile::Section
  • Method : CInterfaceObject::CMethodInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- n -

  • nAddLineNum : LayoutReplaceArg
  • Name : CInterfaceObject::CMethodInfo
  • name : CDllHandler::ImportTable , ctrl_info_t
  • nCRorLF : WC_EncodingInfo_t
  • nCRorLF_ascii : UnicodeInfo_t
  • nDataCount : StringBufferA , StringBufferW
  • nDeletedLineNum : DocLineReplaceArg
  • nDiff : EncodingInfo_t
  • next : CSortedTagJumpList::tagjump_info_t
  • nFlag : RegexInfo_t
  • nGrepCharSet : GrepInfo
  • nGrepOutputStyle : GrepInfo
  • nGroupMru : EditNodeEx
  • nHead : RegexInfo_t
  • nInsDataLen : DocLineReplaceArg , LayoutReplaceArg
  • nInsLineNum : DocLineReplaceArg
  • nInterval : CPassiveTimer
  • nItemNum : ARRHEAD
  • nLastPos_Macro : CPropCommon
  • nLastTick : CPassiveTimer
  • nLength : oneRule , RegexInfo_t , ARRHEAD
  • nLine : RcCvt
  • nLostBytes : WC_EncodingInfo_t
  • nMatch : RegexInfo_t
  • nMethod : TYPE_NAME
  • nModLineFrom : LayoutReplaceArg
  • nModLineTo : LayoutReplaceArg
  • no : CSortedTagJumpList::tagjump_info_t
  • nOffset : RegexInfo_t
  • NOT_STRICT_ID : CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
  • note : CSortedTagJumpList::tagjump_info_t
  • nparens : bregexp
  • nSpecBytes : EncodingInfo_t
  • nStatus : RegexInfo_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- o -

  • o_ : LockGuard< EXCLUSIVE_OBJECT >
  • outendp : bregexp
  • outp : bregexp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- a -

  • a : TestArrayA , TestArrayW , TestArrayI
  • Arguments : CInterfaceObject::CMethodInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- b -

  • bEnabled : CPassiveTimer
  • bGrepOutputLine : GrepInfo
  • bGrepSubFolder : GrepInfo
  • BLOCK_SIZE : CRecycledBuffer
  • bLoHiCase : SSearchOption
  • BOOL : CPPA
  • bottom : CStrictRect< INT_TYPE, POINT_TYPE >
  • bRegularExp : SSearchOption
  • bText : VS_VERSION_INFO_HEAD
  • buffer : RcCvt
  • BUFFER_COUNT : StaticString< CHAR_TYPE, N_BUFFER_COUNT >
  • bWordOnly : SSearchOption
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- c -

  • cache : LocalCache
  • CHAIN_COUNT : CRecycledBuffer , CRecycledBufferDynamic
  • cmGrepFile : GrepInfo
  • cmGrepFolder : GrepInfo
  • cmGrepKey : GrepInfo
  • code : ctrl_info_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- d -

  • Data : SysString , Variant
  • 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
  • DWORD : CEditView
  • dwReserved : OPENFILENAMEZ
  • dwSize : tagRECONVERTSTRING
  • dwStrLen : tagRECONVERTSTRING
  • dwStrOffset : tagRECONVERTSTRING
  • dwTargetStrLen : tagRECONVERTSTRING
  • dwTargetStrOffset : tagRECONVERTSTRING
  • dwVersion : tagRECONVERTSTRING
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- e -

  • eCodeID : EncodingInfo_t , WC_EncodingInfo_t
  • endp : bregexp
  • eStr : KAKKO_T
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- f -

  • fAttribute : ColorAttributeData_t
  • filename : CSortedTagJumpList::tagjump_info_t
  • FlagsEx : OPENFILENAMEZ
  • fpi : RcCvt
  • fpo : RcCvt
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- g -

  • g_cEditArrMutex : CShareData
  • gm_aEolInfoStrings : CEOL
  • gm_instance : TSingleInstance< T >
  • gm_nBufSizeDef : CFileLoad
  • gm_pnEolLenArr : CEOL
  • gm_pszEolDataArr : CEOL
  • gm_pszEolNameArr : CEOL
  • gm_pszEolUnicodeBEDataArr : CEOL
  • gm_pszEolUnicodeDataArr : CEOL
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- h -

  • HtmlHelp : CHtmlHelp
  • hwnd : TABMENU_DATA
  • hwndReferer : TagJump
  • hwndTop : STabGroupInfo
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- i -

  • ID : CInterfaceObject::CMethodInfo
  • iImage : TABMENU_DATA
  • iItem : TABMENU_DATA
  • int : CEditView , CPPA
  • INVALID_COLOR : CTypeSupport
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- p -

  • p : EditNodeEx
  • paraendp : bregexp
  • parap : bregexp
  • pBregexp : RegexInfo_t
  • pcmemDeleted : DocLineReplaceArg , LayoutReplaceArg
  • pData : StringBufferA , StringBufferW
  • pInsData : DocLineReplaceArg , LayoutReplaceArg
  • point : TagJump
  • PRECONVERTSTRING : CEditView
  • proc : CDllHandler::ImportTable
  • pszName : TYPE_NAME
  • pszSubAppName : CUxTheme
  • pszSubIdList : CUxTheme
  • ptLayoutNew : LayoutReplaceArg
  • ptNewPos : DocLineReplaceArg
  • pvReserved : OPENFILENAMEZ
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- r -

  • resId : ComPropSheetInfo
  • right : CStrictRect< INT_TYPE, POINT_TYPE >
  • rsv1 : bregexp
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- s -

  • sDelRange : DocLineReplaceArg , LayoutReplaceArg
  • sGrepSearchOption : GrepInfo
  • sKey1 : _SORTTABLE
  • sKey2 : _SORTTABLE
  • splitctr : bregexp
  • splitp : bregexp
  • sStr : KAKKO_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 Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- t -

  • test : LocalCache
  • top : CStrictRect< INT_TYPE, POINT_TYPE >
  • transtblp : bregexp
  • type : CSortedTagJumpList::tagjump_info_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- u -

  • UINT : ComPropSheetInfo
  • Uni : UnicodeInfo_t
  • UniBe : UnicodeInfo_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- v -

  • Value : VS_VERSION_INFO_HEAD
  • vKey : ctrl_info_t
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- w -

  • wLength : VS_VERSION_INFO_HEAD
  • WPARAM : ComPropSheetInfo
  • wpTop : STabGroupInfo
  • wValueLength : VS_VERSION_INFO_HEAD
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- x -

  • x : SLogicPoint , SLayoutPoint
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- y -

  • y : SLogicPoint , SLayoutPoint
Sakura-Editorに対してSat Nov 17 20:27:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: クラス階層図

  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor クラス階層図

クラス階層図を見る。

Sakura-Editorに対してSat Nov 17 20:30:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース索引

  • ネームスペース一覧
  • ネームスペースメンバ

Sakura-Editor ネームスペース一覧

ネームスペースの一覧です。
ACODE |
ApiWrap |
Charcode |
CWindowCreationHook | Windowsフック(CBT)
nsFuncCode |
std |
TCODE |
WCODE |
Sakura-Editorに対してSat Nov 17 20:30:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース ACODE

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース ACODE

関数

bool | isControlCode (char c)
制御文字であるかどうか
bool | isTabAvailableCode (char c)
タブ表示に使える文字かどうか
bool | isValidFilenameChar (const char *pData, size_t nIndex)
ファイル名に使える文字であるかどうか

変数

static const char | TAB = TAB_
static const char | SPACE = SPACE_
static const char | CR = CR_
static const char | LF = LF_
static const char | ESC = ESC_
static const char | CRLF [] = CRLF_
static const char | LFCR [] = LFCR_
static const wchar_t | BREGEXP_DELIMITER = (wchar_t)0xFF

関数

bool ACODE::isControlCode ( char c ) [inline]

制御文字であるかどうか

charcode2.h の 239 行で定義されています。

参照先 CR, LF, と TAB.

bool ACODE::isTabAvailableCode ( char c ) [inline]

タブ表示に使える文字かどうか

charcode2.h の 252 行で定義されています。

参照元 CPropTypes::GetData_p1().

bool ACODE::isValidFilenameChar | ( | const char * | pData,
 |  | size_t | nIndex |
 | ) |  |  | [inline]

ファイル名に使える文字であるかどうか

charcode2.h の 261 行で定義されています。

参照先 _IS_SJIS_1, と NULL.

参照元 CCommandLine::ParseCommandLine().

変数

const wchar_t ACODE::BREGEXP_DELIMITER = (wchar_t)0xFF [static]

charcode2.h の 53 行で定義されています。

const char ACODE::CR = CR_ [static]

charcode2.h の 44 行で定義されています。

参照元 isControlCode(), と CUtf7::MemBASE64_Encode().

const char ACODE::CRLF[] = CRLF_ [static]

charcode2.h の 49 行で定義されています。

const char ACODE::ESC = ESC_ [static]

charcode2.h の 46 行で定義されています。

参照元 Charcode::DetectJisESCSeq().

const char ACODE::LF = LF_ [static]

charcode2.h の 45 行で定義されています。

参照元 isControlCode(), と CUtf7::MemBASE64_Encode().

const char ACODE::LFCR[] = LFCR_ [static]

charcode2.h の 50 行で定義されています。

const char ACODE::SPACE = SPACE_ [static]

charcode2.h の 43 行で定義されています。

const char ACODE::TAB = TAB_ [static]

charcode2.h の 42 行で定義されています。

参照元 isControlCode().

Sakura-Editorに対してSat Nov 17 20:30:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース ApiWrap

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース ApiWrap

関数

LRESULT | StatusBar_SetText (HWND hwndStatus, WPARAM opt, const TCHAR *str)
BOOL | MakeSureDirectoryPathExistsW (LPCWSTR szDirPath)
BOOL | ExtTextOutW_AnyBuild (HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc, LPCWSTR lpwString, UINT cbCount, const int *lpDx)
BOOL | TextOutW_AnyBuild (HDC hdc, int nXStart, int nYStart, LPCWSTR lpwString, int cbString)
LPWSTR | CharNextW_AnyBuild (LPCWSTR lpsz)
LPWSTR | CharPrevW_AnyBuild (LPCWSTR lpszStart, LPCWSTR lpszCurrent)
BOOL | GetTextExtentPoint32W_AnyBuild (HDC hdc, LPCWSTR lpString, int cbString, LPSIZE lpSize)
int | LoadStringW_AnyBuild (HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int nBufferCount)
UINT | ExtTextOutOption ()
よく使うExtTextOutW_AnyBuildのオプション
bool | GetKeyState_Shift ()
SHIFTを押しているかどうか
bool | GetKeyState_Control ()
CTRLを押しているかどうか
bool | GetKeyState_Alt ()
ALTを押しているかどうか
LRESULT | List_GetText (HWND hwndList, int nIndex, ACHAR *str)
LRESULT | List_GetText (HWND hwndList, int nIndex, WCHAR *str)
UINT | DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, ACHAR *str, int nMaxCount)
UINT | DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, WCHAR *str, int nMaxCount)
BOOL | Wnd_SetText (HWND hwnd, const ACHAR *str)
BOOL | Wnd_SetText (HWND hwnd, const WCHAR *str)
LRESULT | Combo_AddString (HWND hwndCombo, const ACHAR *str)
LRESULT | Combo_AddString (HWND hwndCombo, const WCHAR *str)
LRESULT | Combo_GetText (HWND hwndCombo, int nIndex, TCHAR *str)
LRESULT | List_AddString (HWND hwndList, const ACHAR *str)
LRESULT | List_AddString (HWND hwndList, const WCHAR *str)
BOOL | DlgItem_SetText (HWND hwndDlg, int nIDDlgItem, const ACHAR *str)
BOOL | DlgItem_SetText (HWND hwndDlg, int nIDDlgItem, const WCHAR *str)

変数

static const size_t | sizeof_old_PROPSHEETHEADER = 40
static const int | SIZEOF_MENUITEMINFO = 44

関数

LPWSTR ApiWrap::CharNextW_AnyBuild ( LPCWSTR lpsz )

StdApi.cpp の 210 行で定義されています。

参照元 CEditView::SetReconvertStruct().

LPWSTR ApiWrap::CharPrevW_AnyBuild | ( | LPCWSTR | lpszStart,
 |  | LPCWSTR | lpszCurrent
 | ) |  |

StdApi.cpp の 219 行で定義されています。

参照元 CEditView::ISearchBack().

LRESULT ApiWrap::Combo_AddString | ( | HWND | hwndCombo,
 |  | const WCHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 44 行で定義されています。

参照先 to_tchar.

参照元 CMainToolBar::AcceptSharedSearchKey(), CMainToolBar::CreateToolBar(), OFNHookProc(), CDlgWinSize::OnInitDialog(), CFuncLookup::SetCategory2Combo(), CDlgTagJumpList::SetData(), CDlgReplace::SetData(), CDlgPrintSetting::SetData(), CDlgKeywordSelect::SetData(), CDlgJump::SetData(), CDlgGrep::SetData(), CDlgFuncList::SetData(), CDlgFind::SetData(), CDlgExec::SetData(), SetData_EnumFontFamProc(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p7(), と CPropCommon::SetData_p8().

LRESULT ApiWrap::Combo_AddString | ( | HWND | hwndCombo,
 |  | const ACHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 39 行で定義されています。

参照先 to_tchar.

LRESULT ApiWrap::Combo_GetText | ( | HWND | hwndCombo,
 |  | int | nIndex,
 |  | TCHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 49 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と OFNHookProc().

UINT ApiWrap::DlgItem_GetText | ( | HWND | hwndDlg,
 |  | int | nIDDlgItem,
 |  | WCHAR * | str,
 |  | int | nMaxCount
 | ) |  |

StdControl.cpp の 26 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_BACKUP(), CPropCommon::DispatchEvent_PROP_FILENAME(), CPropTypes::DispatchEvent_Regex(), CDlgTagsMake::GetData(), CDlgTagJumpList::GetData(), CDlgReplace::GetData(), CDlgPrintSetting::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgExec::GetData(), CDlgDiff::GetData(), CPropTypes::GetData_p1(), CPropCommon::GetData_p10(), CPropTypes::GetData_p2(), CPropTypes::GetData_p3_new(), CPropCommon::GetData_p9(), CPropCommon::GetData_PROP_BACKUP(), CPropCommon::GetData_PROP_TAB(), CPropCommon::GetData_PROP_WIN(), CDlgGrep::OnBnClicked(), CDlgTagJumpList::OnTimer(), CDlgTagsMake::SelectFolder(), と CPropCommon::SetMacro2List_Macro().

UINT ApiWrap::DlgItem_GetText | ( | HWND | hwndDlg,
 |  | int | nIDDlgItem,
 |  | ACHAR * | str,
 |  | int | nMaxCount
 | ) |  |

StdControl.cpp の 21 行で定義されています。

BOOL ApiWrap::DlgItem_SetText | ( | HWND | hwndDlg,
 |  | int | nIDDlgItem,
 |  | const WCHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 77 行で定義されています。

参照先 to_tchar.

参照元 CPropCommon::ChangeDateExample(), CPropCommon::CheckListPosition_Macro(), CheckRegexpVersion(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CDlgInput1::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_BACKUP(), CPropCommon::DispatchEvent_PROP_FILENAME(), CPropTypes::DispatchEvent_Regex(), CEditView::DoGrep(), CDlgFavorite::OnActivate(), CDlgGrep::OnBnClicked(), CDlgFavorite::OnBnClicked(), CDlgExec::OnBnClicked(), CDlgDiff::OnBnClicked(), CDlgPrintSetting::OnChangeSettingType(), CDlgFileUpdateQuery::OnInitDialog(), CDlgAbout::OnInitDialog(), CDlgFavorite::OnNotify(), CPrintPreview::OnPaint(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), CDlgTagsMake::SelectFolder(), CDlgTagsMake::SetData(), CDlgTagJumpList::SetData(), CDlgReplace::SetData(), CDlgPrintPage::SetData(), CDlgJump::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), CDlgFavorite::SetData(), CDlgExec::SetData(), CDlgDiff::SetData(), CDlgCompare::SetData(), CPropTypes::SetData_p1(), CPropCommon::SetData_p10(), CPropTypes::SetData_p2(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p8(), CPropCommon::SetData_p9(), CPropCommon::SetData_PROP_TAB(), CPropCommon::SetData_PROP_WIN(), と CPropTypes::SetData_Regex().

BOOL ApiWrap::DlgItem_SetText | ( | HWND | hwndDlg,
 |  | int | nIDDlgItem,
 |  | const ACHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 73 行で定義されています。

参照先 to_tchar.

UINT ApiWrap::ExtTextOutOption ( ) [inline]

よく使うExtTextOutW_AnyBuildのオプション

StdApi.h の 80 行で定義されています。

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CTextDrawer::DispWrap(), と CTextDrawer::DispZenkakuSpace().

BOOL ApiWrap::ExtTextOutW_AnyBuild | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | UINT | fuOptions,
 |  | const RECT * | lprc,
 |  | LPCWSTR | lpwString,
 |  | UINT | cbCount,
 |  | const int * | lpDx
 | ) |  |

ANSI版でも使えるExtTextOutW_AnyBuild。 文字数制限1024半角文字。(文字間隔配列を1024半角文字分しか用意していないため)

StdApi.cpp の 134 行で定義されています。

参照先 _countof, BOOL, CreateMbString(), DEBUG_SETPIXEL, DestroyMbString(), FALSE, WCODE::isHankaku(), と NULL.

参照元 CTextDrawer::DispEOF(), CTextDrawer::DispEOL(), CTextDrawer::DispHankakuSpace(), CTextDrawer::DispLineNumber(), CTextDrawer::DispTab(), CTextDrawer::DispText(), CTextDrawer::DispWrap(), CTextDrawer::DispZenkakuSpace(), CPrintPreview::DrawPageText(), CSplitBoxWnd::FillSolidRect(), FillSolidRect(), CPrintPreview::Print_DrawLine(), と CUrlWnd::UrlWndProc().

bool ApiWrap::GetKeyState_Alt ( ) [inline]

ALTを押しているかどうか

StdApi.h の 102 行で定義されています。

参照元 getCtrlKeyState(), CEditView::OnLBUTTONDBLCLK(), と CEditView::OnLBUTTONDOWN().

bool ApiWrap::GetKeyState_Control ( ) [inline]

CTRLを押しているかどうか

StdApi.h の 96 行で定義されています。

参照元 CEditView::DragEnter(), getCtrlKeyState(), CEditView::IsCurrentPositionSelected(), CEditView::OnLBUTTONDOWN(), と CEditView::TranslateCommand_grep().

bool ApiWrap::GetKeyState_Shift ( ) [inline]

SHIFTを押しているかどうか

StdApi.h の 90 行で定義されています。

参照元 CEditView::DispatchEvent(), getCtrlKeyState(), と CEditView::OnLBUTTONDOWN().

BOOL ApiWrap::GetTextExtentPoint32W_AnyBuild | ( | HDC | hdc,
 |  | LPCWSTR | lpString,
 |  | int | cbString,
 |  | LPSIZE | lpSize
 | ) |  |

StdApi.cpp の 230 行で定義されています。

参照先 wcstombs_vector().

参照元 CalcHankakuByFont().

LRESULT ApiWrap::List_AddString | ( | HWND | hwndList,
 |  | const WCHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 64 行で定義されています。

参照先 to_tchar.

参照元 CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p8(), CDlgSameColor::OnInitDialog(), CDlgSameColor::OnSelChangeListColors(), CDlgTypeList::SetData(), CDlgDiff::SetData(), CDlgCompare::SetData(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p5(), CPropCommon::SetData_p8(), と CFuncLookup::SetListItem().

LRESULT ApiWrap::List_AddString | ( | HWND | hwndList,
 |  | const ACHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 60 行で定義されています。

参照先 to_tchar.

LRESULT ApiWrap::List_GetText | ( | HWND | hwndList,
 |  | int | nIndex,
 |  | WCHAR * | str
 | ) |  |

StdControl.cpp の 16 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p8(), CHokanMgr::DoHokan(), CDlgSameColor::OnBnClicked(), CDlgSameColor::OnDrawItem(), CDlgSameColor::OnSelChangeListColors(), と CHokanMgr::ShowTip().

LRESULT ApiWrap::List_GetText | ( | HWND | hwndList,
 |  | int | nIndex,
 |  | ACHAR * | str
 | ) |  |

StdControl.cpp の 11 行で定義されています。

int ApiWrap::LoadStringW_AnyBuild | ( | HINSTANCE | hInstance,
 |  | UINT | uID,
 |  | LPWSTR | lpBuffer,
 |  | int | nBufferCount
 | ) |  |

引数:
nBufferCount バッファのサイズ。文字単位。

StdApi.cpp の 252 行で定義されています。

参照先 mbstowcs2().

参照元 CFuncLookup::Funccode2Name(), CSMacroMgr::GetFuncInfoByID(), CSMacroMgr::GetFuncInfoByName(), と CFuncLookup::Pos2FuncName().

BOOL ApiWrap::MakeSureDirectoryPathExistsW ( LPCWSTR szDirPath )

MakeSureDirectoryPathExists の UNICODE 版。 szDirPath で指定されたすべてのディレクトリを作成します。 ディレクトリの記述は、ルートから開始します。

引数:
DirPath 有効なパス名を指定する、null で終わる文字列へのポインタを指定します。 パスの最後のコンポーネントがファイル名ではなくディレクトリである場合、 文字列の最後に円記号（\）を記述しなければなりません。
戻り値:
関数が成功すると、TRUE が返ります。 関数が失敗すると、FALSE が返ります。
覚え書き:
指定された各ディレクトリがまだ存在しない場合、それらのディレクトリを順に作成します。 一部のディレクトリのみを作成した場合、この関数は FALSE を返します。
作者:
kobake
日付:
2007.10.15

StdApi.cpp の 100 行で定義されています。

参照先 _countof, _MAX_PATH, FALSE, と TRUE.

LRESULT ApiWrap::StatusBar_SetText | ( | HWND | hwndStatus,
 |  | WPARAM | opt,
 |  | const TCHAR * | str |
 | ) |  |  | [inline]

CommonControl.h の 10 行で定義されています。

参照元 CCaret::DrawCaretPosInfo(), CMainStatusBar::SendStatusMessage2(), と CMainStatusBar::SetStatusText().

BOOL ApiWrap::TextOutW_AnyBuild | ( | HDC | hdc,
 |  | int | nXStart,
 |  | int | nYStart,
 |  | LPCWSTR | lpwString,
 |  | int | cbString
 | ) |  |

StdApi.cpp の 185 行で定義されています。

参照先 BOOL, CreateMbString(), DEBUG_SETPIXEL, と DestroyMbString().

参照元 CRuler::DrawRulerBg(), と CPropCommon::DrawToolBarItemList().

BOOL ApiWrap::Wnd_SetText | ( | HWND | hwnd,
 |  | const WCHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 26 行で定義されています。

参照先 to_achar().

参照元 CPropCommon::DispatchEvent_p5(), と CFuncKeyWnd::OnTimer().

BOOL ApiWrap::Wnd_SetText | ( | HWND | hwnd,
 |  | const ACHAR * | str |
 | ) |  |  | [inline]

StdControl.h の 22 行で定義されています。

変数

const int ApiWrap::SIZEOF_MENUITEMINFO = 44 [static]

StdApi.h の 126 行で定義されています。

参照元 CMenuDrawer::DrawItem(), CMenuDrawer::MyAppendMenu(), と CMenuDrawer::OnMenuChar().

const size_t ApiWrap::sizeof_old_PROPSHEETHEADER = 40 [static]

StdApi.h の 117 行で定義されています。

参照元 CPropTypes::DoPropertySheet().

Sakura-Editorに対してSat Nov 17 20:30:17 2007に生成されました。 doxygen 1.5.4


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)
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)
ECodeType | 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 []

関数

uchar_t __fastcall Charcode::Base64_CharToVal ( const uchar_t c )

charcode.cpp の 188 行で定義されています。

参照先 BASE64VAL.

参照元 CheckUtf7SetBPart().

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 の 903 行で定義されています。

参照先 IsEucHanKana2(), と IsEucKan().

参照元 GetCharLen_eucjp(), と GetEncdInf_EucJp().

int Charcode::CheckSJisChar | ( | const uchar_t * | pS,
 |  | const int | nLen
 | ) |  |

SJIS の文字か

charcode.cpp の 790 行で定義されています。

参照先 IsSJisHanKata(), と IsSJisKan().

参照元 GetCharLen_sjis(), と GetEncdInf_SJis().

int Charcode::CheckSJisCharR | ( | const uchar_t * | pS,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 809 行で定義されています。

参照先 IsSJisHanKata(), と IsSJisKan1().

参照元 GetCharLenR_sjis().

int Charcode::CheckUtf16BeChar | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 641 行で定義されています。

参照先 imp_CheckUtf16Char().

参照元 GetEncdInf_Uni().

int Charcode::CheckUtf16Char | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 638 行で定義されています。

参照先 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 の 256 行で定義されています。

参照先 Base64_CharToVal(), と IsBase64Char().

参照元 GetEncdInf_Utf7().

int Charcode::CheckUtf7SetDPart | ( | const uchar_t * | pS,
 |  | const int | nLen,
 |  | uchar_t *& | ref_pNext
 | ) |  |

UTF-7 セットＤの文字列か

引数:
[out] ref_pNext : 最後に読み込んだ次の文字へのポインタを返す．
戻り値:
不正バイト数を返す．

charcode.cpp の 225 行で定義されています。

参照先 IsUtf7SetDChar().

参照元 GetEncdInf_Utf7().

int Charcode::CheckUtf8Char | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

UTF-8 の文字か

戻り値:
正の数 | : 正常な UTF-8 バイト列.
負の数 | : 不正な UTF-8 バイト列. (往復変換不可とか範囲不正とか)
0 | : 検査データがなくなった.

charcode.cpp の 394 行で定義されています。

参照元 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 の 1061 行で定義されています。

参照先 ACODE::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().

ECodeType Charcode::DetectUnicodeBom | ( | const char * | pS,
 |  | int | nLen
 | ) |  |

2007.08.14 kobake 戻り値をECodeTypeに変更

文字列の先頭にUnicode系BOMが付いているか？

戻り値:
CODE_NONE | なし,未検出
CODE_UNICODE | Unicode
CODE_UTF8 | UTF-8
CODE_UNICODEBE | UnicodeBE

charcode.cpp の 1186 行で定義されています。

参照先 CODE_NONE, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, と NULL.

参照元 CCodeMediator::CheckKanjiCodeOfFile(), と CFileLoad::FileOpen().

int Charcode::GetCharLen_eucjp | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 1013 行で定義されています。

参照先 CheckEucJpChar().

int Charcode::GetCharLen_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

マルチバイト文字の長さを取得

引数:
[in] | pC | データ
[in] | nLen | データ長
戻り値:
検出された文字のバイト数
覚え書き:
データ pC の最初の一文字を検査する．

charcode.cpp の 1005 行で定義されています。

参照先 CheckSJisChar().

int Charcode::GetCharLen_utf8 | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 1017 行で定義されています。

参照先 CheckUtf8Char().

int Charcode::GetCharLenR_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 1009 行で定義されています。

参照先 CheckSJisCharR().

void Charcode::GetEncdInf_EucJp | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |  |

EUC-JP の文字コード判定情報を取得する

charcode.cpp の 958 行で定義されています。

参照先 CheckEucJpChar(), CODE_EUC, EncodingInfo_t::eCodeID, GuessCharLen_eucjp(), EncodingInfo_t::nDiff, と EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding(), と CDlgProperty::SetData().

void Charcode::GetEncdInf_Jis | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |  |

JIS の文字コード判定情報を取得する

charcode.cpp の 1143 行で定義されています。

参照先 CODE_JIS, DetectJisESCSeq(), EncodingInfo_t::eCodeID, JISESC_ASCII, EncodingInfo_t::nDiff, と EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding(), と CDlgProperty::SetData().

void Charcode::GetEncdInf_SJis | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |  |

SJIS の文字コード判定情報を取得する

charcode.cpp の 845 行で定義されています。

参照先 CheckSJisChar(), CODE_SJIS, EncodingInfo_t::eCodeID, GuessCharLen_sjis(), EncodingInfo_t::nDiff, と EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding(), と CDlgProperty::SetData().

void Charcode::GetEncdInf_Uni | ( | const char * | pS,
 |  | const int | nLen,
 |  | UNICODE_INFO * | pWEI
 | ) |  |

UNICODE の文字コード判定情報を取得する

charcode.cpp の 679 行で定義されています。

参照先 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(), と CDlgProperty::SetData().

void Charcode::GetEncdInf_Utf7 | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |  |

UTF-7 の文字コード判定情報を取得する

charcode.cpp の 315 行で定義されています。

参照先 CheckUtf7SetBPart(), CheckUtf7SetDPart(), CODE_UTF7, EncodingInfo_t::eCodeID, EncodingInfo_t::nDiff, と EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding(), と CDlgProperty::SetData().

void Charcode::GetEncdInf_Utf8 | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |  |

UTF-8 の文字コード判定情報を取得する

charcode.cpp の 537 行で定義されています。

参照先 CheckUtf8Char(), CODE_UTF8, EncodingInfo_t::eCodeID, GuessCharLen_utf8(), EncodingInfo_t::nDiff, と EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding(), と CDlgProperty::SetData().

const char *__fastcall Charcode::GetJisESCSeqData ( const enumJisESCSeqType eEscType )

charcode.cpp の 197 行で定義されています。

参照先 TABLE_JISESCDATA.

int __fastcall Charcode::GetJisESCSeqLen ( const enumJisESCSeqType eEscType )

charcode.cpp の 194 行で定義されています。

参照先 TABLE_JISESCLEN.

int Charcode::GuessCharLen_eucjp | ( | const uchar_t * | pC,
 |  | const int | nlen
 | ) |  |

charcode.cpp の 937 行で定義されています。

参照先 IsEucKan1().

参照元 GetEncdInf_EucJp().

int Charcode::GuessCharLen_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |  |

charcode.cpp の 831 行で定義されています。

参照先 IsSJisKan1().

参照元 GetEncdInf_SJis().

int Charcode::GuessCharLen_utf8 | ( | const uchar_t * | pC,
 |  | const int | nlen
 | ) |  |

charcode.cpp の 513 行で定義されています。

参照元 GetEncdInf_Utf8().

int Charcode::imp_CheckUtf16Char | ( | const uchar_t * | pC,
 |  | const int | nLen,
 |  | bool | bBigEndian
 | ) |  |

UTF-16 の文字か 主にサロゲートペアのチェックをする.

覚え書き:
返却値は ２の倍数であること．

charcode.cpp の 603 行で定義されています。

参照先 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 行で定義されています。

参照元 CEuc::EUCToSJIS(), GuessCharLen_eucjp(), と IsEucKan().

bool __fastcall Charcode::IsEucKan2 ( const uchar_t c )

charcode.cpp の 155 行で定義されています。

参照元 CEuc::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 行で定義されています。

参照元 _IS_SJIS_1(), CheckSJisCharR(), GuessCharLen_sjis(), と IsSJisKan().

bool __fastcall Charcode::IsSJisKan2 ( const uchar_t c )

charcode.cpp の 143 行で定義されています。

参照元 _IS_SJIS_2(), と 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(), と CUtf7::IsUTF7Direct().

変数

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

初期値:

 {
        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(), IsBase64Char(), と IsBASE64Char().

const bool Charcode::bNA = false

charcode.cpp の 45 行で定義されています。

const char Charcode::JISESCDATA_ASCII = "\x1b" "(B"

charcode.cpp の 105 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Katakana = "\x1b" "(I"

charcode.cpp の 108 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin = "\x1b" "(J"

charcode.cpp の 106 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin_OLD = "\x1b" "(H"

charcode.cpp の 107 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1978 = "\x1b" "$@"

charcode.cpp の 109 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1983 = "\x1b" "$B"

charcode.cpp の 110 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1990 = "\x1b" "&@""\x1b""$B"

charcode.cpp の 111 行で定義されています。

参照元 DetectJisESCSeq().

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

初期値:

 {
        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

初期値:

 {
        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 Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース CWindowCreationHook

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース CWindowCreationHook

Windowsフック(CBT) [詳細]

関数

static LRESULT CALLBACK | CBTProc (int nCode, WPARAM wParam, LPARAM lParam)
フック用コールバック
void | Use ()
フック開始
void | Unuse ()
フック終了

変数

int | g_nCnt = 0
HHOOK | g_hHook = NULL

説明

Windowsフック(CBT)

関数

static LRESULT CALLBACK CWindowCreationHook::CBTProc | ( | int | nCode,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

フック用コールバック

CWnd.cpp の 47 行で定義されています。

参照先 CWnd::_SetHwnd(), CWndProc(), g_hHook, GetWindowLongPtr, GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, と SetWindowLongPtr.

参照元 Use().

void CWindowCreationHook::Unuse ( )

フック終了

CWnd.cpp の 77 行で定義されています。

参照先 g_hHook, g_nCnt, と NULL.

参照元 CWnd::Create().

void CWindowCreationHook::Use ( )

フック開始

CWnd.cpp の 69 行で定義されています。

参照先 CBTProc(), g_hHook, g_nCnt, と NULL.

参照元 CWnd::Create().

変数

HHOOK CWindowCreationHook::g_hHook = NULL

CWnd.cpp の 44 行で定義されています。

参照元 CBTProc(), Unuse(), と Use().

int CWindowCreationHook::g_nCnt = 0

CWnd.cpp の 43 行で定義されています。

参照元 Unuse(), と Use().

Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース nsFuncCode

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース nsFuncCode

変数

const TCHAR * | ppszFuncKind []
const int | nFuncKindNum = _countof(nsFuncCode::ppszFuncKind)
const int | pnFuncListNumArr []
const EFunctionCode * | ppnFuncListArr []
const int | nFincListNumArrNum = _countof( nsFuncCode::pnFuncListNumArr )

変数

const int nsFuncCode::nFincListNumArrNum = _countof( nsFuncCode::pnFuncListNumArr )

Funccode.cpp の 501 行で定義されています。

const int nsFuncCode::nFuncKindNum = _countof(nsFuncCode::ppszFuncKind)

Funccode.cpp の 60 行で定義されています。

参照元 CFuncLookup::Category2Name(), CFuncLookup::GetCategoryCount(), CFuncLookup::GetItemCount(), CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), CFuncLookup::SetCategory2Combo(), と 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 EFunctionCode * nsFuncCode::ppnFuncListArr

初期値:

 {

    pnFuncList_File,
    pnFuncList_Edit,
    pnFuncList_Move,
    pnFuncList_Select,
    pnFuncList_Box,
    pnFuncList_Clip,
    pnFuncList_Insert,
    pnFuncList_Convert,
    pnFuncList_Search,
    pnFuncList_Mode,
    pnFuncList_Set,
    pnFuncList_Macro,

    pnFuncList_Win,
    pnFuncList_Support,
    pnFuncList_Others
}

Funccode.cpp の 481 行で定義されています。

参照元 CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), と CFuncLookup::SetListItem().

const TCHAR * nsFuncCode::ppszFuncKind

初期値:

 {

    _T("ファイル操作系"),
    _T("編集系"),
    _T("カーソル移動系"),
    _T("選択系"),
    _T("矩形選択系"),
    _T("クリップボード系"),
    _T("挿入系"),
    _T("変換系"),
    _T("検索系"),
    _T("モード切り替え系"),
    _T("設定系"),
    _T("マクロ系"),

    _T("ウィンドウ系"),
    _T("支援"),

}

Funccode.cpp の 39 行で定義されています。

参照元 CFuncLookup::Category2Name(), と CFuncLookup::SetCategory2Combo().

Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース std

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース std

Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース TCODE

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース TCODE

Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ネームスペース WCODE

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース WCODE

関数

bool | isHankaku (wchar_t wc)
半角文字(縦長長方形)かどうか判定
bool | isControlCode (wchar_t wc)
制御文字であるかどうか
bool | isAZ (wchar_t wc)
bool | is09 (wchar_t wc)
bool | isZenkaku (wchar_t wc)
全角文字(正方形)かどうか判定
bool | isZenkakuSpace (wchar_t wc)
全角スペースかどうか判定
bool | isLineDelimiter (wchar_t wc)
改行文字であるかどうか
bool | isWordDelimiter (wchar_t wc)
単語の区切り文字であるかどうか
bool | isIndentChar (wchar_t wc, bool bAcceptZenSpace)
インデント構成要素であるかどうか。bAcceptZenSpace: 全角スペースを含めるかどうか
bool | isBlank (wchar_t wc)
空白かどうか
bool | isHeadCppKeyword (const wchar_t *pData)
CPPキーワードで始まっていれば true
bool | isValidFilenameChar (const wchar_t *pData, size_t nIndex)
ファイル名に使える文字であるかどうか
bool | isTabAvailableCode (wchar_t wc)
タブ表示に使える文字かどうか
bool | isHankakuKatakana (wchar_t c)
半角カナかどうか
bool | isZenkakuKigou (wchar_t c)
全角記号かどうか
bool | isHiragana (wchar_t c)
ひらがなかどうか
bool | isZenkakuKatakana (wchar_t c)
カタカナかどうか
bool | isGreek (wchar_t c)
ギリシャ文字かどうか
bool | isCyrillic (wchar_t c)
キリル文字かどうか
bool | isBoxDrawing (wchar_t c)
BOX DRAWING 文字 かどうか

変数

static const wchar_t | TAB = LCHAR(TAB_)
static const wchar_t | SPACE = LCHAR(SPACE_)
static const wchar_t | CR = LCHAR(CR_)
static const wchar_t | LF = LCHAR(LF_)
static const wchar_t | ESC = LCHAR(ESC_)
static const wchar_t | CRLF [] = LTEXT(CRLF_)
static const wchar_t | LFCR [] = LTEXT(LFCR_)
static const wchar_t | BREGEXP_DELIMITER = (wchar_t)0xFFFF

関数

bool WCODE::is09 ( wchar_t wc ) [inline]

charcode2.h の 106 行で定義されています。

参照元 CKeyMacroMgr::LoadKeyMacro(), と CPropCommon::p5_Import_KeySetting().

bool WCODE::isAZ ( wchar_t wc ) [inline]

charcode2.h の 102 行で定義されています。

bool WCODE::isBlank ( wchar_t wc ) [inline]

空白かどうか

charcode2.h の 150 行で定義されています。

参照先 isZenkakuSpace(), SPACE, と TAB.

参照元 CConvert_Trim::DoConvert(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeTopicList_txt(), と CEditView::RTrimPrevLine().

bool WCODE::isBoxDrawing ( wchar_t c ) [inline]

BOX DRAWING 文字 かどうか

charcode2.h の 228 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isControlCode ( wchar_t wc )

制御文字であるかどうか

charcode.cpp の 1247 行で定義されています。

参照先 isLineDelimiter(), と TAB.

参照元 CEditView::DispLineNew(), と CViewCommander::HandleCommand().

bool WCODE::isCyrillic ( wchar_t c ) [inline]

キリル文字かどうか

charcode2.h の 222 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isGreek ( wchar_t c ) [inline]

ギリシャ文字かどうか

charcode2.h の 216 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isHankaku ( wchar_t wc )

半角文字(縦長長方形)かどうか判定

charcode.cpp の 1222 行で定義されています。

参照先 CalcHankakuByFont().

参照元 ApiWrap::ExtTextOutW_AnyBuild(), CTextMetrics::GenerateDxArray(), CNativeW::GetKetaOfChar(), isZenkaku(), と CWordParse::WhatKindOfChar().

bool WCODE::isHankakuKatakana ( wchar_t c ) [inline]

半角カナかどうか

charcode2.h の 189 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isHeadCppKeyword ( const wchar_t * pData ) [inline]

CPPキーワードで始まっていれば true

charcode2.h の 156 行で定義されています。

参照先 HEAD_EQ.

参照元 CEditView::SmartIndent_CPP().

bool WCODE::isHiragana ( wchar_t c ) [inline]

ひらがなかどうか

charcode2.h の 204 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isIndentChar | ( | wchar_t | wc,
 |  | bool | bAcceptZenSpace |
 | ) |  |  | [inline]

インデント構成要素であるかどうか。bAcceptZenSpace: 全角スペースを含めるかどうか

charcode2.h の 142 行で定義されています。

参照先 isZenkakuSpace(), SPACE, と TAB.

参照元 CViewCommander::Command_GOLINETOP(), CViewCommander::Command_WCHAR(), と CLayoutMgr::getIndentOffset_LeftSpace().

bool WCODE::isLineDelimiter ( wchar_t wc ) [inline]

改行文字であるかどうか

charcode2.h の 130 行で定義されています。

参照先 CR, と LF.

参照元 CViewCommander::Command_GOLINETOP(), CViewCommander::Command_WCHAR(), CEditView::DeleteData(), CTextDrawer::DispEmptyLine(), CViewParser::GetLeftWord(), isControlCode(), と CEditView::TranslateCommand_grep().

bool WCODE::isTabAvailableCode ( wchar_t wc ) [inline]

タブ表示に使える文字かどうか

charcode2.h の 178 行で定義されています。

bool WCODE::isValidFilenameChar | ( | const wchar_t * | pData,
 |  | size_t | nIndex |
 | ) |  |  | [inline]

ファイル名に使える文字であるかどうか

charcode2.h の 168 行で定義されています。

参照先 NULL.

bool WCODE::isWordDelimiter ( wchar_t wc ) [inline]

単語の区切り文字であるかどうか

charcode2.h の 136 行で定義されています。

参照先 isZenkakuSpace(), SPACE, と TAB.

参照元 CViewParser::GetLeftWord().

bool WCODE::isZenkaku ( wchar_t wc ) [inline]

全角文字(正方形)かどうか判定

charcode2.h の 115 行で定義されています。

参照先 isHankaku().

bool WCODE::isZenkakuKatakana ( wchar_t c ) [inline]

カタカナかどうか

charcode2.h の 210 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isZenkakuKigou ( wchar_t c ) [inline]

全角記号かどうか

charcode2.h の 196 行で定義されています。

参照先 NULL.

参照元 CWordParse::WhatKindOfChar().

bool WCODE::isZenkakuSpace ( wchar_t wc ) [inline]

全角スペースかどうか判定

charcode2.h の 121 行で定義されています。

参照元 CEditView::DispLineNew(), isBlank(), isIndentChar(), isWordDelimiter(), CEditDoc::MakeFuncList_BookMark(), と CWordParse::WhatKindOfChar().

変数

const wchar_t WCODE::BREGEXP_DELIMITER = (wchar_t)0xFFFF [static]

charcode2.h の 71 行で定義されています。

参照元 CBregexp::MakePatternSub().

const wchar_t WCODE::CR = LCHAR(CR_) [static]

charcode2.h の 61 行で定義されています。

参照元 C_IsSpace(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMP(), CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_WCHAR(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::GetCurrentTextForSearch(), CLayoutMgr::InsertData_CLayoutMgr(), isLineDelimiter(), CEditView::KeyWordHelpSearchDict(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_Perl(), CEditDoc::MakeFuncList_PLSQL(), CEditDoc::MakeFuncList_RuleFile(), CEditDoc::MakeFuncList_VisualBasic(), CBregexp::MakePattern(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_txt(), CDocLineMgr::PrevOrNextWord(), COutlinePython::ScanNormal(), COutlinePython::ScanString(), CCaret::ShowEditCaret(), CEditView::SmartIndent_CPP(), CConvert_UuDecode::UUDECODE(), CWordParse::WhatKindOfChar(), と CWordParse::WhereCurrentWord_2().

const wchar_t WCODE::CRLF[] = LTEXT(CRLF_) [static]

charcode2.h の 66 行で定義されています。

参照元 CEditView::CopyCurLine(), CEditView::GetSelectedData(), と CBregexp::MakePattern().

const wchar_t WCODE::ESC = LCHAR(ESC_) [static]

charcode2.h の 63 行で定義されています。

const wchar_t WCODE::LF = LCHAR(LF_) [static]

charcode2.h の 62 行で定義されています。

参照元 C_IsSpace(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMP(), CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CEditView::ConvSelectedArea(), CCaret::Cursor_UPDOWN(), CEditView::DeleteData(), CEditView::GetCurrentTextForSearch(), CLayoutMgr::InsertData_CLayoutMgr(), isLineDelimiter(), CEditView::KeyWordHelpSearchDict(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_Perl(), CEditDoc::MakeFuncList_PLSQL(), CEditDoc::MakeFuncList_RuleFile(), CEditDoc::MakeFuncList_VisualBasic(), CBregexp::MakePattern(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_txt(), CDocLineMgr::PrevOrNextWord(), COutlinePython::ScanNormal(), COutlinePython::ScanString(), CCaret::ShowEditCaret(), CConvert_UuDecode::UUDECODE(), CWordParse::WhatKindOfChar(), と CWordParse::WhereCurrentWord_2().

const wchar_t WCODE::LFCR[] = LTEXT(LFCR_) [static]

charcode2.h の 67 行で定義されています。

参照元 CBregexp::MakePattern().

const wchar_t WCODE::SPACE = LCHAR(SPACE_) [static]

charcode2.h の 60 行で定義されています。

参照元 CViewCommander::Command_INDENT(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_UNINDENT(), CConvert_SpaceToTab::DoConvert(), CViewCommander::HandleCommand(), isBlank(), isIndentChar(), isWordDelimiter(), CKeyMacroMgr::LoadKeyMacro(), CEditDoc::MakeFuncList_BookMark(), CEditView::SmartIndent_CPP(), CNativeA::SPACEToTAB(), と CWordParse::WhatKindOfChar().

const wchar_t WCODE::TAB = LCHAR(TAB_) [static]

charcode2.h の 59 行で定義されています。

参照元 CLayout::CalcLayoutOffset(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_JUMP(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WORDRIGHT(), CEditView::DispLineNew(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CLayoutMgr::getIndentOffset_Tx2x(), CViewCommander::HandleCommand(), isBlank(), isControlCode(), isIndentChar(), isWordDelimiter(), CLayoutMgr::LayoutToLogic(), CKeyMacroMgr::LoadKeyMacro(), CLayoutMgr::LogicToLayout(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_Java(), CPrintPreview::Print_DrawLine(), CMemoryIterator::scanNext(), CCaret::ShowEditCaret(), CEditView::SmartIndent_CPP(), CNativeA::SPACEToTAB(), CNativeA::TABToSPACE(), と CWordParse::WhatKindOfChar().

Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数
  • b
  • c
  • d
  • e
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • s
  • t
  • u
  • w

これはネームスペースの一覧です。それぞれのネームスペースへリンクしています。

- b -

  • Base64_CharToVal() : Charcode
  • Base64_ValToChar() : Charcode
  • BASE64CHAR : Charcode
  • BASE64VAL : Charcode
  • bNA : Charcode
  • BREGEXP_DELIMITER : ACODE , WCODE

- c -

  • CBTProc() : CWindowCreationHook
  • CharNextW_AnyBuild() : ApiWrap
  • CharPrevW_AnyBuild() : ApiWrap
  • CheckEucJpChar() : Charcode
  • CheckSJisChar() : Charcode
  • CheckSJisCharR() : Charcode
  • CheckUtf16BeChar() : Charcode
  • CheckUtf16Char() : Charcode
  • CheckUtf7SetBPart() : Charcode
  • CheckUtf7SetDPart() : Charcode
  • CheckUtf8Char() : Charcode
  • Combo_AddString() : ApiWrap
  • Combo_GetText() : ApiWrap
  • CR : ACODE , WCODE
  • CRLF : ACODE , WCODE

- d -

  • DetectJisESCSeq() : Charcode
  • DetectUnicodeBom() : Charcode
  • DlgItem_GetText() : ApiWrap
  • DlgItem_SetText() : ApiWrap

- e -

  • ESC : ACODE , WCODE
  • ExtTextOutOption() : ApiWrap
  • ExtTextOutW_AnyBuild() : ApiWrap

- g -

  • g_hHook : CWindowCreationHook
  • g_nCnt : CWindowCreationHook
  • 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
  • GetKeyState_Alt() : ApiWrap
  • GetKeyState_Control() : ApiWrap
  • GetKeyState_Shift() : ApiWrap
  • GetTextExtentPoint32W_AnyBuild() : ApiWrap
  • GuessCharLen_eucjp() : Charcode
  • GuessCharLen_sjis() : Charcode
  • GuessCharLen_utf8() : Charcode

- i -

  • imp_CheckUtf16Char() : Charcode
  • is09() : WCODE
  • isAZ() : WCODE
  • IsBase64Char() : Charcode
  • isBlank() : WCODE
  • isBoxDrawing() : WCODE
  • isControlCode() : ACODE , WCODE
  • isCyrillic() : WCODE
  • IsEucHanKana2() : Charcode
  • IsEucHanKata2() : Charcode
  • IsEucKan() : Charcode
  • IsEucKan1() : Charcode
  • IsEucKan2() : Charcode
  • isGreek() : WCODE
  • isHankaku() : WCODE
  • isHankakuKatakana() : WCODE
  • isHeadCppKeyword() : WCODE
  • isHiragana() : WCODE
  • isIndentChar() : WCODE
  • isLineDelimiter() : WCODE
  • IsSJisHanKata() : Charcode
  • IsSJisKan() : Charcode
  • IsSJisKan1() : Charcode
  • IsSJisKan2() : Charcode
  • isTabAvailableCode() : WCODE , ACODE
  • IsUtf16SurrogHi() : Charcode
  • IsUtf16SurrogLow() : Charcode
  • IsUtf7SetDChar() : Charcode
  • isValidFilenameChar() : ACODE , WCODE
  • isWordDelimiter() : WCODE
  • isZenkaku() : WCODE
  • isZenkakuKatakana() : WCODE
  • isZenkakuKigou() : WCODE
  • isZenkakuSpace() : WCODE

- 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

- l -

  • LF : ACODE , WCODE
  • LFCR : WCODE , ACODE
  • List_AddString() : ApiWrap
  • List_GetText() : ApiWrap
  • LoadStringW_AnyBuild() : ApiWrap

- m -

  • MakeSureDirectoryPathExistsW() : ApiWrap

- n -

  • nFincListNumArrNum : nsFuncCode
  • nFuncKindNum : nsFuncCode

- p -

  • pnFuncListNumArr : nsFuncCode
  • ppnFuncListArr : nsFuncCode
  • ppszFuncKind : nsFuncCode

- s -

  • SIZEOF_MENUITEMINFO : ApiWrap
  • sizeof_old_PROPSHEETHEADER : ApiWrap
  • SPACE : WCODE , ACODE
  • StatusBar_SetText() : ApiWrap

- t -

  • TAB : ACODE , WCODE
  • TABLE_JISESCDATA : Charcode
  • TABLE_JISESCLEN : Charcode
  • TextOutW_AnyBuild() : ApiWrap

- u -

  • ucNA : Charcode
  • Unuse() : CWindowCreationHook
  • Use() : CWindowCreationHook
  • UTF7SetD : Charcode

- w -

  • Wnd_SetText() : ApiWrap
Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数
  • b
  • c
  • d
  • e
  • g
  • i
  • l
  • m
  • s
  • t
  • u
  • w

- b -

  • Base64_CharToVal() : Charcode
  • Base64_ValToChar() : Charcode

- c -

  • CBTProc() : CWindowCreationHook
  • CharNextW_AnyBuild() : ApiWrap
  • CharPrevW_AnyBuild() : ApiWrap
  • CheckEucJpChar() : Charcode
  • CheckSJisChar() : Charcode
  • CheckSJisCharR() : Charcode
  • CheckUtf16BeChar() : Charcode
  • CheckUtf16Char() : Charcode
  • CheckUtf7SetBPart() : Charcode
  • CheckUtf7SetDPart() : Charcode
  • CheckUtf8Char() : Charcode
  • Combo_AddString() : ApiWrap
  • Combo_GetText() : ApiWrap

- d -

  • DetectJisESCSeq() : Charcode
  • DetectUnicodeBom() : Charcode
  • DlgItem_GetText() : ApiWrap
  • DlgItem_SetText() : ApiWrap

- e -

  • ExtTextOutOption() : ApiWrap
  • ExtTextOutW_AnyBuild() : ApiWrap

- 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
  • GetKeyState_Alt() : ApiWrap
  • GetKeyState_Control() : ApiWrap
  • GetKeyState_Shift() : ApiWrap
  • GetTextExtentPoint32W_AnyBuild() : ApiWrap
  • GuessCharLen_eucjp() : Charcode
  • GuessCharLen_sjis() : Charcode
  • GuessCharLen_utf8() : Charcode

- i -

  • imp_CheckUtf16Char() : Charcode
  • is09() : WCODE
  • isAZ() : WCODE
  • IsBase64Char() : Charcode
  • isBlank() : WCODE
  • isBoxDrawing() : WCODE
  • isControlCode() : ACODE , WCODE
  • isCyrillic() : WCODE
  • IsEucHanKana2() : Charcode
  • IsEucHanKata2() : Charcode
  • IsEucKan() : Charcode
  • IsEucKan1() : Charcode
  • IsEucKan2() : Charcode
  • isGreek() : WCODE
  • isHankaku() : WCODE
  • isHankakuKatakana() : WCODE
  • isHeadCppKeyword() : WCODE
  • isHiragana() : WCODE
  • isIndentChar() : WCODE
  • isLineDelimiter() : WCODE
  • IsSJisHanKata() : Charcode
  • IsSJisKan() : Charcode
  • IsSJisKan1() : Charcode
  • IsSJisKan2() : Charcode
  • isTabAvailableCode() : WCODE , ACODE
  • IsUtf16SurrogHi() : Charcode
  • IsUtf16SurrogLow() : Charcode
  • IsUtf7SetDChar() : Charcode
  • isValidFilenameChar() : ACODE , WCODE
  • isWordDelimiter() : WCODE
  • isZenkaku() : WCODE
  • isZenkakuKatakana() : WCODE
  • isZenkakuKigou() : WCODE
  • isZenkakuSpace() : WCODE

- l -

  • List_AddString() : ApiWrap
  • List_GetText() : ApiWrap
  • LoadStringW_AnyBuild() : ApiWrap

- m -

  • MakeSureDirectoryPathExistsW() : ApiWrap

- s -

  • StatusBar_SetText() : ApiWrap

- t -

  • TextOutW_AnyBuild() : ApiWrap

- u -

  • Unuse() : CWindowCreationHook
  • Use() : CWindowCreationHook

- w -

  • Wnd_SetText() : ApiWrap
Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数
  • b
  • c
  • e
  • g
  • j
  • l
  • n
  • p
  • s
  • t
  • u

- b -

  • BASE64CHAR : Charcode
  • BASE64VAL : Charcode
  • bNA : Charcode
  • BREGEXP_DELIMITER : ACODE , WCODE

- c -

  • CR : ACODE , WCODE
  • CRLF : ACODE , WCODE

- e -

  • ESC : ACODE , WCODE

- g -

  • g_hHook : CWindowCreationHook
  • g_nCnt : CWindowCreationHook

- 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

- l -

  • LF : ACODE , WCODE
  • LFCR : ACODE , WCODE

- n -

  • nFincListNumArrNum : nsFuncCode
  • nFuncKindNum : nsFuncCode

- p -

  • pnFuncListNumArr : nsFuncCode
  • ppnFuncListArr : nsFuncCode
  • ppszFuncKind : nsFuncCode

- s -

  • SIZEOF_MENUITEMINFO : ApiWrap
  • sizeof_old_PROPSHEETHEADER : ApiWrap
  • SPACE : ACODE , WCODE

- t -

  • TAB : ACODE , WCODE
  • TABLE_JISESCDATA : Charcode
  • TABLE_JISESCLEN : Charcode

- u -

  • ucNA : Charcode
  • UTF7SetD : Charcode
Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ファイル索引

  • ファイル一覧
  • ファイルメンバ

Sakura-Editor ファイル一覧

これはファイル一覧です。
bregexp.h [コード] |
build_config.h [コード] |
CAutoSave.cpp [コード] | ファイルの自動保存
CAutoSave.h [コード] | ファイルの自動保存
CBinaryStream.cpp [コード] |
CBinaryStream.h [コード] |
CBlockComment.cpp [コード] | ブロックコメントデリミタを管理する
CBlockComment.h [コード] | ブロックコメントデリミタを管理する
CBregexp.cpp [コード] | BREGEXP Library Handler
CBregexp.h [コード] | BREGEXP Library Handler
CBregexpDll2.cpp [コード] |
CBregexpDll2.h [コード] |
CCaret.cpp [コード] |
CCaret.h [コード] |
CClipboard.cpp [コード] |
CClipboard.h [コード] |
CCodeBase.h [コード] |
CCodeFactory.cpp [コード] |
CCodeFactory.h [コード] |
CCodeMediator.cpp [コード] |
CCodeMediator.h [コード] |
CCommandLine.cpp [コード] | コマンドラインパーサ
CCommandLine.h [コード] | コマンドラインパーサ ヘッダファイル
CControlProcess.cpp [コード] | コントロールプロセスクラス
CControlProcess.h [コード] | コントロールプロセスクラスヘッダファイル
CControlTray.cpp [コード] | 常駐部
CControlTray.h [コード] | 常駐部
CConvert.cpp [コード] |
CConvert.h [コード] |
CConvert_Base64Decode.cpp [コード] |
CConvert_Base64Decode.h [コード] |
CConvert_HaneisuToZeneisu.cpp [コード] |
CConvert_HaneisuToZeneisu.h [コード] |
CConvert_HankanaToZenhira.cpp [コード] |
CConvert_HankanaToZenhira.h [コード] |
CConvert_HankanaToZenkana.cpp [コード] |
CConvert_HankanaToZenkana.h [コード] |
CConvert_SpaceToTab.cpp [コード] |
CConvert_SpaceToTab.h [コード] |
CConvert_TabToSpace.cpp [コード] |
CConvert_TabToSpace.h [コード] |
CConvert_ToHankaku.cpp [コード] |
CConvert_ToHankaku.h [コード] |
CConvert_ToLower.cpp [コード] |
CConvert_ToLower.h [コード] |
CConvert_ToUpper.cpp [コード] |
CConvert_ToUpper.h [コード] |
CConvert_ToZenhira.cpp [コード] |
CConvert_ToZenhira.h [コード] |
CConvert_ToZenkana.cpp [コード] |
CConvert_ToZenkana.h [コード] |
CConvert_Trim.cpp [コード] |
CConvert_Trim.h [コード] |
CConvert_UuDecode.cpp [コード] |
CConvert_UuDecode.h [コード] |
CConvert_ZeneisuToHaneisu.cpp [コード] |
CConvert_ZeneisuToHaneisu.h [コード] |
CConvert_ZenkanaToHankana.cpp [コード] |
CConvert_ZenkanaToHankana.h [コード] |
CDataProfile.cpp [コード] |
CDataProfile.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_Command_New.cpp [コード] | CEditViewクラスのコマンド処理系関数群
CEditView_Diff.cpp [コード] | DIFF差分表示
CEditView_New.cpp [コード] | CEditViewクラス
CEditView_New2.cpp [コード] | CEditViewクラス
CEditView_New3.cpp [コード] | 試験機能？実体無し
CEditView_Paint.cpp [コード] |
CEditView_Paint.h [コード] |
CEditWnd.cpp [コード] | 編集ウィンドウ（外枠）管理クラス
CEditWnd.h [コード] | 編集ウィンドウ（外枠）管理クラス
CEol.cpp [コード] | CEOLクラスの実装
CEol.h [コード] | End of Line種別の管理
CESI.cpp [コード] | 文字コード調査情報保持クラス
CESI.h [コード] | 文字コード調査情報保持クラス
CEuc.cpp [コード] |
CEuc.h [コード] |
CFileExt.cpp [コード] | オープンダイアログ用ファイル拡張子管理
CFileExt.h [コード] | オープンダイアログ用ファイル拡張子管理
CFileLoad.cpp [コード] | ファイル読み込みクラス
CFileLoad.h [コード] | メモリバッファクラスへのファイル入力クラス
CFilePath.cpp [コード] |
CFilePath.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 [コード] | 文字コード認識ライブラリ
charcode2.h [コード] |
CharPointer.h [コード] |
CHokanMgr.cpp [コード] | キーワード補完
CHokanMgr.h [コード] | キーワード補完
CHtmlHelp.cpp [コード] | HtmpHelp動的ロード
CHtmlHelp.h [コード] | HtmpHelp動的ロード
CImageListMgr.cpp [コード] | ImageListの取り扱い
CImageListMgr.h [コード] | ImageListの取り扱い
CIoBridge.cpp [コード] |
CIoBridge.h [コード] |
CJis.cpp [コード] |
CJis.h [コード] |
CKeyBind.cpp [コード] | キー割り当てに関するクラス
CKeyBind.h [コード] | キー割り当てに関するクラス
CKeyMacroMgr.cpp [コード] | キーボードマクロ
CKeyMacroMgr.h [コード] | キーボードマクロ
CKeyWordSetMgr.cpp [コード] | 強調キーワード管理
CKeyWordSetMgr.h [コード] | 強調キーワード管理
CLaxInteger.cpp [コード] |
CLaxInteger.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 [コード] | マクロエンジン
CMainStatusBar.cpp [コード] |
CMainStatusBar.h [コード] |
CMainToolBar.cpp [コード] |
CMainToolBar.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管理
CMyPoint.cpp [コード] |
CMyPoint.h [コード] |
CMyRect.cpp [コード] |
CMyRect.h [コード] |
CMySize.cpp [コード] |
CMySize.h [コード] |
CMyString.cpp [コード] |
CMyString.h [コード] |
CNative.cpp [コード] |
CNative.h [コード] |
CNativeA.cpp [コード] |
CNativeA.h [コード] |
CNativeT.h [コード] |
CNativeW.cpp [コード] |
CNativeW.h [コード] |
CNormalProcess.cpp [コード] | エディタプロセスクラス
CNormalProcess.h [コード] | エディタプロセスクラスヘッダファイル
codeutil.cpp [コード] |
codeutil.h [コード] |
CommonControl.h [コード] |
CommonSetting.cpp [コード] |
CommonSetting.h [コード] |
convert_util.cpp [コード] |
convert_util.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 [コード] | 最近使ったリスト
CRecentCmd.cpp [コード] |
CRecentCmd.h [コード] |
CRecentEditNode.cpp [コード] |
CRecentEditNode.h [コード] |
CRecentFile.cpp [コード] |
CRecentFile.h [コード] |
CRecentFolder.cpp [コード] |
CRecentFolder.h [コード] |
CRecentGrepFile.cpp [コード] |
CRecentGrepFile.h [コード] |
CRecentGrepFolder.cpp [コード] |
CRecentGrepFolder.h [コード] |
CRecentImp.cpp [コード] |
CRecentImp.h [コード] |
CRecentReplace.cpp [コード] |
CRecentReplace.h [コード] |
CRecentSearch.cpp [コード] |
CRecentSearch.h [コード] |
CRecentTagjumpKeyword.cpp [コード] |
CRecentTagjumpKeyword.h [コード] |
CRecycledBuffer.cpp [コード] |
CRecycledBuffer.h [コード] |
CRegexKeyword.cpp [コード] | CRegexKeyword Library
CRegexKeyword.h [コード] | CRegexKeyword Library
CRuler.cpp [コード] |
CRuler.h [コード] |
CRunningTimer.cpp [コード] | 処理所要時間の計測クラス
CRunningTimer.h [コード] | 処理所要時間の計測クラス
CShareData.cpp [コード] | プロセス間共有データへのアクセス
CShareData.h [コード] | プロセス間共有データへのアクセス
CShareData_new.cpp [コード] | プロセス間共有データのファイルへ／からの入出力
CShiftJis.cpp [コード] |
CShiftJis.h [コード] |
CSMacroMgr.cpp [コード] | マクロ
CSMacroMgr.h [コード] | キーボードマクロ(直接実行用)
CSortedTagJumpList.cpp [コード] | タグジャンプリスト
CSortedTagJumpList.h [コード] | タグジャンプリスト
CSplitBoxWnd.cpp [コード] | 分割ボックスウィンドウクラス
CSplitBoxWnd.h [コード] | 分割ボックスウィンドウクラス
CSplitterWnd.cpp [コード] | 分割線ウィンドウクラス
CSplitterWnd.h [コード] | 分割線ウィンドウクラス
CStream.cpp [コード] |
CStream.h [コード] |
CStrictInteger.cpp [コード] |
CStrictInteger.h [コード] | 厳格っぷりをカスタマイズ可能な整数クラス Integer class, which is static-type-checked strict and flexible at compile
CStrictPoint.cpp [コード] |
CStrictPoint.h [コード] |
CStrictRange.cpp [コード] |
CStrictRange.h [コード] |
CStrictRect.cpp [コード] |
CStrictRect.h [コード] |
CTabWnd.cpp [コード] | タブウィンドウ
CTabWnd.h [コード] | タブウィンドウ
CTextArea.cpp [コード] |
CTextArea.h [コード] |
CTextDrawer.cpp [コード] |
CTextDrawer.h [コード] |
CTextMetrics.cpp [コード] |
CTextMetrics.h [コード] |
CTextStream.cpp [コード] |
CTextStream.h [コード] |
CTipWnd.cpp [コード] | ツールチップ
CTipWnd.h [コード] | ツールチップ
CTypeSupport.cpp [コード] |
CTypeSupport.h [コード] |
CUnicode.cpp [コード] |
CUnicode.h [コード] |
CUnicodeBe.cpp [コード] |
CUnicodeBe.h [コード] |
CUtf7.cpp [コード] |
CUtf7.h [コード] |
CUtf8.cpp [コード] |
CUtf8.h [コード] |
CUxTheme.cpp [コード] | UxTheme 動的ロード
CUxTheme.h [コード] | UxTheme 動的ロード
CViewCalc.cpp [コード] |
CViewCalc.h [コード] |
CViewCommander.cpp [コード] | CEditViewクラスのコマンド処理系関数群
CViewCommander.h [コード] |
CViewCommander_Diff.cpp [コード] |
CViewCommander_Grep.cpp [コード] |
CViewCommander_Hokan.cpp [コード] |
CViewCommander_New.cpp [コード] |
CViewFont.cpp [コード] |
CViewFont.h [コード] |
CViewParser.cpp [コード] |
CViewParser.h [コード] |
CViewSelect.cpp [コード] |
CViewSelect.h [コード] |
CWaitCursor.cpp [コード] | 砂時計カーソル
CWaitCursor.h [コード] | 砂時計カーソル
CWnd.cpp [コード] | ウィンドウの基本クラス
CWnd.h [コード] | ウィンドウの基本クラス
CWordParse.cpp [コード] |
CWordParse.h [コード] |
CWSH.cpp [コード] | WSH Handler
CWSH.h [コード] | WSH Handler
CWSHManager.h [コード] | WSH Manager
Debug.cpp [コード] | デバッグ用関数
Debug.h [コード] | デバッグ用関数
Debug2.cpp [コード] |
Debug2.h [コード] |
Debug3.cpp [コード] |
Debug3.h [コード] |
design_template.h [コード] |
DispPos.cpp [コード] |
DispPos.h [コード] |
file.cpp [コード] |
file.h [コード] |
FileInfo.h [コード] |
format.cpp [コード] |
format.h [コード] |
Funccode.cpp [コード] | 機能分類定義
Funccode.h [コード] | 機能番号定義
Funccode_define.h [コード] |
Funccode_enum.h [コード] |
global.cpp [コード] | 文字列共通定義
global.h [コード] | 共通定義
HeaderMake.cpp [コード] |
input.cpp [コード] |
input.h [コード] |
io_util.cpp [コード] |
io_util.h [コード] |
Keycode.h [コード] | キーコード定義
maxdata.h [コード] |
module.cpp [コード] |
module.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
os.cpp [コード] |
os.h [コード] |
primitive.h [コード] |
RcCvt.cpp [コード] |
RcCvt.h [コード] |
sakura.hh [コード] |
sakura_rc.h [コード] |
SakuraBasis.cpp [コード] |
SakuraBasis.h [コード] |
shell.cpp [コード] |
shell.h [コード] |
StaticType.h [コード] |
std_macro.h [コード] |
StdAfx.cpp [コード] |
StdAfx.h [コード] |
StdApi.cpp [コード] |
StdApi.h [コード] |
StdControl.cpp [コード] |
StdControl.h [コード] |
string_ex.cpp [コード] |
string_ex.h [コード] |
string_ex2.cpp [コード] |
string_ex2.h [コード] |
tchar_convert.cpp [コード] |
tchar_convert.h [コード] |
tchar_printf.cpp [コード] |
tchar_printf.h [コード] |
tchar_receive.cpp [コード] |
tchar_receive.h [コード] |
tchar_template.cpp [コード] |
tchar_template.h [コード] |
window.cpp [コード] |
window.h [コード] |
WinMain.cpp [コード] | Entry Point
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: bregexp.h

sakura_core

bregexp.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | bregexp

マクロ定義

#define | BREGEXPAPI __declspec(dllimport)
#define | BREGCONST const

型定義

typedef struct bregexp | BREGEXP_W

関数

BREGEXPAPI int | BMatchW (WCHAR *str, WCHAR *target, WCHAR *targetendp, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI int | BSubstW (WCHAR *str, WCHAR *target, WCHAR *targetendp, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI int | BMatchExW (WCHAR *str, WCHAR *targetbegp, WCHAR *target, WCHAR *targetendp, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI int | BSubstExW (WCHAR *str, WCHAR *targetbegp, WCHAR *target, WCHAR *targetendp, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI int | BTransW (WCHAR *str, WCHAR *target, WCHAR *targetendp, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI int | BSplitW (WCHAR *str, WCHAR *target, WCHAR *targetendp, int limit, BREGEXP_W **rxp, WCHAR *msg)
BREGEXPAPI void | BRegfreeW (BREGEXP_W *rx)
BREGEXPAPI WCHAR * | BRegexpVersionW (void)

マクロ定義

#define BREGCONST const

bregexp.h の 18 行で定義されています。

#define BREGEXPAPI __declspec(dllimport)

bregexp.h の 17 行で定義されています。

型定義

typedef struct bregexp BREGEXP_W

関数

BREGEXPAPI int BMatchExW | ( | WCHAR * | str,
 |  | WCHAR * | targetbegp,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

BREGEXPAPI int BMatchW | ( | WCHAR * | str,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

BREGEXPAPI WCHAR* BRegexpVersionW ( void )

BREGEXPAPI void BRegfreeW ( BREGEXP_W * rx )

BREGEXPAPI int BSplitW | ( | WCHAR * | str,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | int | limit,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

BREGEXPAPI int BSubstExW | ( | WCHAR * | str,
 |  | WCHAR * | targetbegp,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

BREGEXPAPI int BSubstW | ( | WCHAR * | str,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

BREGEXPAPI int BTransW | ( | WCHAR * | str,
 |  | WCHAR * | target,
 |  | WCHAR * | targetendp,
 |  | BREGEXP_W ** | rxp,
 |  | WCHAR * | msg
 | ) |  |

Sakura-Editorに対してSat Nov 17 20:24:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: bregexp.h ソースファイル

sakura_core

bregexp.h

説明を見る。
00001 /*     bregexp.h
00002     external use header file
00003                         1999.11.22  T.Baba
00004 */
00005 /*
00006  *  2002.08.24  modified by K2
00007  *  2006.08.28  modified by K.Takata
00008  */
00009 // 2007.09.13 kobake ACODEビルドでUNICODEコールされるように変更
00010
00011
00012 #ifdef _BREGEXP_
00013 /* for internal use */
00014 #define BREGEXPAPI  __declspec(dllexport)
00015 #define BREGCONST
00016 #else
00017 /* for external use */
00018 #define BREGEXPAPI  __declspec(dllimport)
00019 #define BREGCONST   const
00020 #endif
00021
00022
00023 typedef struct bregexp {
00024     BREGCONST WCHAR *outp;      /* result string start ptr  */
00025     BREGCONST WCHAR *outendp;   /* result string end ptr    */
00026     BREGCONST int   splitctr;   /* split result counter     */
00027     BREGCONST WCHAR **splitp;   /* split result pointer ptr     */
00028     int rsv1;                   /* reserved for external use    */
00029     WCHAR *parap;               /* parameter start ptr ie. "s/xxxxx/yy/gi"  */
00030     WCHAR *paraendp;            /* parameter end ptr     */
00031     WCHAR *transtblp;           /* translate table ptr   */
00032     WCHAR **startp;             /* match string start ptr   */
00033     WCHAR **endp;               /* match string end ptr     */
00034     int nparens;                /* number of parentheses */
00035 } BREGEXP_W;
00036
00037 #if defined(_BREGEXP_) || defined(_K2REGEXP_)
00038 typedef int (__stdcall *BCallBack)(int kind, int value, int index);
00039 #endif
00040
00041 #if defined(__cplusplus)
00042 extern "C"
00043 {
00044 #endif
00045
00046 #ifdef _K2REGEXP_
00047 /* K2Editor */
00048 BREGEXPAPI
00049 int BMatchW(WCHAR *str, WCHAR *target, WCHAR *targetstartp, WCHAR *targetendp,
00050         int one_shot,
00051         BREGEXP_W **rxp, WCHAR *msg);
00052 BREGEXPAPI
00053 int BSubstW(WCHAR *str, WCHAR *target, WCHAR *targetstartp, WCHAR *targetendp,
00054         BREGEXP_W **rxp, WCHAR *msg, BCallBack callback);
00055 #else
00056 /* Original */
00057 BREGEXPAPI
00058 int BMatchW(WCHAR *str, WCHAR *target, WCHAR *targetendp,
00059         BREGEXP_W **rxp, WCHAR *msg);
00060 BREGEXPAPI
00061 int BSubstW(WCHAR *str, WCHAR *target, WCHAR *targetendp,
00062         BREGEXP_W **rxp, WCHAR *msg);
00063
00064 /* Sakura Editor */
00065 BREGEXPAPI
00066 int BMatchExW(WCHAR *str, WCHAR *targetbegp, WCHAR *target, WCHAR *targetendp,
00067         BREGEXP_W **rxp, WCHAR *msg);
00068 BREGEXPAPI
00069 int BSubstExW(WCHAR *str, WCHAR *targetbegp, WCHAR *target, WCHAR *targetendp,
00070         BREGEXP_W **rxp, WCHAR *msg);
00071 #endif
00072
00073
00074 BREGEXPAPI
00075 int BTransW(WCHAR *str, WCHAR *target, WCHAR *targetendp,
00076         BREGEXP_W **rxp, WCHAR *msg);
00077 BREGEXPAPI
00078 int BSplitW(WCHAR *str, WCHAR *target, WCHAR *targetendp,
00079         int limit, BREGEXP_W **rxp, WCHAR *msg);
00080 BREGEXPAPI
00081 void BRegfreeW(BREGEXP_W *rx);
00082
00083 BREGEXPAPI
00084 WCHAR *BRegexpVersionW(void);
00085
00086
00087 #if defined(__cplusplus)
00088 }
00089 #endif
00090
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: build_config.h

sakura_core » config

build_config.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

変数

static const bool UNICODE_BOOL = false
USE_UNFIXED_FONT を定義すると、フォント選択ダイアログで等幅フォント以外も選べるようになる

変数

const bool UNICODE_BOOL = false [static]

USE_UNFIXED_FONT を定義すると、フォント選択ダイアログで等幅フォント以外も選べるようになる

厳格なintを使うかどうか。

主にエディタ部分の座標系単位に関して コンパイル時に静的な型チェックがされるようになります。 ただしその分コンパイル時間もかかります。

実行時挙動は変化無し。 実行時オーバーヘッド不明。コンパイラが賢ければオーバーヘッドゼロ。

リリースビルドでは無効にしておくと良い。

日付:
2007.10.18 kobake

build_config.h の 33 行で定義されています。

参照元 CViewCommander::Command_Reconvert(), と CEditView::DispatchEvent().

Sakura-Editorに対してSat Nov 17 20:24:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: build_config.h ソースファイル

sakura_core » config

build_config.h

説明を見る。
00001 //ビルド(コンパイル)設定
00002 //2007.10.18 kobake 作成
00003
00004 #pragma once
00005
00020 #ifdef _DEBUG
00021 #define USE_STRICT_INT //←これをコメントアウトすると厳格なintが無効になります。リリースビルドでは常に無効。
00022 #endif
00023
00024
00026 //#define USE_UNFIXED_FONT
00027
00028
00029 //UNICODE BOOL定数
00030 #ifdef _UNICODE
00031 static const bool UNICODE_BOOL=true;
00032 #else
00033 static const bool UNICODE_BOOL=false;
00034 #endif
00035
00036
00037 //DebugMonitorLib(仮)を使うかどうか
00038 //#define USE_DEBUGMON
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CAutoSave.cpp

sakura_core

CAutoSave.cpp

ファイルの自動保存 [詳細]

#include "stdafx.h"
#include "CAutoSave.h"

CAutoSave.cppのインクルード依存関係図

ソースコードを見る。

説明

ファイルの自動保存

作者:
genta
日付:
2000

CAutoSave.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:24:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CAutoSave.cpp ソースファイル

sakura_core

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 Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CAutoSave.h

sakura_core

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 Nov 17 20:24:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CAutoSave.h ソースファイル

sakura_core

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 Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBinaryStream.cpp

sakura_core » io

CBinaryStream.cpp

#include "stdafx.h"
#include "CBinaryStream.h"

CBinaryStream.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:24:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBinaryStream.cpp ソースファイル

sakura_core » io

CBinaryStream.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CBinaryStream.h"
00003
00004
00005 CBinaryInputStream::CBinaryInputStream(LPCTSTR tszFilePath)
00006 : CStream(tszFilePath,_T("rb"))
00007 {
00008 }
00009
00011 int CBinaryInputStream::GetLength()
00012 {
00013     long nCur = ftell(m_fp);
00014     fseek(m_fp, 0, SEEK_END);
00015     long nDataLen = ftell(m_fp);
00016     fseek(m_fp, nCur, SEEK_SET);
00017     return nDataLen;
00018 }
00019
00021 int CBinaryInputStream::Read(void* pBuffer, int nSizeInBytes)
00022 {
00023     return fread(pBuffer,1,nSizeInBytes,m_fp);
00024 }
00025
00026
00027
00028 CBinaryOutputStream::CBinaryOutputStream(LPCTSTR tszFilePath)
00029 : CStream(tszFilePath,_T("wb"))
00030 {
00031 }
00032
00034 int CBinaryOutputStream::Write(const void* pBuffer, int nSizeInBytes)
00035 {
00036     return fwrite(pBuffer,1,nSizeInBytes,m_fp);
00037 }
00038
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBinaryStream.h

sakura_core » io

CBinaryStream.h

#include "CStream.h"

CBinaryStream.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CBinaryInputStream
class | CBinaryOutputStream

Sakura-Editorに対してSat Nov 17 20:24:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBinaryStream.h ソースファイル

sakura_core » io

CBinaryStream.h

説明を見る。
00001 #pragma once
00002
00003 #include "CStream.h"
00004
00005 class CBinaryInputStream : public CStream{
00006 public:
00007     CBinaryInputStream(LPCTSTR tszFilePath);
00008
00009 public:
00011     int GetLength();
00012
00014     int Read(void* pBuffer, int nSizeInBytes);
00015 };
00016
00017 class CBinaryOutputStream : public CStream{
00018 public:
00019     CBinaryOutputStream(LPCTSTR tszFilePath);
00020
00021 public:
00023     int Write(const void* pBuffer, int nSizeInBytes);
00024 };
00025
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBlockComment.cpp

sakura_core

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 Nov 17 20:24:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBlockComment.cpp ソースファイル

sakura_core

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 wchar_t* pszFrom, const wchar_t* pszTo )
00038 {
00039     int nStrLen = wcslen( pszFrom );
00040     if( 0 < nStrLen && nStrLen < BLOCKCOMMENT_BUFFERSIZE ){
00041         wcscpy( m_szBlockCommentFrom[n], pszFrom );
00042         m_nBlockFromLen[ n ] = nStrLen;
00043     }
00044     else {
00045         m_szBlockCommentFrom[n][0] = L'\0';
00046         m_nBlockFromLen[n] = 0;
00047     }
00048     nStrLen = wcslen( pszTo );
00049     if( 0 < nStrLen && nStrLen < BLOCKCOMMENT_BUFFERSIZE ){
00050         wcscpy( m_szBlockCommentTo[n], pszTo );
00051         m_nBlockToLen[ n ] = nStrLen;
00052     }
00053     else {
00054         m_szBlockCommentTo[n][0] = L'\0';
00055         m_nBlockToLen[n] = 0;
00056     }
00057 }
00058
00069 bool CBlockComment::Match_CommentFrom(
00070     int n,
00071     int nPos,
00072     int nLineLen,
00073     const wchar_t* pLine
00074 ) const
00075 {
00076     if (
00077         L'\0' != m_szBlockCommentFrom[n][0] &&
00078         L'\0' != m_szBlockCommentTo[n][0]  &&
00079         nPos <= nLineLen - m_nBlockFromLen[n] &&    /* ブロックコメントデリミタ(From) */
00080         0 == auto_memicmp( &pLine[nPos], m_szBlockCommentFrom[n], m_nBlockFromLen[n] )
00081     ){
00082         return true;
00083     }
00084     return false;
00085 }
00086
00098 int CBlockComment::Match_CommentTo( int n, int nPos, int nLineLen, const wchar_t* pLine ) const
00099 {
00100     int i;
00101     for( i = nPos; i <= nLineLen - m_nBlockToLen[n]; ++i ){
00102         // 2005-09-02 D.S.Koba GetSizeOfChar
00103         int nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00104         if( 0 == nCharChars_2 ){
00105             nCharChars_2 = 1;
00106         }
00107         if( 0 == auto_memicmp( &pLine[i], m_szBlockCommentTo[n], m_nBlockToLen[n] ) ){
00108             return i + m_nBlockToLen[n];
00109         }
00110         if( 2 == nCharChars_2 ){
00111             ++i;
00112         }
00113     }
00114     return nLineLen;
00115 }
00116 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBlockComment.h

sakura_core

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::GetData_p3_new(), CPropTypes::SetData_p3_new(), と CShareData::ShareData_IO_Types().

#define BLOCKCOMMENT_NUM 2

ブロックコメントデリミタを管理する

覚え書き:
CBlockCommentは、共有メモリTypesに含まれるので、メンバ変数は常に実体を持っていなければならない。

CBlockComment.h の 28 行で定義されています。

参照元 CBlockComment::CBlockComment().

Sakura-Editorに対してSat Nov 17 20:24:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBlockComment.h ソースファイル

sakura_core

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     wchar_t m_szBlockCommentFrom[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE];
00034     wchar_t m_szBlockCommentTo[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE];
00035     int     m_nBlockFromLen[BLOCKCOMMENT_NUM];
00036     int     m_nBlockToLen[BLOCKCOMMENT_NUM];
00037
00038 public:
00039     /*
00040     ||  Constructors
00041     */
00042     CBlockComment();
00043
00044     void CopyTo( const int n, const wchar_t* pszFrom, const wchar_t* pszTo );   //  行コメントデリミタをコピーする
00045     bool Match_CommentFrom( int n, int nPos, int nLineLen, const wchar_t* pLine ) const;    //  行コメントに値するか確認する
00046     int Match_CommentTo( int n, int nPos, int nLineLen, const wchar_t* pLine ) const;   //  行コメントに値するか確認する
00047
00048     const wchar_t* getBlockCommentFrom( const int n ){
00049         return m_szBlockCommentFrom[n];
00050     };
00051     const wchar_t* getBlockCommentTo( const int n ){
00052         return m_szBlockCommentTo[n];
00053     };
00054     //  2005.11.10 Moca アクセス関数追加
00055     int getBlockFromLen( int n ) const {
00056         return m_nBlockFromLen[n];
00057     };
00058     int getBlockToLen( int n ) const {
00059         return m_nBlockToLen[n];
00060     };
00061 };
00062
00063
00065 #endif /* _CBLOCKCOMMENT_H_ */
00066
00067
00068 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexp.cpp

sakura_core

CBregexp.cpp

BREGEXP Library Handler [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include "CBregexp.h"
#include "charcode.h"

CBregexp.cppのインクルード依存関係図

ソースコードを見る。

関数

bool | InitRegexp (HWND hWnd, CBregexp &rRegexp, bool bShowMessage)
bool | CheckRegexpVersion (HWND hWnd, int nCmpId, bool bShowMessage)
正規表現ライブラリのバージョン取得
bool | CheckRegexpSyntax (const wchar_t *szPattern, HWND hWnd, bool bShowMessage, int nOption)

説明

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 で定義されています。

関数

bool CheckRegexpSyntax | ( | const wchar_t * | szPattern,
 |  | HWND | hWnd,
 |  | bool | bShowMessage,
 |  | int | nOption
 | ) |  |

正規表現が規則に従っているかをチェックする。

引数:
szPattern | [in] チェックする正規表現
hWnd | [in] メッセージボックスの親ウィンドウ
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
nOption | [in] 大文字と小文字を無視して比較するフラグ // 2002/2/1 hor追加
戻り値:
true | 正規表現は規則通り
false | 文法に誤りがある。または、ライブラリが使用できない。

CBregexp.cpp の 522 行で定義されています。

参照先 CBregexp::Compile(), CBregexp::GetLastMessage(), と InitRegexp().

参照元 CPropTypes::DispatchEvent_Regex(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), と CMacro::HandleCommand().

bool CheckRegexpVersion | ( | HWND | hWnd,
 |  | int | nCmpId,
 |  | bool | bShowMessage
 | ) |  |

正規表現ライブラリのバージョン取得

正規表現ライブラリの存在を確認し、あればバージョン情報を指定コンポーネントにセットする。 失敗した場合には空文字列をセットする。

戻り値:
true | バージョン番号の設定に成功
false | 正規表現ライブラリの初期化に失敗
引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。バージョン番号の設定が不要であればNULL。
nCmpId | [in] バージョン文字列を設定するコンポーネントID
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ

CBregexp.cpp の 491 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), CBregexp::GetVersionT(), InitRegexp(), と NULL.

参照元 CPropTypes::DispatchEvent_Regex(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

bool InitRegexp | ( | HWND | hWnd,
 |  | CBregexp & | rRegexp,
 |  | bool | bShowMessage
 | ) |  |

与えられた正規表現ライブラリの初期化を行う． メッセージフラグがONで初期化に失敗したときはメッセージを表示する．

戻り値:
true | 初期化成功
false | 初期化に失敗
引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。バージョン番号の設定が不要であればNULL。
rRegexp | [in] チェックに利用するCBregexpクラスへの参照
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ

CBregexp.cpp の 464 行で定義されています。

参照先 CDllHandler::Init().

参照元 CEditView::ChangeCurRegexp(), CheckRegexpSyntax(), CheckRegexpVersion(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CEditView::DoGrep(), と CEditView::ISearchWordMake().

Sakura-Editorに対してSat Nov 17 20:24:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexp.cpp ソースファイル

sakura_core

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 "charcode.h"
00047
00048
00049 // Compile時、行頭置換(len=0)の時にダミー文字列(１つに統一) by かろと
00050 const wchar_t CBregexp::m_tmpBuf[2] = L"\0";
00051
00052
00053
00054
00055
00056 CBregexp::CBregexp()
00057 : m_pRegExp( NULL )
00058 , m_ePatType( PAT_NORMAL )  //  Jul, 25, 2002 genta
00059 {
00060 }
00061
00062 CBregexp::~CBregexp()
00063 {
00064     //コンパイルバッファを解放
00065     ReleaseCompileBuffer();
00066 }
00067
00068
00077 int CBregexp::CheckPattern(const wchar_t* szPattern)
00078 {
00079     static const wchar_t TOP_MATCH[] = L"/^\\(*\\^/k";
00080     static const wchar_t DOL_MATCH[] = L"/\\\\\\$$/k";
00081     static const wchar_t BOT_MATCH[] = L"/\\$\\)*$/k";
00082     static const wchar_t TAB_MATCH[] = L"/^\\(*\\^\\$\\)*$/k";
00083     static const wchar_t LOOKAHEAD[] = L"/\\(\\?[=]/k";
00084     BREGEXP_W*  sReg = NULL;
00085     wchar_t szMsg[80] = L"";
00086     int nLen;
00087     const wchar_t *szPatternEnd;
00088
00089     m_ePatType = PAT_NORMAL;
00090     nLen = wcslen( szPattern );
00091     szPatternEnd = szPattern + nLen;
00092     // パターン種別の設定
00093     if( BMatch( TOP_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00094         // 行頭パターンにマッチした
00095         m_ePatType |= PAT_TOP;
00096     }
00097     BRegfree(sReg);
00098     sReg = NULL;
00099     if( BMatch( TAB_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00100         // 行頭行末パターンにマッチした
00101         m_ePatType |= PAT_TAB;
00102     }
00103     BRegfree(sReg);
00104     sReg = NULL;
00105     if( BMatch( DOL_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00106         // 行末の\$ にマッチした
00107         // PAT_NORMAL
00108     } else {
00109         BRegfree(sReg);
00110         sReg = NULL;
00111         if( BMatch( BOT_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00112             // 行末パターンにマッチした
00113             m_ePatType |= PAT_BOTTOM;
00114         } else {
00115             // その他
00116             // PAT_NORMAL
00117         }
00118     }
00119     BRegfree(sReg);
00120     sReg = NULL;
00121
00122     if( BMatch( LOOKAHEAD, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) {
00123         // 先読みパターンにマッチした
00124         m_ePatType |= PAT_LOOKAHEAD;
00125     }
00126     BRegfree(sReg);
00127     sReg = NULL;
00128     return (nLen);
00129 }
00130
00140 wchar_t* CBregexp::MakePatternSub(
00141     const wchar_t*  szPattern,
00142     const wchar_t*  szPattern2,
00143     const wchar_t*  szAdd2,
00144     int             nOption
00145 )
00146 {
00147     static const wchar_t DELIMITER = WCODE::BREGEXP_DELIMITER;
00148     int nLen;
00149     int nLen2;
00150
00151     // 検索パターン作成
00152     wchar_t *szNPattern;
00153     wchar_t *pPat;
00154
00155     nLen = wcslen(szPattern);
00156     if (szPattern2 == NULL) {
00157         // 検索(BMatch)時
00158         szNPattern = new wchar_t[ nLen + 15 ];  //  15：「s///option」が余裕ではいるように。
00159         pPat = szNPattern;
00160         *pPat++ = L'm';
00161     }
00162     else {
00163         // 置換(BSubst)時
00164         nLen2 = wcslen(szPattern2) + wcslen(szAdd2);
00165         szNPattern = new wchar_t[ nLen + nLen2 + 15 ];
00166         pPat = szNPattern;
00167         *pPat++ = L's';
00168     }
00169     *pPat++ = DELIMITER;
00170     while (*szPattern != L'\0') { *pPat++ = *szPattern++; }
00171     *pPat++ = DELIMITER;
00172     if (szPattern2 != NULL) {
00173         while (*szPattern2 != L'\0') { *pPat++ = *szPattern2++; }
00174         while (*szAdd2 != L'\0') { *pPat++ = *szAdd2++; }
00175         *pPat++ = DELIMITER;
00176     }
00177     *pPat++ = L'k';         // 漢字対応
00178     *pPat++ = L'm';         // 複数行対応(但し、呼び出し側が複数行対応でない)
00179     // 2006.01.22 かろと 論理逆なので bIgnoreCase -> optCaseSensitiveに変更
00180     if( !(nOption & optCaseSensitive) ) {       // 2002/2/1 hor IgnoreCase オプション追加 マージ：aroka
00181         *pPat++ = L'i';     // 大文字小文字を同一視(無視)する
00182     }
00183     // 2006.01.22 かろと 行単位置換のために、全域オプション追加
00184     if( (nOption & optGlobal) ) {
00185         *pPat++ = L'g';         // 全域(global)オプション、行単位の置換をする時に使用する
00186     }
00187     *pPat = L'\0';
00188     return szNPattern;
00189 }
00190
00191
00211 wchar_t* CBregexp::MakePattern( const wchar_t* szPattern, const wchar_t* szPattern2, int nOption )
00212 {
00213     using namespace WCODE;
00214     static const wchar_t* szCRLF = CRLF;
00215     static const wchar_t szCR[] = {CR,0};
00216     static const wchar_t szLF[] = {LF,0};
00217     static const wchar_t* szLFCR = LFCR;
00218     static const wchar_t BOT_SUBST[] = L"s/\\$(\\)*)$/([\\\\r\\\\n]+)\\$$1/k";
00219     int nLen;
00220     BREGEXP_W*  sReg = NULL;
00221     wchar_t szMsg[80] = L"";
00222     wchar_t szAdd2[5] = L"";
00223     int nParens = 0;
00224     wchar_t *szNPattern;
00225
00226     nLen = CheckPattern( szPattern );
00227     if( (m_ePatType & PAT_BOTTOM) != 0 ) {
00228         bool bJustDollar = false;           // 行末指定の$のみであるフラグ($の前に \r\nが指定されていない)
00229         szNPattern = MakePatternSub(szPattern, NULL, NULL, nOption);
00230         int matched = BMatch( szNPattern, szCRLF, szCRLF+wcslen(szCRLF), &sReg, szMsg );
00231         if( matched >= 0 ) {
00232             // szNPatternが不正なパターン等のエラーでなかった
00233             // エラー時には sRegがNULLのままなので、sReg->nparensへのアクセスは不正
00234             nParens = sReg->nparens;            // オリジナルの検索文字列中の()の数を記憶
00235             if( matched > 0 ) {
00236                 if( sReg->startp[0] == &szCRLF[1] && sReg->endp[0] == &szCRLF[1] ) {
00237                     if( BMatch( NULL, szCR, szCR+wcslen(szCR), &sReg, szMsg ) > 0 && sReg->startp[0] == &szCR[1] && sReg->endp[0] == &szCR[1] ) {
00238                         if( BMatch( NULL, szLF, szLF+wcslen(szLF), &sReg, szMsg ) > 0 && sReg->startp[0] == &szLF[0] && sReg->endp[0] == &szLF[0] ) {
00239                             if( BMatch( NULL, szLFCR, szLFCR+wcslen(szLFCR), &sReg, szMsg ) > 0 && sReg->startp[0] == &szLFCR[0] && sReg->endp[0] == &szLFCR[0] ) {
00240                                 // 検索文字列は 行末($)のみだった
00241                                 bJustDollar = true;
00242                             }
00243                         }
00244                     }
00245                 }
00246             } else {
00247                 if( BMatch( NULL, szCR, szCR+wcslen(szCR), &sReg, szMsg ) <= 0 ) {
00248                     if( BMatch( NULL, szLF, szLF+wcslen(szLF), &sReg, szMsg ) <= 0 ) {
00249                         if( BMatch( NULL, szLFCR, szLFCR+wcslen(szLFCR), &sReg, szMsg ) <= 0 ) {
00250                             // 検索文字列は、文字＋行末($)だった
00251                             bJustDollar = true;
00252                         }
00253                     }
00254                 }
00255             }
00256             BRegfree(sReg);
00257             sReg = NULL;
00258         }
00259         delete [] szNPattern;
00260
00261         if( bJustDollar == true || (m_ePatType & PAT_TAB) != 0 ) {
00262             // 行末指定の$ or 行頭行末指定 なので、検索文字列を置換
00263             if( BSubst( BOT_SUBST, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) {
00264                 szPattern = sReg->outp;
00265                 if( szPattern2 != NULL ) {
00266                     // 置換パターンもあるので、置換パターンの最後に $(nParens+1)を追加
00267                     auto_sprintf( szAdd2, L"$%d", nParens + 1 );
00268                 }
00269             }
00270             // sReg->outp のポインタを参照しているので、sRegを解放するのは最後に
00271         }
00272     }
00273
00274     szNPattern = MakePatternSub( szPattern, szPattern2, szAdd2, nOption );
00275     if( sReg != NULL ) {
00276         BRegfree(sReg);
00277     }
00278     return szNPattern;
00279 }
00280
00281
00293 bool CBregexp::Compile( const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption )
00294 {
00295
00296     //  DLLが利用可能でないときはエラー終了
00297     if( !IsAvailable() )
00298         return false;
00299
00300     //  BREGEXP_W構造体の解放
00301     ReleaseCompileBuffer();
00302
00303     // ライブラリに渡す検索パターンを作成
00304     // 別関数で共通処理に変更 2003.05.03 by かろと
00305     wchar_t *szNPattern = MakePattern( szPattern0, szPattern1, nOption );
00306     m_szMsg[0] = '\0';
00307     if (szPattern1 == NULL) {
00308         // 検索実行
00309         BMatch( szNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg );
00310     } else {
00311         // 置換実行
00312         BSubst( szNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg );
00313     }
00314     delete [] szNPattern;
00315
00316     //  メッセージが空文字列でなければ何らかのエラー発生。
00317     //  サンプルソース参照
00318     if( m_szMsg[0] ){
00319         ReleaseCompileBuffer();
00320         return false;
00321     }
00322
00323     // 行頭条件チェックは、MakePatternに取り込み 2003.05.03 by かろと
00324
00325     return true;
00326 }
00327
00340 bool CBregexp::Match( const wchar_t* target, int len, int nStart )
00341 {
00342     int matched;
00343
00344     //  DLLが利用可能でないとき、または構造体が未設定の時はエラー終了
00345     if( (!IsAvailable()) || m_pRegExp == NULL ){
00346         return false;
00347     }
00348
00349     m_szMsg[0] = '\0';
00350     // 拡張関数がない場合は、行の先頭("^")の検索時の特別処理 by かろと
00351     if (!ExistBMatchEx()) {
00352         /*
00353         ** 行頭(^)とマッチするのは、nStart=0の時だけなので、それ以外は false
00354         */
00355         if( (m_ePatType & PAT_TOP) != 0 && nStart != 0 ) {
00356             // nStart!=0でも、BMatch()にとっては行頭になるので、ここでfalseにする必要がある
00357             return false;
00358         }
00359         //  検索文字列＝NULLを指定すると前回と同一の文字列と見なされる
00360         matched = BMatch( NULL, target + nStart, target + len, &m_pRegExp, m_szMsg );
00361     } else {
00362         //  検索文字列＝NULLを指定すると前回と同一の文字列と見なされる
00363         matched = BMatchEx( NULL, target, target + nStart, target + len, &m_pRegExp, m_szMsg );
00364     }
00365     m_szTarget = target;
00366
00367     if ( matched < 0 || m_szMsg[0] ) {
00368         // BMatchエラー
00369         // エラー処理をしていなかったので、nStart>=lenのような場合に、マッチ扱いになり
00370         // 無限置換等の不具合になっていた 2003.05.03 by かろと
00371         return false;
00372     } else if ( matched == 0 ) {
00373         // 一致しなかった
00374         return false;
00375     }
00376
00377     return true;
00378 }
00379
00380
00381 //<< 2002/03/27 Azumaiya
00395 int CBregexp::Replace(const wchar_t *szTarget, int nLen, int nStart)
00396 {
00397     int result;
00398     //  DLLが利用可能でないとき、または構造体が未設定の時はエラー終了
00399     if( !IsAvailable() || m_pRegExp == NULL )
00400     {
00401         return false;
00402     }
00403
00404     //  From Here 2003.05.03 かろと
00405     // nLenが０だと、BSubst()が置換に失敗してしまうので、代用データ(m_tmpBuf)を使う
00406     //
00407     // 2007.01.19 ryoji 代用データ使用をコメントアウト
00408     // 使用すると現状では結果に１バイト余分なゴミが付加される
00409     // 置換に失敗するのはnLenが０に限らず nLen = nStart のとき（行頭マッチだけ対策しても．．．）
00410     //
00411     //if( nLen == 0 ) {
00412     //  szTarget = m_tmpBuf;
00413     //  nLen = 1;
00414     //}
00415     //  To Here 2003.05.03 かろと
00416
00417     m_szMsg[0] = '\0';
00418     if (!ExistBSubstEx()) {
00419         result = BSubst( NULL, szTarget + nStart, szTarget + nLen, &m_pRegExp, m_szMsg );
00420     } else {
00421         result = BSubstEx( NULL, szTarget, szTarget + nStart, szTarget + nLen, &m_pRegExp, m_szMsg );
00422     }
00423     m_szTarget = szTarget;
00424
00425     //  メッセージが空文字列でなければ何らかのエラー発生。
00426     //  サンプルソース参照
00427     if( m_szMsg[0] ) {
00428         return 0;
00429     }
00430
00431     if( result < 0 ) {
00432         // 置換するものがなかった
00433         return 0;
00434     }
00435     return result;
00436 }
00437 //>> 2002/03/27 Azumaiya
00438
00439
00440 const TCHAR* CBregexp::GetLastMessage() const
00441 {
00442     return to_tchar(m_szMsg);
00443 }
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456 //  From Here Jun. 26, 2001 genta
00464 bool InitRegexp(
00465     HWND        hWnd,
00466     CBregexp&   rRegexp,
00467     bool        bShowMessage
00468 )
00469 {
00470     if( !rRegexp.Init() ){
00471         if( bShowMessage ){
00472             ::MessageBeep( MB_ICONEXCLAMATION );
00473             ::MessageBox( hWnd,
00474                 _T("BREGONIG.DLLが見つかりません。\r\n")
00475                 _T("正規表現を利用するにはBREGONIG.DLLが必要です。\r\n")
00476                 _T("入手方法はヘルプを参照してください。"),
00477                 _T("情報"), MB_OK | MB_ICONEXCLAMATION );
00478         }
00479         return false;
00480     }
00481     return true;
00482 }
00483
00491 bool CheckRegexpVersion(
00492     HWND    hWnd,
00493     int     nCmpId,
00494     bool    bShowMessage
00495 )
00496 {
00497     CBregexp cRegexp;
00498
00499     if( !InitRegexp( hWnd, cRegexp, bShowMessage ) ){
00500         if( hWnd != NULL ){
00501 			::DlgItem_SetText( hWnd, nCmpId, _T(" "));
00502         }
00503         return false;
00504     }
00505     if( hWnd != NULL ){
00506 		::DlgItem_SetText( hWnd, nCmpId, cRegexp.GetVersionT() );
00507     }
00508     return true;
00509 }
00510
00522 bool CheckRegexpSyntax(
00523     const wchar_t*  szPattern,
00524     HWND            hWnd,
00525     bool            bShowMessage,
00526     int             nOption )
00527 {
00528     CBregexp cRegexp;
00529
00530     if( !InitRegexp( hWnd, cRegexp, bShowMessage ) ){
00531         return false;
00532     }
00533     if( !cRegexp.Compile( szPattern, nOption ) ){   // 2002/2/1 hor追加
00534         if( bShowMessage ){
00535             ::MessageBox( hWnd, cRegexp.GetLastMessage(),
00536                 _T("正規表現エラー"), MB_OK | MB_ICONEXCLAMATION );
00537         }
00538         return false;
00539     }
00540     return true;
00541 }
00542 //  To Here Jun. 26, 2001 genta
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexp.h

sakura_core

CBregexp.h

BREGEXP Library Handler [詳細]

#include "CBregexpDll2.h"

CBregexp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CBregexp
Perl互換正規表現 BREGEXP.DLL をサポートするクラス [詳細]

関数

SAKURA_CORE_API bool | CheckRegexpVersion (HWND hWnd, int nCmpId, bool bShowMsg=false)
正規表現ライブラリのバージョン取得
SAKURA_CORE_API bool | CheckRegexpSyntax (const wchar_t *szPattern, HWND hWnd, bool bShowMessage, int nOption=-1)
SAKURA_CORE_API bool | InitRegexp (HWND hWnd, CBregexp &rRegexp, bool bShowMessage)

説明

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 で定義されています。

関数

SAKURA_CORE_API bool CheckRegexpSyntax | ( | const wchar_t * | szPattern,
 |  | HWND | hWnd,
 |  | bool | bShowMessage,
 |  | int | nOption
 | ) |  |

正規表現が規則に従っているかをチェックする。

引数:
szPattern | [in] チェックする正規表現
hWnd | [in] メッセージボックスの親ウィンドウ
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
nOption | [in] 大文字と小文字を無視して比較するフラグ // 2002/2/1 hor追加
戻り値:
true | 正規表現は規則通り
false | 文法に誤りがある。または、ライブラリが使用できない。

CBregexp.cpp の 522 行で定義されています。

参照先 CBregexp::Compile(), CBregexp::GetLastMessage(), と InitRegexp().

参照元 CPropTypes::DispatchEvent_Regex(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), と CMacro::HandleCommand().

SAKURA_CORE_API bool CheckRegexpVersion | ( | HWND | hWnd,
 |  | int | nCmpId,
 |  | bool | bShowMessage
 | ) |  |

正規表現ライブラリのバージョン取得

正規表現ライブラリの存在を確認し、あればバージョン情報を指定コンポーネントにセットする。 失敗した場合には空文字列をセットする。

戻り値:
true | バージョン番号の設定に成功
false | 正規表現ライブラリの初期化に失敗
引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。バージョン番号の設定が不要であればNULL。
nCmpId | [in] バージョン文字列を設定するコンポーネントID
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ

CBregexp.cpp の 491 行で定義されています。

参照先 ApiWrap::DlgItem_SetText(), CBregexp::GetVersionT(), InitRegexp(), と NULL.

参照元 CPropTypes::DispatchEvent_Regex(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

SAKURA_CORE_API bool InitRegexp | ( | HWND | hWnd,
 |  | CBregexp & | rRegexp,
 |  | bool | bShowMessage
 | ) |  |

与えられた正規表現ライブラリの初期化を行う． メッセージフラグがONで初期化に失敗したときはメッセージを表示する．

戻り値:
true | 初期化成功
false | 初期化に失敗
引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。バージョン番号の設定が不要であればNULL。
rRegexp | [in] チェックに利用するCBregexpクラスへの参照
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ

CBregexp.cpp の 464 行で定義されています。

参照先 CDllHandler::Init().

参照元 CEditView::ChangeCurRegexp(), CheckRegexpSyntax(), CheckRegexpVersion(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CEditView::DoGrep(), と CEditView::ISearchWordMake().

Sakura-Editorに対してSat Nov 17 20:24:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexp.h ソースファイル

sakura_core

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 "CBregexpDll2.h"
00046
00065 class SAKURA_CORE_API CBregexp : public CBregexpDll2{
00066 public:
00067     CBregexp();
00068     virtual ~CBregexp();
00069
00070     // 2006.01.22 かろと オプション追加・名称変更
00071     enum Option {
00072         optNothing = 0,
00073         optCaseSensitive = 1,
00074         optGlobal = 2
00075     };
00077     enum Pattern {
00078         PAT_UNKNOWN = 0,
00079         PAT_NORMAL = 1,
00080         PAT_TOP = 2,
00081         PAT_BOTTOM = 4,
00082         PAT_TAB = 8,
00083         PAT_LOOKAHEAD = 16
00084     };
00085
00087     const TCHAR* GetVersionT(){ return IsAvailable() ? to_tchar(BRegexpVersion()) : _T(""); }
00088
00089     //  CJreエミュレーション関数
00091     // 2002/01/19 novice 正規表現による文字列置換
00092     // 2002.01.26 hor    置換後文字列を別引数に
00093     // 2002.02.01 hor    大文字小文字を無視するオプション追加
00094     //>> 2002/03/27 Azumaiya 正規表現置換にコンパイル関数を使う形式を追加
00095     bool Compile(const wchar_t *szPattern, int nOption = 0) {
00096         return Compile(szPattern, NULL, nOption);
00097     }
00098     bool Compile(const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption = 0);
00099     bool Match(const wchar_t *szTarget, int nLen, int nStart = 0);
00100     int Replace(const wchar_t *szTarget, int nLen, int nStart = 0);
00101
00102     //-----------------------------------------
00103     // 2005.03.19 かろと クラス内部を隠蔽
00111     CLogicInt GetIndex(void)
00112     {
00113         return CLogicInt(m_pRegExp->startp[0] - m_szTarget);
00114     }
00119     CLogicInt GetLastIndex(void)
00120     {
00121         return CLogicInt(m_pRegExp->endp[0] - m_szTarget);
00122     }
00127     CLogicInt GetMatchLen(void)
00128     {
00129         return CLogicInt(m_pRegExp->endp[0] - m_pRegExp->startp[0]);
00130     }
00135     CLogicInt GetStringLen(void) {
00136         // 置換後文字列が０幅なら outp、outendpもNULLになる
00137         // NULLポインタの引き算は問題なく０になる。
00138         // outendpは '\0'なので、文字列長は +1不要
00139
00140         // Jun. 03, 2005 Karoto
00141         //  置換後文字列が0幅の場合にoutpがNULLでもoutendpがNULLでない場合があるので，
00142         //  outpのNULLチェックが必要
00143
00144         if (m_pRegExp->outp == NULL) {
00145             return CLogicInt(0);
00146         } else {
00147             return CLogicInt(m_pRegExp->outendp - m_pRegExp->outp);
00148         }
00149     }
00154     const wchar_t *GetString(void)
00155     {
00156         return m_pRegExp->outp;
00157     }
00159     //-----------------------------------------
00160
00164     const TCHAR* GetLastMessage() const;// { return m_szMsg; }
00165
00171     bool IsLookAhead(void) {
00172         return m_ePatType & PAT_LOOKAHEAD ? true : false;
00173     }
00179     bool IsLookAhead(const wchar_t *pattern) {
00180         CheckPattern(pattern);
00181         return IsLookAhead();
00182     }
00183
00184 protected:
00185
00186
00188
00192     void ReleaseCompileBuffer(void){
00193         if( m_pRegExp ){
00194             BRegfree( m_pRegExp );
00195             m_pRegExp = NULL;
00196         }
00197         m_ePatType = PAT_UNKNOWN;
00198     }
00199
00200 private:
00201     //  内部関数
00202
00204     int CheckPattern( const wchar_t* szPattern );
00205     wchar_t* MakePatternSub( const wchar_t* szPattern, const wchar_t* szPattern2, const wchar_t* szAdd2, int nOption );
00206     wchar_t* MakePattern( const wchar_t* szPattern, const wchar_t* szPattern2, int nOption );
00207
00208     //  メンバ変数
00209     BREGEXP_W*          m_pRegExp;
00210     int                 m_ePatType;
00211     const wchar_t*      m_szTarget;
00212     wchar_t             m_szMsg[80];
00213
00214     // 静的メンバ変数
00215     static const wchar_t    m_tmpBuf[2];
00216 };
00217
00218
00219 //  Jun. 26, 2001 genta
00221 SAKURA_CORE_API bool CheckRegexpVersion( HWND hWnd, int nCmpId, bool bShowMsg = false );
00222 SAKURA_CORE_API bool CheckRegexpSyntax( const wchar_t* szPattern, HWND hWnd, bool bShowMessage, int nOption = -1 );// 2002/2/1 hor追加
00223 SAKURA_CORE_API bool InitRegexp( HWND hWnd, CBregexp& rRegexp, bool bShowMessage );
00224
00225
00226 #endif
00227 /*[EOF]*/
00228
00229
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexpDll2.cpp

sakura_core

CBregexpDll2.cpp

#include "stdafx.h"
#include "CBregexpDll2.h"

CBregexpDll2.cppのインクルード依存関係図

ソースコードを見る。

変数

static const TCHAR | P_BREG [] = _T("BREGEXP.DLL")
static const TCHAR | P_ONIG [] = _T("bregonig.dll")

変数

const TCHAR P_BREG[] = _T("BREGEXP.DLL") [static]

CBregexpDll2.cpp の 5 行で定義されています。

const TCHAR P_ONIG[] = _T("bregonig.dll") [static]

CBregexpDll2.cpp の 6 行で定義されています。

参照元 CBregexpDll2::GetDllNameInOrder().

Sakura-Editorに対してSat Nov 17 20:24:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexpDll2.cpp ソースファイル

sakura_core

CBregexpDll2.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CBregexpDll2.h"
00003
00004 //  2007.07.22 genta : DLL判別用
00005 static const TCHAR P_BREG[] = _T("BREGEXP.DLL");
00006 static const TCHAR P_ONIG[] = _T("bregonig.dll");
00007
00008
00009 CBregexpDll2::CBregexpDll2()
00010 {
00011 }
00012
00013 CBregexpDll2::~CBregexpDll2()
00014 {
00015 }
00016
00024 LPCTSTR CBregexpDll2::GetDllNameInOrder( LPCTSTR str, int index )
00025 {
00026
00027     switch( index ){
00028     case 0:
00029         //  NULLはリストの終わりを意味するので，
00030         //  str == NULLの場合にそのまま返してはいけない．
00031         return str == NULL || str[0] == _T('\0') ? P_ONIG : str ;
00032
00033 // 2007.11.04 kobake 文字列管理がUNICODEになり、BREGEXP は使えなくなったので、コメントアウト。
00034 //  case 1:
00035 //      return str == NULL || str[0] == _T('\0') ? P_BREG : NULL;
00036     }
00037     return NULL;
00038 }
00039
00040
00049 int CBregexpDll2::InitDll(void)
00050 {
00051     //DLL内関数名リスト
00052     const ImportTable table[] = {
00053         { &m_BMatch,            "BMatchW" },
00054         { &m_BSubst,            "BSubstW" },
00055         { &m_BTrans,            "BTransW" },
00056         { &m_BSplit,            "BSplitW" },
00057         { &m_BRegfree,          "BRegfreeW" },
00058         { &m_BRegexpVersion,    "BRegexpVersionW" },
00059         { &m_BMatchEx,          "BMatchExW" },
00060         { &m_BSubstEx,          "BSubstExW" },
00061         { NULL, 0 }
00062     };
00063
00064     if( ! RegisterEntries( table )){
00065         return 1;
00066     }
00067
00068     return 0;
00069 }
00070
00074 int CBregexpDll2::DeinitDll( void )
00075 {
00076     return 0;
00077 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexpDll2.h

sakura_core

CBregexpDll2.h

#include "CDllHandler.h"
#include "bregexp.h"

CBregexpDll2.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CBregexpDll2
BREGONIG.DLLをラップしたもの。 [詳細]

Sakura-Editorに対してSat Nov 17 20:24:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CBregexpDll2.h ソースファイル

sakura_core

CBregexpDll2.h

説明を見る。
00001 #pragma once
00002
00003 #include "CDllHandler.h"
00004 #include "bregexp.h"
00005
00007 //2007.09.13 kobake 作成
00008 class CBregexpDll2 : public CDllHandler{
00009 public:
00010     CBregexpDll2();
00011     virtual ~CBregexpDll2();
00012
00013 protected:
00014     // CDllHandlerインタフェース
00015     virtual LPCTSTR GetDllNameInOrder(LPCTSTR, int); // Jul. 5, 2001 genta インターフェース変更に伴う引数追加
00016     virtual int InitDll(void);
00017     virtual int DeinitDll(void);
00018
00019 protected:
00020     // DLL関数の型
00021     typedef int            (__cdecl *BREGEXP_BMatchW2)        (const wchar_t* str, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg);
00022     typedef int            (__cdecl *BREGEXP_BSubstW2)        (const wchar_t* str, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg);
00023     typedef int            (__cdecl *BREGEXP_BTransW2)        (const wchar_t* str, wchar_t* target, wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg);
00024     typedef int            (__cdecl *BREGEXP_BSplitW2)        (const wchar_t* str, wchar_t* target, wchar_t* targetendp, int limit, BREGEXP_W** rxp, wchar_t* msg);
00025     typedef void           (__cdecl *BREGEXP_BRegfreeW2)      (BREGEXP_W* rx);
00026     typedef const wchar_t* (__cdecl *BREGEXP_BRegexpVersionW2)(void);
00027     typedef int            (__cdecl *BREGEXP_BMatchExW2)      (const wchar_t* str, const wchar_t* targetbeg, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg);
00028     typedef int            (__cdecl *BREGEXP_BSubstExW2)      (const wchar_t* str, const wchar_t* targetbeg, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg);
00029
00030 public:
00031     // UNICODEインターフェースを提供する
00032     int BMatch(const wchar_t* str, const wchar_t* target,const wchar_t* targetendp,BREGEXP_W** rxp,wchar_t* msg)
00033     {
00034         return m_BMatch(str,target,targetendp,rxp,msg);
00035     }
00036     int BSubst(const wchar_t* str, const wchar_t* target,const wchar_t* targetendp,BREGEXP_W** rxp,wchar_t* msg)
00037     {
00038         return m_BSubst(str,target,targetendp,rxp,msg);
00039     }
00040     int BTrans(const wchar_t* str, wchar_t* target,wchar_t* targetendp,BREGEXP_W** rxp,wchar_t* msg)
00041     {
00042         return m_BTrans(str,target,targetendp,rxp,msg);
00043     }
00044     int BSplit(const wchar_t* str, wchar_t* target,wchar_t* targetendp,int limit,BREGEXP_W** rxp,wchar_t* msg)
00045     {
00046         return m_BSplit(str,target,targetendp,limit,rxp,msg);
00047     }
00048     void BRegfree(BREGEXP_W* rx)
00049     {
00050         return m_BRegfree(rx);
00051     }
00052     const wchar_t* BRegexpVersion(void)
00053     {
00054         return m_BRegexpVersion();
00055     }
00056     int BMatchEx(const wchar_t* str, const wchar_t* targetbeg, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg)
00057     {
00058         return m_BMatchEx(str,targetbeg,target,targetendp,rxp,msg);
00059     }
00060     int BSubstEx(const wchar_t* str, const wchar_t* targetbeg, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg)
00061     {
00062         return m_BSubstEx(str,targetbeg,target,targetendp,rxp,msg);
00063     }
00064
00065     // 関数があるかどうか
00066     bool ExistBMatchEx() const{ return m_BMatchEx!=NULL; }
00067     bool ExistBSubstEx() const{ return m_BSubstEx!=NULL; }
00068
00069 private:
00070     //DLL内関数ポインタ
00071     BREGEXP_BMatchW2         m_BMatch;
00072     BREGEXP_BSubstW2         m_BSubst;
00073     BREGEXP_BTransW2         m_BTrans;
00074     BREGEXP_BSplitW2         m_BSplit;
00075     BREGEXP_BRegfreeW2       m_BRegfree;
00076     BREGEXP_BRegexpVersionW2 m_BRegexpVersion;
00077     BREGEXP_BMatchExW2       m_BMatchEx;
00078     BREGEXP_BSubstExW2       m_BSubstEx;
00079 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCaret.cpp

sakura_core

CCaret.cpp

#include "stdafx.h"
#include "CCaret.h"
#include "CTextArea.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CTextMetrics.h"
#include "CMemoryIterator.h"
#include "CLayout.h"
#include "charcode.h"
#include "CEditWnd.h"
#include <vector>

CCaret.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCaret.cpp ソースファイル

sakura_core

CCaret.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CCaret.h"
00003 #include "CTextArea.h"
00004 #include "CEditView.h"
00005 #include "CEditDoc.h"
00006 #include "CTextMetrics.h"
00007 #include "CMemoryIterator.h"
00008 #include "CLayout.h"
00009 #include "charcode.h"
00010 #include "CEditWnd.h"
00011 #include <vector>
00012 using namespace std;
00013
00014 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00015 //                         外部依存                            //
00016 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00017
00018
00019 int CCaret::GetHankakuDx() const
00020 {
00021     return m_pEditView->GetTextMetrics().GetHankakuDx();
00022 }
00023
00024 int CCaret::GetHankakuHeight() const
00025 {
00026     return m_pEditView->GetTextMetrics().GetHankakuHeight();
00027 }
00028
00029 int CCaret::GetHankakuDy() const
00030 {
00031     return m_pEditView->GetTextMetrics().GetHankakuDy();
00032 }
00033
00034
00035 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00036 //                      CCaretUnderLine                        //
00037 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00038
00039 /* カーソル行アンダーラインのON */
00040 void CCaretUnderLine::CaretUnderLineON( bool bDraw )
00041 {
00042     if( m_nLockCounter ) return;    //  ロックされていたら何もできない。
00043     m_pcEditView->CaretUnderLineON( bDraw );
00044 }
00045
00046 /* カーソル行アンダーラインのOFF */
00047 void CCaretUnderLine::CaretUnderLineOFF( bool bDraw )
00048 {
00049     if( m_nLockCounter ) return;    //  ロックされていたら何もできない。
00050     m_pcEditView->CaretUnderLineOFF( bDraw );
00051 }
00052
00053
00054
00055
00056 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00057 //               コンストラクタ・デストラクタ                  //
00058 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00059
00060 CCaret::CCaret(CEditView* pEditView, const CEditDoc* pEditDoc)
00061 : m_pEditView(pEditView)
00062 , m_pEditDoc(pEditDoc)
00063 , m_ptCaretPos_Layout(0,0)
00064 , m_sizeCaret(0,0)              // キャレットのサイズ
00065 , m_ptCaretPos_Logic(0,0)           // カーソル位置 (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00066 , m_cUnderLine(pEditView)
00067 {
00068     m_nCaretPosX_Prev = CLayoutInt(0);      /* ビュー左端からのカーソル桁直前の位置(０オリジン) */
00069
00070     m_crCaret = -1;             /* キャレットの色 */         // 2006.12.16 ryoji
00071     m_hbmpCaret = NULL;         /* キャレット用ビットマップ */  // 2006.11.28 ryoji
00072 }
00073
00074 CCaret::~CCaret()
00075 {
00076     // キャレット用ビットマップ // 2006.11.28 ryoji
00077     if( m_hbmpCaret != NULL )
00078         DeleteObject( m_hbmpCaret );
00079 }
00080
00081
00082 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00083 //                     インターフェース                        //
00084 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00085
00109 CLayoutInt CCaret::MoveCursor(
00110     CLayoutPoint    ptWk_CaretPos,
00111     bool            bScroll,
00112     int             nCaretMarginRate
00113 )
00114 {
00115     //必要なインターフェース
00116     const CLayoutMgr* pLayoutMgr=&m_pEditDoc->m_cLayoutMgr;
00117     const Types* pTypes=&m_pEditDoc->GetDocumentAttribute();
00118
00119     // スクロール処理
00120     CLayoutInt  nScrollRowNum = CLayoutInt(0);
00121     CLayoutInt  nScrollColNum = CLayoutInt(0);
00122     RECT    rcClip;
00123     RECT    rcClip2;
00124     int     nCaretMarginY;
00125     CLayoutInt      nScrollMarginRight;
00126     CLayoutInt      nScrollMarginLeft;
00127
00128     if( 0 >= m_pEditView->GetTextArea().m_nViewColNum ){
00129         return CLayoutInt(0);
00130     }
00131
00132     // カーソル行アンダーラインのOFF
00133     m_cUnderLine.CaretUnderLineOFF( bScroll );  //  YAZAKI
00134
00135     if( m_pEditView->GetSelectionInfo().IsMouseSelecting() ){   // 範囲選択中
00136         nCaretMarginY = 0;
00137     }
00138     else{
00139         //  2001/10/20 novice
00140         nCaretMarginY = (Int)m_pEditView->GetTextArea().m_nViewRowNum / nCaretMarginRate;
00141         if( 1 > nCaretMarginY ){
00142             nCaretMarginY = 1;
00143         }
00144     }
00145     // 2004.04.02 Moca 行だけ有効な座標に修正するのを厳密に処理する
00146     GetAdjustCursorPos( &ptWk_CaretPos );
00147
00148
00149     // 水平スクロール量（文字数）の算出
00150     nScrollColNum = CLayoutInt(0);
00151     nScrollMarginRight = CLayoutInt(4);
00152     nScrollMarginLeft = CLayoutInt(4);
00153
00154     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00155     if( m_pEditDoc->m_cLayoutMgr.GetMaxLineKetas() > m_pEditView->GetTextArea().m_nViewColNum &&
00156         ptWk_CaretPos.GetX() > m_pEditView->GetTextArea().GetViewLeftCol() + m_pEditView->GetTextArea().m_nViewColNum - nScrollMarginRight ){
00157         nScrollColNum =
00158             ( m_pEditView->GetTextArea().GetViewLeftCol() + m_pEditView->GetTextArea().m_nViewColNum - nScrollMarginRight ) - ptWk_CaretPos.GetX2();
00159     }
00160     else if( 0 < m_pEditView->GetTextArea().GetViewLeftCol() &&
00161         ptWk_CaretPos.GetX() < m_pEditView->GetTextArea().GetViewLeftCol() + nScrollMarginLeft
00162     ){
00163         nScrollColNum = m_pEditView->GetTextArea().GetViewLeftCol() + nScrollMarginLeft - ptWk_CaretPos.GetX2();
00164         if( 0 > m_pEditView->GetTextArea().GetViewLeftCol() - nScrollColNum ){
00165             nScrollColNum = m_pEditView->GetTextArea().GetViewLeftCol();
00166         }
00167
00168     }
00169
00170     m_pEditView->GetTextArea().SetViewLeftCol(m_pEditView->GetTextArea().GetViewLeftCol() - nScrollColNum);
00171
00172     //  From Here 2007.07.28 じゅうじ : 表示行数が3行以下の場合の動作改善
00173     /* 垂直スクロール量（行数）の算出 */
00174                                         // 画面が３行以下
00175     if( m_pEditView->GetTextArea().m_nViewRowNum <= 3 ){
00176                             // 移動先は、画面のスクロールラインより上か？（up キー）
00177         if( ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine() < nCaretMarginY ){
00178             if( ptWk_CaretPos.y < nCaretMarginY ){  //１行目に移動
00179                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine();
00180             }
00181             else if( m_pEditView->GetTextArea().m_nViewRowNum <= 1 ){   // 画面が１行
00182                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine() - ptWk_CaretPos.y;
00183             }
00184 #if !(0)    // COMMENTにすると、上下の空きを死守しない為、縦移動はgoodだが、横移動の場合上下にぶれる
00185             else if( m_pEditView->GetTextArea().m_nViewRowNum <= 2 ){   // 画面が２行
00186                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine() - ptWk_CaretPos.y;
00187             }
00188 #endif
00189             else
00190             {                       // 画面が３行
00191                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine() - ptWk_CaretPos.y + 1;
00192             }
00193         }else
00194                             // 移動先は、画面の最大行数−２より下か？（down キー）
00195         if( ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine() >= (m_pEditView->GetTextArea().m_nViewRowNum - nCaretMarginY - 2) ){
00196             CLayoutInt ii = m_pEditDoc->m_cLayoutMgr.GetLineCount();
00197             if( ii - ptWk_CaretPos.y < nCaretMarginY + 1 &&
00198                 ii - m_pEditView->GetTextArea().GetViewTopLine() < m_pEditView->GetTextArea().m_nViewRowNum ) {
00199             }
00200             else if( m_pEditView->GetTextArea().m_nViewRowNum <= 2 ){   // 画面が２行、１行
00201                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine() - ptWk_CaretPos.y;
00202             }else{                      // 画面が３行
00203                 nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine() - ptWk_CaretPos.y + 1;
00204             }
00205         }
00206     }
00207     // 移動先は、画面のスクロールラインより上か？（up キー）
00208     else if( ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine() < nCaretMarginY ){
00209         if( ptWk_CaretPos.y < nCaretMarginY ){  //１行目に移動
00210             nScrollRowNum = m_pEditView->GetTextArea().GetViewTopLine();
00211         }else{
00212             nScrollRowNum = -(ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine()) + nCaretMarginY;
00213         }
00214     }
00215     // 移動先は、画面の最大行数−２より下か？（down キー）
00216     else if( ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine() >= m_pEditView->GetTextArea().m_nViewRowNum - nCaretMarginY - 2 ){
00217         CLayoutInt ii = m_pEditDoc->m_cLayoutMgr.GetLineCount();
00218         if( ii - ptWk_CaretPos.y < nCaretMarginY + 1 &&
00219             ii - m_pEditView->GetTextArea().GetViewTopLine() < m_pEditView->GetTextArea().m_nViewRowNum ) {
00220         }
00221         else{
00222             nScrollRowNum =
00223                 -(ptWk_CaretPos.y - m_pEditView->GetTextArea().GetViewTopLine()) + (m_pEditView->GetTextArea().m_nViewRowNum - nCaretMarginY - 2);
00224         }
00225     }
00226     //  To Here 2007.07.28 じゅうじ
00227     if( bScroll ){
00228         /* スクロール */
00229         if( t_abs( nScrollColNum ) >= m_pEditView->GetTextArea().m_nViewColNum ||
00230             t_abs( nScrollRowNum ) >= m_pEditView->GetTextArea().m_nViewRowNum ){
00231             m_pEditView->GetTextArea().OffsetViewTopLine(-nScrollRowNum);
00232             ::InvalidateRect( m_pEditView->m_hWnd, NULL, TRUE );
00233         }
00234         else if( nScrollRowNum != 0 || nScrollColNum != 0 ){
00235             RECT    rcScroll;
00236
00237             m_pEditView->GetTextArea().GenerateTextAreaRect(&rcScroll);
00238             if( nScrollRowNum > 0 ){
00239                 rcScroll.bottom = m_pEditView->GetTextArea().GetAreaBottom() - (Int)nScrollRowNum * m_pEditView->GetTextMetrics().GetHankakuDy();
00240                 m_pEditView->GetTextArea().OffsetViewTopLine(-nScrollRowNum);
00241                 m_pEditView->GetTextArea().GenerateTopRect(&rcClip,nScrollRowNum);
00242             }
00243             else if( nScrollRowNum < 0 ){
00244                 rcScroll.top = m_pEditView->GetTextArea().GetAreaTop() - (Int)nScrollRowNum * m_pEditView->GetTextMetrics().GetHankakuDy();
00245                 m_pEditView->GetTextArea().OffsetViewTopLine(-nScrollRowNum);
00246                 m_pEditView->GetTextArea().GenerateBottomRect(&rcClip,-nScrollRowNum);
00247             }
00248
00249             if( nScrollColNum > 0 ){
00250                 rcScroll.left = m_pEditView->GetTextArea().GetAreaLeft();
00251                 rcScroll.right = m_pEditView->GetTextArea().GetAreaRight() - (Int)nScrollColNum * GetHankakuDx();
00252                 m_pEditView->GetTextArea().GenerateLeftRect(&rcClip2, nScrollColNum);
00253             }
00254             else if( nScrollColNum < 0 ){
00255                 rcScroll.left = m_pEditView->GetTextArea().GetAreaLeft() - (Int)nScrollColNum * GetHankakuDx();
00256                 m_pEditView->GetTextArea().GenerateRightRect(&rcClip2, -nScrollColNum);
00257             }
00258
00259             if( m_pEditView->GetDrawSwitch() ){
00260                 ::ScrollWindowEx(
00261                     m_pEditView->m_hWnd,
00262                     (Int)nScrollColNum * GetHankakuDx(),    /* 水平スクロール量 */
00263                     (Int)nScrollRowNum * m_pEditView->GetTextMetrics().GetHankakuDy(),  /* 垂直スクロール量 */
00264                     &rcScroll,  /* スクロール長方形の構造体のアドレス */
00265                     NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
00266                 );
00267
00268                 if( nScrollRowNum != 0 ){
00269                     ::InvalidateRect( m_pEditView->m_hWnd, &rcClip, TRUE );
00270                     if( nScrollColNum != 0 ){
00271                         m_pEditView->GetTextArea().GenerateLineNumberRect(&rcClip);
00272                         ::InvalidateRect( m_pEditView->m_hWnd, &rcClip, TRUE );
00273                     }
00274                 }
00275                 if( nScrollColNum != 0 ){
00276                     ::InvalidateRect( m_pEditView->m_hWnd, &rcClip2, TRUE );
00277                 }
00278             }
00279         }
00280
00281         /* スクロールバーの状態を更新する */
00282         m_pEditView->AdjustScrollBars(); // 2001/10/20 novice
00283     }
00284
00285     /* キャレット移動 */
00286     SetCaretLayoutPos(ptWk_CaretPos);
00287
00288     /* カーソル位置変換
00289     ||  レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00290     ||  →物理位置(行頭からのバイト数、折り返し無し行位置)
00291     */
00292     m_pEditDoc->m_cLayoutMgr.LayoutToLogic(
00293         m_ptCaretPos_Layout,
00294         &m_ptCaretPos_Logic //カーソル位置。ロジック単位。
00295     );
00296
00297     // 横スクロールが発生したら、ルーラー全体を再描画 2002.02.25 Add By KK
00298     if (nScrollColNum != 0 ){
00299         //次回DispRuler呼び出し時に再描画。（bDraw=falseのケースを考慮した。）
00300         m_pEditView->GetRuler().SetRedrawFlag();
00301     }
00302
00303     /* カーソル行アンダーラインのON */
00304     //CaretUnderLineON( bDraw ); //2002.02.27 Del By KK アンダーラインのちらつきを低減
00305     HDC     hdc = ::GetDC( m_pEditView->m_hWnd );
00306     if( bScroll ){
00307         /* キャレットの表示・更新 */
00308         ShowEditCaret();
00309
00310         /* ルーラの再描画 */
00311         m_pEditView->GetRuler().DispRuler( hdc );
00312
00313         /* アンダーラインの再描画 */
00314         m_cUnderLine.CaretUnderLineON(TRUE);
00315
00316         /* キャレットの行桁位置を表示する */
00317         DrawCaretPosInfo();
00318
00319         //  Sep. 11, 2004 genta 同期スクロールの関数化
00320         //  bScroll == FALSEの時にはスクロールしないので，実行しない
00321         m_pEditView->SyncScrollV( -nScrollRowNum ); //  方向が逆なので符号反転が必要
00322         m_pEditView->SyncScrollH( -nScrollColNum ); //  方向が逆なので符号反転が必要
00323
00324     }
00325     ::ReleaseDC( m_pEditView->m_hWnd, hdc );
00326
00327 // 02/09/18 対括弧の強調表示 ai Start   03/02/18 ai mod S
00328     m_pEditView->DrawBracketPair( false );
00329     m_pEditView->SetBracketPairPos( true );
00330     m_pEditView->DrawBracketPair( true );
00331 // 02/09/18 対括弧の強調表示 ai End     03/02/18 ai mod E
00332
00333     return nScrollRowNum;
00334
00335 }
00336
00337 /* マウス等による座標指定によるカーソル移動
00338 || 必要に応じて縦/横スクロールもする
00339 || 垂直スクロールをした場合はその行数を返す(正／負)
00340 */
00341 //2007.09.11 kobake 関数名変更: MoveCursorToPoint→MoveCursorToClientPoint
00342 CLayoutInt CCaret::MoveCursorToClientPoint( const POINT& ptClientPos )
00343 {
00344     CLayoutInt      nScrollRowNum;
00345     CLayoutPoint    ptLayoutPos;
00346     m_pEditView->GetTextArea().ClientToLayout(ptClientPos, &ptLayoutPos);
00347
00348     int dx = (ptClientPos.x - m_pEditView->GetTextArea().GetAreaLeft()) % ( m_pEditView->GetTextMetrics().GetHankakuDx() );
00349
00350     nScrollRowNum = MoveCursorProperly( ptLayoutPos, TRUE, 1000, dx );
00351     m_nCaretPosX_Prev = GetCaretLayoutPos().GetX2();
00352     return nScrollRowNum;
00353 }
00354 //_CARETMARGINRATE_CARETMARGINRATE_CARETMARGINRATE
00355
00356
00357
00367 BOOL CCaret::GetAdjustCursorPos(
00368     CLayoutPoint* pptPosXY
00369 )
00370 {
00371     //必要なインターフェース
00372     const CLayoutMgr* pLayoutMgr=&m_pEditDoc->m_cLayoutMgr;
00373
00374     // 2004.03.28 Moca EOFのみのレイアウト行は、0桁目のみ有効.EOFより下の行のある場合は、EOF位置にする
00375     CLayoutInt nLayoutLineCount = m_pEditDoc->m_cLayoutMgr.GetLineCount();
00376
00377     CLayoutPoint ptPosXY2 = *pptPosXY;
00378     /*
00379     int nPosX2 = *pnPosX;
00380     int nPosY2 = *pnPosY;
00381     */
00382     BOOL ret = FALSE;
00383     if( ptPosXY2.y >= nLayoutLineCount ){
00384         if( 0 < nLayoutLineCount ){
00385             ptPosXY2.y = nLayoutLineCount - 1;
00386             const CLayout* pcLayout = m_pEditDoc->m_cLayoutMgr.SearchLineByLayoutY( ptPosXY2.GetY2() );
00387             if( pcLayout->m_cEol == EOL_NONE ){
00388                 ptPosXY2.x = m_pEditView->LineIndexToColmn( pcLayout, pcLayout->GetLength() );
00389                 // EOFだけ折り返されているか
00390                 //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00391                 if( ptPosXY2.x >= m_pEditDoc->m_cLayoutMgr.GetMaxLineKetas() ){
00392                     ptPosXY2.y++;
00393                     ptPosXY2.x = CLayoutInt(0);
00394                 }
00395             }
00396             else{
00397                 // EOFだけの行
00398                 ptPosXY2.y++;
00399                 ptPosXY2.x = CLayoutInt(0);
00400             }
00401         }else{
00402             // 空のファイル
00403             ptPosXY2.Set(CLayoutInt(0), CLayoutInt(0));
00404         }
00405         if( *pptPosXY != ptPosXY2 ){//*pnPosX != nPosX2 || *pnPosY != nPosY2 ){
00406             *pptPosXY = ptPosXY2;
00407             //*pnPosX = nPosX2;
00408             //*pnPosY = nPosY2;
00409             ret = TRUE;
00410         }
00411     }
00412     return ret;
00413 }
00414
00415 /* キャレットの表示・更新 */
00416 void CCaret::ShowEditCaret()
00417 {
00418     //必要なインターフェース
00419     const CLayoutMgr* pLayoutMgr=&m_pEditDoc->m_cLayoutMgr;
00420     CommonSetting* pCommon=&m_pEditView->m_pShareData->m_Common;
00421     const Types* pTypes=&m_pEditDoc->GetDocumentAttribute();
00422
00423
00424     using namespace WCODE;
00425
00426     int             nIdxFrom;
00427
00428
00429 /*
00430         なんかフレームウィンドウがアクティブでないときに内部的にカーソル移動すると
00431         カーソルがないのに、カーソルがあるということになってしまう
00432         のでアクティブにしてもカーソルが出てこないときがある
00433         フレームウィンドウがアクティブでないときは、カーソルがないことにする
00434 */
00435
00436     //207.08.26 kobake GetParent → GetAncestor に変更
00437     //アクティブでないのにカーソル作っちゃったから消しちゃう
00438     if( ::GetActiveWindow() != ::GetAncestor( m_pEditView->m_hWnd, GA_ROOT ) ){
00439         m_sizeCaret.cx = 0;
00440         return;
00441     }
00442
00443     /* アクティブなペインを取得 */
00444     if( m_pEditView->m_nMyIndex != m_pEditDoc->m_pcEditWnd->GetActivePane() ){
00445         m_sizeCaret.cx = 0;
00446         return;
00447     }
00448     /* キャレットの幅、高さを決定 */
00449     int             nCaretWidth = 0;
00450     int             nCaretHeight = 0;
00451     // カーソルのタイプ = win
00452     if( 0 == pCommon->m_sGeneral.GetCaretType() ){
00453         nCaretHeight = GetHankakuHeight();                  /* キャレットの高さ */
00454         if( m_pEditView->IsInsMode() /* Oct. 2, 2005 genta */ ){
00455             nCaretWidth = 2;
00456         }
00457         else{
00458             nCaretWidth = GetHankakuDx();
00459
00460             const wchar_t*  pLine;
00461             CLogicInt       nLineLen;
00462             const CLayout*  pcLayout;
00463             pLine = pLayoutMgr->GetLineStr( GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
00464
00465             if( NULL != pLine ){
00466                 /* 指定された桁に対応する行のデータ内の位置を調べる */
00467                 nIdxFrom = m_pEditView->LineColmnToIndex( pcLayout, GetCaretLayoutPos().GetX2() );
00468                 if( nIdxFrom >= nLineLen ||
00469                     pLine[nIdxFrom] == CR || pLine[nIdxFrom] == LF ||
00470                     pLine[nIdxFrom] == TAB ){
00471                     nCaretWidth = GetHankakuDx();
00472                 }
00473                 else{
00474                     CLayoutInt nKeta = CNativeW::GetKetaOfChar( pLine, nLineLen, nIdxFrom );
00475                     if( 0 < nKeta ){
00476                         nCaretWidth = GetHankakuDx() * (Int)nKeta;
00477                     }
00478                 }
00479             }
00480         }
00481     }
00482     // カーソルのタイプ = dos
00483     else if( 1 == pCommon->m_sGeneral.GetCaretType() ){
00484         if( m_pEditView->IsInsMode() /* Oct. 2, 2005 genta */ ){
00485             nCaretHeight = GetHankakuHeight() / 2;          /* キャレットの高さ */
00486         }
00487         else{
00488             nCaretHeight = GetHankakuHeight();              /* キャレットの高さ */
00489         }
00490         nCaretWidth = GetHankakuDx();
00491
00492         const wchar_t*  pLine;
00493         CLogicInt       nLineLen;
00494         const CLayout*  pcLayout;
00495         pLine= pLayoutMgr->GetLineStr( GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
00496
00497         if( NULL != pLine ){
00498             /* 指定された桁に対応する行のデータ内の位置を調べる */
00499             nIdxFrom = m_pEditView->LineColmnToIndex( pcLayout, GetCaretLayoutPos().GetX2() );
00500             if( nIdxFrom >= nLineLen ||
00501                 pLine[nIdxFrom] == CR || pLine[nIdxFrom] == LF ||
00502                 pLine[nIdxFrom] == TAB ){
00503                 nCaretWidth = GetHankakuDx();
00504             }else{
00505                 CLayoutInt nKeta = CNativeW::GetKetaOfChar( pLine, nLineLen, nIdxFrom );
00506                 if( 0 < nKeta ){
00507                     nCaretWidth = GetHankakuDx() * (Int)nKeta;
00508                 }
00509             }
00510         }
00511     }
00512
00513     //  キャレット色の取得
00514     const ColorInfo* ColorInfoArr = pTypes->m_ColorInfoArr;
00515     int nCaretColor = ( ColorInfoArr[COLORIDX_CARET_IME].m_bDisp && m_pEditView->IsImeON() )? COLORIDX_CARET_IME: COLORIDX_CARET;
00516     COLORREF crCaret = ColorInfoArr[nCaretColor].m_colTEXT;
00517     COLORREF crBack = ColorInfoArr[COLORIDX_TEXT].m_colBACK;
00518
00519     if( !ExistCaretFocus() ){
00520         /* キャレットがなかった場合 */
00521         /* キャレットの作成 */
00522         CreateEditCaret( crCaret, crBack, nCaretWidth, nCaretHeight );  // 2006.12.07 ryoji
00523         m_bCaretShowFlag = false; // 2002/07/22 novice
00524     }else{
00525         if( GetCaretSize() != CMySize(nCaretWidth,nCaretHeight) ||
00526             m_crCaret != crCaret || m_pEditView->m_crBack != crBack ){
00527             /* キャレットはあるが、大きさや色が変わった場合 */
00528             /* 現在のキャレットを削除 */
00529 			::DestroyCaret();
00530
00531             /* キャレットの作成 */
00532             CreateEditCaret( crCaret, crBack, nCaretWidth, nCaretHeight );  // 2006.12.07 ryoji
00533             m_bCaretShowFlag = false; // 2002/07/22 novice
00534         }else{
00535             /* キャレットはあるし、大きさも変わっていない場合 */
00536             /* キャレットを隠す */
00537             HideCaret_( m_pEditView->m_hWnd ); // 2002/07/22 novice
00538         }
00539     }
00540
00541     // キャレットサイズ
00542     SetCaretSize(nCaretWidth,nCaretHeight);
00543
00544     /* キャレットの位置を調整 */
00545     //2007.08.26 kobake キャレットX座標の計算をUNICODE仕様にした。
00546     POINT ptDrawPos=CalcCaretDrawPos(GetCaretLayoutPos());
00547     ::SetCaretPos( ptDrawPos.x, ptDrawPos.y );
00548     if ( m_pEditView->GetTextArea().GetAreaLeft() <= ptDrawPos.x && m_pEditView->GetTextArea().GetAreaTop() <= ptDrawPos.y ){
00549         /* キャレットの表示 */
00550         ShowCaret_( m_pEditView->m_hWnd ); // 2002/07/22 novice
00551     }
00552
00553     m_crCaret = crCaret;    //  2006.12.07 ryoji
00554     m_pEditView->m_crBack = crBack;     //  2006.12.07 ryoji
00555     m_pEditView->SetIMECompFormPos();
00556
00557
00558     return;
00559 }
00560
00561
00562
00563
00572 //2007.10.17 kobake 重複するコードを整理
00573 void CCaret::DrawCaretPosInfo()
00574 {
00575     //必要なインターフェース
00576     const CLayoutMgr* pLayoutMgr=&m_pEditDoc->m_cLayoutMgr;
00577     const Types* pTypes=&m_pEditDoc->GetDocumentAttribute();
00578
00579
00580     if( !m_pEditView->GetDrawSwitch() ){
00581         return;
00582     }
00583
00584     // ステータスバーハンドルを取得
00585     HWND hwndStatusBar = m_pEditDoc->m_pcEditWnd->m_cStatusBar.GetStatusHwnd();
00586
00587
00588     // カーソル位置の文字列を取得
00589     const CLayout*  pcLayout;
00590     CLogicInt       nLineLen;
00591     const wchar_t*  pLine = pLayoutMgr->GetLineStr( GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
00592
00593
00594     // -- -- -- -- 文字コード情報 -> pszCodeName -- -- -- -- //
00595     const TCHAR* pszCodeName;
00596     if(!hwndStatusBar){
00597         pszCodeName = gm_pszCodeNameArr_Short[m_pEditDoc->m_nCharCode];
00598     }
00599     else{
00600         pszCodeName = gm_pszCodeNameArr_Normal[m_pEditDoc->m_nCharCode];
00601     }
00602
00603
00604     // -- -- -- -- 改行モード -> szEolMode -- -- -- -- //
00605     //  May 12, 2000 genta
00606     //  改行コードの表示を追加
00607     CEOL cNlType = m_pEditDoc->GetNewLineCode();
00608     const TCHAR* szEolMode = cNlType.GetName();
00609
00610
00611     // -- -- -- -- キャレット位置 -> ptCaret -- -- -- -- //
00612     //
00613     CMyPoint ptCaret;
00614     //行番号をロジック単位で表示
00615     if(pTypes->m_bLineNumIsCRLF){
00616         ptCaret.x = (Int)GetCaretLayoutPos().GetX();
00617         ptCaret.y = (Int)GetCaretLogicPos().y;
00618         if(pcLayout)ptCaret.x += (Int)pcLayout->CalcLayoutOffset(*pLayoutMgr);
00619     }
00620     //行番号をレイアウト単位で表示
00621     else {
00622         ptCaret.x = (Int)GetCaretLayoutPos().GetX();
00623         ptCaret.y = (Int)GetCaretLayoutPos().GetY();
00624     }
00625     //表示値が1から始まるように補正
00626     ptCaret.x++;
00627     ptCaret.y++;
00628
00629
00630     // -- -- -- -- キャレット位置の文字情報 -> szCaretChar -- -- -- -- //
00631     //
00632     TCHAR szCaretChar[32]=_T("");
00633     if( pLine ){
00634         // 指定された桁に対応する行のデータ内の位置を調べる
00635         CLogicInt nIdx = m_pEditView->LineColmnToIndex( pcLayout, GetCaretLayoutPos().GetX2() );
00636         if( nIdx < nLineLen ){
00637             if( nIdx < nLineLen - (pcLayout->m_cEol.GetLen()?1:0) ){
00638                 auto_sprintf( szCaretChar, _T("%04x"), pLine[nIdx]);
00639             }
00640             else{
00641                 _tcscpy_s(szCaretChar, _countof(szCaretChar), pcLayout->m_cEol.GetName());
00642             }
00643         }
00644     }
00645
00646
00647     // -- -- -- --  ステータス情報を書き出す -- -- -- -- //
00648     //
00649     // ウィンドウ右上に書き出す
00650     if( !hwndStatusBar ){
00651         TCHAR   szText[64];
00652         auto_sprintf(
00653             szText,
00654             _T("%ts(%ts)   [%ls]%6d：%d"),
00655             pszCodeName,
00656             szEolMode,
00657             szCaretChar,
00658             ptCaret.y,
00659             ptCaret.x
00660         );
00661         m_pEditDoc->m_pcEditWnd->PrintMenubarMessage( szText );
00662     }
00663     // ステータスバーに状態を書き出す
00664     else{
00665         TCHAR   szText_1[64];
00666         auto_sprintf( szText_1, _T("%5d 行 %4d 桁"), ptCaret.y, ptCaret.x );  //Oct. 30, 2000 JEPRO 千万行も要らん
00667
00668         TCHAR   szText_6[16];
00669         if( m_pEditView->IsInsMode() /* Oct. 2, 2005 genta */ ){
00670             _tcscpy( szText_6, _T("挿入") );
00671         }else{
00672             _tcscpy( szText_6, _T("上書") );
00673         }
00674 		::StatusBar_SetText( hwndStatusBar, 0 | SBT_NOBORDERS, _T("") );
00675 		::StatusBar_SetText( hwndStatusBar, 1 | 0,             szText_1 );
00676         //  May 12, 2000 genta
00677         //  改行コードの表示を追加．後ろの番号を1つずつずらす
00678         //  From Here
00679 		::StatusBar_SetText( hwndStatusBar, 2 | 0,             szEolMode );
00680         //  To Here
00681 		::StatusBar_SetText( hwndStatusBar, 3 | 0,             szCaretChar );
00682 		::StatusBar_SetText( hwndStatusBar, 4 | 0,             pszCodeName );
00683 		::StatusBar_SetText( hwndStatusBar, 5 | SBT_OWNERDRAW, _T("") );
00684 		::StatusBar_SetText( hwndStatusBar, 6 | 0,             szText_6 );
00685     }
00686
00687 }
00688
00689 /* カーソル上下移動処理 */
00690 CLayoutInt CCaret::Cursor_UPDOWN( CLayoutInt nMoveLines, bool bSelect )
00691 {
00692     //必要なインターフェース
00693     const CLayoutMgr* pLayoutMgr=&m_pEditDoc->m_cLayoutMgr;
00694 //  const Types* pTypes=&m_pEditDoc->GetDocumentAttribute();
00695     CommonSetting* pCommon=&m_pEditView->m_pShareData->m_Common;
00696
00697
00698     const wchar_t*  pLine;
00699     CLogicInt       nLineLen;
00700     int             i;
00701     CLayoutInt      nLineCols;
00702     CLayoutInt      nScrollLines;
00703     const CLayout*  pcLayout;
00704     nScrollLines = CLayoutInt(0);
00705
00706     CLayoutPoint        ptPosXY(CLayoutInt(0), GetCaretLayoutPos().GetY());
00707
00708     if( nMoveLines > 0 ){
00709         /* カーソルがテキスト最下端行にあるか */
00710         if( GetCaretLayoutPos().GetY() + nMoveLines >= pLayoutMgr->GetLineCount() ){
00711             nMoveLines = pLayoutMgr->GetLineCount() - GetCaretLayoutPos().GetY()  - 1;
00712         }
00713         if( nMoveLines <= 0 ){
00714             pLine = pLayoutMgr->GetLineStr( GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
00715             if( NULL != pLine ){
00716                 nLineCols = m_pEditView->LineIndexToColmn( pcLayout, nLineLen );
00717                 /* 改行で終わっているか */
00718                 //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00719                 if( ( EOL_NONE != pcLayout->m_cEol.GetLen() )
00720 //              if( ( pLine[ nLineLen - 1 ] == L'\n' || pLine[ nLineLen - 1 ] == L'\r' )
00721                  || nLineCols >= pLayoutMgr->GetMaxLineKetas()
00722                 ){
00723                     if( bSelect ){
00724                         if( !m_pEditView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
00725                             /* 現在のカーソル位置から選択を開始する */
00726                             m_pEditView->GetSelectionInfo().BeginSelectArea();
00727                         }
00728                     }else{
00729                         if( m_pEditView->GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
00730                             /* 現在の選択範囲を非選択状態に戻す */
00731                             m_pEditView->GetSelectionInfo().DisableSelectArea( TRUE );
00732                         }
00733                     }
00734                     ptPosXY.x = CLayoutInt(0);
00735                     ++ptPosXY.y;
00736                     if( bSelect ){
00737                         /* 現在のカーソル位置によって選択範囲を変更 */
00738                         m_pEditView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( ptPosXY );
00739                     }
00740                     nScrollLines = MoveCursor( ptPosXY, m_pEditView->GetDrawSwitch() /* TRUE */ ); // YAZAKI.
00741                 }
00742             }
00743             //  Sep. 11, 2004 genta 同期スクロールの関数化
00744             //  MoveCursorでスクロール位置調整済み
00745             //SyncScrollV( nScrollLines );
00746             return nScrollLines;
00747         }
00748     }else{
00749         /* カーソルがテキスト最上端行にあるか */
00750         if( GetCaretLayoutPos().GetY() + nMoveLines < 0 ){
00751             nMoveLines = - GetCaretLayoutPos().GetY();
00752         }
00753         if( nMoveLines >= 0 ){
00754             //  Sep. 11, 2004 genta 同期スクロールの関数化
00755             m_pEditView->SyncScrollV( nScrollLines );
00756             return nScrollLines;
00757         }
00758     }
00759     if( bSelect ){
00760         if( !m_pEditView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
00761             /* 現在のカーソル位置から選択を開始する */
00762             m_pEditView->GetSelectionInfo().BeginSelectArea();
00763         }
00764     }else{
00765         if( m_pEditView->GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
00766             /* 現在の選択範囲を非選択状態に戻す */
00767             m_pEditView->GetSelectionInfo().DisableSelectArea( TRUE );
00768         }
00769     }
00770     /* 次の行のデータを取得 */
00771     pLine = pLayoutMgr->GetLineStr( GetCaretLayoutPos().GetY2() + CLayoutInt(nMoveLines), &nLineLen, &pcLayout );
00772     CMemoryIterator it( pcLayout, pLayoutMgr->GetTabSpace() );
00773     while( !it.end() ){
00774         it.scanNext();
00775         if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00776             i = nLineLen;
00777             break;
00778         }
00779         if( it.getColumn() + it.getColumnDelta() > m_nCaretPosX_Prev ){
00780             i = it.getIndex();
00781             break;
00782         }
00783         it.addDelta();
00784     }
00785     ptPosXY.x += it.getColumn();
00786     if ( it.end() ){
00787         i = it.getIndex();
00788     }
00789
00790     if( i >= nLineLen ){
00791         /* フリーカーソルモードか */
00792         if( pCommon->m_sGeneral.m_bIsFreeCursorMode
00793          || m_pEditView->GetSelectionInfo().IsTextSelected() && m_pEditView->GetSelectionInfo().IsBoxSelecting()    /* 矩形範囲選択中 */
00794         ){
00795             if( GetCaretLayoutPos().GetY() + nMoveLines + 1 == pLayoutMgr->GetLineCount()  ){
00796                 if( NULL != pLine ){
00797                     if( pLine[nLineLen - 1] == WCODE::CR || pLine[nLineLen - 1] == WCODE::LF ){
00798                         ptPosXY.x = m_nCaretPosX_Prev;
00799                     }
00800                 }
00801             }else{
00802                 ptPosXY.x = m_nCaretPosX_Prev;
00803             }
00804         }
00805     }
00806     nScrollLines = MoveCursor( CLayoutPoint(ptPosXY.x, GetCaretLayoutPos().GetY() + nMoveLines), m_pEditView->GetDrawSwitch() /* TRUE */ ); // YAZAKI.
00807     if( bSelect ){
00808         /* 現在のカーソル位置によって選択範囲を変更 */
00809         m_pEditView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( CLayoutPoint(ptPosXY.x, GetCaretLayoutPos().GetY()) );
00810     }
00811
00812     return nScrollLines;
00813 }
00814
00815
00824 void CCaret::CreateEditCaret( COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight )
00825 {
00826     //
00827     // キャレット用のビットマップを作成する
00828     //
00829     // Note: ウィンドウ互換のメモリ DC 上で PatBlt を用いてキャレット色と背景色を XOR 結合
00830     //       することで，目的のビットマップを得る．
00831     //       ※ 256 色環境では RGB 値を単純に直接演算してもキャレット色を出すための正しい
00832     //          ビットマップ色は得られない．
00833     //       参考: [HOWTO] キャレットの色を制御する方法
00834     //             http://support.microsoft.com/kb/84054/ja
00835     //
00836
00837     HBITMAP hbmpCaret;  // キャレット用のビットマップ
00838
00839     HDC hdc = ::GetDC( m_pEditView->m_hWnd );
00840
00841     hbmpCaret = ::CreateCompatibleBitmap( hdc, nWidth, nHeight );
00842     HDC hdcMem = ::CreateCompatibleDC( hdc );
00843     HBITMAP hbmpOld = (HBITMAP)::SelectObject( hdcMem, hbmpCaret );
00844     HBRUSH hbrCaret = ::CreateSolidBrush( crCaret );
00845     HBRUSH hbrBack = ::CreateSolidBrush( crBack );
00846     HBRUSH hbrOld = (HBRUSH)::SelectObject( hdcMem, hbrCaret );
00847     ::PatBlt( hdcMem, 0, 0, nWidth, nHeight, PATCOPY );
00848     ::SelectObject( hdcMem, hbrBack );
00849     ::PatBlt( hdcMem, 0, 0, nWidth, nHeight, PATINVERT );
00850     ::SelectObject( hdcMem, hbrOld );
00851     ::SelectObject( hdcMem, hbmpOld );
00852     ::DeleteObject( hbrCaret );
00853     ::DeleteObject( hbrBack );
00854     ::DeleteDC( hdcMem );
00855
00856     ::ReleaseDC( m_pEditView->m_hWnd, hdc );
00857
00858     // 以前のビットマップを破棄する
00859     if( m_hbmpCaret != NULL )
00860         ::DeleteObject( m_hbmpCaret );
00861     m_hbmpCaret = hbmpCaret;
00862
00863     // キャレットを作成する
00864     ::CreateCaret( m_pEditView->m_hWnd, hbmpCaret, nWidth, nHeight );
00865     return;
00866 }
00867
00868
00869 // 2002/07/22 novice
00873 void CCaret::ShowCaret_( HWND hwnd )
00874 {
00875     if ( m_bCaretShowFlag == false ){
00876         ::ShowCaret( hwnd );
00877         m_bCaretShowFlag = true;
00878     }
00879 }
00880
00881
00885 void CCaret::HideCaret_( HWND hwnd )
00886 {
00887     if ( m_bCaretShowFlag == true ){
00888         ::HideCaret( hwnd );
00889         m_bCaretShowFlag = false;
00890     }
00891 }
00892
00894 void CCaret::CopyCaretStatus(CCaret* pCaret) const
00895 {
00896     pCaret->SetCaretLayoutPos(GetCaretLayoutPos());
00897     pCaret->m_nCaretPosX_Prev = m_nCaretPosX_Prev;  /* ビュー左端からのカーソル桁位置（０オリジン）*/
00898
00899     //※ キャレットのサイズはコピーしない。2002/05/12 YAZAKI
00900 }
00901
00902
00903 POINT CCaret::CalcCaretDrawPos(const CLayoutPoint& ptCaretPos) const
00904 {
00905     int nPosX = m_pEditView->GetTextArea().GetAreaLeft() + (Int)(ptCaretPos.x - m_pEditView->GetTextArea().GetViewLeftCol()) * GetHankakuDx();
00906     int nPosY = m_pEditView->GetTextArea().GetAreaTop()  + (Int)(ptCaretPos.y - m_pEditView->GetTextArea().GetViewTopLine()) * m_pEditView->GetTextMetrics().GetHankakuDy()
00907         + m_pEditView->GetTextMetrics().GetHankakuDy() - GetCaretSize().cy; //下寄せ
00908
00909     return CMyPoint(nPosX,nPosY);
00910 }
00911
00912
00913
00914
00926 CLayoutInt CCaret::MoveCursorProperly(
00927     CLayoutPoint    ptNewXY,
00928     bool            bScroll,
00929     int             nCaretMarginRate,
00930     int             dx
00931 )
00932 {
00933     const wchar_t*      pLine;
00934     CLogicInt       nLineLen;
00935     const CLayout*  pcLayout;
00936
00937     if( 0 > ptNewXY.y ){
00938         ptNewXY.y = CLayoutInt(0);
00939     }
00940
00941     /* カーソルがテキスト最下端行にあるか */
00942     if( ptNewXY.y >= m_pEditDoc->m_cLayoutMgr.GetLineCount() ){
00943         // 2004.04.03 Moca EOFより後ろの座標調整は、MoveCursor内でやってもらうので、削除
00944     }
00945     /* カーソルがテキスト最上端行にあるか */
00946     else if( ptNewXY.y < 0 ){
00947         ptNewXY.Set(CLayoutInt(0), CLayoutInt(0));
00948     }
00949     else{
00950         /* 移動先の行のデータを取得 */
00951         pLine = m_pEditDoc->m_cLayoutMgr.GetLineStr( ptNewXY.GetY2(), &nLineLen, &pcLayout );
00952
00953         int nColWidth = m_pEditView->GetTextMetrics().GetHankakuDx();
00954         CLayoutInt nPosX = CLayoutInt(0);
00955         int i = 0;
00956         CMemoryIterator it( pcLayout, m_pEditDoc->m_cLayoutMgr.GetTabSpace() );
00957         while( !it.end() ){
00958             it.scanNext();
00959             if ( it.getIndex() + it.getIndexDelta() > CLogicInt(pcLayout->GetLengthWithoutEOL()) ){
00960                 i = nLineLen;
00961                 break;
00962             }
00963             if( it.getColumn() + it.getColumnDelta() > ptNewXY.GetX2() ){
00964                 if (ptNewXY.GetX2() >= (pcLayout ? pcLayout->GetIndent() : CLayoutInt(0)) && ((ptNewXY.GetX2() - it.getColumn()) * nColWidth + dx) * 2 >= it.getColumnDelta() * nColWidth){
00965                 //if (ptNewXY.GetX2() >= (pcLayout ? pcLayout->GetIndent() : CLayoutInt(0)) && (it.getColumnDelta() > CLayoutInt(1)) && ((it.getColumn() + it.getColumnDelta() - ptNewXY.GetX2()) <= it.getColumnDelta() / 2)){
00966                     nPosX += it.getColumnDelta();
00967                 }
00968                 i = it.getIndex();
00969                 break;
00970             }
00971             it.addDelta();
00972         }
00973         nPosX += it.getColumn();
00974         if ( it.end() ){
00975             i = it.getIndex();
00976             nPosX -= it.getColumnDelta();
00977         }
00978
00979         if( i >= nLineLen ){
00980             if( ptNewXY.y +1 == m_pEditDoc->m_cLayoutMgr.GetLineCount() &&
00981                 EOL_NONE == pcLayout->m_cEol.GetLen() ){
00982                 nPosX = m_pEditView->LineIndexToColmn( pcLayout, nLineLen );
00983             }
00984             /* フリーカーソルモードか */
00985             else if( m_pEditView->m_pShareData->m_Common.m_sGeneral.m_bIsFreeCursorMode
00986               || ( m_pEditView->GetSelectionInfo().IsMouseSelecting() && m_pEditView->GetSelectionInfo().IsBoxSelecting() ) /* マウス範囲選択中 && 矩形範囲選択中 */
00987               || ( m_pEditView->m_bDragMode && m_pEditView->GetSelectionInfo().IsBoxSelecting() ) /* OLE DropTarget && 矩形範囲選択中 */
00988             ){
00989                 nPosX = ptNewXY.GetX2();
00990                 //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00991                 if( nPosX < CLayoutInt(0) ){
00992                     nPosX = CLayoutInt(0);
00993                 }
00994                 else if( nPosX > m_pEditDoc->m_cLayoutMgr.GetMaxLineKetas() ){  /* 折り返し桁数 */
00995                     nPosX = m_pEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00996                 }
00997             }
00998         }
00999         ptNewXY.SetX( nPosX );
01000     }
01001
01002     return MoveCursor( ptNewXY, bScroll, nCaretMarginRate );
01003 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCaret.h

sakura_core

CCaret.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CCaretUnderLine
class | CCaret

マクロ定義

#define | _CARETMARGINRATE 20

マクロ定義

#define _CARETMARGINRATE 20

CCaret.h の 3 行で定義されています。

参照元 CViewCommander::Command_JUMP(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CEditWnd::DispatchEvent(), CEditView::ISearchBack(), と CEditView::ISearchExec().

Sakura-Editorに対してSat Nov 17 20:25:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCaret.h ソースファイル

sakura_core

CCaret.h

説明を見る。
00001 #pragma once
00002
00003 #define _CARETMARGINRATE 20
00004 class CTextArea;
00005 class CEditView;
00006 class CEditDoc;
00007 class CTextMetrics;
00008 class CCaret;
00009 class CEditWnd;
00010
00011 class SAKURA_CORE_API CCaretUnderLine
00012 {
00013 public:
00014     CCaretUnderLine(CEditView* pcEditView)
00015     : m_pcEditView(pcEditView)
00016     {
00017         m_nLockCounter = 0;
00018     }
00019     // 表示非表示を切り替えられないようにする
00020     void Lock()
00021     {
00022         m_nLockCounter++;
00023     }
00024     // 表示非表示を切り替えられるようにする
00025     void UnLock()
00026     {
00027         m_nLockCounter--;
00028         if (m_nLockCounter < 0){
00029             m_nLockCounter = 0;
00030         };
00031     }
00032     void CaretUnderLineON( bool );  // カーソル行アンダーラインのON
00033     void CaretUnderLineOFF( bool ); // カーソル行アンダーラインのOFF
00034 private:
00035     /* ロックカウンタ。0のときは、ロックされていない。UnLockが呼ばれすぎても負にはならない */
00036     int m_nLockCounter;
00037     CEditView* m_pcEditView;
00038 };
00039
00040
00041
00042 class CCaret{
00043 public:
00044     CCaret(CEditView* pEditView, const CEditDoc* pEditDoc);
00045     virtual ~CCaret();
00046
00047     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00048     //                         外部依存                            //
00049     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00050
00051     int GetHankakuDx() const;
00052     int GetHankakuDy() const;
00053     int GetHankakuHeight() const;
00054
00055     //ドキュメントのインスタンスを求める
00056     const CEditDoc* GetDocument() const{ return m_pEditDoc; }
00057
00058     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00059     //                         実装補助                            //
00060     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00061     POINT CalcCaretDrawPos(const CLayoutPoint& ptCaretPos) const;
00062
00063
00064     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00065     //                   初期化・終了処理など                      //
00066     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00067
00069     void CreateEditCaret(
00070         COLORREF crCaret,
00071         COLORREF crBack,
00072         int nWidth,
00073         int nHeight
00074     );
00075
00077     void DestroyCaret()
00078     {
00079 		::DestroyCaret();
00080         m_sizeCaret.cx = 0;
00081     }
00082
00084     void CopyCaretStatus(CCaret* pDestCaret) const;
00085
00086     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00087     //                           移動                              //
00088     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00089
00090     //設定
00091     CLayoutInt MoveCursorToClientPoint( const POINT& ptClientPos );
00092     CLayoutInt Cursor_UPDOWN( CLayoutInt nMoveLines, bool bSelect );
00093     CLayoutInt MoveCursor(
00094         CLayoutPoint    ptWk_CaretPos,
00095         bool            bScroll,
00096         int             nCaretMarginRate = _CARETMARGINRATE
00097     );
00098     CLayoutInt MoveCursorProperly( CLayoutPoint ptNewXY, bool, int = _CARETMARGINRATE, int = 0 );   /* 行桁指定によるカーソル移動（座標調整付き） */
00099
00100     //$ 設計思想的に微妙
00101     void SetCaretLayoutPos(const CLayoutPoint& pt){ m_ptCaretPos_Layout = pt; }
00102     void SetCaretLogicPos(const CLogicPoint pt){ m_ptCaretPos_Logic=pt; }
00103
00104
00105     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00106     //                        サイズ変更                           //
00107     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00108     void SetCaretSize(int nW, int nH){ m_sizeCaret.Set(nW,nH); }
00109
00110
00111     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00112     //                           計算                              //
00113     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00114     //計算
00115     BOOL GetAdjustCursorPos( CLayoutPoint* pptPosXY );
00116
00117
00118     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00119     //                           表示                              //
00120     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00121
00122     //描画？
00123     void ShowEditCaret();
00124     void DrawCaretPosInfo();
00125
00126     //API呼び出し
00127     void ShowCaret_( HWND hwnd );
00128     void HideCaret_( HWND hwnd );
00129
00130
00131     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00132     //                           取得                              //
00133     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00134
00135     CLayoutPoint GetCaretLayoutPos() const  { return m_ptCaretPos_Layout; }
00136     CMySize GetCaretSize() const            { return m_sizeCaret; }
00137     bool ExistCaretFocus() const            { return m_sizeCaret.cx>0; }
00138     CLogicPoint GetCaretLogicPos() const    { return m_ptCaretPos_Logic; }
00139
00140
00141     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00142     //                  低頻度インターフェース                     //
00143     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00144     bool GetCaretShowFlag() const{ return m_bCaretShowFlag; }
00145
00146
00147
00148     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00149     //                        メンバ変数                           //
00150     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00151 private:
00152     //参照
00153     CEditView*              m_pEditView;
00154     const CEditDoc*         m_pEditDoc;
00155
00156     //キャレット位置
00157     CLayoutPoint    m_ptCaretPos_Layout;    // ビュー左上端からのカーソル位置。レイアウト単位。
00158     CLogicPoint     m_ptCaretPos_Logic;     // カーソル位置。ロジック単位。データ内文字単位。
00159
00160 public:
00161     CLayoutInt      m_nCaretPosX_Prev;  // 直前のX座標記憶用。レイアウト単位。このソースの下部に詳細説明があります。
00162
00163     //キャレット見た目
00164 private:
00165     CMySize         m_sizeCaret;        // キャレットのサイズ。ピクセル単位。
00166     COLORREF        m_crCaret;          // キャレットの色                // 2006.12.07 ryoji
00167     HBITMAP         m_hbmpCaret;        // キャレットのビットマップ     // 2006.11.28 ryoji
00168     bool            m_bCaretShowFlag;
00169
00170     //アンダーライン
00171 public:
00172     mutable CCaretUnderLine m_cUnderLine;
00173 };
00174
00175
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CClipboard.cpp

sakura_core

CClipboard.cpp

#include "stdafx.h"
#include "CClipboard.h"
#include "charset/CShiftJis.h"

CClipboard.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CClipboard.cpp ソースファイル

sakura_core

CClipboard.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CClipboard.h"
00003 #include "charset/CShiftJis.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //               コンストラクタ・デストラクタ                  //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00009 CClipboard::CClipboard(HWND hwnd)
00010 {
00011     m_hwnd = hwnd;
00012     m_bOpenResult = ::OpenClipboard(hwnd);
00013 }
00014
00015 CClipboard::~CClipboard()
00016 {
00017     Close();
00018 }
00019
00020 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00021 //                     インターフェース                        //
00022 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00023
00024 void CClipboard::Empty()
00025 {
00026     ::EmptyClipboard();
00027 }
00028
00029 void CClipboard::Close()
00030 {
00031     if(m_bOpenResult){
00032         ::CloseClipboard();
00033         m_bOpenResult=FALSE;
00034     }
00035 }
00036
00037 bool CClipboard::SetText(const wchar_t* pszText,bool bColmnSelect, bool bLineSelect)
00038 {
00039     UINT        uFormat;
00040
00041     // ヌル終端までの長さ
00042     int nTextLen = wcslen( pszText );
00043
00044     /*
00045     // テキスト形式のデータ (CF_OEMTEXT)
00046     HGLOBAL hgClipText = ::GlobalAlloc(
00047         GMEM_MOVEABLE | GMEM_DDESHARE,
00048         nTextLen + 1
00049     );
00050     if( hgClipText ){
00051         char* pszClip = GlobalLockChar( hgClipText );
00052         memcpy( pszClip, pszText, nTextLen );
00053         pszClip[nTextLen] = '\0';
00054         ::GlobalUnlock( hgClipText );
00055         ::SetClipboardData( CF_OEMTEXT, hgClipText );
00056     }
00057     */
00058     // UNICODE形式のデータ (CF_UNICODETEXT)
00059     HGLOBAL hgClipText = ::GlobalAlloc(
00060         GMEM_MOVEABLE | GMEM_DDESHARE,
00061         (nTextLen + 1) * sizeof(wchar_t)
00062     );
00063     if( hgClipText ){
00064         wchar_t* pszClip = GlobalLockWChar( hgClipText );
00065         wmemcpy( pszClip, pszText, nTextLen + 1 );
00066         ::GlobalUnlock( hgClipText );
00067         ::SetClipboardData( CF_UNICODETEXT, hgClipText );
00068     }
00069
00070     // バイナリ形式のデータ
00071     //  (int) 「データ」の長さ
00072     //  「データ」
00073     UINT    uFormatSakuraClip = CClipboard::GetSakuraFormat();
00074     HGLOBAL hgClipSakura = NULL;
00075     if( 0 != uFormatSakuraClip ){
00076         hgClipSakura = ::GlobalAlloc(
00077             GMEM_MOVEABLE | GMEM_DDESHARE,
00078             sizeof(int) + (nTextLen + 1) * sizeof(wchar_t)
00079         );
00080         if( hgClipSakura ){
00081             BYTE* pClip = GlobalLockBYTE( hgClipSakura );
00082             *((int*)pClip) = nTextLen;
00083             wmemcpy( (wchar_t*)(pClip + sizeof(int)), pszText, nTextLen + 1 );
00084             ::GlobalUnlock( hgClipSakura );
00085             ::SetClipboardData( uFormatSakuraClip, hgClipSakura );
00086         }
00087     }
00088
00089     // 矩形選択を示すダミーデータ
00090     HGLOBAL hgClipMSDEVColm = NULL;
00091     if( bColmnSelect ){
00092         uFormat = ::RegisterClipboardFormat( _T("MSDEVColumnSelect") );
00093         if( 0 != uFormat ){
00094             hgClipMSDEVColm = ::GlobalAlloc(
00095                 GMEM_MOVEABLE | GMEM_DDESHARE,
00096                 1
00097             );
00098             if( hgClipMSDEVColm ){
00099                 BYTE* pClip = GlobalLockBYTE( hgClipMSDEVColm );
00100                 pClip[0] = 0;
00101                 ::GlobalUnlock( hgClipMSDEVColm );
00102                 ::SetClipboardData( uFormat, hgClipMSDEVColm );
00103             }
00104         }
00105     }
00106
00107     /* 行選択を示すダミーデータ */
00108     HGLOBAL     hgClipMSDEVLine = NULL;
00109     if( bLineSelect ){
00110         uFormat = ::RegisterClipboardFormat( _T("MSDEVLineSelect") );
00111         if( 0 != uFormat ){
00112             hgClipMSDEVLine = ::GlobalAlloc(
00113                 GMEM_MOVEABLE | GMEM_DDESHARE,
00114                 1
00115             );
00116             if( hgClipMSDEVLine ){
00117                 BYTE* pClip = (BYTE*)::GlobalLock( hgClipMSDEVLine );
00118                 pClip[0] = 0x01;
00119                 ::GlobalUnlock( hgClipMSDEVLine );
00120                 ::SetClipboardData( uFormat, hgClipMSDEVLine );
00121             }
00122         }
00123     }
00124
00125     if( bColmnSelect && !hgClipMSDEVColm ){
00126         return FALSE;
00127     }
00128     if( bLineSelect && !hgClipMSDEVLine ){
00129         return FALSE;
00130     }
00131     if( !hgClipText && !hgClipSakura ){
00132         return FALSE;
00133     }
00134     return true;
00135 }
00136
00138 bool CClipboard::GetText(CNativeW* cmemBuf, BOOL* pbColmnSelect, BOOL* pbLineSelect)
00139 {
00140     if( NULL != pbColmnSelect ){
00141         *pbColmnSelect = FALSE;
00142     }
00143
00144     //矩形選択のデータがあれば取得
00145     if( NULL != pbColmnSelect ){
00146         // 矩形選択のテキストデータがクリップボードにあるか
00147         UINT uFormat = 0;
00148         while( uFormat = ::EnumClipboardFormats( uFormat ) ){
00149             // Jul. 2, 2005 genta : check return value of GetClipboardFormatName
00150             TCHAR szFormatName[128];
00151             if( ::GetClipboardFormatName( uFormat, szFormatName, _countof(szFormatName) - 1 ) ){
00152                 if( NULL != pbColmnSelect && 0 == lstrcmp( _T("MSDEVColumnSelect"), szFormatName ) ){
00153                     *pbColmnSelect = TRUE;
00154                     break;
00155                 }
00156                 if( NULL != pbLineSelect && 0 == lstrcmp( _T("MSDEVLineSelect"), szFormatName ) ){
00157                     *pbLineSelect = TRUE;
00158                     break;
00159                 }
00160             }
00161         }
00162     }
00163
00164     //サクラ形式のデータがあれば取得
00165     UINT uFormatSakuraClip = CClipboard::GetSakuraFormat();
00166     if( ::IsClipboardFormatAvailable( uFormatSakuraClip ) ){
00167         HGLOBAL hSakura = ::GetClipboardData( uFormatSakuraClip );
00168         if (hSakura != NULL) {
00169             BYTE* pData = (BYTE*)::GlobalLock(hSakura);
00170             size_t nLength        = *((int*)pData);
00171             const wchar_t* szData = (const wchar_t*)(pData + sizeof(int));
00172             cmemBuf->SetString( szData, nLength );
00173             ::GlobalUnlock(hSakura);
00174             ::CloseClipboard();
00175             return TRUE;
00176         }
00177     }
00178
00179     //UNICODE形式のデータがあれば取得
00180     // From Here 2005/05/29 novice UNICODE TEXT 対応処理を追加
00181     HGLOBAL hUnicode = ::GetClipboardData( CF_UNICODETEXT );
00182     if( hUnicode != NULL ){
00183         wchar_t* szData = GlobalLockWChar(hUnicode);
00184         cmemBuf->SetString( szData );
00185         ::GlobalUnlock(hUnicode);
00186         ::CloseClipboard();
00187         return TRUE;
00188     }
00189     //  To Here 2005/05/29 novice
00190
00191     //OEMTEXT形式のデータがあれば取得
00192     HGLOBAL hText = ::GetClipboardData( CF_OEMTEXT );
00193     if( hText != NULL ){
00194         char* szData = GlobalLockChar(hText);
00195         //SJIS→UNICODE
00196         CMemory cmemSjis( szData, GlobalSize(szData) );
00197         CShiftJis::SJISToUnicode(&cmemSjis);
00198         cmemBuf->SetString( reinterpret_cast<const wchar_t*>(cmemSjis.GetRawPtr()) );
00199         ::GlobalUnlock(hText);
00200         ::CloseClipboard();
00201         return TRUE;
00202     }
00203
00204     ::CloseClipboard();
00205     return FALSE;
00206 }
00207
00208
00209 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00210 //                  staticインターフェース                     //
00211 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00212
00213
00215 bool CClipboard::HasValidData()
00216 {
00217     //扱える形式が１つでもあればtrue
00218     if(::IsClipboardFormatAvailable(CF_OEMTEXT))return true;
00219     if(::IsClipboardFormatAvailable(CF_UNICODETEXT))return true;
00220     if(::IsClipboardFormatAvailable(GetSakuraFormat()))return true;
00221     return false;
00222 }
00223
00225 UINT CClipboard::GetSakuraFormat()
00226 {
00227     /*
00228         2007.09.30 kobake
00229
00230         UNICODE形式でクリップボードデータを保持するよう変更したため、
00231         以前のバージョンのクリップボードデータと競合しないように
00232         フォーマット名を変更
00233     */
00234     return ::RegisterClipboardFormat( _T("SAKURAClipW") );
00235 }
00236
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CClipboard.h

sakura_core

CClipboard.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CClipboard
サクラエディタ用クリップボードクラス。後々はこの中で全てのクリップボードAPIを呼ばせたい。 [詳細]

Sakura-Editorに対してSat Nov 17 20:25:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CClipboard.h ソースファイル

sakura_core

CClipboard.h

説明を見る。
00001 #pragma once
00002
00004 class CClipboard{
00005 public:
00006     //コンストラクタ・デストラクタ
00007     CClipboard(HWND hwnd);
00008     virtual ~CClipboard();
00009
00010     //インターフェース
00011     void Empty();
00012     void Close();
00013     bool SetText(const wchar_t* str,bool bColmnSelect, bool bLineSelect);
00014     bool GetText(CNativeW* cmemBuf, BOOL* pbColmnSelect, BOOL* pbLineSelect);
00015
00016     //演算子
00017     operator bool() const{ return m_bOpenResult!=FALSE; }
00018
00019 private:
00020     HWND m_hwnd;
00021     BOOL m_bOpenResult;
00022
00023
00024
00025
00026     // -- -- staticインターフェース -- -- //
00027 public:
00028     static bool HasValidData();
00029     static UINT GetSakuraFormat();
00030 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeBase.h

sakura_core » charset

CCodeBase.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CCodeBase

列挙型

enum | EConvertResult { RESULT_COMPLETE, RESULT_LOSESOME, RESULT_FAILURE }

列挙型

enum EConvertResult

列挙型の値:
RESULT_COMPLETE | データを失うことなく変換が完了した。
RESULT_LOSESOME | 変換が完了したが、一部のデータが失われた。
RESULT_FAILURE | 何らかの原因により失敗した。

CCodeBase.h の 4 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeBase.h ソースファイル

sakura_core » charset

CCodeBase.h

説明を見る。
00001 #pragma once
00002
00003 //定数
00004 enum EConvertResult{
00005     RESULT_COMPLETE,
00006     RESULT_LOSESOME,
00007     RESULT_FAILURE,
00008 };
00009
00016 class CCodeBase{
00017 public:
00018     virtual ~CCodeBase(){}
00019 //  virtual bool IsCode(const CMemory* pMem){return false;}  //!< 特定コードであればtrue
00020     virtual EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst)=0;
00021     virtual EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst)=0;
00022 };
00023
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeFactory.cpp

sakura_core » charset

CCodeFactory.cpp

#include "stdafx.h"
#include "CCodeFactory.h"
#include "CCodeMediator.h"

CCodeFactory.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeFactory.cpp ソースファイル

sakura_core » charset

CCodeFactory.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CCodeFactory.h"
00003 #include "CCodeMediator.h"
00004
00006 CCodeBase* CCodeFactory::CreateCodeBase(
00007     ECodeType   eCodeType,
00008     int         nFlag
00009 )
00010 {
00011     switch( eCodeType ){
00012     case CODE_SJIS:         return new CShiftJis();
00013     case CODE_EUC:          return new CEuc();
00014     case CODE_JIS:          return new CJis((nFlag&1)==1);
00015     case CODE_UNICODE:      return new CUnicode();
00016     case CODE_UTF8:         return new CUtf8();
00017     case CODE_UTF7:         return new CUtf7();
00018     case CODE_UNICODEBE:    return new CUnicodeBe();
00019     default:
00020         assert(0);
00021     }
00022     return NULL;
00023 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeFactory.h

sakura_core » charset

CCodeFactory.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CCodeFactory

Sakura-Editorに対してSat Nov 17 20:25:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeFactory.h ソースファイル

sakura_core » charset

CCodeFactory.h

説明を見る。
00001 #pragma once
00002
00003 class CCodeBase;
00004
00005 class CCodeFactory{
00006 public:
00008     static CCodeBase* CreateCodeBase(
00009         ECodeType   eCodeType,
00010         int         nFlag
00011     );
00012 };
00013
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeMediator.cpp

sakura_core » charset

CCodeMediator.cpp

#include "stdafx.h"
#include "CCodeMediator.h"
#include "charcode.h"
#include "CESI.h"
#include "io/CBinaryStream.h"

CCodeMediator.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeMediator.cpp ソースファイル

sakura_core » charset

CCodeMediator.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CCodeMediator.h"
00003 #include "charcode.h"
00004 #include "CESI.h"
00005 #include "io/CBinaryStream.h"
00006
00007 /*
00008 || ファイルの日本語コードセット判別
00009 ||
00010 || 【戻り値】2007.08.14 kobake 戻り値をintからECodeTypeへ変更
00011 ||  SJIS        CODE_SJIS
00012 ||  JIS         CODE_JIS
00013 ||  EUC         CODE_EUC
00014 ||  Unicode     CODE_UNICODE
00015 ||  UTF-8       CODE_UTF8
00016 ||  UTF-7       CODE_UTF7
00017 ||  UnicodeBE   CODE_UNICODEBE
00018 ||  エラー       CODE_ERROR
00019 */
00020 ECodeType CCodeMediator::CheckKanjiCodeOfFile( const TCHAR* pszFile )
00021 {
00022     // オープン
00023     CBinaryInputStream in(pszFile);
00024     if(!in){
00025         return CODE_ERROR;
00026     }
00027
00028     // データ長取得
00029     int nBufLen = in.GetLength();
00030     if( nBufLen > CheckKanjiCode_MAXREADLENGTH ){
00031         nBufLen = CheckKanjiCode_MAXREADLENGTH;
00032     }
00033
00034     // 0バイトならSJIS扱い
00035     if( 0 == nBufLen ){
00036         return CODE_SJIS;
00037     }
00038
00039     // データ確保
00040     CMemory cMem;
00041     cMem.AllocBuffer(nBufLen);
00042     void* pBuf = cMem.GetRawPtr();
00043
00044     // 読み込み
00045     nBufLen = in.Read(pBuf, nBufLen);
00046
00047     // クローズ
00048     in.Close();
00049
00050     // 日本語コードセット判別
00051     ECodeType nCodeType = Charcode::DetectUnicodeBom( reinterpret_cast<const char*>(pBuf), nBufLen );
00052     if( nCodeType == CODE_NONE ){
00053         // Unicode BOM は検出されませんでした．
00054         nCodeType = CheckKanjiCode( reinterpret_cast<const uchar_t*>(pBuf), nBufLen );
00055     }
00056
00057     return nCodeType;
00058 }
00059
00060
00061 /*
00062 || 日本語コードセット判別
00063 ||
00064 || 【戻り値】2007.08.14 kobake 戻り値をintからECodeTypeへ変更
00065 ||  SJIS        CODE_SJIS
00066 ||  JIS         CODE_JIS
00067 ||  EUC         CODE_EUC
00068 ||  Unicode     CODE_UNICODE
00069 ||  UTF-8       CODE_UTF8
00070 ||  UTF-7       CODE_UTF7
00071 ||  UnicodeBE   CODE_UNICODEBE
00072 */
00073
00074 // 2006.12.16  rastiv   アルゴリズムを改定．
00075 ECodeType CCodeMediator::CheckKanjiCode( const unsigned char* pBuf, int nBufLen )
00076 {
00077     CESI cesi;
00078     WCCODE_INFO wci;
00079     MBCODE_INFO mbci;
00080     int nPt;    //
00081
00082     if( !cesi.ScanEncoding(reinterpret_cast<const char*>(pBuf), nBufLen) ){
00083         // スキャンに失敗しました．
00084         return CODE_SJIS;  // ←デフォルト文字コードを返却．
00085     }
00086
00087     nPt = cesi.DetectUnicode( &wci );
00088     if( 0 != nPt ){
00089         // UNICODE が検出されました.
00090         return wci.eCodeID;
00091     }
00092     nPt = cesi.DetectMultibyte( &mbci );
00093     //nPt := 特有バイト数 − 不正バイト数
00094     if( 0 < nPt ){
00095         return mbci.eCodeID;
00096     }
00097
00098     return CODE_SJIS;  // ←デフォルト文字コードを返却．
00099 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeMediator.h

sakura_core » charset

CCodeMediator.h

#include "CEuc.h"
#include "CJis.h"
#include "CShiftJis.h"
#include "CUnicode.h"
#include "CUnicodeBe.h"
#include "CUtf7.h"
#include "CUtf8.h"

CCodeMediator.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CCodeMediator

Sakura-Editorに対してSat Nov 17 20:25:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCodeMediator.h ソースファイル

sakura_core » charset

CCodeMediator.h

説明を見る。
00001 #pragma once
00002
00003 class CCodeMediator{
00004 public:
00005     /* ファイルの日本語コードセット判別 */
00006     static ECodeType CheckKanjiCodeOfFile( const TCHAR* );
00007     /* 日本語コードセット判別 */
00008     static ECodeType CheckKanjiCode( const unsigned char*, int );
00009 };
00010
00011 #include "CEuc.h"
00012 #include "CJis.h"
00013 #include "CShiftJis.h"
00014 #include "CUnicode.h"
00015 #include "CUnicodeBe.h"
00016 #include "CUtf7.h"
00017 #include "CUtf8.h"
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCommandLine.cpp

sakura_core

CCommandLine.cpp

コマンドラインパーサ [詳細]

#include "stdafx.h"
#include "CCommandLine.h"
#include "CMemory.h"
#include <tchar.h>
#include <io.h>
#include <string.h>
#include "CRunningTimer.h"
#include "my_icmp.h"
#include "charcode.h"
#include "util/shell.h"
#include "util/file.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 の 50 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_DEBUGMODE 1999

CCommandLine.cpp の 43 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GCODE 105

CCommandLine.cpp の 59 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GFILE 102

CCommandLine.cpp の 56 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GFOLDER 103

CCommandLine.cpp の 57 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GKEY 101

CCommandLine.cpp の 55 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GOPT 104

CCommandLine.cpp の 58 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GREPDLG 1101

CCommandLine.cpp の 42 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GREPMODE 1100

CCommandLine.cpp の 41 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_GROUP 500

CCommandLine.cpp の 60 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_NOMOREOPT 1998

CCommandLine.cpp の 44 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_NOWIN 1003

CCommandLine.cpp の 39 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_R 1002

CCommandLine.cpp の 38 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_SX 7

CCommandLine.cpp の 51 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_SY 8

CCommandLine.cpp の 52 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_TYPE 5

CCommandLine.cpp の 49 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_VX 3

CCommandLine.cpp の 47 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_VY 4

CCommandLine.cpp の 48 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_WRITEQUIT 1004

CCommandLine.cpp の 40 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_WX 9

CCommandLine.cpp の 53 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_WY 10

CCommandLine.cpp の 54 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_X 1

CCommandLine.cpp の 45 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

#define CMDLINEOPT_Y 2

CCommandLine.cpp の 46 行で定義されています。

参照元 CCommandLine::CheckCommandLine(), と CCommandLine::ParseCommandLine().

Sakura-Editorに対してSat Nov 17 20:25:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCommandLine.cpp ソースファイル

sakura_core

CCommandLine.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta
00010     Copyright (C) 2002, aroka CControlTrayより分離
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 <tchar.h>
00025 #include <io.h>
00026 #include <string.h>
00027 #include "CRunningTimer.h"
00028 // 関数をマクロ再定義するので my_icmp.h は最後に置く // 2006.10.25 ryoji
00029 #include "my_icmp.h"
00030 #include "charcode.h"  // 2006.06.28 rastiv
00031 #include "util/shell.h"
00032 #include "util/file.h"
00033 #include "debug.h"
00034
00035 CCommandLine* CCommandLine::_instance = NULL;
00036
00037 /* コマンドラインオプション用定数 */
00038 #define CMDLINEOPT_R            1002
00039 #define CMDLINEOPT_NOWIN        1003
00040 #define CMDLINEOPT_WRITEQUIT    1004
00041 #define CMDLINEOPT_GREPMODE     1100
00042 #define CMDLINEOPT_GREPDLG      1101
00043 #define CMDLINEOPT_DEBUGMODE    1999
00044 #define CMDLINEOPT_NOMOREOPT    1998
00045 #define CMDLINEOPT_X            1
00046 #define CMDLINEOPT_Y            2
00047 #define CMDLINEOPT_VX           3
00048 #define CMDLINEOPT_VY           4
00049 #define CMDLINEOPT_TYPE         5
00050 #define CMDLINEOPT_CODE         6
00051 #define CMDLINEOPT_SX           7
00052 #define CMDLINEOPT_SY           8
00053 #define CMDLINEOPT_WX           9
00054 #define CMDLINEOPT_WY           10
00055 #define CMDLINEOPT_GKEY         101
00056 #define CMDLINEOPT_GFILE        102
00057 #define CMDLINEOPT_GFOLDER      103
00058 #define CMDLINEOPT_GOPT         104
00059 #define CMDLINEOPT_GCODE        105
00060 #define CMDLINEOPT_GROUP        500
00061
00073 int CCommandLine::CheckCommandLine(
00074     LPTSTR  str,
00075     int     quotelen,
00076     TCHAR** arg
00077 )
00078 {
00082     struct _CmdLineOpt {
00083         LPCTSTR opt;
00084         int len;
00085         int value;
00086     };
00087
00092     static const _CmdLineOpt _COptWoA[] = {
00093         {_T("R"),           1,  CMDLINEOPT_R},
00094         {_T("-"),           1,  CMDLINEOPT_NOMOREOPT},
00095         {_T("NOWIN"),       5,  CMDLINEOPT_NOWIN},
00096         {_T("WQ"),          2,  CMDLINEOPT_WRITEQUIT},  // 2007.05.19 ryoji sakuext用に追加
00097         {_T("GREPMODE"),    8,  CMDLINEOPT_GREPMODE},
00098         {_T("GREPDLG"),     7,  CMDLINEOPT_GREPDLG},
00099         {_T("DEBUGMODE"),   9,  CMDLINEOPT_DEBUGMODE},
00100         {NULL, 0, 0}
00101     };
00102
00107     static const _CmdLineOpt _COptWithA[] = {
00108         {_T("X"),       1,          CMDLINEOPT_X},
00109         {_T("Y"),       1,          CMDLINEOPT_Y},
00110         {_T("VX"),      2,          CMDLINEOPT_VX},
00111         {_T("VY"),      2,          CMDLINEOPT_VY},
00112         {_T("SX"),      2,          CMDLINEOPT_SX},
00113         {_T("SY"),      2,          CMDLINEOPT_SY},
00114         {_T("WX"),      2,          CMDLINEOPT_WX},
00115         {_T("WY"),      2,          CMDLINEOPT_WY},
00116         {_T("CODE"),    4,          CMDLINEOPT_CODE},   // 2002/09/20 Moca _COptWoAから移動
00117         {_T("TYPE"),    4,          CMDLINEOPT_TYPE},
00118         {_T("GKEY"),    4,          CMDLINEOPT_GKEY},
00119         {_T("GFILE"),   5,      CMDLINEOPT_GFILE},
00120         {_T("GFOLDER"), 7,      CMDLINEOPT_GFOLDER},
00121         {_T("GOPT"),    4,          CMDLINEOPT_GOPT},
00122         {_T("GCODE"),   5,      CMDLINEOPT_GCODE},  // 2002/09/21 Moca 追加
00123         {_T("GROUP"),   5,      CMDLINEOPT_GROUP},  // 2007.06.26 ryoji
00124         {NULL, 0, 0}
00125     };
00126
00127     const _CmdLineOpt *ptr;
00128     int len = lstrlen( str ) - quotelen;
00129
00130     //  引数がある場合を先に確認
00131     for( ptr = _COptWithA; ptr->opt != NULL; ptr++ ){
00132         if( len >= ptr->len &&  //  長さが足りているか
00133             //  オプション部分の長さチェック
00134             ( str[ptr->len] == '=' || str[ptr->len] == ':' ) &&
00135             //  文字列の比較
00136             auto_memicmp( str, ptr->opt, ptr->len ) == 0 ){     // 2006.10.25 ryoji memcmp() -> _memicmp()
00137             *arg = str + ptr->len + 1;
00138             return ptr->value;
00139         }
00140     }
00141
00142     //  引数がない場合
00143     for( ptr = _COptWoA; ptr->opt != NULL; ptr++ ){
00144         if( len == ptr->len &&  //  長さチェック
00145             //  文字列の比較
00146             auto_memicmp( str, ptr->opt, ptr->len ) == 0 ){
00147             return ptr->value;
00148         }
00149     }
00150     return 0;   //  該当無し
00151 }
00152
00167 void CCommandLine::ParseCommandLine( void )
00168 {
00169     MY_RUNNINGTIMER( cRunningTimer, "CCommandLine::Parse" );
00170
00171     //  May 30, 2000 genta
00172     //  実行ファイル名をもとに漢字コードを固定する．
00173     {
00174         TCHAR   exename[512];
00175         ::GetModuleFileName( NULL, exename, _countof(exename) );
00176
00177         int     len = _tcslen( exename );
00178
00179         for( TCHAR *p = exename + len - 1; p > exename; p-- ){
00180             if( *p == _T('.') ){
00181                 ECodeType n = (ECodeType)(p[-1] - _T('0'));
00182                 if(IsValidCodeType(n))
00183                     m_fi.m_nCharCode = n;
00184                 break;
00185             }
00186         }
00187     }
00188
00189
00190     TCHAR   szPath[_MAX_PATH + 1];
00191     bool    bFind = false;
00192     bool    bParseOptDisabled = false;  // 2007.09.09 genta オプション解析を行わなず，ファイル名として扱う
00193     int     nPos;
00194     int     i, j;
00195     if( m_pszCmdLineSrc[0] != '-' ){
00196         auto_memset( szPath, 0, _countof( szPath ) );
00197         i = 0;
00198         j = 0;
00199         for( ; i < _countof( szPath ) - 1 && i <= (int)lstrlen(m_pszCmdLineSrc); ++i ){
00200             if( m_pszCmdLineSrc[i] != _T(' ') && m_pszCmdLineSrc[i] != _T('\0') ){
00201                 szPath[j] = m_pszCmdLineSrc[i];
00202                 ++j;
00203                 continue;
00204             }
00205             /* ファイルの存在と、ファイルかどうかをチェック */
00206             if( -1 != _taccess( szPath, 0 ) ){
00207                 bFind = true;
00208                 break;
00209             }
00210             szPath[j] = m_pszCmdLineSrc[i];
00211             ++j;
00212         }
00213     }
00214     if( bFind ){
00215         _tcscpy( m_fi.m_szPath, szPath );   /* ファイル名 */
00216         nPos = j + 1;
00217     }else{
00218         nPos = 0;
00219     }
00220     LPTSTR pszCmdLineWork = new TCHAR[lstrlen( m_pszCmdLineSrc ) + 1];
00221     _tcscpy( pszCmdLineWork, m_pszCmdLineSrc );
00222     int nCmdLineWorkLen = lstrlen( pszCmdLineWork );
00223     LPTSTR pszToken = my_strtok<TCHAR>( pszCmdLineWork, nCmdLineWorkLen, &nPos, _T(" ") );
00224     while( pszToken != NULL )
00225     {
00226         DBPRINT( _T("OPT=[%ts]\n"), pszToken );
00227
00228         //  2007.09.09 genta オプション判定ルール変更．オプション解析停止と""で囲まれたオプションを考慮
00229         if( !bFind && ( bParseOptDisabled ||
00230             ! (pszToken[0] == '-' || pszToken[0] == '"' && pszToken[1] == '-' ) )){
00231
00232             if( pszToken[0] == _T('\"') ){
00233                 CNativeT cmWork;
00234                 //  Nov. 3, 2005 genta
00235                 //  末尾のクォーテーションが無い場合を考慮して，
00236                 //  最後がダブルクォートの場合のみ取り除く
00237                 //  ファイル名には使えない文字なのでファイル名に含まれている場合は考慮不要
00238                 //  またSHIFT-JISの2バイト目の考慮も不要
00239                 //  Nov. 27, 2005 genta
00240                 //  引数がダブルクォート1つの場合に，その1つを最初と最後の1つずつと
00241                 //  見間違えて，インデックス-1にアクセスしてしまうのを防ぐために長さをチェックする
00242                 //  ファイル名の後ろにあるOptionを解析するため，ループは継続
00243                 int len = lstrlen( pszToken + 1 );
00244                 if( len > 0 ){
00245                     cmWork.SetString( &pszToken[1], len - ( pszToken[len] == _T('"') ? 1 : 0 ));
00246                     cmWork.Replace( _T("\"\""), _T("\"") );
00247                     _tcscpy_s( m_fi.m_szPath, _countof(m_fi.m_szPath), cmWork.GetStringPtr() ); /* ファイル名 */
00248                 }
00249                 else {
00250                     m_fi.m_szPath[0] = _T('\0');
00251                 }
00252             }
00253             else{
00254                 _tcscpy_s( m_fi.m_szPath, _countof(m_fi.m_szPath), pszToken );      /* ファイル名 */
00255             }
00256
00257             // Nov. 11, 2005 susu
00258             // 不正なファイル名のままだとファイル保存時ダイアログが出なくなるので
00259             // 簡単なファイルチェックを行うように修正
00260             if (_tcsncmp_literal(m_fi.m_szPath, _T("file:///"))==0) {
00261                 _tcscpy(m_fi.m_szPath, &(m_fi.m_szPath[8]));
00262             }
00263             int len = _tcslen(m_fi.m_szPath);
00264             for (int i = 0; i < len ; i ++) {
00265                 if ( !TCODE::isValidFilenameChar(m_fi.m_szPath,i) ){
00266                     TCHAR msg_str[_MAX_PATH + 1];
00267                     _stprintf(
00268                         msg_str,
00269                         _T("%ls\r\n")
00270                         _T("上記のファイル名は不正です。ファイル名に \\ / : * ? \" < > | の文字は使えません。 "),
00271                         m_fi.m_szPath
00272                     );
00273                     MessageBox( NULL, msg_str, _T("FileNameError"), MB_OK);
00274                     m_fi.m_szPath[0] = _T('\0');
00275                     break;
00276                 }
00277             }
00278
00279         }
00280         else{
00281             int qlen = 0;
00282             if( *pszToken == '"' ){
00283                 ++pszToken; // 2007.09.09 genta 先頭の"はスキップ
00284                 qlen = 1;
00285             }
00286             ++pszToken; //  先頭の'-'はskip
00287             TCHAR *arg;
00288             switch( CheckCommandLine( pszToken, qlen, &arg ) ){
00289             case CMDLINEOPT_X: //   X
00290                 /* 行桁指定を1開始にした */
00291                 m_fi.m_ptCursor.x = AtoiOptionInt( arg ) - 1;
00292                 break;
00293             case CMDLINEOPT_Y:  //  Y
00294                 m_fi.m_ptCursor.y = AtoiOptionInt( arg ) - 1;
00295                 break;
00296             case CMDLINEOPT_VX: // VX
00297                 /* 行桁指定を1開始にした */
00298                 m_fi.m_nViewLeftCol = CLayoutInt( AtoiOptionInt( arg ) - 1 );
00299                 break;
00300             case CMDLINEOPT_VY: //  VY
00301                 /* 行桁指定を1開始にした */
00302                 m_fi.m_nViewTopLine = CLayoutInt( AtoiOptionInt( arg ) - 1 );
00303                 break;
00304             case CMDLINEOPT_SX: //  SX
00305                 m_fi.m_nWindowSizeX = AtoiOptionInt( arg ) - 1;
00306                 break;
00307             case CMDLINEOPT_SY: //  SY
00308                 m_fi.m_nWindowSizeY = AtoiOptionInt( arg ) - 1;
00309                 break;
00310             case CMDLINEOPT_WX: //  WX
00311                 m_fi.m_nWindowOriginX = AtoiOptionInt( arg );
00312                 break;
00313             case CMDLINEOPT_WY: //  WY
00314                 m_fi.m_nWindowOriginY = AtoiOptionInt( arg );
00315                 break;
00316             case CMDLINEOPT_TYPE:   //  TYPE
00317                 //  Mar. 7, 2002 genta
00318                 //  ファイルタイプの強制指定
00319                 {
00320                     _tcsncpy( m_fi.m_szDocType, arg, MAX_DOCTYPE_LEN );
00321                     m_fi.m_szDocType[ MAX_DOCTYPE_LEN ] = L'\0';
00322                 }
00323                 break;
00324             case CMDLINEOPT_CODE:   //  CODE
00325                 m_fi.m_nCharCode = (ECodeType)AtoiOptionInt( arg );
00326                 break;
00327             case CMDLINEOPT_R:  //  R
00328                 m_bReadOnly = true;
00329                 break;
00330             case CMDLINEOPT_NOWIN:  //  NOWIN
00331                 m_bNoWindow = true;
00332                 break;
00333             case CMDLINEOPT_WRITEQUIT:  //  WRITEQUIT   // 2007.05.19 ryoji sakuext用に追加
00334                 m_bWriteQuit = true;
00335                 m_bNoWindow = true; // 2007.09.05 ryoji -WQを指定されたら-NOWINも指定されたとして扱う
00336                 break;
00337             case CMDLINEOPT_GREPMODE:   //  GREPMODE
00338                 m_bGrepMode = true;
00339                 break;
00340             case CMDLINEOPT_GREPDLG:    //  GREPDLG
00341                 m_bGrepDlg = true;
00342                 break;
00343             case CMDLINEOPT_GKEY:   //  GKEY
00344                 //  前後の""を取り除く
00345                 m_gi.cmGrepKey.SetStringT( arg + 1,  lstrlen( arg ) - 2 );
00346                 m_gi.cmGrepKey.Replace( L"\"\"", L"\"" );
00347                 break;
00348             case CMDLINEOPT_GFILE:  //  GFILE
00349                 //  前後の""を取り除く
00350                 m_gi.cmGrepFile.SetStringT( arg + 1,  lstrlen( arg ) - 2 );
00351                 m_gi.cmGrepFile.Replace( _T("\"\""), _T("\"") );
00352                 break;
00353             case CMDLINEOPT_GFOLDER:    //  GFOLDER
00354                 m_gi.cmGrepFolder.SetString( arg + 1,  lstrlen( arg ) - 2 );
00355                 m_gi.cmGrepFolder.Replace( _T("\"\""), _T("\"") );
00356                 break;
00357             case CMDLINEOPT_GOPT:   //  GOPT
00358                 for( ; *arg != '\0' ; ++arg ){
00359                     switch( *arg ){
00360                     case 'S':
00361                         // サブフォルダからも検索する
00362                         m_gi.bGrepSubFolder = true; break;
00363                     case 'L':
00364                         // 英大文字と英小文字を区別する
00365                         m_gi.sGrepSearchOption.bLoHiCase = true;    break;
00366                     case 'R':
00367                         // 正規表現
00368                         m_gi.sGrepSearchOption.bRegularExp = true;  break;
00369                     case 'K':
00370                         // 文字コード自動判別
00371                         // 2002/09/21 Moca 互換性保持のための処理
00372                         m_gi.nGrepCharSet = CODE_AUTODETECT;    break;
00373                     case 'P':
00374                         // 行を出力するか該当部分だけ出力するか
00375                         m_gi.bGrepOutputLine = true;    break;
00376                     case 'W':
00377                         // 単語単位で探す
00378                         m_gi.sGrepSearchOption.bWordOnly = true;    break;
00379                     case '1':
00380                         // Grep: 出力形式
00381                         m_gi.nGrepOutputStyle = 1;  break;
00382                     case '2':
00383                         // Grep: 出力形式
00384                         m_gi.nGrepOutputStyle = 2;  break;
00385                     }
00386                 }
00387                 break;
00388             // 2002/09/21 Moca Grepでの文字コードセット 追加
00389             case CMDLINEOPT_GCODE:
00390                 m_gi.nGrepCharSet = (ECodeType)AtoiOptionInt( arg );    break;
00391             case CMDLINEOPT_GROUP:  // GROUP    // 2007.06.26 ryoji
00392                 m_nGroup = AtoiOptionInt( arg );
00393                 break;
00394             case CMDLINEOPT_DEBUGMODE:
00395                 m_bDebugMode = true;
00396                 break;
00397             case CMDLINEOPT_NOMOREOPT:  // 2007.09.09 genta これ以降引数無効
00398                 bParseOptDisabled = true;
00399                 break;
00400             }
00401         }
00402         pszToken = my_strtok<TCHAR>( pszCmdLineWork, nCmdLineWorkLen, &nPos, _T(" ") );
00403     }
00404     delete [] pszCmdLineWork;
00405
00406     /* ファイル名 */
00407     if( _T('\0') != m_fi.m_szPath[0] ){
00408         /* ショートカット(.lnk)の解決 */
00409         if( ResolveShortcutLink( NULL, m_fi.m_szPath, szPath ) ){
00410             _tcscpy( m_fi.m_szPath, szPath );
00411         }
00412         /* ロングファイル名を取得する */
00413         if( ::GetLongFileName( m_fi.m_szPath, szPath ) ){
00414             _tcscpy( m_fi.m_szPath, szPath );
00415         }
00416
00417         /* MRUから情報取得 */
00418
00419     }
00420
00421     return;
00422 }
00423
00427 CCommandLine* CCommandLine::Instance(LPTSTR cmd)
00428 {
00429     if( !_instance ){
00430         _instance = new CCommandLine(cmd);
00431     }
00432     return _instance;
00433 }
00434
00440 CCommandLine::CCommandLine(LPTSTR cmd)
00441 : m_pszCmdLineSrc(cmd)
00442 {
00443     m_bGrepMode             = false;
00444     m_bGrepDlg              = false;
00445     m_bDebugMode            = false;
00446     m_bNoWindow             = false;
00447     m_bWriteQuit            = false;
00448     m_gi.bGrepSubFolder     = false;
00449     m_gi.sGrepSearchOption.Reset();
00450     /*
00451     m_gi.sGrepSearchOption.bLoHiCase    = false;
00452     m_gi.bGrepRegularExp    = false;
00453     m_gi.bGrepWordOnly      = false;
00454     */
00455     m_gi.nGrepCharSet       = CODE_SJIS;
00456     m_gi.bGrepOutputLine    = false;
00457     m_gi.nGrepOutputStyle   = 1;
00458     m_bReadOnly             = false;
00459     m_nGroup                = 0;        // 2007.06.26 ryoji
00460
00461     ParseCommandLine();
00462 }
00463 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCommandLine.h

sakura_core

CCommandLine.h

コマンドラインパーサ ヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"

CCommandLine.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CCommandLine
コマンドラインパーサ クラス [詳細]

説明

コマンドラインパーサ ヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CCommandLine.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CCommandLine.h ソースファイル

sakura_core

CCommandLine.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta
00010     Copyright (C) 2002, aroka CControlTrayより分離
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(LPTSTR cmd=NULL);
00035
00036 private:
00037     // 2005-08-24 D.S.Koba 引数削除
00038     void ParseCommandLine( void );
00039
00040     static int CheckCommandLine(
00041         LPTSTR  str,
00042         int     quotelen,
00043         TCHAR** arg
00044     );
00045
00046     // 外から作らせない。
00047     CCommandLine();
00048     CCommandLine(LPTSTR cmd);
00049
00054     static int AtoiOptionInt(const TCHAR* arg){
00055         return ( arg[0] == _T('"') || arg[0] == _T('\'') ) ?
00056             _ttoi( arg + 1 ) : _ttoi( arg );
00057     }
00058
00059 // member accessor method
00060 public:
00061     bool IsNoWindow() const {return m_bNoWindow;};
00062     bool IsWriteQuit() const {return m_bWriteQuit;};    // 2007.05.19 ryoji sakuext用に追加
00063     bool IsGrepMode() const {return m_bGrepMode;};
00064     bool IsGrepDlg() const {return m_bGrepDlg;};
00065     bool IsDebugMode() const {return m_bDebugMode;};
00066     bool IsReadOnly() const {return m_bReadOnly;};
00067     bool GetFileInfo(FileInfo& fi) const {fi = m_fi;return true;};
00068     bool GetGrepInfo(GrepInfo& gi) const {gi = m_gi;return true;};
00069     int GetGroupId() const {return m_nGroup;};  // 2007.06.26 ryoji
00070
00071 // member valiables
00072 private:
00073     static CCommandLine* _instance;
00074     LPCTSTR     m_pszCmdLineSrc;
00075     bool        m_bGrepMode;
00076     bool        m_bGrepDlg;         //  Grepダイアログ
00077     bool        m_bDebugMode;
00078     bool        m_bNoWindow;
00079     bool        m_bWriteQuit;
00080     FileInfo    m_fi;
00081     GrepInfo    m_gi;
00082     bool        m_bReadOnly;
00083     int         m_nGroup;
00084 };
00085
00087 #endif /* _CCOMMANDLINE_H_ */
00088
00089
00090 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlProcess.cpp

sakura_core

CControlProcess.cpp

コントロールプロセスクラス [詳細]

#include "stdafx.h"
#include "CControlProcess.h"
#include "CCommandLine.h"
#include "CShareData.h"
#include "Debug.h"
#include "CControlTray.h"
#include "CMemory.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 Nov 17 20:25:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlProcess.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00024 #include "CMemory.h"
00025 #include "sakura_rc.h"
00026 #include <io.h>
00027 #include <tchar.h>
00028 #include "CRunningTimer.h"
00029
00030
00031
00032 //-------------------------------------------------
00033
00034
00046 bool CControlProcess::Initialize()
00047 {
00048     MY_RUNNINGTIMER( cRunningTimer, "CControlProcess::Initialize" );
00049
00050     // 旧バージョン（1.2.104.1以前）との互換性：「異なるバージョン...」が二回出ないように
00051     m_hMutex = ::CreateMutex( NULL, FALSE, GSTR_MUTEX_SAKURA );
00052     if( NULL == m_hMutex ){
00053         ::MessageBeep( MB_ICONSTOP );
00054 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00055             _T("CreateMutex()失敗。\n終了します。")
00056         );
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_A( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
00066             "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_A( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
00075             "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     GetShareData().LoadShareData();
00091     GetShareData().GetIniFileName( szIniFile ); // 出力iniファイル名
00092     if( _taccess( szIniFile, 0 ) == -1 || CCommandLine::Instance()->IsWriteQuit() ){
00093         /* レジストリ項目 作成 */
00094         GetShareData().SaveShareData();
00095         if( CCommandLine::Instance()->IsWriteQuit() ){
00096             return false;
00097         }
00098     }
00099
00100     MY_TRACETIME( cRunningTimer, "Before new CControlTray" );
00101
00102     /* タスクトレイにアイコン作成 */
00103     m_pcTray = new CControlTray;
00104
00105     MY_TRACETIME( cRunningTimer, "After new CControlTray" );
00106
00107     HWND hwnd = m_pcTray->Create( GetProcessInstance() );
00108     if( !hwnd ){
00109         ::MessageBeep( MB_ICONSTOP );
00110 		::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST,
00111             GSTR_APPNAME_A, "ウィンドウの作成に失敗しました。\n起動できません。" );
00112         return false;
00113     }
00114     SetMainWindow(hwnd);
00115     GetDllShareData().m_hwndTray = hwnd;
00116
00117     // 初期化完了イベントをシグナル状態にする
00118     if( !::SetEvent( m_hEventCPInitialized ) ){
00119         ::MessageBeep( MB_ICONSTOP );
00120 		::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
00121             "SetEvent()失敗。\n終了します。" );
00122         return false;
00123     }
00124
00125     return true;
00126 }
00127
00134 bool CControlProcess::MainLoop()
00135 {
00136     RELPRINT_A("CControlProcess begin");
00137     if( m_pcTray && GetMainWindow() ){
00138         m_pcTray->MessageLoop();    /* メッセージループ */
00139         RELPRINT_A("CControlProcess done.");
00140         return true;
00141     }
00142     RELPRINT_A("CControlProcess done failed.");
00143     return false;
00144 }
00145
00153 void CControlProcess::Terminate()
00154 {
00155     GetDllShareData().m_hwndTray = NULL;
00156 }
00157
00158 CControlProcess::~CControlProcess()
00159 {
00160     if( m_pcTray ){
00161         delete m_pcTray;
00162     }
00163     if( m_hEventCPInitialized ){
00164         ::ResetEvent( m_hEventCPInitialized );
00165     }
00166     ::CloseHandle( m_hEventCPInitialized );
00167     if( m_hMutexCP ){
00168         ::ReleaseMutex( m_hMutexCP );
00169     }
00170     ::CloseHandle( m_hMutexCP );
00171     // 旧バージョン（1.2.104.1以前）との互換性：「異なるバージョン...」が二回出ないように
00172     if( m_hMutex ){
00173         ::ReleaseMutex( m_hMutex );
00174     }
00175     ::CloseHandle( m_hMutex );
00176 };
00177
00178 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlProcess.h

sakura_core

CControlProcess.h

コントロールプロセスクラスヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"
#include "CProcess.h"

CControlProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CControlProcess
コントロールプロセスクラス [詳細]

説明

コントロールプロセスクラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CControlProcess.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlProcess.h ソースファイル

sakura_core

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 CControlTray;
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00034 class SAKURA_CORE_API CControlProcess : public CProcess {
00035 public:
00036     CControlProcess( HINSTANCE hInstance, LPTSTR lpCmdLine ) :
00037         CProcess( hInstance, lpCmdLine ),
00038         m_pcTray( 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     CControlTray*       m_pcTray;
00057 };
00058
00059
00061 #endif /* _CCONTROLPROCESS_H_ */
00062
00063 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlTray.cpp

sakura_core

CControlTray.cpp

常駐部 [詳細]

#include "stdafx.h"
#include <windows.h>
#include "debug.h"
#include "CControlTray.h"
#include "CEditWnd.h"
#include "CDlgAbout.h"
#include "sakura_rc.h"
#include "mymessage.h"
#include "CDlgOpenFile.h"
#include "global.h"
#include "CRunningTimer.h"
#include <htmlhelp.h>
#include "CEditApp.h"
#include "util/module.h"
#include "util/shell.h"
#include "util/window.h"
#include "util/string_ex2.h"

ソースコードを見る。

マクロ定義

#define | ID_HOTKEY_TRAYMENU 0x1234

関数

LRESULT CALLBACK | CEditAppWndProc (HWND, UINT, WPARAM, LPARAM)

変数

CControlTray * g_m_pCEditApp

説明

常駐部

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2001/06/03 N.Nakatani grep単語単位で検索を実装するときのためにコマンドラインオプションの処理追加

CControlTray.cpp で定義されています。

マクロ定義

#define ID_HOTKEY_TRAYMENU 0x1234

CControlTray.cpp の 27 行で定義されています。

参照元 CControlTray::DispatchEvent(), と CControlTray::OnDestroy().

関数

LRESULT CALLBACK CEditAppWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CControlTray.cpp の 139 行で定義されています。

参照先 CControlTray::DispatchEvent(), GetWindowLongPtr, GWLP_USERDATA, と NULL.

参照元 CControlTray::Create().

変数

CControlTray* g_m_pCEditApp

CControlTray.cpp の 50 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlTray.cpp ソースファイル

sakura_core

CControlTray.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 "debug.h"
00031 #include "CControlTray.h"
00032 #include "CEditWnd.h"       //Nov. 21, 2000 JEPROtest
00033 #include "CDlgAbout.h"      //Nov. 21, 2000 JEPROtest
00034 #include "sakura_rc.h"
00035 #include "mymessage.h"
00036 #include "CDlgOpenFile.h"
00037 #include "global.h"
00038 #include "CRunningTimer.h"
00039 #include <htmlhelp.h>
00040 #include "CEditApp.h"
00041 #include "util/module.h"
00042 #include "util/shell.h"
00043 #include "util/window.h"
00044 #include "util/string_ex2.h"
00045
00047 LRESULT CALLBACK CEditAppWndProc( HWND, UINT, WPARAM, LPARAM );
00048
00049
00050 CControlTray*   g_m_pCEditApp;
00051
00052 //Stonee, 2001/03/21
00053 //Stonee, 2001/07/01  多重起動された場合は前回のダイアログを前面に出すようにした。
00054 void CControlTray::DoGrep()
00055 {
00056     //Stonee, 2001/06/30
00057     //前回のダイアログがあれば前面に (suggested by genta)
00058     if ( ::IsWindow(m_cDlgGrep.GetHwnd()) ){
00059         ::OpenIcon(m_cDlgGrep.GetHwnd());
00060         ::BringWindowToTop(m_cDlgGrep.GetHwnd());
00061         return;
00062     }
00063
00064     wcscpy( m_cDlgGrep.m_szText, m_pShareData->m_aSearchKeys[0] );
00065
00066     /* Grepダイアログの表示 */
00067     int nRet = m_cDlgGrep.DoModal( m_hInstance, NULL, _T("") );
00068     if( !nRet || GetTrayHwnd() == NULL ){
00069         return;
00070     }
00071
00072
00073     /*======= Grepの実行 =============*/
00074     /* Grep結果ウィンドウの表示 */
00075
00076     TCHAR pCmdLine[1024];
00077     TCHAR pOpt[64];
00078
00079     CNativeW        cmWork1;
00080     CNativeT        cmWork2;
00081     CNativeT        cmWork3;
00082     cmWork1.SetString( m_cDlgGrep.m_szText );
00083     cmWork2.SetString( m_cDlgGrep.m_szFile );
00084     cmWork3.SetString( m_cDlgGrep.m_szFolder );
00085     cmWork1.Replace( L"\"", L"\"\"" );
00086     cmWork2.Replace( _T("\""), _T("\"\"") );
00087     cmWork3.Replace( _T("\""), _T("\"\"") );
00088
00089     /*
00090     || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00091     */
00092     auto_sprintf( pCmdLine, _T("-GREPMODE -GKEY=\"%ls\" -GFILE=\"%ts\" -GFOLDER=\"%ts\" -GCODE=%d"),
00093         cmWork1.GetStringPtr(),
00094         cmWork2.GetStringPtr(),
00095         cmWork3.GetStringPtr(),
00096         m_cDlgGrep.m_nGrepCharSet
00097     );
00098
00099     pOpt[0] = _T('\0');
00100     if( m_cDlgGrep.m_bSubFolder ){          /* サブフォルダからも検索する */
00101         _tcscat( pOpt, _T("S") );
00102     }
00103
00104     if( m_cDlgGrep.m_sSearchOption.bLoHiCase ){             /* 英大文字と英小文字を区別する */
00105         _tcscat( pOpt, _T("L") );
00106     }
00107     if( m_cDlgGrep.m_sSearchOption.bRegularExp ){           /* 正規表現 */
00108         _tcscat( pOpt, _T("R") );
00109     }
00110 //  2002/09/20 Moca 文字コードセットオプションに統合
00111 //  if( m_cDlgGrep.m_bKanjiCode_AutoDetect ){   /* 文字コード自動判別 */
00112 //      _tcscat( pOpt, _T("K") );
00113 //  }
00114     if( m_cDlgGrep.m_bGrepOutputLine ){     /* 行を出力するか該当部分だけ出力するか */
00115         _tcscat( pOpt, _T("P") );
00116     }
00117     if( m_cDlgGrep.m_sSearchOption.bWordOnly ){             /* 単語単位で探す */
00118         _tcscat( pOpt, _T("W") );
00119     }
00120     if( 1 == m_cDlgGrep.m_nGrepOutputStyle ){   /* Grep: 出力形式 */
00121         _tcscat( pOpt, _T("1") );
00122     }
00123     if( 2 == m_cDlgGrep.m_nGrepOutputStyle ){   /* Grep: 出力形式 */
00124         _tcscat( pOpt, _T("2") );
00125     }
00126
00127
00128     if( 0 < _tcslen( pOpt ) ){
00129         _tcscat( pCmdLine, _T(" -GOPT=") );
00130         _tcscat( pCmdLine, pOpt );
00131     }
00132
00133     /* 新規編集ウィンドウの追加 ver 0 */
00134     CControlTray::OpenNewEditor( m_hInstance, m_pShareData->m_hwndTray, pCmdLine, CODE_DEFAULT, FALSE );
00135 }
00136
00137
00138 /* ウィンドウプロシージャじゃ */
00139 LRESULT CALLBACK CEditAppWndProc(
00140     HWND    hwnd,   // handle of window
00141     UINT    uMsg,   // message identifier
00142     WPARAM  wParam, // first message parameter
00143     LPARAM  lParam  // second message parameter
00144 )
00145 {
00146     CControlTray* pSApp;
00147     switch( uMsg ){
00148     case WM_CREATE:
00149         pSApp = ( CControlTray* )g_m_pCEditApp;
00150         return pSApp->DispatchEvent( hwnd, uMsg, wParam, lParam );
00151     default:
00152         // Modified by KEITA for WIN64 2003.9.6
00153         //RELPRINT_A("dispatch\n");
00154         pSApp = ( CControlTray* )::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00155         if( NULL != pSApp ){
00156             return pSApp->DispatchEvent( hwnd, uMsg, wParam, lParam );
00157         }
00158         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00159     }
00160 }
00161
00162
00163
00164
00166 // CControlTray
00167 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00168 CControlTray::CControlTray()
00169 //  Apr. 24, 2001 genta
00170 : m_uCreateTaskBarMsg( ::RegisterWindowMessage( TEXT("TaskbarCreated") ) )
00171 , m_bCreatedTrayIcon( FALSE )   //トレイにアイコンを作った
00172 , m_hInstance( NULL )
00173 , m_hWnd( NULL )
00174 {
00175     /* 共有データ構造体のアドレスを返す */
00176     m_pShareData = CShareData::getInstance()->GetShareData();
00177     if( m_pShareData->m_hAccel != NULL ){
00178         ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
00179         m_pShareData->m_hAccel = NULL;
00180     }
00181     m_pShareData->m_hAccel =
00182         CKeyBind::CreateAccerelator(
00183             m_pShareData->m_nKeyNameArrNum,
00184             m_pShareData->m_pKeyNameArr
00185         );
00186     if( NULL == m_pShareData->m_hAccel ){
00187         ::MessageBox(
00188             NULL,
00189             _T("CControlTray::CControlTray()\n")
00190             _T("アクセラレータ テーブルが作成できません。\n")
00191             _T("システムリソースが不足しています。"),
00192             GSTR_APPNAME,
00193             MB_OK | MB_ICONSTOP
00194         );
00195     }
00196
00197     m_pszAppName = GSTR_CEDITAPP;
00198
00199     m_bUseTrayMenu = false;
00200
00201     return;
00202 }
00203
00204
00205 CControlTray::~CControlTray()
00206 {
00207     return;
00208 }
00209
00211 // CControlTray メンバ関数
00212
00213
00214
00215
00216 /* 作成 */
00217 HWND CControlTray::Create( HINSTANCE hInstance )
00218 {
00219     MY_RUNNINGTIMER( cRunningTimer, L"CControlTray::Create" );
00220
00221     //同名同クラスのウィンドウが既に存在していたら、失敗
00222     m_hInstance = hInstance;
00223     HWND hwndWork = ::FindWindow( m_pszAppName, m_pszAppName );
00224     if( NULL != hwndWork ){
00225         return NULL;
00226     }
00227
00228     //ウィンドウクラス登録
00229     WNDCLASS    wc;
00230     {
00231         wc.style            =   CS_HREDRAW |
00232                                 CS_VREDRAW |
00233                                 CS_DBLCLKS |
00234                                 CS_BYTEALIGNCLIENT |
00235                                 CS_BYTEALIGNWINDOW;
00236         wc.lpfnWndProc      = CEditAppWndProc;
00237         wc.cbClsExtra       = 0;
00238         wc.cbWndExtra       = 0;
00239         wc.hInstance        = m_hInstance;
00240         wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );
00241         wc.hCursor          = LoadCursor( NULL, IDC_ARROW );
00242         wc.hbrBackground    = (HBRUSH)(COLOR_WINDOW + 1);
00243         wc.lpszMenuName     = NULL;
00244         wc.lpszClassName    = m_pszAppName;
00245         ATOM    atom = RegisterClass( &wc );
00246         if( 0 == atom ){
00247             ::MessageBox(
00248                 NULL,
00249                 _T("CControlTray::Create()\nウィンドウクラスを登録できませんでした。"),
00250                 GSTR_APPNAME,
00251                 MB_OK | MB_ICONSTOP
00252             );
00253         }
00254     }
00255     g_m_pCEditApp = this;
00256
00257     // ウィンドウ作成 (WM_CREATEで、GetHwnd() に HWND が格納される)
00258     ::CreateWindow(
00259         m_pszAppName,                       // pointer to registered class name
00260         m_pszAppName,                       // pointer to window name
00261         WS_OVERLAPPEDWINDOW/*WS_VISIBLE *//*| WS_CHILD *//* | WS_CLIPCHILDREN*/ ,   // window style
00262         CW_USEDEFAULT,                      // horizontal position of window
00263         0,                                  // vertical position of window
00264         100,                                // window width
00265         100,                                // window height
00266         NULL,                               // handle to parent or owner window
00267         NULL,                               // handle to menu or child-window identifier
00268         m_hInstance,                        // handle to application instance
00269         NULL                                // pointer to window-creation data
00270     );
00271
00272     // 最前面にする（トレイからのポップアップウィンドウが最前面になるように）
00273     ::SetWindowPos( GetTrayHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00274
00275     // タスクトレイアイコン作成
00276     m_hIcons.Create( m_hInstance ); //  Oct. 16, 2000 genta
00277     m_CMenuDrawer.Create( m_hInstance, GetTrayHwnd(), &m_hIcons );
00278     if( GetTrayHwnd() ){
00279         CreateTrayIcon( GetTrayHwnd() );
00280     }
00281
00282     return GetTrayHwnd();
00283 }
00284
00286 bool CControlTray::CreateTrayIcon( HWND hWnd )
00287 {
00288     // タスクトレイのアイコンを作る
00289     if( TRUE == m_pShareData->m_Common.m_sGeneral.m_bUseTaskTray ){ /* タスクトレイのアイコンを使う */
00290         //  Dec. 02, 2002 genta
00291         HICON hIcon = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
00292 //From Here Jan. 12, 2001 JEPRO トレイアイコンにポイントするとバージョンno.が表示されるように修正
00293 //          TrayMessage( GetTrayHwnd(), NIM_ADD, 0,  hIcon, GSTR_APPNAME );
00294         /* バージョン情報 */
00295         //  UR version no.を設定 (cf. cDlgAbout.cpp)
00296         TCHAR   pszTips[64];
00297         //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
00298         DWORD dwVersionMS, dwVersionLS;
00299         GetAppVersionInfo( NULL, VS_VERSION_INFO,
00300             &dwVersionMS, &dwVersionLS );
00301
00302         auto_sprintf( pszTips, _T("%ts %d.%d.%d.%d"),       //Jul. 06, 2001 jepro UR はもう付けなくなったのを忘れていた
00303             GSTR_APPNAME,
00304             HIWORD( dwVersionMS ),
00305             LOWORD( dwVersionMS ),
00306             HIWORD( dwVersionLS ),
00307             LOWORD( dwVersionLS )
00308         );
00309         TrayMessage( GetTrayHwnd(), NIM_ADD, 0,  hIcon, pszTips );
00310 //To Here Jan. 12, 2001
00311         m_bCreatedTrayIcon = TRUE;  /* トレイにアイコンを作った */
00312     }
00313     return true;
00314 }
00315
00316
00317
00318
00319 /* メッセージループ */
00320 void CControlTray::MessageLoop( void )
00321 {
00322 //複数プロセス版
00323     MSG msg;
00324     int ret;
00325
00326     //2004.02.17 Moca GetMessageのエラーチェック
00327     while ( GetTrayHwnd() != NULL && (ret = ::GetMessage(&msg, NULL, 0, 0 )) ){
00328         if( ret == -1 ){
00329             break;
00330         }
00331         ::TranslateMessage( &msg );
00332         ::DispatchMessage( &msg );
00333     }
00334     return;
00335
00336 }
00337
00338
00339
00340
00341 /* タスクトレイのアイコンに関する処理 */
00342 BOOL CControlTray::TrayMessage( HWND hDlg, DWORD dwMessage, UINT uID, HICON hIcon, const TCHAR* pszTip )
00343 {
00344     BOOL            res;
00345     NOTIFYICONDATA  tnd;
00346     tnd.cbSize              = sizeof_raw( tnd );
00347     tnd.hWnd                = hDlg;
00348     tnd.uID                 = uID;
00349     tnd.uFlags              = NIF_MESSAGE|NIF_ICON|NIF_TIP;
00350     tnd.uCallbackMessage    = MYWM_NOTIFYICON;
00351     tnd.hIcon               = hIcon;
00352     if( pszTip ){
00353         lstrcpyn( tnd.szTip, pszTip, _countof( tnd.szTip ) );
00354     }else{
00355         tnd.szTip[0] = _T('\0');
00356     }
00357     res = Shell_NotifyIcon( dwMessage, &tnd );
00358     if( hIcon ){
00359         DestroyIcon( hIcon );
00360     }
00361     return res;
00362 }
00363
00364
00365
00366
00367
00368 /* メッセージ処理 */
00369 LRESULT CControlTray::DispatchEvent(
00370     HWND    hwnd,   // handle of window
00371     UINT    uMsg,   // message identifier
00372     WPARAM  wParam, // first message parameter
00373     LPARAM  lParam  // second message parameter
00374 )
00375 {
00376     int             nId;
00377     HWND            hwndWork;
00378     LPHELPINFO      lphi;
00379
00380     int         nRowNum;
00381     EditNode*   pEditNodeArr;
00382     static HWND hwndHtmlHelp;
00383
00384     static WORD     wHotKeyMods;
00385     static WORD     wHotKeyCode;
00386     LPMEASUREITEMSTRUCT lpmis;  /* 項目サイズ情報 */
00387     LPDRAWITEMSTRUCT    lpdis;  /* 項目描画情報 */
00388     int                 nItemWidth;
00389     int                 nItemHeight;
00390     static bool         bLDClick = false;   /* 左ダブルクリックをしたか 03/02/20 ai */
00391
00392     switch ( uMsg ){
00393     case WM_MENUCHAR:
00394         /* メニューアクセスキー押下時の処理(WM_MENUCHAR処理) */
00395         return m_CMenuDrawer.OnMenuChar( hwnd, uMsg, wParam, lParam );
00396     case WM_DRAWITEM:
00397         lpdis = (DRAWITEMSTRUCT*) lParam;   /* 項目描画情報 */
00398         switch( lpdis->CtlType ){
00399         case ODT_MENU:  /* オーナー描画メニュー */
00400             /* メニューアイテム描画 */
00401             m_CMenuDrawer.DrawItem( lpdis );
00402             return TRUE;
00403         }
00404         return FALSE;
00405     case WM_MEASUREITEM:
00406         lpmis = (MEASUREITEMSTRUCT*) lParam;    // item-size information
00407         switch( lpmis->CtlType ){
00408         case ODT_MENU:  /* オーナー描画メニュー */
00409             /* メニューアイテムの描画サイズを計算 */
00410             nItemWidth = m_CMenuDrawer.MeasureItem( lpmis->itemID, &nItemHeight );
00411             if( -1 == nItemWidth ){
00412             }else{
00413                 lpmis->itemWidth = nItemWidth;
00414                 lpmis->itemHeight = nItemHeight;
00415             }
00416             return TRUE;
00417         }
00418         return FALSE;
00419
00420     /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00421     case WM_HOTKEY:
00422         {
00423             int     idHotKey = (int) wParam;                // identifier of hot key
00424             UINT    fuModifiers = (UINT) LOWORD(lParam);    // key-modifier flags
00425             UINT    uVirtKey = (UINT) HIWORD(lParam);       // virtual-key code
00426             TCHAR   szClassName[100];
00427             TCHAR   szText[256];
00428
00429             hwndWork = ::GetForegroundWindow();
00430             szClassName[0] = L'\0';
00431             ::GetClassName( hwndWork, szClassName, _countof( szClassName ) - 1 );
00432             ::GetWindowText( hwndWork, szText, _countof( szText ) - 1 );
00433             if( 0 == _tcscmp( szText, _T("共通設定") ) ){
00434                 return -1;
00435             }
00436
00437             if( ID_HOTKEY_TRAYMENU == idHotKey
00438              && ( wHotKeyMods )  == fuModifiers
00439              && wHotKeyCode == uVirtKey
00440             ){
00441                 // Jan. 1, 2003 AROKA
00442                 // タスクトレイメニューの表示タイミングをLBUTTONDOWN→LBUTTONUPに変更したことによる
00443 				::PostMessageAny( GetTrayHwnd(), MYWM_NOTIFYICON, 0, WM_LBUTTONUP );
00444             }
00445         }
00446         return 0;
00447
00448     case MYWM_UIPI_CHECK:
00449         /* エディタ−トレイ間でのUI特権分離の確認メッセージ */   // 2007.06.07 ryoji
00450         ::SendMessage( (HWND)lParam, MYWM_UIPI_CHECK,  (WPARAM)0, (LPARAM)0 );  // 返事を返す
00451         return 0L;
00452
00453     case MYWM_HTMLHELP:
00454         {
00455             TCHAR* pWork = m_pShareData->GetWorkBuffer<TCHAR>();
00456
00457             //szHtmlFile取得
00458             TCHAR   szHtmlHelpFile[1024];
00459             _tcscpy( szHtmlHelpFile, pWork );
00460             int     nLen = _tcslen( szHtmlHelpFile );
00461
00462             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
00463             hwndHtmlHelp = OpenHtmlHelp(
00464                 NULL,
00465                 szHtmlHelpFile,
00466                 HH_DISPLAY_TOPIC,
00467                 (DWORD_PTR)0,
00468                 true
00469             );
00470
00471             HH_AKLINK   link;
00472             link.cbStruct       = sizeof_raw(link);
00473             link.fReserved      = FALSE;
00474             link.pszKeywords    = to_tchar(&pWork[nLen+1]);
00475             link.pszUrl         = NULL;
00476             link.pszMsgText     = NULL;
00477             link.pszMsgTitle    = NULL;
00478             link.pszWindow      = NULL;
00479             link.fIndexOnFail   = TRUE;
00480
00481             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
00482             hwndHtmlHelp = OpenHtmlHelp(
00483                 NULL,
00484                 szHtmlHelpFile,
00485                 HH_KEYWORD_LOOKUP,
00486                 (DWORD_PTR)&link,
00487                 false
00488             );
00489         }
00490         return (LRESULT)hwndHtmlHelp;;
00491
00492
00493     /* 編集ウィンドウオブジェクトからのオブジェクト削除要求 */
00494     case MYWM_DELETE_ME:
00495         RELPRINT_A("MYWM_DELETE_ME\n");
00496         RELPRINT_A(
00497             "m_bStayTaskTray   =%d\n"
00498             "m_bUseTaskTray    =%d\n"
00499             "m_bCreatedTrayIcon=%d\n",
00500             m_pShareData->m_Common.m_sGeneral.m_bStayTaskTray?1:0,
00501             m_pShareData->m_Common.m_sGeneral.m_bUseTaskTray?1:0,
00502             m_bCreatedTrayIcon?1:0
00503         );
00504
00505         // タスクトレイのアイコンを常駐しない、または、トレイにアイコンを作っていない
00506         if( !(m_pShareData->m_Common.m_sGeneral.m_bStayTaskTray && m_pShareData->m_Common.m_sGeneral.m_bUseTaskTray) || !m_bCreatedTrayIcon ){
00507             // 現在開いている編集窓のリスト
00508             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
00509             RELPRINT_A("nRowNum=%d\n",nRowNum);
00510             if( 0 < nRowNum ){
00511                 delete [] pEditNodeArr;
00512             }
00513             // 編集ウィンドウの数が0になったら終了
00514             if( 0 == nRowNum ){
00515                 RELPRINT_A("トレイClose\n");
00516 				::SendMessageAny( hwnd, WM_CLOSE, 0, 0 );
00517             }
00518         }
00519         else{
00520             RELPRINT_A("トレイ残す\n");
00521         }
00522         return 0;
00523
00524     case WM_CREATE:
00525         m_hWnd = hwnd;
00526         hwndHtmlHelp = NULL;
00527         // Modified by KEITA for WIN64 2003.9.6
00528 		::SetWindowLongPtr( GetTrayHwnd(), GWLP_USERDATA, (LONG_PTR)this );
00529
00530         /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00531         wHotKeyMods = 0;
00532         if( HOTKEYF_SHIFT & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00533             wHotKeyMods |= MOD_SHIFT;
00534         }
00535         if( HOTKEYF_CONTROL & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00536             wHotKeyMods |= MOD_CONTROL;
00537         }
00538         if( HOTKEYF_ALT & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00539             wHotKeyMods |= MOD_ALT;
00540         }
00541         wHotKeyCode = m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyCode;
00542         ::RegisterHotKey(
00543             GetTrayHwnd(),
00544             ID_HOTKEY_TRAYMENU,
00545             wHotKeyMods,
00546             wHotKeyCode
00547         );
00548
00549         // 2006.07.09 ryoji 最後の方でシャットダウンするアプリケーションにする
00550         BOOL (WINAPI *pfnSetProcessShutdownParameters)( DWORD dwLevel, DWORD dwFlags );
00551         HINSTANCE hDll;
00552         hDll = ::GetModuleHandle(_T("KERNEL32"));
00553         if( NULL != hDll ){
00554             *(FARPROC*)&pfnSetProcessShutdownParameters = ::GetProcAddress( hDll, "SetProcessShutdownParameters" );
00555             if( NULL != pfnSetProcessShutdownParameters ){
00556                 pfnSetProcessShutdownParameters( 0x180, 0 );
00557             }
00558         }
00559         return 0L;
00560
00561 //  case WM_QUERYENDSESSION:
00562     case WM_HELP:
00563         lphi = (LPHELPINFO) lParam;
00564         switch( lphi->iContextType ){
00565         case HELPINFO_MENUITEM:
00566             CEditApp::Instance()->ShowFuncHelp( hwnd, (EFunctionCode)lphi->iCtrlId );
00567             break;
00568         }
00569         return TRUE;
00570         case WM_COMMAND:
00571             OnCommand( HIWORD(wParam), LOWORD(wParam), (HWND) lParam );
00572             return 0L;
00573
00574 //      case MYWM_SETFILEINFO:
00575 //          return 0L;
00576         case MYWM_CHANGESETTING:
00577             ::UnregisterHotKey( GetTrayHwnd(), ID_HOTKEY_TRAYMENU );
00578             /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00579             wHotKeyMods = 0;
00580             if( HOTKEYF_SHIFT & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00581                 wHotKeyMods |= MOD_SHIFT;
00582             }
00583             if( HOTKEYF_CONTROL & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00584                 wHotKeyMods |= MOD_CONTROL;
00585             }
00586             if( HOTKEYF_ALT & m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ){
00587                 wHotKeyMods |= MOD_ALT;
00588             }
00589             wHotKeyCode = m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyCode;
00590             ::RegisterHotKey(
00591                 GetTrayHwnd(),
00592                 ID_HOTKEY_TRAYMENU,
00593                 wHotKeyMods,
00594                 wHotKeyCode
00595             );
00596
00597 //@@        /* 共有データの保存 */
00598 //@@        m_cShareData.SaveShareData();
00599
00600             /* アクセラレータテーブルの再作成 */
00601             if( m_pShareData->m_hAccel != NULL ){
00602                 ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
00603                 m_pShareData->m_hAccel = NULL;
00604             }
00605             m_pShareData->m_hAccel =
00606                 CKeyBind::CreateAccerelator(
00607                     m_pShareData->m_nKeyNameArrNum,
00608                     m_pShareData->m_pKeyNameArr
00609                 );
00610             if( NULL == m_pShareData->m_hAccel ){
00611                 ::MessageBox(
00612                     NULL,
00613                     _T("CControlTray::DispatchEvent()\n")
00614                     _T("アクセラレータ テーブルが作成できません。\n")
00615                     _T("システムリソースが不足しています。"),
00616                     GSTR_APPNAME,
00617                     MB_OK | MB_ICONSTOP
00618                 );
00619             }
00620
00621             return 0L;
00622
00623         case MYWM_NOTIFYICON:
00624 //          MYTRACE_A( "MYWM_NOTIFYICON\n" );
00625             switch (lParam){
00626 //キーワード：トレイ右クリックメニュー設定
00627 //  From Here Oct. 12, 2000 JEPRO 左右とも同一処理になっていたのを別々に処理するように変更
00628             case WM_RBUTTONUP:  // Dec. 24, 2002 towest UPに変更
00629                 ::SetActiveWindow( GetTrayHwnd() );
00630                 ::SetForegroundWindow( GetTrayHwnd() );
00631                 /* ポップアップメニュー(トレイ右ボタン) */
00632                 nId = CreatePopUpMenu_R();
00633                 switch( nId ){
00634                 case F_HELP_CONTENTS:
00635                     /* ヘルプ目次 */
00636                     {
00637                         ShowWinHelpContents( GetTrayHwnd(), CEditApp::Instance()->GetHelpFilePath() );  //  目次を表示する
00638                     }
00639                     break;
00640                 case F_HELP_SEARCH:
00641                     /* ヘルプキーワード検索 */
00642                     {
00643                         MyWinHelp( GetTrayHwnd(), CEditApp::Instance()->GetHelpFilePath(), HELP_KEY, (ULONG_PTR)_T("") );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00644                     }
00645                     break;
00646                 case F_EXTHELP1:
00647                     /* 外部ヘルプ１ */
00648                     do{
00649                         if( CShareData::getInstance()->ExtWinHelpIsSet() ) {    //  共通設定のみ確認
00650                             break;
00651                         }
00652                         else{
00653                             ::MessageBeep( MB_ICONHAND );
00654                         }
00655                     }while(IDYES == ::MYMESSAGEBOX(
00656                             NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST,
00657                             GSTR_APPNAME,
00658                             _T("外部ヘルプ１が設定されていません。\n今すぐ設定しますか?"))
00659                     );/*do-while*/
00660
00661                     break;
00662                 case F_EXTHTMLHELP:
00663                     /* 外部HTMLヘルプ */
00664                     {
00665 //                      CEditView::Command_EXTHTMLHELP();
00666                     }
00667                     break;
00668                 case F_ABOUT:
00669                     /* バージョン情報 */
00670                     {
00671                         CDlgAbout cDlgAbout;
00672                         cDlgAbout.DoModal( m_hInstance, GetTrayHwnd() );
00673                     }
00674                     break;
00675 //              case IDM_EXITALL:
00676                 case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
00677                     /* サクラエディタの全終了 */
00678                     CControlTray::TerminateApplication( GetTrayHwnd() );    // 2006.12.25 ryoji 引数追加
00679                     break;
00680                 default:
00681                     break;
00682                 }
00683                 return 0L;
00684 //  To Here Oct. 12, 2000
00685
00686             case WM_LBUTTONDOWN:
00687                 //  Mar. 29, 2003 genta 念のためフラグクリア
00688                 bLDClick = false;
00689                 return 0L;
00690             case WM_LBUTTONUP:  // Dec. 24, 2002 towest UPに変更
00691 //              MYTRACE_A( "WM_LBUTTONDOWN\n" );
00692                 /* 03/02/20 左ダブルクリック後はメニューを表示しない ai Start */
00693                 if( bLDClick ){
00694                     bLDClick = false;
00695                     return 0L;
00696                 }
00697                 /* 03/02/20 ai End */
00698                 ::SetActiveWindow( GetTrayHwnd() );
00699                 ::SetForegroundWindow( GetTrayHwnd() );
00700                 /* ポップアップメニュー(トレイ左ボタン) */
00701                 nId = CreatePopUpMenu_L();
00702                 switch( nId ){
00703                 case F_FILENEW: /* 新規作成 */
00704                     /* 新規編集ウィンドウの追加 */
00705                     OnNewEditor();
00706                     break;
00707                 case F_FILEOPEN:    /* 開く */
00708                     {
00709                         CDlgOpenFile    cDlgOpenFile;
00710                         TCHAR           szPath[_MAX_PATH + 1];
00711                         ECodeType       nCharCode;
00712                         bool            bReadOnly;
00713                         HWND            hWndOwner;
00714                         TCHAR**     ppszMRU;
00715                         TCHAR**     ppszOPENFOLDER;
00716
00717                         /* MRUリストのファイルのリスト */
00718 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUにすべて依頼する
00719                         CMRU cMRU;
00720 //                      ppszMRU = NULL;
00721                         ppszMRU = new TCHAR*[ cMRU.Length() + 1 ];
00722                         cMRU.GetPathList(ppszMRU);
00723
00724                         /* OPENFOLDERリストのファイルのリスト */
00725 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00726                         CMRUFolder cMRUFolder;
00727 //                      ppszOPENFOLDER = NULL;
00728                         ppszOPENFOLDER = new TCHAR*[ cMRUFolder.Length() + 1 ];
00729                         cMRUFolder.GetPathList(ppszOPENFOLDER);
00730
00731                         /* ファイルオープンダイアログの初期化 */
00732                         _tcscpy( szPath, _FT("") );
00733                         nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
00734                         bReadOnly = FALSE;
00735                         cDlgOpenFile.Create2(
00736                             m_hInstance,
00737                             NULL,
00738                             _T("*.*"),
00739                             ppszMRU[0],//@@@ 2001.12.26 YAZAKI m_fiMRUArrにはアクセスしない
00740                             ppszMRU,
00741                             ppszOPENFOLDER
00742                         );
00743                         if( !cDlgOpenFile.DoModalOpenDlg( szPath, &nCharCode, &bReadOnly ) ){
00744                             delete [] ppszMRU;
00745                             delete [] ppszOPENFOLDER;
00746                             break;
00747                         }
00748                         if( NULL == GetTrayHwnd() ){
00749                             delete [] ppszMRU;
00750                             delete [] ppszOPENFOLDER;
00751                             break;
00752                         }
00753                         delete [] ppszMRU;
00754                         delete [] ppszOPENFOLDER;
00755
00756                         /* 指定ファイルが開かれているか調べる */
00757                         if( CShareData::getInstance()->IsPathOpened( szPath, &hWndOwner, nCharCode )){
00758                             // 2007.03.13 maru 多重オープンに対する処理はCShareData::IsPathOpenedへ移動
00759                         }
00760                         else{
00761                             if( _tcschr( szPath, _T(' ') ) ){
00762                                 TCHAR   szFile2[_MAX_PATH + 3];
00763                                 auto_sprintf( szFile2, _T("\"%ts\""), szPath );
00764                                 _tcscpy( szPath, szFile2 );
00765                             }
00766                             /* 新たな編集ウィンドウを起動 */
00767                             CControlTray::OpenNewEditor( m_hInstance, GetTrayHwnd(), szPath, nCharCode, bReadOnly );
00768                         }
00769                     }
00770                     break;
00771                 case F_GREP_DIALOG:
00772                     /* Grep */
00773                     DoGrep();  //Stonee, 2001/03/21  Grepを別関数に
00774                     break;
00775                 case F_FILESAVEALL: // Jan. 24, 2005 genta 全て上書き保存
00776                     CShareData::getInstance()->PostMessageToAllEditors(
00777                         WM_COMMAND,
00778                         MAKELONG( F_FILESAVE_QUIET, 0 ),
00779                         (LPARAM)0,
00780                         NULL
00781                     );
00782                     break;
00783                 case F_EXITALLEDITORS:  //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)  // 2007.02.13 ryoji →F_EXITALLEDITORS
00784                     /* 編集の全終了 */
00785                     CControlTray::CloseAllEditor( TRUE, GetTrayHwnd(), TRUE, 0 );   // 2006.12.25, 2007.02.13 ryoji 引数追加
00786                     break;
00787                 case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
00788                     /* サクラエディタの全終了 */
00789                     CControlTray::TerminateApplication( GetTrayHwnd() );    // 2006.12.25 ryoji 引数追加
00790                     break;
00791                 default:
00792                     if( nId - IDM_SELWINDOW  >= 0 &&
00793                         nId - IDM_SELWINDOW  < m_pShareData->m_nEditArrNum ){
00794                         hwndWork = m_pShareData->m_pEditArr[nId - IDM_SELWINDOW].GetHwnd();
00795
00796                         /* アクティブにする */
00797                         ActivateFrameWindow( hwndWork );
00798                     }
00799                     else if( nId-IDM_SELMRU >= 0 && nId-IDM_SELMRU < 999 ){
00800
00801                         /* 新しい編集ウィンドウを開く */
00802                         //  From Here Oct. 27, 2000 genta   カーソル位置を復元しない機能
00803 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00804                         CMRU cMRU;
00805                         FileInfo openFileInfo;
00806                         cMRU.GetFileInfo(nId - IDM_SELMRU, &openFileInfo);
00807
00808                         if( m_pShareData->m_Common.m_sFile.GetRestoreCurPosition() ){
00809                             CControlTray::OpenNewEditor2( m_hInstance, GetTrayHwnd(), &openFileInfo, FALSE );
00810                         }
00811                         else {
00812                             CControlTray::OpenNewEditor(
00813                                 m_hInstance,
00814                                 GetTrayHwnd(),
00815                                 openFileInfo.m_szPath,
00816                                 openFileInfo.m_nCharCode,
00817                                 FALSE
00818                             );
00819
00820                         }
00821                         //  To Here Oct. 27, 2000 genta
00822                     }else
00823                     if( nId - IDM_SELOPENFOLDER  >= 0 &&
00824                         nId - IDM_SELOPENFOLDER  < 999
00825                     ){
00826                         {
00827                             CDlgOpenFile    cDlgOpenFile;
00828 //                          char*           pszMRU = NULL;;
00829                             TCHAR           szPath[_MAX_PATH + 1];
00830                             ECodeType       nCharCode;
00831                             bool            bReadOnly;
00832                             HWND            hWndOwner;
00833 //                          FileInfo*       pfi;
00834 //                          int             i;
00835 //                          int             j;
00836                             TCHAR**     ppszMRU;
00837                             TCHAR**     ppszOPENFOLDER;
00838
00839                             /* MRUリストのファイルのリスト */
00840 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00841                             CMRU cMRU;
00842                             ppszMRU = NULL;
00843                             ppszMRU = new TCHAR*[ cMRU.Length() + 1 ];
00844                             cMRU.GetPathList(ppszMRU);
00845                             /* OPENFOLDERリストのファイルのリスト */
00846 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00847                             CMRUFolder cMRUFolder;
00848 //                          ppszOPENFOLDER = NULL;
00849                             ppszOPENFOLDER = new TCHAR*[ cMRUFolder.Length() + 1 ];
00850                             cMRUFolder.GetPathList(ppszOPENFOLDER);
00851
00852                             //Stonee, 2001/12/21 UNCであれば接続を試みる
00853                             NetConnect( cMRUFolder.GetPath( nId - IDM_SELOPENFOLDER ) );
00854
00855                             /* ファイルオープンダイアログの初期化 */
00856                             _tcscpy( szPath, _T("") );
00857                             nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
00858                             bReadOnly = FALSE;
00859                             cDlgOpenFile.Create2(
00860                                 m_hInstance,
00861                                 NULL,
00862                                 _T("*.*"),
00863                                 ppszOPENFOLDER[ nId - IDM_SELOPENFOLDER ],
00864                                 ppszMRU,
00865                                 ppszOPENFOLDER
00866                             );
00867                             if( !cDlgOpenFile.DoModalOpenDlg( szPath, &nCharCode, &bReadOnly ) ){
00868                                 delete [] ppszMRU;
00869                                 delete [] ppszOPENFOLDER;
00870                                 break;
00871                             }
00872                             if( NULL == GetTrayHwnd() ){
00873                                 delete [] ppszMRU;
00874                                 delete [] ppszOPENFOLDER;
00875                                 break;
00876                             }
00877                             delete [] ppszMRU;
00878                             delete [] ppszOPENFOLDER;
00879                             /* 指定ファイルが開かれているか調べる */
00880                             if( CShareData::getInstance()->IsPathOpened( szPath, &hWndOwner, nCharCode )){
00881                                 // 2007.03.13 maru 多重オープンに対する処理はCShareData::IsPathOpenedへ移動
00882                             } else {
00883                                 if( _tcschr( szPath, L' ' ) ){
00884                                     TCHAR   szFile2[_MAX_PATH + 3];
00885                                     auto_sprintf( szFile2, _T("\"%ts\""), szPath );
00886                                     _tcscpy( szPath, szFile2 );
00887                                 }
00888                                 /* 新たな編集ウィンドウを起動 */
00889                                 CControlTray::OpenNewEditor( m_hInstance, GetTrayHwnd(), szPath, nCharCode, bReadOnly );
00890                             }
00891                         }
00892                     }else{
00893
00894                     }
00895                     break;
00896                 }
00897                 return 0L;
00898             case WM_LBUTTONDBLCLK:
00899                 bLDClick = true;        /* 03/02/20 ai */
00900                 /* 新規編集ウィンドウの追加 */
00901                 OnNewEditor();
00902                 // Apr. 1, 2003 genta この後で表示されたメニューは閉じる
00903 				::PostMessageAny( GetTrayHwnd(), WM_CANCELMODE, 0, 0 );
00904                 return 0L;
00905             case WM_RBUTTONDBLCLK:
00906                 return 0L;
00907             }
00908             break;
00909
00910         case WM_QUERYENDSESSION:
00911             /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
00912             if( CloseAllEditor( FALSE, GetTrayHwnd(), TRUE, 0 ) ){  // 2006.12.25, 2007.02.13 ryoji 引数追加
00913                 //  Jan. 31, 2000 genta
00914                 //  この時点ではWindowsの終了が確定していないので常駐解除すべきではない．
00915                 //  DestroyWindow( hwnd );
00916                 return TRUE;
00917             }else{
00918                 return FALSE;
00919             }
00920         case WM_CLOSE:
00921             /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
00922             if( CloseAllEditor( FALSE, GetTrayHwnd(), TRUE, 0 ) ){  // 2006.12.25, 2007.02.13 ryoji 引数追加
00923                 DestroyWindow( hwnd );
00924             }
00925             return 0L;
00926
00927         //  From Here Jan. 31, 2000 genta   Windows終了時の後処理．
00928         //  Windows終了時はWM_CLOSEが呼ばれない上，DestroyWindowを
00929         //  呼び出す必要もない．また，メッセージループに戻らないので
00930         //  メッセージループの後ろの処理をここで完了させる必要がある．
00931         case WM_ENDSESSION:
00932             //  もしWindowsの終了が中断されたのなら何もしない
00933             if( wParam == TRUE )
00934                 OnDestroy();    // 2006.07.09 ryoji WM_DESTROY と同じ処理をする（トレイアイコンの破棄などもNT系では必要）
00935
00936             return 0;   //  もうこのプロセスに制御が戻ることはない
00937         //  To Here Jan. 31, 2000 genta
00938         case WM_DESTROY:
00939             OnDestroy();
00940
00941             /* Windows にスレッドの終了を要求します。*/
00942             ::PostQuitMessage( 0 );
00943             return 0L;
00944         default:
00945 // << 20010412 by aroka
00946 //  Apr. 24, 2001 genta RegisterWindowMessageを使うように修正
00947             if( uMsg == m_uCreateTaskBarMsg ){
00948                 /* TaskTray Iconの再登録を要求するメッセージ．
00949                     Explorerが再起動したときに送出される．*/
00950                 CreateTrayIcon( GetTrayHwnd() ) ;
00951             }
00952             break;  /* default */
00953 // >> by aroka
00954     }
00955     return DefWindowProc( hwnd, uMsg, wParam, lParam );
00956 }
00957
00958
00959
00960
00961 /* WM_COMMANDメッセージ処理 */
00962 void CControlTray::OnCommand( WORD wNotifyCode, WORD wID , HWND hwndCtl )
00963 {
00964     switch( wNotifyCode ){
00965     /* メニューからのメッセージ */
00966     case 0:
00967         break;
00968     }
00969     return;
00970 }
00971
00985 void CControlTray::OnNewEditor(void)
00986 {
00987
00988     const TCHAR* szCurDir = NULL;
00989
00990     //  最近使ったフォルダを順番にたどる
00991     CMRUFolder mrufolder;
00992
00993     int nCount = mrufolder.Length();
00994     for( int i = 0; i < nCount ; i++ ){
00995         const TCHAR* recentdir = mrufolder.GetPath( i );
00996         DWORD attr = GetFileAttributes( recentdir );
00997
00998         if( attr != -1 ){
00999             if(( attr & FILE_ATTRIBUTE_DIRECTORY ) != 0 ){
01000                 szCurDir = recentdir;
01001                 break;
01002             }
01003             else {
01004             }
01005         }
01006         else {
01007         }
01008     }
01009
01010     OpenNewEditor( m_hInstance, GetTrayHwnd(), NULL, CODE_DEFAULT, FALSE, false, szCurDir );
01011 }
01012
01013
01022 bool CControlTray::OpenNewEditor(
01023     HINSTANCE           hInstance,
01024     HWND                hWndParent,
01025     const TCHAR*        pszPath,
01026     ECodeType           nCharCode,
01027     BOOL                bReadOnly,
01028     bool                sync,
01029     const TCHAR*        szCurDir
01030 )
01031 {
01032     TCHAR szCmdLineBuf[1024];   //  コマンドライン
01033     TCHAR szEXE[MAX_PATH + 1];  //  アプリケーションパス名
01034     int nPos = 0;               //  コマンドライン構築用ポインタ
01035
01036     /* 共有データ構造体のアドレスを返す */
01037     DLLSHAREDATA*   pShareData = CShareData::getInstance()->GetShareData();
01038
01039     /* 編集ウィンドウの上限チェック */
01040     if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正   //@@@ 2003.05.31 MIK
01041         TCHAR szMsg[512];
01042         auto_sprintf( szMsg, _T("編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。"), MAX_EDITWINDOWS );
01043         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
01044         return false;
01045     }
01046
01047     ::GetModuleFileName( ::GetModuleHandle( NULL ), szEXE, _countof( szEXE ) );
01048     nPos += auto_sprintf( szCmdLineBuf + nPos, _T("\"%ts\""), szEXE );
01049
01050     //  ファイル名が指定されている場合
01051     //  コマンドライン引数が指定されているので，全体を""で囲んではいけない
01052     if( pszPath!=NULL ){
01053         nPos += auto_sprintf( szCmdLineBuf + nPos, _T(" %ts"), pszPath );
01054     }
01055     //  コード指定がある場合
01056     if( nCharCode != CODE_AUTODETECT ){
01057         nPos += auto_sprintf( szCmdLineBuf + nPos, _T(" -CODE=%d"), nCharCode );
01058     }
01059     //  読み取り専用指定がある場合     //From Here Feb. 26, 2001 JEPRO 追加 (direcited by genta)
01060     if( bReadOnly ){
01061         nPos += auto_sprintf( szCmdLineBuf + nPos, _T(" -R") );
01062     }       //To Here Feb. 26, 2001
01063
01064     // 親ウィンドウからグループIDを取得する
01065     HWND hwndAncestor = MyGetAncestor( hWndParent, GA_ROOTOWNER2 ); // 2007.10.22 ryoji GA_ROOTOWNER -> GA_ROOTOWNER2
01066     int nGroup = CShareData::getInstance()->GetGroupId( hwndAncestor );
01067     if( nGroup > 0 ){
01068         nPos += auto_sprintf( szCmdLineBuf + nPos, _T(" -GROUP=%d"), nGroup );
01069     }
01070
01071 //: do error check nPos
01072
01073     //  プロセスの起動
01074     PROCESS_INFORMATION p;
01075     STARTUPINFO s;
01076
01077     s.cb = sizeof_raw( s );
01078     s.lpReserved = NULL;
01079     s.lpDesktop = NULL;
01080     s.lpTitle = NULL;
01081     /*
01082     s.dwX = CW_USEDEFAULT;
01083     s.dwY = CW_USEDEFAULT;
01084     s.dwXSize = CW_USEDEFAULT;
01085     s.dwYSize = CW_USEDEFAULT;
01086     */
01087
01088     s.dwFlags = STARTF_USESHOWWINDOW;
01089     s.wShowWindow = SW_SHOWDEFAULT;
01090     s.cbReserved2 = 0;
01091     s.lpReserved2 = NULL;
01092
01093     //  May 30, 2003 genta カレントディレクトリ指定を可能に
01094     //エディタプロセスを起動
01095     DWORD dwCreationFlag = CREATE_DEFAULT_ERROR_MODE;
01096 #ifdef _DEBUG
01097 //  dwCreationFlag |= DEBUG_PROCESS; //2007.09.22 kobake デバッグ用フラグ
01098 #endif
01099     BOOL bCreateResult = CreateProcess(
01100         szEXE,          // 実行可能モジュールの名前
01101         szCmdLineBuf,   // コマンドラインの文字列
01102         NULL,           // セキュリティ記述子
01103         NULL,           // セキュリティ記述子
01104         FALSE,          // ハンドルの継承オプション
01105         dwCreationFlag, // 作成のフラグ
01106         NULL,           // 新しい環境ブロック
01107         szCurDir,       // カレントディレクトリの名前
01108         &s,             // スタートアップ情報
01109         &p              // プロセス情報
01110     );
01111     if( !bCreateResult ){
01112         //  失敗
01113         TCHAR* pMsg;
01114         FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
01115                         FORMAT_MESSAGE_IGNORE_INSERTS |
01116                         FORMAT_MESSAGE_FROM_SYSTEM,
01117                         NULL,
01118                         GetLastError(),
01119                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
01120                         (LPTSTR)&pMsg,
01121                         0,
01122                         NULL
01123         );
01124 		::MYMESSAGEBOX(
01125             hWndParent,
01126             MB_OK | MB_ICONSTOP,
01127             GSTR_APPNAME,
01128             _T("\'%ts\'\nプロセスの起動に失敗しました。\n%ts"),
01129             szEXE,
01130             pMsg
01131         );
01132         ::LocalFree( (HLOCAL)pMsg );    //  エラーメッセージバッファを解放
01133         return false;
01134     }
01135
01136     if( sync ){
01137         //  起動したプロセスが完全に立ち上がるまでちょっと待つ．
01138         int nResult = WaitForInputIdle( p.hProcess, 10000 );    //  最大10秒間待つ
01139         if( nResult != 0 ){
01140 			::MYMESSAGEBOX(
01141                 hWndParent,
01142                 MB_OK | MB_ICONSTOP,
01143                 GSTR_APPNAME,
01144                 _T("\'%ls\'\nプロセスの起動に失敗しました。"),
01145                 szEXE
01146             );
01147             CloseHandle( p.hThread );
01148             CloseHandle( p.hProcess );
01149             return false;
01150         }
01151     }
01152     else{
01153         // タブまとめ時は起動したプロセスが立ち上がるまでしばらくタイトルバーをアクティブに保つ   // 2007.02.03 ryoji
01154         if( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
01155             WaitForInputIdle( p.hProcess, 3000 );
01156         }
01157     }
01158
01159     CloseHandle( p.hThread );
01160     CloseHandle( p.hProcess );
01161
01162     return true;
01163 }
01164
01165
01170 bool CControlTray::OpenNewEditor2( HINSTANCE hInstance, HWND hWndParent, const FileInfo* pfi, BOOL bReadOnly, bool sync )
01171 {
01172     TCHAR           pszCmdLine[1024];
01173     DLLSHAREDATA*   pShareData;
01174     int             nPos = 0;       //  引数作成用ポインタ
01175
01176     /* 共有データ構造体のアドレスを返す */
01177     pShareData = CShareData::getInstance()->GetShareData();
01178
01179     /* 編集ウィンドウの上限チェック */
01180     if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正   //@@@ 2003.05.31 MIK
01181         TCHAR szMsg[512];
01182         auto_sprintf( szMsg, _T("編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。"), MAX_EDITWINDOWS );
01183         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
01184         return false;
01185     }
01186
01187     if( pfi != NULL ){
01188         if( pfi->m_szPath != NULL ){
01189             if( _tcslen( pfi->m_szPath ) > 0 ){
01190                 nPos += auto_sprintf( pszCmdLine + nPos, _T(" \"%ts\""), pfi->m_szPath );
01191             }
01192         }
01193         if( pfi->m_ptCursor.x >= 0 ){
01194             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -X=%d"), pfi->m_ptCursor.x +1 );
01195         }
01196         if( pfi->m_ptCursor.y >= 0 ){
01197             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -Y=%d"), pfi->m_ptCursor.y +1 );
01198         }
01199         if( pfi->m_nViewLeftCol >= CLayoutInt(0) ){
01200             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -VX=%d"), (Int)pfi->m_nViewLeftCol + 1 );
01201         }
01202         if( pfi->m_nViewTopLine >= CLayoutInt(0) ){
01203             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -VY=%d"), (Int)pfi->m_nViewTopLine + 1 );
01204         }
01205         if( pfi->m_nCharCode >= 0 && pfi->m_nCharCode != CODE_AUTODETECT ){
01206             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -CODE=%d"), pfi->m_nCharCode );
01207         }
01208         if( bReadOnly ){
01209             nPos += auto_sprintf( pszCmdLine + nPos, _T(" -R") );
01210         }
01211 //: do error check nPos
01212     }
01213     return OpenNewEditor( hInstance, hWndParent, pszCmdLine, CODE_AUTODETECT, bReadOnly, sync );
01214
01215 }
01216 //  To Here Oct. 24, 2000 genta
01217
01218
01219
01220
01221
01227 void CControlTray::TerminateApplication(
01228     HWND hWndFrom
01229 )
01230 {
01231     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();   /* 共有データ構造体のアドレスを返す */
01232
01233     /* 現在の編集ウィンドウの数を調べる */
01234     if( pShareData->m_Common.m_sGeneral.m_bExitConfirm ){   //終了時の確認
01235         if( 0 < CShareData::getInstance()->GetEditorWindowsNum( 0 ) ){
01236             if( IDYES != ::MYMESSAGEBOX(
01237                 hWndFrom,
01238                 MB_YESNO | MB_APPLMODAL | MB_ICONQUESTION,
01239                 GSTR_APPNAME,
01240                 _T("現在開いている編集用のウィンドウをすべて閉じて終了しますか?")
01241             ) ){
01242                 return;
01243             }
01244         }
01245     }
01246     /* 「すべてのウィンドウを閉じる」要求 */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
01247     BOOL bCheckConfirm = (pShareData->m_Common.m_sGeneral.m_bExitConfirm)? FALSE: TRUE; // 2006.12.25 ryoji 終了確認済みならそれ以上は確認しない
01248     if( CloseAllEditor( bCheckConfirm, hWndFrom, TRUE, 0 ) ){   // 2006.12.25, 2007.02.13 ryoji 引数追加
01249 		::PostMessageAny( pShareData->m_hwndTray, WM_CLOSE, 0, 0 );
01250     }
01251     return;
01252 }
01253
01254
01255
01256
01265 BOOL CControlTray::CloseAllEditor(
01266     BOOL    bCheckConfirm,
01267     HWND    hWndFrom,
01268     BOOL    bExit,
01269     int     nGroup
01270 )
01271 {
01272     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();   /* 共有データ構造体のアドレスを返す */
01273
01274     /* 現在の編集ウィンドウの数を調べる */
01275     if( bCheckConfirm && pShareData->m_Common.m_sGeneral.m_bCloseAllConfirm ){  //[すべて閉じる]で他に編集用のウィンドウがあれば確認する
01276         int nCount = CShareData::getInstance()->IsEditWnd( hWndFrom )? 1: 0;    // 呼び出し元が編集ウィンドウなら編集ウィンドウが複数の場合に確認する
01277         if( nCount < CShareData::getInstance()->GetEditorWindowsNum( nGroup ) ){
01278             if( IDYES != ::MYMESSAGEBOX(
01279                 hWndFrom,
01280                 MB_YESNO | MB_APPLMODAL | MB_ICONQUESTION,
01281                 GSTR_APPNAME,
01282                 _T("同時に複数の編集用ウィンドウを閉じようとしています。これらを閉じますか?")
01283             ) ){
01284                 return FALSE;
01285             }
01286         }
01287     }
01288
01289     /* 全編集ウィンドウへ終了要求を出す */
01290     if( !CShareData::getInstance()->RequestCloseAllEditor( bExit, nGroup ) ){   // 2007.02.13 ryoji bExitを引き継ぐ
01291         return FALSE;
01292     }else{
01293         return TRUE;
01294     }
01295 }
01296
01297
01298
01299
01301 int CControlTray::CreatePopUpMenu_L( void )
01302 {
01303     int         i;
01304     int         j;
01305     int         nId;
01306     HMENU       hMenuTop;
01307     HMENU       hMenu;
01308     HMENU       hMenuPopUp;
01309     TCHAR       szMemu[100 + MAX_PATH * 2]; //  Jan. 19, 2001 genta
01310     POINT       po;
01311     RECT        rc;
01312 //  HWND        hwndDummy;
01313     int         nMenuNum;
01314     FileInfo*   pfi;
01315
01316     //本当はセマフォにしないとだめ
01317     if( m_bUseTrayMenu ) return -1;
01318     m_bUseTrayMenu = true;
01319
01320     m_CMenuDrawer.ResetContents();
01321     CShareData::getInstance()->TransformFileName_MakeCache();
01322
01323     hMenuTop = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_TRAYMENU_L ) );
01324     hMenu = ::GetSubMenu( hMenuTop, 0 );
01325     nMenuNum = ::GetMenuItemCount( hMenu )/* - 1*/;
01326     for( i = nMenuNum - 1; i >= 0; i-- ){
01327         ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01328     }
01329
01330     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW, _T("新規作成(&N)"), FALSE );
01331     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN, _T("開く(&O)..."), FALSE );
01332
01333     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GREP_DIALOG, _T("Grep(&G)..."), FALSE );
01334     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01335
01336     /* MRUリストのファイルのリストをメニューにする */
01337 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01338     CMRU cMRU;
01339     hMenuPopUp = cMRU.CreateMenu( &m_CMenuDrawer ); //  ファイルメニュー
01340     if ( cMRU.Length() > 0 ){
01341         //  アクティブ
01342         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("最近使ったファイル(&F)") );
01343     }
01344     else {
01345         //  非アクティブ
01346         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , _T("最近使ったファイル(&F)") );
01347     }
01348
01349     /* 最近使ったフォルダのメニューを作成 */
01350 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
01351     CMRUFolder cMRUFolder;
01352     hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
01353     if ( cMRUFolder.Length() > 0 ){
01354         //  アクティブ
01355         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("最近使ったフォルダ(&D)") );
01356     }
01357     else {
01358         //  非アクティブ
01359         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp, _T("最近使ったフォルダ(&D)") );
01360     }
01361
01362     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01363     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEALL, _T("すべて上書き保存(&Z)"), FALSE );   // Jan. 24, 2005 genta
01364
01365     /* 現在開いている編集窓のリストをメニューにする */
01366     j = 0;
01367     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01368         if( CShareData::IsEditWnd( m_pShareData->m_pEditArr[i].GetHwnd() ) ){
01369             ++j;
01370         }
01371     }
01372
01373     if( j > 0 ){
01374         m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01375         j = 0;
01376         for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01377             if( CShareData::IsEditWnd( m_pShareData->m_pEditArr[i].GetHwnd() ) ){
01378                 /* トレイからエディタへの編集ファイル名要求通知 */
01379 				::SendMessageAny( m_pShareData->m_pEditArr[i].GetHwnd(), MYWM_GETFILEINFO, 0, 0 );
01380                 pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01381                     if( pfi->m_bIsGrep ){
01382                         /* データを指定バイト数以内に切り詰める */
01383
01384                         //pfi->m_szGrepKey → cmemDes
01385                         CNativeW    cmemDes;
01386                         LimitStringLengthW( pfi->m_szGrepKey, wcslen( pfi->m_szGrepKey ), 64, cmemDes );
01387
01388                         //cmmDes → szMenu2
01389                         //  Jan. 19, 2002 genta
01390                         //  メニュー文字列の&を考慮
01391                         TCHAR szMenu2[MAX_PATH * 2];
01392                         dupamp( cmemDes.GetStringT(), szMenu2 );
01393 //  From Here Oct. 4, 2000 JEPRO commented out & modified
01394 //      j >= 10 + 26 の時の考慮を省いた(に近い)が開くファイル数が36個を越えることはまずないので事実上OKでしょう
01395
01396                         //szMenuを作る
01397                         //  Jan. 19, 2002 genta
01398                         //  &の重複処理を追加したため継続判定を若干変更
01399                         auto_sprintf( szMemu, _T("&%tc 【Grep】\"%ts%ts\""),
01400                             ((1 + i) <= 9)?(_T('1') + i):(_T('A') + i - 9),
01401                             szMenu2,
01402                             ( (int)wcslen( pfi->m_szGrepKey ) > cmemDes.GetStringLength() ) ? _T("…"):_T("")
01403                         );
01404                     }else{
01405                         // 2003/01/27 Moca ファイル名の簡易表示
01406                         // pfi->m_szPath → szFileName
01407                         TCHAR szFileName[_MAX_PATH];
01408                         CShareData::getInstance()->GetTransformFileNameFast( pfi->m_szPath, szFileName, MAX_PATH );
01409
01410                         // szFileName → szMenu2
01411                         //  Jan. 19, 2002 genta
01412                         //  メニュー文字列の&を考慮
01413                         TCHAR szMenu2[MAX_PATH * 2];
01414                         dupamp( szFileName, szMenu2 );
01415                         auto_sprintf( szMemu, _T("&%tc %ts %ts"),
01416                             ((1 + i) <= 9)?(_T('1') + i):(_T('A') + i - 9),
01417                             (0 < _tcslen( szMenu2 ))? szMenu2:_T("（無題）"),
01418                             pfi->m_bIsModified ? _T("*"):_T(" ")
01419                         );
01420 //      To Here Oct. 4, 2000
01421                         // gm_pszCodeNameArr_Bracket からコピーするように変更
01422                         if(IsValidCodeTypeExceptSJIS(pfi->m_nCharCode)){
01423                             _tcscat( szMemu, gm_pszCodeNameArr_Bracket[pfi->m_nCharCode] );
01424                         }
01425                     }
01426
01427 //              ::InsertMenu( hMenu, IDM_EXITALL, MF_BYCOMMAND | MF_STRING, IDM_SELWINDOW + i, szMemu );
01428                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_SELWINDOW + i, szMemu, FALSE );
01429                 ++j;
01430             }
01431         }
01432     }
01433     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01434     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALLEDITORS, _T("編集の全終了(&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
01435     if( j == 0 ){
01436         ::EnableMenuItem( hMenu, F_EXITALLEDITORS, MF_BYCOMMAND | MF_GRAYED );  //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)  // 2007.02.13 ryoji →F_EXITALLEDITORS
01437         ::EnableMenuItem( hMenu, F_FILESAVEALL, MF_BYCOMMAND | MF_GRAYED ); // Jan. 24, 2005 genta
01438     }
01439
01440     //  Jun. 9, 2001 genta ソフトウェア名改称
01441     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, _T("サクラエディタの全終了(&X)"), FALSE );  //Dec. 26, 2000 JEPRO F_に変更
01442
01443     po.x = 0;
01444     po.y = 0;
01445     ::GetCursorPos( &po );
01446     po.y -= 4;
01447
01448     rc.left = 0;
01449     rc.right = 0;
01450     rc.top = 0;
01451     rc.bottom = 0;
01452
01453     ::SetForegroundWindow( GetTrayHwnd() );
01454     nId = ::TrackPopupMenu(
01455         hMenu,
01456         TPM_BOTTOMALIGN
01457         | TPM_RIGHTALIGN
01458         | TPM_RETURNCMD
01459         | TPM_LEFTBUTTON
01460         /*| TPM_RIGHTBUTTON*/
01461         ,
01462         po.x,
01463         po.y,
01464         0,
01465         GetTrayHwnd(),
01466         &rc
01467     );
01468 	::PostMessageAny( GetTrayHwnd(), WM_USER + 1, 0, 0 );
01469     ::DestroyMenu( hMenuTop );
01470 //  MYTRACE_A( "nId=%d\n", nId );
01471
01472     m_bUseTrayMenu = false;
01473
01474     return nId;
01475 }
01476
01477 //キーワード：トレイ右クリックメニュー順序
01478 //  Oct. 12, 2000 JEPRO ポップアップメニュー(トレイ左ボタン) を参考にして新たに追加した部分
01479
01481 int CControlTray::CreatePopUpMenu_R( void )
01482 {
01483     int     i;
01484     int     nId;
01485     HMENU   hMenuTop;
01486     HMENU   hMenu;
01487     POINT   po;
01488     RECT    rc;
01489     int     nMenuNum;
01490
01491     //本当はセマフォにしないとだめ
01492     if( m_bUseTrayMenu ) return -1;
01493     m_bUseTrayMenu = true;
01494
01495     m_CMenuDrawer.ResetContents();
01496
01497     hMenuTop = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_TRAYMENU_L ) );
01498     hMenu = ::GetSubMenu( hMenuTop, 0 );
01499     nMenuNum = ::GetMenuItemCount( hMenu )/* - 1*/;
01500     for( i = nMenuNum - 1; i >= 0; i-- ){
01501         ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01502     }
01503
01504 #if 0
01505     2002/04/26 YAZAKI 使えないものは表示しない
01506
01507     /* トレイ右クリックの「オプション」メニュー */
01508     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_TYPE_LIST, _T("タイプ別設定一覧(&L)..."), FALSE );  //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01509     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_OPTION_TYPE, _T("タイプ別設定(&Y)..."), FALSE );  //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01510     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_OPTION, _T("共通設定(&C)..."), FALSE );             //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01511     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_FONT, _T("フォント設定(&F)..."), FALSE );         //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01512     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01513 #endif
01514
01515     /* トレイ右クリックの「ヘルプ」メニュー */
01516     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_CONTENTS , _T("ヘルプ目次(&O)"), FALSE );
01517     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_SEARCH , _T("ヘルプキーワード検索(&S)"), FALSE );    //Nov. 25, 2000 JEPRO 「トピックの」→「キーワード」に変更
01518 //  m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01519 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MENU_ALLFUNC , _T("コマンド一覧(&M)"), FALSE );   //Jan. 12, 2001 JEPRO まずコメントアウト第一号 (T_T)
01520     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01521
01522 #if 0
01523     2002/04/26 YAZAKI 使えないものは表示しない
01524
01525     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_EXTHELP1 , _T("外部ヘルプ１(&E)"), FALSE );           //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01526     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_EXTHTMLHELP , _T("外部HTMLヘルプ(&H)"), FALSE );   //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01527     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01528 #endif
01529
01530 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_ABOUT, _T("バージョン情報(&A)"), FALSE );
01531     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ABOUT, _T("バージョン情報(&A)"), FALSE );    //Dec. 25, 2000 JEPRO F_に変更
01532
01533     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01534 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_EXITALL, _T("テキストエディタの全終了(&X)"), FALSE );
01535 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, _T("テキストエディタの全終了(&X)"), FALSE );   //Dec. 26, 2000 JEPRO F_に変更
01536     //  Jun. 18, 2001 genta ソフトウェア名改称
01537     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, _T("サクラエディタの全終了(&X)"), FALSE );  //De
01538
01539     po.x = 0;
01540     po.y = 0;
01541     ::GetCursorPos( &po );
01542     po.y -= 4;
01543
01544     rc.left = 0;
01545     rc.right = 0;
01546     rc.top = 0;
01547     rc.bottom = 0;
01548
01549     ::SetForegroundWindow( GetTrayHwnd() );
01550     nId = ::TrackPopupMenu(
01551         hMenu,
01552         TPM_BOTTOMALIGN
01553         | TPM_RIGHTALIGN
01554         | TPM_RETURNCMD
01555         | TPM_LEFTBUTTON
01556         /*| TPM_RIGHTBUTTON*/
01557         ,
01558         po.x,
01559         po.y,
01560         0,
01561         GetTrayHwnd(),
01562         &rc
01563     );
01564 	::PostMessageAny( GetTrayHwnd(), WM_USER + 1, 0, 0 );
01565     ::DestroyMenu( hMenuTop );
01566 //  MYTRACE_A( "nId=%d\n", nId );
01567
01568     m_bUseTrayMenu = false;
01569
01570     return nId;
01571 }
01572
01577 void CControlTray::OnDestroy()
01578 {
01579     HWND hwndExitingDlg;
01580
01581     if (GetTrayHwnd() == NULL)
01582         return; // 既に破棄されている
01583
01584     // ホットキーの破棄
01585     ::UnregisterHotKey( GetTrayHwnd(), ID_HOTKEY_TRAYMENU );
01586
01587     // 2006.07.09 ryoji 共有データ保存を CControlProcess::Terminate() から移動
01588     //
01589     // 「タスクトレイに常駐しない」設定でエディタ画面（Normal Process）を立ち上げたまま
01590     // セッション終了するような場合でも共有データ保存が行われなかったり中断されることが
01591     // 無いよう、ここでウィンドウが破棄される前に保存する
01592     //
01593
01594     /* 終了ダイアログを表示する */
01595     if( m_pShareData->m_Common.m_sGeneral.m_bDispExitingDialog ){
01596         /* 終了中ダイアログの表示 */
01597         hwndExitingDlg = ::CreateDialog(
01598             m_hInstance,
01599             MAKEINTRESOURCE( IDD_EXITING ),
01600             GetTrayHwnd()/*::GetDesktopWindow()*/,
01601             (DLGPROC)ExitingDlgProc
01602         );
01603         ::ShowWindow( hwndExitingDlg, SW_SHOW );
01604     }
01605
01606     /* 共有データの保存 */
01607     CShareData::getInstance()->SaveShareData();
01608
01609     /* 終了ダイアログを表示する */
01610     if( m_pShareData->m_Common.m_sGeneral.m_bDispExitingDialog ){
01611         /* 終了中ダイアログの破棄 */
01612         ::DestroyWindow( hwndExitingDlg );
01613     }
01614
01615     if( m_bCreatedTrayIcon ){   /* トレイにアイコンを作った */
01616         TrayMessage( GetTrayHwnd(), NIM_DELETE, 0, NULL, NULL );
01617     }
01618
01619     /* アクセラレータテーブルの削除 */
01620     if( m_pShareData->m_hAccel != NULL ){
01621         ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
01622         m_pShareData->m_hAccel = NULL;
01623     }
01624
01625     m_hWnd = NULL;
01626 }
01627
01632 INT_PTR CALLBACK CControlTray::ExitingDlgProc(
01633     HWND    hwndDlg,    // handle to dialog box
01634     UINT    uMsg,       // message
01635     WPARAM  wParam,     // first message parameter
01636     LPARAM  lParam      // second message parameter
01637 )
01638 {
01639     switch( uMsg ){
01640     case WM_INITDIALOG:
01641         return TRUE;
01642     }
01643     return FALSE;
01644 }
01645 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlTray.h

sakura_core

CControlTray.h

常駐部 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "CMenuDrawer.h"
#include "CDlgGrep.h"
#include "CImageListMgr.h"

CControlTray.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CControlTray
常駐部の管理 [詳細]

説明

常駐部

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2001/06/03 N.Nakatani grep単語単位で検索を実装するときのためにコマンドラインオプションの処理追加

2007/10/23 kobake クラス名、ファイル名変更: CControlTray→CControlTray

CControlTray.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CControlTray.h ソースファイル

sakura_core

CControlTray.h

説明を見る。
00001
00012 /*
00013     Copyright (C) 1998-2001, Norio Nakatani
00014     Copyright (C) 2000, jepro
00015     Copyright (C) 2001, Stonee, aroka, genta
00016     Copyright (C) 2002, MIK, YAZAKI, aroka
00017     Copyright (C) 2003, genta
00018     Copyright (C) 2006, ryoji
00019     Copyright (C) 2007, ryoji
00020
00021     This source code is designed for sakura editor.
00022     Please contact the copyright holder to use this code for other purpose.
00023 */
00024
00025 class CControlTray;
00026
00027 #ifndef _CEDITAPP_H_
00028 #define _CEDITAPP_H_
00029
00030
00031
00032
00033
00034 #include <windows.h>
00035 #include "CShareData.h"
00036 #include "CMenuDrawer.h"
00037 #include "CDlgGrep.h" // 2002/2/10 aroka
00038 #include "CImageListMgr.h" // 2002/2/10 aroka
00039
00041
00047 class SAKURA_CORE_API CControlTray
00048 {
00049 public:
00050     /*
00051     ||  Constructors
00052     */
00053     CControlTray();
00054     ~CControlTray();
00055
00056     /*
00057     || メンバ関数
00058     */
00059     HWND Create( HINSTANCE );   /* 作成 */
00060     bool CreateTrayIcon( HWND );    // 20010412 by aroka
00061     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 */
00062     void MessageLoop( void );   /* メッセージループ */
00063     void OnDestroy( void );     /* WM_DESTROY 処理 */ // 2006.07.09 ryoji
00064     int CreatePopUpMenu_L( void );  /* ポップアップメニュー(トレイ左ボタン) */
00065     int CreatePopUpMenu_R( void );  /* ポップアップメニュー(トレイ右ボタン) */
00066
00067     static bool OpenNewEditor( HINSTANCE, HWND, const TCHAR*, ECodeType, BOOL, bool sync = false, const TCHAR* szCurDir = NULL );       /* 新規編集ウィンドウの追加 ver 0 */
00068     static bool OpenNewEditor2( HINSTANCE, HWND , const FileInfo*, BOOL, bool sync = false );   /* 新規編集ウィンドウの追加 ver 1 */
00069
00070     static BOOL CloseAllEditor( BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup );    /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更  // 2006.12.25, 2007.02.13 ryoji 引数追加
00071     static void TerminateApplication( HWND hWndFrom );  /* サクラエディタの全終了 */ // 2006.12.25 ryoji 引数追加
00072
00073 public:
00074     HWND GetTrayHwnd() const{ return m_hWnd; }
00075
00076     /*
00077     || 実装ヘルパ系
00078     */
00079 protected:
00080     void    DoGrep();   //Stonee, 2001/03/21
00081     BOOL TrayMessage(HWND , DWORD , UINT , HICON , const TCHAR* );
00082     void OnCommand( WORD , WORD  , HWND );
00083     void OnNewEditor( void );
00084
00085     static INT_PTR CALLBACK ExitingDlgProc(     // 2006.07.02 ryoji CControlProcess から移動
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
00093     /*
00094     || メンバ変数
00095     */
00096 private:
00097     CMenuDrawer     m_CMenuDrawer;
00098     bool            m_bUseTrayMenu;         //トレイメニュー表示中
00099     HINSTANCE       m_hInstance;
00100     HWND            m_hWnd;
00101     TCHAR*          m_pszAppName;
00102     BOOL            m_bCreatedTrayIcon;
00103
00104     DLLSHAREDATA*   m_pShareData;
00105     CDlgGrep        m_cDlgGrep;             // Jul. 2, 2001 genta
00106
00107     CImageListMgr   m_hIcons;
00108
00109     UINT            m_uCreateTaskBarMsg;
00110 };
00111
00112
00114 #endif /* _CEDITAPP_H_ */
00115
00116
00117 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert.cpp

sakura_core » convert

CConvert.cpp

#include "stdafx.h"
#include "CConvert.h"
#include "Funccode.h"
#include "CEOL.h"
#include "charcode.h"
#include "CConvert_ToLower.h"
#include "CConvert_ToUpper.h"
#include "CConvert_ToHankaku.h"
#include "CConvert_TabToSpace.h"
#include "CConvert_SpaceToTab.h"
#include "CConvert_ZenkanaToHankana.h"
#include "CConvert_ZeneisuToHaneisu.h"
#include "CConvert_HaneisuToZeneisu.h"
#include "CConvert_HankanaToZenkana.h"
#include "CConvert_HankanaToZenhira.h"
#include "CConvert_ToZenhira.h"
#include "CConvert_ToZenkana.h"
#include "CConvert_Trim.h"

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert.cpp ソースファイル

sakura_core » convert

CConvert.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert.h"
00003 #include "Funccode.h"
00004 #include "CEOL.h"
00005 #include "charcode.h"
00006 #include "CConvert_ToLower.h"
00007 #include "CConvert_ToUpper.h"
00008 #include "CConvert_ToHankaku.h"
00009 #include "CConvert_TabToSpace.h"
00010 #include "CConvert_SpaceToTab.h"
00011 #include "CConvert_ZenkanaToHankana.h"
00012 #include "CConvert_ZeneisuToHaneisu.h"
00013 #include "CConvert_HaneisuToZeneisu.h"
00014 #include "CConvert_HankanaToZenkana.h"
00015 #include "CConvert_HankanaToZenhira.h"
00016 #include "CConvert_ToZenhira.h"
00017 #include "CConvert_ToZenkana.h"
00018 #include "CConvert_Trim.h"
00019
00020 /* 機能種別によるバッファの変換 */
00021 void CConvertMediator::ConvMemory( CNativeW* pCMemory, int nFuncCode, int nTabWidth )
00022 {
00023     switch( nFuncCode ){
00024     //文字種変換、整形
00025     case F_TOLOWER:                 CConvert_ToLower().CallConvert(pCMemory);           break;  // 小文字
00026     case F_TOUPPER:                 CConvert_ToUpper().CallConvert(pCMemory);           break;  // 大文字
00027     case F_TOHANKAKU:               CConvert_ToHankaku().CallConvert(pCMemory);         break;  // 全角→半角
00028     case F_TOHANKATA:               CConvert_ZenkanaToHankana().CallConvert(pCMemory);  break;  // 全角カタカナ→半角カタカナ
00029     case F_TOZENEI:                 CConvert_HaneisuToZeneisu().CallConvert(pCMemory);  break;  // 半角英数→全角英数
00030     case F_TOHANEI:                 CConvert_ZeneisuToHaneisu().CallConvert(pCMemory);  break;  // 全角英数→半角英数
00031     case F_TOZENKAKUKATA:           CConvert_ToZenkana().CallConvert(pCMemory);         break;  // 半角＋全ひら→全角・カタカナ
00032     case F_TOZENKAKUHIRA:           CConvert_ToZenhira().CallConvert(pCMemory);         break;  // 半角＋全カタ→全角・ひらがな
00033     case F_HANKATATOZENKAKUKATA:    CConvert_HankanaToZenkana().CallConvert(pCMemory);  break;  // 半角カタカナ→全角カタカナ
00034     case F_HANKATATOZENKAKUHIRA:    CConvert_HankanaToZenhira().CallConvert(pCMemory);  break;  // 半角カタカナ→全角ひらがな
00035     //文字種変換、整形
00036     case F_TABTOSPACE:              CConvert_TabToSpace(nTabWidth).CallConvert(pCMemory);break; // TAB→空白
00037     case F_SPACETOTAB:              CConvert_SpaceToTab(nTabWidth).CallConvert(pCMemory);break; // 空白→TAB
00038     case F_LTRIM:                   CConvert_Trim(true).CallConvert(pCMemory);          break;  // 2001.12.03 hor
00039     case F_RTRIM:                   CConvert_Trim(false).CallConvert(pCMemory);         break;  // 2001.12.03 hor
00040     }
00041     return;
00042 }
00043
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert.h

sakura_core » convert

CConvert.h

ソースコードを見る。

構成

class | CConvertMediator
class | CConvert

Sakura-Editorに対してSat Nov 17 20:25:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert.h ソースファイル

sakura_core » convert

CConvert.h

説明を見る。
00001 //2007.10.02 kobake CEditViewから分離
00002
00003 #pragma once
00004
00005 class CConvertMediator{
00006 public:
00008     static void ConvMemory( CNativeW* pCMemory, int nFuncCode, int nTabWidth );
00009
00010 protected:
00011     static void Command_TRIM2( CNativeW* pCMemory , BOOL bLeft );
00012 };
00013
00014 class CConvert{
00015 public:
00016     virtual ~CConvert(){}
00017
00018     //インターフェース
00019     void CallConvert( CNativeW* pcData )
00020     {
00021         bool bRet=DoConvert(pcData);
00022         if(!bRet){
00023             ErrorMessage(NULL,_T("変換でエラーが発生しました"));
00024         }
00025     }
00026
00027     //実装
00028     virtual bool DoConvert( CNativeW* pcData )=0;
00029 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Base64Decode.cpp

sakura_core » convert

CConvert_Base64Decode.cpp

#include "stdafx.h"
#include "CConvert_Base64Decode.h"
#include "charcode.h"

CConvert_Base64Decode.cppのインクルード依存関係図

ソースコードを見る。

関数

int | IsBASE64Char (wchar_t cData)
int | IsBASE64Char (char cData)

関数

int IsBASE64Char ( char cData )

CConvert_Base64Decode.cpp の 22 行で定義されています。

参照先 Charcode::BASE64VAL.

int IsBASE64Char ( wchar_t cData )

CConvert_Base64Decode.cpp の 8 行で定義されています。

参照先 Charcode::BASE64VAL.

参照元 CConvert_Base64Decode::BASE64Decode(), と CConvert_Base64Decode::MemBASE64_Decode().

Sakura-Editorに対してSat Nov 17 20:25:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Base64Decode.cpp ソースファイル

sakura_core » convert

CConvert_Base64Decode.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_Base64Decode.h"
00003 #include "charcode.h"
00004
00005 #if 1 //$$$保留
00006
00007 /* 文字がBase64のデータか */
00008 int IsBASE64Char( wchar_t cData )
00009 {
00010     char buf[4]={0};
00011     int n=wctomb(buf,cData);
00012
00013     int nret = -1;
00014     if( n==1 && (unsigned char)buf[0] < 0x80 ){
00015         nret = Charcode::BASE64VAL[cData];
00016         if( nret == 0xff ){
00017             nret = -1;
00018         }
00019     }
00020     return nret;
00021 }
00022 int IsBASE64Char( char cData )
00023 {
00024     int nret = -1;
00025     if( (unsigned char)cData < 0x80 ){
00026         nret = Charcode::BASE64VAL[cData];
00027         if( nret == 0xff ){
00028             nret = -1;
00029         }
00030     }
00031     return nret;
00032 }
00033
00034
00035 /* Base64デコード */
00036 void CConvert_Base64Decode::BASE64Decode( const CNativeW* pcSrc, CMemory* pcDst )
00037 {
00038     //データ取得
00039     int nSrcLen;
00040     const wchar_t*  pszSrc = pcSrc->GetStringPtr(&nSrcLen);
00041
00042     int     nBgn;
00043     int     nPos;
00044     CMemory cmemBuf;
00045
00046     nBgn = 0;
00047     nPos = 0;
00048     while( nBgn < nSrcLen ){
00049         while( nBgn < nSrcLen && 0 > IsBASE64Char( pszSrc[nBgn] ) ){
00050             nBgn++;
00051         }
00052         nPos = nBgn + 1;
00053         while( nPos < nSrcLen && 0 <= IsBASE64Char( pszSrc[nPos] ) ){
00054             nPos++;
00055         }
00056         if( nBgn < nSrcLen && nPos - nBgn > 0 ){
00057             BYTE* pBin = new BYTE[nPos - nBgn];
00058
00059             // Base64デコード
00060             int nBinLen = MemBASE64_Decode( &pszSrc[nBgn], nPos - nBgn, pBin );
00061             cmemBuf.AppendRawData( pBin, nBinLen );
00062             delete [] pBin;
00063         }
00064         nBgn = nPos;
00065     }
00066     pcDst->SetRawData( cmemBuf.GetRawPtr(), cmemBuf.GetRawLength() );
00067     return;
00068 }
00069
00070
00071
00072
00073 // BASE64 => デコード後
00074 // 4文字  => 3文字
00075
00076 // Base64デコード
00077 template <class CHAR_TYPE>
00078 long CConvert_Base64Decode::MemBASE64_Decode( const CHAR_TYPE* pszSrc, long nSrcLen, BYTE* pDst )
00079 {
00080     long            nSrcSize;
00081     long            lData;
00082     long            nDesLen;
00083     long            lDesSize;
00084     int             sMax;
00085
00086     //Srcの有効長の算出 -> nSrcSize
00087     {
00088         int i;
00089         for( i = 0; i < nSrcLen; i++ ){
00090             if( sizeof(CHAR_TYPE)==1 && pszSrc[i]=='=' ){
00091                 break;
00092             }
00093             else if( sizeof(CHAR_TYPE)==2 && pszSrc[i]==L'=' ){
00094                 break;
00095             }
00096         }
00097         nSrcSize = i;
00098     }
00099
00100     //変換先確保 -> pszDes, nDesLen
00101     nDesLen = (nSrcSize / 4) * 3;
00102     nDesLen += ((nSrcSize % 4) * 6) / 8;
00103     BYTE*   pszDes;
00104     pszDes = new BYTE[nDesLen + 1];
00105     memset( pszDes, 0, nDesLen + 1 );
00106
00107     lDesSize = 0;
00108     for( int i = 0; i < nSrcSize; i++ ){
00109         if( i < nSrcSize - (nSrcSize % 4) ){
00110             sMax = 4;
00111         }else{
00112             sMax = (nSrcSize % 4);
00113         }
00114         lData = 0;
00115         for( int j = 0; j < sMax; j++ ){
00116             int k = IsBASE64Char( pszSrc[i + j] );
00117             if( k >= 0 ){
00118                 lData |= (((long)k) << ((4 - j - 1) * 6));
00119             }
00120         }
00121         for( int j = 0; j < (sMax * 6)/ 8 ; j++ ){
00122             pszDes[lDesSize] = (unsigned char)((lData >> (8 * (2 - j))) & 0x0000ff);
00123             lDesSize++;
00124         }
00125         i+= 3;
00126     }
00127     pszDes[lDesSize] = 0;
00128
00129     //バッファコピー
00130     memcpy( pDst, pszDes, lDesSize );
00131
00132     delete [] pszDes;
00133     return lDesSize;
00134 }
00135
00136
00137
00138 //インスタンス化
00139 template long CConvert_Base64Decode::MemBASE64_Decode( const WCHAR* pszSrc, long nSrcLen, BYTE* pDst ); /* Base64デコード */
00140 template long CConvert_Base64Decode::MemBASE64_Decode( const ACHAR* pszSrc, long nSrcLen, BYTE* pDst ); /* Base64デコード */
00141
00142 #endif
00143
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Base64Decode.h

sakura_core » convert

CConvert_Base64Decode.h

#include "CConvert.h"

CConvert_Base64Decode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_Base64Decode

Sakura-Editorに対してSat Nov 17 20:25:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Base64Decode.h ソースファイル

sakura_core » convert

CConvert_Base64Decode.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_Base64Decode : public CConvert{
00006 public:
00007     //CConvertインターフェース
00008     bool DoConvert(CNativeW* pcData)
00009     {
00010         //$$$ 未実装につき、falseを返す
00011         return false;
00012     }
00013
00014 public:
00015     //実装
00016     static void BASE64Decode(const CNativeW* pcSrc, CMemory* pcDst);    // Base64デコード
00017     template <class CHAR_TYPE>
00018     static long MemBASE64_Decode( const CHAR_TYPE* pszSrc, long nSrcLen, BYTE* pDst );  /* Base64デコード */
00019 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HaneisuToZeneisu.cpp

sakura_core » convert

CConvert_HaneisuToZeneisu.cpp

#include "stdafx.h"
#include "CConvert_HaneisuToZeneisu.h"
#include "convert_util.h"

CConvert_HaneisuToZeneisu.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HaneisuToZeneisu.cpp ソースファイル

sakura_core » convert

CConvert_HaneisuToZeneisu.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_HaneisuToZeneisu.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_HaneisuToZeneisu::DoConvert(CNativeW* pcData)
00011 {
00012     //半角英数→全角英数
00013     Convert_HanEisuu_To_ZenEisuu(pcData->GetStringPtr(), pcData->GetStringLength());
00014
00015     return true;
00016 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HaneisuToZeneisu.h

sakura_core » convert

CConvert_HaneisuToZeneisu.h

#include "CConvert.h"

CConvert_HaneisuToZeneisu.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_HaneisuToZeneisu
半角英数→全角英数 [詳細]

Sakura-Editorに対してSat Nov 17 20:25:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HaneisuToZeneisu.h ソースファイル

sakura_core » convert

CConvert_HaneisuToZeneisu.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_HaneisuToZeneisu : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenhira.cpp

sakura_core » convert

CConvert_HankanaToZenhira.cpp

#include "stdafx.h"
#include "CConvert_HankanaToZenhira.h"
#include "convert_util.h"

CConvert_HankanaToZenhira.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenhira.cpp ソースファイル

sakura_core » convert

CConvert_HankanaToZenhira.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_HankanaToZenhira.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_HankanaToZenhira::DoConvert(CNativeW* pcData)
00011 {
00012     //半角カナ→全角カナ
00013     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()+1]; //文字数が減ることはあっても増えることは無いので、これでＯＫ
00014     Convert_HankanaToZenkana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00015
00016     //全角カナ→全角ひらがな
00017     Convert_ZenkanaToZenhira(pBuf, wcslen(pBuf));
00018
00019     //設定
00020     pcData->SetString(pBuf);
00021
00022     //バッファ解放
00023     delete[] pBuf;
00024
00025     return true;
00026 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenhira.h

sakura_core » convert

CConvert_HankanaToZenhira.h

#include "CConvert.h"

CConvert_HankanaToZenhira.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_HankanaToZenhira
半角カナ→全角ひらがな [詳細]

Sakura-Editorに対してSat Nov 17 20:25:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenhira.h ソースファイル

sakura_core » convert

CConvert_HankanaToZenhira.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_HankanaToZenhira : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenkana.cpp

sakura_core » convert

CConvert_HankanaToZenkana.cpp

#include "stdafx.h"
#include "CConvert_HankanaToZenkana.h"
#include "convert_util.h"

CConvert_HankanaToZenkana.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenkana.cpp ソースファイル

sakura_core » convert

CConvert_HankanaToZenkana.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_HankanaToZenkana.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_HankanaToZenkana::DoConvert(CNativeW* pcData)
00011 {
00012     //半角カナ→全角カナ
00013     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()+1]; //文字数が減ることはあっても増えることは無いので、これでＯＫ
00014     Convert_HankanaToZenkana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00015     pcData->SetString(pBuf);
00016     delete[] pBuf;
00017
00018     return true;
00019 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenkana.h

sakura_core » convert

CConvert_HankanaToZenkana.h

#include "CConvert.h"

CConvert_HankanaToZenkana.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_HankanaToZenkana
半角カナ→全角カナ [詳細]

Sakura-Editorに対してSat Nov 17 20:25:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_HankanaToZenkana.h ソースファイル

sakura_core » convert

CConvert_HankanaToZenkana.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_HankanaToZenkana : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_SpaceToTab.cpp

sakura_core » convert

CConvert_SpaceToTab.cpp

#include "stdafx.h"
#include "CConvert_SpaceToTab.h"
#include "charcode.h"
#include "CEOL.h"
#include "util/string_ex2.h"

CConvert_SpaceToTab.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_SpaceToTab.cpp ソースファイル

sakura_core » convert

CConvert_SpaceToTab.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_SpaceToTab.h"
00003 #include "charcode.h"
00004 #include "CEOL.h"
00005 #include "util/string_ex2.h"
00006
00008 bool CConvert_SpaceToTab::DoConvert(CNativeW* pcData)
00009 {
00010     using namespace WCODE;
00011
00012     const wchar_t*  pLine;
00013     int         nLineLen;
00014     wchar_t*    pDes;
00015     int         nBgn;
00016     int         i;
00017     int         nPosDes;
00018     int         nPosX;
00019     CEOL        cEol;
00020
00021     BOOL        bSpace = FALSE; //スペースの処理中かどうか
00022     int     j;
00023     int     nStartPos;
00024
00025     nBgn = 0;
00026     nPosDes = 0;
00027     /* 変換後に必要なバイト数を調べる */
00028     while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00029         if( 0 < nLineLen ){
00030             nPosDes += nLineLen;
00031         }
00032         nPosDes += cEol.GetLen();
00033     }
00034     if( 0 >= nPosDes ){
00035         return false;
00036     }
00037     pDes = new wchar_t[nPosDes + 1];
00038     nBgn = 0;
00039     nPosDes = 0;
00040     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00041     while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00042         if( 0 < nLineLen ){
00043             nPosX = 0;  // 処理中のiに対応する表示桁位置
00044             bSpace = FALSE; //直前がスペースか
00045             nStartPos = 0;  // スペースの先頭
00046             for( i = 0; i < nLineLen; ++i ){
00047                 if( SPACE == pLine[i] || TAB == pLine[i] ){
00048                     if( bSpace == FALSE ){
00049                         nStartPos = nPosX;
00050                     }
00051                     bSpace = TRUE;
00052                     if( SPACE == pLine[i] ){
00053                         nPosX++;
00054                     }else if( TAB == pLine[i] ){
00055                         nPosX += m_nTabWidth - (nPosX % m_nTabWidth);
00056                     }
00057                 }else{
00058                     if( bSpace ){
00059                         if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
00060                             pDes[nPosDes] = SPACE;
00061                             nPosDes++;
00062                         } else{
00063                             for( j = nStartPos / m_nTabWidth; j < (nPosX / m_nTabWidth); j++ ){
00064                                 pDes[nPosDes] = TAB;
00065                                 nPosDes++;
00066                                 nStartPos += m_nTabWidth - ( nStartPos % m_nTabWidth );
00067                             }
00068                             //  2003.08.05 Moca
00069                             //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
00070                             //  バッファをはみ出すのを修正
00071                             for( j = nStartPos; j < nPosX; j++ ){
00072                                 pDes[nPosDes] = SPACE;
00073                                 nPosDes++;
00074                             }
00075                         }
00076                     }
00077                     nPosX++;
00078                     pDes[nPosDes] = pLine[i];
00079                     nPosDes++;
00080                     bSpace = FALSE;
00081                 }
00082             }
00083             //for( ; i < nLineLen; ++i ){
00084             //  pDes[nPosDes] = pLine[i];
00085             //  nPosDes++;
00086             //}
00087             if( bSpace ){
00088                 if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
00089                     pDes[nPosDes] = SPACE;
00090                     nPosDes++;
00091                 } else{
00092                     //for( j = nStartPos - 1; (j + m_nTabWidth) <= nPosX + 1; j+=m_nTabWidth ){
00093                     for( j = nStartPos / m_nTabWidth; j < (nPosX / m_nTabWidth); j++ ){
00094                         pDes[nPosDes] = TAB;
00095                         nPosDes++;
00096                         nStartPos += m_nTabWidth - ( nStartPos % m_nTabWidth );
00097                     }
00098                     //  2003.08.05 Moca
00099                     //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
00100                     //  バッファをはみ出すのを修正
00101                     for( j = nStartPos; j < nPosX; j++ ){
00102                         pDes[nPosDes] = SPACE;
00103                         nPosDes++;
00104                     }
00105                 }
00106             }
00107         }
00108
00109         /* 行末の処理 */
00110         auto_memcpy( &pDes[nPosDes], cEol.GetUnicodeValue(), cEol.GetLen() );
00111         nPosDes += cEol.GetLen();
00112     }
00113     pDes[nPosDes] = L'\0';
00114
00115     pcData->SetString( pDes, nPosDes );
00116     delete [] pDes;
00117     pDes = NULL;
00118     return true;
00119 }
00120
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_SpaceToTab.h

sakura_core » convert

CConvert_SpaceToTab.h

#include "CConvert.h"

CConvert_SpaceToTab.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_SpaceToTab

Sakura-Editorに対してSat Nov 17 20:25:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_SpaceToTab.h ソースファイル

sakura_core » convert

CConvert_SpaceToTab.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_SpaceToTab : public CConvert{
00006 public:
00007     CConvert_SpaceToTab(int nTabWidth)
00008     : m_nTabWidth(nTabWidth)
00009     {
00010     }
00011
00012     bool DoConvert(CNativeW* pcData);
00013
00014 private:
00015     int m_nTabWidth;
00016 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_TabToSpace.cpp

sakura_core » convert

CConvert_TabToSpace.cpp

#include "stdafx.h"
#include "CConvert_TabToSpace.h"
#include "charcode.h"
#include "CEOL.h"
#include "util/string_ex2.h"

CConvert_TabToSpace.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_TabToSpace.cpp ソースファイル

sakura_core » convert

CConvert_TabToSpace.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_TabToSpace.h"
00003 #include "charcode.h"
00004 #include "CEOL.h"
00005 #include "util/string_ex2.h"
00006
00008 bool CConvert_TabToSpace::DoConvert(CNativeW* pcData)
00009 {
00010     using namespace WCODE;
00011
00012     const wchar_t*  pLine;
00013     int         nLineLen;
00014     wchar_t*    pDes;
00015     int         nBgn;
00016     int         i;
00017     int         nPosDes;
00018     int         nPosX;
00019     int         nWork;
00020     CEOL        cEol;
00021     nBgn = 0;
00022     nPosDes = 0;
00023     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00024     while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00025         if( 0 < nLineLen ){
00026             nPosX = 0;
00027             for( i = 0; i < nLineLen; ++i ){
00028                 if( TAB == pLine[i] ){
00029                     nWork = m_nTabWidth - ( nPosX % m_nTabWidth );
00030                     nPosDes += nWork;
00031                     nPosX += nWork;
00032                 }else{
00033                     nPosDes++;
00034                     nPosX++;
00035                 }
00036             }
00037         }
00038         nPosDes += cEol.GetLen();
00039     }
00040     if( 0 >= nPosDes ){
00041         return false;
00042     }
00043     pDes = new wchar_t[nPosDes + 1];
00044     nBgn = 0;
00045     nPosDes = 0;
00046     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00047     while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00048         if( 0 < nLineLen ){
00049             nPosX = 0;
00050             for( i = 0; i < nLineLen; ++i ){
00051                 if( TAB == pLine[i] ){
00052                     nWork = m_nTabWidth - ( nPosX % m_nTabWidth );
00053                     auto_memset( &pDes[nPosDes], L' ', nWork );
00054                     nPosDes += nWork;
00055                     nPosX += nWork;
00056                 }else{
00057                     pDes[nPosDes] = pLine[i];
00058                     nPosDes++;
00059                     nPosX++;
00060                 }
00061             }
00062         }
00063         auto_memcpy( &pDes[nPosDes], cEol.GetUnicodeValue(), cEol.GetLen() );
00064         nPosDes += cEol.GetLen();
00065     }
00066     pDes[nPosDes] = L'\0';
00067
00068     pcData->SetString( pDes, nPosDes );
00069     delete [] pDes;
00070     pDes = NULL;
00071     return true;
00072 }
00073
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_TabToSpace.h

sakura_core » convert

CConvert_TabToSpace.h

#include "CConvert.h"

CConvert_TabToSpace.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_TabToSpace

Sakura-Editorに対してSat Nov 17 20:25:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_TabToSpace.h ソースファイル

sakura_core » convert

CConvert_TabToSpace.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_TabToSpace : public CConvert{
00006 public:
00007     CConvert_TabToSpace(int nTabWidth)
00008     : m_nTabWidth(nTabWidth)
00009     {
00010     }
00011
00012     bool DoConvert(CNativeW* pcData);
00013
00014 private:
00015     int m_nTabWidth;
00016 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToHankaku.cpp

sakura_core » convert

CConvert_ToHankaku.cpp

#include "stdafx.h"
#include "CConvert_ToHankaku.h"
#include "convert_util.h"

CConvert_ToHankaku.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToHankaku.cpp ソースファイル

sakura_core » convert

CConvert_ToHankaku.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ToHankaku.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_ToHankaku::DoConvert(CNativeW* pcData)
00011 {
00012     //全角ひらがな→全角カタカナ
00013     Convert_ZenhiraToZenkana(pcData->GetStringPtr(), pcData->GetStringLength());
00014
00015     //全角英数→半角英数
00016     Convert_ZenEisuu_To_HanEisuu(pcData->GetStringPtr(), pcData->GetStringLength());
00017
00018     //全角カタカナ→半角カタカナ
00019     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()*2+1]; //濁点等の影響で、最大2倍にまで膨れ上がる可能性があるので、2倍のバッファを確保
00020     Convert_ZenKana_To_HanKana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00021     pcData->SetString(pBuf);
00022     delete[] pBuf;
00023
00024     return true;
00025 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToHankaku.h

sakura_core » convert

CConvert_ToHankaku.h

#include "CConvert.h"

CConvert_ToHankaku.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CConvert_ToHankaku
半角にできるものは全部半角に変換 [詳細]

列挙型

enum | EToHankakuMode { TO_KATAKANA = 0x01, TO_HIRAGANA = 0x02, TO_EISU = 0x04 }

列挙型

enum EToHankakuMode

列挙型の値:
TO_KATAKANA | カタカナに影響アリ
TO_HIRAGANA | ひらがなに影響アリ
TO_EISU | 英数字に影響アリ

CConvert_ToHankaku.h の 13 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToHankaku.h ソースファイル

sakura_core » convert

CConvert_ToHankaku.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_ToHankaku : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
00011
00012
00013 enum EToHankakuMode{
00014     TO_KATAKANA = 0x01,
00015     TO_HIRAGANA = 0x02,
00016     TO_EISU     = 0x04,
00017 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToLower.cpp

sakura_core » convert

CConvert_ToLower.cpp

#include "stdafx.h"
#include "CConvert_ToLower.h"

CConvert_ToLower.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToLower.cpp ソースファイル

sakura_core » convert

CConvert_ToLower.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ToLower.h"
00003
00005 bool CConvert_ToLower::DoConvert(CNativeW* pcData)
00006 {
00007     WCHAR* p = pcData->GetStringPtr();
00008     WCHAR* end = p + pcData->GetStringLength();
00009     while(p < end){
00010         WCHAR& c=*p;
00011         // A-Z → a-z
00012         if(c>=0x0041 && c<=0x005A){
00013             c=0x0061+(c-0x0041);
00014         }
00015         // Ａ-Ｚ → ａ-ｚ
00016         else if( c>=0xFF21 && c<=0xFF3A){
00017             c=0xFF41+(c-0xFF21);
00018         }
00019         // ギリシャ文字変換
00020         else if( c>=0x0391 && c<=0x03A9){
00021             c=0x03B1+(c-0x0391);
00022         }
00023         // ロシア文字変換
00024         else if( c>=0x0410 && c<=0x042F){
00025             c=0x0430+(c-0x0410);
00026         }
00027         p++;
00028     }
00029     return true;
00030 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToLower.h

sakura_core » convert

CConvert_ToLower.h

#include "CConvert.h"

CConvert_ToLower.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ToLower

Sakura-Editorに対してSat Nov 17 20:25:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToLower.h ソースファイル

sakura_core » convert

CConvert_ToLower.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_ToLower : public CConvert{
00006 public:
00007     bool DoConvert(CNativeW* pcData);
00008 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToUpper.cpp

sakura_core » convert

CConvert_ToUpper.cpp

#include "stdafx.h"
#include "CConvert_ToUpper.h"

CConvert_ToUpper.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToUpper.cpp ソースファイル

sakura_core » convert

CConvert_ToUpper.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ToUpper.h"
00003
00004 // 大文字へ変換
00005 bool CConvert_ToUpper::DoConvert(CNativeW* pcData)
00006 {
00007     WCHAR* p = pcData->GetStringPtr();
00008     WCHAR* end = p + pcData->GetStringLength();
00009     while(p < end){
00010         WCHAR& c=*p;
00011         // a-z → A-Z
00012         if(c>=0x0061 && c<=0x007A){
00013             c=0x0041+(c-0x0061);
00014         }
00015         // ａ-ｚ → Ａ-Ｚ
00016         else if( c>=0xFF41 && c<=0xFF5A){
00017             c=0xFF21+(c-0xFF41);
00018         }
00019         // ギリシャ文字変換
00020         else if( c>=0x03B1 && c<=0x03C9){
00021             c=0x0391+(c-0x03B1);
00022         }
00023         // ロシア文字変換
00024         else if( c>=0x0430 && c<=0x044F){
00025             c=0x0410+(c-0x0430);
00026         }
00027
00028         p++;
00029     }
00030     return true;
00031 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToUpper.h

sakura_core » convert

CConvert_ToUpper.h

#include "CConvert.h"

CConvert_ToUpper.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ToUpper

Sakura-Editorに対してSat Nov 17 20:25:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToUpper.h ソースファイル

sakura_core » convert

CConvert_ToUpper.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_ToUpper : public CConvert{
00006 public:
00007     bool DoConvert(CNativeW* pcData);
00008 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenhira.cpp

sakura_core » convert

CConvert_ToZenhira.cpp

#include "stdafx.h"
#include "CConvert_ToZenhira.h"
#include "convert_util.h"

CConvert_ToZenhira.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenhira.cpp ソースファイル

sakura_core » convert

CConvert_ToZenhira.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ToZenhira.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_ToZenhira::DoConvert(CNativeW* pcData)
00011 {
00012     //半カナ→全角カナ
00013     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()+1]; //文字数が減ることはあっても増えることは無いので、これでＯＫ
00014     Convert_HankanaToZenkana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00015
00016     //全カナ→全角ひらがな
00017     Convert_ZenkanaToZenhira(pBuf, wcslen(pBuf));
00018
00019     //設定
00020     pcData->SetString(pBuf);
00021
00022     //バッファ解放
00023     delete[] pBuf;
00024
00025     return true;
00026 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenhira.h

sakura_core » convert

CConvert_ToZenhira.h

#include "CConvert.h"

CConvert_ToZenhira.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ToZenhira
できる限り全角ひらがなにする [詳細]

Sakura-Editorに対してSat Nov 17 20:25:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenhira.h ソースファイル

sakura_core » convert

CConvert_ToZenhira.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_ToZenhira : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenkana.cpp

sakura_core » convert

CConvert_ToZenkana.cpp

#include "stdafx.h"
#include "CConvert_ToZenkana.h"
#include "convert_util.h"

CConvert_ToZenkana.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenkana.cpp ソースファイル

sakura_core » convert

CConvert_ToZenkana.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ToZenkana.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_ToZenkana::DoConvert(CNativeW* pcData)
00011 {
00012     //半角カナ→全角カナ
00013     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()+1]; //文字数が減ることはあっても増えることは無いので、これでＯＫ
00014     Convert_HankanaToZenkana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00015
00016     //全角ひら→全角カナ
00017     Convert_ZenhiraToZenkana(pBuf, wcslen(pBuf));
00018
00019     //設定
00020     pcData->SetString(pBuf);
00021
00022     //バッファ解放
00023     delete[] pBuf;
00024
00025     return true;
00026 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenkana.h

sakura_core » convert

CConvert_ToZenkana.h

#include "CConvert.h"

CConvert_ToZenkana.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ToZenkana
できる限り全角カタカナにする [詳細]

Sakura-Editorに対してSat Nov 17 20:25:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ToZenkana.h ソースファイル

sakura_core » convert

CConvert_ToZenkana.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_ToZenkana : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Trim.cpp

sakura_core » convert

CConvert_Trim.cpp

#include "stdafx.h"
#include "CConvert_Trim.h"
#include "convert_util.h"
#include "CEOL.h"
#include "charcode.h"
#include "util/string_ex2.h"

CConvert_Trim.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Trim.cpp ソースファイル

sakura_core » convert

CConvert_Trim.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_Trim.h"
00003 #include "convert_util.h"
00004 #include "CEOL.h"
00005 #include "charcode.h"
00006 #include "util/string_ex2.h"
00007
00008 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00009 //                     インターフェース                        //
00010 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00011
00020 bool CConvert_Trim::DoConvert(CNativeW* pcData)
00021 {
00022     const wchar_t*  pLine;
00023     int         nLineLen;
00024     wchar_t*    pDes;
00025     int         nBgn;
00026     int         i,j;
00027     int         nPosDes;
00028     CEOL        cEol;
00029     int         nCharChars;
00030
00031     nBgn = 0;
00032     nPosDes = 0;
00033     /* 変換後に必要なバイト数を調べる */
00034     while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
00035         if( 0 < nLineLen ){
00036             nPosDes += nLineLen;
00037         }
00038         nPosDes += cEol.GetLen();
00039     }
00040     if( 0 >= nPosDes ){
00041         return true;
00042     }
00043     pDes = new wchar_t[nPosDes + 1];
00044     nBgn = 0;
00045     nPosDes = 0;
00046     // LTRIM
00047     if( m_bLeft ){
00048         while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
00049             if( 0 < nLineLen ){
00050                 for( i = 0; i <= nLineLen; ++i ){
00051                     if( WCODE::isBlank(pLine[i]) ){
00052                         continue;
00053                     }else{
00054                         break;
00055                     }
00056                 }
00057                 if(nLineLen-i>0){
00058                     wmemcpy( &pDes[nPosDes], &pLine[i], nLineLen );
00059                     nPosDes+=nLineLen-i;
00060                 }
00061             }
00062             wmemcpy( &pDes[nPosDes], cEol.GetUnicodeValue(), cEol.GetLen() );
00063             nPosDes += cEol.GetLen();
00064         }
00065     }
00066     // RTRIM
00067     else{
00068         while( NULL != ( pLine = GetNextLineW( pcData->GetStringPtr(), pcData->GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
00069             if( 0 < nLineLen ){
00070                 // 2005.10.11 ryoji 右から遡るのではなく左から探すように修正（"ａ@" の右２バイトが全角空白と判定される問題の対処）
00071                 i = j = 0;
00072                 while( i < nLineLen ){
00073                     nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00074                     if( 1 == nCharChars && WCODE::isBlank(pLine[i]) ){
00075                         j = i + nCharChars;
00076                     }
00077                     i += nCharChars;
00078                 }
00079                 if(j>0){
00080                     wmemcpy( &pDes[nPosDes], &pLine[0], j );
00081                     nPosDes+=j;
00082                 }
00083             }
00084             wmemcpy( &pDes[nPosDes], cEol.GetUnicodeValue(), cEol.GetLen() );
00085             nPosDes += cEol.GetLen();
00086         }
00087     }
00088     pDes[nPosDes] = L'\0';
00089
00090     pcData->SetString( pDes, nPosDes );
00091     delete [] pDes;
00092     pDes = NULL;
00093     return true;
00094 }
00095
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Trim.h

sakura_core » convert

CConvert_Trim.h

#include "CConvert.h"

CConvert_Trim.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_Trim

Sakura-Editorに対してSat Nov 17 20:25:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_Trim.h ソースファイル

sakura_core » convert

CConvert_Trim.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00006 class CConvert_Trim : public CConvert{
00007 public:
00008     CConvert_Trim(bool bLeft) : m_bLeft(bLeft) { }
00009
00010 public:
00011     bool DoConvert(CNativeW* pcData);
00012
00013 private:
00014     bool m_bLeft;
00015 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_UuDecode.cpp

sakura_core » convert

CConvert_UuDecode.cpp

#include "stdafx.h"
#include "CConvert_UuDecode.h"
#include "charcode.h"

CConvert_UuDecode.cppのインクルード依存関係図

ソースコードを見る。

関数

uchar_t UUDECODE_CHAR (wchar_t c)

関数

uchar_t UUDECODE_CHAR ( wchar_t c ) [inline]

CConvert_UuDecode.cpp の 5 行で定義されています。

参照元 CConvert_UuDecode::UUDECODE().

Sakura-Editorに対してSat Nov 17 20:25:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_UuDecode.cpp ソースファイル

sakura_core » convert

CConvert_UuDecode.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_UuDecode.h"
00003 #include "charcode.h"
00004
00005 inline uchar_t UUDECODE_CHAR( wchar_t c )
00006 {
00007     char buf[4]={0};
00008     int ret=wctomb(buf,c);
00009     if(ret<=0)return 0;
00010     return static_cast<uchar_t>((buf[0] - 0x20) & 0x3f);
00011 }
00012
00013
00014 /* Uudecode (デコード）*/
00015 void CConvert_UuDecode::UUDECODE(
00016     const CNativeW& pcSrc,
00017     CMemory*            pcDst,
00018     TCHAR*              pszFileName
00019 )
00020 {
00021     using namespace WCODE;
00022
00023     //元データ
00024     int             nSrcLen;
00025     const wchar_t*  pszSrc = pcSrc.GetStringPtr(&nSrcLen);
00026
00027     CMemory         cmemBuf;
00028     BOOL            bBEGIN;
00029     unsigned char   uchDecode[64];
00030     bBEGIN = FALSE;
00031
00032     int nBgn = 0;
00033     while( nBgn < nSrcLen ){
00034         int nPos = nBgn;
00035         while( nPos < nSrcLen && pszSrc[nPos] != CR && pszSrc[nPos] != LF ){
00036             nPos++;
00037         }
00038         if( nBgn < nSrcLen && nPos - nBgn > 0 ){
00039             int         nBufLen = nPos - nBgn;
00040             wchar_t*    pBuf = new wchar_t[ nBufLen + 1];
00041             memset( pBuf, 0, nBufLen + 1 );
00042             memcpy( pBuf, &pszSrc[nBgn], nBufLen );
00043             if( !bBEGIN ){
00044                 if( 0 == auto_memcmp( pBuf, L"begin ", 6 ) ){
00045                     bBEGIN = TRUE;
00046                     char*   pTok;
00047                     /* 最初のトークンを取得します。*/
00048                     pTok = strtok( (char*)pBuf, " " );
00049                     /* 次のトークンを取得します。*/
00050                     pTok = strtok( NULL, " " );
00051                     /* 更に次のトークンを取得します。*/
00052                     pTok = strtok( NULL, "\0" );
00053                     if( NULL != pszFileName ){
00054                         _mbstotcs( pszFileName, pTok, _MAX_PATH );
00055                     }
00056                 }
00057             }
00058             else{
00059                 if( 0 == auto_memcmp( pBuf, L"end", 3 ) ){
00060                     break;
00061                 }
00062                 else{
00063                     int     nBytes;
00064                     nBytes = UUDECODE_CHAR( pBuf[0] );
00065                     if( 0 == nBytes ){
00066                         break;
00067                     }
00068                     int     iByteIndex = 0;
00069                     int     iCharIndex = 1;
00070                     while ( iByteIndex < nBytes ) {
00071                         // Note that nBytes may not be a multiple of 3, but the
00072                         // number of characters on the line should be a multiple of 4.
00073                         // If the number of encoded bytes is not a multiple of 3 then
00074                         // extra pad characters should have been added to the text
00075                         // by the encoder to make the character count a multiple of 4.
00076 //                      if( pBuf[iCharIndex] == '\0' ||
00077 //                          pBuf[iCharIndex + 1] == '\0' ||
00078 //                          pBuf[iCharIndex + 2] == '\0' ||
00079 //                          pBuf[iCharIndex + 3] == '\0') {
00080 //                          //break;
00081 //                      }
00082                         // Decode the line in 3-byte (=4-character) jumps.
00083                         if( iByteIndex < nBytes ){
00084                             uchDecode[iByteIndex] =
00085                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex]) << 2) |
00086                                 (UUDECODE_CHAR(pBuf[iCharIndex + 1]) >> 4));
00087                             iByteIndex++;
00088                         }
00089                         if( iByteIndex < nBytes ){
00090                             uchDecode[iByteIndex] =
00091                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex + 1]) << 4) |
00092                                 (UUDECODE_CHAR(pBuf[iCharIndex + 2]) >> 2));
00093                             iByteIndex++;
00094                         }
00095                         if( iByteIndex < nBytes ){
00096                             uchDecode[iByteIndex] =
00097                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex + 2]) << 6) |
00098                                 UUDECODE_CHAR(pBuf[iCharIndex + 3]));
00099                             iByteIndex++;
00100                         }
00101                         iCharIndex += 4;
00102                     }
00103                     cmemBuf.AppendRawData( uchDecode, iByteIndex );
00104                 }
00105             }
00106             delete [] pBuf;
00107         }
00108         nBgn = nPos;
00109         while( nBgn < nSrcLen && ( pszSrc[nBgn] == CR || pszSrc[nBgn] == LF ) ){
00110             nBgn++;
00111         }
00112     }
00113     pcDst->SetRawData( cmemBuf.GetRawPtr(), cmemBuf.GetRawLength() );
00114     return;
00115 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_UuDecode.h

sakura_core » convert

CConvert_UuDecode.h

#include "CConvert.h"

CConvert_UuDecode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_UuDecode

Sakura-Editorに対してSat Nov 17 20:25:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_UuDecode.h ソースファイル

sakura_core » convert

CConvert_UuDecode.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005 class CConvert_UuDecode : public CConvert{
00006 public:
00007     bool DoConvert(CNativeW* pcData);
00008
00009
00010     // uudecode(デコード)
00011     static void UUDECODE(
00012         const CNativeW& pcSrc,
00013         CMemory*            pcDst,
00014         TCHAR*              pszFileName
00015     );
00016 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZeneisuToHaneisu.cpp

sakura_core » convert

CConvert_ZeneisuToHaneisu.cpp

#include "stdafx.h"
#include "CConvert_ZeneisuToHaneisu.h"
#include "convert_util.h"

CConvert_ZeneisuToHaneisu.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZeneisuToHaneisu.cpp ソースファイル

sakura_core » convert

CConvert_ZeneisuToHaneisu.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ZeneisuToHaneisu.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_ZeneisuToHaneisu::DoConvert(CNativeW* pcData)
00011 {
00012     //全角英数→半角英数
00013     Convert_ZenEisuu_To_HanEisuu(pcData->GetStringPtr(), pcData->GetStringLength());
00014
00015     return true;
00016 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZeneisuToHaneisu.h

sakura_core » convert

CConvert_ZeneisuToHaneisu.h

#include "CConvert.h"

CConvert_ZeneisuToHaneisu.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ZeneisuToHaneisu
全角英数→半角英数 [詳細]

Sakura-Editorに対してSat Nov 17 20:25:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZeneisuToHaneisu.h ソースファイル

sakura_core » convert

CConvert_ZeneisuToHaneisu.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_ZeneisuToHaneisu : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZenkanaToHankana.cpp

sakura_core » convert

CConvert_ZenkanaToHankana.cpp

#include "stdafx.h"
#include "CConvert_ZenkanaToHankana.h"
#include "convert_util.h"

CConvert_ZenkanaToHankana.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZenkanaToHankana.cpp ソースファイル

sakura_core » convert

CConvert_ZenkanaToHankana.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CConvert_ZenkanaToHankana.h"
00003 #include "convert_util.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                     インターフェース                        //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00010 bool CConvert_ZenkanaToHankana::DoConvert(CNativeW* pcData)
00011 {
00012     //全角カタカナ→半角カタカナ
00013     wchar_t* pBuf = new wchar_t[pcData->GetStringLength()*2+1]; //濁点等の影響で、最大2倍にまで膨れ上がる可能性があるので、2倍のバッファを確保
00014     Convert_ZenKana_To_HanKana(pcData->GetStringPtr(), pcData->GetStringLength(), pBuf);
00015     pcData->SetString(pBuf);
00016     delete[] pBuf;
00017
00018     return true;
00019 }
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZenkanaToHankana.h

sakura_core » convert

CConvert_ZenkanaToHankana.h

#include "CConvert.h"

CConvert_ZenkanaToHankana.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CConvert_ZenkanaToHankana
全角カナ→半角カナ [詳細]

Sakura-Editorに対してSat Nov 17 20:25:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CConvert_ZenkanaToHankana.h ソースファイル

sakura_core » convert

CConvert_ZenkanaToHankana.h

説明を見る。
00001 #pragma once
00002
00003 #include "CConvert.h"
00004
00005
00007 class CConvert_ZenkanaToHankana : public CConvert{
00008 public:
00009     bool DoConvert(CNativeW* pcData);
00010 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDataProfile.cpp

sakura_core

CDataProfile.cpp

#include "stdafx.h"
#include "CDataProfile.h"

CDataProfile.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDataProfile.cpp ソースファイル

sakura_core

CDataProfile.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CDataProfile.h"
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDataProfile.h

sakura_core

CDataProfile.h

#include "StaticType.h"
#include "CProfile.h"

CDataProfile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | StringBufferW
struct | StringBufferA
class | CDataProfile
各種データ変換付きCProfile [詳細]

マクロ定義

#define | MakeStringBufferW(S) StringBufferW(S,_countof(S))
#define | MakeStringBufferA(S) StringBufferA(S,_countof(S))
#define | MakeStringBufferT(S) StringBufferT(S,_countof(S))
#define | MakeStringBufferW0(S) StringBufferW(S,0)
#define | MakeStringBufferT0(S) StringBufferT(S,0)

型定義

typedef StringBufferA | StringBufferT

マクロ定義

#define MakeStringBufferA ( S ) StringBufferA(S,_countof(S))

CDataProfile.h の 41 行で定義されています。

#define MakeStringBufferT ( S ) StringBufferT(S,_countof(S))

CDataProfile.h の 42 行で定義されています。

参照元 CShareData::ShareData_IO_Common(), CShareData::ShareData_IO_Font(), CShareData::ShareData_IO_Macro(), CShareData::ShareData_IO_Mru(), CShareData::ShareData_IO_Nickname(), CShareData::ShareData_IO_Other(), CShareData::ShareData_IO_Print(), と CShareData::ShareData_IO_Types().

#define MakeStringBufferT0 ( S ) StringBufferT(S,0)

CDataProfile.h の 44 行で定義されています。

#define MakeStringBufferW ( S ) StringBufferW(S,_countof(S))

CDataProfile.h の 40 行で定義されています。

参照元 CShareData::IO_ColorSet(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), CShareData::ShareData_IO_Common(), CShareData::ShareData_IO_CustMenu(), CShareData::ShareData_IO_Font(), CShareData::ShareData_IO_KeyBind(), CShareData::ShareData_IO_KeyWords(), CShareData::ShareData_IO_Mru(), CShareData::ShareData_IO_Print(), と CShareData::ShareData_IO_Types().

#define MakeStringBufferW0 ( S ) StringBufferW(S,0)

CDataProfile.h の 43 行で定義されています。

参照元 CShareData::ShareData_IO_Types().

型定義

typedef StringBufferA StringBufferT

CDataProfile.h の 36 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDataProfile.h ソースファイル

sakura_core

CDataProfile.h

説明を見る。
00001 #pragma once
00002
00003 #include "StaticType.h"
00004 #include "CProfile.h"
00005
00006 //文字列バッファの型
00007 struct StringBufferW{
00008     WCHAR*    pData;
00009     const int nDataCount;
00010
00011     StringBufferW() : pData(L""), nDataCount(0) { }
00012     StringBufferW(WCHAR* _pData, int _nDataCount) : pData(_pData), nDataCount(_nDataCount) { }
00013
00014     StringBufferW& operator = (const StringBufferW& rhs)
00015     {
00016         auto_strcpy_s(pData,nDataCount,rhs.pData);
00017         return *this;
00018     }
00019 };
00020 struct StringBufferA{
00021     ACHAR* pData;
00022     int    nDataCount;
00023
00024     StringBufferA() : pData(""), nDataCount(0) { }
00025     StringBufferA(ACHAR* _pData, int _nDataCount) : pData(_pData), nDataCount(_nDataCount) { }
00026
00027     StringBufferA& operator = (const StringBufferA& rhs)
00028     {
00029         auto_strcpy_s(pData,nDataCount,rhs.pData);
00030         return *this;
00031     }
00032 };
00033 #ifdef _UNICODE
00034     typedef StringBufferW StringBufferT;
00035 #else
00036     typedef StringBufferA StringBufferT;
00037 #endif
00038
00039 //文字列バッファ型インスタンスの生成マクロ
00040 #define MakeStringBufferW(S) StringBufferW(S,_countof(S))
00041 #define MakeStringBufferA(S) StringBufferA(S,_countof(S))
00042 #define MakeStringBufferT(S) StringBufferT(S,_countof(S))
00043 #define MakeStringBufferW0(S) StringBufferW(S,0)
00044 #define MakeStringBufferT0(S) StringBufferT(S,0)
00045
00046
00047 //2007.09.24 kobake データ変換部を子クラスに分離
00049 class CDataProfile : public CProfile{
00050 private:
00051     //専用型
00052     typedef std::wstring wstring;
00053     typedef std::tstring tstring;
00054
00055 protected:
00056     static const wchar_t* _work_itow(int n)
00057     {
00058         static wchar_t buf[32];
00059         _itow(n,buf,10);
00060         return buf;
00061     }
00062     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00063     //                       データ変換部                          //
00064     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00065 protected:
00066     //bool
00067     void profile_to_value(const wstring& profile, bool* value)
00068     {
00069         if(profile != L"0")*value=true;
00070         else *value=false;
00071     }
00072     void value_to_profile(const bool& value, wstring* profile)
00073     {
00074         *profile = _work_itow(value?1:0);
00075     }
00076     //int
00077     void profile_to_value(const wstring& profile, int* value)
00078     {
00079         *value = _wtoi(profile.c_str());
00080     }
00081     void value_to_profile(const int& value, wstring* profile)
00082     {
00083         *profile = _work_itow(value);
00084     }
00085 #ifdef USE_STRICT_INT
00086     //CLayoutInt
00087     void profile_to_value(const wstring& profile, CLayoutInt* value){ *value = (CLayoutInt)_wtoi(profile.c_str()); }
00088     void value_to_profile(const CLayoutInt& value, wstring* profile){ *profile = _work_itow((Int)value);    }
00089     //CLogicInt
00090     void profile_to_value(const wstring& profile, CLogicInt* value){ *value = (CLogicInt)_wtoi(profile.c_str()); }
00091     void value_to_profile(const CLogicInt& value, wstring* profile){ *profile = _work_itow((Int)value);    }
00092 #endif
00093     //WORD
00094     void profile_to_value(const wstring& profile, WORD* value)
00095     {
00096         *value = _wtoi(profile.c_str());
00097     }
00098     void value_to_profile(const WORD& value, wstring* profile)
00099     {
00100         *profile = _work_itow(value);
00101     }
00102     //ACHAR
00103     void profile_to_value(const wstring& profile, ACHAR* value)
00104     {
00105         if(profile.length()>0){
00106             ACHAR buf[2]={0};
00107             int ret=wctomb(buf,profile[0]);
00108             assert_warning(ret==1);
00109             *value = buf[0];
00110         }
00111         else{
00112             *value = '\0';
00113         }
00114     }
00115     void value_to_profile(const ACHAR& value, wstring* profile)
00116     {
00117         WCHAR buf[2]={0};
00118         mbtowc(buf,&value,1);
00119         profile->assign(1,buf[0]);
00120     }
00121     //WCHAR
00122     void profile_to_value(const wstring& profile, WCHAR* value)
00123     {
00124         *value = profile[0];
00125     }
00126     void value_to_profile(const WCHAR& value, wstring* profile)
00127     {
00128         profile->assign(1,value);
00129     }
00130     //StringBufferW
00131     void profile_to_value(const wstring& profile, StringBufferW* value)
00132     {
00133         wcscpy_s(value->pData,value->nDataCount,profile.c_str());
00134     }
00135     void value_to_profile(const StringBufferW& value, wstring* profile)
00136     {
00137         *profile = value.pData;
00138     }
00139     //StringBufferA
00140     void profile_to_value(const wstring& profile, StringBufferA* value)
00141     {
00142         strcpy_s(value->pData,value->nDataCount,to_achar(profile.c_str()));
00143     }
00144     void value_to_profile(const StringBufferA& value, wstring* profile)
00145     {
00146         *profile = to_wchar(value.pData);
00147     }
00148     //StaticString<WCHAR,N>
00149     template <int N>
00150     void profile_to_value(const wstring& profile, StaticString<WCHAR, N>* value)
00151     {
00152         wcscpy_s(value->GetBufferPointer(),value->GetBufferCount(),profile.c_str());
00153     }
00154     template <int N>
00155     void value_to_profile(const StaticString<WCHAR, N>& value, wstring* profile)
00156     {
00157         *profile = value.GetBufferPointer();
00158     }
00159     //StaticString<ACHAR,N>
00160     template <int N>
00161     void profile_to_value(const wstring& profile, StaticString<ACHAR, N>* value)
00162     {
00163         strcpy_s(value->GetBufferPointer(),value->GetBufferCount(),to_achar(profile.c_str()));
00164     }
00165     template <int N>
00166     void value_to_profile(const StaticString<ACHAR, N>& value, wstring* profile)
00167     {
00168         *profile = to_wchar(value.GetBufferPointer());
00169     }
00170
00171
00172
00173
00174
00175     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00176     //                         入出力部                            //
00177     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00178 public:
00179     template <class T> //T=={bool, int, WORD, wchar_t, char, wstring}
00180     bool IOProfileData( const WCHAR* pszSectionName, const WCHAR* pszEntryKey, T& tEntryValue, const T& tErrorValue=T() )
00181     {
00182         //読み込み
00183         if(m_bRead){
00184             //文字列読み込み
00185             wstring buf;
00186             bool ret=GetProfileDataImp( pszSectionName, pszEntryKey, buf);
00187             if(ret){
00188                 //Tに変換
00189                 profile_to_value(buf, &tEntryValue);
00190             }
00191             else{
00192                 //エラー値を代入
00193                 tEntryValue = tErrorValue;
00194             }
00195             return ret;
00196         }
00197         //書き込み
00198         else{
00199             //文字列に変換
00200             wstring buf;
00201             value_to_profile(tEntryValue, &buf);
00202             //文字列書き込み
00203             return SetProfileDataImp( pszSectionName, pszEntryKey, buf);
00204         }
00205     }
00206
00207     //2007.08.14 kobake 追加
00209     template <class T>
00210     bool IOProfileData_WrapInt( const WCHAR* pszSectionName, const WCHAR* pszEntryKey, T& nEntryValue)
00211     {
00212         int n=nEntryValue;
00213         bool ret=this->IOProfileData( pszSectionName, pszEntryKey, n );
00214         nEntryValue=(T)n;
00215         return ret;
00216     }
00217 };
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDialog.cpp

sakura_core

CDialog.cpp

Dialog Boxの基底クラス [詳細]

#include "stdafx.h"
#include "CDialog.h"
#include "debug.h"
#include "CEditApp.h"
#include "util/os.h"
#include "util/shell.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 の 26 行で定義されています。

参照先 CDialog::DispatchEvent(), DWLP_USER, FALSE, GetWindowLongPtr, と NULL.

参照元 CDialog::DoModal(), と CDialog::DoModeless().

変数

const DWORD p_helpids[]

初期値:

 {
    0, 0
}

CDialog.cpp の 429 行で定義されています。

参照元 CDlgInput1::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), 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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), 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(), と OFNHookProc().

Sakura-Editorに対してSat Nov 17 20:25:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDialog.cpp ソースファイル

sakura_core

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 "debug.h"
00021 #include "CEditApp.h"
00022 #include "util/os.h"
00023 #include "util/shell.h"
00024
00025 /* ダイアログプロシージャ */
00026 INT_PTR CALLBACK MyDialogProc(
00027     HWND hwndDlg,   // handle to dialog box
00028     UINT uMsg,      // message
00029     WPARAM wParam,  // first message parameter
00030     LPARAM lParam   // second message parameter
00031 )
00032 {
00033     CDialog* pCDialog;
00034     switch( uMsg ){
00035     case WM_INITDIALOG:
00036         pCDialog = ( CDialog* )lParam;
00037         if( NULL != pCDialog ){
00038             return pCDialog->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00039         }else{
00040             return FALSE;
00041         }
00042     default:
00043         // Modified by KEITA for WIN64 2003.9.6
00044         pCDialog = ( CDialog* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00045         if( NULL != pCDialog ){
00046             return pCDialog->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00047         }else{
00048             return FALSE;
00049         }
00050     }
00051 }
00052
00053
00058 CDialog::CDialog()
00059 {
00060 //  MYTRACE_A( "CDialog::CDialog()\n" );
00061     /* 共有データ構造体のアドレスを返す */
00062     m_pShareData = CShareData::getInstance()->GetShareData();
00063
00064     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00065     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00066     m_hWnd  = NULL;         /* このダイアログのハンドル */
00067     m_hwndSizeBox = NULL;
00068     m_lParam = NULL;
00069     m_nShowCmd = SW_SHOW;
00070     m_xPos = -1;
00071     m_yPos = -1;
00072     m_nWidth = -1;
00073     m_nHeight = -1;
00074
00075     /* ヘルプファイルのフルパスを返す */
00076     m_szHelpFile = CEditApp::Instance()->GetHelpFilePath();
00077
00078     return;
00079
00080 }
00081 CDialog::~CDialog()
00082 {
00083 //  MYTRACE_A( "CDialog::~CDialog()\n" );
00084     CloseDialog( 0 );
00085     return;
00086 }
00087
00089
00093 INT_PTR CDialog::DoModal( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete, LPARAM lParam )
00094 {
00095     m_bInited = FALSE;
00096     m_bModal = TRUE;
00097     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00098     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00099     m_lParam = lParam;
00100     return ::DialogBoxParam(
00101         m_hInstance,
00102         MAKEINTRESOURCE( nDlgTemplete ),
00103         m_hwndParent,
00104         (DLGPROC)MyDialogProc,
00105         (LPARAM)this
00106     );
00107 }
00108
00110
00114 HWND CDialog::DoModeless( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete, LPARAM lParam, int nCmdShow )
00115 {
00116     m_bInited = FALSE;
00117     m_bModal = FALSE;
00118     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00119     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00120     m_lParam = lParam;
00121     m_hWnd = ::CreateDialogParam(
00122         m_hInstance,
00123         MAKEINTRESOURCE( nDlgTemplete ),
00124         m_hwndParent,
00125         (DLGPROC)MyDialogProc,
00126         (LPARAM)this
00127     );
00128     if( NULL != m_hWnd ){
00129         ::ShowWindow( m_hWnd, nCmdShow );
00130     }
00131     return m_hWnd;
00132 }
00133
00134 void CDialog::CloseDialog( int nModalRetVal )
00135 {
00136     if( NULL != m_hWnd ){
00137         if( m_bModal ){
00138             ::EndDialog( m_hWnd, nModalRetVal );
00139         }else{
00140             ::DestroyWindow( m_hWnd );
00141         }
00142         m_hWnd = NULL;
00143     }
00144     return;
00145 }
00146
00147
00148
00149 BOOL CDialog::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00150 {
00151     m_hWnd = hwndDlg;
00152     // Modified by KEITA for WIN64 2003.9.6
00153 	::SetWindowLongPtr( m_hWnd, DWLP_USER, lParam );
00154     /* ダイアログデータの設定 */
00155     SetData();
00156
00157 #if 0
00158     /* ダイアログのサイズ、位置の再現 */
00159     if( -1 != m_xPos && -1 != m_yPos ){
00160         ::SetWindowPos( m_hWnd, NULL, m_xPos, m_yPos, 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00161 #ifdef _DEBUG
00162         MYTRACE_A( "CDialog::OnInitDialog() m_xPos=%d m_yPos=%d\n", m_xPos, m_yPos );
00163 #endif
00164     }
00165     if( -1 != m_nWidth && -1 != m_nHeight ){
00166         ::SetWindowPos( m_hWnd, NULL, 0, 0, m_nWidth, m_nHeight, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00167     }
00168 #endif
00169
00170     if( -1 != m_xPos && -1 != m_yPos ){
00171         /* ウィンドウ位置・サイズを再現 */
00172
00173         // 2006.06.09 ryoji
00174         // モニタのワーク領域よりも左右上下に１ドット小さい領域内に全体が収まるように位置調整する
00175         //
00176         // note: ダイアログをワーク領域境界にぴったり合わせようとすると、
00177         //       強制的に親の中央に移動させられてしまうときがある
00178         //      （マルチモニタ環境で親が非プライマリモニタにある場合だけ？）
00179         //       状況に合わせて処理を変えるのは厄介なので、一律、１ドットの空きを入れる
00180
00181         RECT rc;
00182         RECT rcWork;
00183         rc.left = m_xPos;
00184         rc.top = m_yPos;
00185         rc.right = m_xPos + m_nWidth;
00186         rc.bottom = m_yPos + m_nHeight;
00187         GetMonitorWorkRect(&rc, &rcWork);
00188         rcWork.top += 1;
00189         rcWork.bottom -= 1;
00190         rcWork.left += 1;
00191         rcWork.right -= 1;
00192         if( rc.bottom > rcWork.bottom ){
00193             rc.top -= (rc.bottom - rcWork.bottom);
00194             rc.bottom = rcWork.bottom;
00195         }
00196         if( rc.right > rcWork.right ){
00197             rc.left -= (rc.right - rcWork.right);
00198             rc.right = rcWork.right;
00199         }
00200         if( rc.top < rcWork.top ){
00201             rc.bottom += (rcWork.top - rc.top);
00202             rc.top = rcWork.top;
00203         }
00204         if( rc.left < rcWork.left ){
00205             rc.right += (rcWork.left - rc.left);
00206             rc.left = rcWork.left;
00207         }
00208         m_xPos = rc.left;
00209         m_yPos = rc.top;
00210         m_nWidth = rc.right - rc.left;
00211         m_nHeight = rc.bottom - rc.top;
00212
00213         WINDOWPLACEMENT cWindowPlacement;
00214         cWindowPlacement.length = sizeof( cWindowPlacement );
00215         cWindowPlacement.showCmd = m_nShowCmd;  //  最大化・最小化
00216         cWindowPlacement.rcNormalPosition.left = m_xPos;
00217         cWindowPlacement.rcNormalPosition.top = m_yPos;
00218         cWindowPlacement.rcNormalPosition.right = m_nWidth + m_xPos;
00219         cWindowPlacement.rcNormalPosition.bottom = m_nHeight + m_yPos;
00220         ::SetWindowPlacement( m_hWnd, &cWindowPlacement );
00221     }
00222     m_bInited = TRUE;
00223     return TRUE;
00224 }
00225
00226 BOOL CDialog::OnDestroy( void )
00227 {
00228     /* ウィンドウ位置・サイズを記憶 */
00229     WINDOWPLACEMENT cWindowPlacement;
00230     cWindowPlacement.length = sizeof( cWindowPlacement );
00231     if (::GetWindowPlacement( m_hWnd, &cWindowPlacement )){
00232         m_nShowCmd = cWindowPlacement.showCmd;  //  最大化・最小化
00233         m_xPos = cWindowPlacement.rcNormalPosition.left;
00234         m_yPos = cWindowPlacement.rcNormalPosition.top;
00235         m_nWidth = cWindowPlacement.rcNormalPosition.right - cWindowPlacement.rcNormalPosition.left;
00236         m_nHeight = cWindowPlacement.rcNormalPosition.bottom - cWindowPlacement.rcNormalPosition.top;
00237     }
00238     /* 破棄 */
00239     if( NULL != m_hwndSizeBox ){
00240         ::DestroyWindow( m_hwndSizeBox );
00241         m_hwndSizeBox = NULL;
00242     }
00243     m_hWnd = NULL;
00244     return TRUE;
00245 }
00246
00247
00248 BOOL CDialog::OnBnClicked( int wID )
00249 {
00250     switch( wID ){
00251     case IDCANCEL:
00252         CloseDialog( 0 );
00253         return TRUE;
00254     case IDOK:
00255         CloseDialog( 0 );
00256         return TRUE;
00257     }
00258     return FALSE;
00259 }
00260
00261
00262 BOOL CDialog::OnSize( WPARAM wParam, LPARAM lParam )
00263 {
00264     RECT    rc;
00265     ::GetWindowRect( m_hWnd, &rc );
00266
00267     /* ダイアログのサイズの記憶 */
00268     m_xPos = rc.left;
00269     m_yPos = rc.top;
00270     m_nWidth = rc.right - rc.left;
00271     m_nHeight = rc.bottom - rc.top;
00272
00273     /* サイズボックスの移動 */
00274     if( NULL != m_hwndSizeBox ){
00275         ::GetClientRect( m_hWnd, &rc );
00276 //      ::SetWindowPos( m_hwndSizeBox, NULL,
00277 //  Sept. 17, 2000 JEPRO_16thdot アイコンの16dot目が表示されるように次行を変更する必要ある？
00278 //  Jan. 12, 2001 JEPRO (directed by stonee) 15を16に変更するとアウトライン解析のダイアログの右下にある
00279 //  グリップサイズに`遊び'ができてしまい(移動する！)、ダイアログを大きくできないという障害が発生するので
00280 //  変更しないことにした(要するに原作版に戻しただけ)
00281 //          rc.right - rc.left - 15, rc.bottom - rc.top - 15,
00282 //          13, 13,
00283 //          SWP_NOOWNERZORDER | SWP_NOZORDER
00284 //      );
00285
00286 //  Jan. 12, 2001 Stonee (suggested by genta)
00287 //      "13"という固定値ではなくシステムから取得したスクロールバーサイズを使うように修正
00288         ::SetWindowPos( m_hwndSizeBox, NULL,
00289         rc.right - rc.left - GetSystemMetrics(SM_CXVSCROLL), //<-- stonee
00290         rc.bottom - rc.top - GetSystemMetrics(SM_CYHSCROLL), //<-- stonee
00291         GetSystemMetrics(SM_CXVSCROLL), //<-- stonee
00292         GetSystemMetrics(SM_CYHSCROLL), //<-- stonee
00293         SWP_NOOWNERZORDER | SWP_NOZORDER
00294         );
00295
00296         //  SizeBox問題テスト
00297         if( wParam == SIZE_MAXIMIZED ){
00298             ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00299         }else{
00300             ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00301         }
00302         ::InvalidateRect( m_hwndSizeBox, NULL, TRUE );
00303     }
00304     return FALSE;
00305
00306 }
00307
00308 BOOL CDialog::OnMove( WPARAM wParam, LPARAM lParam )
00309 {
00310
00311     /* ダイアログの位置の記憶 */
00312     if( FALSE == m_bInited ){
00313         return TRUE;
00314     }
00315     RECT    rc;
00316     ::GetWindowRect( m_hWnd, &rc );
00317
00318     /* ダイアログのサイズの記憶 */
00319     m_xPos = rc.left;
00320     m_yPos = rc.top;
00321     m_nWidth = rc.right - rc.left;
00322     m_nHeight = rc.bottom - rc.top;
00323 #ifdef _DEBUG
00324         MYTRACE_A( "CDialog::OnMove() m_xPos=%d m_yPos=%d\n", m_xPos, m_yPos );
00325 #endif
00326     return TRUE;
00327
00328 }
00329
00330
00331
00332 void CDialog::CreateSizeBox( void )
00333 {
00334     /* サイズボックス */
00335     m_hwndSizeBox = ::CreateWindowEx(
00336         WS_EX_CONTROLPARENT,                                /* no extended styles */
00337         _T("SCROLLBAR"),                                        /* scroll bar control class */
00338         NULL,                                               /* text for window title bar */
00339         WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00340         0,                                                  /* horizontal position */
00341         0,                                                  /* vertical position */
00342         0,                                                  /* width of the scroll bar */
00343         0,                                                  /* default height */
00344         m_hWnd/*hdlg*/,                                     /* handle of main window */
00345         (HMENU) NULL,                                       /* no menu for a scroll bar */
00346         m_hInstance,                                        /* instance owning this window */
00347         (LPVOID) NULL                                       /* pointer not needed */
00348     );
00349     ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00350
00351 }
00352
00353
00354
00355
00356
00357
00358 /* ダイアログのメッセージ処理 */
00359 INT_PTR CDialog::DispatchEvent( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00360 {
00361 //#ifdef _DEBUG
00362 //  MYTRACE_A( "CDialog::DispatchEvent() uMsg == %xh\n", uMsg );
00363 //#endif
00364     switch( uMsg ){
00365     case WM_INITDIALOG: return OnInitDialog( hwndDlg, wParam, lParam );
00366     case WM_DESTROY:    return OnDestroy();
00367     case WM_COMMAND:    return OnCommand( wParam, lParam );
00368     case WM_NOTIFY:     return OnNotify( wParam, lParam );
00369     case WM_SIZE:
00370         m_hWnd = hwndDlg;
00371         return OnSize( wParam, lParam );
00372     case WM_MOVE:
00373         m_hWnd = hwndDlg;
00374         return OnMove( wParam, lParam );
00375     case WM_DRAWITEM:   return OnDrawItem( wParam, lParam );
00376     case WM_TIMER:      return OnTimer( wParam );
00377     case WM_KEYDOWN:    return OnKeyDown( wParam, lParam );
00378     case WM_KILLFOCUS:  return OnKillFocus( wParam, lParam );
00379     case WM_ACTIVATE:   return OnActivate( wParam, lParam );    //@@@ 2003.04.08 MIK
00380     case WM_VKEYTOITEM: return OnVKeyToItem( wParam, lParam );
00381     case WM_CHARTOITEM: return OnCharToItem( wParam, lParam );
00382     case WM_HELP:       return OnPopupHelp( wParam, lParam );   //@@@ 2002.01.18 add
00383     case WM_CONTEXTMENU:return OnContextMenu( wParam, lParam ); //@@@ 2002.01.18 add
00384     }
00385     return FALSE;
00386 }
00387
00388 BOOL CDialog::OnCommand( WPARAM wParam, LPARAM lParam )
00389 {
00390     WORD    wNotifyCode;
00391     WORD    wID;
00392     HWND    hwndCtl;
00393     wNotifyCode = HIWORD(wParam);   /* 通知コード */
00394     wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00395     hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00396     switch( wNotifyCode ){
00397
00398     /* コンボボックス用メッセージ */
00399     case CBN_SELCHANGE: return OnCbnSelChange( hwndCtl, wID );
00400     // @@2005.03.31 MIK タグジャンプDialogで使うので追加
00401     case CBN_EDITCHANGE:    return OnCbnEditChange( hwndCtl, wID );
00402 //  case LBN_SELCHANGE: return OnLbnSelChange( hwndCtl, wID );
00403 //  case CBN_DROPDOWN:  return OnDbnDropDown( hwndCtl, wID );
00404 //  case CBN_CLOSEUP:   return OnDbnCloseUp( hwndCtl, wID );
00405     case LBN_DBLCLK:    return OnLbnDblclk( wID );
00406
00407     case EN_CHANGE:     return OnEditChange( hwndCtl, wID );
00408
00409     /* ボタン／チェックボックスがクリックされた */
00410     case BN_CLICKED:    return OnBnClicked( wID );
00411     }
00412     return FALSE;
00413 }
00414
00415 //@@@ 2002.01.18 add start
00416 BOOL CDialog::OnPopupHelp( WPARAM wPara, LPARAM lParam )
00417 {
00418     HELPINFO *p = (HELPINFO *)lParam;
00419     MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)GetHelpIdTable() ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00420     return TRUE;
00421 }
00422
00423 BOOL CDialog::OnContextMenu( WPARAM wPara, LPARAM lParam )
00424 {
00425     MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)GetHelpIdTable() );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00426     return TRUE;
00427 }
00428
00429 const DWORD p_helpids[] = {
00430     0, 0
00431 };
00432
00433 LPVOID CDialog::GetHelpIdTable(void)
00434 {
00435     return (LPVOID)p_helpids;
00436 }
00437 //@@@ 2002.01.18 add end
00438
00439 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDialog.h

sakura_core

CDialog.h

Dialog Box基底クラスヘッダファイル [詳細]

#include <windows.h>
#include <dbt.h>
#include "CShareData.h"
#include "global.h"

CDialog.hのインクルード依存関係図

ソースコードを見る。

構成

class CDialog
ダイアログウィンドウを扱うクラス [詳細]

説明

Dialog Box基底クラスヘッダファイル

作者:
Norio Nakatani

CDialog.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDialog.h ソースファイル

sakura_core

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
00027
00028 /*-----------------------------------------------------------------------
00029 クラスの宣言
00030 -----------------------------------------------------------------------*/
00038 class SAKURA_CORE_API CDialog
00039 {
00040 public:
00041     /*
00042     ||  Constructors
00043     */
00044     CDialog();
00045     virtual ~CDialog();
00046     /*
00047     ||  Attributes & Operations
00048     */
00049     virtual INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00050     INT_PTR DoModal( HINSTANCE, HWND, int, LPARAM );    /* モーダルダイアログの表示 */
00051     HWND DoModeless( HINSTANCE, HWND, int, LPARAM, int );   /* モードレスダイアログの表示 */
00052     void CloseDialog( int );
00053
00054     virtual BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00055     virtual BOOL OnDestroy( void );
00056     virtual BOOL OnNotify( WPARAM wParam, LPARAM lParam ){return FALSE;}
00057     virtual BOOL OnSize( WPARAM wParam, LPARAM lParam );
00058     virtual BOOL OnMove( WPARAM wParam, LPARAM lParam );
00059     virtual BOOL OnDrawItem( WPARAM wParam, LPARAM lParam ){return TRUE;}
00060     virtual BOOL OnTimer( WPARAM wParam ){return TRUE;}
00061     virtual BOOL OnKeyDown( WPARAM wParam, LPARAM lParam ){return TRUE;}
00062     virtual BOOL OnDeviceChange( WPARAM wParam, LPARAM lParam ){return TRUE;}
00063     virtual int GetData( void ){return 1;}/* ダイアログデータの取得 */
00064     virtual void SetData( void ){return;}/* ダイアログデータの設定 */
00065     virtual BOOL OnBnClicked( int );
00066     virtual BOOL OnCbnSelChange( HWND hwndCtl, int wID ){return FALSE;}
00067     virtual BOOL OnCbnEditChange( HWND hwndCtl, int wID ){return FALSE;} // @@2005.03.31 MIK タグジャンプDialog
00068 //  virtual BOOL OnLbnSelChange( HWND hwndCtl, int wID ){return FALSE;}
00069 //  virtual BOOL OnDbnDropDown( HWND hwndCtl, int wID ){return FALSE;}
00070 //  virtual BOOL OnDbnCloseUp( HWND hwndCtl, int wID ){return FALSE;}
00071     virtual BOOL OnEditChange( HWND hwndCtl, int wID ){return FALSE;}
00072
00073     virtual BOOL OnLbnDblclk( int wID ){return FALSE;}
00074     virtual BOOL OnKillFocus( WPARAM wParam, LPARAM lParam ){return FALSE;}
00075     virtual BOOL OnActivate( WPARAM wParam, LPARAM lParam ){return FALSE;}  //@@@ 2003.04.08 MIK
00076     virtual int OnVKeyToItem( WPARAM wParam, LPARAM lParam ){ return -1; }
00077     virtual LRESULT OnCharToItem( WPARAM wParam, LPARAM lParam ){ return -1; }
00078 //  virtual BOOL OnNextDlgCtl( WPARAM wParam, LPARAM lParam ){ return 1; }
00079     virtual BOOL OnPopupHelp( WPARAM, LPARAM ); //@@@ 2002.01.18 add
00080     virtual BOOL OnContextMenu( WPARAM, LPARAM );   //@@@ 2002.01.18 add
00081     virtual LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00082
00083
00084 //  virtual BOOL OnLbnSelChange( HWND, int );
00085
00086 public:
00087     HWND GetHwnd() const{ return m_hWnd; }
00088     //特殊インターフェース (使用は好ましくない)
00089     void _SetHwnd(HWND hwnd){ m_hWnd = hwnd; }
00090
00091 public:
00092     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00093     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00094 private:
00095     HWND            m_hWnd;         /* このダイアログのハンドル */
00096 public:
00097     HWND            m_hwndSizeBox;
00098     LPARAM          m_lParam;
00099     BOOL            m_bModal;       /* モーダル ダイアログか */
00100     int             m_nShowCmd;     //  最大化/最小化
00101     int             m_nWidth;
00102     int             m_nHeight;
00103     int             m_xPos;
00104     int             m_yPos;
00105 //  void*           m_pcEditView;
00106     SFilePath       m_szHelpFile;
00107     DLLSHAREDATA*   m_pShareData;
00108     BOOL            m_bInited;
00109
00110
00111 protected:
00112     void CreateSizeBox( void );
00113     BOOL OnCommand( WPARAM, LPARAM );
00114
00115 };
00116
00117
00118
00120 #endif /* _CDIALOG_H_ */
00121
00122
00123 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDicMgr.cpp

sakura_core

CDicMgr.cpp

CDicMgrクラス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "CDicMgr.h"
#include "CMemory.h"
#include "CRunningTimer.h"
#include "my_icmp.h"
#include "io/CTextStream.h"

CDicMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

CDicMgrクラス

作者:
Norio Nakatani
日付:
1998/11/05 作成

CDicMgr.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDicMgr.cpp ソースファイル

sakura_core

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 "my_icmp.h" // 2002/11/30 Moca 追加
00024 #include "io/CTextStream.h"
00025 using namespace std;
00026
00027 CDicMgr::CDicMgr()
00028 {
00029     return;
00030 }
00031
00032
00033
00034
00035 CDicMgr::~CDicMgr()
00036 {
00037     return;
00038 }
00039
00040
00041
00042
00049 BOOL CDicMgr::Search(
00050     const wchar_t*      pszKey,
00051     const int           nCmpLen,
00052     CNativeW**          ppcmemKey,
00053     CNativeW**          ppcmemMean,
00054     const TCHAR*        pszKeyWordHelpFile,
00055     int*                pLine
00056 )
00057 {
00058 #ifdef _DEBUG
00059     CRunningTimer cRunningTimer( "CDicMgr::Search" );
00060 #endif
00061     long    i;
00062     wchar_t*    pszDelimit = L" /// ";
00063     wchar_t*    pszWork;
00064     int     nRes;
00065     wchar_t*    pszToken;
00066     wchar_t*    pszKeySeps = L",\0";
00067
00068
00069     /* 辞書ファイル */
00070     if( 0 >= _tcslen( pszKeyWordHelpFile ) ){
00071         return FALSE;
00072     }
00073     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
00074     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00075     CTextInputStream_AbsIni in(pszKeyWordHelpFile);
00076     if(!in){
00077         return FALSE;
00078     }
00079
00080     wchar_t szLine[LINEREADBUFSIZE];
00081     for(int line=1 ; in; line++ ){  // 2006.04.10 fon
00082         //1行読み込み
00083         {
00084             wstring tmp = in.ReadLineW(); //NULL != fgetws( szLine, _countof(szLine), pFile );
00085             wcscpy_s(szLine,_countof(szLine),tmp.c_str());
00086         }
00087
00088         pszWork = wcsstr( szLine, pszDelimit );
00089         if( NULL != pszWork && szLine[0] != L';' ){
00090             *pszWork = L'\0';
00091             pszWork += wcslen( pszDelimit );
00092
00093             /* 最初のトークンを取得します。 */
00094             pszToken = wcstok( szLine, pszKeySeps );
00095             while( NULL != pszToken ){
00096                 nRes = _wcsnicmp( pszKey, pszToken, nCmpLen );  // 2006.04.10 fon
00097                 if( 0 == nRes ){
00098                     for( i = 0; i < (int)wcslen(pszWork); ++i ){
00099                         if( pszWork[i] == L'\r' ||
00100                             pszWork[i] == L'\n' ){
00101                             pszWork[i] = L'\0';
00102                             break;
00103                         }
00104                     }
00105                     //キーワードのセット
00106                     *ppcmemKey = new CNativeW;  // 2006.04.10 fon
00107                     (*ppcmemKey)->SetString( pszToken );
00108                     //意味のセット
00109                     *ppcmemMean = new CNativeW;
00110                     (*ppcmemMean)->SetString( pszWork );
00111
00112                     *pLine = line;  // 2006.04.10 fon
00113                     return TRUE;
00114                 }
00115                 pszToken = wcstok( NULL, pszKeySeps );
00116             }
00117         }
00118     }
00119     return FALSE;
00120 }
00121
00122
00123
00124
00125
00126 /*
00127 ||  入力補完キーワードの検索
00128 ||
00129 ||  ・見つかった候補をすべて返す(改行で区切って返す) -> ppcmemKouho
00130 ||  ・指定された候補の最大数を超えると処理を中断する
00131 ||  ・見つかった数を返す
00132 ||
00133 */
00134 int CDicMgr::HokanSearch(
00135     const wchar_t*  pszKey,
00136     BOOL            bHokanLoHiCase,
00137     CNativeW**      ppcmemKouho,
00138     int             nMaxKouho,
00139     const TCHAR*    pszKeyWordFile
00140 )
00141 {
00142     int     nKeyLen;
00143     int     nKouhoNum;
00144     int     nRet;
00145     *ppcmemKouho = NULL;
00146     if( 0 >= _tcslen( pszKeyWordFile ) ){
00147         return 0;
00148     }
00149
00150     CTextInputStream_AbsIni in(pszKeyWordFile);
00151     if(!in){
00152         return 0;
00153     }
00154     nKouhoNum = 0;
00155     nKeyLen = wcslen( pszKey );
00156     wstring szLine;
00157     while( in ){
00158         szLine = in.ReadLineW(); // NULL != fgetws( szLine, _countof(szLine), pFile ) ){
00159         if( nKeyLen > (int)szLine.length() ){
00160             continue;
00161         }
00162
00163         //コメント無視
00164         if( szLine[0] == L';' )continue;
00165
00166         //空行無視
00167         if( szLine[0] == L'\0' )continue;
00168
00169         if( bHokanLoHiCase ){   /* 英大文字小文字を同一視する */
00170             nRet = auto_memicmp( pszKey, szLine.c_str(), nKeyLen );
00171         }else{
00172             nRet = auto_memcmp( pszKey, szLine.c_str(), nKeyLen );
00173         }
00174         if( 0 == nRet ){
00175             if( NULL == *ppcmemKouho ){
00176                 *ppcmemKouho = new CNativeW;
00177             }
00178             (*ppcmemKouho)->AppendString( szLine.c_str() );
00179             (*ppcmemKouho)->AppendString( L"\n" );
00180             ++nKouhoNum;
00181             if( 0 != nMaxKouho && nMaxKouho <= nKouhoNum ){
00182                 break;
00183             }
00184         }
00185     }
00186     in.Close();
00187     return nKouhoNum;
00188 }
00189
00190
00191 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDicMgr.h

sakura_core

CDicMgr.h

CDicMgrクラス定義 [詳細]

#include <windows.h>
#include "global.h"

CDicMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDicMgr

説明

CDicMgrクラス定義

作者:
Norio Nakatani
日付:
1998/11/05 作成

CDicMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDicMgr.h ソースファイル

sakura_core

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 wchar_t*, const int, CNativeW**, CNativeW**, const TCHAR*, int * );   // 2006.04.10 fon (const int,CMemory**,int*)引数を追加
00041     static int HokanSearch( const wchar_t* , BOOL, CNativeW** , int, const TCHAR* );
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 Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgAbout.cpp

sakura_core

CDlgAbout.cpp

バージョン情報ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgAbout.h"
#include "sakura_rc.h"
#include "CBREGEXP.h"
#include "CPPA.h"
#include "util/file.h"
#include "util/module.h"
#include <shellapi.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 Nov 17 20:25:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgAbout.cpp ソースファイル

sakura_core

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 #include "CBREGEXP.h"
00024 #include "CPPA.h"
00025 #include "util/file.h"
00026 #include "util/module.h"
00027 #include <shellapi.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     _SetHwnd( hwndDlg );
00091
00092     TCHAR           szMsg[2048];
00093     TCHAR           szFile[_MAX_PATH];
00094     FILETIME        lastTime;
00095     SYSTEMTIME      systimeL;
00096
00097     /* この実行ファイルの情報 */
00098     ::GetModuleFileName( ::GetModuleHandle( NULL ), szFile, _countof( szFile ) );
00099
00100     //  Oct. 22, 2005 genta タイムスタンプ取得の共通関数利用
00101     //  2003.10.04 Moca ハンドルのクローズ忘れ
00102     //::ZeroMemory( &wfd, sizeof( wfd ));
00103     //HANDLE hFind = ::FindFirstFile( szFile, &wfd );
00104     //if( hFind != INVALID_HANDLE_VALUE ){
00105     //  FindClose( hFind );
00106     //}
00107     if( !GetLastWriteTimestamp( szFile, lastTime )){
00108         lastTime.dwLowDateTime = lastTime.dwHighDateTime = 0;
00109     }
00110
00111     ::FileTimeToLocalFileTime( &lastTime, &lastTime );
00112     ::FileTimeToSystemTime( &lastTime, &systimeL );
00113     /* バージョン情報 */
00114     //  Nov. 6, 2000 genta  Unofficial Releaseのバージョンとして設定
00115     //  Jun. 8, 2001 genta  GPL化に伴い、OfficialなReleaseとしての道を歩み始める
00116     //  Feb. 7, 2002 genta コンパイラ情報追加
00117     //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
00118     DWORD dwVersionMS, dwVersionLS;
00119     GetAppVersionInfo( NULL, VS_VERSION_INFO,
00120         &dwVersionMS, &dwVersionLS );
00121
00122     int ComPiler_ver = COMPILER_VER;
00123     auto_sprintf( szMsg, _T("Ver. %d.%d.%d.%d (") _T(COMPILER_TYPE) _T(" %d)"),
00124         HIWORD( dwVersionMS ),
00125         LOWORD( dwVersionMS ),
00126         HIWORD( dwVersionLS ),
00127         LOWORD( dwVersionLS ),
00128         ComPiler_ver
00129     );
00130 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_VER, szMsg );
00131
00132     /* 更新日情報 */
00133     auto_sprintf( szMsg, _T("Last Modified: %d/%d/%d %02d:%02d:%02d"),
00134         systimeL.wYear,
00135         systimeL.wMonth,
00136         systimeL.wDay,
00137         systimeL.wHour,
00138         systimeL.wMinute,
00139         systimeL.wSecond
00140     );
00141 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_UPDATE, szMsg );
00142
00143     //  From Here Jun. 8, 2001 genta
00144     //  Edit Boxにメッセージを追加する．
00145     int desclen = ::LoadString( m_hInstance, IDS_ABOUT_DESCRIPTION, szMsg, _countof( szMsg ) );
00146     if( desclen > 0 ){
00147 		::DlgItem_SetText( GetHwnd(), IDC_EDIT_ABOUT, szMsg );
00148     }
00149     //  To Here Jun. 8, 2001 genta
00150
00151     //  From Here Dec. 2, 2002 genta
00152     //  アイコンをカスタマイズアイコンに合わせる
00153     HICON hIcon = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
00154     HWND hIconWnd = GetDlgItem( GetHwnd(), IDC_STATIC_MYICON );
00155
00156     if( hIconWnd != NULL && hIcon != NULL ){
00157 		::SendMessageAny( hIconWnd, STM_SETICON, (WPARAM)hIcon, 0 );
00158     }
00159     //  To Here Dec. 2, 2002 genta
00160
00161     // URLウィンドウをサブクラス化する
00162     m_UrlUrWnd.SubclassWindow( GetDlgItem( GetHwnd(), IDC_STATIC_URL_UR ) );
00163
00164     //  Oct. 22, 2005 genta 原作者ホームページが無くなったので削除
00165     //m_UrlOrgWnd.SubclassWindow( GetDlgItem( GetHwnd(), IDC_STATIC_URL_ORG ) );
00166
00167     /* 基底クラスメンバ */
00168     return CDialog::OnInitDialog( GetHwnd(), wParam, lParam );
00169 }
00170
00171
00172 BOOL CDlgAbout::OnBnClicked( int wID )
00173 {
00174     switch( wID ){
00175     //  2006.07.27 genta 原作者連絡先のボタンを削除 (ヘルプから削除されているため)
00176     case IDC_STATIC_URL_UR:
00177     case IDC_STATIC_URL_ORG:
00178         //  Web Browserの起動
00179         {
00180             TCHAR buf[512];
00181             ::GetWindowText( ::GetDlgItem( GetHwnd(), wID ), buf, _countof(buf) );
00182             ::ShellExecute( GetHwnd(), NULL, buf, NULL, NULL, SW_SHOWNORMAL );
00183             return TRUE;
00184         }
00185     }
00186     /* 基底クラスメンバ */
00187     return CDialog::OnBnClicked( wID );
00188 }
00189
00190 //@@@ 2002.01.18 add start
00191 LPVOID CDlgAbout::GetHelpIdTable(void)
00192 {
00193     return (LPVOID)p_helpids;
00194 }
00195
00196 BOOL CUrlWnd::SubclassWindow( HWND hWnd )
00197 {
00198     // STATICウィンドウをサブクラス化する
00199     // 元のSTATICは WS_TABSTOP, SS_NOTIFY スタイルのものを使用すること
00200     if( GetHwnd() != NULL )
00201         return FALSE;
00202     if( !IsWindow( hWnd ) )
00203         return FALSE;
00204
00205     // サブクラス化を実行する
00206     LONG_PTR lptr;
00207     SetLastError( 0 );
00208     lptr = SetWindowLongPtr( hWnd, GWLP_USERDATA, (LONG_PTR)this );
00209     if( lptr == 0 && GetLastError() != 0 )
00210         return FALSE;
00211     m_pOldProc = (WNDPROC)SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)UrlWndProc );
00212     if( m_pOldProc == NULL )
00213         return FALSE;
00214     m_hWnd = hWnd;
00215
00216     // 下線付きフォントに変更する
00217     HFONT hFont;
00218     LOGFONT lf;
00219     hFont = (HFONT)SendMessageAny( hWnd, WM_GETFONT, (WPARAM)0, (LPARAM)0 );
00220     GetObject( hFont, sizeof(lf), &lf );
00221     lf.lfUnderline = TRUE;
00222     m_hFont = CreateFontIndirect( &lf );
00223     if(m_hFont != NULL)
00224         SendMessageAny( hWnd, WM_SETFONT, (WPARAM)m_hFont, (LPARAM)FALSE );
00225
00226     return TRUE;
00227 }
00228
00229 LRESULT CALLBACK CUrlWnd::UrlWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
00230 {
00231     CUrlWnd* pUrlWnd = (CUrlWnd*)GetWindowLongPtr( hWnd, GWLP_USERDATA );
00232
00233     HDC hdc;
00234     POINT pt;
00235     RECT rc;
00236
00237     switch ( msg ) {
00238     case WM_SETCURSOR:
00239         // カーソル形状変更
00240         HCURSOR hCursor;
00241         hCursor = LoadCursor( GetModuleHandle( NULL ), MAKEINTRESOURCE( IDC_CURSOR_HAND ) );
00242         SetCursor( hCursor );
00243         return (LRESULT)0;
00244     case WM_LBUTTONDOWN:
00245         // キーボードフォーカスを自分に当てる
00246         SendMessageAny( GetParent(hWnd), WM_NEXTDLGCTL, (WPARAM)hWnd, (LPARAM)1 );
00247         break;
00248     case WM_SETFOCUS:
00249     case WM_KILLFOCUS:
00250         // 再描画
00251         InvalidateRect( hWnd, NULL, TRUE );
00252         UpdateWindow( hWnd );
00253         break;
00254     case WM_GETDLGCODE:
00255         // デフォルトプッシュボタンのように振舞う（Enterキーの有効化）
00256         // 方向キーは無効化（IEのバージョン情報ダイアログと同様）
00257         return DLGC_DEFPUSHBUTTON | DLGC_WANTARROWS;
00258     case WM_MOUSEMOVE:
00259         // カーソルがウィンドウ内に入ったらタイマー起動
00260         // ウィンドウ外に出たらタイマー削除
00261         // 各タイミングで再描画
00262         BOOL bHilighted;
00263         pt.x = LOWORD( lParam );
00264         pt.y = HIWORD( lParam );
00265         GetClientRect( hWnd, &rc );
00266         bHilighted = PtInRect( &rc, pt );
00267         if( bHilighted != pUrlWnd->m_bHilighted ){
00268             pUrlWnd->m_bHilighted = bHilighted;
00269             InvalidateRect( hWnd, NULL, TRUE );
00270             if( pUrlWnd->m_bHilighted )
00271                 SetTimer( hWnd, 1, 200, NULL );
00272             else
00273                 KillTimer( hWnd, 1 );
00274         }
00275         break;
00276     case WM_TIMER:
00277         // カーソルがウィンドウ外にある場合にも WM_MOUSEMOVE を送る
00278         GetCursorPos( &pt );
00279         ScreenToClient( hWnd, &pt );
00280         GetClientRect( hWnd, &rc );
00281         if( !PtInRect( &rc, pt ) )
00282             SendMessageAny( hWnd, WM_MOUSEMOVE, 0, MAKELONG( pt.x, pt.y ) );
00283         break;
00284     case WM_PAINT:
00285         // ウィンドウの描画
00286         PAINTSTRUCT ps;
00287         HFONT hFont;
00288         HFONT hOldFont;
00289         TCHAR szText[512];
00290
00291         hdc = BeginPaint( hWnd, &ps );
00292
00293         // 現在のクライアント矩形、テキスト、フォントを取得する
00294         GetClientRect( hWnd, &rc );
00295         GetWindowText( hWnd, szText, _countof(szText) );
00296         hFont = (HFONT)SendMessageAny( hWnd, WM_GETFONT, (WPARAM)0, (LPARAM)0 );
00297
00298         // テキスト描画
00299         SetBkMode( hdc, TRANSPARENT );
00300         SetTextColor( hdc, pUrlWnd->m_bHilighted? RGB( 0x84, 0, 0 ): RGB( 0, 0, 0xff ) );
00301         hOldFont = (HFONT)SelectObject( hdc, (HGDIOBJ)hFont );
00302         TextOut( hdc, 2, 0, szText, _tcslen( szText ) );
00303         SelectObject( hdc, (HGDIOBJ)hOldFont );
00304
00305         // フォーカス枠描画
00306         if( GetFocus() == hWnd )
00307             DrawFocusRect( hdc, &rc );
00308
00309         EndPaint( hWnd, &ps );
00310         return (LRESULT)0;
00311     case WM_ERASEBKGND:
00312         hdc = (HDC)wParam;
00313         GetClientRect( hWnd, &rc );
00314
00315         // 背景描画
00316         if( pUrlWnd->m_bHilighted ){
00317             // ハイライト時背景描画
00318             SetBkColor( hdc, RGB( 0xff, 0xff, 0 ) );
00319             ExtTextOutW_AnyBuild( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
00320         }else{
00321             // 親にWM_CTLCOLORSTATICを送って背景ブラシを取得し、背景描画する
00322             HBRUSH hbr;
00323             HBRUSH hbrOld;
00324             hbr = (HBRUSH)SendMessageAny( GetParent( hWnd ), WM_CTLCOLORSTATIC, wParam, (LPARAM)hWnd );
00325             hbrOld = (HBRUSH)SelectObject( hdc, hbr );
00326             FillRect( hdc, &rc, hbr );
00327             SelectObject( hdc, hbrOld );
00328         }
00329         return (LRESULT)1;
00330     case WM_DESTROY:
00331         // 後始末
00332         KillTimer( hWnd, 1 );
00333         SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)pUrlWnd->m_pOldProc );
00334         if( pUrlWnd->m_hFont != NULL )
00335             DeleteObject( pUrlWnd->m_hFont );
00336         pUrlWnd->m_hWnd = NULL;
00337         pUrlWnd->m_hFont = NULL;
00338         pUrlWnd->m_bHilighted = FALSE;
00339         pUrlWnd->m_pOldProc = NULL;
00340         return (LRESULT)0;
00341     }
00342
00343     return CallWindowProc( pUrlWnd->m_pOldProc, hWnd, msg, wParam, lParam );
00344 }
00345 //@@@ 2002.01.18 add end
00346
00347 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgAbout.h

sakura_core

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 Nov 17 20:25:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgAbout.h ソースファイル

sakura_core

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     HWND GetHwnd() const{ return m_hWnd; }
00034 protected:
00035     static LRESULT CALLBACK UrlWndProc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp );
00036 protected:
00037     HWND m_hWnd;
00038     HFONT m_hFont;
00039     BOOL m_bHilighted;
00040     WNDPROC m_pOldProc;
00041 };
00042
00043 class CDlgAbout : public CDialog
00044 {
00045 public:
00046     int DoModal( HINSTANCE, HWND ); /* モーダルダイアログの表示 */
00047     //  Nov. 7, 2000 genta  標準以外のメッセージを捕捉する
00048     INT_PTR DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam );
00049 protected:
00050     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00051     BOOL OnBnClicked( int );
00052     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00053 private:
00054     CUrlWnd m_UrlUrWnd;
00055     CUrlWnd m_UrlOrgWnd;
00056 };
00057
00059 #endif /* _CDLGABOUT_H_ */
00060
00061
00062 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCancel.cpp

sakura_core

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 Nov 17 20:25:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCancel.cpp ソースファイル

sakura_core

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     _SetHwnd( hwndDlg );
00038     HICON   hIcon;
00039     hIcon = ::LoadIcon( NULL, IDI_ASTERISK );
00040 //  hIcon = ::LoadIcon( m_hInstance, MAKEINTRESOURCE( IDI_ICON_GREP ) );
00041 	::SendMessageAny( GetHwnd(), WM_SETICON, ICON_SMALL, (LPARAM)NULL );
00042 	::SendMessageAny( GetHwnd(), WM_SETICON, ICON_SMALL, (LPARAM)hIcon );
00043 	::SendMessageAny( GetHwnd(), WM_SETICON, ICON_BIG, (LPARAM)NULL );
00044 	::SendMessageAny( GetHwnd(), 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 Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCancel.h

sakura_core

CDlgCancel.h

キャンセルボタンダイアログ [詳細]

#include "CDialog.h"

CDlgCancel.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCancel
キャンセルボタンダイアログ [詳細]

説明

キャンセルボタンダイアログ

作者:
Norio Nakatani
日付:
1998/09/09 作成

1999/12/02 再作成

CDlgCancel.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCancel.h ソースファイル

sakura_core

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 Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCompare.cpp

sakura_core

CDlgCompare.cpp

ファイル比較ダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgCompare.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "util/shell.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 Nov 17 20:25:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCompare.cpp ソースファイル

sakura_core

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 "debug.h"
00022 #include "CEditDoc.h"
00023 #include "global.h"
00024 #include "funccode.h"       // Stonee, 2001/03/12
00025 #include "mymessage.h"
00026 #include "util/shell.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     return;
00047 }
00048
00049
00050 /* モーダルダイアログの表示 */
00051 int CDlgCompare::DoModal(
00052     HINSTANCE   hInstance,
00053     HWND        hwndParent,
00054     LPARAM      lParam,
00055     const TCHAR*    pszPath,
00056     BOOL        bIsModified,
00057     TCHAR*  pszComparePath,
00058     HWND*       phwndCompareWnd
00059 )
00060 {
00061     m_pszPath = pszPath;
00062     m_bIsModified = bIsModified;
00063     m_pszComparePath = pszComparePath;
00064     m_phwndCompareWnd = phwndCompareWnd;
00065     return CDialog::DoModal( hInstance, hwndParent, IDD_COMPARE, lParam );
00066 }
00067
00068 BOOL CDlgCompare::OnBnClicked( int wID )
00069 {
00070     switch( wID ){
00071     case IDC_BUTTON_HELP:
00072         /* 「内容比較」のヘルプ */
00073         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00074         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_COMPARE) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00075         return TRUE;
00076 //  From Here Oct. 10, 2000 JEPRO added  Ref. code はCDlgFind.cpp の OnBnClicked
00077 //  チェックボックスをボタン化してCDlgCompare.cppに直接書き込んでみたが失敗
00078 //  ダイアログのボタンは下に不可視化しておいてあります。
00079 //  以下の追加コードは全部消して結構ですから誰か作ってください。水平スクロールも入れてくれるとなおうれしいです。
00080 //  case IDC_BUTTON1:   /* 上下に表示 */
00081 //      /* ダイアログデータの取得 */
00082 //      return TRUE;
00083 //  case IDOK:          /* 左右に表示 */
00084 //      /* ダイアログデータの取得 */
00085 //      HWND    hwndCompareWnd;
00086 //      HWND*   phwndArr;
00087 //      int     i;
00088 //      phwndArr = new HWND[2];
00089 //      phwndArr[0] = ::GetParent( m_hwndParent );
00090 //      phwndArr[1] = hwndCompareWnd;
00091 //      for( i = 0; i < 2; ++i ){
00092 //          if( ::IsZoomed( phwndArr[i] ) ){
00093 //              ::ShowWindow( phwndArr[i], SW_RESTORE );
00094 //          }
00095 //      }
00096 //      ::TileWindows( NULL, MDITILE_VERTICAL, NULL, 2, phwndArr );
00097 //      delete [] phwndArr;
00098 //      CloseDialog( 0 );
00099 //      return TRUE;
00100 //  To Here Oct. 10, 2000
00101     case IDOK:          /* 左右に表示 */
00102         /* ダイアログデータの取得 */
00103         ::EndDialog( GetHwnd(), GetData() );
00104         return TRUE;
00105     case IDCANCEL:
00106         ::EndDialog( GetHwnd(), FALSE );
00107         return TRUE;
00108     }
00109     /* 基底クラスメンバ */
00110     return CDialog::OnBnClicked( wID );
00111 }
00112
00113
00114 /* ダイアログデータの設定 */
00115 void CDlgCompare::SetData( void )
00116 {
00117     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00118     HWND            hwndList;
00119     int             nRowNum;
00120     EditNode*       pEditNodeArr;
00121     FileInfo*       pfi;
00122     int             i;
00123     TCHAR           szMenu[512];
00124     int             nItem;
00125
00126     hwndList = :: GetDlgItem( GetHwnd(), IDC_LIST_FILES );
00127
00128 //  2002/2/10 aroka ファイル名で比較しないため不用 (2001.12.26 YAZAKIさん)
00129 //  //  Oct. 15, 2001 genta ファイル名判定の stricmpをbccでも期待通り動かすため
00130 //  setlocale ( LC_ALL, "C" );
00131
00132     /* 現在開いている編集窓のリストをメニューにする */
00133     nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
00134     if( nRowNum > 0 ){
00135         for( i = 0; i < nRowNum; ++i ){
00136             /* トレイからエディタへの編集ファイル名要求通知 */
00137 			::SendMessageAny( pEditNodeArr[i].GetHwnd(), MYWM_GETFILEINFO, 0, 0 );
00138             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00139
00140 //@@@ 2001.12.26 YAZAKI ファイル名で比較すると(無題)だったときに問題同士の比較ができない
00141 //          if( 0 == stricmp( pfi->m_szPath, m_pszPath ) ){
00142             if (pEditNodeArr[i].GetHwnd() == pCEditDoc->GetOwnerHwnd()){
00143                 continue;
00144             }
00145             auto_sprintf(
00146                 szMenu,
00147                 _T("%ls %ls"),
00148                 (0 < _tcslen(pfi->m_szPath))?pfi->m_szPath:_T("(無題)"),
00149                 pfi->m_bIsModified ? _T("*"):_T(" ")
00150             );
00151             // gm_pszCodeNameArr_Bracket からコピーするように変更
00152             if(IsValidCodeTypeExceptSJIS(pfi->m_nCharCode)){
00153                 _tcscat( szMenu, gm_pszCodeNameArr_Bracket[pfi->m_nCharCode] );
00154             }
00155             nItem = ::List_AddString( hwndList, szMenu );
00156 			::SendMessageAny( hwndList, LB_SETITEMDATA, nItem, (LPARAM)pEditNodeArr[i].GetHwnd() );
00157         }
00158         delete [] pEditNodeArr;
00159         // 2002/11/01 Moca 追加 リストビューの横幅を設定。これをやらないと水平スクロールバーが使えない
00160 		::SendMessageAny( hwndList, LB_SETHORIZONTALEXTENT, (WPARAM)1000, 0 );
00161     }
00162 	::SendMessageAny( hwndList, LB_SETCURSEL, (WPARAM)0, 0 );
00163     TCHAR   szWork[512];
00164     auto_sprintf( szWork, _T("%ls %ls"),
00165         (0 < _tcslen( m_pszPath )?m_pszPath:_T("(無題)") ),
00166         m_bIsModified?_T("*"):_T("")
00167     );
00168 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_COMPARESRC, szWork );
00169     /* 左右に並べて表示 */
00170     //@@@ 2003.06.12 MIK
00171     // TAB 1ウィンドウ表示のときは並べて比較できなくする
00172     if( TRUE  == m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd
00173      && FALSE == m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
00174     {
00175         m_bCompareAndTileHorz = FALSE;
00176         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_TILE_H ), FALSE );
00177     }
00178     ::CheckDlgButton( GetHwnd(), IDC_CHECK_TILE_H, m_bCompareAndTileHorz );
00179     return;
00180 }
00181
00182
00183
00184
00185 /* ダイアログデータの取得 */
00186 /* TRUE==正常  FALSE==入力エラー */
00187 int CDlgCompare::GetData( void )
00188 {
00189     HWND            hwndList;
00190     int             nItem;
00191     FileInfo*       pfi;
00192     hwndList = :: GetDlgItem( GetHwnd(), IDC_LIST_FILES );
00193     nItem = ::SendMessageAny( hwndList, LB_GETCURSEL, 0, 0 );
00194     *m_phwndCompareWnd = (HWND)::SendMessageAny( hwndList, LB_GETITEMDATA, nItem, 0 );
00195     /* トレイからエディタへの編集ファイル名要求通知 */
00196 	::SendMessageAny( *m_phwndCompareWnd, MYWM_GETFILEINFO, 0, 0 );
00197     pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00198
00199     _tcscpy( m_pszComparePath, pfi->m_szPath );
00200
00201     /* 左右に並べて表示 */
00202     m_bCompareAndTileHorz = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_TILE_H );
00203
00204     return TRUE;
00205 }
00206
00207 //@@@ 2002.01.18 add start
00208 LPVOID CDlgCompare::GetHelpIdTable(void)
00209 {
00210     return (LPVOID)p_helpids;
00211 }
00212 //@@@ 2002.01.18 add end
00213
00214 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCompare.h

sakura_core

CDlgCompare.h

ファイル比較ダイアログボックス [詳細]

#include "CDialog.h"

CDlgCompare.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCompare
ファイル比較ダイアログボックス [詳細]

説明

ファイル比較ダイアログボックス

作者:
Norio Nakatani

CDlgCompare.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCompare.h ソースファイル

sakura_core

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 TCHAR*, BOOL, TCHAR*, HWND* );  /* モーダルダイアログの表示 */
00035
00036     const TCHAR*        m_pszPath;
00037     BOOL            m_bIsModified;
00038     TCHAR*      m_pszComparePath;
00039     HWND*           m_phwndCompareWnd;
00040     BOOL            m_bCompareAndTileHorz;/* 左右に並べて表示 */
00041
00042 protected:
00043     /*
00044     ||  実装ヘルパ関数
00045     */
00046     BOOL OnBnClicked( int );
00047     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00048
00049     void SetData( void );   /* ダイアログデータの設定 */
00050     int GetData( void );    /* ダイアログデータの取得 */
00051 };
00052
00053
00054
00056 #endif /* _CDLGCOMPARE_H_ */
00057
00058 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCtrlCode.cpp

sakura_core

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 "debug.h"
#include "util/shell.h"
#include "sakura.hh"

CDlgCtrlCode.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | ctrl_info_t

変数

const DWORD | p_helpids []
struct ctrl_info_t | p_ctrl_list []

説明

コントロールコード入力ダイアログボックス

作者:
MIK
日付:
2002.6.2

CDlgCtrlCode.cpp で定義されています。

変数

struct ctrl_info_t p_ctrl_list[]

参照元 CDlgCtrlCode::GetData(), 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 Nov 17 20:25:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCtrlCode.cpp ソースファイル

sakura_core

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 "debug.h"
00042 #include "util/shell.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     wchar_t         code;       //入力する文字コード
00056     unsigned int    vKey;       //表記
00057     TCHAR           name[4];    //名前
00058     TCHAR           *jname;     //説明
00059 } static const p_ctrl_list[] = {
00060     { 0x0000, 0x00c0, _T("NUL"), _T("空文字")    }, //NULL
00061     { 0x0001, 'A', _T("SOH"), _T("ヘッダ開始")   }, //START OF HEADING
00062     { 0x0002, 'B', _T("STX"), _T("テキスト開始") }, //START OF TEXT
00063     { 0x0003, 'C', _T("ETX"), _T("テキスト終了") }, //END OF TEXT
00064     { 0x0004, 'D', _T("EOT"), _T("転送終了")     }, //END OF TRANSMISSION
00065     { 0x0005, 'E', _T("ENQ"), _T("照会")         }, //ENQUIRY
00066     { 0x0006, 'F', _T("ACK"), _T("受信OK")       }, //ACKNOWLEDGE
00067     { 0x0007, 'G', _T("BEL"), _T("警告(ベル)")   }, //BELL
00068     { 0x0008, 'H', _T("BS"),  _T("後退")         }, //BACKSPACE
00069     { 0x0009, 'I', _T("HT"),  _T("タブ")         }, //horizontal tabulation (HT)
00070     { 0x000a, 'J', _T("LF"),  _T("改行")         },   //LINE FEED (LF); new line (NL); end of line(EOL)
00071     { 0x000b, 'K', _T("VT"),  _T("垂直タブ")     }, //vertical tabulation (VT)
00072     { 0x000c, 'L', _T("FF"),  _T("改ページ")     }, //FORM FEED (FF)
00073     { 0x000d, 'M', _T("CR"),  _T("復帰")         }, //CARRIAGE RETURN
00074     { 0x000e, 'N', _T("SO"),  _T("シフトアウト") }, //SHIFT OUT
00075     { 0x000f, 'O', _T("SI"),  _T("シフトイン")   }, //SHIFT IN
00076     { 0x0010, 'P', _T("DLE"), _T("データリンクエスケープ") }, //DATA LINK ESCAPE
00077     { 0x0011, 'Q', _T("DC1"), _T("装置制御1")    }, //DEVICE CONTROL ONE
00078     { 0x0012, 'R', _T("DC2"), _T("装置制御2")    }, //DEVICE CONTROL TWO
00079     { 0x0013, 'S', _T("DC3"), _T("装置制御3")    }, //DEVICE CONTROL THREE
00080     { 0x0014, 'T', _T("DC4"), _T("装置制御4")    }, //DEVICE CONTROL FOUR
00081     { 0x0015, 'U', _T("NAK"), _T("受信失敗")     }, //NEGATIVE ACKNOWLEDGE
00082     { 0x0016, 'V', _T("SYN"), _T("同期")         }, //SYNCHRONOUS IDLE
00083     { 0x0017, 'W', _T("ETB"), _T("転送ブロック終了") }, //END OF TRANSMISSION BLOCK
00084     { 0x0018, 'X', _T("CAN"), _T("キャンセル")   }, //CANCEL
00085     { 0x0019, 'Y', _T("EM"),  _T("メディア終了") }, //END OF MEDIUM
00086     { 0x001a, 'Z', _T("SUB"), _T("置換")         }, //SUBSTITUTE
00087     { 0x001b, 0x00db, _T("ESC"), _T("エスケープ")   }, //ESCAPE
00088     { 0x001c, 0x00dc, _T("FS"),  _T("フォーム区切") }, //file separator (FS)
00089     { 0x001d, 0x00dd, _T("GS"),  _T("グループ区切") }, //group separator (GS)
00090     { 0x001e, 0x00de, _T("RS"),  _T("レコード区切") }, //record separator (RS)
00091     { 0x001f, 0x00e2, _T("US"),  _T("ユニット区切") }, //unit separator (US)
00092     { 0x007f, 0x00bf, _T("DEL"), _T("削除")         }, //DELETE
00093
00094     //internal data
00095     { 0x001f, 0x00df, _T("US"),  NULL } //PC98 "_"  //unit separator (US)
00096 };
00097 // Feb. 12, 2003 MIK longが抜けていた
00098
00099 CDlgCtrlCode::CDlgCtrlCode()
00100 {
00101     m_nCode = L'\0';
00102 }
00103
00104 /* モーダルダイアログの表示 */
00105 int CDlgCtrlCode::DoModal(
00106     HINSTANCE   hInstance,
00107     HWND        hwndParent,
00108     LPARAM      lParam
00109 )
00110 {
00111     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_CTRLCODE, lParam );
00112 }
00113
00114 /* ダイアログデータの設定 */
00115 void CDlgCtrlCode::SetData( void )
00116 {
00117     HWND    hwndWork;
00118     int     i, count;
00119     long    lngStyle;
00120     LV_ITEM lvi;
00121
00122     /* リスト */
00123     hwndWork = ::GetDlgItem( GetHwnd(), IDC_LIST_CTRLCODE );
00124     ListView_DeleteAllItems( hwndWork );  /* リストを空にする */
00125
00126     /* 行選択 */
00127     lngStyle = ::SendMessageAny( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00128     lngStyle |= LVS_EX_FULLROWSELECT;
00129 	::SendMessageAny( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00130
00131     /* データ表示 */
00132     TCHAR   tmp[10];
00133     count = 0;
00134     for( i = 0; i < _countof(p_ctrl_list); i++ )
00135     {
00136         if( p_ctrl_list[i].jname == NULL ) continue;
00137
00138         auto_sprintf( tmp, _T("0x%02X"), p_ctrl_list[i].code );
00139         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00140         lvi.pszText  = tmp;
00141         lvi.iItem    = count;
00142         lvi.iSubItem = 0;
00143         lvi.lParam   = 0;
00144         ListView_InsertItem( hwndWork, &lvi );
00145
00146         if( p_ctrl_list[i].code <= 0x1f )
00147             auto_sprintf( tmp, _T("^%tc"), _T('@') + p_ctrl_list[i].code );
00148         else if( p_ctrl_list[i].code == 0x7f )
00149             _tcscpy( tmp, _T("^?") );
00150         else
00151             _tcscpy( tmp, _T("･") );
00152         lvi.mask     = LVIF_TEXT;
00153         lvi.iItem    = count;
00154         lvi.iSubItem = 1;
00155         lvi.pszText  = tmp;
00156         ListView_SetItem( hwndWork, &lvi );
00157
00158         lvi.mask     = LVIF_TEXT;
00159         lvi.iItem    = count;
00160         lvi.iSubItem = 2;
00161         lvi.pszText  = const_cast<TCHAR*>(p_ctrl_list[i].name);
00162         ListView_SetItem( hwndWork, &lvi );
00163
00164         lvi.mask     = LVIF_TEXT;
00165         lvi.iItem    = count;
00166         lvi.iSubItem = 3;
00167         lvi.pszText  = p_ctrl_list[i].jname;
00168         ListView_SetItem( hwndWork, &lvi );
00169
00170         count++;
00171     }
00172     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00173
00174     return;
00175 }
00176
00177 /* ダイアログデータの取得 */
00178 /* TRUE==正常  FALSE==入力エラー */
00179 int CDlgCtrlCode::GetData( void )
00180 {
00181     int     nIndex;
00182     HWND    hwndList;
00183
00184     hwndList = GetDlgItem( GetHwnd(), IDC_LIST_CTRLCODE );
00185     //選択中のキー番号を探す。
00186     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00187     if( nIndex == -1 ) return FALSE;
00188
00189     m_nCode = p_ctrl_list[nIndex].code;
00190
00191     return TRUE;
00192 }
00193
00194 BOOL CDlgCtrlCode::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00195 {
00196     HWND        hwndList;
00197     LV_COLUMN   col;
00198     RECT        rc;
00199
00200     _SetHwnd( hwndDlg );
00201
00202     hwndList = GetDlgItem( hwndDlg, IDC_LIST_CTRLCODE );
00203     ::GetWindowRect( hwndList, &rc );
00204
00205     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00206     col.fmt      = LVCFMT_LEFT;
00207     col.cx       = (rc.right - rc.left) * 15 / 100;
00208     col.pszText  = _T("コード");
00209     col.iSubItem = 0;
00210     ListView_InsertColumn( hwndList, 0, &col );
00211
00212     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00213     col.fmt      = LVCFMT_LEFT;
00214     col.cx       = (rc.right - rc.left) * 15 / 100;
00215     col.pszText  = _T("表記");
00216     col.iSubItem = 1;
00217     ListView_InsertColumn( hwndList, 1, &col );
00218
00219     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00220     col.fmt      = LVCFMT_LEFT;
00221     col.cx       = (rc.right - rc.left) * 15 / 100;
00222     col.pszText  = _T("名前");
00223     col.iSubItem = 2;
00224     ListView_InsertColumn( hwndList, 2, &col );
00225
00226     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00227     col.fmt      = LVCFMT_LEFT;
00228     col.cx       = (rc.right - rc.left) * 46 / 100;
00229     col.pszText  = _T("説明");
00230     col.iSubItem = 3;
00231     ListView_InsertColumn( hwndList, 3, &col );
00232
00233     /* 基底クラスメンバ */
00234     return CDialog::OnInitDialog( GetHwnd(), wParam, lParam );
00235 }
00236
00237 BOOL CDlgCtrlCode::OnBnClicked( int wID )
00238 {
00239     switch( wID )
00240     {
00241     case IDC_BUTTON_HELP:
00242         /* ヘルプ */
00243         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_CTRL_CODE_DIALOG) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00244         return TRUE;
00245
00246     case IDOK:          /* 左右に表示 */
00247         /* ダイアログデータの取得 */
00248         ::EndDialog( GetHwnd(), GetData() );
00249         return TRUE;
00250
00251     case IDCANCEL:
00252         ::EndDialog( GetHwnd(), FALSE );
00253         return TRUE;
00254
00255     }
00256
00257     /* 基底クラスメンバ */
00258     return CDialog::OnBnClicked( wID );
00259 }
00260
00261 BOOL CDlgCtrlCode::OnNotify( WPARAM wParam, LPARAM lParam )
00262 {
00263     NMHDR*  pNMHDR;
00264     HWND    hwndList;
00265
00266     pNMHDR = (NMHDR*)lParam;
00267
00268     hwndList = GetDlgItem( GetHwnd(), IDC_LIST_CTRLCODE );
00269
00270     if( hwndList == pNMHDR->hwndFrom )
00271     {
00272         switch( pNMHDR->code )
00273         {
00274         case NM_DBLCLK:
00275             ::EndDialog( GetHwnd(), GetData() );
00276             return TRUE;
00277
00278         case LVN_KEYDOWN:
00279             {
00280                 HWND    hwndList;
00281                 NMKEY   *p = (NMKEY*)lParam;
00282                 int     i, j;
00283                 unsigned int    c;
00284                 for( i = 0; i < _countof(p_ctrl_list); i++ )
00285                 {
00286                     c = p_ctrl_list[i].vKey;
00287                     if( c == (p->nVKey & 0xffff) )
00288                     {
00289                         for( j = 0; j < _countof(p_ctrl_list); j++ )
00290                         {
00291                             if( p_ctrl_list[i].code == p_ctrl_list[j].code )
00292                             {
00293                                 hwndList = GetDlgItem( GetHwnd(), IDC_LIST_CTRLCODE );
00294                                 ListView_SetItemState( hwndList, j, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00295                                 ListView_EnsureVisible( hwndList, j, FALSE );
00296
00297                                 /* ダイアログデータの取得 */
00298                                 ::EndDialog( GetHwnd(), GetData() );
00299                                 return TRUE;
00300                             }
00301                         }
00302                         break;
00303                     }
00304                 }
00305             }
00306             break;
00307         }
00308     }
00309
00310     /* 基底クラスメンバ */
00311     return CDialog::OnNotify( wParam, lParam );
00312 }
00313
00314 LPVOID CDlgCtrlCode::GetHelpIdTable( void )
00315 {
00316     return (LPVOID)p_helpids;
00317 }
00318
00319 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCtrlCode.h

sakura_core

CDlgCtrlCode.h

コントロールコード入力ダイアログボックス [詳細]

#include "CDialog.h"

CDlgCtrlCode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCtrlCode
コントロールコード入力ダイアログボックス [詳細]

説明

コントロールコード入力ダイアログボックス

作者:
MIK
日付:
2002.6.2

CDlgCtrlCode.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgCtrlCode.h ソースファイル

sakura_core

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 //2007.10.18 kobake GetCharCode()を作成。
00041 class CDlgCtrlCode : public CDialog
00042 {
00043 public:
00044     /*
00045     ||  Constructors
00046     */
00047     CDlgCtrlCode();
00048
00049     /*
00050     ||  Attributes & Operations
00051     */
00052     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00053
00054     wchar_t GetCharCode() const{ return m_nCode; }
00055
00056 private:
00057     /*
00058     ||  実装ヘルパ関数
00059     */
00060     BOOL    OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00061     BOOL    OnBnClicked( int );
00062     BOOL    OnNotify( WPARAM wParam, LPARAM lParam );
00063     LPVOID  GetHelpIdTable( void );
00064
00065     void    SetData( void );    /* ダイアログデータの設定 */
00066     int     GetData( void );    /* ダイアログデータの取得 */
00067
00068 private:
00069     /*
00070     || メンバ変数
00071     */
00072     wchar_t     m_nCode;    // コード
00073 };
00074
00075
00076
00078 #endif /* _CDLGCTRLCODE_H_ */
00079
00080 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDebug.cpp

sakura_core

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 Nov 17 20:25:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDebug.cpp ソースファイル

sakura_core

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, const CNativeA& 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         ::SetDlgItemTextA( hwndDlg, IDC_EDIT_DEBUG, m_cmemDebugInfo.GetStringPtr() );
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 Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDebug.h

sakura_core

CDlgDebug.h

#include <windows.h>
#include "CMemory.h"

CDlgDebug.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgDebug

説明

作者:
Norio Nakatani

CDlgDebug.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDebug.h ソースファイル

sakura_core

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, const CNativeA& );    /* モーダルダイアログの表示 */
00040
00041     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00042     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00043     HWND        m_hWnd;     /* このダイアログのハンドル */
00044
00045 private:
00046     CNativeA        m_cmemDebugInfo;
00047
00048
00049 protected:
00050     /*
00051     ||  実装ヘルパ関数
00052     */
00053 };
00054
00055
00056
00058 #endif /* _CDLGDEBUG_H_ */
00059
00060 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDiff.cpp

sakura_core

CDlgDiff.cpp

DIFF差分表示ダイアログボックス [詳細]

#include "stdafx.h"
#include <string.h>
#include "sakura_rc.h"
#include "CDlgOpenFile.h"
#include "CDlgDiff.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "util/shell.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 Nov 17 20:25:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDiff.cpp ソースファイル

sakura_core

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 "debug.h"
00025 #include "CEditDoc.h"
00026 #include "global.h"
00027 #include "funccode.h"
00028 #include "mymessage.h"
00029 #include "util/shell.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     m_szFile1[0] = 0;
00063     m_szFile2[0] = 0;
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 TCHAR*        pszPath,        //自ファイル
00078     BOOL                bIsModified     //自ファイル編集中？
00079 )
00080 {
00081     _tcscpy(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( GetHwnd(), 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             TCHAR           szPath[_MAX_PATH];
00100             _tcscpy( szPath, m_szFile2 );
00101             /* ファイルオープンダイアログの初期化 */
00102             cDlgOpenFile.Create(
00103                 m_hInstance,
00104                 GetHwnd(),
00105                 _T("*.*"),
00106                 m_szFile1 /*m_szFile2*/
00107             );
00108             if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) )
00109             {
00110                 _tcscpy( m_szFile2, szPath );
00111 				::DlgItem_SetText( GetHwnd(), IDC_EDIT_DIFF_DST, m_szFile2 );
00112                 //外部ファイルを選択状態に
00113                 ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, TRUE );
00114                 ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, FALSE );
00115 				::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00116             }
00117         }
00118         return TRUE;
00119
00120     case IDOK:          /* 左右に表示 */
00121         /* ダイアログデータの取得 */
00122         ::EndDialog( GetHwnd(), GetData() );
00123         return TRUE;
00124
00125     case IDCANCEL:
00126         ::EndDialog( GetHwnd(), FALSE );
00127         return TRUE;
00128
00129     case IDC_RADIO_DIFF_DST1:
00130         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, FALSE );
00131         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_DIFF_DST ), TRUE );
00132         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_DIFF_DST ), TRUE );
00133         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES ), FALSE );
00134         //  Feb. 28, 2004 genta 選択解除前に前回の位置を記憶
00135         {
00136             int n = ::SendMessageAny( GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES ), LB_GETCURSEL, 0, 0 );
00137             if( n != LB_ERR ){
00138                 m_nIndexSave = n;
00139             }
00140         }
00141 		::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00142         return TRUE;
00143
00144     case IDC_RADIO_DIFF_DST2:
00145         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, FALSE );
00146         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_DIFF_DST ), FALSE );
00147         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_DIFF_DST ), FALSE );
00148         //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES ), TRUE );
00149         {
00150             //  Aug. 9, 2003 genta
00151             //  ListBoxが選択されていなかったら，先頭のファイルを選択する．
00152             HWND hwndList = GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES );
00153             if( ::SendMessageAny( hwndList, LB_GETCURSEL, 0, 0 ) == LB_ERR )
00154             {
00155 				::SendMessageAny( hwndList, LB_SETCURSEL, m_nIndexSave, 0 );
00156             }
00157         }
00158         return TRUE;
00159
00160     case IDC_RADIO_DIFF_FILE1:
00161         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_FILE2, FALSE );
00162         return TRUE;
00163
00164     case IDC_RADIO_DIFF_FILE2:
00165         ::CheckDlgButton( GetHwnd(), 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 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_DIFF_SRC, m_szFile1 );
00178
00179     //オプション
00180     m_nDiffFlgOpt = m_pShareData->m_nDiffFlgOpt;
00181     if( m_nDiffFlgOpt & 0x0001 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_OPT_CASE,   TRUE );
00182     if( m_nDiffFlgOpt & 0x0002 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_OPT_SPACE,  TRUE );
00183     if( m_nDiffFlgOpt & 0x0004 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_OPT_SPCCHG, TRUE );
00184     if( m_nDiffFlgOpt & 0x0008 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_OPT_BLINE,  TRUE );
00185     if( m_nDiffFlgOpt & 0x0010 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_OPT_TABSPC, TRUE );
00186
00187     //新旧ファイル
00188     if( m_nDiffFlgOpt & 0x0020 )
00189     {
00190         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_FILE1, FALSE );
00191         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_FILE2, TRUE );
00192     }
00193     else
00194     {
00195         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_FILE1, TRUE );
00196         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_FILE2, FALSE );
00197     }
00198     //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_FRAME_DIFF_FILE12 ), FALSE );
00199     //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_DIFF_FILE1 ), FALSE );
00200     //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_DIFF_FILE2 ), FALSE );
00201
00202     //DIFF差分が見つからないときにメッセージを表示 2003.05.12 MIK
00203     if( m_nDiffFlgOpt & 0x0040 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_DIFF_EXEC_STATE, TRUE );
00204
00205     /* 見つからないときメッセージを表示 */
00206     ::CheckDlgButton( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND, m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND );
00207
00208     /* 先頭（末尾）から再検索 */
00209     ::CheckDlgButton( GetHwnd(), IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_sSearch.m_bSearchAll );
00210
00211     /* 編集中のファイル一覧を作成する */
00212     {
00213         HWND        hwndList;
00214         int         nRowNum;
00215         EditNode    *pEditNode;
00216         FileInfo    *pFileInfo;
00217         int         i;
00218         int         nItem;
00219         WIN_CHAR    szName[_MAX_PATH];
00220         CEditDoc*   pCEditDoc = (CEditDoc*)m_lParam;
00221         int         count = 0;
00222
00223         /* リストのハンドル取得 */
00224         hwndList = :: GetDlgItem( GetHwnd(), 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 				::SendMessageAny( pEditNode[i].GetHwnd(), MYWM_GETFILEINFO, 0, 0 );
00234                 pFileInfo = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00235
00236                 /* 自分ならスキップ */
00237                 if ( pEditNode[i].GetHwnd() == pCEditDoc->GetOwnerHwnd() )
00238                 {
00239                     continue;
00240                 }
00241
00242                 /* ファイル名を作成する */
00243                 auto_sprintf(
00244                     szName,
00245                     _T("%ts %ts"),
00246                     ( _tcslen( pFileInfo->m_szPath ) ) ? pFileInfo->m_szPath : _T("(無題)"),
00247                     pFileInfo->m_bIsModified ? _T("*") : _T(" ")
00248                 );
00249
00250                 // gm_pszCodeNameArr_Bracket からコピーするように変更
00251                 if(IsValidCodeTypeExceptSJIS(pFileInfo->m_nCharCode)){
00252                     _tcscat( szName, gm_pszCodeNameArr_Bracket[pFileInfo->m_nCharCode] );
00253                 }
00254
00255                 /* リストに登録する */
00256                 nItem = ::List_AddString( hwndList, szName );
00257 				::SendMessageAny( hwndList, LB_SETITEMDATA, nItem, (LPARAM)pEditNode[i].GetHwnd() );
00258                 count++;
00259             }
00260
00261             delete [] pEditNode;
00262             // 2002/11/01 Moca 追加 リストビューの横幅を設定。これをやらないと水平スクロールバーが使えない
00263 			::SendMessageAny( hwndList, LB_SETHORIZONTALEXTENT, (WPARAM)1000, 0 );
00264
00265             /* 最初を選択 */
00266             //::SendMessageAny( hwndList, LB_SETCURSEL, (WPARAM)0, 0 );
00267         }
00268
00269         //  From Here 2004.02.22 じゅうじ
00270         //  開いているファイルがある場合には初期状態でそちらを優先
00271         if( count == 0 )
00272         {
00273             /* 相手ファイルの選択 */
00274             ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, TRUE );
00275             ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, FALSE );
00276             /* その他の編集中リストはなし */
00277             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_DIFF_DST2 ), FALSE );
00278             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES ), FALSE );
00279         }
00280         else
00281         {
00282             /* 相手ファイルの選択 */
00283             ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, FALSE );
00284             ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, TRUE );
00285             //  ListBoxが選択されていなかったら，先頭のファイルを選択する．
00286             HWND hwndList = GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES );
00287             if( ::SendMessageAny( hwndList, LB_GETCURSEL, 0, 0 ) == LB_ERR )
00288             {
00289 			    ::SendMessageAny( hwndList, LB_SETCURSEL, 0 /*先頭アイテム*/, 0 );
00290             }
00291         }
00292         //  To Here 2004.02.22 じゅうじ
00293         //  Feb. 28, 2004 genta 一番上を選択位置とする．
00294         m_nIndexSave = 0;
00295     }
00296
00297     return;
00298 }
00299
00300 /* ダイアログデータの取得 */
00301 /* TRUE==正常  FALSE==入力エラー */
00302 int CDlgDiff::GetData( void )
00303 {
00304     BOOL    ret = TRUE;
00305
00306     //DIFFオプション
00307     m_nDiffFlgOpt = 0;
00308     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_OPT_CASE   ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0001;
00309     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_OPT_SPACE  ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0002;
00310     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_OPT_SPCCHG ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0004;
00311     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_OPT_BLINE  ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0008;
00312     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_OPT_TABSPC ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0010;
00313     //ファイル新旧
00314     if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_DIFF_FILE2      ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0020;
00315     //DIFF差分が見つからないときにメッセージを表示 2003.05.12 MIK
00316     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_DIFF_EXEC_STATE ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0040;
00317     m_pShareData->m_nDiffFlgOpt = m_nDiffFlgOpt;
00318
00319     //相手ファイル名
00320     _tcscpy( m_szFile2, _T("") );
00321     m_hWnd_Dst = NULL;
00322     m_bIsModifiedDst = FALSE;
00323     if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_DIFF_DST1 ) == BST_CHECKED )
00324     {
00325 		::DlgItem_GetText( GetHwnd(), IDC_EDIT_DIFF_DST, m_szFile2, _countof2(m_szFile2) );
00326         //  2004.05.19 MIK 外部ファイルが指定されていない場合はキャンセル
00327         //相手ファイルが指定されてなければキャンセル
00328         if( m_szFile2[0] == '\0' ) ret = FALSE;
00329
00330     }
00331     else if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_DIFF_DST2 ) == BST_CHECKED )
00332     {
00333         HWND        hwndList;
00334         int         nItem;
00335         FileInfo    *pFileInfo;
00336
00337         /* リストから相手のウインドウハンドルを取得 */
00338         hwndList = :: GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES );
00339         nItem = ::SendMessageAny( hwndList, LB_GETCURSEL, 0, 0 );
00340         if( nItem != LB_ERR )
00341         {
00342             m_hWnd_Dst = (HWND)::SendMessageAny( hwndList, LB_GETITEMDATA, nItem, 0 );
00343
00344             /* トレイからエディタへの編集ファイル名要求通知 */
00345 			::SendMessageAny( m_hWnd_Dst, MYWM_GETFILEINFO, 0, 0 );
00346             pFileInfo = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00347
00348             _tcscpy( m_szFile2, pFileInfo->m_szPath );
00349             m_bIsModifiedDst = pFileInfo->m_bIsModified;
00350         }
00351         else
00352         {
00353             ret = FALSE;
00354         }
00355     }
00356     else
00357     {
00358         ret = FALSE;
00359     }
00360
00361     /* 見つからないときメッセージを表示 */
00362     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND ) == BST_CHECKED )
00363         m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND = TRUE;
00364     else
00365         m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND = FALSE;
00366
00367     /* 先頭（末尾）から再検索 */
00368     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_SEARCHALL ) == BST_CHECKED )
00369         m_pShareData->m_Common.m_sSearch.m_bSearchAll = TRUE;
00370     else
00371         m_pShareData->m_Common.m_sSearch.m_bSearchAll = FALSE;
00372
00373     //相手ファイルが指定されてなければキャンセル
00374     //  2004.02.21 MIK 相手が無題だと比較できないので判定削除
00375     //if( m_szFile2[0] == '\0' ) ret = FALSE;
00376
00377     return ret;
00378 }
00379
00380 BOOL CDlgDiff::OnCbnSelChange( HWND hwndCtl, int wID )
00381 {
00382     HWND    hwndList;
00383
00384     hwndList = GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES );
00385
00386     if( hwndList == hwndCtl )
00387     {
00388         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, FALSE );
00389         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, TRUE );
00390         return TRUE;
00391     }
00392
00393     /* 基底クラスメンバ */
00394     return CDialog::OnCbnSelChange( hwndCtl, wID );
00395 }
00396
00397 BOOL CDlgDiff::OnEditChange( HWND hwndCtl, int wID )
00398 {
00399     HWND    hwndEdit;
00400
00401     hwndEdit = GetDlgItem( GetHwnd(), IDC_EDIT_DIFF_DST );
00402
00403     if( hwndEdit == hwndCtl )
00404     {
00405         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST1, TRUE );
00406         ::CheckDlgButton( GetHwnd(), IDC_RADIO_DIFF_DST2, FALSE );
00407         //  Feb. 28, 2004 genta 選択解除前に前回の位置を記憶して選択解除
00408         int n = ::SendMessageAny( GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES ), LB_GETCURSEL, 0, 0 );
00409         if( n != LB_ERR ){
00410             m_nIndexSave = n;
00411         }
00412 		::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00413         return TRUE;
00414     }
00415
00416     /* 基底クラスメンバ */
00417     return CDialog::OnCbnSelChange( hwndCtl, wID );
00418 }
00419
00420 LPVOID CDlgDiff::GetHelpIdTable( void )
00421 {
00422     return (LPVOID)p_helpids;
00423 }
00424
00425 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDiff.h

sakura_core

CDlgDiff.h

DIFF差分表示ダイアログボックス [詳細]

#include "CDialog.h"

CDlgDiff.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgDiff
DIFF差分表示ダイアログボックス [詳細]

説明

DIFF差分表示ダイアログボックス

作者:
MIK
日付:
2002.5.27

CDlgDiff.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgDiff.h ソースファイル

sakura_core

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 TCHAR*, BOOL ); /* モーダルダイアログの表示 */
00053
00054     SFilePath   m_szFile1;  /* 自ファイル */
00055     SFilePath   m_szFile2;  /* 相手ファイル */
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 Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgExec.cpp

sakura_core

CDlgExec.cpp

外部コマンド実行ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgExec.h"
#include "funccode.h"
#include "sakura_rc.h"
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "debug.h"
#include "util/shell.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 Nov 17 20:25:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgExec.cpp ソースファイル

sakura_core

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 <windows.h>        //Mar. 28, 2001 JEPRO (一応入れたが不要？)
00023 #include <stdio.h>          //Mar. 28, 2001 JEPRO (一応入れたが不要？)
00024 #include <commctrl.h>       //Mar. 28, 2001 JEPRO
00025 #include "CDlgOpenFile.h"   //Mar. 28, 2001 JEPRO
00026 #include "debug.h"// 2002/2/10 aroka ヘッダ整理
00027 #include "util/shell.h"
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] = _T('\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] = _T('\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_A( "CDlgExec::SetData()" );
00070     int     i;
00071     HWND    hwndCombo;
00072
00073     /*****************************
00074     *           初期             *
00075     *****************************/
00076     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00077     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_m_szCommand ), CB_LIMITTEXT, _countof( m_szCommand ) - 1, 0 );
00078     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00079 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_m_szCommand ), CB_SETEXTENDEDUI, TRUE, 0 );
00080
00081
00082     // 標準出力を得る
00083 //  From Here Sept. 12, 2000 jeprotest
00084 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00085
00086     //  ::CheckDlgButton( GetHwnd(), IDC_CHECK_GETSTDOUT, m_pShareData->m_bGetStdout/*m_bGetStdout*/ ? BST_CHECKED : BST_UNCHECKED );
00087     //  ::CheckDlgButton( GetHwnd(), IDC_CHECK_GETSTDOUT, TRUE );
00088
00089 //  To Here Sept. 12, 2000  うまくいかないので元に戻してある
00090
00091     {   //  From Here 2007.01.02 maru 引数を拡張のため
00092         //  マクロからの呼び出しではShareDataに保存させないように，ShareDataとの受け渡しはExecCmdの外で
00093         int nExecFlgOpt;
00094         nExecFlgOpt = m_pShareData->m_nExecFlgOpt;
00095
00096         ::CheckDlgButton( GetHwnd(), IDC_CHECK_GETSTDOUT, nExecFlgOpt & 0x01 ? BST_CHECKED : BST_UNCHECKED );
00097         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUT, nExecFlgOpt & 0x02 ? BST_UNCHECKED : BST_CHECKED );
00098         ::CheckDlgButton( GetHwnd(), IDC_RADIO_EDITWINDOW, nExecFlgOpt & 0x02 ? BST_CHECKED : BST_UNCHECKED );
00099         ::CheckDlgButton( GetHwnd(), IDC_CHECK_SENDSTDIN, nExecFlgOpt & 0x04 ? BST_CHECKED : BST_UNCHECKED );
00100
00101         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_OUTPUT ), nExecFlgOpt & 0x01 ? TRUE : FALSE );
00102         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_EDITWINDOW ), nExecFlgOpt & 0x01 ? TRUE : FALSE );
00103     }   //  To Here 2007.01.02 maru 引数を拡張のため
00104
00105     /*****************************
00106     *         データ設定         *
00107     *****************************/
00108     _tcscpy( m_szCommand, m_pShareData->m_aCommands[0] );
00109     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_m_szCommand );
00110 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
00111 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_TEXT, m_szCommand );
00112     for( i = 0; i < m_pShareData->m_aCommands.size(); ++i ){
00113         Combo_AddString( hwndCombo, m_pShareData->m_aCommands[i] );
00114     }
00115 	::SendMessageAny( hwndCombo, CB_SETCURSEL, 0, 0 );
00116     return;
00117 }
00118
00119
00120
00121
00122 /* ダイアログデータの取得 */
00123 int CDlgExec::GetData( void )
00124 {
00125     DlgItem_GetText( GetHwnd(), IDC_COMBO_m_szCommand, m_szCommand, sizeof( m_szCommand ));
00126     {   //  From Here 2007.01.02 maru 引数を拡張のため
00127         //  マクロからの呼び出しではShareDataに保存させないように，ShareDataとの受け渡しはExecCmdの外で
00128         int nFlgOpt = 0;
00129         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_GETSTDOUT ) ) ? 0x01 : 0;    // 標準出力を得る
00130         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_EDITWINDOW ) ) ? 0x02 : 0;   // 標準出力を編集中のウインドウへ
00131         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_SENDSTDIN ) ) ? 0x04 : 0;    // 編集中ファイルを標準入力へ
00132         m_pShareData->m_nExecFlgOpt = nFlgOpt;
00133     }   //  To Here 2007.01.02 maru 引数を拡張のため
00134     return 1;
00135 }
00136
00137
00138
00139 BOOL CDlgExec::OnBnClicked( int wID )
00140 {
00141     switch( wID ){
00142     case IDC_CHECK_GETSTDOUT:
00143         {   //  From Here 2007.01.02 maru 引数を拡張のため
00144             BOOL bEnabled;
00145             bEnabled = (BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_GETSTDOUT)) ? TRUE : FALSE;
00146             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_OUTPUT ), bEnabled );
00147             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_EDITWINDOW ), bEnabled );
00148         }   //  To Here 2007.01.02 maru 引数を拡張のため
00149         break;
00150     case IDC_BUTTON_HELP:
00151         /* 「検索」のヘルプ */
00152         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00153         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_EXECCOMMAND_DIALOG) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00154         break;
00155
00156     //From Here Mar. 28, 2001 JEPRO
00157     case IDC_BUTTON_REFERENCE:  /* ファイル名の「参照...」ボタン */
00158         {
00159             CDlgOpenFile    cDlgOpenFile;
00160             TCHAR           szPath[_MAX_PATH + 1];
00161             _tcscpy( szPath, m_szCommand );
00162             /* ファイルオープンダイアログの初期化 */
00163             cDlgOpenFile.Create(
00164                 m_hInstance,
00165                 GetHwnd(),
00166                 _T("*.com;*.exe;*.bat"),
00167                 m_szCommand
00168             );
00169             if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00170                 _tcscpy( m_szCommand, szPath );
00171 				::DlgItem_SetText( GetHwnd(), IDC_COMBO_m_szCommand, m_szCommand );
00172             }
00173         }
00174         return TRUE;
00175     //To Here Mar. 28, 2001
00176
00177     case IDOK:          /* 下検索 */
00178         /* ダイアログデータの取得 */
00179         GetData();
00180         CloseDialog( 1 );
00181         return TRUE;
00182     case IDCANCEL:
00183         CloseDialog( 0 );
00184         return TRUE;
00185     }
00186     return FALSE;
00187 }
00188
00189 //@@@ 2002.01.18 add start
00190 LPVOID CDlgExec::GetHelpIdTable(void)
00191 {
00192     return (LPVOID)p_helpids;
00193 }
00194 //@@@ 2002.01.18 add end
00195
00196 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgExec.h

sakura_core

CDlgExec.h

外部コマンド実行ダイアログ [詳細]

#include "CDialog.h"

CDlgExec.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgExec

説明

外部コマンド実行ダイアログ

作者:
Norio Nakatani

CDlgExec.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgExec.h ソースファイル

sakura_core

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     TCHAR   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 Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFavorite.cpp

sakura_core

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 "debug.h"
#include "my_icmp.h"
#include "util/shell.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 Nov 17 20:25:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFavorite.cpp ソースファイル

sakura_core

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 "debug.h"
00043 #include "my_icmp.h"
00044 #include "util/shell.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     _tcscpy( m_szMsg, _T("") );
00082
00083     {
00084         memset_raw( m_aFavoriteInfo, 0, sizeof( m_aFavoriteInfo ) );
00085
00086         i = 0;
00087         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentFile;
00088         m_aFavoriteInfo[i].m_pszCaption = _T("ファイル");
00089         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_FILE;
00090         m_aFavoriteInfo[i].m_bHaveFavorite = true;
00091         m_aFavoriteInfo[i].m_bHaveView  = true;
00092
00093         i++;
00094         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentFolder;
00095         m_aFavoriteInfo[i].m_pszCaption = _T("フォルダ");
00096         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_FOLDER;
00097         m_aFavoriteInfo[i].m_bHaveFavorite = true;
00098         m_aFavoriteInfo[i].m_bHaveView  = true;
00099
00100         i++;
00101         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentSearch;
00102         m_aFavoriteInfo[i].m_pszCaption = _T("検索");
00103         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_SEARCH;
00104         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00105         m_aFavoriteInfo[i].m_bHaveView  = false;
00106
00107         i++;
00108         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentReplace;
00109         m_aFavoriteInfo[i].m_pszCaption = _T("置換");
00110         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_REPLACE;
00111         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00112         m_aFavoriteInfo[i].m_bHaveView  = false;
00113
00114         i++;
00115         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentGrepFile;
00116         m_aFavoriteInfo[i].m_pszCaption = _T("GREPファイル");
00117         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_GREP_FILE;
00118         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00119         m_aFavoriteInfo[i].m_bHaveView  = false;
00120
00121         i++;
00122         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentGrepFolder;
00123         m_aFavoriteInfo[i].m_pszCaption = _T("GREPフォルダ");
00124         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_GREP_FOLDER;
00125         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00126         m_aFavoriteInfo[i].m_bHaveView  = false;
00127
00128         i++;
00129         m_aFavoriteInfo[i].m_pRecent    = &m_cRecentCmd;
00130         m_aFavoriteInfo[i].m_pszCaption = _T("コマンド");
00131         m_aFavoriteInfo[i].m_nId        = IDC_LIST_FAVORITE_CMD;
00132         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00133         m_aFavoriteInfo[i].m_bHaveView  = false;
00134
00135         i++;
00136         m_aFavoriteInfo[i].m_pRecent    = NULL;
00137         m_aFavoriteInfo[i].m_pszCaption = NULL;
00138         m_aFavoriteInfo[i].m_nId        = -1;
00139         m_aFavoriteInfo[i].m_bHaveFavorite = false;
00140         m_aFavoriteInfo[i].m_bHaveView  = false;
00141
00142         /* これ以上増やすときはテーブルサイズも書き換えてね */
00143     }
00144 }
00145
00146 CDlgFavorite::~CDlgFavorite()
00147 {
00148     for( int nTab = 0; m_aFavoriteInfo[nTab].m_pRecent; nTab++ )
00149     {
00150         m_aFavoriteInfo[nTab].m_pRecent->Terminate();
00151     }
00152 }
00153
00154 /* モーダルダイアログの表示 */
00155 int CDlgFavorite::DoModal(
00156     HINSTANCE   hInstance,
00157     HWND        hwndParent,
00158     LPARAM      lParam
00159 )
00160 {
00161     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_FAVORITE, lParam );
00162 }
00163
00164 /* ダイアログデータの設定 */
00165 void CDlgFavorite::SetData( void )
00166 {
00167     int     nTab;
00168
00169     for( nTab = 0; NULL != m_aFavoriteInfo[nTab].m_pRecent; nTab++ )
00170     {
00171         SetDataOne( nTab, 0 );
00172     }
00173
00174 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_FAVORITE_MSG, _T("") );
00175
00176     return;
00177 }
00178
00179 /* ダイアログデータの設定 */
00180 void CDlgFavorite::SetDataOne( int nIndex, int nCurrentIndex )
00181 {
00182     HWND    hwndList;
00183     int     i;
00184     LV_ITEM lvi;
00185     int     nNewFocus = -1;
00186
00187     CRecent*    pRecent = m_aFavoriteInfo[nIndex].m_pRecent;
00188
00189     /* リスト */
00190     hwndList = ::GetDlgItem( GetHwnd(), m_aFavoriteInfo[nIndex].m_nId );
00191     ListView_DeleteAllItems( hwndList );  /* リストを空にする */
00192
00193     int     nViewCount = pRecent->GetViewCount();
00194     m_aFavoriteInfo[nIndex].m_nViewCount = nViewCount;
00195
00196     TCHAR   tmp[1024];
00197     for( i = 0; i < pRecent->GetItemCount(); i++ )
00198     {
00199         auto_sprintf( tmp, _T("%ts"), (i < nViewCount) ? _T(" ") : _T("(非表示)") );
00200         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00201         lvi.pszText  = tmp;
00202         lvi.iItem    = i;
00203         lvi.iSubItem = 0;
00204         lvi.lParam   = 0;
00205         ListView_InsertItem( hwndList, &lvi );
00206
00207         const TCHAR *p;
00208         p = pRecent->GetItemText( i );
00209         auto_sprintf( tmp, _T("%ts"), p ? p : _T("") );
00210         lvi.mask     = LVIF_TEXT;
00211         lvi.iItem    = i;
00212         lvi.iSubItem = 1;
00213         lvi.pszText  = tmp;
00214         ListView_SetItem( hwndList, &lvi );
00215
00216         if( m_aFavoriteInfo[nIndex].m_bHaveFavorite )
00217         {
00218             ListView_SetCheckState( hwndList, i, (BOOL)pRecent->IsFavorite( i ) );
00219         }
00220         ListView_SetItemState( hwndList, i, 0, LVIS_SELECTED | LVIS_FOCUSED );
00221
00222         if( i == nCurrentIndex ) nNewFocus = i;
00223     }
00224
00225     //アイテムがあってどれも非選択なら最初を選択する。
00226     if( i > 0 && -1 != nCurrentIndex && nNewFocus == -1 )
00227     {
00228         nNewFocus = 0;
00229     }
00230
00231     if( -1 != nNewFocus )
00232     {
00233         ListView_SetItemState( hwndList, nNewFocus, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00234         ListView_EnsureVisible( hwndList, nNewFocus, FALSE );
00235     }
00236
00237     return;
00238 }
00239
00240 /* ダイアログデータの取得 */
00241 /* TRUE==正常  FALSE==入力エラー */
00242 int CDlgFavorite::GetData( void )
00243 {
00244     HWND    hwndList;
00245     int     nCount;
00246     int     i;
00247     BOOL    bret;
00248     int     nTab;
00249
00250     for( nTab = 0; m_aFavoriteInfo[nTab].m_pRecent; nTab++ )
00251     {
00252         CRecent* pRecent = m_aFavoriteInfo[nTab].m_pRecent;
00253
00254         if( m_aFavoriteInfo[nTab].m_bHaveFavorite )
00255         {
00256             hwndList = GetDlgItem( GetHwnd(), m_aFavoriteInfo[nTab].m_nId );
00257
00258             nCount = ListView_GetItemCount( hwndList );
00259
00260             //お気に入りフラグを更新する。
00261             for( i = 0; i < nCount; i++ )
00262             {
00263                 bret = ListView_GetCheckState( hwndList, i );
00264                 pRecent->SetFavorite( i, bret ? true : false );
00265             }
00266
00267             //リストを更新する。
00268             pRecent->UpdateView();
00269         }
00270     }
00271
00272     return TRUE;
00273 }
00274
00275 BOOL CDlgFavorite::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00276 {
00277     HWND        hwndList;
00278     HWND        hwndBaseList;
00279     HWND        hwndTab;
00280     TCITEM      tcitem;
00281     LV_COLUMN   col;
00282     RECT        rc;
00283     int         nTab;
00284     POINT       po;
00285     long        lngStyle;
00286
00287     _SetHwnd( hwndDlg );
00288
00289     hwndTab = ::GetDlgItem( hwndDlg, IDC_TAB_FAVORITE );
00290     TabCtrl_DeleteAllItems( hwndTab );
00291
00292     //リストビューの表示位置を取得する。
00293     m_nCurrentTab = 0;
00294     hwndBaseList = ::GetDlgItem( hwndDlg, m_aFavoriteInfo[0].m_nId );
00295     {
00296         rc.left = rc.top = rc.right = rc.bottom = 0;
00297         ::GetWindowRect( hwndBaseList, &rc );
00298         po.x = rc.left;
00299         po.y = rc.top;
00300         ::ScreenToClient( hwndDlg, &po );
00301         rc.left = po.x;
00302         rc.top  = po.y;
00303         po.x = rc.right;
00304         po.y = rc.bottom;
00305         ::ScreenToClient( hwndDlg, &po );
00306         rc.right  = po.x;
00307         rc.bottom = po.y;
00308     }
00309
00310     for( nTab = 0; m_aFavoriteInfo[nTab].m_pRecent; nTab++ )
00311     {
00312         CRecent* pRecent = m_aFavoriteInfo[nTab].m_pRecent;
00313
00314         hwndList = GetDlgItem( hwndDlg, m_aFavoriteInfo[nTab].m_nId );
00315         ::MoveWindow( hwndList, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, FALSE );
00316         ::ShowWindow( hwndList, SW_HIDE );
00317
00318         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00319         col.fmt      = LVCFMT_LEFT;
00320         col.cx       = (rc.right - rc.left) * 16 / 100;
00321         col.pszText  = _T("お気に入り");
00322         col.iSubItem = 0;
00323         ListView_InsertColumn( hwndList, 0, &col );
00324
00325         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00326         col.fmt      = LVCFMT_LEFT;
00327         col.cx       = (rc.right - rc.left) * 79 / 100;
00328         col.pszText  = m_aFavoriteInfo[nTab].m_pszCaption;
00329         col.iSubItem = 1;
00330         ListView_InsertColumn( hwndList, 1, &col );
00331
00332         /* 行選択 */
00333         lngStyle = ::SendMessageAny( hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00334         lngStyle |= LVS_EX_FULLROWSELECT;
00335         if( m_aFavoriteInfo[nTab].m_bHaveFavorite ) lngStyle |= LVS_EX_CHECKBOXES;
00336 		::SendMessageAny( hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00337
00338         /* タブ項目追加 */
00339         tcitem.mask = TCIF_TEXT;
00340         tcitem.pszText = m_aFavoriteInfo[nTab].m_pszCaption;
00341         TabCtrl_InsertItem( hwndTab, nTab, &tcitem );
00342     }
00343
00344     hwndList = ::GetDlgItem( hwndDlg, m_aFavoriteInfo[m_nCurrentTab].m_nId );
00345     ::ShowWindow( hwndList, SW_SHOW );
00346     TabCtrl_SetCurSel( hwndTab, m_nCurrentTab );
00347     //ChangeSlider( m_nCurrentTab );
00348
00349     /* 基底クラスメンバ */
00350     return CDialog::OnInitDialog( GetHwnd(), wParam, lParam );
00351 }
00352
00353 BOOL CDlgFavorite::OnBnClicked( int wID )
00354 {
00355     switch( wID )
00356     {
00357     case IDC_BUTTON_HELP:
00358         /* ヘルプ */
00359         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID( F_FAVORITE ) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00360         return TRUE;
00361
00362     case IDOK:
00363         /* ダイアログデータの取得 */
00364         ::EndDialog( GetHwnd(), (BOOL)GetData() );
00365         return TRUE;
00366
00367     case IDCANCEL:
00368         ::EndDialog( GetHwnd(), FALSE );
00369         return TRUE;
00370
00371     case IDC_BUTTON_CLEAR:  //履歴のクリア
00372         {
00373 			::DlgItem_SetText( GetHwnd(), IDC_STATIC_FAVORITE_MSG, _T("") );
00374             HWND    hwndTab;
00375             int     nIndex;
00376             hwndTab = ::GetDlgItem( GetHwnd(), IDC_TAB_FAVORITE );
00377             nIndex = TabCtrl_GetCurSel( hwndTab );
00378             if( -1 != nIndex )
00379             {
00380                 int nRet;
00381
00382                 if( m_aFavoriteInfo[nIndex].m_bHaveFavorite )
00383                 {
00384                     nRet = ::MYMESSAGEBOX_A( GetHwnd(),
00385                         MB_YESNOCANCEL | MB_ICONQUESTION, GSTR_APPNAME_A,
00386                         "最近使った%tsの履歴を削除します。\n\nよろしいですか？\n\n"
00387                         "「はい」\tすべて削除します。\n"
00388                         "「いいえ」\tお気に入り以外を削除します。\n",
00389                         m_aFavoriteInfo[nIndex].m_pszCaption );
00390                 }
00391                 else
00392                 {
00393                     nRet = ::MYMESSAGEBOX_A( GetHwnd(),
00394                         MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME_A,
00395                         "最近使った%tsの履歴を削除します。\n\nよろしいですか？\n",
00396                         m_aFavoriteInfo[nIndex].m_pszCaption );
00397                 }
00398
00399                 CRecent *pRecent = m_aFavoriteInfo[nIndex].m_pRecent;
00400
00401                 switch( nRet )
00402                 {
00403                 case IDYES:
00404                 case IDOK:
00405                     if( pRecent ) pRecent->DeleteAllItem();
00406 					::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00407                         "最近使った%tsの履歴を削除しました。",
00408                         m_aFavoriteInfo[nIndex].m_pszCaption );
00409                     break;
00410
00411                 case IDNO:
00412                     if( pRecent )
00413                     {
00414                         HWND hwndList = ::GetDlgItem( GetHwnd(), m_aFavoriteInfo[nIndex].m_nId );
00415                         for( int i = pRecent->GetItemCount() - 1; i >= 0; i-- )
00416                         {
00417                             if( ! ListView_GetCheckState( hwndList, i ) ){
00418                                 pRecent->DeleteItem( i );
00419                             }
00420                             else {
00421                                 pRecent->SetFavorite( i );
00422                             }
00423                         }
00424                     }
00425 					::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00426                         "最近使った%tsの履歴(お気に入り以外)を削除しました。",
00427                         m_aFavoriteInfo[nIndex].m_pszCaption );
00428                     break;
00429
00430                 case IDCANCEL:
00431                 default:
00432                     break;
00433                 }
00434             }
00435         }
00436         return TRUE;
00437     }
00438
00439     /* 基底クラスメンバ */
00440     return CDialog::OnBnClicked( wID );
00441 }
00442
00443 BOOL CDlgFavorite::OnNotify( WPARAM wParam, LPARAM lParam )
00444 {
00445     LPNMHDR lpnmhdr;
00446     HWND    hwndTab;
00447     HWND    hwndList;
00448     int     nIndex;
00449
00450     hwndTab = ::GetDlgItem( GetHwnd(), IDC_TAB_FAVORITE );
00451     lpnmhdr = (LPNMHDR) lParam;
00452     if( lpnmhdr->hwndFrom == hwndTab )
00453     {
00454         switch( lpnmhdr->code )
00455         {
00456         case TCN_SELCHANGE:
00457 			::DlgItem_SetText( GetHwnd(), IDC_STATIC_FAVORITE_MSG, _T("") );
00458             nIndex = TabCtrl_GetCurSel( hwndTab );
00459             if( -1 != nIndex )
00460             {
00461                 //現在表示中のリストを隠す。
00462                 hwndList = GetDlgItem( GetHwnd(), m_aFavoriteInfo[m_nCurrentTab].m_nId );
00463                 ::ShowWindow( hwndList, SW_HIDE );
00464
00465                 //新しく表示する。
00466                 hwndList = GetDlgItem( GetHwnd(), m_aFavoriteInfo[nIndex].m_nId );
00467                 ::ShowWindow( hwndList, SW_SHOW );
00468
00469                 ::SetFocus( hwndList );
00470
00471                 m_nCurrentTab = nIndex;
00472
00473                 //ChangeSlider( nIndex );
00474             }
00475             return TRUE;
00476             //break;
00477         }
00478     }
00479
00480     /* 基底クラスメンバ */
00481     return CDialog::OnNotify( wParam, lParam );
00482 }
00483
00484 BOOL CDlgFavorite::OnActivate( WPARAM wParam, LPARAM lParam )
00485 {
00486     bool    bret;
00487
00488     switch( LOWORD( wParam ) )
00489     {
00490     case WA_ACTIVE:
00491     case WA_CLICKACTIVE:
00492         bret = RefreshList();
00493 		::DlgItem_SetText( GetHwnd(), IDC_STATIC_FAVORITE_MSG, m_szMsg );
00494         return TRUE;
00495         //break;
00496
00497     case WA_INACTIVE:
00498     default:
00499         break;
00500     }
00501
00502     /* 基底クラスメンバ */
00503     return CDialog::OnActivate( wParam, lParam );
00504 }
00505
00506 LPVOID CDlgFavorite::GetHelpIdTable( void )
00507 {
00508     return (LPVOID)p_helpids;
00509 }
00510
00511 /*
00512     リストを更新する。
00513 */
00514 bool CDlgFavorite::RefreshList( void )
00515 {
00516     int     nTab;
00517     bool    bret;
00518     bool    ret_val = false;
00519     TCHAR   msg[1024];
00520
00521     _tcscpy( msg, _T("") );
00522     _tcscpy( m_szMsg, _T("") );
00523
00524     //全リストの現在選択中のアイテムを取得する。
00525     for( nTab = 0; NULL != m_aFavoriteInfo[nTab].m_pRecent; nTab++ )
00526     {
00527         bret = RefreshListOne( nTab );
00528         if( bret == true )
00529         {
00530             ret_val = true;
00531
00532             if( _tcslen( msg ) > 0 ) _tcscat( msg, _T("、") );
00533             _tcscat( msg, m_aFavoriteInfo[nTab].m_pszCaption );
00534         }
00535     }
00536
00537     if( ret_val )
00538     {
00539         auto_sprintf( m_szMsg,
00540             _T("履歴(%ts)が更新されたため編集中情報を破棄し再表示しました。"),
00541             msg );
00542     }
00543
00544     return ret_val;
00545 }
00546
00547 /*
00548     リストのうち1個を更新する。
00549 */
00550 bool CDlgFavorite::RefreshListOne( int nIndex )
00551 {
00552     HWND    hwndList;
00553     int     nCount;
00554     int     nCurrentIndex;
00555     int     nItemCount;
00556     int     i;
00557     BOOL    bret;
00558     LVITEM  lvitem;
00559
00560     CRecent*    pRecent = m_aFavoriteInfo[nIndex].m_pRecent;
00561     nItemCount    = pRecent->GetItemCount();
00562     hwndList      = GetDlgItem( GetHwnd(), m_aFavoriteInfo[nIndex].m_nId );
00563     nCount        = ListView_GetItemCount( hwndList );
00564     nCurrentIndex = ListView_GetNextItem( hwndList, -1, LVNI_SELECTED );
00565     if( -1 == nCurrentIndex ) nCurrentIndex = ListView_GetNextItem( hwndList, -1, LVNI_FOCUSED );
00566
00567     if( nItemCount != nCount ) goto changed;    //個数が変わったので再構築
00568
00569     //お気に入り数が変わったので再構築
00570     if( m_aFavoriteInfo[nIndex].m_nViewCount != pRecent->GetViewCount() ) goto changed;
00571
00572     for( i = 0; i < nCount; i++ )
00573     {
00574         TCHAR   szText[1024];
00575         auto_memset( szText, 0, _countof( szText ) );
00576         memset_raw( &lvitem, 0, sizeof( lvitem ) );
00577         lvitem.mask       = LVIF_TEXT;
00578         lvitem.pszText    = szText;
00579         lvitem.cchTextMax = _countof( szText );
00580         lvitem.iItem      = i;
00581         lvitem.iSubItem   = 1;
00582         bret = ListView_GetItem( hwndList, &lvitem );
00583         if( FALSE == bret ) goto changed;   //エラーなので再構築
00584
00585         //アイテム内容が変わったので再構築
00586         if( i != pRecent->FindItemByText( szText ) ) goto changed;
00587     }
00588
00589     return false;
00590
00591 changed:
00592     SetDataOne( nIndex, nCurrentIndex );
00593
00594
00595     return true;
00596 }
00597
00598 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFavorite.h

sakura_core

CDlgFavorite.h

履歴の管理ダイアログボックス [詳細]

#include "CDialog.h"

CDlgFavorite.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDlgFavorite
「履歴の管理」ダイアログ [詳細]
struct | CDlgFavorite::FavoriteInfoTag

説明

履歴の管理ダイアログボックス

作者:
MIK
日付:
2003.4.8

CDlgFavorite.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFavorite.h ソースファイル

sakura_core

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
00041 //アクセス方法：[設定] - [履歴の管理]
00042 class SAKURA_CORE_API CDlgFavorite : public CDialog
00043 {
00044 public:
00045     /*
00046     ||  Constructors
00047     */
00048     CDlgFavorite();
00049     ~CDlgFavorite();
00050
00051     /*
00052     ||  Attributes & Operations
00053     */
00054     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00055
00056 protected:
00057     /*
00058     ||  実装ヘルパ関数
00059     */
00060     BOOL    OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00061     BOOL    OnBnClicked( int );
00062     BOOL    OnNotify( WPARAM wParam, LPARAM lParam );
00063     BOOL    OnActivate( WPARAM wParam, LPARAM lParam );
00064     LPVOID  GetHelpIdTable( void );
00065
00066     void    SetData( void );    /* ダイアログデータの設定 */
00067     int     GetData( void );    /* ダイアログデータの取得 */
00068
00069     bool    RefreshList( void );
00070     void    SetDataOne( int nIndex, int CurrentIndex ); /* ダイアログデータの設定 */
00071     bool    RefreshListOne( int nIndex );
00072     //void  ChangeSlider( int nIndex );
00073
00074 private:
00075     CRecentFile     m_cRecentFile;
00076     CRecentFolder   m_cRecentFolder;
00077     CRecentSearch   m_cRecentSearch;
00078     CRecentReplace  m_cRecentReplace;
00079     CRecentFile     m_cRecentGrepFile;
00080     CRecentFolder   m_cRecentGrepFolder;
00081     CRecentCmd      m_cRecentCmd;
00082
00083     typedef struct FavoriteInfoTag {
00084         CRecent*    m_pRecent;          //オブジェクトへのポインタ
00085         TCHAR*      m_pszCaption;       //キャプション
00086         int         m_nId;              //コントロールのID
00087         bool        m_bHaveFavorite;    //お気に入りを持っているか？
00088         bool        m_bHaveView;        //表示数変更機能をもっているか？
00089         int         m_nViewCount;       //カレントの表示数
00090     } FavoriteInfoTag;
00091
00092     FavoriteInfoTag m_aFavoriteInfo[8];
00093
00094     int     m_nCurrentTab;
00095     TCHAR   m_szMsg[1024];
00096
00097 };
00098
00099 #endif  //_CDLGFAVORITE_H_
00100
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFileUpdateQuery.cpp

sakura_core

CDlgFileUpdateQuery.cpp

更新通知及び確認ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgFileUpdateQuery.h"
#include "sakura_rc.h"

CDlgFileUpdateQuery.cppのインクルード依存関係図

ソースコードを見る。

説明

更新通知及び確認ダイアログ

ファイルの更新通知と動作の確認を行うダイアログボックス

作者:
genta
日付:
2002.12.04

CDlgFileUpdateQuery.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFileUpdateQuery.cpp ソースファイル

sakura_core

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 	::DlgItem_SetText( hWnd, IDC_UPDATEDFILENAME, m_pFilename );
00040 	::DlgItem_SetText( hWnd, IDC_QUERYRELOADMSG, m_bModified ?
00041         L"再ロードを行うと変更が失われますがよろしいですか?":L"再ロードしますか?" );
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 Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFileUpdateQuery.h

sakura_core

CDlgFileUpdateQuery.h

更新通知及び確認ダイアログ [詳細]

#include <windows.h>
#include "global.h"
#include "CDialog.h"

CDlgFileUpdateQuery.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgFileUpdateQuery

説明

更新通知及び確認ダイアログ

ファイルの更新通知と動作の確認を行うダイアログボックス

作者:
genta
日付:
2002.12.04

CDlgFileUpdateQuery.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFileUpdateQuery.h ソースファイル

sakura_core

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 public:
00041     CDlgFileUpdateQuery(const TCHAR* filename, bool IsModified)
00042     : m_pFilename( filename )
00043     , m_bModified( IsModified )
00044     {
00045     }
00046     virtual BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00047     virtual BOOL OnBnClicked( int );
00048
00049 private:
00050     const TCHAR* m_pFilename;
00051     bool m_bModified;
00052 };
00053
00054 #endif
00055 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFind.cpp

sakura_core

CDlgFind.cpp

検索ダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgFind.h"
#include "funccode.h"
#include "sakura_rc.h"
#include "CBregexp.h"
#include "CEditView.h"
#include "debug.h"
#include "util/shell.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 Nov 17 20:25:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFind.cpp ソースファイル

sakura_core

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 "debug.h"// 2002/2/10 aroka ヘッダ整理
00027 #include "util/shell.h"
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     m_sSearchOption.Reset();
00052     m_szText[0] = L'\0';        /* 検索文字列 */
00053     return;
00054 }
00055
00056
00057 /* モードレスダイアログの表示 */
00058 HWND CDlgFind::DoModeless( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00059 {
00060     m_sSearchOption = m_pShareData->m_Common.m_sSearch.m_sSearchOption;     // 検索オプション
00061     m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND; // 検索／置換  見つからないときメッセージを表示
00062     m_ptEscCaretPos_PHY = ((CEditView*)lParam)->GetCaret().GetCaretLogicPos();  // 検索開始時のカーソル位置退避
00063     ((CEditView*)lParam)->m_bSearch = TRUE;                         // 検索開始位置の登録有無        02/07/28 ai
00064     return CDialog::DoModeless( hInstance, hwndParent, IDD_FIND, lParam, SW_SHOW );
00065 }
00066
00067 /* モードレス時：検索対象となるビューの変更 */
00068 void CDlgFind::ChangeView( LPARAM pcEditView )
00069 {
00070     m_lParam = pcEditView;
00071     return;
00072 }
00073
00074
00075
00076 /* ダイアログデータの設定 */
00077 void CDlgFind::SetData( void )
00078 {
00079 //  MYTRACE_A( "CDlgFind::SetData()" );
00080     int     i;
00081     HWND    hwndCombo;
00082
00083     /*****************************
00084     *           初期化           *
00085     *****************************/
00086     // Here Jun. 26, 2001 genta
00087     // 正規表現ライブラリの差し替えに伴う処理の見直しによりjre.dll判定を削除
00088
00089     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00090     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_LIMITTEXT, _MAX_PATH - 1, 0 );
00091     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00092 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, TRUE, 0 );
00093
00094
00095     /*****************************
00096     *         データ設定         *
00097     *****************************/
00098     /* 検索文字列 */
00099     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT );
00100 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
00101 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_TEXT, m_szText );
00102     for( i = 0; i < m_pShareData->m_aSearchKeys.size(); ++i ){
00103         Combo_AddString( hwndCombo, m_pShareData->m_aSearchKeys[i] );
00104     }
00105
00106     /* 英大文字と英小文字を区別する */
00107     ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, m_sSearchOption.bLoHiCase );
00108
00109     // 2001/06/23 Norio Nakatani
00110     /* 単語単位で検索 */
00111     ::CheckDlgButton( GetHwnd(), IDC_CHK_WORD, m_sSearchOption.bWordOnly );
00112
00113     /* 検索／置換  見つからないときメッセージを表示 */
00114     ::CheckDlgButton( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND, m_bNOTIFYNOTFOUND );
00115
00116     // From Here Jun. 29, 2001 genta
00117     // 正規表現ライブラリの差し替えに伴う処理の見直し
00118     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00119     // 無関係にCheckRegexpVersionを通過するようにした。
00120     if( CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, false )
00121         && m_sSearchOption.bRegularExp){
00122         /* 英大文字と英小文字を区別する */
00123         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 1 );
00124 //正規表現がONでも、大文字小文字を区別する／しないを選択できるように。
00125 //      ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 1 );
00126 //      ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), FALSE );
00127
00128         // 2001/06/23 N.Nakatani
00129         /* 単語単位で探す */
00130         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00131     }
00132     else {
00133         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00134     }
00135     // To Here Jun. 29, 2001 genta
00136
00137     /* 検索ダイアログを自動的に閉じる */
00138     ::CheckDlgButton( GetHwnd(), IDC_CHECK_bAutoCloseDlgFind, m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind );
00139
00140     /* 先頭（末尾）から再検索 2002.01.26 hor */
00141     ::CheckDlgButton( GetHwnd(), IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_sSearch.m_bSearchAll );
00142
00143     return;
00144 }
00145
00146
00147
00148
00149 /* ダイアログデータの取得 */
00150 int CDlgFind::GetData( void )
00151 {
00152 //  MYTRACE_A( "CDlgFind::GetData()" );
00153 //  int         i;
00154 //  int         j;
00155 //  CMemory*    pcmWork;
00156     //
00157
00158     /* 英大文字と英小文字を区別する */
00159     m_sSearchOption.bLoHiCase = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_LOHICASE ));
00160
00161     // 2001/06/23 Norio Nakatani
00162     /* 単語単位で検索 */
00163     m_sSearchOption.bWordOnly = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_WORD ));
00164
00165     /* 一致する単語のみ検索する */
00166     /* 正規表現 */
00167     m_sSearchOption.bRegularExp = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ));
00168
00169     /* 検索／置換  見つからないときメッセージを表示 */
00170     m_bNOTIFYNOTFOUND = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND );
00171
00172     m_pShareData->m_Common.m_sSearch.m_sSearchOption = m_sSearchOption;     // 検索オプション
00173     m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND = m_bNOTIFYNOTFOUND; // 検索／置換  見つからないときメッセージを表示
00174
00175     /* 検索文字列 */
00176 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_TEXT, m_szText, _countof( m_szText ));
00177
00178     /* 検索ダイアログを自動的に閉じる */
00179     m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_bAutoCloseDlgFind );
00180
00181     /* 先頭（末尾）から再検索 2002.01.26 hor */
00182     m_pShareData->m_Common.m_sSearch.m_bSearchAll = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_SEARCHALL );
00183
00184     if( 0 < wcslen( m_szText ) ){
00185         /* 正規表現？ */
00186         // From Here Jun. 26, 2001 genta
00187         //  正規表現ライブラリの差し替えに伴う処理の見直し
00188         int nFlag = 0x00;
00189         nFlag |= m_sSearchOption.bLoHiCase ? 0x01 : 0x00;
00190         if( m_sSearchOption.bRegularExp && !CheckRegexpSyntax( m_szText, GetHwnd(), true, nFlag ) ){
00191             return -1;
00192         }
00193         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00194
00195         /* 検索文字列 */
00196         //@@@ 2002.2.2 YAZAKI CShareDataに移動
00197         CShareData::getInstance()->AddToSearchKeyArr( m_szText );
00198         if( FALSE == m_bModal ){
00199             /* ダイアログデータの設定 */
00200             SetData();
00201         }
00202         return 1;
00203     }else{
00204         return 0;
00205     }
00206 }
00207
00208
00209
00210 BOOL CDlgFind::OnBnClicked( int wID )
00211 {
00212     int         nRet;
00213     CEditView*  pcEditView = (CEditView*)m_lParam;
00214     switch( wID ){
00215     case IDC_BUTTON_HELP:
00216         /* 「検索」のヘルプ */
00217         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00218         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_SEARCH_DIALOG) ); //Apr. 5, 2001 JEPRO 修正漏れを追加  // 2006.10.10 ryoji MyWinHelpに変更に変更
00219         break;
00220     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00221 //      MYTRACE_A( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) );
00222         if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) ){
00223
00224             // From Here Jun. 26, 2001 genta
00225             //  正規表現ライブラリの差し替えに伴う処理の見直し
00226             if( !CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, true ) ){
00227                 ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00228             }else{
00229             // To Here Jun. 26, 2001 genta
00230
00231                 /* 英大文字と英小文字を区別する */
00232                 //  Jan. 31, 2002 genta
00233                 //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00234                 //::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 1 );
00235                 //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), FALSE );
00236
00237                 // 2001/06/23 Norio Nakatani
00238                 /* 単語単位で検索 */
00239                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00240             }
00241         }else{
00242             /* 英大文字と英小文字を区別する */
00243             //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), TRUE );
00244             //  Jan. 31, 2002 genta
00245             //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00246             //::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 0 );
00247
00248             // 2001/06/23 Norio Nakatani
00249             /* 単語単位で検索 */
00250             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), TRUE );
00251         }
00252         break;
00253     case IDC_BUTTON_SEARCHPREV: /* 上検索 */ //Feb. 13, 2001 JEPRO ボタン名を[IDC_BUTTON1]→[IDC_BUTTON_SERACHPREV]に変更
00254         /* ダイアログデータの取得 */
00255         nRet = GetData();
00256         if( 0 < nRet ){
00257             if( m_bModal ){     /* モーダルダイアログか */
00258                 CloseDialog( 1 );
00259             }else{
00260
00261                 /* 前を検索 */
00262                 pcEditView->GetCommander().HandleCommand( F_SEARCH_PREV, TRUE, (LPARAM)GetHwnd(), 0, 0, 0 );
00263                 /* 再描画 2005.04.06 zenryaku 0文字幅マッチでキャレットを表示するため */
00264                 pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00265
00266                 // 02/06/26 ai Start
00267                 // 検索開始位置を登録
00268                 if( TRUE == pcEditView->m_bSearch ){
00269                     // 検索開始時のカーソル位置登録条件変更 02/07/28 ai start
00270                     pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00271                     /*
00272                     pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00273                     pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00274                     */
00275                     pcEditView->m_bSearch = FALSE;
00276                     // 02/07/28 ai end
00277                 }//  02/06/26 ai End
00278
00279                 /* 検索ダイアログを自動的に閉じる */
00280                 if( m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind ){
00281                     CloseDialog( 0 );
00282                 }
00283             }
00284         }
00285         else{
00286 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00287                 "検索条件を指定してください。"
00288             );
00289         }
00290         return TRUE;
00291     case IDC_BUTTON_SEARCHNEXT:     /* 下検索 */ //Feb. 13, 2001 JEPRO ボタン名を[IDOK]→[IDC_BUTTON_SERACHNEXT]に変更
00292         /* ダイアログデータの取得 */
00293         nRet = GetData();
00294         if( 0 < nRet ){
00295             if( m_bModal ){     /* モーダルダイアログか */
00296                 CloseDialog( 2 );
00297             }
00298             else{
00299                 /* 次を検索 */
00300                 pcEditView->GetCommander().HandleCommand( F_SEARCH_NEXT, TRUE, (LPARAM)GetHwnd(), 0, 0, 0 );
00301
00302                 /* 再描画 2005.04.06 zenryaku 0文字幅マッチでキャレットを表示するため */
00303                 pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00304
00305                 // 検索開始位置を登録
00306                 if( TRUE == pcEditView->m_bSearch ){
00307                     // 検索開始時のカーソル位置登録条件変更 02/07/28 ai start
00308                     pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00309                     pcEditView->m_bSearch = FALSE;
00310                 }
00311
00312                 /* 検索ダイアログを自動的に閉じる */
00313                 if( m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind ){
00314                     CloseDialog( 0 );
00315                 }
00316                 // 2001.12.03 hor
00317                 //  ダイアログを閉じないとき、IDC_COMBO_TEXT 上で Enter した場合に
00318                 //  キャレットが表示されなくなるのを回避する
00319                 else{
00320 					::SendMessageAny(GetHwnd(),WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(GetHwnd(),IDC_COMBO_TEXT ),TRUE);
00321                 }
00322             }
00323         }
00324         else{
00325 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00326                 "検索条件を指定してください。"
00327             );
00328         }
00329         return TRUE;
00330     case IDC_BUTTON_SETMARK:    //2002.01.16 hor 該当行マーク
00331         if( 0 < GetData() ){
00332             if( m_bModal ){     /* モーダルダイアログか */
00333                 CloseDialog( 2 );
00334             }else{
00335                 pcEditView->GetCommander().HandleCommand( F_BOOKMARK_PATTERN, FALSE, 0, 0, 0, 0 );
00336                 /* 検索ダイアログを自動的に閉じる */
00337                 if( m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind ){
00338                     CloseDialog( 0 );
00339                 }
00340                 else{
00341 					::SendMessageAny(GetHwnd(),WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(GetHwnd(),IDC_COMBO_TEXT ),TRUE);
00342                 }
00343             }
00344         }
00345         return TRUE;
00346     case IDCANCEL:
00347         CloseDialog( 0 );
00348         return TRUE;
00349     }
00350     return FALSE;
00351 }
00352
00353
00354
00355 //@@@ 2002.01.18 add start
00356 LPVOID CDlgFind::GetHelpIdTable(void)
00357 {
00358     return (LPVOID)p_helpids;
00359 }
00360 //@@@ 2002.01.18 add end
00361
00362 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFind.h

sakura_core

CDlgFind.h

検索ダイアログボックス [詳細]

#include "CDialog.h"

CDlgFind.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgFind

説明

検索ダイアログボックス

作者:
Norio Nakatani
日付:
1998/12/02 再作成

CDlgFind.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFind.h ソースファイル

sakura_core

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     SSearchOption m_sSearchOption;  // 検索オプション
00040     /*
00041     int     m_bLoHiCase;    // 英大文字と英小文字を区別する
00042     int     m_bWordOnly;    // 一致する単語のみ検索する
00043     int     m_bRegularExp;  // 正規表現
00044     */
00045     int     m_bNOTIFYNOTFOUND;  // 検索／置換  見つからないときメッセージを表示
00046     wchar_t m_szText[_MAX_PATH + 1];    // 検索文字列
00047
00048     CLogicPoint m_ptEscCaretPos_PHY;    // 検索開始時のカーソル位置退避エリア
00049
00050 protected:
00051 //@@@ 2002.2.2 YAZAKI CShareDataに移動
00052 //  void AddToSearchKeyArr( const char* );
00053     /* オーバーライド? */
00054     int GetData( void );    /* ダイアログデータの取得 */
00055     void SetData( void );   /* ダイアログデータの設定 */
00056     BOOL OnBnClicked( int );
00057
00058     // virtual BOOL OnKeyDown( WPARAM wParam, LPARAM lParam );
00059     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00060 };
00061
00062
00063
00065 #endif /* _CDLGFIND_H_ */
00066
00067
00068 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFuncList.cpp

sakura_core

CDlgFuncList.cpp

アウトライン解析ダイアログボックス [詳細]

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include "sakura_rc.h"
#include "CDlgFuncList.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 "util/shell.h"
#include "util/os.h"
#include "util/input.h"
#include "sakura.hh"

ソースコードを見る。

関数

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 の 60 行で定義されています。

参照先 auto_strcmp(), CFuncInfoArr::GetAt(), CNativeA::GetStringPtr(), 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 の 1485 行で定義されています。

参照元 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 の 43 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFuncList.cpp ソースファイル

sakura_core

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     Copyright (C) 2006, genta, 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 #include "stdafx.h"
00024 #include <windows.h>
00025 #include <commctrl.h>
00026 #include "sakura_rc.h"
00027 #include "CDlgFuncList.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 #include "util/shell.h"
00038 #include "util/os.h"
00039 #include "util/input.h"
00040
00041 //アウトライン解析 CDlgFuncList.cpp //@@@ 2002.01.07 add start MIK
00042 #include "sakura.hh"
00043 const DWORD p_helpids[] = { //12200
00044     IDC_BUTTON_COPY,                HIDC_FL_BUTTON_COPY,    //コピー
00045     IDOK,                           HIDOK_FL,               //ジャンプ
00046     IDCANCEL,                       HIDCANCEL_FL,           //キャンセル
00047     IDC_BUTTON_HELP,                HIDC_FL_BUTTON_HELP,    //ヘルプ
00048     IDC_CHECK_bAutoCloseDlgFuncList,    HIDC_FL_CHECK_bAutoCloseDlgFuncList,    //自動的に閉じる
00049     IDC_LIST1,                      HIDC_FL_LIST1,          //トピックリスト
00050     IDC_TREE1,                      HIDC_FL_TREE1,          //トピックツリー
00051     IDC_CHECK_bFunclistSetFocusOnJump   ,HIDC_FL_CHECK_bFunclistSetFocusOnJump, //ジャンプでフォーカス移動する
00052     IDC_CHECK_bMarkUpBlankLineEnable    ,HIDC_FL_CHECK_bMarkUpBlankLineEnable,  //空行を無視する
00053     IDC_COMBO_nSortType,            HIDC_COMBO_nSortType,   //順序
00054     IDC_BUTTON_WINSIZE,             HIDC_FL_BUTTON_WINSIZE, //ウィンドウ位置保存   // 2006.08.06 ryoji
00055 //  IDC_STATIC,                     -1,
00056     0, 0
00057 };  //@@@ 2002.01.07 add end MIK
00058
00060 int CALLBACK _CompareFunc_( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort )
00061 {
00062     CFuncInfo*      pcFuncInfo1;
00063     CFuncInfo*      pcFuncInfo2;
00064     CDlgFuncList*   pcDlgFuncList;
00065     pcDlgFuncList = (CDlgFuncList*)lParamSort;
00066
00067     pcFuncInfo1 = pcDlgFuncList->m_pcFuncInfoArr->GetAt( lParam1 );
00068     if( NULL == pcFuncInfo1 ){
00069         return -1;
00070     }
00071     pcFuncInfo2 = pcDlgFuncList->m_pcFuncInfoArr->GetAt( lParam2 );
00072     if( NULL == pcFuncInfo2 ){
00073         return -1;
00074     }
00075     //  Apr. 23, 2005 genta 行番号を左端へ
00076     if( 1 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00077         return auto_strcmp( pcFuncInfo1->m_cmemFuncName.GetStringPtr(), pcFuncInfo2->m_cmemFuncName.GetStringPtr() );
00078     }
00079     //  Apr. 23, 2005 genta 行番号を左端へ
00080     if( 0 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00081         if( pcFuncInfo1->m_nFuncLineCRLF < pcFuncInfo2->m_nFuncLineCRLF ){
00082             return -1;
00083         }else
00084         if( pcFuncInfo1->m_nFuncLineCRLF == pcFuncInfo2->m_nFuncLineCRLF ){
00085             return 0;
00086         }else{
00087             return 1;
00088         }
00089     }
00090     // From Here 2001.12.07 hor
00091     if( 2 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00092         if( pcFuncInfo1->m_nInfo < pcFuncInfo2->m_nInfo ){
00093             return -1;
00094         }else
00095         if( pcFuncInfo1->m_nInfo == pcFuncInfo2->m_nInfo ){
00096             return 0;
00097         }else{
00098             return 1;
00099         }
00100     }
00101     // To Here 2001.12.07 hor
00102     return -1;
00103 }
00104
00105 CDlgFuncList::CDlgFuncList()
00106 {
00107     m_pcFuncInfoArr = NULL;     /* 関数情報配列 */
00108     m_nCurLine = CLayoutInt(0);             /* 現在行 */
00109     //  Apr. 23, 2005 genta 行番号を左端へ
00110     m_nSortCol = 0;             /* ソートする列番号 2004.04.06 zenryaku 標準は行番号(1列目) */
00111     m_bLineNumIsCRLF = FALSE;   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00112     m_bWaitTreeProcess = false; // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 2/4
00113     m_nSortType = 0;
00114     return;
00115 }
00116
00117
00118
00119 /* モードレスダイアログの表示 */
00120 HWND CDlgFuncList::DoModeless(
00121     HINSTANCE       hInstance,
00122     HWND            hwndParent,
00123     LPARAM          lParam,
00124     CFuncInfoArr*   pcFuncInfoArr,
00125     CLayoutInt      nCurLine,
00126     int             nListType,
00127     int             bLineNumIsCRLF      /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00128 )
00129 {
00130     m_pcFuncInfoArr = pcFuncInfoArr;    /* 関数情報配列 */
00131     m_nCurLine = nCurLine;              /* 現在行 */
00132     m_nListType = nListType;            /* 一覧の種類 */
00133     m_bLineNumIsCRLF = bLineNumIsCRLF;  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00134
00135     // 2007.04.18 genta : 「フォーカスを移す」と「自動的に閉じる」がチェックされている場合に
00136     // ダブルクリックを行うと，trueのまま残ってしまうので，ウィンドウを開いたときにリセットする．
00137     m_bWaitTreeProcess = false;
00138     return CDialog::DoModeless( hInstance, hwndParent, IDD_FUNCLIST, lParam, SW_SHOW );
00139 }
00140
00141 /* モードレス時：検索対象となるビューの変更 */
00142 void CDlgFuncList::ChangeView( LPARAM pcEditView )
00143 {
00144     m_lParam = pcEditView;
00145     return;
00146 }
00147
00149 void CDlgFuncList::SetData()
00150 {
00151     int             i;
00152     TCHAR           szText[2048];
00153     CFuncInfo*      pcFuncInfo;
00154     LV_ITEM     item;
00155     HWND            hwndList;
00156     HWND            hwndTree;
00157     int             bSelected;
00158     CLayoutInt      nFuncLineOld;
00159     int             nSelectedLine;
00160     RECT            rc;
00161     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST1 );
00162     hwndTree = ::GetDlgItem( GetHwnd(), IDC_TREE1 );
00163
00164     //2002.02.08 hor 隠しといてアイテム削除→あとで表示
00165     ::ShowWindow( hwndList, SW_HIDE );
00166     ::ShowWindow( hwndTree, SW_HIDE );
00167     ListView_DeleteAllItems( hwndList );
00168     TreeView_DeleteAllItems( hwndTree );
00169
00170     m_cmemClipText.SetString(L"");  /* クリップボードコピー用テキスト */
00171
00172     if( OUTLINE_CPP == m_nListType ){   /* C++メソッドリスト */
00173         //  May 18, 2001 genta
00174         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00175         //  ::DestroyWindow( hwndList );
00176 //      ::ShowWindow( hwndList, SW_HIDE );
00177         m_nViewType = 1;
00178         /* ツリーコントロールの初期化：C++メソッドツリー */
00179         //SetTreeCpp( GetHwnd() );
00180         //  Jan. 04, 2002 genta Java Method Treeに統合
00181
00182         SetTreeJava( GetHwnd(), TRUE );
00183
00184         ::SetWindowTextA( GetHwnd(), "C++ メソッドツリー" );
00185     }else
00186     if( OUTLINE_FILE == m_nListType ){  //@@@ 2002.04.01 YAZAKI アウトライン解析にルールファイル導入
00187         m_nViewType = 1;
00188         SetTree();
00189         ::SetWindowTextA( GetHwnd(), "ルールファイル" );
00190     }else
00191     if( OUTLINE_WZTXT == m_nListType ){ //@@@ 2003.05.20 zenryaku 階層付テキストアウトライン解析
00192         m_nViewType = 1;
00193         SetTree();
00194         //  2003.06.22 Moca 名前変更
00195         ::SetWindowTextA( GetHwnd(), "WZ階層付テキスト" );
00196     }else
00197     if( OUTLINE_HTML == m_nListType ){ //@@@ 2003.05.20 zenryaku HTMLアウトライン解析
00198         m_nViewType = 1;
00199         SetTree();
00200         ::SetWindowTextA( GetHwnd(), "HTML" );
00201     }else
00202     if( OUTLINE_TEX == m_nListType ){ //@@@ 2003.07.20 naoh TeXアウトライン解析
00203         m_nViewType = 1;
00204         SetTree();
00205         ::SetWindowTextA( GetHwnd(), "TeX" );
00206     }else
00207     if( OUTLINE_TEXT == m_nListType ){ /* テキスト・トピックリスト */
00208         //  May 18, 2001 genta
00209         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00210         //::DestroyWindow( hwndList );
00211 //      ::ShowWindow( hwndList, SW_HIDE );
00212         m_nViewType = 1;
00213         /* ツリーコントロールの初期化：テキストトピックツリー */
00214 //      SetTreeTxt();
00215         SetTree();  //@@@ 2002.04.01 YAZAKI テキストトピックツリーも、汎用SetTreeを呼ぶように変更。
00216         ::SetWindowTextA( GetHwnd(), "テキスト トピックツリー" );
00217     }else
00218     if( OUTLINE_JAVA == m_nListType ){ /* Javaメソッドツリー */
00219         //  May 18, 2001 genta
00220         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00221         //  ::DestroyWindow( hwndList );
00222 //      ::ShowWindow( hwndList, SW_HIDE );
00223         m_nViewType = 1;
00224         /* ツリーコントロールの初期化：Javaメソッドツリー */
00225         SetTreeJava( GetHwnd(), TRUE );
00226         ::SetWindowTextA( GetHwnd(), "Java メソッドツリー" );
00227     }else
00228     //  2007.02.08 genta Python追加
00229     if( OUTLINE_PYTHON == m_nListType ){ /* Python メソッドツリー */
00230         m_nViewType = 1;
00231         SetTree( true );
00232         ::SetWindowTextA( GetHwnd(), "Python メソッドツリー" );
00233     }else
00234     if( OUTLINE_COBOL == m_nListType ){ /* COBOL アウトライン */
00235         //  May 18, 2001 genta
00236         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00237         //  ::DestroyWindow( hwndList );
00238 //      ::ShowWindow( hwndList, SW_HIDE );
00239         m_nViewType = 1;
00240         /* ツリーコントロールの初期化：COBOL アウトライン */
00241         SetTreeJava( GetHwnd(), FALSE );
00242         ::SetWindowTextA( GetHwnd(), "COBOL アウトライン" );
00243     }else
00244     if( OUTLINE_VB == m_nListType ){    /* VisualBasic アウトライン */
00245         // Jul 10, 2003  little YOSHI   処理が長くなったので独立
00246         m_nViewType = 0;
00247         /* リストビューコントロールの初期化：Visual Basic アウトライン */
00248         SetListVB();
00249         ::SetWindowTextA( GetHwnd(), "Visual Basic アウトライン" );
00250     }else{
00251         m_nViewType = 0;
00252         switch( m_nListType ){
00253         case OUTLINE_C:
00254             ::SetWindowTextA( GetHwnd(), "C 関数一覧" );
00255             break;
00256         case OUTLINE_PLSQL:
00257             ::SetWindowTextA( GetHwnd(), "PL/SQL 関数一覧" );
00258             break;
00259         case OUTLINE_ASM:
00260             ::SetWindowTextA( GetHwnd(), "アセンブラ アウトライン" );
00261             break;
00262         case OUTLINE_PERL:  //  Sep. 8, 2000 genta
00263             ::SetWindowTextA( GetHwnd(), "Perl 関数一覧" );
00264             break;
00265 // Jul 10, 2003  little YOSHI  上に移動しました--->>
00266 //      case OUTLINE_VB:    // 2001/06/23 N.Nakatani for Visual Basic
00267 //          ::SetWindowText( GetHwnd(), "Visual Basic アウトライン" );
00268 //          break;
00269 // <<---ここまで
00270         case OUTLINE_BOOKMARK:
00271             LV_COLUMN col;
00272             col.mask = LVCF_TEXT;
00273             col.pszText = _T("テキスト");
00274             col.iSubItem = 0;
00275             //  Apr. 23, 2005 genta 行番号を左端へ
00276             ListView_SetColumn( hwndList, 1, &col );
00277             ::SetWindowTextA( GetHwnd(), "ブックマーク" );
00278             break;
00279 //      case OUTLINE_COBOL:
00280 //          ::SetWindowText( GetHwnd(), "COBOLアウトライン" );
00281 //          break;
00282         }
00283         //  May 18, 2001 genta
00284         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00285         //::DestroyWindow( hwndTree );
00286 //      ::ShowWindow( hwndTree, SW_HIDE );
00287         ::EnableWindow( ::GetDlgItem( GetHwnd() , IDC_BUTTON_COPY ), TRUE );
00288         nFuncLineOld = CLayoutInt(0);
00289         bSelected = FALSE;
00290         for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00291             pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00292             if( !bSelected ){
00293                 if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00294                     bSelected = TRUE;
00295                     nSelectedLine = i;
00296                 }
00297                 else if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00298                     bSelected = TRUE;
00299                     nSelectedLine = i - 1;
00300                 }
00301             }
00302             nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00303         }
00304         if( 0 < m_pcFuncInfoArr->GetNum() && !bSelected ){
00305             bSelected = TRUE;
00306             nSelectedLine =  m_pcFuncInfoArr->GetNum() - 1;
00307         }
00308         for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00309             /* 現在の解析結果要素 */
00310             pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00311
00312             //  From Here Apr. 23, 2005 genta 行番号を左端へ
00313             /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00314             if(m_bLineNumIsCRLF ){
00315                 auto_sprintf( szText, _T("%d"), pcFuncInfo->m_nFuncLineCRLF );
00316             }else{
00317                 auto_sprintf( szText, _T("%d"), pcFuncInfo->m_nFuncLineLAYOUT );
00318             }
00319             item.mask = LVIF_TEXT | LVIF_PARAM;
00320             item.pszText = szText;
00321             item.iItem = i;
00322             item.lParam = i;
00323             item.iSubItem = 0;
00324             ListView_InsertItem( hwndList, &item);
00325
00326             item.mask = LVIF_TEXT;
00327             item.pszText = pcFuncInfo->m_cmemFuncName.GetStringPtr();
00328             item.iItem = i;
00329             item.iSubItem = 1;
00330             ListView_SetItem( hwndList, &item);
00331             //  To Here Apr. 23, 2005 genta 行番号を左端へ
00332
00333             item.mask = LVIF_TEXT;
00334             if(  1 == pcFuncInfo->m_nInfo ){item.pszText = _T("宣言");}else
00335             if( 10 == pcFuncInfo->m_nInfo ){item.pszText = _T("関数宣言");}else
00336             if( 20 == pcFuncInfo->m_nInfo ){item.pszText = _T("プロシージャ宣言");}else
00337             if( 11 == pcFuncInfo->m_nInfo ){item.pszText = _T("関数");}else
00338             if( 21 == pcFuncInfo->m_nInfo ){item.pszText = _T("プロシージャ");}else
00339             if( 31 == pcFuncInfo->m_nInfo ){item.pszText = _T("■パッケージ仕様部");}else
00340             if( 41 == pcFuncInfo->m_nInfo ){item.pszText = _T("■パッケージ本体部");}else
00341             if( 50 == pcFuncInfo->m_nInfo ){item.pszText = _T("PROC");}else
00342             if( 51 == pcFuncInfo->m_nInfo ){item.pszText = _T("ラベル");}else
00343             if( 52 == pcFuncInfo->m_nInfo ){item.pszText = _T("ENDP");}else{
00344                 // Jul 10, 2003  little YOSHI
00345                 // ここにあったVB関係の処理はSetListVB()メソッドに移動しました。
00346
00347                 item.pszText = _T("");
00348             }
00349             item.iItem = i;
00350             item.iSubItem = 2;
00351             ListView_SetItem( hwndList, &item);
00352
00353             /* クリップボードにコピーするテキストを編集 */
00354             if(_tcslen(item.pszText)){
00355                 // 検出結果の種類(関数,,,)があるとき
00356                 auto_sprintf( szText, _T("%ls(%d): %ls(%ls)\r\n"),
00357                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00358                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00359                     pcFuncInfo->m_cmemFuncName.GetStringPtr(),  /* 検出結果 */
00360                     item.pszText                                /* 検出結果の種類 */
00361                 );
00362             }else{
00363                 // 検出結果の種類(関数,,,)がないとき
00364                 auto_sprintf( szText, _T("%ls(%d): %ls\r\n"),
00365                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00366                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00367                     pcFuncInfo->m_cmemFuncName.GetStringPtr()   /* 検出結果 */
00368                 );
00369             }
00370             m_cmemClipText.AppendStringT(szText);               /* クリップボードコピー用テキスト */
00371         }
00372         //2002.02.08 hor Listは列幅調整とかを実行する前に表示しとかないと変になる
00373         ::ShowWindow( hwndList, SW_SHOW );
00374         /* 列の幅をデータに合わせて調整 */
00375         ListView_SetColumnWidth( hwndList, 0, LVSCW_AUTOSIZE );
00376         ListView_SetColumnWidth( hwndList, 1, LVSCW_AUTOSIZE );
00377         ListView_SetColumnWidth( hwndList, 2, LVSCW_AUTOSIZE );
00378         ListView_SetColumnWidth( hwndList, 0, ListView_GetColumnWidth( hwndList, 0 ) + 16 );
00379         ListView_SetColumnWidth( hwndList, 1, ListView_GetColumnWidth( hwndList, 1 ) + 16 );
00380         ListView_SetColumnWidth( hwndList, 2, ListView_GetColumnWidth( hwndList, 2 ) + 16 );
00381
00382         // 2005.07.05 ぜっと
00383         DWORD dwExStyle  = ListView_GetExtendedListViewStyle( hwndList );
00384         dwExStyle |= LVS_EX_FULLROWSELECT;
00385         ListView_SetExtendedListViewStyle( hwndList, dwExStyle );
00386
00387         if( bSelected ){
00388             ListView_GetItemRect( hwndList, 0, &rc, LVIR_BOUNDS );
00389             ListView_Scroll( hwndList, 0, nSelectedLine * ( rc.bottom - rc.top ) );
00390             ListView_SetItemState( hwndList, nSelectedLine, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00391         }
00392     }
00393     /* アウトライン ダイアログを自動的に閉じる */
00394     ::CheckDlgButton( GetHwnd(), IDC_CHECK_bAutoCloseDlgFuncList, m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList );
00395     /* アウトライン ブックマーク一覧で空行を無視する */
00396     ::CheckDlgButton( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable, m_pShareData->m_Common.m_sOutline.m_bMarkUpBlankLineEnable );
00397     /* アウトライン ジャンプしたらフォーカスを移す */
00398     ::CheckDlgButton( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump, m_pShareData->m_Common.m_sOutline.m_bFunclistSetFocusOnJump );
00399
00400     /* アウトライン ■位置とサイズを記憶する */ // 20060201 aroka
00401     ::CheckDlgButton( GetHwnd(), IDC_BUTTON_WINSIZE, m_pShareData->m_Common.m_sOutline.m_bRememberOutlineWindowPos );
00402
00403     /* ダイアログを自動的に閉じるならフォーカス移動オプションは関係ない */
00404     if(m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList){
00405         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump ), FALSE );
00406     }else{
00407         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump ), TRUE );
00408     }
00409
00410     //2002.02.08 hor
00411     //（IDC_LIST1もIDC_TREE1も常に存在していて、m_nViewTypeによって、どちらを表示するかを選んでいる）
00412     if(m_nViewType){
00413         ::ShowWindow( hwndTree, SW_SHOW );
00414         ::SetFocus( hwndTree );
00415     }else{
00416 //      ::ShowWindow( hwndList, SW_SHOW );
00417         ::SetFocus( hwndList );
00418     }
00419     //2002.02.08 hor
00420     //空行をどう扱うかのチェックボックスはブックマーク一覧のときだけ表示する
00421     if(OUTLINE_BOOKMARK == m_nListType){
00422         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable ), TRUE );
00423         ::ShowWindow( GetDlgItem( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable ), SW_SHOW );
00424     }else{
00425         ::ShowWindow( GetDlgItem( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable ), SW_HIDE );
00426         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable ), FALSE );
00427     }
00428     // 2002/11/1 frozen 項目のソート基準を設定するコンボボックスはブックマーク一覧の以外の時に表示する
00429     // Nov. 5, 2002 genta ツリー表示の時だけソート基準コンボボックスを表示
00430     if( m_nViewType == 1 ){
00431         HWND hWnd_Combo_Sort = ::GetDlgItem( GetHwnd(), IDC_COMBO_nSortType );
00432         ::EnableWindow( hWnd_Combo_Sort , TRUE );
00433         ::ShowWindow( hWnd_Combo_Sort , SW_SHOW );
00434 		::SendMessageAny( hWnd_Combo_Sort , CB_RESETCONTENT, 0, 0 ); // 2002.11.10 Moca 追加
00435         Combo_AddString( hWnd_Combo_Sort , _WINT("デフォルト"));
00436         Combo_AddString( hWnd_Combo_Sort , _WINT("アルファベット順"));
00437 		::SendMessageAny( hWnd_Combo_Sort , CB_SETCURSEL, m_nSortType, 0L);
00438         ::ShowWindow( GetDlgItem( GetHwnd(), IDC_STATIC_nSortType ), SW_SHOW );
00439         // 2002.11.10 Moca 追加 ソートする
00440         if( 1 == m_nSortType ){
00441             SortTree(::GetDlgItem( GetHwnd() , IDC_TREE1),TVI_ROOT);
00442         }
00443     }
00444     else {
00445         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_nSortType ), FALSE );
00446         ::ShowWindow( GetDlgItem( GetHwnd(), IDC_COMBO_nSortType ), SW_HIDE );
00447         ::ShowWindow( GetDlgItem( GetHwnd(), IDC_STATIC_nSortType ), SW_HIDE );
00448         //ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );  // 2005.04.05 zenryaku ソート状態を保持
00449         SortListView( hwndList, m_nSortCol );   // 2005.04.23 genta 関数化(ヘッダ書き換えのため)
00450     }
00451
00452     return;
00453 }
00454
00455
00456
00457
00458 /* ダイアログデータの取得 */
00459 /* 0==条件未入力   0より大きい==正常   0より小さい==入力エラー */
00460 int CDlgFuncList::GetData( void )
00461 {
00462     HWND            hwndList;
00463     HWND            hwndTree;
00464     int             nItem;
00465     CFuncInfo*      pcFuncInfo;
00466     LV_ITEM         item;
00467     int             nLineTo;
00468     HTREEITEM       htiItem;
00469     TV_ITEM     tvi;
00470     TCHAR       szLabel[32];
00471
00472     nLineTo = -1;
00473     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST1 );
00474     if( m_nViewType == 0 ){
00475         //  List
00476         nItem = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00477         if( -1 == nItem ){
00478             return -1;
00479         }
00480         item.mask = LVIF_PARAM;
00481         item.iItem = nItem;
00482         item.iSubItem = 0;
00483         ListView_GetItem( hwndList, &item );
00484         pcFuncInfo = m_pcFuncInfoArr->GetAt( item.lParam );
00485         nLineTo = pcFuncInfo->m_nFuncLineCRLF;
00486     }else{
00487         hwndTree = ::GetDlgItem( GetHwnd(), IDC_TREE1 );
00488         if( NULL != hwndTree ){
00489             htiItem = TreeView_GetSelection( hwndTree );
00490
00491             tvi.mask = TVIF_HANDLE | TVIF_TEXT | TVIF_PARAM;
00492             tvi.hItem = htiItem;
00493             tvi.pszText = szLabel;
00494             tvi.cchTextMax = _countof( szLabel );
00495             if( TreeView_GetItem( hwndTree, &tvi ) ){
00496                 // lParamが-1以下は pcFuncInfoArrには含まれない項目
00497                 if( 0 <= tvi.lParam ){
00498                     pcFuncInfo = m_pcFuncInfoArr->GetAt( tvi.lParam );
00499                     nLineTo = pcFuncInfo->m_nFuncLineCRLF;
00500                 }
00501             }
00502         }
00503     }
00504     return nLineTo;
00505 }
00506
00507
00514 void CDlgFuncList::SetTreeJava( HWND hwndDlg, BOOL bAddClass )
00515 {
00516     int             i;
00517     CFuncInfo*      pcFuncInfo;
00518     HWND            hwndTree;
00519     int             bSelected;
00520     CLayoutInt      nFuncLineOld;
00521     int             nSelectedLine;
00522     TV_INSERTSTRUCT tvis;
00523     const TCHAR*    pPos;
00524     TCHAR           szLabel[64+6];  // Jan. 07, 2001 genta クラス名エリアの拡大
00525     HTREEITEM       htiGlobal = NULL;   // Jan. 04, 2001 genta C++と統合
00526     HTREEITEM       htiClass;
00527     HTREEITEM       htiItem;
00528     HTREEITEM       htiItemOld;
00529     HTREEITEM       htiSelected;
00530     TV_ITEM     tvi;
00531     int             nClassNest;
00532     int             nDummylParam = -64000;  // 2002.11.10 Moca クラス名のダミーlParam ソートのため
00533     TCHAR           szClassArr[16][64]; // Jan. 04, 2001 genta クラス名エリアの拡大
00534
00535     ::EnableWindow( ::GetDlgItem( GetHwnd() , IDC_BUTTON_COPY ), TRUE );
00536
00537     hwndTree = ::GetDlgItem( GetHwnd(), IDC_TREE1 );
00538
00539     nFuncLineOld = CLayoutInt(0);
00540     bSelected = FALSE;
00541     htiItemOld = NULL;
00542     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00543         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00544         const TCHAR*        pWork;
00545         pWork = pcFuncInfo->m_cmemFuncName.GetStringPtr();
00546         /* クラス名::メソッドの場合 */
00547         if( NULL != ( pPos = _tcsstr( pWork, _T("::") ) ) ){
00548             /* インナークラスのネストレベルを調べる */
00549             int k, m;
00550             int nWorkLen;
00551             int nCharChars;
00552             nClassNest = 0;
00553             m = 0;
00554             nWorkLen = _tcslen( pWork );
00555             for( k = 0; k < nWorkLen; ++k ){
00556                 // 2005-09-02 D.S.Koba GetSizeOfChar
00557                 nCharChars = CNativeT::GetSizeOfChar( pWork, nWorkLen, k );
00558                 if( 1 == nCharChars && _T(':') == pWork[k] ){
00559                     //  Jan. 04, 2001 genta
00560                     //  C++の統合のため、\に加えて::をクラス区切りとみなすように
00561                     if( k < nWorkLen - 1 && _T(':') == pWork[k+1] ){
00562                         auto_memcpy( szClassArr[nClassNest], &pWork[m], k - m );
00563                         szClassArr[nClassNest][k - m] = _T('\0');
00564                         ++nClassNest;
00565                         m = k + 2;
00566                         ++k;
00567                     }
00568                     else
00569                         break;
00570                 }
00571                 else if( 1 == nCharChars && _T('\\') == pWork[k] ){
00572                     auto_memcpy( szClassArr[nClassNest], &pWork[m], k - m );
00573                     szClassArr[nClassNest][k - m] = _T('\0');
00574                     ++nClassNest;
00575                     m = k + 1;
00576                 }
00577                 if( 2 == nCharChars ){
00578                     ++k;
00579                 }
00580             }
00581
00582             //  Jan. 04, 2001 genta
00583             //  関数先頭のセット(ツリー構築で使う)
00584             pWork = pWork + m; // 2 == lstrlen( "::" );
00585
00586             /* クラス名のアイテムが登録されているか */
00587             htiClass = TreeView_GetFirstVisible( hwndTree );
00588             HTREEITEM htiParent = TVI_ROOT;
00589             for( k = 0; k < nClassNest; ++k ){
00590                 //  Apr. 1, 2001 genta
00591                 //  追加文字列を全角にしたのでメモリもそれだけ必要
00592                 //  6 == strlen( "クラス" ), 1 == strlen( L'\0' )
00593
00594                 // 2002/10/30 frozen
00595                 // bAddClass == true の場合の仕様変更
00596                 // 既存の項目は　「(クラス名)(半角スペース一個)(追加文字列)」
00597                 // となっているとみなし、szClassArr[k] が 「クラス名」と一致すれば、それを親ノードに設定。
00598                 // ただし、一致する項目が複数ある場合は最初の項目を親ノードにする。
00599                 // 一致しない場合は「(クラス名)(半角スペース一個)クラス」のノードを作成する。
00600                 size_t nClassNameLen = _tcslen( szClassArr[k] );
00601                 for( ; NULL != htiClass ; htiClass = TreeView_GetNextSibling( hwndTree, htiClass ))
00602                 {
00603                     tvi.mask = TVIF_HANDLE | TVIF_TEXT;
00604                     tvi.hItem = htiClass;
00605                     tvi.pszText = szLabel;
00606                     tvi.cchTextMax = _countof(szLabel);
00607                     if( TreeView_GetItem( hwndTree, &tvi ) )
00608                     {
00609                         if( 0 == _tcsncmp( szClassArr[k],szLabel,nClassNameLen) )
00610                         {
00611                             if( _countof(szLabel) < (nClassNameLen +1) )
00612                                 break;// バッファ不足では無条件にマッチする
00613                             else
00614                             {
00615                                 if(bAddClass)
00616                                 {
00617                                     if(szLabel[nClassNameLen]==L' ')
00618                                         break;
00619                                 }
00620                                 else
00621                                 {
00622                                     if(szLabel[nClassNameLen]==L'\0')
00623                                         break;
00624                                 }
00625                             }
00626                         }
00627                     }
00628                 }
00629
00630                 /* クラス名のアイテムが登録されていないので登録 */
00631                 if( NULL == htiClass ){
00632                     // 2002/10/28 frozen 上からここへ移動
00633                     TCHAR*  pClassName;
00634                     pClassName = new TCHAR[ _tcslen( szClassArr[k] ) + 1 + 9 ]; // 2002/10/28 frozen +9は追加する文字列の最大長（" 名前空間"が最大）
00635                     _tcscpy( pClassName, szClassArr[k] );
00636
00637                     tvis.item.lParam = -1;
00638                     if( bAddClass )
00639                     {
00640                         if( pcFuncInfo->m_nInfo == 7 )
00641                         {
00642                             _tcscat( pClassName, _T(" 名前空間") );
00643                             tvis.item.lParam = i;
00644                         }
00645                         else
00646                             _tcscat( pClassName, _T(" クラス") );
00647                             tvis.item.lParam = nDummylParam;
00648                             nDummylParam++;
00649                     }
00650
00651                     tvis.hParent = htiParent;
00652                     tvis.hInsertAfter = TVI_LAST;
00653                     tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00654                     tvis.item.pszText = const_cast<TCHAR*>(to_tchar(pClassName));
00655
00656                     htiClass = TreeView_InsertItem( hwndTree, &tvis );
00657                     //  Jan. 04, 2001 genta
00658                     //  不要になったらさっさと削除
00659                     delete [] pClassName; // 2002/10/28 frozen 下からここへ移動
00660
00661                 }else{
00662                     //none
00663                 }
00664                 htiParent = htiClass;
00665                 //if( k + 1 >= nClassNest ){
00666                 //  break;
00667                 //}
00668                 htiClass = TreeView_GetChild( hwndTree, htiClass );
00669             }
00670             htiClass = htiParent;
00671         }else{
00672             //  Jan. 04, 2001 genta
00673             //  Global空間の場合 (C++のみ)
00674
00675             // 2002/10/27 frozen ここから
00676             if( 3 <= pcFuncInfo->m_nInfo  && pcFuncInfo->m_nInfo <= 7 )
00677                 htiClass = TVI_ROOT;
00678             else
00679             {
00680             // 2002/10/27 frozen ここまで
00681                 if( htiGlobal == NULL ){
00682                     TV_INSERTSTRUCT tvg;
00683
00684                     ::ZeroMemory( &tvg, sizeof(tvg));
00685                     tvg.hParent = TVI_ROOT;
00686                     tvg.hInsertAfter = TVI_LAST;
00687                     tvg.item.mask = TVIF_TEXT | TVIF_PARAM;
00688                     tvg.item.pszText = _T("グローバル");
00689 //                  tvg.item.lParam = -1;
00690                     tvg.item.lParam = nDummylParam;
00691                     htiGlobal = TreeView_InsertItem( hwndTree, &tvg );
00692                     nDummylParam++;
00693                 }
00694                 htiClass = htiGlobal;
00695             }
00696         }
00697         TCHAR*      pFuncName;
00698         pFuncName = new TCHAR[ _tcslen(pWork) + 1 + 7 ];    // +6 は追加する文字列の最大長
00699         _tcscpy( pFuncName, pWork );
00700
00701         // 2002/10/27 frozen 追加文字列の種類を増やした
00702         switch(pcFuncInfo->m_nInfo)
00703         {// case 4以上の各追加文字列の最初にある半角スペースを省略することはできない。
00704         case 1: _tcscat( pFuncName, _T("(宣言)") );break;
00705         case 3: _tcscat( pFuncName, _T(" クラス") );break;
00706         case 4: _tcscat( pFuncName, _T(" 構造体") );break;
00707         case 5: _tcscat( pFuncName, _T(" 列挙体") );break;
00708         case 6: _tcscat( pFuncName, _T(" 共用体") );break;
00709 //      case 7: _tcscat( pFuncName, _T(" 名前空間") );break;
00710         };
00711 //      }
00712         /* 該当クラス名のアイテムの子として、メソッドのアイテムを登録 */
00713         tvis.hParent = htiClass;
00714         tvis.hInsertAfter = TVI_LAST;
00715         tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00716         tvis.item.pszText = pFuncName;
00717         tvis.item.lParam = i;
00718         htiItem = TreeView_InsertItem( hwndTree, &tvis );
00719
00720         /* クリップボードにコピーするテキストを編集 */
00721         WCHAR szText[2048];
00722         auto_sprintf( szText, L"%ls(%d): %ls %ls\r\n",
00723             m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00724             pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00725             pcFuncInfo->m_cmemFuncName.GetStringPtr(),  /* 検出結果 */
00726             ( 1 == pcFuncInfo->m_nInfo ? L"(宣言)" : L"" )    //  Jan. 04, 2001 genta C++で使用
00727         );
00728         m_cmemClipText.AppendString( szText ); /* クリップボードコピー用テキスト */
00729         delete [] pFuncName;
00730
00731         /* 現在カーソル位置のメソッドかどうか調べる */
00732         if( !bSelected ){
00733             if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00734                 bSelected = TRUE;
00735                 nSelectedLine = i;
00736                 htiSelected = htiItem;
00737             }else
00738             if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00739                 bSelected = TRUE;
00740                 nSelectedLine = i - 1;
00741                 htiSelected = htiItemOld;
00742             }
00743         }
00744         nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00745         htiItemOld = htiItem;
00746         //  Jan. 04, 2001 genta
00747         //  deleteはその都度行うのでここでは不要
00748         }
00749     /* ソート、ノードの展開をする */
00750 //  TreeView_SortChildren( hwndTree, TVI_ROOT, 0 );
00751     htiClass = TreeView_GetFirstVisible( hwndTree );
00752     while( NULL != htiClass ){
00753 //      TreeView_SortChildren( hwndTree, htiClass, 0 );
00754         TreeView_Expand( hwndTree, htiClass, TVE_EXPAND );
00755         htiClass = TreeView_GetNextSibling( hwndTree, htiClass );
00756     }
00757     /* 現在カーソル位置のメソッドを選択状態にする */
00758     if( bSelected ){
00759         TreeView_SelectItem( hwndTree, htiSelected );
00760     }else{
00761         if( NULL != htiItemOld ){
00762             TreeView_SelectItem( hwndTree, htiItemOld );
00763         }
00764     }
00765 //  GetTreeTextNext( hwndTree, NULL, 0 );
00766     return;
00767 }
00768
00769
00776 void CDlgFuncList::SetListVB (void)
00777 {
00778     int             i;
00779     wchar_t         szType[64];
00780     wchar_t         szOption[64];
00781     CFuncInfo*      pcFuncInfo;
00782     LV_ITEM     item;
00783     HWND            hwndList;
00784     int             bSelected;
00785     CLayoutInt      nFuncLineOld;
00786     int             nSelectedLine;
00787     RECT            rc;
00788
00789     ::EnableWindow( ::GetDlgItem( GetHwnd() , IDC_BUTTON_COPY ), TRUE );
00790
00791     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST1 );
00792
00793     nFuncLineOld = CLayoutInt(0);
00794     bSelected = FALSE;
00795     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00796         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00797         if( !bSelected ){
00798             if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00799                 bSelected = TRUE;
00800                 nSelectedLine = i;
00801             }
00802             else if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00803                 bSelected = TRUE;
00804                 nSelectedLine = i - 1;
00805             }
00806         }
00807         nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00808     }
00809     if( 0 < m_pcFuncInfoArr->GetNum() && !bSelected ){
00810         bSelected = TRUE;
00811         nSelectedLine =  m_pcFuncInfoArr->GetNum() - 1;
00812     }
00813
00814     TCHAR           szText[2048];
00815     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00816         /* 現在の解析結果要素 */
00817         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00818
00819         //  From Here Apr. 23, 2005 genta 行番号を左端へ
00820         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00821         if(m_bLineNumIsCRLF ){
00822             auto_sprintf( szText, _T("%d"), pcFuncInfo->m_nFuncLineCRLF );
00823         }else{
00824             auto_sprintf( szText, _T("%d"), pcFuncInfo->m_nFuncLineLAYOUT );
00825         }
00826         item.mask = LVIF_TEXT | LVIF_PARAM;
00827         item.pszText = szText;
00828         item.iItem = i;
00829         item.iSubItem = 0;
00830         item.lParam = i;
00831         ListView_InsertItem( hwndList, &item);
00832
00833         item.mask = LVIF_TEXT;
00834         item.pszText = pcFuncInfo->m_cmemFuncName.GetStringPtr();
00835         item.iItem = i;
00836         item.iSubItem = 1;
00837         ListView_SetItem( hwndList, &item);
00838         //  To Here Apr. 23, 2005 genta 行番号を左端へ
00839
00840         item.mask = LVIF_TEXT;
00841
00842         // 2001/06/23 N.Nakatani for Visual Basic
00843         //  Jun. 26, 2001 genta 半角かな→全角に
00844         auto_memset(szText, _T('\0'), _countof(szText));
00845         auto_memset(szType, _T('\0'), _countof(szType));
00846         auto_memset(szOption, _T('\0'), _countof(szOption));
00847         if( 1 == ((pcFuncInfo->m_nInfo >> 8) & 0x01) ){
00848             // スタティック宣言(Static)
00849             // 2006.12.12 Moca 末尾にスペース追加
00850             wcscpy(szOption, L"静的 ");
00851         }
00852         switch ((pcFuncInfo->m_nInfo >> 4) & 0x0f) {
00853             case 2  :   // プライベート(Private)
00854                 wcsncat(szOption, L"プライベート", _countof(szOption) - wcslen(szOption)); // 2006.12.17 genta サイズ誤り修正
00855                 break;
00856
00857             case 3  :   // フレンド(Friend)
00858                 wcsncat(szOption, L"フレンド", _countof(szOption) - wcslen(szOption)); //   2006.12.17 genta サイズ誤り修正
00859                 break;
00860
00861             default :   // パブリック(Public)
00862                 wcsncat(szOption, L"パブリック", _countof(szOption) - wcslen(szOption)); //    2006.12.17 genta サイズ誤り修正
00863         }
00864         switch (pcFuncInfo->m_nInfo & 0x0f) {
00865             case 1:     // 関数(Function)
00866                 wcscpy(szType, L"関数");
00867                 break;
00868
00869             // 2006.12.12 Moca ステータス→プロシージャに変更
00870             case 2:     // プロシージャ(Sub)
00871                 wcscpy(szType, L"プロシージャ");
00872                 break;
00873
00874             case 3:     // プロパティ 取得(Property Get)
00875                 wcscpy(szType, L"プロパティ 取得");
00876                 break;
00877
00878             case 4:     // プロパティ 設定(Property Let)
00879                 wcscpy(szType, L"プロパティ 設定");
00880                 break;
00881
00882             case 5:     // プロパティ 参照(Property Set)
00883                 wcscpy(szType, L"プロパティ 参照");
00884                 break;
00885
00886             case 6:     // 定数(Const)
00887                 wcscpy(szType, L"定数");
00888                 break;
00889
00890             case 7:     // 列挙型(Enum)
00891                 wcscpy(szType, L"列挙型");
00892                 break;
00893
00894             case 8:     // ユーザ定義型(Type)
00895                 wcscpy(szType, L"ユーザ定義型");
00896                 break;
00897
00898             case 9:     // イベント(Event)
00899                 wcscpy(szType, L"イベント");
00900                 break;
00901
00902             default:    // 未定義なのでクリア
00903                 pcFuncInfo->m_nInfo = 0;
00904
00905         }
00906         if ( 2 == ((pcFuncInfo->m_nInfo >> 8) & 0x02) ) {
00907             // 宣言(Declareなど)
00908             wcsncat(szType, L"宣言", _countof(szType) - wcslen(szType));
00909         }
00910
00911         TCHAR szTypeOption[256]; // 2006.12.12 Moca auto_sprintfの入出力で同一変数を使わないための作業領域追加
00912         if ( 0 == pcFuncInfo->m_nInfo ) {
00913             szTypeOption[0] = _T('\0'); //  2006.12.17 genta 全体を0で埋める必要はない
00914         } else
00915         if ( 0 == wcslen(szOption) ) {
00916             auto_sprintf(szTypeOption, _T("%ls"), szType);
00917         } else {
00918             auto_sprintf(szTypeOption, _T("%ls（%ls）"), szType, szOption);
00919         }
00920         item.pszText = szTypeOption;
00921         item.iItem = i;
00922         item.iSubItem = 2;
00923         ListView_SetItem( hwndList, &item);
00924
00925         /* クリップボードにコピーするテキストを編集 */
00926         if(_tcslen(item.pszText)){
00927             // 検出結果の種類(関数,,,)があるとき
00928             // 2006.12.12 Moca szText を自分自身にコピーしていたバグを修正
00929             auto_sprintf( szText, _T("%ls(%d): %ls(%ls)\r\n"),
00930                 m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00931                 pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00932                 pcFuncInfo->m_cmemFuncName.GetStringPtr(),  /* 検出結果 */
00933                 item.pszText                                /* 検出結果の種類 */
00934             );
00935         }else{
00936             // 検出結果の種類(関数,,,)がないとき
00937             auto_sprintf( szText, _T("%ls(%d): %ls\r\n"),
00938                 m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00939                 pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00940                 pcFuncInfo->m_cmemFuncName.GetStringPtr()   /* 検出結果 */
00941             );
00942         }
00943         m_cmemClipText.AppendStringT( szText ); /* クリップボードコピー用テキスト */
00944     }
00945
00946     //2002.02.08 hor Listは列幅調整とかを実行する前に表示しとかないと変になる
00947     ::ShowWindow( hwndList, SW_SHOW );
00948     /* 列の幅をデータに合わせて調整 */
00949     ListView_SetColumnWidth( hwndList, 0, LVSCW_AUTOSIZE );
00950     ListView_SetColumnWidth( hwndList, 1, LVSCW_AUTOSIZE );
00951     ListView_SetColumnWidth( hwndList, 2, LVSCW_AUTOSIZE );
00952     ListView_SetColumnWidth( hwndList, 0, ListView_GetColumnWidth( hwndList, 0 ) + 16 );
00953     ListView_SetColumnWidth( hwndList, 1, ListView_GetColumnWidth( hwndList, 1 ) + 16 );
00954     ListView_SetColumnWidth( hwndList, 2, ListView_GetColumnWidth( hwndList, 2 ) + 16 );
00955     if( bSelected ){
00956         ListView_GetItemRect( hwndList, 0, &rc, LVIR_BOUNDS );
00957         ListView_Scroll( hwndList, 0, nSelectedLine * ( rc.bottom - rc.top ) );
00958         ListView_SetItemState( hwndList, nSelectedLine, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00959     }
00960
00961     return;
00962 }
00963
00973 void CDlgFuncList::SetTree(bool tagjump)
00974 {
00975     HTREEITEM hItemSelected = NULL;
00976     HWND hwndTree = ::GetDlgItem( GetHwnd(), IDC_TREE1 );
00977
00978     int i;
00979     int nFuncInfoArrNum = m_pcFuncInfoArr->GetNum();
00980     int nStackPointer = 0;
00981     int nStackDepth = 32; // phParentStack の確保している数
00982     HTREEITEM* phParentStack;
00983     phParentStack = (HTREEITEM*)malloc( nStackDepth * sizeof( HTREEITEM ) );
00984     phParentStack[ nStackPointer ] = TVI_ROOT;
00985
00986     for (i = 0; i < nFuncInfoArrNum; i++){
00987         CFuncInfo* pcFuncInfo = m_pcFuncInfoArr->GetAt(i);
00988
00989         /*  新しいアイテムを作成
00990             現在の親の下にぶら下げる形で、最後に追加する。
00991         */
00992         HTREEITEM hItem;
00993         TV_INSERTSTRUCT cTVInsertStruct;
00994         cTVInsertStruct.hParent = phParentStack[ nStackPointer ];
00995         cTVInsertStruct.hInsertAfter = TVI_LAST;    //  必ず最後に追加。
00996         cTVInsertStruct.item.mask = TVIF_TEXT | TVIF_PARAM;
00997         cTVInsertStruct.item.pszText = pcFuncInfo->m_cmemFuncName.GetStringPtr();
00998         cTVInsertStruct.item.lParam = i;    //  あとでこの数値（＝m_pcFuncInfoArrの何番目のアイテムか）を見て、目的地にジャンプするぜ!!。
00999
01000         /*  親子関係をチェック
01001         */
01002         if (nStackPointer != pcFuncInfo->m_nDepth){
01003             //  レベルが変わりました!!
01004             //  ※が、2段階深くなることは考慮していないので注意。
01005             //  　もちろん、2段階以上浅くなることは考慮済み。
01006
01007             // 2002.11.10 Moca 追加 確保したサイズでは足りなくなった。再確保
01008             if( nStackDepth <= pcFuncInfo->m_nDepth + 1 ){
01009                 nStackDepth = pcFuncInfo->m_nDepth + 4; // 多めに確保しておく
01010                 HTREEITEM* phTi;
01011                 phTi = (HTREEITEM*)realloc( phParentStack, nStackDepth * sizeof( HTREEITEM ) );
01012                 if( NULL != phTi ){
01013                     phParentStack = phTi;
01014                 }else{
01015                     goto end_of_func;
01016                 }
01017             }
01018             nStackPointer = pcFuncInfo->m_nDepth;
01019             cTVInsertStruct.hParent = phParentStack[ nStackPointer ];
01020         }
01021         hItem = TreeView_InsertItem( hwndTree, &cTVInsertStruct );
01022         phParentStack[ nStackPointer+1 ] = hItem;
01023
01024         /*  pcFuncInfoに登録されている行数を確認して、選択するアイテムを考える
01025         */
01026         if ( pcFuncInfo->m_nFuncLineLAYOUT <= m_nCurLine ){
01027             hItemSelected = hItem;
01028         }
01029
01030         /* クリップボードコピー用テキストを作成する */
01031         //  2003.06.22 Moca dummy要素はツリーに入れるがTAGJUMPには加えない
01032         if( pcFuncInfo->IsAddClipText() ){
01033             CNativeT text;
01034
01035             if( tagjump ){
01036
01037                 text.AllocStringBuffer(
01038                       pcFuncInfo->m_cmemFuncName.GetStringLength()
01039                     + nStackPointer * 2 + 1
01040                     + _tcslen( m_pcFuncInfoArr->m_szFilePath )
01041                     + 20
01042                 );
01043
01044                 //  2007.03.04 genta タグジャンプできる形式で書き込む
01045                 text.AppendString( m_pcFuncInfoArr->m_szFilePath );
01046
01047                 TCHAR linenum[32];
01048                 int len = auto_sprintf( linenum, _T("(%d): "),
01049                     pcFuncInfo->m_nFuncLineCRLF                 /* 検出行番号 */
01050                 );
01051                 text.AppendString( linenum );
01052             }
01053             else {
01054                 //  先に十分なサイズの領域を取っておく
01055                 text.AllocStringBuffer(
01056                     pcFuncInfo->m_cmemFuncName.GetStringLength() + nStackPointer * 2 + 1 + 5
01057                 );
01058             }
01059
01060             for( int cnt = 0; cnt < nStackPointer; cnt++ ){
01061                 text.AppendString(_T("  "));
01062             }
01063             text.AppendString(_T(" "));
01064
01065             text.AppendNativeData( pcFuncInfo->m_cmemFuncName );
01066             text.AppendString( _T("\r\n") );
01067             m_cmemClipText.AppendNativeDataT( text );   /* クリップボードコピー用テキスト */
01068         }
01069     }
01070
01071 end_of_func:;
01072
01073     ::EnableWindow( ::GetDlgItem( GetHwnd() , IDC_BUTTON_COPY ), TRUE );
01074
01075     if( NULL != hItemSelected ){
01076         /* 現在カーソル位置のメソッドを選択状態にする */
01077         TreeView_SelectItem( hwndTree, hItemSelected );
01078     }
01079
01080     free( phParentStack );
01081 }
01082
01083
01084
01085 BOOL CDlgFuncList::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
01086 {
01087     _SetHwnd( hwndDlg );
01088     HWND        hwndList;
01089     int         nCxVScroll;
01090     int         nColWidthArr[3] = { 0, 46, 80 };
01091     RECT        rc;
01092     LV_COLUMN   col;
01093     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST1 );
01094     // 2005.10.21 zenryaku 1行選択
01095     SendMessageAny(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
01096         SendMessageAny(hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) | LVS_EX_FULLROWSELECT);
01097
01098     ::GetWindowRect( hwndList, &rc );
01099     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01100
01101     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01102     col.fmt = LVCFMT_LEFT;
01103     col.cx = rc.right - rc.left - ( nColWidthArr[1] + nColWidthArr[2] ) - nCxVScroll - 8;
01104     //  Apr. 23, 2005 genta 行番号を左端へ
01105     col.pszText = _T("行 *");
01106     col.iSubItem = 0;
01107     ListView_InsertColumn( hwndList, 0, &col);
01108
01109     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01110     col.fmt = LVCFMT_LEFT;
01111     col.cx = nColWidthArr[1];
01112     //  Apr. 23, 2005 genta 行番号を左端へ
01113     col.pszText = _T("関数名");
01114     col.iSubItem = 1;
01115     ListView_InsertColumn( hwndList, 1, &col);
01116
01117     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01118     col.fmt = LVCFMT_LEFT;
01119     col.cx = nColWidthArr[2];
01120     col.pszText = _T(" ");
01121     col.iSubItem = 2;
01122     ListView_InsertColumn( hwndList, 2, &col);
01123
01124     /* アウトライン位置とサイズを初期化する */ // 20060201 aroka
01125     if( m_lParam != NULL ){
01126         CEditView* pcEditView=(CEditView*)m_lParam;
01127         if( m_pShareData->m_Common.m_sOutline.m_bRememberOutlineWindowPos ){
01128             WINDOWPLACEMENT cWindowPlacement;
01129             cWindowPlacement.length = sizeof( cWindowPlacement );
01130             if (::GetWindowPlacement( pcEditView->m_pcEditDoc->m_pcEditWnd->GetHwnd(), &cWindowPlacement )){
01131                 /* ウィンドウ位置・サイズを-1以外の値にしておくと、CDialogで使用される． */
01132                 m_xPos = m_pShareData->m_Common.m_sOutline.m_xOutlineWindowPos + cWindowPlacement.rcNormalPosition.left;
01133                 m_yPos = m_pShareData->m_Common.m_sOutline.m_yOutlineWindowPos + cWindowPlacement.rcNormalPosition.top;
01134                 m_nWidth =  m_pShareData->m_Common.m_sOutline.m_widthOutlineWindow;
01135                 m_nHeight = m_pShareData->m_Common.m_sOutline.m_heightOutlineWindow;
01136             }
01137         }
01138     }
01139     /* 基底クラスメンバ */
01140     CreateSizeBox();
01141
01142     LONG style = ::GetWindowLong( GetHwnd(), GWL_STYLE );
01143     ::SetWindowLong( GetHwnd(), GWL_STYLE, style | WS_THICKFRAME );
01144     ::SetWindowPos( GetHwnd(), NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED );
01145
01146     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
01147 }
01148
01149
01150 BOOL CDlgFuncList::OnBnClicked( int wID )
01151 {
01152     switch( wID ){
01153     case IDC_BUTTON_HELP:
01154         /* 「アウトライン解析」のヘルプ */
01155         //Apr. 5, 2001 JEPRO 修正漏れを追加 (Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした)
01156         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_OUTLINE) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01157         return TRUE;
01158     case IDOK:
01159         return OnJump();
01160     case IDCANCEL:
01161         if( m_bModal ){     /* モーダル ダイアログか */
01162             ::EndDialog( GetHwnd(), 0 );
01163         }else{
01164             ::DestroyWindow( GetHwnd() );
01165         }
01166         return TRUE;
01167     case IDC_BUTTON_COPY:
01168         // Windowsクリップボードにコピー
01169         // 2004.02.17 Moca 関数化
01170         SetClipboardText( GetHwnd(), m_cmemClipText.GetStringPtr(), m_cmemClipText.GetStringLength() );
01171         return TRUE;
01172     case IDC_BUTTON_WINSIZE:
01173         {// ウィンドウの位置とサイズを記憶 // 20060201 aroka
01174             m_pShareData->m_Common.m_sOutline.m_bRememberOutlineWindowPos = ::IsDlgButtonChecked( GetHwnd(), IDC_BUTTON_WINSIZE );
01175         }
01176         return TRUE;
01177     //2002.02.08 オプション切替後List/Treeにフォーカス移動
01178     case IDC_CHECK_bAutoCloseDlgFuncList:
01179     case IDC_CHECK_bMarkUpBlankLineEnable:
01180     case IDC_CHECK_bFunclistSetFocusOnJump:
01181         m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_bAutoCloseDlgFuncList );
01182         m_pShareData->m_Common.m_sOutline.m_bMarkUpBlankLineEnable = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_bMarkUpBlankLineEnable );
01183         m_pShareData->m_Common.m_sOutline.m_bFunclistSetFocusOnJump = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump );
01184         if(m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList){
01185             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump ), FALSE );
01186         }else{
01187             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_bFunclistSetFocusOnJump ), TRUE );
01188         }
01189         if(wID==IDC_CHECK_bMarkUpBlankLineEnable&&m_nListType==OUTLINE_BOOKMARK){
01190             CEditView* pcEditView=(CEditView*)m_lParam;
01191             pcEditView->GetCommander().HandleCommand( F_BOOKMARK_VIEW, TRUE, TRUE, 0, 0, 0 );
01192             m_nCurLine=pcEditView->GetCaret().GetCaretLayoutPos().GetY2() + CLayoutInt(1);
01193             SetData();
01194         }else
01195         if(m_nViewType){
01196             ::SetFocus( ::GetDlgItem( GetHwnd(), IDC_TREE1 ) );
01197         }else{
01198             ::SetFocus( ::GetDlgItem( GetHwnd(), IDC_LIST1 ) );
01199         }
01200         return TRUE;
01201     }
01202     /* 基底クラスメンバ */
01203     return CDialog::OnBnClicked( wID );
01204 }
01205
01206 BOOL CDlgFuncList::OnNotify( WPARAM wParam, LPARAM lParam )
01207 {
01208 //  int             idCtrl;
01209     LPNMHDR         pnmh;
01210     NM_LISTVIEW*    pnlv;
01211     HWND            hwndList;
01212     HWND            hwndTree;
01213     NM_TREEVIEW*    pnmtv;
01214 //  int             nLineTo;
01215
01216 //  idCtrl = (int) wParam;
01217     pnmh = (LPNMHDR) lParam;
01218     pnlv = (NM_LISTVIEW*)lParam;
01219
01220     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST1 );
01221     hwndTree = ::GetDlgItem( GetHwnd(), IDC_TREE1 );
01222
01223     if( hwndTree == pnmh->hwndFrom ){
01224         pnmtv = (NM_TREEVIEW *) lParam;
01225 //      switch( pnmh->code ){
01226 //      case TVN_BEGINDRAG:
01227 //      case TVN_BEGINLABELEDIT:
01228 //      case TVN_BEGINRDRAG:
01229 //      case TVN_DELETEITEM:
01230 //      case TVN_ENDLABELEDIT:
01231 //      case TVN_GETDISPINFO:
01232 //      case TVN_ITEMEXPANDED:
01233 //      case TVN_ITEMEXPANDING:
01234 //      case TVN_KEYDOWN:
01235 //      case TVN_SELCHANGED:
01236 //      case TVN_SELCHANGING:
01237 //      case TVN_SETDISPINFO:
01238 //          break;
01239 //      default:
01240             switch( pnmtv->hdr.code ){
01241             case NM_DBLCLK:
01242                 // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 3/4
01243                 OnJump();
01244                 m_bWaitTreeProcess=true;
01245                 return TRUE;
01246                 //return OnJump();
01247             case TVN_KEYDOWN:
01248                 Key2Command( ((LV_KEYDOWN *)lParam)->wVKey );
01249                 return TRUE;
01250             case TVN_SELCHANGED:
01251                 // 2005.11.04 zenryaku 画面外の選択項目を追う
01252 				::SendMessageAny(hwndTree, TVM_ENSUREVISIBLE, 0, (LPARAM)((NMTREEVIEW*)lParam)->itemNew.hItem);
01253                 break;
01254 //          case NM_CLICK:
01255             case NM_KILLFOCUS:
01256                 // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 4/4
01257                 if(m_bWaitTreeProcess){
01258                     if(m_pShareData->m_Common.m_sOutline.m_bFunclistSetFocusOnJump){
01259                         ::SetFocus(m_hwndParent);
01260                     }
01261                     m_bWaitTreeProcess=false;
01262                 }
01263                 return TRUE;
01264 //          case NM_OUTOFMEMORY:
01265 //          case NM_RCLICK:
01266 //          case NM_RDBLCLK:
01267 //          case NM_RETURN:
01268 //          case NM_SETFOCUS:
01269 //          default:
01270 //              break;
01271             }
01272 //          break;
01273 //      }
01274     }else
01275     if( hwndList == pnmh->hwndFrom ){
01276         switch( pnmh->code ){
01277         case LVN_COLUMNCLICK:
01278 //              MYTRACE_A( "LVN_COLUMNCLICK\n" );
01279             m_nSortCol =  pnlv->iSubItem;
01280             //  Apr. 23, 2005 genta 関数として独立させた
01281             SortListView( hwndList, m_nSortCol );
01282             return TRUE;
01283         case NM_DBLCLK:
01284             return OnJump();
01285         case LVN_KEYDOWN:
01286             Key2Command( ((LV_KEYDOWN *)lParam)->wVKey );
01287             return TRUE;
01288         }
01289     }
01290     return FALSE;
01291 }
01312 void CDlgFuncList::SortListView(HWND hwndList, int sortcol)
01313 {
01314     LV_COLUMN       col;
01315
01316     //  Apr. 23, 2005 genta 行番号を左端へ
01317     if( sortcol == 1 ){
01318         col.mask = LVCF_TEXT;
01319     // From Here 2001.12.03 hor
01320     //  col.pszText = _T("関数名 *");
01321         if(OUTLINE_BOOKMARK == m_nListType){
01322             col.pszText = _T("テキスト *");
01323         }else{
01324             col.pszText = _T("関数名 *");
01325         }
01326     // To Here 2001.12.03 hor
01327         col.iSubItem = 0;
01328         ListView_SetColumn( hwndList, 1, &col );
01329         col.mask = LVCF_TEXT;
01330         col.pszText = _T("行");
01331         col.iSubItem = 0;
01332         ListView_SetColumn( hwndList, 0, &col );
01333     // From Here 2001.12.07 hor
01334         col.mask = LVCF_TEXT;
01335         col.pszText = _T("");
01336         col.iSubItem = 0;
01337         ListView_SetColumn( hwndList, 2, &col );
01338     // To Here 2001.12.07 hor
01339         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01340     }else
01341     if( sortcol == 0 ){
01342         col.mask = LVCF_TEXT;
01343     // From Here 2001.12.03 hor
01344     //  col.pszText = _T("関数名");
01345         if(OUTLINE_BOOKMARK == m_nListType){
01346             col.pszText = _T("テキスト");
01347         }else{
01348             col.pszText = _T("関数名");
01349         }
01350     // To Here 2001.12.03 hor
01351         col.iSubItem = 0;
01352         ListView_SetColumn( hwndList, 1, &col );
01353         col.mask = LVCF_TEXT;
01354         col.pszText = _T("行 *");
01355         col.iSubItem = 0;
01356         ListView_SetColumn( hwndList, 0, &col );
01357     // From Here 2001.12.07 hor
01358         col.mask = LVCF_TEXT;
01359         col.pszText = _T("");
01360         col.iSubItem = 0;
01361         ListView_SetColumn( hwndList, 2, &col );
01362     // To Here 2001.12.03 hor
01363         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01364     // From Here 2001.12.07 hor
01365     }else
01366     if( sortcol == 2 ){
01367         col.mask = LVCF_TEXT;
01368         if(OUTLINE_BOOKMARK == m_nListType){
01369             col.pszText = _T("テキスト");
01370         }else{
01371             col.pszText = _T("関数名");
01372         }
01373         col.iSubItem = 0;
01374         ListView_SetColumn( hwndList, 1, &col );
01375         col.mask = LVCF_TEXT;
01376         col.pszText = _T("行");
01377         col.iSubItem = 0;
01378         ListView_SetColumn( hwndList, 0, &col );
01379         col.mask = LVCF_TEXT;
01380         col.pszText = _T("*");
01381         col.iSubItem = 0;
01382         ListView_SetColumn( hwndList, 2, &col );
01383         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01384     // To Here 2001.12.07 hor
01385     }
01386     //  2005.04.23 zenryaku 選択された項目が見えるようにする
01387
01388     //  Apr. 29, 2005 genta 一旦一番下にスクロールさせる
01389     ListView_EnsureVisible( hwndList,
01390         ListView_GetItemCount(hwndList) - 1,
01391         FALSE );
01392
01393     //  Jan.  9, 2006 genta 先頭から1つ目と2つ目の関数が
01394     //  選択された場合にスクロールされなかった
01395     int keypos = ListView_GetNextItem(hwndList, -1, LVNI_FOCUSED) - 2;
01396     ListView_EnsureVisible( hwndList,
01397         keypos >= 0 ? keypos : 0,
01398         FALSE );
01399 }
01400
01406 BOOL CDlgFuncList::OnSize( WPARAM wParam, LPARAM lParam )
01407 {
01408     /* 基底クラスメンバ */
01409     CDialog::OnSize( wParam, lParam );
01410
01411     static const int Controls[][2] = {
01412         {IDC_CHECK_bFunclistSetFocusOnJump, 1},
01413         {IDC_CHECK_bMarkUpBlankLineEnable , 1},
01414         {IDC_CHECK_bAutoCloseDlgFuncList, 1},
01415         {IDC_BUTTON_WINSIZE, 2}, // 20060201 aroka
01416         {IDC_BUTTON_COPY, 2},
01417         {IDOK, 2},
01418         {IDCANCEL, 2},
01419         {IDC_BUTTON_HELP, 2},
01420         {IDC_LIST1, 3},
01421         {IDC_TREE1, 3},
01422     };
01423     int     nControls = _countof( Controls );
01424 //  int     fwSizeType;
01425     int     nWidth;
01426     int     nHeight;
01427     int     i;
01428     int     nHeightCheckBox;
01429     int     nHeightButton;
01430     const int   nHeightMargin = 3;
01431     RECT    rc;
01432     HWND    hwndCtrl;
01433     POINT   po;
01434
01435     nWidth = LOWORD(lParam);    // width of client area
01436     nHeight = HIWORD(lParam);   // height of client area
01437
01438
01439     ::GetWindowRect( ::GetDlgItem( GetHwnd(), IDC_CHECK_bAutoCloseDlgFuncList ), &rc );
01440     nHeightCheckBox = rc.bottom -  rc.top;
01441     ::GetWindowRect( ::GetDlgItem( GetHwnd(), IDOK ), &rc );
01442     nHeightButton = rc.bottom - rc.top;
01443
01444     for ( i = 0; i < nControls; ++i ){
01445         hwndCtrl = ::GetDlgItem( GetHwnd(), Controls[i][0] );
01446         ::GetWindowRect( hwndCtrl, &rc );
01447         po.x = rc.left;
01448         po.y = rc.top;
01449         ::ScreenToClient( GetHwnd(), &po );
01450         rc.left = po.x;
01451         rc.top  = po.y;
01452         po.x = rc.right;
01453         po.y = rc.bottom;
01454         ::ScreenToClient( GetHwnd(), &po );
01455         rc.right = po.x;
01456         rc.bottom  = po.y;
01457         //  2003.06.22 Moca テーブル上の種別によって処理方法を変える
01458         switch( Controls[i][1] ){
01459         case 1:
01460             ::SetWindowPos( hwndCtrl, NULL,
01461                 rc.left,
01462                 nHeight - nHeightCheckBox - nHeightMargin,
01463                 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01464             break;
01465 // 2002/11/1 frozen ここから
01466         case 2:
01467             ::SetWindowPos( hwndCtrl, NULL,
01468                 rc.left,
01469                 nHeight - nHeightCheckBox - nHeightButton - nHeightMargin * 2,
01470                 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01471             break;
01472         case 3:
01473             ::SetWindowPos( hwndCtrl, NULL, 0, 0,
01474                 nWidth - 2 * rc.left,
01475                 nHeight - rc.top - nHeightCheckBox - nHeightButton - 3 * nHeightMargin,
01476                 SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01477             break;
01478         }
01479 // 2002/11/1 frozen ここまで
01480         ::InvalidateRect( hwndCtrl, NULL, TRUE );
01481     }
01482     return TRUE;
01483 }
01484
01485 int CALLBACK Compare_by_ItemData(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
01486 {
01487     if( lParam1< lParam2 )
01488         return -1;
01489     if( lParam1 > lParam2 )
01490         return 1;
01491     else
01492         return 0;
01493 }
01494
01495 BOOL CDlgFuncList::OnDestroy( void )
01496 {
01497     CDialog::OnDestroy();
01498
01499     /* アウトライン ■位置とサイズを記憶する */ // 20060201 aroka
01500     // 前提条件：m_lParam が CDialog::OnDestroy でクリアされないこと
01501     CEditView* pcEditView=(CEditView*)m_lParam;
01502     if( m_pShareData->m_Common.m_sOutline.m_bRememberOutlineWindowPos ){
01503         /* 親のウィンドウ位置・サイズを記憶 */
01504         WINDOWPLACEMENT cWindowPlacement;
01505         cWindowPlacement.length = sizeof( cWindowPlacement );
01506         if (::GetWindowPlacement( pcEditView->m_pcEditDoc->m_pcEditWnd->GetHwnd(), &cWindowPlacement )){
01507             /* ウィンドウ位置・サイズを記憶 */
01508             m_pShareData->m_Common.m_sOutline.m_xOutlineWindowPos = m_xPos - cWindowPlacement.rcNormalPosition.left;
01509             m_pShareData->m_Common.m_sOutline.m_yOutlineWindowPos = m_yPos - cWindowPlacement.rcNormalPosition.top;
01510             m_pShareData->m_Common.m_sOutline.m_widthOutlineWindow = m_nWidth;
01511             m_pShareData->m_Common.m_sOutline.m_heightOutlineWindow = m_nHeight;
01512         }
01513
01514     }
01515     return TRUE;
01516 }
01517
01518
01519 BOOL CDlgFuncList::OnCbnSelChange( HWND hwndCtl, int wID )
01520 {
01521     int nSelect = ::SendMessageAny(hwndCtl,CB_GETCURSEL, 0, 0L);
01522     switch(wID)
01523     {
01524     case IDC_COMBO_nSortType:
01525         if( m_nSortType != nSelect )
01526         {
01527             m_nSortType = nSelect;
01528             SortTree(::GetDlgItem( GetHwnd() , IDC_TREE1),TVI_ROOT);
01529         }
01530         return TRUE;
01531     };
01532     return FALSE;
01533
01534 }
01535 void  CDlgFuncList::SortTree(HWND hWndTree,HTREEITEM htiParent)
01536 {
01537     if( m_nSortType == 1 )
01538         TreeView_SortChildren(hWndTree,htiParent,TRUE);
01539     else
01540     {
01541         TVSORTCB sort;
01542         sort.hParent =  htiParent;
01543         sort.lpfnCompare = Compare_by_ItemData;
01544         sort.lParam = 0;
01545         TreeView_SortChildrenCB(hWndTree , &sort , TRUE);
01546     }
01547     for(HTREEITEM htiItem = TreeView_GetChild( hWndTree, htiParent ); NULL != htiItem ; htiItem = TreeView_GetNextSibling( hWndTree, htiItem ))
01548         SortTree(hWndTree,htiItem);
01549 }
01550
01551
01552
01553 BOOL CDlgFuncList::OnJump( bool bCheckAutoClose )   //2002.02.08 hor 引数追加
01554 {
01555     int             nLineTo;
01556     /* ダイアログデータの取得 */
01557     if( 0 < ( nLineTo = GetData() ) ){
01558         if( m_bModal ){     /* モーダル ダイアログか */
01559             ::EndDialog( GetHwnd(), nLineTo );
01560         }else{
01561             /* カーソルを移動させる */
01562             POINT   poCaret;
01563             poCaret.x = 0;
01564             poCaret.y = nLineTo - 1;
01565
01566             memcpy_raw( m_pShareData->GetWorkBuffer<void>(), &poCaret, sizeof(poCaret) );
01567
01568             //  2006.07.09 genta 移動時に選択状態を保持するように
01569 			::SendMessageAny( ::GetParent( ::GetParent( m_hwndParent ) ),
01570                 MYWM_SETCARETPOS, 0, PM_SETCARETPOS_KEEPSELECT );
01571             if( bCheckAutoClose ){
01572                 /* アウトライン ダイアログを自動的に閉じる */
01573                 if( m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList ){
01574                     ::DestroyWindow( GetHwnd() );
01575                 }
01576                 else if( m_pShareData->m_Common.m_sOutline.m_bFunclistSetFocusOnJump ){
01577                     ::SetFocus( m_hwndParent );
01578                 }
01579             }
01580         }
01581     }
01582     return TRUE;
01583 }
01584
01585
01586 //@@@ 2002.01.18 add start
01587 LPVOID CDlgFuncList::GetHelpIdTable(void)
01588 {
01589     return (LPVOID)p_helpids;
01590 }
01591 //@@@ 2002.01.18 add end
01592
01593
01597 void CDlgFuncList::Key2Command(WORD KeyCode)
01598 {
01599     CEditView*  pcEditView;
01600 // novice 2004/10/10
01601     /* Shift,Ctrl,Altキーが押されていたか */
01602     int nIdx = getCtrlKeyState();
01603     EFunctionCode nFuncCode=CKeyBind::GetFuncCode(
01604             ((WORD)(((BYTE)(KeyCode)) | ((WORD)((BYTE)(nIdx))) << 8)),
01605             m_pShareData->m_nKeyNameArrNum,
01606             m_pShareData->m_pKeyNameArr
01607     );
01608     switch( nFuncCode ){
01609     case F_REDRAW:
01610         nFuncCode=(m_nListType==OUTLINE_BOOKMARK)?F_BOOKMARK_VIEW:F_OUTLINE;
01611         /*FALLTHROUGH*/
01612     case F_OUTLINE:
01613     case F_OUTLINE_TOGGLE: // 20060201 aroka フォーカスがあるときはリロード
01614     case F_BOOKMARK_VIEW:
01615         pcEditView=(CEditView*)m_lParam;
01616         pcEditView->GetCommander().HandleCommand( nFuncCode, TRUE, SHOW_RELOAD, 0, 0, 0 ); // 引数の変更 20060201 aroka
01617
01618         break;
01619     case F_BOOKMARK_SET:
01620         OnJump( false );
01621         pcEditView=(CEditView*)m_lParam;
01622         pcEditView->GetCommander().HandleCommand( nFuncCode, TRUE, 0, 0, 0, 0 );
01623
01624         break;
01625     case F_COPY:
01626     case F_CUT:
01627         OnBnClicked( IDC_BUTTON_COPY );
01628         break;
01629     }
01630 }
01631
01635 void CDlgFuncList::Redraw( int nOutLineType, CFuncInfoArr* pcFuncInfoArr, CLayoutInt nCurLine )
01636 {
01637     m_nListType = nOutLineType;
01638     m_pcFuncInfoArr = pcFuncInfoArr;    /* 関数情報配列 */
01639     m_nCurLine = nCurLine;              /* 現在行 */
01640     SetData();
01641 }
01642
01643 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFuncList.h

sakura_core

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 Nov 17 20:25:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgFuncList.h ソースファイル

sakura_core

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*, CLayoutInt, int, int );/* モードレスダイアログの表示 */
00042     void ChangeView( LPARAM );  /* モードレス時：検索対象となるビューの変更 */
00043
00046     bool CheckListType( int nOutLineType ) const { return nOutLineType == m_nListType; }
00047     void Redraw( int nOutLineType, CFuncInfoArr*, CLayoutInt nCurLine );
00048
00049     CFuncInfoArr*   m_pcFuncInfoArr;    /* 関数情報配列 */
00050     CLayoutInt      m_nCurLine;         /* 現在行 */
00051     int             m_nSortCol;         /* ソートする列番号 */
00052     int             m_nListType;        /* 一覧の種類 */
00053     CNativeW        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(); /* ダイアログデータの設定 */
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 Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgGrep.cpp

sakura_core

CDlgGrep.cpp

GREPダイアログボックス [詳細]

#include "stdafx.h"
#include <windows.h>
#include <shellapi.h>
#include "sakura_rc.h"
#include "CDlgGrep.h"
#include "debug.h"
#include "global.h"
#include "funccode.h"
#include "util/module.h"
#include "util/file.h"
#include "util/shell.h"
#include "CBregexp.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 の 142 行で定義されています。

参照先 _countof2, _tcscpy(), g_pOnFolderProc, GetLongFileName(), IsFileExists(), NULL, ResolveShortcutLink(), と SplitPath_FolderAndFile().

参照元 CDlgGrep::OnInitDialog().

変数

WNDPROC g_pOnFolderProc

CDlgGrep.cpp の 93 行で定義されています。

参照元 OnFolderProc(), と CDlgGrep::OnInitDialog().

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 の 34 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgGrep.cpp ソースファイル

sakura_core

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 #include <shellapi.h>
00019
00020
00021 #include "sakura_rc.h"
00022 #include "CDlgGrep.h"
00023 #include "debug.h"
00024
00025 #include "global.h"
00026 #include "funccode.h"       // Stonee, 2001/03/12
00027 #include "util/module.h"
00028 #include "util/file.h"
00029 #include "util/shell.h"
00030 #include "CBregexp.h"
00031
00032 //GREP CDlgGrep.cpp //@@@ 2002.01.07 add start MIK
00033 #include "sakura.hh"
00034 const DWORD p_helpids[] = { //12000
00035     IDC_BUTTON_FOLDER,              HIDC_GREP_BUTTON_FOLDER,            //フォルダ
00036     IDC_BUTTON_CURRENTFOLDER,       HIDC_GREP_BUTTON_CURRENTFOLDER,     //現フォルダ
00037     IDOK,                           HIDOK_GREP,                         //検索
00038     IDCANCEL,                       HIDCANCEL_GREP,                     //キャンセル
00039     IDC_BUTTON_HELP,                HIDC_GREP_BUTTON_HELP,              //ヘルプ
00040     IDC_CHK_WORD,                   HIDC_GREP_CHK_WORD,                 //単語単位
00041     IDC_CHK_SUBFOLDER,              HIDC_GREP_CHK_SUBFOLDER,            //サブフォルダも検索
00042     IDC_CHK_FROMTHISTEXT,           HIDC_GREP_CHK_FROMTHISTEXT,         //このファイルから
00043     IDC_CHK_LOHICASE,               HIDC_GREP_CHK_LOHICASE,             //大文字小文字
00044     IDC_CHK_REGULAREXP,             HIDC_GREP_CHK_REGULAREXP,           //正規表現
00045     IDC_COMBO_CHARSET,              HIDC_GREP_COMBO_CHARSET,            //文字コードセット
00046     IDC_COMBO_TEXT,                 HIDC_GREP_COMBO_TEXT,               //条件
00047     IDC_COMBO_FILE,                 HIDC_GREP_COMBO_FILE,               //ファイル
00048     IDC_COMBO_FOLDER,               HIDC_GREP_COMBO_FOLDER,             //フォルダ
00049     IDC_RADIO_OUTPUTLINE,           HIDC_GREP_RADIO_OUTPUTLINE,         //結果出力：行単位
00050     IDC_RADIO_OUTPUTMARKED,         HIDC_GREP_RADIO_OUTPUTMARKED,       //結果出力：該当部分
00051     IDC_RADIO_OUTPUTSTYLE1,         HIDC_GREP_RADIO_OUTPUTSTYLE1,       //結果出力形式：ノーマル
00052     IDC_RADIO_OUTPUTSTYLE2,         HIDC_GREP_RADIO_OUTPUTSTYLE2,       //結果出力形式：ファイル毎
00053     IDC_STATIC_JRE32VER,            HIDC_GREP_STATIC_JRE32VER,          //正規表現バージョン
00054     IDC_CHK_DEFAULTFOLDER,          HIDC_GREP_CHK_DEFAULTFOLDER,        //フォルダの初期値をカレントフォルダにする
00055 //  IDC_STATIC,                     -1,
00056     0, 0
00057 };  //@@@ 2002.01.07 add end MIK
00058
00059 CDlgGrep::CDlgGrep()
00060 {
00061     m_bSubFolder = FALSE;               // サブフォルダからも検索する
00062     m_bFromThisText = FALSE;            // この編集中のテキストから検索する
00063     m_sSearchOption.Reset();            // 検索オプション
00064     m_nGrepCharSet = CODE_SJIS;         // 文字コードセット
00065     m_bGrepOutputLine = TRUE;           // 行を出力するか該当部分だけ出力するか
00066     m_nGrepOutputStyle = 1;             // Grep: 出力形式
00067
00068     wcscpy( m_szText, m_pShareData->m_aSearchKeys[0] );     /* 検索文字列 */
00069     _tcscpy( m_szFile, m_pShareData->m_aGrepFiles[0] );     /* 検索ファイル */
00070     _tcscpy( m_szFolder, m_pShareData->m_aGrepFolders[0] ); /* 検索フォルダ */
00071     return;
00072 }
00073
00074
00075
00076 /* モーダルダイアログの表示 */
00077 int CDlgGrep::DoModal( HINSTANCE hInstance, HWND hwndParent, const TCHAR* pszCurrentFilePath )
00078 {
00079     m_bSubFolder = m_pShareData->m_Common.m_sSearch.m_bGrepSubFolder;           // Grep: サブフォルダも検索
00080     m_sSearchOption = m_pShareData->m_Common.m_sSearch.m_sSearchOption;     // 検索オプション
00081     m_nGrepCharSet = m_pShareData->m_Common.m_sSearch.m_nGrepCharSet;           // 文字コードセット
00082     m_bGrepOutputLine = m_pShareData->m_Common.m_sSearch.m_bGrepOutputLine; // 行を出力するか該当部分だけ出力するか
00083     m_nGrepOutputStyle = m_pShareData->m_Common.m_sSearch.m_nGrepOutputStyle;   // Grep: 出力形式
00084
00085
00086     _tcscpy(m_szCurrentFilePath, pszCurrentFilePath);
00087
00088     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_GREP, NULL );
00089 }
00090
00091 //  2007.02.09 bosagami
00092 LRESULT CALLBACK OnFolderProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam);
00093 WNDPROC g_pOnFolderProc;
00094
00095 BOOL CDlgGrep::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00096 {
00097     _SetHwnd( hwndDlg );
00098
00099     /* ユーザーがコンボボックスのエディット コントロールに入力できるテキストの長さを制限する */
00100     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00101     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00102     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00103
00104     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00105 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00106 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00107 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00108
00109     /* ダイアログのアイコン */
00110 //2002.02.08 Grepアイコンも大きいアイコンと小さいアイコンを別々にする。
00111     HICON   hIconBig, hIconSmall;
00112     //  Dec, 2, 2002 genta アイコン読み込み方法変更
00113     hIconBig   = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, false );
00114     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true );
00115 	::SendMessageAny( GetHwnd(), WM_SETICON, ICON_SMALL, (LPARAM)hIconSmall );
00116 	::SendMessageAny( GetHwnd(), WM_SETICON, ICON_BIG, (LPARAM)hIconBig );
00117
00118     // 2002/09/22 Moca Add
00119     int i;
00120     /* 文字コードセット選択コンボボックス初期化 */
00121     for( i = 0; i < gm_nCodeComboNameArrNum; ++i ){
00122         int idx = ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET ), CB_ADDSTRING,   0, (LPARAM)gm_pszCodeComboNameArr[i] );
00123 		::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET ), CB_SETITEMDATA, idx, gm_nCodeComboValueArr[i] );
00124     }
00125     //  2007.02.09 bosagami
00126     HWND hFolder = ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER );
00127     DragAcceptFiles(hFolder, true);
00128     g_pOnFolderProc = (WNDPROC)GetWindowLongPtr(hFolder, GWLP_WNDPROC);
00129     SetWindowLongPtr(hFolder, GWLP_WNDPROC, (DWORD)OnFolderProc);
00130
00131
00132     /* 基底クラスメンバ */
00133 //  CreateSizeBox();
00134     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00135 }
00136
00142 LRESULT CALLBACK OnFolderProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
00143 {
00144     if(msg == WM_DROPFILES)
00145     do {
00146         //  From Here 2007.09.02 genta
00147         SFilePath sPath;
00148         if( DragQueryFile((HDROP)wparam, 0, NULL, 0 ) > _countof2(sPath) - 1 ){
00149             // skip if the length of the path exceeds buffer capacity
00150             break;
00151         }
00152         DragQueryFile((HDROP)wparam, 0, sPath, _countof2(sPath) - 1);
00153
00154         /* ショートカット(.lnk)の解決 */
00155         //  ショートカットの先は別のディレクトリかもしれないので
00156         //  ファイル名を切り捨てる前に変換する
00157         SFilePath szWork;
00158         if( ResolveShortcutLink( NULL, sPath, szWork ) ){
00159             _tcscpy(sPath, szWork);
00160         }
00161
00162         //  ファイルがドロップされた場合はフォルダを切り出す
00163         //  フォルダの場合は最後が失われるのでsplitしてはいけない．
00164         if( IsFileExists( sPath, true )){   //  第2引数がtrueだとディレクトリは対象外
00165             SplitPath_FolderAndFile( sPath, szWork, NULL );
00166             _tcscpy( sPath, szWork );
00167         }
00168
00169         /* ロングファイル名を取得する */
00170         if( ::GetLongFileName( sPath, szWork ) ){
00171             _tcscpy( sPath, szWork );
00172         }
00173         SetWindowText(hwnd, szWork);
00174     } while(0);
00175     return  CallWindowProc((WNDPROC)g_pOnFolderProc,hwnd,msg,wparam,lparam);
00176 }
00177
00178 BOOL CDlgGrep::OnBnClicked( int wID )
00179 {
00180     switch( wID ){
00181     case IDC_BUTTON_HELP:
00182         /* 「Grep」のヘルプ */
00183         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00184         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_GREP_DIALOG) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00185         return TRUE;
00186     case IDC_CHK_FROMTHISTEXT:  /* この編集中のテキストから検索する */
00187         if( 0 < (int)_tcslen(m_szCurrentFilePath ) ){
00188             if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_FROMTHISTEXT ) ){
00189                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), FALSE );
00190                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), FALSE );
00191                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_FOLDER ), FALSE );
00192                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_SUBFOLDER ), FALSE );
00193                 ::CheckDlgButton( GetHwnd(), IDC_CHK_SUBFOLDER, 0 );
00194             }else{
00195                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), TRUE );
00196                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), TRUE );
00197                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_FOLDER ), TRUE );
00198                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_SUBFOLDER ), TRUE );
00199             }
00200             TCHAR   szWorkFolder[MAX_PATH];
00201             TCHAR   szWorkFile[MAX_PATH];
00202             // 2003.08.01 Moca ファイル名はスペースなどは区切り記号になるので、""で囲い、エスケープする
00203             szWorkFile[0] = _T('"');
00204             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile + 1 );
00205             _tcscat( szWorkFile, _T("\"") ); // 2003.08.01 Moca
00206 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szWorkFolder );
00207 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FILE, szWorkFile );
00208         }
00209         return TRUE;
00210     case IDC_BUTTON_CURRENTFOLDER:  /* 現在編集中のファイルのフォルダ */
00211         /* ファイルを開いているか */
00212         if( 0 < _tcslen( m_szCurrentFilePath ) ){
00213             TCHAR   szWorkFolder[MAX_PATH];
00214             TCHAR   szWorkFile[MAX_PATH];
00215             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00216 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szWorkFolder );
00217         }else{
00218             /* 現在のプロセスのカレントディレクトリを取得します */
00219             TCHAR   szWorkFolder[MAX_PATH];
00220             ::GetCurrentDirectory( _countof( szWorkFolder ) - 1, szWorkFolder );
00221 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szWorkFolder );
00222 //          ::MessageBeep( MB_ICONEXCLAMATION );
00223         }
00224         return TRUE;
00225
00226
00227 //  case IDC_CHK_LOHICASE:  /* 英大文字と英小文字を区別する */
00228 //      MYTRACE_A( "IDC_CHK_LOHICASE\n" );
00229 //      return TRUE;
00230     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00231 //      MYTRACE_A( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) );
00232         if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) ){
00233             // From Here Jun. 26, 2001 genta
00234             //  正規表現ライブラリの差し替えに伴う処理の見直し
00235             if( !CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, true ) ){
00236                 ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00237             }else{
00238                 //  To Here Jun. 26, 2001 genta
00239                 /* 英大文字と英小文字を区別する */
00240                 //  正規表現のときも選択できるように。
00241 //              ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 1 );
00242 //              ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), FALSE );
00243
00244                 //2001/06/23 N.Nakatani
00245                 /* 単語単位で検索 */
00246                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00247             }
00248         }else{
00249             /* 英大文字と英小文字を区別する */
00250             //  正規表現のときも選択できるように。
00251 //          ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), TRUE );
00252 //          ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 0 );
00253
00254
00255 //2001/06/23 N.Nakatani
00256 //単語単位のgrepが実装されたらコメントを外すと思います
00257 //2002/03/07実装してみた。
00258             /* 単語単位で検索 */
00259             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), TRUE );
00260
00261         }
00262         return TRUE;
00263
00264     case IDC_BUTTON_FOLDER:
00265         /* フォルダ参照ボタン */
00266         {
00267             TCHAR   szFolder[MAX_PATH];
00268             /* 検索フォルダ */
00269 			::DlgItem_GetText( GetHwnd(), IDC_COMBO_FOLDER, szFolder, _MAX_PATH - 1 );
00270             if( 0 == _tcslen( szFolder ) ){
00271                 ::GetCurrentDirectory( _countof( szFolder ), szFolder );
00272             }
00273             if( SelectDir( GetHwnd(), _T("検索するフォルダを選んでください"), szFolder, szFolder ) ){
00274 				::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szFolder );
00275             }
00276         }
00277
00278         return TRUE;
00279     case IDC_CHK_DEFAULTFOLDER:
00280         /* フォルダの初期値をカレントフォルダにする */
00281         {
00282             m_pShareData->m_Common.m_sSearch.m_bGrepDefaultFolder = ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_DEFAULTFOLDER );
00283         }
00284         return TRUE;
00285     case IDOK:
00286         /* ダイアログデータの取得 */
00287         if( GetData() ){
00288 //          ::EndDialog( hwndDlg, TRUE );
00289             CloseDialog( TRUE );
00290         }
00291         return TRUE;
00292     case IDCANCEL:
00293 //      ::EndDialog( hwndDlg, FALSE );
00294         CloseDialog( FALSE );
00295         return TRUE;
00296     }
00297
00298     /* 基底クラスメンバ */
00299     return CDialog::OnBnClicked( wID );
00300 }
00301
00302
00303
00304 /* ダイアログデータの設定 */
00305 void CDlgGrep::SetData( void )
00306 {
00307     m_pShareData = CShareData::getInstance()->GetShareData();
00308
00309     /* 検索文字列 */
00310 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_TEXT, m_szText );
00311     HWND    hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT );
00312     for( int i = 0; i < m_pShareData->m_aSearchKeys.size(); ++i ){
00313         Combo_AddString( hwndCombo, m_pShareData->m_aSearchKeys[i] );
00314     }
00315
00316     /* 検索ファイル */
00317 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_FILE, m_szFile );
00318     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE );
00319     for( int i = 0; i < m_pShareData->m_aGrepFiles.size(); ++i ){
00320         Combo_AddString( hwndCombo, m_pShareData->m_aGrepFiles[i] );
00321     }
00322
00323     /* 検索フォルダ */
00324 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, m_szFolder );
00325     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER );
00326     for( int i = 0; i < m_pShareData->m_aGrepFolders.size(); ++i ){
00327         Combo_AddString( hwndCombo, m_pShareData->m_aGrepFolders[i] );
00328     }
00329
00330     if((0 == _tcslen( m_pShareData->m_aGrepFolders[0] ) || m_pShareData->m_Common.m_sSearch.m_bGrepDefaultFolder ) &&
00331         0 < _tcslen( m_szCurrentFilePath )
00332     ){
00333         TCHAR   szWorkFolder[MAX_PATH];
00334         TCHAR   szWorkFile[MAX_PATH];
00335         SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00336 		::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szWorkFolder );
00337     }
00338
00339     /* この編集中のテキストから検索する */
00340     ::CheckDlgButton( GetHwnd(), IDC_CHK_FROMTHISTEXT, m_bFromThisText );
00341     if( 0 < _tcslen( m_szCurrentFilePath ) ){
00342         if( m_bFromThisText ){
00343             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), FALSE );
00344             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), FALSE );
00345             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_FOLDER ), FALSE );
00346             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_SUBFOLDER ), FALSE );
00347             TCHAR   szWorkFolder[MAX_PATH];
00348             TCHAR   szWorkFile[MAX_PATH];
00349             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00350 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FOLDER, szWorkFolder );
00351 			::DlgItem_SetText( GetHwnd(), IDC_COMBO_FILE, szWorkFile );
00352         }else{
00353             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), TRUE );
00354             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), TRUE );
00355             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_FOLDER ), TRUE );
00356             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_SUBFOLDER ), TRUE );
00357         }
00358     }
00359
00360     /* サブフォルダからも検索する */
00361     ::CheckDlgButton( GetHwnd(), IDC_CHK_SUBFOLDER, m_bSubFolder );
00362
00363     /* 英大文字と英小文字を区別する */
00364     ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, m_sSearchOption.bLoHiCase );
00365
00366     // 2001/06/23 N.Nakatani 現時点ではGrepでは単語単位の検索はサポートできていません
00367     // 2002/03/07 テストサポート
00368     /* 一致する単語のみ検索する */
00369     ::CheckDlgButton( GetHwnd(), IDC_CHK_WORD, m_sSearchOption.bWordOnly );
00370 //  ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ) , false );  //チェックボックスを使用不可にすも
00371
00372
00373     /* 文字コード自動判別 */
00374 //  ::CheckDlgButton( GetHwnd(), IDC_CHK_KANJICODEAUTODETECT, m_bKanjiCode_AutoDetect );
00375
00376     // 2002/09/22 Moca Add
00377     /* 文字コードセット */
00378     {
00379         int     nIdx, nCurIdx;
00380         ECodeType nCharSet;
00381         HWND    hWndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET );
00382         nCurIdx = ::SendMessageAny( hWndCombo , CB_GETCURSEL, 0, 0 );
00383         for( nIdx = 0; nIdx < gm_nCodeComboNameArrNum; nIdx++ ){
00384             nCharSet = (ECodeType)::SendMessageAny( hWndCombo, CB_GETITEMDATA, nIdx, 0 );
00385             if( nCharSet == m_nGrepCharSet ){
00386                 nCurIdx = nIdx;
00387             }
00388         }
00389 		::SendMessageAny( hWndCombo, CB_SETCURSEL, (WPARAM)nCurIdx, 0 );
00390     }
00391
00392     /* 行を出力するか該当部分だけ出力するか */
00393     if( m_bGrepOutputLine ){
00394         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUTLINE, TRUE );
00395     }else{
00396         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUTMARKED, TRUE );
00397     }
00398
00399     /* Grep: 出力形式 */
00400     if( 1 == m_nGrepOutputStyle ){
00401         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUTSTYLE1, TRUE );
00402     }else
00403     if( 2 == m_nGrepOutputStyle ){
00404         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUTSTYLE2, TRUE );
00405     }else{
00406         ::CheckDlgButton( GetHwnd(), IDC_RADIO_OUTPUTSTYLE1, TRUE );
00407     }
00408
00409     // From Here Jun. 29, 2001 genta
00410     // 正規表現ライブラリの差し替えに伴う処理の見直し
00411     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00412     // 無関係にCheckRegexpVersionを通過するようにした。
00413     if( CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, false )
00414         && m_sSearchOption.bRegularExp){
00415         /* 英大文字と英小文字を区別する */
00416         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 1 );
00417         //  正規表現のときも選択できるように。
00418 //      ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 1 );
00419 //      ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), FALSE );
00420
00421         // 2001/06/23 N.Nakatani
00422         /* 単語単位で探す */
00423         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00424     }
00425     else {
00426         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00427     }
00428     // To Here Jun. 29, 2001 genta
00429
00430     if( 0 < _tcslen( m_szCurrentFilePath ) ){
00431         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_FROMTHISTEXT ), TRUE );
00432     }else{
00433         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_FROMTHISTEXT ), FALSE );
00434     }
00435
00436     // フォルダの初期値をカレントフォルダにする
00437     ::CheckDlgButton( GetHwnd(), IDC_CHK_DEFAULTFOLDER, m_pShareData->m_Common.m_sSearch.m_bGrepDefaultFolder );
00438     if( m_pShareData->m_Common.m_sSearch.m_bGrepDefaultFolder ) OnBnClicked( IDC_BUTTON_CURRENTFOLDER );
00439
00440     return;
00441 }
00442
00443
00444
00445
00446 /* ダイアログデータの取得 */
00447 /* TRUE==正常  FALSE==入力エラー  */
00448 int CDlgGrep::GetData( void )
00449 {
00450     m_pShareData = CShareData::getInstance()->GetShareData();
00451
00452     /* サブフォルダからも検索する*/
00453     m_bSubFolder = ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_SUBFOLDER );
00454
00455     m_pShareData->m_Common.m_sSearch.m_bGrepSubFolder = m_bSubFolder;       /* Grep：サブフォルダも検索 */
00456
00457     /* この編集中のテキストから検索する */
00458     m_bFromThisText = ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_FROMTHISTEXT );
00459     /* 英大文字と英小文字を区別する */
00460     m_sSearchOption.bLoHiCase = (0!=::IsDlgButtonChecked( GetHwnd(), IDC_CHK_LOHICASE ));
00461
00462     //2001/06/23 N.Nakatani
00463     /* 単語単位で検索 */
00464     m_sSearchOption.bWordOnly = (0!=::IsDlgButtonChecked( GetHwnd(), IDC_CHK_WORD ));
00465
00466     /* 正規表現 */
00467     m_sSearchOption.bRegularExp = (0!=::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ));
00468
00469     /* 文字コード自動判別 */
00470 //  m_bKanjiCode_AutoDetect = ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_KANJICODEAUTODETECT );
00471
00472     /* 文字コードセット */
00473     {
00474         int     nIdx;
00475         HWND    hWndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET );
00476         nIdx = ::SendMessageAny( hWndCombo, CB_GETCURSEL, 0, 0 );
00477         m_nGrepCharSet = (ECodeType)::SendMessageAny( hWndCombo, CB_GETITEMDATA, nIdx, 0 );
00478     }
00479
00480
00481     /* 行を出力するか該当部分だけ出力するか */
00482     m_bGrepOutputLine = ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_OUTPUTLINE );
00483
00484     /* Grep: 出力形式 */
00485     if( TRUE == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_OUTPUTSTYLE1 ) ){
00486         m_nGrepOutputStyle = 1;             /* Grep: 出力形式 */
00487     }
00488     if( TRUE == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_OUTPUTSTYLE2 ) ){
00489         m_nGrepOutputStyle = 2;             /* Grep: 出力形式 */
00490     }
00491
00492
00493
00494     /* 検索文字列 */
00495 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_TEXT, m_szText, _countof(m_szText) );
00496     /* 検索ファイル */
00497 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_FILE, m_szFile, _countof2(m_szFile) );
00498     /* 検索フォルダ */
00499 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_FOLDER, m_szFolder, _countof2(m_szFolder) );
00500
00501     m_pShareData->m_Common.m_sSearch.m_sSearchOption = m_sSearchOption;     // 検索オプション
00502     m_pShareData->m_Common.m_sSearch.m_nGrepCharSet = m_nGrepCharSet;           // 文字コード自動判別
00503     m_pShareData->m_Common.m_sSearch.m_bGrepOutputLine = m_bGrepOutputLine; // 行を出力するか該当部分だけ出力するか
00504     m_pShareData->m_Common.m_sSearch.m_nGrepOutputStyle = m_nGrepOutputStyle;   // Grep: 出力形式
00505
00506
00507 //やめました
00508 //  if( 0 == wcslen( m_szText ) ){
00509 //      ::MYMESSAGEBOX_A(   GetHwnd(),  MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00510 //          "検索のキーワードを指定してください。"
00511 //      );
00512 //      return FALSE;
00513 //  }
00514     /* この編集中のテキストから検索する */
00515     if( 0 == _tcslen( m_szFile ) ){
00516         //  Jun. 16, 2003 Moca
00517         //  検索パターンが指定されていない場合のメッセージ表示をやめ、
00518         //  「*.*」が指定されたものと見なす．
00519         _tcscpy( m_szFile, _T("*.*") );
00520     }
00521     if( 0 == _tcslen( m_szFolder ) ){
00522 		::MYMESSAGEBOX_A( GetHwnd(),  MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00523             "検索対象フォルダを指定してください。"
00524         );
00525         return FALSE;
00526     }
00527
00528     TCHAR szCurDirOld[MAX_PATH];
00529     ::GetCurrentDirectory( MAX_PATH, szCurDirOld );
00530     /* 相対パス→絶対パス */
00531     if( 0 == ::SetCurrentDirectory( m_szFolder ) ){
00532 		::MYMESSAGEBOX_A( GetHwnd(),  MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00533             "検索対象フォルダが正しくありません。"
00534         );
00535         ::SetCurrentDirectory( szCurDirOld );
00536         return FALSE;
00537     }
00538     ::GetCurrentDirectory( MAX_PATH, m_szFolder );
00539     ::SetCurrentDirectory( szCurDirOld );
00540
00541 //@@@ 2002.2.2 YAZAKI CShareData.AddToSearchKeyArr()追加に伴う変更
00542     /* 検索文字列 */
00543     if( 0 < wcslen( m_szText ) ){
00544         // From Here Jun. 26, 2001 genta
00545         //  正規表現ライブラリの差し替えに伴う処理の見直し
00546         int nFlag = 0;
00547         nFlag |= m_sSearchOption.bLoHiCase ? 0x01 : 0x00;
00548         if( m_sSearchOption.bRegularExp  && !CheckRegexpSyntax( m_szText, GetHwnd(), true, nFlag) ){
00549             return FALSE;
00550         }
00551         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00552         CShareData::getInstance()->AddToSearchKeyArr( m_szText );
00553     }
00554
00555     /* 検索ファイル */
00556     CShareData::getInstance()->AddToGrepFileArr( m_szFile );
00557
00558     /* 検索フォルダ */
00559     CShareData::getInstance()->AddToGrepFolderArr( m_szFolder );
00560
00561     return TRUE;
00562 }
00563
00564 //@@@ 2002.01.18 add start
00565 LPVOID CDlgGrep::GetHelpIdTable(void)
00566 {
00567     return (LPVOID)p_helpids;
00568 }
00569 //@@@ 2002.01.18 add end
00570
00571 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgGrep.h

sakura_core

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 Nov 17 20:25:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgGrep.h ソースファイル

sakura_core

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 TCHAR* );   /* モーダルダイアログの表示 */
00035 //  HWND DoModeless( HINSTANCE, HWND, const char* );    /* モードレスダイアログの表示 */
00036
00037
00038     BOOL        m_bSubFolder;
00039     BOOL        m_bFromThisText;
00041     SSearchOption   m_sSearchOption;
00042     /*
00043     int         m_bRegularExp;  //!< 正規表現
00044     int         m_bLoHiCase;    //!< 英大文字と小文字を区別する
00045     BOOL        m_bWordOnly;    //!< 単語単位で検索
00046     */
00047
00048     BOOL        m_bGrepOutputLine;
00050     ECodeType   m_nGrepCharSet;
00052     int         m_nGrepOutputStyle;
00053     EDIT_CHAR   m_szText[_MAX_PATH + 1];
00054     SFilePath   m_szFile;
00055     SFilePath   m_szFolder;
00056     SFilePath   m_szCurrentFilePath;
00057 protected:
00058     /*
00059     ||  実装ヘルパ関数
00060     */
00061     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00062     BOOL OnBnClicked( int );
00063     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00064
00065     void SetData( void );   /* ダイアログデータの設定 */
00066     int GetData( void );    /* ダイアログデータの取得 */
00067
00068 };
00069
00070
00071
00073 #endif /* _CDLGGREP_H_ */
00074
00075
00076 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgInput1.cpp

sakura_core

CDlgInput1.cpp

1行入力ダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgInput1.h"
#include "debug.h"
#include "CEditApp.h"
#include "util/shell.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 の 36 行で定義されています。

参照先 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 の 25 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgInput1.cpp ソースファイル

sakura_core

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 #include "CEditApp.h"
00021 #include "util/shell.h"
00022
00023 // 入力 CDlgInput1.cpp    //@@@ 2002.01.07 add start MIK
00024 #include "sakura.hh"
00025 static const DWORD p_helpids[] = {  //13000
00026     IDOK,                   HIDOK_DLG1,
00027     IDCANCEL,               HIDCANCEL_DLG1,
00028     IDC_EDIT1,              HIDC_DLG1_EDIT1,    //入力フィールド
00029     IDC_STATIC_MSG,         HIDC_DLG1_EDIT1,    //メッセージ
00030 //  IDC_STATIC,             -1,
00031     0, 0
00032 };  //@@@ 2002.01.07 add end MIK
00033
00034
00035 /* ダイアログプロシージャ */
00036 INT_PTR CALLBACK CDlgInput1Proc(
00037     HWND hwndDlg,   // handle to dialog box
00038     UINT uMsg,      // message
00039     WPARAM wParam,  // first message parameter
00040     LPARAM lParam   // second message parameter
00041 )
00042 {
00043     CDlgInput1* pCDlgInput1;
00044     switch( uMsg ){
00045     case WM_INITDIALOG:
00046         pCDlgInput1 = ( CDlgInput1* )lParam;
00047         if( NULL != pCDlgInput1 ){
00048             return pCDlgInput1->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00049         }else{
00050             return FALSE;
00051         }
00052     default:
00053         // Modified by KEITA for WIN64 2003.9.6
00054         pCDlgInput1 = ( CDlgInput1* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00055         if( NULL != pCDlgInput1 ){
00056             return pCDlgInput1->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00057         }else{
00058             return FALSE;
00059         }
00060     }
00061 }
00062
00063
00064
00065 CDlgInput1::CDlgInput1()
00066 {
00067     /* ヘルプファイルのフルパスを返す */
00068     m_szHelpFile = CEditApp::Instance()->GetHelpFilePath(); //@@@ 2002.01.07 add
00069
00070     return;
00071 }
00072
00073
00074
00075 CDlgInput1::~CDlgInput1()
00076 {
00077     return;
00078 }
00079
00080
00081
00082 /* モードレスダイアログの表示 */
00083 BOOL CDlgInput1::DoModal(
00084     HINSTANCE       hInstApp,
00085     HWND            hwndParent,
00086     const TCHAR*    pszTitle,
00087     const TCHAR*    pszMessage,
00088     int             nMaxTextLen,
00089     TCHAR*          pszText
00090 )
00091 {
00092     BOOL bRet;
00093     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00094     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00095     m_pszTitle = pszTitle;      /* ダイアログタイトル */
00096     m_pszMessage = pszMessage;      /* メッセージ */
00097     m_nMaxTextLen = nMaxTextLen;    /* 入力サイズ上限 */
00098 //  m_pszText = pszText;            /* テキスト */
00099     m_cmemText.SetString( pszText );
00100     bRet = (BOOL)::DialogBoxParam(
00101         m_hInstance,
00102         MAKEINTRESOURCE( IDD_INPUT1 ),
00103         m_hwndParent,
00104         CDlgInput1Proc,
00105         (LPARAM)this
00106     );
00107     _tcscpy( pszText, m_cmemText.GetStringPtr() );
00108     return bRet;
00109 }
00110
00111 BOOL CDlgInput1::DoModal(
00112     HINSTANCE       hInstApp,
00113     HWND            hwndParent,
00114     const TCHAR*    pszTitle,
00115     const TCHAR*    pszMessage,
00116     int             nMaxTextLen,
00117     NOT_TCHAR*      pszText
00118 )
00119 {
00120     TCHAR buf[1024];
00121     BOOL ret=DoModal(hInstApp, hwndParent, pszTitle, pszMessage, nMaxTextLen, buf);
00122     if(ret){
00123         auto_strcpy(pszText,to_not_tchar(buf));
00124     }
00125     return ret;
00126 }
00127
00128
00129
00130 /* ダイアログのメッセージ処理 */
00131 INT_PTR CDlgInput1::DispatchEvent(
00132     HWND hwndDlg,   // handle to dialog box
00133     UINT uMsg,      // message
00134     WPARAM wParam,  // first message parameter
00135     LPARAM lParam   // second message parameter
00136 )
00137 {
00138     WORD    wNotifyCode;
00139     WORD    wID;
00140     HWND    hwndCtl;
00141 //  int     nRet;
00142     switch( uMsg ){
00143     case WM_INITDIALOG:
00144         /* ダイアログデータの設定 */
00145         // Modified by KEITA for WIN64 2003.9.6
00146 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00147
00148         ::SetWindowText( hwndDlg, m_pszTitle ); /* ダイアログタイトル */
00149         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT1 ), EM_LIMITTEXT, m_nMaxTextLen, 0 );    /* 入力サイズ上限 */
00150         DlgItem_SetText( hwndDlg, IDC_EDIT1, m_cmemText.GetStringPtr() );   /* テキスト */
00151         ::SetWindowText( ::GetDlgItem( hwndDlg, IDC_STATIC_MSG ), m_pszMessage );   /* メッセージ */
00152
00153         return TRUE;
00154     case WM_COMMAND:
00155         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00156         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00157         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00158         switch( wNotifyCode ){
00159         /* ボタン／チェックボックスがクリックされた */
00160         case BN_CLICKED:
00161             switch( wID ){
00162             case IDOK:
00163                 m_cmemText.AllocStringBuffer( ::GetWindowTextLength( ::GetDlgItem( hwndDlg, IDC_EDIT1 ) ) );
00164                 ::GetWindowText( ::GetDlgItem( hwndDlg, IDC_EDIT1 ), m_cmemText.GetStringPtr(), m_nMaxTextLen + 1 );    /* テキスト */
00165                 ::EndDialog( hwndDlg, TRUE );
00166                 return TRUE;
00167             case IDCANCEL:
00168                 ::EndDialog( hwndDlg, FALSE );
00169                 return TRUE;
00170             }
00171             break;  //@@@ 2002.01.07 add
00172         }
00173         break;  //@@@ 2002.01.07 add
00174     //@@@ 2002.01.07 add start
00175     case WM_HELP:
00176         {
00177             HELPINFO *p = (HELPINFO *)lParam;
00178             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00179         }
00180         return TRUE;
00181
00182     //Context Menu
00183     case WM_CONTEXTMENU:
00184         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00185         return TRUE;
00186     //@@@ 2002.01.07 add end
00187     }
00188     return FALSE;
00189 }
00190
00191
00192 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgInput1.h

sakura_core

CDlgInput1.h

1行入力ダイアログボックス [詳細]

#include <windows.h>
#include "CMemory.h"

CDlgInput1.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgInput1
１行入力ダイアログボックス [詳細]

説明

1行入力ダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

CDlgInput1.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgInput1.h ソースファイル

sakura_core

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 TCHAR* , const TCHAR* , int , TCHAR*  ); /* モードレスダイアログの表示 */
00038     BOOL DoModal( HINSTANCE , HWND , const TCHAR* , const TCHAR* , int , NOT_TCHAR*  ); /* モードレスダイアログの表示 */
00039     /*
00040     ||  Attributes & Operations
00041     */
00042     INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00043
00044     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00045     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00046     HWND        m_hWnd;         /* このダイアログのハンドル */
00047
00048     const TCHAR*    m_pszTitle;     /* ダイアログタイトル */
00049     const TCHAR*    m_pszMessage;   /* メッセージ */
00050     int         m_nMaxTextLen;  /* 入力サイズ上限 */
00051 //  char*       m_pszText;      /* テキスト */
00052     CNativeT    m_cmemText;     /* テキスト */
00053     SFilePath   m_szHelpFile;   //@@@ 2002.01.07 add
00054 protected:
00055     /*
00056     ||  実装ヘルパ関数
00057     */
00058 };
00059
00060
00061
00063 #endif /* _CDLGINPUT1_H_ */
00064
00065 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgJump.cpp

sakura_core

CDlgJump.cpp

指定行へのジャンプダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgJump.h"
#include "debug.h"
#include "CEditDoc.h"
#include "funccode.h"
#include "CFuncInfoArr.h"
#include "util/shell.h"
#include "CEditWnd.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 の 30 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgJump.cpp ソースファイル

sakura_core

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 "debug.h"
00022 #include "CEditDoc.h"
00023 #include "funccode.h"       // Stonee, 2001/03/12
00024 #include "CFuncInfoArr.h"// 2002/2/10 aroka ヘッダ整理
00025 #include "util/shell.h"
00026 #include "CEditWnd.h"
00027
00028 // ジャンプ CDlgJump.cpp    //@@@ 2002.01.07 add start MIK
00029 #include "sakura.hh"
00030 const DWORD p_helpids[] = { //12800
00031     IDC_BUTTON_JUMP,                HIDC_JUMP_BUTTON_JUMP,          //ジャンプ
00032     IDCANCEL,                       HIDCANCEL_JUMP,                 //キャンセル
00033     IDC_BUTTON_HELP,                HIDC_JUMP_BUTTON_HELP,          //ヘルプ
00034     IDC_CHECK_PLSQL,                HIDC_JUMP_CHECK_PLSQL,          //PL/SQL
00035     IDC_COMBO_PLSQLBLOCKS,          HIDC_JUMP_COMBO_PLSQLBLOCKS,    //
00036     IDC_EDIT_LINENUM,               HIDC_JUMP_EDIT_LINENUM,         //行番号
00037     IDC_EDIT_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,        //
00038     IDC_RADIO_LINENUM_LAYOUT,       HIDC_JUMP_RADIO_LINENUM_LAYOUT, //折り返し単位
00039     IDC_RADIO_LINENUM_CRLF,         HIDC_JUMP_RADIO_LINENUM_CRLF,   //改行単位
00040     IDC_SPIN_LINENUM,               HIDC_JUMP_EDIT_LINENUM,         //12870,    //
00041     IDC_SPIN_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,        //12871,    //
00042 //  IDC_STATIC,                     -1,
00043     0, 0
00044 };  //@@@ 2002.01.07 add end MIK
00045
00046 CDlgJump::CDlgJump()
00047 {
00048     m_nLineNum = 0;         /* 行番号 */
00049     m_bPLSQL = FALSE;       /* PL/SQLソースの有効行か */
00050     m_nPLSQL_E1 = 1;
00051     m_nPLSQL_E2 = 1;
00052
00053
00054     return;
00055 }
00056
00057 /* モーダルダイアログの表示 */
00058 int CDlgJump::DoModal(
00059     HINSTANCE   hInstance,
00060     HWND        hwndParent,
00061     LPARAM      lParam
00062 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00063 //  BOOL        bLineNumIsCRLF  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00064 )
00065 {
00066 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00067 //  m_bLineNumIsCRLF = bLineNumIsCRLF;  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00068     return CDialog::DoModal( hInstance, hwndParent, IDD_JUMP, lParam );
00069 }
00070
00071
00072 // From Here Oct. 6, 2000 JEPRO added 行番号入力ボックスにスピンコントロールを付けるため
00073 // CDlgPrintSetting.cppのOnNotifyとOnSpin及びCpropComFile.cppのDispatchEvent_p2内のcase WM_NOTIFYを参考にした
00074 BOOL CDlgJump::OnNotify( WPARAM wParam, LPARAM lParam )
00075 {
00076     NMHDR*          pNMHDR;
00077     NM_UPDOWN*      pMNUD;
00078     int             idCtrl;
00079     int             nData;
00080     idCtrl = (int)wParam;
00081     pNMHDR = (NMHDR*)lParam;
00082     pMNUD  = (NM_UPDOWN*)lParam;
00083 /* スピンコントロールの処理 */
00084     switch( idCtrl ){
00085     case IDC_SPIN_LINENUM:
00086     /* ジャンプしたい行番号の指定 */
00087         nData = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_LINENUM, NULL, FALSE );
00088         if( pMNUD->iDelta < 0 ){
00089             ++nData;
00090         }else
00091         if( pMNUD->iDelta > 0 ){
00092             nData--;
00093         }
00094         if( nData < 1 ){
00095             nData = 1;
00096         }
00097         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINENUM, nData, FALSE );
00098         break;
00099     case IDC_SPIN_PLSQL_E1:
00100         nData = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, NULL, FALSE );
00101         if( pMNUD->iDelta < 0 ){
00102             ++nData;
00103         }else
00104         if( pMNUD->iDelta > 0 ){
00105             nData--;
00106         }
00107         if( nData < 1 ){
00108             nData = 1;
00109         }
00110         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, nData, FALSE );
00111         break;
00112     default:
00113         break;
00114     }
00115     return TRUE;
00116 }
00117 // To Here Oct. 6, 2000
00118
00119
00120 BOOL CDlgJump::OnCbnSelChange( HWND hwndCtl, int wID )
00121 {
00122     int nIndex;
00123     int nWorkLine;
00124     switch( wID ){
00125     case IDC_COMBO_PLSQLBLOCKS:
00126         nIndex = ::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), CB_GETCURSEL, 0, 0 );
00127         nWorkLine = (int)::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), CB_GETITEMDATA, nIndex, 0 );
00128         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, nWorkLine, FALSE );
00129         return TRUE;
00130     }
00131     return FALSE;
00132 }
00133
00134 BOOL CDlgJump::OnBnClicked( int wID )
00135 {
00136     switch( wID ){
00137     case IDC_BUTTON_HELP:
00138         /* 「指定行へジャンプ」のヘルプ */
00139         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00140         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_JUMP_DIALOG) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00141         return TRUE;
00142     case IDC_CHECK_PLSQL:       /* PL/SQLソースの有効行か */
00143         if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PLSQL ) ){
00144             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), TRUE );    //Sept. 12, 2000 JEPRO
00145             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), TRUE );    //Sept. 12, 2000 JEPRO
00146             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), TRUE );    //Sept. 12, 2000 JEPRO
00147             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), TRUE );
00148             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), TRUE );   //Oct. 6, 2000 JEPRO
00149             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), TRUE );
00150 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00151             m_pShareData->m_bLineNumIsCRLF = TRUE;
00152             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), FALSE );
00153             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), FALSE );
00154         }else{
00155             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), FALSE );   //Sept. 12, 2000 JEPRO
00156             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), FALSE );   //Sept. 12, 2000 JEPRO
00157             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), FALSE );   //Sept. 12, 2000 JEPRO
00158             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), FALSE );
00159             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), FALSE );  //Oct. 6, 2000 JEPRO
00160             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), FALSE );
00161             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), TRUE );
00162             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), TRUE );
00163         }
00164         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00165 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00166         if( m_pShareData->m_bLineNumIsCRLF ){
00167             ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, FALSE );
00168             ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, TRUE );
00169         }else{
00170             ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, TRUE );
00171             ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, FALSE );
00172         }
00173         return TRUE;
00174     case IDC_BUTTON_JUMP:           /* 指定行へジャンプ */  //Feb. 20, 2001 JEPRO ボタン名を[IDOK]→[IDC_BUTTON_JUMP]に変更
00175         /* ダイアログデータの取得 */
00176         //From Here Feb. 20, 2001 JEPRO 次行をコメントアウト (CEditView_Command.cpp の Command_JUMP も関係しているので参照のこと)
00177 //      ::EndDialog( GetHwnd(), GetData() );
00178 //      次行から追加
00179         if( 0 < GetData() ){
00180             CloseDialog( 1 );
00181         }else{
00182 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00183                 "正しく行番号を入力してください。"
00184             );
00185         }
00186 //To Here Feb. 20, 2001
00187         {   //@@@ 2002.2.2 YAZAKI 指定行へジャンプを、ダイアログを表示するコマンドと、実際にジャンプするコマンドに分離。
00188             CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00189             pCEditDoc->m_pcEditWnd->GetActiveView().GetCommander().HandleCommand(F_JUMP, TRUE, 0, 0, 0, 0); //  ジャンプコマンド発行
00190         }
00191         return TRUE;
00192     case IDCANCEL:
00193         ::EndDialog( GetHwnd(), FALSE );
00194         return TRUE;
00195     }
00196     /* 基底クラスメンバ */
00197     return CDialog::OnBnClicked( wID );
00198 }
00199
00200
00201
00202 /* ダイアログデータの設定 */
00203 void CDlgJump::SetData( void )
00204 {
00205     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00206     CFuncInfoArr    cFuncInfoArr;
00207     int             i;
00208     HWND            hwndCtrl;
00209     wchar_t         szText[1024];
00210     int             nIndexCurSel = 0;   //  Sep. 11, 2004 genta 初期化
00211     int             nIndex;
00212     int             nWorkLine; //$$ 条件により、レイアウト・ロジックの単位が混在するため、ミスの原因になりやすい
00213     int             nPLSQLBlockNum;
00214
00215 //  GetHwnd() = hwndDlg;
00216 //From Here Oct. 7, 2000 JEPRO 前回入力した行番号を保持するように下行を変更
00217 //  ::DlgItem_SetText( GetHwnd(), IDC_EDIT_LINENUM, "" );   /* 行番号 */
00218     if( 0 == m_nLineNum ){
00219 		::DlgItem_SetText( GetHwnd(), IDC_EDIT_LINENUM, _T("") ); /* 行番号 */
00220     }else{
00221         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINENUM, m_nLineNum, FALSE );  /* 前回の行番号 */
00222     }
00223 //To Here Oct. 7, 2000
00224     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE );
00225
00226     /* PL/SQL関数リスト作成 */
00227     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS );
00228
00229 /* タイプ別に設定されたアウトライン解析方法 */
00230     if( OUTLINE_PLSQL == pCEditDoc->GetDocumentAttribute().m_nDefaultOutline ){
00231         pCEditDoc->MakeFuncList_PLSQL( &cFuncInfoArr );
00232     }
00233     nWorkLine = -1;
00234     nIndex = 0;
00235     nPLSQLBlockNum = 0;
00236     for( i = 0; i < cFuncInfoArr.GetNum(); ++i ){
00237         if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo ||
00238             41 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00239         }
00240         if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00241 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00242             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00243                 auto_sprintf( szText, L"%d 行  %ts  パッケージ仕様部",
00244                     cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF,
00245                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr()
00246                 );
00247             }else{
00248                 auto_sprintf( szText, L"%d 行  %ts  パッケージ仕様部",
00249                     cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT,
00250                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr()
00251                 );
00252             }
00253             nIndex = Combo_AddString( hwndCtrl, szText );
00254 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00255             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00256 				::SendMessageAny( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF );
00257             }
00258             else{
00259 				::SendMessageAny( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT );
00260             }
00261             nPLSQLBlockNum++;
00262         }
00263         if( 41 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00264 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00265             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00266                 auto_sprintf( szText, L"%d 行  %ts  パッケージ本体部",
00267                     cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF,
00268                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr()
00269                 );
00270             }else{
00271                 auto_sprintf( szText, L"%d 行  %ts  パッケージ本体部",
00272                     cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT,
00273                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr()
00274                 );
00275             }
00276             nIndexCurSel = nIndex = Combo_AddString( hwndCtrl, szText );
00277 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00278             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00279                 nWorkLine = (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF;
00280 				::SendMessageAny( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF );
00281             }else{
00282                 nWorkLine = (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT;
00283 				::SendMessageAny( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT );
00284             }
00285             ++nPLSQLBlockNum;
00286         }
00287     }
00288 	::SendMessageAny( hwndCtrl, CB_SETCURSEL, nIndexCurSel, 0 );
00289
00290     /* PL/SQLのパッケージ本体が検出された場合 */
00291     if( -1 != nWorkLine ){
00292         m_nPLSQL_E1 = nWorkLine;
00293         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE );
00294     }
00295     /* PL/SQLのパッケージブロックが検出された場合 */
00296     if( 0 < nPLSQLBlockNum ){
00297         m_bPLSQL = TRUE;
00298     }
00299     ::CheckDlgButton( GetHwnd(), IDC_CHECK_PLSQL, m_bPLSQL );   /* PL/SQLソースの有効行か */
00300     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PLSQL ) ){
00301         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), TRUE );    //Sept. 12, 2000 JEPRO
00302         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), TRUE );    //Sept. 12, 2000 JEPRO
00303         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), TRUE );    //Sept. 12, 2000 JEPRO
00304         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), TRUE );
00305         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), TRUE );   //Oct. 6, 2000 JEPRO
00306         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), TRUE );
00307 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00308         m_pShareData->m_bLineNumIsCRLF = TRUE;
00309         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), FALSE );
00310         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), FALSE );
00311     }else{
00312         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), FALSE );   //Sept. 12, 2000 JEPRO
00313         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), FALSE );   //Sept. 12, 2000 JEPRO
00314         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), FALSE );   //Sept. 12, 2000 JEPRO
00315         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), FALSE );
00316         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), FALSE );  //Oct. 6, 2000 JEPRO
00317         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), FALSE );
00318         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), TRUE );
00319         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), TRUE );
00320     }
00321     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00322 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00323     if( m_pShareData->m_bLineNumIsCRLF ){
00324         ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, FALSE );
00325         ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, TRUE );
00326     }else{
00327         ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, TRUE );
00328         ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, FALSE );
00329     }
00330     return;
00331 }
00332
00333
00334
00335
00336 /* ダイアログデータの取得 */
00337 /*   TRUE==正常   FALSE==入力エラー  */
00338 int CDlgJump::GetData( void )
00339 {
00340     BOOL    pTranslated;
00341
00342     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00343 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00344     if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ) ){
00345         m_pShareData->m_bLineNumIsCRLF = FALSE;
00346     }else{
00347         m_pShareData->m_bLineNumIsCRLF = TRUE;
00348     }
00349
00350     /* PL/SQLソースの有効行か */
00351     m_bPLSQL = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PLSQL );
00352     m_nPLSQL_E1 = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, &pTranslated, FALSE );
00353     if( m_nPLSQL_E1 == 0 && FALSE == pTranslated ){
00354         m_nPLSQL_E1 = 1;
00355     }
00356
00357 //  m_nPLSQL_E2 = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E2, &pTranslated, FALSE );
00358 //  if( m_nPLSQL_E2 == 0 && FALSE == pTranslated ){
00359 //      m_nPLSQL_E2 = 1;
00360 //  }
00361
00362     /* 行番号 */
00363     m_nLineNum = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_LINENUM, &pTranslated, FALSE );
00364     if( m_nLineNum == 0 && FALSE == pTranslated ){
00365         return FALSE;
00366     }
00367     return TRUE;
00368 }
00369
00370 //@@@ 2002.01.18 add start
00371 LPVOID CDlgJump::GetHelpIdTable(void)
00372 {
00373     return (LPVOID)p_helpids;
00374 }
00375 //@@@ 2002.01.18 add end
00376
00377 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgJump.h

sakura_core

CDlgJump.h

指定行へのジャンプダイアログボックス [詳細]

#include "CDialog.h"

CDlgJump.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgJump
指定行へのジャンプダイアログボックス [詳細]

説明

指定行へのジャンプダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

1999/12/05 再作成

CDlgJump.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgJump.h ソースファイル

sakura_core

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 Nov 17 20:24:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgKeywordSelect.cpp

sakura_core

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 Nov 17 20:25:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgKeywordSelect.cpp ソースファイル

sakura_core

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     _SetHwnd( 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( GetHwnd(), keyword_select_target_combo[ index ] );
00132
00133         /* コンボボックスを空にする */
00134 		::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
00135
00136         /* 一行目は空白 */
00137         Combo_AddString( hwndCombo, L" " );
00138
00139         if( m_pCKeyWordSetMgr->m_nKeyWordSetNum > 0 )
00140         {
00141             for( i = 0; i < m_pCKeyWordSetMgr->m_nKeyWordSetNum; i++ )
00142             {
00143                 Combo_AddString( hwndCombo, m_pCKeyWordSetMgr->GetTypeName( i ) );
00144             }
00145
00146             if( -1 == m_nSet[ index ] )
00147             {
00148                 /* セット名コンボボックスのデフォルト選択 */
00149 				::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)0, 0 );
00150             }
00151             else
00152             {
00153                 /* セット名コンボボックスのデフォルト選択 */
00154 				::SendMessageAny( 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( GetHwnd(), keyword_select_target_combo[ index ] );
00172
00173         n = ::SendMessageAny( 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 Nov 17 20:24:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgKeywordSelect.h

sakura_core

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 Nov 17 20:25:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgKeywordSelect.h ソースファイル

sakura_core

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 Nov 17 20:24:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgOpenFile.cpp

sakura_core

CDlgOpenFile.cpp

ファイルオープンダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgOpenFile.h"
#include "debug.h"
#include "sakura_rc.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 "CEditApp.h"
#include "util/shell.h"
#include "util/file.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 TCHAR ** | m_ppszMRU
const TCHAR ** | m_ppszOPENFOLDER
SFilePath m_szHelpFile
int | m_nHelpTopicID
bool | m_bReadOnly
BOOL | m_bIsSaveDialog

説明

ファイルオープンダイアログボックス

作者:
Norio Nakatani
日付:
1998/08/10 作成

CDlgOpenFile.cpp で定義されています。

マクロ定義

#define OFN_ENABLESIZING 0x00800000

CDlgOpenFile.cpp の 51 行で定義されています。

関数

UINT_PTR CALLBACK OFNHookProc | ( | HWND | hdlg,
 |  | UINT | uiMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

開くダイアログのフックプロシージャ

CDlgOpenFile.cpp の 135 行で定義されています。

参照先 _countof, _MAX_EXT, _MAX_PATH, _tcscpy(), CODE_UNICODE, CODE_UNICODEBE, CODE_UTF8, ApiWrap::Combo_AddString(), ApiWrap::Combo_GetText(), DWLP_MSGRESULT, 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(), IsFileExists(), LONG_PTR, CDlgOpenFile::m_bBom, m_bIsSaveDialog, m_bReadOnly, CDlgOpenFile::m_bUseBom, CDlgOpenFile::m_bUseEol, CDlgOpenFile::m_cEol, DLLSHAREDATA::m_Common, CDlgOpenFile::m_nCharCode, m_ppszMRU, m_ppszOPENFOLDER, CDlgOpenFile::m_pShareData, CommonSetting_Others::m_rcOpenDialog, CommonSetting::m_sOthers, CDlgOpenFile::m_szDefaultWildCard, CDlgOpenFile::m_szPath, m_wpOpenDialogProc, MyWinHelp(), NULL, OFNHookProcMain(), CDlgOpenFile::OnCmbDropdown(), p_helpids, PostMessageAny, SendMessageAny, SetWindowLongPtr, TRUE, と ULONG_PTR.

LRESULT APIENTRY OFNHookProcMain | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CDlgOpenFile.cpp の 73 行で定義されています。

参照先 CShareData::getInstance(), CShareData::GetShareData(), m_bReadOnly, DLLSHAREDATA::m_Common, m_nHelpTopicID, CommonSetting_Others::m_rcOpenDialog, CommonSetting::m_sOthers, m_wpOpenDialogProc, と MyWinHelp().

参照元 OFNHookProc().

変数

BOOL m_bIsSaveDialog

CDlgOpenFile.cpp の 61 行で定義されています。

参照元 OFNHookProc().

bool m_bReadOnly

CDlgOpenFile.cpp の 60 行で定義されています。

参照元 CViewCommander::Command_FILE_REOPEN(), CEditDoc::IsReadOnly(), CCommandLine::IsReadOnly(), OFNHookProc(), OFNHookProcMain(), と CEditDoc::SetReadOnly().

int m_nHelpTopicID

CDlgOpenFile.cpp の 59 行で定義されています。

参照元 CDlgOpenFile::CDlgOpenFile(), と OFNHookProcMain().

const TCHAR** m_ppszMRU

CDlgOpenFile.cpp の 56 行で定義されています。

参照元 CDlgOpenFile::Create(), と OFNHookProc().

const TCHAR** m_ppszOPENFOLDER

CDlgOpenFile.cpp の 57 行で定義されています。

参照元 CDlgOpenFile::Create(), と OFNHookProc().

SFilePath m_szHelpFile

CDlgOpenFile.cpp の 58 行で定義されています。

WNDPROC m_wpOpenDialogProc

CDlgOpenFile.cpp の 54 行で定義されています。

参照元 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 の 37 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgOpenFile.cpp ソースファイル

sakura_core

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 "global.h"
00025 #include "funccode.h"   //Stonee, 2001/05/18
00026 #include "MY_SP.h"  // Jun. 23, 2002 genta
00027 #include "CFileExt.h"
00028 #include "my_icmp.h"
00029 #include <dlgs.h>    // stc3,...
00030 #include <cderr.h>   // FNERR...,CDERR...
00031 #include "CEditApp.h"
00032 #include "util/shell.h"
00033 #include "util/file.h"
00034
00035 // オープンファイル CDlgOpenFile.cpp    //@@@ 2002.01.07 add start MIK
00036 #include "sakura.hh"
00037 static const DWORD p_helpids[] = {  //13100
00038 //  IDOK,                   HIDOK_OPENDLG,      //Winのヘルプで勝手に出てくる
00039 //  IDCANCEL,               HIDCANCEL_OPENDLG,      //Winのヘルプで勝手に出てくる
00040 //  IDC_BUTTON_HELP,        HIDC_OPENDLG_BUTTON_HELP,       //ヘルプボタン
00041     IDC_COMBO_CODE,         HIDC_OPENDLG_COMBO_CODE,        //文字コードセット
00042     IDC_COMBO_MRU,          HIDC_OPENDLG_COMBO_MRU,         //最近のファイル
00043     IDC_COMBO_OPENFOLDER,   HIDC_OPENDLG_COMBO_OPENFOLDER,  //最近のフォルダ
00044     IDC_COMBO_EOL,          HIDC_OPENDLG_COMBO_EOL,         //改行コード
00045     IDC_CHECK_BOM,          HIDC_OPENDLG_CHECK_BOM,         //BOM   // 2006.08.06 ryoji
00046 //  IDC_STATIC,             -1,
00047     0, 0
00048 };  //@@@ 2002.01.07 add end MIK
00049
00050 #ifndef OFN_ENABLESIZING
00051     #define OFN_ENABLESIZING    0x00800000
00052 #endif
00053
00054 WNDPROC         m_wpOpenDialogProc;
00055
00056 const TCHAR**   m_ppszMRU;
00057 const TCHAR**   m_ppszOPENFOLDER;
00058 SFilePath       m_szHelpFile;
00059 int             m_nHelpTopicID;
00060 bool            m_bReadOnly;        /* 読み取り専用か */
00061 BOOL            m_bIsSaveDialog;    /* 保存のダイアログか */
00062
00063 COsVersionInfo CDlgOpenFile::m_cOsVer;  // 2005.11.02 ryoji
00064
00065
00066
00067
00068 /*
00069 ||  開くダイアログのサブクラスプロシージャ
00070
00071     @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00072 */
00073 LRESULT APIENTRY OFNHookProcMain( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00074 {
00075 //  WPARAM                  wCtlFocus;  /* フォーカスを持つコントロールのID */
00076 //  BOOL                    fHandle;    /* wParamが処理するフラグ */
00077     int                     idCtrl;
00078     OFNOTIFY*               pofn;
00079 //  int                     nIdx;
00080 //  char*                   pszWork;
00081     WORD                    wNotifyCode;
00082     WORD                    wID;
00083     HWND                    hwndCtl;
00084 //  HWND                    hwndFrame;
00085     static DLLSHAREDATA*    pShareData;
00086     switch( uMsg ){
00087     case WM_MOVE:
00088         /* 「開く」ダイアログのサイズと位置 */
00089         pShareData = CShareData::getInstance()->GetShareData();
00090         ::GetWindowRect( hwnd, &pShareData->m_Common.m_sOthers.m_rcOpenDialog );
00091 //      MYTRACE_A( "WM_MOVE 1\n" );
00092         break;
00093     case WM_COMMAND:
00094         wNotifyCode = HIWORD(wParam);   // notification code
00095         wID = LOWORD(wParam);           // item, control, or accelerator identifier
00096         hwndCtl = (HWND) lParam;        // handle of control
00097         switch( wNotifyCode ){
00098 //          break;
00099         /* ボタン／チェックボックスがクリックされた */
00100         case BN_CLICKED:
00101             switch( wID ){
00102             case pshHelp:
00103                 /* ヘルプ */
00104                 MyWinHelp( hwnd, m_szHelpFile, HELP_CONTEXT, m_nHelpTopicID );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00105                 break;
00106             case chx1:  // The read-only check box
00107                 m_bReadOnly = ( 0 != ::IsDlgButtonChecked( hwnd , chx1 ) );
00108                 break;
00109             }
00110             break;
00111         }
00112         break;
00113     case WM_NOTIFY:
00114         idCtrl = (int) wParam;
00115         pofn = (OFNOTIFY*) lParam;
00116 //      MYTRACE_A( "=========WM_NOTIFY=========\n" );
00117 //      MYTRACE_A( "pofn->hdr.hwndFrom=%xh\n", pofn->hdr.hwndFrom );
00118 //      MYTRACE_A( "pofn->hdr.idFrom=%xh(%d)\n", pofn->hdr.idFrom, pofn->hdr.idFrom );
00119 //      MYTRACE_A( "pofn->hdr.code=%xh(%d)\n", pofn->hdr.code, pofn->hdr.code );
00120         break;
00121     }
00122 //  return ::CallWindowProc( (int (__stdcall *)( void ))(WNDPROC)m_wpOpenDialogProc, hwnd, uMsg, wParam, lParam );
00123     return ::CallWindowProc( (WNDPROC)m_wpOpenDialogProc, hwnd, uMsg, wParam, lParam );
00124 }
00125
00126
00127
00128
00132 // Modified by KEITA for WIN64 2003.9.6
00133 // APIENTRY -> CALLBACK Moca 2003.09.09
00134 //UINT APIENTRY OFNHookProc(
00135 UINT_PTR CALLBACK OFNHookProc(
00136     HWND hdlg,      // handle to child dialog window
00137     UINT uiMsg,     // message identifier
00138     WPARAM wParam,  // message parameter
00139     LPARAM lParam   // message parameter
00140 )
00141 {
00142     POINT                   po;
00143 //  RECT                    rc0;
00144     RECT                    rc;
00145     static OPENFILENAME*    pOf;
00146     static HWND             hwndOpenDlg;
00147     static HWND             hwndComboMRU;
00148     static HWND             hwndComboOPENFOLDER;
00149     static HWND             hwndComboCODES;
00150     static HWND             hwndComboEOL;   //  Feb. 9, 2001 genta
00151     static HWND             hwndCheckBOM;   //  Jul. 26, 2003 ryoji BOMチェックボックス
00152     static CDlgOpenFile*    pcDlgOpenFile;
00153     int                     i;
00154     OFNOTIFY*               pofn;
00155     int                     idCtrl;
00156 //  HWND                    hwndCtrl;
00157     LRESULT                 lRes;
00158     const int               nExtraSize = 100;
00159     const int               nControls = 9;
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 TCHAR*    const   pEolNameArr[] = {
00180         _T("変換なし"),
00181         _T("CR+LF"),
00182         _T("LF (UNIX)"),
00183         _T("CR (Mac)"),
00184     };
00185     int nEolNameArrNum = (int)_countof(pEolNameArr);
00186
00187 //  To Here Feb. 9, 2001 genta
00188     int Controls[nControls] = {
00189         stc3, stc2,     // The two label controls
00190         edt1, cmb1,     // The edit control and the drop-down box
00191         IDOK, IDCANCEL,
00192         pshHelp,        // The Help command button (push button)
00193         lst1,           // The Explorer window
00194         chx1            // The read-only check box
00195     };
00196     int nRightMargin = 24;
00197     HWND    hwndFrame;
00198
00199     switch( uiMsg ){
00200     case WM_MOVE:
00201 //      MYTRACE_A( "WM_MOVE 2\n" );
00202         break;
00203     case WM_SIZE:
00204         fwSizeType = wParam;        // resizing flag
00205         nWidth = LOWORD(lParam);    // width of client area
00206         nHeight = HIWORD(lParam);   // height of client area
00207
00208         /* 「開く」ダイアログのサイズと位置 */
00209         hwndFrame = ::GetParent( hdlg );
00210         ::GetWindowRect( hwndFrame, &pcDlgOpenFile->m_pShareData->m_Common.m_sOthers.m_rcOpenDialog );
00211
00212         // 2005.10.29 ryoji 最近のファイル／フォルダ コンボの右端を子ダイアログの右端に合わせる
00213         ::GetWindowRect( hwndComboMRU, &rc );
00214         po.x = rc.left;
00215         po.y = rc.top;
00216         ::ScreenToClient( hdlg, &po );
00217         ::SetWindowPos( hwndComboMRU, 0, 0, 0, nWidth - po.x - nRightMargin, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00218         ::SetWindowPos( hwndComboOPENFOLDER, 0, 0, 0, nWidth - po.x - nRightMargin, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00219         return 0;
00220     case WM_INITDIALOG:
00221         // Save off the long pointer to the OPENFILENAME structure.
00222         // Modified by KEITA for WIN64 2003.9.6
00223 		::SetWindowLongPtr(hdlg, DWLP_USER, lParam);
00224         pOf = (OPENFILENAME*)lParam;
00225         pcDlgOpenFile = (CDlgOpenFile*)pOf->lCustData;
00226
00227
00228         /* Explorerスタイルの「開く」ダイアログのハンドル */
00229         hwndOpenDlg = ::GetParent( hdlg );
00230         /* コントロールのハンドル */
00231         hwndComboCODES = ::GetDlgItem( hdlg, IDC_COMBO_CODE );
00232         hwndComboMRU = ::GetDlgItem( hdlg, IDC_COMBO_MRU );
00233         hwndComboOPENFOLDER = ::GetDlgItem( hdlg, IDC_COMBO_OPENFOLDER );
00234         hwndComboEOL = ::GetDlgItem( hdlg, IDC_COMBO_EOL );
00235         hwndCheckBOM = ::GetDlgItem( hdlg, IDC_CHECK_BOM );//   Jul. 26, 2003 ryoji BOMチェックボックス
00236
00237         // 2005.11.02 ryoji 初期レイアウト設定
00238         CDlgOpenFile::InitLayout( hwndOpenDlg, hdlg, hwndComboCODES );
00239
00240         /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00241 		::SendMessageAny( hwndComboCODES,     CB_SETEXTENDEDUI, TRUE, 0 );
00242 		::SendMessageAny( hwndComboMRU,           CB_SETEXTENDEDUI, TRUE, 0 );
00243 		::SendMessageAny( hwndComboOPENFOLDER,    CB_SETEXTENDEDUI, TRUE, 0 );
00244 		::SendMessageAny( hwndComboEOL,           CB_SETEXTENDEDUI, TRUE, 0 );
00245
00246         //  From Here Feb. 9, 2001 genta
00247         //  改行コードの選択コンボボックス初期化
00248         //  必要なときのみ利用する
00249         if( pcDlgOpenFile->m_bUseEol ){
00250             //  値の設定
00251             for( i = 0; i < nEolNameArrNum; ++i ){
00252                 nIdx = Combo_AddString( hwndComboEOL, pEolNameArr[i] );
00253 				::SendMessageAny( hwndComboEOL, CB_SETITEMDATA, nIdx, nEolValueArr[i] );
00254             }
00255             //  使うときは先頭の要素を選択状態にする
00256 			::SendMessageAny( hwndComboEOL, CB_SETCURSEL, (WPARAM)0, 0 );
00257         }
00258         else {
00259             //  使わないときは隠す
00260             ::ShowWindow( ::GetDlgItem( hdlg, IDC_STATIC_EOL ), SW_HIDE );
00261             ::ShowWindow( hwndComboEOL, SW_HIDE );
00262         }
00263         //  To Here Feb. 9, 2001 genta
00264
00265         //  From Here Jul. 26, 2003 ryoji BOMチェックボックスの初期化
00266         if( pcDlgOpenFile->m_bUseBom ){
00267             //  使うときは有効／無効を切り替え、チェック状態を初期値に設定する
00268             switch( pcDlgOpenFile->m_nCharCode ){
00269             case CODE_UNICODE:
00270             case CODE_UTF8:
00271             case CODE_UNICODEBE:
00272                 ::EnableWindow( hwndCheckBOM, TRUE );
00273                 fCheck = pcDlgOpenFile->m_bBom? BST_CHECKED: BST_UNCHECKED;
00274                 break;
00275             default:
00276                 ::EnableWindow( hwndCheckBOM, FALSE );
00277                 fCheck = BST_UNCHECKED;
00278                 break;
00279             }
00280 			::SendMessageAny( hwndCheckBOM, BM_SETCHECK, fCheck, 0 );
00281         }
00282         else {
00283             //  使わないときは隠す
00284             ::ShowWindow( hwndCheckBOM, SW_HIDE );
00285         }
00286         //  To Here Jul. 26, 2003 ryoji BOMチェックボックスの初期化
00287
00288         /* Explorerスタイルの「開く」ダイアログをフック */
00289         // Modified by KEITA for WIN64 2003.9.6
00290         m_wpOpenDialogProc = (WNDPROC) ::SetWindowLongPtr( hwndOpenDlg, GWLP_WNDPROC, (LONG_PTR) OFNHookProcMain );
00291
00292         /* 文字コード選択コンボボックス初期化 */
00293         nIdxSel = 0;
00294         if( m_bIsSaveDialog ){  /* 保存のダイアログか */
00295             i = 1;
00296         }else{
00297             i = 0;
00298         }
00299         for( /*i = 0*/; i < gm_nCodeComboNameArrNum; ++i ){
00300             nIdx = Combo_AddString( hwndComboCODES, gm_pszCodeComboNameArr[i] );
00301 			::SendMessageAny( hwndComboCODES, CB_SETITEMDATA, nIdx, gm_nCodeComboValueArr[i] );
00302             if( gm_nCodeComboValueArr[i] == pcDlgOpenFile->m_nCharCode ){
00303                 nIdxSel = nIdx;
00304             }
00305         }
00306 		::SendMessageAny( hwndComboCODES, CB_SETCURSEL, (WPARAM)nIdxSel, 0 );
00307
00308
00309         /* 読み取り専用の初期値セット */
00310         ::CheckDlgButton( hwndOpenDlg, chx1, m_bReadOnly );
00311
00312         /* 最近開いたファイル コンボボックス初期値設定 */
00313         //  2003.06.22 Moca m_ppszMRU がNULLの場合を考慮する
00314         if( NULL != m_ppszMRU ){
00315             for( i = 0; m_ppszMRU[i] != NULL; ++i ){
00316                 Combo_AddString( hwndComboMRU, m_ppszMRU[i] );
00317             }
00318         }
00319         /* 最近開いたフォルダ コンボボックス初期値設定 */
00320         //  2003.06.22 Moca m_ppszOPENFOLDER がNULLの場合を考慮する
00321         if( NULL != m_ppszOPENFOLDER ){
00322             for( i = 0; m_ppszOPENFOLDER[i] != NULL; ++i ){
00323                 Combo_AddString( hwndComboOPENFOLDER, m_ppszOPENFOLDER[i] );
00324             }
00325         }
00326
00327         break;
00328
00329
00330     case WM_DESTROY:
00331         /* フック解除 */
00332         // Modified by KEITA for WIN64 2003.9.6
00333 		::SetWindowLongPtr( hwndOpenDlg, GWLP_WNDPROC, (LONG_PTR) m_wpOpenDialogProc );
00334         return FALSE;
00335
00336     case WM_NOTIFY:
00337         idCtrl = (int) wParam;
00338         pofn = (OFNOTIFY*) lParam;
00339 //      MYTRACE_A( "=========WM_NOTIFY=========\n" );
00340 //      MYTRACE_A( "pofn->hdr.hwndFrom=%xh\n", pofn->hdr.hwndFrom );
00341 //      MYTRACE_A( "pofn->hdr.idFrom=%xh(%d)\n", pofn->hdr.idFrom, pofn->hdr.idFrom );
00342 //      MYTRACE_A( "pofn->hdr.code=%xh(%d)\n", pofn->hdr.code, pofn->hdr.code );
00343
00344         switch( pofn->hdr.code ){
00345         case CDN_FILEOK:
00346             // 拡張子の補完を自前で行う // 2006.11.10 ryoji
00347             if( m_bIsSaveDialog ){
00348                 TCHAR szDefExt[_MAX_EXT];   // 補完する拡張子
00349                 TCHAR szBuf[_MAX_PATH + _MAX_EXT];  // ワーク
00350                 LPTSTR pszCur, pszNext;
00351                 int i;
00352
00353                 CommDlg_OpenSave_GetSpec(hwndOpenDlg, szBuf, _MAX_PATH);    // ファイル名入力ボックス内の文字列
00354                 pszCur = szBuf;
00355                 while( *pszCur == _T(' ') ) // 空白を読み飛ばす
00356                     pszCur = ::CharNext(pszCur);
00357                 if( *pszCur == _T('\"') ){  // 二重引用部で始まっている
00358                     ::lstrcpyn(pcDlgOpenFile->m_szPath, pOf->lpstrFile, _MAX_PATH);
00359                 }
00360                 else{
00361                     _tsplitpath( pOf->lpstrFile, NULL, NULL, NULL, szDefExt );
00362                     if( szDefExt[0] == _T('.') && szDefExt[1] != _T('\0') ){    // 既に拡張子がついている
00363                         lstrcpyn(pcDlgOpenFile->m_szPath, pOf->lpstrFile, _MAX_PATH);
00364                     }
00365                     else{
00366                         switch( pOf->nFilterIndex ) // 選択されているファイルの種類
00367                         {
00368                         case 1:     // ユーザー定義
00369                             pszCur = pcDlgOpenFile->m_szDefaultWildCard;
00370                             while( *pszCur != _T('.') && *pszCur != _T('\0') )  // '.'まで読み飛ばす
00371                                 pszCur = ::CharNext(pszCur);
00372                             i = 0;
00373                             while( *pszCur != _T(';') && *pszCur != _T('\0') ){ // ';'までコピーする
00374                                 pszNext = ::CharNext(pszCur);
00375                                 while( pszCur < pszNext )
00376                                     szDefExt[i++] = *pszCur++;
00377                             }
00378                             szDefExt[i] = _T('\0');
00379                             if( ::_tcslen(szDefExt) < 2 || szDefExt[1] == _T('*') ) // 無効な拡張子?
00380                                 szDefExt[0] = _T('\0');
00381                             break;
00382                         case 2:     // *.txt
00383 							::_tcscpy(szDefExt, _T(".txt"));
00384                             break;
00385                         case 3:     // *.*
00386                         default:    // 不明
00387                             szDefExt[0] = _T('\0');
00388                             break;
00389                         }
00390                         lstrcpyn(szBuf, pOf->lpstrFile, _MAX_PATH + 1);
00391                         ::_tcscat(szBuf, szDefExt);
00392                         lstrcpyn(pcDlgOpenFile->m_szPath, szBuf, _MAX_PATH);
00393                     }
00394                 }
00395
00396                 // ファイルの上書き確認を自前で行う // 2006.11.10 ryoji
00397                 if( IsFileExists(pcDlgOpenFile->m_szPath, true) ){
00398                     TCHAR szText[_MAX_PATH + 100];
00399                     lstrcpyn(szText, pcDlgOpenFile->m_szPath, _MAX_PATH);
00400                     ::_tcscat(szText, _T(" は既に存在します。\r\n上書きしますか？"));
00401                     if( IDYES != ::MessageBox( hwndOpenDlg, szText, _T("名前を付けて保存"), MB_YESNO | MB_ICONEXCLAMATION) ){
00402 						::SetWindowLongPtr( hdlg, DWLP_MSGRESULT, TRUE );
00403                         return TRUE;
00404                     }
00405                 }
00406             }
00407
00408             /* 文字コード選択コンボボックス 値を取得 */
00409             nIdx = ::SendMessageAny( hwndComboCODES, CB_GETCURSEL, 0, 0 );
00410             lRes = ::SendMessageAny( hwndComboCODES, CB_GETITEMDATA, nIdx, 0 );
00411             pcDlgOpenFile->m_nCharCode = (ECodeType)lRes;   /* 文字コード */
00412             //  Feb. 9, 2001 genta
00413             if( pcDlgOpenFile->m_bUseEol ){
00414                 nIdx = ::SendMessageAny( hwndComboEOL, CB_GETCURSEL, 0, 0 );
00415                 lRes = ::SendMessageAny( hwndComboEOL, CB_GETITEMDATA, nIdx, 0 );
00416                 pcDlgOpenFile->m_cEol = (enumEOLType)lRes;  /* 文字コード */
00417             }
00418             //  From Here Jul. 26, 2003 ryoji
00419             //  BOMチェックボックスの状態を取得
00420             if( pcDlgOpenFile->m_bUseBom ){
00421                 lRes = ::SendMessageAny( hwndCheckBOM, BM_GETCHECK, 0, 0 );
00422                 pcDlgOpenFile->m_bBom = (lRes == BST_CHECKED);  /* BOM */
00423             }
00424             //  To Here Jul. 26, 2003 ryoji
00425
00426 //          MYTRACE_A( "文字コード  lRes=%d\n", lRes );
00427 //          MYTRACE_A( "pofn->hdr.code=CDN_FILEOK        \n" );break;
00428             break;  /* CDN_FILEOK */
00429
00430         case CDN_FOLDERCHANGE  :
00431 //          MYTRACE_A( "pofn->hdr.code=CDN_FOLDERCHANGE  \n" );
00432             {
00433                 wchar_t szFolder[_MAX_PATH];
00434                 lRes = ::SendMessage( hwndOpenDlg, CDM_GETFOLDERPATH, _countof( szFolder ), (LPARAM)szFolder );
00435             }
00436 //          MYTRACE_A( "\tlRes=%d\tszFolder=[%ls]\n", lRes, szFolder );
00437
00438             break;
00439 //      case CDN_HELP           :   MYTRACE_A( "pofn->hdr.code=CDN_HELP          \n" );break;
00440 //      case CDN_INITDONE       :   MYTRACE_A( "pofn->hdr.code=CDN_INITDONE      \n" );break;
00441 //      case CDN_SELCHANGE      :   MYTRACE_A( "pofn->hdr.code=CDN_SELCHANGE     \n" );break;
00442 //      case CDN_SHAREVIOLATION :   MYTRACE_A( "pofn->hdr.code=CDN_SHAREVIOLATION\n" );break;
00443 //      case CDN_TYPECHANGE     :   MYTRACE_A( "pofn->hdr.code=CDN_TYPECHANGE    \n" );break;
00444 //      default:                    MYTRACE_A( "pofn->hdr.code=???\n" );break;
00445
00446         }
00447
00448 //      MYTRACE_A( "=======================\n" );
00449         break;
00450     case WM_COMMAND:
00451         wNotifyCode = HIWORD(wParam);   // notification code
00452         wID = LOWORD(wParam);           // item, control, or accelerator identifier
00453         hwndCtl = (HWND) lParam;        // handle of control
00454         switch( wNotifyCode ){
00455         case CBN_SELCHANGE:
00456             switch( (int) LOWORD(wParam) ){
00457             //  From Here Jul. 26, 2003 ryoji
00458             //  文字コードの変更をBOMチェックボックスに反映
00459             case IDC_COMBO_CODE:
00460                 nIdx = ::SendMessageAny( (HWND) lParam, CB_GETCURSEL, 0, 0 );
00461                 lRes = ::SendMessageAny( (HWND) lParam, CB_GETITEMDATA, nIdx, 0 );
00462                 switch( lRes ){
00463                 case CODE_UNICODE:
00464                 case CODE_UTF8:
00465                 case CODE_UNICODEBE:
00466                     ::EnableWindow( hwndCheckBOM, TRUE );
00467                     if (lRes == pcDlgOpenFile->m_nCharCode){
00468                         fCheck = pcDlgOpenFile->m_bBom? BST_CHECKED: BST_UNCHECKED;
00469                     }else{
00470                         fCheck = (lRes == CODE_UTF8)? BST_UNCHECKED: BST_CHECKED;
00471                     }
00472                     break;
00473                 default:
00474                     ::EnableWindow( hwndCheckBOM, FALSE );
00475                     fCheck = BST_UNCHECKED;
00476                     break;
00477                 }
00478 				::SendMessageAny( hwndCheckBOM, BM_SETCHECK, fCheck, 0 );
00479                 break;
00480             //  To Here Jul. 26, 2003 ryoji
00481             case IDC_COMBO_MRU:
00482             case IDC_COMBO_OPENFOLDER:
00483                 {
00484                     TCHAR   szWork[_MAX_PATH + 1];
00485                     nIdx = ::SendMessageAny( (HWND) lParam, CB_GETCURSEL, 0, 0 );
00486
00487                     if( CB_ERR != Combo_GetText( (HWND) lParam, nIdx, szWork ) ){
00488                         // 2005.11.02 ryoji ファイル名指定のコントロールを確認する
00489                         hwndFilebox = ::GetDlgItem( hwndOpenDlg, cmb13 );       // ファイル名コンボ（Windows 2000タイプ）
00490                         if( !::IsWindow( hwndFilebox ) )
00491                             hwndFilebox = ::GetDlgItem( hwndOpenDlg, edt1 );    // ファイル名エディット（レガシータイプ）
00492                         if( ::IsWindow( hwndFilebox ) ){
00493                             ::SetWindowText( hwndFilebox, szWork );
00494                             if( IDC_COMBO_OPENFOLDER == wID )
00495 								::PostMessageAny( hwndFilebox, WM_KEYDOWN, VK_RETURN, (LPARAM)0 );
00496                         }
00497                     }
00498                 }
00499                 break;
00500             }
00501             break;  /* CBN_SELCHANGE */
00502         case CBN_DROPDOWN:
00503             switch( wID ){
00504             case IDC_COMBO_MRU:
00505             case IDC_COMBO_OPENFOLDER:
00506                 CDlgOpenFile::OnCmbDropdown( hwndCtl );
00507                 break;
00508             }
00509             break;  /* CBN_DROPDOWN */
00510         }
00511         break;  /* WM_COMMAND */
00512
00513     //@@@ 2002.01.08 add start
00514     case WM_HELP:
00515         {
00516             HELPINFO *p = (HELPINFO *)lParam;
00517             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00518         }
00519         return TRUE;
00520
00521     //Context Menu
00522     case WM_CONTEXTMENU:
00523         MyWinHelp( hdlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00524         return TRUE;
00525     //@@@ 2002.01.08 add end
00526
00527     default:
00528         return FALSE;
00529     }
00530     return TRUE;
00531 }
00532
00533
00534
00535
00536
00537 CDlgOpenFile::CDlgOpenFile()
00538 {
00539     /* メンバの初期化 */
00540     long    lPathLen;
00541 //  int     nCharChars;
00542
00543     m_nCharCode = CODE_AUTODETECT;  /* 文字コード *//* 文字コード自動判別 */
00544
00545
00546     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00547     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00548     m_hWnd = NULL;          /* このダイアログのハンドル */
00549
00550     /* 共有データ構造体のアドレスを返す */
00551     m_pShareData = CShareData::getInstance()->GetShareData();
00552
00553     /* OPENFILENAMEの初期化 */
00554     InitOfn( m_ofn );       // 2005.10.29 ryoji
00555     m_ofn.nFilterIndex = 1; //Jul. 09, 2001 JEPRO       /* 「開く」での最初のワイルドカード */
00556
00557 //  ::GetCurrentDirectory( _MAX_PATH, m_szInitialDir ); /* 「開く」での初期ディレクトリ */
00558     TCHAR   szFile[_MAX_PATH + 1];
00559     TCHAR   szDrive[_MAX_DRIVE];
00560     TCHAR   szDir[_MAX_DIR];
00561     lPathLen = ::GetModuleFileName(
00562         ::GetModuleHandle( NULL ),
00563         szFile, _countof( szFile )
00564     );
00565     _tsplitpath( szFile, szDrive, szDir, NULL, NULL );
00566     _tcscpy( m_szInitialDir, szDrive );
00567     _tcscat( m_szInitialDir, szDir );
00568
00569
00570
00571     _tcscpy( m_szDefaultWildCard, _T("*.*") );  /*「開く」での最初のワイルドカード（保存時の拡張子補完でも使用される） */
00572
00573     /* ヘルプファイルのフルパスを返す */
00574     m_szHelpFile = CEditApp::Instance()->GetHelpFilePath();
00575     m_nHelpTopicID = 0;
00576
00577     return;
00578 }
00579
00580
00581
00582
00583
00584 CDlgOpenFile::~CDlgOpenFile()
00585 {
00586     return;
00587 }
00588
00589
00590 #if 0
00591
00597 void CDlgOpenFile::Create(
00598     HINSTANCE       hInstance,
00599     HWND            hwndParent,
00600     const char*     pszUserWildCard,
00601     const char*     pszDefaultPath
00602 )
00603 {
00604     Create(
00605         hInstance,
00606         hwndParent,
00607         pszUserWildCard,
00608         pszDefaultPath,
00609         NULL,
00610         NULL
00611     );
00612 }
00613 #endif
00614
00615 /* 初期化 */
00616 void CDlgOpenFile::Create(
00617     HINSTANCE           hInstance,
00618     HWND                hwndParent,
00619     const TCHAR*        pszUserWildCard,
00620     const TCHAR*        pszDefaultPath,
00621     const TCHAR**       ppszMRU,
00622     const TCHAR**       ppszOPENFOLDER
00623 )
00624 {
00625     m_hInstance = hInstance;
00626     m_hwndParent = hwndParent;
00627
00628     /* ユーザー定義ワイルドカード（保存時の拡張子補完でも使用される） */
00629     if( NULL != pszUserWildCard ){
00630         _tcscpy( m_szDefaultWildCard, pszUserWildCard );
00631     }
00632
00633     /* 「開く」での初期フォルダ */
00634     if( pszDefaultPath && 0 < _tcslen( pszDefaultPath ) ){  //現在編集中のファイルのパス   //@@@ 2002.04.18
00635         TCHAR szDrive[_MAX_DRIVE];
00636         TCHAR szDir[_MAX_DIR];
00637         //  Jun. 23, 2002 genta
00638         my_splitpath_t( pszDefaultPath, szDrive, szDir, NULL, NULL );
00639         auto_sprintf( m_szInitialDir, _T("%ts%ts"), szDrive, szDir );
00640     }
00641     m_ppszMRU = ppszMRU;
00642     m_ppszOPENFOLDER = ppszOPENFOLDER;
00643     return;
00644 }
00645
00646
00647
00648
00658 BOOL CDlgOpenFile::DoModal_GetOpenFileName( TCHAR* pszPath , bool bSetCurDir )
00659 {
00660     TCHAR   szCurDir[_MAX_PATH];
00661     bool    bGetCurDirSuc = false;
00662     if( false == bSetCurDir ){
00663         int nRetVal;
00664         nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00665         if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00666             bGetCurDirSuc = true;
00667         }
00668     }
00669
00670     //  2003.05.12 MIK
00671     CFileExt    cFileExt;
00672     cFileExt.AppendExtRaw( _T("ユーザー指定"),     m_szDefaultWildCard );
00673     cFileExt.AppendExtRaw( _T("テキストファイル"), _T("*.txt") );
00674     cFileExt.AppendExtRaw( _T("すべてのファイル"), _T("*.*") );
00675
00676     /* 構造体の初期化 */
00677     InitOfn( m_ofn );       // 2005.10.29 ryoji
00678     m_ofn.hwndOwner = m_hwndParent;
00679     m_ofn.hInstance = m_hInstance;
00680     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00681     // From Here Jun. 23, 2002 genta
00682     // 「開く」での初期フォルダチェック強化
00683 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00684     TCHAR szDrive[_MAX_DRIVE];
00685     TCHAR szDir[_MAX_DIR];
00686     TCHAR szName[_MAX_FNAME];
00687     TCHAR szExt  [_MAX_EXT];
00688
00689     //  Jun. 23, 2002 Thanks to sui
00690     my_splitpath_t( pszPath, szDrive, szDir, szName, szExt );
00691
00692     //  指定されたファイルが存在しないとき szName == NULL
00693     //  ファイルの場所にディレクトリを指定するとエラーになるので
00694     //  ファイルが無い場合は全く指定しないことにする．
00695     if( szName[0] == _T('\0') ){
00696         pszPath[0] = _T('\0');
00697     }
00698     else {
00699         auto_sprintf( pszPath, _T("%ls%ls%ls%ls"), szDrive, szDir, szName, szExt );
00700     }
00701     m_ofn.lpstrFile = pszPath;
00702     // To Here Jun. 23, 2002 genta
00703     m_ofn.nMaxFile = _MAX_PATH;
00704     m_ofn.lpstrInitialDir = m_szInitialDir;
00705 //  m_ofn.Flags =
00706 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00707 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00708     m_ofn.Flags =
00709         /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00710         /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00711         ;
00712 // 2005/02/20 novice 拡張子を省略したら補完する
00713     m_ofn.lpstrDefExt = _T("");
00714     if( GetOpenFileNameRecover( m_ofn ) ){
00715         // 変わってしまった可能性のあるカレントディレクトリを元に戻す
00716         if( bGetCurDirSuc ){
00717             ::SetCurrentDirectory( szCurDir );
00718         }
00719         return TRUE;
00720     }else{
00721         //  May 29, 2004 genta 関数にまとめた
00722         DlgOpenFail();
00723         return FALSE;
00724     }
00725 }
00726
00727
00736 BOOL CDlgOpenFile::DoModal_GetSaveFileName( TCHAR* pszPath, bool bSetCurDir )
00737 {
00738     TCHAR   szCurDir[_MAX_PATH];
00739     bool    bGetCurDirSuc = false;
00740     if( false == bSetCurDir ){
00741         int nRetVal;
00742         nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00743         if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00744             bGetCurDirSuc = true;
00745         }
00746     }
00747
00748     //  2003.05.12 MIK
00749     CFileExt    cFileExt;
00750     cFileExt.AppendExtRaw( _T("ユーザー指定"),     m_szDefaultWildCard );
00751     cFileExt.AppendExtRaw( _T("テキストファイル"), _T("*.txt") );
00752     cFileExt.AppendExtRaw( _T("すべてのファイル"), _T("*.*") );
00753
00754     /* 構造体の初期化 */
00755     InitOfn( m_ofn );       // 2005.10.29 ryoji
00756     m_ofn.hwndOwner = m_hwndParent;
00757     m_ofn.hInstance = m_hInstance;
00758     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00759 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00760     m_ofn.lpstrFile = pszPath;
00761     m_ofn.nMaxFile = _MAX_PATH;
00762     m_ofn.lpstrInitialDir = m_szInitialDir;
00763     m_ofn.Flags =
00764         OFN_CREATEPROMPT | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
00765          /*| OFN_ENABLETEMPLATE | OFN_ENABLEHOOK*/;
00766 // 2005/02/20 novice 拡張子を省略したら補完する
00767     m_ofn.lpstrDefExt = _T("");
00768     if( GetSaveFileNameRecover( m_ofn ) ){
00769         // 変わってしまった可能性のあるカレントディレクトリを元に戻す
00770         if( bGetCurDirSuc ){
00771             ::SetCurrentDirectory( szCurDir );
00772         }
00773         return TRUE;
00774     }else{
00775         //  May 29, 2004 genta 関数にまとめた
00776         DlgOpenFail();
00777         return FALSE;
00778     }
00779 }
00780
00781
00782
00783
00784
00790 BOOL CDlgOpenFile::DoModalOpenDlg( TCHAR* pszPath, ECodeType* pnCharCode, bool* pbReadOnly )
00791 {
00792     m_bIsSaveDialog = FALSE;    /* 保存のダイアログか */
00793
00794     int     i;
00795
00796     //  2003.05.12 MIK
00797     CFileExt    cFileExt;
00798     cFileExt.AppendExtRaw( _T("すべてのファイル"), _T("*.*") );
00799     cFileExt.AppendExtRaw( _T("テキストファイル"), _T("*.txt") );
00800     for( i = 0; i < MAX_TYPES; i++ )
00801     {
00802         cFileExt.AppendExt( m_pShareData->m_Types[i].m_szTypeName, m_pShareData->m_Types[i].m_szTypeExts );
00803     }
00804
00805     /* 構造体の初期化 */
00806     InitOfn( m_ofn );       // 2005.10.29 ryoji
00807     m_ofn.hwndOwner = m_hwndParent;
00808     m_ofn.hInstance = m_hInstance;
00809     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00810 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00811     m_ofn.lpstrFile = pszPath;
00812     m_ofn.nMaxFile = _MAX_PATH;
00813     m_ofn.lpstrInitialDir = m_szInitialDir;
00814     m_ofn.Flags =
00815         OFN_EXPLORER | OFN_CREATEPROMPT | OFN_FILEMUSTEXIST  /*| OFN_HIDEREADONLY*/
00816          | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK /*| OFN_READONLY*/ | OFN_SHOWHELP | OFN_ENABLESIZING /*| OFN_ALLOWMULTISELECT*/
00817         ;
00818     if( NULL != pbReadOnly ){
00819         m_bReadOnly = *pbReadOnly;
00820         if( TRUE == *pbReadOnly ){
00821             m_ofn.Flags |= OFN_READONLY;
00822         }
00823     }
00824 // 2005/02/20 novice 拡張子を省略したら補完する
00825     m_ofn.lpstrDefExt = _T("");
00826
00827     m_nCharCode = CODE_AUTODETECT;  /* 文字コード自動判別 */
00828     //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
00829     m_nHelpTopicID = ::FuncID_To_HelpContextID(F_FILEOPEN);
00830     m_bUseEol = false;  //  Feb. 9, 2001 genta
00831     m_bUseBom = false;  //  Jul. 26, 2003 ryoji
00832     // 2002/08/22 カレントディレクトリを保存
00833     TCHAR   szCurDir[_MAX_PATH];
00834     bool    bGetCurDirSuc = false;
00835     int nRetVal;
00836     nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00837     if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00838         bGetCurDirSuc = true;
00839     }
00840
00841
00842     if( GetOpenFileNameRecover( m_ofn ) ){
00843
00844 //      MYTRACE_A( "m_nCharCode = %d\n", m_nCharCode ); /* 文字コード */
00845
00846         if( NULL != pnCharCode ){
00847             *pnCharCode = m_nCharCode;
00848         }
00849         if( NULL != pbReadOnly ){
00850             *pbReadOnly = m_bReadOnly;
00851         }
00852         if( bGetCurDirSuc ){
00853             ::SetCurrentDirectory( szCurDir );
00854         }
00855         return TRUE;
00856     }else{
00857         //  May 29, 2004 genta 関数にまとめた
00858         DlgOpenFail();
00859         return FALSE;
00860     }
00861 }
00862
00880 BOOL CDlgOpenFile::DoModalSaveDlg( TCHAR* pszPath, ECodeType* pnCharCode, CEOL* pcEol, BOOL* pbBom )
00881 {
00882     m_bIsSaveDialog = TRUE; /* 保存のダイアログか */
00883
00884     //  2003.05.12 MIK
00885     CFileExt    cFileExt;
00886     cFileExt.AppendExtRaw( _T("ユーザー指定"),     m_szDefaultWildCard );
00887     cFileExt.AppendExtRaw( _T("テキストファイル"), _T("*.txt") );
00888     cFileExt.AppendExtRaw( _T("すべてのファイル"), _T("*.*") );
00889
00890     // ファイル名の初期設定   // 2006.11.10 ryoji
00891     if( pszPath[0] == _T('\0') )
00892         lstrcpyn(pszPath, _T("無題"), _MAX_PATH);
00893
00894     /* 構造体の初期化 */
00895     InitOfn( m_ofn );       // 2005.10.29 ryoji
00896     m_ofn.hwndOwner = m_hwndParent;
00897     m_ofn.hInstance = m_hInstance;
00898     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00899 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00900     m_ofn.lpstrFile = pszPath;
00901     m_ofn.nMaxFile = _MAX_PATH;
00902     m_ofn.lpstrInitialDir = m_szInitialDir;
00903 //  m_ofn.Flags =
00904 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00905 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00906     m_ofn.Flags =
00907         OFN_CREATEPROMPT | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
00908          /*| OFN_ENABLETEMPLATE | OFN_ENABLEHOOK*/ | OFN_SHOWHELP | OFN_ENABLESIZING;
00909     if( NULL != pnCharCode || NULL != pcEol ){
00910         m_ofn.Flags = m_ofn.Flags | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK;
00911         m_ofn.Flags &= ~OFN_OVERWRITEPROMPT;    // 2006.11.10 ryoji 上書き確認もフックの中で自前で処理する
00912     }
00913
00914
00915 // 2005/02/20 novice 拡張子を省略したら補完する
00916 //  m_ofn.lpstrDefExt = _T("");
00917     m_ofn.lpstrDefExt = (m_ofn.Flags & OFN_ENABLEHOOK)? NULL: _T("");   // 2006.11.10 ryoji フックを使うときは自前で拡張子を補完する
00918
00919     // 2002/08/22 カレントディレクトリを保存
00920     TCHAR   szCurDir[_MAX_PATH];
00921     bool    bGetCurDirSuc = false;
00922     int nRetVal;
00923     nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00924     if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00925         bGetCurDirSuc = true;
00926     }
00927
00928     if( NULL != pnCharCode ){
00929         m_nCharCode = *pnCharCode;
00930     }
00931     //  From Here Feb. 9, 2001 genta
00932     if( NULL != pcEol ){
00933         m_cEol = EOL_NONE;  //  初期値は「改行コードを保存」に固定
00934         m_bUseEol = true;
00935     }
00936     else{
00937         m_bUseEol = false;
00938     }
00939     //  To Here Feb. 9, 2001 genta
00940     //  Jul. 26, 2003 ryoji BOM設定
00941     if( NULL != pbBom ){
00942         m_bBom = *pbBom;
00943         m_bUseBom = true;
00944     }
00945     else{
00946         m_bUseBom = false;
00947     }
00948
00949     m_nHelpTopicID = ::FuncID_To_HelpContextID(F_FILESAVEAS_DIALOG);    //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
00950     if( GetSaveFileNameRecover( m_ofn ) ){
00951         if( m_ofn.Flags & OFN_ENABLEHOOK )
00952             lstrcpyn(pszPath, m_szPath, _MAX_PATH); // 自前で拡張子の補完を行ったときのファイルパス   // 2006.11.10 ryoji
00953
00954 //      MYTRACE_A( "m_nCharCode = %d\n", m_nCharCode ); /* 文字コード */
00955
00956         if( NULL != pnCharCode ){
00957             *pnCharCode = m_nCharCode;
00958         }
00959         //  Feb. 9, 2001 genta
00960         if( m_bUseEol ){
00961             *pcEol = m_cEol;
00962         }
00963         //  Jul. 26, 2003 ryoji BOM設定
00964         if( m_bUseBom ){
00965             *pbBom = m_bBom;
00966         }
00967         if( bGetCurDirSuc ){
00968             ::SetCurrentDirectory( szCurDir );
00969         }
00970         return TRUE;
00971     }else{
00972         //  May 29, 2004 genta 関数にまとめた
00973         DlgOpenFail();
00974         return FALSE;
00975     }
00976 }
00977
00986 void CDlgOpenFile::DlgOpenFail(void)
00987 {
00988     const TCHAR*    pszError;
00989     DWORD dwError = ::CommDlgExtendedError();
00990     if( dwError == 0 ){
00991         //  ユーザキャンセルによる
00992         return;
00993     }
00994
00995     switch( dwError ){
00996     case CDERR_DIALOGFAILURE  : pszError = _T("CDERR_DIALOGFAILURE  "); break;
00997     case CDERR_FINDRESFAILURE : pszError = _T("CDERR_FINDRESFAILURE "); break;
00998     case CDERR_NOHINSTANCE    : pszError = _T("CDERR_NOHINSTANCE    "); break;
00999     case CDERR_INITIALIZATION : pszError = _T("CDERR_INITIALIZATION "); break;
01000     case CDERR_NOHOOK         : pszError = _T("CDERR_NOHOOK         "); break;
01001     case CDERR_LOCKRESFAILURE : pszError = _T("CDERR_LOCKRESFAILURE "); break;
01002     case CDERR_NOTEMPLATE     : pszError = _T("CDERR_NOTEMPLATE     "); break;
01003     case CDERR_LOADRESFAILURE : pszError = _T("CDERR_LOADRESFAILURE "); break;
01004     case CDERR_STRUCTSIZE     : pszError = _T("CDERR_STRUCTSIZE     "); break;
01005     case CDERR_LOADSTRFAILURE : pszError = _T("CDERR_LOADSTRFAILURE "); break;
01006     case FNERR_BUFFERTOOSMALL : pszError = _T("FNERR_BUFFERTOOSMALL "); break;
01007     case CDERR_MEMALLOCFAILURE: pszError = _T("CDERR_MEMALLOCFAILURE"); break;
01008     case FNERR_INVALIDFILENAME: pszError = _T("FNERR_INVALIDFILENAME"); break;
01009     case CDERR_MEMLOCKFAILURE : pszError = _T("CDERR_MEMLOCKFAILURE "); break;
01010     case FNERR_SUBCLASSFAILURE: pszError = _T("FNERR_SUBCLASSFAILURE"); break;
01011     default: pszError = _T("UNKNOWN_ERRORCODE"); break;
01012     }
01013
01014     ::MessageBeep( MB_ICONSTOP );
01015 	::MYMESSAGEBOX_A( m_hwndParent, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
01016         "ダイアログが開けません。\n"
01017         "\n"
01018         "エラー:%ls",
01019         pszError
01020     );
01021 }
01022
01030 void CDlgOpenFile::InitOfn( OPENFILENAMEZ& ofn )
01031 {
01032     memset_raw(&ofn, 0, sizeof(m_ofn));
01033
01034     ofn.lStructSize = IsOfnV5()? sizeof(OPENFILENAMEZ): OPENFILENAME_SIZE_VERSION_400;
01035     ofn.lCustData = (LPARAM)this;
01036     ofn.lpfnHook = OFNHookProc;
01037     ofn.lpTemplateName = _T("IDD_FILEOPEN");
01038 }
01039
01051 void CDlgOpenFile::InitLayout( HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl )
01052 {
01053     HWND hwndFilelabel;
01054     HWND hwndFilebox;
01055     HWND hwndCtrl;
01056     RECT rcBase;
01057     RECT rc;
01058     POINT po;
01059     int nLeft;
01060     int nShift;
01061     int nWidth;
01062
01063     // ファイル名ラベルとファイル名ボックスを取得する
01064     if( !::IsWindow( hwndFilelabel = ::GetDlgItem( hwndOpenDlg, stc3 ) ) )      // ファイル名ラベル
01065         return;
01066     if( !::IsWindow( hwndFilebox = ::GetDlgItem( hwndOpenDlg, cmb13 ) ) ){      // ファイル名コンボ（Windows 2000タイプ）
01067         if( !::IsWindow( hwndFilebox = ::GetDlgItem( hwndOpenDlg, edt1 ) ) )    // ファイル名エディット（レガシータイプ）
01068             return;
01069     }
01070
01071     // コントロールの基準位置、移動量を決定する
01072     ::GetWindowRect( hwndFilelabel, &rc );
01073     nLeft = rc.left;                        // 左端に揃えるコントロールの位置
01074     ::GetWindowRect( hwndFilebox, &rc );
01075     ::GetWindowRect( hwndBaseCtrl, &rcBase );
01076     nShift = rc.left - rcBase.left;         // 左端以外のコントロールの右方向への相対移動量
01077
01078     // 追加コントロールをすべて移動する
01079     // ・基準コントロールよりも左にあるものはファイル名ラベルに合わせて左端に移動
01080     // ・その他は移動基準コントロール（ファイル名ボックスと左端を合わせるコントロール）と同じだけ右方向へ相対移動
01081     hwndCtrl = ::GetWindow( hwndDlg, GW_CHILD );
01082     while( hwndCtrl ){
01083         if( ::GetDlgCtrlID(hwndCtrl) != stc32 ){
01084             ::GetWindowRect( hwndCtrl, &rc );
01085             po.x = ( rc.right < rcBase.left )? nLeft: rc.left + nShift;
01086             po.y = rc.top;
01087             ::ScreenToClient( hwndDlg, &po );
01088             ::SetWindowPos( hwndCtrl, 0, po.x, po.y, 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01089         }
01090         hwndCtrl = ::GetWindow( hwndCtrl, GW_HWNDNEXT );
01091     }
01092
01093
01094     // 標準コントロールのプレースフォルダ（stc32）と子ダイアログの幅をオープンダイアログの幅にあわせる
01095     //     WM_INITDIALOG を抜けるとさらにオープンダイアログ側で現在の位置関係からレイアウト調整が行われる
01096     //     ここで以下の処理をやっておかないとコントロールが意図しない場所に動いてしまうことがある
01097     //     （例えば、BOM のチェックボックスが画面外に飛んでしまうなど）
01098
01099     // オープンダイアログのクライアント領域の幅を取得する
01100     ::GetClientRect( hwndOpenDlg, &rc );
01101     nWidth = rc.right - rc.left;
01102
01103     // 標準コントロールプレースフォルダの幅を変更する
01104     hwndCtrl = ::GetDlgItem( hwndDlg, stc32 );
01105     ::GetWindowRect( hwndCtrl, &rc );
01106     ::SetWindowPos( hwndCtrl, 0, 0, 0, nWidth, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01107
01108     // 子ダイアログの幅を変更する
01109     // ※この SetWindowPos() の中で WM_SIZE が発生する
01110     ::GetWindowRect( hwndDlg, &rc );
01111     ::SetWindowPos( hwndDlg, 0, 0, 0, nWidth, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01112 }
01113
01124 void CDlgOpenFile::OnCmbDropdown( HWND hwnd )
01125 {
01126     HDC hDC;
01127     HFONT hFont;
01128     LONG nWidth;
01129     RECT rc;
01130     SIZE sizeText;
01131     int nTextLen;
01132     int iItem;
01133     int nItem;
01134
01135     hDC = ::GetDC( hwnd );
01136     if( NULL == hDC )
01137         return;
01138     hFont = (HFONT)::SendMessageAny( hwnd, WM_GETFONT, 0, NULL );
01139     hFont = (HFONT)::SelectObject( hDC, hFont );
01140     nItem = ::SendMessageAny( hwnd, CB_GETCOUNT, 0, NULL );
01141     ::GetWindowRect( hwnd, &rc );
01142     nWidth = rc.right - rc.left - 8;
01143     for( iItem = 0; iItem < nItem; iItem++ ){
01144         nTextLen = ::SendMessage( hwnd, CB_GETLBTEXTLEN, (WPARAM)iItem, NULL );
01145         if( 0 < nTextLen ) {
01146             TCHAR* pszText = new TCHAR[nTextLen + 1];
01147             Combo_GetText( hwnd, iItem, pszText );
01148             if( ::GetTextExtentPoint32( hDC, pszText, nTextLen, &sizeText ) ){
01149                 if ( nWidth < sizeText.cx )
01150                     nWidth = sizeText.cx;
01151             }
01152             delete []pszText;
01153         }
01154     }
01155 	::SendMessageAny( hwnd, CB_SETDROPPEDWIDTH, (WPARAM)(nWidth + 8), NULL );
01156     ::SelectObject( hDC, hFont );
01157     ::ReleaseDC( hwnd, hDC );
01158 }
01159
01164 BOOL CDlgOpenFile::GetOpenFileNameRecover( OPENFILENAMEZ& ofn )
01165 {
01166     BOOL ret;
01167     ret = ::GetOpenFileName( &ofn );
01168     if( FALSE == ret  ){
01169         if( FNERR_INVALIDFILENAME == ::CommDlgExtendedError() ){
01170             _tcscpy( ofn.lpstrFile, _T("") );
01171             ofn.lpstrInitialDir = _T("");
01172             ret = ::GetOpenFileName( &ofn );
01173         }
01174     }
01175     return ret;
01176 }
01177
01182 BOOL CDlgOpenFile::GetSaveFileNameRecover( OPENFILENAMEZ& ofn )
01183 {
01184     BOOL ret;
01185     ret = ::GetSaveFileName( &ofn );
01186     if( FALSE == ret  ){
01187         if( FNERR_INVALIDFILENAME == ::CommDlgExtendedError() ){
01188             _tcscpy( ofn.lpstrFile, _T("") );
01189             ofn.lpstrInitialDir = _T("");
01190             ret = ::GetSaveFileName( &ofn );
01191         }
01192     }
01193     return ret;
01194 }
01195
01196 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgOpenFile.h

sakura_core

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 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgOpenFile.h ソースファイル

sakura_core

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 TCHAR*, const TCHAR*, const TCHAR** = NULL,const TCHAR** = NULL);
00063     void Create2(
00064         HINSTANCE hInstance,
00065         HWND hwndParent,
00066         const TCHAR* pszUserWildCard,
00067         const TCHAR* pszDefaultPath,
00068         TCHAR** ppszMRU,
00069         TCHAR** ppszOPENFOLDER
00070     )
00071     {
00072         Create(
00073             hInstance,
00074             hwndParent,
00075             pszUserWildCard,
00076             pszDefaultPath,
00077             (const TCHAR**)ppszMRU,
00078             (const TCHAR**)ppszOPENFOLDER
00079         );
00080     }
00081     //void Create( HINSTANCE, HWND, const char*, const char* );
00082     //  2002/08/21 moca 引数追加
00083     BOOL DoModal_GetOpenFileName( TCHAR*, bool bSetCurDir = false );    /* 開くダイアログ モーダルダイアログの表示 */
00084     //  2002/08/21 30,2002 moca 引数追加
00085     BOOL DoModal_GetSaveFileName( TCHAR*, bool bSetCurDir = false );    /* 保存ダイアログ モーダルダイアログの表示 */
00086     BOOL DoModalOpenDlg( TCHAR* , ECodeType*, bool* );  /* 開くダイアグ モーダルダイアログの表示 */
00087     //  Feb. 9, 2001 genta  引数追加
00088     //  Jul. 26, 2003 ryoji BOM用引数追加
00089     BOOL DoModalSaveDlg( TCHAR* , ECodeType*, CEOL*, BOOL* );   /* 保存ダイアログ モーダルダイアログの表示 */
00090
00091 //  INT_PTR DispatchEvent(  HWND, UINT, WPARAM, LPARAM );   /* ダイアログのメッセージ処理 */
00092
00093     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00094     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00095     HWND            m_hWnd;         /* このダイアログのハンドル */
00096
00097     DLLSHAREDATA*   m_pShareData;
00098 //  int             m_nSettingType;
00099
00100     SFilePath       m_szDefaultWildCard;    /* 「開く」での最初のワイルドカード（保存時の拡張子補完でも使用される） */
00101     SFilePath       m_szInitialDir;         /* 「開く」での初期ディレクトリ */
00102     OPENFILENAMEZ   m_ofn;                          /* 2005.10.29 ryoji OPENFILENAMEZ「ファイルを開く」ダイアログ用構造体 */
00103     ECodeType       m_nCharCode;                    /* 文字コード */
00104 //  char            m_szHelpFile[_MAX_PATH + 1];
00105 //  int             m_nHelpTopicID;
00106     CEOL            m_cEol; //  Feb. 9, 2001 genta
00107     bool            m_bUseEol;  //  Feb. 9, 2001 genta
00108
00109     //  Jul. 26, 2003 ryoji BOM
00110     BOOL            m_bBom;
00111     bool            m_bUseBom;
00112
00113     SFilePath       m_szPath;   // 拡張子の補完を自前で行ったときのファイルパス   // 2006.11.10 ryoji
00114
00115 protected:
00116     /*
00117     ||  実装ヘルパ関数
00118     */
00119
00120     //  May 29, 2004 genta エラー処理をまとめる (advised by MIK)
00121     void    DlgOpenFail(void);
00122
00123     // 2005.11.02 ryoji OS バージョン対応の OPENFILENAME 初期化用関数
00124     static COsVersionInfo m_cOsVer;
00125     BOOL IsOfnV5( void ) { return ( m_cOsVer.GetVersion() && (m_cOsVer.IsWin2000_or_later() || m_cOsVer.IsWinMe()) ); }
00126     void InitOfn( OPENFILENAMEZ& );
00127
00128     // 2005.11.02 ryoji 初期レイアウト設定処理
00129     static void InitLayout( HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl );
00130
00131     // 2005.10.29 ryoji コンボボックスのドロップダウン時処理
00132     static void OnCmbDropdown( HWND hwnd );
00133
00134     // 2006.09.03 Moca ファイルダイアログのエラー回避
00136     BOOL GetOpenFileNameRecover( OPENFILENAMEZ& ofn );
00138     BOOL GetSaveFileNameRecover( OPENFILENAMEZ& ofn );
00139
00140     friend UINT_PTR CALLBACK OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam );
00141 };
00142
00143
00144
00146 #endif /* _CDLGOPENFILE_H_ */
00147
00148
00149 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintPage.cpp

sakura_core

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 Nov 17 20:25:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintPage.cpp ソースファイル

sakura_core

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     TCHAR szText[100];
00053 //  From Here Sept. 12, 2000 JEPRO スタイルを少し変更(指定を選んだ時だけ印刷範囲を入力できるようにした)
00054 //  一度設定したページ設定値を保存できるようにしたいがまだできてない
00055 //  ::CheckDlgButton( GetHwnd(), IDC_RADIO_ALL, m_bAllPage?BST_CHECKED:BST_UNCHECKED );
00056 //  auto_sprintf( szText, "%d 〜 %d 頁", m_nPageMin, m_nPageMax );
00057 //  ::DlgItem_SetText( GetHwnd(), IDC_STATIC_ALL, szText );
00058 //
00059 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_FROM, m_nPageFrom, FALSE );
00060 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_TO, m_nPageTo, FALSE );
00061 //
00062     if( TRUE == m_bAllPage ){
00063         ::CheckDlgButton( GetHwnd(), IDC_RADIO_ALL, BST_CHECKED );
00064     }else{
00065         ::CheckDlgButton( GetHwnd(), IDC_RADIO_FROMTO, BST_CHECKED );
00066     }
00067     auto_sprintf( szText, _T("%d 〜 %d ページ"), m_nPageMin, m_nPageMax );
00068 	::DlgItem_SetText( GetHwnd(), IDC_STATIC_ALL, szText );
00069
00070     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_FROM, m_nPageFrom, FALSE );
00071     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_TO, m_nPageTo, FALSE );
00072
00073     //  印刷範囲を指定するかどうか
00074     if( FALSE == m_bAllPage ){
00075         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_FROM ), TRUE );
00076         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_FROM ), TRUE );
00077         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_TO ), TRUE );
00078         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_TO ), TRUE );
00079     }else{
00080         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_FROM ), FALSE );
00081         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_FROM ), FALSE );
00082         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_TO ), FALSE );
00083         ::EnableWindow( ::GetDlgItem( GetHwnd(), 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( GetHwnd(), IDC_RADIO_ALL ) ){
00097         m_bAllPage = TRUE;
00098     }else{
00099         m_bAllPage = FALSE;
00100     }
00101     m_nPageFrom = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_FROM, NULL, FALSE );
00102     m_nPageTo   = ::GetDlgItemInt( GetHwnd(), 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_A(    GetHwnd(), 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( GetHwnd(), IDC_RADIO_FROMTO ) ){
00129             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_FROM ), TRUE );
00130             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_FROM ), TRUE );
00131             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_TO ), TRUE );
00132             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_TO ), TRUE );
00133         }else{
00134             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_FROM ), FALSE );
00135             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_FROM ), FALSE );
00136             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_TO ), FALSE );
00137             ::EnableWindow( ::GetDlgItem( GetHwnd(), 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 Nov 17 20:24:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintPage.h

sakura_core

CDlgPrintPage.h

印刷ダイアログボックス [詳細]

#include "CDialog.h"

CDlgPrintPage.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgPrintPage

説明

印刷ダイアログボックス

作者:
Norio Nakatani

CDlgPrintPage.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintPage.h ソースファイル

sakura_core

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 Nov 17 20:24:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintSetting.cpp

sakura_core

CDlgPrintSetting.cpp

印刷設定ダイアログ [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "CDlgPrintSetting.h"
#include "CPrint.h"
#include "CDlgInput1.h"
#include "funccode.h"
#include "sakura_rc.h"
#include "debug.h"
#include "util/shell.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 行で定義されています。

参照先 ApiWrap::Combo_AddString(), CDialog::GetHwnd(), IDC_COMBO_FONT_HAN, と IDC_COMBO_FONT_ZEN.

参照元 CDlgPrintSetting::SetData().

変数

const DWORD p_helpids[]

CDlgPrintSetting.cpp の 31 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintSetting.cpp ソースファイル

sakura_core

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 "sakura_rc.h"  // 2002/2/10 aroka
00026 #include "debug.h"      // 2002/2/10 aroka
00027 #include "util/shell.h"
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->GetHwnd(), IDC_COMBO_FONT_HAN );
00086     hwndComboFontZen = ::GetDlgItem( pCDlgPrintSetting->GetHwnd(), IDC_COMBO_FONT_ZEN );
00087
00088     /* LOGFONT */
00089     if( FIXED_PITCH & pelf->elfLogFont.lfPitchAndFamily ){
00090 //      MYTRACE_A( pelf->elfLogFont.lfFaceName, "%ls\n\n", pelf->elfLogFont.lfFaceName );
00091         Combo_AddString( hwndComboFontHan, pelf->elfLogFont.lfFaceName  );
00092         Combo_AddString( hwndComboFontZen, 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     _SetHwnd( hwndDlg );
00132
00133     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00134 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_SETTINGNAME ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00135 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_HAN ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00136 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_ZEN ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00137 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_PAPER ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00138
00139     ::SetTimer( GetHwnd(), IDT_PRINTSETTING, 500, NULL );
00140
00141     /* 基底クラスメンバ */
00142     return CDialog::OnInitDialog( GetHwnd(), wParam, lParam );
00143 }
00144
00145 BOOL CDlgPrintSetting::OnDestroy( void )
00146 {
00147     ::KillTimer( GetHwnd(), IDT_PRINTSETTING );
00148     /* 基底クラスメンバ */
00149     return CDialog::OnDestroy();
00150 }
00151
00152
00153 BOOL CDlgPrintSetting::OnNotify( WPARAM wParam, LPARAM lParam )
00154 {
00155     CDlgInput1      cDlgInput1;
00156     NMHDR*          pNMHDR;
00157     NM_UPDOWN*      pMNUD;
00158     int             idCtrl;
00159     BOOL            bSpinDown;
00160     idCtrl = (int)wParam;
00161     pNMHDR = (NMHDR*)lParam;
00162     pMNUD  = (NM_UPDOWN*)lParam;
00163     if( pMNUD->iDelta < 0 ){
00164         bSpinDown = FALSE;
00165     }else{
00166         bSpinDown = TRUE;
00167     }
00168     switch( idCtrl ){
00169     case IDC_SPIN_FONTWIDTH:
00170     case IDC_SPIN_LINESPACE:
00171     case IDC_SPIN_DANSUU:
00172     case IDC_SPIN_DANSPACE:
00173     case IDC_SPIN_MARGINTY:
00174     case IDC_SPIN_MARGINBY:
00175     case IDC_SPIN_MARGINLX:
00176     case IDC_SPIN_MARGINRX:
00177         /* スピンコントロールの処理 */
00178         OnSpin( idCtrl, bSpinDown );
00179         break;
00180     }
00181     return TRUE;
00182 }
00183
00184 BOOL CDlgPrintSetting::OnCbnSelChange( HWND hwndCtl, int wID )
00185 {
00186     if( ::GetDlgItem( GetHwnd(), IDC_COMBO_SETTINGNAME ) == hwndCtl ){
00187         /* 設定のタイプが変わった */
00188         OnChangeSettingType( TRUE );
00189         return TRUE;
00190     }
00191     return FALSE;
00192
00193 }
00194
00195 BOOL CDlgPrintSetting::OnBnClicked( int wID )
00196 {
00197     TCHAR           szWork[256];
00198     CDlgInput1      cDlgInput1;
00199     HWND            hwndComboSettingName;
00200     switch( wID ){
00201     case IDC_BUTTON_HELP:
00202         /* 「印刷ページ設定」のヘルプ */
00203         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00204         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PRINT_PAGESETUP) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00205         return TRUE;
00206     case IDC_BUTTON_EDITSETTINGNAME:
00207         _tcscpy( szWork, m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName );
00208         {
00209             BOOL bDlgInputResult=cDlgInput1.DoModal(
00210                 m_hInstance,
00211                 GetHwnd(),
00212                 _T("設定名の変更"),
00213                 _T("設定の名称を入力してください。"),
00214                 _countof( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName ) - 1,
00215                 szWork
00216             );
00217             if( FALSE == bDlgInputResult ){
00218                 return TRUE;
00219             }
00220         }
00221         if( 0 < _tcslen( szWork ) ){
00222             _tcscpy( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName, szWork );
00223             /* 印刷設定名一覧 */
00224             hwndComboSettingName = ::GetDlgItem( GetHwnd(), IDC_COMBO_SETTINGNAME );
00225 			::SendMessageAny( hwndComboSettingName, CB_RESETCONTENT, 0, 0 );
00226             int     nSelectIdx;
00227             int     i;
00228             int     nItemIdx;
00229             nSelectIdx = 0;
00230             for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00231                 nItemIdx = ::SendMessage(
00232                     hwndComboSettingName, CB_ADDSTRING, 0,
00233                     (LPARAM)m_PrintSettingArr[i].m_szPrintSettingName
00234                 );
00235 				::SendMessageAny( hwndComboSettingName, CB_SETITEMDATA, nItemIdx, (LPARAM)i );
00236                 if( i == m_nCurrentPrintSetting ){
00237                     nSelectIdx = nItemIdx;
00238                 }
00239             }
00240 			::SendMessageAny( hwndComboSettingName, CB_SETCURSEL, nSelectIdx, 0 );
00241         }
00242         return TRUE;
00243     case IDOK:          /* 下検索 */
00244         /* ダイアログデータの取得 */
00245         ::EndDialog( GetHwnd(), GetData() );
00246         return TRUE;
00247     case IDCANCEL:
00248         ::EndDialog( GetHwnd(), FALSE );
00249         return TRUE;
00250     }
00251     /* 基底クラスメンバ */
00252     return CDialog::OnBnClicked( wID );
00253 }
00254
00255
00256 /* ダイアログデータの設定 */
00257 void CDlgPrintSetting::SetData( void )
00258 {
00259     HDC     hdc;
00260     HWND    hwndComboFont;
00261     HWND    hwndComboPaper;
00262     HWND    hwndComboSettingName;
00263     int i;
00264     int nItemIdx;
00265     int nSelectIdx;
00266
00267
00268     /* フォント一覧 */
00269     hdc = ::GetDC( m_hwndParent );
00270     hwndComboFont = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_HAN );
00271 	::SendMessageAny( hwndComboFont, CB_RESETCONTENT, 0, 0 );
00272     hwndComboFont = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_ZEN );
00273 	::SendMessageAny( hwndComboFont, CB_RESETCONTENT, 0, 0 );
00274     ::EnumFontFamilies(
00275         hdc,
00276         NULL,
00277         (FONTENUMPROC)SetData_EnumFontFamProc,
00278         (LPARAM)this
00279     );
00280     ::ReleaseDC( m_hwndParent, hdc );
00281
00282     /* 用紙サイズ一覧 */
00283     hwndComboPaper = ::GetDlgItem( GetHwnd(), IDC_COMBO_PAPER );
00284 	::SendMessageAny( hwndComboPaper, CB_RESETCONTENT, 0, 0 );
00285     // 2006.08.14 Moca 用紙名一覧の重複削除
00286     for( i = 0; i < CPrint::m_nPaperInfoArrNum; ++i ){
00287         nItemIdx = Combo_AddString( hwndComboPaper, CPrint::m_paperInfoArr[i].m_pszName );
00288 		::SendMessageAny( hwndComboPaper, CB_SETITEMDATA, nItemIdx, CPrint::m_paperInfoArr[i].m_nId );
00289     }
00290
00291
00292     /* 印刷設定名一覧 */
00293     hwndComboSettingName = ::GetDlgItem( GetHwnd(), IDC_COMBO_SETTINGNAME );
00294 	::SendMessageAny( hwndComboSettingName, CB_RESETCONTENT, 0, 0 );
00295     nSelectIdx = 0;
00296     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00297         nItemIdx = Combo_AddString( hwndComboSettingName, m_PrintSettingArr[i].m_szPrintSettingName );
00298 		::SendMessageAny( hwndComboSettingName, CB_SETITEMDATA, nItemIdx, (LPARAM)i );
00299         if( i == m_nCurrentPrintSetting ){
00300             nSelectIdx = nItemIdx;
00301         }
00302     }
00303 	::SendMessageAny( hwndComboSettingName, CB_SETCURSEL, nSelectIdx, 0 );
00304
00305     /* 設定のタイプが変わった */
00306     OnChangeSettingType( FALSE );
00307
00308     return;
00309 }
00310
00311
00312
00313
00314 /* ダイアログデータの取得 */
00315 /* TRUE==正常 FALSE==入力エラー */
00316 int CDlgPrintSetting::GetData( void )
00317 {
00318     HWND    hwndCtrl;
00319     int     nIdx1;
00320     int     nWork;
00321
00322     /* フォント一覧 */
00323     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_HAN );
00324     nIdx1 = ::SendMessageAny( hwndCtrl, CB_GETCURSEL, 0, 0 );
00325     Combo_GetText( hwndCtrl, nIdx1,
00326         m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan
00327     );
00328     /* フォント一覧 */
00329     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_ZEN );
00330     nIdx1 = ::SendMessageAny( hwndCtrl, CB_GETCURSEL, 0, 0 );
00331     Combo_GetText( hwndCtrl, nIdx1,
00332         m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceZen
00333     );
00334
00335     /* 用紙サイズ一覧 */
00336     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_PAPER );
00337     nIdx1 = ::SendMessageAny( hwndCtrl, CB_GETCURSEL, 0, 0 );
00338     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperSize =
00339 		::SendMessageAny( hwndCtrl, CB_GETITEMDATA, nIdx1, 0 );
00340
00341     // 用紙の向き
00342     // 2006.08.14 Moca 用紙方向コンボボックスを廃止し、ボタンを有効化
00343     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_PORTRAIT ) ){
00344         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation = DMORIENT_PORTRAIT;
00345     }else{
00346         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation = DMORIENT_LANDSCAPE;
00347     }
00348
00349     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_FONTWIDTH, NULL, FALSE );
00350     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight = m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth * 2;
00351     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_LINESPACE, NULL, FALSE );
00352     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_DANSUU, NULL, FALSE );
00353     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_DANSPACE, NULL, FALSE ) * 10;
00354     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINTY, NULL, FALSE ) * 10;
00355     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINBY, NULL, FALSE ) * 10;
00356     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINLX, NULL, FALSE ) * 10;
00357     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINRX, NULL, FALSE ) * 10;
00358
00359     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_WORDWRAP ) ){
00360         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap = TRUE;
00361     }else{
00362         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap = FALSE;
00363     }
00364     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_LINENUMBER ) ){
00365         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber = TRUE;
00366     }else{
00367         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber = FALSE;
00368     }
00369
00370
00371     /* 入力値(数値)のエラーチェックをして正しい値を返す */
00372     nWork = DataCheckAndCrrect( IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu );
00373     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu ){
00374         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = nWork;
00375         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00376     }
00377
00378     nWork = DataCheckAndCrrect( IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth );
00379     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth ){
00380         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = nWork;
00381         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00382     }
00383     nWork = DataCheckAndCrrect( IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing );
00384     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing ){
00385         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = nWork;
00386         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00387     }
00388     nWork = DataCheckAndCrrect( IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10 );
00389     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10 ){
00390         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = nWork * 10;
00391         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00392     }
00393     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10 );
00394     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10 ){
00395         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = nWork * 10;
00396         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00397     }
00398     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10 );
00399     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10 ){
00400         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = nWork * 10;
00401         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00402     }
00403     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10 );
00404     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10 ){
00405         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = nWork * 10;
00406         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00407     }
00408     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10 );
00409     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10 ){
00410         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = nWork * 10;
00411         ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00412     }
00413
00414
00415 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = DataCheckAndCrrect( IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu );
00416 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = DataCheckAndCrrect( IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth );
00417 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = DataCheckAndCrrect( IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing );
00418 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = DataCheckAndCrrect( IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace );
00419 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = DataCheckAndCrrect( IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY );
00420 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = DataCheckAndCrrect( IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY );
00421 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = DataCheckAndCrrect( IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX );
00422 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = DataCheckAndCrrect( IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX );
00423 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00424 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00425 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00426 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00427 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00428 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00429 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00430 //  ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00431
00432     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight = m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth * 2;
00433
00434     //@@@ 2002.2.4 YAZAKI
00435     /* ヘッダー */
00436 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_HEAD1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[0], HEADER_MAX );   //  100文字で制限しないと。。。
00437 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_HEAD2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[1], HEADER_MAX );   //  100文字で制限しないと。。。
00438 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_HEAD3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[2], HEADER_MAX );   //  100文字で制限しないと。。。
00439
00440     /* フッター */
00441 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_FOOT1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[0], HEADER_MAX );   //  100文字で制限しないと。。。
00442 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_FOOT2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[1], HEADER_MAX );   //  100文字で制限しないと。。。
00443 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_FOOT3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[2], HEADER_MAX );   //  100文字で制限しないと。。。
00444
00445     //行頭禁則  //@@@ 2002.04.09 MIK
00446     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PS_KINSOKUHEAD ) ){
00447         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead = TRUE;
00448     }else{
00449         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead = FALSE;
00450     }
00451     //行末禁則  //@@@ 2002.04.09 MIK
00452     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PS_KINSOKUTAIL ) ){
00453         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail = TRUE;
00454     }else{
00455         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail = FALSE;
00456     }
00457     //改行文字をぶら下げる    //@@@ 2002.04.13 MIK
00458     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PS_KINSOKURET ) ){
00459         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet = TRUE;
00460     }else{
00461         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet = FALSE;
00462     }
00463     //句読点をぶら下げる   //@@@ 2002.04.17 MIK
00464     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PS_KINSOKUKUTO ) ){
00465         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto = TRUE;
00466     }else{
00467         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto = FALSE;
00468     }
00469
00470     return TRUE;
00471 }
00472
00473
00474 /* 設定のタイプが変わった */
00475 void CDlgPrintSetting::OnChangeSettingType( BOOL bGetData )
00476 {
00477     HWND    hwndComboSettingName;
00478     HWND    hwndCtrl;
00479     int     nIdx1;
00480     int     nItemNum;
00481     int     nItemData;
00482     int     i;
00483
00484     if( bGetData ){
00485         GetData();
00486     }
00487
00488     hwndComboSettingName = ::GetDlgItem( GetHwnd(), IDC_COMBO_SETTINGNAME );
00489     nIdx1 = ::SendMessageAny( hwndComboSettingName, CB_GETCURSEL, 0, 0 );
00490     if( CB_ERR == nIdx1 ){
00491         return;
00492     }
00493     m_nCurrentPrintSetting = ::SendMessageAny( hwndComboSettingName, CB_GETITEMDATA, nIdx1, 0 );
00494
00495     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00496     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00497     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00498     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00499     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00500     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00501     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00502     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00503
00504     /* ヘッダー */
00505 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_HEAD1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_LEFT] );    //  100文字で制限しないと。。。
00506 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_HEAD2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_CENTER] );  //  100文字で制限しないと。。。
00507 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_HEAD3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_RIGHT] );   //  100文字で制限しないと。。。
00508
00509     /* フッター */
00510 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_FOOT1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_LEFT] );    //  100文字で制限しないと。。。
00511 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_FOOT2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_CENTER] );  //  100文字で制限しないと。。。
00512 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_FOOT3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_RIGHT] );   //  100文字で制限しないと。。。
00513
00514     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap ){
00515         ::CheckDlgButton( GetHwnd(), IDC_CHECK_WORDWRAP, BST_CHECKED );
00516     }else{
00517         ::CheckDlgButton( GetHwnd(), IDC_CHECK_WORDWRAP, BST_UNCHECKED );
00518     }
00519     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber ){
00520         ::CheckDlgButton( GetHwnd(), IDC_CHECK_LINENUMBER, BST_CHECKED );
00521     }else{
00522         ::CheckDlgButton( GetHwnd(), IDC_CHECK_LINENUMBER, BST_UNCHECKED );
00523     }
00524
00525
00526
00527     /* フォント一覧 */
00528     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_HAN );
00529     nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan );
00530 	::SendMessageAny( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
00531
00532     /* フォント一覧 */
00533     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_FONT_ZEN );
00534     nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceZen );
00535 	::SendMessageAny( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
00536
00537     /* 用紙サイズ一覧 */
00538     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_PAPER );
00539     nItemNum = ::SendMessageAny( hwndCtrl, CB_GETCOUNT, 0, 0 );
00540     for( i = 0; i < nItemNum; ++i ){
00541         nItemData = ::SendMessageAny( hwndCtrl, CB_GETITEMDATA, i, 0 );
00542         if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperSize == nItemData ){
00543 			::SendMessageAny( hwndCtrl, CB_SETCURSEL, i, 0 );
00544             break;
00545         }
00546     }
00547
00548     // 用紙の向き
00549     // 2006.08.14 Moca 用紙方向コンボボックスを廃止し、ボタンを有効化
00550     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation == DMORIENT_PORTRAIT ){
00551         ::CheckDlgButton( GetHwnd(), IDC_RADIO_PORTRAIT, BST_CHECKED );
00552     }else{
00553         ::CheckDlgButton( GetHwnd(), IDC_RADIO_LANDSCAPE, BST_CHECKED );
00554     }
00555
00556     // 行頭禁則 //@@@ 2002.04.09 MIK
00557     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead ){
00558         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUHEAD, BST_CHECKED );
00559     }else{
00560         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUHEAD, BST_UNCHECKED );
00561     }
00562     // 行末禁則 //@@@ 2002.04.09 MIK
00563     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail ){
00564         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUTAIL, BST_CHECKED );
00565     }else{
00566         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUTAIL, BST_UNCHECKED );
00567     }
00568     // 改行文字をぶら下げる   //@@@ 2002.04.13 MIK
00569     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet ){
00570         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKURET, BST_CHECKED );
00571     }else{
00572         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKURET, BST_UNCHECKED );
00573     }
00574     // 句読点をぶら下げる  //@@@ 2002.04.17 MIK
00575     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto ){
00576         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUKUTO, BST_CHECKED );
00577     }else{
00578         ::CheckDlgButton( GetHwnd(), IDC_CHECK_PS_KINSOKUKUTO, BST_UNCHECKED );
00579     }
00580
00581     return;
00582 }
00583
00584 /* スピンコントロールの処理 */
00585 void CDlgPrintSetting::OnSpin( int nCtrlId, BOOL bDown )
00586 {
00587     int     nData;
00588     BOOL    bUnknown;
00589     int     nCtrlIdEDIT;
00590     bUnknown = FALSE;
00591     switch( nCtrlId ){
00592     case IDC_SPIN_FONTWIDTH:
00593         nCtrlIdEDIT = IDC_EDIT_FONTWIDTH;
00594         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00595         if( bDown ){
00596             nData-=1;
00597         }else{
00598             nData+=1;
00599         }
00600         break;
00601     case IDC_SPIN_LINESPACE:
00602         nCtrlIdEDIT = IDC_EDIT_LINESPACE;
00603         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00604         if( bDown ){
00605             nData-=10;
00606         }else{
00607             nData+=10;
00608         }
00609         break;
00610     case IDC_SPIN_DANSUU:
00611         nCtrlIdEDIT = IDC_EDIT_DANSUU;
00612         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00613         if( bDown ){
00614             nData--;
00615         }else{
00616             ++nData;
00617         }
00618         break;
00619     case IDC_SPIN_DANSPACE:
00620         nCtrlIdEDIT = IDC_EDIT_DANSPACE;
00621         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00622         if( bDown ){
00623             nData--;
00624         }else{
00625             ++nData;
00626         }
00627         break;
00628     case IDC_SPIN_MARGINTY:
00629         nCtrlIdEDIT = IDC_EDIT_MARGINTY;
00630         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00631         if( bDown ){
00632             nData--;
00633         }else{
00634             ++nData;
00635         }
00636         break;
00637     case IDC_SPIN_MARGINBY:
00638         nCtrlIdEDIT = IDC_EDIT_MARGINBY;
00639         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00640         if( bDown ){
00641             nData--;
00642         }else{
00643             ++nData;
00644         }
00645         break;
00646     case IDC_SPIN_MARGINLX:
00647         nCtrlIdEDIT = IDC_EDIT_MARGINLX;
00648         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00649         if( bDown ){
00650             nData--;
00651         }else{
00652             ++nData;
00653         }
00654         break;
00655     case IDC_SPIN_MARGINRX:
00656         nCtrlIdEDIT = IDC_EDIT_MARGINRX;
00657         nData = ::GetDlgItemInt( GetHwnd(), nCtrlIdEDIT, NULL, FALSE );
00658         if( bDown ){
00659             nData--;
00660         }else{
00661             ++nData;
00662         }
00663         break;
00664     default:
00665         bUnknown = TRUE;
00666         break;
00667     }
00668     if( !bUnknown ){
00669         /* 入力値(数値)のエラーチェックをして正しい値を返す */
00670         nData = DataCheckAndCrrect( nCtrlIdEDIT, nData );
00671         ::SetDlgItemInt( GetHwnd(), nCtrlIdEDIT, nData, FALSE );
00672     }
00673     return;
00674 }
00675
00676
00677 /* 入力値(数値)のエラーチェックをして正しい値を返す */
00678 int CDlgPrintSetting::DataCheckAndCrrect( int nCtrlId, int nData )
00679 {
00680 //  int     nData;
00681     switch( nCtrlId ){
00682     case IDC_EDIT_FONTWIDTH:
00683         if( 7 >= nData ){
00684             nData = 7;
00685         }
00686         if( 100 < nData ){
00687             nData = 100;
00688         }
00689         break;
00690     case IDC_EDIT_LINESPACE:
00691         if( 0 >= nData ){
00692             nData = 0;
00693         }
00694         if( 150 < nData ){
00695             nData = 150;
00696         }
00697         break;
00698     case IDC_EDIT_DANSUU:
00699         if( 1 >= nData ){
00700             nData = 1;
00701         }
00702         if( 4 < nData ){
00703             nData = 4;
00704         }
00705         break;
00706     case IDC_EDIT_DANSPACE:
00707         if( 0 >= nData ){
00708             nData = 0;
00709         }
00710         if( 30 < nData ){
00711             nData = 30;
00712         }
00713         break;
00714     case IDC_EDIT_MARGINTY:
00715         if( 0 >= nData ){
00716             nData = 0;
00717         }
00718         if( 50 < nData ){
00719             nData = 50;
00720         }
00721         break;
00722     case IDC_EDIT_MARGINBY:
00723         if( 0 >= nData ){
00724             nData = 0;
00725         }
00726         if( 50 < nData ){
00727             nData = 50;
00728         }
00729         break;
00730     case IDC_EDIT_MARGINLX:
00731         if( 0 >= nData ){
00732             nData = 0;
00733         }
00734         if( 50 < nData ){
00735             nData = 50;
00736         }
00737         break;
00738     case IDC_EDIT_MARGINRX:
00739         if( 0 >= nData ){
00740             nData = 0;
00741         }
00742         if( 50 < nData ){
00743             nData = 50;
00744         }
00745         break;
00746     }
00747     return nData;
00748 }
00749
00750 /* タイマー処理 */
00751 BOOL CDlgPrintSetting::OnTimer( WPARAM wParam )
00752 {
00753     int nTimer;
00754     int             nEnableColmns;      /* 行あたりの文字数 */
00755     int             nEnableLines;       /* 縦方向の行数 */
00756 //  int             nEnableLinesAll;    /* ページあたりの行数 */
00757     MYDEVMODE       dmDummy;            // 2003.05.18 かろと 型変更
00758     int             nPaperAllWidth;     /* 用紙幅 */
00759     int             nPaperAllHeight;    /* 用紙高さ */
00760     PRINTSETTING*   pPS;
00761     nTimer = (int)wParam;
00762
00763     if( nTimer != IDT_PRINTSETTING ){
00764         return FALSE;
00765     }
00766     /* ダイアログデータの取得 */
00767     GetData();
00768 //  SetData( GetHwnd() );
00769     pPS = &m_PrintSettingArr[m_nCurrentPrintSetting];
00770
00771     dmDummy.dmFields = DM_PAPERSIZE | DMORIENT_LANDSCAPE;
00772     dmDummy.dmPaperSize = pPS->m_nPrintPaperSize;
00773     dmDummy.dmOrientation = pPS->m_nPrintPaperOrientation;
00774     /* 用紙の幅、高さ */
00775     if( FALSE == CPrint::GetPaperSize(
00776         &nPaperAllWidth,
00777         &nPaperAllHeight,
00778         &dmDummy
00779     ) ){
00780     // 2001.12.21 hor GetPaperSize失敗時はそのまま終了
00781     //  nPaperAllWidth = 210 * 10;      /* 用紙幅 */
00782     //  nPaperAllHeight = 297 * 10;     /* 用紙高さ */
00783         return FALSE;
00784     }
00785     /* 行あたりの文字数(行番号込み) */
00786     nEnableColmns =
00787         ( nPaperAllWidth - pPS->m_nPrintMarginLX - pPS->m_nPrintMarginRX
00788         - ( pPS->m_nPrintDansuu - 1 ) * pPS->m_nPrintDanSpace
00789 //      - ( pPS->m_nPrintDansuu ) *  ( ( m_nPreview_LineNumberColmns /*+ (m_nPreview_LineNumberColmns?1:0)*/ ) * pPS->m_nPrintFontWidth )
00790         ) / pPS->m_nPrintFontWidth / pPS->m_nPrintDansuu;   /* 印字可能桁数/ページ */
00791     /* 縦方向の行数 */
00792     nEnableLines =
00793         ( nPaperAllHeight - pPS->m_nPrintMarginTY - pPS->m_nPrintMarginBY ) /
00794         ( pPS->m_nPrintFontHeight + ( pPS->m_nPrintFontHeight * pPS->m_nPrintLineSpacing / 100 ) ) - 4; /* 印字可能行数/ページ */
00795 //  /* ページあたりの行数 */
00796 //  nEnableLinesAll = nEnableLines * pPS->m_nPrintDansuu;
00797
00798     ::SetDlgItemInt( GetHwnd(), IDC_STATIC_ENABLECOLMNS, nEnableColmns, FALSE );
00799     ::SetDlgItemInt( GetHwnd(), IDC_STATIC_ENABLELINES, nEnableLines, FALSE );
00800 //  ::SetDlgItemInt( GetHwnd(), IDC_STATIC_ENABLELINESALL, nEnableLinesAll, FALSE );
00801     return TRUE;
00802 }
00803
00804 //@@@ 2002.01.18 add start
00805 LPVOID CDlgPrintSetting::GetHelpIdTable(void)
00806 {
00807     return (LPVOID)p_helpids;
00808 }
00809 //@@@ 2002.01.18 add end
00810
00811 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintSetting.h

sakura_core

CDlgPrintSetting.h

印刷設定ダイアログ [詳細]

#include "CDialog.h"

CDlgPrintSetting.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgPrintSetting

説明

印刷設定ダイアログ

作者:
Norio Nakatani

CDlgPrintSetting.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgPrintSetting.h ソースファイル

sakura_core

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 Nov 17 20:24:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgProperty.cpp

sakura_core

CDlgProperty.cpp

ファイルプロパティダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgProperty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "funccode.h"
#include "global.h"
#include "charcode.h"
#include "io/CBinaryStream.h"
#include "util/shell.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 の 29 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgProperty.cpp ソースファイル

sakura_core

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 "funccode.h"       // Stonee, 2001/03/12
00022 #include "global.h"     // Moca, 2002/05/26
00023 #include "charcode.h"   // rastiv, 2006/06/28
00024 #include "io/CBinaryStream.h"
00025 #include "util/shell.h"
00026
00027 // プロパティ CDlgProperty.cpp //@@@ 2002.01.07 add start MIK
00028 #include "sakura.hh"
00029 const DWORD p_helpids[] = { //12600
00030     IDOK,                   HIDOK_PROP,
00031     IDCANCEL,               HIDCANCEL_PROP,
00032     IDC_BUTTON_HELP,        HIDC_PROP_BUTTON_HELP,
00033     IDC_EDIT1,              HIDC_PROP_EDIT1,
00034 //  IDC_STATIC,             -1,
00035     0, 0
00036 };  //@@@ 2002.01.07 add end MIK
00037
00038 /* モーダルダイアログの表示 */
00039 int CDlgProperty::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00040 {
00041     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_PROPERTY_FILE, lParam );
00042 }
00043
00044 BOOL CDlgProperty::OnBnClicked( int wID )
00045 {
00046     switch( wID ){
00047     case IDC_BUTTON_HELP:
00048         /* 「ファイルのプロパティ」のヘルプ */
00049         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00050         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PROPERTY_FILE) ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00051         return TRUE;
00052     case IDOK:          /* 下検索 */
00053         /* ダイアログデータの取得 */
00054         ::EndDialog( GetHwnd(), FALSE );
00055         return TRUE;
00056     case IDCANCEL:
00057         ::EndDialog( GetHwnd(), FALSE );
00058         return TRUE;
00059     }
00060     /* 基底クラスメンバ */
00061     return CDialog::OnBnClicked( wID );
00062 }
00063
00064
00069 void CDlgProperty::SetData( void )
00070 {
00071     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00072     CNativeT        cmemProp;
00073 //  char*           pWork;
00074 //  char            szWork[100];
00075     TCHAR           szWork[500];
00076
00077     HANDLE          nFind;
00078     WIN32_FIND_DATA wfd;
00079     SYSTEMTIME      systimeL;
00080     /* 共有データ構造体のアドレスを返す */
00081     m_pShareData = CShareData::getInstance()->GetShareData();
00082
00083     //  Aug. 16, 2000 genta 全角化
00084     cmemProp.AppendString( _T("ファイル名  ") );
00085     cmemProp.AppendString( pCEditDoc->GetFilePath() );
00086     cmemProp.AppendString( _T("\r\n") );
00087
00088     cmemProp.AppendString( _T("設定のタイプ  ") );
00089     cmemProp.AppendString( pCEditDoc->GetDocumentAttribute().m_szTypeName );
00090     cmemProp.AppendString( _T("\r\n") );
00091
00092     cmemProp.AppendString( _T("文字コード  ") );
00093     cmemProp.AppendString( gm_pszCodeNameArr_Normal[pCEditDoc->m_nCharCode] );
00094     cmemProp.AppendString( _T("\r\n") );
00095
00096     auto_sprintf( szWork, _T("行数  %d行\r\n"), pCEditDoc->m_cDocLineMgr.GetLineCount() );
00097     cmemProp.AppendString( szWork );
00098
00099     auto_sprintf( szWork, _T("レイアウト行数  %d行\r\n"), pCEditDoc->m_cLayoutMgr.GetLineCount() );
00100     cmemProp.AppendString( szWork );
00101
00102     if( pCEditDoc->m_bReadOnly ){
00103         cmemProp.AppendString( _T("上書き禁止モードで開いています。\r\n") );
00104     }
00105     if( pCEditDoc->IsModified() ){
00106         cmemProp.AppendString( _T("変更されています。\r\n") );
00107     }else{
00108         cmemProp.AppendString( _T("変更されていません。\r\n") );
00109     }
00110
00111     auto_sprintf( szWork, _T("\r\nコマンド実行回数    %d回\r\n"), pCEditDoc->m_nCommandExecNum );
00112     cmemProp.AppendString( szWork );
00113
00114     auto_sprintf( szWork, _T("--ファイル情報-----------------\r\n"), pCEditDoc->m_cDocLineMgr.GetLineCount() );
00115     cmemProp.AppendString( szWork );
00116
00117     if( INVALID_HANDLE_VALUE != ( nFind = ::FindFirstFile( pCEditDoc->GetFilePath(), &wfd ) ) ){
00118         if( pCEditDoc->m_hLockedFile ){
00119             if( m_pShareData->m_Common.m_sFile.m_nFileShareMode == SHAREMODE_DENY_WRITE ){
00120                 auto_sprintf( szWork, _T("あなたはこのファイルを、他プロセスからの上書き禁止モードでロックしています。\r\n") );
00121             }else
00122             if( m_pShareData->m_Common.m_sFile.m_nFileShareMode == SHAREMODE_DENY_READWRITE ){
00123                 auto_sprintf( szWork, _T("あなたはこのファイルを、他プロセスからの読み書き禁止モードでロックしています。\r\n") );
00124             }else{
00125                 auto_sprintf( szWork, _T("あなたはこのファイルをロックしています。\r\n") );
00126             }
00127             cmemProp.AppendString( szWork );
00128         }else{
00129             auto_sprintf( szWork, _T("あなたはこのファイルをロックしていません。\r\n") );
00130             cmemProp.AppendString( szWork );
00131         }
00132
00133         auto_sprintf( szWork, _T("ファイル属性  "), pCEditDoc->m_cDocLineMgr.GetLineCount() );
00134         cmemProp.AppendString( szWork );
00135         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE ){
00136             cmemProp.AppendString( _T("/アーカイブ") );
00137         }
00138         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED ){
00139             cmemProp.AppendString( _T("/圧縮") );
00140         }
00141         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
00142             cmemProp.AppendString( _T("/フォルダ") );
00143         }
00144         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ){
00145             cmemProp.AppendString( _T("/隠し") );
00146         }
00147         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_NORMAL ){
00148             cmemProp.AppendString( _T("/ノーマル") );
00149         }
00150         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE ){
00151             cmemProp.AppendString( _T("/オフライン") );
00152         }
00153         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_READONLY ){
00154             cmemProp.AppendString( _T("/読み取り専用") );
00155         }
00156         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM ){
00157             cmemProp.AppendString( _T("/システム") );
00158         }
00159         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY ){
00160             cmemProp.AppendString( _T("/テンポラリ") );
00161         }
00162         cmemProp.AppendString( _T("\r\n") );
00163
00164
00165         cmemProp.AppendString( _T("作成日時  ") );
00166         ::FileTimeToLocalFileTime( &wfd.ftCreationTime, &wfd.ftCreationTime );
00167         ::FileTimeToSystemTime( &wfd.ftCreationTime, &systimeL );
00168         auto_sprintf( szWork, _T("%d年%d月%d日 %02d:%02d:%02d"),
00169             systimeL.wYear,
00170             systimeL.wMonth,
00171             systimeL.wDay,
00172             systimeL.wHour,
00173             systimeL.wMinute,
00174             systimeL.wSecond
00175         );
00176         cmemProp.AppendString( szWork );
00177         cmemProp.AppendString( _T("\r\n") );
00178
00179         cmemProp.AppendString( _T("更新日時  ") );
00180         ::FileTimeToLocalFileTime( &wfd.ftLastWriteTime, &wfd.ftLastWriteTime );
00181         ::FileTimeToSystemTime( &wfd.ftLastWriteTime, &systimeL );
00182         auto_sprintf( szWork, _T("%d年%d月%d日 %02d:%02d:%02d"),
00183             systimeL.wYear,
00184             systimeL.wMonth,
00185             systimeL.wDay,
00186             systimeL.wHour,
00187             systimeL.wMinute,
00188             systimeL.wSecond
00189         );
00190         cmemProp.AppendString( szWork );
00191         cmemProp.AppendString( _T("\r\n") );
00192
00193
00194         cmemProp.AppendString( _T("アクセス日  ") );
00195         ::FileTimeToLocalFileTime( &wfd.ftLastAccessTime, &wfd.ftLastAccessTime );
00196         ::FileTimeToSystemTime( &wfd.ftLastAccessTime, &systimeL );
00197         auto_sprintf( szWork, _T("%d年%d月%d日"),
00198             systimeL.wYear,
00199             systimeL.wMonth,
00200             systimeL.wDay
00201         );
00202         cmemProp.AppendString( szWork );
00203         cmemProp.AppendString( _T("\r\n") );
00204
00205         auto_sprintf( szWork, _T("MS-DOSファイル名  %ls\r\n"), wfd.cAlternateFileName );
00206         cmemProp.AppendString( szWork );
00207
00208         auto_sprintf( szWork, _T("ファイルサイズ  %d バイト\r\n"), wfd.nFileSizeLow );
00209         cmemProp.AppendString( szWork );
00210
00211         ::FindClose( nFind );
00212     }
00213
00214
00215
00216
00217 #ifdef _DEBUG
00218     MBCODE_INFO     mbci_tmp;
00219     UNICODE_INFO    uci_tmp;
00220
00221     HGLOBAL                 hgData;
00222     char*                   pBuf;
00223     int                     nBufLen;
00224     /* メモリ確保 & ファイル読み込み */
00225     hgData = NULL;
00226     CBinaryInputStream in(pCEditDoc->GetFilePath());
00227     if(!in){
00228         goto end_of_CodeTest;
00229     }
00230     nBufLen = in.GetLength();
00231     if( nBufLen > CheckKanjiCode_MAXREADLENGTH ){
00232         nBufLen = CheckKanjiCode_MAXREADLENGTH;
00233     }
00234     hgData = ::GlobalAlloc( GHND, nBufLen + 1 );
00235     if( NULL == hgData ){
00236         in.Close();
00237         goto end_of_CodeTest;
00238     }
00239     pBuf = GlobalLockChar( hgData );
00240     in.Read( pBuf, nBufLen );
00241     in.Close();
00242
00243 // From Here  2006.12.17  rastiv
00244     /*
00245     ||ファイルの日本語コードセット判別: Unicodeか？
00246     */
00247     /*
00248     ||ファイルの日本語コードセット判別: UnicodeBEか？
00249     */
00250     Charcode::GetEncdInf_Uni( pBuf, nBufLen, &uci_tmp );
00251     auto_sprintf( szWork, _T("Unicodeコード調査：改行バイト数=%d  BE改行バイト数=%d ASCII改行バイト数=%d\r\n")
00252         , uci_tmp.Uni.nCRorLF, uci_tmp.UniBe.nCRorLF, uci_tmp.nCRorLF_ascii );
00253     cmemProp.AppendString( szWork );
00254
00255     /*
00256     ||ファイルの日本語コードセット判別: EUCか？
00257     */
00258     Charcode::GetEncdInf_EucJp( pBuf, nBufLen, &mbci_tmp );
00259     auto_sprintf( szWork, _T("EUCJPコード検査：特有バイト数=%d  ポイント数=%d\r\n")
00260         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00261     cmemProp.AppendString( szWork );
00262
00263     /*
00264     ||ファイルの日本語コードセット判別: SJISか？
00265     */
00266     Charcode::GetEncdInf_SJis( pBuf, nBufLen, &mbci_tmp );
00267     auto_sprintf( szWork, _T("SJISコード検査：特有バイト数=%d  ポイント数=%d\r\n")
00268         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00269     cmemProp.AppendString( szWork );
00270
00271     /*
00272     ||ファイルの日本語コードセット判別: JISか？
00273     */
00274     Charcode::GetEncdInf_Jis( pBuf, nBufLen, &mbci_tmp );
00275     auto_sprintf( szWork, _T("JISコード検査：特有バイト数=%d  ポイント数=%d\r\n")
00276         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00277     cmemProp.AppendString( szWork );
00278
00279     /*
00280     ||ファイルの日本語コードセット判別: UTF-8Sか？
00281     */
00282     Charcode::GetEncdInf_Utf8( pBuf, nBufLen, &mbci_tmp );
00283     auto_sprintf( szWork, _T("UTF-8コード検査：特有バイト数=%d  ポイント数=%d\r\n")
00284         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00285     cmemProp.AppendString( szWork );
00286
00287     /*
00288     ||ファイルの日本語コードセット判別: UTF-7Sか？
00289     */
00290     Charcode::GetEncdInf_Utf7( pBuf, nBufLen, &mbci_tmp );
00291     auto_sprintf( szWork, _T("UTF-7コード検査：特有バイト数=%d  ポイント数=%d\r\n")
00292         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00293     cmemProp.AppendString( szWork );
00294 // To Here rastiv 2006.12.17
00295
00296     if( NULL != hgData ){
00297         ::GlobalUnlock( hgData );
00298         ::GlobalFree( hgData );
00299         hgData = NULL;
00300     }
00301 end_of_CodeTest:;
00302 #endif //ifdef _DEBUG
00303     ::DlgItem_SetText( GetHwnd(), IDC_EDIT1, cmemProp.GetStringPtr() );
00304
00305     return;
00306 }
00307
00308 //@@@ 2002.01.18 add start
00309 LPVOID CDlgProperty::GetHelpIdTable(void)
00310 {
00311     return (LPVOID)p_helpids;
00312 }
00313 //@@@ 2002.01.18 add end
00314
00315 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgProperty.h

sakura_core

CDlgProperty.h

ファイルプロパティダイアログ [詳細]

#include "CDialog.h"

CDlgProperty.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgProperty

説明

ファイルプロパティダイアログ

作者:
Norio Nakatani
日付:
1999/02/31 新規作成

1999/12/05 再作成

CDlgProperty.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgProperty.h ソースファイル

sakura_core

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 Nov 17 20:24:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgReplace.cpp

sakura_core

CDlgReplace.cpp

置換ダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgReplace.h"
#include "debug.h"
#include "CEditView.h"
#include "global.h"
#include "funccode.h"
#include "CLayout.h"
#include "CEditDoc.h"
#include "util/shell.h"
#include "util/window.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 の 31 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgReplace.cpp ソースファイル

sakura_core

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 "global.h"
00023 #include "funccode.h"       // Stonee, 2001/03/12
00024 #include "CLayout.h"
00025 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00026 #include "util/shell.h"
00027 #include "util/window.h"
00028
00029 //置換 CDlgReplace.cpp    //@@@ 2002.01.07 add start MIK
00030 #include "sakura.hh"
00031 const DWORD p_helpids[] = { //11900
00032     IDC_BUTTON_SEARCHNEXT,          HIDC_REP_BUTTON_SEARCHNEXT,         //下検索
00033     IDC_BUTTON_SEARCHPREV,          HIDC_REP_BUTTON_SEARCHPREV,         //上検索
00034     IDC_BUTTON_REPALCE,             HIDC_REP_BUTTON_REPALCE,            //置換
00035     IDC_BUTTON_REPALCEALL,          HIDC_REP_BUTTON_REPALCEALL,         //全置換
00036     IDCANCEL,                       HIDCANCEL_REP,                      //キャンセル
00037     IDC_BUTTON_HELP,                HIDC_REP_BUTTON_HELP,               //ヘルプ
00038     IDC_CHK_PASTE,                  HIDC_REP_CHK_PASTE,                 //クリップボードから貼り付け
00039     IDC_CHK_WORD,                   HIDC_REP_CHK_WORD,                  //単語単位
00040     IDC_CHK_LOHICASE,               HIDC_REP_CHK_LOHICASE,              //大文字小文字
00041     IDC_CHK_REGULAREXP,             HIDC_REP_CHK_REGULAREXP,            //正規表現
00042     IDC_CHECK_NOTIFYNOTFOUND,       HIDC_REP_CHECK_NOTIFYNOTFOUND,      //見つからないときに通知
00043     IDC_CHECK_bAutoCloseDlgReplace, HIDC_REP_CHECK_bAutoCloseDlgReplace,    //自動的に閉じる
00044     IDC_COMBO_TEXT,                 HIDC_REP_COMBO_TEXT,                //置換前
00045     IDC_COMBO_TEXT2,                HIDC_REP_COMBO_TEXT2,               //置換後
00046     IDC_RADIO_REPLACE,              HIDC_REP_RADIO_REPLACE,             //置換対象：置換
00047     IDC_RADIO_INSERT,               HIDC_REP_RADIO_INSERT,              //置換対象：挿入
00048     IDC_RADIO_ADD,                  HIDC_REP_RADIO_ADD,                 //置換対象：追加
00049     IDC_RADIO_SELECTEDAREA,         HIDC_REP_RADIO_SELECTEDAREA,        //範囲：全体
00050     IDC_RADIO_ALLAREA,              HIDC_REP_RADIO_ALLAREA,             //範囲：選択範囲
00051     IDC_STATIC_JRE32VER,            HIDC_REP_STATIC_JRE32VER,           //正規表現バージョン
00052     IDC_BUTTON_SETMARK,             HIDC_REP_BUTTON_SETMARK,            //2002.01.16 hor 検索該当行をマーク
00053     IDC_CHECK_SEARCHALL,            HIDC_REP_CHECK_SEARCHALL,           //2002.01.26 hor 先頭（末尾）から再検索
00054     IDC_CHECK_CONSECUTIVEALL,       HIDC_REP_CHECK_CONSECUTIVEALL,      //「すべて置換」は置換の繰返し    // 2007.01.16 ryoji
00055 //  IDC_STATIC,                     -1,
00056     0, 0
00057 };  //@@@ 2002.01.07 add end MIK
00058
00059 CDlgReplace::CDlgReplace()
00060 {
00061     m_sSearchOption.Reset();    // 検索オプション
00062     /*
00063     m_bLoHiCase = FALSE;        // 英大文字と英小文字を区別する
00064     m_bWordOnly = FALSE;        // 一致する単語のみ検索する
00065     m_bRegularExp = FALSE;      // 正規表現
00066     */
00067     m_bConsecutiveAll = FALSE;  // 「すべて置換」は置換の繰返し   // 2007.01.16 ryoji
00068     m_bSelectedArea = FALSE;    // 選択範囲内置換
00069     m_szText[0] = L'\0';            // 検索文字列
00070     m_szText2[0] = L'\0';       // 置換後文字列
00071     m_nReplaceTarget = 0;       // 置換対象     // 2001.12.03 hor
00072     m_nPaste = FALSE;           // 貼り付ける？   // 2001.12.03 hor
00073     m_nReplaceCnt = 0;          //すべて置換の実行結果        // 2002.02.08 hor
00074     m_bCanceled = false;        //すべて置換を中断したか // 2002.02.08 hor
00075     return;
00076 }
00077
00078 /* モードレスダイアログの表示 */
00079 HWND CDlgReplace::DoModeless( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam, BOOL bSelected )
00080 {
00081     m_sSearchOption = m_pShareData->m_Common.m_sSearch.m_sSearchOption;     // 検索オプション
00082     m_bConsecutiveAll = m_pShareData->m_Common.m_sSearch.m_bConsecutiveAll; // 「すべて置換」は置換の繰返し   // 2007.01.16 ryoji
00083     m_bSelectedArea = m_pShareData->m_Common.m_sSearch.m_bSelectedArea;     // 選択範囲内置換
00084     m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND; // 検索／置換  見つからないときメッセージを表示
00085     m_bSelected = bSelected;
00086     m_ptEscCaretPos_PHY = ((CEditView*)lParam)->GetCaret().GetCaretLogicPos();  // 検索/置換開始時のカーソル位置退避
00087     ((CEditView*)lParam)->m_bSearch = TRUE;                         // 検索/置換開始位置の登録有無         02/07/28 ai
00088     return CDialog::DoModeless( hInstance, hwndParent, IDD_REPLACE, lParam, SW_SHOW );
00089 }
00090
00091 /* モードレス時：置換・検索対象となるビューの変更 */
00092 void CDlgReplace::ChangeView( LPARAM pcEditView )
00093 {
00094     m_lParam = pcEditView;
00095     return;
00096 }
00097
00098
00099
00100
00101 /* ダイアログデータの設定 */
00102 void CDlgReplace::SetData( void )
00103 {
00104     int     i;
00105     HWND    hwndCombo;
00106 //  GetHwnd() = hwndDlg;    /* このダイアログのハンドル */
00107
00108     /* 検索文字列 */
00109 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_TEXT, m_szText );
00110     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT );
00111     for( i = 0; i < m_pShareData->m_aSearchKeys.size(); ++i ){
00112         Combo_AddString( hwndCombo, m_pShareData->m_aSearchKeys[i] );
00113     }
00114
00115     /* 置換後文字列 */
00116 	::DlgItem_SetText( GetHwnd(), IDC_COMBO_TEXT2, m_szText2 );
00117     hwndCombo = ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT2 );
00118     for( i = 0; i < m_pShareData->m_aReplaceKeys.size(); ++i ){
00119         Combo_AddString( hwndCombo, m_pShareData->m_aReplaceKeys[i] );
00120     }
00121
00122     /* 英大文字と英小文字を区別する */
00123     ::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, m_sSearchOption.bLoHiCase );
00124
00125     // 2001/06/23 N.Nakatani
00126     /* 単語単位で探す */
00127     ::CheckDlgButton( GetHwnd(), IDC_CHK_WORD, m_sSearchOption.bWordOnly );
00128
00129     /* 「すべて置換」は置換の繰返し */    // 2007.01.16 ryoji
00130     ::CheckDlgButton( GetHwnd(), IDC_CHECK_CONSECUTIVEALL, m_bConsecutiveAll );
00131
00132     // From Here Jun. 29, 2001 genta
00133     // 正規表現ライブラリの差し替えに伴う処理の見直し
00134     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00135     // 無関係にCheckRegexpVersionを通過するようにした。
00136     if( CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, false )
00137         && m_sSearchOption.bRegularExp){
00138         /* 英大文字と英小文字を区別する */
00139         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 1 );
00140
00141         // 2001/06/23 N.Nakatani
00142         /* 単語単位で探す */
00143         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00144     }
00145     else {
00146         ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00147
00148         /*「すべて置換」は置換の繰返し */
00149         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_CONSECUTIVEALL ), FALSE );   // 2007.01.16 ryoji
00150     }
00151     // To Here Jun. 29, 2001 genta
00152
00153     /* 検索／置換  見つからないときメッセージを表示 */
00154     ::CheckDlgButton( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND, m_bNOTIFYNOTFOUND );
00155
00156
00157     /* 置換 ダイアログを自動的に閉じる */
00158     ::CheckDlgButton( GetHwnd(), IDC_CHECK_bAutoCloseDlgReplace, m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgReplace );
00159
00160     /* 先頭（末尾）から再検索 2002.01.26 hor */
00161     ::CheckDlgButton( GetHwnd(), IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_sSearch.m_bSearchAll );
00162
00163     // From Here 2001.12.03 hor
00164     // クリップボードから貼り付ける？
00165     ::CheckDlgButton( GetHwnd(), IDC_CHK_PASTE, m_nPaste );
00166     // 置換対象
00167     if(m_nReplaceTarget==0){
00168         ::CheckDlgButton( GetHwnd(), IDC_RADIO_REPLACE, TRUE );
00169     }else
00170     if(m_nReplaceTarget==1){
00171         ::CheckDlgButton( GetHwnd(), IDC_RADIO_INSERT, TRUE );
00172     }else
00173     if(m_nReplaceTarget==2){
00174         ::CheckDlgButton( GetHwnd(), IDC_RADIO_ADD, TRUE );
00175     }
00176     // To Here 2001.12.03 hor
00177
00178     return;
00179 }
00180
00181
00182
00183
00184 /* ダイアログデータの取得 */
00185 /* 0==条件未入力  0より大きい==正常   0より小さい==入力エラー */
00186 int CDlgReplace::GetData( void )
00187 {
00188     /* 英大文字と英小文字を区別する */
00189     m_sSearchOption.bLoHiCase = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_LOHICASE ));
00190
00191     // 2001/06/23 N.Nakatani
00192     /* 単語単位で探す */
00193     m_sSearchOption.bWordOnly = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_WORD ));
00194
00195     /* 「すべて置換」は置換の繰返し */    // 2007.01.16 ryoji
00196     m_bConsecutiveAll = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_CONSECUTIVEALL );
00197
00198     /* 正規表現 */
00199     m_sSearchOption.bRegularExp = (0!=IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ));
00200     /* 選択範囲内置換 */
00201     m_bSelectedArea = ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_SELECTEDAREA );
00202     /* 検索／置換  見つからないときメッセージを表示 */
00203     m_bNOTIFYNOTFOUND = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_NOTIFYNOTFOUND );
00204
00205     m_pShareData->m_Common.m_sSearch.m_sSearchOption = m_sSearchOption;     // 検索オプション
00206     m_pShareData->m_Common.m_sSearch.m_bConsecutiveAll = m_bConsecutiveAll; // 1==「すべて置換」は置換の繰返し    // 2007.01.16 ryoji
00207     m_pShareData->m_Common.m_sSearch.m_bSelectedArea = m_bSelectedArea;     // 選択範囲内置換
00208     m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND = m_bNOTIFYNOTFOUND; // 検索／置換  見つからないときメッセージを表示
00209
00210     /* 検索文字列 */
00211 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_TEXT, m_szText, _countof(m_szText));
00212     /* 置換後文字列 */
00213 	::DlgItem_GetText( GetHwnd(), IDC_COMBO_TEXT2, m_szText2, _countof(m_szText2));
00214
00215     /* 置換 ダイアログを自動的に閉じる */
00216     m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgReplace = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_bAutoCloseDlgReplace );
00217
00218     /* 先頭（末尾）から再検索 2002.01.26 hor */
00219     m_pShareData->m_Common.m_sSearch.m_bSearchAll = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_SEARCHALL );
00220
00221     if( 0 < wcslen( m_szText ) ){
00222         /* 正規表現？ */
00223         // From Here Jun. 26, 2001 genta
00224         //  正規表現ライブラリの差し替えに伴う処理の見直し
00225         int nFlag = 0x00;
00226         nFlag |= m_sSearchOption.bLoHiCase ? 0x01 : 0x00;
00227         if( m_sSearchOption.bRegularExp && !CheckRegexpSyntax( m_szText, GetHwnd(), true, nFlag ) ){
00228             return -1;
00229         }
00230         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00231
00232         /* 検索文字列 */
00233         //@@@ 2002.2.2 YAZAKI CShareData.AddToSearchKeyArr()追加に伴う変更
00234         CShareData::getInstance()->AddToSearchKeyArr( m_szText );
00235
00236         /* 置換後文字列 */
00237         //@@@ 2002.2.2 YAZAKI CShareData.AddToReplaceKeyArr()追加に伴う変更
00238         CShareData::getInstance()->AddToReplaceKeyArr( m_szText2 );
00239
00240         // From Here 2001.12.03 hor
00241         // クリップボードから貼り付ける？
00242         m_nPaste=IsDlgButtonChecked( GetHwnd(), IDC_CHK_PASTE );
00243         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT2 ), !m_nPaste );
00244         // 置換対象
00245         m_nReplaceTarget=0;
00246         if(::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_INSERT )){
00247             m_nReplaceTarget=1;
00248         }else
00249         if(::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_ADD )){
00250             m_nReplaceTarget=2;
00251         }
00252         // To Here 2001.12.03 hor
00253
00254         return 1;
00255     }else{
00256         return 0;
00257     }
00258 }
00259
00260
00261
00262
00263 BOOL CDlgReplace::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00264 {
00265     _SetHwnd( hwndDlg );
00266     //  Jun. 26, 2001 genta
00267     //  この位置で正規表現の初期化をする必要はない
00268     //  他との一貫性を保つため削除
00269
00270     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00271     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00272     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT2 ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00273
00274     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00275 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00276 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT2 ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00277
00278
00279     /* テキスト選択中か */
00280     if( m_bSelected ){
00281         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SEARCHPREV ), FALSE );    // 2001.12.03 hor コメント解除
00282         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SEARCHNEXT ), FALSE );    // 2001.12.03 hor コメント解除
00283         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_REPALCE ), FALSE );       // 2001.12.03 hor コメント解除
00284         ::CheckDlgButton( GetHwnd(), IDC_RADIO_SELECTEDAREA, TRUE );
00285 //      ::CheckDlgButton( GetHwnd(), IDC_RADIO_ALLAREA, FALSE );                        // 2001.12.03 hor コメント
00286     }else{
00287 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_SELECTEDAREA ), FALSE );   // 2001.12.03 hor コメント
00288 //      ::CheckDlgButton( GetHwnd(), IDC_RADIO_SELECTEDAREA, FALSE );                   // 2001.12.03 hor コメント
00289         ::CheckDlgButton( GetHwnd(), IDC_RADIO_ALLAREA, TRUE );
00290     }
00291     /* 基底クラスメンバ */
00292     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00293
00294 }
00295
00296
00297
00298
00299 BOOL CDlgReplace::OnBnClicked( int wID )
00300 {
00301     CEditView*  pcEditView = (CEditView*)m_lParam;
00302
00303     switch( wID ){
00304     case IDC_CHK_PASTE:
00305         /* テキストの貼り付け */
00306         if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_PASTE ) &&
00307             !pcEditView->m_pcEditDoc->IsEnablePaste() ){
00308 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,"クリップボードに有効なデータがありません！");
00309             ::CheckDlgButton( GetHwnd(), IDC_CHK_PASTE, FALSE );
00310         }
00311         ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT2 ), !(::IsDlgButtonChecked( GetHwnd(), IDC_CHK_PASTE)) );
00312         return TRUE;
00313     case IDC_RADIO_SELECTEDAREA:
00314         /* 範囲範囲 */
00315         if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_ALLAREA ) ){
00316             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHPREV ), TRUE );
00317             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHNEXT ), TRUE );
00318             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_REPALCE ), TRUE );
00319         }else{
00320             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHPREV ), FALSE );
00321             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHNEXT ), FALSE );
00322             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_REPALCE ), FALSE );
00323         }
00324         return TRUE;
00325     case IDC_RADIO_ALLAREA:
00326         /* ファイル全体 */
00327         if( ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_ALLAREA ) ){
00328             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHPREV ), TRUE );
00329             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHNEXT ), TRUE );
00330             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_REPALCE ), TRUE );
00331         }else{
00332             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHPREV ), FALSE );
00333             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_SEARCHNEXT ), FALSE );
00334             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_BUTTON_REPALCE ), FALSE );
00335         }
00336         return TRUE;
00337 // To Here 2001.12.03 hor
00338     case IDC_BUTTON_HELP:
00339         /* 「置換」のヘルプ */
00340         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00341         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_REPLACE_DIALOG) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00342         return TRUE;
00343 //  case IDC_CHK_LOHICASE:  /* 大文字と小文字を区別する */
00344 //      MYTRACE_A( "IDC_CHK_LOHICASE\n" );
00345 //      return TRUE;
00346 //  case IDC_CHK_WORDONLY:  /* 一致する単語のみ検索 */
00347 //      MYTRACE_A( "IDC_CHK_WORDONLY\n" );
00348 //      break;
00349     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00350 //      MYTRACE_A( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) );
00351         if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHK_REGULAREXP ) ){
00352             // From Here Jun. 26, 2001 genta
00353             //  正規表現ライブラリの差し替えに伴う処理の見直し
00354             if( !CheckRegexpVersion( GetHwnd(), IDC_STATIC_JRE32VER, true ) ){
00355                 ::CheckDlgButton( GetHwnd(), IDC_CHK_REGULAREXP, 0 );
00356             }else{
00357             // To Here Jun. 26, 2001 genta
00358
00359                 /* 英大文字と英小文字を区別する */
00360                 //  Jan. 31, 2002 genta
00361                 //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00362                 //::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 1 );
00363                 //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), FALSE );
00364
00365                 // 2001/06/23 N.Nakatani
00366                 /* 単語単位で探す */
00367                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), FALSE );
00368
00369                 /*「すべて置換」は置換の繰返し */
00370                 ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_CONSECUTIVEALL ), TRUE );    // 2007.01.16 ryoji
00371             }
00372         }else{
00373             /* 英大文字と英小文字を区別する */
00374             //::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_LOHICASE ), TRUE );
00375             //  Jan. 31, 2002 genta
00376             //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00377             //::CheckDlgButton( GetHwnd(), IDC_CHK_LOHICASE, 0 );
00378
00379             // 2001/06/23 N.Nakatani
00380             /* 単語単位で探す */
00381             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHK_WORD ), TRUE );
00382
00383             /*「すべて置換」は置換の繰返し */
00384             ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_CONSECUTIVEALL ), FALSE );   // 2007.01.16 ryoji
00385         }
00386         return TRUE;
00387 //  case IDOK:          /* 下検索 */
00388 //      /* ダイアログデータの取得 */
00389 //      nRet = GetData();
00390 //      if( 0 < nRet ){
00391 //          ::EndDialog( hwndDlg, 2 );
00392 //      }else
00393 //      if( 0 == nRet ){
00394 //          ::EndDialog( hwndDlg, 0 );
00395 //      }
00396 //      return TRUE;
00397
00398
00399     case IDC_BUTTON_SEARCHPREV: /* 上検索 */
00400         if( 0 < GetData() ){
00401
00402             // 検索開始位置を登録 02/07/28 ai start
00403             if( TRUE == pcEditView->m_bSearch ){
00404                 pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00405                 /*
00406                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00407                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00408                 */
00409                 pcEditView->m_bSearch = FALSE;
00410             }// 02/07/28 ai end
00411
00412             /* コマンドコードによる処理振り分け */
00413             /* 前を検索 */
00414             pcEditView->GetCommander().HandleCommand( F_SEARCH_PREV, TRUE, (LPARAM)GetHwnd(), 0, 0, 0 );
00415             /* 再描画 */
00416             pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00417         }else{
00418 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00419                 "文字列を指定してください。"
00420             );
00421         }
00422         return TRUE;
00423     case IDC_BUTTON_SEARCHNEXT: /* 下検索 */
00424         if( 0 < GetData() ){
00425
00426             // 検索開始位置を登録 02/07/28 ai start
00427             if( TRUE == pcEditView->m_bSearch ){
00428                 pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00429                 /*
00430                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00431                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00432                 */
00433                 pcEditView->m_bSearch = FALSE;
00434             }// 02/07/28 ai end
00435
00436             /* コマンドコードによる処理振り分け */
00437             /* 次を検索 */
00438             pcEditView->GetCommander().HandleCommand( F_SEARCH_NEXT, TRUE, (LPARAM)GetHwnd(), 0, 0, 0 );
00439             /* 再描画 */
00440             pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00441
00442             // 2001.12.03 hor
00443             //  ダイアログを閉じないとき、IDC_COMBO_TEXT 上で Enter した場合に
00444             //  キャレットが表示されなくなるのを回避する
00445 			::SendMessageAny(GetHwnd(),WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(GetHwnd(),IDC_COMBO_TEXT ),TRUE);
00446             // To Here 2001.12.03 hor
00447
00448         }else{
00449 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00450                 "文字列を指定してください。"
00451             );
00452         }
00453         return TRUE;
00454
00455     case IDC_BUTTON_SETMARK:    //2002.01.16 hor 該当行マーク
00456         if( 0 < GetData() ){
00457             pcEditView->GetCommander().HandleCommand( F_BOOKMARK_PATTERN, FALSE, 0, 0, 0, 0 );
00458 			::SendMessageAny(GetHwnd(),WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(GetHwnd(),IDC_COMBO_TEXT ),TRUE);
00459         }
00460         return TRUE;
00461
00462     case IDC_BUTTON_REPALCE:    /* 置換 */
00463         if( 0 < GetData() ){
00464
00465             // 置換開始位置を登録 02/07/28 ai start
00466             if( TRUE == pcEditView->m_bSearch ){
00467                 pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00468                 /*
00469                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00470                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00471                 */
00472                 pcEditView->m_bSearch = FALSE;
00473             }// 02/07/28 ai end
00474
00475             /* 置換 */
00476             //@@@ 2002.2.2 YAZAKI 置換コマンドをCEditViewに新設
00477             //@@@ 2002/04/08 YAZAKI 親ウィンドウのハンドルを渡すように変更。
00478             pcEditView->GetCommander().HandleCommand( F_REPLACE, TRUE, (LPARAM)GetHwnd(), 0, 0, 0 );
00479             /* 再描画 */
00480             pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00481         }else{
00482 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00483                 "文字列を指定してください。"
00484             );
00485         }
00486         return TRUE;
00487     case IDC_BUTTON_REPALCEALL: /* すべて置換 */
00488         if( 0 < GetData() ){
00489             // 置換開始位置を登録 02/07/28 ai start
00490             if( TRUE == pcEditView->m_bSearch ){
00491                 pcEditView->m_ptSrchStartPos_PHY = m_ptEscCaretPos_PHY;
00492                 /*
00493                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00494                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00495                 */
00496                 pcEditView->m_bSearch = FALSE;
00497             }// 02/07/28 ai end
00498
00499             /* すべて行置換時の処置は「すべて置換」は置換の繰返しオプションOFFの場合にして削除 2007.01.16 ryoji */
00500             pcEditView->GetCommander().HandleCommand( F_REPLACE_ALL, TRUE, 0, 0, 0, 0 );
00501             pcEditView->GetCommander().HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00502
00503             /* アクティブにする */
00504             ActivateFrameWindow( GetHwnd() );
00505
00506 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_TOPMOST, GSTR_APPNAME_A,
00507                 "%d箇所を置換しました。", m_nReplaceCnt);
00508
00509             if( !m_bCanceled ){
00510                 if( m_bModal ){     /* モーダルダイアログか */
00511                     /* 置換ダイアログを閉じる */
00512                     ::EndDialog( GetHwnd(), 0 );
00513                 }else{
00514                     /* 置換 ダイアログを自動的に閉じる */
00515                     if( m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgReplace ){
00516                         ::DestroyWindow( GetHwnd() );
00517                     }
00518                 }
00519             }
00520             return TRUE;
00521         }else{
00522 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK , GSTR_APPNAME_A,
00523                 "置換条件を指定してください。"
00524             );
00525         }
00526         return TRUE;
00527 //  case IDCANCEL:
00528 //      ::EndDialog( hwndDlg, 0 );
00529 //      return TRUE;
00530     }
00531
00532     /* 基底クラスメンバ */
00533     return CDialog::OnBnClicked( wID );
00534 }
00535
00536 //@@@ 2002.01.18 add start
00537 LPVOID CDlgReplace::GetHelpIdTable(void)
00538 {
00539     return (LPVOID)p_helpids;
00540 }
00541 //@@@ 2002.01.18 add end
00542
00543 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgReplace.h

sakura_core

CDlgReplace.h

置換ダイアログ [詳細]

#include "CDialog.h"

CDlgReplace.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgReplace
置換ダイアログボックス [詳細]

説明

置換ダイアログ

作者:
Norio Nakatani
日付:
1998/10/02 新規作成

CDlgReplace.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgReplace.h ソースファイル

sakura_core

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     SSearchOption   m_sSearchOption;    // 検索オプション
00043     /*
00044     int             m_bLoHiCase;    // 英大文字と英小文字を区別する
00045     int             m_bWordOnly;    // 一致する単語のみ検索する
00046     int             m_bRegularExp;  // 正規表現
00047     */
00048     int             m_bConsecutiveAll;  /* 「すべて置換」は置換の繰返し */    // 2007.01.16 ryoji
00049     wchar_t         m_szText[_MAX_PATH + 1];    /* 検索文字列 */
00050     wchar_t         m_szText2[_MAX_PATH + 1];   /* 置換後文字列 */
00051     BOOL            m_bSelectedArea;    /* 選択範囲内置換 */
00052     int             m_bNOTIFYNOTFOUND;              /* 検索／置換  見つからないときメッセージを表示 */
00053     int             m_nSettingType;
00054     BOOL            m_bSelected;    /* テキスト選択中か */
00055     int             m_nReplaceTarget;   /* 置換対象 */  // 2001.12.03 hor
00056     int             m_nPaste;           /* 貼り付け？ */   // 2001.12.03 hor
00057     int             m_nReplaceCnt;      //すべて置換の実行結果        // 2002.02.08 hor
00058     bool            m_bCanceled;        //すべて置換で中断したか // 2002.02.08 hor
00059
00060     CLogicPoint     m_ptEscCaretPos_PHY;    // 検索/置換開始時のカーソル位置退避エリア
00061
00062 protected:
00063     /*
00064     ||  実装ヘルパ関数
00065     */
00066     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00067     BOOL OnBnClicked( int );
00068     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00069
00070     void SetData( void );   /* ダイアログデータの設定 */
00071     int GetData( void );    /* ダイアログデータの取得 */
00072 };
00073
00074
00075
00077 #endif /* _CDLGREPLACE_H_ */
00078
00079
00080 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgSameColor.cpp

sakura_core

CDlgSameColor.cpp

文字色／背景色統一ダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "sakura.hh"
#include "CDlgSameColor.h"
#include "util/shell.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 の 37 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgSameColor.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00036
00037 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00038     IDOK,                       HIDOK_SAMECOLOR,                        // OK
00039     IDCANCEL,                   HIDCANCEL_SAMECOLOR,                    // キャンセル
00040     IDC_BUTTON_HELP,            HIDC_BUTTON_SAMECOLOR_HELP,             // ヘルプ
00041     IDC_LIST_COLORS,            HIDC_LIST_SAMECOLOR_COLORS,             // 変更対象の色
00042     IDC_BUTTON_SELALL,          HIDC_BUTTON_SAMECOLOR_SELALL,           // 全チェック
00043     IDC_BUTTON_SELNOTING,       HIDC_BUTTON_SAMECOLOR_SELNOTING,        // 全解除
00044     IDC_LIST_ITEMINFO,          HIDC_LIST_SAMECOLOR_ITEMINFO,           // 選択中の色に対応する項目のリスト
00045     IDC_STATIC_COLOR,           HIDC_STATIC_COLOR,                      // 統一色
00046     0, 0
00047 };
00048
00049 LPVOID CDlgSameColor::GetHelpIdTable( void )
00050 {
00051     return (LPVOID)p_helpids;
00052 }
00053
00054 CDlgSameColor::CDlgSameColor() :
00055     m_wpColorStaticProc(NULL),
00056     m_wpColorListProc(NULL),
00057     m_wID(0),
00058     m_pTypes(NULL),
00059     m_cr(0)
00060 {
00061     return;
00062 }
00063
00064 CDlgSameColor::~CDlgSameColor()
00065 {
00066     return;
00067 }
00068
00072 INT_PTR CDlgSameColor::DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
00073 {
00074     INT_PTR result;
00075     result = CDialog::DispatchEvent( hWnd, wMsg, wParam, lParam );
00076     switch( wMsg ){
00077     case WM_COMMAND:
00078         // 色選択リストボックスの選択が変更された場合の処理
00079         if( IDC_LIST_COLORS == LOWORD(wParam) && LBN_SELCHANGE == HIWORD(wParam) ){
00080             OnSelChangeListColors( (HWND)lParam );
00081         }
00082         break;
00083
00084     case WM_CTLCOLORLISTBOX:
00085         {
00086             // 項目リストの背景色を設定する処理
00087             HWND hwndLB = (HWND)lParam;
00088             if( IDC_LIST_ITEMINFO == ::GetDlgCtrlID( hwndLB ) ){
00089                 HDC hdcLB = (HDC)wParam;
00090                 ::SetTextColor( hdcLB, ::GetSysColor( COLOR_WINDOWTEXT ) );
00091                 ::SetBkMode( hdcLB, TRANSPARENT );
00092                 return (INT_PTR)::GetSysColorBrush( COLOR_BTNFACE );
00093             }
00094         }
00095         break;
00096
00097     default:
00098         break;
00099     }
00100     return result;
00101 }
00102
00110 int CDlgSameColor::DoModal( HINSTANCE hInstance, HWND hwndParent, WORD wID, Types* pTypes, COLORREF cr )
00111 {
00112     m_wID = wID;
00113     m_pTypes = pTypes;
00114     m_cr = cr;
00115
00116     (void)CDialog::DoModal( hInstance, hwndParent, IDD_SAMECOLOR, NULL );
00117
00118     return TRUE;
00119 }
00120
00124 BOOL CDlgSameColor::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00125 {
00126     BOOL bRet = CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00127
00128     HWND hwndStatic = ::GetDlgItem( GetHwnd(), IDC_STATIC_COLOR );
00129     HWND hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_COLORS );
00130
00131     // 指定色スタティック、色選択リストをサブクラス化
00132 	::SetWindowLongPtr( hwndStatic, GWLP_USERDATA, (LONG_PTR)this );
00133     m_wpColorStaticProc = (WNDPROC)::SetWindowLongPtr( hwndStatic, GWLP_WNDPROC, (LONG_PTR)ColorStatic_SubclassProc );
00134 	::SetWindowLongPtr( hwndList, GWLP_USERDATA, (LONG_PTR)this );
00135     m_wpColorListProc = (WNDPROC)::SetWindowLongPtr( hwndList, GWLP_WNDPROC, (LONG_PTR)ColorList_SubclassProc );
00136
00137
00138     WCHAR szText[30];
00139     int nItem;
00140     int i;
00141
00142     switch( m_wID ) // タイプ別設定ダイアログで押されたボタンID
00143     {
00144     case IDC_BUTTON_SAMETEXTCOLOR:
00145         // タイプ別設定から文字色を重複しないように取り出す
00146         ::SetWindowText( GetHwnd(), _T("文字色統一") );
00147         for( i = 0; i < COLORIDX_LAST; ++i ){
00148             if( m_cr != m_pTypes->m_ColorInfoArr[i].m_colTEXT ){
00149                 _ultow( m_pTypes->m_ColorInfoArr[i].m_colTEXT, szText, 10 );
00150                 if( LB_ERR == ::SendMessage( hwndList, LB_FINDSTRING, (WPARAM)-1, (LPARAM)szText ) ){
00151                     nItem = ::List_AddString( hwndList, szText );
00152 					::SendMessageAny( hwndList, LB_SETITEMDATA, (WPARAM)nItem, (LPARAM)FALSE );
00153                 }
00154             }
00155         }
00156         break;
00157
00158     case IDC_BUTTON_SAMEBKCOLOR:
00159         // タイプ別設定から背景色を重複しないように取り出す
00160         ::SetWindowText( GetHwnd(), _T("背景色統一") );
00161         for( i = 0; i < COLORIDX_LAST; ++i ){
00162             if( 0 != (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )   // 2006.12.18 ryoji フラグ利用で簡素化
00163                 continue;
00164             if( m_cr != m_pTypes->m_ColorInfoArr[i].m_colBACK ){
00165                 _ultow( m_pTypes->m_ColorInfoArr[i].m_colBACK, szText, 10 );
00166                 if( LB_ERR == ::SendMessage( hwndList, LB_FINDSTRING, (WPARAM)-1, (LPARAM)szText ) ){
00167                     nItem = ::List_AddString( hwndList, szText );
00168 					::SendMessageAny( hwndList, LB_SETITEMDATA, (WPARAM)nItem, (LPARAM)FALSE );
00169                 }
00170             }
00171         }
00172         break;
00173
00174     default:
00175         CloseDialog( IDCANCEL );
00176         break;
00177     }
00178
00179     if( 0 < ::SendMessageAny( hwndList, LB_GETCOUNT, (WPARAM)0, (LPARAM)0 ) ){
00180 		::SendMessageAny( hwndList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00181         OnSelChangeListColors( hwndList );
00182     }
00183
00184     return bRet;
00185 }
00186
00190 BOOL CDlgSameColor::OnBnClicked( int wID )
00191 {
00192     HWND hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_COLORS );
00193     int nItemNum = ::SendMessageAny( hwndList, LB_GETCOUNT, 0, 0 );
00194     BOOL bCheck;
00195     int i;
00196     int j;
00197
00198     switch( wID ){
00199     case IDC_BUTTON_HELP:
00200         // ヘルプ    // 2006.10.07 ryoji
00201         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, HLP000316 );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00202         return TRUE;
00203
00204     case IDC_BUTTON_SELALL:
00205     case IDC_BUTTON_SELNOTING:
00206         // 全選択／全解除の処理
00207         bCheck = (wID == IDC_BUTTON_SELALL);
00208         for( i = 0; i < nItemNum; ++i ){
00209 			::SendMessageAny( hwndList, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00210         }
00211         ::InvalidateRect( hwndList, NULL, TRUE );
00212         break;
00213
00214     case IDOK:
00215         // タイプ別設定から選択色と同色のものを取り出して指定色に一括変更する
00216         WCHAR szText[30];
00217         LPWSTR pszStop;
00218         COLORREF cr;
00219
00220         for( i = 0; i < nItemNum; ++i ){
00221             bCheck = (BOOL)::SendMessageAny( hwndList, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00222             if( bCheck ){
00223                 List_GetText( hwndList, i, szText );
00224                 cr = wcstoul( szText, &pszStop, 10 );
00225
00226                 switch( m_wID )
00227                 {
00228                 case IDC_BUTTON_SAMETEXTCOLOR:
00229                     for( j = 0; j < COLORIDX_LAST; ++j ){
00230                         if( cr == m_pTypes->m_ColorInfoArr[j].m_colTEXT ){
00231                             m_pTypes->m_ColorInfoArr[j].m_colTEXT = m_cr;
00232                         }
00233                     }
00234                     break;
00235
00236                 case IDC_BUTTON_SAMEBKCOLOR:
00237                     for( j = 0; j < COLORIDX_LAST; ++j ){
00238                         if( cr == m_pTypes->m_ColorInfoArr[j].m_colBACK ){
00239                             m_pTypes->m_ColorInfoArr[j].m_colBACK = m_cr;
00240                         }
00241                     }
00242                     break;
00243
00244                 default:
00245                     break;
00246                 }
00247             }
00248         }
00249         break;
00250
00251     case IDCANCEL:
00252         break;
00253     }
00254     return CDialog::OnBnClicked( wID );
00255 }
00256
00260 BOOL CDlgSameColor::OnDrawItem( WPARAM wParam, LPARAM lParam )
00261 {
00262     LPDRAWITEMSTRUCT pDis = (LPDRAWITEMSTRUCT)lParam;   // 項目描画情報
00263     if( IDC_LIST_COLORS != pDis->CtlID )    // オーナー描画にしているのは色選択リストだけ
00264         return TRUE;
00265
00266     //
00267     // 色選択リストの描画処理
00268     //
00269     HBRUSH      hBrush;
00270     HBRUSH      hBrushOld;
00271     HPEN        hPen;
00272     HPEN        hPenOld;
00273     RECT        rc;
00274     WCHAR       szText[30];
00275     LPWSTR      pszStop;
00276     COLORREF    cr;
00277
00278     List_GetText( pDis->hwndItem, pDis->itemID, szText );
00279     cr = wcstoul( szText, &pszStop, 10 );
00280
00281     rc = pDis->rcItem;
00282
00283     // アイテム矩形塗りつぶし
00284     ::FillRect( pDis->hDC, &pDis->rcItem, ::GetSysColorBrush( COLOR_WINDOW ) );
00285
00286     // アイテムが選択状態
00287     if( pDis->itemState & ODS_SELECTED ){
00288         rc = pDis->rcItem;
00289         rc.left += (rc.bottom - rc.top);
00290         ::FillRect( pDis->hDC, &rc, ::GetSysColorBrush( COLOR_HIGHLIGHT ) );
00291     }
00292
00293     // アイテムにフォーカスがある
00294     if( pDis->itemState & ODS_FOCUS ){
00295         ::DrawFocusRect( pDis->hDC, &pDis->rcItem );
00296     }
00297
00298     // チェックボックス表示
00299     rc = pDis->rcItem;
00300     rc.top += 2;
00301     rc.bottom -= 2;
00302     rc.left += 2;
00303     rc.right = rc.left + (rc.bottom - rc.top);
00304     UINT uState =  DFCS_BUTTONCHECK | DFCS_FLAT;
00305     if( TRUE == (BOOL)pDis->itemData )
00306         uState |= DFCS_CHECKED;     // チェック状態
00307     ::DrawFrameControl( pDis->hDC, &rc, DFC_BUTTON, uState );
00308
00309     // 色見本矩形
00310     rc = pDis->rcItem;
00311     rc.left += rc.bottom - rc.top + 2;
00312     rc.top += 2;
00313     rc.bottom -= 2;
00314     rc.right -= 2;
00315     hBrush = ::CreateSolidBrush( cr );
00316     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00317     hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_3DSHADOW ) );
00318     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00319     ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00320     ::SelectObject( pDis->hDC, hPenOld );
00321     ::SelectObject( pDis->hDC, hBrushOld );
00322     ::DeleteObject( hPen );
00323     ::DeleteObject( hBrush );
00324
00325     return TRUE;
00326 }
00327
00331 BOOL CDlgSameColor::OnSelChangeListColors( HWND hwndCtl )
00332 {
00333     // 色選択リストで現在フォーカスのある色について
00334     // タイプ別設定から同色の項目を取り出して項目リストに表示する
00335     HWND hwndListInfo;
00336     COLORREF cr;
00337     WCHAR szText[30];
00338     LPWSTR pszStop;
00339     int i;
00340     int j;
00341
00342     hwndListInfo = ::GetDlgItem( GetHwnd(), IDC_LIST_ITEMINFO );
00343 	::SendMessageAny( hwndListInfo, LB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );
00344
00345     i = ::SendMessageAny( hwndCtl, LB_GETCARETINDEX, (WPARAM)0, (LPARAM)0 );
00346     if( LB_ERR != i ){
00347         List_GetText( hwndCtl, i, szText );
00348         cr = wcstoul( szText, &pszStop, 10 );
00349
00350         switch( m_wID )
00351         {
00352         case IDC_BUTTON_SAMETEXTCOLOR:
00353             for( j = 0; j < COLORIDX_LAST; ++j ){
00354                 if( cr == m_pTypes->m_ColorInfoArr[j].m_colTEXT ){
00355 					::List_AddString( hwndListInfo, m_pTypes->m_ColorInfoArr[j].m_szName);
00356                 }
00357             }
00358             break;
00359
00360         case IDC_BUTTON_SAMEBKCOLOR:
00361             for( j = 0; j < COLORIDX_LAST; ++j ){
00362             if( 0 != (g_ColorAttributeArr[j].fAttribute & COLOR_ATTRIB_NO_BACK) )   // 2006.12.18 ryoji フラグ利用で簡素化
00363                     continue;
00364                 if( cr == m_pTypes->m_ColorInfoArr[j].m_colBACK ){
00365 					::List_AddString( hwndListInfo, m_pTypes->m_ColorInfoArr[j].m_szName);
00366                 }
00367             }
00368             break;
00369
00370         default:
00371             break;
00372         }
00373     }
00374
00375     return TRUE;
00376 }
00377
00381 LRESULT CALLBACK CDlgSameColor::ColorStatic_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00382 {
00383     HDC         hDC;
00384     HBRUSH      hBrush;
00385     HBRUSH      hBrushOld;
00386     HPEN        hPen;
00387     HPEN        hPenOld;
00388     RECT        rc;
00389
00390     CDlgSameColor* pCDlgSameColor;
00391     pCDlgSameColor = (CDlgSameColor*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00392
00393     switch( uMsg ){
00394     case WM_PAINT:
00395         // ウィンドウ描画
00396         PAINTSTRUCT ps;
00397
00398         hDC = ::BeginPaint( hwnd, &ps );
00399
00400         // 色見本矩形
00401         ::GetClientRect( hwnd, &rc );
00402         rc.left += 2;
00403         rc.top += 2;
00404         rc.right -=2;
00405         rc.bottom -= 2;
00406         hBrush = ::CreateSolidBrush( pCDlgSameColor->m_cr );
00407         hBrushOld = (HBRUSH)::SelectObject( hDC, hBrush );
00408         hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_3DSHADOW ) );
00409         hPenOld = (HPEN)::SelectObject( hDC, hPen );
00410         ::RoundRect( hDC, rc.left, rc.top, rc.right, rc.bottom, 5, 5 );
00411         ::SelectObject( hDC, hPenOld );
00412         ::SelectObject( hDC, hBrushOld );
00413         ::DeleteObject( hPen );
00414         ::DeleteObject( hBrush );
00415
00416         ::EndPaint( hwnd, &ps );
00417         return (LRESULT)0;
00418
00419     case WM_ERASEBKGND:
00420         // 背景描画
00421         hDC = (HDC)wParam;
00422         ::GetClientRect( hwnd, &rc );
00423
00424         // 親にWM_CTLCOLORSTATICを送って背景ブラシを取得し、背景描画する
00425         hBrush = (HBRUSH)::SendMessageAny( GetParent( hwnd ), WM_CTLCOLORSTATIC, wParam, (LPARAM)hwnd );
00426         hBrushOld = (HBRUSH)::SelectObject( hDC, hBrush );
00427         ::FillRect( hDC, &rc, hBrush );
00428         ::SelectObject( hDC, hBrushOld );
00429
00430         return (LRESULT)1;
00431
00432     case WM_DESTROY:
00433         // サブクラス化解除
00434 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)pCDlgSameColor->m_wpColorStaticProc );
00435         pCDlgSameColor->m_wpColorStaticProc = NULL;
00436         return (LRESULT)0;
00437
00438     default:
00439         break;
00440     }
00441
00442     return CallWindowProc( (WNDPROC)pCDlgSameColor->m_wpColorStaticProc, hwnd, uMsg, wParam, lParam );
00443 }
00444
00448 LRESULT CALLBACK CDlgSameColor::ColorList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00449 {
00450     POINT po;
00451     RECT rcItem;
00452     RECT rc;
00453     int nItemNum;
00454     int i;
00455
00456     CDlgSameColor* pCDlgSameColor;
00457     pCDlgSameColor = (CDlgSameColor*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00458
00459     switch( uMsg ){
00460     case WM_LBUTTONUP:
00461         // マウスボタン下にある項目の選択／選択解除をトグルする
00462         po.x = LOWORD(lParam);  // horizontal position of cursor
00463         po.y = HIWORD(lParam);  // vertical position of cursor
00464         nItemNum = ::SendMessageAny( hwnd, LB_GETCOUNT, 0, 0 );
00465         for( i = 0; i < nItemNum; ++i ){
00466 			::SendMessageAny( hwnd, LB_GETITEMRECT, i, (LPARAM)&rcItem );
00467             rc = rcItem;
00468             rc.top += 2;
00469             rc.bottom -= 2;
00470             rc.left += 2;
00471             rc.right = rc.left + (rc.bottom - rc.top);
00472             if( ::PtInRect( &rc, po ) ){
00473                 BOOL bCheck;
00474                 bCheck = !(BOOL)::SendMessageAny( hwnd, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00475 				::SendMessageAny( hwnd, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00476                 ::InvalidateRect( hwnd, &rcItem, TRUE );
00477                 break;
00478             }
00479         }
00480         break;
00481
00482     case WM_KEYUP:
00483         // フォーカス項目の選択／選択解除をトグルする
00484         if( VK_SPACE == wParam ){
00485             BOOL bCheck;
00486             i = ::SendMessageAny( hwnd, LB_GETCARETINDEX, (WPARAM)0, (LPARAM)0 );
00487             if( LB_ERR != i ){
00488                 bCheck = !(BOOL)::SendMessageAny( hwnd, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00489 				::SendMessageAny( hwnd, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00490                 ::InvalidateRect( hwnd, NULL, TRUE );
00491             }
00492         }
00493         break;
00494
00495     case WM_DESTROY:
00496         // サブクラス化解除
00497 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)pCDlgSameColor->m_wpColorListProc );
00498         pCDlgSameColor->m_wpColorListProc = NULL;
00499         return (LRESULT)0;
00500
00501     default:
00502         break;
00503     }
00504
00505     return ::CallWindowProc( (WNDPROC)pCDlgSameColor->m_wpColorListProc, hwnd, uMsg, wParam, lParam );
00506 }
00507
00508 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgSameColor.h

sakura_core

CDlgSameColor.h

文字色／背景色統一ダイアログ [詳細]

#include "CDialog.h"
#include "CShareData.h"

CDlgSameColor.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgSameColor
文字色／背景色統一ダイアログ [詳細]

説明

文字色／背景色統一ダイアログ

作者:
ryoji
日付:
2006/04/26 作成

CDlgSameColor.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgSameColor.h ソースファイル

sakura_core

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 Nov 17 20:24:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagJumpList.cpp

sakura_core

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 "debug.h"
#include "my_icmp.h"
#include "charcode.h"
#include "util/shell.h"
#include "util/file.h"
#include "sakura.hh"

ソースコードを見る。

変数

const DWORD | p_helpids []
static const TCHAR * | p_extentions []

説明

タグジャンプリストダイアログボックス

作者:
MIK
日付:
2003.4.13

2005.03.31 MIK キーワード指定TagJump対応のため大幅に変更

CDlgTagJumpList.cpp で定義されています。

変数

const TCHAR* p_extentions[] [static]

CDlgTagJumpList.cpp の 67 行で定義されています。

参照元 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 の 54 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagJumpList.cpp ソースファイル

sakura_core

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 "debug.h"
00048 #include "my_icmp.h"
00049 #include "charcode.h"  // 2006.06.28 rastiv
00050 #include "util/shell.h"
00051 #include "util/file.h"
00052
00053 #include "sakura.hh"
00054 const DWORD p_helpids[] = {
00055     IDC_LIST_TAGJUMP,       HIDC_LIST_TAGJUMPLIST,          //ファイル
00056     IDOK,                   HIDC_TAGJUMPLIST_IDOK,          //OK
00057     IDCANCEL,               HIDC_TAGJUMPLIST_IDCANCEL,      //キャンセル
00058     IDC_BUTTON_HELP,        HIDC_BUTTON_TAGJUMPLIST_HELP,   //ヘルプ
00059     IDC_KEYWORD,            HDIC_TAGJUMPLIST_KEYWORD,       //キーワード
00060 //  IDC_STATIC,             -1,
00061     0, 0
00062 };
00063
00064 /*
00065     ctags.exe が出力する、拡張子と対応する種類
00066 */
00067 static const TCHAR *p_extentions[] = {
00068     /*asm*/         _T("asm,s"),                                _T("d=define,l=label,m=macro,t=type"),
00069     /*asp*/         _T("asp,asa"),                              _T("f=function,s=sub"),
00070     /*awk*/         _T("awk,gawk,mawk"),                        _T("f=function"),
00071     /*beta*/        _T("bet"),                                  _T("f=fragment,p=pattern,s=slot,v=virtual"),
00072     /*c*/           _T("c,h"),                                  _T("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     /*c++*/         _T("c++,cc,cp,cpp,cxx,h++,hh,hp,hpp,hxx"),  _T("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     /*java*/        _T("java"),                             _T("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     /*vera*/        _T("vr,vri,vrh"),                           _T("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"),
00076     /*cobol*/       _T("cbl,cob"),                              _T("d=data,f=file,g=group,p=paragraph,P=program,s=section"),
00077     /*eiffel*/      _T("e"),                                    _T("c=class,f=feature,l=local"),
00078     /*fortran*/     _T("f,for,ftn,f77,f90,f95"),                _T("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"),
00079     /*lisp*/        _T("cl,clisp,el,l,lisp,lsp,ml"),            _T("f=function"),
00080     /*lua*/         _T("lua"),                                  _T("f=function"),
00081     /*makefile*/    _T("mak"),                                  _T("m=macro"),
00082     /*pascal*/      _T("p,pas"),                                _T("f=function,p=procedure"),
00083     /*perl*/        _T("pl,pm,perl"),                           _T("s=subroutine,p=package"),
00084     /*php*/         _T("php,php3,phtml"),                       _T("c=class,f=function"),
00085     /*python*/      _T("py,python"),                            _T("c=class,f=function,m=member"),
00086     /*rexx*/        _T("cmd,rexx,rx"),                          _T("s=subroutine"),
00087     /*ruby*/        _T("rb"),                                   _T("c=class,f=method,F=singleton method,m=mixin"),
00088     /*scheme*/      _T("sch,scheme,scm,sm"),                    _T("f=function,s=set"),
00089     /*sh*/          _T("sh,bsh,bash,ksh,zsh"),                  _T("f=function"),
00090     /*slang*/       _T("sl"),                                   _T("f=function,n=namespace"),
00091     /*sql*/         _T("sql"),                                  _T("c=cursor,d=prototype,f=function,F=field,l=local,P=package,p=procedure,r=record,s=subtype,t=table,T=trigger,v=variable"),
00092     /*tcl*/         _T("tcl,tk,wish,itcl"),                 _T("p=procedure,c=class,f=method"),
00093     /*verilog*/     _T("v"),                                    _T("f=function,m=module,P=parameter,p=port,r=reg,t=task,v=variable,w=wire"),
00094     /*vim*/         _T("vim"),                                  _T("f=function,v=variable"),
00095     /*yacc*/        _T("y"),                                    _T("l=label"),
00096 //  /*vb*/          _T("bas,cls,ctl,dob,dsr,frm,pag"),          _T("a=attribute,c=class,f=function,l=label,s=procedure,v=variable"),
00097                     NULL,                                   NULL
00098 };
00099
00100
00101
00102 CDlgTagJumpList::CDlgTagJumpList()
00103     : m_cList( 100 ),
00104       m_nIndex( -1 ),
00105       m_nLoop( -1 ),
00106       m_pszFileName( NULL ),
00107       m_pszKeyword( NULL ),
00108       m_bTagJumpICase( FALSE ),
00109       m_bTagJumpAnyWhere( FALSE ),
00110       m_nTimerId( 0 )
00111 {
00112 }
00113
00114 CDlgTagJumpList::~CDlgTagJumpList()
00115 {
00116     Empty();
00117     m_nLoop = 0;
00118
00119     if( m_pszFileName ) free( m_pszFileName );
00120     m_pszFileName = NULL;
00121     if( m_pszKeyword ) free( m_pszKeyword );
00122     m_pszKeyword = NULL;
00123
00124     StopTimer();
00125 }
00126
00133 void CDlgTagJumpList::StopTimer( void )
00134 {
00135     if( m_nTimerId != 0 ){
00136         ::KillTimer( GetHwnd(), m_nTimerId );
00137         m_nTimerId = 0;
00138     }
00139 }
00140
00150 void CDlgTagJumpList::StartTimer( void )
00151 {
00152     StopTimer();
00153     m_nTimerId = ::SetTimer( GetHwnd(), 12345, TAGJUMP_TIMER_DELAY, NULL );
00154 }
00155
00162 void CDlgTagJumpList::Empty( void )
00163 {
00164     m_nIndex = -1;
00165     m_cList.Empty();
00166 }
00167
00168 /*
00169     モーダルダイアログの表示
00170
00171     @param[in] lParam 0=ダイレクトタグジャンプ, 1=キーワードを指定してタグジャンプ
00172 */
00173 int CDlgTagJumpList::DoModal(
00174     HINSTANCE   hInstance,
00175     HWND        hwndParent,
00176     LPARAM      lParam
00177 )
00178 {
00179     int ret = (int)CDialog::DoModal( hInstance, hwndParent, IDD_TAGJUMPLIST, lParam );
00180     StopTimer();
00181     return ret;
00182 }
00183
00184 /* ダイアログデータの設定 */
00185 void CDlgTagJumpList::SetData( void )
00186 {
00187     //  From Here 2005.04.03 MIK 設定値の読み込み
00188     if( 0 != m_lParam )
00189     {
00190         HWND hwndKey;
00191         hwndKey = ::GetDlgItem( GetHwnd(), IDC_KEYWORD );
00192
00193         m_bTagJumpICase = m_pShareData->m_bTagJumpICase;
00194         ::CheckDlgButton( GetHwnd(), IDC_CHECK_ICASE, m_bTagJumpICase ? BST_CHECKED : BST_UNCHECKED );
00195         m_bTagJumpAnyWhere = m_pShareData->m_bTagJumpAnyWhere;
00196         ::CheckDlgButton( GetHwnd(), IDC_CHECK_ANYWHERE, m_bTagJumpAnyWhere ? BST_CHECKED : BST_UNCHECKED );
00197         ::SendMessage( hwndKey, CB_LIMITTEXT, (WPARAM)_MAX_PATH-1, 0 );
00198         CRecentTagjumpKeyword cRecentTagJump;
00199         for( int i = 0; i < cRecentTagJump.GetItemCount(); i++ ){
00200             Combo_AddString( hwndKey, cRecentTagJump.GetItemText(i) );
00201         }
00202         if( m_pszKeyword != NULL ){
00203 			::DlgItem_SetText( GetHwnd(), IDC_KEYWORD, m_pszKeyword );
00204         }
00205         else if( cRecentTagJump.GetItemCount() > 0 ){
00206 			::SendMessageAny( hwndKey, CB_SETCURSEL, 0, 0 );
00207         }
00208         cRecentTagJump.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     int     nIndex;
00226     int     count;
00227
00228     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_TAGJUMP );
00229     ListView_DeleteAllItems( hwndList );
00230
00231     count = m_cList.GetCount();
00232
00233     TCHAR   tmp[32];
00234     for( nIndex = 0; nIndex < count; nIndex++ )
00235     {
00236         CSortedTagJumpList::TagJumpInfo* item;
00237         item = m_cList.GetPtr( nIndex );
00238         if( NULL == item ) break;
00239
00240         lvi.mask     = LVIF_TEXT;
00241         lvi.iItem    = nIndex;
00242         lvi.iSubItem = 0;
00243         lvi.pszText  = item->keyword;
00244         ListView_InsertItem( hwndList, &lvi );
00245
00246         auto_sprintf( tmp, _T("%d"), item->depth );
00247         ListView_SetItemText( hwndList, nIndex, 1, tmp );
00248
00249         auto_sprintf( tmp, _T("%d"), item->no );
00250         ListView_SetItemText( hwndList, nIndex, 2, tmp );
00251
00252         TCHAR   *p;
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  = _T("(通知)");
00271         ListView_InsertItem( hwndList, &lvi );
00272         ListView_SetItemText( hwndList, nIndex, 1, _T("") );
00273         ListView_SetItemText( hwndList, nIndex, 2, _T("") );
00274         ListView_SetItemText( hwndList, nIndex, 3, _T("") );
00275         ListView_SetItemText( hwndList, nIndex, 4, _T("(これ以降は切り捨てました)") );
00276         ListView_SetItemText( hwndList, nIndex, 5, _T("") );
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( GetHwnd(), 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         wchar_t tmp[MAX_TAG_STRING_LENGTH];
00310         wcscpy( tmp, L"" );
00311 		::DlgItem_GetText( GetHwnd(), IDC_KEYWORD, tmp, _countof( tmp ) );
00312         SetKeyword( tmp );
00313
00314         //設定を保存
00315         CRecentTagjumpKeyword cRecentTagJumpKeyword;
00316         cRecentTagJumpKeyword.AppendItem( m_pszKeyword );
00317         cRecentTagJumpKeyword.Terminate();
00318     }
00319     //  To Here 2005.04.03 MIK
00320
00321     return TRUE;
00322 }
00323
00328 BOOL CDlgTagJumpList::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00329 {
00330     HWND        hwndList;
00331     LV_COLUMN   col;
00332     RECT        rc;
00333     long        lngStyle;
00334     BOOL        bRet;
00335
00336     _SetHwnd( hwndDlg );
00337
00338     //リストビューの表示位置を取得する。
00339     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_TAGJUMP );
00340     //ListView_DeleteAllItems( hwndList );
00341     rc.left = rc.top = rc.right = rc.bottom = 0;
00342     ::GetWindowRect( hwndList, &rc );
00343
00344     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00345     col.fmt      = LVCFMT_LEFT;
00346     col.cx       = (rc.right - rc.left) * 19 / 100;
00347     col.pszText  = _T("キーワード");
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_CENTER;
00353     col.cx       = (rc.right - rc.left) * 6 / 100;
00354     col.pszText  = _T("階層");
00355     col.iSubItem = 1;
00356     ListView_InsertColumn( hwndList, 1, &col );
00357
00358     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00359     col.fmt      = LVCFMT_RIGHT;
00360     col.cx       = (rc.right - rc.left) * 8 / 100;
00361     col.pszText  = _T("行番号");
00362     col.iSubItem = 2;
00363     ListView_InsertColumn( hwndList, 2, &col );
00364
00365     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00366     col.fmt      = LVCFMT_LEFT;
00367     col.cx       = (rc.right - rc.left) * 9 / 100;
00368     col.pszText  = _T("種類");
00369     col.iSubItem = 3;
00370     ListView_InsertColumn( hwndList, 3, &col );
00371
00372     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00373     col.fmt      = LVCFMT_LEFT;
00374     col.cx       = (rc.right - rc.left) * 35 / 100;
00375     col.pszText  = _T("ファイル名");
00376     col.iSubItem = 4;
00377     ListView_InsertColumn( hwndList, 4, &col );
00378
00379     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00380     col.fmt      = LVCFMT_LEFT;
00381     col.cx       = (rc.right - rc.left) * 20 / 100;
00382     col.pszText  = _T("備考");
00383     col.iSubItem = 5;
00384     ListView_InsertColumn( hwndList, 5, &col );
00385
00386     /* 行選択 */
00387     lngStyle = ::SendMessageAny( hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00388     lngStyle |= LVS_EX_FULLROWSELECT;
00389 	::SendMessageAny( hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00390
00391     HWND hwndKey;
00392     hwndKey = ::GetDlgItem( GetHwnd(), IDC_KEYWORD );
00393     if( m_lParam == 0 ){
00394         //標準
00395         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_STATIC_KEYWORD ), FALSE );
00396         ::ShowWindow( hwndKey, FALSE );
00397         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_ICASE ), FALSE );
00398         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_ANYWHERE ), FALSE );
00399         bRet = TRUE;
00400     }else{
00401         //キーワード指定
00402         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_STATIC_KEYWORD ), TRUE );
00403         ::ShowWindow( hwndKey, TRUE );
00404         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_ICASE ), TRUE );
00405         ::ShowWindow( ::GetDlgItem( GetHwnd(), IDC_CHECK_ANYWHERE ), TRUE );
00406         ::SetFocus( hwndKey );
00407         bRet = FALSE;   //for set focus
00408     }
00409
00410     /* 基底クラスメンバ */
00411     CDialog::OnInitDialog( GetHwnd(), wParam, lParam );
00412
00413     return bRet;
00414 }
00415
00416 BOOL CDlgTagJumpList::OnBnClicked( int wID )
00417 {
00418     switch( wID )
00419     {
00420     case IDC_BUTTON_HELP:
00421         /* ヘルプ */
00422         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID( F_TAGJUMP_LIST ) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00423         return TRUE;
00424
00425     case IDOK:          /* 左右に表示 */
00426         StopTimer();
00427         /* ダイアログデータの取得 */
00428         ::EndDialog( GetHwnd(), (BOOL)GetData() );
00429         return TRUE;
00430
00431     case IDCANCEL:
00432         StopTimer();
00433         ::EndDialog( GetHwnd(), FALSE );
00434         return TRUE;
00435
00436     // From Here 2005.04.03 MIK 検索条件設定
00437     case IDC_CHECK_ICASE:
00438         StartTimer();
00439         m_bTagJumpICase = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_ICASE ) == BST_CHECKED ? TRUE : FALSE;
00440         return TRUE;
00441
00442     case IDC_CHECK_ANYWHERE:
00443         StartTimer();
00444         m_bTagJumpAnyWhere = ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_ANYWHERE ) == BST_CHECKED ? TRUE : FALSE;
00445         return TRUE;
00446     // To Here 2005.04.03 MIK 検索条件設定
00447     }
00448
00449     /* 基底クラスメンバ */
00450     return CDialog::OnBnClicked( wID );
00451 }
00452
00453 BOOL CDlgTagJumpList::OnNotify( WPARAM wParam, LPARAM lParam )
00454 {
00455     NMHDR*  pNMHDR;
00456     HWND    hwndList;
00457
00458     pNMHDR = (NMHDR*)lParam;
00459
00460     hwndList = GetDlgItem( GetHwnd(), IDC_LIST_TAGJUMP );
00461
00462     //  候補一覧リストボックス
00463     if( hwndList == pNMHDR->hwndFrom )
00464     {
00465         switch( pNMHDR->code )
00466         {
00467         case NM_DBLCLK:
00468             m_nIndex = ListView_GetNextItem( hwndList, -1, LVIS_SELECTED );
00469             if( m_nIndex == -1 || m_nIndex >= m_cList.GetCount() ) return TRUE;
00470
00471             StopTimer();
00472             ::EndDialog( GetHwnd(), GetData() );
00473             return TRUE;
00474
00475         }
00476     }
00477
00478     /* 基底クラスメンバ */
00479     return CDialog::OnNotify( wParam, lParam );
00480 }
00481
00487 BOOL CDlgTagJumpList::OnTimer( WPARAM wParam )
00488 {
00489     StopTimer();
00490
00491     wchar_t szKey[ MAX_TAG_STRING_LENGTH ];
00492     wcscpy( szKey, L"" );
00493 	::DlgItem_GetText( GetHwnd(), IDC_KEYWORD, szKey, _countof( szKey ) );
00494     find_key( szKey );
00495     UpdateData();
00496
00497     return TRUE;
00498 }
00499
00505 BOOL CDlgTagJumpList::OnCbnEditChange( HWND hwndCtl, int wID )
00506 {
00507     StartTimer();
00508
00509     /* 基底クラスメンバ */
00510     return CDialog::OnCbnEditChange( hwndCtl, wID );
00511 }
00512
00513 BOOL CDlgTagJumpList::OnCbnSelChange( HWND hwndCtl, int wID )
00514 {
00515     StartTimer();
00516
00517     /* 基底クラスメンバ */
00518     return CDialog::OnCbnSelChange( hwndCtl, wID );
00519 }
00520
00521 #if 0
00522 BOOL CDlgTagJumpList::OnEditChange( HWND hwndCtl, int wID )
00523 {
00524     StartTimer();
00525
00526     /* 基底クラスメンバ */
00527     return CDialog::OnEditChange( hwndCtl, wID );
00528 }
00529 #endif
00530
00531 LPVOID CDlgTagJumpList::GetHelpIdTable( void )
00532 {
00533     return (LPVOID)p_helpids;
00534 }
00535
00536 bool CDlgTagJumpList::AddParam( TCHAR *s0, TCHAR *s1, int n2, TCHAR *s3, TCHAR *s4, int depth )
00537 {
00538     if( -1 == m_nIndex ) m_nIndex = 0;  //規定値
00539
00540     m_cList.AddParam( s0, s1, n2, s3[0], s4, depth );
00541
00542     return true;
00543 }
00544
00545 bool CDlgTagJumpList::GetSelectedParam( TCHAR *s0, TCHAR *s1, int *n2, TCHAR *s3, TCHAR *s4, int *depth )
00546 {
00547     if( -1 == m_nIndex || m_nIndex >= m_cList.GetCount() ) return false;
00548
00549     m_cList.GetParam( m_nIndex, s0, s1, n2, &s3[0], s4, depth );
00550
00551     return true;
00552 }
00553
00554 TCHAR *CDlgTagJumpList::GetNameByType( const TCHAR type, const TCHAR *name )
00555 {
00556     const TCHAR *p;
00557     TCHAR   *token;
00558     int     i;
00559     //  2005.03.31 MIK
00560     TCHAR   tmp[MAX_TAG_STRING_LENGTH];
00561
00562     p = _tcsrchr( name, _T('.') );
00563     if( ! p ) p = _T(".c"); //見つからないときは ".c" と想定する。
00564     p++;
00565
00566     for( i = 0; p_extentions[i]; i += 2 )
00567     {
00568         _tcscpy( tmp, p_extentions[i] );
00569         token = _tcstok( tmp, _T(",") );
00570         while( token )
00571         {
00572             if( _tcsicmp( p, token ) == 0 )
00573             {
00574                 _tcscpy( tmp, p_extentions[i+1] );
00575                 token = _tcstok( tmp, _T(",") );
00576                 while( token )
00577                 {
00578                     if( token[0] == type )
00579                     {
00580                         return _tcsdup( &token[2] );
00581                     }
00582
00583                     token = _tcstok( NULL, _T(",") );
00584                 }
00585
00586                 return _tcsdup( _T("") );
00587             }
00588
00589             token = _tcstok( NULL, _T(",") );
00590         }
00591     }
00592
00593     return _tcsdup( _T("") );
00594 }
00595
00599 void CDlgTagJumpList::SetFileName( const TCHAR *pszFileName )
00600 {
00601     if( NULL == pszFileName ) return;
00602
00603     if( m_pszFileName ) free( m_pszFileName );
00604
00605     m_pszFileName = _tcsdup( pszFileName );
00606
00607     m_nLoop = CalcDirectoryDepth( m_pszFileName );
00608     if( m_nLoop <  0 ) m_nLoop =  0;
00609     if( m_nLoop > (_MAX_PATH/2) ) m_nLoop = (_MAX_PATH/2);  //\A\B\C...のようなとき1フォルダで2文字消費するので...
00610
00611     return;
00612 }
00613
00618 void CDlgTagJumpList::SetKeyword( const wchar_t *pszKeyword )
00619 {
00620     if( NULL == pszKeyword ) return;
00621
00622     if( m_pszKeyword ) free( m_pszKeyword );
00623
00624     m_pszKeyword = wcsdup( pszKeyword );
00625
00626     return;
00627 }
00628
00636 int CDlgTagJumpList::SearchBestTag( void )
00637 {
00638     if( m_cList.GetCount() <= 0 ) return -1;    //選べません。
00639     if( NULL == m_pszFileName ) return 0;
00640
00641     TCHAR   szFileSrc[1024];
00642     TCHAR   szFileDst[1024];
00643     TCHAR   szExtSrc[1024];
00644     TCHAR   szExtDst[1024];
00645     int     nMatch = -1;
00646     int     i;
00647     int     count;
00648
00649     _tcscpy( szFileSrc, _T("") );
00650     _tcscpy( szExtSrc,  _T("") );
00651     _tsplitpath( m_pszFileName, NULL, NULL, szFileSrc, szExtSrc );
00652
00653     count = m_cList.GetCount();
00654
00655     for( i = 0; i < count; i++ )
00656     {
00657         CSortedTagJumpList::TagJumpInfo* item;
00658         item = m_cList.GetPtr( i );
00659
00660         _tcscpy( szFileDst, _T("") );
00661         _tcscpy( szExtDst,  _T("") );
00662         _tsplitpath( item->filename, NULL, NULL, szFileDst, szExtDst );
00663
00664         if( _tcsicmp( szFileSrc, szFileDst ) == 0 )
00665         {
00666             if( _tcsicmp( szExtSrc, szExtDst ) == 0 ) return i;
00667             if( nMatch == -1 ) nMatch = i;
00668         }
00669     }
00670
00671     if( nMatch != -1 ) return nMatch;
00672
00673     return 0;
00674 }
00675
00682 void CDlgTagJumpList::find_key( const wchar_t* _keyword )
00683 {
00684     const TCHAR* keyword = to_tchar(_keyword);
00685
00686     TCHAR   szCurrentPath[1024];    //カレントフォルダ
00687     TCHAR   szTagFile[1024];        //タグファイル
00688     TCHAR   szLineData[1024];       //行バッファ
00689     TCHAR   s[5][1024];
00690     int     n2;
00691     int length = _tcslen( keyword );
00692     int nMatch;
00693     int i;
00694     FILE*   fp;
00695     int nRet;
00696     int cmp;
00697
00698     Empty();
00699
00700     if( length == 0 ) return;
00701
00702     _tcscpy( szCurrentPath, GetFilePath() );
00703     szCurrentPath[ _tcslen( szCurrentPath ) - _tcslen( GetFileName() ) ] = _T('\0');
00704
00705     for( i = 0; i <= m_nLoop; i++ )
00706     {
00707         //タグファイル名を作成する。
00708         auto_sprintf( szTagFile, _T("%ls%ls"), szCurrentPath, TAG_FILENAME );
00709
00710         //タグファイルを開く。
00711         fp = _tfopen( szTagFile, _T("r") );
00712         if( fp )
00713         {
00714             nMatch = 0;
00715             while( _fgetts( szLineData, _countof( szLineData ), fp ) )
00716             {
00717                 if( szLineData[0] <= L'!' ) goto next_line; //コメントならスキップ
00718                 //chop( szLineData );
00719
00720                 s[0][0] = s[1][0] = s[2][0] = s[3][0] = s[4][0] = _T('\0');
00721                 n2 = 0;
00722                 nRet = _stscanf(
00723                     szLineData,
00724                     TAG_FORMAT, //tagsフォーマット
00725                     s[0], s[1], &n2, s[3], s[4]
00726                     );
00727                 if( nRet < 4 ) goto next_line;
00728                 if( n2 <= 0 ) goto next_line;   //行番号不正(-excmd=nが指定されてないかも)
00729
00730                 if( m_bTagJumpAnyWhere ){
00731                     if( m_bTagJumpICase )
00732                         cmp = _tcsistr_j( s[0], keyword ) != NULL ? 0 : -1;
00733                     else
00734                         cmp = _tcsstr( s[0], keyword ) != NULL ? 0 : -1;
00735                 }else{
00736                     if( m_bTagJumpICase )
00737                         cmp = _tcsnicmp( s[0], keyword, length );
00738                     else
00739                         cmp = _tcsncmp( s[0], keyword, length );
00740                 }
00741
00742                 if( 0 == cmp )
00743                 {
00744                     m_cList.AddParam( s[0], s[1], n2, s[3][0], s[4], i );
00745                     nMatch++;
00746                 }
00747                 else if( 0 < cmp ){
00748                     //  tagsはソートされているので，先頭からのcase sensitiveな
00749                     //  比較結果によって検索の時は処理の打ち切りが可能
00750                     //  2005.04.05 MIK バグ修正
00751                     if( (!m_bTagJumpICase) && (!m_bTagJumpAnyWhere) ) break;
00752                 }
00753 next_line:
00754                 //if( nMatch >= 10 ) break;
00755                 ;
00756             }
00757
00758             //ファイルを閉じる。
00759             fclose( fp );
00760
00761         }
00762
00763         _tcscat( szCurrentPath, _T("..\\") );
00764     }
00765 }
00766
00770 const TCHAR* CDlgTagJumpList::GetFileName( void )
00771 {
00772     return GetFileTitlePointer(GetFilePath());
00773 }
00774
00775 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagJumpList.h

sakura_core

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 L"tags"
#define | TAG_FORMAT _T("%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%ls\t%ls")

説明

タグジャンプリストダイアログボックス

作者:
MIK
日付:
2003.4.13

CDlgTagJumpList.h で定義されています。

マクロ定義

#define TAG_FILENAME L"tags"

CDlgTagJumpList.h の 49 行で定義されています。

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CDlgTagJumpList::find_key().

#define TAG_FORMAT _T("%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%ls\t%ls")

CDlgTagJumpList.h の 52 行で定義されています。

参照元 CViewCommander::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 Nov 17 20:25:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagJumpList.h ソースファイル

sakura_core

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        L"tags"
00050 //タグファイルのフォーマット   //  @@ 2005.03.31 MIK 定数化
00051 //  @@ 2005.04.03 MIK キーワードに空白が含まれる場合の考慮
00052 #define TAG_FORMAT       _T("%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%ls\t%ls")
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( TCHAR *s0, TCHAR *s1, int n2, TCHAR *s3, TCHAR *s4, int depth ); //登録
00075     bool GetSelectedParam( TCHAR *s0, TCHAR *s1, int *n2, TCHAR *s3, TCHAR *s4, int *depth );   //取得
00076     void SetFileName( const TCHAR *pszFileName );
00077     void SetKeyword( const wchar_t *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     TCHAR   *GetNameByType( const TCHAR type, const TCHAR *name );  //タイプを名前に変換する。
00100     int     SearchBestTag( void );  //もっとも確率の高そうなインデックスを返す。
00101     //  @@ 2005.03.31 MIK
00102     const TCHAR *GetFileName( void );
00103     const TCHAR *GetFilePath( void ){ return m_pszFileName != NULL ? m_pszFileName : _T(""); }
00104     void find_key( const wchar_t* keyword );
00105     void Empty( void );
00106
00107
00108
00109 private:
00110
00111     int     m_nIndex;
00112     TCHAR   *m_pszFileName;
00113     wchar_t *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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagsMake.cpp

sakura_core

CDlgTagsMake.cpp

タグファイル作成ダイアログボックス [詳細]

#include "stdafx.h"
#include <string.h>
#include "sakura_rc.h"
#include "CDlgTagsMake.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "util/shell.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 Nov 17 20:25:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagsMake.cpp ソースファイル

sakura_core

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 "debug.h"
00037 #include "CEditDoc.h"
00038 #include "global.h"
00039 #include "funccode.h"
00040 #include "mymessage.h"
00041 #include "util/shell.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     _tcscpy( m_szPath, _T("") );
00059     _tcscpy( m_szTagsCmdLine, _T("") );
00060     m_nTagsOpt = 0;
00061     return;
00062 }
00063
00064 /* モーダルダイアログの表示 */
00065 int CDlgTagsMake::DoModal(
00066     HINSTANCE       hInstance,
00067     HWND            hwndParent,
00068     LPARAM          lParam,
00069     const TCHAR*    pszPath     //パス
00070 )
00071 {
00072     _tcscpy( 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( GetHwnd(), 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( GetHwnd() );
00088         return TRUE;
00089
00090     case IDOK:
00091         /* ダイアログデータの取得 */
00092         ::EndDialog( GetHwnd(), GetData() );
00093         return TRUE;
00094
00095     case IDCANCEL:
00096         ::EndDialog( GetHwnd(), FALSE );
00097         return TRUE;
00098
00099     }
00100
00101     /* 基底クラスメンバ */
00102     return CDialog::OnBnClicked( wID );
00103 }
00104
00110 void CDlgTagsMake::SelectFolder( HWND hwndDlg )
00111 {
00112     TCHAR   szPath[_MAX_PATH + 1];
00113
00114     /* フォルダ */
00115 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TAG_MAKE_FOLDER, szPath, _MAX_PATH );
00116
00117     if( SelectDir( hwndDlg, _T("タグ作成フォルダの選択"), szPath, szPath ) )
00118     {
00119         //末尾に\\マークを追加する．
00120         int pos = _tcslen( szPath );
00121         if( pos > 0 && szPath[ pos - 1 ] != _T('\\') )
00122         {
00123             szPath[ pos     ] = _T('\\');
00124             szPath[ pos + 1 ] = _T('\0');
00125         }
00126
00127 		::DlgItem_SetText( hwndDlg, IDC_EDIT_TAG_MAKE_FOLDER, szPath );
00128     }
00129 }
00130
00131 /* ダイアログデータの設定 */
00132 void CDlgTagsMake::SetData( void )
00133 {
00134     //作成フォルダ
00135     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_EDIT_TAG_MAKE_FOLDER ), CB_LIMITTEXT, _countof( m_szPath ), 0 );
00136 	::DlgItem_SetText( GetHwnd(), IDC_EDIT_TAG_MAKE_FOLDER, m_szPath );
00137
00138     //オプション
00139     m_nTagsOpt = m_pShareData->m_nTagsOpt;
00140     if( m_nTagsOpt & 0x0001 ) ::CheckDlgButton( GetHwnd(), IDC_CHECK_TAG_MAKE_RECURSE, TRUE );
00141
00142     //コマンドライン
00143     ::SendMessage( ::GetDlgItem( GetHwnd(), IDC_EDIT_TAG_MAKE_CMDLINE ), CB_LIMITTEXT, _countof( m_pShareData->m_szTagsCmdLine ), 0 );
00144     _tcscpy( m_szTagsCmdLine, m_pShareData->m_szTagsCmdLine );
00145 	::DlgItem_SetText( GetHwnd(), 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 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_TAG_MAKE_FOLDER, m_szPath, _countof( m_szPath ) );
00156     int length = _tcslen( m_szPath );
00157     if( length > 0 )
00158     {
00159         if( m_szPath[ length - 1 ] != _T('\\') ) _tcscat( m_szPath, _T("\\") );
00160     }
00161
00162     //CTAGSオプション
00163     m_nTagsOpt = 0;
00164     if( ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_TAG_MAKE_RECURSE ) == BST_CHECKED ) m_nTagsOpt |= 0x0001;
00165     m_pShareData->m_nTagsOpt = m_nTagsOpt;
00166
00167     //コマンドライン
00168 	::DlgItem_GetText( GetHwnd(), IDC_EDIT_TAG_MAKE_CMDLINE, m_szTagsCmdLine, _countof( m_szTagsCmdLine ) );
00169     _tcscpy( 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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagsMake.h

sakura_core

CDlgTagsMake.h

タグファイル作成ダイアログボックス [詳細]

#include "CDialog.h"

CDlgTagsMake.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgTagsMake
タグファイル作成ダイアログボックス [詳細]

説明

タグファイル作成ダイアログボックス

作者:
MIK
日付:
2003.5.12

CDlgTagsMake.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTagsMake.h ソースファイル

sakura_core

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 TCHAR* );   /* モーダルダイアログの表示 */
00052
00053     TCHAR   m_szPath[_MAX_PATH+1];  /* フォルダ */
00054     TCHAR   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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTypeList.cpp

sakura_core

CDlgTypeList.cpp

ファイルタイプ一覧ダイアログ [詳細]

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include "sakura_rc.h"
#include "CDlgTypeList.h"
#include "debug.h"
#include "funccode.h"
#include "util/shell.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 Nov 17 20:25:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTypeList.cpp ソースファイル

sakura_core

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 "debug.h"
00022 #include "funccode.h"   //Stonee, 2001/03/12
00023 #include "util/shell.h"
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( GetHwnd(), ::SendMessageAny( GetDlgItem( GetHwnd(), 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( GetHwnd(), 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( GetHwnd(), ::SendMessageAny( GetDlgItem( GetHwnd(), 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( GetHwnd(), ::SendMessageAny( GetDlgItem( GetHwnd(), IDC_LIST_TYPES ), LB_GETCURSEL, (WPARAM)0, (LPARAM)0 ) );
00082         return TRUE;
00083     case IDCANCEL:
00084         ::EndDialog( GetHwnd(), -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     TCHAR   szText[130];
00099     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_TYPES );
00100     for( nIdx = 0; nIdx < MAX_TYPES; ++nIdx ){
00101         if( 0 < _tcslen( m_pShareData->m_Types[nIdx].m_szTypeExts ) ){      /* タイプ属性：拡張子リスト */
00102             auto_sprintf( szText, _T("%ts ( %ts )"),
00103                 m_pShareData->m_Types[nIdx].m_szTypeName,   /* タイプ属性：名称 */
00104                 m_pShareData->m_Types[nIdx].m_szTypeExts    /* タイプ属性：拡張子リスト */
00105             );
00106         }else{
00107             auto_sprintf( szText, _T("%ts"),
00108                 m_pShareData->m_Types[nIdx].m_szTypeName    /* タイプ属性：拡称 */
00109             );
00110         }
00111 		::List_AddString( hwndList, szText );
00112     }
00113 	::SendMessageAny( 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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTypeList.h

sakura_core

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 行で定義されています。

参照元 CViewCommander::Command_TYPE_LIST(), CDlgTypeList::OnBnClicked(), と CDlgTypeList::OnLbnDblclk().

Sakura-Editorに対してSat Nov 17 20:25:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgTypeList.h ソースファイル

sakura_core

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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgWinSize.cpp

sakura_core

CDlgWinSize.cpp

ウィンドウの位置と大きさダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "sakura.hh"
#include "CDlgWinSize.h"
#include "util/shell.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 の 38 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgWinSize.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00037
00038 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00039     IDOK,                       HIDOK_WINSIZE,              // 閉じる
00040     IDC_BUTTON_HELP,            HIDC_BUTTON_WINSIZE_HELP,   // ヘルプ
00041     IDC_EDIT_WX,                HIDC_EDIT_WX,               // 幅
00042     IDC_EDIT_WY,                HIDC_EDIT_WY,               // 高さ
00043     IDC_EDIT_SX,                HIDC_EDIT_SX,               // X座標
00044     IDC_EDIT_SY,                HIDC_EDIT_SY,               // Y座標
00045 //  IDC_CHECK_WINPOS,           HIDC_CHECK_WINPOS,
00046     IDC_RADIO_WINSIZE_DEF,      HIDC_RADIO_WINSIZE_DEF,     // 大きさ/指定しない
00047     IDC_RADIO_WINSIZE_SAVE,     HIDC_RADIO_WINSIZE_SAVE,    // 大きさ/継承する
00048     IDC_RADIO_WINSIZE_SET,      HIDC_RADIO_WINSIZE_SET,     // 大きさ/直接指定
00049     IDC_RADIO_WINPOS_DEF,       HIDC_RADIO_WINPOS_DEF,      // 位置/指定しない
00050     IDC_RADIO_WINPOS_SAVE,      HIDC_RADIO_WINPOS_SAVE,     // 位置/継承する
00051     IDC_RADIO_WINPOS_SET,       HIDC_RADIO_WINPOS_SET,      // 位置/直接指定
00052     IDC_COMBO_WINTYPE,          HIDC_COMBO_WINTYPE,
00053     0, 0
00054 };
00055
00056 CDlgWinSize::CDlgWinSize()
00057 {
00058     return;
00059 }
00060
00061 CDlgWinSize::~CDlgWinSize()
00062 {
00063     return;
00064 }
00065
00066
00067 /* !モーダルダイアログの表示
00068     @param nSaveWinSize [in/out] ウィンドウ位置継承
00069     @param nSaveWinPos  [in/out] ウィンドウサイズ継承
00070     @param nWinSizeType [in/out] ウィンドウの実行時の大きさ
00071     @param rc [in/out] 幅、高さ、左、上
00072 */
00073 int CDlgWinSize::DoModal( HINSTANCE hInstance, HWND hwndParent,
00074     int &nSaveWinSize, int &nSaveWinPos, int &nWinSizeType, RECT &rc )
00075 {
00076     m_nSaveWinSize = nSaveWinSize;
00077     m_nSaveWinPos  = nSaveWinPos;
00078     m_nWinSizeType = nWinSizeType;
00079     m_rc = rc;
00080     (void)CDialog::DoModal( hInstance, hwndParent, IDD_WINPOSSIZE, NULL );
00081     nSaveWinSize = m_nSaveWinSize;
00082     nSaveWinPos  = m_nSaveWinPos;
00083     nWinSizeType = m_nWinSizeType;
00084     rc = m_rc;
00085     return TRUE;
00086 }
00087
00090 BOOL CDlgWinSize::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00091 {
00092     _SetHwnd( hwndDlg );
00093
00094     Combo_AddString( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), L"普通" );
00095     Combo_AddString( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), L"最大化" );
00096     Combo_AddString( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), L"(最小化)" );
00097
00098     LPARAM range = (LPARAM) MAKELONG((short) 30000, (short) 0 );
00099 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_SPIN_SX ), UDM_SETRANGE, 0, range );
00100 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_SPIN_SY ), UDM_SETRANGE, 0, range );
00101     // ウィンドウの座標は、マイナス値も有効。
00102     range = (LPARAM) MAKELONG((short) 30000, (short) -30000 );
00103 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_SPIN_WX ), UDM_SETRANGE, 0, range );
00104 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_SPIN_WY ), UDM_SETRANGE, 0, range );
00105
00106     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00107 }
00108
00109
00110 BOOL CDlgWinSize::OnBnClicked( int wID )
00111 {
00112     switch( wID ){
00113     case IDC_BUTTON_HELP:   // 2006/09/09 novice id修正
00114         MyWinHelp( GetHwnd(), m_szHelpFile, HELP_CONTEXT, HLP000286 );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00115         return TRUE;
00116     case IDC_RADIO_WINPOS_DEF:
00117     case IDC_RADIO_WINPOS_SAVE:
00118     case IDC_RADIO_WINPOS_SET:
00119     case IDC_RADIO_WINSIZE_DEF:
00120     case IDC_RADIO_WINSIZE_SAVE:
00121     case IDC_RADIO_WINSIZE_SET:
00122         RenewItemState();
00123         return TRUE;
00124     case IDOK:
00125     case IDCANCEL:
00126         GetData();
00127     }
00128     return CDialog::OnBnClicked( wID );
00129 }
00130
00133 void CDlgWinSize::SetData( void )
00134 {
00135     switch( m_nSaveWinSize ){
00136     case 1:
00137         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINSIZE_SAVE, TRUE );
00138         break;
00139     case 2:
00140         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINSIZE_SET, TRUE );
00141         break;
00142     default:
00143         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINSIZE_DEF, TRUE );
00144     }
00145
00146     switch( m_nSaveWinPos ){
00147     case 1:
00148         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINPOS_SAVE, TRUE );
00149         break;
00150     case 2:
00151         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINPOS_SET, TRUE );
00152         break;
00153     default:
00154         ::CheckDlgButton( GetHwnd(), IDC_RADIO_WINPOS_DEF, TRUE );
00155     }
00156
00157     int nCurIdx = 0;
00158     switch( m_nWinSizeType ){
00159     case SIZE_MINIMIZED:
00160         nCurIdx = 2;
00161         break;
00162     case SIZE_MAXIMIZED:
00163         nCurIdx = 1;
00164         break;
00165     default:
00166         nCurIdx = 0;
00167     }
00168 	::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), CB_SETCURSEL, (WPARAM)nCurIdx, 0 );
00169     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_SX, m_rc.right,  TRUE );
00170     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_SY, m_rc.bottom, TRUE );
00171     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_WX, m_rc.top,  TRUE );
00172     ::SetDlgItemInt( GetHwnd(), IDC_EDIT_WY, m_rc.left, TRUE );
00173     RenewItemState();
00174 }
00175
00176
00179 int CDlgWinSize::GetData( void )
00180 {
00181     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINSIZE_DEF ) ){
00182         m_nSaveWinSize = 0;
00183     }else
00184     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINSIZE_SAVE ) ){
00185         m_nSaveWinSize = 1;
00186     }else
00187     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINSIZE_SET ) ){
00188         m_nSaveWinSize = 2;
00189     }
00190
00191     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINPOS_DEF ) ){
00192         m_nSaveWinPos = 0;
00193     }else
00194     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINPOS_SAVE ) ){
00195         m_nSaveWinPos = 1;
00196     }else
00197     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINPOS_SET ) ){
00198         m_nSaveWinPos = 2;
00199     }
00200
00201     int nCurIdx;
00202     nCurIdx = ::SendMessageAny( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), CB_GETCURSEL, 0, 0 );
00203     switch( nCurIdx ){
00204     case 2:
00205         m_nWinSizeType = SIZE_MINIMIZED;
00206         break;
00207     case 1:
00208         m_nWinSizeType = SIZE_MAXIMIZED;
00209         break;
00210     default:
00211         m_nWinSizeType = SIZE_RESTORED;
00212     }
00213     m_rc.right  = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_SX, NULL, TRUE );
00214     m_rc.bottom = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_SY, NULL, TRUE );
00215     m_rc.top    = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_WX, NULL, TRUE );
00216     m_rc.left   = ::GetDlgItemInt( GetHwnd(), IDC_EDIT_WY, NULL, TRUE );
00217     return TRUE;
00218 }
00219
00220
00223 void CDlgWinSize::RenewItemState( void )
00224 {
00225     BOOL state;
00226     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINPOS_SET ) ){
00227         state = TRUE;
00228     }else{
00229         state = FALSE;
00230     }
00231     ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_WX ), state );
00232     ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_WY ), state );
00233
00234     if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_RADIO_WINSIZE_SET ) ){
00235         state = TRUE;
00236     }else{
00237         state = FALSE;
00238     }
00239     ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_WINTYPE ), state );
00240     ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_SX ), state );
00241     ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_SY ), state );
00242 }
00243
00244 LPVOID CDlgWinSize::GetHelpIdTable( void )
00245 {
00246     return (LPVOID)p_helpids;
00247 }
00248
00249 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgWinSize.h

sakura_core

CDlgWinSize.h

ウィンドウの位置と大きさダイアログ [詳細]

#include "CDialog.h"

CDlgWinSize.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgWinSize
位置と大きさの設定ダイアログ [詳細]

説明

ウィンドウの位置と大きさダイアログ

作者:
Moca
日付:
2004/05/13 作成

CDlgWinSize.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDlgWinSize.h ソースファイル

sakura_core

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 Nov 17 20:24:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDllHandler.cpp

sakura_core

CDllHandler.cpp

DLLのロード、アンロード [詳細]

#include "stdafx.h"
#include "CDllHandler.h"

CDllHandler.cppのインクルード依存関係図

ソースコードを見る。

説明

DLLのロード、アンロード

作者:
genta
日付:
Jun. 10, 2001

CDllHandler.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDllHandler.cpp ソースファイル

sakura_core

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(LPCTSTR 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 }
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDllHandler.h

sakura_core

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 Nov 17 20:25:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDllHandler.h ソースファイル

sakura_core

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; }
00057
00059
00066     int LoadLibrary(LPCTSTR str = NULL);
00067
00069
00072     int FreeLibrary(bool force = false);
00073
00075     bool operator!(void) const { return IsAvailable(); }
00076
00078
00081     bool Init(LPCTSTR str = NULL){ return this->LoadLibrary(str) == 0; }
00082
00084     HINSTANCE GetInstance() const { return m_hInstance; }
00085
00086 protected:
00087
00093     struct ImportTable
00094     {
00095         void* proc;
00096         const char* name;
00097     };
00098
00100
00109     virtual int InitDll(void) = 0;
00110
00112
00134     virtual int DeinitDll(void);
00135
00137
00142     virtual LPCTSTR GetDllName( LPCTSTR str );
00143
00145
00162     virtual LPCTSTR GetDllNameInOrder(LPCTSTR str, int index);
00163
00164     bool RegisterEntries(const ImportTable table[]);
00165
00166 private:
00167     HINSTANCE m_hInstance;
00168 };
00169
00170 #endif
00171
00172
00173 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLine.cpp

sakura_core

CDocLine.cpp

文書データ1行 [詳細]

#include "stdafx.h"
#include "CDocLine.h"
#include "CMemory.h"

CDocLine.cppのインクルード依存関係図

ソースコードを見る。

説明

文書データ1行

作者:
Norio Nakatani

CDocLine.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLine.cpp ソースファイル

sakura_core

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 )
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 }
00031
00032 /* 空行（スペース、タブ、改行記号のみの行）かどうかを取得する
00033     true：空行だ。
00034     false：空行じゃないぞ。
00035
00036     2002/04/26 YAZAKI
00037 */
00038 bool CDocLine::IsEmptyLine( void ) const
00039 {
00040     const wchar_t* pLine = GetPtr();
00041     int nLineLen = GetLengthWithoutEOL();
00042     int i;
00043     for ( i = 0; i < nLineLen; i++ ){
00044         if (pLine[i] != L' ' && pLine[i] != L'\t'){
00045             return false;   //  スペースでもタブでもない文字があったらfalse。
00046         }
00047     }
00048     return true;    //  すべてスペースかタブだけだったらtrue。
00049 }
00050
00051 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLine.h

sakura_core

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 行で定義されています。

参照元 CEditView::AnalyzeDiffInfo(), と CTextDrawer::DispLineNumber().

#define MARK_DIFF_CHANGE 2

CDocLine.h の 29 行で定義されています。

参照元 CEditView::AnalyzeDiffInfo(), と CTextDrawer::DispLineNumber().

#define MARK_DIFF_DEL_EX 4

CDocLine.h の 31 行で定義されています。

参照元 CTextDrawer::DispLineNumber(), と CDocLineMgr::SetDiffMarkRange().

#define MARK_DIFF_DELETE 3

CDocLine.h の 30 行で定義されています。

参照元 CEditView::AnalyzeDiffInfo(), と CTextDrawer::DispLineNumber().

Sakura-Editorに対してSat Nov 17 20:25:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLine.h ソースファイル

sakura_core

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     CNativeW    m_cLine;
00047     CEOL        m_cEol;
00048
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 ) const;  //  このCDocLineが空行（スペース、タブ、改行記号のみの行）かどうか。
00059     CLogicInt   GetLengthWithoutEOL( void ) const   { return m_cLine.GetStringLength() - m_cEol.GetLen(); }
00060     const wchar_t*  GetPtr( void ) const            { return m_cLine.GetStringPtr(); }
00061     CLogicInt   GetLength() const                   { return m_cLine.GetStringLength(); }   //  CMemoryIterator用
00062
00064     CStringRef GetStringRef() const{ return CStringRef(GetPtr(), GetLength()); }
00065 protected:
00066     //マーク情報
00067     union {
00068         unsigned char   m_bAllMark;
00069         struct Mark_tag {
00070             unsigned m_bModify      : 1;    //変更フラグ
00071             unsigned m_bBookMark    : 1;    //ブックマーク
00072             unsigned m_bDiffMark    : 3;    //DIFF差分情報
00073         } m_bMarkArray;
00074     } m_bMark;
00075 };
00076
00077
00079 #endif /* _CDOCLINE_H_ */
00080
00081
00082 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr.cpp

sakura_core

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 "CRunningTimer.h"
#include "CEol.h"
#include "CDocLine.h"
#include "CMemory.h"
#include "CFileWrite.h"
#include "CFileLoad.h"
#include "my_icmp.h"
#include "CIoBridge.h"
#include "basis/SakuraBasis.h"
#include "parse/CWordParse.h"
#include "util/window.h"
#include "util/file.h"

ソースコードを見る。

説明

行データの管理

作者:
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 で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr.cpp ソースファイル

sakura_core

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 "CRunningTimer.h"
00045
00046 //  May 15, 2000 genta
00047 #include "CEol.h"
00048 #include "CDocLine.h"// 2002/2/10 aroka ヘッダ整理
00049 #include "CMemory.h"// 2002/2/10 aroka
00050
00051 #include "CFileWrite.h" //2002/05/22 Frozen
00052 #include "CFileLoad.h" // 2002/08/30 Moca
00053 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00054 #include "CIoBridge.h"
00055 #include "basis/SakuraBasis.h"
00056 #include "parse/CWordParse.h"
00057 #include "util/window.h"
00058 #include "util/file.h"
00059
00060 CDocLineMgr::CDocLineMgr()
00061 {
00062     Init();
00063 }
00064
00065
00066
00067
00068 CDocLineMgr::~CDocLineMgr()
00069 {
00070     Empty();
00071 }
00072
00073
00074
00075
00076
00077 void CDocLineMgr::Init()
00078 {
00079     m_pDocLineTop = NULL;
00080     m_pDocLineBot = NULL;
00081     m_nLines = CLogicInt(0);
00082     m_nPrevReferLine = CLogicInt(0);
00083     m_pCodePrevRefer = NULL;
00084     m_bIsDiffUse = false;   /* DIFF使用中 */ //@@@ 2002.05.25 MIK
00085     return;
00086 }
00087
00093 void CDocLineMgr::Empty()
00094 {
00095     CDocLine* pDocLine;
00096     CDocLine* pDocLineNext;
00097     pDocLine = m_pDocLineTop;
00098     while( NULL != pDocLine ){
00099         pDocLineNext = pDocLine->m_pNext;
00100         delete pDocLine;
00101         pDocLine = pDocLineNext;
00102     }
00103     return;
00104 }
00105
00106
00107
00108
00109
00110 const wchar_t* CDocLineMgr::GetLineStr( CLogicInt nLine, CLogicInt* pnLineLen )
00111 {
00112     CDocLine* pDocLine;
00113     pDocLine = GetLineInfo( nLine );
00114     if( NULL == pDocLine ){
00115         *pnLineLen = CLogicInt(0);
00116         return NULL;
00117     }
00118     // 2002/2/10 aroka CMemory のメンバ変数に直接アクセスしない(inline化されているので速度的な問題はない)
00119     return pDocLine->m_cLine.GetStringPtr( pnLineLen );
00120 }
00121
00128 const wchar_t* CDocLineMgr::GetLineStrWithoutEOL( CLogicInt nLine, int* pnLineLen )
00129 {
00130     const CDocLine* pDocLine = GetLineInfo( nLine );
00131     if( NULL == pDocLine ){
00132         *pnLineLen = 0;
00133         return NULL;
00134     }
00135     *pnLineLen = pDocLine->GetLengthWithoutEOL();
00136     return pDocLine->m_cLine.GetStringPtr();
00137 }
00138
00145 CDocLine* CDocLineMgr::GetLineInfo( CLogicInt nLine )
00146 {
00147     CLogicInt nCounter;
00148     CDocLine* pDocLine;
00149     if( CLogicInt(0) == m_nLines ){
00150         return NULL;
00151     }
00152     // 2004.03.28 Moca nLineが負の場合のチェックを追加
00153     if( CLogicInt(0) > nLine || nLine >= m_nLines ){
00154         return NULL;
00155     }
00156     // 2004.03.28 Moca m_pCodePrevReferより、Top,Botのほうが近い場合は、そちらを利用する
00157     CLogicInt nPrevToLineNumDiff = t_abs( m_nPrevReferLine - nLine );
00158     if( m_pCodePrevRefer == NULL
00159       || nLine < nPrevToLineNumDiff
00160       || m_nLines - nLine < nPrevToLineNumDiff
00161     ){
00162         if( m_pCodePrevRefer == NULL ){
00163             MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::GetLineInfo()     m_pCodePrevRefer == NULL" );
00164         }
00165
00166         if( nLine < (m_nLines / 2) ){
00167             nCounter = CLogicInt(0);
00168             pDocLine = m_pDocLineTop;
00169             while( pDocLine ){
00170                 if( nLine == nCounter ){
00171                     m_nPrevReferLine = nLine;
00172                     m_pCodePrevRefer = pDocLine;
00173                     m_pDocLineCurrent = pDocLine->m_pNext;
00174                     return pDocLine;
00175                 }
00176                 pDocLine = pDocLine->m_pNext;
00177                 nCounter++;
00178             }
00179         }
00180         else{
00181             nCounter = m_nLines - CLogicInt(1);
00182             pDocLine = m_pDocLineBot;
00183             while( NULL != pDocLine ){
00184                 if( nLine == nCounter ){
00185                     m_nPrevReferLine = nLine;
00186                     m_pCodePrevRefer = pDocLine;
00187                     m_pDocLineCurrent = pDocLine->m_pNext;
00188                     return pDocLine;
00189                 }
00190                 pDocLine = pDocLine->m_pPrev;
00191                 nCounter--;
00192             }
00193         }
00194
00195     }
00196     else{
00197         if( nLine == m_nPrevReferLine ){
00198             m_nPrevReferLine = nLine;
00199             m_pDocLineCurrent = m_pCodePrevRefer->m_pNext;
00200             return m_pCodePrevRefer;
00201         }
00202         else if( nLine > m_nPrevReferLine ){
00203             nCounter = m_nPrevReferLine + CLogicInt(1);
00204             pDocLine = m_pCodePrevRefer->m_pNext;
00205             while( NULL != pDocLine ){
00206                 if( nLine == nCounter ){
00207                     m_nPrevReferLine = nLine;
00208                     m_pCodePrevRefer = pDocLine;
00209                     m_pDocLineCurrent = pDocLine->m_pNext;
00210                     return pDocLine;
00211                 }
00212                 pDocLine = pDocLine->m_pNext;
00213                 ++nCounter;
00214             }
00215         }
00216         else{
00217             nCounter = m_nPrevReferLine - CLogicInt(1);
00218             pDocLine = m_pCodePrevRefer->m_pPrev;
00219             while( NULL != pDocLine ){
00220                 if( nLine == nCounter ){
00221                     m_nPrevReferLine = nLine;
00222                     m_pCodePrevRefer = pDocLine;
00223                     m_pDocLineCurrent = pDocLine->m_pNext;
00224                     return pDocLine;
00225                 }
00226                 pDocLine = pDocLine->m_pPrev;
00227                 nCounter--;
00228             }
00229         }
00230     }
00231     return NULL;
00232 }
00233
00234
00235
00236
00237
00245 const wchar_t* CDocLineMgr::GetFirstLinrStr( int* pnLineLen )
00246 {
00247     const wchar_t* pszLine;
00248     if( CLogicInt(0) == m_nLines ){
00249         pszLine = NULL;
00250         *pnLineLen = 0;
00251     }else{
00252         pszLine = m_pDocLineTop->m_cLine.GetStringPtr( pnLineLen );
00253
00254         m_pDocLineCurrent = m_pDocLineTop->m_pNext;
00255     }
00256     return pszLine;
00257 }
00258
00259
00260
00261
00262
00271 const wchar_t* CDocLineMgr::GetNextLinrStr( int* pnLineLen )
00272 {
00273     const wchar_t* pszLine;
00274     if( NULL == m_pDocLineCurrent ){
00275         pszLine = NULL;
00276         *pnLineLen = 0;
00277     }else{
00278         pszLine = m_pDocLineCurrent->m_cLine.GetStringPtr( pnLineLen );
00279
00280         m_pDocLineCurrent = m_pDocLineCurrent->m_pNext;
00281     }
00282     return pszLine;
00283 }
00284
00285
00286
00299 void CDocLineMgr::AddLineStrX( const wchar_t* pData, int nDataLen, CEOL cEol )
00300 {
00301 #ifdef _DEBUG
00302 //  CRunningTimer cRunningTimer( "CDocLineMgr::AddLineStrX(const char*, int, int)" );
00303 #endif
00304
00305     //チェーン適用
00306     CDocLine* pDocLine = new CDocLine;
00307     _PushBottom(pDocLine);
00308
00309     //インスタンス設定
00310     pDocLine->m_cEol = cEol;    /* 改行コードの種類 */
00311     pDocLine->m_cLine.SetString(pData, nDataLen);
00312 }
00313
00323 int CDocLineMgr::ReadFile(
00324     const TCHAR*        pszPath,
00325     HWND                hWndParent,
00326     HWND                hwndProgress,
00327     ECodeType           nCharCode,
00328     FILETIME*           pFileTime,
00329     int                 nFlags,
00330     BOOL*               pbBomExist
00331 )
00332 {
00333 #ifdef _DEBUG
00334     MYTRACE_A( "pszPath=[%hs]\n", pszPath );
00335     MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::ReadFile" );
00336 #endif
00337     /* 既存データのクリア */
00338     Empty();
00339     Init();
00340
00341     /* 処理中のユーザー操作を可能にする */
00342     if( !::BlockingHook( NULL ) ){
00343         return FALSE;
00344     }
00345
00346     int nRetVal = TRUE;
00347
00348     try{
00349         CFileLoad cfl;
00350
00351         // ファイルを開く
00352         // ファイルを閉じるにはFileCloseメンバ又はデストラクタのどちらかで処理できます
00353         //  Jul. 28, 2003 ryoji BOMパラメータ追加
00354         cfl.FileOpen( pszPath, nCharCode, nFlags, pbBomExist );
00355
00356         /* ファイル時刻の取得 */
00357         FILETIME    FileTime;
00358         if( cfl.GetFileTime( NULL, NULL, &FileTime ) ){
00359             *pFileTime = FileTime;
00360         }
00361
00362         //プログレスバー初期化
00363         if( NULL != hwndProgress ){
00364 			::PostMessageAny( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00365 			::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00366         }
00367
00368         // ReadLineはファイルから 文字コード変換された1行を読み出します
00369         // エラー時はthrow CError_FileRead を投げます
00370         const wchar_t*  pLine;
00371         int             nLineLen;
00372         int             nLineNum = 0;
00373         CEOL            cEol;
00374         CNativeW        cUnicodeBuffer;
00375         while( NULL != ( pLine = cfl.ReadLine( &cUnicodeBuffer, &nLineLen, &cEol ) ) ){
00376             ++nLineNum;
00377             AddLineStrX( pLine, nLineLen, cEol );
00378             //512行毎にプログレスバーを更新
00379             if( NULL != hwndProgress && 0 == ( nLineNum % 512 ) ){
00380 				::PostMessageAny( hwndProgress, PBM_SETPOS, cfl.GetPercent(), 0 );
00381                 /* 処理中のユーザー操作を可能にする */
00382                 if( !::BlockingHook( NULL ) ){
00383                     return FALSE;
00384                 }
00385             }
00386         }
00387
00388         // ファイルをクローズする
00389         cfl.FileClose();
00390     }
00391     catch( CError_FileOpen ){
00392         nRetVal = FALSE;
00393         if( -1 == _taccess( pszPath, 0 )){
00394             // ファイルがない
00395 			::MYMESSAGEBOX(
00396                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00397                 _T("%ls\nというファイルを開けません。\nファイルが存在しません。"),    //Mar. 24, 2001 jepro 若干修正
00398                 pszPath
00399              );
00400         }
00401         else if( -1 == _taccess( pszPath, 4 )){
00402             // 読み込みアクセス権がない
00403 			::MYMESSAGEBOX(
00404                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00405                 _T("\'%ts\'\nというファイルを開けません。\n読み込みアクセス権がありません。"),
00406                 pszPath
00407              );
00408         }
00409         else{
00410 			::MYMESSAGEBOX(
00411                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00412                 _T("\'%ts\'\nというファイルを開けません。\n他のアプリケーションで使用されている可能性があります。"),
00413                 pszPath
00414              );
00415         }
00416     }
00417     catch( CError_FileRead ){
00418         nRetVal = FALSE;
00419 		::MYMESSAGEBOX(
00420             hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00421             _T("\'%ts\'というファイルの読み込み中にエラーが発生しました。\nファイルの読み込みを中止します。"),
00422             pszPath
00423          );
00424         /* 既存データのクリア */
00425         Empty();
00426         Init();
00427         nRetVal = FALSE;
00428     } // 例外処理終わり
00429
00430     if( NULL != hwndProgress ){
00431 		::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00432     }
00433     /* 処理中のユーザー操作を可能にする */
00434     if( !::BlockingHook( NULL ) ){
00435         return FALSE;
00436     }
00437
00438     /* 行変更状態をすべてリセット */
00439     ResetAllModifyFlag();
00440     return nRetVal;
00441 }
00442
00443
00444
00445
00454 EConvertResult CDocLineMgr::WriteFile(
00455     const TCHAR*    pszPath,
00456     HWND            hWndParent,
00457     HWND            hwndProgress,
00458     ECodeType       nCharCode,
00459     FILETIME*       pFileTime,
00460     CEOL            cEol,
00461     BOOL            bBomExist
00462 )
00463 {
00464     int             nLineNumber;
00465     int             nWriteLen;
00466     CDocLine*       pCDocLine;
00467
00468
00469     if( NULL != hwndProgress ){
00470 		::PostMessageAny( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00471 		::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00472     }
00473
00474     EConvertResult      nRetVal = RESULT_COMPLETE;
00475
00476     try
00477     {
00478         CFileWrite file(pszPath);// 2002/05/22 Frozen
00479
00480         //  Jul. 26, 2003 ryoji bBomExitによってBOMを付けるかどうかを決める
00481         if (bBomExist) {
00482             switch( nCharCode ){
00483             case CODE_UNICODE:
00484                 file.WriteSz( "\xff\xfe" );
00485                 break;
00486             case CODE_UNICODEBE:
00487                 file.WriteSz( "\xfe\xff" );
00488                 break;
00489             case CODE_UTF8: // 2003.05.04 Moca BOMの間違いを訂正
00490                 file.WriteSz( "\xef\xbb\xbf" );
00491                 break;
00492             default:
00493                 //  genta ここに来るのはバグだ
00494                 ;
00495             }
00496         }
00497
00498         nLineNumber = 0;
00499         pCDocLine = m_pDocLineTop;
00500
00501         //ファイル書込用バッファ(この中で文字コード変換を行う)
00502
00503         while( NULL != pCDocLine ){
00504             ++nLineNumber;
00505             int             nLineLen;
00506             const wchar_t*  pLine = pCDocLine->m_cLine.GetStringPtr( &nLineLen );
00507
00508             //1024行書き込むごとにプログレスバーを更新する
00509             if( NULL != hwndProgress && CLogicInt(0) < m_nLines && 0 == ( nLineNumber % 1024 ) ){
00510 				::PostMessageAny( hwndProgress, PBM_SETPOS, nLineNumber * 100 / m_nLines , 0 );
00511                 /* 処理中のユーザー操作を可能にする */
00512                 if( !::BlockingHook( NULL ) ){
00513                     return RESULT_FAILURE;
00514                 }
00515             }
00516
00517             //1行出力 -> cFileCodeBuffer
00518             nWriteLen = nLineLen - pCDocLine->m_cEol.GetLen();
00519             CMemory cFileCodeBuffer;
00520             if( 0 < nWriteLen ){
00521                 CNativeW cmemBuf( pLine, nWriteLen );
00522
00523                 // 書き込み時のコード変換 cmemBuf -> cFileCodeBuffer
00524                 EConvertResult e = CIoBridge::ImplToFile(&cmemBuf,&cFileCodeBuffer,nCharCode);
00525                 if(e==RESULT_LOSESOME){
00526                     if(nRetVal==RESULT_COMPLETE)nRetVal=RESULT_LOSESOME;
00527                 }
00528
00529                 cmemBuf.SetString(L"",0);
00530             }
00531
00532             //改行出力 -> cFileCodeBuffer
00533             if( EOL_NONE != pCDocLine->m_cEol ){
00534
00535 // 2002/05/09 Frozen ここから
00536                 if( nCharCode == CODE_UNICODE ){
00537                     if( cEol==EOL_NONE )
00538                         cFileCodeBuffer.AppendRawData( pCDocLine->m_cEol.GetUnicodeValue(), (Int)pCDocLine->m_cEol.GetLen()*sizeof(wchar_t));
00539                     else
00540                         cFileCodeBuffer.AppendRawData( cEol.GetUnicodeValue(), (Int)cEol.GetLen()*sizeof(wchar_t));
00541                 }else if( nCharCode == CODE_UNICODEBE ){
00542                     /* UnicodeBE の改行コード設定 Moca, 2002/05/26 */
00543                     if( cEol == EOL_NONE ) /*  */
00544                         cFileCodeBuffer.AppendRawData( pCDocLine->m_cEol.GetUnicodeBEValue(), (Int)pCDocLine->m_cEol.GetLen()*sizeof(wchar_t) );
00545                     else
00546                         cFileCodeBuffer.AppendRawData( cEol.GetUnicodeBEValue(), (Int)cEol.GetLen()*sizeof(wchar_t) );
00547                 }else{
00548                     if( cEol == EOL_NONE )
00549                         cFileCodeBuffer.AppendRawData(pCDocLine->m_cEol.GetValue(), (Int)pCDocLine->m_cEol.GetLen());
00550                     else
00551                         cFileCodeBuffer.AppendRawData(cEol.GetValue(), (Int)cEol.GetLen());
00552                 }
00553 // 2002/05/09 Frozen ここまで
00554
00555             }
00556
00557             //cFileCodeBufferを実際に出力 (ここで初めてファイル書込が発生する)
00558             if( 0 < cFileCodeBuffer.GetRawLength() )//{
00559                 file.Write(cFileCodeBuffer.GetRawPtr(),cFileCodeBuffer.GetRawLength());//2002/05/22 Frozen gotoの次の}までをこの一行で置き換え
00560
00561             //次の行へ
00562             pCDocLine = pCDocLine->m_pNext;
00563
00564         }
00565
00566         file.Close();
00567
00568
00569         /* 更新後のファイル時刻の取得
00570          * CloseHandle前ではFlushFileBuffersを呼んでもタイムスタンプが更新
00571          * されないことがある。
00572          */
00573
00574         // 2005.10.20 ryoji FindFirstFileを使うように変更（ファイルがロックされていてもタイムスタンプ取得可能）
00575         FILETIME ftime;
00576         if( GetLastWriteTimestamp( pszPath, ftime )){
00577             *pFileTime = ftime;
00578         }
00579
00580     }
00581     catch(CError_FileOpen)
00582     {
00583 		::MYMESSAGEBOX_A(
00584             hWndParent,
00585             MB_OK | MB_ICONSTOP,
00586             GSTR_APPNAME_A,
00587             "\'%ts\'\n"
00588             "ファイルを保存できません。\n"
00589             "パスが存在しないか、他のアプリケーションで使用されている可能性があります。",
00590             pszPath
00591         );
00592         nRetVal = RESULT_FAILURE;
00593     }
00594     catch(CError_FileWrite)
00595     {
00596         nRetVal = RESULT_FAILURE;
00597     }
00598
00599 //_RETURN_:; 2002/05/22 Frozen 削除（例外処理を使用するのでgoto用のラベルは使用しない）
00600     if( NULL != hwndProgress ){
00601 		::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00602         /* 処理中のユーザー操作を可能にする */
00603         if( !::BlockingHook( NULL ) ){
00604             return RESULT_FAILURE;
00605         }
00606     }
00607
00608     return nRetVal;
00609 }
00610
00611
00612
00613
00614
00615 /* データの削除 */
00616 /*
00617 || 指定行内の文字しか削除できません
00618 || データ変更によって影響のあった、変更前と変更後の行の範囲を返します
00619 || この情報をもとに、レイアウト情報などを更新してください。
00620 ||
00621     @date 2002/03/24 YAZAKI bUndo削除
00622 */
00623 void CDocLineMgr::DeleteData_CDocLineMgr(
00624     CLogicInt   nLine,
00625     CLogicInt   nDelPos,
00626     CLogicInt   nDelLen,
00627     CLogicInt*  pnModLineOldFrom,
00628     CLogicInt*  pnModLineOldTo,
00629     CLogicInt*  pnDelLineOldFrom,
00630     CLogicInt*  pnDelLineOldNum,
00631     CNativeW*   cmemDeleted
00632 )
00633 {
00634 #ifdef _DEBUG
00635     CRunningTimer cRunningTimer( "CDocLineMgr::DeleteData" );
00636 #endif
00637     CDocLine*   pDocLine;
00638     CDocLine*   pDocLine2;
00639     wchar_t*    pData;
00640     CLogicInt   nDeleteLength;
00641     const wchar_t*  pLine;
00642     CLogicInt       nLineLen;
00643     const wchar_t*  pLine2;
00644     CLogicInt       nLineLen2;
00645
00646     *pnModLineOldFrom = nLine;  /* 影響のあった変更前の行(from) */
00647     *pnModLineOldTo = nLine;    /* 影響のあった変更前の行(to) */
00648     *pnDelLineOldFrom = CLogicInt(0);       /* 削除された変更前論理行(from) */
00649     *pnDelLineOldNum = CLogicInt(0);        /* 削除された行数 */
00650 //  cmemDeleted.SetData( "", lstrlen( "" ) );
00651     cmemDeleted->Clear();
00652
00653     pDocLine = GetLineInfo( nLine );
00654     if( NULL == pDocLine ){
00655         return;
00656     }
00657
00658     pDocLine->SetModifyFlg(true);       /* 変更フラグ */
00659
00660     pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
00661
00662     if( nDelPos >= nLineLen ){
00663         return;
00664     }
00665     /* 「改行」を削除する場合は、次の行と連結する */
00666 //  if( ( nDelPos == nLineLen -1 && ( pLine[nDelPos] == CR || pLine[nDelPos] == LF ) )
00667 //   || nDelPos + nDelLen >= nLineLen
00668     if( ( EOL_NONE != pDocLine->m_cEol && nDelPos == nLineLen - pDocLine->m_cEol.GetLen() )
00669      || ( EOL_NONE != pDocLine->m_cEol && nDelPos + nDelLen >  nLineLen - pDocLine->m_cEol.GetLen() )
00670      || ( EOL_NONE == pDocLine->m_cEol && nDelPos + nDelLen >= nLineLen - pDocLine->m_cEol.GetLen() )
00671     ){
00672         /* 実際に削除するバイト数 */
00673         nDeleteLength = nLineLen - nDelPos;
00674
00675         /* 削除されるデータ */
00676         cmemDeleted->SetString( &pLine[nDelPos], nDeleteLength );
00677
00678         /* 次の行の情報 */
00679         if( NULL == ( pDocLine2 = pDocLine->m_pNext ) ){
00680             pData = new wchar_t[nLineLen + 1];
00681             if( nDelPos > 0 ){
00682                 wmemcpy( pData, pLine, nDelPos );
00683             }
00684             if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
00685                 wmemcpy(
00686                     pData + nDelPos,
00687                     pLine + nDelPos + nDeleteLength,
00688                     nLineLen - ( nDelPos + nDeleteLength )
00689                 );
00690             }
00691             pData[ nLineLen - nDeleteLength ] = L'\0';
00692             /* 改行コードの情報を更新 */
00693             pDocLine->m_cEol.SetType( EOL_NONE );
00694
00695             if( 0 < nLineLen - nDeleteLength ){
00696                 pDocLine->m_cLine.SetString( pData, nLineLen - nDeleteLength );
00697             }else{
00698                 // 行の削除
00699                 // 2004.03.18 Moca 関数を使う
00700                 DeleteNode( pDocLine );
00701                 pDocLine = NULL;
00702                 *pnDelLineOldFrom = nLine;  /* 削除された変更前論理行(from) */
00703                 *pnDelLineOldNum = CLogicInt(1);        /* 削除された行数 */
00704             }
00705             delete [] pData;
00706         }
00707         else{
00708             *pnModLineOldTo = nLine + CLogicInt(1); /* 影響のあった変更前の行(to) */
00709             pLine2 = pDocLine2->m_cLine.GetStringPtr( &nLineLen2 );
00710             pData = new wchar_t[nLineLen + nLineLen2 + 1];
00711             if( nDelPos > 0 ){
00712                 wmemcpy( pData, pLine, nDelPos );
00713             }
00714             if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
00715                 wmemcpy(
00716                     pData + nDelPos,
00717                     pLine + nDelPos + nDeleteLength,
00718                     nLineLen - ( nDelPos + nDeleteLength )
00719                 );
00720             }
00721             /* 次の行のデータを連結 */
00722             wmemcpy( pData + (nLineLen - nDeleteLength), pLine2, nLineLen2 );
00723             pData[ nLineLen - nDeleteLength + nLineLen2 ] = L'\0';
00724             pDocLine->m_cLine.SetString( pData, nLineLen - nDeleteLength + nLineLen2 );
00725             /* 改行コードの情報を更新 */
00726             pDocLine->m_cEol = pDocLine2->m_cEol;
00727
00728             /* 次の行を削除 && 次次行とのリストの連結*/
00729             // 2004.03.18 Moca DeleteNode を使う
00730             DeleteNode( pDocLine2 );
00731             pDocLine2 = NULL;
00732             *pnDelLineOldFrom = nLine + CLogicInt(1);   /* 削除された変更前論理行(from) */
00733             *pnDelLineOldNum = CLogicInt(1);            /* 削除された行数 */
00734             delete [] pData;
00735         }
00736     }
00737     else{
00738         /* 実際に削除するバイト数 */
00739         nDeleteLength = nDelLen;
00740
00741         /* 削除されるデータ */
00742         cmemDeleted->SetString( &pLine[nDelPos], nDeleteLength );
00743
00744         pData = new wchar_t[nLineLen + 1];
00745         if( nDelPos > 0 ){
00746             wmemcpy( pData, pLine, nDelPos );
00747         }
00748         if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
00749             wmemcpy(
00750                 pData + nDelPos,
00751                 pLine + nDelPos + nDeleteLength,
00752                 nLineLen - ( nDelPos + nDeleteLength )
00753             );
00754         }
00755         pData[ nLineLen - nDeleteLength ] = L'\0';
00756         if( 0 < nLineLen - nDeleteLength ){
00757             pDocLine->m_cLine.SetString( pData, nLineLen - nDeleteLength );
00758         }else{
00759         }
00760         delete [] pData;
00761     }
00762 //  DUMP();
00763     return;
00764 }
00765
00766
00767
00768
00769
00774 void CDocLineMgr::InsertData_CDocLineMgr(
00775     CLogicInt       nLine,
00776     CLogicInt       nInsPos,
00777     const wchar_t*  pInsData,
00778     CLogicInt       nInsDataLen,
00779     CLogicInt*      pnInsLineNum,   // 挿入によって増えた行の数
00780     CLogicPoint*    pptNewPos       // 挿入された部分の次の位置
00781     /*
00782     CLogicInt*      pnNewLine,      // 挿入された部分の次の位置の行
00783     CLogicInt*      pnNewPos        // 挿入された部分の次の位置のデータ位置
00784     */
00785 )
00786 {
00787     CDocLine*   pDocLine;
00788     CNativeW    cmemPrevLine;
00789     CNativeW    cmemCurLine;
00790     CNativeW    cmemNextLine;
00791     CLogicInt   nAllLinesOld = m_nLines;
00792     CEOL        cEOLTypeNext;
00793
00794     bool        bBookMarkNext;  // 2001.12.03 hor 挿入によるマーク行の制御
00795
00796     pptNewPos->y = nLine;   /* 挿入された部分の次の位置の行 */
00797
00798     //  Jan. 25, 2004 genta
00799     //  挿入文字列長が0の場合に最後までpnNewPosが設定されないので
00800     //  初期値として0ではなく開始位置と同じ値を入れておく．
00801     pptNewPos->x  = nInsPos;        /* 挿入された部分の次の位置のデータ位置 */
00802
00803     /* 挿入データを行終端で区切った行数カウンタ */
00804     *pnInsLineNum = CLogicInt(0);
00805     pDocLine = GetLineInfo( nLine );
00806     if( NULL == pDocLine ){
00807         /* ここでNULLが帰ってくるということは、*/
00808         /* 全テキストの最後の次の行を追加しようとしていることを示す */
00809         cmemPrevLine.SetString(L"");
00810         cmemNextLine.SetString(L"");
00811         cEOLTypeNext.SetType( EOL_NONE );
00812         bBookMarkNext=false;    // 2001.12.03 hor
00813     }
00814     else{
00815         pDocLine->SetModifyFlg(true);       /* 変更フラグ */
00816
00817         CLogicInt       nLineLen;
00818         const wchar_t*  pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
00819         cmemPrevLine.SetString( pLine, nInsPos );
00820         cmemNextLine.SetString( &pLine[nInsPos], nLineLen - nInsPos );
00821
00822         cEOLTypeNext = pDocLine->m_cEol;
00823         bBookMarkNext= pDocLine->IsBookMarked();    // 2001.12.03 hor
00824     }
00825
00826     int         nCount = 0;
00827     CLogicInt   nBgn   = CLogicInt(0);
00828     CLogicInt   nPos   = CLogicInt(0);
00829     CEOL        cEOLType;
00830     for( nPos = CLogicInt(0); nPos < nInsDataLen; ){
00831         if( pInsData[nPos] == L'\n' || pInsData[nPos] == L'\r' ){
00832             /* 行終端子の種類を調べる */
00833             cEOLType.GetTypeFromString( &pInsData[nPos], nInsDataLen - nPos );
00834             /* 行終端子も含めてテキストをバッファに格納 */
00835             cmemCurLine.SetString( &pInsData[nBgn], nPos - nBgn + cEOLType.GetLen() );
00836             nBgn = nPos + CLogicInt(cEOLType.GetLen());
00837             nPos = nBgn;
00838             if( NULL == pDocLine ){
00839                 CDocLine* pDocLineNew = new CDocLine;
00840
00841                 /* 挿入データを行終端で区切った行数カウンタ */
00842                 if( 0 == nCount ){
00843                     this->_PushBottom(pDocLineNew);
00844
00845                     pDocLineNew->m_cLine.SetNativeData( cmemPrevLine );
00846                     pDocLineNew->m_cLine += cmemCurLine;
00847
00848                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
00849                 }
00850                 else{
00851                     this->_PushBottom(pDocLineNew);
00852
00853                     pDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00854
00855                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
00856                 }
00857                 pDocLine = NULL;
00858             }else{
00859                 /* 挿入データを行終端で区切った行数カウンタ */
00860                 if( 0 == nCount ){
00861                     pDocLine->m_cLine.SetNativeData( cmemPrevLine );
00862                     pDocLine->m_cLine += cmemCurLine;
00863
00864                     pDocLine->m_cEol = cEOLType;                        /* 改行コードの種類 */
00865
00866                     // 2001.12.13 hor
00867                     // 行頭で改行したら元の行のマークを新しい行に移動する
00868                     // それ以外なら元の行のマークを維持して新しい行にはマークを付けない
00869                     if(nInsPos==CLogicInt(0)){
00870                         pDocLine->SetBookMark(false);
00871                     }
00872                     else{
00873                         bBookMarkNext=false;
00874                     }
00875
00876                     pDocLine = pDocLine->m_pNext;
00877                 }else{
00878                     CDocLine* pDocLineNew = new CDocLine;
00879
00880                     _Insert(pDocLineNew, pDocLine); //pDocLineの直前に挿入
00881
00882                     pDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00883
00884                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
00885                 }
00886             }
00887
00888             /* 挿入データを行終端で区切った行数カウンタ */
00889             ++nCount;
00890             ++pptNewPos->y; /* 挿入された部分の次の位置の行 */
00891         }else{
00892             ++nPos;
00893         }
00894     }
00895 //  nEOLType = EOL_NONE;
00896     if( CLogicInt(0) < nPos - nBgn || 0 < cmemNextLine.GetStringLength() ){
00897         cmemCurLine.SetString( &pInsData[nBgn], nPos - nBgn );
00898         cmemCurLine += cmemNextLine;
00899         if( NULL == pDocLine ){
00900             CDocLine* pDocLineNew = new CDocLine;
00901             /* 挿入データを行終端で区切った行数カウンタ */
00902             if( 0 == nCount ){
00903                 _PushBottom(pDocLineNew);
00904
00905                 pDocLineNew->m_cLine.SetNativeData( cmemPrevLine );
00906                 pDocLineNew->m_cLine += cmemCurLine;
00907
00908                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
00909
00910             }else{
00911                 _PushBottom(pDocLineNew);
00912
00913                 pDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00914
00915                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
00916
00917             }
00918             pDocLine = NULL;
00919             pptNewPos->x = nPos - nBgn; /* 挿入された部分の次の位置のデータ位置 */
00920         }else{
00921             /* 挿入データを行終端で区切った行数カウンタ */
00922             if( 0 == nCount ){
00923                 pDocLine->m_cLine.SetNativeData( cmemPrevLine );
00924                 pDocLine->m_cLine += cmemCurLine;
00925
00926                 pDocLine->m_cEol = cEOLTypeNext;                        /* 改行コードの種類 */
00927                 // pDocLine->m_nEOLLen = gm_pnEolLenArr[nEOLTypeNext];  /* 改行コードの長さ */
00928
00929                 pDocLine = pDocLine->m_pNext;
00930                 pptNewPos->x = CLogicInt(cmemPrevLine.GetStringLength()) + nPos - nBgn;     /* 挿入された部分の次の位置のデータ位置 */
00931             }
00932             else{
00933                 CDocLine* pDocLineNew = new CDocLine;
00934
00935                 _Insert(pDocLineNew, pDocLine); //pDocLineの直前に挿入
00936
00937                 pDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00938
00939                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
00940                 pDocLineNew->SetBookMark(bBookMarkNext);    // 2001.12.03 hor ブックマークを復元
00941
00942                 pptNewPos->x = nPos - nBgn; /* 挿入された部分の次の位置のデータ位置 */
00943             }
00944         }
00945     }
00946     *pnInsLineNum = m_nLines - nAllLinesOld;
00947     return;
00948 }
00949
00950 //nEOLType nEOLType nEOLTypeNext
00951
00952
00953
00954 /* 現在位置の単語の範囲を調べる */
00955 // 2001/06/23 N.Nakatani WhereCurrentWord()変更 WhereCurrentWord_2をコールするようにした
00956 bool CDocLineMgr::WhereCurrentWord(
00957     CLogicInt   nLineNum,
00958     CLogicInt   nIdx,
00959     CLogicInt*  pnIdxFrom,
00960     CLogicInt*  pnIdxTo,
00961     CNativeW*   pcmcmWord,
00962     CNativeW*   pcmcmWordLeft
00963 )
00964 {
00965     *pnIdxFrom = nIdx;
00966     *pnIdxTo = nIdx;
00967
00968     CDocLine*   pDocLine = GetLineInfo( nLineNum );
00969     if( NULL == pDocLine ){
00970         return false;
00971     }
00972
00973     CLogicInt       nLineLen;
00974     const wchar_t*  pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
00975
00976     /* 現在位置の単語の範囲を調べる */
00977     return CWordParse::WhereCurrentWord_2( pLine, nLineLen, nIdx, pnIdxFrom, pnIdxTo, pcmcmWord, pcmcmWordLeft );
00978 }
00979
00980
00981
00982
00983 // 現在位置の左右の単語の先頭位置を調べる
00984 bool CDocLineMgr::PrevOrNextWord(
00985     CLogicInt   nLineNum,       //  行数
00986     CLogicInt   nIdx,           //  桁数
00987     CLogicInt*  pnColmNew,      //  見つかった位置
00988     BOOL        bLEFT,          //  TRUE:前方（左）へ向かう。FALSE:後方（右）へ向かう。
00989     BOOL        bStopsBothEnds  //  単語の両端で止まる
00990 )
00991 {
00992     using namespace WCODE;
00993
00994     CDocLine*   pDocLine = GetLineInfo( nLineNum );
00995     if( NULL == pDocLine ){
00996         return false;
00997     }
00998
00999     CLogicInt       nLineLen;
01000     const wchar_t*  pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
01001
01002     // ABC D[EOF]となっていたときに、Dの後ろにカーソルを合わせ、単語の左端に移動すると、Aにカーソルがあうバグ修正。YAZAKI
01003     if( nIdx >= nLineLen ){
01004         if (bLEFT && nIdx == nLineLen){
01005         }
01006         else {
01007             nIdx = nLineLen - CLogicInt(1);
01008         }
01009     }
01010     /* 現在位置の文字の種類によっては選択不能 */
01011     if( !bLEFT && ( pLine[nIdx] == CR || pLine[nIdx] == LF ) ){
01012         return false;
01013     }
01014     /* 前の単語か？後ろの単語か？ */
01015     if( bLEFT ){
01016         /* 現在位置の文字の種類を調べる */
01017         ECharKind   nCharKind = CWordParse::WhatKindOfChar( pLine, nLineLen, nIdx );
01018         if( nIdx == 0 ){
01019             return false;
01020         }
01021
01022         /* 文字種類が変わるまで前方へサーチ */
01023         /* 空白とタブは無視する */
01024         int     nCount = 0;
01025         CLogicInt   nIdxNext = nIdx;
01026         CLogicInt   nCharChars = CLogicInt(&pLine[nIdxNext] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nIdxNext] ));
01027         while( nCharChars > 0 ){
01028             CLogicInt       nIdxNextPrev = nIdxNext;
01029             nIdxNext -= nCharChars;
01030             ECharKind nCharKindNext = CWordParse::WhatKindOfChar( pLine, nLineLen, nIdxNext );
01031             /* 空白とタブは無視する */
01032             if( nCharKind == CK_ZEN_NOBASU ){
01033                 if( nCharKindNext == CK_HIRA || nCharKindNext == CK_ZEN_KATA ){
01034                     nCharKind = nCharKindNext;
01035                 }
01036             }
01037             else if( nCharKind == CK_HIRA || nCharKind == CK_ZEN_KATA ){
01038                 if( nCharKindNext == CK_ZEN_NOBASU ){
01039                     nCharKindNext = nCharKind;
01040                 }
01041             }
01042             if( nCharKind != nCharKindNext ){
01043                 /* サーチ開始位置の文字が空白またはタブの場合 */
01044                 if( nCharKind == CK_TAB || nCharKind == CK_SPACE ){
01045                     if ( bStopsBothEnds && nCount ){
01046                         nIdxNext = nIdxNextPrev;
01047                         break;
01048                     }
01049                     nCharKind = nCharKindNext;
01050                 }else{
01051                     if( nCount == 0){
01052                         nCharKind = nCharKindNext;
01053                     }else{
01054                         nIdxNext = nIdxNextPrev;
01055                         break;
01056                     }
01057                 }
01058             }
01059             nCharChars = CLogicInt(&pLine[nIdxNext] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nIdxNext] ));
01060             ++nCount;
01061         }
01062         *pnColmNew = nIdxNext;
01063     }else{
01064         CWordParse::SearchNextWordPosition(pLine, nLineLen, nIdx, pnColmNew, bStopsBothEnds);
01065     }
01066     return true;
01067 }
01068
01069
01070
01071
01072
01078 /* 見つからない場合は０を返す */
01079 int CDocLineMgr::SearchWord(
01080     CLogicPoint             ptSerachBegin,
01081     const wchar_t*          pszPattern,
01082     ESearchDirection        eDirection,
01083     const SSearchOption&    sSearchOption,
01084     CLogicRange*            pMatchRange,
01085     CBregexp*               pRegexp
01086 )
01087 {
01088     CDocLine*   pDocLine;
01089     CLogicInt   nLinePos;
01090     CLogicInt   nIdxPos;
01091     CLogicInt   nIdxPosOld;
01092     const wchar_t*  pLine;
01093     int         nLineLen;
01094     const wchar_t*  pszRes;
01095     int         nHitTo;
01096     int         nHitPos;
01097     int         nHitPosOld;
01098     int         nRetVal = 0;
01099     //  Jun. 10, 2003 Moca
01100     //  lstrlenを毎回呼ばずにnPatternLenを使うようにする
01101     const int   nPatternLen = wcslen( pszPattern ); //2001/06/23 N.Nakatani
01102
01103     // 検索条件の情報 -> pnKey_CharCharsArr
01104     int* pnKey_CharCharsArr = NULL;
01105     CDocLineMgr::CreateCharCharsArr(
01106         pszPattern,
01107         nPatternLen,
01108         &pnKey_CharCharsArr
01109     );
01110
01111     //正規表現
01112     if( sSearchOption.bRegularExp ){
01113         nLinePos = ptSerachBegin.GetY2();       // 検索行＝検索開始行
01114         pDocLine = GetLineInfo( nLinePos );
01115         //前方検索
01116         if( eDirection == SEARCH_BACKWARD ){
01117             //
01118             // 前方(↑)検索(正規表現)
01119             //
01120             nHitTo = ptSerachBegin.x;               // 検索開始位置
01121             nIdxPos = 0;
01122             while( NULL != pDocLine ){
01123                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
01124                 nHitPos     = -1;   // -1:この行でマッチ位置なし
01125                 while( 1 ){
01126                     nHitPosOld = nHitPos;
01127                     nIdxPosOld = nIdxPos;
01128                     if (    nIdxPos <= pDocLine->GetLengthWithoutEOL()
01129                         &&  pRegexp->Match( pLine, nLineLen, nIdxPos ) ){
01130                         // 検索にマッチした！
01131                         nHitPos = pRegexp->GetIndex();
01132                         nIdxPos = pRegexp->GetLastIndex();
01133                         // 長さ０でマッチしたので、この位置で再度マッチしないように、１文字進める
01134                         if (nIdxPos == nHitPos) {
01135                             // 2005-09-02 D.S.Koba GetSizeOfChar
01136                             nIdxPos += (CNativeW::GetSizeOfChar( pLine, nLineLen, nIdxPos ) == 2 ? 2 : 1);
01137                         }
01138                         if( nHitPos >= nHitTo ){
01139                             // マッチしたのは、カーソル位置以降だった
01140                             // すでにマッチした位置があれば、それを返し、なければ前の行へ
01141                             break;
01142                         }
01143                     } else {
01144                         // マッチしなかった
01145                         // すでにマッチした位置があれば、それを返し、なければ前の行へ
01146                         break;
01147                     }
01148                 }
01149
01150                 if ( -1 != nHitPosOld ) {
01151                     // この行でマッチした位置が存在するので、この行で検索終了
01152                     pMatchRange->SetFromX( nHitPosOld );    // マッチ位置from
01153                     pMatchRange->SetToX  ( nIdxPosOld );    // マッチ位置to
01154                     break;
01155                 } else {
01156                     // この行でマッチした位置が存在しないので、前の行を検索へ
01157                     nLinePos--;
01158                     pDocLine = pDocLine->m_pPrev;
01159                     nIdxPos = 0;
01160                     if( NULL != pDocLine ){
01161                         nHitTo = pDocLine->m_cLine.GetStringLength() + 1;       // 前の行のNULL文字(\0)にもマッチさせるために+1 2003.05.16 かろと
01162                     }
01163                 }
01164             }
01165         }
01166         //後方検索
01167         else {
01168             //
01169             // 後方検索(正規表現)
01170             //
01171             nIdxPos = ptSerachBegin.x;
01172             while( NULL != pDocLine ){
01173                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
01174                 if(     nIdxPos <= pDocLine->GetLengthWithoutEOL()
01175                     &&  pRegexp->Match( pLine, nLineLen, nIdxPos ) ){
01176                     // マッチした
01177                     pMatchRange->SetFromX( pRegexp->GetIndex()     );   // マッチ位置from
01178                     pMatchRange->SetToX  ( pRegexp->GetLastIndex() );   // マッチ位置to
01179                     break;
01180                 }
01181                 ++nLinePos;
01182                 pDocLine = pDocLine->m_pNext;
01183                 nIdxPos = 0;
01184             }
01185         }
01186         //
01187         // 正規表現検索の後処理
01188         if ( pDocLine != NULL ) {
01189             // マッチした行がある
01190             pMatchRange->SetFromY(nLinePos); // マッチ行
01191             pMatchRange->SetToY  (nLinePos); // マッチ行
01192             nRetVal = 1;
01193             // レイアウト行では改行文字内の位置を表現できないため、マッチ開始位置を補正
01194             if (pMatchRange->GetFrom().x > pDocLine->GetLengthWithoutEOL()) {
01195                 // \r\n改行時に\nにマッチすると置換できない不具合となるため
01196                 // 改行文字内でマッチした場合、改行文字の始めからマッチしたことにする
01197                 pMatchRange->SetFromX( pDocLine->GetLengthWithoutEOL() );
01198             }
01199         }
01200     }
01201     //単語のみ検索
01202     else if( sSearchOption.bWordOnly ){
01203         /*
01204             2001/06/23 Norio Nakatani
01205             単語単位の検索を試験的に実装。単語はWhereCurrentWord()で判別してますので、
01206             英単語やC/C++識別子などの検索条件ならヒットします。
01207         */
01208
01209         // 前方検索
01210         if( eDirection == SEARCH_BACKWARD ){
01211             nLinePos = ptSerachBegin.GetY2();
01212             pDocLine = GetLineInfo( nLinePos );
01213             CLogicInt nNextWordFrom;
01214             CLogicInt nNextWordFrom2;
01215             CLogicInt nNextWordTo2;
01216             CLogicInt nWork;
01217             nNextWordFrom = ptSerachBegin.GetX2();
01218             while( NULL != pDocLine ){
01219                 if( PrevOrNextWord( nLinePos, nNextWordFrom, &nWork, TRUE, FALSE ) ){
01220                     nNextWordFrom = nWork;
01221                     if( WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL ) ){
01222                         if( nPatternLen == nNextWordTo2 - nNextWordFrom2 ){
01223                             const wchar_t* pData = pDocLine->m_cLine.GetStringPtr();    // 2002/2/10 aroka CMemory変更
01224                             /* 1==大文字小文字の区別 */
01225                             if( (!sSearchOption.bLoHiCase && 0 == _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) ) ||
01226                                 (sSearchOption.bLoHiCase && 0 ==     auto_memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) )
01227                             ){
01228                                 pMatchRange->SetFromY(nLinePos);    // マッチ行
01229                                 pMatchRange->SetToY  (nLinePos);    // マッチ行
01230                                 pMatchRange->SetFromX(nNextWordFrom2);                      // マッチ位置from
01231                                 pMatchRange->SetToX  (pMatchRange->GetFrom().x + nPatternLen);// マッチ位置to
01232                                 nRetVal = 1;
01233                                 goto end_of_func;
01234                             }
01235                         }
01236                         continue;
01237                     }
01238                 }
01239                 /* 前の行を見に行く */
01240                 nLinePos--;
01241                 pDocLine = pDocLine->m_pPrev;
01242                 if( NULL != pDocLine ){
01243                     nNextWordFrom = pDocLine->m_cLine.GetStringLength() - pDocLine->m_cEol.GetLen();
01244                     if( 0 > nNextWordFrom ){
01245                         nNextWordFrom = CLogicInt(0);
01246                     }
01247                 }
01248             }
01249         }
01250         // 後方検索
01251         else{
01252             nLinePos = ptSerachBegin.GetY2();
01253             pDocLine = GetLineInfo( nLinePos );
01254             CLogicInt nNextWordFrom;
01255
01256             CLogicInt nNextWordFrom2;
01257             CLogicInt nNextWordTo2;
01258             nNextWordFrom = ptSerachBegin.GetX2();
01259             while( NULL != pDocLine ){
01260                 if( WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL ) ){
01261                     if( nPatternLen == nNextWordTo2 - nNextWordFrom2 ){
01262                         const wchar_t* pData = pDocLine->m_cLine.GetStringPtr();    // 2002/2/10 aroka CMemory変更
01263                         /* 1==大文字小文字の区別 */
01264                         if( (!sSearchOption.bLoHiCase && 0 ==  _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) ) ||
01265                             (sSearchOption.bLoHiCase && 0 == auto_memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) )
01266                         ){
01267                             pMatchRange->SetFromY(nLinePos);    // マッチ行
01268                             pMatchRange->SetToY  (nLinePos);    // マッチ行
01269                             pMatchRange->SetFromX(nNextWordFrom2);                      // マッチ位置from
01270                             pMatchRange->SetToX  (pMatchRange->GetFrom().x + nPatternLen);// マッチ位置to
01271                             nRetVal = 1;
01272                             goto end_of_func;
01273                         }
01274                     }
01275                     /* 現在位置の左右の単語の先頭位置を調べる */
01276                     if( PrevOrNextWord( nLinePos, nNextWordFrom, &nNextWordFrom, FALSE, FALSE ) ){
01277                         continue;
01278                     }
01279                 }
01280                 /* 次の行を見に行く */
01281                 nLinePos++;
01282                 pDocLine = pDocLine->m_pNext;
01283                 nNextWordFrom = CLogicInt(0);
01284             }
01285         }
01286
01287         nRetVal = 0;
01288         goto end_of_func;
01289     }
01290     //普通の検索 (正規表現でも単語単位でもない)
01291     else{
01292         //前方検索
01293         if( eDirection == SEARCH_BACKWARD ){
01294             nLinePos = ptSerachBegin.GetY2();
01295             nHitTo = ptSerachBegin.x;
01296
01297             nIdxPos = 0;
01298             pDocLine = GetLineInfo( nLinePos );
01299             while( NULL != pDocLine ){
01300                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
01301                 nHitPos = -1;
01302                 while( 1 ){
01303                     nHitPosOld = nHitPos;
01304                     nIdxPosOld = nIdxPos;
01305                     pszRes = SearchString(
01306                         pLine,
01307                         nLineLen,
01308                         nIdxPos,
01309                         pszPattern,
01310                         nPatternLen,
01311                         pnKey_CharCharsArr,
01312                         sSearchOption.bLoHiCase
01313                     );
01314                     if( NULL != pszRes ){
01315                         nHitPos = pszRes - pLine;
01316                         nIdxPos = nHitPos + nPatternLen;    // マッチ文字列長進めるように変更 2005.10.28 Karoto
01317                         if( nHitPos >= nHitTo ){
01318                             if( -1 != nHitPosOld ){
01319                                 pMatchRange->SetFromY(nLinePos);    // マッチ行
01320                                 pMatchRange->SetToY  (nLinePos);    // マッチ行
01321                                 pMatchRange->SetFromX(nHitPosOld);  // マッチ位置from
01322                                 pMatchRange->SetToX  (nIdxPosOld);  // マッチ位置to
01323                                 nRetVal = 1;
01324                                 goto end_of_func;
01325                             }else{
01326                                 break;
01327                             }
01328                         }
01329                     }else{
01330                         if( -1 != nHitPosOld ){
01331                             pMatchRange->SetFromY(nLinePos);    // マッチ行
01332                             pMatchRange->SetToY  (nLinePos);    // マッチ行
01333                             pMatchRange->SetFromX(nHitPosOld);  // マッチ位置from
01334                             pMatchRange->SetToX  (nIdxPosOld);  // マッチ位置to
01335                             nRetVal = 1;
01336                             goto end_of_func;
01337                         }else{
01338                             break;
01339                         }
01340                     }
01341                 }
01342                 nLinePos--;
01343                 pDocLine = pDocLine->m_pPrev;
01344                 nIdxPos = 0;
01345                 if( NULL != pDocLine ){
01346                     nHitTo = pDocLine->m_cLine.GetStringLength();
01347                 }
01348             }
01349             nRetVal = 0;
01350             goto end_of_func;
01351         }
01352         //後方検索
01353         else{
01354             nIdxPos = ptSerachBegin.x;
01355             nLinePos = ptSerachBegin.GetY2();
01356             pDocLine = GetLineInfo( nLinePos );
01357             while( NULL != pDocLine ){
01358                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
01359                 pszRes = SearchString(
01360                     pLine,
01361                     nLineLen,
01362                     nIdxPos,
01363                     pszPattern,
01364                     nPatternLen,
01365                     pnKey_CharCharsArr,
01366                     sSearchOption.bLoHiCase
01367                 );
01368                 if( NULL != pszRes ){
01369                     pMatchRange->SetFromY(nLinePos);    // マッチ行
01370                     pMatchRange->SetToY  (nLinePos);    // マッチ行
01371                     pMatchRange->SetFromX(pszRes - pLine);                          // マッチ位置from (文字単位)
01372                     pMatchRange->SetToX  (pMatchRange->GetFrom().x + nPatternLen);  // マッチ位置to   (文字単位)
01373                     nRetVal = 1;
01374                     goto end_of_func;
01375                 }
01376                 ++nLinePos;
01377                 pDocLine = pDocLine->m_pNext;
01378                 nIdxPos = 0;
01379             }
01380             nRetVal = 0;
01381             goto end_of_func;
01382         }
01383     }
01384 end_of_func:;
01385     if( NULL != pnKey_CharCharsArr ){
01386         delete [] pnKey_CharCharsArr;
01387         pnKey_CharCharsArr = NULL;
01388     }
01389
01390     return nRetVal;
01391 }
01392
01393 /* 検索条件の情報(キー文字列の全角か半角かの配列)作成 */
01394 void CDocLineMgr::CreateCharCharsArr(
01395     const wchar_t*  pszPattern,
01396     int             nSrcLen,
01397     int**           ppnCharCharsArr
01398 )
01399 {
01400     int     i;
01401     int*    pnCharCharsArr;
01402     pnCharCharsArr = new int[nSrcLen];
01403     for( i = 0; i < nSrcLen; /*i++*/ ){
01404         // 2005-09-02 D.S.Koba GetSizeOfChar
01405         pnCharCharsArr[i] = CNativeW::GetSizeOfChar( pszPattern, nSrcLen, i );
01406         if( 0 == pnCharCharsArr[i] ){
01407             pnCharCharsArr[i] = 1;
01408         }
01409         if( 2 == pnCharCharsArr[i] ){
01410             pnCharCharsArr[i + 1] = pnCharCharsArr[i];
01411         }
01412         i+= pnCharCharsArr[i];
01413     }
01414     *ppnCharCharsArr = pnCharCharsArr;
01415     return;
01416 }
01417
01418
01423 const wchar_t* CDocLineMgr::SearchString(
01424     const wchar_t*  pLine,
01425     int             nLineLen,
01426     int             nIdxPos,
01427     const wchar_t*  pszPattern,
01428     int             nPatternLen,
01429     int*            pnCharCharsArr,
01430     bool            bLoHiCase
01431 )
01432 {
01433     if( nLineLen < nPatternLen ){
01434         return NULL;
01435     }
01436     if( 0 >= nPatternLen || 0 >= nLineLen){
01437         return NULL;
01438     }
01439
01440     int nPos;
01441     int nCompareTo;
01442
01443     // 線形探索 (kobake注: 後でCharPointerWに置き換えると、サロゲートペアに対応できます)
01444     nCompareTo = nLineLen - nPatternLen;    //  Mar. 4, 2001 genta
01445
01446     for( nPos = nIdxPos; nPos <= nCompareTo; nPos++ ){
01447         int i;
01448         for( i = 0; i < nPatternLen; i++ ){
01449             if( !bLoHiCase ){   //  英大小文字の同一視
01450                 if( towupper( pLine[nPos + i] ) != towupper( pszPattern[i] ) )
01451                     break;
01452             }
01453             else {
01454                 if( pLine[nPos + i] != pszPattern[i] ){
01455                     break;
01456                 }
01457             }
01458         }
01459         if( i >= nPatternLen ){
01460             return &pLine[nPos];
01461         }
01462     }
01463     return NULL;
01464 }
01465
01466
01467
01468
01476 void CDocLineMgr::DUMP( void )
01477 {
01478 #ifdef _DEBUG
01479     MYTRACE_A( "------------------------\n" );
01480
01481     CDocLine* pDocLine;
01482     CDocLine* pDocLineNext;
01483     CDocLine* pDocLineEnd = NULL;
01484     pDocLine = m_pDocLineTop;
01485
01486     // 正当性を調べる
01487     bool bIncludeCurrent = false;
01488     bool bIncludePrevRefer = false;
01489     CLogicInt nNum = CLogicInt(0);
01490     if( m_pDocLineTop->m_pPrev != NULL ){
01491         MYTRACE_A( "error: m_pDocLineTop->m_pPrev != NULL\n");
01492     }
01493     if( m_pDocLineBot->m_pNext != NULL ){
01494         MYTRACE_A( "error: m_pDocLineBot->m_pNext != NULL\n" );
01495     }
01496     while( NULL != pDocLine ){
01497         if( m_pDocLineCurrent == pDocLine ){
01498             bIncludeCurrent = true;
01499         }
01500         if( m_pCodePrevRefer == pDocLine ){
01501             bIncludePrevRefer = true;
01502         }
01503         if( NULL != pDocLine->m_pNext ){
01504             if( pDocLine->m_pNext == pDocLine ){
01505                 MYTRACE_A( "error: pDocLine->m_pPrev Invalid value.\n" );
01506                 break;
01507             }
01508             if( pDocLine->m_pNext->m_pPrev != pDocLine ){
01509                 MYTRACE_A( "error: pDocLine->m_pNext->m_pPrev != pDocLine.\n" );
01510                 break;
01511             }
01512         }else{
01513             pDocLineEnd = pDocLine;
01514         }
01515         pDocLine = pDocLine->m_pNext;
01516         nNum++;
01517     }
01518
01519     if( pDocLineEnd != m_pDocLineBot ){
01520         MYTRACE_A( "error: pDocLineEnd != m_pDocLineBot" );
01521     }
01522
01523     if( nNum != m_nLines ){
01524         MYTRACE_A( "error: nNum(%d) != m_nLines(%d)\n", nNum, m_nLines );
01525     }
01526     if( false == bIncludeCurrent && m_pDocLineCurrent != NULL ){
01527         MYTRACE_A( "error: m_pDocLineCurrent=%08lxh Invalid value.\n", m_pDocLineCurrent );
01528     }
01529     if( false == bIncludePrevRefer && m_pCodePrevRefer != NULL ){
01530         MYTRACE_A( "error: m_pCodePrevRefer =%08lxh Invalid value.\n", m_pCodePrevRefer );
01531     }
01532
01533     // DUMP
01534     MYTRACE_A( "m_nLines=%d\n", m_nLines );
01535     MYTRACE_A( "m_pDocLineTop=%08lxh\n", m_pDocLineTop );
01536     MYTRACE_A( "m_pDocLineBot=%08lxh\n", m_pDocLineBot );
01537     pDocLine = m_pDocLineTop;
01538     while( NULL != pDocLine ){
01539         pDocLineNext = pDocLine->m_pNext;
01540         MYTRACE_A( "\t-------\n" );
01541         MYTRACE_A( "\tthis=%08lxh\n", pDocLine );
01542         MYTRACE_A( "\tpPrev; =%08lxh\n", pDocLine->m_pPrev );
01543         MYTRACE_A( "\tpNext; =%08lxh\n", pDocLine->m_pNext );
01544
01545         MYTRACE_A( "\tm_enumEOLType =%ls\n", pDocLine->m_cEol.GetName() );
01546         MYTRACE_A( "\tm_nEOLLen =%d\n", pDocLine->m_cEol.GetLen() );
01547
01548
01549 //      MYTRACE_A( "\t[%ls]\n", *(pDocLine->m_pLine) );
01550         MYTRACE_A( "\tpDocLine->m_cLine.GetLength()=[%d]\n", pDocLine->m_cLine.GetStringLength() );
01551         MYTRACE_A( "\t[%ls]\n", pDocLine->m_cLine.GetStringPtr() );
01552
01553
01554         pDocLine = pDocLineNext;
01555     }
01556     MYTRACE_A( "------------------------\n" );
01557 #endif
01558     return;
01559 }
01560
01561 /* 行変更状態をすべてリセット */
01562 /*
01563
01564   ・変更フラグCDocLineオブジェクト作成時にはTRUEである
01565   ・変更回数はCDocLineオブジェクト作成時には1である
01566
01567   ファイルを読み込んだときは変更フラグを FALSEにする
01568   ファイルを読み込んだときは変更回数を 0にする
01569
01570   ファイルを上書きした時は変更フラグを FALSEにする
01571   ファイルを上書きした時は変更回数は変えない
01572
01573   変更回数はUndoしたときに-1される
01574   変更回数が0になった場合は変更フラグをFALSEにする
01575
01576
01577
01578 */
01579 void CDocLineMgr::ResetAllModifyFlag( void )
01580 //      BOOL bResetModifyCount /* 変更回数を0にするかどうか */
01581 //)
01582 {
01583     CDocLine* pDocLine;
01584     CDocLine* pDocLineNext;
01585     pDocLine = m_pDocLineTop;
01586     while( NULL != pDocLine ){
01587         pDocLineNext = pDocLine->m_pNext;
01588         pDocLine->SetModifyFlg(false);      /* 変更フラグ */
01589 //      if( bResetModifyCount ){            /* 変更回数を0にするかどうか */
01590 //          pDocLine->m_nModifyCount = 0;   /* 変更回数 */
01591 //      }
01592
01593         pDocLine = pDocLineNext;
01594     }
01595     return;
01596 }
01597
01598
01599 /* 全行データを返す
01600     改行コードは、CFLF統一される。
01601     @retval 全行データ。freeで開放しなければならない。
01602     @note   Debug版のテストにのみ使用している。
01603 */
01604 wchar_t* CDocLineMgr::GetAllData( int*  pnDataLen )
01605 {
01606     int         nDataLen;
01607     wchar_t*    pLine;
01608     int         nLineLen;
01609     CDocLine*   pDocLine;
01610
01611     pDocLine = m_pDocLineTop;
01612     nDataLen = 0;
01613     while( NULL != pDocLine ){
01614         //  Oct. 7, 2002 YAZAKI
01615         nDataLen += pDocLine->GetLengthWithoutEOL() + 2;    //  \r\nを追加して返すため+2する。
01616         pDocLine = pDocLine->m_pNext;
01617     }
01618
01619     wchar_t* pData;
01620     pData = (wchar_t*)malloc( (nDataLen + 1) * sizeof(wchar_t) );
01621     if( NULL == pData ){
01622 		::MYMESSAGEBOX_A(
01623             NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
01624             "CDocLineMgr::GetAllData()\nメモリ確保に失敗しました。\n%dバイト",
01625             nDataLen + 1
01626         );
01627         return NULL;
01628     }
01629     pDocLine = m_pDocLineTop;
01630
01631     nDataLen = 0;
01632     while( NULL != pDocLine ){
01633         //  Oct. 7, 2002 YAZAKI
01634         nLineLen = pDocLine->GetLengthWithoutEOL();
01635         if( 0 < nLineLen ){
01636             pLine = pDocLine->m_cLine.GetStringPtr();
01637             wmemcpy( &pData[nDataLen], pLine, nLineLen );
01638             nDataLen += nLineLen;
01639         }
01640         pData[nDataLen++] = L'\r';
01641         pData[nDataLen++] = L'\n';
01642         pDocLine = pDocLine->m_pNext;
01643     }
01644     pData[nDataLen] = L'\0';
01645     *pnDataLen = nDataLen;
01646     return pData;
01647 }
01648
01649
01650 /* 行オブジェクトの削除、リスト変更、行数-- */
01651 void CDocLineMgr::DeleteNode( CDocLine* pCDocLine )
01652 {
01653     m_nLines--; /* 全行数 */
01654     if( CLogicInt(0) == m_nLines ){
01655         /* データがなくなった */
01656         Init();
01657         return;
01658     }
01659
01660     if( NULL == pCDocLine->m_pPrev ){
01661         m_pDocLineTop = pCDocLine->m_pNext;
01662     }
01663     else{
01664         pCDocLine->m_pPrev->m_pNext = pCDocLine->m_pNext;
01665     }
01666
01667     if( NULL == pCDocLine->m_pNext ){
01668         m_pDocLineBot = pCDocLine->m_pPrev;
01669     }
01670     else{
01671         pCDocLine->m_pNext->m_pPrev = pCDocLine->m_pPrev;
01672     }
01673
01674     if( m_pCodePrevRefer == pCDocLine ){
01675         m_pCodePrevRefer = pCDocLine->m_pNext;
01676     }
01677     delete pCDocLine;
01678
01679     return;
01680 }
01681
01682
01683
01684 /* 行オブジェクトの挿入、リスト変更、行数++ */
01685 /* pCDocLinePrevの次にpCDocLineを挿入する */
01686 /* NULL==pCDocLinePrevのときリストの先頭に挿入 */
01687 void CDocLineMgr::InsertNode( CDocLine* pCDocLinePrev, CDocLine* pCDocLine )
01688 {
01689     pCDocLine->m_pPrev = pCDocLinePrev;
01690     if( NULL != pCDocLinePrev ){
01691         pCDocLine->m_pNext = pCDocLinePrev->m_pNext;
01692         pCDocLinePrev->m_pNext = pCDocLine;
01693     }else{
01694         pCDocLine->m_pNext = m_pDocLineTop;
01695         m_pDocLineTop = pCDocLine;
01696     }
01697     if( NULL != pCDocLine->m_pNext ){
01698         pCDocLine->m_pNext->m_pPrev = pCDocLine;
01699     }else{
01700         m_pDocLineBot = pCDocLine;
01701     }
01702     m_pDocLineTop = pCDocLine;
01703     m_nLines++; /* 全行数 */
01704     return;
01705
01706 }
01707
01708
01709 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01710 //                         実装補助                            //
01711 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01712
01713 // -- -- チェーン関数 -- -- // 2007.10.11 kobake 作成
01715 void CDocLineMgr::_PushBottom(CDocLine* pDocLineNew)
01716 {
01717     if( !m_pDocLineTop ){
01718         m_pDocLineTop = pDocLineNew;
01719     }
01720     pDocLineNew->m_pPrev = m_pDocLineBot;
01721
01722     if( m_pDocLineBot ){
01723         m_pDocLineBot->m_pNext = pDocLineNew;
01724     }
01725     m_pDocLineBot = pDocLineNew;
01726     pDocLineNew->m_pNext = NULL;
01727
01728     ++m_nLines;
01729 }
01730
01732 void CDocLineMgr::_Insert(CDocLine* pDocLineNew, CDocLine* pPos)
01733 {
01734     pDocLineNew->m_pPrev = pPos->m_pPrev;
01735     pDocLineNew->m_pNext = pPos;
01736     pPos->m_pPrev->m_pNext = pDocLineNew;
01737     pPos->m_pPrev = pDocLineNew;
01738
01739     ++m_nLines;
01740 }
01741
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr.h

sakura_core

CDocLineMgr.h

行データの管理 [詳細]

#include <windows.h>
#include "global.h"
#include "CEol.h"
#include "basis/SakuraBasis.h"
#include "charset/CCodeBase.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 Nov 17 20:25:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr.h ソースファイル

sakura_core

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 #include "basis/SakuraBasis.h"
00032 #include "charset/CCodeBase.h"
00033
00034 struct DocLineReplaceArg {
00035     CLogicRange     sDelRange;
00036     CNativeW*       pcmemDeleted;
00037     CLogicInt       nDeletedLineNum;
00038     const wchar_t*  pInsData;
00039     int             nInsDataLen;
00040     CLogicInt       nInsLineNum;
00041     CLogicPoint     ptNewPos;
00042 };
00043
00044 /*-----------------------------------------------------------------------
00045 クラスの宣言
00046 -----------------------------------------------------------------------*/
00047 //2007.09.30 kobake WhereCurrentWord_2 を CWordParse に移動
00048 class SAKURA_CORE_API CDocLineMgr
00049 {
00050 public:
00051     /*
00052     ||  Constructors
00053     */
00054     CDocLineMgr();
00055     ~CDocLineMgr();
00056
00057     /*
00058     ||  参照系
00059     */
00060     wchar_t* GetAllData( int* );    /* 全行データを返す */
00061     CLogicInt GetLineCount( void ) { return m_nLines; } /* 全行数を返す */
00062     const wchar_t* GetLineStr( CLogicInt , CLogicInt* );
00063     const wchar_t* GetLineStrWithoutEOL( CLogicInt , int* ); // 2003.06.22 Moca
00064     const wchar_t* GetFirstLinrStr( int* ); /* 順アクセスモード：先頭行を得る */
00065     const wchar_t* GetNextLinrStr( int* );  /* 順アクセスモード：次の行を得る */
00066
00067     bool WhereCurrentWord( CLogicInt , CLogicInt , CLogicInt* , CLogicInt*, CNativeW*, CNativeW* ); /* 現在位置の単語の範囲を調べる */
00068
00069     bool PrevOrNextWord( CLogicInt , CLogicInt , CLogicInt* , BOOL bLEFT, BOOL bStopsBothEnds );    /* 現在位置の左右の単語の先頭位置を調べる */
00070     //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00071     int SearchWord( CLogicPoint ptSerachBegin, const wchar_t* , ESearchDirection eDirection, const SSearchOption& sSearchOption , CLogicRange* pMatchRange, CBregexp* ); /* 単語検索 */
00072 //  static char* SearchString( const unsigned char*, int, int , const unsigned char* , int, int*, int*, int ); /* 文字列検索 */
00073     static const wchar_t* SearchString( const wchar_t*, int, int , const wchar_t* , int, int*, bool ); /* 文字列検索 */
00074     static void CreateCharCharsArr( const wchar_t*, int, int** );   /* 検索条件の情報 */
00075 //  static void CreateCharUsedArr( const unsigned char*, int, const int*, int** ); /* 検索条件の情報(キー文字列の使用文字表)作成 */
00076
00077
00078
00079     void DUMP( void );
00080     void ResetAllModifyFlag( void );    /* 行変更状態をすべてリセット */
00081
00082
00083 // From Here 2001.12.03 hor
00084     void ResetAllBookMark( void );          /* ブックマークの全解除 */
00085     int SearchBookMark( CLogicInt nLineNum, ESearchDirection , CLogicInt* pnLineNum ); /* ブックマーク検索 */
00086 // To Here 2001.12.03 hor
00087
00088     //@@@ 2002.05.25 MIK
00089     void ResetAllDiffMark( void );          /* 差分表示の全解除 */
00090     int SearchDiffMark( CLogicInt , ESearchDirection , CLogicInt* ); /* 差分検索 */
00091     void SetDiffMarkRange( int nMode, CLogicInt nStartLine, CLogicInt nEndLine );   /* 差分範囲の登録 */
00092     bool IsDiffUse( void ) const { return m_bIsDiffUse; }   /* DIFF使用中 */
00093
00094 // From Here 2002.01.16 hor
00095     void MarkSearchWord( const wchar_t* , const SSearchOption& , CBregexp* ); /* 検索条件に該当する行にブックマークをセットする */
00096     void SetBookMarks( wchar_t* ); /* 物理行番号のリストからまとめて行マーク */
00097     wchar_t* GetBookMarks( void ); /* 行マークされてる物理行番号のリストを作る */
00098 // To Here 2001.01.16 hor
00099
00100     /*
00101     || 更新系
00102     */
00103     void Init();
00104     void Empty();
00105
00106     //  May 15, 2000 genta
00107     void AddLineStrX( const wchar_t*, int, CEOL );  /* 末尾に行を追加 Ver1.5 */
00108
00109     void DeleteData_CDocLineMgr(
00110         CLogicInt   nLine,
00111         CLogicInt   nDelPos,
00112         CLogicInt   nDelLen,
00113         CLogicInt*  pnModLineOldFrom,   /* 影響のあった変更前の行(from) */
00114         CLogicInt*  pnModLineOldTo,     /* 影響のあった変更前の行(to) */
00115         CLogicInt*  pnDelLineOldFrom,   /* 削除された変更前論理行(from) */
00116         CLogicInt*  pnDelLineOldNum,    /* 削除された行数 */
00117         CNativeW*   cmemDeleted         /* 削除されたデータ */
00118     );
00119
00120     /* 指定範囲のデータを置換(削除 & データを挿入)
00121       Fromを含む位置からToの直前を含むデータを削除する
00122       Fromの位置へテキストを挿入する
00123     */
00124     void CDocLineMgr::ReplaceData( DocLineReplaceArg* );
00125     void DeleteNode( CDocLine* );/* 行オブジェクトの削除、リスト変更、行数-- */
00126     void InsertNode( CDocLine*, CDocLine* );    /* 行オブジェクトの挿入、リスト変更、行数++ */
00127
00128     /* データの挿入 */
00129     void InsertData_CDocLineMgr(
00130         CLogicInt       nLine,
00131         CLogicInt       nInsPos,
00132         const wchar_t*  pInsData,
00133         CLogicInt       nInsDataLen,
00134         CLogicInt*      pnInsLineNum,   // 挿入によって増えた行の数
00135         CLogicPoint*    pptNewPos       // 挿入された部分の次の位置
00136     );
00137
00138     //  Nov. 12, 2000 genta 引数追加
00139     //  Jul. 26, 2003 ryoji BOM引数追加
00140     int ReadFile( const TCHAR* pszPath, HWND, HWND, ECodeType, FILETIME*, int extraflag, BOOL* pbBomExist = NULL );
00141
00142     //  Feb. 6, 2001 genta 引数追加(改行コード設定)
00143     //  Jul. 26, 2003 ryoji BOM引数追加
00144     EConvertResult WriteFile( const TCHAR*, HWND, HWND, ECodeType, FILETIME*, CEOL, BOOL bBomExist = FALSE );
00145
00146     CDocLine* GetLineInfo( CLogicInt nLine );
00147     // 2002/2/10 aroka メンバを private にしてアクセサ追加
00148     CDocLine* GetDocLineTop() const { return m_pDocLineTop; }
00149     CDocLine* GetDocLineBottom() const { return m_pDocLineBot; }
00150
00151     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00152     //                         実装補助                            //
00153     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00154 protected:
00155     // -- -- チェーン関数 -- -- // 2007.10.11 kobake 作成
00156     void _PushBottom(CDocLine* pDocLineNew);
00157     void _Insert(CDocLine* pDocLineNew, CDocLine* pPos);
00158
00159     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00160     //                        メンバ変数                           //
00161     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00162 private:
00163     CDocLine*   m_pDocLineTop; //最初の行
00164     CDocLine*   m_pDocLineBot; //最後の行(※1行しかない場合はm_pDocLineTopと等しくなる)
00165     CDocLine*   m_pDocLineCurrent;  /* 順アクセス時の現在位置 */
00166     CLogicInt   m_nLines;       /* 全行数 */
00167     CLogicInt   m_nPrevReferLine;
00168     CDocLine*   m_pCodePrevRefer;
00169     bool        m_bIsDiffUse;   /* DIFF差分表示実施中 */ //@@@ 2002.05.25 MIK
00170 };
00171
00172
00174 #endif /* _CDOCLINEMGR_H_ */
00175
00176
00177 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr_New.cpp

sakura_core

CDocLineMgr_New.cpp

行データの管理 [詳細]

#include "stdafx.h"
#include "charcode.h"
#include "CDocLineMgr.h"
#include "debug.h"
#include <commctrl.h>
#include "global.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 Nov 17 20:25:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDocLineMgr_New.cpp ソースファイル

sakura_core

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 <commctrl.h>
00024 #include "global.h"
00025 #include "CRunningTimer.h"
00026 #include "CDlgCancel.h"
00027 #include "CDocLine.h"// 2002/2/10 aroka
00028 #include "CMemory.h"// 2002/2/10 aroka
00029 #include "CBregexp.h"// 2002/2/10 aroka
00030 #include "sakura_rc.h"// 2002/2/10 aroka
00031 #include "my_icmp.h" // 2002/11/30 Moca 追加
00032
00033 /* 指定範囲のデータを置換(削除 & データを挿入)
00034   Fromを含む位置からToの直前を含むデータを削除する
00035   Fromの位置へテキストを挿入する
00036 */
00037 void CDocLineMgr::ReplaceData( DocLineReplaceArg* pArg )
00038 {
00039     MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::ReplaceData()" );
00040
00041     /* 挿入によって増えた行の数 */
00042     pArg->nInsLineNum = CLogicInt(0);
00043     /* 削除した行の総数 */
00044     pArg->nDeletedLineNum = CLogicInt(0);
00045     /* 削除されたデータ */
00046     pArg->pcmemDeleted->SetString(L"");
00047
00048     CDocLine* pCDocLine;
00049     CDocLine* pCDocLinePrev;
00050     CDocLine* pCDocLineNext;
00051     CDocLine* pCDocLineNew;
00052     int nWorkPos;
00053     int nWorkLen;
00054     const wchar_t* pLine;
00055     int nLineLen;
00056     int i;
00057     int         nBgn;
00058     int         nPos;
00059     CLogicInt   nAllLinesOld;
00060     int         nCount;
00061     int         nProgress;
00062     CNativeW    cmemPrevLine;
00063     CNativeW    cmemCurLine;
00064     CNativeW    cmemNextLine;
00065     //  May 15, 2000
00066     CEOL cEOLType;
00067     CEOL cEOLTypeNext;
00068     HWND        hwndCancel = NULL;  //  初期化
00069     HWND        hwndProgress = NULL;    //  初期化
00070
00071     pArg->ptNewPos = pArg->sDelRange.GetFrom();
00072
00073     /* 大量のデータを操作するとき */
00074     CDlgCancel* pCDlgCancel = NULL;
00075     if( 3000 < pArg->sDelRange.GetTo().y - pArg->sDelRange.GetFrom().y
00076      || 1024000 < pArg->nInsDataLen
00077     ){
00078
00079         /* 進捗ダイアログの表示 */
00080         pCDlgCancel = new CDlgCancel;
00081         if( NULL != ( hwndCancel = pCDlgCancel->DoModeless( ::GetModuleHandle( NULL ), NULL, IDD_OPERATIONRUNNING ) ) ){
00082             hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS );
00083 			::SendMessageAny( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100) );
00084  			::SendMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00085         }
00086     }
00087
00088
00089     // 削除データの取得のループ
00090     /* 前から処理していく */
00091     /* 現在行の情報を得る */
00092     pCDocLine = GetLineInfo( pArg->sDelRange.GetFrom().GetY2() );
00093     for( i = pArg->sDelRange.GetFrom().y; i <= pArg->sDelRange.GetTo().y && NULL != pCDocLine; i++ ){
00094         pLine = pCDocLine->m_cLine.GetStringPtr(); // 2002/2/10 aroka CMemory変更
00095         nLineLen = pCDocLine->m_cLine.GetStringLength(); // 2002/2/10 aroka CMemory変更
00096         pCDocLinePrev = pCDocLine->m_pPrev;
00097         pCDocLineNext = pCDocLine->m_pNext;
00098         /* 現在行の削除開始位置を調べる */
00099         if( i == pArg->sDelRange.GetFrom().y ){
00100             nWorkPos = pArg->sDelRange.GetFrom().x;
00101         }else{
00102             nWorkPos = 0;
00103         }
00104         /* 現在行の削除データ長を調べる */
00105         if( i == pArg->sDelRange.GetTo().y ){
00106             nWorkLen = pArg->sDelRange.GetTo().x - nWorkPos;
00107         }else{
00108             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00109         }
00110         if( 0 == nWorkLen ){
00111             /* 前の行へ */
00112             goto next_line;
00113         }
00114         if( 0 > nWorkLen ){
00115 			::MYMESSAGEBOX_A(    NULL, MB_OK | MB_ICONINFORMATION,
00116                 "作者に教えて欲しいエラー",
00117                 "CDocLineMgr::ReplaceData()\n"
00118                 "\n"
00119                 "0 > nWorkLen\nnWorkLen=%d\n"
00120                 "i=%d\n"
00121                 "pArg->sDelRange.GetTo().y=%d", nWorkLen, i, pArg->sDelRange.GetTo().y
00122             );
00123         }
00124
00125         /* 改行も削除するんかぃのぉ・・・？ */
00126         if( EOL_NONE != pCDocLine->m_cEol &&
00127             nWorkPos + nWorkLen > nLineLen - pCDocLine->m_cEol.GetLen() // 2002/2/10 aroka CMemory変更
00128         ){
00129             /* 削除する長さに改行も含める */
00130             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00131         }
00132         /* 削除されたデータを保存 */
00133         // 2002/2/10 aroka from here CMemory変更 念のため。
00134         if( pLine != pCDocLine->m_cLine.GetStringPtr() ){
00135 			::MYMESSAGEBOX_A(    NULL, MB_OK | MB_ICONINFORMATION, "作者に教えて欲しいエラー",
00136                 "CDocLineMgr::ReplaceData()\n"
00137                 "\n"
00138                 "pLine != pCDocLine->m_cLine.GetPtr() =%d\n"
00139                 "i=%d\n"
00140                 "pArg->sDelRange.GetTo().y=%d",
00141                 pLine, i, pArg->sDelRange.GetTo().y
00142             );
00143         }
00144
00145         pArg->pcmemDeleted->AppendString( &pLine[nWorkPos], nWorkLen );
00146
00147 next_line:;
00148         /* 次の行のオブジェクトのポインタ */
00149         pCDocLine = pCDocLineNext;
00150         /* 最近参照した行番号と行データ */
00151         ++m_nPrevReferLine;
00152         m_pCodePrevRefer = pCDocLine;
00153
00154         if( NULL != hwndCancel){
00155             if( 0 != (i - pArg->sDelRange.GetFrom().y) && ( 0 == ((i - pArg->sDelRange.GetFrom().y) % 32)) ){
00156                 nProgress = (i - pArg->sDelRange.GetFrom().y) * 100 / (pArg->sDelRange.GetTo().y - pArg->sDelRange.GetFrom().y) / 2;
00157 				::SendMessageAny( hwndProgress, PBM_SETPOS, nProgress, 0 );
00158
00159             }
00160         }
00161     } // 削除データの取得のループ
00162
00163
00164     /* 現在行の情報を得る */
00165     pCDocLine = GetLineInfo( pArg->sDelRange.GetTo().GetY2() );
00166     i = pArg->sDelRange.GetTo().y;
00167     if( 0 < pArg->sDelRange.GetTo().y && NULL == pCDocLine ){
00168         pCDocLine = GetLineInfo( pArg->sDelRange.GetTo().GetY2() - CLogicInt(1) );
00169         i--;
00170     }
00171     /* 後ろから処理していく */
00172     for( ; i >= pArg->sDelRange.GetFrom().y && NULL != pCDocLine; i-- ){
00173         pLine = pCDocLine->m_cLine.GetStringPtr(); // 2002/2/10 aroka CMemory変更
00174         nLineLen = pCDocLine->m_cLine.GetStringLength(); // 2002/2/10 aroka CMemory変更
00175         pCDocLinePrev = pCDocLine->m_pPrev;
00176         pCDocLineNext = pCDocLine->m_pNext;
00177         /* 現在行の削除開始位置を調べる */
00178         if( i == pArg->sDelRange.GetFrom().y ){
00179             nWorkPos = pArg->sDelRange.GetFrom().x;
00180         }else{
00181             nWorkPos = 0;
00182         }
00183         /* 現在行の削除データ長を調べる */
00184         if( i == pArg->sDelRange.GetTo().y ){
00185             nWorkLen = pArg->sDelRange.GetTo().x - nWorkPos;
00186         }else{
00187             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00188         }
00189
00190         if( 0 == nWorkLen ){
00191             /* 前の行へ */
00192             goto prev_line;
00193         }
00194         /* 改行も削除するんかぃのぉ・・・？ */
00195         if( EOL_NONE != pCDocLine->m_cEol &&
00196             nWorkPos + nWorkLen > nLineLen - pCDocLine->m_cEol.GetLen() // 2002/2/10 aroka CMemory変更
00197         ){
00198             /* 削除する長さに改行も含める */
00199             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00200         }
00201
00202
00203         /* 行全体の削除 */
00204         if( nWorkLen >= nLineLen ){ // 2002/2/10 aroka CMemory変更
00205             /* 削除した行の総数 */
00206             ++(pArg->nDeletedLineNum);
00207             /* 行オブジェクトの削除、リスト変更、行数-- */
00208             DeleteNode( pCDocLine );
00209             pCDocLine = NULL;
00210         }
00211         /* 次の行と連結するような削除 */
00212         else if( nWorkPos + nWorkLen >= nLineLen ){ // 2002/2/10 aroka CMemory変更
00213
00214             /* 行内データ削除 */
00215             {// 20020119 aroka ブロック内に pWork を閉じ込めた
00216                 wchar_t* pWork = new wchar_t[nWorkPos + 1];
00217                 auto_memcpy( pWork, pLine, nWorkPos ); // 2002/2/10 aroka 何度も GetPtr を呼ばない
00218                 pCDocLine->m_cLine.SetString( pWork, nWorkPos );
00219                 delete [] pWork;
00220             }
00221
00222             /* 次の行がある */
00223             if( pCDocLineNext ){
00224                 /* 改行コードの情報を更新 (次の行からもらう) */
00225                 pCDocLine->m_cEol = pCDocLineNext->m_cEol;  /* 改行コードの種類 */
00226
00227                 /* 次の行のデータを最後に追加 */
00228                 // 2002/2/10 aroka 直接 CMemory を Append
00229                 //pLine2 = pCDocLineNext->m_cLine.GetPtr();
00230                 //nLineLen2 = pCDocLineNext->m_cLine.GetLength();
00231                 pCDocLine->m_cLine.AppendNativeData( pCDocLineNext->m_cLine );
00232                 /* 次の行 行オブジェクトの削除 */
00233                 DeleteNode( pCDocLineNext );
00234                 pCDocLineNext = NULL;
00235                 /* 削除した行の総数 */
00236                 ++(pArg->nDeletedLineNum);
00237             }else{
00238                 /* 改行コードの情報を更新 */
00239                 pCDocLine->m_cEol.SetType( EOL_NONE );
00240             }
00241             pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00242         }else{
00243         /* 行内だけの削除 */
00244             {// 20020119 aroka ブロック内に pWork を閉じ込めた
00245                 // 2002/2/10 aroka CMemory変更 何度も GetLength,GetPtr をよばない。
00246                 int nLength = pCDocLine->m_cLine.GetStringLength();
00247                 wchar_t* pWork = new wchar_t[nLength - nWorkLen + 1];
00248                 wmemcpy( pWork, pLine, nWorkPos );
00249
00250                 wmemcpy( &pWork[nWorkPos], &pLine[nWorkPos + nWorkLen], nLength - ( nWorkPos + nWorkLen ) );
00251
00252                 pCDocLine->m_cLine.SetString( pWork, nLength - nWorkLen );
00253                 delete [] pWork;
00254             }
00255             pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00256         }
00257
00258 prev_line:;
00259         /* 直前の行のオブジェクトのポインタ */
00260         pCDocLine = pCDocLinePrev;
00261         /* 最近参照した行番号と行データ */
00262         --m_nPrevReferLine;
00263         m_pCodePrevRefer = pCDocLine;
00264
00265         if( NULL != hwndCancel){
00266             if( 0 != (pArg->sDelRange.GetTo().y - i) && ( 0 == ((pArg->sDelRange.GetTo().y - i) % 32) ) ){
00267                 nProgress = (pArg->sDelRange.GetTo().y - i) * 100 / (pArg->sDelRange.GetTo().y - pArg->sDelRange.GetFrom().y) / 2 + 50;
00268 				::SendMessageAny( hwndProgress, PBM_SETPOS, nProgress, 0 );
00269             }
00270         }
00271     }
00272
00273
00274     /* データ挿入処理 */
00275     if( 0 == pArg->nInsDataLen ){
00276         goto end_of_func;
00277     }
00278     nAllLinesOld = m_nLines;
00279     pArg->ptNewPos.y = pArg->sDelRange.GetFrom().y; /* 挿入された部分の次の位置の行 */
00280     pArg->ptNewPos.x = 0;   /* 挿入された部分の次の位置のデータ位置 */
00281
00282     /* 挿入データを行終端で区切った行数カウンタ */
00283     nCount = 0;
00284     pArg->nInsLineNum = CLogicInt(0);
00285     pCDocLine = GetLineInfo( pArg->sDelRange.GetFrom().GetY2() );
00286
00287
00288
00289     if( NULL == pCDocLine ){
00290         /* ここでNULLが帰ってくるということは、*/
00291         /* 全テキストの最後の次の行を追加しようとしていることを示す */
00292         cmemPrevLine.SetString(L"");
00293         cmemNextLine.SetString(L"");
00294         cEOLTypeNext.SetType( EOL_NONE );
00295         // ::MessageBoxA( NULL, "pDocLine==NULL","Warning",MB_OK);
00296     }else{
00297         pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00298
00299         // 2002/2/10 aroka 何度も GetPtr を呼ばない
00300         pLine = pCDocLine->m_cLine.GetStringPtr( &nLineLen );
00301         cmemPrevLine.SetString( pLine, pArg->sDelRange.GetFrom().x );
00302         cmemNextLine.SetString( &pLine[pArg->sDelRange.GetFrom().x], nLineLen - pArg->sDelRange.GetFrom().x );
00303
00304         cEOLTypeNext = pCDocLine->m_cEol;
00305     }
00306     nBgn = 0;
00307     for( nPos = 0; nPos < pArg->nInsDataLen; ){
00308         if( pArg->pInsData[nPos] == '\n' || pArg->pInsData[nPos] == '\r' ){
00309             /* 行終端子の種類を調べる */
00310             cEOLType.GetTypeFromString( &(pArg->pInsData[nPos]), pArg->nInsDataLen - nPos );
00311             /* 行終端子も含めてテキストをバッファに格納 */
00312             cmemCurLine.SetString( &(pArg->pInsData[nBgn]), nPos - nBgn + cEOLType.GetLen() );
00313             nBgn = nPos + cEOLType.GetLen();
00314             nPos = nBgn;
00315             if( NULL == pCDocLine){
00316                 pCDocLineNew = new CDocLine;
00317
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_cLine.SetNativeData( cmemPrevLine );
00330                     pCDocLineNew->m_cLine += 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_cLine.SetNativeData( cmemCurLine );
00341
00342                     pCDocLineNew->m_cEol = cEOLType;    /* 改行コードの種類 */
00343                 }
00344                 pCDocLine = NULL;
00345                 ++m_nLines;
00346             }else{
00347                 /* 挿入データを行終端で区切った行数カウンタ */
00348                 if( 0 == nCount ){
00349                     pCDocLine->m_cLine.SetNativeData( cmemPrevLine );
00350                     pCDocLine->m_cLine += cmemCurLine;
00351
00352                     pCDocLine->m_cEol = cEOLType;   /* 改行コードの種類 */
00353                     pCDocLine = pCDocLine->m_pNext;
00354                 }else{
00355                     pCDocLineNew = new CDocLine;
00356                     pCDocLineNew->m_pPrev = pCDocLine->m_pPrev;
00357                     pCDocLineNew->m_pNext = pCDocLine;
00358                     pCDocLine->m_pPrev->m_pNext = pCDocLineNew;
00359                     pCDocLine->m_pPrev = pCDocLineNew;
00360                     pCDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00361
00362                     pCDocLineNew->m_cEol = cEOLType;    /* 改行コードの種類 */
00363
00364                     ++m_nLines;
00365                 }
00366             }
00367
00368             /* 挿入データを行終端で区切った行数カウンタ */
00369             ++nCount;
00370             ++(pArg->ptNewPos.y);   /* 挿入された部分の次の位置の行 */
00371             if( NULL != hwndCancel ){
00372                 if( 0 != pArg->nInsDataLen && ( 0 == (nPos % 1024) ) ){
00373                     nProgress = nPos * 100 / pArg->nInsDataLen;
00374 					::SendMessageAny( hwndProgress, PBM_SETPOS, nProgress, 0 );
00375                 }
00376             }
00377
00378         }else{
00379             ++nPos;
00380         }
00381     }
00382     if( 0 < nPos - nBgn || 0 < cmemNextLine.GetStringLength() ){
00383         cmemCurLine.SetString( &(pArg->pInsData[nBgn]), nPos - nBgn );
00384         cmemCurLine += cmemNextLine;
00385         if( NULL == pCDocLine){
00386             pCDocLineNew = new CDocLine;
00387             /* 挿入データを行終端で区切った行数カウンタ */
00388             if( 0 == nCount ){
00389                 if( NULL == m_pDocLineTop ){
00390                     m_pDocLineTop = pCDocLineNew;
00391                 }
00392                 pCDocLineNew->m_pPrev = m_pDocLineBot;
00393                 if( NULL != m_pDocLineBot ){
00394                     m_pDocLineBot->m_pNext = pCDocLineNew;
00395                 }
00396                 m_pDocLineBot = pCDocLineNew;
00397                 pCDocLineNew->m_pNext = NULL;
00398                 pCDocLineNew->m_cLine.SetNativeData( cmemPrevLine );
00399                 pCDocLineNew->m_cLine += cmemCurLine;
00400
00401                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00402
00403             }else{
00404                 if( NULL != m_pDocLineBot ){
00405                     m_pDocLineBot->m_pNext = pCDocLineNew;
00406                 }
00407                 pCDocLineNew->m_pPrev = m_pDocLineBot;
00408                 m_pDocLineBot = pCDocLineNew;
00409                 pCDocLineNew->m_pNext = NULL;
00410                 pCDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00411
00412                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00413             }
00414             pCDocLine = NULL;
00415             ++m_nLines;
00416             pArg->ptNewPos.x = nPos - nBgn; /* 挿入された部分の次の位置のデータ位置 */
00417         }else{
00418             /* 挿入データを行終端で区切った行数カウンタ */
00419             if( 0 == nCount ){
00420                 pCDocLine->m_cLine.SetNativeData( cmemPrevLine );
00421                 pCDocLine->m_cLine += cmemCurLine;
00422
00423                 pCDocLine->m_cEol = cEOLTypeNext;   /* 改行コードの種類 */
00424
00425                 pCDocLine = pCDocLine->m_pNext;
00426                 pArg->ptNewPos.x = cmemPrevLine.GetStringLength() + nPos - nBgn;    /* 挿入された部分の次の位置のデータ位置 */
00427             }else{
00428                 pCDocLineNew = new CDocLine;
00429                 pCDocLineNew->m_pPrev = pCDocLine->m_pPrev;
00430                 pCDocLineNew->m_pNext = pCDocLine;
00431                 pCDocLine->m_pPrev->m_pNext = pCDocLineNew;
00432                 pCDocLine->m_pPrev = pCDocLineNew;
00433                 pCDocLineNew->m_cLine.SetNativeData( cmemCurLine );
00434
00435                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00436
00437                 ++m_nLines;
00438                 pArg->ptNewPos.x = nPos - nBgn; /* 挿入された部分の次の位置のデータ位置 */
00439             }
00440         }
00441     }
00442     pArg->nInsLineNum = m_nLines - nAllLinesOld;
00443 end_of_func:;
00444     if( NULL != pCDlgCancel ){
00445         delete pCDlgCancel;
00446     }
00447     return;
00448 }
00449
00450
00452 /*
00453     @date 2001.12.03 hor
00454 */
00455 void CDocLineMgr::ResetAllBookMark( void )
00456 {
00457     CDocLine* pDocLine;
00458     pDocLine = m_pDocLineTop;
00459     while( NULL != pDocLine ){
00460         pDocLine->SetBookMark(false);
00461         pDocLine = pDocLine->m_pNext;
00462     }
00463     return;
00464 }
00465
00466
00468 /*
00469     @date 2001.12.03 hor
00470 */
00471 int CDocLineMgr::SearchBookMark(
00472     CLogicInt           nLineNum,       /* 検索開始行 */
00473     ESearchDirection    bPrevOrNext,    /* 0==前方検索 1==後方検索 */
00474     CLogicInt*          pnLineNum       /* マッチ行 */
00475 )
00476 {
00477     CDocLine*   pDocLine;
00478     CLogicInt   nLinePos=nLineNum;
00479
00480     //前方検索
00481     if( bPrevOrNext == SEARCH_BACKWARD ){
00482         nLinePos--;
00483         pDocLine = GetLineInfo( nLinePos );
00484         while( NULL != pDocLine ){
00485             if(pDocLine->IsBookMarked()){
00486                 *pnLineNum = nLinePos;              /* マッチ行 */
00487                 return TRUE;
00488             }
00489             nLinePos--;
00490             pDocLine = pDocLine->m_pPrev;
00491         }
00492     }
00493     //後方検索
00494     else{
00495         nLinePos++;
00496         pDocLine = GetLineInfo( nLinePos );
00497         while( NULL != pDocLine ){
00498             if(pDocLine->IsBookMarked()){
00499                 *pnLineNum = nLinePos;              /* マッチ行 */
00500                 return TRUE;
00501             }
00502             nLinePos++;
00503             pDocLine = pDocLine->m_pNext;
00504         }
00505     }
00506     return FALSE;
00507 }
00508
00509
00511 /*
00512     @date 2002.01.16 hor
00513 */
00514 void CDocLineMgr::MarkSearchWord(
00515     const wchar_t*  pszPattern,
00516     const SSearchOption& sSearchOption,
00517     /*
00518     bool            bRegularExp,        // 1==正規表現
00519     bool            bLoHiCase,          // 1==英大文字小文字の区別
00520     bool            bWordOnly,          // 1==単語のみ検索
00521     */
00522     CBregexp*       pRegexp
00523 )
00524 {
00525     CDocLine*   pDocLine;
00526     const wchar_t*  pLine;
00527     int         nLineLen;
00528     const wchar_t*  pszRes;
00529     int*        pnKey_CharCharsArr;
00530     //  Jun. 10, 2003 Moca
00531     //  wcslenを毎回呼ばずにnPatternLenを使うようにする
00532     const int   nPatternLen = wcslen( pszPattern );
00533
00534     /* 1==正規表現 */
00535     if( sSearchOption.bRegularExp ){
00536         pDocLine = GetLineInfo( CLogicInt(0) );
00537         while( NULL != pDocLine ){
00538             if(!pDocLine->IsBookMarked()){
00539                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
00540                 // 2005.03.19 かろと 前方一致サポートのためのメソッド変更
00541                 if( pRegexp->Match( pLine, nLineLen, 0 ) ){
00542                     pDocLine->SetBookMark(true);
00543                 }
00544             }
00545             pDocLine = pDocLine->m_pNext;
00546         }
00547     }
00548     /* 1==単語のみ検索 */
00549     else if( sSearchOption.bWordOnly ){
00550         pDocLine = GetLineInfo( CLogicInt(0) );
00551         CLogicInt nLinePos = CLogicInt(0);
00552         CLogicInt nNextWordFrom = CLogicInt(0);
00553         CLogicInt nNextWordFrom2;
00554         CLogicInt nNextWordTo2;
00555         while( NULL != pDocLine ){
00556             if(!pDocLine->IsBookMarked() &&
00557                 WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL )) {
00558                 const wchar_t* pData = pDocLine->m_cLine.GetStringPtr(); // 2002/2/10 aroka CMemory変更
00559
00560                 if(( nPatternLen == nNextWordTo2 - nNextWordFrom2 ) &&
00561                    (( !sSearchOption.bLoHiCase && 0 ==  _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen )) ||
00562                     ( sSearchOption.bLoHiCase && 0 == auto_memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen )))){
00563                     pDocLine->SetBookMark(true);
00564                 }
00565                 else if( PrevOrNextWord( nLinePos, nNextWordFrom, &nNextWordFrom, FALSE, FALSE) ){
00566                     continue;
00567                 }
00568             }
00569             /* 次の行を見に行く */
00570             nLinePos++;
00571             pDocLine = pDocLine->m_pNext;
00572             nNextWordFrom = CLogicInt(0);
00573         }
00574     }
00575     else{
00576         /* 検索条件の情報 */
00577         pnKey_CharCharsArr = NULL;
00578         CDocLineMgr::CreateCharCharsArr(
00579             pszPattern,
00580             nPatternLen,
00581             &pnKey_CharCharsArr
00582         );
00583         pDocLine = GetLineInfo( CLogicInt(0) );
00584         while( NULL != pDocLine ){
00585             if(!pDocLine->IsBookMarked()){
00586                 pLine = pDocLine->m_cLine.GetStringPtr( &nLineLen );
00587                 pszRes = SearchString(
00588                     pLine,
00589                     nLineLen,
00590                     0,
00591                     pszPattern,
00592                     nPatternLen,
00593                     pnKey_CharCharsArr,
00594                     sSearchOption.bLoHiCase
00595                 );
00596                 if( NULL != pszRes ){
00597                     pDocLine->SetBookMark(true);
00598                 }
00599             }
00600             pDocLine = pDocLine->m_pNext;
00601         }
00602         if( NULL != pnKey_CharCharsArr ){
00603             delete [] pnKey_CharCharsArr;
00604             pnKey_CharCharsArr = NULL;
00605         }
00606     }
00607     return;
00608
00609 }
00610
00612 /*
00613     @date 2002.01.16 hor
00614 */
00615 void CDocLineMgr::SetBookMarks( wchar_t* pMarkLines )
00616 {
00617     CDocLine*   pCDocLine;
00618     wchar_t *p;
00619     wchar_t delim[] = L", ";
00620     p = pMarkLines;
00621     while(wcstok(p, delim) != NULL) {
00622         while(wcschr(delim, *p) != NULL)p++;
00623         pCDocLine=GetLineInfo( CLogicInt(_wtol(p)) );
00624         if(NULL!=pCDocLine)pCDocLine->SetBookMark(true);
00625         p += wcslen(p) + 1;
00626     }
00627     return;
00628 }
00629
00630
00632 /*
00633     @date 2002.01.16 hor
00634 */
00635 wchar_t* CDocLineMgr::GetBookMarks( void )
00636 {
00637     CDocLine*   pCDocLine;
00638     static wchar_t szText[MAX_MARKLINES_LEN + 1];   //2002.01.17 // Feb. 17, 2003 genta staticに
00639     wchar_t szBuff[10];
00640     CLogicInt   nLinePos=CLogicInt(0);
00641     pCDocLine = GetLineInfo( nLinePos );
00642     wcscpy( szText, L"" );
00643     while( NULL != pCDocLine ){
00644         if(pCDocLine->IsBookMarked()){
00645             auto_sprintf( szBuff, L"%d,",nLinePos );
00646             if(wcslen(szBuff)+wcslen(szText)>MAX_MARKLINES_LEN)break;   //2002.01.17
00647             wcscat( szText, szBuff);
00648         }
00649         nLinePos++;
00650         pCDocLine = pCDocLine->m_pNext;
00651     }
00652     return szText; // Feb. 17, 2003 genta
00653 }
00654
00659 void CDocLineMgr::ResetAllDiffMark( void )
00660 {
00661     CDocLine* pDocLine;
00662
00663     pDocLine = m_pDocLineTop;
00664     while( NULL != pDocLine )
00665     {
00666         pDocLine->SetDiffMark( 0 );
00667         pDocLine = pDocLine->m_pNext;
00668     }
00669
00670     m_bIsDiffUse = false;
00671
00672     return;
00673 }
00674
00679 int CDocLineMgr::SearchDiffMark(
00680     CLogicInt           nLineNum,
00681     ESearchDirection    bPrevOrNext,
00682     CLogicInt*          pnLineNum
00683 )
00684 {
00685     CDocLine*   pDocLine;
00686     CLogicInt   nLinePos = nLineNum;
00687
00688     //前方検索
00689     if( bPrevOrNext == SEARCH_BACKWARD )
00690     {
00691         nLinePos--;
00692         pDocLine = GetLineInfo( nLinePos );
00693         while( NULL != pDocLine )
00694         {
00695             if( pDocLine->IsDiffMarked() )
00696             {
00697                 *pnLineNum = nLinePos;              /* マッチ行 */
00698                 return TRUE;
00699             }
00700             nLinePos--;
00701             pDocLine = pDocLine->m_pPrev;
00702         }
00703     }
00704     //後方検索
00705     else
00706     {
00707         nLinePos++;
00708         pDocLine = GetLineInfo( nLinePos );
00709         while( NULL != pDocLine )
00710         {
00711             if( pDocLine->IsDiffMarked() )
00712             {
00713                 *pnLineNum = nLinePos;              /* マッチ行 */
00714                 return TRUE;
00715             }
00716             nLinePos++;
00717             pDocLine = pDocLine->m_pNext;
00718         }
00719     }
00720     return FALSE;
00721 }
00722
00727 void CDocLineMgr::SetDiffMarkRange( int nMode, CLogicInt nStartLine, CLogicInt nEndLine )
00728 {
00729     CDocLine    *pCDocLine;
00730
00731     m_bIsDiffUse = true;
00732
00733     if( nStartLine < CLogicInt(0) ) nStartLine = CLogicInt(0);
00734
00735     //最終行より後に削除行あり
00736     CLogicInt   nLines = GetLineCount();
00737     if( nLines <= nEndLine )
00738     {
00739         nEndLine = nLines - CLogicInt(1);
00740         pCDocLine = GetLineInfo( nEndLine );
00741         if( NULL != pCDocLine ) pCDocLine->SetDiffMark( MARK_DIFF_DEL_EX );
00742     }
00743
00744     //行範囲にマークをつける
00745     for( CLogicInt i = nStartLine; i <= nEndLine; i++ )
00746     {
00747         pCDocLine = GetLineInfo( i );
00748         if( NULL != pCDocLine ) pCDocLine->SetDiffMark( nMode );
00749     }
00750
00751     return;
00752 }
00753
00754 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDropTarget.cpp

sakura_core

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 Nov 17 20:25:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDropTarget.cpp ソースファイル

sakura_core

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_A( hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME_A,
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_A( "CDropTarget::DragEnter()\n" );
00134 #endif
00135     return m_pCEditView->DragEnter( pDataObject, dwKeyState, pt, pdwEffect );
00136 }
00137 STDMETHODIMP CDropTarget::DragOver( DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
00138 {
00139     return m_pCEditView->DragOver( dwKeyState, pt, pdwEffect );
00140 }
00141 STDMETHODIMP CDropTarget::DragLeave( void )
00142 {
00143     return m_pCEditView->DragLeave();
00144 }
00145
00146
00147 STDMETHODIMP CDropTarget::Drop( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
00148 {
00149     return m_pCEditView->Drop( pDataObject, dwKeyState, pt, pdwEffect );
00150 }
00151
00152
00153 STDMETHODIMP CDropSource::QueryContinueDrag( BOOL bEscapePressed, DWORD dwKeyState )
00154 {
00155     if( bEscapePressed || (dwKeyState & (m_bLeft ? MK_RBUTTON : MK_LBUTTON)) )
00156         return DRAGDROP_S_CANCEL;
00157     if( !(dwKeyState & (m_bLeft ? MK_LBUTTON : MK_RBUTTON)) )
00158         return DRAGDROP_S_DROP;
00159     return S_OK;
00160 }
00161
00162
00163 STDMETHODIMP CDropSource::GiveFeedback( DWORD dropEffect )
00164 {
00165     return DRAGDROP_S_USEDEFAULTCURSORS;
00166 }
00167
00168
00169
00170
00171 void CDataObject::SetText( LPCWSTR lpszText )
00172 {
00173     //Feb. 26, 2001, fixed by yebisuya sugoroku
00174     if( m_data != NULL ){
00175         delete[] m_data;
00176         m_data = NULL;
00177         m_size = 0;
00178         m_cfFormat = 0;
00179     }
00180     if( lpszText != NULL ){
00181         m_size = ( wcslen(lpszText) + 1) * sizeof( wchar_t );
00182         m_data = new BYTE[m_size];
00183         memcpy_raw( m_data, lpszText, m_size) ;
00184         m_cfFormat = CF_UNICODETEXT;
00185     }
00186 }
00187
00188 DWORD CDataObject::DragDrop( BOOL bLeft, DWORD dwEffects )
00189 {
00190     DWORD dwEffect;
00191     CDropSource drop( bLeft );
00192     if( SUCCEEDED( ::DoDragDrop( this, &drop, dwEffects, &dwEffect ) ) )
00193         return dwEffect;
00194     return DROPEFFECT_NONE;
00195 }
00196
00197 STDMETHODIMP CDataObject::GetData( LPFORMATETC lpfe, LPSTGMEDIUM lpsm )
00198 {
00199     //Feb. 26, 2001, fixed by yebisuya sugoroku
00200     if( lpfe == NULL || lpsm == NULL )
00201         return E_INVALIDARG;
00202     if( m_data == NULL )
00203         return OLE_E_NOTRUNNING;
00204     if( lpfe->lindex != -1 )
00205         return DV_E_LINDEX;
00206     if( (lpfe->tymed & TYMED_HGLOBAL) == 0 )
00207         return DV_E_TYMED;
00208     if( lpfe->dwAspect != DVASPECT_CONTENT )
00209         return DV_E_DVASPECT;
00210     if( lpfe->cfFormat != m_cfFormat )
00211         return DV_E_FORMATETC;
00212     if( lpfe->cfFormat != m_cfFormat
00213         || !(lpfe->tymed & TYMED_HGLOBAL)
00214         || lpfe->lindex != -1
00215         || lpfe->dwAspect != DVASPECT_CONTENT )
00216         return DV_E_FORMATETC;
00217
00218     lpsm->tymed = TYMED_HGLOBAL;
00219     lpsm->hGlobal = ::GlobalAlloc( GHND | GMEM_DDESHARE, m_size );
00220     memcpy_raw( ::GlobalLock( lpsm->hGlobal ), m_data, m_size );
00221     ::GlobalUnlock( lpsm->hGlobal );
00222     lpsm->pUnkForRelease = NULL;
00223
00224     return S_OK;
00225 }
00226
00227 STDMETHODIMP CDataObject::GetDataHere( LPFORMATETC lpfe, LPSTGMEDIUM lpsm )
00228 {
00229     //Feb. 26, 2001, fixed by yebisuya sugoroku
00230     if( lpfe == NULL || lpsm == NULL || lpsm->hGlobal == NULL )
00231         return E_INVALIDARG;
00232     if( m_data == NULL )
00233         return OLE_E_NOTRUNNING;
00234
00235     if( lpfe->lindex != -1 )
00236         return DV_E_LINDEX;
00237     if( lpfe->tymed != TYMED_HGLOBAL
00238         || lpsm->tymed != TYMED_HGLOBAL )
00239         return DV_E_TYMED;
00240     if( m_size > ::GlobalSize( lpsm->hGlobal ) )
00241         return STG_E_MEDIUMFULL;
00242     if( lpfe->dwAspect != DVASPECT_CONTENT )
00243         return DV_E_DVASPECT;
00244     if( lpfe->cfFormat != m_cfFormat )
00245         return DV_E_FORMATETC;
00246
00247     memcpy_raw( ::GlobalLock( lpsm->hGlobal ), m_data, m_size );
00248     ::GlobalUnlock( lpsm->hGlobal );
00249
00250     return S_OK;
00251 }
00252
00253 STDMETHODIMP CDataObject::QueryGetData( LPFORMATETC lpfe )
00254 {
00255     if( lpfe == NULL )
00256         return E_INVALIDARG;
00257     //Feb. 26, 2001, fixed by yebisuya sugoroku
00258     if( m_data == NULL )
00259         return OLE_E_NOTRUNNING;
00260
00261     if( lpfe->cfFormat != m_cfFormat
00262         || lpfe->ptd != NULL
00263         || lpfe->dwAspect != DVASPECT_CONTENT
00264         || lpfe->lindex != -1
00265         || !(lpfe->tymed & TYMED_HGLOBAL) )
00266         return DATA_E_FORMATETC;
00267     return S_OK;
00268 }
00269
00270 STDMETHODIMP CDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
00271 {
00272     return DATA_S_SAMEFORMATETC;
00273 }
00274
00275 STDMETHODIMP CDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
00276 {
00277     return E_NOTIMPL;
00278 }
00279
00280 STDMETHODIMP CDataObject::EnumFormatEtc( DWORD, LPENUMFORMATETC* )
00281 {
00282     return E_NOTIMPL;
00283 }
00284
00285 STDMETHODIMP CDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, LPDWORD )
00286 {
00287     return OLE_E_ADVISENOTSUPPORTED;
00288 }
00289
00290 STDMETHODIMP CDataObject::DUnadvise( DWORD )
00291 {
00292     return OLE_E_ADVISENOTSUPPORTED;
00293 }
00294
00295 STDMETHODIMP CDataObject::EnumDAdvise( LPENUMSTATDATA* )
00296 {
00297     return OLE_E_ADVISENOTSUPPORTED;
00298 }
00299
00300
00301 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDropTarget.h

sakura_core

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 Nov 17 20:25:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CDropTarget.h ソースファイル

sakura_core

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          m_data; //データ
00116     unsigned int    m_size; //データサイズ。バイト単位。
00117
00118 public:
00119     CDataObject (LPCWSTR lpszText )
00120     : m_cfFormat( 0 )
00121     , m_data( NULL )
00122     , m_size( 0 )   //Feb. 26, 2001, fixed by yebisuya sugoroku
00123     {
00124         SetText( lpszText );
00125     }
00126     ~CDataObject(){SetText( NULL );}
00127     void    SetText( LPCWSTR lpszText );
00128     DWORD   DragDrop( BOOL bLeft, DWORD dwEffects );
00129
00130     STDMETHOD( GetData )( LPFORMATETC, LPSTGMEDIUM );
00131     STDMETHOD( GetDataHere )( LPFORMATETC, LPSTGMEDIUM );
00132     STDMETHOD( QueryGetData )( LPFORMATETC );
00133     STDMETHOD( GetCanonicalFormatEtc )( LPFORMATETC, LPFORMATETC );
00134     STDMETHOD( SetData )( LPFORMATETC, LPSTGMEDIUM, BOOL );
00135     STDMETHOD( EnumFormatEtc )( DWORD, LPENUMFORMATETC* );
00136     STDMETHOD( DAdvise )( LPFORMATETC, DWORD, LPADVISESINK, LPDWORD );
00137     STDMETHOD( DUnadvise )( DWORD );
00138     STDMETHOD( EnumDAdvise )( LPENUMSTATDATA* );
00139 };
00140
00142 #endif /* _CEDITDROPTARGET_H_ */
00143
00144
00145 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditApp.cpp

sakura_core

CEditApp.cpp

#include "stdafx.h"
#include "CEditApp.h"
#include "util/module.h"
#include "CEditWnd.h"
#include "util/shell.h"
#include "CCommandLine.h"

CEditApp.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditApp.cpp ソースファイル

sakura_core

CEditApp.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CEditApp.h"
00003 #include "util/module.h"
00004 #include "CEditWnd.h"
00005 #include "util/shell.h"
00006 #include "CCommandLine.h"
00007
00008 #pragma warning(disable:4355) //「thisポインタが初期化リストで使用されました」の警告を無効化
00009
00010 CEditApp::CEditApp(HINSTANCE hInst)
00011 : m_hInst(hInst)
00012 , m_cEditDoc(this)
00013 {
00014     //ヘルパ作成
00015     m_cIcons.Create( m_hInst ); //  CreateImage List
00016
00017     //ドキュメントの作成
00018     if( !m_cEditDoc.Create( m_hInst, &m_cIcons ) ){
00019         ErrorMessage( NULL, _T("ドキュメントの作成に失敗しました") );
00020     }
00021
00022     //ウィンドウの作成
00023     m_pcEditWnd = new CEditWnd();
00024     m_pcEditWnd->Create(
00025         hInst,
00026         CCommandLine::Instance()->GetGroupId()
00027     );
00028 }
00029
00030 CEditApp::~CEditApp()
00031 {
00032     delete m_pcEditWnd;
00033 }
00034
00035
00048 LPCTSTR CEditApp::GetHelpFilePath() const
00049 {
00050     static TCHAR szHelpFile[_MAX_PATH] = _T("");
00051     if(szHelpFile[0]==_T('\0')){
00052         GetExedir( szHelpFile, _T("sakura.chm") );
00053     }
00054     return szHelpFile;
00055 }
00056
00057
00058 /* メニューアイテムに対応するヘルプを表示 */
00059 void CEditApp::ShowFuncHelp( HWND hwndParent, EFunctionCode nFuncID ) const
00060 {
00061     /* 機能IDに対応するヘルプコンテキスト番号を返す */
00062     int     nHelpContextID = FuncID_To_HelpContextID( nFuncID );
00063     if( 0 != nHelpContextID ){
00064         // 2006.10.10 ryoji MyWinHelpに変更に変更
00065         MyWinHelp(
00066             hwndParent,
00067             CEditApp::Instance()->GetHelpFilePath(),
00068             HELP_CONTEXT,
00069             nHelpContextID
00070         );
00071     }
00072 }
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditApp.h

sakura_core

CEditApp.h

#include "util/design_template.h"
#include "CEditDoc.h"
#include "CImageListMgr.h"

CEditApp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEditApp
エディタ部分アプリケーションクラス。CNormalProcess1個につき、1個存在。 [詳細]

Sakura-Editorに対してSat Nov 17 20:25:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditApp.h ソースファイル

sakura_core

CEditApp.h

説明を見る。
00001 //2007.10.23 kobake 作成
00002
00003 #pragma once
00004
00005 #include "util/design_template.h"
00006 class CEditWnd;
00007 enum EFunctionCode;
00008 #include "CEditDoc.h"
00009 #include "CImageListMgr.h"
00010
00012 // 2007.10.30 kobake OnHelp_MenuItemをCEditWndから持ってきた
00013 // 2007.10.30 kobake 関数名変更: OnHelp_MenuItem→ShowFuncHelp
00014 class CEditApp : public TSingleInstance<CEditApp>{
00015 public:
00016     //コンストラクタ・デストラクタ
00017     CEditApp(HINSTANCE hInst);
00018     virtual ~CEditApp();
00019
00020     //モジュール情報
00021     HINSTANCE GetAppInstance() const{ return m_hInst; }
00022
00023     //ウィンドウ情報
00024     CEditWnd* GetWindow(){ return m_pcEditWnd; }
00025
00026     //パス情報
00027     LPCTSTR GetHelpFilePath() const;
00028
00029     //ヘルプ関連
00030     void ShowFuncHelp( HWND, EFunctionCode ) const;
00031
00032     CEditDoc&       GetDocument(){ return m_cEditDoc; }
00033     CImageListMgr&  GetIcons(){ return m_cIcons; }
00034
00035
00036 public:
00037     HINSTANCE       m_hInst;
00038
00039     //ウィンドウ
00040     CEditWnd*       m_pcEditWnd;
00041
00042     //ドキュメント
00043     CEditDoc        m_cEditDoc;
00044
00045     //ヘルパ
00046     CImageListMgr   m_cIcons;
00047 };
Sakura-Editorに対してSat Nov 17 20:24:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc.cpp

sakura_core

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 "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 "CClipboard.h"
#include "CLayout.h"
#include "CMemoryIterator.h"
#include "charset/CCodeMediator.h"
#include "io/io_util.h"
#include "util/file.h"
#include "util/window.h"
#include "util/string_ex2.h"
#include "util/format.h"
#include "util/module.h"
#include "CEditApp.h"

ソースコードを見る。

構成

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 の 61 行で定義されています。

参照元 CEditView::Create(), と CEditView::DispatchEvent().

#define MAX_ASM_TOKEN 2

参照元 CEditDoc::MakeTopicList_asm().

Sakura-Editorに対してSat Nov 17 20:25:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc.cpp ソースファイル

sakura_core

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 "global.h"
00040 #include "CFuncInfoArr.h"
00041 #include "CSMacroMgr.h"
00042 #include "CMarkMgr.h"
00043 #include "CDocLine.h"
00044 #include "CPrintPreview.h"
00045 #include "CDlgFileUpdateQuery.h"
00046 #include <assert.h>
00047 #include "my_icmp.h" // 2002/11/30 Moca 追加
00048 #include "my_sp.h" // 2005/11/22 aroka 追加
00049 #include "CClipboard.h"
00050 #include "CLayout.h"    // 2007.08.22 ryoji 追加
00051 #include "CMemoryIterator.h"    // 2007.08.22 ryoji 追加
00052 #include "charset/CCodeMediator.h"
00053 #include "io/io_util.h"
00054 #include "util/file.h"
00055 #include "util/window.h"
00056 #include "util/string_ex2.h"
00057 #include "util/format.h"
00058 #include "util/module.h"
00059 #include "CEditApp.h"
00060
00061 #define IDT_ROLLMOUSE   1
00062
00068 CEditDoc::CEditDoc(CEditApp* pcApp)
00069 : m_pcEditWnd(pcApp->m_pcEditWnd)
00070 , m_cNewLineCode( EOL_CRLF )        //  New Line Type
00071 , m_cSaveLineCode( EOL_NONE )       //  保存時のLine Type
00072 , m_bGrepRunning( FALSE )       /* Grep処理中 */
00073 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00074 , m_nCommandExecNum( 0 )            /* コマンド実行回数 */
00075 // 2004/06/21 novice タグジャンプ機能追加
00076 , m_bReadOnly( false )          /* 読み取り専用モード */
00077 , m_bDebugMode( FALSE )         /* デバッグモニタモード */
00078 , m_bGrepMode( FALSE )          /* Grepモードか */
00079 , m_nCharCode( CODE_DEFAULT )   /* 文字コード種別 */
00080 , m_bBomExist( FALSE )          //  Jul. 26, 2003 ryoji BOM
00081 , m_bDoing_UndoRedo( FALSE )        /* アンドゥ・リドゥの実行中か */
00082 , m_nFileShareModeOld( SHAREMODE_NOT_EXCLUSIVE )        /* ファイルの排他制御モード */
00083 , m_hLockedFile( NULL )         /* ロックしているファイルのハンドル */
00084 , m_pszAppName( _T("EditorClient") )
00085 , m_hInstance( NULL )
00086 , m_eWatchUpdate( CEditDoc::WU_QUERY )
00087 , m_nSettingTypeLocked( false ) //  設定値変更可能フラグ
00088 , m_nSettingType( 0 )   // Sep. 11, 2002 genta
00089 , m_bInsMode( true )    // Oct. 2, 2005 genta
00090 , m_bIsModified( false )    /* 変更フラグ */ // Jan. 22, 2002 genta 型変更
00091 {
00092     MY_RUNNINGTIMER( cRunningTimer, L"CEditDoc::CEditDoc" );
00093 //  m_pcDlgTest = new CDlgTest;
00094
00095     m_szFilePath[0] = '\0';         /* 現在編集中のファイルのパス */
00096     wcscpy( m_szGrepKey, L"" );
00097     /* 共有データ構造体のアドレスを返す */
00098
00099     m_pShareData = CShareData::getInstance()->GetShareData();
00100     //  Sep. 11, 2002 genta 削除
00101     //  SetDocumentTypeはコンストラクタ中では使わない．
00102     //int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
00103     //SetDocumentType( doctype, true );
00104
00105
00106     /* レイアウト管理情報の初期化 */
00107     m_cLayoutMgr.Create( this, &m_cDocLineMgr );
00108     /* レイアウト情報の変更 */
00109     Types& ref = GetDocumentAttribute();
00110     m_cLayoutMgr.SetLayoutInfo(
00111         TRUE,
00112         NULL,/*hwndProgress*/
00113         ref
00114     );
00115 //  MYTRACE_A( "CEditDoc::CEditDoc()おわり\n" );
00116
00117     //  Aug, 21, 2000 genta
00118     //  自動保存の設定
00119     ReloadAutoSaveParam();
00120
00121     //  Sep, 29, 2001 genta
00122     //  マクロ
00123     m_pcSMacroMgr = new CSMacroMgr;
00124     //wcscpy(m_pszCaption, L"sakura");  //@@@   YAZAKI
00125
00126     //  m_FileTimeの初期化
00127     m_FileTime.dwLowDateTime = 0;
00128     m_FileTime.dwHighDateTime = 0;
00129
00130     //  Oct. 2, 2005 genta 挿入モード
00131     SetInsMode( m_pShareData->m_Common.m_sGeneral.m_bIsINSMode != FALSE );
00132
00133     return;
00134 }
00135
00136
00137 CEditDoc::~CEditDoc()
00138 {
00139 //  delete (CDialog*)m_pcDlgTest;
00140 //  m_pcDlgTest = NULL;
00141
00142     if( GetSplitterHwnd() != NULL ){
00143         DestroyWindow( GetSplitterHwnd() );
00144     }
00145     /* ファイルの排他ロック解除 */
00146     delete m_pcSMacroMgr;
00147     DoFileUnLock();
00148     return;
00149 }
00150
00151
00152
00153
00154
00156 //
00157 //  CEditDoc::Create
00158 //  BOOL Create(HINSTANCE hInstance, HWND hwndParent)
00159 //
00160 //  説明
00161 //    ウィンドウの作成等
00162 //
00163 //  @date Sep. 29, 2001 genta マクロクラスを渡すように
00164 //  @date 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00166 BOOL CEditDoc::Create(
00167     HINSTANCE hInstance,
00168     CImageListMgr* pcIcons
00169  )
00170 {
00171     MY_RUNNINGTIMER( cRunningTimer, L"CEditDoc::Create" );
00172
00173     m_hInstance = hInstance;
00174
00175
00176     //  Oct. 2, 2001 genta
00177     m_cFuncLookup.Init( m_hInstance, m_pcSMacroMgr, &m_pShareData->m_Common );
00178
00179
00180     MY_TRACETIME( cRunningTimer, L"End: PropSheet" );
00181
00182     return TRUE;
00183 }
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196 BOOL CEditDoc::SelectFont( LOGFONT* plf )
00197 {
00198     // 2004.02.16 Moca CHOOSEFONTをメンバから外す
00199     CHOOSEFONT cf;
00200     /* CHOOSEFONTの初期化 */
00201     ::ZeroMemory( &cf, sizeof( cf ) );
00202     cf.lStructSize = sizeof( cf );
00203     cf.hwndOwner = GetSplitterHwnd();
00204     cf.hDC = NULL;
00205 //  cf.lpLogFont = &(m_pShareData->m_Common.m_lf);
00206     cf.Flags = CF_FIXEDPITCHONLY | CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00207
00208     //FIXEDフォント以外
00209     #ifdef USE_UNFIXED_FONT
00210         cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00211     #endif
00212
00213     cf.lpLogFont = plf;
00214     if( !ChooseFont( &cf ) ){
00215 #ifdef _DEBUG
00216         DWORD nErr;
00217         nErr = CommDlgExtendedError();
00218         switch( nErr ){
00219         case CDERR_FINDRESFAILURE:  MYTRACE_A( "CDERR_FINDRESFAILURE \n" ); break;
00220         case CDERR_INITIALIZATION:  MYTRACE_A( "CDERR_INITIALIZATION \n" ); break;
00221         case CDERR_LOCKRESFAILURE:  MYTRACE_A( "CDERR_LOCKRESFAILURE \n" ); break;
00222         case CDERR_LOADRESFAILURE:  MYTRACE_A( "CDERR_LOADRESFAILURE \n" ); break;
00223         case CDERR_LOADSTRFAILURE:  MYTRACE_A( "CDERR_LOADSTRFAILURE \n" ); break;
00224         case CDERR_MEMALLOCFAILURE: MYTRACE_A( "CDERR_MEMALLOCFAILURE\n" ); break;
00225         case CDERR_MEMLOCKFAILURE:  MYTRACE_A( "CDERR_MEMLOCKFAILURE \n" ); break;
00226         case CDERR_NOHINSTANCE:     MYTRACE_A( "CDERR_NOHINSTANCE \n" );        break;
00227         case CDERR_NOHOOK:          MYTRACE_A( "CDERR_NOHOOK \n" );         break;
00228         case CDERR_NOTEMPLATE:      MYTRACE_A( "CDERR_NOTEMPLATE \n" );     break;
00229         case CDERR_STRUCTSIZE:      MYTRACE_A( "CDERR_STRUCTSIZE \n" );     break;
00230         case CFERR_MAXLESSTHANMIN:  MYTRACE_A( "CFERR_MAXLESSTHANMIN \n" ); break;
00231         case CFERR_NOFONTS:         MYTRACE_A( "CFERR_NOFONTS \n" );            break;
00232         }
00233 #endif
00234         return FALSE;
00235     }
00236
00237     return TRUE;
00238 }
00239
00240
00241
00242
00268 bool CEditDoc::FileRead(
00269     TCHAR*      pszPath,
00270     bool*       pbOpened,
00271     ECodeType   nCharCode,
00272     bool        bReadOnly,
00273     bool        bConfirmCodeChange
00274 )
00275 {
00276     HWND            hWndOwner;
00277     bool            bRet;
00278     FileInfo        fi;
00279     HWND            hwndProgress;
00280     CWaitCursor     cWaitCursor( GetSplitterHwnd() );
00281     BOOL            bIsExistInMRU;
00282     int             nRet;
00283     BOOL            bFileIsExist;
00284     int             doctype;
00285
00286     *pbOpened = FALSE;  // 2004.06.18 Moca 初期化ミス
00287     m_bReadOnly = bReadOnly;    /* 読み取り専用モード */
00288
00289 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00290     CMRU            cMRU;
00291
00292     /* ファイルの存在チェック */
00293     bFileIsExist = FALSE;
00294     if( -1 == _taccess( pszPath, 0 ) ){
00295     }else{
00296         HANDLE          hFind;
00297         WIN32_FIND_DATA w32fd;
00298         hFind = ::FindFirstFile( pszPath, &w32fd );
00299         ::FindClose( hFind );
00300
00301         bFileIsExist = TRUE;
00302
00303         /* フォルダが指定された場合 */
00304         if( w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
00305             /* 指定フォルダで「開くダイアログ」を表示 */
00306             {
00307                 TCHAR pszPathNew[_MAX_PATH]=_T("");
00308
00309                 /* 「ファイルを開く」ダイアログ */
00310                 nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
00311                 bReadOnly = FALSE;
00312 //              ::ShowWindow( GetSplitterHwnd(), SW_SHOW );
00313                 if( !OpenFileDialog( GetSplitterHwnd(), pszPath, pszPathNew, &nCharCode, &bReadOnly ) ){
00314                     return FALSE;
00315                 }
00316                 _tcscpy( pszPath, pszPathNew );
00317
00318                 if( -1 == _taccess( pszPath, 0 ) ){
00319                     bFileIsExist = FALSE;
00320                 }else{
00321                     bFileIsExist = TRUE;
00322                 }
00323             }
00324         }
00325
00326     }
00327
00328     //  From Here Oct. 19, 2002 genta
00329     //  読み込みアクセス権が無い場合には漢字コード判定でファイルを
00330     //  開けないので文字コード判別エラーと出てしまう．
00331     //  より適切なメッセージを出すため，読めないファイルは
00332     //  事前に判定・排除する
00333     //
00334     //  _accessではロックされたファイルの状態を取得できないので
00335     //  実際にファイルを開いて確認する
00336     if( bFileIsExist){
00337         HANDLE hTest =  CreateFile( pszPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
00338             NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL );
00339         if( hTest == INVALID_HANDLE_VALUE ){
00340             // 読み込みアクセス権がない
00341 			::MYMESSAGEBOX(
00342                 GetSplitterHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00343                 _T("\'%ls\'\n")
00344                 _T("というファイルを開けません。\n")
00345                 _T("読み込みアクセス権がありません。"),
00346                 pszPath
00347              );
00348             return FALSE;
00349         }
00350         else {
00351             CloseHandle( hTest );
00352         }
00353     }
00354     //  To Here Oct. 19, 2002 genta
00355
00356     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
00357     if( NULL != pCEditWnd ){
00358         hwndProgress = pCEditWnd->m_cStatusBar.GetProgressHwnd();
00359     }else{
00360         hwndProgress = NULL;
00361     }
00362     bRet = true;
00363     if( NULL == pszPath ){
00364         MYMESSAGEBOX_A(
00365             GetSplitterHwnd(),
00366             MB_YESNO | MB_ICONEXCLAMATION | MB_TOPMOST,
00367             "バグじゃぁあああ！！！",
00368             "CEditDoc::FileRead()\n\nNULL == pszPath\n【対処】エラーの出た状況を作者に連絡してくださいね。"
00369         );
00370         return FALSE;
00371     }
00372     /* 指定ファイルが開かれているか調べる */
00373     if( CShareData::getInstance()->IsPathOpened(pszPath, &hWndOwner, nCharCode) ){  /* 2007.03.12 maru 多重オープン処理はIsPathOpenedにまとめる */
00374         *pbOpened = TRUE;
00375         bRet = false;
00376         goto end_of_func;
00377     }
00378
00379     //ビューのテキスト選択解除
00380     m_pcEditWnd->Views_DisableSelectArea(true);
00381
00382     //  Sep. 10, 2002 genta
00383     SetFilePath( pszPath ); /* 現在編集中のファイルのパス */
00384
00385
00386     /* 指定された文字コード種別に変更する */
00387     //  Oct. 25, 2000 genta
00388     //  文字コードとして異常な値が設定された場合の対応
00389     //  -1以上CODE_MAX未満のみ受け付ける
00390     //  Oct. 26, 2000 genta
00391     //  CODE_AUTODETECTはこの範囲から外れているから個別にチェック
00392     //  Aug. 14, 2007 kobake
00393     //  nCharCodeのチェックを専用の関数に委譲
00394     if( IsInECodeType(nCharCode) )
00395         m_nCharCode = nCharCode;
00396
00397     /* MRUリストに存在するか調べる  存在するならばファイル情報を返す */
00398 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00399     if ( cMRU.GetFileInfo( pszPath, &fi ) ){
00400         bIsExistInMRU = TRUE;
00401
00402         if( -1 == m_nCharCode ){
00403             /* 前回に指定された文字コード種別に変更する */
00404             m_nCharCode = fi.m_nCharCode;
00405         }
00406
00407         if( !bConfirmCodeChange && ( CODE_AUTODETECT == m_nCharCode ) ){    // 文字コード指定の再オープンなら前回を無視
00408             m_nCharCode = fi.m_nCharCode;
00409         }
00410         if( (FALSE == bFileIsExist) && (CODE_AUTODETECT == m_nCharCode) ){
00411             /* 存在しないファイルの文字コード指定なしなら前回を継承 */
00412             m_nCharCode = fi.m_nCharCode;
00413         }
00414     } else {
00415         bIsExistInMRU = FALSE;
00416     }
00417
00418     /* 文字コード自動判別 */
00419     if( CODE_AUTODETECT == m_nCharCode ) {
00420         if( FALSE == bFileIsExist ){    /* ファイルが存在しない */
00421             m_nCharCode = CODE_DEFAULT;
00422         } else {
00423             m_nCharCode = CCodeMediator::CheckKanjiCodeOfFile( pszPath );
00424             if( CODE_ERROR == m_nCharCode ){
00425 				::MYMESSAGEBOX( GetSplitterHwnd(), MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00426                     _T("%ls\n")
00427                     _T("文字コードの判別処理でエラーが発生しました。"),
00428                     pszPath
00429                 );
00430                 //  Sep. 10, 2002 genta
00431                 SetFilePath( _T("") );
00432                 bRet = false;
00433                 goto end_of_func;
00434             }
00435         }
00436     }
00437     /* 文字コードが異なるときに確認する */
00438     if( bConfirmCodeChange && bIsExistInMRU ){
00439         if (m_nCharCode != fi.m_nCharCode ) {   // MRU の文字コードと判別が異なる
00440             const TCHAR* pszCodeName = NULL;
00441             const TCHAR* pszCodeNameNew = NULL;
00442
00443             // gm_pszCodeNameArr_Normal を使うように変更 Moca. 2002/05/26
00444             if(IsValidCodeType(fi.m_nCharCode)){
00445                 pszCodeName = gm_pszCodeNameArr_Normal[fi.m_nCharCode];
00446             }
00447             if(IsValidCodeType(m_nCharCode)){
00448                 pszCodeNameNew = gm_pszCodeNameArr_Normal[m_nCharCode];
00449             }
00450             if( pszCodeName != NULL ){
00451                 ::MessageBeep( MB_ICONQUESTION );
00452                 nRet = MYMESSAGEBOX_A(
00453                     GetSplitterHwnd(),
00454                     MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
00455                     "文字コード情報",
00456                     "%ts\n\nこのファイルは、前回は別の文字コード %ts で開かれています。\n"
00457                     "前回と同じ文字コードを使いますか？\n"
00458                     "\n"
00459                     "・[はい(Y)]  ＝%ts\n"
00460                     "・[いいえ(N)]＝%ts\n"
00461                     "・[キャンセル]＝開きません",
00462                     GetFilePath(),
00463                     pszCodeName,
00464                     pszCodeName,
00465                     pszCodeNameNew
00466                 );
00467                 if( IDYES == nRet ){
00468                     /* 前回に指定された文字コード種別に変更する */
00469                     m_nCharCode = fi.m_nCharCode;
00470                 }
00471                 else if( IDCANCEL == nRet ){
00472                     m_nCharCode = CODE_DEFAULT;
00473                     //  Sep. 10, 2002 genta
00474                     SetFilePath( _T("") );
00475                     bRet = false;
00476                     goto end_of_func;
00477                 }
00478             }else{
00479                 MYMESSAGEBOX_A(
00480                     GetSplitterHwnd(),
00481                     MB_YESNO | MB_ICONEXCLAMATION | MB_TOPMOST,
00482                     "バグじゃぁあああ！！！",
00483                     "【対処】エラーの出た状況を作者に連絡してください。"
00484                 );
00485                 //  Sep. 10, 2002 genta
00486                 SetFilePath( _T("") );
00487                 bRet = false;
00488                 goto end_of_func;
00489             }
00490         }
00491     }
00492     if( -1 == m_nCharCode ){
00493         m_nCharCode = CODE_DEFAULT;
00494     }
00495
00496     //  Nov. 12, 2000 genta ロングファイル名の取得を前方に移動
00497     TCHAR szWork[MAX_PATH];
00498     /* ロングファイル名を取得する */
00499     if( ::GetLongFileName( pszPath, szWork ) ){
00500         //  Sep. 10, 2002 genta
00501         SetFilePath( szWork );
00502     }
00503
00504     /* 共有データ構造体のアドレスを返す */
00505     m_pShareData = CShareData::getInstance()->GetShareData();
00506     doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
00507     SetDocumentType( doctype, true );
00508
00509     //  From Here Jul. 26, 2003 ryoji BOMの有無の初期状態を設定
00510     switch( m_nCharCode ){
00511     case CODE_UNICODE:
00512     case CODE_UNICODEBE:
00513         m_bBomExist = TRUE;
00514         break;
00515     case CODE_UTF8:
00516     default:
00517         m_bBomExist = FALSE;
00518         break;
00519     }
00520     //  To Here Jul. 26, 2003 ryoji BOMの有無の初期状態を設定
00521
00522     /* ファイルが存在しない */
00523     if( FALSE == bFileIsExist ){
00524
00525         //  Oct. 09, 2004 genta フラグに応じて警告を出す（以前の動作）ように
00526         if( m_pShareData->m_Common.m_sFile.GetAlertIfFileNotExist() ){
00527             ::MessageBeep( MB_ICONINFORMATION );
00528
00529             //  Feb. 15, 2003 genta Popupウィンドウを表示しないように．
00530             //  ここでステータスメッセージを使っても画面に表示されない．
00531 			::MYMESSAGEBOX(
00532                 GetOwnerHwnd(),
00533                 MB_OK | MB_ICONINFORMATION | MB_TOPMOST,
00534                 GSTR_APPNAME,
00535                 _T("%ls\nというファイルは存在しません。\n\nファイルを保存したときに、ディスク上にこのファイルが作成されます。"),    //Mar. 24, 2001 jepro 若干修正
00536                 pszPath
00537             );
00538         }
00539     }else{
00540         /* ファイルを読む */
00541         if( NULL != hwndProgress ){
00542             ::ShowWindow( hwndProgress, SW_SHOW );
00543         }
00544         //  Jul. 26, 2003 ryoji BOM引数追加
00545         if( FALSE == m_cDocLineMgr.ReadFile( GetFilePath(), GetSplitterHwnd(), hwndProgress,
00546             m_nCharCode, &m_FileTime, m_pShareData->m_Common.m_sFile.GetAutoMIMEdecode(), &m_bBomExist ) ){
00547             //  Sep. 10, 2002 genta
00548             SetFilePath( _T("") );
00549             bRet = false;
00550             goto end_of_func;
00551         }
00552 //#ifdef _DEBUG
00553 //      m_cDocLineMgr.DUMP();
00554 //#endif
00555
00556     }
00557
00558     /* レイアウト情報の変更 */
00559     {
00560         Types& ref = GetDocumentAttribute();
00561         m_cLayoutMgr.SetLayoutInfo(
00562             TRUE,
00563             hwndProgress,
00564             ref
00565         );
00566     }
00567
00568     /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
00569     InitAllView();
00570
00571     //  Nov. 20, 2000 genta
00572     //  IME状態の設定
00573     SetImeMode( GetDocumentAttribute().m_nImeState );
00574
00575     if( bIsExistInMRU && m_pShareData->m_Common.m_sFile.GetRestoreCurPosition() ){
00576         /*
00577           カーソル位置変換
00578           物理位置(行頭からのバイト数、折り返し無し行位置)
00579           →
00580           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00581         */
00582         CLayoutPoint ptCaretPos;
00583         m_cLayoutMgr.LogicToLayout(
00584             fi.m_ptCursor,
00585             &ptCaretPos
00586         );
00587         if( ptCaretPos.GetY2() >= m_cLayoutMgr.GetLineCount() ){
00588             /*ファイルの最後に移動 */
00589             m_pcEditWnd->GetActiveView().GetCommander().HandleCommand( F_GOFILEEND, 0, 0, 0, 0, 0 );
00590         }else{
00591             m_pcEditWnd->GetActiveView().GetTextArea().SetViewTopLine( fi.m_nViewTopLine ); // 2001/10/20 novice
00592             m_pcEditWnd->GetActiveView().GetTextArea().SetViewLeftCol( fi.m_nViewLeftCol ); // 2001/10/20 novice
00593             // From Here Mar. 28, 2003 MIK
00594             // 改行の真ん中にカーソルが来ないように。
00595             const CDocLine *pTmpDocLine = m_cDocLineMgr.GetLineInfo( fi.m_ptCursor.GetY2() );   // 2008.08.22 ryoji 改行単位の行番号を渡すように修正
00596             if( pTmpDocLine ){
00597                 if( pTmpDocLine->GetLengthWithoutEOL() < fi.m_ptCursor.x ) ptCaretPos.x--;
00598             }
00599             // To Here Mar. 28, 2003 MIK
00600             m_pcEditWnd->GetActiveView().GetCaret().MoveCursor( ptCaretPos, TRUE );
00601             m_pcEditWnd->GetActiveView().GetCaret().m_nCaretPosX_Prev =
00602                 m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos().GetX2();
00603         }
00604     }
00605     // 2002.01.16 hor ブックマーク復元
00606     if( bIsExistInMRU ){
00607         if( m_pShareData->m_Common.m_sFile.GetRestoreBookmarks() ){
00608             m_cDocLineMgr.SetBookMarks(fi.m_szMarkLines);
00609         }
00610     }else{
00611         wcscpy(fi.m_szMarkLines,L"");
00612     }
00613     GetFileInfo( &fi );
00614
00615     //  May 12, 2000 genta
00616     //  改行コードの設定
00617     {
00618         SetNewLineCode( EOL_CRLF );
00619         CDocLine*   pFirstlineinfo = m_cDocLineMgr.GetLineInfo( CLogicInt(0) );
00620         if( pFirstlineinfo != NULL ){
00621             enumEOLType t = (enumEOLType)pFirstlineinfo->m_cEol;
00622             if( t != EOL_NONE && t != EOL_UNKNOWN ){
00623                 SetNewLineCode( t );
00624             }
00625         }
00626     }
00627
00628     /* MRUリストへの登録 */
00629 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00630     cMRU.Add( &fi );
00631
00632     /* カレントディレクトリの変更 */
00633     {
00634         TCHAR   szCurDir[_MAX_PATH];
00635         TCHAR   szDrive[_MAX_DRIVE];
00636         TCHAR   szDir[_MAX_DIR];
00637         _tsplitpath( GetFilePath(), szDrive, szDir, NULL, NULL );
00638         _tcscpy( szCurDir, szDrive);
00639         _tcscat( szCurDir, szDir );
00640         ::SetCurrentDirectory( szCurDir );
00641     }
00642
00643 end_of_func:;
00644     //  2004.05.13 Moca 改行コードの設定内からここに移動
00645     m_pcEditWnd->GetActiveView().GetCaret().DrawCaretPosInfo();
00646
00647     if( NULL != hwndProgress ){
00648         ::ShowWindow( hwndProgress, SW_HIDE );
00649     }
00650     if( bRet && IsFilePathAvailable() ){
00651         /* ファイルの排他ロック */
00652         DoFileLock();
00653     }
00654     //  From Here Jul. 26, 2003 ryoji エラーの時は規定のBOM設定とする
00655     if( !bRet ){
00656         switch( m_nCharCode ){
00657         case CODE_UNICODE:
00658         case CODE_UNICODEBE:
00659             m_bBomExist = TRUE;
00660             break;
00661         case CODE_UTF8:
00662         default:
00663             m_bBomExist = FALSE;
00664             break;
00665         }
00666     }
00667     //  To Here Jul. 26, 2003 ryoji
00668     return bRet;
00669 }
00670
00671
00681 BOOL CEditDoc::FileWrite( const TCHAR* pszPath, enumEOLType cEolType )
00682 {
00683     BOOL        bRet = TRUE;
00684
00685     //  Sep. 7, 2003 genta
00686     //  保存が完了するまではファイル更新の通知を抑制する
00687     WatchUpdate wuSave = m_eWatchUpdate;
00688     m_eWatchUpdate = WU_NONE;
00689
00690     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
00691
00692     //プログレスバー
00693     HWND        hwndProgress;
00694     if( NULL != pCEditWnd ){
00695         hwndProgress = pCEditWnd->m_cStatusBar.GetProgressHwnd();
00696     }else{
00697         hwndProgress = NULL;
00698     }
00699     if( NULL != hwndProgress ){
00700         ::ShowWindow( hwndProgress, SW_SHOW );
00701     }
00702
00703     // ファイルの排他ロック解除
00704     DoFileUnLock();
00705
00706     if( m_pShareData->m_Common.m_sBackup.m_bBackUp ){   /* バックアップの作成 */
00707         //  Jun.  5, 2004 genta ファイル名を与えるように．戻り値に応じた処理を追加．
00708         switch( MakeBackUp( pszPath )){
00709         case 2: //  中断指示
00710             return FALSE;
00711         case 3: //  ファイルエラー
00712             if( IDYES != ::MYMESSAGEBOX_A(
00713                 GetSplitterHwnd(),
00714                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
00715                 "ファイル保存",
00716                 "バックアップの作成に失敗しました．元ファイルへの上書きを継続して行いますか．"
00717             )){
00718                 return FALSE;
00719             }
00720         break;
00721         }
00722     }
00723
00724     //砂時計
00725     CWaitCursor cWaitCursor( GetSplitterHwnd() );
00726
00727     //カキコ
00728     EConvertResult nWriteResult = m_cDocLineMgr.WriteFile(
00729         pszPath,
00730         GetSplitterHwnd(),
00731         hwndProgress,
00732         m_nCharCode,
00733         &m_FileTime,
00734         CEOL(cEolType),
00735         m_bBomExist
00736     );
00737
00738     //カキコ結果
00739     if( nWriteResult == RESULT_FAILURE ){
00740         bRet = FALSE;
00741         goto end_of_func;
00742     }
00743     else if(nWriteResult == RESULT_LOSESOME){
00744         ErrorMessage(NULL, _T("一部のテキストデータが、変換により失われました"));
00745     }
00746
00747     /* 行変更状態をすべてリセット */
00748     m_cDocLineMgr.ResetAllModifyFlag();
00749
00750     //ビュー再描画
00751     m_pcEditWnd->Views_RedrawAll();
00752
00753     //  Sep. 10, 2002 genta
00754     SetFilePath( pszPath ); /* 現在編集中のファイルのパス */
00755
00756     SetModified(false,false);   //  Jan. 22, 2002 genta 関数化 更新フラグのクリア
00757
00758     //  Mar. 30, 2003 genta サブルーチンにまとめた
00759     AddToMRU();
00760
00761     /* 現在位置で無変更な状態になったことを通知 */
00762     m_cOpeBuf.SetNoModified();
00763
00764     m_bReadOnly = false;    /* 読み取り専用モード */
00765
00766     /* 親ウィンドウのタイトルを更新 */
00767     SetParentCaption();
00768 end_of_func:;
00769
00770     if( IsFilePathAvailable() &&
00771         !m_bReadOnly && /* 読み取り専用モード ではない */
00772         TRUE == bRet
00773     ){
00774         /* ファイルの排他ロック */
00775         DoFileLock();
00776     }
00777     if( NULL != hwndProgress ){
00778         ::ShowWindow( hwndProgress, SW_HIDE );
00779     }
00780     //  Sep. 7, 2003 genta
00781     //  ファイル更新の通知を元に戻す
00782     m_eWatchUpdate = wuSave;
00783
00784
00785     return bRet;
00786 }
00787
00788
00789
00790 /* 「ファイルを開く」ダイアログ */
00791 //  Mar. 30, 2003 genta ファイル名未定時の初期ディレクトリをカレントフォルダに
00792 BOOL CEditDoc::OpenFileDialog(
00793     HWND                hwndParent,
00794     const TCHAR*        pszOpenFolder,  //<! [in]  NULL以外を指定すると初期フォルダを指定できる
00795     TCHAR*              pszPath,        //<! [out] 開くファイルのパスを受け取るアドレス
00796     ECodeType*          pnCharCode,     //<! [out] 指定された文字コード種別を受け取るアドレス
00797     bool*               pbReadOnly      //<! [out] 読み取り専用か
00798 )
00799 {
00800     /* アクティブにする */
00801     ActivateFrameWindow( hwndParent );
00802
00803     TCHAR** ppszMRU;
00804     TCHAR** ppszOPENFOLDER;
00805     BOOL    bRet;
00806
00807     /* MRUリストのファイルのリスト */
00808 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00809     CMRU cMRU;
00810     ppszMRU = NULL;
00811     ppszMRU = new TCHAR*[ cMRU.Length() + 1 ];
00812     cMRU.GetPathList(ppszMRU);
00813
00814
00815     /* OPENFOLDERリストのファイルのリスト */
00816 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00817     CMRUFolder cMRUFolder;
00818     ppszOPENFOLDER = NULL;
00819     ppszOPENFOLDER = new TCHAR*[ cMRUFolder.Length() + 1 ];
00820     cMRUFolder.GetPathList(ppszOPENFOLDER);
00821
00822     /* 初期フォルダの設定 */
00823     // pszFolderはフォルダ名だが、ファイル名付きパスを渡してもCDlgOpenFile側で処理してくれる
00824     SFilePath pszCurDir;
00825     const TCHAR* pszDefFolder;
00826     if( pszOpenFolder!=NULL ){
00827         pszDefFolder = pszOpenFolder;
00828     }else{
00829         if( IsFilePathAvailable() ){
00830             pszDefFolder = GetFilePath();
00831         // Mar. 28, 2003 genta カレントディレクトリをMRUより優先させる
00832         //}else if( ppszMRU[0] != NULL && ppszMRU[0][0] != '\0' ){ // Sep. 9, 2002 genta
00833         //  pszDefFolder = ppszMRU[0];
00834         }else{ // 2002.10.25 Moca
00835             int nCurDir;
00836             nCurDir = ::GetCurrentDirectory( _MAX_PATH, pszCurDir );
00837             if( 0 == nCurDir || _MAX_PATH < nCurDir ){
00838                 pszDefFolder = _T("");
00839             }else{
00840                 pszDefFolder = pszCurDir;
00841             }
00842         }
00843     }
00844     /* ファイルオープンダイアログの初期化 */
00845     m_pcEditWnd->m_cDlgOpenFile.Create2(
00846         m_hInstance,
00847         hwndParent,
00848         _T("*.*"),
00849         pszDefFolder,
00850         ppszMRU,
00851         ppszOPENFOLDER
00852     );
00853
00854     bRet = m_pcEditWnd->m_cDlgOpenFile.DoModalOpenDlg( pszPath, pnCharCode, pbReadOnly );
00855
00856     delete [] ppszMRU;
00857     delete [] ppszOPENFOLDER;
00858 //  delete [] pszCurDir;
00859     return bRet;
00860 }
00861
00862
00863 //pszOpenFolder pszOpenFolder
00864
00865
00877 BOOL CEditDoc::SaveFileDialog( TCHAR* pszPath, ECodeType* pnCharCode, CEOL* pcEol, BOOL* pbBomExist )
00878 {
00879     TCHAR** ppszMRU;        //  最近のファイル
00880     TCHAR** ppszOPENFOLDER; //  最近のフォルダ
00881     TCHAR*  pszCurDir = NULL;
00882     TCHAR   szDefaultWildCard[_MAX_PATH + 10];  // ユーザー指定拡張子
00883     BOOL    bret;
00884
00885     /* MRUリストのファイルのリスト */
00886     CMRU cMRU;
00887     ppszMRU = NULL;
00888     ppszMRU = new TCHAR*[ cMRU.Length() + 1 ];
00889     cMRU.GetPathList(ppszMRU);
00890
00891     /* OPENFOLDERリストのファイルのリスト */
00892     CMRUFolder cMRUFolder;
00893     ppszOPENFOLDER = NULL;
00894     ppszOPENFOLDER = new TCHAR*[ cMRUFolder.Length() + 1 ];
00895     cMRUFolder.GetPathList(ppszOPENFOLDER);
00896
00897     /* ファイル保存ダイアログの初期化 */
00898     /* ファイル名の無いファイルだったら、ppszMRU[0]をデフォルトファイル名として？ppszOPENFOLDERじゃない？ */
00899     // ファイル名の無いときはカレントフォルダをデフォルトにします。Mar. 30, 2003 genta
00900     // 掲示板要望 No.2699 (2003/02/05)
00901     const TCHAR*    pszDefFolder; // デフォルトフォルダ
00902     if( !IsFilePathAvailable() ){
00903         // 2002.10.25 Moca さんのコードを流用 Mar. 23, 2003 genta
00904         int nCurDir;
00905         pszCurDir = new TCHAR[_MAX_PATH];
00906         nCurDir = ::GetCurrentDirectory( _MAX_PATH, pszCurDir );
00907         if( 0 == nCurDir || _MAX_PATH < nCurDir ){
00908             pszDefFolder = _T("");
00909         }else{
00910             pszDefFolder = pszCurDir;
00911         }
00912         _tcscpy(szDefaultWildCard, _T("*.txt"));
00913         if( m_pShareData->m_Common.m_sFile.m_bNoFilterSaveNew )
00914             _tcscat(szDefaultWildCard, _T(";*.*")); // 全ファイル表示
00915     }else{
00916         pszDefFolder = GetFilePath();
00917         TCHAR   szExt[_MAX_EXT];
00918         _tsplitpath(GetFilePath(), NULL, NULL, NULL, szExt);
00919         if( szExt[0] == _T('.') && szExt[1] != _T('\0') ){
00920             _tcscpy(szDefaultWildCard, _T("*"));
00921             _tcscat(szDefaultWildCard, szExt);
00922             if( m_pShareData->m_Common.m_sFile.m_bNoFilterSaveFile )
00923                 _tcscat(szDefaultWildCard, _T(";*.*")); // 全ファイル表示
00924         }else{
00925             _tcscpy(szDefaultWildCard, _T("*.*"));
00926         }
00927     }
00928     m_pcEditWnd->m_cDlgOpenFile.Create2( m_hInstance, GetSplitterHwnd(), szDefaultWildCard, pszDefFolder,
00929         ppszMRU, ppszOPENFOLDER );
00930
00931     /* ダイアログを表示 */
00932     //  Jul. 26, 2003 ryoji pbBomExist追加
00933     bret = m_pcEditWnd->m_cDlgOpenFile.DoModalSaveDlg( pszPath, pnCharCode, pcEol, pbBomExist );
00934
00935     delete [] ppszMRU;
00936     delete [] ppszOPENFOLDER;
00937     delete [] pszCurDir;
00938     return bret;
00939 }
00940
00941
00942
00943
00944
00946 BOOL CEditDoc::OpenPropertySheet( int nPageNum/*, int nActiveItem*/ )
00947 {
00948     int     i;
00949 //  BOOL    bModify;
00950
00951     // 2002.12.11 Moca この部分で行われていたデータのコピーをCPropCommonに移動・関数化
00952     // 共通設定の一時設定領域にSharaDataをコピーする
00953     m_pcEditWnd->m_cPropCommon.InitData();
00954
00955     /* プロパティシートの作成 */
00956     if( m_pcEditWnd->m_cPropCommon.DoPropertySheet( nPageNum/*, nActiveItem*/ ) ){
00957
00958         // 2002.12.11 Moca この部分で行われていたデータのコピーをCPropCommonに移動・関数化
00959         // ShareData に 設定を適用・コピーする
00960         // 2007.06.20 ryoji グループ化に変更があったときはグループIDをリセットする
00961         BOOL bGroup = (m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin);
00962         m_pcEditWnd->m_cPropCommon.ApplyData();
00963         m_pcSMacroMgr->UnloadAll(); // 2007.10.19 genta マクロ登録変更を反映するため，読み込み済みのマクロを破棄する
00964         if( bGroup != (m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ) ){
00965             CShareData::getInstance()->ResetGroupId();
00966         }
00967
00968         /* アクセラレータテーブルの再作成 */
00969 		::SendMessageAny( m_pShareData->m_hwndTray, MYWM_CHANGESETTING,  (WPARAM)0, (LPARAM)0 );
00970
00971         /* フォントが変わった */
00972         for( i = 0; i < 4; ++i ){
00973             m_pcEditWnd->m_pcEditViewArr[i]->m_cTipWnd.ChangeFont( &(m_pShareData->m_Common.m_sHelper.m_lf_kh) );
00974         }
00975
00976         /* 設定変更を反映させる */
00977         /* 全編集ウィンドウへメッセージをポストする */
00978         CShareData::getInstance()->SendMessageToAllEditors(
00979             MYWM_CHANGESETTING,
00980             0,
00981             (LPARAM)GetOwnerHwnd(),
00982             GetOwnerHwnd()
00983         );
00984
00985         return TRUE;
00986     }else{
00987         return FALSE;
00988     }
00989 }
00990
00991
00992
00994 BOOL CEditDoc::OpenPropertySheetTypes( int nPageNum, int nSettingType )
00995 {
00996     m_pcEditWnd->m_cPropTypes.SetTypeData( m_pShareData->m_Types[nSettingType] );
00997     // Mar. 31, 2003 genta メモリ削減のためポインタに変更しProperySheet内で取得するように
00998     //m_cPropTypes.m_CKeyWordSetMgr = m_pShareData->m_CKeyWordSetMgr;
00999
01000     /* プロパティシートの作成 */
01001     if( m_pcEditWnd->m_cPropTypes.DoPropertySheet( nPageNum ) ){
01002         /* 変更された設定値のコピー */
01003         m_pcEditWnd->m_cPropTypes.GetTypeData( m_pShareData->m_Types[nSettingType] );
01004
01005         /* アクセラレータテーブルの再作成 */
01006 		::SendMessageAny( m_pShareData->m_hwndTray, MYWM_CHANGESETTING,  (WPARAM)0, (LPARAM)0 );
01007
01008         /* 設定変更を反映させる */
01009         /* 全編集ウィンドウへメッセージをポストする */
01010         CShareData::getInstance()->SendMessageToAllEditors(
01011             MYWM_CHANGESETTING,
01012             0,
01013             (LPARAM)GetOwnerHwnd(),
01014             GetOwnerHwnd()
01015         );
01016
01017         return TRUE;
01018     }else{
01019         return FALSE;
01020     }
01021 }
01022
01023
01024
01025 /* Undo(元に戻す)可能な状態か？ */
01026 BOOL CEditDoc::IsEnableUndo( void )
01027 {
01028     return m_cOpeBuf.IsEnableUndo();
01029 }
01030
01031
01032
01034 BOOL CEditDoc::IsEnableRedo( void )
01035 {
01036     return m_cOpeBuf.IsEnableRedo();
01037 }
01038
01039
01040
01041
01043 BOOL CEditDoc::IsEnablePaste( void )
01044 {
01045     return CClipboard::HasValidData()?TRUE:FALSE;
01046 }
01047
01048
01049
01050
01051
01056 void CEditDoc::SetParentCaption( void )
01057 {
01058     if( NULL == GetSplitterHwnd() ){
01059         return;
01060     }
01061     if( !m_pcEditWnd->GetActiveView().GetDrawSwitch() ){
01062         return;
01063     }
01064
01065 //  /* アイコン化されていない時はフルパス */
01066 //  /* アイコン化されている時はファイル名のみ */
01067 //  if( ::IsIconic( GetSplitterHwnd() ) ){
01068 //      bKillFocus = TRUE;
01069 //  }else{
01070 //      bKillFocus = FALSE;
01071 //  }
01072
01073     wchar_t pszCap[1024];   //  Nov. 6, 2000 genta オーバーヘッド軽減のためHeap→Stackに変更
01074
01075     // From Here Apr. 04, 2003 genta / Apr.05 ShareDataのパラメータ利用に
01076     if( !m_pcEditWnd->IsActiveApp() ){  // 2007.03.08 ryoji bKillFocusをIsActiveApp()に変更
01077         ExpandParameter(
01078             to_wchar(m_pShareData->m_Common.m_sWindow.m_szWindowCaptionInactive),
01079             pszCap,
01080             _countof( pszCap )
01081         );
01082     }
01083     else {
01084         ExpandParameter(
01085             to_wchar(m_pShareData->m_Common.m_sWindow.m_szWindowCaptionActive),
01086             pszCap,
01087             _countof( pszCap )
01088         );
01089     }
01090     // To Here Apr. 04, 2003 genta
01091
01092     TCHAR tszBuf[256];
01093     _wcstotcs(tszBuf, pszCap, _countof(tszBuf));
01094     ::SetWindowText( GetOwnerHwnd(), tszBuf );
01095
01096     //@@@ From Here 2003.06.13 MIK
01097     //タブウインドウのファイル名を通知
01098     ExpandParameter( m_pShareData->m_Common.m_sTabBar.m_szTabWndCaption, pszCap, _countof( pszCap ));
01099     m_pcEditWnd->ChangeFileNameNotify( to_tchar(pszCap), GetFilePath(), m_bGrepMode );  // 2006.01.28 ryoji ファイル名、Grepモードパラメータを追加
01100     //@@@ To Here 2003.06.13 MIK
01101
01102     return;
01103 }
01104
01105
01106
01107
01125 int CEditDoc::MakeBackUp( const TCHAR* target_file )
01126 {
01127     int     nRet;
01128
01129     /* バックアップソースの存在チェック */
01130     //  Aug. 21, 2005 genta 書き込みアクセス権がない場合も
01131     //  ファイルがない場合と同様に何もしない
01132     if( (_taccess( target_file, 2 )) == -1 ){
01133         return 0;
01134     }
01135
01136     if( m_pShareData->m_Common.m_sBackup.m_bBackUpFolder ){ /* 指定フォルダにバックアップを作成する */
01137         //  Aug. 21, 2005 genta 指定フォルダがない場合に警告
01138         if( (_taccess( m_pShareData->m_Common.m_sBackup.m_szBackUpFolder, 0 )) == -1 ){
01139
01140             int nMsgResult = ::MYMESSAGEBOX_A(
01141                 GetSplitterHwnd(),
01142                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
01143                 "バックアップエラー",
01144                 "以下のバックアップフォルダが見つかりません．\n%ts\n"
01145                 "バックアップを作成せずに上書き保存してよろしいですか．",
01146                 m_pShareData->m_Common.m_sBackup.m_szBackUpFolder
01147             );
01148             if( nMsgResult == IDYES ){
01149                 return 0;// 保存継続
01150             }
01151             else {
01152                 return 2;// 保存中断
01153             }
01154         }
01155     }
01156
01157     TCHAR   szPath[_MAX_PATH];
01158     FormatBackUpPath( szPath, target_file );
01159
01160     //@@@ 2002.03.23 start ネットワーク・リムーバブルドライブの場合はごみ箱に放り込まない
01161     bool dustflag = false;
01162     if( m_pShareData->m_Common.m_sBackup.m_bBackUpDustBox ){
01163         dustflag = !IsLocalDrive( szPath );
01164     }
01165     //@@@ 2002.03.23 end
01166
01167     if( m_pShareData->m_Common.m_sBackup.m_bBackUpDialog ){ /* バックアップの作成前に確認 */
01168         ::MessageBeep( MB_ICONQUESTION );
01169 //From Here Feb. 27, 2001 JEPROtest キャンセルもできるようにし、メッセージを追加した
01170 //      if( IDYES != MYMESSAGEBOX(
01171 //          GetSplitterHwnd(),
01172 //          MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
01173 //          "バックアップ作成の確認",
01174 //          "変更される前に、バックアップファイルを作成します。\nよろしいですか？\n\n%ls\n    ↓\n%ls\n\n",
01175 //          IsFilePathAvailable() ? GetFilePath() : "（無題）",
01176 //          szPath
01177 //      ) ){
01178 //          return FALSE;
01179 //      }
01180         if( m_pShareData->m_Common.m_sBackup.m_bBackUpDustBox && dustflag == false ){   //@@@ 2001.12.11 add start MIK  //2002.03.23
01181             nRet = ::MYMESSAGEBOX_A(
01182                 GetSplitterHwnd(),
01183                 MB_YESNO/*CANCEL*/ | MB_ICONQUESTION | MB_TOPMOST,
01184                 "バックアップ作成の確認",
01185                 "変更される前に、バックアップファイルを作成します。\nよろしいですか？  [いいえ(N)] を選ぶと作成せずに上書き（または名前を付けて）保存になります。\n\n%ls\n    ↓\n%ls\n\n作成したバックアップファイルをごみ箱に放り込みます。\n",
01186                 target_file,
01187                 szPath
01188             );
01189         }else{  //@@@ 2001.12.11 add end MIK
01190             nRet = ::MYMESSAGEBOX_A(
01191                 GetSplitterHwnd(),
01192                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
01193                 "バックアップ作成の確認",
01194                 "変更される前に、バックアップファイルを作成します。\nよろしいですか？  [いいえ(N)] を選ぶと作成せずに上書き（または名前を付けて）保存になります。\n\n%ls\n    ↓\n%ls\n\n",
01195                 //IsFilePathAvailable() ? GetFilePath() : "（無題）",
01196                 //  Aug. 21, 2005 genta 現在のファイルではなくターゲットファイルをバックアップするように
01197                 target_file,
01198                 szPath
01199             );  //Jul. 06, 2001 jepro [名前を付けて保存] の場合もあるのでメッセージを修正
01200         }   //@@@ 2001.12.11 add MIK
01201         //  Jun.  5, 2005 genta 戻り値変更
01202         if( IDNO == nRet ){
01203             return 0;// 保存継続
01204         }else if( IDCANCEL == nRet ){
01205             return 2;// 保存中断
01206         }
01207 //To Here Feb. 27, 2001
01208     }
01209
01210     //  From Here Aug. 16, 2000 genta
01211     //  Jun.  5, 2005 genta 1の拡張子を残す版を追加
01212     if( m_pShareData->m_Common.m_sBackup.GetBackupType() == 3 ||
01213         m_pShareData->m_Common.m_sBackup.GetBackupType() == 6 ){
01214         //  既に存在するBackupをずらす処理
01215         int             i;
01216
01217         //  ファイル検索用
01218         HANDLE          hFind;
01219         WIN32_FIND_DATA fData;
01220
01221         TCHAR*  pBase = szPath + _tcslen( szPath ) - 2; //  2: 拡張子の最後の2桁の意味
01222         //::MessageBoxA( NULL, pBase, _T("書き換え場所"), MB_OK );
01223
01224         //------------------------------------------------------------------
01225         //  1. 該当ディレクトリ中のbackupファイルを1つずつ探す
01226         for( i = 0; i <= 99; i++ ){ //  最大値に関わらず，99（2桁の最大値）まで探す
01227             //  ファイル名をセット
01228             auto_sprintf( pBase, _T("%02d"), i );
01229
01230             hFind = ::FindFirstFile( szPath, &fData );
01231             if( hFind == INVALID_HANDLE_VALUE ){
01232                 //  検索に失敗した == ファイルは存在しない
01233                 break;
01234             }
01235             ::FindClose( hFind );
01236             //  見つかったファイルの属性をチェック
01237             //  は面倒くさいからしない．
01238             //  同じ名前のディレクトリがあったらどうなるのだろう...
01239         }
01240         --i;
01241
01242         //------------------------------------------------------------------
01243         //  2. 最大値から制限数-1番までを削除
01244         int boundary = m_pShareData->m_Common.m_sBackup.GetBackupCount();
01245         boundary = boundary > 0 ? boundary - 1 : 0; //  最小値は0
01246         //::MessageBoxA( NULL, pBase, _T("書き換え場所"), MB_OK );
01247
01248         for( ; i >= boundary; --i ){
01249             //  ファイル名をセット
01250             auto_sprintf( pBase, _T("%02d"), i );
01251             if( ::DeleteFile( szPath ) == 0 ){
01252                 ::MessageBox( GetSplitterHwnd(), szPath, _T("削除失敗"), MB_OK );
01253                 //  Jun.  5, 2005 genta 戻り値変更
01254                 //  失敗しても保存は継続
01255                 return 0;
01256                 //  失敗した場合
01257                 //  後で考える
01258             }
01259         }
01260
01261         //  この位置でiは存在するバックアップファイルの最大番号を表している．
01262
01263         //  3. そこから0番まではコピーしながら移動
01264         TCHAR szNewPath[MAX_PATH];
01265         TCHAR *pNewNrBase;
01266
01267         _tcscpy( szNewPath, szPath );
01268         pNewNrBase = szNewPath + _tcslen( szNewPath ) - 2;
01269
01270         for( ; i >= 0; --i ){
01271             //  ファイル名をセット
01272             auto_sprintf( pBase, _T("%02d"), i );
01273             auto_sprintf( pNewNrBase, _T("%02d"), i + 1 );
01274
01275             //  ファイルの移動
01276             if( ::MoveFile( szPath, szNewPath ) == 0 ){
01277                 //  失敗した場合
01278                 //  後で考える
01279                 ::MessageBox( GetSplitterHwnd(), szPath, _T("移動失敗"), MB_OK );
01280                 //  Jun.  5, 2005 genta 戻り値変更
01281                 //  失敗しても保存は継続
01282                 return 0;
01283             }
01284         }
01285     }
01286     //  To Here Aug. 16, 2000 genta
01287
01288     //::MessageBoxA( NULL, szPath, _T("直前のバックアップファイル"), MB_OK );
01289     /* バックアップの作成 */
01290     //  Aug. 21, 2005 genta 現在のファイルではなくターゲットファイルをバックアップするように
01291     TCHAR   szDrive[_MAX_DIR];
01292     TCHAR   szDir[_MAX_DIR];
01293     TCHAR   szFname[_MAX_FNAME];
01294     TCHAR   szExt[_MAX_EXT];
01295     _tsplitpath( szPath, szDrive, szDir, szFname, szExt );
01296     TCHAR   szPath2[MAX_PATH];
01297     auto_sprintf( szPath2, _T("%ts%ts"), szDrive, szDir );
01298
01299     HANDLE          hFind;
01300     WIN32_FIND_DATA fData;
01301
01302     hFind = ::FindFirstFile( szPath2, &fData );
01303     if( hFind == INVALID_HANDLE_VALUE ){
01304         //  検索に失敗した == ファイルは存在しない
01305         ::CreateDirectory( szPath2, NULL );
01306     }
01307     ::FindClose( hFind );
01308
01309     if( ::CopyFile( target_file, szPath, FALSE ) ){
01310         /* 正常終了 */
01311         //@@@ 2001.12.11 start MIK
01312         if( m_pShareData->m_Common.m_sBackup.m_bBackUpDustBox && dustflag == false ){   //@@@ 2002.03.23 ネットワーク・リムーバブルドライブでない
01313             TCHAR   szDustPath[_MAX_PATH+1];
01314             _tcscpy(szDustPath, szPath);
01315             szDustPath[_tcslen(szDustPath) + 1] = _T('\0');
01316             SHFILEOPSTRUCT  fos;
01317             fos.hwnd   = GetSplitterHwnd();
01318             fos.wFunc  = FO_DELETE;
01319             fos.pFrom  = szDustPath;
01320             fos.pTo    = NULL;
01321             fos.fFlags = FOF_ALLOWUNDO | FOF_SIMPLEPROGRESS | FOF_NOCONFIRMATION;   //ダイアログなし
01322             fos.fAnyOperationsAborted = true; //false;
01323             fos.hNameMappings = NULL;
01324             fos.lpszProgressTitle = NULL; //"バックアップファイルをごみ箱に移動しています...";
01325             if( ::SHFileOperation(&fos) == 0 ){
01326                 /* 正常終了 */
01327             }else{
01328                 /* エラー終了 */
01329             }
01330         }
01331         //@@@ 2001.12.11 end MIK
01332     }else{
01333         /* エラー終了 */
01334         //  Jun.  5, 2005 genta 戻り値変更
01335         return 3;
01336     }
01337     //  Jun.  5, 2005 genta 戻り値変更
01338     return 1;
01339 }
01340
01354 bool CEditDoc::FormatBackUpPath( TCHAR* szNewPath, const TCHAR* target_file )
01355 {
01356     TCHAR   szDrive[_MAX_DIR];
01357     TCHAR   szDir[_MAX_DIR];
01358     TCHAR   szFname[_MAX_FNAME];
01359     TCHAR   szExt[_MAX_EXT];
01360
01361     /* パスの分解 */
01362     _tsplitpath( target_file, szDrive, szDir, szFname, szExt );
01363
01364     if( m_pShareData->m_Common.m_sBackup.m_bBackUpFolder ){ /* 指定フォルダにバックアップを作成する */
01365         _tcscpy( szNewPath, m_pShareData->m_Common.m_sBackup.m_szBackUpFolder );
01366         /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
01367         AddLastYenFromDirectoryPath( szNewPath );
01368     }
01369     else{
01370         auto_sprintf( szNewPath, _T("%ts%ts"), szDrive, szDir );
01371     }
01372
01373     /* 相対フォルダを挿入 */
01374     if( !m_pShareData->m_Common.m_sBackup.m_bBackUpPathAdvanced ){
01375         time_t  ltime;
01376         struct  tm *today, *gmt;
01377         wchar_t szTime[64];
01378         wchar_t szForm[64];
01379
01380         TCHAR*  pBase;
01381         pBase = szNewPath + _tcslen( szNewPath );
01382
01383         /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
01384         switch( m_pShareData->m_Common.m_sBackup.GetBackupType() ){
01385         case 1:
01386             auto_sprintf( pBase, _T("%ls.bak"), szFname );
01387             break;
01388         case 5: //  Jun.  5, 2005 genta 1の拡張子を残す版
01389             auto_sprintf( pBase, _T("%ts%ts.bak"), szFname, szExt );
01390             break;
01391         case 2: //  日付，時刻
01392             _tzset();
01393             _wstrdate( szTime );
01394             time( &ltime );             /* システム時刻を得ます */
01395             gmt = gmtime( &ltime );     /* 万国標準時に変換する */
01396             today = localtime( &ltime );/* 現地時間に変換する */
01397
01398             wcscpy( szForm, L"" );
01399             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_YEAR) ){ /* バックアップファイル名：日付の年 */
01400                 wcscat( szForm, L"%Y" );
01401             }
01402             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_MONTH) ){    /* バックアップファイル名：日付の月 */
01403                 wcscat( szForm, L"%m" );
01404             }
01405             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_DAY) ){  /* バックアップファイル名：日付の日 */
01406                 wcscat( szForm, L"%d" );
01407             }
01408             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_HOUR) ){ /* バックアップファイル名：日付の時 */
01409                 wcscat( szForm, L"%H" );
01410             }
01411             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_MIN) ){  /* バックアップファイル名：日付の分 */
01412                 wcscat( szForm, L"%M" );
01413             }
01414             if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_SEC) ){  /* バックアップファイル名：日付の秒 */
01415                 wcscat( szForm, L"%S" );
01416             }
01417             /* YYYYMMDD時分秒 形式に変換 */
01418             wcsftime( szTime, _countof( szTime ) - 1, szForm, today );
01419             auto_sprintf( pBase, _T("%ts_%ls%ls"), szFname, szTime, szExt );
01420             break;
01421     //  2001/06/12 Start by asa-o: ファイルに付ける日付を前回の保存時(更新日時)にする
01422         case 4: //  日付，時刻
01423             {
01424                 FILETIME    LastWriteTime,
01425                             LocalTime;
01426                 SYSTEMTIME  SystemTime;
01427
01428                 // 2005.10.20 ryoji FindFirstFileを使うように変更
01429                 if( ! GetLastWriteTimestamp( target_file, LastWriteTime )){
01430                     LastWriteTime.dwHighDateTime = LastWriteTime.dwLowDateTime = 0;
01431                 }
01432                 ::FileTimeToLocalFileTime(&LastWriteTime,&LocalTime);   // 現地時刻に変換
01433                 ::FileTimeToSystemTime(&LocalTime,&SystemTime);         // システムタイムに変換
01434
01435                 wcscpy( szTime, L"" );
01436                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_YEAR) ){ /* バックアップファイル名：日付の年 */
01437                     auto_sprintf(szTime,L"%d",SystemTime.wYear);
01438                 }
01439                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_MONTH) ){    /* バックアップファイル名：日付の月 */
01440                     auto_sprintf(szTime,L"%ls%02d",szTime,SystemTime.wMonth);
01441                 }
01442                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_DAY) ){  /* バックアップファイル名：日付の日 */
01443                     auto_sprintf(szTime,L"%ls%02d",szTime,SystemTime.wDay);
01444                 }
01445                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_HOUR) ){ /* バックアップファイル名：日付の時 */
01446                     auto_sprintf(szTime,L"%ls%02d",szTime,SystemTime.wHour);
01447                 }
01448                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_MIN) ){  /* バックアップファイル名：日付の分 */
01449                     auto_sprintf(szTime,L"%ls%02d",szTime,SystemTime.wMinute);
01450                 }
01451                 if( m_pShareData->m_Common.m_sBackup.GetBackupOpt(BKUP_SEC) ){  /* バックアップファイル名：日付の秒 */
01452                     auto_sprintf(szTime,L"%ls%02d",szTime,SystemTime.wSecond);
01453                 }
01454                 auto_sprintf( pBase, _T("%ts_%ls%ts"), szFname, szTime, szExt );
01455             }
01456             break;
01457     // 2001/06/12 End
01458
01459         case 3: //  ?xx : xx = 00~99, ?は任意の文字
01460         case 6: //  Jun.  5, 2005 genta 3の拡張子を残す版
01461             //  Aug. 15, 2000 genta
01462             //  ここでは作成するバックアップファイル名のみ生成する．
01463             //  ファイル名のRotationは確認ダイアログの後で行う．
01464             {
01465                 //  Jun.  5, 2005 genta 拡張子を残せるように処理起点を操作する
01466                 TCHAR* ptr;
01467                 if( m_pShareData->m_Common.m_sBackup.GetBackupType() == 3 ){
01468                     ptr = szExt;
01469                 }
01470                 else {
01471                     ptr = szExt + _tcslen( szExt );
01472                 }
01473                 *ptr   = _T('.');
01474                 *++ptr = m_pShareData->m_Common.m_sBackup.GetBackupExtChar();
01475                 *++ptr = _T('0');
01476                 *++ptr = _T('0');
01477                 *++ptr = _T('\0');
01478             }
01479             auto_sprintf( pBase, _T("%ts%ts"), szFname, szExt );
01480             break;
01481         }
01482
01483     }else{ // 詳細設定使用する
01484         TCHAR szFormat[1024];
01485
01486         switch( m_pShareData->m_Common.m_sBackup.GetBackupTypeAdv() ){
01487         case 4: //  ファイルの日付，時刻
01488             {
01489                 FILETIME    LastWriteTime,
01490                             LocalTime;
01491                 SYSTEMTIME  SystemTime;
01492
01493                 // 2005.10.20 ryoji FindFirstFileを使うように変更
01494                 if( ! GetLastWriteTimestamp( target_file, LastWriteTime )){
01495                     LastWriteTime.dwHighDateTime = LastWriteTime.dwLowDateTime = 0;
01496                 }
01497                 ::FileTimeToLocalFileTime(&LastWriteTime,&LocalTime);   // 現地時刻に変換
01498                 ::FileTimeToSystemTime(&LocalTime,&SystemTime);         // システムタイムに変換
01499
01500                 GetDateTimeFormat( szFormat, _countof(szFormat), m_pShareData->m_Common.m_sBackup.m_szBackUpPathAdvanced , SystemTime );
01501             }
01502             break;
01503         case 2: //  現在の日付，時刻
01504         default:
01505             {
01506                 time_t  ltime;
01507                 struct  tm *today;
01508
01509                 time( &ltime );             /* システム時刻を得ます */
01510                 today = localtime( &ltime );/* 現地時間に変換する */
01511
01512                 /* YYYYMMDD時分秒 形式に変換 */
01513                 _tcsftime( szFormat, _countof( szFormat ) - 1, m_pShareData->m_Common.m_sBackup.m_szBackUpPathAdvanced , today );
01514             }
01515             break;
01516         }
01517
01518         {
01519             // make keys
01520             // $0-$9に対応するフォルダ名を切り出し
01521             TCHAR keybuff[1024];
01522             _tcscpy( keybuff, szDir );
01523             CutLastYenFromDirectoryPath( keybuff );
01524
01525             TCHAR *folders[10];
01526             {
01527                 //  Jan. 9, 2006 genta VC6対策
01528                 int idx;
01529                 for( idx=0; idx<10; ++idx ){
01530                     folders[idx] = 0;
01531                 }
01532                 folders[0] = szFname;
01533
01534                 for( idx=1; idx<10; ++idx ){
01535                     TCHAR *cp;
01536                     cp = auto_strchr(keybuff, _T('\\'));
01537                     if( cp != NULL ){
01538                         folders[idx] = cp+1;
01539                         *cp = _T('\0');
01540                     }
01541                     else{
01542                         break;
01543                     }
01544                 }
01545             }
01546             {
01547                 // $0-$9を置換
01548                 //wcscpy( szNewPath, L"" );
01549                 TCHAR *q= szFormat;
01550                 TCHAR *q2 = szFormat;
01551                 while( *q ){
01552                     if( *q==_T('$') ){
01553                         ++q;
01554                         if( isdigit(*q) ){
01555                             q[-1] = _T('\0');
01556                             _tcscat( szNewPath, q2 );
01557                             if( folders[*q-_T('0')] != 0 ){
01558                                 _tcscat( szNewPath, folders[*q-_T('0')] );
01559                             }
01560                             q2 = q+1;
01561                         }
01562                     }
01563                     ++q;
01564                 }
01565                 _tcscat( szNewPath, q2 );
01566             }
01567         }
01568         {
01569             TCHAR temp[1024];
01570             TCHAR *cp;
01571             //  2006.03.25 Aroka szExt[0] == '\0'のときのオーバラン問題を修正
01572             TCHAR *ep = (szExt[0]!=0) ? &szExt[1] : &szExt[0];
01573
01574             while( _tcschr( szNewPath, _T('*') ) ){
01575                 _tcscpy( temp, szNewPath );
01576                 cp = _tcschr( temp, _T('*') );
01577                 *cp = 0;
01578                 auto_sprintf( szNewPath, _T("%ts%ts%ts"), temp, ep, cp+1 );
01579             }
01580             //  ??はバックアップ連番にしたいところではあるが，
01581             //  連番処理は末尾の2桁にしか対応していないので
01582             //  使用できない文字?を_に変換してお茶を濁す
01583             while(( cp = _tcschr( szNewPath, _T('?') ) ) != NULL){
01584                 *cp = _T('_');
01585             }
01586         }
01587     }
01588     return true;
01589 }
01590
01591 /* ファイルの排他ロック */
01592 void CEditDoc::DoFileLock( void )
01593 {
01594     BOOL    bCheckOnly;
01595
01596     /* ロックしている */
01597     if( NULL != m_hLockedFile ){
01598         /* ロック解除 */
01599         ::CloseHandle( m_hLockedFile );
01600         m_hLockedFile = NULL;
01601     }
01602
01603     /* ファイルが存在しない */
01604     if( -1 == _taccess( GetFilePath(), 0 ) ){
01605         /* ファイルの排他制御モード */
01606         m_nFileShareModeOld = SHAREMODE_NOT_EXCLUSIVE;
01607         return;
01608     }else{
01609         /* ファイルの排他制御モード */
01610         m_nFileShareModeOld = m_pShareData->m_Common.m_sFile.m_nFileShareMode;
01611     }
01612
01613
01614     /* ファイルを開いていない */
01615     if( ! IsFilePathAvailable() ){
01616         return;
01617     }
01618     /* 読み取り専用モード */
01619     if( m_bReadOnly ){
01620         return;
01621     }
01622
01623
01624     if( m_pShareData->m_Common.m_sFile.m_nFileShareMode == SHAREMODE_DENY_WRITE ||
01625         m_pShareData->m_Common.m_sFile.m_nFileShareMode == SHAREMODE_DENY_READWRITE ){
01626         bCheckOnly = FALSE;
01627     }
01628     else{
01629         /* 排他制御しないけどロックされているかのチェックは行うのでreturnしない */
01630 //      return;
01631         bCheckOnly = TRUE;
01632     }
01633     /* 書込み禁止かどうか調べる */
01634     if( -1 == _taccess( GetFilePath(), 2 ) ){   /* アクセス権：書き込み許可 */
01635         m_hLockedFile = NULL;
01636         /* 親ウィンドウのタイトルを更新 */
01637         SetParentCaption();
01638         return;
01639     }
01640
01641     //書き込めるか検査
01642     if( !IsFileWritable(GetFilePath()) ){
01643         ::MessageBeep( MB_ICONEXCLAMATION );
01644         MYMESSAGEBOX(
01645             GetSplitterHwnd(),
01646             MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
01647             GSTR_APPNAME,
01648             _T("%ts\nは現在他のプロセスによって書込みが禁止されています。"),
01649             IsFilePathAvailable() ? GetFilePath() : _T("（無題）")
01650         );
01651         m_hLockedFile = NULL;
01652         /* 親ウィンドウのタイトルを更新 */
01653         SetParentCaption();
01654         return;
01655     }
01656
01657     //↓↑※kobake注: この間の微小な時間差に注意。もっと良い処理があるはず。
01658
01659     //オープン
01660     m_hLockedFile = OpenFile_InShareMode( GetFilePath(), m_pShareData->m_Common.m_sFile.m_nFileShareMode );
01661     if( INVALID_HANDLE_VALUE == m_hLockedFile ){
01662         const TCHAR*    pszMode;
01663         switch( m_pShareData->m_Common.m_sFile.m_nFileShareMode ){
01664         case SHAREMODE_DENY_READWRITE:  /* 読み書き */
01665             pszMode = _T("読み書き禁止モード");
01666             break;
01667         case SHAREMODE_DENY_WRITE:  /* 書き */
01668             pszMode = _T("書き込み禁止モード");
01669             break;
01670         default:
01671             pszMode = _T("未定義のモード（問題があります）");
01672             break;
01673         }
01674         ::MessageBeep( MB_ICONEXCLAMATION );
01675         MYMESSAGEBOX(
01676             GetSplitterHwnd(),
01677             MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
01678             GSTR_APPNAME,
01679             _T("%ls\nを%lsでロックできませんでした。\n現在このファイルに対する排他制御は無効となります。"),
01680             IsFilePathAvailable() ? GetFilePath() : _T("（無題）"),
01681             pszMode
01682         );
01683         /* 親ウィンドウのタイトルを更新 */
01684         SetParentCaption();
01685         return;
01686     }
01687     /* 排他制御しないけどロックされているかのチェックは行う場合 */
01688     if( bCheckOnly ){
01689         /* ロックを解除する */
01690         DoFileUnLock();
01691
01692     }
01693     return;
01694 }
01695
01696
01697 /* ファイルの排他ロック解除 */
01698 void CEditDoc::DoFileUnLock( void )
01699 {
01700     if( NULL != m_hLockedFile ){
01701         /* ロック解除 */
01702         ::CloseHandle( m_hLockedFile );
01703         m_hLockedFile = NULL;
01704
01705         /* ファイルの排他制御モード */
01706         m_nFileShareModeOld = SHAREMODE_NOT_EXCLUSIVE;
01707     }
01708     return;
01709 }
01710
01711 /*
01712     C関数リスト作成はCEditDoc_FuncList1.cppへ移動
01713 */
01714
01716 void CEditDoc::MakeFuncList_PLSQL( CFuncInfoArr* pcFuncInfoArr )
01717 {
01718     const wchar_t*  pLine;
01719     CLogicInt       nLineLen;
01720     int         i;
01721     int         nCharChars;
01722     wchar_t     szWordPrev[100];
01723     wchar_t     szWord[100];
01724     int         nWordIdx = 0;
01725     int         nMaxWordLeng = 70;
01726     int         nMode;
01727     wchar_t     szFuncName[80];
01728     CLogicInt   nFuncLine;
01729     int         nFuncId;
01730     int         nFuncNum;
01731     int         nFuncOrProc = 0;
01732     int         nParseCnt = 0;
01733
01734     szWordPrev[0] = L'\0';
01735     szWord[nWordIdx] = L'\0';
01736     nMode = 0;
01737     nFuncNum = 0;
01738     CLogicInt   nLineCount;
01739     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
01740         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
01741         for( i = 0; i < nLineLen; ++i ){
01742             /* 1バイト文字だけを処理する */
01743             // 2005-09-02 D.S.Koba GetSizeOfChar
01744             nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
01745             if( 0 == nCharChars ){
01746                 nCharChars = 1;
01747             }
01748 //          if( 1 < nCharChars ){
01749 //              i += (nCharChars - 1);
01750 //              continue;
01751 //          }
01752             /* シングルクォーテーション文字列読み込み中 */
01753             if( 20 == nMode ){
01754                 if( L'\'' == pLine[i] ){
01755                     if( i + 1 < nLineLen && L'\'' == pLine[i + 1] ){
01756                         ++i;
01757                     }else{
01758                         nMode = 0;
01759                         continue;
01760                     }
01761                 }else{
01762                 }
01763             }else
01764             /* コメント読み込み中 */
01765             if( 8 == nMode ){
01766                 if( i + 1 < nLineLen && L'*' == pLine[i] &&  L'/' == pLine[i + 1] ){
01767                     ++i;
01768                     nMode = 0;
01769                     continue;
01770                 }else{
01771                 }
01772             }else
01773             /* 単語読み込み中 */
01774             if( 1 == nMode ){
01775                 if( (1 == nCharChars && (
01776                     L'_' == pLine[i] ||
01777                     L'~' == pLine[i] ||
01778                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
01779                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
01780                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )
01781                     ) )
01782                  || 2 == nCharChars
01783                 ){
01784 //                  ++nWordIdx;
01785                     if( nWordIdx >= nMaxWordLeng ){
01786                         nMode = 999;
01787                         continue;
01788                     }else{
01789 //                      szWord[nWordIdx] = pLine[i];
01790 //                      szWord[nWordIdx + 1] = '\0';
01791                         wmemcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01792                         szWord[nWordIdx + nCharChars] = L'\0';
01793                         nWordIdx += (nCharChars);
01794                     }
01795                 }
01796                 else{
01797                     if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"FUNCTION" ) ){
01798                         nFuncOrProc = 1;
01799                         nParseCnt = 1;
01800                         nFuncLine = nLineCount + CLogicInt(1);
01801                     }
01802                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"PROCEDURE" ) ){
01803                         nFuncOrProc = 2;
01804                         nParseCnt = 1;
01805                         nFuncLine = nLineCount + CLogicInt(1);
01806                     }
01807                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"PACKAGE" ) ){
01808                         nFuncOrProc = 3;
01809                         nParseCnt = 1;
01810                         nFuncLine = nLineCount + CLogicInt(1);
01811                     }
01812                     else if( 1 == nParseCnt && 3 == nFuncOrProc && 0 == wcsicmp( szWord, L"BODY" ) ){
01813                         nFuncOrProc = 4;
01814                         nParseCnt = 1;
01815                     }
01816                     else if( 1 == nParseCnt ){
01817                         if( 1 == nFuncOrProc ||
01818                             2 == nFuncOrProc ||
01819                             3 == nFuncOrProc ||
01820                             4 == nFuncOrProc ){
01821                             ++nParseCnt;
01822                             wcscpy( szFuncName, szWord );
01823                         }else
01824                         if( 3 == nFuncOrProc ){
01825
01826                         }
01827                     }else
01828                     if( 2 == nParseCnt ){
01829                         if( 0 == wcsicmp( szWord, L"IS" ) ){
01830                             if( 1 == nFuncOrProc ){
01831                                 nFuncId = 11;   /* ファンクション本体 */
01832                             }else
01833                             if( 2 == nFuncOrProc ){
01834                                 nFuncId = 21;   /* プロシージャ本体 */
01835                             }else
01836                             if( 3 == nFuncOrProc ){
01837                                 nFuncId = 31;   /* パッケージ仕様部 */
01838                             }else
01839                             if( 4 == nFuncOrProc ){
01840                                 nFuncId = 41;   /* パッケージ本体 */
01841                             }
01842                             ++nFuncNum;
01843                             /*
01844                               カーソル位置変換
01845                               物理位置(行頭からのバイト数、折り返し無し行位置)
01846                               →
01847                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01848                             */
01849                             CLayoutPoint ptPos;
01850                             m_cLayoutMgr.LogicToLayout(
01851                                 CLogicPoint(0, nFuncLine - 1),
01852                                 &ptPos
01853                             );
01854                             pcFuncInfoArr->AppendData( nFuncLine, ptPos.GetY2() + CLayoutInt(1), szFuncName, nFuncId );
01855                             nParseCnt = 0;
01856                         }
01857                         if( 0 == wcsicmp( szWord, L"AS" ) ){
01858                             if( 3 == nFuncOrProc ){
01859                                 nFuncId = 31;   /* パッケージ仕様部 */
01860                                 ++nFuncNum;
01861                                 /*
01862                                   カーソル位置変換
01863                                   物理位置(行頭からのバイト数、折り返し無し行位置)
01864                                   →
01865                                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01866                                 */
01867                                 CLayoutPoint ptPos;
01868                                 m_cLayoutMgr.LogicToLayout(
01869                                     CLogicPoint(0, nFuncLine - 1),
01870                                     &ptPos
01871                                 );
01872                                 pcFuncInfoArr->AppendData( nFuncLine, ptPos.GetY2() + CLayoutInt(1) , szFuncName, nFuncId );
01873                                 nParseCnt = 0;
01874                             }
01875                             else if( 4 == nFuncOrProc ){
01876                                 nFuncId = 41;   /* パッケージ本体 */
01877                                 ++nFuncNum;
01878                                 /*
01879                                   カーソル位置変換
01880                                   物理位置(行頭からのバイト数、折り返し無し行位置)
01881                                   →
01882                                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01883                                 */
01884                                 CLayoutPoint ptPos;
01885                                 m_cLayoutMgr.LogicToLayout(
01886                                     CLogicPoint(0, nFuncLine - 1),
01887                                     &ptPos
01888                                 );
01889                                 pcFuncInfoArr->AppendData( nFuncLine, ptPos.GetY2() + CLayoutInt(1) , szFuncName, nFuncId );
01890                                 nParseCnt = 0;
01891                             }
01892                         }
01893                     }
01894                     wcscpy( szWordPrev, szWord );
01895                     nWordIdx = 0;
01896                     szWord[0] = L'\0';
01897                     nMode = 0;
01898                     i--;
01899                     continue;
01900                 }
01901             }else
01902             /* 記号列読み込み中 */
01903             if( 2 == nMode ){
01904                 if( L'_' == pLine[i] ||
01905                     L'~' == pLine[i] ||
01906                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
01907                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
01908                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
01909                     L'\t' == pLine[i] ||
01910                      L' ' == pLine[i] ||
01911                      WCODE::CR == pLine[i] ||
01912                      WCODE::LF == pLine[i] ||
01913                      L'{' == pLine[i] ||
01914                      L'}' == pLine[i] ||
01915                      L'(' == pLine[i] ||
01916                      L')' == pLine[i] ||
01917                      L';' == pLine[i] ||
01918                     L'\'' == pLine[i] ||
01919                      L'/' == pLine[i] ||
01920                      L'-' == pLine[i]
01921                 ){
01922                     wcscpy( szWordPrev, szWord );
01923                     nWordIdx = 0;
01924                     szWord[0] = L'\0';
01925                     nMode = 0;
01926                     i--;
01927                     continue;
01928                 }else{
01929 //                  ++nWordIdx;
01930                     if( nWordIdx >= nMaxWordLeng ){
01931                         nMode = 999;
01932                         continue;
01933                     }else{
01934 //                      szWord[nWordIdx] = pLine[i];
01935 //                      szWord[nWordIdx + 1] = '\0';
01936                         wmemcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01937                         szWord[nWordIdx + nCharChars] = L'\0';
01938                         nWordIdx += (nCharChars);
01939                     }
01940                 }
01941             }else
01942             /* 長過ぎる単語無視中 */
01943             if( 999 == nMode ){
01944                 /* 空白やタブ記号等を飛ばす */
01945                 if( L'\t' == pLine[i] ||
01946                     L' ' == pLine[i] ||
01947                     WCODE::CR == pLine[i] ||
01948                     WCODE::LF == pLine[i]
01949                 ){
01950                     nMode = 0;
01951                     continue;
01952                 }
01953             }else
01954             /* ノーマルモード */
01955             if( 0 == nMode ){
01956                 /* 空白やタブ記号等を飛ばす */
01957                 if( L'\t' == pLine[i] ||
01958                     L' ' == pLine[i] ||
01959                     WCODE::CR == pLine[i] ||
01960                     WCODE::LF == pLine[i]
01961                 ){
01962                     continue;
01963                 }else
01964                 if( i < nLineLen - 1 && L'-' == pLine[i] &&  L'-' == pLine[i + 1] ){
01965                     break;
01966                 }else
01967                 if( i < nLineLen - 1 && L'/' == pLine[i] &&  L'*' == pLine[i + 1] ){
01968                     ++i;
01969                     nMode = 8;
01970                     continue;
01971                 }else
01972                 if( L'\'' == pLine[i] ){
01973                     nMode = 20;
01974                     continue;
01975                 }else
01976                 if( L';' == pLine[i] ){
01977                     if( 2 == nParseCnt ){
01978                         if( 1 == nFuncOrProc ){
01979                             nFuncId = 10;   /* ファンクション宣言 */
01980                         }else{
01981                             nFuncId = 20;   /* プロシージャ宣言 */
01982                         }
01983                         ++nFuncNum;
01984                         /*
01985                           カーソル位置変換
01986                           物理位置(行頭からのバイト数、折り返し無し行位置)
01987                           →
01988                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01989                         */
01990                         CLayoutPoint ptPos;
01991                         m_cLayoutMgr.LogicToLayout(
01992                             CLogicPoint(0, nFuncLine - 1),
01993                             &ptPos
01994                         );
01995                         pcFuncInfoArr->AppendData( nFuncLine, ptPos.GetY2() + CLayoutInt(1) , szFuncName, nFuncId );
01996                         nParseCnt = 0;
01997                     }
01998                     nMode = 0;
01999                     continue;
02000                 }else{
02001                     if( (1 == nCharChars && (
02002                         L'_' == pLine[i] ||
02003                         L'~' == pLine[i] ||
02004                         (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
02005                         (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
02006                         (L'0' <= pLine[i] &&    pLine[i] <= L'9' )
02007                         ) )
02008                      || 2 == nCharChars
02009                     ){
02010                         wcscpy( szWordPrev, szWord );
02011                         nWordIdx = 0;
02012
02013 //                      szWord[nWordIdx] = pLine[i];
02014 //                      szWord[nWordIdx + 1] = '\0';
02015                         wmemcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
02016                         szWord[nWordIdx + nCharChars] = L'\0';
02017                         nWordIdx += (nCharChars);
02018
02019                         nMode = 1;
02020                     }else{
02021                         wcscpy( szWordPrev, szWord );
02022                         nWordIdx = 0;
02023 //                      szWord[nWordIdx] = pLine[i];
02024 //                      szWord[nWordIdx + 1] = '\0';
02025
02026                         wmemcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
02027                         szWord[nWordIdx + nCharChars] = L'\0';
02028                         nWordIdx += (nCharChars);
02029
02030                         nMode = 2;
02031                     }
02032                 }
02033             }
02034             i += (nCharChars - 1);
02035         }
02036     }
02037     return;
02038 }
02039
02040
02041
02042
02043
02050 void CEditDoc::MakeTopicList_txt( CFuncInfoArr* pcFuncInfoArr )
02051 {
02052     const wchar_t*  pLine;
02053     CLogicInt       nLineLen;
02054     int             i;
02055     int             j;
02056     int             nCharChars;
02057     int             nCharChars2;
02058     const wchar_t*  pszStarts;
02059     int             nStartsLen;
02060     wchar_t*        pszText;
02061
02062
02063     pszStarts = m_pShareData->m_Common.m_sFormat.m_szMidashiKigou;  /* 見出し記号 */
02064     nStartsLen = wcslen( pszStarts );
02065
02066     /*  ネストの深さは、nMaxStackレベルまで、ひとつのヘッダは、最長32文字まで区別
02067         （32文字まで同じだったら同じものとして扱います）
02068     */
02069     const int nMaxStack = 32;   //  ネストの最深
02070     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02071     wchar_t pszStack[nMaxStack][32];
02072     wchar_t szTitle[32];            //  一時領域
02073     CLogicInt               nLineCount;
02074     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02075         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02076         if( NULL == pLine ){
02077             break;
02078         }
02079         for( i = 0; i < nLineLen; ++i ){
02080             if( WCODE::isBlank(pLine[i]) ){
02081                 continue;
02082             }
02083             break;
02084         }
02085         if( i >= nLineLen ){
02086             continue;
02087         }
02088         // 2005-09-02 D.S.Koba GetSizeOfChar
02089         nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
02090         for( j = 0; j < nStartsLen; j+=nCharChars2 ){
02091             // 2005-09-02 D.S.Koba GetSizeOfChar
02092             nCharChars2 = CNativeW::GetSizeOfChar( pszStarts, nStartsLen, j );
02093             if( nCharChars == nCharChars2 ){
02094                 if( 0 == auto_memcmp( &pLine[i], &pszStarts[j], nCharChars ) ){
02095                     wcsncpy( szTitle, &pszStarts[j], nCharChars);   //  szTitleに保持。
02096                     szTitle[nCharChars] = L'\0';
02097                     break;
02098                 }
02099             }
02100         }
02101         if( j >= nStartsLen ){
02102             continue;
02103         }
02104         /* 見出し文字に(が含まれていることが前提になっている! */
02105         if( nCharChars == 1 && pLine[i] == L'(' ){
02106             if( pLine[i + 1] >= L'0' && pLine[i + 1] <= L'9' )  {
02107                 wcscpy( szTitle, L"(0)" );
02108             }
02109             else if ( pLine[i + 1] >= L'A' && pLine[i + 1] <= L'Z' ) {
02110                 wcscpy( szTitle, L"(A)" );
02111             }
02112             else if ( pLine[i + 1] >= L'a' && pLine[i + 1] <= L'z' ) {
02113                 wcscpy( szTitle, L"(a)" );
02114             }
02115             else {
02116                 continue;
02117             }
02118         }else
02119         if( 2 == nCharChars ){
02120             // 2003.06.28 Moca 1桁目から始まっていないと同一レベルと認識されずに
02121             //  どんどん子ノードになってしまうのを，字下げによらず同一レベルと認識されるように
02122             /* 全角数字 */
02123             if( pLine[i] == 0x82 && ( pLine[i + 1] >= 0x4f && pLine[i + 1] <= 0x58 ) ) {
02124                 wcscpy( szTitle, L"０" );
02125             }
02126             /* ①〜⑳ */
02127             else if( pLine[i] == 0x87 && ( pLine[i + 1] >= 0x40 && pLine[i + 1] <= 0x53 ) ){
02128                 wcscpy( szTitle, L"①" );
02129             }
02130             /* Ⅰ〜Ⅹ */
02131             else if( pLine[i] == 0x87 && ( pLine[i + 1] >= 0x54 && pLine[i + 1] <= 0x5d ) ){
02132                 wcscpy( szTitle, L"Ⅰ" );
02133             }
02134             // 2003.06.28 Moca 漢数字も同一階層に
02135             //  漢数字が異なる＝番号が異なると異なる見出し記号と認識されていたのを
02136             //  皆同じ階層と識別されるように
02137             else{
02138                 wchar_t szCheck[3];
02139                 szCheck[0] = pLine[i];
02140                 szCheck[1] = pLine[i + 1];
02141                 szCheck[2] = L'\0';
02142                 /* 一〜十 */
02143                 if( NULL != wcsstr( L"〇一二三四五六七八九十百零壱弐参伍", szCheck ) ){
02144                     wcscpy( szTitle, L"一" );
02145                 }
02146             }
02147         }
02148         /*  「見出し記号」に含まれる文字で始まるか、
02149             (0、(1、...(9、(A、(B、...(Z、(a、(b、...(z
02150             で始まる行は、アウトライン結果に表示する。
02151         */
02152         pszText = new wchar_t[nLineLen + 1];
02153         wmemcpy( pszText, &pLine[i], nLineLen );
02154         pszText[nLineLen] = L'\0';
02155         for( i = 0; i < (int)wcslen(pszText); ++i ){
02156             if( pszText[i] == WCODE::CR ||
02157                 pszText[i] == WCODE::LF ){
02158                 pszText[i] = L'\0';
02159             }
02160         }
02161         /*
02162           カーソル位置変換
02163           物理位置(行頭からのバイト数、折り返し無し行位置)
02164           →
02165           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02166         */
02167         CLayoutPoint ptPos;
02168         m_cLayoutMgr.LogicToLayout(
02169             CLogicPoint(0, nLineCount),
02170             &ptPos
02171         );
02172         /* nDepthを計算 */
02173         int k;
02174         BOOL bAppend;
02175         bAppend = TRUE;
02176         for ( k = 0; k < nDepth; k++ ){
02177             int nResult = wcscmp( pszStack[k], szTitle );
02178             if ( nResult == 0 ){
02179                 break;
02180             }
02181         }
02182         if ( k < nDepth ){
02183             //  ループ途中でbreak;してきた。＝今までに同じ見出しが存在していた。
02184             //  ので、同じレベルに合わせてAppendData.
02185             nDepth = k;
02186         }
02187         else if( nMaxStack > k ){
02188             //  いままでに同じ見出しが存在しなかった。
02189             //  ので、pszStackにコピーしてAppendData.
02190             wcscpy(pszStack[nDepth], szTitle);
02191         }else{
02192             // 2002.11.03 Moca 最大値を超えるとバッファオーバーラン
02193             // nDepth = nMaxStack;
02194             bAppend = FALSE;
02195         }
02196
02197         if( FALSE != bAppend ){
02198             pcFuncInfoArr->AppendData( nLineCount + CLogicInt(1), ptPos.GetY2() + CLayoutInt(1) , pszText, 0, nDepth );
02199             nDepth++;
02200         }
02201         delete [] pszText;
02202
02203     }
02204     return;
02205 }
02206
02207
02212 struct oneRule {
02213     wchar_t szMatch[256];
02214     int     nLength;
02215     wchar_t szGroupName[256];
02216 };
02217
02223 int CEditDoc::ReadRuleFile( const TCHAR* pszFilename, oneRule* pcOneRule, int nMaxCount )
02224 {
02225     long    i;
02226     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
02227     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
02228     FILE*   pFile = _tfopen_absini( pszFilename, _T("r") );
02229     if( NULL == pFile ){
02230         return 0;
02231     }
02232     wchar_t szLine[LINEREADBUFSIZE];
02233     const wchar_t*  pszDelimit = L" /// ";
02234     const wchar_t*  pszKeySeps = L",\0";
02235     wchar_t*    pszWork;
02236     int nDelimitLen = wcslen( pszDelimit );
02237     int nCount = 0;
02238     while( NULL != fgetws( szLine, _countof(szLine), pFile ) && nCount < nMaxCount ){
02239         pszWork = wcsstr( szLine, pszDelimit );
02240         if( NULL != pszWork && szLine[0] != L';' ){
02241             *pszWork = L'\0';
02242             pszWork += nDelimitLen;
02243
02244             /* 最初のトークンを取得します。 */
02245             wchar_t* pszToken = wcstok( szLine, pszKeySeps );
02246             while( NULL != pszToken ){
02247 //              nRes = wcsicmp( pszKey, pszToken );
02248                 for( i = 0; i < (int)wcslen(pszWork); ++i ){
02249                     if( pszWork[i] == L'\r' ||
02250                         pszWork[i] == L'\n' ){
02251                         pszWork[i] = L'\0';
02252                         break;
02253                     }
02254                 }
02255                 wcsncpy( pcOneRule[nCount].szMatch, pszToken, 255 );
02256                 wcsncpy( pcOneRule[nCount].szGroupName, pszWork, 255 );
02257                 pcOneRule[nCount].szMatch[255] = L'\0';
02258                 pcOneRule[nCount].szGroupName[255] = L'\0';
02259                 pcOneRule[nCount].nLength = wcslen(pcOneRule[nCount].szMatch);
02260                 nCount++;
02261                 pszToken = wcstok( NULL, pszKeySeps );
02262             }
02263         }
02264     }
02265     fclose( pFile );
02266     return nCount;
02267 }
02268
02275 void CEditDoc::MakeFuncList_RuleFile( CFuncInfoArr* pcFuncInfoArr )
02276 {
02277     const wchar_t*  pLine;
02278     CLogicInt       nLineLen;
02279     int             i;
02280     int             j;
02281     wchar_t*        pszText;
02282
02283     /* ルールファイルの内容をバッファに読み込む */
02284     oneRule test[1024]; //  1024個許可。
02285     int nCount = ReadRuleFile(GetDocumentAttribute().m_szOutlineRuleFilename, test, 1024 );
02286     if ( nCount < 1 ){
02287         return;
02288     }
02289
02290     /*  ネストの深さは、32レベルまで、ひとつのヘッダは、最長256文字まで区別
02291         （256文字まで同じだったら同じものとして扱います）
02292     */
02293     const int nMaxStack = 32;   //  ネストの最深
02294     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02295     wchar_t pszStack[nMaxStack][256];
02296     wchar_t szTitle[256];           //  一時領域
02297     CLogicInt       nLineCount;
02298     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02299         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02300         if( NULL == pLine ){
02301             break;
02302         }
02303         for( i = 0; i < nLineLen; ++i ){
02304             if( pLine[i] == ' ' ||
02305                 pLine[i] == '\t'){
02306                 continue;
02307             }else
02308             if( i + 1 < nLineLen && pLine[i] == 0x81 && pLine[i + 1] == 0x40 ){
02309                 ++i;
02310                 continue;
02311             }
02312             break;
02313         }
02314         if( i >= nLineLen ){
02315             continue;
02316         }
02317         for( j = 0; j < nCount; j++ ){
02318             if ( 0 == wcsncmp( &pLine[i], test[j].szMatch, test[j].nLength ) ){
02319                 wcscpy( szTitle, test[j].szGroupName );
02320                 break;
02321             }
02322         }
02323         if( j >= nCount ){
02324             continue;
02325         }
02326         /*  ルールにマッチした行は、アウトライン結果に表示する。
02327         */
02328         pszText = new wchar_t[nLineLen + 1];
02329         wmemcpy( pszText, &pLine[i], nLineLen );
02330         pszText[nLineLen] = L'\0';
02331         int nTextLen = wcslen( pszText );
02332         for( i = 0; i < nTextLen; ++i ){
02333             if( pszText[i] == WCODE::CR ||
02334                 pszText[i] == WCODE::LF ){
02335                 pszText[i] = L'\0';
02336                 break;
02337             }
02338         }
02339         /*
02340           カーソル位置変換
02341           物理位置(行頭からのバイト数、折り返し無し行位置)
02342           →
02343           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02344         */
02345         CLayoutPoint ptPos;
02346         m_cLayoutMgr.LogicToLayout(
02347             CLogicPoint(0, nLineCount),
02348             &ptPos
02349         );
02350         /* nDepthを計算 */
02351         int k;
02352         BOOL bAppend;
02353         bAppend = TRUE;
02354         for ( k = 0; k < nDepth; k++ ){
02355             int nResult = wcscmp( pszStack[k], szTitle );
02356             if ( nResult == 0 ){
02357                 break;
02358             }
02359         }
02360         if ( k < nDepth ){
02361             //  ループ途中でbreak;してきた。＝今までに同じ見出しが存在していた。
02362             //  ので、同じレベルに合わせてAppendData.
02363             nDepth = k;
02364         }
02365         else if( nMaxStack> k ){
02366             //  いままでに同じ見出しが存在しなかった。
02367             //  ので、pszStackにコピーしてAppendData.
02368             wcscpy(pszStack[nDepth], szTitle);
02369         }else{
02370             // 2002.11.03 Moca 最大値を超えるとバッファオーバーランするから規制する
02371             // nDepth = nMaxStack;
02372             bAppend = FALSE;
02373         }
02374
02375         if( FALSE != bAppend ){
02376             pcFuncInfoArr->AppendData( nLineCount + CLogicInt(1), ptPos.GetY2() + CLayoutInt(1) , pszText, 0, nDepth );
02377             nDepth++;
02378         }
02379         delete [] pszText;
02380
02381     }
02382     return;
02383 }
02384
02385
02386
02388 void CEditDoc::MakeTopicList_cobol( CFuncInfoArr* pcFuncInfoArr )
02389 {
02390     const wchar_t*  pLine;
02391     CLogicInt       nLineLen;
02392     int             i;
02393     int             k;
02394     wchar_t         szDivision[1024];
02395     wchar_t         szLabel[1024];
02396     const wchar_t*  pszKeyWord;
02397     int             nKeyWordLen;
02398     BOOL            bDivision;
02399
02400     szDivision[0] = L'\0';
02401     szLabel[0] =  L'\0';
02402
02403
02404     CLogicInt   nLineCount;
02405     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02406         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02407         if( NULL == pLine ){
02408             break;
02409         }
02410         /* コメント行か */
02411         if( 7 <= nLineLen && pLine[6] == L'*' ){
02412             continue;
02413         }
02414         /* ラベル行か */
02415         if( 8 <= nLineLen && pLine[7] != L' ' ){
02416             k = 0;
02417             for( i = 7; i < nLineLen; ){
02418                 if( pLine[i] == '.'
02419                  || pLine[i] == WCODE::CR
02420                  || pLine[i] == WCODE::LF
02421                 ){
02422                     break;
02423                 }
02424                 szLabel[k] = pLine[i];
02425                 ++k;
02426                 ++i;
02427                 if( pLine[i - 1] == L' ' ){
02428                     for( ; i < nLineLen; ++i ){
02429                         if( pLine[i] != L' ' ){
02430                             break;
02431                         }
02432                     }
02433                 }
02434             }
02435             szLabel[k] = L'\0';
02436 //          MYTRACE_A( "szLabel=[%ls]\n", szLabel );
02437
02438
02439
02440             pszKeyWord = L"division";
02441             nKeyWordLen = wcslen( pszKeyWord );
02442             bDivision = FALSE;
02443             for( i = 0; i <= (int)wcslen( szLabel ) - nKeyWordLen; ++i ){
02444                 if( 0 == auto_memicmp( &szLabel[i], pszKeyWord, nKeyWordLen ) ){
02445                     szLabel[i + nKeyWordLen] = L'\0';
02446                     wcscpy( szDivision, szLabel );
02447                     bDivision = TRUE;
02448                     break;
02449                 }
02450             }
02451             if( bDivision ){
02452                 continue;
02453             }
02454             /*
02455               カーソル位置変換
02456               物理位置(行頭からのバイト数、折り返し無し行位置)
02457               →
02458               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02459             */
02460
02461             CLayoutPoint ptPos;
02462             wchar_t szWork[1024];
02463             m_cLayoutMgr.LogicToLayout(
02464                 CLogicPoint(0, nLineCount),
02465                 &ptPos
02466             );
02467             auto_sprintf( szWork, L"%ls::%ls", szDivision, szLabel );
02468             pcFuncInfoArr->AppendData( nLineCount + CLogicInt(1), ptPos.GetY2() + CLayoutInt(1) , szWork, 0 );
02469         }
02470     }
02471     return;
02472 }
02473
02474
02480 void CEditDoc::MakeTopicList_asm( CFuncInfoArr* pcFuncInfoArr )
02481 {
02482     CLogicInt nTotalLine;
02483
02484     nTotalLine = m_cDocLineMgr.GetLineCount();
02485
02486     for( CLogicInt nLineCount = CLogicInt(0); nLineCount < nTotalLine; nLineCount++ ){
02487         const WCHAR* pLine;
02488         CLogicInt nLineLen;
02489         WCHAR* pTmpLine;
02490         int length;
02491         int offset;
02492 #define MAX_ASM_TOKEN 2
02493         WCHAR* token[MAX_ASM_TOKEN];
02494         int j;
02495         WCHAR* p;
02496
02497         //1行取得する。
02498         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02499         if( pLine == NULL ) break;
02500
02501         //作業用にコピーを作成する。バイナリがあったらその後ろは知らない。
02502         pTmpLine = wcsdup( pLine );
02503         if( pTmpLine == NULL ) break;
02504         if( wcslen( pTmpLine ) >= (unsigned int)nLineLen ){ //バイナリを含んでいたら短くなるので...
02505             pTmpLine[ nLineLen ] = L'\0';   //指定長で切り詰め
02506         }
02507
02508         //行コメント削除
02509         p = wcsstr( pTmpLine, L";" );
02510         if( p ) *p = L'\0';
02511
02512         length = wcslen( pTmpLine );
02513         offset = 0;
02514
02515         //トークンに分割
02516         for( j = 0; j < MAX_ASM_TOKEN; j++ ) token[ j ] = NULL;
02517         for( j = 0; j < MAX_ASM_TOKEN; j++ ){
02518             token[ j ] = my_strtok<WCHAR>( pTmpLine, length, &offset, L" \t\r\n" );
02519             if( token[ j ] == NULL ) break;
02520             //トークンに含まれるべき文字でないか？
02521             if( wcsstr( token[ j ], L"\"") != NULL
02522              || wcsstr( token[ j ], L"\\") != NULL
02523              || wcsstr( token[ j ], L"'" ) != NULL ){
02524                 token[ j ] = NULL;
02525                 break;
02526             }
02527         }
02528
02529         if( token[ 0 ] != NULL ){   //トークンが1個以上ある
02530             int nFuncId = -1;
02531             WCHAR* entry_token = NULL;
02532
02533             length = wcslen( token[ 0 ] );
02534             if( length >= 2
02535              && token[ 0 ][ length - 1 ] == L':' ){ //ラベル
02536                 token[ 0 ][ length - 1 ] = L'\0';
02537                 nFuncId = 51;
02538                 entry_token = token[ 0 ];
02539             }
02540             else if( token[ 1 ] != NULL ){  //トークンが2個以上ある
02541                 if( wcsicmp( token[ 1 ], L"proc" ) == 0 ){  //関数
02542                     nFuncId = 50;
02543                     entry_token = token[ 0 ];
02544                 }else
02545                 if( wcsicmp( token[ 1 ], L"endp" ) == 0 ){  //関数終了
02546                     nFuncId = 52;
02547                     entry_token = token[ 0 ];
02548                 //}else
02549                 //if( my_stricmp( token[ 1 ], _T("macro") ) == 0 ){ //マクロ
02550                 //  nFuncId = -1;
02551                 //  entry_token = token[ 0 ];
02552                 //}else
02553                 //if( my_stricmp( token[ 1 ], _T("struc") ) == 0 ){ //構造体
02554                 //  nFuncId = -1;
02555                 //  entry_token = token[ 0 ];
02556                 }
02557             }
02558
02559             if( nFuncId >= 0 ){
02560                 /*
02561                   カーソル位置変換
02562                   物理位置(行頭からのバイト数、折り返し無し行位置)
02563                   →
02564                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02565                 */
02566                 CLayoutPoint ptPos;
02567                 m_cLayoutMgr.LogicToLayout(
02568                     CLogicPoint(0, nLineCount),
02569                     &ptPos
02570                 );
02571                 pcFuncInfoArr->AppendData( nLineCount + CLogicInt(1), ptPos.GetY2() + CLayoutInt(1), entry_token, nFuncId );
02572             }
02573         }
02574
02575         free( pTmpLine );
02576     }
02577
02578     return;
02579 }
02580
02581
02582
02590 void CEditDoc::MakeTopicList_wztxt(CFuncInfoArr* pcFuncInfoArr)
02591 {
02592     int levelPrev = 0;
02593
02594     for(CLogicInt nLineCount=CLogicInt(0);nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
02595     {
02596         const wchar_t*  pLine;
02597         CLogicInt       nLineLen;
02598
02599         pLine = m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
02600         if(!pLine)
02601         {
02602             break;
02603         }
02604         //  May 25, 2003 genta 判定順序変更
02605         if( *pLine == L'.' )
02606         {
02607             const wchar_t* pPos;    //  May 25, 2003 genta
02608             int         nLength;
02609             wchar_t     szTitle[1024];
02610
02611             //  ピリオドの数＝階層の深さを数える
02612             for( pPos = pLine + 1 ; *pPos == L'.' ; ++pPos )
02613                 ;
02614
02615             CLayoutPoint ptPos;
02616             m_cLayoutMgr.LogicToLayout(
02617                 CLogicPoint(0, nLineCount),
02618                 &ptPos
02619             );
02620
02621             int level = pPos - pLine;
02622
02623             // 2003.06.27 Moca 階層が2段位上深くなるときは、無題の要素を追加
02624             if( levelPrev < level && level != levelPrev + 1  ){
02625                 int dummyLevel;
02626                 // (無題)を挿入
02627                 //  ただし，TAG一覧には出力されないように
02628                 for( dummyLevel = levelPrev + 1; dummyLevel < level; dummyLevel++ ){
02629                     pcFuncInfoArr->AppendData(
02630                         nLineCount+CLogicInt(1),
02631                         ptPos.GetY2()+CLayoutInt(1),
02632                         L"(無題)",
02633                         FUNCINFO_NOCLIPTEXT,
02634                         dummyLevel - 1
02635                     );
02636                 }
02637             }
02638             levelPrev = level;
02639
02640             nLength = auto_sprintf(szTitle,L"%d - ", level );
02641
02642             wchar_t *pDest = szTitle + nLength; // 書き込み先
02643             wchar_t *pDestEnd = szTitle + _countof(szTitle) - 2;
02644
02645             while( pDest < pDestEnd )
02646             {
02647                 if( *pPos ==L'\r' || *pPos ==L'\n' || *pPos == L'\0')
02648                 {
02649                     break;
02650                 }
02651                 else {
02652                     *pDest++ = *pPos++;
02653                 }
02654             }
02655             *pDest = L'\0';
02656             pcFuncInfoArr->AppendData(nLineCount+CLogicInt(1),ptPos.GetY2()+CLayoutInt(1),szTitle, 0, level - 1);
02657         }
02658     }
02659 }
02660
02668 void CEditDoc::MakeTopicList_html(CFuncInfoArr* pcFuncInfoArr)
02669 {
02670     const wchar_t*  pLine;
02671     CLogicInt       nLineLen;
02672     int             i;
02673     int             j;
02674     int             k;
02675     BOOL            bEndTag;
02676     BOOL            bCommentTag = FALSE;
02677
02678     /*  ネストの深さは、nMaxStackレベルまで、ひとつのヘッダは、最長32文字まで区別
02679         （32文字まで同じだったら同じものとして扱います）
02680     */
02681     const int nMaxStack = 32;   //  ネストの最深
02682     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02683     wchar_t pszStack[nMaxStack][32];
02684     wchar_t szTitle[32];            //  一時領域
02685     CLogicInt           nLineCount;
02686     for(nLineCount=CLogicInt(0);nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
02687     {
02688         pLine   =   m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
02689         if(!pLine)
02690         {
02691             break;
02692         }
02693         for(i=0;i<nLineLen-1;i++)
02694         {
02695             // 2004.04.20 Moca コメントを処理する
02696             if( bCommentTag )
02697             {
02698                 if( i < nLineLen - 3 && 0 == wmemcmp( L"-->", pLine + i , 3 ) )
02699                 {
02700                     bCommentTag = FALSE;
02701                     i += 2;
02702                 }
02703                 continue;
02704             }
02705             // 2004.04.20 Moca To Here
02706             if(pLine[i]!=L'<' || nDepth>=nMaxStack)
02707             {
02708                 continue;
02709             }
02710             bEndTag =   FALSE;
02711             if(pLine[++i]==L'/')
02712             {
02713                 i++;
02714                 bEndTag =   TRUE;
02715             }
02716             for(j=0;i+j<nLineLen && j<_countof(szTitle)-1;j++)
02717             {
02718                 if((pLine[i+j]<L'a' || pLine[i+j]>L'z') &&
02719                     (pLine[i+j]<L'A' || pLine[i+j]>L'Z') &&
02720                     !(j!=0 && pLine[i+j]>=L'0' && pLine[i+j]<=L'9'))
02721                 {
02722                     break;
02723                 }
02724                 szTitle[j]  =   pLine[i+j];
02725             }
02726             if(j==0)
02727             {
02728                 // 2004.04.20 Moca From Here コメントを処理する
02729                 if( i < nLineLen - 3 && 0 == wmemcmp( L"!--", pLine + i, 3 ) )
02730                 {
02731                     bCommentTag = TRUE;
02732                     i += 3;
02733                 }
02734                 // 2004.04.20 Moca To Here
02735                 continue;
02736             }
02737             szTitle[j]  =   '\0';
02738             if(bEndTag)
02739             {
02740                 int nDepthOrg = nDepth; // 2004.04.20 Moca 追加
02741                 // 終了タグ
02742                 while(nDepth>0)
02743                 {
02744                     nDepth--;
02745                     if(!wcsicmp(pszStack[nDepth],szTitle))
02746                     {
02747                         break;
02748                     }
02749                 }
02750                 // 2004.04.20 Moca ツリー中と一致しないときは、この終了タグは無視
02751                 if( nDepth == 0 )
02752                 {
02753                     if(wcsicmp(pszStack[nDepth],szTitle))
02754                     {
02755                         nDepth = nDepthOrg;
02756                     }
02757                 }
02758             }
02759             else
02760             {
02761                 if(wcsicmp(szTitle,L"br") && wcsicmp(szTitle,L"area") &&
02762                     wcsicmp(szTitle,L"base") && wcsicmp(szTitle,L"frame") && wcsicmp(szTitle,L"param"))
02763                 {
02764                     CLayoutPoint ptPos;
02765
02766                     m_cLayoutMgr.LogicToLayout(
02767                         CLogicPoint(i, nLineCount),
02768                         &ptPos
02769                     );
02770
02771                     if(wcsicmp(szTitle,L"hr") && wcsicmp(szTitle,L"meta") && wcsicmp(szTitle,L"link") &&
02772                         wcsicmp(szTitle,L"input") && wcsicmp(szTitle,L"img") && wcsicmp(szTitle,L"area") &&
02773                         wcsicmp(szTitle,L"base") && wcsicmp(szTitle,L"frame") && wcsicmp(szTitle,L"param"))
02774                     {
02775                         // 終了タグなしを除く全てのタグらしきものを判定
02776                         wcscpy(pszStack[nDepth],szTitle);
02777                         k   =   j;
02778                         if(j<_countof(szTitle)-3)
02779                         {
02780                             for(;i+j<nLineLen;j++)
02781                             {
02782                                 if(pLine[i+j]==L'/' && pLine[i+j+1]==L'>')
02783                                 {
02784                                     bEndTag =   TRUE;
02785                                     break;
02786                                 }
02787                                 else if(pLine[i+j]==L'>')
02788                                 {
02789                                     break;
02790                                 }
02791                             }
02792                             if(!bEndTag)
02793                             {
02794                                 szTitle[k++]    =   L' ';
02795                                 for(j-=k-1;i+j+k<nLineLen && k<_countof(szTitle)-1;k++)
02796                                 {
02797                                     if(pLine[i+j+k]==L'<' || pLine[i+j+k]==L'\r' || pLine[i+j+k]==L'\n')
02798                                     {
02799                                         break;
02800                                     }
02801                                     szTitle[k]  =   pLine[i+j+k];
02802                                 }
02803                             j += k-1;
02804                             }
02805                         }
02806                         szTitle[k]  =   L'\0';
02807                         pcFuncInfoArr->AppendData(nLineCount+CLogicInt(1),ptPos.GetY2()+CLayoutInt(1),szTitle,0,(bEndTag ? nDepth : nDepth++));
02808                     }
02809                     else
02810                     {
02811                         for(;i+j<nLineLen && j<_countof(szTitle)-1;j++)
02812                         {
02813                             if(pLine[i+j]=='>')
02814                             {
02815                                 break;
02816                             }
02817                             szTitle[j]  =   pLine[i+j];
02818                         }
02819                         szTitle[j]  =   L'\0';
02820                         pcFuncInfoArr->AppendData(nLineCount+CLogicInt(1),ptPos.GetY2()+CLayoutInt(1),szTitle,0,nDepth);
02821                     }
02822                 }
02823             }
02824             i   +=  j;
02825         }
02826     }
02827 }
02828
02835 void CEditDoc::MakeTopicList_tex(CFuncInfoArr* pcFuncInfoArr)
02836 {
02837     const wchar_t*  pLine;
02838     CLogicInt       nLineLen;
02839     int             i;
02840     int             j;
02841     int             k;
02842
02843     const int nMaxStack = 8;    //  ネストの最深
02844     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02845     wchar_t szTag[32], szTitle[256];            //  一時領域
02846     int thisSection=0, lastSection = 0; // 現在のセクション種類と一つ前のセクション種類
02847     int stackSection[nMaxStack];        // 各深さでのセクションの番号
02848     int nStartTitlePos;                 // \section{dddd} の dddd の部分の始まる番号
02849     int bNoNumber;                      // * 付の場合はセクション番号を付けない
02850
02851     // 一行ずつ
02852     CLogicInt   nLineCount;
02853     for(nLineCount=CLogicInt(0);nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
02854     {
02855         pLine   =   m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
02856         if(!pLine) break;
02857         // 一文字ずつ
02858         for(i=0;i<nLineLen-1;i++)
02859         {
02860             if(pLine[i] == L'%') break; // コメントなら以降はいらない
02861             if(nDepth>=nMaxStack)continue;
02862             if(pLine[i] != L'\\')continue;  // 「\」がないなら次の文字へ
02863             ++i;
02864             // 見つかった「\」以降の文字列チェック
02865             for(j=0;i+j<nLineLen && j<_countof(szTag)-1;j++)
02866             {
02867                 if(pLine[i+j] == L'{' && !(i+j>0 && _IS_SJIS_1((unsigned char)pLine[i+j-1])) ) {    // SJIS1チェック
02868                     bNoNumber = (pLine[i+j-1] == '*');
02869                     nStartTitlePos = j+i+1;
02870                     break;
02871                 }
02872                 szTag[j] = pLine[i+j];
02873             }
02874             if(j==0) continue;
02875             if(bNoNumber){
02876                 szTag[j-1] = L'\0';
02877             }else{
02878                 szTag[j]   = L'\0';
02879             }
02880 //          MessageBoxA(NULL, szTitle, L"", MB_OK);
02881
02882             thisSection = 0;
02883             if(!wcscmp(szTag,L"subsubsection")) thisSection = 4;
02884             else if(!wcscmp(szTag,L"subsection")) thisSection = 3;
02885             else if(!wcscmp(szTag,L"section")) thisSection = 2;
02886             else if(!wcscmp(szTag,L"chapter")) thisSection = 1;
02887             else if(!wcscmp(szTag,L"begin")) {      // beginなら prosperのslideの可能性も考慮
02888                 // さらに{slide}{}まで読みとっておく
02889                 if(wcsstr(pLine, L"{slide}")){
02890                     k=0;
02891                     for(j=nStartTitlePos+1;i+j<nLineLen && j<_countof(szTag)-1;j++)
02892                     {
02893                         if(pLine[i+j] == '{' && !(i+j>0 && _IS_SJIS_1((unsigned char)pLine[i+j-1])) ) { // SJIS1チェック
02894                             nStartTitlePos = j+i+1;
02895                             break;
02896                         }
02897                         szTag[k++]  =   pLine[i+j];
02898                     }
02899                     szTag[k] = '\0';
02900                     thisSection = 1;
02901                 }
02902             }
02903
02904             if( thisSection > 0)
02905             {
02906                 // sectionの中身取得
02907                 for(k=0;nStartTitlePos+k<nLineLen && k<_countof(szTitle)-1;k++)
02908                 {
02909                     if(_IS_SJIS_1((unsigned char)pLine[k+nStartTitlePos])) {
02910                         szTitle[k] = pLine[k+nStartTitlePos];
02911                         k++;    // 次はチェック不要
02912                     } else if(pLine[k+nStartTitlePos] == '}') {
02913                         break;
02914                     }
02915                     szTitle[k] = pLine[k+nStartTitlePos];
02916                 }
02917                 szTitle[k] = '\0';
02918
02919                 CLayoutPoint ptPos;
02920
02921                 WCHAR tmpstr[256];
02922                 WCHAR secstr[4];
02923
02924                 m_cLayoutMgr.LogicToLayout(
02925                     CLogicPoint(i, nLineCount),
02926                     &ptPos
02927                 );
02928
02929                 int sabunSection = thisSection - lastSection;
02930                 if(lastSection == 0){
02931                     nDepth = 0;
02932                     stackSection[0] = 1;
02933                 }else{
02934                     nDepth += sabunSection;
02935                     if(sabunSection > 0){
02936                         if(nDepth >= nMaxStack) nDepth=nMaxStack-1;
02937                         stackSection[nDepth] = 1;
02938                     }else{
02939                         if(nDepth < 0) nDepth=0;
02940                         ++stackSection[nDepth];
02941                     }
02942                 }
02943                 tmpstr[0] = L'\0';
02944                 if(!bNoNumber){
02945                     for(k=0; k<=nDepth; k++){
02946                         auto_sprintf(secstr, L"%d.", stackSection[k]);
02947                         wcscat(tmpstr, secstr);
02948                     }
02949                     wcscat(tmpstr, L" ");
02950                 }
02951                 wcscat(tmpstr, szTitle);
02952                 pcFuncInfoArr->AppendData(nLineCount+CLogicInt(1),ptPos.GetY2()+CLayoutInt(1), tmpstr, 0, nDepth);
02953                 if(!bNoNumber) lastSection = thisSection;
02954             }
02955             i   +=  j;
02956         }
02957     }
02958 }
02959
02960
02961
02962
02963
02964
02965
02966
02974 BOOL CEditDoc::HandleCommand( EFunctionCode nCommand )
02975 {
02976     int             i;
02977     int             j;
02978     int             nGroup;
02979     int             nRowNum;
02980     int             nPane;
02981     HWND            hwndWork;
02982     EditNode*       pEditNodeArr;
02983     //  May. 19, 2006 genta 上位16bitに送信元の識別子が入るように変更したので
02984     //  下位16ビットのみを取り出す
02985     switch( LOWORD( nCommand )){
02986     case F_PREVWINDOW:  //前のウィンドウ
02987         nPane = m_pcEditWnd->m_cSplitterWnd.GetPrevPane();
02988         if( -1 != nPane ){
02989             m_pcEditWnd->SetActivePane( nPane );
02990         }else{
02991             /* 現在開いている編集窓のリストを得る */
02992             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
02993             if(  nRowNum > 0 ){
02994                 /* 自分のウィンドウを調べる */
02995                 nGroup = 0;
02996                 for( i = 0; i < nRowNum; ++i )
02997                 {
02998                     if( GetOwnerHwnd() == pEditNodeArr[i].GetHwnd() )
02999                     {
03000                         nGroup = pEditNodeArr[i].m_nGroup;
03001                         break;
03002                     }
03003                 }
03004                 if( i < nRowNum )
03005                 {
03006                     // 前のウィンドウ
03007                     for( j = i - 1; j >= 0; --j )
03008                     {
03009                         if( nGroup == pEditNodeArr[j].m_nGroup )
03010                             break;
03011                     }
03012                     if( j < 0 )
03013                     {
03014                         for( j = nRowNum - 1; j > i; --j )
03015                         {
03016                             if( nGroup == pEditNodeArr[j].m_nGroup )
03017                                 break;
03018                         }
03019                     }
03020                     /*
03021 <<<<<<< .mine
03022                     if( i != j )
03023                     {
03024                         // 次のウィンドウをアクティブにする
03025                         hwndWork = pEditNodeArr[j].GetSplitterHwnd();
03026                         // アクティブにする
03027                         ActivateFrameWindow( hwndWork );
03028                         // 最後のペインをアクティブにする
03029                         ::PostMessageAny( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 1 );
03030                     }
03031 =======
03032                     */
03033                     /* 前のウィンドウをアクティブにする */
03034                     hwndWork = pEditNodeArr[j].GetHwnd();
03035                     /* アクティブにする */
03036                     ActivateFrameWindow( hwndWork );
03037                     /* 最後のペインをアクティブにする */
03038                     ::PostMessage( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 1 );
03039 //>>>>>>> .r1121
03040                 }
03041                 delete [] pEditNodeArr;
03042             }
03043         }
03044         return TRUE;
03045     case F_NEXTWINDOW:  //次のウィンドウ
03046         nPane = m_pcEditWnd->m_cSplitterWnd.GetNextPane();
03047         if( -1 != nPane ){
03048             m_pcEditWnd->SetActivePane( nPane );
03049         }
03050         else{
03051             /* 現在開いている編集窓のリストを得る */
03052             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03053             if(  nRowNum > 0 ){
03054                 /* 自分のウィンドウを調べる */
03055                 nGroup = 0;
03056                 for( i = 0; i < nRowNum; ++i )
03057                 {
03058                     if( GetOwnerHwnd() == pEditNodeArr[i].GetHwnd() )
03059                     {
03060                         nGroup = pEditNodeArr[i].m_nGroup;
03061                         break;
03062                     }
03063                 }
03064                 if( i < nRowNum )
03065                 {
03066                     // 次のウィンドウ
03067                     for( j = i + 1; j < nRowNum; ++j )
03068                     {
03069                         if( nGroup == pEditNodeArr[j].m_nGroup )
03070                             break;
03071                     }
03072                     if( j >= nRowNum )
03073                     {
03074                         for( j = 0; j < i; ++j )
03075                         {
03076                             if( nGroup == pEditNodeArr[j].m_nGroup )
03077                                 break;
03078                         }
03079                     }
03080                     /*
03081 <<<<<<< .mine
03082                     if( i != j )
03083                     {
03084                         // 次のウィンドウをアクティブにする
03085                         hwndWork = pEditNodeArr[j].GetSplitterHwnd();
03086                         // アクティブにする
03087                         ActivateFrameWindow( hwndWork );
03088                         // 最初のペインをアクティブにする
03089                         ::PostMessageAny( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 0 );
03090                     }
03091 =======
03092                     */
03093                     /* 次のウィンドウをアクティブにする */
03094                     hwndWork = pEditNodeArr[j].GetHwnd();
03095                     /* アクティブにする */
03096                     ActivateFrameWindow( hwndWork );
03097                     /* 最初のペインをアクティブにする */
03098                     ::PostMessage( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 0 );
03099 //>>>>>>> .r1121
03100                 }
03101                 delete [] pEditNodeArr;
03102             }
03103         }
03104         return TRUE;
03105
03106     default:
03107         return m_pcEditWnd->GetActiveView().GetCommander().HandleCommand( nCommand, TRUE, 0, 0, 0, 0 );
03108     }
03109 }
03110
03111
03112
03118 void CEditDoc::OnChangeSetting( void )
03119 {
03120 //  return;
03121     int         i;
03122     HWND        hwndProgress = NULL;
03123
03124     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
03125
03126     //pCEditWnd->m_CFuncKeyWnd.Timer_ONOFF( FALSE ); // 20060126 aroka
03127
03128     if( NULL != pCEditWnd ){
03129         hwndProgress = pCEditWnd->m_cStatusBar.GetProgressHwnd();
03130         //  Status Barが表示されていないときはm_hwndProgressBar == NULL
03131     }
03132
03133     if( hwndProgress ){
03134         ::ShowWindow( hwndProgress, SW_SHOW );
03135     }
03136
03137     /* ファイルの排他モード変更 */
03138     if( m_nFileShareModeOld != m_pShareData->m_Common.m_sFile.m_nFileShareMode ){
03139         /* ファイルの排他ロック解除 */
03140         DoFileUnLock();
03141         /* ファイルの排他ロック */
03142         DoFileLock();
03143     }
03144     /* 共有データ構造体のアドレスを返す */
03145     m_pShareData = CShareData::getInstance()->GetShareData();
03146     CShareData::getInstance()->TransformFileName_MakeCache();
03147     int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
03148     SetDocumentType( doctype, false );
03149
03150     CLogicPoint* posSaveAry = m_pcEditWnd->SavePhysPosOfAllView();
03151
03152     /* レイアウト情報の作成 */
03153     Types& ref = GetDocumentAttribute();
03154     m_cLayoutMgr.SetLayoutInfo(
03155         TRUE,
03156         hwndProgress,
03157         ref
03158     ); /* レイアウト情報の変更 */
03159
03160     /* ビューに設定変更を反映させる */
03161     for( i = 0; i < 4; ++i ){
03162         m_pcEditWnd->m_pcEditViewArr[i]->OnChangeSetting();
03163     }
03164     m_pcEditWnd->RestorePhysPosOfAllView( posSaveAry );
03165     if( hwndProgress ){
03166         ::ShowWindow( hwndProgress, SW_HIDE );
03167     }
03168 }
03169
03170
03171
03172
03173 /* 編集ファイル情報を格納 */
03174 void CEditDoc::GetFileInfo( FileInfo* pfi ) const
03175 {
03176     _tcscpy(pfi->m_szPath, GetFilePath());
03177
03178     pfi->m_nViewTopLine = m_pcEditWnd->GetActiveView().GetTextArea().GetViewTopLine();  /* 表示域の一番上の行(0開始) */
03179     pfi->m_nViewLeftCol = m_pcEditWnd->GetActiveView().GetTextArea().GetViewLeftCol();  /* 表示域の一番左の桁(0開始) */
03180     //  pfi->GetCaretLayoutPos().GetX() = m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos().GetX();   /* ビュー左端からのカーソル桁位置(０開始) */
03181     //  pfi->GetCaretLayoutPos().GetY() = m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos().GetY();   /* ビュー上端からのカーソル行位置(０開始) */
03182
03183     /*
03184       カーソル位置変換
03185       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03186       →
03187       物理位置(行頭からのバイト数、折り返し無し行位置)
03188     */
03189     CLogicPoint ptXY;
03190     m_cLayoutMgr.LayoutToLogic(
03191         m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos(),    /* ビュー左上端からのカーソル桁位置(０開始) */
03192         &ptXY
03193     );
03194     pfi->m_ptCursor.Set(ptXY); //カーソル 物理位置(行頭からのバイト数, 折り返し無し行位置)
03195
03196     pfi->m_bIsModified = IsModified() ? TRUE : FALSE;           /* 変更フラグ */
03197     pfi->m_nCharCode = m_nCharCode;             /* 文字コード種別 */
03198
03199     pfi->m_bIsGrep = m_bGrepMode;
03200     wcscpy( pfi->m_szGrepKey, m_szGrepKey );
03201
03202     //デバッグモニタ(アウトプットウインドウ)
03203     pfi->m_bIsDebug = m_bDebugMode;
03204
03205     return;
03206
03207 }
03208
03209
03210 // 2004/06/21 novice タグジャンプ機能追加
03211 #if 0
03212 /* タグジャンプ元など参照元の情報を保持する */
03213 void CEditDoc::SetReferer( HWND hwndReferer, int nRefererX, int nRefererLine )
03214 {
03215     m_hwndReferer   = hwndReferer;  /* 参照元ウィンドウ */
03216     m_nRefererX     = nRefererX;    /* 参照元  行頭からのバイト位置桁 */
03217     m_nRefererLine  = nRefererLine; /* 参照元行  折り返し無しの物理行位置 */
03218     return;
03219 }
03220 #endif
03221
03222
03223
03228 BOOL CEditDoc::OnFileClose( void )
03229 {
03230     int         nRet;
03231     int         nBool;
03232     HWND        hwndMainFrame;
03233     hwndMainFrame = ::GetParent( GetSplitterHwnd() );
03234
03235     //  Mar. 30, 2003 genta サブルーチンにまとめた
03236     AddToMRU();
03237
03238     if( m_bGrepRunning ){       /* Grep処理中 */
03239         /* アクティブにする */
03240         ActivateFrameWindow( hwndMainFrame );   //@@@ 2003.06.25 MIK
03241 		::MYMESSAGEBOX(
03242             hwndMainFrame,
03243             MB_OK | MB_ICONINFORMATION | MB_TOPMOST,
03244             GSTR_APPNAME,
03245             _T("Grepの処理中です。\n")
03246         );
03247         return FALSE;
03248     }
03249
03250
03251     /* テキストが変更されている場合 */
03252     if( IsModified()
03253     && FALSE == m_bDebugMode    /* デバッグモニタモードのときは保存確認しない */
03254     ){
03255         if( TRUE == m_bGrepMode ){  /* Grepモードのとき */
03256             /* Grepモードで保存確認するか */
03257             if( FALSE == m_pShareData->m_Common.m_sSearch.m_bGrepExitConfirm ){
03258                 return TRUE;
03259             }
03260         }
03261         /* ウィンドウをアクティブにする */
03262         /* アクティブにする */
03263         ActivateFrameWindow( hwndMainFrame );
03264         if( m_bReadOnly ){  /* 読み取り専用モード */
03265             ::MessageBeep( MB_ICONQUESTION );
03266             nRet = ::MYMESSAGEBOX(
03267                 hwndMainFrame,
03268                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
03269                 GSTR_APPNAME,
03270                 _T("%ts\nは変更されています。 閉じる前に保存しますか？\n\n読み取り専用で開いているので、名前を付けて保存すればいいと思います。\n"),
03271                 IsFilePathAvailable() ? GetFilePath() : _T("（無題）")
03272             );
03273             switch( nRet ){
03274             case IDYES:
03275 //              if( IsFilePathAvailable() ){
03276 //                  nBool = HandleCommand( F_FILESAVE );
03277 //              }else{
03278                     //nBool = HandleCommand( F_FILESAVEAS_DIALOG );
03279                     nBool = FileSaveAs_Dialog();    // 2006.12.30 ryoji
03280 //              }
03281                 return nBool;
03282             case IDNO:
03283                 return TRUE;
03284             case IDCANCEL:
03285             default:
03286                 return FALSE;
03287             }
03288         }else{
03289             ::MessageBeep( MB_ICONQUESTION );
03290             nRet = ::MYMESSAGEBOX(
03291                 hwndMainFrame,
03292                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
03293                 GSTR_APPNAME,
03294                 _T("%ts\nは変更されています。 閉じる前に保存しますか？"),
03295                 IsFilePathAvailable() ? GetFilePath() : _T("（無題）")
03296             );
03297             switch( nRet ){
03298             case IDYES:
03299                 if( IsFilePathAvailable() ){
03300                     //nBool = HandleCommand( F_FILESAVE );
03301                     nBool = FileSave(); // 2006.12.30 ryoji
03302                 }else{
03303                     //nBool = HandleCommand( F_FILESAVEAS_DIALOG );
03304                     nBool = FileSaveAs_Dialog();    // 2006.12.30 ryoji
03305                 }
03306                 return nBool;
03307             case IDNO:
03308                 return TRUE;
03309             case IDCANCEL:
03310             default:
03311                 return FALSE;
03312             }
03313         }
03314     }else{
03315         return TRUE;
03316     }
03317 }
03318
03319
03320 /* 既存データのクリア */
03321 void CEditDoc::Init( void )
03322 {
03323 //  int types;
03324
03325     m_bReadOnly = false;    /* 読み取り専用モード */
03326     wcscpy( m_szGrepKey, L"" );
03327     m_bGrepMode = FALSE;    /* Grepモード */
03328     m_eWatchUpdate = WU_QUERY; // Dec. 4, 2002 genta 更新監視方法
03329
03330     // 2005.06.24 Moca バグ修正
03331     //  アウトプットウィンドウで「閉じて(無題)」を行ってもアウトプットウィンドウのまま
03332     if( m_bDebugMode ){
03333         m_pcEditWnd->SetDebugModeOFF();
03334     }
03335
03336 //  Sep. 10, 2002 genta
03337 //  アイコン設定はファイル名設定と一体化のためここからは削除
03338
03339     /* ファイルの排他ロック解除 */
03340     DoFileUnLock();
03341
03342     /* ファイルの排他制御モード */
03343     m_nFileShareModeOld = SHAREMODE_NOT_EXCLUSIVE;
03344
03345
03346     /*アンドゥ・リドゥバッファのクリア */
03347     /* 全要素のクリア */
03348     m_cOpeBuf.ClearAll();
03349
03350     /* テキストデータのクリア */
03351     m_cDocLineMgr.Empty();
03352     m_cDocLineMgr.Init();
03353
03354     /* 現在編集中のファイルのパス */
03355     //  Sep. 10, 2002 genta
03356     //  アイコンも同時に初期化される
03357     SetFilePath( _T("") );
03358
03359     /* 現在編集中のファイルのタイムスタンプ */
03360     m_FileTime.dwLowDateTime = 0;
03361     m_FileTime.dwHighDateTime = 0;
03362
03363
03364     /* 共有データ構造体のアドレスを返す */
03365     m_pShareData = CShareData::getInstance()->GetShareData();
03366     int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
03367     SetDocumentType( doctype, true );
03368
03369     /* レイアウト管理情報の初期化 */
03370     /* レイアウト情報の変更 */
03371     Types& ref = GetDocumentAttribute();
03372     m_cLayoutMgr.SetLayoutInfo(
03373         TRUE,
03374         NULL,/*hwndProgress*/
03375         ref
03376     );
03377
03378
03379     /* 変更フラグ */
03380     SetModified(false,false);   //  Jan. 22, 2002 genta
03381
03382     /* 文字コード種別 */
03383     m_nCharCode = CODE_DEFAULT;
03384     m_bBomExist = FALSE;    //  Jul. 26, 2003 ryoji
03385
03386     //  May 12, 2000
03387     m_cNewLineCode.SetType( EOL_CRLF );
03388
03389     //  Oct. 2, 2005 genta 挿入モード
03390     SetInsMode( m_pShareData->m_Common.m_sGeneral.m_bIsINSMode != FALSE );
03391
03392     return;
03393 }
03394
03395 /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
03396 void CEditDoc::InitAllView( void )
03397 {
03398     int     i;
03399
03400     m_nCommandExecNum = 0;  /* コマンド実行回数 */
03401     /* 先頭へカーソルを移動 */
03402     for( i = 0; i < 4; ++i ){
03403         //  Apr. 1, 2001 genta
03404         // 移動履歴の消去
03405         m_pcEditWnd->m_pcEditViewArr[i]->m_cHistory->Flush();
03406
03407         /* 現在の選択範囲を非選択状態に戻す */
03408         m_pcEditWnd->m_pcEditViewArr[i]->GetSelectionInfo().DisableSelectArea( FALSE );
03409
03410         m_pcEditWnd->m_pcEditViewArr[i]->OnChangeSetting();
03411         m_pcEditWnd->m_pcEditViewArr[i]->GetCaret().MoveCursor( CLayoutPoint(0, 0), TRUE );
03412         m_pcEditWnd->m_pcEditViewArr[i]->GetCaret().m_nCaretPosX_Prev = CLayoutInt(0);
03413     }
03414
03415     return;
03416 }
03417
03418
03419 /* ファイルのタイムスタンプのチェック処理 */
03420 void CEditDoc::CheckFileTimeStamp( void )
03421 {
03422     HWND        hwndActive;
03423     BOOL        bUpdate;
03424     bUpdate = FALSE;
03425     if( m_pShareData->m_Common.m_sFile.m_bCheckFileTimeStamp    /* 更新の監視 */
03426      // Dec. 4, 2002 genta
03427      && m_eWatchUpdate != WU_NONE
03428      && m_pShareData->m_Common.m_sFile.m_nFileShareMode == SHAREMODE_NOT_EXCLUSIVE  /* ファイルの排他制御モード */
03429      && NULL != ( hwndActive = ::GetActiveWindow() )    /* アクティブ? */
03430      && hwndActive == GetOwnerHwnd()
03431      && IsFilePathAvailable()
03432      && ( m_FileTime.dwLowDateTime != 0 || m_FileTime.dwHighDateTime != 0 )     /* 現在編集中のファイルのタイムスタンプ */
03433
03434     ){
03435         /* ファイルスタンプをチェックする */
03436
03437         // 2005.10.20 ryoji FindFirstFileを使うように変更（ファイルがロックされていてもタイムスタンプ取得可能）
03438         FILETIME ftime;
03439         if( GetLastWriteTimestamp( GetFilePath(), ftime )){
03440             if( 0 != ::CompareFileTime( &m_FileTime, &ftime ) ) //  Aug. 13, 2003 wmlhq タイムスタンプが古く変更されている場合も検出対象とする
03441             {
03442                 bUpdate = TRUE;
03443                 m_FileTime = ftime;
03444             }
03445         }
03446     }
03447
03448     //  From Here Dec. 4, 2002 genta
03449     if( bUpdate ){
03450         switch( m_eWatchUpdate ){
03451         case WU_NOTIFY:
03452             {
03453                 TCHAR szText[40];
03454                 //  現在時刻の取得
03455                 SYSTEMTIME st;
03456                 FILETIME lft;
03457                 if( ::FileTimeToLocalFileTime( &m_FileTime, &lft ) &&
03458                     ::FileTimeToSystemTime( &lft, &st )){
03459                     // nothing to do
03460                 }
03461                 else {
03462                     //  ファイル時刻の変換に失敗した場合は
03463                     //  現在時刻でごまかす
03464                     ::GetLocalTime( &st );
03465                 }
03466                 auto_sprintf( szText, _T("★ファイル更新 %02d:%02d:%02d"), st.wHour, st.wMinute, st.wSecond );
03467                 m_pcEditWnd->SendStatusMessage( szText );
03468             }
03469             break;
03470         default:
03471             {
03472                 m_eWatchUpdate = WU_NONE; // 更新監視の抑制
03473
03474                 CDlgFileUpdateQuery dlg( GetFilePath(), IsModified() );
03475                 int result = dlg.DoModal( m_hInstance, GetSplitterHwnd(), IDD_FILEUPDATEQUERY, 0 );
03476
03477                 switch( result ){
03478                 case 1: // 再読込
03479                     /* 同一ファイルの再オープン */
03480                     ReloadCurrentFile( m_nCharCode, m_bReadOnly );
03481                     m_eWatchUpdate = WU_QUERY;
03482                     break;
03483                 case 2: // 以後通知メッセージのみ
03484                     m_eWatchUpdate = WU_NOTIFY;
03485                     break;
03486                 case 3: // 以後更新を監視しない
03487                     m_eWatchUpdate = WU_NONE;
03488                     break;
03489                 case 0: // CLOSE
03490                 default:
03491                     m_eWatchUpdate = WU_QUERY;
03492                     break;
03493                 }
03494             }
03495             break;
03496         }
03497     }
03498     //  To Here Dec. 4, 2002 genta
03499     return;
03500 }
03501
03502
03503
03504
03505
03507 void CEditDoc::ReloadCurrentFile(
03508     ECodeType   nCharCode,
03509     bool    bReadOnly
03510 )
03511 {
03512     if( -1 == _taccess( GetFilePath(), 0 ) ){
03513         /* ファイルが存在しない */
03514         //  Jul. 26, 2003 ryoji BOMを標準設定に
03515         m_nCharCode = nCharCode;
03516         switch( m_nCharCode ){
03517         case CODE_UNICODE:
03518         case CODE_UNICODEBE:
03519             m_bBomExist = TRUE;
03520             break;
03521         case CODE_UTF8:
03522         default:
03523             m_bBomExist = FALSE;
03524             break;
03525         }
03526         return;
03527     }
03528
03529
03530     bool    bOpened;
03531     CLayoutInt  nViewTopLine;
03532     CLayoutInt  nViewLeftCol;
03533     CLayoutPoint ptCaretPosXY;
03534     nViewTopLine = m_pcEditWnd->GetActiveView().GetTextArea().GetViewTopLine(); /* 表示域の一番上の行(0開始) */
03535     nViewLeftCol = m_pcEditWnd->GetActiveView().GetTextArea().GetViewLeftCol(); /* 表示域の一番左の桁(0開始) */
03536     ptCaretPosXY = m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos();
03537
03538     TCHAR   szFilePath[MAX_PATH];
03539     _tcscpy( szFilePath, GetFilePath() );
03540
03541     // Mar. 30, 2003 genta ブックマーク保存のためMRUへ登録
03542     AddToMRU();
03543
03544     /* 既存データのクリア */
03545     Init();
03546
03547     /* 全ビューの初期化 */
03548     InitAllView();
03549
03550     /* 親ウィンドウのタイトルを更新 */
03551     SetParentCaption();
03552
03553     /* ファイル読み込み */
03554     FileRead(
03555         szFilePath,
03556         &bOpened,
03557         nCharCode,  /* 文字コード自動判別 */
03558         bReadOnly,  /* 読み取り専用か */
03559         FALSE       /* 文字コード変更時の確認をするかどうか */
03560     );
03561
03562     // レイアウト行単位のカーソル位置復元
03563     // ※ここではオプションのカーソル位置復元（＝改行単位）が指定されていない場合でも復元する
03564     // 2007.08.23 ryoji 表示領域復元
03565     if( ptCaretPosXY.GetY2() < m_cLayoutMgr.GetLineCount() ){
03566         m_pcEditWnd->GetActiveView().GetTextArea().SetViewTopLine(nViewTopLine);
03567         m_pcEditWnd->GetActiveView().GetTextArea().SetViewLeftCol(nViewLeftCol);
03568     }
03569     m_pcEditWnd->GetActiveView().GetCaret().MoveCursorProperly( ptCaretPosXY, TRUE );   // 2007.08.23 ryoji MoveCursor()->MoveCursorProperly()
03570     m_pcEditWnd->GetActiveView().GetCaret().m_nCaretPosX_Prev = m_pcEditWnd->GetActiveView().GetCaret().GetCaretLayoutPos().GetX2();
03571
03572 }
03573
03574 //  From Here Nov. 20, 2000 genta
03581 void CEditDoc::SetImeMode( int mode )
03582 {
03583     DWORD   conv, sent;
03584     HIMC    hIme;
03585
03586     hIme = ImmGetContext( GetOwnerHwnd() );
03587
03588     //  最下位ビットはIME自身のOn/Off制御
03589     if( ( mode & 3 ) == 2 ){
03590         ImmSetOpenStatus( hIme, FALSE );
03591     }
03592     if( ( mode >> 2 ) > 0 ){
03593         ImmGetConversionStatus( hIme, &conv, &sent );
03594
03595         switch( mode >> 2 ){
03596         case 1: //  FullShape
03597             conv |= IME_CMODE_FULLSHAPE;
03598             conv &= ~IME_CMODE_NOCONVERSION;
03599             break;
03600         case 2: //  FullShape & Hiragana
03601             conv |= IME_CMODE_FULLSHAPE | IME_CMODE_NATIVE;
03602             conv &= ~( IME_CMODE_KATAKANA | IME_CMODE_NOCONVERSION );
03603             break;
03604         case 3: //  FullShape & Katakana
03605             conv |= IME_CMODE_FULLSHAPE | IME_CMODE_NATIVE | IME_CMODE_KATAKANA;
03606             conv &= ~IME_CMODE_NOCONVERSION;
03607             break;
03608         case 4: //  Non-Conversion
03609             conv |= IME_CMODE_NOCONVERSION;
03610             break;
03611         }
03612         ImmSetConversionStatus( hIme, conv, sent );
03613     }
03614     if( ( mode & 3 ) == 1 ){
03615         ImmSetOpenStatus( hIme, TRUE );
03616     }
03617     ImmReleaseContext( GetOwnerHwnd(), hIme );
03618 }
03619 //  To Here Nov. 20, 2000 genta
03620
03621
03651 void CEditDoc::ExpandParameter(const WChar* pszSource, WChar* pszBuffer, int nBufferLen)
03652 {
03653     // Apr. 03, 2003 genta 固定文字列をまとめる
03654     static const wchar_t    PRINT_PREVIEW_ONLY[]    = L"(印刷プレビューでのみ使用できます)";
03655     const int               PRINT_PREVIEW_ONLY_LEN  = _countof( PRINT_PREVIEW_ONLY ) - 1;
03656     static const wchar_t    NO_TITLE[]              = L"(無題)";
03657     const int               NO_TITLE_LEN            = _countof( NO_TITLE ) - 1;
03658     static const wchar_t    NOT_SAVED[]             = L"(保存されていません)";
03659     const int               NOT_SAVED_LEN           = _countof( NOT_SAVED ) - 1;
03660
03661     const wchar_t *p, *r;   //  p：目的のバッファ。r：作業用のポインタ。
03662     wchar_t *q, *q_max;
03663
03664     for( p = pszSource, q = pszBuffer, q_max = pszBuffer + nBufferLen; *p != '\0' && q < q_max;){
03665         if( *p != '$' ){
03666             *q++ = *p++;
03667             continue;
03668         }
03669         switch( *(++p) ){
03670         case L'$':  //   $$ -> $
03671             *q++ = *p++;
03672             break;
03673         case L'A':  //アプリ名
03674             q = wcs_pushW( q, q_max - q, GSTR_APPNAME_W, wcslen(GSTR_APPNAME_W) );
03675             ++p;
03676             break;
03677         case L'F':  //  開いているファイルの名前（フルパス）
03678             if ( !IsFilePathAvailable() ){
03679                 q = wcs_pushW( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
03680                 ++p;
03681             }
03682             else {
03683                 r = to_wchar(GetFilePath());
03684                 q = wcs_pushW( q, q_max - q, r, wcslen( r ));
03685                 ++p;
03686             }
03687             break;
03688         case L'f':  //  開いているファイルの名前（ファイル名+拡張子のみ）
03689             // Oct. 28, 2001 genta
03690             //  ファイル名のみを渡すバージョン
03691             //  ポインタを末尾に
03692             if ( ! IsFilePathAvailable() ){
03693                 q = wcs_pushW( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
03694                 ++p;
03695             }
03696             else {
03697                 // 2002.10.13 Moca ファイル名(パスなし)を取得。日本語対応
03698                 //  万一\\が末尾にあってもその後ろには\0があるのでアクセス違反にはならない。
03699                 q = wcs_pushT( q, q_max - q, GetFileName());
03700                 ++p;
03701             }
03702             break;
03703         case L'g':  //  開いているファイルの名前（拡張子を除くファイル名のみ）
03704             //  From Here Sep. 16, 2002 genta
03705             if ( ! IsFilePathAvailable() ){
03706                 q = wcs_pushW( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
03707                 ++p;
03708             }
03709             else {
03710                 //  ポインタを末尾に
03711                 const wchar_t *dot_position, *end_of_path;
03712                 r = to_wchar(GetFileName()); // 2002.10.13 Moca ファイル名(パスなし)を取得。日本語対応
03713                 end_of_path = dot_position =
03714                     r + wcslen( r );
03715                 //  後ろから.を探す
03716                 for( --dot_position ; dot_position > r && *dot_position != '.'
03717                     ; --dot_position )
03718                     ;
03719                 //  rと同じ場所まで行ってしまった⇔.が無かった
03720                 if( dot_position == r )
03721                     dot_position = end_of_path;
03722
03723                 q = wcs_pushW( q, q_max - q, r, dot_position - r );
03724                 ++p;
03725             }
03726             break;
03727             //  To Here Sep. 16, 2002 genta
03728         case L'/':  //  開いているファイルの名前（フルパス。パスの区切りが/）
03729             // Oct. 28, 2001 genta
03730             if ( !IsFilePathAvailable() ){
03731                 q = wcs_pushW( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
03732                 ++p;
03733             }
03734             else {
03735                 //  パスの区切りとして'/'を使うバージョン
03736                 for( r = to_wchar(GetFilePath()); *r != L'\0' && q < q_max; ++r, ++q ){
03737                     if( *r == L'\\' )
03738                         *q = L'/';
03739                     else
03740                         *q = *r;
03741                 }
03742                 ++p;
03743             }
03744             break;
03745         //  From Here 2003/06/21 Moca
03746         case L'N':
03747             if( !IsFilePathAvailable() ){
03748                 q = wcs_pushW( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
03749                 ++p;
03750             }
03751             else {
03752                 TCHAR szText[1024];
03753                 CShareData::getInstance()->GetTransformFileNameFast( GetFilePath(), szText, 1023 );
03754                 q = wcs_pushT( q, q_max - q, szText);
03755                 ++p;
03756             }
03757             break;
03758         //  To Here 2003/06/21 Moca
03759         //  From Here Jan. 15, 2002 hor
03760         case L'C':  //  現在選択中のテキスト
03761             {
03762                 CNativeW cmemCurText;
03763                 m_pcEditWnd->GetActiveView().GetCurrentTextForSearch( cmemCurText );
03764
03765                 q = wcs_pushW( q, q_max - q, cmemCurText.GetStringPtr(), cmemCurText.GetStringLength());
03766                 ++p;
03767             }
03768         //  To Here Jan. 15, 2002 hor
03769             break;
03770         //  From Here 2002/12/04 Moca
03771         case L'x':  //  現在の物理桁位置(先頭からのバイト数1開始)
03772             {
03773                 wchar_t szText[11];
03774                 _itow( m_pcEditWnd->GetActiveView().GetCaret().GetCaretLogicPos().x + 1, szText, 10 );
03775                 q = wcs_pushW( q, q_max - q, szText);
03776                 ++p;
03777             }
03778             break;
03779         case L'y':  //  現在の物理行位置(1開始)
03780             {
03781                 wchar_t szText[11];
03782                 _itow( m_pcEditWnd->GetActiveView().GetCaret().GetCaretLogicPos().y + 1, szText, 10 );
03783                 q = wcs_pushW( q, q_max - q, szText);
03784                 ++p;
03785             }
03786             break;
03787         //  To Here 2002/12/04 Moca
03788         case L'd':  //  共通設定の日付書式
03789             {
03790                 TCHAR szText[1024];
03791                 SYSTEMTIME systime;
03792                 ::GetLocalTime( &systime );
03793                 CShareData::getInstance()->MyGetDateFormat( systime, szText, _countof( szText ) - 1 );
03794                 q = wcs_pushT( q, q_max - q, szText);
03795                 ++p;
03796             }
03797             break;
03798         case L't':  //  共通設定の時刻書式
03799             {
03800                 TCHAR szText[1024];
03801                 SYSTEMTIME systime;
03802                 ::GetLocalTime( &systime );
03803                 CShareData::getInstance()->MyGetTimeFormat( systime, szText, _countof( szText ) - 1 );
03804                 q = wcs_pushT( q, q_max - q, szText);
03805                 ++p;
03806             }
03807             break;
03808         case L'p':  //  現在のページ
03809             {
03810                 CEditWnd*   pcEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
03811                 if (pcEditWnd->m_pPrintPreview){
03812                     wchar_t szText[1024];
03813                     _itow(pcEditWnd->m_pPrintPreview->GetCurPageNum() + 1, szText, 10);
03814                     q = wcs_pushW( q, q_max - q, szText, wcslen(szText));
03815                     ++p;
03816                 }
03817                 else {
03818                     q = wcs_pushW( q, q_max - q, PRINT_PREVIEW_ONLY, PRINT_PREVIEW_ONLY_LEN );
03819                     ++p;
03820                 }
03821             }
03822             break;
03823         case L'P':  //  総ページ
03824             {
03825                 CEditWnd*   pcEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
03826                 if (pcEditWnd->m_pPrintPreview){
03827                     wchar_t szText[1024];
03828                     _itow(pcEditWnd->m_pPrintPreview->GetAllPageNum(), szText, 10);
03829                     q = wcs_pushW( q, q_max - q, szText);
03830                     ++p;
03831                 }
03832                 else {
03833                     q = wcs_pushW( q, q_max - q, PRINT_PREVIEW_ONLY, PRINT_PREVIEW_ONLY_LEN );
03834                     ++p;
03835                 }
03836             }
03837             break;
03838         case L'D':  //  タイムスタンプ
03839             if (m_FileTime.dwLowDateTime){
03840                 FILETIME    FileTime;
03841                 SYSTEMTIME  systimeL;
03842                 ::FileTimeToLocalFileTime( &m_FileTime, &FileTime );
03843                 ::FileTimeToSystemTime( &FileTime, &systimeL );
03844                 TCHAR szText[1024];
03845                 CShareData::getInstance()->MyGetDateFormat( systimeL, szText, _countof( szText ) - 1 );
03846                 q = wcs_pushT( q, q_max - q, szText);
03847                 ++p;
03848             }
03849             else {
03850                 q = wcs_pushW( q, q_max - q, NOT_SAVED, NOT_SAVED_LEN );
03851                 ++p;
03852             }
03853             break;
03854         case L'T':  //  タイムスタンプ
03855             if (m_FileTime.dwLowDateTime){
03856                 FILETIME    FileTime;
03857                 SYSTEMTIME  systimeL;
03858                 ::FileTimeToLocalFileTime( &m_FileTime, &FileTime );
03859                 ::FileTimeToSystemTime( &FileTime, &systimeL );
03860                 TCHAR szText[1024];
03861                 CShareData::getInstance()->MyGetTimeFormat( systimeL, szText, _countof( szText ) - 1 );
03862                 q = wcs_pushT( q, q_max - q, szText);
03863                 ++p;
03864             }
03865             else {
03866                 q = wcs_pushW( q, q_max - q, NOT_SAVED, NOT_SAVED_LEN );
03867                 ++p;
03868             }
03869             break;
03870         case L'V':  // Apr. 4, 2003 genta
03871             // Version number
03872             {
03873                 wchar_t buf[28]; // 6(符号含むWORDの最大長) * 4 + 4(固定部分)
03874                 //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
03875                 DWORD dwVersionMS, dwVersionLS;
03876                 GetAppVersionInfo( NULL, VS_VERSION_INFO,
03877                     &dwVersionMS, &dwVersionLS );
03878                 int len = auto_sprintf( buf, L"%d.%d.%d.%d",
03879                     HIWORD( dwVersionMS ),
03880                     LOWORD( dwVersionMS ),
03881                     HIWORD( dwVersionLS ),
03882                     LOWORD( dwVersionLS )
03883                 );
03884                 q = wcs_pushW( q, q_max - q, buf, len );
03885                 ++p;
03886             }
03887             break;
03888         case L'h':  //  Apr. 4, 2003 genta
03889             //  Grep Key文字列 MAX 32文字
03890             //  中身はSetParentCaption()より移植
03891             {
03892                 CNativeW    cmemDes;
03893                 // m_szGrepKey → cmemDes
03894                 LimitStringLengthW( m_szGrepKey, wcslen( m_szGrepKey ),
03895                     (q_max - q > 32 ? 32 : q_max - q - 3), cmemDes );
03896                 if( (int)wcslen( m_szGrepKey ) > cmemDes.GetStringLength() ){
03897                     cmemDes.AppendString(L"...");
03898                 }
03899                 q = wcs_pushW( q, q_max - q, cmemDes.GetStringPtr(), cmemDes.GetStringLength());
03900                 ++p;
03901             }
03902             break;
03903         case L'S':  //  Sep. 15, 2005 FILE
03904             //  サクラエディタのフルパス
03905             {
03906                 SFilePath   szPath;
03907
03908                 ::GetModuleFileName( ::GetModuleHandle( NULL ), szPath, _countof2(szPath) );
03909                 q = wcs_pushT( q, q_max - q, szPath );
03910                 ++p;
03911             }
03912             break;
03913         case 'I':   //  May. 19, 2007 ryoji
03914             //  iniファイルのフルパス
03915             {
03916                 TCHAR   szPath[_MAX_PATH + 1];
03917                 CShareData::getInstance()->GetIniFileName( szPath );
03918                 q = wcs_pushT( q, q_max - q, szPath );
03919                 ++p;
03920             }
03921             break;
03922         case 'M':   //  Sep. 15, 2005 FILE
03923             //  現在実行しているマクロファイルパスの取得
03924             {
03925                 // 実行中マクロのインデックス番号 (INVALID_MACRO_IDX:無効 / STAND_KEYMACRO:標準マクロ)
03926                 switch( m_pcSMacroMgr->GetCurrentIdx() ){
03927                 case INVALID_MACRO_IDX:
03928                     break;
03929                 case STAND_KEYMACRO:
03930                     {
03931                         TCHAR* pszMacroFilePath = CShareData::getInstance()->GetShareData()->m_szKeyMacroFileName;
03932                         q = wcs_pushT( q, q_max - q, pszMacroFilePath );
03933                     }
03934                     break;
03935                 default:
03936                     {
03937                         TCHAR szMacroFilePath[_MAX_PATH * 2];
03938                         int n = CShareData::getInstance()->GetMacroFilename( m_pcSMacroMgr->GetCurrentIdx(), szMacroFilePath, _countof(szMacroFilePath) );
03939                         if ( 0 < n ){
03940                             q = wcs_pushT( q, q_max - q, szMacroFilePath );
03941                         }
03942                     }
03943                     break;
03944                 }
03945                 ++p;
03946             }
03947             break;
03948         //  Mar. 31, 2003 genta
03949         //  条件分岐
03950         //  ${cond:string1$:string2$:string3$}
03951         //
03952         case L'{':  // 条件分岐
03953             {
03954                 int cond;
03955                 cond = ExParam_Evaluate( p + 1 );
03956                 while( *p != '?' && *p != '\0' )
03957                     ++p;
03958                 if( *p == '\0' )
03959                     break;
03960                 p = ExParam_SkipCond( p + 1, cond );
03961             }
03962             break;
03963         case L':':  // 条件分岐の中間
03964             //  条件分岐の末尾までSKIP
03965             p = ExParam_SkipCond( p + 1, -1 );
03966             break;
03967         case L'}':  // 条件分岐の末尾
03968             //  特にすることはない
03969             ++p;
03970             break;
03971         default:
03972             *q++ = '$';
03973             *q++ = *p++;
03974             break;
03975         }
03976     }
03977     *q = '\0';
03978 }
03979
03996 const wchar_t* CEditDoc::ExParam_SkipCond(const wchar_t* pszSource, int part)
03997 {
03998     if( part == 0 )
03999         return pszSource;
04000
04001     int nest = 0;   // 入れ子のレベル
04002     bool next = true;   // 継続フラグ
04003     const wchar_t *p;
04004     for( p = pszSource; next && *p != L'\0'; ++p ) {
04005         if( *p == L'$' && p[1] != L'\0' ){ // $が末尾なら無視
04006             switch( *(++p)){
04007             case L'{':  // 入れ子の開始
04008                 ++nest;
04009                 break;
04010             case L'}':
04011                 if( nest == 0 ){
04012                     //  終了ポイントに達した
04013                     next = false;
04014                 }
04015                 else {
04016                     //  ネストレベルを下げる
04017                     --nest;
04018                 }
04019                 break;
04020             case L':':
04021                 if( nest == 0 && --part == 0){ // 入れ子でない場合のみ
04022                     //  目的のポイント
04023                     next = false;
04024                 }
04025                 break;
04026             }
04027         }
04028     }
04029     return p;
04030 }
04031
04045 int CEditDoc::ExParam_Evaluate( const wchar_t* pCond )
04046 {
04047     switch( *pCond ){
04048     case L'R': // 読みとり専用
04049         if( m_bReadOnly ){  /* 読み取り専用モード */
04050             return 0;
04051         }
04052         else if( SHAREMODE_NOT_EXCLUSIVE != m_nFileShareModeOld && /* ファイルの排他制御モード */
04053             NULL == m_hLockedFile       /* ロックしていない */
04054         ){
04055             return 1;
04056         }
04057         else{
04058             return 2;
04059         }
04060     case L'w': // Grepモード/Output Mode
04061         if( m_bGrepMode ){
04062             return 0;
04063         }else if( m_bDebugMode ){
04064             return 1;
04065         }else {
04066             return 2;
04067         }
04068     case L'M': // キーボードマクロの記録中
04069         if( TRUE == m_pShareData->m_bRecordingKeyMacro &&
04070         m_pShareData->m_hwndRecordingKeyMacro == GetOwnerHwnd() ){ /* ウィンドウ */
04071             return 0;
04072         }else {
04073             return 1;
04074         }
04075     case L'U': // 更新
04076         if( IsModified()){
04077             return 0;
04078         }
04079         else {
04080             return 1;
04081         }
04082     case L'I': // アイコン化されているか
04083         if( ::IsIconic( GetOwnerHwnd() )){
04084             return 0;
04085         } else {
04086             return 1;
04087         }
04088     default:
04089         return 0;
04090     }
04091     return 0;
04092 }
04093
04094
04095
04096 HWND CEditDoc::GetSplitterHwnd() const
04097 {
04098     return m_pcEditWnd->m_cSplitterWnd.GetHwnd();
04099 }
04100
04101 HWND CEditDoc::GetOwnerHwnd() const
04102 {
04103     return m_pcEditWnd->GetHwnd();
04104 }
Sakura-Editorに対してSat Nov 17 20:24:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc.h

sakura_core

CEditDoc.h

文書関連情報の管理 [詳細]

#include "global.h"
#include "CAutoSave.h"
#include "CDocLineMgr.h"
#include "CEol.h"
#include "CFuncLookup.h"
#include "CLayoutMgr.h"
#include "COpeBuf.h"
#include "CShareData.h"
#include <string>

CEditDoc.hのインクルード依存関係図

ソースコードを見る。

構成

class | CEditDoc
文書関連情報の管理 [詳細]

型定義

typedef CEditWnd * | P_CEditWnd

説明

文書関連情報の管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

CEditDoc.h で定義されています。

型定義

typedef CEditWnd* P_CEditWnd

CEditDoc.h の 43 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc.h ソースファイル

sakura_core

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 "CDocLineMgr.h"
00029 #include "CEol.h"
00030 #include "CFuncLookup.h"
00031 #include "CLayoutMgr.h"
00032 #include "COpeBuf.h"
00033 #include "CShareData.h"
00034 #include <string>
00035
00036 //#include <windows.h>
00037 class CImageListMgr; // 2002/2/10 aroka
00038 class CSMacroMgr; // 2002/2/10 aroka
00039 class CEditWnd; // Sep. 10, 2002 genta
00040 struct FileInfo; // 20050705 aroka
00041 class CFuncInfoArr;
00042 struct oneRule; // 2004.04.11 genta パラメータ内のstructを削除するため．doxygen対策
00043 class CEditApp;
00044
00045 typedef CEditWnd* P_CEditWnd;
00046
00048 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00049 class SAKURA_CORE_API CEditDoc
00050 {
00051 public:
00052     /*
00053     ||  Constructors
00054     */
00055     CEditDoc(CEditApp* pcApp);
00056     ~CEditDoc();
00057
00058     /*
00059     ||  初期化系メンバ関数
00060     */
00061     BOOL Create( HINSTANCE, CImageListMgr* );
00062     void Init( void );  /* 既存データのクリア */
00063     void InitAllView(); /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
00064
00065     /*
00066     || 状態
00067     */
00068     BOOL IsEnableUndo( void );      /* Undo(元に戻す)可能な状態か？ */
00069     BOOL IsEnableRedo( void );      /* Redo(やり直し)可能な状態か？ */
00070     BOOL IsEnablePaste( void );     /* クリップボードから貼り付け可能か？ */
00071     void GetFileInfo( FileInfo* ) const;    /* 編集ファイル情報を格納 */ //2007.10.24 kobake 関数名変更: SetFileInfo→GetFileInfo
00072
00073     /* いろいろ */
00074     BOOL OnFileClose( void );   /* ファイルを閉じるときのMRU登録 & 保存確認 ＆ 保存実行 */
00075     BOOL HandleCommand( EFunctionCode );
00076     BOOL SelectFont( LOGFONT* );
00077
00078     /* ファイルを開く */
00079     bool FileRead(
00080         TCHAR*      pszPath,
00081         bool*       pbOpened,
00082         ECodeType   nCharCode,
00083         bool        bReadOnly,
00084         bool        bConfirmCodeChange
00085     );
00086
00087     //  Feb. 9, 2001 genta 引数追加
00088     BOOL FileWrite( const TCHAR*, enumEOLType cEolType );
00089     bool SaveFile( const TCHAR* path ); //  ファイルの保存（に伴ういろいろ）
00090     void OpenFile( const TCHAR* filename = NULL, ECodeType nCharCode = CODE_AUTODETECT,
00091         bool bReadOnly = FALSE );   //  Oct. 9, 2004 genta CEditViewより移動
00092     void FileClose( void ); /* 閉じて(無題) */ // 2006.12.30 ryoji
00093     void FileCloseOpen( const TCHAR* filename = NULL, ECodeType nCharCode = CODE_AUTODETECT, bool bReadOnly = FALSE );  /* 閉じて開く */   // 2006.12.30 ryoji
00094     BOOL FileSave( bool warnbeep = true, bool askname = true ); /* 上書き保存 */   // 2006.12.30 ryoji
00095     BOOL FileSaveAs_Dialog( void );             /* 名前を付けて保存ダイアログ */   // 2006.12.30 ryoji
00096     BOOL FileSaveAs( const TCHAR* filename );   /* 名前を付けて保存 */  // 2006.12.30 ryoji
00097
00098     int MakeBackUp( const TCHAR* target_file ); /* バックアップの作成 */
00099     void SetParentCaption( void );  /* 親ウィンドウのタイトルを更新 */    // 2007.03.08 ryoji bKillFocusパラメータを除去
00100     BOOL OpenPropertySheet( int/*, int*/ ); /* 共通設定 */
00101     BOOL OpenPropertySheetTypes( int, int );    /* タイプ別設定 */
00102
00103     BOOL OpenFileDialog( HWND, const TCHAR*, TCHAR*, ECodeType*, bool* );   /* 「ファイルを開く」ダイアログ */
00104     void OnChangeSetting( void );   /* ビューに設定変更を反映させる */
00105 // 2004/06/21 novice タグジャンプ機能追加
00106 #if 0
00107     void SetReferer( HWND , int, int ); /* タグジャンプ元など参照元の情報を保持する */
00108 #endif
00109     //  Jul. 26, 2003 ryoji BOMオプション追加
00110     BOOL SaveFileDialog( TCHAR*, ECodeType*, CEOL* pcEol = NULL, BOOL* pbBomExist = NULL ); /* 「ファイル名を付けて保存」ダイアログ */
00111
00112     void CheckFileTimeStamp( void );    /* ファイルのタイムスタンプのチェック処理 */
00113     void ReloadCurrentFile( ECodeType, bool );/* 同一ファイルの再オープン */
00114
00115     //  May 15, 2000 genta
00116     CEOL  GetNewLineCode() const { return m_cNewLineCode; }
00117     void  SetNewLineCode(const CEOL& t){ m_cNewLineCode = t; }
00118
00119     //  Aug. 14, 2000 genta
00120     bool IsModificationForbidden( int nCommand );
00121
00122     //  Aug. 21, 2000 genta
00123     CPassiveTimer   m_cAutoSave;
00124     void    CheckAutoSave(void);
00125     void    ReloadAutoSaveParam(void);  //  設定をSharedAreaから読み出す
00126
00127     //  Nov. 20, 2000 genta
00128     void SetImeMode(int mode);  //  IME状態の設定
00129
00130     //  Sep. 9, 2002 genta
00131     const TCHAR* GetFilePath(void) const { return m_szFilePath; }
00132     bool IsFilePathAvailable(void) const { return m_szFilePath[0] != _T('\0'); }
00133     //  2002.10.13 Moca
00134     const TCHAR* GetFileName(void) const;
00135     void SetDocumentIcon(void); // Sep. 10, 2002 genta
00136
00137     //  Nov. 29, 2000 From Here genta
00138     //  設定の一時変更時に拡張子による強制的な設定変更を無効にする
00139     void LockDocumentType(void){ m_nSettingTypeLocked = true; }
00140     void UnlockDocumentType(void){ m_nSettingTypeLocked = false; }
00141     bool GetDocumentLockState(void){ return m_nSettingTypeLocked; }
00142     //  Nov. 29, 2000 To Here
00143     //  Nov. 23, 2000 From Here genta
00144     //  文書種別情報の設定，取得Interface
00145     void SetDocumentType(int type, bool force)  //  文書種別の設定
00146     {
00147         if( (!m_nSettingTypeLocked) || force ){
00148             m_nSettingType = type;
00149             UnlockDocumentType();
00150             m_pShareData->m_Types[m_nSettingType].m_nRegexKeyMagicNumber++; //@@@ 2001.11.17 add MIK
00151             SetDocumentIcon();  // Sep. 11, 2002 genta
00152         }
00153     }
00154     int GetDocumentType(void) const
00155     {
00156         return m_nSettingType;
00157     }
00158     Types& GetDocumentAttribute(void) const
00159     {
00160         return m_pShareData->m_Types[m_nSettingType];
00161     }
00162     //  Nov. 23, 2000 To Here
00163
00164     //  May 18, 2001 genta
00166     BOOL IsReadOnly( void ){ return m_bReadOnly; }
00168     void SetReadOnly( bool flag){ m_bReadOnly = flag; }
00169
00170     //  Jan. 22, 2002 genta Modified Flagの設定
00171     void SetModified( bool flag, bool redraw);
00176     bool IsModified( void ) const { return m_bIsModified; }
00177
00187     bool IsFileOpenInThisWindow( void ){
00188         return !( IsModified() || IsFilePathAvailable() || m_bGrepMode || m_bDebugMode );
00189     }
00190
00191     void AddToMRU(void); // Mar. 30, 2003 genta
00192     // Mar. 31, 2003 genta ExpandParameter補助関数
00193     const wchar_t* ExParam_SkipCond(const wchar_t* pszSource, int part);
00194     int ExParam_Evaluate( const wchar_t* pCond );
00195
00196
00197     //  Oct. 2, 2005 genta 挿入モードの設定
00198     bool IsInsMode() const { return m_bInsMode; }
00199     void SetInsMode(bool mode) { m_bInsMode = mode; }
00200
00201 protected:
00202
00203     void SetFilePath(const TCHAR* szFile);  // Sep. 9, 2002 genta
00204 public:
00205     void            MakeFuncList_C( CFuncInfoArr*,bool bVisibleMemberFunc = true );     /* C/C++関数リスト作成 */
00206     void            MakeFuncList_PLSQL( CFuncInfoArr* );    /* PL/SQL関数リスト作成 */
00207     void            MakeTopicList_txt( CFuncInfoArr* );     /* テキスト・トピックリスト作成 */
00208     void            MakeFuncList_Java( CFuncInfoArr* );     /* Java関数リスト作成 */
00209     void            MakeTopicList_cobol( CFuncInfoArr* );   /* COBOL アウトライン解析 */
00210     void            MakeTopicList_asm( CFuncInfoArr* );     /* アセンブラ アウトライン解析 */
00211     void            MakeFuncList_Perl( CFuncInfoArr* );     /* Perl関数リスト作成 */ //  Sep. 8, 2000 genta
00212     void            MakeFuncList_VisualBasic( CFuncInfoArr* );/* Visual Basic関数リスト作成 */ //June 23, 2001 N.Nakatani
00213     void            MakeFuncList_python( CFuncInfoArr* pcFuncInfoArr ); /* Python アウトライン解析*/ // 2007.02.08 genta
00214     void            MakeTopicList_wztxt(CFuncInfoArr*);     /* 階層付きテキスト アウトライン解析 */ // 2003.05.20 zenryaku
00215     void            MakeTopicList_html(CFuncInfoArr*);      /* HTML アウトライン解析 */ // 2003.05.20 zenryaku
00216     void            MakeTopicList_tex(CFuncInfoArr*);       /* TeX アウトライン解析 */ // 2003.07.20 naoh
00217     void            MakeFuncList_RuleFile( CFuncInfoArr* ); /* ルールファイルを使ってリスト作成 2002.04.01 YAZAKI */
00218     int             ReadRuleFile( const TCHAR* pszFilename, oneRule* pcOneRule, int nMaxCount );    /* ルールファイル読込 2002.04.01 YAZAKI */
00219
00220 // From Here 2001.12.03 hor
00221     void            MakeFuncList_BookMark( CFuncInfoArr* ); /* ブックマークリスト作成 */
00222 // To Here 2001.12.03 hor
00223
00224     /*
00225     ||  実装ヘルパ関数
00226     */
00227     void ExpandParameter(const WChar* pszSource, WChar* pszBuffer, int nBufferLen); //  pszSourceを展開して、pszBufferにコピー。
00228 protected:
00229     void DoFileLock( void );    /* ファイルの排他ロック */
00230     void DoFileUnLock( void );  /* ファイルの排他ロック解除 */
00231     //char          m_pszCaption[1024]; //@@@ YAZAKI
00232
00233     // 2005.11.21 aroka
00234     bool FormatBackUpPath( TCHAR* szNewPath, const TCHAR* target_file );    /* バックアップパスの作成 */
00235
00236 public:
00237     HWND GetSplitterHwnd() const;
00238     HWND GetOwnerHwnd() const;
00239
00240     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00241     //                       メンバ変数群                          //
00242     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00243 public:
00244     P_CEditWnd&     m_pcEditWnd;    //  Sep. 10, 2002
00245
00246     CDocLineMgr     m_cDocLineMgr;
00247     CLayoutMgr      m_cLayoutMgr;
00248
00249 private:
00250 //  HWND            m_hwndParent;       /* 親ウィンドウ（CEditWndが管理）ハンドル */
00251
00252 protected:
00253     int             m_nSettingType;
00254     bool            m_nSettingTypeLocked;   //  文書種別の一時設定状態
00255     bool            m_bIsModified;
00256
00257 private:
00258     SFilePath       m_szFilePath;   /* 現在編集中のファイルのパス */
00259
00260 public: /* テスト用にアクセス属性を変更 */
00261     BOOL            m_bGrepRunning;             /* Grep処理中 */
00262     int             m_nCommandExecNum;          /* コマンド実行回数 */
00263     FILETIME        m_FileTime;                 /* ファイルの最終更新日付 */
00264     ECodeType       m_nCharCode;                /* 文字コード種別 */
00265     BOOL            m_bBomExist;
00266     bool            m_bInsMode;
00267
00268     //  May 15, 2000 genta
00269 protected:
00270     CEOL            m_cNewLineCode;             //  Enter押下時に挿入する改行コード種別
00271
00272 public:
00273     CEOL            m_cSaveLineCode;            //  保存時の改行コード種別（EOL_NONE:変換なし）
00274
00275     bool            m_bReadOnly;                /* 読み取り専用モード */
00276     BOOL            m_bDebugMode;               /* デバッグモニタモード */
00277     BOOL            m_bGrepMode;                /* Grepモードか */
00278     wchar_t         m_szGrepKey[1024];          /* Grepモードの場合、その検索キー */
00279 public:
00280     COpeBuf         m_cOpeBuf;                  /* アンドゥバッファ */
00281
00282     TCHAR*          m_pszAppName;       /* Mutex作成用・ウィンドウクラス名 */
00283     HINSTANCE       m_hInstance;        /* インスタンスハンドル */
00284     DLLSHAREDATA*   m_pShareData;
00285     BOOL            m_bDoing_UndoRedo;  /* アンドゥ・リドゥの実行中か */
00286     EShareMode  m_nFileShareModeOld;    /* ファイルの排他制御モード */
00287     HANDLE          m_hLockedFile;          /* ロックしているファイルのハンドル */
00288     CSMacroMgr*     m_pcSMacroMgr;
00289     CFuncLookup     m_cFuncLookup;
00290
00291     //  From Here Dec. 4, 2002 genta
00292     //  更新監視と更新通知
00296     enum WatchUpdate {
00297         WU_QUERY,
00298         WU_NOTIFY,
00299         WU_NONE
00300     };
00301     WatchUpdate     m_eWatchUpdate;
00302     //  To Here Dec. 4, 2002 genta
00303
00304 };
00305
00306
00307
00309 #endif /* _CEDITDOC_H_ */
00310
00311
00312 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_FuncList1.cpp

sakura_core

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_IsSpace (wchar_t c)
bool | C_IsWordChar (char c)
bool | C_IsWordChar (wchar_t c)
static bool | C_IsOperator (wchar_t *szStr, int nLen)
static bool | C_IsLineEsc (const char *s, int len)
static bool | C_IsLineEsc (const wchar_t *s, int len)

説明

アウトライン解析

作者:
genta
日付:
2004.08.08 作成

CEditDoc_FuncList1.cpp で定義されています。

関数

static bool C_IsLineEsc | ( | const wchar_t * | s,
 |  | int | len |
 | ) |  |  | [static]

CEditDoc_FuncList1.cpp の 94 行で定義されています。

参照先 CNativeW::GetSizeOfChar().

static bool C_IsLineEsc | ( | const char * | s,
 |  | int | len |
 | ) |  |  | [static]

改行直前を \ でエスケープしているかどうか判定

日付:
2005.12.06 じゅうじ 最後の1文字しか見ないと2バイトコードの後半がバックスラッシュの場合に誤認する

参照元 CEditDoc::MakeFuncList_C(), と CCppPreprocessMng::ScanLine().

static bool C_IsOperator | ( | wchar_t * | szStr,
 |  | int | nLen |
 | ) |  |  | [static]

特殊な関数名 "operator" かどうかを判定する。

文字列が"operator"それ自身か、あるいは::の後ろにoperatorと続いて 終わっているときにoperatorと判定。

演算子の評価順序を保証するため2つのif文に分けてある

引数:
szStr | 判定対象の文字列
nLen | 文字列の長さ。 本質的には不要であるが、高速化のために既にある値を利用する。

CEditDoc_FuncList1.cpp の 74 行で定義されています。

参照元 CEditDoc::MakeFuncList_C().

bool C_IsSpace ( wchar_t c ) [inline]

CEditDoc_FuncList1.cpp の 34 行で定義されています。

参照先 WCODE::CR, と WCODE::LF.

bool C_IsSpace ( char c )

スペースの判定

参照元 CEditDoc::MakeFuncList_C(), CEditDoc::MakeFuncList_python(), と CCppPreprocessMng::ScanLine().

bool C_IsWordChar ( wchar_t c ) [inline]

CEditDoc_FuncList1.cpp の 48 行で定義されています。

bool C_IsWordChar ( char c )

関数に用いることができる文字かどうかの判定

参照元 CEditDoc::MakeFuncList_C().

Sakura-Editorに対してSat Nov 17 20:25:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_FuncList1.cpp ソースファイル

sakura_core

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 bool C_IsSpace( char c );
00034 inline bool C_IsSpace( wchar_t c )
00035 {
00036     return (
00037         L'\t' == c ||
00038         L' ' == c ||
00039         WCODE::CR == c ||
00040         WCODE::LF == c
00041     );
00042 }
00043
00047 bool C_IsWordChar( char c );
00048 inline bool C_IsWordChar( wchar_t c )
00049 {
00050     return (
00051         L'_' == c ||
00052         L':' == c ||
00053         L'~' == c ||
00054         (L'a' <= c && c <= L'z' )||
00055         (L'A' <= c && c <= L'Z' )||
00056         (L'0' <= c && c <= L'9' )
00057     );
00058 }
00059 //  To Here
00060
00061 //  From Here Apr. 1, 2001 genta
00074 static bool C_IsOperator( wchar_t* szStr, int nLen  )
00075 {
00076     if( nLen >= 8 && szStr[ nLen - 1 ] == L'r' ){
00077         if( nLen > 8 ?
00078                 wcscmp( szStr + nLen - 9, L":operator" ) == 0 : // メンバー関数による定義
00079                 wcscmp( szStr, L"operator" ) == 0   // friend関数による定義
00080          ){
00081             return true;
00082         }
00083     }
00084     return false;
00085 }
00086 //  To Here Apr. 1, 2001 genta
00087
00093 static bool C_IsLineEsc(const char *s, int len);
00094 static bool C_IsLineEsc(const wchar_t *s, int len)
00095 {
00096     if ( len > 0 && s[len-1] == L'\n' ) len--;
00097     if ( len > 0 && s[len-1] == L'\r' ) len--;
00098     if ( len > 0 && s[len-1] == L'\n' ) len--;
00099
00100     if ( len > 0 && s[len-1] == L'\\' ) {
00101         if ( len == 1 ) {
00102             return(true);
00103         } else if ( len == 2 ) {
00104             if ( CNativeW::GetSizeOfChar( s, 2 , 0 ) == 1 )
00105                 return(true);
00106         } else { //残り３バイト以上
00107             if ( CNativeW::GetSizeOfChar( s, len , len-2 ) == 1 )
00108                 return(true);
00109             if ( CNativeW::GetSizeOfChar( s, len , len-3 ) == 2 )
00110                 return(true);
00111         }
00112     }
00113     return(false);
00114 }
00115
00116
00123 class CCppPreprocessMng {
00124 public:
00125     CCppPreprocessMng(void) :
00126         m_stackptr( 0 ), m_bitpattern( 1 ), m_enablebuf( 0 ), m_maxnestlevel( 32 ), m_ismultiline( false )
00127     {}
00128
00129     CLogicInt ScanLine(const wchar_t*, CLogicInt);
00130
00131 private:
00132     bool m_ismultiline;
00133     int m_maxnestlevel;
00134
00135     int m_stackptr;
00136
00141     unsigned int m_bitpattern;
00142     unsigned int m_enablebuf;
00143 };
00144
00172 CLogicInt CCppPreprocessMng::ScanLine( const wchar_t* str, CLogicInt _length )
00173 {
00174     int length=_length;
00175
00176     const wchar_t* lastptr = str + length;  //  処理文字列末尾
00177     const wchar_t* p;   //  処理中の位置
00178
00179     //  skip whitespace
00180     for( p = str; C_IsSpace( *p ) && p < lastptr ; ++p )
00181         ;
00182     if( lastptr <= p )
00183         return CLogicInt(length);   //  空行のため処理不要
00184
00185     if(m_ismultiline){ // 複数行のディレクティブは無視
00186         m_ismultiline = C_IsLineEsc(str, length); // 行末が \ で終わっていないか
00187         return CLogicInt(length);
00188     }
00189
00190     if( *p != L'#' ){   //  プリプロセッサ以外の処理はメイン部に任せる
00191         if( m_enablebuf ){
00192             return CLogicInt(length);   //  1ビットでも1となっていたら無視
00193         }
00194         return CLogicInt(p - str);
00195     }
00196
00197     ++p; // #をスキップ
00198
00199     //  skip whitespace
00200     for( ; C_IsSpace( *p ) && p < lastptr ; ++p )
00201         ;
00202
00203     //  ここからPreprocessor directive解析
00204     if( p + 2 + 2 < lastptr && wcsncmp_literal( p, L"if" ) == 0 ){
00205         // if
00206         p += 2;
00207
00208         int enable = 0; //  0: 処理しない, 1: else以降が有効, 2: 最初が有効,
00209
00210         //  if 0は最初が無効部分とみなす．
00211         //  それ以外のif/ifdef/ifndefは最初が有効部分と見なす
00212         //  最初の条件によってこの時点ではp < lastptrなので判定省略
00213         if( C_IsSpace( *p ) ){
00214             //  if 0 チェック
00215             //  skip whitespace
00216             for( ; C_IsSpace( *p ) && p < lastptr ; ++p )
00217                 ;
00218             if( *p == L'0' ){
00219                 enable = 1;
00220             }
00221             else {
00222                 enable = 2;
00223             }
00224         }
00225         else if(
00226             ( p + 3 < lastptr && wcsncmp_literal( p, L"def" ) == 0 ) ||
00227             ( p + 4 < lastptr && wcsncmp_literal( p, L"ndef" ) == 0 )){
00228             enable = 2;
00229         }
00230
00231         //  保存領域の確保とビットパターンの設定
00232         if( enable > 0 ){
00233             m_bitpattern = 1 << m_stackptr;
00234             ++m_stackptr;
00235             if( enable == 1 ){
00236                 m_enablebuf |= m_bitpattern;
00237             }
00238         }
00239     }
00240     else if( p + 4 < lastptr && wcsncmp_literal( p, L"else" ) == 0 ){
00241         if( m_stackptr < m_maxnestlevel ){
00242             m_enablebuf ^= m_bitpattern;
00243         }
00244     }
00245     else if( p + 5 < lastptr && wcsncmp_literal( p, L"endif" ) == 0 ){
00246         if( m_stackptr > 0 ){
00247             --m_stackptr;
00248             m_enablebuf &= ~m_bitpattern;
00249             m_bitpattern = ( 1 << ( m_stackptr - 1 ));
00250         }
00251     }
00252     else{
00253         m_ismultiline = C_IsLineEsc(str, length); // 行末が \ で終わっていないか
00254     }
00255
00256     return CLogicInt(length);   //  基本的にプリプロセッサ指令は無視
00257 }
00258
00287 void CEditDoc::MakeFuncList_C( CFuncInfoArr* pcFuncInfoArr ,bool bVisibleMemberFunc )
00288 {
00289     const wchar_t*  pLine;
00290     CLogicInt   nLineLen;
00291     CLogicInt   i;
00292
00293     // 2002/10/27 frozen　ここから
00294     // nNestLevelを nNestLevel_global を nNestLevel_func に分割した。
00295     int         nNestLevel_global = 0;  // nNestLevel_global 関数外の {}のレベル
00296     int         nNestLevel_func   = 0;  //  nNestLevel_func 関数の定義、および関数内の {}のレベル
00297 //  int         nNestLevel2;            //  nNestLevel2 ()に対する位置 // 2002/10/27 frozen nNastLevel_fparamとnMode2のM2_FUNC_NAME_ENDで代用
00298     int         nNestLevel_fparam = 0;  // ()のレベル
00299     int         nNestPoint_class = 0;   // 外側から何番目の{がクラスの定義を囲む{か？ (一番外側なら1、0なら無し。bVisibleMemberFuncがfalseの時のみ有効。trueでは常に0)
00300     // 2002/10/27 frozen　ここまで
00301
00302     int         nCharChars;         //  多バイト文字を読み飛ばすためのもの
00303     wchar_t     szWordPrev[256];    //  1つ前のword
00304     wchar_t     szWord[256];        //  現在解読中のwordを入れるところ
00305     int         nWordIdx = 0;
00306     int         nMaxWordLeng = 100; //  許容されるwordの最大長さ
00307     int         nMode;              //  現在のstate
00308
00309     // 2002/10/27 frozen　ここから
00311     enum MODE2
00312     {
00313         M2_NORMAL           = 0x00,
00314         M2_NAMESPACE_SAVE   = 0x11,
00315             // 「通常」状態で単語 "class" "struct" "union" "enum" "namespace"を読み込むと、この状態になり、';' '{' ',' '>' '='を読み込むと「通常」になる。
00316             //
00317             // ':' を読み込むと「ネームスペース名調査完了」へ移行すると同時に
00318             // szWordをszTokenNameに保存し、あとで ':' 又は '{' の直前の単語が調べられるようにしている。
00319             // これは "__declspec( dllexport )"のように"class"とクラス名の間にキーワードが書いてある場合でもクラス名を取得できるようにするため。
00320             //
00321             // '<' を読み込むと「テンプレートクラス名調査中」に移行する。
00322         M2_TEMPLATE_SAVE    = 0x12,
00323             // ';' '{'を読み込むと「通常」になる。
00324             // また、この状態の間は単語を区切る方法を一時的に変更し、
00325             // 「template_name <paramA,paramB>」のような文字列を一つの単語をみなすようにする。
00326             // これは特殊化したクラステンプレートを実装する際の構文で有効に働く。
00327         M2_NAMESPACE_END    = 0x13,
00328         M2_FUNC_NAME_END    = 0x14,
00329         M2_AFTER_EQUAL      = 0x05,
00330             //「通常」かつ nNestLevel_fparam==0 で'='が見つかるとこの状態になる。（ただし "opreator"の直後は除く）
00331             // ';'が見つかると「通常」に戻る。
00332             // int val=abs(-1);
00333             // のような文が関数とみなされないようにするために使用する。
00334         M2_KR_FUNC          = 0x16,
00335         M2_AFTER_ITEM       = 0x10,
00336     } nMode2 = M2_NORMAL;
00337
00338     const int   nNamespaceNestMax   = 32;
00339     int         nNamespaceLen[nNamespaceNestMax+1];
00340     const int   nNamespaceLenMax    = 512;
00341     wchar_t     szNamespace[nNamespaceLenMax];
00342     const int   nItemNameLenMax     = 256;
00343     wchar_t     szItemName[nItemNameLenMax];
00344     // 例えば下のコードの←の部分での
00345     // szNamespaceは"Namespace\ClassName\"
00346     // nMamespaceLenは{10,20}
00347     // nNestLevel_globalは2となる。
00348     //
00349     //　namespace Namespace{
00350     //　class ClassName{
00351     //　←
00352     //　}}
00353
00354     CLogicInt   nItemLine;
00355     int         nItemFuncId;
00356
00357     szWordPrev[0] = L'\0';
00358     szWord[nWordIdx] = L'\0';
00359     szNamespace[0] = L'\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     CLogicInt       nLineCount;
00367     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00368         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00369
00370         //  From Here Aug. 10, 2004 genta
00371         //  プリプロセス処理
00372         //  コメント中でなければプリプロセッサ指令を先に判定させる
00373         if( 8 != nMode && 10 != nMode ){    /* chg 2005/12/6 じゅうじ 次の行が空白でもよい    */
00374             i = cCppPMng.ScanLine( pLine, nLineLen );
00375         }
00376         else {
00377             i = CLogicInt(0);
00378         }
00379         //  C/C++としての処理が不要なケースでは i == nLineLenとなっているので
00380         //  以下の解析処理はSKIPされる．
00381         //  To Here Aug. 10, 2004 genta
00382
00383         for( ; i < nLineLen; ++i ){
00384             /* 1バイト文字だけを処理する */
00385             // 2005-09-02 D.S.Koba GetSizeOfChar
00386             nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00387             if( 1 < nCharChars ){
00388                 i += CLogicInt(nCharChars - 1);
00389                 continue;
00390             }
00391 /* del start 2005/12/6 じゅうじ */
00392             /* エスケープシーケンスは常に取り除く */
00393             /* シングルクォーテーション文字列読み込み中 */
00394             /* ダブルクォーテーション文字列読み込み中 */
00395             // いずれもコメント処理の後へ移動
00396 /* del end 2005/12/6 じゅうじ   */
00397             /* コメント読み込み中 */
00398             if( 8 == nMode ){
00399                 if( i < nLineLen - 1 && '*' == pLine[i] &&  '/' == pLine[i + 1] ){
00400                     ++i;
00401                     nMode = 0;
00402                     continue;
00403                 }else{
00404                 }
00405             }
00406             /* ラインコメント読み込み中 */
00407             // 2003/06/24 zenryaku
00408             else if( 10 == nMode)
00409             {
00410                 if(!C_IsLineEsc(pLine, nLineLen)){
00411                     nMode = 0;
00412                 }
00413                 i = nLineLen;
00414                 continue;
00415             }
00416             /* add start 2005/12/6 じゅうじ */
00417             /* エスケープシーケンスは常に取り除く */
00418             else if( '\\' == pLine[i] ){
00419                 ++i;
00420             }
00421             /* シングルクォーテーション文字列読み込み中 */
00422             else if( 20 == nMode ){
00423                 if( '\'' == pLine[i] ){
00424                     nMode = 0;
00425                     continue;
00426                 }else{
00427                 }
00428             }
00429             /* ダブルクォーテーション文字列読み込み中 */
00430             else if( 21 == nMode ){
00431                 if( '"' == pLine[i] ){
00432                     nMode = 0;
00433                     continue;
00434                 }else{
00435                 }
00436             }
00437             /* add end 2005/12/6 じゅうじ   */
00438             /* 単語読み込み中 */
00439             else if( 1 == nMode ){
00440                 if( C_IsWordChar( pLine[i] ) ){
00441                     ++nWordIdx;
00442                     if( nWordIdx >= nMaxWordLeng ){
00443                         nMode = 999;
00444                         continue;
00445                     }else{
00446                         if( pLine[i] == L':')
00447                         {
00448                             if(nMode2 == M2_NAMESPACE_SAVE)
00449                             {
00450                                 if(szWord[0]!='\0')
00451                                     wcscpy( szItemName, szWord );
00452                                 nMode2 = M2_NAMESPACE_END;
00453                             }
00454                             else if( nMode2 == M2_TEMPLATE_SAVE)
00455                             {
00456                                 wcsncat( szItemName, szWord, nItemNameLenMax - wcslen(szItemName) );
00457                                 szItemName[ nItemNameLenMax - 1 ] = L'\0';
00458                                 nMode2 = M2_NAMESPACE_END;
00459                             }
00460                         }
00461                         szWord[nWordIdx] = pLine[i];
00462                         szWord[nWordIdx + 1] = L'\0';
00463                     }
00464                 }else{
00465                     //  From Here Mar. 31, 2001 genta
00466                     //  operatorキーワード(演算子overload)の対応
00467                     //  ただし、operatorキーワードの後ろにスペースが入っているとうまく動かない。
00468                     if( C_IsOperator( szWord, nWordIdx + 1 ) ){
00469                         //  operatorだ！
00470                         /*  overloadする演算子一覧
00471                             & && &=
00472                             | || |=
00473                             + ++ +=
00474                             - -- -= -> ->*
00475                             * *=
00476                             / /=
00477                             % %=
00478                             ^ ^=
00479                             ! !=
00480                             = ==
00481                             < <= << <<=
00482                             > >= >> >>=
00483                             ()
00484                             []
00485                             ~
00486                             ,
00487                         */
00488                         int oplen = 0;  // 演算子本体部の文字列長
00489                         switch( pLine[i] ){
00490                         case '&': // no break
00491                         case '|': // no break
00492                         case '+':
00493                             oplen = 1;
00494                             if( i + 1 < nLineLen ){
00495                                 if( pLine[ i + 1 ] == pLine[ i ] ||
00496                                     pLine[ i + 1 ] == L'=' )
00497                                     oplen = 2;
00498                             }
00499                             break;
00500                         case '-':
00501                             oplen = 1;
00502                             if( i + 1 < nLineLen ){
00503                                 if( pLine[ i + 1 ] == L'-' ||
00504                                     pLine[ i + 1 ] == L'=' )
00505                                     oplen = 2;
00506                                 else if( pLine[ i + 1 ] == L'>' ){
00507                                     oplen = 2;
00508                                     if( i + 2 < nLineLen ){
00509                                         if( pLine[ i + 2 ] == L'*' )
00510                                             oplen = 3;
00511                                     }
00512                                 }
00513                             }
00514                             break;
00515                         case '*': // no break
00516                         case '/': // no break
00517                         case '%': // no break
00518                         case '^': // no break
00519                         case '!': // no break
00520                         case '=':
00521                             oplen = 1;
00522                             if( i + 1 < nLineLen ){
00523                                 if( pLine[ i + 1 ] == L'=' )
00524                                     oplen = 2;
00525                             }
00526                             break;
00527                         case '<': // no break
00528                         case '>':
00529                             oplen = 1;
00530                             if( i + 1 < nLineLen ){
00531                                 if( pLine[ i + 1 ] == pLine[ i ] ){
00532                                     oplen = 2;
00533                                     if( i + 2 < nLineLen ){
00534                                         if( pLine[ i + 2 ] == L'=' )
00535                                             oplen = 3;
00536                                     }
00537                                 }
00538                                 else if( pLine[ i + 1 ] == L'=' )
00539                                     oplen = 2;
00540                             }
00541                             break;
00542                         case '(':
00543                             if( i + 1 < nLineLen )
00544                                 if( pLine[ i + 1 ] == /* 括弧対応対策 ( */ ')' )
00545                                     oplen = 2;
00546                             break;
00547                         case '[':
00548                             if( i + 1 < nLineLen )
00549                                 if( pLine[ i + 1 ] == /* 括弧対応対策 [ */ ']' )
00550                                     oplen = 2;
00551                             break;
00552                         case '~': // no break
00553                         case ',':
00554                             oplen = 2;
00555                             break;
00556                         }
00557
00558                         //  oplen の長さだけキーワードに追加
00559                         for( ; oplen > 0 ; oplen--, i++ ){
00560                             ++nWordIdx;
00561                             szWord[nWordIdx] = pLine[i];
00562                         }
00563                         szWord[nWordIdx + 1] = L'\0';
00564                             // 記号列の処理を行う前は記号列のiは記号列の先頭を指していた。
00565                             // この時点でiは記号列の1つ後を指している
00566
00567                             // operatorの後ろに不正な文字がある場合の動作
00568                             // ( で始まる場合はoperatorという関数と認識される
00569                             // それ以外の記号だと従来通り記号列がglobalのしたに現れる。
00570
00571                             // 演算子が抜けている場合の動作
00572                             // 引数部が()の場合はそれが演算子と見なされるため、その行は関数定義と認識されない
00573                             // それ以外の場合はoperatorという関数と認識される
00574                     }
00575                     // 2002/10/27 frozen　ここから
00576                     if( nMode2 == M2_NAMESPACE_SAVE )
00577                         wcscpy( szItemName, szWord );
00578                     else if( nMode2 == M2_TEMPLATE_SAVE)
00579                     {
00580                         wcsncat( szItemName, szWord, nItemNameLenMax - wcslen(szItemName) );
00581                         szItemName[ nItemNameLenMax - 1 ] = L'\0';
00582                     }
00583                     else if( nNestLevel_func == 0 && nMode2 == M2_NORMAL )
00584                     {
00585                         nItemFuncId = 0;
00586                         if( wcscmp(szWord,L"class")==0 )
00587                             nItemFuncId = 3;
00588                         if( wcscmp(szWord,L"struct")==0 )
00589                             nItemFuncId = 4;
00590                         else if( wcscmp(szWord,L"namespace")==0 )
00591                             nItemFuncId = 7;
00592                         else if( wcscmp(szWord,L"enum")==0 )
00593                             nItemFuncId = 5;
00594                         else if( wcscmp(szWord,L"union")==0 )
00595                             nItemFuncId = 6;
00596                         if( nItemFuncId != 0 )
00597                         {
00598                             nMode2 = M2_NAMESPACE_SAVE;
00599                             nItemLine = nLineCount + CLogicInt(1);
00600                             wcscpy(szItemName,L"無名");
00601                         }
00602                     }
00603                     else if( nMode2 == M2_FUNC_NAME_END )
00604                     {
00605                         nMode2 = M2_KR_FUNC;
00606                     }
00607                     // 2002/10/27 frozen　ここまで
00608
00609                     //  To Here Mar. 31, 2001 genta
00610                     // 2004/03/12 zenryaku キーワードに _ と PARAMS を使わせない (GNUのコードが見にくくなるから)
00611                     if( !( wcscmp(L"PARAMS",szWord) == 0 || wcscmp(L"_",szWord) == 0 ) )
00612                         wcscpy( szWordPrev, szWord );
00613                     nWordIdx = 0;
00614                     szWord[0] = L'\0';
00615                     nMode = 0;
00616                     i--;
00617                     continue;
00618                 }
00619             }else
00620             /* 記号列読み込み中 */
00621             if( 2 == nMode ){
00622                 if( C_IsWordChar( pLine[i] ) ||
00623                     C_IsSpace( pLine[i] ) ||
00624                      '{' == pLine[i] ||
00625                      '}' == pLine[i] ||
00626                      '(' == pLine[i] ||
00627                      ')' == pLine[i] ||
00628                      ';' == pLine[i] ||
00629                     '\'' == pLine[i] ||
00630                      '"' == pLine[i] ||
00631                      '/' == pLine[i]
00632                 ){
00633                     wcscpy( szWordPrev, szWord );
00634                     nWordIdx = 0;
00635                     szWord[0] = L'\0';
00636                     nMode = 0;
00637                     i--;
00638                     continue;
00639                 }else{
00640                     ++nWordIdx;
00641                     if( nWordIdx >= nMaxWordLeng ){
00642                         nMode = 999;
00643                         continue;
00644                     }else{
00645                         szWord[nWordIdx] = pLine[i];
00646                         szWord[nWordIdx + 1] = L'\0';
00647                     }
00648                 }
00649             }else
00650             /* 長過ぎる単語無視中 */
00651             if( 999 == nMode ){
00652                 /* 空白やタブ記号等を飛ばす */
00653                 if( C_IsSpace( pLine[i] ) ){
00654                     nMode = 0;
00655                     continue;
00656                 }
00657             }else
00658             /* ノーマルモード */
00659             if( 0 == nMode ){
00660                 /* 空白やタブ記号等を飛ばす */
00661                 if( C_IsSpace( pLine[i] ) )
00662                     continue;
00663
00664                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '/' == pLine[i + 1] ){
00665                     ++i;
00666                     nMode = 10;
00667                     continue;
00668                 }else
00669                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '*' == pLine[i + 1] ){
00670                     ++i;
00671                     nMode = 8;
00672                     continue;
00673                 }else
00674                 if( '\'' == pLine[i] ){
00675                     nMode = 20;
00676                     continue;
00677                 }else
00678                 if( '"' == pLine[i] ){
00679                     nMode = 21;
00680                     continue;
00681                 }else
00682
00683                 // 2002/10/27 frozen ここから
00684                 if( '{' == pLine[i] )
00685                 {
00686                     int nItemNameLen;
00687                     if( nNestLevel_func !=0)
00688                         ++nNestLevel_func;
00689                     else if(
00690                             (nMode2 & M2_AFTER_ITEM) != 0  &&
00691                             nNestLevel_global < nNamespaceNestMax &&
00692                             (nNamespaceLen[nNestLevel_global] +  (nItemNameLen = wcslen(szItemName)) + 10 + 1) < nNamespaceLenMax)
00693                     // ３番目の(&&の後の)条件
00694                     // バッファが足りない場合は項目の追加を行わない。
00695                     // +10は追加する文字列の最大長(追加する文字列は"::定義位置"が最長)
00696                     // +1は終端NUL文字
00697                     {
00698                         wcscpy( &szNamespace[nNamespaceLen[nNestLevel_global]] , szItemName);
00699                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00700                         //  関数の後ろにconst, throw または初期化子があると
00701                         //  M2_KR_FUNCに遷移して，';'が見つからないとその状態のまま
00702                         //  中括弧に遭遇する．
00703                         if( nMode2 == M2_FUNC_NAME_END || nMode2 == M2_KR_FUNC )
00704                             ++ nNestLevel_func;
00705                         else
00706                         {
00707                             ++ nNestLevel_global;
00708                             nNamespaceLen[nNestLevel_global] = nNamespaceLen[nNestLevel_global-1] + nItemNameLen;
00709                             if( nItemFuncId == 7)
00710                                 wcscpy(&szNamespace[nNamespaceLen[nNestLevel_global]],L"::定義位置");
00711                             else
00712                             {
00713                                 szNamespace[nNamespaceLen[nNestLevel_global]] = L'\0';
00714                                 szNamespace[nNamespaceLen[nNestLevel_global]+1] = L':';
00715                                 if(bVisibleMemberFunc == false && nNestPoint_class == 0)
00716                                     nNestPoint_class = nNestLevel_global;
00717                             }
00718                         }
00719                         /*
00720                           カーソル位置変換
00721                           物理位置(行頭からのバイト数、折り返し無し行位置)
00722                           →
00723                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00724                         */
00725                         CLayoutPoint ptPosXY;
00726                         m_cLayoutMgr.LogicToLayout(
00727                             CLogicPoint(0, nItemLine - 1),
00728                             &ptPosXY
00729                         );
00730                         pcFuncInfoArr->AppendData( nItemLine, ptPosXY.GetY2() + CLayoutInt(1) , szNamespace, nItemFuncId);
00731                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00732                         if( nMode2 != M2_FUNC_NAME_END && nMode2 != M2_KR_FUNC )
00733                         {
00734                             szNamespace[nNamespaceLen[nNestLevel_global]] = L':';
00735                             nNamespaceLen[nNestLevel_global] += 2;
00736                         }
00737                     }
00738                     else
00739                     {
00740                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00741                         if(nMode2 == M2_FUNC_NAME_END || nMode2 == M2_KR_FUNC)
00742                             ++ nNestLevel_func;
00743                         else
00744                         {
00745                             ++ nNestLevel_global;
00746                             if ( nNestLevel_global <= nNamespaceNestMax )
00747                                 nNamespaceLen[nNestLevel_global]=nNamespaceLen[nNestLevel_global-1];
00748                         }
00749                     }
00750                     // bCppInitSkip = false;    //  Mar. 4, 2001 genta
00751                     nMode = 0;
00752                     nMode2 = M2_NORMAL;
00753                     // nNestLevel2 = 0;
00754                     continue;
00755                 }else
00756                 // 2002/10/27 frozen ここまで
00757
00758                 if( '}' == pLine[i] ){
00759                     //  2002/10/27 frozen ここから
00760 //                  nNestLevel2 = 0;
00761                     if(nNestLevel_func == 0)
00762                     {
00763                         if(nNestLevel_global!=0)
00764                         {
00765                             if(nNestLevel_global == nNestPoint_class)
00766                                 nNestPoint_class = 0;
00767                             --nNestLevel_global;
00768                         }
00769                     }
00770                     else
00771                         --nNestLevel_func;
00772                     //  2002/10/27 frozen ここまで
00773                     nMode = 0;
00774                     nMode2 = M2_NORMAL;
00775                     continue;
00776                 }else
00777                 if( '(' == pLine[i] ){
00778                     //  2002/10/27 frozen ここから
00779 //                  if( nNestLevel == 0 && !bCppInitSkip ){
00780 //                      wcscpy( szFuncName, szWordPrev );
00781 //                      nFuncLine = nLineCount + 1;
00782 //                      nNestLevel2 = 1;
00783 //                  }
00784 //                  nMode = 0;
00785                     if( nNestLevel_func == 0 && (nMode2 == M2_NORMAL || nMode2 == M2_NAMESPACE_SAVE || nMode2 == M2_NAMESPACE_END) )
00786                     {
00787                         if( wcscmp(szWordPrev, L"__declspec") == 0 ) {continue;}
00788                         if(nNestLevel_fparam==0)
00789                         {
00790                             wcscpy( szItemName, szWordPrev);
00791                             nItemLine = nLineCount + CLogicInt(1);
00792                         }
00793                         ++ nNestLevel_fparam;
00794                     }
00795                     //  2002/10/27 frozen ここまで
00796
00797                     //  From Here Jan. 30, 2005 genta
00798                     if( nNestLevel_func == 0 && nMode2 == M2_KR_FUNC ){
00799                         //  throwなら (例外の型,...) を読み飛ばす
00800                         if(nNestLevel_fparam==0)
00801                             ++ nNestLevel_fparam;
00802                     }
00803                     //  To Here Jan. 30, 2005 genta
00804                     continue;
00805                 }else
00806                 if( ')' == pLine[i] ){
00807                     //  2002/10/27 frozen ここから
00808 //                  if( 1 == nNestLevel2 ){
00809 //                      nNestLevel2 = 2;
00810 //                  }
00811 //                  nMode = 0;
00812                     if( nNestLevel_fparam > 0)
00813                     {
00814                         --nNestLevel_fparam;
00815                         if( nNestLevel_fparam == 0)
00816                         {
00817                             nMode2 = M2_FUNC_NAME_END;
00818                             nItemFuncId = 2;
00819                         }
00820                     }
00821                     //  2002/10/27 frozen ここまで
00822                     continue;
00823                 }else
00824                 if( ';' == pLine[i] ){
00825                     //  2002/10/27 frozen ここから
00826                     if( nMode2 == M2_KR_FUNC )
00827                     {
00828                         //  Jan. 30, 2005 genta 関数後の const, throwの後ろの
00829                         //  ';'はK&R形式宣言の終わりでなく関数宣言の終わり
00830                         if( wcscmp( szWordPrev, L"const" ) == 0 ||
00831                             wcscmp( szWordPrev, L"throw" ) == 0 ){
00832                                 nMode2 = M2_FUNC_NAME_END;
00833                                 //  すぐ下のif文に引っかかりますように
00834                         }
00835                         else {
00836                             // zenryaku K&Rスタイルの関数宣言の終了後 M2_FUNC_NAME_END にもどす
00837                             nMode2 = M2_FUNC_NAME_END;
00838                             continue;
00839                         }
00840                     } //    Jan. 30, 2005 genta K&R処理に引き続いて宣言処理も行う．
00841                     if( nMode2 == M2_FUNC_NAME_END &&
00842                         nNestLevel_global < nNamespaceNestMax &&
00843                         (nNamespaceLen[nNestLevel_global] + wcslen(szItemName)) < nNamespaceLenMax &&
00844                         nNestPoint_class == 0)
00845                     // ３番目の(&&の後の)条件
00846                     // バッファが足りない場合は項目の追加を行わない。
00847                     {
00848                         wcscpy( &szNamespace[nNamespaceLen[ nNestLevel_global]] , szItemName);
00849
00850                         nItemFuncId = 1;
00851                         /*
00852                           カーソル位置変換
00853                           物理位置(行頭からのバイト数、折り返し無し行位置)
00854                           →
00855                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00856                         */
00857                         CLayoutPoint ptPosXY;
00858                         m_cLayoutMgr.LogicToLayout(
00859                             CLogicPoint(0, nItemLine - 1),
00860                             &ptPosXY
00861                         );
00862                         pcFuncInfoArr->AppendData( nItemLine, ptPosXY.GetY2() + CLayoutInt(1), szNamespace, nItemFuncId);
00863                     }
00864                     nMode2 = M2_NORMAL;
00865                     //  2002/10/27 frozen ここまで
00866                     nMode = 0;
00867                     continue;
00868                 }else if( nNestLevel_fparam == 0 ){
00869                     if( C_IsWordChar( pLine[i] ) ){
00870                         //  //  Mar. 15, 2000 genta
00871                         //  From Here
00872                         //  直前のwordの最後が::か，あるいは直後のwordの先頭が::なら
00873                         //  クラス限定子と考えて両者を接続する．
00874
00875                         {
00876                             int pos = wcslen( szWordPrev ) - 2;
00877                             if( //  前の文字列の末尾チェック
00878                                 ( pos > 0 &&    szWordPrev[pos] == L':' &&
00879                                 szWordPrev[pos + 1] == L':' ) ||
00880                                 //  次の文字列の先頭チェック
00881                                 ( i < nLineLen - 1 && pLine[i] == L':' &&
00882                                     pLine[i+1] == L':' )
00883                             ){
00884                                 //  前の文字列に続ける
00885                                 wcscpy( szWord, szWordPrev );
00886                                 nWordIdx = wcslen( szWord );
00887                             }
00888                             //  From Here Apr. 1, 2001 genta
00889                             //  operator new/delete 演算子の対応
00890                             else if( C_IsOperator( szWordPrev, pos + 2 ) ){
00891                                 //  スペースを入れて、前の文字列に続ける
00892                                 szWordPrev[pos + 2] = L' ';
00893                                 szWordPrev[pos + 3] = L'\0';
00894                                 wcscpy( szWord, szWordPrev );
00895                                 nWordIdx = wcslen( szWord );
00896                             }
00897                             //  To Here Apr. 1, 2001 genta
00898                             else{
00899                                 nWordIdx = 0;
00900                             }
00901                         }
00902                         //  wcscpy( szWordPrev, szWord );   不要？
00903                         //  To Here
00904
00905                         if( pLine[i] == L':')
00906                         {
00907                             if(nMode2 == M2_NAMESPACE_SAVE)
00908                             {
00909                                 if(szWord[0]!='\0')
00910                                     wcscpy( szItemName, szWord );
00911                                 nMode2 = M2_NAMESPACE_END;
00912                             }
00913                             else if( nMode2 == M2_TEMPLATE_SAVE)
00914                             {
00915                                 wcsncat( szItemName, szWord, nItemNameLenMax - wcslen(szItemName) );
00916                                 szItemName[ nItemNameLenMax - 1 ] = L'\0';
00917                                 nMode2 = M2_NAMESPACE_END;
00918                             }
00919                         }
00920
00921                         szWord[nWordIdx] = pLine[i];
00922                         szWord[nWordIdx + 1] = L'\0';
00923                         //  //  Mar. 15, 2000 genta
00924                         //  From Here
00925                         //  長さチェックは必須
00926                         if( nWordIdx < nMaxWordLeng ){
00927                             nMode = 1;
00928                         }
00929                         else{
00930                             nMode = 999;
00931                         }
00932                         //  To Here
00933                     }else{
00934                         //  Aug. 13, 2004 genta
00935                         //  szWordPrevが失われないうちにoperatorの判定を行う
00936                         //  operatorの判定は前にクラス名が付いている可能性があるので
00937                         //  専用の判定関数を使うべし．
00938                         //  operatorで無ければ=は代入なのでここは宣言文ではない．
00939                         if( pLine[i] == L'=' && nNestLevel_func == 0 && nNestLevel_fparam==0
00940                             && nMode2 == M2_NORMAL && ! C_IsOperator(szWordPrev,wcslen(szWordPrev)) ){
00941                             nMode2 = M2_AFTER_EQUAL;
00942                         }
00943                         wcscpy( szWordPrev, szWord );
00944                         nWordIdx = 0;
00945                         szWord[nWordIdx] = pLine[i];
00946                         szWord[nWordIdx + 1] = L'\0';
00947                         nMode = 2;
00948
00949                         // 2002/10/27 frozen ここから
00950                         if( nMode2 == M2_NAMESPACE_SAVE )
00951                         {
00952                             if( pLine[i] == L'>' || pLine[i] == L',' || pLine[i] == L'=')
00953                                 // '<' の前に '>' , ',' , '=' があったので、おそらく
00954                                 // 前にあった"class"はテンプレートパラメータの型を表していたと考えられる。
00955                                 // よって、クラス名の調査は終了。
00956                                 // '>' はテンプレートパラメータの終了
00957                                 // ',' はテンプレートパラメータの区切り
00958                                 // '=' はデフォルトテンプレートパラメータの指定
00959                                 nMode2 = M2_NORMAL;
00960                             else if( pLine[i] == L'<' )
00961                                 nMode2 = M2_TEMPLATE_SAVE;
00962                         }
00963
00964                         if( nMode2 == M2_TEMPLATE_SAVE)
00965                         {
00966                             int nItemNameLen = wcslen(szItemName);
00967                             if(nItemNameLen + 1 < nItemNameLenMax )
00968                             {
00969                                 szItemName[nItemNameLen] = pLine[i];
00970                                 szItemName[nItemNameLen + 1 ] = L'\0';
00971                             }
00972                         }
00973                         // 2002/10/27 frozen ここまで
00974                     }
00975                 }
00976             }
00977         }
00978     }
00979     return;
00980 }
Sakura-Editorに対してSat Nov 17 20:24:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_FuncList2.cpp

sakura_core

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 (wchar_t c)
bool | Python_IsWordChar (wchar_t c)

説明

Pythonアウトライン解析

作者:
genta
日付:
2007.02.24 新規作成

CEditDoc_FuncList2.cpp で定義されています。

関数

bool C_IsSpace ( wchar_t c ) [inline]

スペースの判定

CEditDoc_FuncList2.cpp の 46 行で定義されています。

参照先 WCODE::CR, と WCODE::LF.

bool Python_IsWordChar ( wchar_t c ) [inline]

関数に用いることができる文字かどうかの判定

日付:
2007.02.08 genta
覚え書き:
厳密には1文字目に数字を使うことは出来ないが， それは実行してみれば明らかにわかることなので そこまで厳密にチェックしない

CEditDoc_FuncList2.cpp の 64 行で定義されています。

参照元 CEditDoc::MakeFuncList_python().

Sakura-Editorに対してSat Nov 17 20:25:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_FuncList2.cpp ソースファイル

sakura_core

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( wchar_t c ){
00047     return (
00048         L'\t' == c ||
00049         L' ' == c ||
00050         WCODE::CR == c ||
00051         WCODE::LF == c
00052     );
00053 }
00054
00064 inline bool Python_IsWordChar( wchar_t c ){
00065     return ( L'_' == c ||
00066             (L'a' <= c && c <= L'z' )||
00067             (L'A' <= c && c <= L'Z' )||
00068             (L'0' <= c && c <= L'9' )
00069         );
00070 }
00071
00098 struct COutlinePython {
00099     enum {
00100         STATE_NORMAL,
00101         STATE_STRING,
00102         STATE_CONTINUE,
00103     } m_state;
00104
00105     int m_quote_char;
00106     bool m_raw_string;
00107     bool m_long_string;
00108
00109     COutlinePython();
00110
00111     /*  各状態における文字列スキャンを行う
00112         Scan*が呼びだされるときは既にその状態になっていることが前提．
00113         ある状態から別の状態に移るところまでを扱う．
00114         別の状態に移る判定がややこしいばあいは，Enter*として関数にする．
00115     */
00116     int ScanNormal( const wchar_t* data, int linelen, int start_offset );
00117     int ScanString( const wchar_t* data, int linelen, int start_offset );
00118     int EnterString( const wchar_t* data, int linelen, int start_offset );
00119     void DoScanLine( const wchar_t* data, int linelen, int start_offset );
00120
00121     bool IsLogicalLineTop(void) const { return STATE_NORMAL == m_state; }
00122 };
00123
00128 COutlinePython::COutlinePython()
00129     : m_state( STATE_NORMAL ),
00130     m_raw_string( false ),
00131     m_long_string( false )
00132 {
00133 }
00134
00156 int COutlinePython::EnterString( const wchar_t* data, int linelen, int start_offset )
00157 {
00158     assert( m_state != STATE_STRING );
00159
00160     int col = start_offset;
00161     //  文字列開始チェック
00162     if( data[ col ] == '\"' || data[ col ] == '\'' ){
00163         int quote_char = data[ col ];
00164         m_state = STATE_STRING;
00165         m_quote_char = quote_char;
00166         //  文字列の開始
00167         if( col >= 1 &&
00168             ( data[ col - 1 ] == 'r' || data[ col - 1 ] == 'R' )){
00169             //  厳密には直前がSHIFT_JISの2バイト目だと誤判定する可能性があるが
00170             //  そういう動かないコードは相手にしない
00171             m_raw_string = true;
00172         }
00173         else {
00174             m_raw_string = false;
00175         }
00176         if( col + 2 < linelen &&
00177             data[ col + 1 ] == quote_char &&
00178             data[ col + 2 ] == quote_char ){
00179                 m_long_string = true;
00180                 col += 2;
00181         }
00182         else {
00183             m_long_string = false;
00184         }
00185         ++col;
00186     }
00187     return col;
00188 }
00189
00210 int COutlinePython::ScanNormal( const wchar_t* data, int linelen, int start_offset )
00211 {
00212     assert( m_state == STATE_NORMAL || m_state == STATE_CONTINUE );
00213
00214     for( int col = start_offset; col < linelen; ++col ){
00215         int nCharChars = CNativeW::GetSizeOfChar( data, linelen, col );
00216         if( 1 < nCharChars ){
00217             col += (nCharChars - 1);
00218             continue;
00219         }
00220         //  コメント
00221         if( data[col] == '#' ){
00222             //  コメントは行末と同じ扱いなので
00223             //  わざわざ独立して扱う必要性が薄い
00224             //  ここで片を付けてしまおう
00225             m_state = STATE_NORMAL;
00226             break;
00227         }
00228         //  文字列
00229         else if( data[col] == '\"' || data[col] == '\'' ){
00230             return EnterString( data, linelen, col );
00231         }
00232         else if( data[col] == '\\' ){   //  継続行かもしれない
00233             //  CRかCRLFかLFで行末
00234             //  最終行には改行コードがないことがあるが，それ以降には何もないので影響しない
00235             if(
00236                 ( linelen - 2 == col &&
00237                 ( data[ col + 1 ] == WCODE::CR && data[ col + 2 ] == WCODE::LF )) ||
00238                 ( linelen - 1 == col &&
00239                 ( data[ col + 1 ] == WCODE::CR || data[ col + 1 ] == WCODE::LF ))
00240             ){
00241                 m_state = STATE_CONTINUE;
00242                 break;
00243             }
00244         }
00245     }
00246     return linelen;
00247 }
00248
00249
00275 int COutlinePython::ScanString( const wchar_t* data, int linelen, int start_offset )
00276 {
00277     assert( m_state == STATE_STRING );
00278
00279     int quote_char = m_quote_char;
00280     for( int col = start_offset; col < linelen; ++col ){
00281         int nCharChars = CNativeW::GetSizeOfChar( data, linelen, col );
00282         if( 1 < nCharChars ){
00283             col += (nCharChars - 1);
00284             continue;
00285         }
00286         //  rawモード以外ではエスケープをチェック
00287         //  rawモードでも継続行はチェック
00288         if( data[ col ] == '\\' && col + 1 < linelen ){
00289             wchar_t key = data[ col + 1 ];
00290             if( ! m_raw_string ){
00291                 if( key == L'\\' ||
00292                     key == L'\"' ||
00293                     key == L'\'' ){
00294                     ++col;
00295                     //  ignore
00296                     continue;
00297                 }
00298             }
00299             if( key == WCODE::CR || key == WCODE::LF ){
00300                 // \r\nをまとめて\nとして扱う必要がある
00301                 if( col + 1 >= linelen ||
00302                     data[ col + 2 ] == key ){
00303                     // 本当に行末
00304                     ++col;
00305                     continue;
00306                 }
00307                 else if( data[ col + 2 ] == WCODE::CR || data[ col + 2 ] == WCODE::LF ){
00308                     col += 2;   //   CRLF or LFCR
00309                 }
00310             }
00311         }
00312         //  short string + 改行の場合はエラーから強制復帰
00313         else if( data[ col ] == WCODE::CR || data[ col ] == WCODE::LF ){
00314             //あとで
00315             if( ! m_long_string ){
00316                 //  文字列の末尾を発見した
00317                 m_state = STATE_NORMAL;
00318                 return col + 1;
00319             }
00320         }
00321         //  引用符が見つかったら終了チェック
00322         else if( data[ col ] == quote_char ){
00323             if( ! m_long_string ){
00324                 //  文字列の末尾を発見した
00325                 m_state = STATE_NORMAL;
00326                 return col + 1;
00327             }
00328             //  long stringの場合
00329             if( col + 2 < linelen &&
00330                 data[ col + 1 ] == quote_char &&
00331                 data[ col + 2 ] == quote_char ){
00332                 m_state = STATE_NORMAL;
00333                 return col + 3;
00334             }
00335         }
00336     }
00337     return linelen;
00338 }
00339
00356 void COutlinePython::DoScanLine( const wchar_t* data, int linelen, int start_offset )
00357 {
00358     int col = start_offset;
00359     while( col < linelen ){
00360         if( STATE_NORMAL == m_state || STATE_CONTINUE == m_state){
00361             col = ScanNormal( data, linelen, col );
00362         }
00363         else if( STATE_STRING == m_state ){
00364             col = ScanString( data, linelen, col );
00365         }
00366         else {
00367             //  ありえないエラー
00368             return;
00369         }
00370     }
00371 }
00372
00373
00401 void CEditDoc::MakeFuncList_python( CFuncInfoArr* pcFuncInfoArr )
00402 {
00403     CLogicInt   nLineLen;
00404     CLogicInt   nLineCount;
00405
00406     COutlinePython python_analyze_state;
00407
00408     const int MAX_DEPTH = 10;
00409
00410     int indent_level[ MAX_DEPTH ]; // 各レベルのインデント桁位置()
00411     indent_level[0] = 0;    // do as python does.
00412     int depth_index = 0;
00413
00414     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00415         const wchar_t*  pLine;
00416         int depth;  //  indent depth
00417         CLogicInt col = CLogicInt(0);   //  current working column position
00418
00419         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00420
00421         if( python_analyze_state.IsLogicalLineTop() ){
00422             //  indent check
00423             //  May 15, 2007 genta 桁位置colはデータオフセットdと独立にしないと
00424             //  文字列比較がおかしくなる
00425             for( depth = 0, col = CLogicInt(0); col < nLineLen; ++col ){
00426                 //  calculate indent level
00427                 if( pLine[col] == L' ' ){
00428                     ++depth;
00429                 }
00430                 else if( pLine[col] == L'\t' ){
00431                     depth = ( depth + 8 ) & ~7;
00432                 }
00433                 else {
00434                     break;
00435                 }
00436             }
00437             if( pLine[col] == L'\r' ||
00438                 pLine[col] == L'\n' ||
00439                 pLine[col] == L'\0' ||
00440                 pLine[col] == L'#' ){
00441                 //  blank line or comment line are ignored
00442                 continue;
00443             }
00444
00445             int nItemFuncId = 0;    // topic type
00446             if( nLineLen - col > CLogicInt(3 + 1) && wcsncmp_literal( pLine + col, L"def" ) == 0 ){
00447                 //  "def"
00448                 nItemFuncId = 1;
00449                 col += CLogicInt(3); // strlen( def )
00450             }
00451             else if( nLineLen - col > CLogicInt(5 + 1) && wcsncmp_literal( pLine + col, L"class" ) == 0 ){
00452                 // class
00453                 nItemFuncId = 4;
00454                 col += CLogicInt(5); // strlen( class )
00455             }
00456             else {
00457                 python_analyze_state.DoScanLine( pLine, nLineLen, col );
00458                 continue;
00459             }
00460
00461             //  2006.02.28 genta 区切りチェック
00462             //  define, classic等が対象にならないように，後ろにスペースかタブが
00463             //  続くことを確認．
00464             //  本当は継続行として次の行に関数名を書くことも文法上は可能だが
00465             //  複雑になるので対応しない．
00466             int c = pLine[col];
00467             if(  c != L' ' && c != L'\t' ){
00468                 python_analyze_state.DoScanLine( pLine, nLineLen, col );
00469                 continue;
00470             }
00471
00472             //  adjust current depth level
00473             //  関数内部の実行文のさらに奧に関数があるケースを考慮
00474             //  def/class以外のインデントは記録しない方がいいので
00475             //  見出し行と確定してからインデントレベルの判定を行う
00476             int i;
00477             for( i = depth_index; i >= 0; --i ){
00478                 if( depth == indent_level[ i ] ){
00479                     depth_index = i;
00480                     break;
00481                 }
00482                 else if( depth > indent_level[ i ] && i < MAX_DEPTH - 1 ){
00483                     depth_index = i + 1;
00484                     indent_level[ depth_index ] = depth;
00485                     break;
00486                 }
00487             }
00488
00489             //  2007.02.08 genta 手抜きコメント
00490             //  厳密には，ここで継続行を入れることが可能だが，
00491             //  そんなレアなケースは考慮しない
00492
00493             //  skip whitespace
00494             while( col < nLineLen && C_IsSpace( pLine[col] ))
00495                 ++col;
00496
00497             int w_end;
00498             for( w_end = col; w_end < nLineLen
00499                     && Python_IsWordChar( pLine[w_end] ); ++w_end )
00500                 ;
00501
00502             //  2007.02.08 genta 手抜きコメント
00503             //  厳密には，この後に括弧に囲まれた引数あるいは継承元クラスが
00504             //  括弧に囲まれて入り，さらに:と続くが
00505             //  継続行の可能性があるので，そこまでチェックしない
00506
00507             //  ここまでで登録要件OKとみなす
00508
00509             //  このあたりは暫定
00510
00511             wchar_t szWord[512];    // 適当に大きな数(pythonでは名前の長さの上限があるのか？)
00512             int len = w_end - col;
00513
00514             if( len > 0 ){
00515                 if( len > _countof( szWord ) - 1){
00516                     len = _countof( szWord ) - 1;
00517                 }
00518                 wcsncpy( szWord, pLine + col, len );
00519                 szWord[ len ] = L'\0';
00520             }
00521             else {
00522                 wcscpy( szWord, L"名称未定" );
00523                 len = 8;
00524             }
00525             if( nItemFuncId == 4  ){
00526                 if( _countof( szWord ) - 8  < len ){
00527                     //  後ろを削って入れる
00528                     len = _countof( szWord ) - 8;
00529                 }
00530                 // class
00531                 wcscpy( szWord + len, L" クラス" );
00532             }
00533
00534             /*
00535               カーソル位置変換
00536               物理位置(行頭からのバイト数、折り返し無し行位置)
00537               →
00538               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00539             */
00540             CLayoutPoint ptPosXY;
00541             m_cLayoutMgr.LogicToLayout(
00542                 CLogicPoint(CLogicInt(0), nLineCount),
00543                 &ptPosXY
00544             );
00545             pcFuncInfoArr->AppendData(
00546                 nLineCount + CLogicInt(1),
00547                 ptPosXY.GetY2() + CLayoutInt(1),
00548                 szWord,
00549                 nItemFuncId,
00550                 depth_index
00551             );
00552             col = CLogicInt(w_end); // クラス・関数定義の続きはここから
00553         }
00554         python_analyze_state.DoScanLine( pLine, nLineLen, col );
00555     }
00556 }
Sakura-Editorに対してSat Nov 17 20:24:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_new.cpp

sakura_core

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 "my_icmp.h"
#include "mymessage.h"
#include "CControlTray.h"
#include "util/file.h"

CEditDoc_new.cppのインクルード依存関係図

ソースコードを見る。

説明

文書関連情報の管理

作者:
Norio Nakatani
日付:
aroka 警告対策で変数除去

CEditDoc_new.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditDoc_new.cpp ソースファイル

sakura_core

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 "my_icmp.h" // Nov. 29, 2002 genta/moca
00029 #include "mymessage.h"  //  Oct. 9, 2004 genta
00030 #include "CControlTray.h"   //  Oct. 9, 2004 genta
00031 #include "util/file.h"
00032
00033 /* Java関数リスト作成 */
00034 void CEditDoc::MakeFuncList_Java( CFuncInfoArr* pcFuncInfoArr )
00035 {
00036     const wchar_t*  pLine;
00037     CLogicInt   nLineLen;
00038     int         i;
00039     int         nNestLevel;
00040     int         nCharChars;
00041     wchar_t     szWordPrev[100];
00042     wchar_t     szWord[100];
00043     int         nWordIdx = 0;
00044     int         nMaxWordLeng = 70;
00045     int         nMode;
00046     wchar_t     szFuncName[80];
00047     CLogicInt   nFuncLine = CLogicInt(0);
00048     int         nFuncId;
00049     int         nFuncNum;
00050     wchar_t     szClass[1024];
00051
00052     int         nClassNestArr[16];
00053     int         nClassNestArrNum;
00054     int         nNestLevel2Arr[16];
00055
00056     nNestLevel = 0;
00057     szWordPrev[0] = L'\0';
00058     szWord[nWordIdx] = L'\0';
00059     nMode = 0;
00060     nNestLevel2Arr[0] = 0;
00061     nFuncNum = 0;
00062     szClass[0] = L'\0';
00063     nClassNestArrNum = 0;
00064     CLogicInt       nLineCount;
00065     for( nLineCount = CLogicInt(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 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00071             if( 1 < nCharChars ){
00072                 i += (nCharChars - 1);
00073                 continue;
00074             }
00075
00076             /* エスケープシーケンスは常に取り除く */
00077             if( L'\\' == pLine[i] ){
00078                 ++i;
00079             }else
00080             /* シングルクォーテーション文字列読み込み中 */
00081             if( 20 == nMode ){
00082                 if( L'\'' == pLine[i] ){
00083                     nMode = 0;
00084                     continue;
00085                 }else{
00086                 }
00087             }else
00088             /* ダブルクォーテーション文字列読み込み中 */
00089             if( 21 == nMode ){
00090                 if( L'"' == pLine[i] ){
00091                     nMode = 0;
00092                     continue;
00093                 }else{
00094                 }
00095             }else
00096             /* コメント読み込み中 */
00097             if( 8 == nMode ){
00098                 if( i < nLineLen - 1 && L'*' == pLine[i] &&  L'/' == pLine[i + 1] ){
00099                     ++i;
00100                     nMode = 0;
00101                     continue;
00102                 }else{
00103                 }
00104             }
00105             /* 単語読み込み中 */
00106             else if( 1 == nMode ){
00107                 if( L'_' == pLine[i] ||
00108                     L':' == pLine[i] ||
00109                     L'~' == pLine[i] ||
00110                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00111                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00112                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
00113                     L'.' == 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                 }
00124 else{
00125                     /* クラス宣言部分を見つけた */
00126                     //  Oct. 10, 2002 genta interfaceも対象に
00127                     if( 0 == wcscmp( L"class", szWordPrev ) ||
00128                         0 == wcscmp( L"interface", szWordPrev )
00129                      ){
00130                         nClassNestArr[nClassNestArrNum] = nNestLevel;
00131                         ++nClassNestArrNum;
00132                         if( 0 < nNestLevel  ){
00133                             wcscat( szClass, L"\\" );
00134                         }
00135                         wcscat( szClass, szWord );
00136
00137                         nFuncId = 0;
00138                         ++nFuncNum;
00139                         /*
00140                           カーソル位置変換
00141                           物理位置(行頭からのバイト数、折り返し無し行位置)
00142                           →
00143                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00144                         */
00145                         CLogicPoint  ptPosXY_Logic = CLogicPoint(CLogicInt(0), nLineCount);
00146                         CLayoutPoint ptPosXY_Layout;
00147                         m_cLayoutMgr.LogicToLayout(
00148                             ptPosXY_Logic,
00149                             &ptPosXY_Layout
00150                         );
00151                         wchar_t szWork[256];
00152                         auto_sprintf( szWork, L"%ls::%ls", szClass, L"定義位置" );
00153                         pcFuncInfoArr->AppendData( ptPosXY_Logic.GetY2() + CLogicInt(1), ptPosXY_Layout.GetY2() + CLayoutInt(1), szWork, nFuncId ); //2007.10.09 kobake レイアウト・ロジックの混在バグ修正
00154                     }
00155
00156                     nMode = 0;
00157                     i--;
00158                     continue;
00159                 }
00160             }else
00161             /* 記号列読み込み中 */
00162             if( 2 == nMode ){
00163                 if( L'_' == pLine[i] ||
00164                     L':' == pLine[i] ||
00165                     L'~' == pLine[i] ||
00166                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00167                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00168                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
00169                     L'\t' == pLine[i] ||
00170                     L' ' == pLine[i] ||
00171                     WCODE::CR == pLine[i] ||
00172                     WCODE::LF == pLine[i] ||
00173                     L'{' == pLine[i] ||
00174                     L'}' == pLine[i] ||
00175                     L'(' == pLine[i] ||
00176                     L')' == pLine[i] ||
00177                     L';' == pLine[i]    ||
00178                     L'\'' == pLine[i] ||
00179                     L'"' == pLine[i] ||
00180                     L'/' == pLine[i] ||
00181                     L'.' == pLine[i]
00182                 ){
00183                     nMode = 0;
00184                     i--;
00185                     continue;
00186                 }else{
00187                 }
00188             }else
00189             /* 長過ぎる単語無視中 */
00190             if( 999 == nMode ){
00191                 /* 空白やタブ記号等を飛ばす */
00192                 if( L'\t' == pLine[i] ||
00193                     L' ' == pLine[i] ||
00194                     WCODE::CR == pLine[i] ||
00195                     WCODE::LF == pLine[i]
00196                 ){
00197                     nMode = 0;
00198                     continue;
00199                 }
00200             }else
00201             /* ノーマルモード */
00202             if( 0 == nMode ){
00203                 /* 空白やタブ記号等を飛ばす */
00204                 if( L'\t' == pLine[i] ||
00205                     L' ' == pLine[i] ||
00206                     WCODE::CR == pLine[i] ||
00207                     WCODE::LF == pLine[i]
00208                 ){
00209                     continue;
00210                 }else
00211                 if( i < nLineLen - 1 && L'/' == pLine[i] &&  L'/' == pLine[i + 1] ){
00212                     break;
00213                 }else
00214                 if( i < nLineLen - 1 && L'/' == pLine[i] &&  L'*' == pLine[i + 1] ){
00215                     ++i;
00216                     nMode = 8;
00217                     continue;
00218                 }else
00219                 if( L'\'' == pLine[i] ){
00220                     nMode = 20;
00221                     continue;
00222                 }else
00223                 if( L'"' == pLine[i] ){
00224                     nMode = 21;
00225                     continue;
00226                 }else
00227                 if( L'{' == pLine[i] ){
00228                     if( 0 < nClassNestArrNum && 2 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00229                         //  Oct. 10, 2002 genta
00230                         //  メソッド中でさらにメソッドを定義することはないので
00231                         //  ネストレベル判定追加 class/interfaceの直下の場合のみ判定する
00232                         if( nClassNestArr[nClassNestArrNum - 1] == nNestLevel - 1
00233                          && 0 != wcscmp( L"sizeof", szFuncName )
00234                          && 0 != wcscmp( L"if", szFuncName )
00235                          && 0 != wcscmp( L"for", szFuncName )
00236                          && 0 != wcscmp( L"do", szFuncName )
00237                          && 0 != wcscmp( L"while", szFuncName )
00238                          && 0 != wcscmp( L"catch", szFuncName )
00239                          && 0 != wcscmp( L"switch", szFuncName )
00240                          && 0 != wcscmp( L"return", szFuncName )
00241                         ){
00242                             nFuncId = 2;
00243                             ++nFuncNum;
00244                             /*
00245                               カーソル位置変換
00246                               物理位置(行頭からのバイト数、折り返し無し行位置)
00247                               →
00248                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00249                             */
00250                             CLayoutPoint ptPosXY;
00251                             m_cLayoutMgr.LogicToLayout(
00252                                 CLogicPoint(CLogicInt(0), nFuncLine - CLogicInt(1)),
00253                                 &ptPosXY
00254                             );
00255                             wchar_t szWork[256];
00256                             auto_sprintf( szWork, L"%ls::%ls", szClass, szFuncName );
00257                             pcFuncInfoArr->AppendData( nFuncLine, ptPosXY.GetY2() + CLayoutInt(1), szWork, nFuncId );
00258                         }
00259                     }
00260                     if( 0 < nClassNestArrNum ){
00261                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00262                     }
00263                     ++nNestLevel;
00264                     nMode = 0;
00265                     continue;
00266                 }else
00267                 if( L'}' == pLine[i] ){
00268                     if( 0 < nClassNestArrNum ){
00269                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00270                     }
00271
00272                     nNestLevel--;
00273                     if( 0 < nClassNestArrNum &&
00274                         nClassNestArr[nClassNestArrNum - 1] == nNestLevel
00275                     ){
00276                         nClassNestArrNum--;
00277                         int k;
00278                         for( k = wcslen( szClass ) - 1; k >= 0; k-- ){
00279                             if( L'\\' == szClass[k] ){
00280                                 break;
00281                             }
00282                         }
00283                         if( 0 > k ){
00284                             k = 0;
00285                         }
00286                         szClass[k] = L'\0';
00287                     }
00288                     nMode = 0;
00289                     continue;
00290                 }else
00291                 if( L'(' == pLine[i] ){
00292                     if( 0 < nClassNestArrNum /*nNestLevel == 1*/ &&
00293                         0 != wcscmp( L"new", szWordPrev )
00294                     ){
00295                         wcscpy( szFuncName, szWord );
00296                         nFuncLine = nLineCount + CLogicInt(1);
00297                         if( 0 < nClassNestArrNum ){
00298                             nNestLevel2Arr[nClassNestArrNum - 1] = 1;
00299                         }
00300                     }
00301                     nMode = 0;
00302                     continue;
00303                 }else
00304                 if( L')' == pLine[i] ){
00305                     int         k;
00306                     const wchar_t*  pLine2;
00307                     CLogicInt       nLineLen2;
00308                     CLogicInt   nLineCount2;
00309                     nLineCount2 = nLineCount;
00310                     pLine2 = pLine;
00311                     nLineLen2 = nLineLen;
00312                     k = i + 1;
00313                     BOOL        bCommentLoop;
00314                     bCommentLoop = FALSE;
00315                 loop_is_func:;
00316                     for( ; k < nLineLen2; ++k ){
00317                         if( !bCommentLoop ){
00318                             if( pLine2[k] != L' ' && pLine2[k] != WCODE::TAB && pLine2[k] != WCODE::CR && pLine2[k] != WCODE::LF ){
00319                                 if( k + 1 < nLineLen2 && pLine2[k] == L'/' && pLine2[k + 1] == L'*' ){
00320                                     bCommentLoop = TRUE;
00321                                     ++k;
00322                                 }else
00323                                 if( k + 1 < nLineLen2 && pLine2[k] == L'/' && pLine2[k + 1] == L'/' ){
00324                                     k = nLineLen2 + 1;
00325                                     break;
00326                                 }else{
00327                                     break;
00328                                 }
00329                             }
00330                         }else{
00331                             if( k + 1 < nLineLen2 && pLine2[k] == L'*' && pLine2[k + 1] == L'/' ){
00332                                 bCommentLoop = FALSE;
00333                                 ++k;
00334                             }
00335                         }
00336                     }
00337                     if( k >= nLineLen2 ){
00338                         k = 0;
00339                         ++nLineCount2;
00340                         pLine2 = m_cDocLineMgr.GetLineStr( nLineCount2, &nLineLen2 );
00341                         if( NULL != pLine2 ){
00342                             goto loop_is_func;
00343                         }
00344                         if( 0 < nClassNestArrNum ){
00345                             nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00346                         }
00347                     }else{
00348                         //  Oct. 10, 2002 genta
00349                         //  abscract にも対応
00350                         if( pLine2[k] == L'{' || pLine2[k] == L';' ||
00351                             __iscsym( pLine2[k] ) ){
00352                             if( 0 < nClassNestArrNum ){
00353                                 if( 1 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00354                                     nNestLevel2Arr[nClassNestArrNum - 1] = 2;
00355                                 }
00356                             }
00357                         }else{
00358                             if( 0 < nClassNestArrNum ){
00359                                 nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00360                             }
00361                         }
00362                     }
00363                     nMode = 0;
00364                     continue;
00365                 }else
00366                 if( L';' == pLine[i] ){
00367                     if( 0 < nClassNestArrNum && 2 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00368                         //  Oct. 10, 2002 genta
00369                         // 関数の中で別の関数の宣言部を使うことって，Javaであるの？
00370                         if( nClassNestArr[nClassNestArrNum - 1] == nNestLevel - 1
00371                          && 0 != wcscmp( L"sizeof", szFuncName )
00372                          && 0 != wcscmp( L"if", szFuncName )
00373                          && 0 != wcscmp( L"for", szFuncName )
00374                          && 0 != wcscmp( L"do", szFuncName )
00375                          && 0 != wcscmp( L"while", szFuncName )
00376                          && 0 != wcscmp( L"catch", szFuncName )
00377                          && 0 != wcscmp( L"switch", szFuncName )
00378                          && 0 != wcscmp( L"return", szFuncName )
00379                         ){
00380                             nFuncId = 1;
00381                             ++nFuncNum;
00382                             /*
00383                               カーソル位置変換
00384                               物理位置(行頭からのバイト数、折り返し無し行位置)
00385                               →
00386                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00387                             */
00388                             CLayoutPoint ptPosXY;
00389                             m_cLayoutMgr.LogicToLayout(
00390                                 CLogicPoint(CLogicInt(0), nFuncLine - CLogicInt(1)),
00391                                 &ptPosXY
00392                             );
00393                             wchar_t szWork[256];
00394                             auto_sprintf( szWork, L"%ls::%ls", szClass, szFuncName );
00395                             pcFuncInfoArr->AppendData( nFuncLine, ptPosXY.GetY2() + CLayoutInt(1), szWork, nFuncId );
00396                         }
00397                     }
00398                     if( 0 < nClassNestArrNum ){
00399                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00400                     }
00401                     nMode = 0;
00402                     continue;
00403                 }else{
00404                     if( L'_' == pLine[i] ||
00405                         L':' == pLine[i] ||
00406                         L'~' == pLine[i] ||
00407                         (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00408                         (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00409                         (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
00410                         L'.' == pLine[i]
00411                     ){
00412                         wcscpy( szWordPrev, szWord );
00413                         nWordIdx = 0;
00414                         szWord[nWordIdx] = pLine[i];
00415                         szWord[nWordIdx + 1] = L'\0';
00416                         nMode = 1;
00417                     }else{
00418                         nMode = 0;
00419                     }
00420                 }
00421             }
00422         }
00423     }
00424 #ifdef _DEBUG
00425     pcFuncInfoArr->DUMP();
00426 #endif
00427     return;
00428 }
00429
00430 //  From Here Aug. 14, 2000 genta
00431 //
00432 //  書き換えが禁止されているかどうか
00433 //  戻り値: true: 禁止 / false: 許可
00434 //
00435 bool CEditDoc::IsModificationForbidden( int nCommand )
00436 {
00437     if( m_bReadOnly == FALSE && //  読みとり専用でも
00438         !( SHAREMODE_NOT_EXCLUSIVE != m_nFileShareModeOld && m_hLockedFile == NULL ) )  //  上書き禁止でもなければ
00439         return false;           //  常に書き換え許可
00440
00441     //  上書き禁止モードの場合
00442     //  暫定Case文: 実際にはもっと効率の良い方法を使うべき
00443     switch( nCommand ){
00444     //  ファイルを書き換えるコマンドは使用禁止
00445     case F_WCHAR:
00446     case F_IME_CHAR:
00447     case F_DELETE:
00448     case F_DELETE_BACK:
00449     case F_WordDeleteToEnd:
00450     case F_WordDeleteToStart:
00451     case F_WordDelete:
00452     case F_WordCut:
00453     case F_LineDeleteToStart:
00454     case F_LineDeleteToEnd:
00455     case F_LineCutToStart:
00456     case F_LineCutToEnd:
00457     case F_DELETE_LINE:
00458     case F_CUT_LINE:
00459     case F_DUPLICATELINE:
00460     case F_INDENT_TAB:
00461     case F_UNINDENT_TAB:
00462     case F_INDENT_SPACE:
00463     case F_UNINDENT_SPACE:
00464     case F_CUT:
00465     case F_PASTE:
00466     case F_INS_DATE:
00467     case F_INS_TIME:
00468     case F_CTRL_CODE_DIALOG:    //@@@ 2002.06.02 MIK
00469     case F_INSTEXT_W:
00470     case F_ADDTAIL_W:
00471     case F_PASTEBOX:
00472     case F_REPLACE_DIALOG:
00473     case F_REPLACE:
00474     case F_REPLACE_ALL:
00475     case F_CODECNV_EMAIL:
00476     case F_CODECNV_EUC2SJIS:
00477     case F_CODECNV_UNICODE2SJIS:
00478     case F_CODECNV_UNICODEBE2SJIS:
00479     case F_CODECNV_SJIS2JIS:
00480     case F_CODECNV_SJIS2EUC:
00481     case F_CODECNV_UTF82SJIS:
00482     case F_CODECNV_UTF72SJIS:
00483     case F_CODECNV_SJIS2UTF7:
00484     case F_CODECNV_SJIS2UTF8:
00485     case F_CODECNV_AUTO2SJIS:
00486     case F_TOLOWER:
00487     case F_TOUPPER:
00488     case F_TOHANKAKU:
00489     case F_TOHANKATA:               // 2002/08/29 ai
00490     case F_TOZENEI:                 // 2001/07/30 Misaka
00491     case F_TOHANEI:
00492     case F_TOZENKAKUKATA:
00493     case F_TOZENKAKUHIRA:
00494     case F_HANKATATOZENKAKUKATA:
00495     case F_HANKATATOZENKAKUHIRA:
00496     case F_TABTOSPACE:
00497     case F_SPACETOTAB:  //---- Stonee, 2001/05/27
00498     case F_HOKAN:
00499     case F_CHGMOD_INS:
00500     case F_LTRIM:       // 2001.12.03 hor
00501     case F_RTRIM:       // 2001.12.03 hor
00502     case F_SORT_ASC:    // 2001.12.11 hor
00503     case F_SORT_DESC:   // 2001.12.11 hor
00504     case F_MERGE:       // 2001.12.11 hor
00505     case F_UNDO:        // 2007.10.12 genta
00506     case F_REDO:        // 2007.10.12 genta
00507 //      ::MessageBoxA( GetSplitterHwnd(), "Operation is forbidden.", "DEBUG", MB_OK | MB_ICONEXCLAMATION );
00508         return true;
00509     }
00510     return false;   //  デフォルトで書き換え許可
00511 }
00512 //  To Here Aug. 14, 2000 genta
00513
00514 //  From Here Aug. 21, 2000 genta
00515 //
00516 //  自動保存を行うかどうかのチェック
00517 //
00518 void CEditDoc::CheckAutoSave(void)
00519 {
00520     if( m_cAutoSave.CheckAction() ){
00521         //  上書き保存
00522
00523         bool en;
00524         if( !IsModified() ) //  変更無しなら何もしない
00525             return;             //  ここでは，「無変更でも保存」は無視する
00526
00527         //  2003.10.09 zenryaku 保存失敗エラーの抑制
00528         if( !IsFilePathAvailable() )    //  まだファイル名が設定されていなければ保存しない
00529             return;
00530
00531         en = m_cAutoSave.IsEnabled();
00532         m_cAutoSave.Enable(false);  //  2重呼び出しを防ぐため
00533         SaveFile( GetFilePath() );  //  保存（m_nCharCode, m_cSaveLineCodeを変更しない）
00534         m_cAutoSave.Enable(en);
00535     }
00536 }
00537
00538 //
00539 //  設定変更を自動保存動作に反映する
00540 //
00541 void CEditDoc::ReloadAutoSaveParam(void)
00542 {
00543     m_cAutoSave.SetInterval( m_pShareData->m_Common.m_sBackup.GetAutoBackupInterval() );
00544     m_cAutoSave.Enable( m_pShareData->m_Common.m_sBackup.IsAutoBackupEnabled() );
00545 }
00546
00547
00548 //  ファイルの保存機能をEditViewから移動
00549 //
00550 bool CEditDoc::SaveFile( const TCHAR* pszPath )
00551 {
00552     if( FileWrite( pszPath, m_cSaveLineCode ) ){
00553         SetModified(false,true);    //  Jan. 22, 2002 genta
00554
00555         /* 現在位置で無変更な状態になったことを通知 */
00556         m_cOpeBuf.SetNoModified();
00557         return true;
00558     }
00559     return false;
00560 }
00561
00562 //  To Here Aug. 21, 2000 genta
00563
00564 //  From Here Sep 8, 2000 genta
00565 //
00567
00579 void CEditDoc::MakeFuncList_Perl( CFuncInfoArr* pcFuncInfoArr )
00580 {
00581     const wchar_t*  pLine;
00582     CLogicInt           nLineLen;
00583     int         i;
00584     int         nCharChars;
00585     wchar_t     szWord[100];
00586     int         nWordIdx = 0;
00587     int         nMaxWordLeng = 70;
00588     int         nMode;
00589
00590     CLogicInt   nLineCount;
00591     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00592         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00593         nMode = 0;
00594         for( i = 0; i < nLineLen; ++i ){
00595             /* 1バイト文字だけを処理する */
00596             // 2005-09-02 D.S.Koba GetSizeOfChar
00597             nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00598             if( 1 < nCharChars ){
00599                 break;
00600             }
00601
00602             /* 単語読み込み中 */
00603             if( 0 == nMode ){
00604                 /* 空白やタブ記号等を飛ばす */
00605                 if( L'\t' == pLine[i] ||
00606                     L' ' == pLine[i] ||
00607                     WCODE::CR == pLine[i] ||
00608                     WCODE::LF == pLine[i]
00609                 ){
00610                     continue;
00611                 }
00612                 if( 's' != pLine[i] )
00613                     break;
00614                 //  sub の一文字目かもしれない
00615                 if( nLineLen - i < 4 )
00616                     break;
00617                 if( wcsncmp_literal( pLine + i, L"sub" ) )
00618                     break;
00619                 int c = pLine[ i + 3 ];
00620                 if( c == L' ' || c == L'\t' ){
00621                     nMode = 2;  //  発見
00622                     i += 3;
00623                 }
00624                 else
00625                     break;
00626             }
00627             else if( 2 == nMode ){
00628                 if( L'\t' == pLine[i] ||
00629                     L' ' == pLine[i] ||
00630                     WCODE::CR == pLine[i] ||
00631                     WCODE::LF == pLine[i]
00632                 ){
00633                     continue;
00634                 }
00635                 if( L'_' == pLine[i] ||
00636                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00637                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00638                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )
00639                 ){
00640                     //  関数名の始まり
00641                     nWordIdx = 0;
00642                     szWord[nWordIdx] = pLine[i];
00643                     szWord[nWordIdx + 1] = L'\0';
00644                     nMode = 1;
00645                     continue;
00646                 }
00647                 else
00648                     break;
00649
00650             }
00651             else if( 1 == nMode ){
00652                 if( L'_' == pLine[i] ||
00653                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00654                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00655                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
00656                     //  Jun. 18, 2005 genta パッケージ修飾子を考慮
00657                     //  コロンは2つ連続しないといけないのだが，そこは手抜き
00658                     L':' == pLine[i] || L'\'' == pLine[i]
00659                 ){
00660                     ++nWordIdx;
00661                     if( nWordIdx >= nMaxWordLeng ){
00662                         break;
00663                     }else{
00664                         szWord[nWordIdx] = pLine[i];
00665                         szWord[nWordIdx + 1] = L'\0';
00666                     }
00667                 }else{
00668                     //  関数名取得
00669                     /*
00670                       カーソル位置変換
00671                       物理位置(行頭からのバイト数、折り返し無し行位置)
00672                       →
00673                       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00674                     */
00675                     CLayoutPoint ptPosXY;
00676                     m_cLayoutMgr.LogicToLayout(
00677                         CLogicPoint(CLogicInt(0), nLineCount),
00678                         &ptPosXY
00679                     );
00680                     //  Mar. 9, 2001
00681                     pcFuncInfoArr->AppendData( nLineCount + CLogicInt(1), ptPosXY.GetY2() + CLayoutInt(1), szWord, 0 );
00682
00683                     break;
00684                 }
00685             }
00686         }
00687     }
00688 #ifdef _DEBUG
00689     pcFuncInfoArr->DUMP();
00690 #endif
00691     return;
00692 }
00693 //  To HERE Sep. 8, 2000 genta
00694
00695
00696
00697
00698
00699
00700
00701
00702 //  From Here June 23, 2001 N.Nakatani
00704
00715 void CEditDoc::MakeFuncList_VisualBasic( CFuncInfoArr* pcFuncInfoArr )
00716 {
00717     const int   nMaxWordLeng = 255; // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00718     const wchar_t*  pLine;
00719     CLogicInt       nLineLen = CLogicInt(0);//: 2002/2/3 aroka 警告対策：初期化
00720     int         i;
00721     int         nCharChars;
00722     wchar_t     szWordPrev[256];    // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00723     wchar_t     szWord[256];        // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00724     int         nWordIdx = 0;
00725     int         nMode;
00726     wchar_t     szFuncName[256];    // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00727     CLogicInt   nFuncLine;
00728     int         nFuncId;
00729     int         nParseCnt = 0;
00730     bool        bClass;         // クラスモジュールフラグ
00731     bool        bProcedure;     // プロシージャフラグ（プロシージャ内ではTrue）
00732     bool        bDQuote;        // ダブルクォーテーションフラグ（ダブルクォーテーションがきたらTrue）
00733
00734     // 調べるファイルがクラスモジュールのときはType、Constの挙動が異なるのでフラグを立てる
00735     bClass  = false;
00736     int filelen = _tcslen(GetFilePath());
00737     if ( 4 < filelen ) {
00738         if ( 0 == _tcsicmp((GetFilePath() + filelen - 4), _FT(".cls")) ) {
00739             bClass  = true;
00740         }
00741     }
00742
00743     szWordPrev[0] = L'\0';
00744     szWord[nWordIdx] = L'\0';
00745     nMode = 0;
00746     pLine = NULL;
00747     bProcedure  = false;
00748     CLogicInt       nLineCount;
00749     for( nLineCount = CLogicInt(0); nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00750         if( NULL != pLine ){
00751             if( L'_' != pLine[nLineLen-1]){
00752                 nParseCnt = 0;
00753             }
00754         }
00755         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00756         nFuncId = 0;
00757         bDQuote = false;
00758         for( i = 0; i < nLineLen; ++i ){
00759             /* 1バイト文字だけを処理する */
00760             // 2005-09-02 D.S.Koba GetSizeOfChar
00761             nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00762             if( 0 == nCharChars ){
00763                 nCharChars = 1;
00764             }
00765             /* 単語読み込み中 */
00766             if( 1 == nMode ){
00767                 if( (1 == nCharChars && (
00768                     L'_' == pLine[i] ||
00769                     L'~' == pLine[i] ||
00770                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00771                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00772                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )
00773                     ) )
00774                  || 2 == nCharChars
00775                 ){
00776                     if( nWordIdx >= nMaxWordLeng ){
00777                         nMode = 999;
00778                         continue;
00779                     }else{
00780                         auto_memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
00781                         szWord[nWordIdx + nCharChars] = L'\0';
00782                         nWordIdx += (nCharChars);
00783                     }
00784                 } else if (1 == nCharChars && '"' == pLine[i]) {
00785                     // Aug 7, 2003 little YOSHI  追加
00786                     // テキストの中は無視します。
00787                     nMode   = 3;
00788                 }else{
00789                     if ( 0 == nParseCnt && 0 == wcsicmp(szWord, L"Public") ) {
00790                         // パブリック宣言を見つけた！
00791                         nFuncId |= 0x10;
00792                     }else
00793                     if ( 0 == nParseCnt && 0 == wcsicmp(szWord, L"Private") ) {
00794                         // プライベート宣言を見つけた！
00795                         nFuncId |= 0x20;
00796                     }else
00797                     if ( 0 == nParseCnt && 0 == wcsicmp(szWord, L"Friend") ) {
00798                         // フレンド宣言を見つけた！
00799                         nFuncId |= 0x30;
00800                     }else
00801                     if ( 0 == nParseCnt && 0 == wcsicmp(szWord, L"Static") ) {
00802                         // スタティック宣言を見つけた！
00803                         nFuncId |= 0x100;
00804                     }else
00805                     if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Function" ) ){
00806                         if ( 0 == wcsicmp( szWordPrev, L"End" ) ){
00807                             // プロシージャフラグをクリア
00808                             bProcedure  = false;
00809                         }else
00810                         if( 0 != wcsicmp( szWordPrev, L"Exit" ) ){
00811                             if( 0 == wcsicmp( szWordPrev, L"Declare" ) ){
00812                                 nFuncId |= 0x200;   // DLL参照宣言
00813                             }else{
00814                                 bProcedure  = true; // プロシージャフラグをセット
00815                             }
00816                             nFuncId |= 0x01;        // 関数
00817                             nParseCnt = 1;
00818                             nFuncLine = nLineCount + CLogicInt(1);
00819                         }
00820                     }
00821                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Sub" ) ){
00822                         if ( 0 == wcsicmp( szWordPrev, L"End" ) ){
00823                             // プロシージャフラグをクリア
00824                             bProcedure  = false;
00825                         }else
00826                         if( 0 != wcsicmp( szWordPrev, L"Exit" ) ){
00827                             if( 0 == wcsicmp( szWordPrev, L"Declare" ) ){
00828                                 nFuncId |= 0x200;   // DLL参照宣言
00829                             }else{
00830                                 bProcedure  = true; // プロシージャフラグをセット
00831                             }
00832                             nFuncId |= 0x02;        // 関数
00833                             nParseCnt = 1;
00834                             nFuncLine = nLineCount + CLogicInt(1);
00835                         }
00836                     }
00837                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Get" )
00838                      && 0 == wcsicmp( szWordPrev, L"Property" )
00839                     ){
00840                         bProcedure  = true; // プロシージャフラグをセット
00841                         nFuncId |= 0x03;        // プロパティ取得
00842                         nParseCnt = 1;
00843                         nFuncLine = nLineCount + CLogicInt(1);
00844                     }
00845                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Let" )
00846                      && 0 == wcsicmp( szWordPrev, L"Property" )
00847                     ){
00848                         bProcedure  = true; // プロシージャフラグをセット
00849                         nFuncId |= 0x04;        // プロパティ設定
00850                         nParseCnt = 1;
00851                         nFuncLine = nLineCount + CLogicInt(1);
00852                     }
00853                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Set" )
00854                      && 0 == wcsicmp( szWordPrev, L"Property" )
00855                     ){
00856                         bProcedure  = true; // プロシージャフラグをセット
00857                         nFuncId |= 0x05;        // プロパティ参照
00858                         nParseCnt = 1;
00859                         nFuncLine = nLineCount + CLogicInt(1);
00860                     }
00861                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Const" )
00862                      && 0 != wcsicmp( szWordPrev, L"#" )
00863                     ){
00864                         if ( bClass || bProcedure || 0 == ((nFuncId >> 4) & 0x0f) ) {
00865                             // クラスモジュールでは強制的にPrivate
00866                             // プロシージャ内では強制的にPrivate
00867                             // Publicの指定がないとき、デフォルトでPrivateになる
00868                             nFuncId &= 0x0f2f;
00869                             nFuncId |= 0x20;
00870                         }
00871                         nFuncId |= 0x06;        // 定数
00872                         nParseCnt = 1;
00873                         nFuncLine = nLineCount + CLogicInt(1);
00874                     }
00875                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Enum" )
00876                     ){
00877                         nFuncId |= 0x207;       // 列挙型宣言
00878                         nParseCnt = 1;
00879                         nFuncLine = nLineCount + CLogicInt(1);
00880                     }
00881                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Type" )
00882                     ){
00883                         if ( bClass ) {
00884                             // クラスモジュールでは強制的にPrivate
00885                             nFuncId &= 0x0f2f;
00886                             nFuncId |= 0x20;
00887                         }
00888                         nFuncId |= 0x208;       // ユーザ定義型宣言
00889                         nParseCnt = 1;
00890                         nFuncLine = nLineCount + CLogicInt(1);
00891                     }
00892                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Event" )
00893                     ){
00894                         nFuncId |= 0x209;       // イベント宣言
00895                         nParseCnt = 1;
00896                         nFuncLine = nLineCount + CLogicInt(1);
00897                     }
00898                     else if( 0 == nParseCnt && 0 == wcsicmp( szWord, L"Property" )
00899                      && 0 == wcsicmp( szWordPrev, L"End")
00900                     ){
00901                         bProcedure  = false;    // プロシージャフラグをクリア
00902                     }
00903                     else if( 1 == nParseCnt ){
00904                         wcscpy( szFuncName, szWord );
00905                         /*
00906                           カーソル位置変換
00907                           物理位置(行頭からのバイト数、折り返し無し行位置)
00908                           → レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00909                         */
00910                         CLayoutPoint ptPosXY;
00911                         m_cLayoutMgr.LogicToLayout( CLogicPoint(CLogicInt(0), nFuncLine - CLogicInt(1)), &ptPosXY );
00912                         pcFuncInfoArr->AppendData( nFuncLine, ptPosXY.GetY2() + CLayoutInt(1) , szFuncName, nFuncId );
00913                         nParseCnt = 0;
00914                         nFuncId = 0;    // Jul 10, 2003  little YOSHI  論理和を使用するため、必ず初期化
00915                     }
00916
00917                     wcscpy( szWordPrev, szWord );
00918                     nWordIdx = 0;
00919                     szWord[0] = L'\0';
00920                     nMode = 0;
00921                     i--;
00922                     continue;
00923                 }
00924             }
00925             /* 記号列読み込み中 */
00926             else if( 2 == nMode ){
00927                 // Jul 10, 2003  little YOSHI
00928                 // 「#Const」と「Const」を区別するために、「#」も識別するように変更
00929                 if( L'_' == pLine[i] ||
00930                     L'~' == pLine[i] ||
00931                     (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
00932                     (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
00933                     (L'0' <= pLine[i] &&    pLine[i] <= L'9' )||
00934                     L'\t' == pLine[i] ||
00935                     L' ' == pLine[i] ||
00936                     WCODE::CR == pLine[i] ||
00937                     WCODE::LF == pLine[i] ||
00938                     L'{' == pLine[i] ||
00939                     L'}' == pLine[i] ||
00940                     L'(' == pLine[i] ||
00941                     L')' == pLine[i] ||
00942                     L';' == pLine[i]    ||
00943                     L'\'' == pLine[i] ||
00944                     L'/' == pLine[i]    ||
00945                     L'-' == pLine[i] ||
00946                     L'#' == pLine[i]
00947                 ){
00948                     wcscpy( szWordPrev, szWord );
00949                     nWordIdx = 0;
00950                     szWord[0] = L'\0';
00951                     nMode = 0;
00952                     i--;
00953                     continue;
00954                 } else if (1 == nCharChars && L'"' == pLine[i]) {
00955                     // Aug 7, 2003 little YOSHI  追加
00956                     // テキストの中は無視します。
00957                     nMode   = 3;
00958                 }else{
00959                     if( nWordIdx >= nMaxWordLeng ){
00960                         nMode = 999;
00961                         continue;
00962                     }else{
00963                         wmemcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
00964                         szWord[nWordIdx + nCharChars] = L'\0';
00965                         nWordIdx += (nCharChars);
00966                     }
00967                 }
00968             }else
00969             /* 長過ぎる単語無視中 */
00970             if( 999 == nMode ){
00971                 /* 空白やタブ記号等を飛ばす */
00972                 if( L'\t' == pLine[i] ||
00973                     L' ' == pLine[i] ||
00974                     WCODE::CR == pLine[i] ||
00975                     WCODE::LF == pLine[i]
00976                 ){
00977                     nMode = 0;
00978                     continue;
00979                 }
00980             }else
00981             /* ノーマルモード */
00982             if( 0 == nMode ){
00983                 /* 空白やタブ記号等を飛ばす */
00984                 if( L'\t' == pLine[i] ||
00985                     L' ' == pLine[i] ||
00986                     WCODE::CR == pLine[i] ||
00987                     WCODE::LF == pLine[i]
00988                 ){
00989                     continue;
00990                 }else
00991                 if( i < nLineLen && L'\'' == pLine[i] ){
00992                     break;
00993                 } else if (1 == nCharChars && L'"' == pLine[i]) {
00994                     // Aug 7, 2003 little YOSHI  追加
00995                     // テキストの中は無視します。
00996                     nMode   = 3;
00997                 }else{
00998                     if( (1 == nCharChars && (
00999                         L'_' == pLine[i] ||
01000                         L'~' == pLine[i] ||
01001                         (L'a' <= pLine[i] &&    pLine[i] <= L'z' )||
01002                         (L'A' <= pLine[i] &&    pLine[i] <= L'Z' )||
01003                         (L'0' <= pLine[i] &&    pLine[i] <= L'9' )
01004                         ) )
01005                      || 2 == nCharChars
01006                     ){
01007                         nWordIdx = 0;
01008
01009                         auto_memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01010                         szWord[nWordIdx + nCharChars] = L'\0';
01011                         nWordIdx += (nCharChars);
01012
01013                         nMode = 1;
01014                     }else{
01015                         nWordIdx = 0;
01016                         auto_memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01017                         szWord[nWordIdx + nCharChars] = L'\0';
01018                         nWordIdx += (nCharChars);
01019
01020                         nMode = 2;
01021                     }
01022                 }
01023             } else
01024             /* テキストが閉じるまで読み飛ばす */ // Aug 7, 2003 little YOSHI  追加
01025             if (nMode == 3) {
01026                 // 連続するダブルクォーテーションは無視する
01027                 if (1 == nCharChars && L'"' == pLine[i]) {
01028                     // ダブルクォーテーションが現れたらフラグを反転する
01029                     bDQuote = !bDQuote;
01030                 } else if (bDQuote) {
01031                     // ダブルクォーテーションの次に
01032                     // ダブルクォーテーション以外の文字が現れたらノーマルモードに移行
01033                     --i;
01034                     nMode   = 0;
01035                     bDQuote = false;
01036                     continue;
01037                 }
01038             }
01039             i += (nCharChars - 1);
01040         }
01041     }
01042     return;
01043 }
01044 //  To Here June 23, 2001 N.Nakatani
01045
01046
01047 // From Here 2001.12.03 hor
01054 void CEditDoc::MakeFuncList_BookMark( CFuncInfoArr* pcFuncInfoArr )
01055 {
01056     const wchar_t*  pLine;
01057     CLogicInt       nLineLen;
01058     CLogicInt       nLineCount;
01059     int     leftspace, pos_wo_space, k;
01060     wchar_t*    pszText;
01061     BOOL    bMarkUpBlankLineEnable = m_pShareData->m_Common.m_sOutline.m_bMarkUpBlankLineEnable;
01062     int     nNewLineLen = m_cNewLineCode.GetLen();
01063     CLogicInt   nLineLast   = m_cDocLineMgr.GetLineCount();
01064     int     nCharChars;
01065
01066     for( nLineCount = CLogicInt(0); nLineCount <  nLineLast; ++nLineCount ){
01067         if(!m_cDocLineMgr.GetLineInfo(nLineCount)->IsBookMarked())continue;
01068         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
01069         if( NULL == pLine ){
01070             break;
01071         }
01072         // Jan, 16, 2002 hor
01073         if( bMarkUpBlankLineEnable ){// 20020119 aroka
01074             if( nLineLen<=nNewLineLen && nLineCount< nLineLast ){
01075               continue;
01076             }
01077         }// LTrim
01078         for( leftspace = 0; leftspace < nLineLen; ++leftspace ){
01079             if( WCODE::isBlank(pLine[leftspace]) ){
01080                 continue;
01081             }
01082             break;
01083         }
01084
01085         if( bMarkUpBlankLineEnable ){// 20020119 aroka
01086             if(( leftspace >= nLineLen-nNewLineLen && nLineCount< nLineLast )||
01087                 ( leftspace >= nLineLen )) {
01088                 continue;
01089             }
01090         }// RTrim
01091         // 2005.10.11 ryoji 右から遡るのではなく左から探すように修正（"ａ@" の右２バイトが全角空白と判定される問題の対処）
01092         k = pos_wo_space = leftspace;
01093         while( k < nLineLen ){
01094             nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, k );
01095             if( 1 == nCharChars ){
01096                 if( !(pLine[k] == WCODE::CR ||
01097                         pLine[k] == WCODE::LF ||
01098                         pLine[k] == WCODE::SPACE ||
01099                         pLine[k] == WCODE::TAB ||
01100                         WCODE::isZenkakuSpace(pLine[k]) ||
01101                         pLine[k] == L'\0') )
01102                     pos_wo_space = k + nCharChars;
01103             }
01104             k += nCharChars;
01105         }
01106         //  Nov. 3, 2005 genta 文字列長計算式の修正
01107         {
01108             int nLen = pos_wo_space - leftspace;
01109             pszText = new wchar_t[nLen + 1];
01110             wmemcpy( pszText, &pLine[leftspace], nLen );
01111             pszText[nLen] = L'\0';
01112         }
01113         CLayoutPoint ptXY;
01114         //int nX,nY
01115         m_cLayoutMgr.LogicToLayout( CLogicPoint(CLogicInt(0), nLineCount), &ptXY );
01116         pcFuncInfoArr->AppendData( nLineCount+CLogicInt(1), ptXY.GetY2()+CLayoutInt(1) , pszText, 0 );
01117         delete [] pszText;
01118     }
01119     return;
01120 }
01121 // To Here 2001.12.03 hor
01122
01123 // From Here Jan. 22, 2002 genta
01132 void CEditDoc::SetModified( bool flag, bool redraw)
01133 {
01134     if( m_bIsModified == flag ) //  変更がなければ何もしない
01135         return;
01136
01137     m_bIsModified = flag;
01138     if( redraw )
01139         SetParentCaption();
01140 }
01141 // From Here Jan. 22, 2002 genta
01142
01153 void CEditDoc::SetFilePath(const TCHAR* szFile)
01154 {
01155     _tcscpy(m_szFilePath, szFile);
01156     SetDocumentIcon();
01157
01158     //@@@ From Here 2003.05.31 MIK
01159     //タブウインドウ //SetParentCaptionで実施
01160     //m_pcEditWnd->ChangeFileNameNotify( szFile );
01161     //@@@ To Here 2003.05.31 MIK
01162 }
01163
01168 const TCHAR* CEditDoc::GetFileName( void ) const
01169 {
01170     return GetFileTitlePointer(GetFilePath());
01171 }
01172
01182 void CEditDoc::SetDocumentIcon(void)
01183 {
01184     HICON   hIconBig, hIconSmall;
01185
01186     if( m_bGrepMode )   // Grepモードの時はアイコンを変更しない
01187         return;
01188
01189     if( GetDocumentAttribute().m_bUseDocumentIcon )
01190         m_pcEditWnd->GetRelatedIcon( GetFilePath(), hIconBig, hIconSmall );
01191     else
01192         m_pcEditWnd->GetDefaultIcon( hIconBig, hIconSmall );
01193
01194     m_pcEditWnd->SetWindowIcon( hIconBig, ICON_BIG );
01195     m_pcEditWnd->SetWindowIcon( hIconSmall, ICON_SMALL );
01196 }
01197
01205 void CEditDoc::AddToMRU(void)
01206 {
01207     FileInfo    fi;
01208     GetFileInfo( &fi );
01209     wcscpy( fi.m_szMarkLines, m_cDocLineMgr.GetBookMarks() );
01210
01211     //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01212     CMRU    cMRU;
01213     cMRU.Add( &fi );
01214 }
01215
01216
01230 void CEditDoc::OpenFile( const TCHAR* filename, ECodeType nCharCode, bool bReadOnly )
01231 {
01232     TCHAR       pszPath[_MAX_PATH];
01233     bool        bOpened;
01234     HWND        hWndOwner;
01235
01236     /* 「ファイルを開く」ダイアログ */
01237     if( filename == NULL ){
01238         pszPath[0] = _T('\0');
01239         if( !OpenFileDialog( GetSplitterHwnd(), NULL, pszPath, &nCharCode, &bReadOnly ) ){
01240             return;
01241         }
01242     }
01243     else {
01244         //  2007.10.01 genta 相対パスを絶対パスに変換
01245         //  変換しないとIsPathOpenedで正しい結果が得られず，
01246         //  同一ファイルを複数開くことがある．
01247         if( ! GetLongFileName( filename, pszPath )){
01248             //  ファイル名の変換に失敗
01249 			::MYMESSAGEBOX( GetSplitterHwnd(), MB_OK , GSTR_APPNAME,
01250                 _T("ファイル名の変換に失敗しました [%ts]"), filename );
01251             return;
01252         }
01253     }
01254
01255     /* 指定ファイルが開かれているか調べる */
01256     if( CShareData::getInstance()->IsPathOpened(pszPath, &hWndOwner, nCharCode) ){      // 開いていればアクティブにする
01257         /* 2007.03.12 maru 開いていたときの処理はCShareData::IsPathOpenedに移動 */
01258     }
01259     else{
01260         /* ファイルが開かれていない */
01261         /* 変更フラグがオフで、ファイルを読み込んでいない場合 */
01262 //@@@ 2001.12.26 YAZAKI Grep結果で無い場合も含める。
01263         if( IsFileOpenInThisWindow()
01264         ){
01265             /* ファイル読み込み */
01266             //  Oct. 03, 2004 genta コード確認は設定に依存
01267             FileRead( pszPath, &bOpened, nCharCode, bReadOnly,
01268                             m_pShareData->m_Common.m_sFile.m_bQueryIfCodeChange!=0 );
01269         }else{
01270             if( _tcschr( pszPath, _T(' ') ) ){
01271                 TCHAR   szFile2[_MAX_PATH + 3];
01272                 auto_sprintf( szFile2, _T("\"%ts\""), pszPath );
01273                 _tcscpy( pszPath, szFile2 );
01274             }
01275             /* 新たな編集ウィンドウを起動 */
01276             CControlTray::OpenNewEditor( m_hInstance, GetSplitterHwnd(), pszPath, nCharCode, bReadOnly );
01277         }
01278     }
01279     return;
01280 }
01281
01282 /* 閉じて(無題)
01283
01284     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01285 */
01286 void CEditDoc::FileClose( void )
01287 {
01288     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01289     if( !OnFileClose() ){
01290         return;
01291     }
01292     /* 既存データのクリア */
01293     Init();
01294
01295     /* 全ビューの初期化 */
01296     InitAllView();
01297
01298     /* 親ウィンドウのタイトルを更新 */
01299     SetParentCaption();
01300
01301     return;
01302 }
01303
01304 /* 閉じて開く
01305
01306     @param filename [in] ファイル名
01307     @param nCharCode    [in] 文字コード
01308     @param bReadOnly    [in] 読み取り専用か
01309
01310     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01311 */
01312 void CEditDoc::FileCloseOpen( const TCHAR* filename, ECodeType nCharCode, bool bReadOnly )
01313 {
01314     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01315     if( !OnFileClose() ){
01316         return;
01317     }
01318
01319     // Mar. 30, 2003 genta
01320     TCHAR   pszPath[_MAX_PATH];
01321
01322     if( filename==NULL ){
01323         pszPath[0] = _T('\0');
01324         if( !OpenFileDialog( GetSplitterHwnd(), NULL, pszPath, &nCharCode, &bReadOnly ) ){
01325             return;
01326         }
01327     }
01328
01329     /* 既存データのクリア */
01330     Init();
01331
01332     /* 全ビューの初期化 */
01333     InitAllView();
01334
01335     /* 親ウィンドウのタイトルを更新 */
01336     SetParentCaption();
01337
01338     /* ファイルを開く */
01339     // Mar. 30, 2003 genta
01340     // Oct.  9, 2004 genta CEditDocへ移動したことによる変更
01341     OpenFile(( filename ? filename : pszPath ), nCharCode, bReadOnly );
01342 }
01343
01351 BOOL CEditDoc::FileSave( bool warnbeep, bool askname )
01352 {
01353
01354     /* 無変更でも上書きするか */
01355     if( FALSE == m_pShareData->m_Common.m_sFile.m_bEnableUnmodifiedOverwrite
01356      && !IsModified()   // 変更フラグ
01357      ){
01358         //  Feb. 28, 2004 genta
01359         //  保存不要でも警告音を出して欲しくない場合がある
01360         if( warnbeep ){
01361             ::MessageBeep( MB_ICONHAND );
01362         }
01363         return TRUE;
01364     }
01365
01366     if( !IsFilePathAvailable() ){
01367         if( ! askname ){
01368             return FALSE;
01369         }
01370         //  Feb. 28, 2004 genta SAVEASの結果が正しく返されていなかった
01371         //  次の処理と組み合わせるときに問題が生じる
01372         //return Command_FILESAVEAS_DIALOG();
01373         FileSaveAs_Dialog();
01374     }
01375     else {
01376         //  Jun.  5, 2004 genta
01377         //  読みとり専用のチェックをCEditDocから上書き保存処理に移動
01378         if( m_bReadOnly ){  /* 読み取り専用モード */
01379             if( warnbeep ){
01380                 ::MessageBeep( MB_ICONHAND );
01381                 MYMESSAGEBOX(
01382                     GetSplitterHwnd(),
01383                     MB_OK | MB_ICONSTOP | MB_TOPMOST,
01384                     GSTR_APPNAME,
01385                     _T("%ls\n")
01386                     _T("\n")
01387                     _T("は読み取り専用モードで開いています。 上書き保存はできません。\n")
01388                     _T("\n")
01389                     _T("名前を付けて保存をすればいいと思います。"),
01390                     IsFilePathAvailable() ? GetFilePath() : _T("（無題）")
01391                 );
01392             }
01393             return FALSE;
01394         }
01395
01396         if( SaveFile( GetFilePath() ) ){    //  m_nCharCode, m_cSaveLineCodeを変更せずに保存
01397             /* キャレットの行桁位置を表示する */
01398             m_pcEditWnd->GetActiveView().GetCaret().DrawCaretPosInfo();
01399             return TRUE;
01400         }
01401     }
01402     return FALSE;
01403 }
01404
01409 BOOL CEditDoc::FileSaveAs_Dialog( void )
01410 {
01411     //  Aug. 16, 2000 genta
01412     //  現在のファイル名を初期値で与えない
01413     //  May 18, 2001 genta
01414     //  現在のファイル名を与えないのは上書き禁止の時のみ
01415     //  そうでない場合には現在のファイル名を初期値として設定する。
01416     TCHAR szPath[_MAX_PATH + 1];
01417     if( IsReadOnly() )
01418         szPath[0] = _T('\0');
01419     else
01420         _tcscpy( szPath, GetFilePath() );
01421
01422     //  Feb. 9, 2001 genta
01423     //  Jul. 26, 2003 ryoji BOMの有無を与えるパラメータ
01424     if( SaveFileDialog( szPath, &m_nCharCode, &m_cSaveLineCode, &m_bBomExist ) ){
01425         //  Jun.  5, 2004 genta
01426         //  読みとり専用のチェックをCEditDocから上書き保存処理に移動
01427         //  同名で上書きされるのを防ぐ
01428         if( m_bReadOnly && _tcscmp( szPath, GetFilePath()) == 0 ){
01429             ::MessageBeep( MB_ICONHAND );
01430             MYMESSAGEBOX_A(
01431                 GetSplitterHwnd(),
01432                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
01433                 GSTR_APPNAME_A,
01434                 "読み取り専用モードでは同一ファイルへの上書き保存はできません。"
01435             );
01436         }
01437         else {
01438             FileSaveAs( szPath );
01439             return TRUE;
01440         }
01441     }
01442     return FALSE;
01443 }
01444
01445 /* 名前を付けて保存
01446
01447     @param filename [in] ファイル名
01448
01449     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01450 */
01451 BOOL CEditDoc::FileSaveAs( const TCHAR* filename )
01452 {
01453     if( SaveFile( filename ) ){
01454         /* キャレットの行桁位置を表示する */
01455         m_pcEditWnd->GetActiveView().GetCaret().DrawCaretPosInfo();
01456         OnChangeSetting();  //  タイプ別設定の変更を指示。
01457
01458         //  再オープン
01459         //  Jul. 26, 2003 ryoji 現在開いているのと同じコードで開き直す
01460         // 2007.10.07 kobake 再読込オフ
01461 //      ReloadCurrentFile( m_nCharCode, FALSE );
01462         return TRUE;
01463     }
01464     return FALSE;
01465 }
01466
01467 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView.cpp

sakura_core

CEditView.cpp

文書ウィンドウの管理 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.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 "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"
#include "CClipboard.h"
#include "CTypeSupport.h"
#include "parse/CWordParse.h"
#include "convert/CConvert.h"
#include "charset/CCodeMediator.h"
#include "charset/CShiftJis.h"
#include "util/input.h"
#include "util/os.h"
#include "util/string_ex2.h"
#include "util/window.h"
#include "util/module.h"
#include "util/tchar_template.h"

ソースコードを見る。

マクロ定義

#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)
wchar_t | tchar_to_wchar (TCHAR tc)

変数

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 の 91 行で定義されています。

#define IDT_ROLLMOUSE 1

CEditView.cpp の 88 行で定義されています。

#define IMR_CONFIRMRECONVERTSTRING 0x0005

CEditView.cpp の 79 行で定義されています。

参照元 CEditView::DispatchEvent().

#define IMR_RECONVERTSTRING 0x0004

CEditView.cpp の 74 行で定義されています。

参照元 CEditView::DispatchEvent().

#define ISDIB ( bft ) ((bft) == BFT_BITMAP)

CEditView.cpp の 94 行で定義されています。

#define WIDTHBYTES ( i ) ((i+31)/32*4)

CEditView.cpp の 97 行で定義されています。

#define WM_MOUSEWHEEL 0x020A

CEditView.cpp の 59 行で定義されています。

参照元 CWnd::DispatchEvent(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), と CEditWnd::OnMouseWheel().

#define WM_XBUTTONDBLCLK 0x020D

CEditView.cpp の 66 行で定義されています。

#define WM_XBUTTONDOWN 0x020B

CEditView.cpp の 64 行で定義されています。

参照元 CEditView::DispatchEvent().

#define WM_XBUTTONUP 0x020C

CEditView.cpp の 65 行で定義されています。

#define XBUTTON1 0x0001

CEditView.cpp の 69 行で定義されています。

参照元 CEditView::DispatchEvent().

#define XBUTTON2 0x0002

CEditView.cpp の 70 行で定義されています。

参照元 CEditView::DispatchEvent().

関数

VOID CALLBACK EditViewTimerProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | UINT | idEvent,
 |  | DWORD | dwTime
 | ) |  |

CEditView.cpp の 198 行で定義されています。

参照先 GetWindowLongPtr, NULL, と CEditView::OnTimer().

参照元 CEditView::Create().

LRESULT CALLBACK EditViewWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditView.cpp の 161 行で定義されています。

参照先 CEditView::DispatchEvent(), GetWindowLongPtr, CEditView::m_hwndParent, NULL, と SendMessageCmd.

参照元 CEditView::Create().

HGLOBAL GetGlobalData | ( | LPDATAOBJECT | pDataObject,
 |  | CLIPFORMAT | cfFormat
 | ) |  |

CEditView.cpp の 119 行で定義されています。

参照先 memcpy_raw(), と NULL.

BOOL IsDataAvailable | ( | LPDATAOBJECT | pDataObject,
 |  | CLIPFORMAT | cfFormat
 | ) |  |

CEditView.cpp の 104 行で定義されています。

参照先 NULL.

参照元 CEditView::DragEnter().

wchar_t tchar_to_wchar ( TCHAR tc ) [inline]

CEditView.cpp の 617 行で定義されています。

参照元 CEditView::DispatchEvent().

変数

CEditView* g_m_pcEditView

CEditView.cpp の 84 行で定義されています。

const int STRNCMP_MAX = 100

CEditView.cpp の 82 行で定義されています。

参照元 CEditView::KeySearchCore().

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView.cpp ソースファイル

sakura_core

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 "CEditView.h"
00027 #include "debug.h"
00028 #include "CRunningTimer.h"
00029 #include "charcode.h"
00030 #include "mymessage.h"
00031 #include "CWaitCursor.h"
00032 #include "CEditWnd.h"
00033 #include "CDlgCancel.h"
00034 #include "CLayout.h"
00035 #include "COpe.h"
00036 #include "COpeBlk.h"
00037 #include "CDropTarget.h"
00038 #include "CSplitBoxWnd.h"
00039 #include "CRegexKeyword.h"
00040 #include "CMarkMgr.h"
00041 #include "COsVersionInfo.h"
00042 #include "CFileLoad.h" // 2002/08/30 Moca
00043 #include "CMemoryIterator.h"    // @@@ 2002.09.28 YAZAKI
00044 #include "CClipboard.h"
00045 #include "CTypeSupport.h"
00046 #include "parse/CWordParse.h"
00047 #include "convert/CConvert.h"
00048 #include "charset/CCodeMediator.h"
00049 #include "charset/CShiftJis.h"
00050 #include "util/input.h"
00051 #include "util/os.h"
00052 #include "util/string_ex2.h"
00053 #include "util/window.h"
00054 #include "util/module.h"
00055 #include "util/tchar_template.h"
00056
00057
00058 #ifndef WM_MOUSEWHEEL
00059     #define WM_MOUSEWHEEL   0x020A
00060 #endif
00061
00062 // novice 2004/10/10 マウスサイドボタン対応
00063 #ifndef WM_XBUTTONDOWN
00064     #define WM_XBUTTONDOWN   0x020B
00065     #define WM_XBUTTONUP     0x020C
00066     #define WM_XBUTTONDBLCLK 0x020D
00067 #endif
00068 #ifndef XBUTTON1
00069     #define XBUTTON1 0x0001
00070     #define XBUTTON2 0x0002
00071 #endif
00072
00073 #ifndef IMR_RECONVERTSTRING
00074 #define IMR_RECONVERTSTRING             0x0004
00075 #endif // IMR_RECONVERTSTRING
00076
00077 /* 2002.04.09 minfu 再変換調整 */
00078 #ifndef IMR_CONFIRMRECONVERTSTRING
00079 #define IMR_CONFIRMRECONVERTSTRING             0x0005
00080 #endif // IMR_CONFIRMRECONVERTSTRING
00081
00082 const int STRNCMP_MAX = 100;    /* MAXキーワード長：strnicmp文字列比較最大値(CEditView::KeySearchCore) */    // 2006.04.10 fon
00083
00084 CEditView*  g_m_pcEditView;
00085 LRESULT CALLBACK EditViewWndProc( HWND, UINT, WPARAM, LPARAM );
00086 VOID CALLBACK EditViewTimerProc( HWND, UINT, UINT, DWORD );
00087
00088 #define IDT_ROLLMOUSE   1
00089
00090 /* リソースヘッダー */
00091 #define  BFT_BITMAP     0x4d42    /* 'BM' */
00092
00093 /* リソースがDIBかどうかを判断するマクロ */
00094 #define  ISDIB(bft)     ((bft) == BFT_BITMAP)
00095
00096 /* 指定された値を最も近いバイト境界に整列させるマクロ */
00097 #define  WIDTHBYTES(i)  ((i+31)/32*4)
00098
00099
00100 /*
00101     @date 2006.01.16 Moca 他のTYMEDが利用可能でも、取得できるように変更。
00102     @note IDataObject::GetData() で tymed = TYMED_HGLOBAL を指定すること。
00103 */
00104 BOOL IsDataAvailable( LPDATAOBJECT pDataObject, CLIPFORMAT cfFormat )
00105 {
00106     FORMATETC   fe;
00107
00108     // 2006.01.16 Moca 他のTYMEDが利用可能でも、IDataObject::GetData()で
00109     //  tymed = TYMED_HGLOBALを指定すれば問題ない
00110     fe.cfFormat = cfFormat;
00111     fe.ptd = NULL;
00112     fe.dwAspect = DVASPECT_CONTENT;
00113     fe.lindex = -1;
00114     fe.tymed = TYMED_HGLOBAL;
00115     // 2006.03.16 Moca S_FALSEでも受け入れてしまうバグを修正(ファイルのドロップ等)
00116     return S_OK == pDataObject->QueryGetData( &fe );
00117 }
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_raw( 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
00161 LRESULT CALLBACK EditViewWndProc(
00162     HWND        hwnd,   // handle of window
00163     UINT        uMsg,   // message identifier
00164     WPARAM      wParam, // first message parameter
00165     LPARAM      lParam  // second message parameter
00166 )
00167 {
00168 //  DBPRINT_W(L"EditViewWndProc(0x%08X): %ls\n", hwnd, GetWindowsMessageName(uMsg));
00169
00170     CEditView*  pCEdit;
00171     switch( uMsg ){
00172     case WM_CREATE:
00173         pCEdit = ( CEditView* )g_m_pcEditView;
00174         return pCEdit->DispatchEvent( hwnd, uMsg, wParam, lParam );
00175     default:
00176         pCEdit = ( CEditView* )::GetWindowLongPtr( hwnd, 0 );
00177         if( NULL != pCEdit ){
00178             //  May 16, 2000 genta
00179             //  From Here
00180             if( uMsg == WM_COMMAND ){
00181 				::SendMessageCmd( ::GetParent( pCEdit->m_hwndParent ), WM_COMMAND, wParam,  lParam );
00182             }
00183             else{
00184                 return pCEdit->DispatchEvent( hwnd, uMsg, wParam, lParam );
00185             }
00186             //  To Here
00187         }
00188         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00189     }
00190 }
00191
00192
00193 /*
00194 ||  タイマーメッセージのコールバック関数
00195 ||
00196 ||  現在は、マウスによる領域選択時のスクロール処理のためにタイマーを使用しています。
00197 */
00198 VOID CALLBACK EditViewTimerProc(
00199     HWND hwnd,      // handle of window for timer messages
00200     UINT uMsg,      // WM_TIMER message
00201     UINT idEvent,   // timer identifier
00202     DWORD dwTime    // current system time
00203 )
00204 {
00205     CEditView*  pCEditView;
00206     pCEditView = ( CEditView* )::GetWindowLongPtr( hwnd, 0 );
00207     if( NULL != pCEditView ){
00208         pCEditView->OnTimer( hwnd, uMsg, idEvent, dwTime );
00209     }
00210     return;
00211 }
00212
00213
00214 #pragma warning(disable:4355) //「thisポインタが初期化リストで使用されました」の警告を無効化
00215
00216 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00217 CEditView::CEditView(CEditWnd* pcEditWnd)
00218 : CViewCalc(this)
00219 , m_pcEditWnd(pcEditWnd)
00220 , m_cParser(this)
00221 , m_cTextDrawer(this)
00222 , m_cCommander(this)
00223 , m_cViewSelect(this)
00224 , AT_ImmSetReconvertString(NULL)
00225 , m_bActivateByMouse( FALSE )   // 2007.10.02 nasukoji
00226 {
00227     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
00228     m_CurRegexp.Init();
00229 }
00230
00231
00232 // 2007.10.23 kobake コンストラクタ内の処理をすべてCreateに移しました。(初期化処理が不必要に分散していたため)
00233 BOOL CEditView::Create(
00234     HINSTANCE   hInstance,
00235     HWND        hwndParent,
00236     CEditDoc*   pcEditDoc,
00237     int         nMyIndex,
00238     BOOL        bShow
00239 )
00240 {
00241     m_pcTextArea = new CTextArea(this);
00242     m_pcCaret = new CCaret(this, pcEditDoc);
00243     m_pcRuler = new CRuler(this, pcEditDoc);
00244     m_pcFontset = new CViewFont();
00245
00246     m_cHistory = new CAutoMarkMgr;
00247     m_cRegexKeyword = NULL;             // 2007.04.08 ryoji
00248
00249     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
00250     m_CurRegexp.Init();
00251
00252     SetDrawSwitch(true);
00253     m_pcDropTarget = new CDropTarget( this );
00254     m_bDragSource = FALSE;
00255     _SetDragMode(FALSE);                    /* 選択テキストのドラッグ中か */
00256     m_bCurSrchKeyMark = false;              /* 検索文字列 */
00257     //  Jun. 27, 2001 genta
00258     m_szCurSrchKey[0] = L'\0';
00259
00260     m_sCurSearchOption.Reset();             // 検索／置換 オプション
00261
00262     m_bExecutingKeyMacro = false;           /* キーボードマクロの実行中 */
00263     m_nMyIndex = 0;
00264
00265     //  Dec. 4, 2002 genta
00266     //  メニューバーへのメッセージ表示機能はCEditWndへ移管
00267
00268     /* 共有データ構造体のアドレスを返す */
00269     m_pShareData = CShareData::getInstance()->GetShareData();
00270     m_bCommandRunning = FALSE;  /* コマンドの実行中 */
00271     m_pcOpeBlk = NULL;          /* 操作ブロック */
00272     m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
00273     m_pcsbwVSplitBox = NULL;    /* 垂直分割ボックス */
00274     m_pcsbwHSplitBox = NULL;    /* 水平分割ボックス */
00275     m_pszAppName = _T("EditorClient");
00276     m_hInstance = NULL;
00277     m_hWnd = NULL;
00278     m_hwndVScrollBar = NULL;
00279     m_nVScrollRate = 1;         /* 垂直スクロールバーの縮尺 */
00280     m_hwndHScrollBar = NULL;
00281     m_hwndSizeBox = NULL;
00282
00283     m_ptSrchStartPos_PHY.Set(CLogicInt(-1), CLogicInt(-1)); //検索/置換開始時のカーソル位置  (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00284     m_bSearch = FALSE;                  // 検索/置換開始位置を登録するか */                                           // 02/06/26 ai
00285
00286     m_ptBracketPairPos_PHY.Set(CLogicInt(-1), CLogicInt(-1)); // 対括弧の位置 (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00287     m_ptBracketCaretPos_PHY.Set(CLogicInt(-1), CLogicInt(-1));
00288
00289     m_bDrawBracketPairFlag = FALSE; /* 03/02/18 ai */
00290     GetSelectionInfo().m_bDrawSelectArea = false;   /* 選択範囲を描画したか */    // 02/12/13 ai
00291
00292     m_crBack = -1;              /* テキストの背景色 */          // 2006.12.16 ryoji
00293
00294
00295
00296     /* ルーラー表示 */
00297     GetTextArea().SetAreaTop(GetTextArea().GetAreaTop()+m_pShareData->m_Common.m_sWindow.m_nRulerHeight);   /* ルーラー高さ */
00298     GetRuler().SetRedrawFlag(); // ルーラー全体を描き直す時=true   2002.02.25 Add By KK
00299     m_hdcCompatDC = NULL;       /* 再描画用コンパチブルＤＣ */
00300     m_hbmpCompatBMP = NULL;     /* 再描画用メモリＢＭＰ */
00301     m_hbmpCompatBMPOld = NULL;  /* 再描画用メモリＢＭＰ(OLD) */
00302
00303     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
00304     //  2007.08.12 genta 初期化にShareDataの値が必要になった
00305     m_CurRegexp.Init(m_pShareData->m_Common.m_sSearch.m_szRegexpLib );
00306
00307     // 2004.02.08 m_hFont_ZENは未使用により削除
00308     m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
00309     m_bInMenuLoop = FALSE;              /* メニュー モーダル ループに入っています */
00310 //  MYTRACE_A( "CEditView::CEditView()おわり\n" );
00311     m_bHokan = FALSE;
00312
00313     m_hFontOld = NULL;
00314
00315     //  Aug. 31, 2000 genta
00316     m_cHistory->SetMax( 30 );
00317
00318     // from here  2002.04.09 minfu OSによって再変換の方式を変える
00319     //  YAZAKI COsVersionInfoのカプセル化は守りましょ。
00320     COsVersionInfo  cOs;
00321     if( cOs.OsDoesNOTSupportReconvert() ){
00322         // 95 or NTならば
00323         m_uMSIMEReconvertMsg = ::RegisterWindowMessage( RWM_RECONVERT );
00324         m_uATOKReconvertMsg = ::RegisterWindowMessage( MSGNAME_ATOK_RECONVERT ) ;
00325         m_uWM_MSIME_RECONVERTREQUEST = ::RegisterWindowMessage(_T("MSIMEReconvertRequest"));
00326
00327         m_hAtokModule = LoadLibrary(_T("ATOK10WC.DLL"));
00328         AT_ImmSetReconvertString = NULL;
00329         if ( NULL != m_hAtokModule ) {
00330             AT_ImmSetReconvertString =(BOOL (WINAPI *)( HIMC , int ,PRECONVERTSTRING , DWORD  ) ) GetProcAddress(m_hAtokModule,"AT_ImmSetReconvertString");
00331         }
00332     }
00333     else{
00334         // それ以外のOSのときはOS標準を使用する
00335         m_uMSIMEReconvertMsg = 0;
00336         m_uATOKReconvertMsg = 0 ;
00337         m_hAtokModule = 0;  //@@@ 2002.04.14 MIK
00338     }
00339     // to here  2002.04.10 minfu
00340
00341     //2004.10.23 isearch
00342     m_nISearchMode = 0;
00343     m_pcmigemo = NULL;
00344
00345
00346
00347     //↑今までコンストラクタでやってたこと
00348     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00349     //↓今までCreateでやってたこと
00350
00351     WNDCLASS    wc;
00352     HDC         hdc;
00353     m_hInstance = hInstance;
00354     m_hwndParent = hwndParent;
00355     m_pcEditDoc = pcEditDoc;
00356     m_nMyIndex = nMyIndex;
00357
00358     //  2007.08.18 genta 初期化にShareDataの値が必要になった
00359     m_cRegexKeyword = new CRegexKeyword( m_pShareData->m_Common.m_sSearch.m_szRegexpLib );  //@@@ 2001.11.17 add MIK
00360     m_cRegexKeyword->RegexKeySetTypes(&(m_pcEditDoc->GetDocumentAttribute()));  //@@@ 2001.11.17 add MIK
00361
00362     GetTextArea().SetTopYohaku( m_pShareData->m_Common.m_sWindow.m_nRulerBottomSpace );     /* ルーラーとテキストの隙間 */
00363     GetTextArea().SetAreaTop( GetTextArea().GetTopYohaku() );                               /* 表示域の上端座標 */
00364     /* ルーラー表示 */
00365     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
00366         GetTextArea().SetAreaTop( GetTextArea().GetAreaTop() + m_pShareData->m_Common.m_sWindow.m_nRulerHeight);    /* ルーラー高さ */
00367     }
00368
00369
00370     /* ウィンドウクラスの登録 */
00371     //  Apr. 27, 2000 genta
00372     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00373     wc.style            = CS_DBLCLKS | CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
00374     wc.lpfnWndProc      = (WNDPROC)EditViewWndProc;
00375     wc.cbClsExtra       = 0;
00376     wc.cbWndExtra       = sizeof( LONG_PTR );
00377     wc.hInstance        = m_hInstance;
00378     wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );
00379     wc.hCursor          = NULL/*LoadCursor( NULL, IDC_IBEAM )*/;
00380     wc.hbrBackground    = (HBRUSH)NULL/*(COLOR_WINDOW + 1)*/;
00381     wc.lpszMenuName     = NULL;
00382     wc.lpszClassName    = m_pszAppName;
00383     if( 0 == ::RegisterClass( &wc ) ){
00384     }
00385
00386     /* エディタウィンドウの作成 */
00387     g_m_pcEditView = this;
00388     m_hWnd = ::CreateWindowEx(
00389         WS_EX_STATICEDGE,       // extended window style
00390         m_pszAppName,           // pointer to registered class name
00391         m_pszAppName,           // pointer to window name
00392         0                       // window style
00393         | WS_VISIBLE
00394         | WS_CHILD
00395         | WS_CLIPCHILDREN
00396         ,
00397         CW_USEDEFAULT,          // horizontal position of window
00398         0,                      // vertical position of window
00399         CW_USEDEFAULT,          // window width
00400         0,                      // window height
00401         hwndParent,             // handle to parent or owner window
00402         NULL,                   // handle to menu or child-window identifier
00403         m_hInstance,            // handle to application instance
00404         (LPVOID)this            // pointer to window-creation data
00405     );
00406     if( NULL == GetHwnd() ){
00407         return FALSE;
00408     }
00409
00410     m_pcDropTarget->Register_DropTarget( GetHwnd() );
00411
00412     /* 辞書Tip表示ウィンドウ作成 */
00413     m_cTipWnd.Create( m_hInstance, GetHwnd()/*m_pShareData->m_hwndTray*/ );
00414
00415     /* 再描画用コンパチブルＤＣ */
00416     hdc = ::GetDC( GetHwnd() );
00417     m_hdcCompatDC = ::CreateCompatibleDC( hdc );
00418     ::ReleaseDC( GetHwnd(), hdc );
00419
00420     /* 垂直分割ボックス */
00421     m_pcsbwVSplitBox = new CSplitBoxWnd;
00422     m_pcsbwVSplitBox->Create( m_hInstance, GetHwnd(), TRUE );
00423     /* 水平分割ボックス */
00424     m_pcsbwHSplitBox = new CSplitBoxWnd;
00425     m_pcsbwHSplitBox->Create( m_hInstance, GetHwnd(), FALSE );
00426
00427     /* スクロールバー作成 */
00428     CreateScrollBar();      // 2006.12.19 ryoji
00429
00430     SetFont();
00431
00432     if( bShow ){
00433         ShowWindow( GetHwnd(), SW_SHOW );
00434     }
00435
00436     /* 親ウィンドウのタイトルを更新 */
00437     SetParentCaption();
00438
00439     /* キーボードの現在のリピート間隔を取得 */
00440     int nKeyBoardSpeed;
00441     SystemParametersInfo( SPI_GETKEYBOARDSPEED, 0, &nKeyBoardSpeed, 0 );
00442
00443     /* タイマー起動 */
00444     if( 0 == ::SetTimer( GetHwnd(), IDT_ROLLMOUSE, nKeyBoardSpeed, (TIMERPROC)EditViewTimerProc ) ){
00445 		::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00446             "CEditView::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
00447         );
00448     }
00449
00450     return TRUE;
00451 }
00452
00453
00454 CEditView::~CEditView()
00455 {
00456     if( GetHwnd() != NULL ){
00457         DestroyWindow( GetHwnd() );
00458     }
00459
00460     /* 再描画用メモリＢＭＰ */
00461     if( m_hbmpCompatBMP != NULL ){
00462         /* 再描画用メモリＢＭＰ(OLD) */
00463         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );
00464         ::DeleteObject( m_hbmpCompatBMP );
00465     }
00466     /* 再描画用コンパチブルＤＣ */
00467     if( m_hdcCompatDC != NULL ){
00468         ::DeleteDC( m_hdcCompatDC );
00469     }
00470
00471     delete m_pcDropTarget;
00472     m_pcDropTarget = NULL;
00473
00474     delete m_cHistory;
00475
00476     delete m_cRegexKeyword; //@@@ 2001.11.17 add MIK
00477
00478     //再変換 2002.04.10 minfu
00479     if(m_hAtokModule)
00480         FreeLibrary(m_hAtokModule);
00481
00482     delete m_pcTextArea;
00483     delete m_pcCaret;
00484     delete m_pcRuler;
00485     delete m_pcFontset;
00486 }
00487
00488
00489
00490
00491
00495 BOOL CEditView::CreateScrollBar( void )
00496 {
00497     SCROLLINFO  si;
00498
00499     /* スクロールバーの作成 */
00500     m_hwndVScrollBar = ::CreateWindowEx(
00501         0L,                                 /* no extended styles */
00502         _T("SCROLLBAR"),                        /* scroll bar control class */
00503         NULL,                               /* text for window title bar */
00504         WS_VISIBLE | WS_CHILD | SBS_VERT,   /* scroll bar styles */
00505         0,                                  /* horizontal position */
00506         0,                                  /* vertical position */
00507         200,                                /* width of the scroll bar */
00508         CW_USEDEFAULT,                      /* default height */
00509         GetHwnd(),                              /* handle of main window */
00510         (HMENU) NULL,                       /* no menu for a scroll bar */
00511         m_hInstance,                        /* instance owning this window */
00512         (LPVOID) NULL                       /* pointer not needed */
00513     );
00514     si.cbSize = sizeof( si );
00515     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
00516     si.nMin  = 0;
00517     si.nMax  = 29;
00518     si.nPage = 10;
00519     si.nPos  = 0;
00520     si.nTrackPos = 1;
00521     ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
00522     ::ShowScrollBar( m_hwndVScrollBar, SB_CTL, TRUE );
00523
00524     /* スクロールバーの作成 */
00525     m_hwndHScrollBar = NULL;
00526     if( m_pShareData->m_Common.m_sWindow.m_bScrollBarHorz ){    /* 水平スクロールバーを使う */
00527         m_hwndHScrollBar = ::CreateWindowEx(
00528             0L,                                 /* no extended styles */
00529             _T("SCROLLBAR"),                        /* scroll bar control class */
00530             NULL,                               /* text for window title bar */
00531             WS_VISIBLE | WS_CHILD | SBS_HORZ,   /* scroll bar styles */
00532             0,                                  /* horizontal position */
00533             0,                                  /* vertical position */
00534             200,                                /* width of the scroll bar */
00535             CW_USEDEFAULT,                      /* default height */
00536             GetHwnd(),                              /* handle of main window */
00537             (HMENU) NULL,                       /* no menu for a scroll bar */
00538             m_hInstance,                        /* instance owning this window */
00539             (LPVOID) NULL                       /* pointer not needed */
00540         );
00541         si.cbSize = sizeof( si );
00542         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
00543         si.nMin  = 0;
00544         si.nMax  = 29;
00545         si.nPage = 10;
00546         si.nPos  = 0;
00547         si.nTrackPos = 1;
00548         ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
00549         ::ShowScrollBar( m_hwndHScrollBar, SB_CTL, TRUE );
00550     }
00551
00552
00553     /* サイズボックス */
00554     if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 ){    /* ファンクションキー表示位置／0:上 1:下 */
00555         m_hwndSizeBox = ::CreateWindowEx(
00556             WS_EX_CONTROLPARENT/*0L*/,          /* no extended styles */
00557             _T("SCROLLBAR"),                        /* scroll bar control class */
00558             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             GetHwnd(),                          /* 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     }else{
00570         m_hwndSizeBox = ::CreateWindowEx(
00571             0L,                                 /* no extended styles */
00572             _T("STATIC"),                       /* scroll bar control class */
00573             NULL,                               /* text for window title bar */
00574             WS_VISIBLE | WS_CHILD/* | SBS_SIZEBOX | SBS_SIZEGRIP*/, /* scroll bar styles */
00575             0,                                  /* horizontal position */
00576             0,                                  /* vertical position */
00577             200,                                /* width of the scroll bar */
00578             CW_USEDEFAULT,                      /* default height */
00579             GetHwnd(),                          /* handle of main window */
00580             (HMENU) NULL,                       /* no menu for a scroll bar */
00581             m_hInstance,                        /* instance owning this window */
00582             (LPVOID) NULL                       /* pointer not needed */
00583         );
00584     }
00585     return TRUE;
00586 }
00587
00588
00589
00593 void CEditView::DestroyScrollBar( void )
00594 {
00595     if( m_hwndVScrollBar )
00596     {
00597         ::DestroyWindow( m_hwndVScrollBar );
00598         m_hwndVScrollBar = NULL;
00599     }
00600
00601     if( m_hwndHScrollBar )
00602     {
00603         ::DestroyWindow( m_hwndHScrollBar );
00604         m_hwndHScrollBar = NULL;
00605     }
00606
00607     if( m_hwndSizeBox )
00608     {
00609         ::DestroyWindow( m_hwndSizeBox );
00610         m_hwndSizeBox = NULL;
00611     }
00612 }
00613
00614
00615
00616 //TCHAR→WCHAR変換。
00617 inline wchar_t tchar_to_wchar(TCHAR tc)
00618 {
00619 #ifdef _UNICODE
00620     return tc;
00621 #else
00622     WCHAR wc=0;
00623     mbtowc(&wc,&tc,sizeof(tc));
00624     return wc;
00625 #endif
00626 }
00627
00628 /*
00629 || メッセージディスパッチャ
00630 */
00631 LRESULT CEditView::DispatchEvent(
00632     HWND    hwnd,   // handle of window
00633     UINT    uMsg,   // message identifier
00634     WPARAM  wParam, // first message parameter
00635     LPARAM  lParam  // second message parameter
00636 )
00637 {
00638     HDC         hdc;
00639     int         nPosX;
00640     int         nPosY;
00641
00642     switch ( uMsg ){
00643     case WM_MOUSEWHEEL:
00644         return OnMOUSEWHEEL( wParam, lParam );
00645
00646     case WM_CREATE:
00647 		::SetWindowLongPtr( hwnd, 0, (LONG_PTR) this );
00648
00649         return 0L;
00650
00651     case WM_SIZE:
00652         OnSize( LOWORD( lParam ), HIWORD( lParam ) );
00653         return 0L;
00654
00655     case WM_SETFOCUS:
00656         OnSetFocus();
00657
00658         /* 親ウィンドウのタイトルを更新 */
00659         SetParentCaption();
00660
00661         return 0L;
00662     case WM_KILLFOCUS:
00663         OnKillFocus();
00664
00665         return 0L;
00666     case WM_CHAR:
00667         GetCommander().HandleCommand( F_WCHAR, TRUE, tchar_to_wchar((TCHAR)wParam), 0, 0, 0 );
00668         return 0L;
00669
00670     case WM_IME_COMPOSITION:
00671         if( IsInsMode() && (lParam & GCS_RESULTSTR)){
00672             HIMC hIMC;
00673             DWORD dwSize;
00674             HGLOBAL hstr;
00675             hIMC = ImmGetContext( hwnd );
00676
00677             if( !hIMC ){
00678                 return 0;
00679 //              MyError( ERROR_NULLCONTEXT );
00680             }
00681
00682             // Get the size of the result string.
00683             dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);
00684
00685             // increase buffer size for NULL terminator,
00686             //  maybe it is in Unicode
00687             dwSize += sizeof( WCHAR );
00688
00689             hstr = GlobalAlloc( GHND, dwSize );
00690             if( hstr == NULL ){
00691                 return 0;
00692 //               MyError( ERROR_GLOBALALLOC );
00693             }
00694
00695             LPTSTR lptstr;
00696             lptstr = (LPTSTR)GlobalLock( hstr );
00697             if( lptstr == NULL ){
00698                 return 0;
00699 //               MyError( ERROR_GLOBALLOCK );
00700             }
00701
00702             // Get the result strings that is generated by IME into lptstr.
00703             ImmGetCompositionString(hIMC, GCS_RESULTSTR, lptstr, dwSize);
00704
00705             /* テキストを貼り付け */
00706             GetCommander().HandleCommand( F_INSTEXT_W, TRUE, (LPARAM)to_wchar(lptstr), TRUE, 0, 0 );
00707
00708             ImmReleaseContext( hwnd, hIMC );
00709
00710             // add this string into text buffer of application
00711
00712             GlobalUnlock( hstr );
00713             GlobalFree( hstr );
00714             return DefWindowProc( hwnd, uMsg, wParam, lParam );
00715 //          return 0;
00716         }else{
00717             return DefWindowProc( hwnd, uMsg, wParam, lParam );
00718         }
00719     case WM_IME_CHAR:
00720         if( ! IsInsMode() /* Oct. 2, 2005 genta */ ){ /* 上書きモードか？ */
00721             GetCommander().HandleCommand( F_IME_CHAR, TRUE, wParam, 0, 0, 0 );
00722         }
00723         return 0L;
00724
00725     case WM_KEYUP:
00726         /* キーリピート状態 */
00727         GetCommander().m_bPrevCommand = 0;
00728         return 0L;
00729
00730     // 2004.04.27 Moca From Here ALT+xでALTを押したままだとキーリピートがOFFにならない対策
00731     case WM_SYSKEYUP:
00732         GetCommander().m_bPrevCommand = 0;
00733         // 念のため呼ぶ
00734         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00735     // 2004.04.27 To Here
00736
00737     case WM_LBUTTONDBLCLK:
00738
00739         // 2007.10.02 nasukoji  非アクティブウィンドウのダブルクリック時はここでカーソルを移動する
00740         // 2007.10.12 genta フォーカス移動のため，OnLBUTTONDBLCLKより移動
00741         if(m_bActivateByMouse){
00742             ::SetFocus( ::GetParent( m_hwndParent ) );
00743
00744             if( m_nMyIndex != m_pcEditWnd->GetActivePane() ){
00745                 /* アクティブなペインを設定 */
00746                 m_pcEditWnd->SetActivePane( m_nMyIndex );
00747             }
00748             // カーソルをクリック位置へ移動する
00749             OnLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00750             // 2007.10.02 nasukoji
00751             m_bActivateByMouse = FALSE;     // マウスによるアクティベートを示すフラグをOFF
00752         }
00753         //      MYTRACE_A( " WM_LBUTTONDBLCLK wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00754         OnLBUTTONDBLCLK( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00755         return 0L;
00756
00757 // novice 2004/10/11 マウス中ボタン対応
00758     case WM_MBUTTONDOWN:
00759         OnMBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00760
00761         return 0L;
00762
00763     case WM_LBUTTONDOWN:
00764 //  case WM_RBUTTONDOWN:
00765         ::SetFocus( ::GetParent( m_hwndParent ) );
00766
00767         if( m_nMyIndex != m_pcEditDoc->m_pcEditWnd->GetActivePane() ){
00768             /* アクティブなペインを設定 */
00769             m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
00770         }
00771         // 2007.10.02 nasukoji
00772         m_bActivateByMouse = FALSE;     // マウスによるアクティベートを示すフラグをOFF
00773 //      MYTRACE_A( " WM_LBUTTONDOWN wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00774         OnLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00775         return 0L;
00776 //  case WM_MBUTTONUP:
00777     case WM_LBUTTONUP:
00778
00779 //      MYTRACE_A( " WM_LBUTTONUP wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00780         OnLBUTTONUP( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00781         return 0L;
00782     case WM_MOUSEMOVE:
00783         OnMOUSEMOVE( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00784         return 0L;
00785
00786     case WM_RBUTTONDBLCLK:
00787         ::SetFocus( ::GetParent( m_hwndParent ) );
00788 //      MYTRACE_A( " WM_RBUTTONDBLCLK wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00789         return 0L;
00790 //  case WM_RBUTTONDOWN:
00791 //      MYTRACE_A( " WM_RBUTTONDOWN wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00792 //      OnRBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00793 //      if( m_nMyIndex != m_pcEditDoc->m_pcEditWnd->GetActivePane() ){
00794 //          /* アクティブなペインを設定 */
00795 //          m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
00796 //      }
00797 //      return 0L;
00798     case WM_RBUTTONUP:
00799 //      MYTRACE_A( " WM_RBUTTONUP wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00800         OnRBUTTONUP( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00801         return 0L;
00802
00803 // novice 2004/10/10 マウスサイドボタン対応
00804     case WM_XBUTTONDOWN:
00805         switch ( HIWORD(wParam) ){
00806         case XBUTTON1:
00807             OnXLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00808             break;
00809         case XBUTTON2:
00810             OnXRBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00811             break;
00812         }
00813
00814         return 0L;
00815
00816     case WM_VSCROLL:
00817         ::SetFocus( ::GetParent( m_hwndParent ) );
00818
00819 //      MYTRACE_A( "    WM_VSCROLL nPos=%d\n", GetScrollPos( m_hwndVScrollBar, SB_CTL ) );
00820         //  Sep. 11, 2004 genta 同期スクロールの関数化
00821         {
00822             CLayoutInt Scroll = OnVScroll(
00823                 (int) LOWORD( wParam ), ((int) HIWORD( wParam )) * m_nVScrollRate );
00824
00825             //  シフトキーが押されていないときだけ同期スクロール
00826             if(!GetKeyState_Shift()){
00827                 SyncScrollV( Scroll );
00828             }
00829         }
00830         if( m_nMyIndex != m_pcEditDoc->m_pcEditWnd->GetActivePane() ){
00831             /* アクティブなペインを設定 */
00832             m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
00833         }
00834
00835         return 0L;
00836
00837     case WM_HSCROLL:
00838         ::SetFocus( ::GetParent( m_hwndParent ) );
00839 //      MYTRACE_A( "    WM_HSCROLL nPos=%d\n", GetScrollPos( m_hwndHScrollBar, SB_CTL ) );
00840         //  Sep. 11, 2004 genta 同期スクロールの関数化
00841         {
00842             CLayoutInt Scroll = OnHScroll(
00843                 (int) LOWORD( wParam ), ((int) HIWORD( wParam )) );
00844
00845             //  シフトキーが押されていないときだけ同期スクロール
00846             if(!GetKeyState_Shift()){
00847                 SyncScrollH( Scroll );
00848             }
00849         }
00850
00851         if( m_nMyIndex != m_pcEditDoc->m_pcEditWnd->GetActivePane() ){
00852             /* アクティブなペインを設定 */
00853             m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
00854         }
00855
00856         return 0L;
00857
00858     case WM_ENTERMENULOOP:
00859         m_bInMenuLoop = TRUE;   /* メニュー モーダル ループに入っています */
00860
00861         /* 辞書Tipが起動されている */
00862         if( 0 == m_dwTipTimer ){
00863             /* 辞書Tipを消す */
00864             m_cTipWnd.Hide();
00865             m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
00866         }
00867         if( m_bHokan ){
00868             m_pcEditDoc->m_pcEditWnd->m_cHokanMgr.Hide();
00869             m_bHokan = FALSE;
00870         }
00871         return 0L;
00872
00873     case WM_EXITMENULOOP:
00874         m_bInMenuLoop = FALSE;  /* メニュー モーダル ループに入っています */
00875         return 0L;
00876
00877
00878     case WM_PAINT:
00879         {
00880             PAINTSTRUCT ps;
00881             hdc = ::BeginPaint( hwnd, &ps );
00882             OnPaint( hdc, &ps, FALSE );
00883             ::EndPaint(hwnd, &ps);
00884         }
00885         return 0L;
00886
00887     case WM_CLOSE:
00888 //      MYTRACE_A( "    WM_CLOSE\n" );
00889         DestroyWindow( hwnd );
00890         return 0L;
00891     case WM_DESTROY:
00892 //      CDropTarget::Revoke_DropTarget();
00893         m_pcDropTarget->Revoke_DropTarget();
00894 //      ::RevokeDragDrop( GetHwnd() );
00895 //      ::OleUninitialize();
00896
00897         /* タイマー終了 */
00898         ::KillTimer( GetHwnd(), IDT_ROLLMOUSE );
00899
00900
00901 //      MYTRACE_A( "    WM_DESTROY\n" );
00902         /*
00903         ||子ウィンドウの破棄
00904         */
00905         if( NULL != m_hwndVScrollBar ){ // Aug. 20, 2005 Aroka
00906             DestroyWindow( m_hwndVScrollBar );
00907             m_hwndVScrollBar = NULL;
00908         }
00909         if( NULL != m_hwndHScrollBar ){
00910             DestroyWindow( m_hwndHScrollBar );
00911             m_hwndHScrollBar = NULL;
00912         }
00913         if( NULL != m_hwndSizeBox ){
00914             DestroyWindow( m_hwndSizeBox );
00915             m_hwndSizeBox = NULL;
00916         }
00917         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
00918             delete m_pcsbwVSplitBox;
00919             m_pcsbwVSplitBox = NULL;
00920         }
00921
00922         if( NULL != m_pcsbwHSplitBox ){ /* 垂直分割ボックス */
00923             delete m_pcsbwHSplitBox;
00924             m_pcsbwHSplitBox = NULL;
00925         }
00926
00927
00928         m_hWnd = NULL;
00929         return 0L;
00930
00931     case MYWM_DOSPLIT:
00932         nPosX = (int)wParam;
00933         nPosY = (int)lParam;
00934 //      MYTRACE_A( "MYWM_DOSPLIT nPosX=%d nPosY=%d\n", nPosX, nPosY );
00935 		::SendMessageAny( m_hwndParent, MYWM_DOSPLIT, wParam, lParam );
00936         return 0L;
00937
00938     case MYWM_SETACTIVEPANE:
00939         m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
00940 		::PostMessageAny( m_hwndParent, MYWM_SETACTIVEPANE, (WPARAM)m_nMyIndex, 0 );
00941         return 0L;
00942
00943     case MYWM_IME_REQUEST:  /* 再変換  by minfu 2002.03.27 */ // 20020331 aroka
00944
00945         // 2002.04.09 switch case に変更  minfu
00946         switch ( wParam ){
00947         case IMR_RECONVERTSTRING:
00948             return SetReconvertStruct((PRECONVERTSTRING)lParam, UNICODE_BOOL);
00949
00950         case IMR_CONFIRMRECONVERTSTRING:
00951             return SetSelectionFromReonvert((PRECONVERTSTRING)lParam, UNICODE_BOOL);
00952
00953         }
00954
00955         return 0L;
00956
00957     // 2007.10.02 nasukoji  マウスクリックにてアクティベートされた時はカーソル位置を移動しない
00958     case WM_MOUSEACTIVATE:
00959         // マウスクリックによりバックグラウンドウィンドウがアクティベートされた
00960         //  2007.10.08 genta オプション追加
00961         if( m_pShareData->m_Common.m_sGeneral.m_bNoCaretMoveByActivation &&
00962            (! m_pcEditDoc->m_pcEditWnd->IsActiveApp()))
00963         {
00964             m_bActivateByMouse = TRUE;      // マウスによるアクティベート
00965             return MA_ACTIVATEANDEAT;       // アクティベート後イベントを破棄
00966         }
00967
00968         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00969
00970     default:
00971 // << 20020331 aroka 再変換対応 for 95/NT
00972         if( (m_uMSIMEReconvertMsg && (uMsg == m_uMSIMEReconvertMsg))
00973             || (m_uATOKReconvertMsg && (uMsg == m_uATOKReconvertMsg))){
00974         // 2002.04.08 switch case に変更 minfu
00975             switch ( wParam ){
00976             case IMR_RECONVERTSTRING:
00977                 return SetReconvertStruct((PRECONVERTSTRING)lParam, true);
00978
00979             case IMR_CONFIRMRECONVERTSTRING:
00980                 return SetSelectionFromReonvert((PRECONVERTSTRING)lParam, true);
00981
00982             }
00983             return 0L;
00984         }
00985 // >> by aroka
00986
00987         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00988     }
00989 }
00990
00991
00992
00993
00994 void CEditView::OnMove( int x, int y, int nWidth, int nHeight )
00995 {
00996     MoveWindow( GetHwnd(), x, y, nWidth, nHeight, TRUE );
00997     return;
00998 }
00999
01000
01001
01002
01003 /* ウィンドウサイズの変更処理 */
01004 void CEditView::OnSize( int cx, int cy )
01005 {
01006     if( NULL == GetHwnd() ){
01007         return;
01008     }
01009     if( cx == 0 && cy == 0 ){
01010         return;
01011     }
01012
01013     int nVSplitHeight = 0;  /* 垂直分割ボックスの高さ */
01014     int nHSplitWidth  = 0;  /* 水平分割ボックスの幅 */
01015
01016     //スクロールバーのサイズ基準値を取得
01017     int nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
01018     int nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
01019     int nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01020     int nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
01021
01022     /* 垂直分割ボックス */
01023     if( NULL != m_pcsbwVSplitBox ){
01024         nVSplitHeight = 7;
01025         ::MoveWindow( m_pcsbwVSplitBox->GetHwnd(), cx - nCxVScroll , 0, nCxVScroll, nVSplitHeight, TRUE );
01026     }
01027     /* 水平分割ボックス */
01028     if( NULL != m_pcsbwHSplitBox ){
01029         nHSplitWidth = 7;
01030         ::MoveWindow( m_pcsbwHSplitBox->GetHwnd(),0, cy - nCyHScroll, nHSplitWidth, nCyHScroll, TRUE );
01031     }
01032     /* 垂直スクロールバー */
01033     if( NULL != m_hwndVScrollBar ){
01034         ::MoveWindow( m_hwndVScrollBar, cx - nCxVScroll , 0 + nVSplitHeight, nCxVScroll, cy - nCyVScroll - nVSplitHeight, TRUE );
01035     }
01036     /* 水平スクロールバー */
01037     if( NULL != m_hwndHScrollBar ){
01038         ::MoveWindow( m_hwndHScrollBar, 0 + nHSplitWidth, cy - nCyHScroll, cx - nCxVScroll - nHSplitWidth, nCyHScroll, TRUE );
01039     }
01040
01041     /* サイズボックス */
01042     if( NULL != m_hwndSizeBox ){
01043         ::MoveWindow( m_hwndSizeBox, cx - nCxVScroll, cy - nCyHScroll, nCxHScroll, nCyVScroll, TRUE );
01044     }
01045
01046     // エリア情報更新
01047     GetTextArea().TextArea_OnSize(
01048         CMySize(cx,cy),
01049         nCxVScroll,
01050         m_hwndHScrollBar?nCyHScroll:0
01051     );
01052
01053     /* スクロールバーの状態を更新する */
01054     AdjustScrollBars();
01055
01056     /* 再描画用メモリＢＭＰ */
01057     if( m_hbmpCompatBMP != NULL ){
01058         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );    /* 再描画用メモリＢＭＰ(OLD) */
01059         ::DeleteObject( m_hbmpCompatBMP );
01060     }
01061     HDC hdc = ::GetDC( GetHwnd() );
01062     m_hbmpCompatBMP = ::CreateCompatibleBitmap( hdc, cx, cy );
01063     m_hbmpCompatBMPOld = (HBITMAP)::SelectObject( m_hdcCompatDC, m_hbmpCompatBMP );
01064     ::ReleaseDC( GetHwnd(), hdc );
01065
01066     /* 親ウィンドウのタイトルを更新 */
01067     SetParentCaption(); //  [Q] genta 本当に必要？
01068
01069     return;
01070 }
01071
01072
01077 bool CEditView::IsImeON( void )
01078 {
01079     bool bRet;
01080     HIMC    hIme;
01081     DWORD   conv, sent;
01082
01083     //  From here Nov. 26, 2006 genta
01084     hIme = ImmGetContext( m_hwndParent );
01085     if( ImmGetOpenStatus( hIme ) != FALSE ){
01086         ImmGetConversionStatus( hIme, &conv, &sent );
01087         if(( conv & IME_CMODE_NOCONVERSION ) == 0 ){
01088             bRet = true;
01089         }
01090         else {
01091             bRet = false;
01092         }
01093     }
01094     else {
01095         bRet = false;
01096     }
01097     ImmReleaseContext( m_hwndParent, hIme );
01098     //  To here Nov. 26, 2006 genta
01099
01100     return bRet;
01101 }
01102
01103
01104
01105
01106 /* 入力フォーカスを受け取ったときの処理 */
01107 void CEditView::OnSetFocus( void )
01108 {
01109     // 2004.04.02 Moca EOFのみのレイアウト行は、0桁目のみ有効.EOFより下の行のある場合は、EOF位置にする
01110     {
01111         CLayoutPoint ptPos = GetCaret().GetCaretLayoutPos();
01112         if( GetCaret().GetAdjustCursorPos( &ptPos ) ){
01113             GetCaret().MoveCursor( ptPos, FALSE );
01114             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01115         }
01116     }
01117
01118     GetCaret().ShowEditCaret();
01119
01120     SetIMECompFormFont();
01121
01122     /* ルーラのカーソルをグレーから黒に変更する */
01123     HDC hdc = ::GetDC( GetHwnd() );
01124     GetRuler().DispRuler( hdc );
01125     ::ReleaseDC( GetHwnd(), hdc );
01126
01127     // 03/02/18 対括弧の強調表示(描画) ai
01128     m_bDrawBracketPairFlag = TRUE;
01129     DrawBracketPair( true );
01130
01131     return;
01132 }
01133
01134
01135
01136
01137
01138 /* 入力フォーカスを失ったときの処理 */
01139 void CEditView::OnKillFocus( void )
01140 {
01141     // 03/02/18 対括弧の強調表示(消去) ai
01142     DrawBracketPair( false );
01143     m_bDrawBracketPairFlag = FALSE;
01144
01145     GetCaret().DestroyCaret();
01146
01147     /* ルーラー描画 */
01148     /* ルーラのカーソルを黒からグレーに変更する */
01149     HDC hdc = ::GetDC( GetHwnd() );
01150     GetRuler().DispRuler( hdc );
01151     ::ReleaseDC( GetHwnd(), hdc );
01152
01153     /* 辞書Tipが起動されている */
01154     if( 0 == m_dwTipTimer ){
01155         /* 辞書Tipを消す */
01156         m_cTipWnd.Hide();
01157         m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
01158     }
01159
01160     if( m_bHokan ){
01161         m_pcEditDoc->m_pcEditWnd->m_cHokanMgr.Hide();
01162         m_bHokan = FALSE;
01163     }
01164
01165     return;
01166 }
01167
01168
01169
01170
01171
01181 CLayoutInt CEditView::OnVScroll( int nScrollCode, int nPos )
01182 {
01183     CLayoutInt nScrollVal = CLayoutInt(0);
01184
01185     switch( nScrollCode ){
01186     case SB_LINEDOWN:
01187 //      for( i = 0; i < 4; ++i ){
01188 //          ScrollAtV( GetTextArea().GetViewTopLine() + 1 );
01189 //      }
01190         nScrollVal = ScrollAtV( GetTextArea().GetViewTopLine() + m_pShareData->m_Common.m_sGeneral.m_nRepeatedScrollLineNum );
01191         break;
01192     case SB_LINEUP:
01193 //      for( i = 0; i < 4; ++i ){
01194 //          ScrollAtV( GetTextArea().GetViewTopLine() - 1 );
01195 //      }
01196         nScrollVal = ScrollAtV( GetTextArea().GetViewTopLine() - m_pShareData->m_Common.m_sGeneral.m_nRepeatedScrollLineNum );
01197         break;
01198     case SB_PAGEDOWN:
01199         nScrollVal = ScrollAtV( GetTextArea().GetBottomLine() );
01200         break;
01201     case SB_PAGEUP:
01202         nScrollVal = ScrollAtV( GetTextArea().GetViewTopLine() - GetTextArea().m_nViewRowNum );
01203         break;
01204     case SB_THUMBPOSITION:
01205         nScrollVal = ScrollAtV( CLayoutInt(nPos) );
01206         break;
01207     case SB_THUMBTRACK:
01208         nScrollVal = ScrollAtV( CLayoutInt(nPos) );
01209         break;
01210     case SB_TOP:
01211         nScrollVal = ScrollAtV( CLayoutInt(0) );
01212         break;
01213     case SB_BOTTOM:
01214         nScrollVal = ScrollAtV(( m_pcEditDoc->m_cLayoutMgr.GetLineCount() ) - GetTextArea().m_nViewRowNum );
01215         break;
01216     default:
01217         break;
01218     }
01219     return nScrollVal;
01220 }
01221
01231 CLayoutInt CEditView::OnHScroll( int nScrollCode, int nPos )
01232 {
01233     CLayoutInt nScrollVal = CLayoutInt(0);
01234
01235     GetRuler().SetRedrawFlag(); // YAZAKI
01236     switch( nScrollCode ){
01237     case SB_LINELEFT:
01238         nScrollVal = ScrollAtH( GetTextArea().GetViewLeftCol() - CLayoutInt(4) );
01239         break;
01240     case SB_LINERIGHT:
01241         nScrollVal = ScrollAtH( GetTextArea().GetViewLeftCol() + CLayoutInt(4) );
01242         break;
01243     case SB_PAGELEFT:
01244         nScrollVal = ScrollAtH( GetTextArea().GetViewLeftCol() - GetTextArea().m_nViewColNum );
01245         break;
01246     case SB_PAGERIGHT:
01247         nScrollVal = ScrollAtH( GetTextArea().GetRightCol() );
01248         break;
01249     case SB_THUMBPOSITION:
01250         nScrollVal = ScrollAtH( CLayoutInt(nPos) );
01251 //      MYTRACE_A( "nPos=%d\n", nPos );
01252         break;
01253     case SB_THUMBTRACK:
01254         nScrollVal = ScrollAtH( CLayoutInt(nPos) );
01255 //      MYTRACE_A( "nPos=%d\n", nPos );
01256         break;
01257     case SB_LEFT:
01258         nScrollVal = ScrollAtH( CLayoutInt(0) );
01259         break;
01260     case SB_RIGHT:
01261         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
01262         nScrollVal = ScrollAtH( m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() - GetTextArea().m_nViewColNum );
01263         break;
01264     }
01265     return nScrollVal;
01266 }
01267
01268
01269
01270 //void CEditView::Draw3dRect( HDC hdc, int x, int y, int cx, int cy,
01271 //  COLORREF clrTopLeft, COLORREF clrBottomRight )
01272 //{
01273 //  return;
01274 //}
01275 //
01276 //void CEditView::FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr )
01277 //{
01278 //  RECT    rc;
01279 //  ::SetBkColor( hdc, clr );
01280 //  ::SetRect( &rc, x, y, x + cx, y + cy );
01281 //  ::ExtTextOutW_AnyBuild( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
01282 //  return;
01283 //}
01284
01285
01286
01287
01288
01289
01290 /* フォントの変更 */
01291 void CEditView::SetFont( void )
01292 {
01293     // メトリクス更新
01294     this->GetTextMetrics().Update(GetFontset().GetFontHan());
01295
01296     // エリア情報を更新
01297     HDC hdc = ::GetDC( GetHwnd() );
01298     GetTextArea().UpdateAreaMetrics(hdc);
01299     ::ReleaseDC( GetHwnd(), hdc );
01300
01301     // 行番号表示に必要な幅を設定
01302     GetTextArea().DetectWidthOfLineNumberArea( false );
01303
01304     // ぜんぶ再描画
01305     ::InvalidateRect( GetHwnd(), NULL, TRUE );
01306
01307     //  Oct. 11, 2002 genta IMEのフォントも変更
01308     SetIMECompFormFont();
01309 }
01310
01311
01312
01313
01314
01315
01316
01317
01318
01319 /* スクロールバーの状態を更新する */
01320 void CEditView::AdjustScrollBars( void )
01321 {
01322     if( !GetDrawSwitch() ){
01323         return;
01324     }
01325
01326
01327     CLayoutInt  nAllLines;
01328     int         nVScrollRate;
01329     SCROLLINFO  si;
01330
01331     if( NULL != m_hwndVScrollBar ){
01332         /* 垂直スクロールバー */
01333         /* nAllLines / nVScrollRate < 65535 となる整数nVScrollRateを求める */
01334         nAllLines = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
01335         nAllLines+=2;
01336         nVScrollRate = 1;
01337         while( nAllLines / nVScrollRate > 65535 ){
01338             ++nVScrollRate;
01339         }
01340         si.cbSize = sizeof( si );
01341         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01342         si.nMin  = 0;
01343         si.nMax  = (Int)nAllLines / nVScrollRate - 1;   /* 全行数 */
01344         si.nPage = (Int)GetTextArea().m_nViewRowNum / nVScrollRate; /* 表示域の行数 */
01345         si.nPos  = (Int)GetTextArea().GetViewTopLine() / nVScrollRate;  /* 表示域の一番上の行(0開始) */
01346         si.nTrackPos = nVScrollRate;
01347         ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
01348         m_nVScrollRate = nVScrollRate;              /* 垂直スクロールバーの縮尺 */
01349
01350         //  Nov. 16, 2002 genta
01351         //  縦スクロールバーがDisableになったときは必ず全体が画面内に収まるように
01352         //  スクロールさせる
01353         //  2005.11.01 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
01354         if( GetTextArea().m_nViewRowNum >= nAllLines ){
01355             ScrollAtV( CLayoutInt(0) );
01356         }
01357     }
01358     if( NULL != m_hwndHScrollBar ){
01359
01360         /* 水平スクロールバー */
01361         si.cbSize = sizeof( si );
01362         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01363         si.nMin  = 0;
01364         si.nMax  = (Int)m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() - 1; // Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
01365         si.nPage = (Int)GetTextArea().m_nViewColNum;            /* 表示域の桁数 */
01366         si.nPos  = (Int)GetTextArea().GetViewLeftCol();     /* 表示域の一番左の桁(0開始) */
01367         si.nTrackPos = 1;
01368         ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
01369
01370         //  2006.1.28 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
01371         if( GetTextArea().m_nViewColNum >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() ){
01372             ScrollAtH( CLayoutInt(0) );
01373         }
01374     }
01375
01376     return;
01377 }
01378
01379
01380
01402 void CEditView::MoveCursorSelecting(
01403     CLayoutPoint ptWk_CaretPos,
01404     /*
01405     int nWk_CaretPosX,
01406     int nWk_CaretPosY,
01407     */
01408     bool bSelect,
01409     int nCaretMarginRate
01410 )
01411 {
01412     if( bSelect ){
01413         if( !GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
01414             /* 現在のカーソル位置から選択を開始する */
01415             GetSelectionInfo().BeginSelectArea();
01416         }
01417     }else{
01418         if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
01419             /* 現在の選択範囲を非選択状態に戻す */
01420             GetSelectionInfo().DisableSelectArea( TRUE );
01421         }
01422     }
01423     GetCaret().MoveCursor( ptWk_CaretPos, TRUE, nCaretMarginRate ); // 2007.08.22 ryoji nCaretMarginRateが使われていなかった
01424     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01425     if( bSelect ){
01426         /*  現在のカーソル位置によって選択範囲を変更．
01427
01428             2004.04.02 Moca
01429             キャレット位置が不正だった場合にMoveCursorの移動結果が
01430             引数で与えた座標とは異なることがあるため，
01431             nPosX, nPosYの代わりに実際の移動結果を使うように．
01432         */
01433         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
01434     }
01435
01436 }
01437
01438
01439
01440 /* IME編集エリアの位置を変更 */
01441 void CEditView::SetIMECompFormPos( void )
01442 {
01443     //
01444     // If current composition form mode is near caret operation,
01445     // application should inform IME UI the caret position has been
01446     // changed. IME UI will make decision whether it has to adjust
01447     // composition window position.
01448     //
01449     //
01450     RECT            rc;
01451     POINT           po;
01452     COMPOSITIONFORM CompForm;
01453     HIMC            hIMC = ::ImmGetContext( GetHwnd() );
01454     POINT           point;
01455     HWND            hwndFrame;
01456     hwndFrame = ::GetParent( m_hwndParent );
01457
01458     ::GetCaretPos( &point );
01459     CompForm.dwStyle = CFS_POINT;
01460     CompForm.ptCurrentPos.x = (long) point.x + 1;
01461     CompForm.ptCurrentPos.y = (long) point.y + 1 + GetCaret().GetCaretSize().cy - GetTextMetrics().GetHankakuHeight();
01462
01463     ::GetWindowRect( GetHwnd(), &rc );
01464     po.x = 0;
01465     po.y = 0;
01466     ::ClientToScreen( hwndFrame, &po );
01467     CompForm.ptCurrentPos.x += ( rc.left - po.x );
01468     CompForm.ptCurrentPos.y += ( rc.top  - po.y );
01469
01470     if ( hIMC ){
01471         ::ImmSetCompositionWindow( hIMC, &CompForm );
01472     }
01473     ::ImmReleaseContext( GetHwnd() , hIMC );
01474     return;
01475 }
01476
01477
01478
01479
01480
01481 /* IME編集エリアの表示フォントを変更 */
01482 void CEditView::SetIMECompFormFont( void )
01483 {
01484     //
01485     // If current composition form mode is near caret operation,
01486     // application should inform IME UI the caret position has been
01487     // changed. IME UI will make decision whether it has to adjust
01488     // composition window position.
01489     //
01490     //
01491     HIMC    hIMC = ::ImmGetContext( GetHwnd() );
01492     if ( hIMC ){
01493         ::ImmSetCompositionFont( hIMC, &(m_pShareData->m_Common.m_sView.m_lf) );
01494     }
01495     ::ImmReleaseContext( GetHwnd() , hIMC );
01496     return;
01497 }
01498
01499
01500
01501
01502
01503
01504
01505
01506 /* マウス左ボタン押下 */
01507 void CEditView::OnLBUTTONDOWN( WPARAM fwKeys, int _xPos , int _yPos )
01508 {
01509     CMyPoint ptMouse(_xPos,_yPos);
01510
01511     if( m_bHokan ){
01512         m_pcEditDoc->m_pcEditWnd->m_cHokanMgr.Hide();
01513         m_bHokan = FALSE;
01514     }
01515
01516     //isearch 2004.10.22 isearchをキャンセルする
01517     if (m_nISearchMode > 0 ){
01518         ISearchExit();
01519     }
01520
01521     CNativeW    cmemCurText;
01522     const wchar_t*  pLine;
01523     CLogicInt       nLineLen;
01524
01525     CLayoutRange sRange;
01526
01527     CLogicInt   nIdx;
01528     int         nWork;
01529
01530     if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() == 0 ){
01531         return;
01532     }
01533     if( !GetCaret().ExistCaretFocus() ){ //フォーカスがないとき
01534         return;
01535     }
01536
01537     /* 辞書Tipが起動されている */
01538     if( 0 == m_dwTipTimer ){
01539         /* 辞書Tipを消す */
01540         m_cTipWnd.Hide();
01541         m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
01542     }
01543     else{
01544         m_dwTipTimer = ::GetTickCount();        /* 辞書Tip起動タイマー */
01545     }
01546
01547     /* 現在のマウスカーソル位置→レイアウト位置 */
01548     CLayoutPoint ptNew;
01549     GetTextArea().ClientToLayout(ptMouse, &ptNew);
01550
01551     if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
01552         if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DropSource ){      /* OLEによるドラッグ元にするか */
01553             /* 行選択エリアをドラッグした */
01554             if( ptMouse.x < GetTextArea().GetAreaLeft() - GetTextMetrics().GetHankakuDx() ){
01555                 goto normal_action;
01556             }
01557             /* 指定カーソル位置が選択エリア内にあるか */
01558             if( 0 == IsCurrentPositionSelected(ptNew) ){
01559                 /* 選択範囲のデータを取得 */
01560                 if( GetSelectedData( &cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
01561                     DWORD dwEffects;
01562                     m_bDragSource = TRUE;
01563                     CDataObject data( cmemCurText.GetStringPtr() );
01564                     dwEffects = data.DragDrop( TRUE, DROPEFFECT_COPY | DROPEFFECT_MOVE );
01565                     m_bDragSource = FALSE;
01566                     if( 0 == dwEffects ){
01567                         if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
01568                             /* 現在の選択範囲を非選択状態に戻す */
01569                             GetSelectionInfo().DisableSelectArea( TRUE );
01570
01571 //@@@ 2002.01.08 YAZAKI フリーカーソルOFFで複数行選択し、行の後ろをクリックするとそこにキャレットが置かれてしまうバグ修正
01572                             /* カーソル移動。 */
01573                             if( ptMouse.y >= GetTextArea().GetAreaTop() && ptMouse.y < GetTextArea().GetAreaBottom() ){
01574                                 if( ptMouse.x >= GetTextArea().GetAreaLeft() && ptMouse.x < GetTextArea().GetAreaRight() ){
01575                                     GetCaret().MoveCursorToClientPoint( ptMouse );
01576                                 }
01577                                 else if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01578                                     GetCaret().MoveCursorToClientPoint( CMyPoint(GetTextArea().GetDocumentLeftClientPointX(), ptMouse.y) );
01579                                 }
01580                             }
01581                         }
01582                     }
01583                 }
01584                 return;
01585             }
01586         }
01587     }
01588
01589 normal_action:;
01590
01591     /* ALTキーが押されていたか */
01592     if( GetKeyState_Alt() ){
01593         if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
01594             /* 現在の選択範囲を非選択状態に戻す */
01595             GetSelectionInfo().DisableSelectArea( TRUE );
01596         }
01597         if( ptMouse.y >= GetTextArea().GetAreaTop()  && ptMouse.y < GetTextArea().GetAreaBottom() ){
01598             if( ptMouse.x >= GetTextArea().GetAreaLeft() && ptMouse.x < GetTextArea().GetAreaRight() ){
01599                 GetCaret().MoveCursorToClientPoint( ptMouse );
01600             }
01601             else if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01602                 GetCaret().MoveCursorToClientPoint( CMyPoint(GetTextArea().GetDocumentLeftClientPointX(), ptMouse.y) );
01603             }else{
01604                 return;
01605             }
01606         }
01607         GetSelectionInfo().m_ptMouseRollPosOld = ptMouse;   // マウス範囲選択前回位置(XY座標)
01608         /*
01609         m_nMouseRollPosXOld = xPos;     // マウス範囲選択前回位置(X座標)
01610         m_nMouseRollPosYOld = yPos;     // マウス範囲選択前回位置(Y座標)
01611         */
01612
01613         /* 範囲選択開始 & マウスキャプチャー */
01614         GetSelectionInfo().SelectBeginBox();
01615
01616         ::SetCapture( GetHwnd() );
01617         GetCaret().HideCaret_( GetHwnd() ); // 2002/07/22 novice
01618         /* 現在のカーソル位置から選択を開始する */
01619         GetSelectionInfo().BeginSelectArea( );
01620         GetCaret().m_cUnderLine.CaretUnderLineOFF( TRUE );
01621         GetCaret().m_cUnderLine.Lock();
01622         if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01623             /* カーソル下移動 */
01624             GetCommander().Command_DOWN( TRUE, FALSE );
01625         }
01626     }
01627     else{
01628         /* カーソル移動 */
01629         if( ptMouse.y >= GetTextArea().GetAreaTop() && ptMouse.y < GetTextArea().GetAreaBottom() ){
01630             if( ptMouse.x >= GetTextArea().GetAreaLeft() && ptMouse.x < GetTextArea().GetAreaRight() ){
01631             }
01632             else if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01633             }
01634             else{
01635                 return;
01636             }
01637         }
01638         else if( ptMouse.y < GetTextArea().GetAreaTop() ){
01639             //  ルーラクリック
01640             return;
01641         }
01642         else {
01643             return;
01644         }
01645
01646         /* マウスのキャプチャなど */
01647         GetSelectionInfo().m_ptMouseRollPosOld = ptMouse;   // マウス範囲選択前回位置(XY座標)
01648
01649         /* 範囲選択開始 & マウスキャプチャー */
01650         GetSelectionInfo().SelectBeginNazo();
01651         ::SetCapture( GetHwnd() );
01652         GetCaret().HideCaret_( GetHwnd() ); // 2002/07/22 novice
01653
01654
01655         /* 選択開始処理 */
01656         /* SHIFTキーが押されていたか */
01657         if(GetKeyState_Shift()){
01658             if( GetSelectionInfo().IsTextSelected() ){      /* テキストが選択されているか */
01659                 if( GetSelectionInfo().IsBoxSelecting() ){  /* 矩形範囲選択中 */
01660                     /* 現在の選択範囲を非選択状態に戻す */
01661                     GetSelectionInfo().DisableSelectArea( TRUE );
01662
01663                     /* 現在のカーソル位置から選択を開始する */
01664                     GetSelectionInfo().BeginSelectArea( );
01665                 }
01666                 else{
01667                 }
01668             }
01669             else{
01670                 /* 現在のカーソル位置から選択を開始する */
01671                 GetSelectionInfo().BeginSelectArea( );
01672             }
01673
01674             /* カーソル移動 */
01675             if( ptMouse.y >= GetTextArea().GetAreaTop() && ptMouse.y < GetTextArea().GetAreaBottom() ){
01676                 if( ptMouse.x >= GetTextArea().GetAreaLeft() && ptMouse.x < GetTextArea().GetAreaRight() ){
01677                     GetCaret().MoveCursorToClientPoint( ptMouse );
01678                 }
01679                 else if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01680                     GetCaret().MoveCursorToClientPoint( CMyPoint(GetTextArea().GetDocumentLeftClientPointX(), ptMouse.y) );
01681                 }
01682             }
01683         }
01684         else{
01685             if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
01686                 /* 現在の選択範囲を非選択状態に戻す */
01687                 GetSelectionInfo().DisableSelectArea( TRUE );
01688             }
01689             /* カーソル移動 */
01690             if( ptMouse.y >= GetTextArea().GetAreaTop() && ptMouse.y < GetTextArea().GetAreaBottom() ){
01691                 if( ptMouse.x >= GetTextArea().GetAreaLeft() && ptMouse.x < GetTextArea().GetAreaRight() ){
01692                     GetCaret().MoveCursorToClientPoint( ptMouse );
01693                 }
01694                 else if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01695                     GetCaret().MoveCursorToClientPoint( CMyPoint(GetTextArea().GetDocumentLeftClientPointX(), ptMouse.y) );
01696                 }
01697             }
01698             /* 現在のカーソル位置から選択を開始する */
01699             GetSelectionInfo().BeginSelectArea( );
01700         }
01701
01702
01703         /******* この時点で必ず true == GetSelectionInfo().IsTextSelected() の状態になる ****:*/
01704         if( !GetSelectionInfo().IsTextSelected() ){
01705 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
01706                 "バグってる"
01707             );
01708             return;
01709         }
01710
01711         int nWorkRel;
01712         nWorkRel = IsCurrentPositionSelected(
01713             GetCaret().GetCaretLayoutPos()  // カーソル位置
01714         );
01715
01716
01717         /* 現在のカーソル位置によって選択範囲を変更 */
01718         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
01719
01720
01721         /* CTRLキーが押されていたか */
01722         if( GetKeyState_Control() ){
01723             GetSelectionInfo().m_bBeginWordSelect = TRUE;       /* 単語単位選択中 */
01724             if( !GetSelectionInfo().IsTextSelected() ){
01725                 /* 現在位置の単語選択 */
01726                 if ( GetCommander().Command_SELECTWORD() ){
01727                     GetSelectionInfo().m_sSelectBgn = GetSelectionInfo().m_sSelect;
01728                 }
01729             }else{
01730
01731                 /* 選択領域描画 */
01732                 GetSelectionInfo().DrawSelectArea();
01733
01734
01735                 /* 指定された桁に対応する行のデータ内の位置を調べる */
01736                 const CLayout* pcLayout;
01737                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr(
01738                     GetSelectionInfo().m_sSelect.GetFrom().GetY2(),
01739                     &nLineLen,
01740                     &pcLayout
01741                 );
01742                 if( NULL != pLine ){
01743                     nIdx = LineColmnToIndex( pcLayout, GetSelectionInfo().m_sSelect.GetFrom().GetX2() );
01744                     /* 現在位置の単語の範囲を調べる */
01745                     int nWhareResult = m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
01746                         GetSelectionInfo().m_sSelect.GetFrom().GetY2(),
01747                         nIdx,
01748                         &sRange,
01749                         NULL,
01750                         NULL
01751                     );
01752                     if( nWhareResult ){
01753                         // 指定された行のデータ内の位置に対応する桁の位置を調べる。
01754                         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
01755                         /*
01756                         pLine            = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetFrom().GetY2(), &nLineLen, &pcLayout );
01757                         sRange.SetFromX( LineIndexToColmn( pcLayout, sRange.GetFrom().x ) );
01758                         pLine            = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetTo().GetY2(), &nLineLen, &pcLayout );
01759                         sRange.SetToX( LineIndexToColmn( pcLayout, sRange.GetTo().x ) );
01760                         */
01761
01762                         nWork = IsCurrentPositionSelected(
01763                             sRange.GetFrom()    // カーソル位置
01764                         );
01765                         if( -1 == nWork || 0 == nWork ){
01766                             GetSelectionInfo().m_sSelect.SetFrom(sRange.GetFrom());
01767                             if( 1 == nWorkRel ){
01768                                 GetSelectionInfo().m_sSelectBgn = sRange;
01769                             }
01770                         }
01771                     }
01772                 }
01773                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( GetSelectionInfo().m_sSelect.GetTo().GetY2(), &nLineLen, &pcLayout );
01774                 if( NULL != pLine ){
01775                     nIdx = LineColmnToIndex( pcLayout, GetSelectionInfo().m_sSelect.GetTo().GetX2() );
01776                     /* 現在位置の単語の範囲を調べる */
01777                     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
01778                         GetSelectionInfo().m_sSelect.GetTo().GetY2(), nIdx, &sRange, NULL, NULL )
01779                     ){
01780                         // 指定された行のデータ内の位置に対応する桁の位置を調べる
01781                         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
01782                         /*
01783                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetFrom().GetY2(), &nLineLen, &pcLayout );
01784                         sRange.SetFromX( LineIndexToColmn( pcLayout, sRange.GetFrom().x ) );
01785                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetTo().GetY2(), &nLineLen, &pcLayout );
01786                         sRange.SetToX( LineIndexToColmn( pcLayout, sRange.GetTo().x ) );
01787                         */
01788
01789                         nWork = IsCurrentPositionSelected(sRange.GetFrom());
01790                         if( -1 == nWork || 0 == nWork ){
01791                             GetSelectionInfo().m_sSelect.SetTo(sRange.GetFrom());
01792                         }
01793                         if( 1 == IsCurrentPositionSelected(sRange.GetTo()) ){
01794                             GetSelectionInfo().m_sSelect.SetTo(sRange.GetTo());
01795                         }
01796                         if( -1 == nWorkRel || 0 == nWorkRel ){
01797                             GetSelectionInfo().m_sSelectBgn=sRange;
01798                         }
01799                     }
01800                 }
01801
01802                 if( 0 < nWorkRel ){
01803
01804                 }
01805                 /* 選択領域描画 */
01806                 GetSelectionInfo().DrawSelectArea();
01807             }
01808         }
01809         if( ptMouse.x < GetTextArea().GetAreaLeft() ){
01810             /* 現在のカーソル位置から選択を開始する */
01811             GetSelectionInfo().m_bBeginLineSelect = TRUE;
01812
01813             // 2002.10.07 YAZAKI 折り返し行をインデントしているときに選択がおかしいバグの対策
01814             GetCommander().Command_GOLINEEND( TRUE, FALSE );
01815             GetCommander().Command_RIGHT( true, false, false );
01816
01817             //  Apr. 14, 2003 genta
01818             //  行番号の下をクリックしてドラッグを開始するとおかしくなるのを修正
01819             //  行番号をクリックした場合にはGetSelectionInfo().ChangeSelectAreaByCurrentCursor()にて
01820             //  GetSelectionInfo().m_sSelect.GetTo().x/GetSelectionInfo().m_sSelect.GetTo().yに-1が設定されるが、上の
01821             //  GetCommander().Command_GOLINEEND(), Command_RIGHT()によって行選択が行われる。
01822             //  しかしキャレットが末尾にある場合にはキャレットが移動しないので
01823             //  GetSelectionInfo().m_sSelect.GetTo().x/GetSelectionInfo().m_sSelect.GetTo().yが-1のまま残ってしまい、それが
01824             //  原点に設定されるためにおかしくなっていた。
01825             //  なので、範囲選択が行われていない場合は起点末尾の設定を行わないようにする
01826             if( GetSelectionInfo().IsTextSelected() ){
01827                 GetSelectionInfo().m_sSelectBgn.SetTo( GetSelectionInfo().m_sSelect.GetTo() );
01828             }
01829         }
01830         else{
01831             /* URLがクリックされたら選択するか */
01832             //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLは普通の文字として扱う
01833             if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp &&
01834                 TRUE == m_pShareData->m_Common.m_sEdit.m_bSelectClickedURL ){
01835
01836                 //int           nUrlLine;   // URLの行(折り返し単位)
01837                 //int           nUrlIdxBgn; // URLの位置(行頭からのバイト位置)
01838                 //int           nUrlLen;    // URLの長さ(バイト数)
01839                 CLogicRange cUrlRange;
01840                 // カーソル位置にURLが有る場合のその範囲を調べる
01841                 bool bIsUrl = IsCurrentPositionURL(
01842                     GetCaret().GetCaretLayoutPos(), // カーソル位置
01843                     /*
01844                     &nUrlLine,              // URLの行(改行単位)
01845                     &nUrlIdxBgn,            // URLの位置(行頭からのバイト位置)
01846                     &nUrlLen,               // URLの長さ(バイト数)
01847                     */
01848                     &cUrlRange,
01849                     NULL                    // URL受け取り先
01850                 );
01851                 if( bIsUrl ){
01852                     /* 現在の選択範囲を非選択状態に戻す */
01853                     GetSelectionInfo().DisableSelectArea( TRUE );
01854
01855                     /*
01856                       カーソル位置変換
01857                       物理位置(行頭からのバイト数、折り返し無し行位置)
01858                       →レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01859                         2002/04/08 YAZAKI 少しでもわかりやすく。
01860                     */
01861                     CLayoutRange sRangeB;
01862                     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( cUrlRange, &sRangeB );
01863                     /*
01864                     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( CLogicPoint(nUrlIdxBgn          , nUrlLine), sRangeB.GetFromPointer() );
01865                     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( CLogicPoint(nUrlIdxBgn + nUrlLen, nUrlLine), sRangeB.GetToPointer() );
01866                     */
01867
01868                     GetSelectionInfo().m_sSelectBgn = sRangeB;
01869                     GetSelectionInfo().m_sSelect = sRangeB;
01870
01871                     /* 選択領域描画 */
01872                     GetSelectionInfo().DrawSelectArea();
01873                 }
01874             }
01875         }
01876     }
01877 }
01878
01879 /* 指定カーソル位置にURLが有る場合のその範囲を調べる */
01880 /* 戻り値がTRUEの場合、*ppszURLは呼び出し側でdeleteすること */
01881 bool CEditView::IsCurrentPositionURL(
01882     const CLayoutPoint& ptCaretPos,
01883     CLogicRange*        pUrlRange,
01884     /*
01885     CLogicInt*          pnUrlLine,      // URLの行。ロジック単位。
01886     int*                pnUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
01887     int*                pnUrlLen,       // URLの長さ(バイト数)
01888     */
01889     wchar_t**           ppszURL
01890 )
01891 {
01892     MY_RUNNINGTIMER( cRunningTimer, "CEditView::IsCurrentPositionURL" );
01893
01894
01895     /*
01896       カーソル位置変換
01897       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01898       →
01899       物理位置(行頭からのバイト数、折り返し無し行位置)
01900     */
01901     CLogicPoint ptXY;
01902     m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
01903         ptCaretPos,
01904         &ptXY
01905     );
01906     pUrlRange->SetLine(ptXY.GetY2());
01907 //  *pnUrlLine = ptXY.GetY2();
01908     CLogicInt       nLineLen;
01909     const wchar_t*  pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( ptXY.GetY2(), &nLineLen ); //2007.10.09 kobake レイアウト・ロジック混在バグ修正
01910
01911     int         nUrlLen;
01912     CLogicInt   i = ptXY.GetX2() - CLogicInt(200);
01913     if( i < CLogicInt(0) ){
01914         i = CLogicInt(0);
01915     }
01916     for( ; i <= ptXY.GetX2() && i < nLineLen && i < ptXY.GetX2() + CLogicInt(200); ){
01917     /* カーソル位置から前方に250バイトまでの範囲内で行頭に向かってサーチ */
01918         /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
01919         if( !IsURL( &pLine[i], (Int)(nLineLen - i), &nUrlLen ) ){
01920             ++i;
01921         }
01922         else{
01923             if( i <= ptXY.GetX2() && ptXY.GetX2() < i + CLogicInt(nUrlLen) ){
01924                 /* URLを返す場合 */
01925                 if( NULL != ppszURL ){
01926                     *ppszURL = new wchar_t[nUrlLen + 1];
01927                     wmemcpy( *ppszURL, &pLine[i], nUrlLen );
01928                     (*ppszURL)[nUrlLen] = L'\0';
01929                     /* *ppszURLは呼び出し側でdeleteすること */
01930                 }
01931                 pUrlRange->SetLine(ptXY.GetY2());
01932                 pUrlRange->SetXs(i, i+CLogicInt(nUrlLen));
01933                 /*
01934                 *pnUrlLen = nUrlLen;
01935                 *pnUrlLine = ptXY.GetY2();
01936                 *pnUrlIdxBgn = i;
01937                 */
01938                 return true;
01939             }else{
01940                 i += CLogicInt(nUrlLen);
01941             }
01942         }
01943     }
01944     return false;
01945 }
01946
01947
01948
01949
01950 /* マウス右ボタン押下 */
01951 void CEditView::OnRBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
01952 {
01953     /* 現在のマウスカーソル位置→レイアウト位置 */
01954
01955     CLayoutPoint ptNew;
01956     GetTextArea().ClientToLayout(CMyPoint(xPos,yPos), &ptNew);
01957     /*
01958     ptNew.x = GetTextArea().GetViewLeftCol() + (xPos - GetTextArea().GetAreaLeft()) / GetTextMetrics().GetHankakuDx();
01959     ptNew.y = GetTextArea().GetViewTopLine() + (yPos - GetTextArea().GetAreaTop()) / GetTextMetrics().GetHankakuDy();
01960     */
01961     /* 指定カーソル位置が選択エリア内にあるか */
01962     if( 0 == IsCurrentPositionSelected(
01963         ptNew       // カーソル位置
01964         )
01965     ){
01966         return;
01967     }
01968     OnLBUTTONDOWN( fwKeys, xPos , yPos );
01969     return;
01970 }
01971
01972 /* マウス右ボタン開放 */
01973 void CEditView::OnRBUTTONUP( WPARAM fwKeys, int xPos , int yPos )
01974 {
01975     if( GetSelectionInfo().IsMouseSelecting() ){    /* 範囲選択中 */
01976         /* マウス左ボタン開放のメッセージ処理 */
01977         OnLBUTTONUP( fwKeys, xPos, yPos );
01978     }
01979
01980
01981     int     nIdx;
01982     int     nFuncID;
01983 // novice 2004/10/10
01984     /* Shift,Ctrl,Altキーが押されていたか */
01985     nIdx = getCtrlKeyState();
01986     /* マウス右クリックに対応する機能コードはm_Common.m_pKeyNameArr[1]に入っている */
01987     nFuncID = m_pShareData->m_pKeyNameArr[1].m_nFuncCodeArr[nIdx];
01988     if( nFuncID != 0 ){
01989         /* コマンドコードによる処理振り分け */
01990         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
01991 		::PostMessageCmd( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
01992     }
01993 //  /* 右クリックメニュー */
01994 //  GetCommander().Command_MENU_RBUTTON();
01995     return;
01996 }
01997
01998
01999 // novice 2004/10/11 マウス中ボタン対応
02008 void CEditView::OnMBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
02009 {
02010     int     nIdx;
02011     int     nFuncID;
02012
02013     /* Shift,Ctrl,Altキーが押されていたか */
02014     nIdx = getCtrlKeyState();
02015     /* マウス左サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[2]に入っている */
02016     nFuncID = m_pShareData->m_pKeyNameArr[2].m_nFuncCodeArr[nIdx];
02017     if( nFuncID != 0 ){
02018         /* コマンドコードによる処理振り分け */
02019         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
02020 		::PostMessageCmd( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
02021     }
02022 }
02023
02024
02025 // novice 2004/10/10 マウスサイドボタン対応
02035 void CEditView::OnXLBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
02036 {
02037     int     nIdx;
02038     int     nFuncID;
02039
02040     /* Shift,Ctrl,Altキーが押されていたか */
02041     nIdx = getCtrlKeyState();
02042     /* マウス左サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[3]に入っている */
02043     nFuncID = m_pShareData->m_pKeyNameArr[3].m_nFuncCodeArr[nIdx];
02044     if( nFuncID != 0 ){
02045         /* コマンドコードによる処理振り分け */
02046         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
02047 		::PostMessageCmd( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
02048     }
02049
02050     return;
02051 }
02052
02053
02063 void CEditView::OnXRBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
02064 {
02065     int     nIdx;
02066     int     nFuncID;
02067
02068     /* Shift,Ctrl,Altキーが押されていたか */
02069     nIdx = getCtrlKeyState();
02070     /* マウス右サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[4]に入っている */
02071     nFuncID = m_pShareData->m_pKeyNameArr[4].m_nFuncCodeArr[nIdx];
02072     if( nFuncID != 0 ){
02073         /* コマンドコードによる処理振り分け */
02074         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
02075 		::PostMessageCmd( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
02076     }
02077
02078     return;
02079 }
02080
02081
02082 VOID CEditView::OnTimer(
02083     HWND hwnd,      // handle of window for timer messages
02084     UINT uMsg,      // WM_TIMER message
02085     UINT idEvent,   // timer identifier
02086     DWORD dwTime    // current system time
02087     )
02088 {
02089     POINT       po;
02090     RECT        rc;
02091
02092     if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
02093         if( m_bDragSource ){
02094             return;
02095         }
02096     }
02097     /* 範囲選択中でない場合 */
02098     if(!GetSelectionInfo().IsMouseSelecting()){
02099         if(TRUE == KeyWordHelpSearchDict( LID_SKH_ONTIMER, &po, &rc ) ){    // 2006.04.10 fon
02100             /* 辞書Tipを表示 */
02101             m_cTipWnd.Show( po.x, po.y + GetTextMetrics().GetHankakuHeight(), NULL );
02102         }
02103     }else{
02104         ::GetCursorPos( &po );
02105         ::GetWindowRect(GetHwnd(), &rc );
02106         if( !PtInRect( &rc, po ) ){
02107             OnMOUSEMOVE( 0, GetSelectionInfo().m_ptMouseRollPosOld.x, GetSelectionInfo().m_ptMouseRollPosOld.y );
02108         }
02109     }
02110 }
02111
02116 BOOL CEditView::KeyWordHelpSearchDict( LID_SKH nID, POINT* po, RECT* rc )
02117 {
02118     CNativeW    cmemCurText;
02119     int         i;
02120
02121     /* キーワードヘルプを使用するか？ */
02122     if( !m_pcEditDoc->GetDocumentAttribute().m_bUseKeyWordHelp )    /* キーワードヘルプ機能を使用する */ // 2006.04.10 fon
02123         goto end_of_search;
02124     /* フォーカスがあるか？ */
02125     if( !GetCaret().ExistCaretFocus() )
02126         goto end_of_search;
02127     /* ウィンドウ内にマウスカーソルがあるか？ */
02128     GetCursorPos( po );
02129     GetWindowRect( GetHwnd(), rc );
02130     if( !PtInRect( rc, *po ) )
02131         goto end_of_search;
02132     switch(nID){
02133     case LID_SKH_ONTIMER:
02134         /* 右コメントの１〜３でない場合 */
02135         if(!( m_bInMenuLoop == FALSE    &&          /* １．メニュー モーダル ループに入っていない */
02136             0 != m_dwTipTimer           &&          /* ２．辞書Tipを表示していない */
02137             300 < ::GetTickCount() - m_dwTipTimer   /* ３．一定時間以上、マウスが固定されている */
02138         ) ) goto end_of_search;
02139         break;
02140     case LID_SKH_POPUPMENU_R:
02141         if(!( m_bInMenuLoop == FALSE    //&&            /* １．メニュー モーダル ループに入っていない */
02142         //  0 != m_dwTipTimer           &&          /* ２．辞書Tipを表示していない */
02143         //  1000 < ::GetTickCount() - m_dwTipTimer  /* ３．一定時間以上、マウスが固定されている */
02144         ) ) goto end_of_search;
02145         break;
02146     default:
02147 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, _T("作者に教えて欲しいエラー"),
02148         _T("CEditView::KeyWordHelpSearchDict\nnID=%d") );
02149     }
02150     /* 選択範囲のデータを取得(複数行選択の場合は先頭の行のみ) */
02151     if( GetSelectedData( &cmemCurText, TRUE, NULL, FALSE, m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
02152         wchar_t* pszWork = cmemCurText.GetStringPtr();
02153         int nWorkLength = wcslen( pszWork );
02154         for( i = 0; i < nWorkLength; ++i ){
02155             if( pszWork[i] == L'\0' ||
02156                 pszWork[i] == WCODE::CR ||
02157                 pszWork[i] == WCODE::LF ){
02158                 break;
02159             }
02160         }
02161         wchar_t* pszBuf = new wchar_t[i + 1];
02162         wmemcpy( pszBuf, pszWork, i );
02163         pszBuf[i] = L'\0';
02164         cmemCurText.SetString( pszBuf, i );
02165         delete [] pszBuf;
02166     }/* キャレット位置の単語を取得する処理 */  // 2006.03.24 fon
02167     else if(m_pShareData->m_Common.m_sSearch.m_bUseCaretKeyWord){
02168         if(!GetParser().GetCurrentWord(&cmemCurText))
02169             goto end_of_search;
02170     }else
02171         goto end_of_search;
02172
02173     if( CNativeW::IsEqual( cmemCurText, m_cTipWnd.m_cKey ) &&   /* 既に検索済みか */
02174         (!m_cTipWnd.m_KeyWasHit) )                              /* 該当するキーがなかった */
02175         goto end_of_search;
02176     m_cTipWnd.m_cKey = cmemCurText;
02177
02178     /* 検索実行 */
02179     if( FALSE == KeySearchCore(&m_cTipWnd.m_cKey) )
02180         goto end_of_search;
02181     m_dwTipTimer = 0;       /* 辞書Tipを表示している */
02182     m_poTipCurPos = *po;    /* 現在のマウスカーソル位置 */
02183     return TRUE;            /* ここまで来ていればヒット・ワード */
02184
02185     /* キーワードヘルプ表示処理終了 */
02186     end_of_search:
02187     return FALSE;
02188 }
02189
02194 BOOL CEditView::KeySearchCore( const CNativeW* pcmemCurText )
02195 {
02196     CNativeW*   pcmemRefKey;
02197     int         nCmpLen = STRNCMP_MAX; // 2006.04.10 fon
02198     int         nLine; // 2006.04.10 fon
02199
02200
02201     int nTypeNo = m_pcEditDoc->GetDocumentType();
02202     m_cTipWnd.m_cInfo.SetString( _T("") );  /* tooltipバッファ初期化 */
02203     /* 1行目にキーワード表示の場合 */
02204     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpKeyDisp){   /* キーワードも表示する */    // 2006.04.10 fon
02205         m_cTipWnd.m_cInfo.AppendString( _T("[ ") );
02206         m_cTipWnd.m_cInfo.AppendString( pcmemCurText->GetStringT() );
02207         m_cTipWnd.m_cInfo.AppendString( _T(" ]") );
02208     }
02209     /* 途中まで一致を使う場合 */
02210     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix)
02211         nCmpLen = wcslen( pcmemCurText->GetStringPtr() );   // 2006.04.10 fon
02212     m_cTipWnd.m_KeyWasHit = FALSE;
02213     for(int i=0;i<m_pShareData->m_Types[nTypeNo].m_nKeyHelpNum;i++){    //最大数：MAX_KEYHELP_FILE
02214         if( 1 == m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_nUse ){
02215             // 2006.04.10 fon (nCmpLen,pcmemRefKey,nSearchLine)引数を追加
02216             CNativeW*   pcmemRefText;
02217             int nSearchResult=m_cDicMgr.CDicMgr::Search(
02218                 pcmemCurText->GetStringPtr(),
02219                 nCmpLen,
02220                 &pcmemRefKey,
02221                 &pcmemRefText,
02222                 m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_szPath,
02223                 &nLine
02224             );
02225             if(nSearchResult){
02226                 /* 該当するキーがある */
02227                 LPWSTR      pszWork;
02228                 pszWork = pcmemRefText->GetStringPtr();
02229                 /* 有効になっている辞書を全部なめて、ヒットの都度説明の継ぎ増し */
02230                 if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpAllSearch){ /* ヒットした次の辞書も検索 */  // 2006.04.10 fon
02231                     /* バッファに前のデータが詰まっていたらseparator挿入 */
02232                     if(m_cTipWnd.m_cInfo.GetStringLength() != 0)
02233                         m_cTipWnd.m_cInfo.AppendString( _T("\n--------------------\n■") );
02234                     else
02235                         m_cTipWnd.m_cInfo.AppendString( _T("■") );    /* 先頭の場合 */
02236                     /* 辞書のパス挿入 */
02237                     m_cTipWnd.m_cInfo.AppendString( m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_szPath );
02238                     m_cTipWnd.m_cInfo.AppendString( _T("\n") );
02239                     /* 前方一致でヒットした単語を挿入 */
02240                     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix){    /* 選択範囲で前方一致検索 */
02241                         m_cTipWnd.m_cInfo.AppendString( pcmemRefKey->GetStringT() );
02242                         m_cTipWnd.m_cInfo.AppendString( _T(" >>\n") );
02243                     }/* 調査した「意味」を挿入 */
02244                     m_cTipWnd.m_cInfo.AppendStringW( pszWork );
02245                     delete pcmemRefText;
02246                     delete pcmemRefKey; // 2006.07.02 genta
02247                     /* タグジャンプ用の情報を残す */
02248                     if(FALSE == m_cTipWnd.m_KeyWasHit){
02249                         m_cTipWnd.m_nSearchDict=i;  /* 辞書を開くとき最初にヒットした辞書を開く */
02250                         m_cTipWnd.m_nSearchLine=nLine;
02251                         m_cTipWnd.m_KeyWasHit = TRUE;
02252                     }
02253                 }
02254                 else{   /* 最初のヒット項目のみ返す場合 */
02255                     /* キーワードが入っていたらseparator挿入 */
02256                     if(m_cTipWnd.m_cInfo.GetStringLength() != 0)
02257                         m_cTipWnd.m_cInfo.AppendString( _T("\n--------------------\n") );
02258
02259                     /* 前方一致でヒットした単語を挿入 */
02260                     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix){    /* 選択範囲で前方一致検索 */
02261                         m_cTipWnd.m_cInfo.AppendString( pcmemRefKey->GetStringT() );
02262                         m_cTipWnd.m_cInfo.AppendString( _T(" >>\n") );
02263                     }
02264
02265                     /* 調査した「意味」を挿入 */
02266                     m_cTipWnd.m_cInfo.AppendStringW( pszWork );
02267                     delete pcmemRefText;
02268                     delete pcmemRefKey; // 2006.07.02 genta
02269                     /* タグジャンプ用の情報を残す */
02270                     m_cTipWnd.m_nSearchDict=i;
02271                     m_cTipWnd.m_nSearchLine=nLine;
02272                     m_cTipWnd.m_KeyWasHit = TRUE;
02273                     return TRUE;
02274                 }
02275             }
02276         }
02277     }
02278     if(m_cTipWnd.m_KeyWasHit == TRUE){
02279             return TRUE;
02280     }
02281     /* 該当するキーがなかった場合 */
02282     return FALSE;
02283 }
02284
02285
02286 /* マウス移動のメッセージ処理 */
02287 void CEditView::OnMOUSEMOVE( WPARAM fwKeys, int _xPos , int _yPos )
02288 {
02289     CMyPoint ptMouse(_xPos,_yPos);
02290
02291     CLayoutInt  nScrollRowNum;
02292     POINT       po;
02293     const wchar_t*  pLine;
02294     CLogicInt       nLineLen;
02295
02296     CLogicInt   nIdx;
02297     int         nWorkF;
02298     int         nWorkT;
02299
02300     CLayoutRange sRange;
02301     CLayoutRange sSelectBgn_Old; // 範囲選択(原点)
02302     CLayoutRange sSelect_Old;
02303     CLayoutRange sSelect;
02304
02305     sSelectBgn_Old = GetSelectionInfo().m_sSelectBgn;
02306     sSelect_Old    = GetSelectionInfo().m_sSelect;
02307
02308     if( !GetSelectionInfo().IsMouseSelecting() ){   /* 範囲選択中 */
02309         ::GetCursorPos( &po );
02310         //  2001/06/18 asa-o: 補完ウィンドウが表示されていない
02311         if(!m_bHokan){
02312             /* 辞書Tipが起動されている */
02313             if( 0 == m_dwTipTimer ){
02314                 if( (m_poTipCurPos.x != po.x || m_poTipCurPos.y != po.y ) ){
02315                     /* 辞書Tipを消す */
02316                     m_cTipWnd.Hide();
02317                     m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
02318                 }
02319             }else{
02320                 m_dwTipTimer = ::GetTickCount();        /* 辞書Tip起動タイマー */
02321             }
02322         }
02323         /* 現在のマウスカーソル位置→レイアウト位置 */
02324         CLayoutPoint ptNew;
02325         GetTextArea().ClientToLayout(ptMouse, &ptNew);
02326
02327         CLogicRange cUrlRange;  //URL範囲
02328
02329         /* 選択テキストのドラッグ中か */
02330         if( m_bDragMode ){
02331             if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
02332                 /* 座標指定によるカーソル移動 */
02333                 nScrollRowNum = GetCaret().MoveCursorToClientPoint( ptMouse );
02334             }
02335         }
02336         else{
02337             /* 行選択エリア? */
02338             if( ptMouse.x < GetTextArea().GetAreaLeft() || ptMouse.y < GetTextArea().GetAreaTop() ){    //  2002/2/10 aroka
02339                 /* 矢印カーソル */
02340                 if( ptMouse.y >= GetTextArea().GetAreaTop() )
02341                     ::SetCursor( ::LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_CURSOR_RVARROW ) ) );
02342                 else
02343                     ::SetCursor( ::LoadCursor( NULL, IDC_ARROW ) );
02344             }
02345             else if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop  /* OLEによるドラッグ & ドロップを使う */
02346              && m_pShareData->m_Common.m_sEdit.m_bUseOLE_DropSource /* OLEによるドラッグ元にするか */
02347              && 0 == IsCurrentPositionSelected(                     /* 指定カーソル位置が選択エリア内にあるか */
02348                 ptNew   // カーソル位置
02349                 )
02350             ){
02351                 /* 矢印カーソル */
02352                 ::SetCursor( ::LoadCursor( NULL, IDC_ARROW ) );
02353             }
02354             /* カーソル位置にURLが有る場合 */
02355             //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLチェックも行わない
02356             else if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp &&
02357                 IsCurrentPositionURL(
02358                     ptNew,          // カーソル位置
02359                     &cUrlRange,     // URL範囲
02360                     /*
02361                     &nUrlLine,      // URLの行(改行単位)
02362                     &nUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
02363                     &nUrlLen,       // URLの長さ(バイト数)
02364                     */
02365                     NULL            // URL受け取り先
02366                 )
02367             ){
02368                 /* 手カーソル */
02369                 ::SetCursor( ::LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_CURSOR_HAND ) ) );
02370             }else{
02371                 //migemo isearch 2004.10.22
02372                 if( m_nISearchMode > 0 ){
02373                     if (m_nISearchDirection == 1){
02374                         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_F)));
02375                     }else{
02376                         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_B)));
02377                     }
02378                 }else
02379                 /* アイビーム */
02380                 ::SetCursor( ::LoadCursor( NULL, IDC_IBEAM ) );
02381             }
02382         }
02383         return;
02384     }
02385     ::SetCursor( ::LoadCursor( NULL, IDC_IBEAM ) );
02386     if( GetSelectionInfo().IsBoxSelecting() ){  /* 矩形範囲選択中 */
02387         /* 座標指定によるカーソル移動 */
02388         nScrollRowNum = GetCaret().MoveCursorToClientPoint( ptMouse );
02389         /* 現在のカーソル位置によって選択範囲を変更 */
02390         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
02391         GetSelectionInfo().m_ptMouseRollPosOld = ptMouse; // マウス範囲選択前回位置(XY座標)
02392     }
02393     else{
02394         /* 座標指定によるカーソル移動 */
02395         if( ptMouse.x < GetTextArea().GetAreaLeft() && GetSelectionInfo().m_bBeginLineSelect ){
02396             nScrollRowNum = GetCaret().MoveCursorToClientPoint( CMyPoint(GetTextArea().GetDocumentLeftClientPointX() , ptMouse.y + GetTextMetrics().GetHankakuDy()) );
02397         }else{
02398             nScrollRowNum = GetCaret().MoveCursorToClientPoint( ptMouse );
02399         }
02400         GetSelectionInfo().m_ptMouseRollPosOld = ptMouse; // マウス範囲選択前回位置(XY座標)
02401
02402         /* CTRLキーが押されていたか */
02403 //      if( GetKeyState_Control() ){
02404         if( !GetSelectionInfo().m_bBeginWordSelect ){
02405             /* 現在のカーソル位置によって選択範囲を変更 */
02406             GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
02407         }else{
02408             /* 現在のカーソル位置によって選択範囲を変更(テストのみ) */
02409             GetSelectionInfo().ChangeSelectAreaByCurrentCursorTEST(
02410                 GetCaret().GetCaretLayoutPos(),
02411                 &sSelect
02412             );
02413             /* 選択範囲に変更なし */
02414             if( sSelect_Old == sSelect ){
02415                 GetSelectionInfo().ChangeSelectAreaByCurrentCursor(
02416                     GetCaret().GetCaretLayoutPos()
02417                 );
02418                 return;
02419             }
02420             const CLayout* pcLayout;
02421             if( NULL != ( pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( GetCaret().GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout ) ) ){
02422                 nIdx = LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
02423                 /* 現在位置の単語の範囲を調べる */
02424                 int nResult=m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
02425                     GetCaret().GetCaretLayoutPos().GetY2(),
02426                     nIdx,
02427                     &sRange,
02428                     NULL,
02429                     NULL
02430                 );
02431                 if( nResult ){
02432                     // 指定された行のデータ内の位置に対応する桁の位置を調べる
02433                     // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
02434                     /*
02435                     pLine     = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetFrom().GetY2(), &nLineLen, &pcLayout );
02436                     sRange.SetFromX( LineIndexToColmn( pcLayout, sRange.GetFrom().x ) );
02437                     pLine     = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetTo().GetY2(), &nLineLen, &pcLayout );
02438                     sRange.SetToX( LineIndexToColmn( pcLayout, sRange.GetTo().x ) );
02439                     */
02440
02441                     nWorkF = IsCurrentPositionSelectedTEST(
02442                         sRange.GetFrom(), //カーソル位置
02443                         sSelect
02444                     );
02445                     nWorkT = IsCurrentPositionSelectedTEST(
02446                         sRange.GetTo(), // カーソル位置
02447                         sSelect
02448                     );
02449                     if( -1 == nWorkF ){
02450                         /* 始点が前方に移動。現在のカーソル位置によって選択範囲を変更 */
02451                         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRange.GetFrom() );
02452                     }
02453                     else if( 1 == nWorkT ){
02454                         /* 終点が後方に移動。現在のカーソル位置によって選択範囲を変更 */
02455                         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRange.GetTo() );
02456                     }
02457                     else if( sSelect_Old.GetFrom() == sSelect.GetFrom() ){
02458                         /* 始点が無変更＝前方に縮小された */
02459                         /* 現在のカーソル位置によって選択範囲を変更 */
02460                         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRange.GetTo() );
02461                     }
02462                     else if( sSelect_Old.GetTo()==sSelect.GetTo() ){
02463                         /* 終点が無変更＝後方に縮小された */
02464                         /* 現在のカーソル位置によって選択範囲を変更 */
02465                         GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRange.GetFrom() );
02466                     }
02467                 }else{
02468                     /* 現在のカーソル位置によって選択範囲を変更 */
02469                     GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
02470                 }
02471             }else{
02472                 /* 現在のカーソル位置によって選択範囲を変更 */
02473                 GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
02474             }
02475         }
02476     }
02477     return;
02478 }
02479 //m_dwTipTimerm_dwTipTimerm_dwTipTimer
02480
02481
02482
02483
02484 /* マウスホイールのメッセージ処理 */
02485 LRESULT CEditView::OnMOUSEWHEEL( WPARAM wParam, LPARAM lParam )
02486 {
02487     WORD    fwKeys;
02488     short   zDelta;
02489     short   xPos;
02490     short   yPos;
02491     int     i;
02492     int     nScrollCode;
02493     int     nRollLineNum;
02494
02495     fwKeys = LOWORD(wParam);            // key flags
02496     zDelta = (short) HIWORD(wParam);    // wheel rotation
02497     xPos = (short) LOWORD(lParam);      // horizontal position of pointer
02498     yPos = (short) HIWORD(lParam);      // vertical position of pointer
02499 //  MYTRACE_A( "CEditView::DispatchEvent() WM_MOUSEWHEEL fwKeys=%xh zDelta=%d xPos=%d yPos=%d \n", fwKeys, zDelta, xPos, yPos );
02500
02501     if( 0 < zDelta ){
02502         nScrollCode = SB_LINEUP;
02503     }else{
02504         nScrollCode = SB_LINEDOWN;
02505     }
02506
02507     /* マウスホイールによるスクロール行数をレジストリから取得 */
02508     nRollLineNum = 6;
02509
02510     /* レジストリの存在チェック */
02511     // 2006.06.03 Moca ReadRegistry に書き換え
02512     unsigned int uDataLen;  // size of value data
02513     TCHAR szValStr[256];
02514     uDataLen = _countof(szValStr) - 1;
02515     if( ReadRegistry( HKEY_CURRENT_USER, _T("Control Panel\\desktop"), _T("WheelScrollLines"), szValStr, uDataLen ) ){
02516         nRollLineNum = ::_ttoi( szValStr );
02517     }
02518
02519     if( -1 == nRollLineNum ){/* 「1画面分スクロールする」 */
02520         nRollLineNum = (Int)GetTextArea().m_nViewRowNum;    // 表示域の行数
02521     }
02522     else{
02523         if( nRollLineNum < 1 ){
02524             nRollLineNum = 1;
02525         }
02526         if( nRollLineNum > 30 ){    //@@@ YAZAKI 2001.12.31 10→30へ。
02527             nRollLineNum = 30;
02528         }
02529     }
02530     for( i = 0; i < nRollLineNum; ++i ){
02531         //  Sep. 11, 2004 genta 同期スクロール行数
02532         CLayoutInt line;
02533
02534         if( nScrollCode == SB_LINEUP ){
02535             line = ScrollAtV( GetTextArea().GetViewTopLine() - CLayoutInt(1) );
02536         }else{
02537             line = ScrollAtV( GetTextArea().GetViewTopLine() + CLayoutInt(1) );
02538         }
02539         SyncScrollV( line );
02540     }
02541     return 0;
02542 }
02543
02544
02545
02546
02547
02548
02549 /* マウス左ボタン開放のメッセージ処理 */
02550 void CEditView::OnLBUTTONUP( WPARAM fwKeys, int xPos , int yPos )
02551 {
02552 //  MYTRACE_A( "OnLBUTTONUP()\n" );
02553     CMemory     cmemBuf, cmemClip;
02554
02555     /* 範囲選択終了 & マウスキャプチャーおわり */
02556     if( GetSelectionInfo().IsMouseSelecting() ){    /* 範囲選択中 */
02557         /* マウス キャプチャを解放 */
02558         ::ReleaseCapture();
02559         GetCaret().ShowCaret_( GetHwnd() ); // 2002/07/22 novice
02560
02561         GetSelectionInfo().SelectEnd();
02562
02563         if( GetSelectionInfo().m_sSelect.IsOne() ){
02564             /* 現在の選択範囲を非選択状態に戻す */
02565             GetSelectionInfo().DisableSelectArea( TRUE );
02566
02567             // 対括弧の強調表示 // 2007.10.18 ryoji
02568             DrawBracketPair( false );
02569             SetBracketPairPos( true );
02570             DrawBracketPair( true );
02571         }
02572         GetCaret().m_cUnderLine.UnLock();
02573     }
02574     return;
02575 }
02576
02577
02578
02579
02580
02581 // マウス左ボタンダブルクリック
02582 void CEditView::OnLBUTTONDBLCLK( WPARAM fwKeys, int _xPos , int _yPos )
02583 {
02584     CMyPoint ptMouse(_xPos,_yPos);
02585
02586     int         nIdx;
02587     CLogicRange cUrlRange;
02588     /*
02589     int         nUrlLine;   // URLの行(折り返し単位)
02590     int         nUrlIdxBgn; // URLの位置(行頭からのバイト位置)
02591     int         nUrlLen;    // URLの長さ(バイト数)
02592     */
02593     wchar_t*    pszURL;
02594     const wchar_t*  pszMailTo = L"mailto:";
02595
02596     /* カーソル位置にURLが有る場合のその範囲を調べる */
02597     //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLチェックも行わない
02598     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp
02599         &&
02600         IsCurrentPositionURL(
02601             GetCaret().GetCaretLayoutPos(), // カーソル位置
02602             &cUrlRange,
02603             /*
02604             &nUrlLine,              // URLの行(改行単位)
02605             &nUrlIdxBgn,            // URLの位置(行頭からのバイト位置)
02606             &nUrlLen,               // URLの長さ(バイト数)
02607             */
02608             &pszURL                 // URL受け取り先
02609         )
02610     ){
02611         wchar_t* pszOPEN;
02612         wchar_t* pszWork;
02613
02614         // URLを開く
02615         // 現在位置がメールアドレスならば、NULL以外と、その長さを返す
02616         if( IsMailAddress( pszURL, wcslen( pszURL ), NULL ) ){
02617             pszWork = new wchar_t[ wcslen( pszURL ) + wcslen( pszMailTo ) + 1];
02618             wcscpy( pszWork, pszMailTo );
02619             wcscat( pszWork, pszURL );
02620             pszOPEN = pszWork;
02621         }
02622         else{
02623             if( wcsnicmp( pszURL, L"ttp://", 6 ) == 0 ){    //抑止URL
02624                 pszWork = new wchar_t[ wcslen( pszURL ) + 1 + 1 ];
02625                 wcscpy( pszWork, L"h" );
02626                 wcscat( pszWork, pszURL );
02627                 pszOPEN = pszWork;
02628             }
02629             else if( wcsnicmp( pszURL, L"tp://", 5 ) == 0 ){    //抑止URL
02630                 pszWork = new wchar_t[ wcslen( pszURL ) + 2 + 1 ];
02631                 wcscpy( pszWork, L"ht" );
02632                 wcscat( pszWork, pszURL );
02633                 pszOPEN = pszWork;
02634             }
02635             else{
02636                 pszOPEN = pszURL;
02637             }
02638         }
02639         ::ShellExecute( NULL, _T("open"), to_tchar(pszOPEN), NULL, NULL, SW_SHOW );
02640         delete [] pszURL;
02641         if(pszWork){
02642             delete pszWork;
02643         }
02644         return;
02645     }
02646
02647     /* GREP出力モードまたはデバッグモード かつ マウス左ボタンダブルクリックでタグジャンプ の場合 */
02648     //  2004.09.20 naoh 外部コマンドの出力からTagjumpできるように
02649     if( (m_pcEditDoc->m_bGrepMode || m_pcEditDoc->m_bDebugMode) && m_pShareData->m_Common.m_sSearch.m_bGTJW_LDBLCLK ){
02650         /* タグジャンプ機能 */
02651         GetCommander().Command_TAGJUMP();
02652         return;
02653     }
02654
02655 // novice 2004/10/10
02656     /* Shift,Ctrl,Altキーが押されていたか */
02657     nIdx = getCtrlKeyState();
02658
02659     /* マウス左クリックに対応する機能コードはm_Common.m_pKeyNameArr[0]に入っている */
02660     EFunctionCode   nFuncID = m_pShareData->m_pKeyNameArr[0].m_nFuncCodeArr[nIdx];
02661     if( nFuncID != 0 ){
02662         /* コマンドコードによる処理振り分け */
02663         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
02664 		::SendMessageCmd( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
02665     }
02666
02667     /*  2007.07.09 maru 機能コードの判定を追加
02668         ダブルクリックからのドラッグでは単語単位の範囲選択(エディタの一般的動作)になるが
02669         この動作は、ダブルクリック＝単語選択を前提としたもの。
02670         キー割り当ての変更により、ダブルクリック≠単語選択のときには GetSelectionInfo().m_bBeginWordSelect = TRUE
02671         にすると、処理の内容によっては表示がおかしくなるので、ここで抜けるようにする。
02672     */
02673     if(F_SELECTWORD != nFuncID) return;
02674
02675     /* ドラッグ選択開始 */
02676     GetSelectionInfo().m_ptMouseRollPosOld = ptMouse; // マウス範囲選択前回位置(XY座標)
02677
02678     /* 範囲選択開始 & マウスキャプチャー */
02679     GetSelectionInfo().SelectBeginWord();
02680
02681     if( m_pShareData->m_Common.m_sView.m_bFontIs_FIXED_PITCH ){ /* 現在のフォントは固定幅フォントである */
02682         /* ALTキーが押されていたか */
02683         if( GetKeyState_Alt() ){
02684             GetSelectionInfo().SetBoxSelect(true);  /* 矩形範囲選択中 */
02685         }
02686     }
02687     ::SetCapture( GetHwnd() );
02688     GetCaret().HideCaret_( GetHwnd() ); // 2002/07/22 novice
02689     if( GetSelectionInfo().IsTextSelected() ){
02690         /* 常時選択範囲の範囲 */
02691         GetSelectionInfo().m_sSelectBgn.SetTo( GetSelectionInfo().m_sSelect.GetTo() );
02692     }
02693     else{
02694         /* 現在のカーソル位置から選択を開始する */
02695         GetSelectionInfo().BeginSelectArea( );
02696     }
02697
02698     return;
02699 }
02700
02701
02702
02703
02704
02705
02706
02707
02708
02716 CLayoutInt CEditView::ScrollAtV( CLayoutInt nPos )
02717 {
02718     CLayoutInt  nScrollRowNum;
02719     RECT        rcScrol;
02720     RECT        rcClip;
02721     if( nPos < 0 ){
02722         nPos = CLayoutInt(0);
02723     }
02724     else if( (m_pcEditDoc->m_cLayoutMgr.GetLineCount() + 2 )- GetTextArea().m_nViewRowNum < nPos ){
02725         nPos = ( m_pcEditDoc->m_cLayoutMgr.GetLineCount() + CLayoutInt(2) ) - GetTextArea().m_nViewRowNum;
02726         if( nPos < 0 ){
02727             nPos = CLayoutInt(0);
02728         }
02729     }
02730     if( GetTextArea().GetViewTopLine() == nPos ){
02731         return CLayoutInt(0);   //  スクロール無し。
02732     }
02733     /* 垂直スクロール量（行数）の算出 */
02734     nScrollRowNum = GetTextArea().GetViewTopLine() - nPos;
02735
02736     /* スクロール */
02737     if( t_abs( nScrollRowNum ) >= GetTextArea().m_nViewRowNum ){
02738         GetTextArea().SetViewTopLine( CLayoutInt(nPos) );
02739         ::InvalidateRect( GetHwnd(), NULL, TRUE );
02740     }else{
02741         rcScrol.left = 0;
02742         rcScrol.right = GetTextArea().GetAreaRight();
02743         rcScrol.top = GetTextArea().GetAreaTop();
02744         rcScrol.bottom = GetTextArea().GetAreaBottom();
02745         if( nScrollRowNum > 0 ){
02746             rcScrol.bottom =
02747                 GetTextArea().GetAreaBottom() -
02748                 (Int)nScrollRowNum * GetTextMetrics().GetHankakuDy();
02749             GetTextArea().SetViewTopLine( CLayoutInt(nPos) );
02750             rcClip.left = 0;
02751             rcClip.right = GetTextArea().GetAreaRight();
02752             rcClip.top = GetTextArea().GetAreaTop();
02753             rcClip.bottom =
02754                 GetTextArea().GetAreaTop() + (Int)nScrollRowNum * GetTextMetrics().GetHankakuDy();
02755         }
02756         else if( nScrollRowNum < 0 ){
02757             rcScrol.top =
02758                 GetTextArea().GetAreaTop() - (Int)nScrollRowNum * GetTextMetrics().GetHankakuDy();
02759             GetTextArea().SetViewTopLine( CLayoutInt(nPos) );
02760             rcClip.left = 0;
02761             rcClip.right = GetTextArea().GetAreaRight();
02762             rcClip.top =
02763                 GetTextArea().GetAreaBottom() +
02764                 (Int)nScrollRowNum * GetTextMetrics().GetHankakuDy();
02765             rcClip.bottom = GetTextArea().GetAreaBottom();
02766         }
02767         if( GetDrawSwitch() ){
02768             ::ScrollWindowEx(
02769                 GetHwnd(),
02770                 0,  /* 水平スクロール量 */
02771                 (Int)nScrollRowNum * GetTextMetrics().GetHankakuDy(),       /* 垂直スクロール量 */
02772                 &rcScrol,   /* スクロール長方形の構造体のアドレス */
02773                 NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
02774             );
02775             ::InvalidateRect( GetHwnd(), &rcClip, TRUE );
02776             ::UpdateWindow( GetHwnd() );
02777         }
02778     }
02779
02780     /* スクロールバーの状態を更新する */
02781     AdjustScrollBars();
02782
02783     /* キャレットの表示・更新 */
02784     GetCaret().ShowEditCaret();
02785
02786     return -nScrollRowNum;  //方向が逆なので符号反転が必要
02787 }
02788
02789
02790
02791
02799 CLayoutInt CEditView::ScrollAtH( CLayoutInt nPos )
02800 {
02801     CLayoutInt  nScrollColNum;
02802     RECT        rcScrol;
02803     RECT        rcClip2;
02804     if( nPos < 0 ){
02805         nPos = CLayoutInt(0);
02806     }else
02807     //  Aug. 18, 2003 ryoji 変数のミスを修正
02808     //  ウィンドウの幅をきわめて狭くしたときに編集領域が行番号から離れてしまうことがあった．
02809     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02810     if( m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() - GetTextArea().m_nViewColNum  < nPos ){
02811         nPos = m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() - GetTextArea().m_nViewColNum ;
02812         //  May 29, 2004 genta 折り返し幅よりウィンドウ幅が大きいときにWM_HSCROLLが来ると
02813         //  nPosが負の値になることがあり，その場合にスクロールバーから編集領域が
02814         //  離れてしまう．
02815         if( nPos < 0 )
02816             nPos = CLayoutInt(0);
02817     }
02818     if( GetTextArea().GetViewLeftCol() == nPos ){
02819         return CLayoutInt(0);
02820     }
02821     /* 水平スクロール量（文字数）の算出 */
02822     nScrollColNum = GetTextArea().GetViewLeftCol() - nPos;
02823
02824     /* スクロール */
02825     if( t_abs( nScrollColNum ) >= GetTextArea().m_nViewColNum /*|| abs( nScrollRowNum ) >= GetTextArea().m_nViewRowNum*/ ){
02826         GetTextArea().SetViewLeftCol( nPos );
02827         ::InvalidateRect( GetHwnd(), NULL, TRUE );
02828     }else{
02829         rcScrol.left = 0;
02830         rcScrol.right = GetTextArea().GetAreaRight();
02831         rcScrol.top = GetTextArea().GetAreaTop();
02832         rcScrol.bottom = GetTextArea().GetAreaBottom();
02833         if( nScrollColNum > 0 ){
02834             rcScrol.left = GetTextArea().GetAreaLeft();
02835             rcScrol.right =
02836                 GetTextArea().GetAreaRight() - (Int)nScrollColNum * GetTextMetrics().GetHankakuDx();
02837             rcClip2.left = GetTextArea().GetAreaLeft();
02838             rcClip2.right = GetTextArea().GetAreaLeft() + (Int)nScrollColNum * GetTextMetrics().GetHankakuDx();
02839             rcClip2.top = GetTextArea().GetAreaTop();
02840             rcClip2.bottom = GetTextArea().GetAreaBottom();
02841         }
02842         else if( nScrollColNum < 0 ){
02843             rcScrol.left = GetTextArea().GetAreaLeft() - (Int)nScrollColNum * GetTextMetrics().GetHankakuDx();
02844             rcClip2.left =
02845                 GetTextArea().GetAreaRight() + (Int)nScrollColNum * GetTextMetrics().GetHankakuDx();
02846             rcClip2.right = GetTextArea().GetAreaRight();
02847             rcClip2.top = GetTextArea().GetAreaTop();
02848             rcClip2.bottom = GetTextArea().GetAreaBottom();
02849         }
02850         GetTextArea().SetViewLeftCol( nPos );
02851         if( GetDrawSwitch() ){
02852             ::ScrollWindowEx(
02853                 GetHwnd(),
02854                 (Int)nScrollColNum * GetTextMetrics().GetHankakuDx(),       /* 水平スクロール量 */
02855                 0,  /* 垂直スクロール量 */
02856                 &rcScrol,   /* スクロール長方形の構造体のアドレス */
02857                 NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
02858             );
02859             ::InvalidateRect( GetHwnd(), &rcClip2, TRUE );
02860             ::UpdateWindow( GetHwnd() );
02861         }
02862     }
02863     //  2006.1.28 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
02864     // 先にAdjustScrollBarsを呼んでしまうと、二度目はここまでこないので、
02865     // GetRuler().DispRulerが呼ばれない。そのため、順序を入れ替えた。
02866     GetRuler().SetRedrawFlag(); // ルーラーを再描画する。
02867     HDC hdc = ::GetDC( GetHwnd() );
02868     GetRuler().DispRuler( hdc );
02869     ::ReleaseDC( GetHwnd(), hdc );
02870
02871     /* スクロールバーの状態を更新する */
02872     AdjustScrollBars();
02873
02874     /* キャレットの表示・更新 */
02875     GetCaret().ShowEditCaret();
02876
02877     return -nScrollColNum;  //方向が逆なので符号反転が必要
02878 }
02879
02893 void CEditView::SyncScrollV( CLayoutInt line )
02894 {
02895     if( m_pShareData->m_Common.m_sWindow.m_bSplitterWndVScroll && line != 0 )
02896     {
02897         CEditView*  pcEditView = m_pcEditDoc->m_pcEditWnd->m_pcEditViewArr[m_nMyIndex^0x01];
02898 #if 0
02899         //  差分を保ったままスクロールする場合
02900         pcEditView -> ScrollByV( line );
02901 #else
02902         pcEditView -> ScrollAtV( GetTextArea().GetViewTopLine() );
02903 #endif
02904     }
02905 }
02906
02919 void CEditView::SyncScrollH( CLayoutInt col )
02920 {
02921     if( m_pShareData->m_Common.m_sWindow.m_bSplitterWndHScroll && col != 0 )
02922     {
02923         CEditView*  pcEditView = m_pcEditDoc->m_pcEditWnd->m_pcEditViewArr[m_nMyIndex^0x02];
02924         HDC         hdc = ::GetDC( pcEditView->GetHwnd() );
02925
02926 #if 0
02927         //  差分を保ったままスクロールする場合
02928         pcEditView -> ScrollByH( col );
02929 #else
02930         pcEditView -> ScrollAtH( GetTextArea().GetViewLeftCol() );
02931 #endif
02932         GetRuler().SetRedrawFlag(); //2002.02.25 Add By KK スクロール時ルーラー全体を描きなおす。
02933         GetRuler().DispRuler( hdc );
02934         ::ReleaseDC( GetHwnd(), hdc );
02935     }
02936 }
02937
02938 /* 選択範囲のデータを取得 */
02939 /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
02940 BOOL CEditView::GetSelectedData(
02941     CNativeW*       cmemBuf,
02942     BOOL            bLineOnly,
02943     const wchar_t*  pszQuote,           /* 先頭に付ける引用符 */
02944     BOOL            bWithLineNumber,    /* 行番号を付与する */
02945     BOOL            bAddCRLFWhenCopy,   /* 折り返し位置で改行記号を入れる */
02946     enumEOLType     neweol              //  コピー後の改行コード EOL_NONEはコード保存
02947 )
02948 {
02949     const wchar_t*  pLine;
02950     CLogicInt       nLineLen;
02951     CLayoutInt      nLineNum;
02952     CLogicInt       nIdxFrom;
02953     CLogicInt       nIdxTo;
02954     int             nRowNum;
02955     int             nLineNumCols;
02956     wchar_t*        pszLineNum;
02957     wchar_t*        pszSpaces = L"                    ";
02958     const CLayout*  pcLayout;
02959     CEOL            appendEol( neweol );
02960     bool            addnl = false;
02961
02962     /* 範囲選択がされていない */
02963     if( !GetSelectionInfo().IsTextSelected() ){
02964         return FALSE;
02965     }
02966     if( bWithLineNumber ){  /* 行番号を付与する */
02967         /* 行番号表示に必要な桁数を計算 */
02968         nLineNumCols = GetTextArea().DetectWidthOfLineNumberArea_calculate();
02969         nLineNumCols += 1;
02970         pszLineNum = new wchar_t[nLineNumCols + 1];
02971     }
02972
02973     CLayoutRect         rcSel;
02974
02975     if( GetSelectionInfo().IsBoxSelecting() ){  /* 矩形範囲選択中 */
02976         /* 2点を対角とする矩形を求める */
02977         TwoPointToRect(
02978             &rcSel,
02979             GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
02980             GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
02981         );
02982 //      cmemBuf.SetData( "", 0 );
02983         cmemBuf->SetString(L"");
02984
02985         //<< 2002/04/18 Azumaiya
02986         // サイズ分だけ要領をとっておく。
02987         // 結構大まかに見ています。
02988         CLayoutInt i = rcSel.bottom - rcSel.top;
02989
02990         // 最初に行数分の改行量を計算してしまう。
02991         int nBufSize = wcslen(WCODE::CRLF) * (Int)i;
02992
02993         // 実際の文字量。
02994         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( rcSel.top, &nLineLen, &pcLayout );
02995         for(; i != CLayoutInt(0) && pcLayout != NULL; i--, pcLayout = pcLayout->m_pNext)
02996         {
02997             pLine = pcLayout->m_pCDocLine->m_cLine.GetStringPtr() + pcLayout->GetLogicOffset();
02998             nLineLen = CLogicInt(pcLayout->GetLength());
02999             if( NULL != pLine )
03000             {
03001                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03002                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSel.left  );
03003                 nIdxTo      = LineColmnToIndex( pcLayout, rcSel.right );
03004
03005                 nBufSize += nIdxTo - nIdxFrom;
03006             }
03007             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
03008                 break;
03009             }
03010         }
03011
03012         // 大まかに見た容量を元にサイズをあらかじめ確保しておく。
03013         cmemBuf->AllocStringBuffer(nBufSize);
03014         //>> 2002/04/18 Azumaiya
03015
03016         nRowNum = 0;
03017         for( nLineNum = rcSel.top; nLineNum <= rcSel.bottom; ++nLineNum ){
03018 //          if( nRowNum > 0 ){
03019 //              cmemBuf.AppendSz( CRLF );
03020 //              if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
03021 //                  break;
03022 //              }
03023 //          }
03024 //          pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen );
03025             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
03026             if( NULL != pLine ){
03027                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03028                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSel.left  );
03029                 nIdxTo      = LineColmnToIndex( pcLayout, rcSel.right );
03030                 //2002.02.08 hor
03031                 // pLineがNULLのとき(矩形エリアの端がEOFのみの行を含むとき)は以下を処理しない
03032                 if( nIdxTo - nIdxFrom > 0 ){
03033                     if( pLine[nIdxTo - 1] == L'\n' || pLine[nIdxTo - 1] == L'\r' ){
03034                         cmemBuf->AppendString( &pLine[nIdxFrom], nIdxTo - nIdxFrom - 1 );
03035                     }else{
03036                         cmemBuf->AppendString( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
03037                     }
03038                 }
03039             }
03040             ++nRowNum;
03041 //          if( nRowNum > 0 ){
03042                 cmemBuf->AppendString( WCODE::CRLF );
03043                 if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
03044                     break;
03045                 }
03046 //          }
03047         }
03048     }
03049     else{
03050         cmemBuf->SetString(L"");
03051
03052         //<< 2002/04/18 Azumaiya
03053         //  これから貼り付けに使う領域の大まかなサイズを取得する。
03054         //  大まかというレベルですので、サイズ計算の誤差が（容量を多く見積もる方に）結構出ると思いますが、
03055         // まぁ、速さ優先ということで勘弁してください。
03056         //  無駄な容量確保が出ていますので、もう少し精度を上げたいところですが・・・。
03057         //  とはいえ、逆に小さく見積もることになってしまうと、かなり速度をとられる要因になってしまうので
03058         // 困ってしまうところですが・・・。
03059         m_pcEditDoc->m_cLayoutMgr.GetLineStr( GetSelectionInfo().m_sSelect.GetFrom().GetY2(), &nLineLen, &pcLayout );
03060         int nBufSize = 0;
03061
03062         int i = (Int)(GetSelectionInfo().m_sSelect.GetTo().y - GetSelectionInfo().m_sSelect.GetFrom().y);
03063
03064         // 先頭に引用符を付けるとき。
03065         if ( NULL != pszQuote )
03066         {
03067             nBufSize += wcslen(pszQuote);
03068         }
03069
03070         // 行番号を付ける。
03071         if ( bWithLineNumber )
03072         {
03073             nBufSize += nLineNumCols;
03074         }
03075
03076         // 改行コードについて。
03077         if ( neweol == EOL_UNKNOWN )
03078         {
03079             nBufSize += wcslen(WCODE::CRLF);
03080         }
03081         else
03082         {
03083             nBufSize += appendEol.GetLen();
03084         }
03085
03086         // すべての行について同様の操作をするので、行数倍する。
03087         nBufSize *= (Int)i;
03088
03089         // 実際の各行の長さ。
03090         for (; i != 0 && pcLayout != NULL; i--, pcLayout = pcLayout->m_pNext )
03091         {
03092             nBufSize += pcLayout->GetLength() + appendEol.GetLen();
03093             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
03094                 break;
03095             }
03096         }
03097
03098         // 調べた長さ分だけバッファを取っておく。
03099         cmemBuf->AllocStringBuffer(nBufSize);
03100         //>> 2002/04/18 Azumaiya
03101
03102         for( nLineNum = GetSelectionInfo().m_sSelect.GetFrom().GetY2(); nLineNum <= GetSelectionInfo().m_sSelect.GetTo().y; ++nLineNum ){
03103 //          pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen );
03104             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
03105             if( NULL == pLine ){
03106                 break;
03107             }
03108             if( nLineNum == GetSelectionInfo().m_sSelect.GetFrom().y ){
03109                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03110                 nIdxFrom = LineColmnToIndex( pcLayout, GetSelectionInfo().m_sSelect.GetFrom().GetX2() );
03111             }else{
03112                 nIdxFrom = CLogicInt(0);
03113             }
03114             if( nLineNum == GetSelectionInfo().m_sSelect.GetTo().y ){
03115                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03116                 nIdxTo = LineColmnToIndex( pcLayout, GetSelectionInfo().m_sSelect.GetTo().GetX2() );
03117             }else{
03118                 nIdxTo = nLineLen;
03119             }
03120             if( nIdxTo - nIdxFrom == CLogicInt(0) ){
03121                 continue;
03122             }
03123
03124             if( NULL != pszQuote && 0 < wcslen( pszQuote ) ){   /* 先頭に付ける引用符 */
03125 //              cmemBuf.Append( pszQuote, lstrlen( pszQuote ) );
03126                 cmemBuf->AppendString( pszQuote );
03127             }
03128             if( bWithLineNumber ){  /* 行番号を付与する */
03129                 auto_sprintf( pszLineNum, L" %d:" , nLineNum + 1 );
03130                 cmemBuf->AppendString( pszSpaces, nLineNumCols - wcslen( pszLineNum ) );
03131 //              cmemBuf.Append( pszLineNum, lstrlen( pszLineNum ) );
03132                 cmemBuf->AppendString( pszLineNum );
03133             }
03134
03135
03136             if( EOL_NONE != pcLayout->m_cEol ){
03137 //          if( pLine[nIdxTo - 1] == L'\n' || pLine[nIdxTo - 1] == L'\r' ){
03138 //              cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom - 1 );
03139 //              cmemBuf.AppendSz( CRLF );
03140
03141                 if( nIdxTo >= nLineLen ){
03142                     cmemBuf->AppendString( &pLine[nIdxFrom], nLineLen - 1 - nIdxFrom );
03143                     //  Jul. 25, 2000 genta
03144                     cmemBuf->AppendString( ( neweol == EOL_UNKNOWN ) ?
03145                         (pcLayout->m_cEol).GetUnicodeValue() :  //  コード保存
03146                         appendEol.GetUnicodeValue() );          //  新規改行コード
03147                 }
03148                 else {
03149                     cmemBuf->AppendString( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
03150                 }
03151             }else{
03152                 cmemBuf->AppendString( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
03153                 if( nIdxTo - nIdxFrom >= nLineLen ){
03154                     if( bAddCRLFWhenCopy ||  /* 折り返し行に改行を付けてコピー */
03155                         NULL != pszQuote || /* 先頭に付ける引用符 */
03156                         bWithLineNumber     /* 行番号を付与する */
03157                     ){
03158 //                      cmemBuf.Append( CRLF, lstrlen( CRLF ) );
03159                         //  Jul. 25, 2000 genta
03160                         cmemBuf->AppendString(( neweol == EOL_UNKNOWN ) ?
03161                             WCODE::CRLF :                       //  コード保存
03162                             appendEol.GetUnicodeValue() );      //  新規改行コード
03163                     }
03164                 }
03165             }
03166             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
03167                 break;
03168             }
03169         }
03170     }
03171     if( bWithLineNumber ){  /* 行番号を付与する */
03172         delete [] pszLineNum;
03173     }
03174     return TRUE;
03175 }
03176
03177
03178
03179
03180 /* 選択範囲内の全行をクリップボードにコピーする */
03181 void CEditView::CopySelectedAllLines(
03182     const wchar_t*  pszQuote,
03183     BOOL            bWithLineNumber
03184 )
03185 {
03186     RECT        rcSel;
03187     CNativeW    cmemBuf;
03188
03189     if( !GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
03190         return;
03191     }
03192     /* 矩形範囲選択中か */
03193     if( GetSelectionInfo().IsBoxSelecting() ){
03194         /* 2点を対角とする矩形を求める */
03195         TwoPointToRect(
03196             &rcSel,
03197             GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
03198             GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
03199         );
03200
03201         /* 現在の選択範囲を非選択状態に戻す */
03202         GetSelectionInfo().DisableSelectArea( TRUE );
03203
03204         /* 挿入データの先頭位置へカーソルを移動 */
03205         GetSelectionInfo().m_sSelect.SetFrom(CLayoutPoint(0,rcSel.top     )); // 範囲選択開始
03206         GetSelectionInfo().m_sSelect.SetTo  (CLayoutPoint(0,rcSel.bottom+1)); // 範囲選択終了
03207     }
03208     else{
03209         CLayoutRange sSelectOld;
03210         sSelectOld.SetFrom(CLayoutPoint(CLayoutInt(0),GetSelectionInfo().m_sSelect.GetFrom().y));
03211         sSelectOld.SetTo  (CLayoutPoint(CLayoutInt(0),GetSelectionInfo().m_sSelect.GetTo().y  ));
03212         if( GetSelectionInfo().m_sSelect.GetTo().x > 0 ){
03213             sSelectOld.GetToPointer()->y++;
03214         }
03215         /*
03216         int         nSelectLineFromOld; // 範囲選択開始行
03217         int         nSelectColFromOld;  // 範囲選択開始桁
03218         int         nSelectLineToOld;   // 範囲選択終了行
03219         int         nSelectColToOld;    // 範囲選択終了桁
03220         nSelectLineFromOld = GetSelectionInfo().m_sSelect.GetFrom().y;  // 範囲選択開始行
03221         nSelectColFromOld = 0;                  // 範囲選択開始桁
03222         nSelectLineToOld = GetSelectionInfo().m_sSelect.GetTo().y;      // 範囲選択終了行
03223         if( GetSelectionInfo().m_sSelect.GetTo().x > 0 ){
03224             ++nSelectLineToOld;                 // 範囲選択終了行
03225         }
03226         nSelectColToOld = 0;                    // 範囲選択終了桁
03227         */
03228         // 現在の選択範囲を非選択状態に戻す
03229         GetSelectionInfo().DisableSelectArea( TRUE );
03230         GetSelectionInfo().m_sSelect = sSelectOld;      //範囲選択
03231     }
03232     /* 再描画 */
03233     //  ::UpdateWindow();
03234     Call_OnPaint(PAINT_LINENUMBER | PAINT_BODY, TRUE); // メモリＤＣを使用してちらつきのない再描画
03235     /* 選択範囲をクリップボードにコピー */
03236     /* 選択範囲のデータを取得 */
03237     /* 正常時はTRUE,範囲未選択の場合は終了する */
03238     if( !GetSelectedData(
03239         &cmemBuf,
03240         FALSE,
03241         pszQuote, /* 引用符 */
03242         bWithLineNumber, /* 行番号を付与する */
03243         m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy /* 折り返し位置に改行記号を入れる */
03244     ) ){
03245         ::MessageBeep( MB_ICONHAND );
03246         return;
03247     }
03248     /* クリップボードにデータを設定 */
03249     MySetClipboardData( cmemBuf.GetStringPtr(), cmemBuf.GetStringLength(), FALSE );
03250
03251
03252     return;
03253 }
03254
03255 /* 選択エリアのテキストを指定方法で変換 */
03256 void CEditView::ConvSelectedArea( int nFuncCode )
03257 {
03258     CNativeW    cmemBuf;
03259
03260     CLayoutPoint sPos;
03261
03262     CLogicInt   nIdxFrom;
03263     CLogicInt   nIdxTo;
03264     CLayoutInt  nLineNum;
03265     CLogicInt   nDelLen;
03266     CLogicInt   nDelPosNext;
03267     CLogicInt   nDelLenNext;
03268     const wchar_t*  pLine;
03269     CLogicInt       nLineLen;
03270     const wchar_t*  pLine2;
03271     CLogicInt       nLineLen2;
03272     CWaitCursor cWaitCursor( GetHwnd() );
03273
03274     BOOL        bBeginBoxSelectOld;
03275
03276     /* テキストが選択されているか */
03277     if( !GetSelectionInfo().IsTextSelected() ){
03278         return;
03279     }
03280
03281     CLayoutRange sSelectOld = GetSelectionInfo().m_sSelect;     // 範囲選択
03282
03283     bBeginBoxSelectOld  = GetSelectionInfo().IsBoxSelecting();
03284
03285     /* 矩形範囲選択中か */
03286     if( GetSelectionInfo().IsBoxSelecting() ){
03287
03288         /* 2点を対角とする矩形を求める */
03289         CLayoutRect rcSelLayout;
03290         TwoPointToRect(
03291             &rcSelLayout,
03292             GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
03293             GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
03294         );
03295
03296         /* 現在の選択範囲を非選択状態に戻す */
03297         GetSelectionInfo().DisableSelectArea( TRUE );
03298
03299         nIdxFrom = CLogicInt(0);
03300         nIdxTo = CLogicInt(0);
03301         for( nLineNum = rcSelLayout.bottom; nLineNum >= rcSelLayout.top - 1; nLineNum-- ){
03302             const CLayout* pcLayout;
03303             nDelPosNext = nIdxFrom;
03304             nDelLenNext = nIdxTo - nIdxFrom;
03305             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
03306             if( NULL != pLine ){
03307                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03308                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSelLayout.left );
03309                 nIdxTo      = LineColmnToIndex( pcLayout, rcSelLayout.right );
03310
03311                 for( CLogicInt i = nIdxFrom; i <= nIdxTo; ++i ){
03312                     if( pLine[i] == WCODE::CR || pLine[i] == WCODE::LF ){
03313                         nIdxTo = i;
03314                         break;
03315                     }
03316                 }
03317             }else{
03318                 nIdxFrom    = CLogicInt(0);
03319                 nIdxTo      = CLogicInt(0);
03320             }
03321             CLogicInt   nDelPos = nDelPosNext;
03322             nDelLen = nDelLenNext;
03323             if( nLineNum < rcSelLayout.bottom && 0 < nDelLen ){
03324                 pLine2 = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum + CLayoutInt(1), &nLineLen2, &pcLayout );
03325                 sPos.Set(
03326                     LineIndexToColmn( pcLayout, nDelPos ),
03327                     nLineNum + 1
03328                 );
03329
03330                 //2007.10.18 COpe整理
03331                 // 指定位置の指定長データ削除
03332                 DeleteData2(
03333                     sPos,
03334                     nDelLen,
03335                     &cmemBuf
03336                 );
03337
03338                 {
03339                     /* 機能種別によるバッファの変換 */
03340                     CConvertMediator::ConvMemory( &cmemBuf, nFuncCode, (Int)m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
03341
03342                     /* 現在位置にデータを挿入 */
03343                     CLayoutPoint ptLayoutNew;   // 挿入された部分の次の位置
03344                     InsertData_CEditView(
03345                         sPos,
03346                         cmemBuf.GetStringPtr(),
03347                         cmemBuf.GetStringLength(),
03348                         &ptLayoutNew,
03349                         true
03350                     );
03351
03352                     /* カーソルを移動 */
03353                     GetCaret().MoveCursor( ptLayoutNew, FALSE );
03354                     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03355                 }
03356             }
03357         }
03358         /* 挿入データの先頭位置へカーソルを移動 */
03359         GetCaret().MoveCursor( rcSelLayout.UpperLeft(), TRUE );
03360         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03361
03362         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
03363             COpe* pcOpe = new COpe(OPE_MOVECARET);
03364
03365             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();             // 操作前のキャレット位置
03366             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
03367
03368             /* 操作の追加 */
03369             m_pcOpeBlk->AppendOpe( pcOpe );
03370         }
03371     }
03372     else{
03373         /* 選択範囲のデータを取得 */
03374         /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
03375         GetSelectedData( &cmemBuf, FALSE, NULL, FALSE, m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy );
03376
03377         /* 機能種別によるバッファの変換 */
03378         CConvertMediator::ConvMemory( &cmemBuf, nFuncCode, (Int)m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
03379
03380 //      /* 選択エリアを削除 */
03381 //      DeleteData( FALSE );
03382
03383         CLayoutInt nCaretPosYOLD=GetCaret().GetCaretLayoutPos().GetY();
03384
03385         /* データ置換 削除&挿入にも使える */
03386         ReplaceData_CEditView(
03387             GetSelectionInfo().m_sSelect,
03388             NULL,                   /* 削除されたデータのコピー(NULL可能) */
03389             cmemBuf.GetStringPtr(),     /* 挿入するデータ */ // 2002/2/10 aroka CMemory変更
03390             cmemBuf.GetStringLength(),  /* 挿入するデータの長さ */ // 2002/2/10 aroka CMemory変更
03391             false
03392         );
03393
03394         // From Here 2001.12.03 hor
03395         //  選択エリアの復元
03396         GetSelectionInfo().m_sSelect.SetFrom(sSelectOld.GetFrom()); // 範囲選択開始位置
03397         GetSelectionInfo().m_sSelect.SetTo(GetCaret().GetCaretLayoutPos()); // 範囲選択終了位置
03398         if(nCaretPosYOLD==GetSelectionInfo().m_sSelect.GetFrom().y) {
03399             GetCaret().MoveCursor( GetSelectionInfo().m_sSelect.GetFrom(), TRUE );
03400         }else{
03401             GetCaret().MoveCursor( GetSelectionInfo().m_sSelect.GetTo(), TRUE );
03402         }
03403         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03404         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
03405             COpe*   pcOpe = new COpe(OPE_MOVECARET);
03406
03407             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
03408             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
03409
03410             /* 操作の追加 */
03411             m_pcOpeBlk->AppendOpe( pcOpe );
03412         }
03413         RedrawAll();
03414         // To Here 2001.12.03 hor
03415
03416         return;
03417     }
03418
03419     return;
03420 }
03421
03422
03423
03424
03425
03426 /* ポップアップメニュー(右クリック) */
03427 int CEditView::CreatePopUpMenu_R( void )
03428 {
03429     int         nId;
03430     HMENU       hMenu;
03431     POINT       po;
03432     RECT        rc;
03433     CMemory     cmemCurText;
03434     int         i;
03435     int         nMenuIdx;
03436     WCHAR       szLabel[300];
03437     WCHAR       szLabel2[300];
03438     UINT        uFlags;
03439
03440
03441     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
03442     pCEditWnd->GetMenuDrawer().ResetContents();
03443
03444     /* 右クリックメニューの定義はカスタムメニュー配列の0番目 */
03445     nMenuIdx = CUSTMENU_INDEX_FOR_RBUTTONUP;    //マジックナンバー排除    //@@@ 2003.06.13 MIK
03446
03447     //  Oct. 3, 2001 genta
03448     CFuncLookup& FuncLookup = m_pcEditDoc->m_cFuncLookup;
03449
03450     hMenu = ::CreatePopupMenu();
03451     for( i = 0; i < m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nMenuIdx]; ++i ){
03452         if( 0 == m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] ){
03453             ::AppendMenu( hMenu, MF_SEPARATOR, 0, NULL );
03454         }else{
03455             //  Oct. 3, 2001 genta
03456             FuncLookup.Funccode2Name( m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
03457             /* キー */
03458             if( L'\0' == m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nMenuIdx][i] ){
03459                 _tcscpy( szLabel2, szLabel );
03460             }else{
03461                 auto_sprintf( szLabel2, LTEXT("%ls (&%lc)"),
03462                     szLabel,
03463                     m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nMenuIdx][i]
03464                 );
03465             }
03466             /* 機能が利用可能か調べる */
03467             if( TRUE == IsFuncEnable( m_pcEditDoc, m_pShareData, m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] ) ){
03468                 uFlags = MF_STRING | MF_ENABLED;
03469             }else{
03470                 uFlags = MF_STRING | MF_DISABLED | MF_GRAYED;
03471             }
03472             pCEditWnd->GetMenuDrawer().MyAppendMenu(
03473                 hMenu, /*MF_BYPOSITION | MF_STRING*/uFlags,
03474                 m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] , szLabel2 );
03475
03476         }
03477     }
03478
03479     if( !GetSelectionInfo().IsMouseSelecting() ){   /* 範囲選択中 */
03480         if( TRUE == KeyWordHelpSearchDict( LID_SKH_POPUPMENU_R, &po, &rc ) ){   // 2006.04.10 fon
03481             const TCHAR*    pszWork;
03482             pszWork = m_cTipWnd.m_cInfo.GetStringPtr();
03483             // 2002.05.25 Moca &の考慮を追加
03484             TCHAR*  pszShortOut = new TCHAR[160 + 1];
03485             if( 80 < _tcslen( pszWork ) ){
03486                 TCHAR*  pszShort = new TCHAR[80 + 1];
03487                 auto_memcpy( pszShort, pszWork, 80 );
03488                 pszShort[80] = _T('\0');
03489                 dupamp( pszShort, pszShortOut );
03490                 delete [] pszShort;
03491             }else{
03492                 dupamp( pszWork, pszShortOut );
03493             }
03494             ::InsertMenu( hMenu, 0, MF_BYPOSITION, IDM_COPYDICINFO, _T("キーワードの説明をクリップボードにコピー(&K)") );   // 2006.04.10 fon ToolTip内容を直接表示するのをやめた
03495             delete [] pszShortOut;
03496             ::InsertMenu( hMenu, 1, MF_BYPOSITION, IDM_JUMPDICT, _T("キーワード辞書を開く(&J)") );    // 2006.04.10 fon
03497             ::InsertMenu( hMenu, 2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
03498         }
03499     }
03500     po.x = 0;
03501     po.y = 0;
03502     ::GetCursorPos( &po );
03503     po.y -= 4;
03504     nId = ::TrackPopupMenu(
03505         hMenu,
03506         TPM_TOPALIGN
03507         | TPM_LEFTALIGN
03508         | TPM_RETURNCMD
03509         | TPM_LEFTBUTTON
03510         /*| TPM_RIGHTBUTTON*/
03511         ,
03512         po.x,
03513         po.y,
03514         0,
03515         ::GetParent( m_hwndParent )/*GetHwnd()*/,
03516         NULL
03517     );
03518     ::DestroyMenu( hMenu );
03519     return nId;
03520 }
03521
03522
03523
03528 void CEditView::SetParentCaption( void )
03529 {
03530     m_pcEditDoc->SetParentCaption();
03531     return;
03532 }
03533
03534
03535
03536 /* 設定変更を反映させる */
03537 void CEditView::OnChangeSetting( void )
03538 {
03539     RECT        rc;
03540
03541     GetTextArea().SetTopYohaku( m_pShareData->m_Common.m_sWindow.m_nRulerBottomSpace );         /* ルーラーとテキストの隙間 */
03542     GetTextArea().SetAreaTop( GetTextArea().GetTopYohaku() );                                   /* 表示域の上端座標 */
03543
03544     /* ルーラー表示 */
03545     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
03546         GetTextArea().SetAreaTop(GetTextArea().GetAreaTop() + m_pShareData->m_Common.m_sWindow.m_nRulerHeight); /* ルーラー高さ */
03547     }
03548
03549     // フォント更新
03550     GetFontset().UpdateFont();
03551
03552     /* フォントの変更 */
03553     SetFont();
03554
03555     /* フォントが変わっているかもしれないので、カーソル移動 */
03556     GetCaret().MoveCursor( GetCaret().GetCaretLayoutPos(), TRUE );
03557
03558     /* スクロールバーの状態を更新する */
03559     AdjustScrollBars();
03560
03561     /* ウィンドウサイズの変更処理 */
03562     ::GetClientRect( GetHwnd(), &rc );
03563     OnSize( rc.right, rc.bottom );
03564
03565     /* 再描画 */
03566     ::InvalidateRect( GetHwnd(), NULL, TRUE );
03567
03568     return;
03569 }
03570
03571
03572
03573
03574 /* フォーカス移動時の再描画
03575
03576     @date 2001/06/21 asa-o 「スクロールバーの状態を更新する」「カーソル移動」削除
03577 */
03578 void CEditView::RedrawAll( void )
03579 {
03580     // ウィンドウ全体を再描画
03581     PAINTSTRUCT ps;
03582     HDC hdc = ::GetDC( GetHwnd() );
03583     ::GetClientRect( GetHwnd(), &ps.rcPaint );
03584     OnPaint( hdc, &ps, FALSE ); // メモリＤＣを使用してちらつきのない再描画
03585     ::ReleaseDC( GetHwnd(), hdc );
03586
03587     // キャレットの表示
03588     GetCaret().ShowEditCaret();
03589
03590     // キャレットの行桁位置を表示する
03591     GetCaret().DrawCaretPosInfo();
03592
03593     // 親ウィンドウのタイトルを更新
03594     SetParentCaption();
03595
03596     //  Jul. 9, 2005 genta  選択範囲の情報をステータスバーへ表示
03597     GetSelectionInfo().PrintSelectionInfoMsg();
03598
03599     // スクロールバーの状態を更新する
03600     AdjustScrollBars();
03601
03602     return;
03603 }
03604
03605 // 2001/06/21 Start by asa-o 再描画
03606 void CEditView::Redraw( void )
03607 {
03608     HDC         hdc;
03609     PAINTSTRUCT ps;
03610
03611     hdc = ::GetDC( GetHwnd() );
03612
03613     ::GetClientRect( GetHwnd(), &ps.rcPaint );
03614
03615     OnPaint( hdc, &ps, FALSE ); /* メモリＤＣを使用してちらつきのない再描画 */
03616
03617     ::ReleaseDC( GetHwnd(), hdc );
03618
03619     return;
03620 }
03621 // 2001/06/21 End
03622
03623 /* 自分の表示状態を他のビューにコピー */
03624 void CEditView::CopyViewStatus( CEditView* pView )
03625 {
03626     if( pView == NULL ){
03627         return;
03628     }
03629     if( pView == this ){
03630         return;
03631     }
03632
03633     // 入力状態
03634     GetCaret().CopyCaretStatus(&pView->GetCaret());
03635
03636     // 選択状態
03637     GetSelectionInfo().CopySelectStatus(&pView->GetSelectionInfo());
03638
03639     /* 画面情報 */
03640     GetTextArea().CopyTextAreaStatus(&pView->GetTextArea());
03641
03642     /* 表示方法 */
03643     GetTextMetrics().CopyTextMetricsStatus(&pView->GetTextMetrics());
03644
03645     return;
03646 }
03647
03648
03649 /* 縦・横の分割ボックス・サイズボックスのＯＮ／ＯＦＦ */
03650 void CEditView::SplitBoxOnOff( BOOL bVert, BOOL bHorz, BOOL bSizeBox )
03651 {
03652     RECT    rc;
03653     if( bVert ){
03654         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
03655         }else{
03656             m_pcsbwVSplitBox = new CSplitBoxWnd;
03657             m_pcsbwVSplitBox->Create( m_hInstance, GetHwnd(), TRUE );
03658         }
03659     }else{
03660         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
03661             delete m_pcsbwVSplitBox;
03662             m_pcsbwVSplitBox = NULL;
03663         }else{
03664         }
03665     }
03666     if( bHorz ){
03667         if( NULL != m_pcsbwHSplitBox ){ /* 水平分割ボックス */
03668         }else{
03669             m_pcsbwHSplitBox = new CSplitBoxWnd;
03670             m_pcsbwHSplitBox->Create( m_hInstance, GetHwnd(), FALSE );
03671         }
03672     }else{
03673         if( NULL != m_pcsbwHSplitBox ){ /* 水平分割ボックス */
03674             delete m_pcsbwHSplitBox;
03675             m_pcsbwHSplitBox = NULL;
03676         }else{
03677         }
03678     }
03679
03680     if( bSizeBox ){
03681         if( NULL != m_hwndSizeBox ){
03682             ::DestroyWindow( m_hwndSizeBox );
03683             m_hwndSizeBox = NULL;
03684         }
03685         m_hwndSizeBox = ::CreateWindowEx(
03686             0L,                                                 /* no extended styles */
03687             _T("SCROLLBAR"),                                        /* scroll bar control class */
03688             NULL,                                               /* text for window title bar */
03689             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
03690             0,                                                  /* horizontal position */
03691             0,                                                  /* vertical position */
03692             200,                                                /* width of the scroll bar */
03693             CW_USEDEFAULT,                                      /* default height */
03694             GetHwnd(),                                              /* handle of main window */
03695             (HMENU) NULL,                                       /* no menu for a scroll bar */
03696             m_hInstance,                                        /* instance owning this window */
03697             (LPVOID) NULL                                       /* pointer not needed */
03698         );
03699     }else{
03700         if( NULL != m_hwndSizeBox ){
03701             DestroyWindow( m_hwndSizeBox );
03702             m_hwndSizeBox = NULL;
03703         }
03704         m_hwndSizeBox = ::CreateWindowEx(
03705             0L,                                                     /* no extended styles */
03706             _T("STATIC"),                                           /* scroll bar control class */
03707             NULL,                                                   /* text for window title bar */
03708             WS_VISIBLE | WS_CHILD /*| SBS_SIZEBOX | SBS_SIZEGRIP*/, /* scroll bar styles */
03709             0,                                                      /* horizontal position */
03710             0,                                                      /* vertical position */
03711             200,                                                    /* width of the scroll bar */
03712             CW_USEDEFAULT,                                          /* default height */
03713             GetHwnd(),                                                  /* handle of main window */
03714             (HMENU) NULL,                                           /* no menu for a scroll bar */
03715             m_hInstance,                                            /* instance owning this window */
03716             (LPVOID) NULL                                           /* pointer not needed */
03717         );
03718     }
03719     ::ShowWindow( m_hwndSizeBox, SW_SHOW );
03720
03721     ::GetClientRect( GetHwnd(), &rc );
03722     OnSize( rc.right, rc.bottom );
03723
03724     return;
03725 }
03726
03727
03728
03729
03730
03731 /* Grep実行 */
03732 DWORD CEditView::DoGrep(
03733     const CNativeW*         pcmGrepKey,
03734     const CNativeT*         pcmGrepFile,
03735     const CNativeT*         pcmGrepFolder,
03736     BOOL                    bGrepSubFolder,
03737     const SSearchOption&    sSearchOption,
03738     ECodeType               nGrepCharSet,   // 2002/09/21 Moca 文字コードセット選択
03739     BOOL                    bGrepOutputLine,
03740     int                     nGrepOutputStyle
03741 )
03742 {
03743 #ifdef _DEBUG
03744     CRunningTimer cRunningTimer( "CEditView::DoGrep" );
03745 #endif
03746
03747     m_pcEditDoc->m_bGrepRunning = TRUE;
03748
03749
03750     int         nDummy;
03751     int         nHitCount = 0;
03752     wchar_t     szKey[_MAX_PATH];
03753     TCHAR       szFile[_MAX_PATH];
03754     CDlgCancel  cDlgCancel;
03755     HWND        hwndCancel;
03756     HWND        hwndMainFrame;
03757     int         nCharChars;
03758     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
03759     CBregexp    cRegexp;
03760     CNativeW    cmemMessage;
03761     int         nWork;
03762     int*        pnKey_CharCharsArr;
03763     pnKey_CharCharsArr = NULL;
03764
03765     /*
03766     || バッファサイズの調整
03767     */
03768     cmemMessage.AllocStringBuffer( 4000 );
03769
03770     m_bDoing_UndoRedo       = TRUE;
03771
03772
03773     /* アンドゥバッファの処理 */
03774     if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
03775 //@@@2002.2.2 YAZAKI NULLじゃないと進まないので、とりあえずコメント。＆NULLのときは、new COpeBlkする。
03776 //      while( NULL != m_pcOpeBlk ){}
03777 //      delete m_pcOpeBlk;
03778 //      m_pcOpeBlk = NULL;
03779     }
03780     else {
03781         m_pcOpeBlk = new COpeBlk;
03782     }
03783
03784     m_bCurSrchKeyMark = true;                               /* 検索文字列のマーク */
03785     wcscpy( m_szCurSrchKey, pcmGrepKey->GetStringPtr() );   /* 検索文字列 */
03786     m_sCurSearchOption.bRegularExp = sSearchOption.bRegularExp;     /* 検索／置換  1==正規表現 */
03787     m_sCurSearchOption.bLoHiCase   = sSearchOption.bLoHiCase;           /* 検索／置換  1==英大文字小文字の区別 */
03788     /* 正規表現 */
03789
03790     //  From Here Jun. 27 genta
03791     /*
03792         Grepを行うに当たって検索・画面色分け用正規表現バッファも
03793         初期化する．これはGrep検索結果の色分けを行うため．
03794
03795         Note: ここで強調するのは最後の検索文字列であって
03796         Grep対象パターンではないことに注意
03797     */
03798     if( m_sCurSearchOption.bRegularExp ){
03799         //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
03800         if( !InitRegexp( GetHwnd(), m_CurRegexp, true ) ){
03801             return 0;
03802         }
03803
03804         /* 検索パターンのコンパイル */
03805         int nFlag = 0x00;
03806         nFlag |= m_sCurSearchOption.bLoHiCase ? 0x01 : 0x00;
03807         m_CurRegexp.Compile( m_szCurSrchKey, nFlag );
03808     }
03809     //  To Here Jun. 27 genta
03810
03811 //まだ m_bCurSrchWordOnly = m_pShareData->m_Common.m_bWordOnly;   /* 検索／置換  1==単語のみ検索 */
03812
03813 //  cDlgCancel.Create( m_hInstance, m_hwndParent );
03814 //  hwndCancel = cDlgCancel.Open( MAKEINTRESOURCE(IDD_GREPRUNNING) );
03815     hwndCancel = cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_GREPRUNNING );
03816
03817     ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, 0, FALSE );
03818 	::DlgItem_SetText( hwndCancel, IDC_STATIC_CURFILE, _T(" ") );  // 2002/09/09 Moca add
03819     ::CheckDlgButton( hwndCancel, IDC_CHECK_REALTIMEVIEW, m_pShareData->m_Common.m_sSearch.m_bGrepRealTimeView );   // 2003.06.23 Moca
03820
03821     wcscpy( szKey, pcmGrepKey->GetStringPtr() );
03822
03823     wcscpy( m_pcEditDoc->m_szGrepKey, szKey );
03824     m_pcEditDoc->m_bGrepMode = TRUE;
03825
03826     //  2007.07.22 genta
03827     //  バージョン番号取得のため，処理を前の方へ移動した
03828     if( sSearchOption.bRegularExp ){
03829         if( !InitRegexp( m_hWnd, cRegexp, true ) ){
03830             return 0;
03831         }
03832         /* 検索パターンのコンパイル */
03833         int nFlag = 0x00;
03834         nFlag |= sSearchOption.bLoHiCase ? 0x01 : 0x00;
03835         if( !cRegexp.Compile( szKey, nFlag ) ){
03836             return 0;
03837         }
03838     }else{
03839         /* 検索条件の情報 */
03840         CDocLineMgr::CreateCharCharsArr(
03841             szKey,
03842             wcslen( szKey ),
03843             &pnKey_CharCharsArr
03844         );
03845     }
03846
03847 //2002.02.08 Grepアイコンも大きいアイコンと小さいアイコンを別々にする。
03848     HICON   hIconBig, hIconSmall;
03849     //  Dec, 2, 2002 genta アイコン読み込み方法変更
03850     hIconBig   = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, false );
03851     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true );
03852
03853     //  Sep. 10, 2002 genta
03854     //  CEditWndに新設した関数を使うように
03855     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
03856     pCEditWnd->SetWindowIcon( hIconSmall, ICON_SMALL );
03857     pCEditWnd->SetWindowIcon( hIconBig, ICON_BIG );
03858
03859     TCHAR szPath[_MAX_PATH];
03860     _tcscpy( szPath, pcmGrepFolder->GetStringPtr() );
03861     nDummy = _tcslen( szPath );
03862
03863     /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
03864     nCharChars = &szPath[nDummy] - CNativeT::GetCharPrev( szPath, nDummy, &szPath[nDummy] );
03865     if( 1 == nCharChars && szPath[nDummy - 1] == _T('\\') ){
03866     }else{
03867         _tcscat( szPath, _T("\\") );
03868     }
03869     _tcscpy( szFile, pcmGrepFile->GetStringPtr() );
03870
03871     nWork = wcslen( szKey ); // 2003.06.10 Moca あらかじめ長さを計算しておく
03872
03873     /* 最後にテキストを追加 */
03874     CNativeW    cmemWork;
03875     cmemMessage.AppendString( L"\r\n□検索条件  " );
03876     if( 0 < nWork ){
03877         CNativeW cmemWork2;
03878         cmemWork2.SetString( szKey );
03879         if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
03880             cmemWork2.Replace( L"\\", L"\\\\" );
03881             cmemWork2.Replace( L"\'", L"\\\'" );
03882             cmemWork2.Replace( L"\"", L"\\\"" );
03883         }else{
03884             cmemWork2.Replace( L"\'", L"\'\'" );
03885             cmemWork2.Replace( L"\"", L"\"\"" );
03886         }
03887         cmemWork.AppendString( L"\"" );
03888         cmemWork.AppendNativeData( cmemWork2 );
03889         cmemWork.AppendString( L"\"\r\n" );
03890     }else{
03891         cmemWork.AppendString( L"「ファイル検索」\r\n" );
03892     }
03893     cmemMessage += cmemWork;
03894
03895
03896
03897     cmemMessage.AppendString( L"検索対象   " );
03898     cmemWork.SetStringT( szFile );
03899     if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
03900     }else{
03901     }
03902     cmemMessage += cmemWork;
03903
03904
03905
03906
03907     cmemMessage.AppendString( L"\r\n" );
03908     cmemMessage.AppendString( L"フォルダ   " );
03909     cmemWork.SetStringT( szPath );
03910     if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
03911     }else{
03912     }
03913     cmemMessage += cmemWork;
03914     cmemMessage.AppendString( L"\r\n" );
03915
03916     const wchar_t*  pszWork;
03917     if( bGrepSubFolder ){
03918         pszWork = L"    (サブフォルダも検索)\r\n";
03919     }else{
03920         pszWork = L"    (サブフォルダを検索しない)\r\n";
03921     }
03922     cmemMessage.AppendString( pszWork );
03923
03924     if( 0 < nWork ){ // 2003.06.10 Moca ファイル検索の場合は表示しない // 2004.09.26 条件誤り修正
03925         if( sSearchOption.bWordOnly ){
03926         /* 単語単位で探す */
03927             cmemMessage.AppendString( L"    (単語単位で探す)\r\n" );
03928         }
03929
03930         if( sSearchOption.bLoHiCase ){
03931             pszWork = L"    (英大文字小文字を区別する)\r\n";
03932         }else{
03933             pszWork = L"    (英大文字小文字を区別しない)\r\n";
03934         }
03935         cmemMessage.AppendString( pszWork );
03936
03937         if( sSearchOption.bRegularExp ){
03938             //  2007.07.22 genta : 正規表現ライブラリのバージョンも出力する
03939             cmemMessage.AppendString( L"    (正規表現:" );
03940             cmemMessage.AppendStringT( cRegexp.GetVersionT() );
03941             cmemMessage.AppendString( L")\r\n" );
03942         }
03943     }
03944
03945     if( CODE_AUTODETECT == nGrepCharSet ){
03946         cmemMessage.AppendString( L"    (文字コードセットの自動判別)\r\n" );
03947     }else if(IsValidCodeType(nGrepCharSet)){
03948         cmemMessage.AppendString( L"    (文字コードセット：" );
03949         cmemMessage.AppendStringT( gm_pszCodeNameArr_Normal[nGrepCharSet] );
03950         cmemMessage.AppendString( L")\r\n" );
03951     }
03952
03953     if( 0 < nWork ){ // 2003.06.10 Moca ファイル検索の場合は表示しない // 2004.09.26 条件誤り修正
03954         if( bGrepOutputLine ){
03955         /* 該当行 */
03956             pszWork = L"    (一致した行を出力)\r\n";
03957         }else{
03958             pszWork = L"    (一致した箇所のみ出力)\r\n";
03959         }
03960         cmemMessage.AppendString( pszWork );
03961     }
03962
03963
03964     cmemMessage.AppendString( L"\r\n\r\n" );
03965     pszWork = cmemMessage.GetStringPtr( &nWork );
03966 //@@@ 2002.01.03 YAZAKI Grep直後はカーソルをGrep直前の位置に動かす
03967     CLayoutInt tmp_PosY_Layout = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
03968     if( 0 < nWork ){
03969         GetCommander().Command_ADDTAIL( pszWork, nWork );
03970     }
03971     //  2007.07.22 genta バージョンを取得するために，
03972     //  正規表現の初期化を上へ移動
03973
03974
03975     /* 表示処理ON/OFF */
03976     // 2003.06.23 Moca 共通設定で変更できるように
03977 //  SetDrawSwitch(false);
03978     SetDrawSwitch(0 != m_pShareData->m_Common.m_sSearch.m_bGrepRealTimeView);
03979
03980
03981     int nGrepTreeResult = DoGrepTree(
03982         &cDlgCancel,
03983         hwndCancel,
03984         szKey,
03985         pnKey_CharCharsArr,
03986         szFile,
03987         szPath,
03988         bGrepSubFolder,
03989         sSearchOption,
03990         nGrepCharSet,
03991         bGrepOutputLine,
03992         nGrepOutputStyle,
03993         &cRegexp,
03994         0,
03995         &nHitCount
03996     );
03997     if( -1 == nGrepTreeResult ){
03998         const wchar_t* p = L"中断しました。\r\n";
03999         GetCommander().Command_ADDTAIL( p, wcslen( p ) );
04000     }
04001     auto_sprintf( szPath, _T("%d 個が検索されました。\r\n"), nHitCount );
04002     GetCommander().Command_ADDTAIL( to_wchar(szPath), -1 );
04003 //  GetCommander().Command_GOFILEEND( FALSE );
04004 #ifdef _DEBUG
04005     auto_sprintf( szPath, _T("処理時間: %dミリ秒\r\n"), cRunningTimer.Read() );
04006     GetCommander().Command_ADDTAIL( to_wchar(szPath), -1 );
04007 #endif
04008
04009     GetCaret().MoveCursor( CLayoutPoint(CLayoutInt(0), tmp_PosY_Layout), TRUE );    //  カーソルをGrep直前の位置に戻す。
04010
04011     cDlgCancel.CloseDialog( 0 );
04012
04013     /* アクティブにする */
04014     hwndMainFrame = ::GetParent( m_hwndParent );
04015     /* アクティブにする */
04016     ActivateFrameWindow( hwndMainFrame );
04017
04018
04019     /* アンドゥバッファの処理 */
04020     if( NULL != m_pcOpeBlk ){
04021         if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
04022             /* 操作の追加 */
04023             m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
04024         }else{
04025             delete m_pcOpeBlk;
04026         }
04027         m_pcOpeBlk = NULL;
04028     }
04029
04030     //  Apr. 13, 2001 genta
04031     //  Grep実行後はファイルを変更無しの状態にする．
04032     m_pcEditDoc->SetModified(false,false);
04033
04034     m_pcEditDoc->m_bGrepRunning = FALSE;
04035     m_bDoing_UndoRedo = FALSE;
04036
04037     if( NULL != pnKey_CharCharsArr ){
04038         delete [] pnKey_CharCharsArr;
04039         pnKey_CharCharsArr = NULL;
04040     }
04041 //  if( NULL != pnKey_CharUsedArr ){
04042 //      delete [] pnKey_CharUsedArr;
04043 //      pnKey_CharUsedArr = NULL;
04044 //  }
04045
04046     /* 表示処理ON/OFF */
04047     SetDrawSwitch(true);
04048
04049     /* フォーカス移動時の再描画 */
04050     RedrawAll();
04051
04052     return nHitCount;
04053 }
04054
04055 /*
04056  * SORTED_LIST_BSEARCH
04057  *   リストの探索にbsearchを使います。
04058  *   指定しない場合は、線形探索になります。
04059  * SORTED_LIST
04060  *   リストをqsortします。
04061  *
04062  * メモ：
04063  *   線形探索でもqsortを使い、文字列比較の大小関係が逆転したところで探索を
04064  *   打ち切れば少しは速いかもしれません。
04065  */
04066 //#define SORTED_LIST
04067 //#define SORTED_LIST_BSEARCH
04068
04069 #ifdef SORTED_LIST_BSEARCH
04070 #define SORTED_LIST
04071 #endif
04072
04073 #ifdef SORTED_LIST
04074 typedef int (* COMP)(const void *, const void *);
04075
04084 int grep_compare_pp(const void* a, const void* b)
04085 {
04086     return _tcscmp( *((const TCHAR**)a), *((const TCHAR**)b) );
04087 }
04088
04097 int grep_compare_sp(const void* a, const void* b)
04098 {
04099     return _tcscmp( (const TCHAR*)a, *((const TCHAR**)b) );
04100 }
04101 #endif
04102
04111 int CEditView::DoGrepTree(
04112     CDlgCancel*         pcDlgCancel,
04113     HWND                hwndCancel,
04114     const wchar_t*      pszKey,
04115     int*                pnKey_CharCharsArr,
04116     const TCHAR*        pszFile,
04117     const TCHAR*        pszPath,
04118     BOOL                bGrepSubFolder,
04119     const SSearchOption& sSearchOption,
04120     ECodeType           nGrepCharSet,
04121     BOOL                bGrepOutputLine,
04122     int                 nGrepOutputStyle,
04123     CBregexp*           pRegexp,
04124     int                 nNest,
04125     int*                pnHitCount
04126 )
04127 {
04128 	::DlgItem_SetText( hwndCancel, IDC_STATIC_CURPATH, pszPath );
04129
04130     const TCHAR EXCEPT_CHAR = _T('!');  //除外識別子
04131     const TCHAR* WILDCARD_DELIMITER = _T(" ;,");    //リストの区切り
04132     const TCHAR* WILDCARD_ANY = _T("*.*");  //サブフォルダ探索用
04133
04134     int     nWildCardLen;
04135     int     nPos;
04136     BOOL    result;
04137     int     i;
04138     WIN32_FIND_DATA w32fd;
04139     CNativeW        cmemMessage;
04140     int             nHitCountOld;
04141     const wchar_t*  pszWork;
04142     int             nWork = 0;
04143     nHitCountOld = -100;
04144
04145     //解放の対象
04146     HANDLE handle      = INVALID_HANDLE_VALUE;
04147
04148
04149     /*
04150      * リストの初期化(文字列へのポインタをリスト管理する)
04151      */
04152     int checked_list_size = 256;    //確保済みサイズ
04153     int checked_list_count = 0; //登録個数
04154     TCHAR** checked_list = (TCHAR**)malloc( sizeof( TCHAR* ) * checked_list_size );
04155     if( ! checked_list ) return FALSE;  //メモリ確保失敗
04156
04157
04158     /*
04159      * 除外ファイルを登録する。
04160      */
04161     nPos = 0;
04162     TCHAR* pWildCard = _tcsdup( pszFile );  //ワイルドカードリスト作業用
04163     if( ! pWildCard ) goto error_return;    //メモリ確保失敗
04164     nWildCardLen = _tcslen( pWildCard );
04165     TCHAR*  token;
04166     while( NULL != (token = my_strtok<TCHAR>( pWildCard, nWildCardLen, &nPos, WILDCARD_DELIMITER )) )   //トークン毎に繰り返す。
04167     {
04168         //除外ファイル指定でないか？
04169         if( EXCEPT_CHAR != token[0] ) continue;
04170
04171         //ダブルコーテーションを除き、絶対パス名を作成する。
04172         TCHAR* p;
04173         TCHAR* q;
04174         p = q = ++token;
04175         while( *p )
04176         {
04177             if( *p != _T('"') ) *q++ = *p;
04178             p++;
04179         }
04180         *q = _T('\0');
04181         TCHAR* currentPath = NULL;  //現在探索中のパス
04182         currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( token ) + 1 ];
04183         if( ! currentPath ) goto error_return;  //メモリ確保失敗
04184         _tcscpy( currentPath, pszPath );
04185         _tcscat( currentPath, token );
04186
04187         //ファイルの羅列を開始する。
04188         handle = FindFirstFile( currentPath, &w32fd );
04189         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
04190         while( result )
04191         {
04192             if( ! (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //フォルダでない場合
04193             {
04194                 //チェック済みリストに登録する。
04195                 if( checked_list_count >= checked_list_size )
04196                 {
04197                     checked_list_size += 256;
04198                     TCHAR** p = (TCHAR**)realloc( checked_list, sizeof( TCHAR* ) * checked_list_size );
04199                     if( ! p ) goto error_return;    //メモリ確保失敗
04200                     checked_list = p;
04201                 }
04202                 checked_list[ checked_list_count ] = _tcsdup( w32fd.cFileName );
04203                 checked_list_count++;
04204             }
04205
04206             //次のファイルを羅列する。
04207             result = FindNextFile( handle, &w32fd );
04208         }
04209         //ハンドルを閉じる。
04210         if( INVALID_HANDLE_VALUE != handle )
04211         {
04212             FindClose( handle );
04213             handle = INVALID_HANDLE_VALUE;
04214         }
04215         delete [] currentPath;
04216         currentPath = NULL;
04217     }
04218     free( pWildCard );
04219     pWildCard = NULL;
04220
04221
04222     /*
04223      * カレントフォルダのファイルを探索する。
04224      */
04225     nPos = 0;
04226     pWildCard = _tcsdup( pszFile );
04227     if( ! pWildCard ) goto error_return;    //メモリ確保失敗
04228     nWildCardLen = _tcslen( pWildCard );
04229     while( NULL != (token = my_strtok<TCHAR>( pWildCard, nWildCardLen, &nPos, WILDCARD_DELIMITER )) )   //トークン毎に繰り返す。
04230     {
04231         //除外ファイル指定か？
04232         if( EXCEPT_CHAR == token[0] ) continue;
04233
04234         //ダブルコーテーションを除き、絶対パス名を作成する。
04235         TCHAR* p;
04236         TCHAR* q;
04237         p = q = token;
04238         while( *p )
04239         {
04240             if( *p != _T('"') ) *q++ = *p;
04241             p++;
04242         }
04243         *q = _T('\0');
04244         TCHAR* currentPath = NULL;  //現在探索中のパス
04245         currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( token ) + 1 ];
04246         if( ! currentPath ) goto error_return;
04247         _tcscpy( currentPath, pszPath );
04248         _tcscat( currentPath, token );
04249
04250         //ファイルの羅列を開始する。
04251 #ifdef SORTED_LIST
04252         //ソート
04253         qsort( checked_list, checked_list_count, sizeof( WCHAR* ), (COMP)grep_compare_pp_w );
04254 #endif
04255         int current_checked_list_count = checked_list_count;    //前回までのリストの数
04256         handle = FindFirstFile( currentPath, &w32fd );
04257         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
04258         while( result )
04259         {
04260             /* 処理中のユーザー操作を可能にする */
04261             if( !::BlockingHook( pcDlgCancel->GetHwnd() ) ){
04262                 goto cancel_return;
04263             }
04264             /* 中断ボタン押下チェック */
04265             if( pcDlgCancel->IsCanceled() ){
04266                 goto cancel_return;
04267             }
04268
04269             /* 表示設定をチェック */
04270             SetDrawSwitch(0 != ::IsDlgButtonChecked( pcDlgCancel->GetHwnd(), IDC_CHECK_REALTIMEVIEW ));
04271
04272             if( ! (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //フォルダでない場合
04273             {
04274                 /*
04275                  * リストにあるか調べる。
04276                  * 今回探索中のファイル同士が重複することはないので、
04277                  * 前回までのリスト(current_checked_list_count)から検索すればよい。
04278                  */
04279 #ifdef SORTED_LIST_BSEARCH
04280                 if( ! bsearch( w32fd.cFileName, checked_list, current_checked_list_count, sizeof( WCHAR* ), (COMP)grep_compare_sp ) )
04281 #else
04282                 bool found = false;
04283                 TCHAR** ptr = checked_list;
04284                 for( i = 0; i < current_checked_list_count; i++, ptr++ )
04285                 {
04286 #ifdef SORTED_LIST
04287                     int n = wcscmp( *ptr, w32fd.cFileName );
04288                     if( 0 == n )
04289                     {
04290                         found = true;
04291                         break;
04292                     }
04293                     else if( n > 0 )    //探索打ち切り
04294                     {
04295                         break;
04296                     }
04297 #else
04298                     if( 0 == _tcscmp( *ptr, w32fd.cFileName ) )
04299                     {
04300                         found = true;
04301                         break;
04302                     }
04303 #endif
04304                 }
04305                 if( ! found )
04306 #endif
04307                 {
04308                     //チェック済みリストに登録する。
04309                     if( checked_list_count >= checked_list_size )
04310                     {
04311                         checked_list_size += 256;
04312                         TCHAR** p = (TCHAR**)realloc( checked_list, sizeof( TCHAR* ) * checked_list_size );
04313                         if( ! p ) goto error_return;    //メモリ確保失敗
04314                         checked_list = p;
04315                     }
04316                     checked_list[ checked_list_count ] = _tcsdup( w32fd.cFileName );
04317                     checked_list_count++;
04318
04319
04320                     //GREP実行！
04321 					::DlgItem_SetText( hwndCancel, IDC_STATIC_CURFILE, w32fd.cFileName );
04322
04323                     TCHAR* currentFile = new TCHAR[ _tcslen( pszPath ) + _tcslen( w32fd.cFileName ) + 1 ];
04324                     if( ! currentFile ) goto error_return;  //メモリ確保失敗
04325                     _tcscpy( currentFile, pszPath );
04326                     _tcscat( currentFile, w32fd.cFileName );
04327                     /* ファイル内の検索 */
04328                     int nRet = DoGrepFile(
04329                         pcDlgCancel,
04330                         hwndCancel,
04331                         pszKey,
04332                         pnKey_CharCharsArr,
04333                         w32fd.cFileName,
04334                         sSearchOption,
04335                         nGrepCharSet,
04336                         bGrepOutputLine,
04337                         nGrepOutputStyle,
04338                         pRegexp,
04339                         pnHitCount,
04340                         currentFile,
04341                         cmemMessage
04342                     );
04343                     delete currentFile;
04344                     currentFile = NULL;
04345
04346                     // 2003.06.23 Moca リアルタイム表示のときは早めに表示
04347                     if( GetDrawSwitch() ){
04348                         if( LTEXT('\0') != pszKey[0] ){
04349                             // データ検索のときファイルの合計が最大10MBを超えたら表示
04350                             nWork += ( w32fd.nFileSizeLow + 1023 ) / 1024;
04351                         }
04352                         if( *pnHitCount - nHitCountOld &&
04353                             ( *pnHitCount < 20 || 10000 < nWork ) ){
04354                             nHitCountOld = -100; // 即表示
04355                         }
04356                     }
04357                     if( *pnHitCount - nHitCountOld  >= 10 ){
04358                         /* 結果出力 */
04359                         pszWork = cmemMessage.GetStringPtr( &nWork );
04360                         if( 0 < nWork ){
04361                             GetCommander().Command_ADDTAIL( pszWork, nWork );
04362                             GetCommander().Command_GOFILEEND( FALSE );
04363                             /* 結果格納エリアをクリア */
04364                             cmemMessage.SetString( L"" );
04365                             nWork = 0;
04366                         }
04367                         nHitCountOld = *pnHitCount;
04368                     }
04369                     if( -1 == nRet ){
04370                         goto cancel_return;
04371                     }
04372                 }
04373             }
04374
04375             //次のファイルを羅列する。
04376             result = FindNextFile( handle, &w32fd );
04377         }
04378         //ハンドルを閉じる。
04379         if( INVALID_HANDLE_VALUE != handle )
04380         {
04381             FindClose( handle );
04382             handle = INVALID_HANDLE_VALUE;
04383         }
04384         delete [] currentPath;
04385         currentPath = NULL;
04386     }
04387     free( pWildCard );
04388     pWildCard = NULL;
04389
04390     for( i = 0; i < checked_list_count; i++ )
04391     {
04392         free( checked_list[ i ] );
04393     }
04394     free( checked_list );
04395     checked_list = NULL;
04396     checked_list_count = 0;
04397     checked_list_size = 0;
04398
04399
04400     /*
04401      * サブフォルダを検索する。
04402      */
04403     if( bGrepSubFolder ){
04404         TCHAR* subPath     = NULL;
04405         subPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( WILDCARD_ANY ) + 1 ];
04406         if( ! subPath ) goto error_return;  //メモリ確保失敗
04407         _tcscpy( subPath, pszPath );
04408         _tcscat( subPath, WILDCARD_ANY );
04409         handle = FindFirstFile( subPath, &w32fd );
04410         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
04411         while( result )
04412         {
04413             //サブフォルダの探索を再帰呼び出し。
04414             /* 処理中のユーザー操作を可能にする */
04415             if( !::BlockingHook( pcDlgCancel->GetHwnd() ) ){
04416                 goto cancel_return;
04417             }
04418             /* 中断ボタン押下チェック */
04419             if( pcDlgCancel->IsCanceled() ){
04420                 goto cancel_return;
04421             }
04422             /* 表示設定をチェック */
04423             SetDrawSwitch(0 != ::IsDlgButtonChecked( pcDlgCancel->GetHwnd(), IDC_CHECK_REALTIMEVIEW ));
04424
04425             if( (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) //フォルダの場合
04426              && 0 != _tcscmp( w32fd.cFileName, _T("."))
04427              && 0 != _tcscmp( w32fd.cFileName, _T("..")) )
04428             {
04429                 //フォルダ名を作成する。
04430                 TCHAR* currentPath = NULL;  //現在探索中のパス
04431                 currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( w32fd.cFileName ) + 2 ];
04432                 if( ! currentPath ) goto error_return;  //メモリ確保失敗
04433                 _tcscpy( currentPath, pszPath );
04434                 _tcscat( currentPath, w32fd.cFileName );
04435                 _tcscat( currentPath, _T("\\") );
04436
04437                 int nGrepTreeResult = DoGrepTree(
04438                     pcDlgCancel,
04439                     hwndCancel,
04440                     pszKey,
04441                     pnKey_CharCharsArr,
04442                     pszFile,
04443                     currentPath,
04444                     bGrepSubFolder,
04445                     sSearchOption,
04446                     nGrepCharSet,
04447                     bGrepOutputLine,
04448                     nGrepOutputStyle,
04449                     pRegexp,
04450                     nNest + 1,
04451                     pnHitCount
04452                 );
04453                 if( -1 == nGrepTreeResult ){
04454                     goto cancel_return;
04455                 }
04456 				::DlgItem_SetText( hwndCancel, IDC_STATIC_CURPATH, pszPath );   //@@@ 2002.01.10 add サブフォルダから戻ってきたら...
04457
04458                 delete [] currentPath;
04459                 currentPath = NULL;
04460             }
04461
04462             //次のファイルを羅列する。
04463             result = FindNextFile( handle, &w32fd );
04464         }
04465         //ハンドルを閉じる。
04466         if( INVALID_HANDLE_VALUE != handle )
04467         {
04468             FindClose( handle );
04469             handle = INVALID_HANDLE_VALUE;
04470         }
04471         delete [] subPath;
04472         subPath = NULL;
04473     }
04474
04475 	::DlgItem_SetText( hwndCancel, IDC_STATIC_CURFILE, LTEXT(" ") );   // 2002/09/09 Moca add
04476     /* 結果出力 */
04477     pszWork = cmemMessage.GetStringPtr( &nWork );
04478     if( 0 < nWork ){
04479         GetCommander().Command_ADDTAIL( pszWork, nWork );
04480         GetCommander().Command_GOFILEEND( FALSE );
04481         /* 結果格納エリアをクリア */
04482         cmemMessage.SetString( LTEXT("") );
04483     }
04484
04485     return 0;
04486
04487
04488 cancel_return:;
04489 error_return:;
04490     /*
04491      * エラー時はすべての確保済みリソースを解放する。
04492      */
04493     if( INVALID_HANDLE_VALUE != handle ) FindClose( handle );
04494
04495     if( pWildCard ) free( pWildCard );
04496 //  if( currentPath ) delete [] currentPath;
04497 //  if( subPath ) delete [] subPath;
04498
04499     if( checked_list )
04500     {
04501         for( i = 0; i < checked_list_count; i++ )
04502         {
04503             free( checked_list[ i ] );
04504         }
04505         free( checked_list );
04506     }
04507
04508     /* 結果出力 */
04509     pszWork = cmemMessage.GetStringPtr( &nWork );
04510     if( 0 < nWork )
04511     {
04512         GetCommander().Command_ADDTAIL( pszWork, nWork );
04513         GetCommander().Command_GOFILEEND( FALSE );
04514         /* 結果格納エリアをクリア */
04515         cmemMessage.SetString( LTEXT("") );
04516     }
04517
04518     return -1;
04519 }
04520
04521
04522
04523
04534 void CEditView::SetGrepResult(
04535     /* データ格納先 */
04536     wchar_t*    pWork,
04537     int*        pnWorkLen,
04538     /* マッチしたファイルの情報 */
04539     const TCHAR*        pszFullPath,
04540     const TCHAR*        pszCodeName,
04541     /* マッチした行の情報 */
04542     int         nLine,
04543     int         nColm,
04544     const wchar_t*  pCompareData,
04545     int         nLineLen,
04546     int         nEolCodeLen,
04547     /* マッチした文字列の情報 */
04548     const wchar_t*  pMatchData,
04549     int         nMatchLen,
04550     /* オプション */
04551     BOOL        bGrepOutputLine,
04552     int         nGrepOutputStyle
04553 )
04554 {
04555
04556     int nWorkLen = 0;
04557     const wchar_t * pDispData;
04558     int k;
04559     bool bEOL = true;
04560     int nMaxOutStr;
04561
04562     /* ノーマル */
04563     if( 1 == nGrepOutputStyle ){
04564         nWorkLen = ::auto_sprintf( pWork, L"%ls(%d,%d)%ls: ", pszFullPath, nLine, nColm, pszCodeName );
04565         nMaxOutStr = 2000; // 2003.06.10 Moca 最大長変更
04566     }
04567     /* WZ風 */
04568     else if( 2 == nGrepOutputStyle ){
04569         nWorkLen = ::auto_sprintf( pWork, L"・(%6d,%-5d): ", nLine, nColm );
04570         nMaxOutStr = 2500; // 2003.06.10 Moca 最大長変更
04571     }
04572
04573     /* 該当行 */
04574     if( bGrepOutputLine ){
04575         pDispData = pCompareData;
04576         k = nLineLen - nEolCodeLen;
04577         if( nMaxOutStr < k ){
04578             k = nMaxOutStr; // 2003.06.10 Moca 最大長変更
04579         }
04580     }
04581     /* 該当部分 */
04582     else{
04583         pDispData = pMatchData;
04584         k = nMatchLen;
04585         if( nMaxOutStr < k ){
04586             k = nMaxOutStr; // 2003.06.10 Moca 最大長変更
04587         }
04588         // 該当部分に改行を含む場合はその改行コードをそのまま利用する(次の行に空行を作らない)
04589         // 2003.06.10 Moca k==0のときにバッファアンダーランしないように
04590         if( 0 < k && (pMatchData[ k - 1 ] == L'\r' || pMatchData[ k - 1 ] == L'\n') ){
04591             bEOL = false;
04592         }
04593     }
04594
04595     auto_memcpy( &pWork[nWorkLen], pDispData, k );
04596     nWorkLen += k;
04597     if( bEOL ){
04598         auto_memcpy( &pWork[nWorkLen], L"\r\n", 2 );
04599         nWorkLen = nWorkLen + 2;
04600     }
04601     *pnWorkLen = nWorkLen;
04602 }
04603
04628 int CEditView::DoGrepFile(
04629     CDlgCancel*             pcDlgCancel,
04630     HWND                    hwndCancel,
04631     const wchar_t*          pszKey,
04632     int*                    pnKey_CharCharsArr,
04633     const TCHAR*            pszFile,
04634     const SSearchOption&    sSearchOption,
04635     ECodeType               nGrepCharSet,
04636     BOOL                    bGrepOutputLine,
04637     int                     nGrepOutputStyle,
04638     CBregexp*               pRegexp,        //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
04639     int*                    pnHitCount,
04640     const TCHAR*            pszFullPath,
04641     CNativeW&               cmemMessage
04642 )
04643 {
04644     int     nHitCount;
04645 //  char    szLine[16000];
04646     wchar_t szWork[3000]; // ここは SetGrepResult() が返す文字列を格納できるサイズが必要
04647     wchar_t szWork0[_MAX_PATH + 100];
04648     int     nLine;
04649     int     nWorkLen;
04650     const wchar_t*  pszRes; // 2002/08/29 const付加
04651     ECodeType   nCharCode;
04652     const wchar_t*  pCompareData; // 2002/08/29 const付加
04653     int     nColm;
04654     BOOL    bOutFileName;
04655     bOutFileName = FALSE;
04656     CEOL    cEol;
04657     int     nEolCodeLen;
04658     CFileLoad   cfl;
04659     int     nOldPercent = 0;
04660
04661     int nKeyKen = wcslen( pszKey );
04662
04663     //  ここでは正規表現コンパイルデータの初期化は不要
04664
04665     const TCHAR*    pszCodeName; // 2002/08/29 const付加
04666     pszCodeName = _T("");
04667     nHitCount = 0;
04668     nLine = 0;
04669
04670     /* 検索条件が長さゼロの場合はファイル名だけ返す */
04671     // 2002/08/29 行ループの前からここに移動
04672     if( 0 == nKeyKen ){
04673         if( CODE_AUTODETECT == nGrepCharSet ){
04674             // 2003.06.10 Moca コード判別処理をここに移動．
04675             // 判別エラーでもファイル数にカウントするため
04676             // ファイルの日本語コードセット判別
04677             nCharCode = CCodeMediator::CheckKanjiCodeOfFile( pszFullPath );
04678             if( -1 == nCharCode ){
04679                 pszCodeName = _T("  [(DetectError)]");
04680             }else{
04681                 pszCodeName = gm_pszCodeNameArr_Bracket[nCharCode];
04682             }
04683         }
04684         if( 1 == nGrepOutputStyle ){
04685         /* ノーマル */
04686             auto_sprintf( szWork0, L"%ts%ts\r\n", pszFullPath, pszCodeName );
04687         }else{
04688         /* WZ風 */
04689             auto_sprintf( szWork0, L"■\"%ts\"%ts\r\n", pszFullPath, pszCodeName );
04690         }
04691         cmemMessage.AppendString( szWork0 );
04692         ++(*pnHitCount);
04693         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
04694         return 1;
04695     }
04696
04697
04698     try{
04699     // ファイルを開く
04700     // FileCloseで明示的に閉じるが、閉じていないときはデストラクタで閉じる
04701     // 2003.06.10 Moca 文字コード判定処理もFileOpenで行う
04702     nCharCode = cfl.FileOpen( pszFullPath, nGrepCharSet, 0 );
04703     if( CODE_AUTODETECT == nGrepCharSet ){
04704         pszCodeName = gm_pszCodeNameArr_Bracket[nCharCode];
04705     }
04706     auto_sprintf( szWork0, L"■\"%ts\"%ts\r\n", pszFullPath, pszCodeName );
04707 //  /* 処理中のユーザー操作を可能にする */
04708     if( !::BlockingHook( pcDlgCancel->GetHwnd() ) ){
04709         return -1;
04710     }
04711     /* 中断ボタン押下チェック */
04712     if( pcDlgCancel->IsCanceled() ){
04713         return -1;
04714     }
04715
04716     /* 検索条件が長さゼロの場合はファイル名だけ返す */
04717     // 2002/08/29 ファイルオープンの手前へ移動
04718
04719     // 注意 : cfl.ReadLine が throw する可能性がある
04720     CNativeW cUnicodeBuffer;
04721     int     nLineLen;
04722     const wchar_t*  pLine;
04723     while( NULL != ( pLine = cfl.ReadLine( &cUnicodeBuffer, &nLineLen, &cEol ) ) ){
04724         nEolCodeLen = cEol.GetLen();
04725         ++nLine;
04726         pCompareData = pLine;
04727
04728         /* 処理中のユーザー操作を可能にする */
04729         if( !::BlockingHook( pcDlgCancel->GetHwnd() ) ){
04730             return -1;
04731         }
04732         if( 0 == nLine % 64 ){
04733             /* 中断ボタン押下チェック */
04734             if( pcDlgCancel->IsCanceled() ){
04735                 return -1;
04736             }
04737             //  2003.06.23 Moca 表示設定をチェック
04738             SetDrawSwitch(0 != ::IsDlgButtonChecked( pcDlgCancel->GetHwnd(), IDC_CHECK_REALTIMEVIEW ));
04739             // 2002/08/30 Moca 進行状態を表示する(5MB以上)
04740             if( 5000000 < cfl.GetFileSize() ){
04741                 int nPercent = cfl.GetPercent();
04742                 if( 5 <= nPercent - nOldPercent ){
04743                     nOldPercent = nPercent;
04744 					::auto_sprintf( szWork, L"%ls (%3d%%)", pszFile, nPercent );
04745 					::DlgItem_SetText( hwndCancel, IDC_STATIC_CURFILE, szWork );
04746                 }
04747             }
04748         }
04749
04750         /* 正規表現検索 */
04751         if( sSearchOption.bRegularExp ){
04752             int nColmPrev = 0;
04753
04754             //  Jun. 21, 2003 genta ループ条件見直し
04755             //  マッチ箇所を1行から複数検出するケースを標準に，
04756             //  マッチ箇所を1行から1つだけ検出する場合を例外ケースととらえ，
04757             //  ループ継続・打ち切り条件(bGrepOutputLine)を逆にした．
04758             //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
04759             // From Here 2005.03.19 かろと もはやBREGEXP構造体に直接アクセスしない
04760             while( pRegexp->Match( pCompareData, nLineLen, 0 ) ){
04761
04762                     //  パターン発見
04763                     nColm = pRegexp->GetIndex() + 1;
04764                     int matchlen = pRegexp->GetMatchLen();
04765
04766                     /* Grep結果を、szWorkに格納する */
04767                     SetGrepResult(
04768                         szWork,
04769                         &nWorkLen,
04770                         pszFullPath,
04771                         pszCodeName,
04772                         nLine,
04773                         nColm + nColmPrev,
04774                         pCompareData,
04775                         nLineLen,
04776                         nEolCodeLen,
04777                         pCompareData + nColm - 1,
04778                         matchlen,
04779                         bGrepOutputLine,
04780                         nGrepOutputStyle
04781                     );
04782                     // To Here 2005.03.19 かろと もはやBREGEXP構造体に直接アクセスしない
04783                     if( 2 == nGrepOutputStyle ){
04784                     /* WZ風 */
04785                         if( !bOutFileName ){
04786                             cmemMessage.AppendString( szWork0 );
04787                             bOutFileName = TRUE;
04788                         }
04789                     }
04790                     cmemMessage.AppendString( szWork, nWorkLen );
04791                     ++nHitCount;
04792                     ++(*pnHitCount);
04793                     if( 0 == ( (*pnHitCount) % 16 ) || *pnHitCount < 16 ){
04794                         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
04795                     }
04796                     //  Jun. 21, 2003 genta 行単位で出力する場合は1つ見つかれば十分
04797                     if ( bGrepOutputLine ) {
04798                         break;
04799                     }
04800                     //  探し始める位置を補正
04801                     //  2003.06.10 Moca マッチした文字列の後ろから次の検索を開始する
04802                     //  nClom : マッチ位置
04803                     //  matchlen : マッチした文字列の長さ
04804                     int nPosDiff = nColm + matchlen;
04805                     if( matchlen != 0 ){
04806                         nPosDiff--;
04807                     }
04808                     pCompareData += nPosDiff;
04809                     nLineLen -= nPosDiff;
04810                     nColmPrev += nPosDiff;
04811             }
04812         }
04813         /* 単語のみ検索 */
04814         else if( sSearchOption.bWordOnly ){
04815             /*
04816                 2002/02/23 Norio Nakatani
04817                 単語単位のGrepを試験的に実装。単語はWhereCurrentWord()で判別してますので、
04818                 英単語やC/C++識別子などの検索条件ならヒットします。
04819
04820                 2002/03/06 YAZAKI
04821                 Grepにも試験導入。
04822                 WhereCurrentWordで単語を抽出して、その単語が検索語とあっているか比較する。
04823             */
04824             CLogicInt nNextWordFrom = CLogicInt(0);
04825             CLogicInt nNextWordFrom2;
04826             CLogicInt nNextWordTo2;
04827             // Jun. 26, 2003 genta 無駄なwhileは削除
04828             while( CWordParse::WhereCurrentWord_2( pCompareData, CLogicInt(nLineLen), nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL ) ){
04829                 if( nKeyKen == nNextWordTo2 - nNextWordFrom2 ){
04830                     // const char* pData = pCompareData;    // 2002/2/10 aroka CMemory変更 , 2002/08/29 Moca pCompareDataのconst化により不要?
04831                     /* 1==大文字小文字の区別 */
04832                     if( (!sSearchOption.bLoHiCase && 0 == auto_memicmp( &(pCompareData[nNextWordFrom2]) , pszKey, nKeyKen ) ) ||
04833                         (sSearchOption.bLoHiCase && 0 ==     auto_memcmp( &(pCompareData[nNextWordFrom2]) , pszKey, nKeyKen ) )
04834                     ){
04835                         /* Grep結果を、szWorkに格納する */
04836                         SetGrepResult(
04837                             szWork, &nWorkLen,
04838                             pszFullPath, pszCodeName,
04839                             //  Jun. 25, 2002 genta
04840                             //  桁位置は1始まりなので1を足す必要がある
04841                             nLine, nNextWordFrom2 + 1, pCompareData, nLineLen, nEolCodeLen,
04842                             &(pCompareData[nNextWordFrom2]), nKeyKen,
04843                             bGrepOutputLine, nGrepOutputStyle
04844                         );
04845                         if( 2 == nGrepOutputStyle ){
04846                         /* WZ風 */
04847                             if( !bOutFileName ){
04848                                 cmemMessage.AppendString( szWork0 );
04849                                 bOutFileName = TRUE;
04850                             }
04851                         }
04852
04853                         cmemMessage.AppendString( szWork, nWorkLen );
04854                         ++nHitCount;
04855                         ++(*pnHitCount);
04856                         //  May 22, 2000 genta
04857                         // if( 0 == ( (*pnHitCount) % 16 ) ){
04858                             ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
04859                         // }
04860                     }
04861                 }
04862                 /* 現在位置の左右の単語の先頭位置を調べる */
04863                 if( !CWordParse::SearchNextWordPosition( pCompareData, CLogicInt(nLineLen), nNextWordFrom, &nNextWordFrom, FALSE ) ){
04864                     break;  //  次の単語が無い。
04865                 }
04866             }
04867         }
04868         else {
04869             /* 文字列検索 */
04870             int nColmPrev = 0;
04871             //  Jun. 21, 2003 genta ループ条件見直し
04872             //  マッチ箇所を1行から複数検出するケースを標準に，
04873             //  マッチ箇所を1行から1つだけ検出する場合を例外ケースととらえ，
04874             //  ループ継続・打ち切り条件(bGrepOutputLine)を逆にした．
04875             while( NULL != ( pszRes = CDocLineMgr::SearchString(
04876                     pCompareData, nLineLen,
04877                     0,
04878                     pszKey, nKeyKen,
04879                     pnKey_CharCharsArr,
04880                     sSearchOption.bLoHiCase
04881                 ) ) ){
04882                     nColm = pszRes - pCompareData + 1;
04883
04884                     /* Grep結果を、szWorkに格納する */
04885                     SetGrepResult(
04886                         szWork, &nWorkLen,
04887                         pszFullPath, pszCodeName,
04888                         nLine, nColm + nColmPrev, pCompareData, nLineLen, nEolCodeLen,
04889                         pszRes, nKeyKen,
04890                         bGrepOutputLine, nGrepOutputStyle
04891                     );
04892                     if( 2 == nGrepOutputStyle ){
04893                     /* WZ風 */
04894                         if( !bOutFileName ){
04895                             cmemMessage.AppendString( szWork0 );
04896                             bOutFileName = TRUE;
04897                         }
04898                     }
04899
04900                     cmemMessage.AppendString( szWork, nWorkLen );
04901                     ++nHitCount;
04902                     ++(*pnHitCount);
04903                     //  May 22, 2000 genta
04904                     if( 0 == ( (*pnHitCount) % 16 ) || *pnHitCount < 16 ){
04905                         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
04906                     }
04907
04908                     //  Jun. 21, 2003 genta 行単位で出力する場合は1つ見つかれば十分
04909                     if ( bGrepOutputLine ) {
04910                         break;
04911                     }
04912                     //  探し始める位置を補正
04913                     //  2003.06.10 Moca マッチした文字列の後ろから次の検索を開始する
04914                     //  nClom : マッチ位置
04915                     //  matchlen : マッチした文字列の長さ
04916                     int nPosDiff = nColm += nKeyKen - 1;
04917                     pCompareData += nPosDiff;
04918                     nLineLen -= nPosDiff;
04919                     nColmPrev += nPosDiff;
04920             }
04921         }
04922     }
04923
04924     // ファイルを明示的に閉じるが、ここで閉じないときはデストラクタで閉じている
04925     cfl.FileClose();
04926     } // try
04927     catch( CError_FileOpen ){
04928         auto_sprintf( szWork, L"file open error [%ts]\r\n", pszFullPath );
04929         GetCommander().Command_ADDTAIL( szWork, wcslen( szWork ) );
04930         return 0;
04931     }
04932     catch( CError_FileRead ){
04933         auto_sprintf( szWork, L"CEditView::DoGrepFile() ファイルの読み込み中にエラーが発生しました。\r\n");
04934         GetCommander().Command_ADDTAIL( szWork, wcslen( szWork ) );
04935     } // 例外処理終わり
04936
04937     return nHitCount;
04938 }
04939
04940
04941 /* 指定カーソル位置が選択エリア内にあるか
04942     【戻り値】
04943     -1  選択エリアより前方 or 無選択
04944     0   選択エリア内
04945     1   選択エリアより後方
04946 */
04947 int CEditView::IsCurrentPositionSelected(
04948     CLayoutPoint    ptCaretPos      // カーソル位置
04949 )
04950 {
04951     if( !GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
04952         return -1;
04953     }
04954     CLayoutRect     rcSel;
04955     CLayoutPoint    po;
04956
04957     /* 矩形範囲選択中か */
04958     if( GetSelectionInfo().IsBoxSelecting() ){
04959         /* 2点を対角とする矩形を求める */
04960         TwoPointToRect(
04961             &rcSel,
04962             GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
04963             GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
04964         );
04965         ++rcSel.bottom;
04966         po = ptCaretPos;
04967         if( m_bDragSource ){
04968             if( GetKeyState_Control() ){ /* Ctrlキーが押されていたか */
04969                 ++rcSel.left;
04970             }else{
04971                 ++rcSel.right;
04972             }
04973         }
04974         if( rcSel.PtInRect( po ) ){
04975             return 0;
04976         }
04977         if( rcSel.top > ptCaretPos.y ){
04978             return -1;
04979         }
04980         if( rcSel.bottom < ptCaretPos.y ){
04981             return 1;
04982         }
04983         if( rcSel.left > ptCaretPos.x ){
04984             return -1;
04985         }
04986         if( rcSel.right < ptCaretPos.x ){
04987             return 1;
04988         }
04989     }else{
04990         if( GetSelectionInfo().m_sSelect.GetFrom().y > ptCaretPos.y ){
04991             return -1;
04992         }
04993         if( GetSelectionInfo().m_sSelect.GetTo().y < ptCaretPos.y ){
04994             return 1;
04995         }
04996         if( GetSelectionInfo().m_sSelect.GetFrom().y == ptCaretPos.y ){
04997             if( m_bDragSource ){
04998                 if( GetKeyState_Control() ){    /* Ctrlキーが押されていたか */
04999                     if( GetSelectionInfo().m_sSelect.GetFrom().x >= ptCaretPos.x ){
05000                         return -1;
05001                     }
05002                 }else{
05003                     if( GetSelectionInfo().m_sSelect.GetFrom().x > ptCaretPos.x ){
05004                         return -1;
05005                     }
05006                 }
05007             }else
05008             if( GetSelectionInfo().m_sSelect.GetFrom().x > ptCaretPos.x ){
05009                 return -1;
05010             }
05011         }
05012         if( GetSelectionInfo().m_sSelect.GetTo().y == ptCaretPos.y ){
05013             if( m_bDragSource ){
05014                 if( GetKeyState_Control() ){    /* Ctrlキーが押されていたか */
05015                     if( GetSelectionInfo().m_sSelect.GetTo().x <= ptCaretPos.x ){
05016                         return 1;
05017                     }
05018                 }else{
05019                     if( GetSelectionInfo().m_sSelect.GetTo().x < ptCaretPos.x ){
05020                         return 1;
05021                     }
05022                 }
05023             }else
05024             if( GetSelectionInfo().m_sSelect.GetTo().x <= ptCaretPos.x ){
05025                 return 1;
05026             }
05027         }
05028         return 0;
05029     }
05030     return -1;
05031 }
05032
05033 /* 指定カーソル位置が選択エリア内にあるか (テスト)
05034     【戻り値】
05035     -1  選択エリアより前方 or 無選択
05036     0   選択エリア内
05037     1   選択エリアより後方
05038 */
05039 //2007.09.01 kobake 整理
05040 int CEditView::IsCurrentPositionSelectedTEST(
05041     const CLayoutPoint& ptCaretPos,      //カーソル位置
05042     const CLayoutRange& sSelect //
05043 ) const
05044 {
05045     if( !GetSelectionInfo().IsTextSelected() ){ /* テキストが選択されているか */
05046         return -1;
05047     }
05048
05049     if( PointCompare( ptCaretPos, sSelect.GetFrom() ) < 0 )return -1;
05050     if( PointCompare( ptCaretPos, sSelect.GetTo() ) >= 0 )return 1;
05051
05052     return 0;
05053 }
05054
05059 BOOL CEditView::MyGetClipboardData( CNativeW& cmemBuf, BOOL* pbColmnSelect, BOOL* pbLineSelect /*= NULL*/ )
05060 {
05061     if(pbColmnSelect)
05062         *pbColmnSelect = FALSE;
05063
05064     if(pbLineSelect)
05065         *pbLineSelect = FALSE;
05066
05067     if(!CClipboard::HasValidData())
05068         return FALSE;
05069
05070     CClipboard cClipboard(GetHwnd());
05071     if(!cClipboard)
05072         return FALSE;
05073
05074     return cClipboard.GetText(&cmemBuf,pbColmnSelect,pbLineSelect);
05075 }
05076
05077 /* クリップボードにデータを設定
05078     @date 2004.02.17 Moca エラーチェックするように
05079  */
05080 BOOL CEditView::MySetClipboardData( const ACHAR* pszText, int nTextLen, bool bColmnSelect, bool bLineSelect /*= FALSE*/ )
05081 {
05082     //WCHARに変換
05083     vector<wchar_t> buf;
05084     mbstowcs_vector(pszText,nTextLen,&buf);
05085     return MySetClipboardData(&buf[0],buf.size()-1,bColmnSelect,bLineSelect);
05086 }
05087 BOOL CEditView::MySetClipboardData( const WCHAR* pszText, int nTextLen, bool bColmnSelect, bool bLineSelect /*= FALSE*/ )
05088 {
05089     /* Windowsクリップボードにコピー */
05090     CClipboard cClipboard(GetHwnd());
05091     if(!cClipboard){
05092         return FALSE;
05093     }
05094     cClipboard.Empty();
05095     return cClipboard.SetText(pszText,bColmnSelect,bLineSelect)?TRUE:FALSE;
05096 }
05097
05098
05099
05100 STDMETHODIMP CEditView::DragEnter( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
05101 {
05102 #ifdef _DEBUG
05103     MYTRACE_A( "CEditView::DragEnter()\n" );
05104 #endif
05105
05106     if( m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop   /* OLEによるドラッグ & ドロップを使う */
05107         //  Oct. 22, 2005 genta 上書き禁止(ファイルがロックされている)場合も不可
05108          && !( SHAREMODE_NOT_EXCLUSIVE != m_pcEditDoc->m_nFileShareModeOld && m_pcEditDoc->m_hLockedFile == NULL )
05109          && !m_pcEditDoc->IsReadOnly() ){ // Mar. 30, 2003 読みとり専用のファイルにはドロップさせない
05110     }else{
05111         return E_UNEXPECTED;    //  Moca E_INVALIDARGから変更
05112     }
05113
05114     if( pDataObject == NULL || pdwEffect == NULL )
05115         return E_INVALIDARG;
05116
05117     if( IsDataAvailable( pDataObject, CF_UNICODETEXT) ){
05118         /* 自分をアクティブペインにする */
05119         m_pcEditDoc->m_pcEditWnd->SetActivePane( m_nMyIndex );
05120
05121         /* 選択テキストのドラッグ中か */
05122         _SetDragMode(TRUE);
05123
05124         /* 入力フォーカスを受け取ったときの処理 */
05125         OnSetFocus();
05126
05127         m_pcDropTarget->m_pDataObject = pDataObject;
05128         /* Ctrl,ALT,キーが押されていたか */
05129         if( GetKeyState_Control() || !m_bDragSource ){  // Aug. 6, 2004 genta DragOver/Dropでは入っているがここだけ漏れていた
05130             *pdwEffect = DROPEFFECT_COPY;
05131         }else{
05132             *pdwEffect = DROPEFFECT_MOVE;
05133         }
05134         // アクティブにする
05135         ::SetFocus( GetHwnd() );
05136     }
05137     else{
05138         return E_INVALIDARG;
05139     }
05140
05141     DragOver( dwKeyState, pt, pdwEffect );
05142     return S_OK;
05143 }
05144
05145 STDMETHODIMP CEditView::DragOver( DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
05146 {
05147 #ifdef _DEBUG
05148     MYTRACE_A( "CEditView::DragOver()\n" );
05149 #endif
05150
05151     /* マウス移動のメッセージ処理 */
05152     ::ScreenToClient( GetHwnd(), (LPPOINT)&pt );
05153     OnMOUSEMOVE( dwKeyState, pt.x , pt.y );
05154
05155     if ( pdwEffect == NULL )
05156         return E_INVALIDARG;
05157
05158     if( NULL == m_pcDropTarget->m_pDataObject ){
05159         *pdwEffect = DROPEFFECT_NONE;
05160     }
05161     /* 指定カーソル位置が選択エリア内にあるか */
05162     else if( m_bDragSource && 0==IsCurrentPositionSelected(GetCaret().GetCaretLayoutPos()) ){
05163         *pdwEffect = DROPEFFECT_NONE;
05164     }
05165     /* Ctrl,ALT,キーが押されていたか */
05166     else if( GetKeyState_Control() || !m_bDragSource ){
05167         *pdwEffect = DROPEFFECT_COPY;
05168     }
05169     else{
05170         *pdwEffect = DROPEFFECT_MOVE;
05171     }
05172     return S_OK;
05173 }
05174
05175
05176
05177 STDMETHODIMP CEditView::DragLeave( void )
05178 {
05179 #ifdef _DEBUG
05180     MYTRACE_A( "CEditView::DragLeave()\n" );
05181 #endif
05182
05183     if( !m_bDragSource ){
05184         /* 入力フォーカスを失ったときの処理 */
05185         OnKillFocus();
05186         ::SetFocus(NULL);
05187     }else{
05188         // 1999.11.15
05189         OnSetFocus();
05190         ::SetFocus( ::GetParent( m_hwndParent ) );
05191     }
05192
05193     m_pcDropTarget->m_pDataObject = NULL;
05194
05195     /* 選択テキストのドラッグ中か */
05196     _SetDragMode(FALSE);
05197
05198     return S_OK;
05199 }
05200
05201 STDMETHODIMP CEditView::Drop( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
05202 {
05203 #ifdef _DEBUG
05204     MYTRACE_A( "CEditView::Drop()\n" );
05205 #endif
05206     BOOL        bBoxSelected;
05207     BOOL        bMove;
05208     BOOL        bMoveToPrev;
05209     RECT        rcSel;
05210     CNativeW    cmemBuf;
05211     bool        bBeginBoxSelect_Old;
05212
05213     CLayoutRange sSelectBgn_Old;
05214     CLayoutRange sSelect_Old;
05215
05216     if( !m_bDragSource && GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
05217         /* 現在の選択範囲を非選択状態に戻す */
05218         GetSelectionInfo().DisableSelectArea( TRUE );
05219     }
05220
05221
05222
05223     if( pDataObject == NULL || pdwEffect == NULL )
05224         return E_INVALIDARG;
05225
05226     *pdwEffect = DROPEFFECT_NONE;
05227
05228     if( IsDataAvailable(pDataObject, CF_UNICODETEXT) ){
05229         HGLOBAL     hData = GetGlobalData(pDataObject, CF_UNICODETEXT);
05230 #ifdef _DEBUG
05231         MYTRACE_A( "%xh == GetGlobalData(pDataObject, CF_UNICODETEXT)\n", hData );
05232 #endif
05233         if (hData == NULL){
05234             m_pcDropTarget->m_pDataObject = NULL;
05235             /* 選択テキストのドラッグ中か */
05236             _SetDragMode(FALSE);
05237             return E_INVALIDARG;
05238         }
05239
05240         DWORD   nSize = 0;
05241         LPCWSTR lpszSource = (LPCWSTR) ::GlobalLock(hData);
05242
05243         /* 移動かコピーか */
05244         if( GetKeyState_Control() || !m_bDragSource){
05245             bMove = FALSE;
05246             *pdwEffect = DROPEFFECT_COPY;
05247         }
05248         else{
05249             bMove = TRUE;
05250             *pdwEffect = DROPEFFECT_MOVE;
05251         }
05252
05253         if( m_bDragSource ){
05254             if( NULL != m_pcOpeBlk ){
05255             }else{
05256                 m_pcOpeBlk = new COpeBlk;
05257             }
05258             bBoxSelected = GetSelectionInfo().IsBoxSelecting();
05259
05260             /* 選択範囲のデータを取得 */
05261             cmemBuf.SetString( lpszSource );
05262
05263             /* 移動の場合、位置関係を算出 */
05264             if( bMove ){
05265                 if( bBoxSelected ){
05266                     /* 2点を対角とする矩形を求める */
05267                     TwoPointToRect(
05268                         &rcSel,
05269                         GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
05270                         GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
05271                     );
05272                     ++rcSel.bottom;
05273                     if( GetCaret().GetCaretLayoutPos().GetY() >= rcSel.bottom ){
05274                         bMoveToPrev = FALSE;
05275                     }else
05276                     if( GetCaret().GetCaretLayoutPos().GetY() + rcSel.bottom - rcSel.top < rcSel.top ){
05277                         bMoveToPrev = TRUE;
05278                     }else
05279                     if( GetCaret().GetCaretLayoutPos().GetX2() < rcSel.left ){
05280                         bMoveToPrev = TRUE;
05281                     }else{
05282                         bMoveToPrev = FALSE;
05283                     }
05284                 }else{
05285                     if( GetSelectionInfo().m_sSelect.GetFrom().y > GetCaret().GetCaretLayoutPos().GetY() ){
05286                         bMoveToPrev = TRUE;
05287                     }else
05288                     if( GetSelectionInfo().m_sSelect.GetFrom().y == GetCaret().GetCaretLayoutPos().GetY() ){
05289                         if( GetSelectionInfo().m_sSelect.GetFrom().x > GetCaret().GetCaretLayoutPos().GetX2() ){
05290                             bMoveToPrev = TRUE;
05291                         }else{
05292                             bMoveToPrev = FALSE;
05293                         }
05294                     }else{
05295                         bMoveToPrev = FALSE;
05296                     }
05297                 }
05298             }
05299             if( !bMove ){
05300                 /* コピーモード */
05301                 /* 現在の選択範囲を非選択状態に戻す */
05302                 GetSelectionInfo().DisableSelectArea( TRUE );
05303             }
05304
05305             CLayoutPoint ptCaretPos_Old = GetCaret().GetCaretLayoutPos();
05306             if( bMove ){
05307                 if( bMoveToPrev ){
05308                     /* 移動モード & 前に移動 */
05309                     /* 選択エリアを削除 */
05310                     DeleteData( TRUE );
05311                     GetCaret().MoveCursor( ptCaretPos_Old, TRUE );
05312                 }else{
05313                     bBeginBoxSelect_Old = GetSelectionInfo().IsBoxSelecting();
05314
05315                     sSelectBgn_Old = GetSelectionInfo().m_sSelectBgn;
05316
05317                     sSelect_Old = GetSelectionInfo().m_sSelect;
05318
05319                     /* 現在の選択範囲を非選択状態に戻す */
05320                     GetSelectionInfo().DisableSelectArea( TRUE );
05321                 }
05322             }
05323             if( FALSE == bBoxSelected ){    /* 矩形範囲選択中 */
05324                 //  2004,05.14 Moca 引数に文字列長を追加
05325                 GetCommander().Command_INSTEXT( TRUE, cmemBuf.GetStringPtr(), cmemBuf.GetStringLength(), FALSE );
05326             }else{
05327                 // 2004.07.12 Moca クリップボードを書き換えないように
05328                 // TRUE == bBoxSelected
05329                 // FALSE == GetSelectionInfo().IsBoxSelecting()
05330                 /* 貼り付け（クリップボードから貼り付け）*/
05331                 GetCommander().Command_PASTEBOX( cmemBuf.GetStringPtr(), cmemBuf.GetStringLength() );
05332                 AdjustScrollBars(); // 2007.07.22 ryoji
05333                 Redraw();
05334             }
05335             if( bMove ){
05336                 if( bMoveToPrev ){
05337                 }else{
05338                     /* 移動モード & 後ろに移動*/
05339                     GetSelectionInfo().SetBoxSelect(bBeginBoxSelect_Old);
05340
05341                     GetSelectionInfo().m_sSelectBgn = sSelectBgn_Old;
05342                     GetSelectionInfo().m_sSelect = sSelect_Old;
05343
05344                     /* 選択エリアを削除 */
05345                     DeleteData( TRUE );
05346                     GetCaret().MoveCursor( ptCaretPos_Old, TRUE );
05347                 }
05348             }
05349             /* アンドゥバッファの処理 */
05350             if( NULL != m_pcOpeBlk ){
05351                 if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
05352                     /* 操作の追加 */
05353                     m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
05354                     m_pcEditDoc->m_pcEditWnd->RedrawInactivePane(); // 他のペインの表示 // 2007.07.22 ryoji
05355                 }else{
05356                     delete m_pcOpeBlk;
05357                 }
05358                 m_pcOpeBlk = NULL;
05359             }
05360         }else{
05361             GetCommander().HandleCommand( F_INSTEXT_W, TRUE, (LPARAM)lpszSource, TRUE, 0, 0 );
05362         }
05363         ::GlobalUnlock(hData);
05364         // 2004.07.12 fotomo/もか メモリーリークの修正
05365         if( 0 == (GMEM_LOCKCOUNT & ::GlobalFlags(hData)) ){
05366             ::GlobalFree(hData);
05367         }
05368     }else{
05369 #ifdef _DEBUG
05370         MYTRACE_A( "FALSE == IsDataAvailable()\n" );
05371 #endif
05372     }
05373     m_pcDropTarget->m_pDataObject = NULL;
05374
05375     /* 選択テキストのドラッグ中か */
05376     _SetDragMode(FALSE);
05377
05378     /* 編集ウィンドウオブジェクトからのアクティブ要求 */
05379     ::SetFocus( ::GetParent( m_hwndParent ) );
05380     SetActiveWindow( GetHwnd() );
05381
05382     return S_OK;
05383 }
05384
05385
05386
05387
05388
05389 /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
05390 void CEditView::GetCurrentTextForSearch( CNativeW& cmemCurText )
05391 {
05392
05393     int             i;
05394     wchar_t         szTopic[_MAX_PATH];
05395     const wchar_t*  pLine;
05396     CLogicInt       nLineLen;
05397     CLogicInt       nIdx;
05398     CLayoutRange    sRange;
05399
05400     cmemCurText.SetString(L"");
05401     szTopic[0] = L'\0';
05402     if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
05403         /* 選択範囲のデータを取得 */
05404         if( GetSelectedData( &cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
05405             /* 検索文字列を現在位置の単語で初期化 */
05406             wcsncpy( szTopic, cmemCurText.GetStringPtr(), _MAX_PATH - 1 );
05407             szTopic[_MAX_PATH - 1] = L'\0';
05408         }
05409     }else{
05410         const CLayout*  pcLayout;
05411         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( GetCaret().GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
05412         if( NULL != pLine ){
05413             /* 指定された桁に対応する行のデータ内の位置を調べる */
05414             nIdx = LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
05415
05416             /* 現在位置の単語の範囲を調べる */
05417             if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
05418                 GetCaret().GetCaretLayoutPos().GetY2(), nIdx,
05419                 &sRange, NULL, NULL )
05420             ){
05421                 // 指定された行のデータ内の位置に対応する桁の位置を調べる
05422                 // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
05423                 /*
05424                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetFrom().GetY2(), &nLineLen, &pcLayout );
05425                 sRange.SetFromX( LineIndexToColmn( pcLayout, sRange.GetFrom().x ) );
05426                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sRange.GetTo().GetY2(), &nLineLen, &pcLayout );
05427                 sRange.SetToX( LineIndexToColmn( pcLayout, sRange.GetTo().x ) );
05428                 */
05429
05430                 /* 選択範囲の変更 */
05431                 GetSelectionInfo().m_sSelectBgn = sRange;
05432                 GetSelectionInfo().m_sSelect    = sRange;
05433
05434                 /* 選択範囲のデータを取得 */
05435                 if( GetSelectedData( &cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
05436                     /* 検索文字列を現在位置の単語で初期化 */
05437                     wcsncpy( szTopic, cmemCurText.GetStringPtr(), MAX_PATH - 1 );
05438                     szTopic[MAX_PATH - 1] = L'\0';
05439                 }
05440                 /* 現在の選択範囲を非選択状態に戻す */
05441                 GetSelectionInfo().DisableSelectArea( FALSE );
05442             }
05443         }
05444     }
05445
05446     /* 検索文字列は改行まで */
05447     for( i = 0; i < (int)wcslen( szTopic ); ++i ){
05448         if( szTopic[i] == WCODE::CR || szTopic[i] == WCODE::LF ){
05449             szTopic[i] = L'\0';
05450             break;
05451         }
05452     }
05453 //  cmemCurText.SetData( szTopic, lstrlen( szTopic ) );
05454     cmemCurText.SetString( szTopic );
05455     return;
05456
05457 }
05458
05459
05463 void CEditView::GetCurrentTextForSearchDlg( CNativeW& cmemCurText )
05464 {
05465     cmemCurText.SetString(L"");
05466
05467     if( GetSelectionInfo().IsTextSelected() ){  // テキストが選択されている
05468         GetCurrentTextForSearch( cmemCurText );
05469     }
05470     else{   // テキストが選択されていない
05471         if( m_pShareData->m_Common.m_sSearch.m_bCaretTextForSearch ){
05472             GetCurrentTextForSearch( cmemCurText ); // カーソル位置単語を取得
05473         }
05474         else{
05475             cmemCurText.SetString( m_pShareData->m_aSearchKeys[0] );    // 履歴からとってくる
05476         }
05477     }
05478 }
05479
05480
05481 /* カーソル行アンダーラインのON */
05482 void CEditView::CaretUnderLineON( bool bDraw )
05483 {
05484     if( FALSE == m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_bDisp ){
05485         return;
05486     }
05487
05488     if( GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
05489         return;
05490     }
05491     m_nOldUnderLineY = GetTextArea().GetAreaTop() + (Int)(GetCaret().GetCaretLayoutPos().GetY2() - GetTextArea().GetViewTopLine()) * GetTextMetrics().GetHankakuDy() + GetTextMetrics().GetHankakuHeight();
05492     if( -1 == m_nOldUnderLineY ){
05493         m_nOldUnderLineY = -2;
05494     }
05495
05496     if( bDraw
05497      && GetDrawSwitch()
05498      && m_nOldUnderLineY >=GetTextArea().GetAreaTop()
05499      && m_bDoing_UndoRedo == FALSE  /* アンドゥ・リドゥの実行中か */
05500     ){
05501 //      MYTRACE_A( "★カーソル行アンダーラインの描画\n" );
05502         /* ★カーソル行アンダーラインの描画 */
05503         HDC     hdc;
05504         HPEN    hPen, hPenOld;
05505         hdc = ::GetDC( GetHwnd() );
05506         hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_colTEXT );
05507         hPenOld = (HPEN)::SelectObject( hdc, hPen );
05508         ::MoveToEx(
05509             hdc,
05510             GetTextArea().GetAreaLeft(),
05511             m_nOldUnderLineY,
05512             NULL
05513         );
05514         ::LineTo(
05515             hdc,
05516             GetTextArea().GetAreaRight(),
05517             m_nOldUnderLineY
05518         );
05519         ::SelectObject( hdc, hPenOld );
05520         ::DeleteObject( hPen );
05521         ::ReleaseDC( GetHwnd(), hdc );
05522         hdc= NULL;
05523     }
05524     return;
05525 }
05526
05527
05528
05529 /* カーソル行アンダーラインのOFF */
05530 void CEditView::CaretUnderLineOFF( bool bDraw )
05531 {
05532     if( FALSE == m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_bDisp ){
05533         return;
05534     }
05535
05536     if( -1 != m_nOldUnderLineY ){
05537         if( bDraw
05538          && GetDrawSwitch()
05539          && m_nOldUnderLineY >=GetTextArea().GetAreaTop()
05540          && !m_bDoing_UndoRedo  /* アンドゥ・リドゥの実行中か */
05541         ){
05542             // -- -- カーソル行アンダーラインの消去（無理やり） -- -- //
05543
05544             GetCaret().m_cUnderLine.Lock();
05545
05546             PAINTSTRUCT ps;
05547             ps.rcPaint.left = GetTextArea().GetAreaLeft();
05548             ps.rcPaint.right = GetTextArea().GetAreaRight();
05549             ps.rcPaint.top = m_nOldUnderLineY;
05550             ps.rcPaint.bottom = m_nOldUnderLineY;
05551
05552             //  不本意ながら選択情報をバックアップ。
05553             CLayoutRange sSelectBackup = GetSelectionInfo().m_sSelect;
05554             GetSelectionInfo().m_sSelect.Clear(-1);
05555
05556             // 描画
05557             HDC hdc = ::GetDC( GetHwnd() );
05558             OnPaint( hdc, &ps, FALSE );
05559             ReleaseDC( GetHwnd(), hdc );
05560
05561             //  選択情報を復元
05562             GetSelectionInfo().m_sSelect = sSelectBackup;
05563             GetCaret().m_cUnderLine.UnLock();
05564         }
05565         m_nOldUnderLineY = -1;
05566     }
05567     return;
05568 }
05569
05570
05571 #if 0
05572 /* 現在、Enterなどで挿入する改行コードの種類を取得 */
05573 CEOL CEditView::GetCurrentInsertEOL( void )
05574 {
05575     return m_pcEditDoc->GetNewLineCode();
05576 }
05577 #endif
05578
05600 void CEditView::ExecCmd( const TCHAR* pszCmd, int nFlgOpt )
05601 {
05602     HANDLE              hStdOutWrite, hStdOutRead, hStdIn;
05603     PROCESS_INFORMATION pi;
05604     ZeroMemory( &pi, sizeof(pi) );
05605     CDlgCancel              cDlgCancel;
05606
05607     //  From Here 2006.12.03 maru 引数を拡張のため
05608     BOOL    bGetStdout      = nFlgOpt & 0x01 ? TRUE : FALSE;    //  子プロセスの標準出力を得る
05609     BOOL    bToEditWindow   = nFlgOpt & 0x02 ? TRUE : FALSE;    //  TRUE=編集中のウィンドウ / FALSAE=アウトプットウィンドウ
05610     BOOL    bSendStdin      = nFlgOpt & 0x04 ? TRUE : FALSE;    //  編集中ファイルを子プロセスSTDINに渡す
05611     //  To Here 2006.12.03 maru 引数を拡張のため
05612
05613     // 編集中のウィンドウに出力する場合の選択範囲処理用 /* 2007.04.29 maru */
05614     CLayoutInt  nLineFrom, nColmFrom;
05615     bool bBeforeTextSelected = GetSelectionInfo().IsTextSelected();
05616     if (bBeforeTextSelected){
05617         nLineFrom = this->GetSelectionInfo().m_sSelect.GetFrom().y; //m_nSelectLineFrom;
05618         nColmFrom = this->GetSelectionInfo().m_sSelect.GetFrom().x; //m_nSelectColmFrom;
05619     }
05620
05621     //子プロセスの標準出力と接続するパイプを作成
05622     SECURITY_ATTRIBUTES sa;
05623     sa.nLength = sizeof(sa);
05624     sa.bInheritHandle = TRUE;
05625     sa.lpSecurityDescriptor = NULL;
05626     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE ) {
05627         //エラー。対策無し
05628         return;
05629     }
05630     //hStdOutReadのほうは子プロセスでは使用されないので継承不能にする（子プロセスのリソースを無駄に増やさない）
05631     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
05632                 GetCurrentProcess(), &hStdOutRead,                  // 新しい継承不能ハンドルを受け取る // 2007.01.31 ryoji
05633                 0, FALSE,
05634                 DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS );   // 元の継承可能ハンドルは DUPLICATE_CLOSE_SOURCE で閉じる    // 2007.01.31 ryoji
05635
05636
05637     // From Here 2007.03.18 maru 子プロセスの標準入力ハンドル
05638     // CDocLineMgr::WriteFileなど既存のファイル出力系の関数のなかには
05639     // ファイルハンドルを返すタイプのものがないので、一旦書き出してから
05640     // 一時ファイル属性でオープンすることに。
05641     hStdIn = NULL;
05642     if(bSendStdin){ /* 現在編集中のファイルを子プロセスの標準入力へ */
05643         TCHAR       szPathName[MAX_PATH];
05644         TCHAR       szTempFileName[MAX_PATH];
05645         int         nFlgOpt;
05646
05647         GetTempPath( MAX_PATH, szPathName );
05648         GetTempFileName( szPathName, TEXT("skr_"), 0, szTempFileName );
05649         DBPRINT( _T("CEditView::ExecCmd() TempFilename=[%ts]\n"), szTempFileName );
05650
05651         nFlgOpt = bBeforeTextSelected ? 0x01 : 0x00;        /* 選択範囲を出力 */
05652
05653         if( !GetCommander().Command_PUTFILE( to_wchar(szTempFileName), CODE_SJIS, nFlgOpt) ){   // 一時ファイル出力
05654             hStdIn = NULL;
05655         } else {
05656             // 子プロセスへの継承用にファイルを開く
05657             hStdIn = CreateFile(
05658                 szTempFileName,
05659                 GENERIC_READ,
05660                 0,
05661                 &sa,
05662                 OPEN_EXISTING,
05663                 FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE,
05664                 NULL
05665             );
05666             if(hStdIn == INVALID_HANDLE_VALUE) hStdIn = NULL;
05667         }
05668     }
05669
05670     if (hStdIn == NULL) {   /* 標準入力を制御しない場合、または一時ファイルの生成に失敗した場合 */
05671         bSendStdin = FALSE;
05672         hStdIn = GetStdHandle( STD_INPUT_HANDLE );
05673     }
05674     // To Here 2007.03.18 maru 子プロセスの標準入力ハンドル
05675
05676
05677     //CreateProcessに渡すSTARTUPINFOを作成
05678     STARTUPINFO sui;
05679     ZeroMemory( &sui, sizeof(sui) );
05680     sui.cb = sizeof(sui);
05681     if( bGetStdout || bSendStdin ) {
05682         sui.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
05683         sui.wShowWindow = bGetStdout ? SW_HIDE : SW_SHOW;
05684         sui.hStdInput = hStdIn;
05685         sui.hStdOutput = bGetStdout ? hStdOutWrite : GetStdHandle( STD_OUTPUT_HANDLE );
05686         sui.hStdError = bGetStdout ? hStdOutWrite : GetStdHandle( STD_ERROR_HANDLE );
05687     }
05688
05689     //コマンドライン実行
05690     TCHAR   cmdline[1024];
05691     _tcscpy( cmdline, pszCmd );
05692     if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
05693                 CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE ) {
05694         //実行に失敗した場合、コマンドラインベースのアプリケーションと判断して
05695         // command(9x) か cmd(NT) を呼び出す
05696
05697         //OSバージョン取得
05698         COsVersionInfo cOsVer;
05699         //コマンドライン文字列作成
05700         auto_sprintf(
05701             cmdline,
05702             _T("%ls %ls%ts"),
05703             ( cOsVer.IsWin32NT() ? L"cmd.exe" : L"command.com" ),
05704             ( bGetStdout ? L"/C " : L"/K " ),
05705             pszCmd
05706         );
05707         if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
05708                     CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE ) {
05709             MessageBox( NULL, cmdline, _T("コマンド実行は失敗しました。"), MB_OK | MB_ICONEXCLAMATION );
05710             goto finish;
05711         }
05712     }
05713
05714     // ファイル全体に対するフィルタ動作
05715     //  現在編集中のファイルからのデータ書きだしおよびデータ取り込みが
05716     //  指定されていて，かつ範囲選択が行われていない場合は
05717     //  「すべて選択」されているものとして，編集データ全体を
05718     //  コマンドの出力結果と置き換える．
05719     //  2007.05.20 maru
05720     if(!bBeforeTextSelected && bSendStdin && bGetStdout && bToEditWindow){
05721         GetSelectionInfo().SetSelectArea(
05722             CLayoutRange(
05723                 CLayoutPoint(CLayoutInt(0), CLayoutInt(0)),
05724                 CLayoutPoint(m_pcEditDoc->m_cLayoutMgr.GetLineCount(), CLayoutInt(0) )
05725             )
05726         );
05727         DeleteData( TRUE );
05728     }
05729
05730     // hStdOutWrite は CreateProcess() で継承したので親プロセスでは用済み
05731     // hStdInも親プロセスでは使用しないが、Win9x系では子プロセスが終了してから
05732     // クローズするようにしないと一時ファイルが自動削除されない
05733     CloseHandle(hStdOutWrite);
05734     hStdOutWrite = NULL;    // 2007.09.08 genta 二重closeを防ぐ
05735
05736     if( bGetStdout ) {
05737         DWORD   read_cnt;
05738         DWORD   new_cnt;
05739         int     bufidx = 0;
05740         int     j;
05741         BOOL    bLoopFlag = TRUE;
05742
05743         //中断ダイアログ表示
05744         cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_EXECRUNNING );
05745         //実行したコマンドラインを表示
05746         // 2004.09.20 naoh 多少は見やすく・・・
05747         if (FALSE==bToEditWindow)   //  2006.12.03 maru アウトプットウィンドウにのみ出力
05748         {
05749             TCHAR szTextDate[1024], szTextTime[1024];
05750             SYSTEMTIME systime;
05751             ::GetLocalTime( &systime );
05752             CShareData::getInstance()->MyGetDateFormat( systime, szTextDate, _countof( szTextDate ) - 1 );
05753             CShareData::getInstance()->MyGetTimeFormat( systime, szTextTime, _countof( szTextTime ) - 1 );
05754             CShareData::getInstance()->TraceOut( _T("\r\n%ls\r\n"), _T("#============================================================") );
05755             CShareData::getInstance()->TraceOut( _T("#DateTime : %ls %ls\r\n"), szTextDate, szTextTime );
05756             CShareData::getInstance()->TraceOut( _T("#CmdLine  : %ls\r\n"), pszCmd );
05757             CShareData::getInstance()->TraceOut( _T("#%ls\r\n"), _T("==============================") );
05758         }
05759
05760         //charで読む
05761         typedef char PIPE_CHAR;
05762         PIPE_CHAR work[1024];
05763
05764         //実行結果の取り込み
05765         do {
05766             //プロセスが終了していないか確認
05767             // Jun. 04, 2003 genta CPU消費を減らすために200msec待つ
05768             // その間メッセージ処理が滞らないように待ち方をWaitForSingleObjectから
05769             // MsgWaitForMultipleObjectに変更
05770             // Jan. 23, 2004 genta
05771             // 子プロセスの出力をどんどん受け取らないと子プロセスが
05772             // 停止してしまうため，待ち時間を200msから20msに減らす
05773             switch( MsgWaitForMultipleObjects( 1, &pi.hProcess, FALSE, 20, QS_ALLEVENTS )){
05774                 case WAIT_OBJECT_0:
05775                     //終了していればループフラグをFALSEとする
05776                     //ただしループの終了条件は プロセス終了 && パイプが空
05777                     bLoopFlag = FALSE;
05778                     break;
05779                 case WAIT_OBJECT_0 + 1:
05780                     //処理中のユーザー操作を可能にする
05781                     if( !::BlockingHook( cDlgCancel.GetHwnd() ) ){
05782                         break;
05783                     }
05784                     break;
05785                 default:
05786                     break;
05787             }
05788             //中断ボタン押下チェック
05789             if( cDlgCancel.IsCanceled() ){
05790                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
05791                 ::TerminateProcess( pi.hProcess, 0 );
05792                 if (!bToEditWindow) {   //  2006.12.03 maru アウトプットウィンドウにのみ出力
05793                     //最後にテキストを追加
05794                     CShareData::getInstance()->TraceOut( _T("%ts"), _T("\r\n中断しました。\r\n") );
05795                 }
05796                 break;
05797             }
05798             new_cnt = 0;
05799
05800             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ) { //パイプの中の読み出し待機中の文字数を取得
05801                 while( new_cnt > 0 ) {                                              //待機中のものがある
05802
05803                     if( new_cnt >= _countof(work)-2 ) {                         //パイプから読み出す量を調整
05804                         new_cnt = _countof(work)-2;
05805                     }
05806                     ReadFile( hStdOutRead, &work[bufidx], new_cnt, &read_cnt, NULL );   //パイプから読み出し
05807                     read_cnt += bufidx;                                                 //work内の実際のサイズにする
05808
05809                     if( read_cnt == 0 ) {
05810                         // Jan. 23, 2004 genta while追加のため制御を変更
05811                         break;
05812                     }
05813                     //読み出した文字列をチェックする
05814                     // \r\n を \r だけとか漢字の第一バイトだけを出力するのを防ぐ必要がある
05815                     //@@@ 2002.1.24 YAZAKI 1バイト取りこぼす可能性があった。
05816                     //  Jan. 28, 2004 Moca 最後の文字はあとでチェックする
05817                     for( j=0; j<(int)read_cnt - 1; j++ ) {
05818                         //  2007.09.10 ryoji
05819                         if( CNativeA::GetSizeOfChar(work, read_cnt, j) == 2 ) {
05820                             j++;
05821                         } else {
05822                             if( work[j] == _T2(PIPE_CHAR,'\r') && work[j+1] == _T2(PIPE_CHAR,'\n') ) {
05823                                 j++;
05824                             } else if( work[j] == _T2(PIPE_CHAR,'\n') && work[j+1] == _T2(PIPE_CHAR,'\r') ) {
05825                                 j++;
05826                             }
05827                         }
05828                     }
05829                     //  From Here Jan. 28, 2004 Moca
05830                     //  改行コードが分割されるのを防ぐ
05831                     if( j == read_cnt - 1 ){
05832                         if( _IS_SJIS_1(work[j]) ) {
05833                             j = read_cnt + 1; // ぴったり出力できないことを主張
05834                         }else if( work[j] == _T2(PIPE_CHAR,'\r') || work[j] == _T2(PIPE_CHAR,'\n') ) {
05835                             // CRLF,LFCRの一部ではない改行が末尾にある
05836                             // 次の読み込みで、CRLF,LFCRの一部になる可能性がある
05837                             j = read_cnt + 1;
05838                         }else{
05839                             j = read_cnt;
05840                         }
05841                     }
05842                     //  To Here Jan. 28, 2004 Moca
05843                     if( j == (int)read_cnt ) {  //ぴったり出力できる場合
05844                         //  2006.12.03 maru アウトプットウィンドウor編集中のウィンドウ分岐追加
05845                         if (FALSE==bToEditWindow) {
05846                             work[read_cnt] = '\0';
05847                             CShareData::getInstance()->TraceOut( _T("%hs"), work );
05848                         } else {
05849                             GetCommander().Command_INSTEXT(FALSE, to_wchar(work,read_cnt), CLogicInt(-1), TRUE);
05850                         }
05851                         bufidx = 0;
05852                     }
05853                     else {
05854                         char tmp = work[read_cnt-1];
05855                         //  2006.12.03 maru アウトプットウィンドウor編集中のウィンドウ分岐追加
05856                         if (FALSE==bToEditWindow) {
05857                             work[read_cnt-1] = '\0';
05858                             CShareData::getInstance()->TraceOut( _T("%hs"), work );
05859                         } else {
05860                             GetCommander().Command_INSTEXT(FALSE, to_wchar(work,read_cnt-1), CLogicInt(-1), TRUE);
05861                         }
05862                         work[0] = tmp;
05863                         bufidx = 1;
05864                         DBPRINT_A( "ExecCmd: Carry last character [%d]\n", tmp );
05865                     }
05866                     // Jan. 23, 2004 genta
05867                     // 子プロセスの出力をどんどん受け取らないと子プロセスが
05868                     // 停止してしまうため，バッファが空になるまでどんどん読み出す．
05869                     new_cnt = 0;
05870                     if( ! PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ){
05871                         break;
05872                     }
05873                     Sleep(0);
05874                 }
05875             }
05876         } while( bLoopFlag || new_cnt > 0 );
05877
05878         if (!bToEditWindow) {   //  2006.12.03 maru アウトプットウィンドウにのみ出力
05879             work[bufidx] = '\0';
05880             CShareData::getInstance()->TraceOut( _T("%hs"), work ); /* 最後の文字の処理 */
05881             //  Jun. 04, 2003 genta 終了コードの取得と出力
05882             DWORD result;
05883             ::GetExitCodeProcess( pi.hProcess, &result );
05884             CShareData::getInstance()->TraceOut( _T("\r\n終了コード: %d\r\n"), result );
05885
05886             // 2004.09.20 naoh 終了コードが1以上の時はアウトプットをアクティブにする
05887             if(result > 0) ActivateFrameWindow( m_pShareData->m_hwndDebug );
05888         }
05889         else {                      //  2006.12.03 maru 編集中のウィンドウに出力時は最後に再描画
05890             GetCommander().Command_INSTEXT(FALSE, to_wchar(work,bufidx), CLogicInt(-1), TRUE);  /* 最後の文字の処理 */
05891             if (bBeforeTextSelected){   // 挿入された部分を選択状態に
05892                 GetSelectionInfo().SetSelectArea(
05893                     CLayoutRange(
05894                         CLayoutPoint(nLineFrom, nColmFrom),
05895                         GetCaret().GetCaretLayoutPos()// CLayoutPoint(m_nCaretPosY, m_nCaretPosX )
05896                     )
05897                 );
05898                 GetSelectionInfo().DrawSelectArea();
05899             }
05900             RedrawAll();
05901         }
05902     }
05903
05904
05905 finish:
05906     //終了処理
05907     if(bSendStdin) CloseHandle( hStdIn );   /* 2007.03.18 maru 標準入力の制御のため */
05908     if(hStdOutWrite) CloseHandle( hStdOutWrite );
05909     CloseHandle( hStdOutRead );
05910     if( pi.hProcess ) CloseHandle( pi.hProcess );
05911     if( pi.hThread ) CloseHandle( pi.hThread );
05912 }
05913
05920 void CEditView::SendStatusMessage( const TCHAR* msg )
05921 {
05922     m_pcEditDoc->m_pcEditWnd->SendStatusMessage( msg );
05923 }
05924
05925
05926
05927 //  2002.04.09 minfu from here
05928 /*再変換用 カーソル位置から前後200byteを取り出してRECONVERTSTRINGを埋める */
05929 /*  引数  pReconv RECONVERTSTRING構造体へのポインタ。                     */
05930 /*        bUnicode trueならばUNICODEで構造体を埋める                      */
05931 /*  戻り値   RECONVERTSTRINGのサイズ                                      */
05932 LRESULT CEditView::SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode)
05933 {
05934     m_nLastReconvIndex = -1;
05935     m_nLastReconvLine  = -1;
05936
05937     //矩形選択中は何もしない
05938     if( GetSelectionInfo().IsBoxSelecting() )
05939         return 0;
05940
05941     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
05942     //                      選択範囲を取得                         //
05943     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
05944     //選択範囲を取得 -> ptSelect, ptSelectTo, nSelectedLen
05945     CLogicPoint ptSelect;
05946     CLogicPoint ptSelectTo;
05947     int         nSelectedLen;
05948     if( GetSelectionInfo().IsTextSelected() ){
05949         //テキストが選択されているとき
05950         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(GetSelectionInfo().m_sSelect.GetFrom(), &ptSelect);
05951         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(GetSelectionInfo().m_sSelect.GetTo(), &ptSelectTo);
05952
05953         //選択範囲が複数行の時は
05954         if (ptSelectTo.y != ptSelect.y){
05955             //行末までに制限
05956             CDocLine* pDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo(ptSelect.GetY2());
05957             ptSelectTo.x = pDocLine->m_cLine.GetStringLength();
05958         }
05959     }else{
05960         //テキストが選択されていないとき
05961         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(GetCaret().GetCaretLayoutPos(), &ptSelect);
05962         ptSelectTo = ptSelect;
05963     }
05964     nSelectedLen = ptSelectTo.x - ptSelect.x;
05965
05966     //ドキュメント行取得 -> pcCurDocLine
05967     CDocLine* pcCurDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo(ptSelect.GetY2());
05968     if (NULL == pcCurDocLine )
05969         return 0;
05970
05971     //テキスト取得 -> pLine, nLineLen
05972     int nLineLen = pcCurDocLine->m_cLine.GetStringLength() - pcCurDocLine->m_cEol.GetLen() ; //改行コードをのぞいた長さ
05973     if ( 0 == nLineLen )
05974         return 0;
05975     const wchar_t* pLine = pcCurDocLine->m_cLine.GetStringPtr();
05976
05977
05978     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
05979     //                      選択範囲を修正                         //
05980     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
05981
05982     //再変換考慮文字列開始  //行の中で再変換のAPIにわたすとする文字列の開始位置
05983     int nReconvIndex = 0;
05984     if ( ptSelect.x > 200 ) { //$$マジックナンバー注意
05985         const wchar_t* pszWork = pLine;
05986         while( (ptSelect.x - nReconvIndex) > 200 ){
05987             pszWork = ::CharNextW_AnyBuild( pszWork);
05988             nReconvIndex = pszWork - pLine ;
05989         }
05990     }
05991
05992     //再変換考慮文字列終了  //行の中で再変換のAPIにわたすとする文字列の長さ
05993     int nReconvLen = nLineLen - nReconvIndex;
05994     if ( (nReconvLen + nReconvIndex - ptSelect.x) > 200 ){
05995         const wchar_t* pszWork = pLine + ptSelect.x;
05996         nReconvLen = ptSelect.x - nReconvIndex;
05997         while( ( nReconvLen + nReconvIndex - ptSelect.x) <= 200 ){
05998             pszWork = ::CharNextW_AnyBuild( pszWork);
05999             nReconvLen = pszWork - (pLine + nReconvIndex) ;
06000         }
06001     }
06002
06003     //対象文字列の調整
06004     if ( ptSelect.x + nSelectedLen > nReconvIndex + nReconvLen ){
06005         nSelectedLen = nReconvIndex + nReconvLen - ptSelect.x;
06006     }
06007
06008
06009     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
06010     //                      構造体設定要素                         //
06011     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
06012
06013     //行の中で再変換のAPIにわたすとする文字列の長さ
06014     int         nReconvLenWithNull;
06015     DWORD       dwReconvTextLen;
06016     DWORD       dwCompStrOffset, dwCompStrLen;
06017     CNativeW    cmemBuf1;
06018     const void* pszReconv;
06019
06020     //UNICODE→UNICODE
06021     if(bUnicode){
06022         dwReconvTextLen    = nReconvLen;                                            //reconv文字列長。文字単位。
06023         nReconvLenWithNull = (nReconvLen + 1) * sizeof(wchar_t);                    //reconvデータ長。バイト単位。
06024         dwCompStrOffset    = (Int)(ptSelect.x - nReconvIndex) * sizeof(wchar_t);    //compオフセット。バイト単位。
06025         dwCompStrLen       = nSelectedLen;                                          //comp文字列長。文字単位。
06026         pszReconv          = reinterpret_cast<const void*>(pLine + nReconvIndex);   //reconv文字列へのポインタ。
06027     }
06028     //UNICODE→ANSI
06029     else{
06030         const wchar_t* pszReconvSrc =  pLine + nReconvIndex;
06031
06032         //考慮文字列の開始から対象文字列の開始まで -> dwCompStrOffset
06033         if( ptSelect.x - nReconvIndex > 0 ){
06034             cmemBuf1.SetString(pszReconvSrc, ptSelect.x - nReconvIndex);
06035             CShiftJis::UnicodeToSJIS(cmemBuf1._GetMemory());
06036             dwCompStrOffset = cmemBuf1._GetMemory()->GetRawLength();                //compオフセット。バイト単位。
06037         }else{
06038             dwCompStrOffset = 0;
06039         }
06040
06041         //対象文字列の開始から対象文字列の終了まで -> dwCompStrLen
06042         if (nSelectedLen > 0 ){
06043             cmemBuf1.SetString(pszReconvSrc + ptSelect.x, nSelectedLen);
06044             CShiftJis::UnicodeToSJIS(cmemBuf1._GetMemory());
06045             dwCompStrLen = cmemBuf1._GetMemory()->GetRawLength();                   //comp文字列長。文字単位。
06046         }else{
06047             dwCompStrLen = 0;
06048         }
06049
06050         //考慮文字列すべて
06051         cmemBuf1.SetString(pszReconvSrc , nReconvLen );
06052         CShiftJis::UnicodeToSJIS(cmemBuf1._GetMemory());
06053
06054         dwReconvTextLen =  cmemBuf1._GetMemory()->GetRawLength();                       //reconv文字列長。文字単位。
06055         nReconvLenWithNull =  cmemBuf1._GetMemory()->GetRawLength() + sizeof(char);     //reconvデータ長。バイト単位。
06056
06057         pszReconv = reinterpret_cast<const void*>(cmemBuf1._GetMemory()->GetRawPtr());  //reconv文字列へのポインタ
06058     }
06059
06060     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
06061     //                        構造体設定                           //
06062     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
06063     if ( NULL != pReconv) {
06064         //再変換構造体の設定
06065         pReconv->dwSize            = sizeof(*pReconv) + nReconvLenWithNull ;
06066         pReconv->dwVersion         = 0;
06067         pReconv->dwStrLen          = dwReconvTextLen ;  //文字単位
06068         pReconv->dwStrOffset       = sizeof(*pReconv) ;
06069         pReconv->dwCompStrLen      = dwCompStrLen;      //文字単位
06070         pReconv->dwCompStrOffset   = dwCompStrOffset;   //バイト単位
06071         pReconv->dwTargetStrLen    = dwCompStrLen;      //文字単位
06072         pReconv->dwTargetStrOffset = dwCompStrOffset;   //バイト単位
06073
06074         // 2004.01.28 Moca ヌル終端の修正
06075         if( bUnicode ){
06076             WCHAR* p = (WCHAR*)(pReconv + 1);
06077             CopyMemory(p, pszReconv, nReconvLenWithNull - sizeof(wchar_t));
06078             p[dwReconvTextLen] = L'\0';
06079         }else{
06080             ACHAR* p = (ACHAR*)(pReconv + 1);
06081             CopyMemory(p, pszReconv, nReconvLenWithNull - sizeof(char));
06082             p[dwReconvTextLen]='\0';
06083         }
06084     }
06085
06086     // 再変換情報の保存
06087     m_nLastReconvIndex = nReconvIndex;
06088     m_nLastReconvLine  = ptSelect.y;
06089
06090     return sizeof(RECONVERTSTRING) + nReconvLenWithNull;
06091
06092 }
06093
06094 /*再変換用 エディタ上の選択範囲を変更する 2002.04.09 minfu */
06095 LRESULT CEditView::SetSelectionFromReonvert(const PRECONVERTSTRING pReconv, bool bUnicode){
06096
06097     // 再変換情報が保存されているか
06098     if ( (m_nLastReconvIndex < 0) || (m_nLastReconvLine < 0))
06099         return 0;
06100
06101     if ( GetSelectionInfo().IsTextSelected())
06102         GetSelectionInfo().DisableSelectArea( TRUE );
06103
06104     DWORD dwOffset, dwLen;
06105
06106     //UNICODE→UNICODE
06107     if(bUnicode){
06108         dwOffset = pReconv->dwCompStrOffset/sizeof(WCHAR);  //0またはデータ長。バイト単位。→文字単位
06109         dwLen    = pReconv->dwCompStrLen;                   //0または文字列長。文字単位。
06110     }
06111     //ANSI→UNICODE
06112     else{
06113         CNativeA    cmemBuf;
06114
06115         //考慮文字列の開始から対象文字列の開始まで
06116         if( pReconv->dwCompStrOffset > 0){
06117             const char* p=(const char*)(pReconv+1);
06118             cmemBuf.SetString(p, pReconv->dwCompStrOffset );
06119             CShiftJis::SJISToUnicode(cmemBuf._GetMemory());
06120             dwOffset = cmemBuf._GetMemory()->GetRawLength()/sizeof(WCHAR);
06121         }else{
06122             dwOffset = 0;
06123         }
06124
06125         //対象文字列の開始から対象文字列の終了まで
06126         if( pReconv->dwCompStrLen > 0 ){
06127             const char* p=(const char*)(pReconv+1);
06128             cmemBuf.SetString(p + pReconv->dwCompStrOffset, pReconv->dwCompStrLen);
06129             CShiftJis::SJISToUnicode(cmemBuf._GetMemory());
06130             dwLen = cmemBuf._GetMemory()->GetRawLength()/sizeof(WCHAR);
06131         }else{
06132             dwLen = 0;
06133         }
06134     }
06135
06136     //選択開始の位置を取得
06137     m_pcEditDoc->m_cLayoutMgr.LogicToLayout(
06138         CLogicPoint(m_nLastReconvIndex + dwOffset, m_nLastReconvLine),
06139         GetSelectionInfo().m_sSelect.GetFromPointer()
06140     );
06141
06142     //選択終了の位置を取得
06143     m_pcEditDoc->m_cLayoutMgr.LogicToLayout(
06144         CLogicPoint(m_nLastReconvIndex + dwOffset + dwLen, m_nLastReconvLine),
06145         GetSelectionInfo().m_sSelect.GetToPointer()
06146     );
06147
06148     // 単語の先頭にカーソルを移動
06149     GetCaret().MoveCursor( GetSelectionInfo().m_sSelect.GetFrom(), TRUE );
06150
06151     //選択範囲再描画
06152     GetSelectionInfo().DrawSelectArea();
06153
06154     // 再変換情報の破棄
06155     m_nLastReconvIndex = -1;
06156     m_nLastReconvLine  = -1;
06157
06158     return 1;
06159
06160 }
06161
06162
06163
06168 void CEditView::SetBracketPairPos( bool flag )
06169 {
06170     int mode;
06171
06172     // 03/03/06 ai すべて置換、すべて置換後のUndo&Redoがかなり遅い問題に対応
06173     if( m_bDoing_UndoRedo || !GetDrawSwitch() ){
06174         return;
06175     }
06176
06177     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp ){
06178         return;
06179     }
06180
06181     // 対括弧の検索&登録
06182     /*
06183     bit0(in)  : 表示領域外を調べるか？ 0:調べない  1:調べる
06184     bit1(in)  : 前方文字を調べるか？   0:調べない  1:調べる
06185     bit2(out) : 見つかった位置         0:後ろ      1:前
06186     */
06187     mode = 2;
06188
06189     CLayoutPoint ptColLine;
06190
06191     if( flag && !GetSelectionInfo().IsTextSelected() && !GetSelectionInfo().m_bDrawSelectArea
06192         && !GetSelectionInfo().IsBoxSelecting() && SearchBracket( GetCaret().GetCaretLayoutPos(), &ptColLine, &mode ) )
06193     {
06194         // 登録指定(flag=true)          &&
06195         // テキストが選択されていない  &&
06196         // 選択範囲を描画していない     &&
06197         // 矩形範囲選択中でない           &&
06198         // 対応する括弧が見つかった     場合
06199         if ( ( ptColLine.x >= GetTextArea().GetViewLeftCol() ) && ( ptColLine.x <= GetTextArea().GetRightCol() )
06200             && ( ptColLine.y >= GetTextArea().GetViewTopLine() ) && ( ptColLine.y <= GetTextArea().GetBottomLine() ) )
06201         {
06202             // 表示領域内の場合
06203
06204             // レイアウト位置から物理位置へ変換(強調表示位置を登録)
06205             m_pcEditDoc->m_cLayoutMgr.LayoutToLogic( ptColLine, &m_ptBracketPairPos_PHY );
06206             m_ptBracketCaretPos_PHY.y = GetCaret().GetCaretLogicPos().y;
06207             if( 0 == ( mode & 4 ) ){
06208                 // カーソルの後方文字位置
06209                 m_ptBracketCaretPos_PHY.x = GetCaret().GetCaretLogicPos().x;
06210             }else{
06211                 // カーソルの前方文字位置
06212                 m_ptBracketCaretPos_PHY.x = GetCaret().GetCaretLogicPos().x - 1;
06213             }
06214             return;
06215         }
06216     }
06217
06218     // 括弧の強調表示位置情報初期化
06219     m_ptBracketPairPos_PHY.Set(CLogicInt(-1), CLogicInt(-1));
06220     m_ptBracketCaretPos_PHY.Set(CLogicInt(-1), CLogicInt(-1));
06221
06222     return;
06223 }
06224
06230 void CEditView::DrawBracketPair( bool bDraw )
06231 {
06232     // 03/03/06 ai すべて置換、すべて置換後のUndo&Redoがかなり遅い問題に対応
06233     if( m_bDoing_UndoRedo || !GetDrawSwitch() ){
06234         return;
06235     }
06236
06237     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp ){
06238         return;
06239     }
06240
06241     // 括弧の強調表示位置が未登録の場合は終了
06242     if( m_ptBracketPairPos_PHY.HasNegative() || m_ptBracketCaretPos_PHY.HasNegative() ){
06243         return;
06244     }
06245
06246     // 描画指定(bDraw=true)             かつ
06247     // ( テキストが選択されている       又は
06248     //   選択範囲を描画している          又は
06249     //   矩形範囲選択中                  又は
06250     //   フォーカスを持っていない       又は
06251     //   アクティブなペインではない )  場合は終了
06252     if( bDraw
06253      &&( GetSelectionInfo().IsTextSelected() || GetSelectionInfo().m_bDrawSelectArea || GetSelectionInfo().IsBoxSelecting() || !m_bDrawBracketPairFlag
06254      || ( m_pcEditDoc->m_pcEditWnd->m_nActivePaneIndex != m_nMyIndex ) ) ){
06255         return;
06256     }
06257
06258     HDC         hdc;
06259     hdc = ::GetDC( GetHwnd() );
06260     Types *TypeDataPtr = &( m_pcEditDoc->GetDocumentAttribute() );
06261
06262     for( int i = 0; i < 2; i++ )
06263     {
06264         // i=0:カーソル位置の括弧,i=1:対括弧
06265
06266         CLayoutPoint    ptColLine;
06267
06268         if( i == 0 ){
06269             m_pcEditDoc->m_cLayoutMgr.LogicToLayout( m_ptBracketCaretPos_PHY, &ptColLine );
06270         }else{
06271             m_pcEditDoc->m_cLayoutMgr.LogicToLayout( m_ptBracketPairPos_PHY,  &ptColLine );
06272         }
06273
06274         if ( ( ptColLine.x >= GetTextArea().GetViewLeftCol() ) && ( ptColLine.x <= GetTextArea().GetRightCol() )
06275             && ( ptColLine.y >= GetTextArea().GetViewTopLine() ) && ( ptColLine.y <= GetTextArea().GetBottomLine() ) )
06276         {   // 表示領域内の場合
06277             if( !bDraw && GetSelectionInfo().m_bDrawSelectArea && ( 0 == IsCurrentPositionSelected( ptColLine ) ) )
06278             {   // 選択範囲描画済みで消去対象の括弧が選択範囲内の場合
06279                 continue;
06280             }
06281             const CLayout* pcLayout;
06282             CLogicInt       nLineLen;
06283             const wchar_t*  pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( ptColLine.GetY2(), &nLineLen, &pcLayout );
06284             if( pLine )
06285             {
06286                 int     nColorIndex;
06287                 CLogicInt   OutputX = LineColmnToIndex( pcLayout, ptColLine.GetX2() );
06288                 if( bDraw ) {
06289                     nColorIndex = COLORIDX_BRACKET_PAIR;
06290                 }
06291                 else{
06292                     if( IsBracket( pLine, OutputX, CLogicInt(1) ) ){
06293                         // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
06294                         if( i == 0 ){
06295                             nColorIndex = GetColorIndex( hdc, pcLayout, m_ptBracketCaretPos_PHY.x );
06296                         }else{
06297                             nColorIndex = GetColorIndex( hdc, pcLayout, m_ptBracketPairPos_PHY.x );
06298                         }
06299                     }
06300                     else{
06301                         SetBracketPairPos( false );
06302                         break;
06303                     }
06304                 }
06305
06306
06307                 m_hFontOld = NULL;
06308
06309                 //色設定
06310                 CTypeSupport cTextType(this,COLORIDX_TEXT);
06311                 cTextType.SetFont(hdc);
06312                 cTextType.SetColors(hdc);
06313
06314                 SetCurrentColor( hdc, nColorIndex );
06315
06316                 int nHeight = GetTextMetrics().GetHankakuDy();
06317                 int nLeft = (GetTextArea().GetDocumentLeftClientPointX()) + (Int)ptColLine.x * GetTextMetrics().GetHankakuDx();
06318                 int nTop  = (Int)( ptColLine.GetY2() - GetTextArea().GetViewTopLine() ) * nHeight + GetTextArea().GetAreaTop();
06319
06320                 // 03/03/03 ai カーソルの左に括弧があり括弧が強調表示されている状態でShift+←で選択開始すると
06321                 //             選択範囲内に反転表示されない部分がある問題の修正
06322                 if( ptColLine.x == GetCaret().GetCaretLayoutPos().GetX2() && GetCaret().GetCaretShowFlag() ){
06323                     GetCaret().HideCaret_( GetHwnd() ); // キャレットが一瞬消えるのを防止
06324                     GetTextDrawer().DispText( hdc, nLeft, nTop, &pLine[OutputX], 1 );
06325                     // 2006.04.30 Moca 対括弧の縦線対応
06326                     GetTextDrawer().DispVerticalLines( hdc, nTop, nTop + nHeight, ptColLine.x, ptColLine.x + CLayoutInt(2) ); //※括弧が全角幅である場合を考慮
06327                     GetCaret().ShowCaret_( GetHwnd() ); // キャレットが一瞬消えるのを防止
06328                 }
06329                 else{
06330                     GetTextDrawer().DispText( hdc, nLeft, nTop, &pLine[OutputX], 1 );
06331                     // 2006.04.30 Moca 対括弧の縦線対応
06332                     GetTextDrawer().DispVerticalLines( hdc, nTop, nTop + nHeight, ptColLine.x, ptColLine.x + CLayoutInt(2) ); //※括弧が全角幅である場合を考慮
06333                 }
06334
06335                 if( NULL != m_hFontOld ){
06336                     ::SelectObject( hdc, m_hFontOld );
06337                     m_hFontOld = NULL;
06338                 }
06339
06340                 cTextType.RewindFont(hdc);
06341                 cTextType.RewindColors(hdc);
06342
06343                 if( ( m_pcEditDoc->m_pcEditWnd->m_nActivePaneIndex == m_nMyIndex )
06344                     && ( ( ptColLine.y == GetCaret().GetCaretLayoutPos().GetY() ) || ( ptColLine.y - 1 == GetCaret().GetCaretLayoutPos().GetY() ) ) ){  // 03/02/27 ai 行の間隔が"0"の時にアンダーラインが欠ける事がある為修正
06345                     GetCaret().m_cUnderLine.CaretUnderLineON( TRUE );
06346                 }
06347             }
06348         }
06349     }
06350
06351     ::ReleaseDC( GetHwnd(), hdc );
06352
06353     return;
06354 }
06355
06378 int CEditView::GetColorIndex(
06379         HDC                     hdc,
06380         const CLayout*          pcLayout,
06381         int                     nCol
06382 )
06383 {
06384     //  May 9, 2000 genta
06385     Types   *TypeDataPtr = &(m_pcEditDoc->GetDocumentAttribute());
06386
06387     const wchar_t*          pLine;  //@@@ 2002.09.22 YAZAKI
06388     CLogicInt               nLineLen;
06389     int                     nLineBgn;
06390     int                     nCOMMENTMODE;
06391     int                     nCOMMENTMODE_OLD;
06392     int                     nCOMMENTEND;
06393     int                     nCOMMENTEND_OLD;
06394     const CLayout*          pcLayout2;
06395     int                     i, j;
06396     int                     nIdx;
06397     int                     nUrlLen;
06398     BOOL                    bSearchStringMode;
06399     bool                    bSearchFlg;         // 2002.02.08 hor
06400     bool                    bKeyWordTop = true; //  Keyword Top
06401     int                     nColorIndex;
06402
06403 //@@@ 2001.11.17 add start MIK
06404     int     nMatchLen;
06405     int     nMatchColor;
06406 //@@@ 2001.11.17 add end MIK
06407
06408     bSearchStringMode = FALSE;
06409     bSearchFlg  = true; // 2002.02.08 hor
06410
06411     CLogicInt   nSearchStart = CLogicInt(-1);
06412     CLogicInt   nSearchEnd   = CLogicInt(-1);
06413
06414     /* 論理行データの取得 */
06415     if( NULL != pcLayout ){
06416         // 2002/2/10 aroka CMemory変更
06417         nLineLen = pcLayout->m_pCDocLine->m_cLine.GetStringLength()/* - pcLayout->GetLogicOffset()*/;   // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
06418         pLine = pcLayout->m_pCDocLine->m_cLine.GetStringPtr()/* + pcLayout->GetLogicOffset()*/;         // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
06419
06420         // 2005.11.20 Moca 色が正しくないことがある問題に対処
06421         const CLayout* pcLayoutLineFirst = pcLayout;
06422         // 論理行の最初のレイアウト情報を取得する
06423         while( 0 != pcLayoutLineFirst->GetLogicOffset() ){
06424             pcLayoutLineFirst = pcLayoutLineFirst->m_pPrev;
06425         }
06426         nCOMMENTMODE = pcLayoutLineFirst->GetColorTypePrev();
06427         nCOMMENTEND = 0;
06428         pcLayout2 = pcLayout;
06429
06430     }else{
06431         pLine = NULL;
06432         nLineLen = CLogicInt(0);
06433         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06434         nCOMMENTEND = 0;
06435         pcLayout2 = NULL;
06436     }
06437
06438     /* 現在の色を指定 */
06439     //@SetCurrentColor( hdc, nCOMMENTMODE );
06440     nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06441
06442     int                     nBgn;
06443     CLogicInt               nPos;
06444     nBgn = 0;
06445     nPos = CLogicInt(0);
06446     nLineBgn = 0;
06447
06448     CLogicInt               nCharChars = CLogicInt(0);
06449     CLogicInt               nCharChars_2;
06450
06451     if( NULL != pLine ){
06452
06453         //@@@ 2001.11.17 add start MIK
06454         if( TypeDataPtr->m_bUseRegexKeyword )
06455         {
06456             m_cRegexKeyword->RegexKeyLineStart();
06457         }
06458         //@@@ 2001.11.17 add end MIK
06459
06460         while( nPos <= nCol ){  // 03/10/24 ai 行頭のColorIndexが取得できない問題に対応
06461
06462             nBgn = nPos;
06463             nLineBgn = nBgn;
06464
06465             while( nPos - nLineBgn <= nCol ){   // 02/12/18 ai
06466                 /* 検索文字列の色分け */
06467                 if( m_bCurSrchKeyMark   /* 検索文字列のマーク */
06468                  && TypeDataPtr->m_ColorInfoArr[COLORIDX_SEARCH].m_bDisp ){
06469 searchnext:;
06470                 // 2002.02.08 hor 正規表現の検索文字列マークを少し高速化
06471                     if(!bSearchStringMode && (!m_sCurSearchOption.bRegularExp || (bSearchFlg && nSearchStart < nPos))){
06472                         bSearchFlg=IsSearchString( pLine, nLineLen, nPos, &nSearchStart, &nSearchEnd );
06473                     }
06474                     if( !bSearchStringMode && bSearchFlg && nSearchStart==nPos ){
06475                         nBgn = nPos;
06476                         bSearchStringMode = TRUE;
06477                         /* 現在の色を指定 */
06478                         //@SetCurrentColor( hdc, COLORIDX_SEARCH ); // 2002/03/13 novice
06479                         nColorIndex = COLORIDX_SEARCH;  // 02/12/18 ai
06480                     }
06481                     else if( bSearchStringMode && nSearchEnd == nPos ){
06482                         nBgn = nPos;
06483                         /* 現在の色を指定 */
06484                         //@SetCurrentColor( hdc, nCOMMENTMODE );
06485                         nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06486                         bSearchStringMode = FALSE;
06487                         goto searchnext;
06488                     }
06489                 }
06490
06491                 if( nPos >= nLineLen - pcLayout2->m_cEol.GetLen() ){
06492                     goto end_of_line;
06493                 }
06494                 SEARCH_START:;
06495                 switch( nCOMMENTMODE ){
06496                 case COLORIDX_TEXT: // 2002/03/13 novice
06497 //@@@ 2001.11.17 add start MIK
06498                     //正規表現キーワード
06499                     if( TypeDataPtr->m_bUseRegexKeyword
06500                      && m_cRegexKeyword->RegexIsKeyword( pLine, nPos, nLineLen, &nMatchLen, &nMatchColor )
06501                      /*&& TypeDataPtr->m_ColorInfoArr[nMatchColor].m_bDisp*/ )
06502                     {
06503                         /* 現在の色を指定 */
06504                         nBgn = nPos;
06505                         nCOMMENTMODE = MakeColorIndexType_RegularExpression(nMatchColor);   /* 色指定 */ //@@@ 2002.01.04 upd
06506                         nCOMMENTEND = nPos + nMatchLen;  /* キーワード文字列の終端をセットする */
06507                         if( !bSearchStringMode ){
06508                             //@SetCurrentColor( hdc, nCOMMENTMODE );    //@@@ 2002.01.04
06509                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06510                         }
06511                     }
06512                     else
06513 //@@@ 2001.11.17 add end MIK
06514                     //  Mar. 15, 2000 genta
06515                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
06516                         TypeDataPtr->m_cLineComment.Match( nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
06517                     ){
06518                         nBgn = nPos;
06519
06520                         nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
06521
06522                         /* 現在の色を指定 */
06523                         if( !bSearchStringMode ){
06524                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06525                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06526                         }
06527                     }else
06528                     //  Mar. 15, 2000 genta
06529                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
06530                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 0, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
06531                     ){
06532                         nBgn = nPos;
06533                         nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
06534
06535                         /* 現在の色を指定 */
06536                         if( !bSearchStringMode ){
06537                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06538                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06539                         }
06540                         /* この物理行にブロックコメントの終端があるか */
06541                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos + (int)wcslen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(0) ), nLineLen, pLine );    //@@@ 2002.09.22 YAZAKI
06542
06543 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
06544                     }else
06545                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
06546                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
06547                     ){
06548                         nBgn = nPos;
06549                         nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
06550                         /* 現在の色を指定 */
06551                         if( !bSearchStringMode ){
06552                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06553                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06554                         }
06555                         /* この物理行にブロックコメントの終端があるか */
06556                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos + (int)wcslen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(1) ), nLineLen, pLine );    //@@@ 2002.09.22 YAZAKI
06557 //#endif
06558                     }else
06559                     if( pLine[nPos] == L'\'' &&
06560                         TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp  /* シングルクォーテーション文字列を表示する */
06561                     ){
06562                         nBgn = nPos;
06563                         nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
06564
06565                         /* 現在の色を指定 */
06566                         if( !bSearchStringMode ){
06567                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06568                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06569                         }
06570                         /* シングルクォーテーション文字列の終端があるか */
06571                         int i;
06572                         nCOMMENTEND = nLineLen;
06573                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
06574                             // 2005-09-02 D.S.Koba GetSizeOfChar
06575                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
06576                             if( 0 == nCharChars_2 ){
06577                                 nCharChars_2 = CLogicInt(1);
06578                             }
06579                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06580                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
06581                                     ++i;
06582                                 }else
06583                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
06584                                     nCOMMENTEND = i + 1;
06585                                     break;
06586                                 }
06587                             }else
06588                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06589                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
06590                                     if( i + 1 < nLineLen && pLine[i + 1] == L'\'' ){
06591                                         ++i;
06592                                     }else{
06593                                         nCOMMENTEND = i + 1;
06594                                         break;
06595                                     }
06596                                 }
06597                             }
06598                             if( 2 == nCharChars_2 ){
06599                                 ++i;
06600                             }
06601                         }
06602                     }else
06603                     if( pLine[nPos] == L'"' &&
06604                         TypeDataPtr->m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp   /* ダブルクォーテーション文字列を表示する */
06605                     ){
06606                         nBgn = nPos;
06607                         nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
06608                         /* 現在の色を指定 */
06609                         if( !bSearchStringMode ){
06610                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06611                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06612                         }
06613                         /* ダブルクォーテーション文字列の終端があるか */
06614                         int i;
06615                         nCOMMENTEND = nLineLen;
06616                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
06617                             // 2005-09-02 D.S.Koba GetSizeOfChar
06618                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
06619                             if( 0 == nCharChars_2 ){
06620                                 nCharChars_2 = CLogicInt(1);
06621                             }
06622                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06623                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
06624                                     ++i;
06625                                 }else
06626                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
06627                                     nCOMMENTEND = i + 1;
06628                                     break;
06629                                 }
06630                             }else
06631                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06632                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
06633                                     if( i + 1 < nLineLen && pLine[i + 1] == L'"' ){
06634                                         ++i;
06635                                     }else{
06636                                         nCOMMENTEND = i + 1;
06637                                         break;
06638                                     }
06639                                 }
06640                             }
06641                             if( 2 == nCharChars_2 ){
06642                                 ++i;
06643                             }
06644                         }
06645                     }else
06646                     if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_URL].m_bDisp            /* URLを表示する */
06647                      && ( TRUE == IsURL( &pLine[nPos], nLineLen - nPos, &nUrlLen ) )    /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
06648                     ){
06649                         nBgn = nPos;
06650                         nCOMMENTMODE = COLORIDX_URL;    /* URLモード */ // 2002/03/13 novice
06651                         nCOMMENTEND = nPos + nUrlLen;
06652                         /* 現在の色を指定 */
06653                         if( !bSearchStringMode ){
06654                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06655                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06656                         }
06657 //@@@ 2001.02.17 Start by MIK: 半角数値を強調表示
06658                     }else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp
06659                         && (i = IsNumber( pLine, nPos, nLineLen )) > 0 )        /* 半角数字を表示する */
06660                     {
06661                         /* キーワード文字列の終端をセットする */
06662                         i = nPos + i;
06663                         /* 現在の色を指定 */
06664                         nBgn = nPos;
06665                         nCOMMENTMODE = COLORIDX_DIGIT;  /* 半角数値である */ // 2002/03/13 novice
06666                         nCOMMENTEND = i;
06667                         if( !bSearchStringMode ){
06668                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06669                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06670                         }
06671 //@@@ 2001.02.17 End by MIK: 半角数値を強調表示
06672                     }else
06673                     if( bKeyWordTop && TypeDataPtr->m_nKeyWordSetIdx[0] != -1 && /* キーワードセット */
06674                         TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1].m_bDisp &&  /* 強調キーワードを表示する */ // 2002/03/13 novice
06675                         IS_KEYWORD_CHAR( pLine[nPos] )
06676                     ){
06677                         //  Mar 4, 2001 genta comment out
06678                         /* キーワード文字列の終端を探す */
06679                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
06680                             if( IS_KEYWORD_CHAR( pLine[i] ) ){
06681                             }else{
06682                                 break;
06683                             }
06684                         }
06685                         /* キーワードが登録単語ならば、色を変える */
06686                         j = i - nPos;
06687                         /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
06688                         nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(       //MIK UPDATE 2000.12.01 binary search
06689                             TypeDataPtr->m_nKeyWordSetIdx[0],
06690                             &pLine[nPos],
06691                             j
06692                         );
06693                         if( nIdx != -1 ){
06694                             /* 現在の色を指定 */
06695                             nBgn = nPos;
06696                             nCOMMENTMODE = COLORIDX_KEYWORD1;   /* 強調キーワード1 */ // 2002/03/13 novice
06697                             nCOMMENTEND = i;
06698                             if( !bSearchStringMode ){
06699                                 //@SetCurrentColor( hdc, nCOMMENTMODE );
06700                                 nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06701                             }
06702                         }else{      //MIK START ADD 2000.12.01 second keyword & binary search
06703                             // 2005.01.13 MIK 強調キーワード数追加に伴う配列化
06704                             for( int my_i = 1; my_i < 10; my_i++ )
06705                             {
06706                                 if(TypeDataPtr->m_nKeyWordSetIdx[my_i] != -1 && /* キーワードセット */                          //MIK 2000.12.01 second keyword
06707                                     TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1 + my_i].m_bDisp)                                  //MIK
06708                                 {                                                                                           //MIK
06709                                     /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */                       //MIK
06710                                     nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(                                   //MIK 2000.12.01 binary search
06711                                         TypeDataPtr->m_nKeyWordSetIdx[my_i] ,                                                   //MIK
06712                                         &pLine[nPos],                                                                       //MIK
06713                                         j                                                                                   //MIK
06714                                     );                                                                                      //MIK
06715                                     if( nIdx != -1 ){                                                                       //MIK
06716                                         /* 現在の色を指定 */                                                             //MIK
06717                                         nBgn = nPos;                                                                        //MIK
06718                                         nCOMMENTMODE = COLORIDX_KEYWORD1 + my_i;    /* 強調キーワード2 */ // 2002/03/13 novice       //MIK
06719                                         nCOMMENTEND = i;                                                                    //MIK
06720                                         if( !bSearchStringMode ){                                                           //MIK
06721                                             //@SetCurrentColor( hdc, nCOMMENTMODE );                                        //MIK
06722                                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06723                                         }                                                                                   //MIK
06724                                         break;
06725                                     }                                                                                       //MIK
06726                                 }                                                                                           //MIK
06727                                 else
06728                                 {
06729                                     if(TypeDataPtr->m_nKeyWordSetIdx[my_i] == -1 )
06730                                         break;
06731                                 }
06732                             }
06733                         }           //MIK END
06734                     }
06735                     //  From Here Mar. 4, 2001 genta
06736                     if( IS_KEYWORD_CHAR( pLine[nPos] )) bKeyWordTop = false;
06737                     else                                bKeyWordTop = true;
06738                     //  To Here
06739                     break;
06740 // 2002/03/13 novice
06741                 case COLORIDX_URL:      /* URLモードである */
06742                 case COLORIDX_KEYWORD1: /* 強調キーワード1 */
06743                 case COLORIDX_DIGIT:    /* 半角数値である */  //@@@ 2001.02.17 by MIK
06744                 case COLORIDX_KEYWORD2: /* 強調キーワード2 */    //MIK
06745                 case COLORIDX_KEYWORD3:
06746                 case COLORIDX_KEYWORD4:
06747                 case COLORIDX_KEYWORD5:
06748                 case COLORIDX_KEYWORD6:
06749                 case COLORIDX_KEYWORD7:
06750                 case COLORIDX_KEYWORD8:
06751                 case COLORIDX_KEYWORD9:
06752                 case COLORIDX_KEYWORD10:
06753                     if( nPos == nCOMMENTEND ){
06754                         nBgn = nPos;
06755                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06756                         /* 現在の色を指定 */
06757                         if( !bSearchStringMode ){
06758                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06759                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06760                         }
06761                         goto SEARCH_START;
06762                     }
06763                     break;
06764                 case COLORIDX_CTRLCODE: /* コントロールコード */ // 2002/03/13 novice
06765                     if( nPos == nCOMMENTEND ){
06766                         nBgn = nPos;
06767                         nCOMMENTMODE = nCOMMENTMODE_OLD;
06768                         nCOMMENTEND = nCOMMENTEND_OLD;
06769                         /* 現在の色を指定 */
06770                         if( !bSearchStringMode ){
06771                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06772                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06773                         }
06774                         goto SEARCH_START;
06775                     }
06776                     break;
06777
06778                 case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
06779                     break;
06780                 case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
06781                     if( 0 == nCOMMENTEND ){
06782                         /* この物理行にブロックコメントの終端があるか */
06783                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
06784                     }else
06785                     if( nPos == nCOMMENTEND ){
06786                         nBgn = nPos;
06787                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06788                         /* 現在の色を指定 */
06789                         if( !bSearchStringMode ){
06790                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06791                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06792                         }
06793                         goto SEARCH_START;
06794                     }
06795                     break;
06796                 case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
06797                     if( 0 == nCOMMENTEND ){
06798                         /* この物理行にブロックコメントの終端があるか */
06799                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
06800                     }else
06801                     if( nPos == nCOMMENTEND ){
06802                         nBgn = nPos;
06803                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06804                         /* 現在の色を指定 */
06805                         if( !bSearchStringMode ){
06806                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06807                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06808                         }
06809                         goto SEARCH_START;
06810                     }
06811                     break;
06812                 case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
06813                     if( 0 == nCOMMENTEND ){
06814                         /* シングルクォーテーション文字列の終端があるか */
06815                         int i;
06816                         nCOMMENTEND = nLineLen;
06817                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
06818                             // 2005-09-02 D.S.Koba GetSizeOfChar
06819                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
06820                             if( 0 == nCharChars_2 ){
06821                                 nCharChars_2 = CLogicInt(1);
06822                             }
06823                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06824                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
06825                                     ++i;
06826                                 }else
06827                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
06828                                     nCOMMENTEND = i + 1;
06829                                     break;
06830                                 }
06831                             }else
06832                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06833                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
06834                                     if( i + 1 < nLineLen && pLine[i + 1] == L'\'' ){
06835                                         ++i;
06836                                     }else{
06837                                         nCOMMENTEND = i + 1;
06838                                         break;
06839                                     }
06840                                 }
06841                             }
06842                             if( 2 == nCharChars_2 ){
06843                                 ++i;
06844                             }
06845                         }
06846                     }else
06847                     if( nPos == nCOMMENTEND ){
06848                         nBgn = nPos;
06849                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06850                         /* 現在の色を指定 */
06851                         if( !bSearchStringMode ){
06852                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06853                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06854                         }
06855                         goto SEARCH_START;
06856                     }
06857                     break;
06858                 case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
06859                     if( 0 == nCOMMENTEND ){
06860                         /* ダブルクォーテーション文字列の終端があるか */
06861                         int i;
06862                         nCOMMENTEND = nLineLen;
06863                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
06864                             // 2005-09-02 D.S.Koba GetSizeOfChar
06865                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
06866                             if( 0 == nCharChars_2 ){
06867                                 nCharChars_2 = CLogicInt(1);
06868                             }
06869                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06870                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
06871                                     ++i;
06872                                 }else
06873                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
06874                                     nCOMMENTEND = i + 1;
06875                                     break;
06876                                 }
06877                             }else
06878                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
06879                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
06880                                     if( i + 1 < nLineLen && pLine[i + 1] == L'"' ){
06881                                         ++i;
06882                                     }else{
06883                                         nCOMMENTEND = i + 1;
06884                                         break;
06885                                     }
06886                                 }
06887                             }
06888                             if( 2 == nCharChars_2 ){
06889                                 ++i;
06890                             }
06891                         }
06892                     }else
06893                     if( nPos == nCOMMENTEND ){
06894                         nBgn = nPos;
06895                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06896                         /* 現在の色を指定 */
06897                         if( !bSearchStringMode ){
06898                             //@SetCurrentColor( hdc, nCOMMENTMODE );
06899                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06900                         }
06901                         goto SEARCH_START;
06902                     }
06903                     break;
06904                 default:    //@@@ 2002.01.04 add start
06905                     if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 ){ //正規表現キーワード1〜10
06906                         if( nPos == nCOMMENTEND ){
06907                             nBgn = nPos;
06908                             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
06909                             /* 現在の色を指定 */
06910                             if( !bSearchStringMode ){
06911                                 //@SetCurrentColor( hdc, nCOMMENTMODE );
06912                                 nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06913                             }
06914                             goto SEARCH_START;
06915                         }
06916                     }
06917                     break;  //@@@ 2002.01.04 add end
06918                 }
06919                 if( pLine[nPos] == WCODE::TAB ){
06920                     nBgn = nPos + 1;
06921                     nCharChars = CLogicInt(1);
06922                 }
06923                 else if( WCODE::isZenkakuSpace(pLine[nPos]) && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )   //@@@ 2002.01.04
06924                 {
06925                     nBgn = nPos + 1;
06926                     nCharChars = CLogicInt(1);
06927                 }
06928                 //半角空白（半角スペース）を表示 2002.04.28 Add by KK
06929                 else if (pLine[nPos] == L' ' && CTypeSupport(this,COLORIDX_SPACE).IsDisp() && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )
06930                 {
06931                     nBgn = nPos + 1;
06932                     nCharChars = CLogicInt(1);
06933                 }
06934                 else{
06935                     // 2005-09-02 D.S.Koba GetSizeOfChar
06936                     nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
06937                     if( 0 == nCharChars ){
06938                         nCharChars = CLogicInt(1);
06939                     }
06940                     if( !bSearchStringMode
06941                      && 1 == nCharChars
06942                      && COLORIDX_CTRLCODE != nCOMMENTMODE // 2002/03/13 novice
06943                      && TypeDataPtr->m_ColorInfoArr[COLORIDX_CTRLCODE].m_bDisp  /* コントロールコードを色分け */
06944                      && WCODE::isControlCode(pLine[nPos])
06945                     ){
06946                         nBgn = nPos;
06947                         nCOMMENTMODE_OLD = nCOMMENTMODE;
06948                         nCOMMENTEND_OLD = nCOMMENTEND;
06949                         nCOMMENTMODE = COLORIDX_CTRLCODE;   /* コントロールコード モード */ // 2002/03/13 novice
06950                         /* コントロールコード列の終端を探す */
06951                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
06952                             // 2005-09-02 D.S.Koba GetSizeOfChar
06953                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
06954                             if( 0 == nCharChars_2 ){
06955                                 nCharChars_2 = CLogicInt(1);
06956                             }
06957                             if( nCharChars_2 != 1 ){
06958                                 break;
06959                             }
06960                             if(!WCODE::isControlCode(pLine[i])){
06961                                 break;
06962                             }
06963                         }
06964                         nCOMMENTEND = i;
06965                         /* 現在の色を指定 */
06966                         //@SetCurrentColor( hdc, nCOMMENTMODE );
06967                         nColorIndex = nCOMMENTMODE; // 02/12/18 ai
06968                     }
06969                 }
06970                 nPos+= nCharChars;
06971             } //end of while( nPos - nLineBgn < pcLayout2->m_nLength ){
06972             if( nPos > nCol ){  // 03/10/24 ai 行頭のColorIndexが取得できない問題に対応
06973                 break;
06974             }
06975         }
06976
06977 end_of_line:;
06978
06979     }
06980
06981 //@end_of_func:;
06982     return nColorIndex;
06983 }
06984
06989 bool CEditView::IsInsMode(void) const
06990 {
06991     return m_pcEditDoc->IsInsMode();
06992 }
06993
06994 void CEditView::SetInsMode(bool mode)
06995 {
06996     m_pcEditDoc->SetInsMode( mode );
06997 }
06998
06999
07000
07001
07002
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView.h

sakura_core

CEditView.h

文書ウィンドウの管理 [詳細]

#include <windows.h>
#include <objidl.h>
#include "CShareData.h"
#include "CTipWnd.h"
#include "CDicMgr.h"
#include "CHokanMgr.h"
#include "CBregexp.h"
#include "CEOL.h"
#include "CTextMetrics.h"
#include "CTextDrawer.h"
#include "CTextArea.h"
#include "CViewFont.h"
#include "CCaret.h"
#include "CRuler.h"
#include "CViewCalc.h"
#include "CViewCommander.h"
#include "CViewParser.h"
#include "CViewSelect.h"
#include "basis/SakuraBasis.h"
#include "CEditView_Paint.h"

ソースコードを見る。

構成

struct | tagRECONVERTSTRING
class | CEditView
文書ウィンドウの管理 [詳細]

マクロ定義

#define | IDM_COPYDICINFO 2000
#define | IDM_JUMPDICT 2001

型定義

typedef struct tagRECONVERTSTRING | RECONVERTSTRING
typedef struct tagRECONVERTSTRING * | PRECONVERTSTRING

変数

const int | CMD_FROM_MOUSE = 2

説明

文書ウィンドウの管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

CEditView.h で定義されています。

マクロ定義

#define IDM_COPYDICINFO 2000

CEditView.h の 62 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), と CEditView::CreatePopUpMenu_R().

#define IDM_JUMPDICT 2001

CEditView.h の 65 行で定義されています。

参照元 CViewCommander::Command_MENU_RBUTTON(), と CEditView::CreatePopUpMenu_R().

型定義

typedef struct tagRECONVERTSTRING * PRECONVERTSTRING

typedef struct tagRECONVERTSTRING RECONVERTSTRING

変数

const int CMD_FROM_MOUSE = 2

マウスからコマンドが実行された場合の上位ビット

日付:
2006.05.19 genta

CEditView.h の 83 行で定義されています。

参照元 CEditWnd::OnCommand(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CEditView::OnXLBUTTONDOWN(), と CEditView::OnXRBUTTONDOWN().

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView.h ソースファイル

sakura_core

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
00026 #include <windows.h>
00027 #include <objidl.h>  // LPDATAOBJECT
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 #include "CTextMetrics.h"
00036 #include "CTextDrawer.h"
00037 #include "CTextArea.h"
00038 #include "CViewFont.h"
00039 #include "CCaret.h"
00040 #include "CRuler.h"
00041 #include "CViewCalc.h"
00042 #include "CViewCommander.h"
00043 #include "CViewParser.h"
00044 #include "CViewSelect.h"
00045 #include "basis/SakuraBasis.h"
00046 #include "CEditView_Paint.h"
00047
00048 class CDropTarget;
00049 class CMemory;
00050 class COpe;
00051 class COpeBlk;
00052 class CSplitBoxWnd;
00053 class CDlgCancel;
00054 class CRegexKeyword;
00055 class CAutoMarkMgr;
00056 class CEditDoc; //  2002/5/13 YAZAKI ヘッダ軽量化
00057 class CLayout;  //  2002/5/13 YAZAKI ヘッダ軽量化
00058 class CDocLine;
00059 class CMigemo;  // 2004.09.14 isearch
00060
00061 #ifndef IDM_COPYDICINFO
00062 #define IDM_COPYDICINFO 2000
00063 #endif
00064 #ifndef IDM_JUMPDICT
00065 #define IDM_JUMPDICT 2001   // 2006.04.10 fon
00066 #endif
00067
00068 #if !defined(RECONVERTSTRING) && (WINVER < 0x040A)
00069 typedef struct tagRECONVERTSTRING {
00070     DWORD dwSize;
00071     DWORD dwVersion;
00072     DWORD dwStrLen;
00073     DWORD dwStrOffset;
00074     DWORD dwCompStrLen;
00075     DWORD dwCompStrOffset;
00076     DWORD dwTargetStrLen;
00077     DWORD dwTargetStrOffset;
00078 } RECONVERTSTRING, *PRECONVERTSTRING;
00079 #endif // RECONVERTSTRING
00080
00083 const int CMD_FROM_MOUSE = 2;
00084
00085 class CEditView;
00086
00087 /*-----------------------------------------------------------------------
00088 クラスの宣言
00089 -----------------------------------------------------------------------*/
00100 //2007.08.25 kobake 文字間隔配列の機能をCTextMetricsに移動
00101 //2007.10.02 kobake Command_TRIM2をCConvertに移動
00102
00103 class SAKURA_CORE_API CEditView
00104 : public CViewCalc //$$ これが親クラスである必要は無いが、このクラスのメソッド呼び出しが多いので、暫定的に親クラスとする。
00105 , public CEditView_Paint
00106 {
00107 public:
00108     const CEditDoc* GetDocument() const
00109     {
00110         return m_pcEditDoc;
00111     }
00112     CEditDoc* GetDocument()
00113     {
00114         return m_pcEditDoc;
00115     }
00116     HWND GetHwnd() const
00117     {
00118         return m_hWnd;
00119     }
00120 public:
00122     bool IsBkBitmap() const{ return false; }
00123
00124 public:
00125     bool GetDrawSwitch() const
00126     {
00127         return m_bDrawSWITCH;
00128     }
00129 public:
00130     void SetDrawSwitch(bool b)
00131     {
00132         m_bDrawSWITCH = b;
00133     }
00134     CEditView* GetEditView()
00135     {
00136         return this;
00137     }
00138     const CEditView* GetEditView() const
00139     {
00140         return this;
00141     }
00142
00143
00144 public:
00145     /* Constructors */
00146     CEditView(CEditWnd* pcEditWnd);
00147     ~CEditView();
00148     /* 初期化系メンバ関数 */
00149     BOOL Create( HINSTANCE, HWND, CEditDoc*, int,/* BOOL,*/ BOOL );
00150     BOOL CreateScrollBar( void );       /* スクロールバー作成 */   // 2006.12.19 ryoji
00151     void DestroyScrollBar( void );      /* スクロールバー破棄 */   // 2006.12.19 ryoji
00152
00153     //  Oct. 2, 2005 genta 挿入モードの設定・取得
00154     bool IsInsMode() const;
00155     void SetInsMode(bool);
00156
00157     /* メッセージディスパッチャ */
00158     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );
00159     void OnMove( int, int, int, int );
00160     void OnSetFocus( void );
00161     void OnKillFocus( void );
00162     void OnTimer( HWND, UINT, UINT, DWORD );
00163     /* コマンド操作 */
00164     void CaretUnderLineON( bool );                              /* カーソル行アンダーラインのON */
00165     void CaretUnderLineOFF( bool );                             /* カーソル行アンダーラインのOFF */
00166     void AdjustScrollBars( void );                              /* スクロールバーの状態を更新する */
00167     // 2006.07.09 genta 行桁指定によるカーソル移動(選択領域を考慮)
00168     void MoveCursorSelecting( CLayoutPoint ptWk_CaretPos, bool bSelect, int = _CARETMARGINRATE );
00169     void OnChangeSetting( void );                               /* 設定変更を反映させる */
00170     void SetFont( void );                                       /* フォントの変更 */
00171     void RedrawAll( void );                                     /* フォーカス移動時の再描画 */
00172     void Redraw( void );                                        // 2001/06/21 asa-o 再描画
00173     void CopyViewStatus( CEditView* );                          /* 自分の表示状態を他のビューにコピー */
00174     void SplitBoxOnOff( BOOL, BOOL, BOOL );                     /* 縦・横の分割ボックス・サイズボックスのＯＮ／ＯＦＦ */
00175
00176     DWORD DoGrep( const CNativeW*, const CNativeT*, const CNativeT*, BOOL, const SSearchOption&, ECodeType, BOOL, int );    /* Grep実行 */
00177     /* Grep実行 */    //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00178     int DoGrepTree( CDlgCancel*, HWND, const wchar_t*, int*, const TCHAR*, const TCHAR*, BOOL, const SSearchOption&, ECodeType, BOOL, int, CBregexp*, int, int* );
00179     /* Grep実行 */    //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00180     //  Mar. 28, 2004 genta 不要な引数を削除
00181     int DoGrepFile( CDlgCancel*, HWND, const wchar_t*, int*, const TCHAR*, const SSearchOption&, ECodeType, BOOL, int, CBregexp*, int*, const TCHAR*, CNativeW& );
00182     /* Grep結果をpszWorkに格納 */
00183     void SetGrepResult(
00184         /* データ格納先 */
00185         wchar_t*    pWork,
00186         int*        pnWorkLen,
00187         /* マッチしたファイルの情報 */
00188         const TCHAR*        pszFullPath,    //  フルパス
00189         const TCHAR*        pszCodeName,    //  文字コード情報"[SJIS]"とか
00190         /* マッチした行の情報 */
00191         int         nLine,          //  マッチした行番号
00192         int         nColm,          //  マッチした桁番号
00193         const wchar_t*  pCompareData,   //  行の文字列
00194         int         nLineLen,       //  行の文字列の長さ
00195         int         nEolCodeLen,    //  EOLの長さ
00196         /* マッチした文字列の情報 */
00197         const wchar_t*  pMatchData,     //  マッチした文字列
00198         int         nMatchLen,      //  マッチした文字列の長さ
00199         /* オプション */
00200         BOOL        bGrepOutputLine,
00201         int         nGrepOutputStyle
00202     );
00203
00204     //  Jun. 16, 2000 genta
00205     bool  SearchBracket( const CLayoutPoint& ptPos, CLayoutPoint* pptLayoutNew, int* mode );    // 対括弧の検索       // modeの追加 02/09/18 ai
00206     bool  SearchBracketForward( CLogicPoint ptPos, CLayoutPoint* pptLayoutNew,
00207                         const wchar_t* upChar, const wchar_t* dnChar, int* mode );  //  対括弧の前方検索    // modeの追加 02/09/19 ai
00208     bool  SearchBracketBackward( CLogicPoint ptPos, CLayoutPoint* pptLayoutNew,
00209                         const wchar_t* dnChar, const wchar_t* upChar, int* mode );  //  対括弧の後方検索    // modeの追加 02/09/19 ai
00210 //@@@ 2001.02.03 Start by MIK: 全角の対括弧
00211     bool  SearchBracketForward2( CLogicPoint ptPos, CLayoutPoint* pptLayoutNew,
00212                                  const wchar_t* upChar, const wchar_t* dnChar, int* mode ); //  対括弧の前方検索    // modeの追加 02/09/19 ai
00213     bool  SearchBracketBackward2( CLogicPoint ptPos, CLayoutPoint* pptLayoutNew,
00214                                   const wchar_t* dnChar, const wchar_t* upChar, int* mode );    //  対括弧の後方検索    // modeの追加 02/09/19 ai
00215 //@@@ 2001.02.03 End
00216
00217 //  2001/06/18 asa-o
00218     bool  ShowKeywordHelp( POINT po, LPCWSTR pszHelp, LPRECT prcHokanWin);  // 補完ウィンドウ用のキーワードヘルプ表示
00219
00220 // 2002/01/19 novice public属性に変更
00221     BOOL GetSelectedData( CNativeW*, BOOL, const wchar_t*, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol = EOL_UNKNOWN);/* 選択範囲のデータを取得 */
00222     //  Aug. 25, 2002 genta protected->publicに移動
00223     bool IsImeON( void );   // IME ONか    // 2006.12.04 ryoji
00224     int HokanSearchByFile( const wchar_t*, BOOL, CNativeW**, int, int ); // 2003.06.25 Moca
00225
00229     enum LID_SKH {
00230         LID_SKH_ONTIMER     = 1,
00231         LID_SKH_POPUPMENU_R = 2,
00232     };
00233     BOOL KeyWordHelpSearchDict( LID_SKH nID, POINT* po, RECT* rc ); // 2006.04.10 fon
00234     BOOL KeySearchCore( const CNativeW* pcmemCurText ); // 2006.04.10 fon
00235
00236     //  Jan. 10, 2005 インクリメンタルサーチ
00237     bool IsISearchEnabled(int nCommand) const;
00238
00239     //  Jan.  8, 2006 genta 折り返しトグル動作判定
00240     enum TOGGLE_WRAP_ACTION {
00241         TGWRAP_NONE = 0,
00242         TGWRAP_FULL,
00243         TGWRAP_WINDOW,
00244         TGWRAP_PROP,
00245     };
00246     TOGGLE_WRAP_ACTION GetWrapMode( CLayoutInt* newKetas );
00247
00248     void _SetDragMode(BOOL b)
00249     {
00250         m_bDragMode = b;
00251     }
00252 public:
00253     /*
00254     ||  実装ヘルパ関数
00255     */
00256     void GetCurrentTextForSearch( CNativeW& );          /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
00257     void GetCurrentTextForSearchDlg( CNativeW& );       /* 現在カーソル位置単語または選択範囲より検索等のキーを取得（ダイアログ用） 2006.08.23 ryoji */
00258 public:
00259 //  CEOL GetCurrentInsertEOL( void );                   /* 現在、Enterなどで挿入する改行コードの種類を取得 */
00260
00261     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00262     //                      クリップボード                         //
00263     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00264
00265     //取得
00266     BOOL MyGetClipboardData( CNativeW&, BOOL*, BOOL* = NULL );          /* クリップボードからデータを取得 */
00267
00268     //設定
00269     BOOL MySetClipboardData( const ACHAR*, int, bool bColmnSelect, bool = FALSE );  /* クリップボードにデータを設定 */
00270     BOOL MySetClipboardData( const WCHAR*, int, bool bColmnSelect, bool = FALSE );  /* クリップボードにデータを設定 */
00271
00272     void CopyCurLine( bool bAddCRLFWhenCopy, enumEOLType neweol, bool bEnableLineModePaste );   /* カーソル行をクリップボードにコピーする */ // 2007.10.08 ryoji
00273
00274
00275     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00276     //                         イベント                            //
00277     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00278 public:
00279     //  void OnPaintOld( HDC, PAINTSTRUCT *, BOOL );    /* 通常の描画処理 */
00280     void OnPaint( HDC, PAINTSTRUCT *, BOOL );           /* 通常の描画処理 */
00281     void OnSize( int, int );                            /* ウィンドウサイズの変更処理 */
00282     CLayoutInt  OnVScroll( int, int );                          /* 垂直スクロールバーメッセージ処理 */
00283     CLayoutInt  OnHScroll( int, int );                          /* 水平スクロールバーメッセージ処理 */
00284     void OnLBUTTONDOWN( WPARAM, int, int );             /* マウス左ボタン押下 */
00285     void OnMOUSEMOVE( WPARAM, int, int );               /* マウス移動のメッセージ処理 */
00286     void OnLBUTTONUP( WPARAM, int, int );               /* マウス左ボタン開放のメッセージ処理 */
00287     void OnLBUTTONDBLCLK( WPARAM, int , int );          /* マウス左ボタンダブルクリック */
00288     void OnRBUTTONDOWN( WPARAM, int, int );             /* マウス右ボタン押下 */
00289     void OnRBUTTONUP( WPARAM, int, int );               /* マウス右ボタン開放 */
00290 // novice 2004/10/11 マウス中ボタン対応
00291     void OnMBUTTONDOWN( WPARAM, int, int );             /* マウス中ボタン押下 */
00292 // novice 2004/10/10 マウスサイドボタン対応
00293     void OnXLBUTTONDOWN( WPARAM, int, int );            /* マウス左サイドボタン押下 */
00294     void OnXRBUTTONDOWN( WPARAM, int, int );            /* マウス右サイドボタン押下 */
00295     LRESULT OnMOUSEWHEEL( WPARAM, LPARAM );             /* マウスホイールのメッセージ処理 */
00296
00297     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00298     //                           設定                              //
00299     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00300     void SetCurrentColor( HDC, int );                           /* 現在の色を指定 */
00301
00302     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00303     //                           描画                              //
00304     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00305 protected:
00306     // 行のテキスト／選択状態の描画
00307     //  int DispLine( HDC, int, int, int, const unsigned char*, int, BOOL );
00308     //2007.08.25 kobake 戻り値をintからboolに変更
00309     bool DispLineNew(
00310         HDC             hdc,
00311         const CLayout*  pcLayout,
00312         DispPos*        pDispPos,
00313         CLayoutInt      nLineTo,
00314         bool            bSelected
00315     );
00316
00317     void DispTextSelected( HDC hdc, CLayoutInt nLineNum, const CMyPoint& ptXY, CLayoutInt nX_Layout );  /* テキスト反転 */
00318 //  int DispCtrlCode( HDC, int, int, const unsigned char*, int );   /* コントロールコード表示 */
00319
00320     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00321     //                           計算                              //
00322     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00323 public:
00324     void CopySelectedAllLines( const wchar_t*, BOOL );          /* 選択範囲内の全行をクリップボードにコピーする */
00325     void ConvSelectedArea( int );                               /* 選択エリアのテキストを指定方法で変換 */
00326
00327 public:
00328
00329
00330     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00331     //                        スクロール                           //
00332     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00333     CLayoutInt  ScrollAtV( CLayoutInt );                                        /* 指定上端行位置へスクロール */
00334     CLayoutInt  ScrollAtH( CLayoutInt );                                        /* 指定左端桁位置へスクロール */
00335     //  From Here Sep. 11, 2004 genta ずれ維持の同期スクロール
00336     CLayoutInt  ScrollByV( CLayoutInt vl ){ return ScrollAtV( GetTextArea().GetViewTopLine() + vl );}           /* 指定行スクロール*/
00337     CLayoutInt  ScrollByH( CLayoutInt hl ){ return ScrollAtH( GetTextArea().GetViewLeftCol() + hl );}                   /* 指定桁スクロール */
00338 public:
00339     void SyncScrollV( CLayoutInt );                                 /* 垂直同期スクロール */
00340     void SyncScrollH( CLayoutInt );                                 /* 水平同期スクロール */
00341
00342     void DrawBracketPair( bool );                               /* 対括弧の強調表示 02/09/18 ai */
00343     void SetBracketPairPos( bool );                             /* 対括弧の強調表示位置設定 03/02/18 ai */
00344 protected:
00345     int GetColorIndex( HDC, const CLayout*, int );              /* 指定位置のColorIndexの取得 02/12/13 ai */
00346     bool IsBracket( const wchar_t*, CLogicInt, CLogicInt );                 /* 括弧判定 03/01/09 ai */
00347
00348
00349     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00350     //                        過去の遺産                           //
00351     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00352
00353 public:
00354     void SetIMECompFormPos( void );                             /* IME編集エリアの位置を変更 */
00355 public:
00356     void SetIMECompFormFont( void );                            /* IME編集エリアの表示フォントを変更 */
00357     void SetParentCaption( void );                              /* 親ウィンドウのタイトルを更新 */    // 2007.03.08 ryoji bKillFocusパラメータを除去
00358 public:
00359
00360     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00361     //                         各種判定                            //
00362     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00363     bool IsCurrentPositionURL( const CLayoutPoint& ptCaretPos, CLogicRange* pUrlRange, wchar_t** );/* カーソル位置にURLが有る場合のその範囲を調べる */
00364     int IsCurrentPositionSelected( CLayoutPoint ptCaretPos );                   /* 指定カーソル位置が選択エリア内にあるか */
00365     int IsCurrentPositionSelectedTEST( const CLayoutPoint& ptCaretPos, const CLayoutRange& sSelect ) const;/* 指定カーソル位置が選択エリア内にあるか */
00366     bool IsSearchString( const wchar_t*, CLogicInt, CLogicInt, CLogicInt*, CLogicInt* );    /* 現在位置が検索文字列に該当するか */  //2002.02.08 hor 引数追加
00367
00368
00369     void ExecCmd(const TCHAR*, int ) ;                          // 子プロセスの標準出力をリダイレクトする
00370     void AddToCmdArr( const TCHAR* );
00371     BOOL ChangeCurRegexp(void);                                 // 2002.01.16 hor 正規表現の検索パターンを必要に応じて更新する(ライブラリが使用できないときはFALSEを返す)
00372     void SendStatusMessage( const TCHAR* msg );                 // 2002.01.26 hor 検索／置換／ブックマーク検索時の状態をステータスバーに表示する
00373     void SendStatusMessage2( const TCHAR* msg );                    // Jul. 9, 2005 genta
00374     LRESULT SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode);    /* 再変換用構造体を設定する 2002.04.09 minfu */
00375     LRESULT SetSelectionFromReonvert(const PRECONVERTSTRING pReconv, bool bUnicode);                /* 再変換用構造体の情報を元に選択範囲を変更する 2002.04.09 minfu */
00376
00377 public: /* テスト用にアクセス属性を変更 */
00378     /* IDropTarget実装 */
00379     STDMETHODIMP DragEnter( LPDATAOBJECT, DWORD, POINTL, LPDWORD );
00380     STDMETHODIMP DragOver(DWORD, POINTL, LPDWORD );
00381     STDMETHODIMP DragLeave( void );
00382     STDMETHODIMP Drop( LPDATAOBJECT, DWORD, POINTL, LPDWORD );
00383
00384
00385 public:
00386
00387
00388     /* 指定位置の指定長データ削除 */
00389     void CEditView::DeleteData2(
00390         const CLayoutPoint& ptCaretPos,
00391         CLogicInt           nDelLen,
00392         CNativeW*           pcMem
00393     );
00394
00395     void DeleteData( bool bRedraw );/* 現在位置のデータ削除 */
00396
00397     /* 現在位置にデータを挿入 */
00398     void InsertData_CEditView(
00399         CLayoutPoint    ptInsertPos,
00400         const wchar_t*  pData,
00401         int             nDataLen,
00402         CLayoutPoint*   pptNewPos,  //挿入された部分の次の位置のデータ位置
00403         bool            bRedraw
00404     );
00405     void SmartIndent_CPP( wchar_t );    /* C/C++スマートインデント処理 */
00406     void RTrimPrevLine( void );     /* 2005.10.11 ryoji 前の行にある末尾の空白を削除 */
00407
00408
00409     /* データ置換 削除&挿入にも使える */
00410     void ReplaceData_CEditView(
00411         CLayoutRange    sDelRange,          // 削除範囲。レイアウト単位。
00412         CNativeW*       pcmemCopyOfDeleted, // 削除されたデータのコピー(NULL可能)
00413         const wchar_t*  pInsData,           // 挿入するデータ
00414         CLogicInt       nInsDataLen,        // 挿入するデータの長さ
00415         bool            bRedraw
00416     );
00417
00418     //  Jan. 10, 2005 genta HandleCommandからgrep関連処理を分離
00419     void TranslateCommand_grep( EFunctionCode&, bool&, LPARAM&, LPARAM&, LPARAM&, LPARAM& );
00420
00421
00422     //@@@ 2003.04.13 MIK, Apr. 21, 2003 genta bClose追加
00423     //  Feb. 17, 2007 genta 相対パスの基準ディレクトリ指示を追加
00424     bool TagJumpSub( const TCHAR* pszJumpToFile, CMyPoint ptJumpTo, bool bClose = false, bool bRelFromIni = false );
00425
00426
00427 //2004.10.13 インクリメンタルサーチ関係
00428     void TranslateCommand_isearch( EFunctionCode&, bool&, LPARAM&, LPARAM&, LPARAM&, LPARAM& );
00429     bool ProcessCommand_isearch( int, bool, LPARAM, LPARAM, LPARAM, LPARAM );
00430
00431     int CreatePopUpMenu_R( void );      /* ポップアップメニュー(右クリック) */
00432
00433     /* 支援 */
00434     //  Jan. 10, 2005 genta HandleCommandから補完関連処理を分離
00435     void PreprocessCommand_hokan( int nCommand );
00436     void PostprocessCommand_hokan(void);
00437
00438     void ShowHokanMgr( CNativeW& cmemData, BOOL bAutoDecided ); //  補完ウィンドウを表示する。Ctrl+Spaceや、文字の入力/削除時に呼び出されます。 YAZAKI 2002/03/11
00439
00440
00441     //  Aug. 31, 2000 genta
00442     void AddCurrentLineToHistory(void); //現在行を履歴に追加する
00443
00444     void AnalyzeDiffInfo( const char*, int );   /* DIFF情報の解析 */   //@@@ 2002.05.25 MIK
00445     BOOL MakeDiffTmpFile( TCHAR*, HWND );   /* DIFF一時ファイル作成 */  //@@@ 2002.05.28 MIK    //2005.10.29 maru
00446     void ViewDiffInfo( const TCHAR*, const TCHAR*, int );       /* DIFF差分表示 */      //2005.10.29 maru
00447
00448     BOOL OPEN_ExtFromtoExt( BOOL, BOOL, const TCHAR* [], const TCHAR* [], int, int, const TCHAR* ); // 指定拡張子のファイルに対応するファイルを開く補助関数 // 2003.08.12 Moca
00449
00450
00451 public:
00452     //ATOK専用再変換のAPI
00453     HMODULE m_hAtokModule;
00454     BOOL (WINAPI *AT_ImmSetReconvertString)( HIMC , int ,PRECONVERTSTRING , DWORD  );
00455 private:
00456
00457     /* インクリメンタルサーチ */
00458     //2004.10.24 isearch migemo
00459     void ISearchEnter( int mode, ESearchDirection direction);
00460     void ISearchExit();
00461     void ISearchExec(WORD wChar);
00462     void ISearchExec(const char* pszText);
00463     void ISearchExec(bool bNext);
00464     void ISearchBack(void) ;
00465     void ISearchWordMake(void);
00466     void ISearchSetStatusMsg(CNativeT* msg) const;
00467
00468
00469
00470 public:
00471     //主要構成部品アクセス
00472     CTextArea& GetTextArea(){ assert(m_pcTextArea); return *m_pcTextArea; }
00473     const CTextArea& GetTextArea() const{ assert(m_pcTextArea); return *m_pcTextArea; }
00474     CCaret& GetCaret(){ assert(m_pcCaret); return *m_pcCaret; }
00475     const CCaret& GetCaret() const{ assert(m_pcCaret); return *m_pcCaret; }
00476     CRuler& GetRuler(){ assert(m_pcRuler); return *m_pcRuler; }
00477     const CRuler& GetRuler() const{ assert(m_pcRuler); return *m_pcRuler; }
00478
00479     //主要属性アクセス
00480     CTextMetrics& GetTextMetrics(){ return m_cTextMetrics; }
00481     const CTextMetrics& GetTextMetrics() const{ return m_cTextMetrics; }
00482     CViewSelect& GetSelectionInfo(){ return m_cViewSelect; }
00483     const CViewSelect& GetSelectionInfo() const{ return m_cViewSelect; }
00484
00485     //主要オブジェクトアクセス
00486     CViewFont& GetFontset(){ assert(m_pcFontset); return *m_pcFontset; }
00487     const CViewFont& GetFontset() const{ assert(m_pcFontset); return *m_pcFontset; }
00488
00489     //主要ヘルパアクセス
00490     const CViewParser& GetParser() const{ return m_cParser; }
00491     const CTextDrawer& GetTextDrawer() const{ return m_cTextDrawer; }
00492     CViewCommander& GetCommander(){ return m_cCommander; }
00493
00494
00495     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00496     //                       メンバ変数群                          //
00497     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00498 public:
00499     //参照
00500     CEditWnd*   m_pcEditWnd;
00501     CEditDoc*   m_pcEditDoc;
00502
00503     //主要構成部品
00504     CTextArea*      m_pcTextArea;
00505     CCaret*         m_pcCaret;
00506     CRuler*         m_pcRuler;
00507
00508     //主要属性
00509     CTextMetrics    m_cTextMetrics;
00510     CViewSelect     m_cViewSelect;
00511
00512     //主要オブジェクト
00513     CViewFont*      m_pcFontset;
00514
00515     //主要ヘルパ
00516     CViewParser m_cParser;
00517     CTextDrawer     m_cTextDrawer;
00518     CViewCommander  m_cCommander;
00519
00520
00521 public: /* テスト用にアクセス属性を変更 */
00522     CDropTarget*    m_pcDropTarget;
00523 private:
00524     bool            m_bDrawSWITCH;
00525 public:
00526     BOOL            m_bDragSource;  /* 選択テキストのドラッグ中か */
00527     BOOL            m_bDragMode;    /* 選択テキストのドラッグ中か */
00528
00529     /* 単語検索の状態 */
00530
00531     //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00532     CBregexp    m_CurRegexp;
00533     bool        m_bCurSrchKeyMark;          /* 検索文字列のマーク */
00534     wchar_t     m_szCurSrchKey[_MAX_PATH];  /* 検索文字列 */
00535
00536     SSearchOption m_sCurSearchOption;   // 検索／置換  オプション
00537
00538     bool    m_bExecutingKeyMacro;       /* キーボードマクロの実行中 */
00539     HWND    m_hWnd;             /* 編集ウィンドウハンドル */
00540
00541     CLogicPoint m_ptSrchStartPos_PHY;   // 検索/置換開始時のカーソル位置 (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00542
00543     BOOL        m_bSearch;              /* 検索/置換開始位置を登録するか */                                           // 02/06/26 ai
00544 //  CLogicInt   m_nCharSize;            /* 対括弧の文字サイズ */   // 02/09/18 ai
00545
00546     CLogicPoint m_ptBracketCaretPos_PHY;// 前カーソル位置の括弧の位置 (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00547     CLogicPoint m_ptBracketPairPos_PHY; // 対括弧の位置 (改行単位行先頭からのバイト数(0開始), 改行単位行の行番号(0開始))
00548     BOOL    m_bDrawBracketPairFlag; /* 対括弧の強調表示を行なうか */                       // 03/02/18 ai
00549
00550     TCHAR*          m_pszAppName;   /* Mutex作成用・ウィンドウクラス名 */
00551     HINSTANCE       m_hInstance;    /* インスタンスハンドル */
00552     HWND            m_hwndParent;   /* 親ウィンドウハンドル */
00553
00554     DLLSHAREDATA*   m_pShareData;
00555 //  int             m_nSettingType;
00556
00557     COpeBlk*        m_pcOpeBlk;         /* 操作ブロック */
00558     BOOL            m_bDoing_UndoRedo;  /* アンドゥ・リドゥの実行中か */
00559     HWND            m_hwndVScrollBar;   /* 垂直スクロールバーウィンドウハンドル */
00560     int             m_nVScrollRate;     /* 垂直スクロールバーの縮尺 */
00561     HWND            m_hwndHScrollBar;   /* 水平スクロールバーウィンドウハンドル */
00562     HWND            m_hwndSizeBox;      /* サイズボックスウィンドウハンドル */
00563     CSplitBoxWnd*   m_pcsbwVSplitBox;   /* 垂直分割ボックス */
00564     CSplitBoxWnd*   m_pcsbwHSplitBox;   /* 水平分割ボックス */
00565
00566     HDC             m_hdcCompatDC;      /* 再描画用コンパチブルＤＣ */
00567     HBITMAP         m_hbmpCompatBMP;    /* 再描画用メモリＢＭＰ */
00568     HBITMAP         m_hbmpCompatBMPOld; /* 再描画用メモリＢＭＰ(OLD) */
00569 public:
00570     HFONT           m_hFontOld;
00571     BOOL            m_bCommandRunning;  /* コマンドの実行中 */
00572
00573     /* 分割状態 */
00574     int             m_nMyIndex;
00575
00576     /* 入力状態 */
00577     COLORREF    m_crBack;           /* テキストの背景色 */          // 2006.12.07 ryoji
00578     int     m_nOldUnderLineY;
00579
00580
00581
00582
00583     /* 表示方法 */
00584 public:
00585     /* 辞書Tip関連 */
00586     DWORD   m_dwTipTimer;           /* Tip起動タイマー */
00587     CTipWnd m_cTipWnd;              /* Tip表示ウィンドウ */
00588     POINT   m_poTipCurPos;          /* Tip起動時のマウスカーソル位置 */
00589     BOOL    m_bInMenuLoop;          /* メニュー モーダル ループに入っています */
00590     CDicMgr m_cDicMgr;              /* 辞書マネージャ */
00591
00592     /* 入力補完 */
00593     BOOL        m_bHokan;           //  補完中か？＝補完ウィンドウが表示されているか？かな？
00594
00595     //  Aug. 31, 2000 genta
00596     CAutoMarkMgr    *m_cHistory;    //  Jump履歴
00597     CRegexKeyword   *m_cRegexKeyword;   //@@@ 2001.11.17 add MIK
00598
00599 private:
00600     UINT    m_uMSIMEReconvertMsg;
00601     UINT    m_uATOKReconvertMsg;
00602 public:
00603     UINT    m_uWM_MSIME_RECONVERTREQUEST;
00604 private:
00605
00606     int     m_nLastReconvLine;             //2002.04.09 minfu 再変換情報保存用;
00607     int     m_nLastReconvIndex;            //2002.04.09 minfu 再変換情報保存用;
00608
00609     bool    m_bUnderLineON;
00610
00611     CMigemo* m_pcmigemo;
00612
00613     ESearchDirection m_nISearchDirection;
00614     int m_nISearchMode;
00615     bool m_bISearchWrap;
00616
00617     CLayoutRange m_sISearchHistory[256];
00618
00619     bool m_bISearchFlagHistory[256];
00620     int m_nISearchHistoryCount;
00621     bool m_bISearchFirst;
00622
00623     // 2007.10.02 nasukoji
00624     bool    m_bActivateByMouse;
00625 };
00626
00627
00628
00630 #endif /* _CEDITVIEW_H_ */
00631
00632
00633 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Cmdgrep.cpp

sakura_core

CEditView_Cmdgrep.cpp

CEditViewクラスのgrep関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CControlTray.h"
#include "charcode.h"

CEditView_Cmdgrep.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスのgrep関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_Cmdgrep.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Cmdgrep.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00022 #include "charcode.h"
00023
00027 void CEditView::TranslateCommand_grep(
00028     EFunctionCode&  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_WCHAR ){
00040         //  Jan. 23, 2005 genta 文字判定忘れ
00041         if( WCODE::isLineDelimiter((wchar_t)lparam1) && m_pShareData->m_Common.m_sSearch.m_bGTJW_RETURN ){
00042             nCommand = F_TAGJUMP;
00043             lparam1 = GetKeyState_Control()?1:0;
00044         }
00045     }
00046 }
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_CmdHokan.cpp

sakura_core

CEditView_CmdHokan.cpp

CEditViewクラスの補完関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "debug.h"
#include "charcode.h"
#include "CEditWnd.h"

CEditView_CmdHokan.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスの補完関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_CmdHokan.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_CmdHokan.cpp ソースファイル

sakura_core

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 "charcode.h"  // 2006.06.28 rastiv
00024 #include "CEditWnd.h"
00025
00033 void CEditView::PreprocessCommand_hokan( int nCommand )
00034 {
00035     /* 補完ウィンドウが表示されているとき、特別な場合を除いてウィンドウを非表示にする */
00036     if( m_bHokan ){
00037         if( nCommand != F_HOKAN     //  補完開始・終了コマンド
00038          && nCommand != F_WCHAR     //  文字入力
00039          && nCommand != F_IME_CHAR  //  漢字入力
00040          ){
00041             m_pcEditWnd->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_sHelper.m_bUseHokan && !m_bExecutingKeyMacro ){ /* キーボードマクロの実行中 */
00056         CNativeW    cmemData;
00057
00058         /* カーソル直前の単語を取得 */
00059         if( 0 < GetParser().GetLeftWord( &cmemData, 100 ) ){
00060             ShowHokanMgr( cmemData, FALSE );
00061         }else{
00062             if( m_bHokan ){
00063                 m_pcEditWnd->m_cHokanMgr.Hide();
00064                 m_bHokan = FALSE;
00065             }
00066         }
00067     }
00068 }
00069
00078 void CEditView::ShowHokanMgr( CNativeW& cmemData, BOOL bAutoDecided )
00079 {
00080     /* 補完対象ワードリストを調べる */
00081     CNativeW    cmemHokanWord;
00082     int         nKouhoNum;
00083     POINT       poWin;
00084     /* 補完ウィンドウの表示位置を算出 */
00085     poWin.x = GetTextArea().GetAreaLeft()
00086              + (Int)(GetCaret().GetCaretLayoutPos().GetX2() - GetTextArea().GetViewLeftCol())
00087               * GetTextMetrics().GetHankakuDx();
00088     poWin.y = GetTextArea().GetAreaTop()
00089              + (Int)(GetCaret().GetCaretLayoutPos().GetY2() - GetTextArea().GetViewTopLine())
00090               * GetTextMetrics().GetHankakuDy();
00091     ::ClientToScreen( m_hWnd, &poWin );
00092     poWin.x -= (
00093         cmemData.GetStringLength()
00094          * GetTextMetrics().GetHankakuDx()
00095     );
00096
00097     /*  補完ウィンドウを表示
00098         ただし、bAutoDecided == TRUEの場合は、補完候補が1つのときは、ウィンドウを表示しない。
00099         詳しくは、Search()の説明を参照のこと。
00100     */
00101     CNativeW* pcmemHokanWord;
00102     if ( bAutoDecided ){
00103         pcmemHokanWord = &cmemHokanWord;
00104     }
00105     else {
00106         pcmemHokanWord = NULL;
00107     }
00108     nKouhoNum = m_pcEditWnd->m_cHokanMgr.CHokanMgr::Search(
00109         &poWin,
00110         GetTextMetrics().GetHankakuHeight(),
00111         GetTextMetrics().GetHankakuDx(),
00112         cmemData.GetStringPtr(),
00113         m_pcEditDoc->GetDocumentAttribute().m_szHokanFile,
00114         m_pcEditDoc->GetDocumentAttribute().m_bHokanLoHiCase,
00115         m_pcEditDoc->GetDocumentAttribute().m_bUseHokanByFile, // 2003.06.22 Moca
00116         pcmemHokanWord
00117     );
00118     /* 補完候補の数によって動作を変える */
00119     if (nKouhoNum <= 0) {               //  候補無し
00120         if( m_bHokan ){
00121             m_pcEditWnd->m_cHokanMgr.Hide();
00122             m_bHokan = FALSE;
00123             // 2003.06.25 Moca 失敗してたら、ビープ音を出して補完終了。
00124             ::MessageBeep( MB_ICONHAND );
00125         }
00126     }
00127     else if( bAutoDecided && nKouhoNum == 1){ //    候補1つのみ→確定。
00128         if( m_bHokan ){
00129             m_pcEditWnd->m_cHokanMgr.Hide();
00130             m_bHokan = FALSE;
00131         }
00132         // 2004.05.14 Moca CHokanMgr::Search側で改行を削除するようにし、直接書き換えるのをやめた
00133 //      pszKouhoWord = cmemHokanWord.GetPtr( &nKouhoWordLen );
00134 //      pszKouhoWord[nKouhoWordLen] = L'\0';
00135         GetCommander().Command_WordDeleteToStart();
00136         GetCommander().Command_INSTEXT( TRUE, cmemHokanWord.GetStringPtr(), cmemHokanWord.GetStringLength(), TRUE );
00137     }
00138     else {
00139         m_bHokan = TRUE;
00140     }
00141
00142     //  補完終了。
00143     if ( !m_bHokan ){
00144         m_pShareData->m_Common.m_sHelper.m_bUseHokan = FALSE;   //  入力補完終了の知らせ
00145     }
00146 }
00147
00148
00149
00162 int CEditView::HokanSearchByFile(
00163     const wchar_t*  pszKey,
00164     BOOL            bHokanLoHiCase,
00165     CNativeW**      ppcmemKouho,
00166     int             nKouhoNum,
00167     int             nMaxKouho
00168 ){
00169     const int nKeyLen = wcslen( pszKey );
00170     int nLines = m_pcEditDoc->m_cDocLineMgr.GetLineCount();
00171     int j, nWordLen, nLineLen, nRet;
00172
00173     const wchar_t* pszLine;
00174     const wchar_t* word;
00175
00176     CLogicPoint ptCur = GetCaret().GetCaretLogicPos(); //物理カーソル位置
00177
00178     for( CLogicInt i = CLogicInt(0); i < nLines; i++  ){
00179         pszLine = m_pcEditDoc->m_cDocLineMgr.GetLineStrWithoutEOL( i, &nLineLen );
00180         for( j = 0; j < nLineLen; j++ ){
00181             //
00182             if( !IS_KEYWORD_CHAR( pszLine[j] ) )continue;
00183
00184             //
00185             word = pszLine + j;
00186             for( j++, nWordLen = 1;j < nLineLen && IS_KEYWORD_CHAR( pszLine[j] ); j++ ){
00187                 nWordLen++;
00188             }
00189
00190             //
00191             if( nWordLen > 1020 ){ // CDicMgr等の制限により長すぎる単語は無視する
00192                 continue;
00193             }
00194             if( nKeyLen > nWordLen )continue;
00195
00196             //
00197             if( bHokanLoHiCase ){
00198                 nRet = auto_memicmp( pszKey, word, nKeyLen );
00199             }else{
00200                 nRet = auto_memcmp( pszKey, word, nKeyLen );
00201             }
00202             if( nRet!=0 )continue;
00203
00204             // カーソル位置の単語は候補からはずす
00205             if( ptCur.y == i && ptCur.x <= j && j - nWordLen <= ptCur.x ){
00206                 continue;
00207             }
00208
00209             if( NULL == *ppcmemKouho ){
00210                 *ppcmemKouho = new CNativeW;
00211                 (*ppcmemKouho)->SetString( word, nWordLen );
00212                 (*ppcmemKouho)->AppendString( L"\n" );
00213                 ++nKouhoNum;
00214             }
00215             else{
00216                 // 重複していたら追加しない
00217                 int nLen;
00218                 const wchar_t* ptr = (*ppcmemKouho)->GetStringPtr( &nLen );
00219                 int nPosKouho;
00220                 nRet = 1;
00221                 if( bHokanLoHiCase ){
00222                     if( nWordLen < nLen ){
00223                         if( L'\n' == ptr[nWordLen] && 0 == auto_memicmp( ptr, word, nWordLen )  ){
00224                             nRet = 0;
00225                         }
00226                         else{
00227                             int nPosKouhoMax = nLen - nWordLen - 1;
00228                             for( nPosKouho = 1; nPosKouho < nPosKouhoMax; nPosKouho++ ){
00229                                 if( ptr[nPosKouho] == L'\n' ){
00230                                     if( ptr[nPosKouho + nWordLen + 1] == L'\n' ){
00231                                         if( 0 == auto_memicmp( &ptr[nPosKouho + 1], word, nWordLen) ){
00232                                             nRet = 0;
00233                                             break;
00234                                         }else{
00235                                             nPosKouho += nWordLen;
00236                                         }
00237                                     }
00238                                 }
00239                             }
00240                         }
00241                     }
00242                 }else{
00243                     if( nWordLen < nLen ){
00244                         if( L'\n' == ptr[nWordLen] && 0 == auto_memcmp( ptr, word, nWordLen )  ){
00245                             nRet = 0;
00246                         }else{
00247                             int nPosKouhoMax = nLen - nWordLen - 1;
00248                             for( nPosKouho = 1; nPosKouho < nPosKouhoMax; nPosKouho++ ){
00249                                 if( ptr[nPosKouho] == L'\n' ){
00250                                     if( ptr[nPosKouho + nWordLen + 1] == L'\n' ){
00251                                         if( 0 == auto_memcmp( &ptr[nPosKouho + 1], word, nWordLen) ){
00252                                             nRet = 0;
00253                                             break;
00254                                         }else{
00255                                             nPosKouho += nWordLen;
00256                                         }
00257                                     }
00258                                 }
00259                             }
00260                         }
00261                     }
00262                 }
00263                 if( 0 == nRet ){
00264                     continue;
00265                 }
00266                 //2007.10.17 kobake メモリリークしてました。修正。
00267                 (*ppcmemKouho)->AppendString( word, nWordLen );
00268                 (*ppcmemKouho)->AppendString( L"\n" );
00269                 ++nKouhoNum;
00270             }
00271             if( 0 != nMaxKouho && nMaxKouho <= nKouhoNum ){
00272                 return nKouhoNum;
00273             }
00274
00275         }
00276     }
00277     return nKouhoNum;
00278 }
00279 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Cmdisrch.cpp

sakura_core

CEditView_Cmdisrch.cpp

CEditViewクラスのインクリメンタルサーチ関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CDocLine.h"
#include "CMigemo.h"

CEditView_Cmdisrch.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスのインクリメンタルサーチ関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_Cmdisrch.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Cmdisrch.cpp ソースファイル

sakura_core

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
00034 void CEditView::TranslateCommand_isearch(
00035     EFunctionCode&  nCommand,
00036     bool&           bRedraw,
00037     LPARAM&         lparam1,
00038     LPARAM&         lparam2,
00039     LPARAM&         lparam3,
00040     LPARAM&         lparam4
00041 )
00042 {
00043     if (m_nISearchMode <= 0 )
00044         return;
00045
00046     switch (nCommand){
00047         //これらの機能のとき、インクリメンタルサーチに入る
00048         case F_ISEARCH_NEXT:
00049         case F_ISEARCH_PREV:
00050         case F_ISEARCH_REGEXP_NEXT:
00051         case F_ISEARCH_REGEXP_PREV:
00052         case F_ISEARCH_MIGEMO_NEXT:
00053         case F_ISEARCH_MIGEMO_PREV:
00054             break;
00055
00056         //以下の機能のとき、インクリメンタルサーチ中は検索文字入力として処理
00057         case F_WCHAR:
00058         case F_IME_CHAR:
00059             nCommand = F_ISEARCH_ADD_CHAR;
00060             break;
00061         case F_INSTEXT_W:
00062             nCommand = F_ISEARCH_ADD_STR;
00063             break;
00064
00065         case F_INDENT_TAB:  // TABはインデントではなく単なるTAB文字と見なす
00066         case F_UNINDENT_TAB:    // genta追加
00067             nCommand = F_ISEARCH_ADD_CHAR;
00068             lparam1 = '\t';
00069             break;
00070         case F_INDENT_SPACE:    // スペースはインデントではなく単なるTAB文字と見なす
00071         case F_UNINDENT_SPACE:  // genta追加
00072             nCommand = F_ISEARCH_ADD_CHAR;
00073             lparam1 = ' ';
00074             break;
00075         case F_DELETE_BACK:
00076             nCommand = F_ISEARCH_DEL_BACK;
00077             break;
00078
00079         default:
00080             //上記以外のコマンドの場合はインクリメンタルサーチを抜ける
00081             ISearchExit();
00082     }
00083 }
00084
00090 bool CEditView::ProcessCommand_isearch(
00091     int nCommand,
00092     bool    bRedraw,
00093     LPARAM  lparam1,
00094     LPARAM  lparam2,
00095     LPARAM  lparam3,
00096     LPARAM  lparam4
00097 )
00098 {
00099     switch( nCommand ){
00100         //  検索文字列の変更操作
00101         case F_ISEARCH_ADD_CHAR:
00102             ISearchExec((WORD)lparam1);
00103             return true;
00104
00105         case F_ISEARCH_DEL_BACK:
00106             ISearchBack();
00107             return true;
00108
00109         case F_ISEARCH_ADD_STR:
00110             ISearchExec((const char*)lparam1);
00111             return true;
00112
00113         //  検索モードへの移行
00114         case F_ISEARCH_NEXT:
00115             ISearchEnter(1,SEARCH_FORWARD); //前方インクリメンタルサーチ //2004.10.13 isearch
00116             return true;
00117         case F_ISEARCH_PREV:
00118             ISearchEnter(1,SEARCH_BACKWARD); //後方インクリメンタルサーチ //2004.10.13 isearch
00119             return true;
00120         case F_ISEARCH_REGEXP_NEXT:
00121             ISearchEnter(2,SEARCH_FORWARD); //前方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00122             return true;
00123         case F_ISEARCH_REGEXP_PREV:
00124             ISearchEnter(2,SEARCH_BACKWARD);    //後方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00125             return true;
00126         case F_ISEARCH_MIGEMO_NEXT:
00127             ISearchEnter(3,SEARCH_FORWARD); //前方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00128             return true;
00129         case F_ISEARCH_MIGEMO_PREV:
00130             ISearchEnter(3,SEARCH_BACKWARD); //後方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00131             return true;
00132     }
00133     return false;
00134 }
00135
00144 void CEditView::ISearchEnter( int mode, ESearchDirection direction)
00145 {
00146
00147     if (m_nISearchMode == mode ) {
00148         //再実行
00149         m_nISearchDirection =  direction;
00150
00151         if ( m_bISearchFirst ){
00152             m_bISearchFirst = false;
00153         }
00154         //ちょっと修正
00155         ISearchExec(true);
00156
00157     }else{
00158         //インクリメンタルサーチモードに入るだけ.
00159         //選択範囲の解除
00160         if(GetSelectionInfo().IsTextSelected())
00161             GetSelectionInfo().DisableSelectArea( TRUE );
00162
00163         if(m_pcmigemo==NULL){
00164             m_pcmigemo = CMigemo::getInstance();
00165             m_pcmigemo->Init();
00166         }
00167         switch( mode ) {
00168             case 1: // 通常インクリメンタルサーチ
00169                 m_sCurSearchOption.bRegularExp = FALSE;
00170                 m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp = false;
00171                 //SendStatusMessage(_T("I-Search: "));
00172                 break;
00173             case 2: // 正規表現インクリメンタルサーチ
00174                 if (!m_CurRegexp.IsAvailable()){
00175                     MessageBeep(MB_ICONEXCLAMATION);
00176                     SendStatusMessage(_T("BREGREP.DLLが使用できません。"));
00177                     return;
00178                 }
00179                 m_sCurSearchOption.bRegularExp = TRUE;
00180                 m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp = TRUE;
00181                 //SendStatusMessage(_T("[RegExp] I-Search: "));
00182                 break;
00183             case 3: // MIGEMOインクリメンタルサーチ
00184                 if (!m_CurRegexp.IsAvailable()){
00185                     MessageBeep(MB_ICONEXCLAMATION);
00186                     SendStatusMessage(_T("BREGREP.DLLが使用できません。"));
00187                     return;
00188                 }
00189                 //migemo dll チェック
00190                 //  Jan. 10, 2005 genta 設定変更で使えるようになっている
00191                 //  可能性があるので，使用可能でなければ一応初期化を試みる
00192                 if ( ! m_pcmigemo->IsAvailable() && ! m_pcmigemo->Init() ){
00193                     MessageBeep(MB_ICONEXCLAMATION);
00194                     SendStatusMessage(_T("MIGEMO.DLLが使用できません。"));
00195                     return;
00196                 }
00197                 m_pcmigemo->migemo_load_all();
00198                 if (m_pcmigemo->migemo_is_enable()) {
00199                     m_sCurSearchOption.bRegularExp = TRUE;
00200                     m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp = true;
00201                     //SendStatusMessage(_T("[MIGEMO] I-Search: "));
00202                 }else{
00203                     MessageBeep(MB_ICONEXCLAMATION);
00204                     SendStatusMessage(_T("MIGEMOは使用できません。 "));
00205                     return;
00206                 }
00207                 break;
00208         }
00209
00210         //  Feb. 04, 2005 genta 検索開始位置を記録
00211         //  インクリメンタルサーチ間でモードを切り替える場合には開始と見なさない
00212         if( m_nISearchMode == 0 ){
00213             m_ptSrchStartPos_PHY = GetCaret().GetCaretLogicPos();
00214         }
00215
00216         m_bCurSrchKeyMark = false;
00217         m_nISearchDirection = direction;
00218         m_nISearchMode = mode;
00219
00220         m_nISearchHistoryCount = 0;
00221         m_sISearchHistory[m_nISearchHistoryCount].Set(GetCaret().GetCaretLayoutPos());
00222
00223         Redraw();
00224
00225         CNativeT msg;
00226         ISearchSetStatusMsg(&msg);
00227         SendStatusMessage(msg.GetStringPtr());
00228
00229         m_bISearchWrap = false;
00230         m_bISearchFirst = true;
00231     }
00232
00233     //マウスカーソル変更
00234     if (direction == 1){
00235         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_F)));
00236     }else{
00237         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_B)));
00238     }
00239 }
00240
00242 void CEditView::ISearchExit()
00243 {
00244     CShareData::getInstance()->AddToSearchKeyArr( m_szCurSrchKey );
00245     m_nISearchDirection = SEARCH_BACKWARD;
00246     m_nISearchMode = 0;
00247
00248     if (m_nISearchHistoryCount == 0){
00249         m_szCurSrchKey[0] = '\0';
00250     }
00251
00252     //マウスカーソルを元に戻す
00253     POINT point1;
00254     GetCursorPos(&point1);
00255     OnMOUSEMOVE(0,point1.x,point1.y);
00256
00257     //ステータス表示エリアをクリア
00258     SendStatusMessage(_T(""));
00259
00260 }
00261
00267 void CEditView::ISearchExec(WORD wChar)
00268 {
00269     //特殊文字は処理しない
00270     switch ( wChar){
00271         case L'\r':
00272         case L'\n':
00273             ISearchExit();
00274             return;
00275         //case '\t':
00276         //  break;
00277     }
00278
00279     int l;
00280     if (m_bISearchFirst){
00281         m_bISearchFirst = false;
00282         l = 0 ;
00283     }else
00284         l = wcslen(m_szCurSrchKey) ;
00285
00286     if (wChar <= 255 ) {
00287         if ( l < _countof(m_szCurSrchKey) - 1) {
00288             m_szCurSrchKey[l] = wChar;
00289             m_szCurSrchKey[l+1] = L'\0';
00290         }
00291     }else{
00292         if ( l < _countof(m_szCurSrchKey) - 2) {
00293             m_szCurSrchKey[l]   =(char)(wChar>>8);
00294             m_szCurSrchKey[l+1] = wChar;
00295             m_szCurSrchKey[l+2] = L'\0';
00296         }
00297     }
00298
00299     ISearchExec(false);
00300     return ;
00301 }
00302
00308 void CEditView::ISearchExec(const char* pszText)
00309 {
00310     //一文字ずつ分解して実行
00311
00312     const char* p;
00313     WORD  c;
00314     p = pszText;
00315
00316     while(*p!='\0'){
00317         if (IsDBCSLeadByte(*p)){
00318             c =( ((WORD)*p) * 256) | (unsigned char)*(p+1);
00319             p++;
00320         }else
00321             c =*p;
00322         ISearchExec(c);
00323         p++;
00324     }
00325     return ;
00326 }
00327
00333 void CEditView::ISearchExec(bool bNext)
00334 {
00335     //検索を実行する.
00336
00337     if ( (m_szCurSrchKey[0] == '\0') || (m_nISearchMode == 0)){
00338         //ステータスの表示
00339         CNativeT msg;
00340         ISearchSetStatusMsg(&msg);
00341         SendStatusMessage(msg.GetStringPtr());
00342         return ;
00343     }
00344
00345     ISearchWordMake();
00346
00347     CLayoutInt nLine;
00348     CLayoutInt nIdx1;
00349
00350     if ( bNext && m_bISearchWrap ) {
00351         switch (m_nISearchDirection)
00352         {
00353         case 1:
00354             nLine = CLayoutInt(0);
00355             nIdx1 = CLayoutInt(0);
00356             break;
00357         case 0:
00358             //最後から検索
00359             CLogicInt nLineP;
00360             int nIdxP;
00361             nLineP =  m_pcEditDoc->m_cDocLineMgr.GetLineCount() - CLogicInt(1);
00362             CDocLine* pDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( nLineP );
00363             nIdxP = pDocLine->GetLength() -1;
00364             CLayoutPoint ptTmp;
00365             m_pcEditDoc->m_cLayoutMgr.LogicToLayout(CLogicPoint(nIdxP,nLineP),&ptTmp);
00366             nIdx1=ptTmp.GetX2();
00367             nLine=ptTmp.GetY2();
00368         }
00369     }else if (GetSelectionInfo().IsTextSelected()){
00370         switch( m_nISearchDirection * 2 + (bNext ? 1: 0)){
00371             case 2 : //前方検索で現在位置から検索のとき
00372             case 1 : //後方検索で次を検索のとき
00373                 //選択範囲の先頭を検索開始位置に
00374                 nLine = GetSelectionInfo().m_sSelect.GetFrom().GetY2();
00375                 nIdx1 = GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00376                 break;
00377             case 0 : //前方検索で次を検索
00378             case 3 : //後方検索で現在位置から検索
00379                 //選択範囲の後ろから
00380                 nLine = GetSelectionInfo().m_sSelect.GetTo().GetY2();
00381                 nIdx1 = GetSelectionInfo().m_sSelect.GetTo().GetX2();
00382                 break;
00383         }
00384     }else{
00385         nLine = GetCaret().GetCaretLayoutPos().GetY2();
00386         nIdx1  = GetCaret().GetCaretLayoutPos().GetX2();
00387     }
00388
00389     //桁位置からindexに変換
00390     CLayout* pCLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( nLine );
00391     CLogicInt nIdx = LineColmnToIndex( pCLayout, nIdx1 );
00392
00393     m_nISearchHistoryCount ++ ;
00394
00395     CNativeT msg;
00396     ISearchSetStatusMsg(&msg);
00397
00398     if (m_nISearchHistoryCount >= 256) {
00399         m_nISearchHistoryCount = 156;
00400         for(int i = 100 ; i<= 255 ; i++){
00401             m_bISearchFlagHistory[i-100] = m_bISearchFlagHistory[i];
00402             m_sISearchHistory[i-100] = m_sISearchHistory[i];
00403         }
00404     }
00405     m_bISearchFlagHistory[m_nISearchHistoryCount] = bNext;
00406
00407     CLayoutRange sMatchRange;
00408
00409     int nSearchResult = m_pcEditDoc->m_cLayoutMgr.SearchWord(
00410         nLine,                      // 検索開始レイアウト行
00411         nIdx,                       // 検索開始データ位置
00412         m_szCurSrchKey,             // 検索条件
00413         m_nISearchDirection,        // 0==前方検索 1==後方検索
00414         SSearchOption(
00415             m_sCurSearchOption.bRegularExp, //正規表現
00416             false,                          //英大文字小文字の区別
00417             false                           //単語のみ検索
00418         ),
00419         &sMatchRange,               // マッチレイアウト範囲
00420         &m_CurRegexp
00421     );
00422     if( nSearchResult == 0 ){
00423         /*検索結果がない*/
00424         msg.AppendString(_T(" (見つかりません)"));
00425         SendStatusMessage(msg.GetStringPtr());
00426
00427         if (bNext)  m_bISearchWrap = true;
00428         if (GetSelectionInfo().IsTextSelected()){
00429             m_sISearchHistory[m_nISearchHistoryCount] = GetSelectionInfo().m_sSelect;
00430         }else{
00431             m_sISearchHistory[m_nISearchHistoryCount].Set(GetCaret().GetCaretLayoutPos());
00432         }
00433     }else{
00434         //検索結果あり
00435         //キャレット移動
00436         GetCaret().MoveCursor( sMatchRange.GetFrom(), TRUE, _CARETMARGINRATE / 3 );
00437
00438         //  2005.06.24 Moca
00439         GetSelectionInfo().SetSelectArea( sMatchRange );
00440
00441         m_bISearchWrap = false;
00442         m_sISearchHistory[m_nISearchHistoryCount] = sMatchRange;
00443     }
00444
00445     m_bCurSrchKeyMark = true;
00446
00447     Redraw();
00448     SendStatusMessage(msg.GetStringPtr());
00449     return ;
00450 }
00451
00453 void CEditView::ISearchBack(void) {
00454     if(m_nISearchHistoryCount==0) return;
00455
00456     if(m_nISearchHistoryCount==1){
00457         m_bCurSrchKeyMark = false;
00458         m_bISearchFirst = true;
00459     }else if( m_bISearchFlagHistory[m_nISearchHistoryCount] == false){
00460         //検索文字をへらす
00461         long l = wcslen(m_szCurSrchKey);
00462         if (l > 0 ){
00463             //最後の文字の一つ前
00464             wchar_t* p = CharPrevW_AnyBuild(m_szCurSrchKey,&m_szCurSrchKey[l]);
00465             *p = L'\0';
00466             //m_szCurSrchKey[l-1] = '\0';
00467
00468             if ( (p - m_szCurSrchKey) > 0 )
00469                 ISearchWordMake();
00470             else
00471                 m_bCurSrchKeyMark = false;
00472
00473         }else{
00474             MessageBeep(MB_ICONEXCLAMATION);
00475         }
00476     }
00477     m_nISearchHistoryCount --;
00478
00479     CLayoutRange sRange = m_sISearchHistory[m_nISearchHistoryCount];
00480
00481     if(m_nISearchHistoryCount == 0){
00482         GetSelectionInfo().DisableSelectArea( TRUE );
00483         sRange.SetToX( sRange.GetFrom().x );
00484     }
00485
00486     GetCaret().MoveCursor( sRange.GetFrom(), TRUE, _CARETMARGINRATE / 3 );
00487     if(m_nISearchHistoryCount != 0){
00488         //  2005.06.24 Moca
00489         GetSelectionInfo().SetSelectArea( sRange );
00490     }
00491
00492     Redraw();
00493
00494     //ステータス表示
00495     CNativeT msg;
00496     ISearchSetStatusMsg(&msg);
00497     SendStatusMessage(msg.GetStringPtr());
00498
00499 }
00500
00502 void CEditView::ISearchWordMake(void)
00503 {
00504     int nFlag = 0x00;
00505     switch ( m_nISearchMode ) {
00506     case 1: // 通常インクリメンタルサーチ
00507         break;
00508     case 2: // 正規表現インクリメンタルサーチ
00509         if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
00510             return ;
00511         }
00512         nFlag |= m_sCurSearchOption.bLoHiCase ? 0x01 : 0x00;
00513         /* 検索パターンのコンパイル */
00514         m_CurRegexp.Compile(m_szCurSrchKey , nFlag );
00515         break;
00516     case 3: // MIGEMOインクリメンタルサーチ
00517         if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
00518             return ;
00519         }
00520         nFlag |= m_sCurSearchOption.bLoHiCase ? 0x01 : 0x00;
00521
00522         {
00523             //migemoで捜す
00524             unsigned char* pszMigemoWord = m_pcmigemo->migemo_query((unsigned char*)to_achar(m_szCurSrchKey));
00525
00526             /* 検索パターンのコンパイル */
00527             m_CurRegexp.Compile(to_wchar((char*)pszMigemoWord), nFlag );
00528
00529             m_pcmigemo->migemo_release(pszMigemoWord);
00530         }
00531         break;
00532     }
00533 }
00534
00546 void CEditView::ISearchSetStatusMsg(CNativeT* msg) const
00547 {
00548
00549     switch ( m_nISearchMode){
00550     case 1 :
00551         msg->SetString(_T("I-Search") );
00552         break;
00553     case 2 :
00554         msg->SetString(_T("[RegExp] I-Search") );
00555         break;
00556     case 3 :
00557         msg->SetString(_T("[Migemo] I-Search") );
00558         break;
00559     default:
00560         msg->SetString(_T(""));
00561         return;
00562     }
00563     if (m_nISearchDirection == 0){
00564         msg->AppendString(_T(" Backward: "));
00565     }
00566     else{
00567         msg->AppendString(_T(": "));
00568     }
00569
00570     if(m_nISearchHistoryCount > 0)
00571         msg->AppendString(to_tchar(m_szCurSrchKey));
00572 }
00573
00584 bool CEditView::IsISearchEnabled(int nCommand) const
00585 {
00586     switch( nCommand )
00587     {
00588     case F_ISEARCH_NEXT:
00589         return m_nISearchMode == 1 && m_nISearchDirection == 1;
00590     case F_ISEARCH_PREV:
00591         return m_nISearchMode == 1 && m_nISearchDirection == 0;
00592     case F_ISEARCH_REGEXP_NEXT:
00593         return m_nISearchMode == 2 && m_nISearchDirection == 1;
00594     case F_ISEARCH_REGEXP_PREV:
00595         return m_nISearchMode == 2 && m_nISearchDirection == 0;
00596     case F_ISEARCH_MIGEMO_NEXT:
00597         return m_nISearchMode == 3 && m_nISearchDirection == 1;
00598     case F_ISEARCH_MIGEMO_PREV:
00599         return m_nISearchMode == 3 && m_nISearchDirection == 0;
00600     }
00601     return false;
00602 }
00603 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Command.cpp

sakura_core

CEditView_Command.cpp

#include "stdafx.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "util/file.h"
#include "util/module.h"
#include "mymessage.h"
#include "util/window.h"
#include "CControlTray.h"
#include <io.h>
#include "CLayout.h"
#include "charcode.h"

CEditView_Command.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Command.cpp ソースファイル

sakura_core

CEditView_Command.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CEditView.h"
00003 #include "CEditDoc.h"
00004 #include "util/file.h"
00005 #include "util/module.h"
00006 #include "mymessage.h"
00007 #include "util/window.h"
00008 #include "CControlTray.h"
00009 #include <io.h>
00010 #include "CLayout.h"
00011 #include "charcode.h"
00012
00013 /*
00014     指定ファイルの指定位置にタグジャンプする。
00015
00016     @author MIK
00017     @date   2003.04.13  新規作成
00018     @date   2003.04.21 genta bClose追加
00019     @date   2004.05.29 Moca 0以下が指定されたときは、善処する
00020     @date   2007.02.17 genta 相対パスの基準ディレクトリ指示を追加
00021 */
00022 bool CEditView::TagJumpSub(
00023     const TCHAR*    pszFileName,
00024     CMyPoint        ptJumpTo,
00025     /*
00026     int             nJumpToLine,    //!< [in] 論理行番号(1開始)。0以下を指定したら行ジャンプはしない。
00027     int             nJumpToColm,    //!< [in] 論理行単位の行内の位置(1開始)
00028     */
00029     bool            bClose,
00030     bool            bRelFromIni
00031 )
00032 {
00033     HWND    hwndOwner;
00034     POINT   poCaret;
00035     // 2004/06/21 novice タグジャンプ機能追加
00036     TagJump tagJump;
00037
00038     // 参照元ウィンドウ保存
00039     tagJump.hwndReferer = GetDocument()->GetOwnerHwnd();
00040
00041     //  Feb. 17, 2007 genta 実行ファイルからの相対指定の場合は
00042     //  予め絶対パスに変換する．(キーワードヘルプジャンプで用いる)
00043     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00044     TCHAR   szJumpToFile[1024];
00045     if( bRelFromIni && _IS_REL_PATH( pszFileName ) ){
00046         GetInidirOrExedir( szJumpToFile, pszFileName );
00047     }
00048     else {
00049         _tcscpy( szJumpToFile, pszFileName );
00050     }
00051
00052     /* ロングファイル名を取得する */
00053     TCHAR   szWork[1024];
00054     if( TRUE == ::GetLongFileName( szJumpToFile, szWork ) )
00055     {
00056         _tcscpy( szJumpToFile, szWork );
00057     }
00058
00059 // 2004/06/21 novice タグジャンプ機能追加
00060 // 2004/07/05 みちばな
00061 // 同一ファイルだとSendMesssageで GetCaret().GetCaretLayoutPos().GetX2(),GetCaret().GetCaretLayoutPos().GetY2()が更新されてしまい、
00062 // ジャンプ先の場所がジャンプ元として保存されてしまっているので、
00063 // その前で保存するように変更。
00064
00065     /* カーソル位置変換 */
00066     GetDocument()->m_cLayoutMgr.LayoutToLogic(
00067         GetCaret().GetCaretLayoutPos(),
00068         &tagJump.point
00069     );
00070
00071     // タグジャンプ情報の保存
00072     CShareData::getInstance()->PushTagJump(&tagJump);
00073
00074
00075     /* 指定ファイルが開かれているか調べる */
00076     /* 開かれている場合は開いているウィンドウのハンドルも返す */
00077     /* ファイルを開いているか */
00078     if( CShareData::getInstance()->IsPathOpened( szJumpToFile, &hwndOwner ) )
00079     {
00080         // 2004.05.13 Moca マイナス値は無効
00081         if( 0 < ptJumpTo.y ){
00082             /* カーソルを移動させる */
00083             poCaret.y = ptJumpTo.y - 1;
00084             if( 0 < ptJumpTo.x ){
00085                 poCaret.x = ptJumpTo.x - 1;
00086             }else{
00087                 poCaret.x = 0;
00088             }
00089             memcpy_raw( m_pShareData->GetWorkBuffer<void>(), &poCaret, sizeof(poCaret) );
00090 			::SendMessageAny( hwndOwner, MYWM_SETCARETPOS, 0, 0 );
00091         }
00092         /* アクティブにする */
00093         ActivateFrameWindow( hwndOwner );
00094     }
00095     else
00096     {
00097         /* 新しく開く */
00098         FileInfo    inf;
00099         bool        bSuccess;
00100
00101         _tcscpy( inf.m_szPath, szJumpToFile );
00102         inf.m_ptCursor.Set(CLogicInt(ptJumpTo.x - 1), CLogicInt(ptJumpTo.y - 1));
00103         /*
00104         inf.m_nX           = nJumpToColm - 1;
00105         inf.m_nY           = nJumpToLine - 1;
00106         */
00107         inf.m_nViewLeftCol = CLayoutInt(-1);
00108         inf.m_nViewTopLine = CLayoutInt(-1);
00109         inf.m_nCharCode    = CODE_AUTODETECT;
00110
00111         bSuccess = CControlTray::OpenNewEditor2(
00112             m_hInstance,
00113             m_hWnd,
00114             &inf,
00115             FALSE,  /* 読み取り専用か */
00116             true    //  同期モードで開く
00117         );
00118
00119         if( ! bSuccess )    //  ファイルが開けなかった
00120             return false;
00121
00122         //  Apr. 23, 2001 genta
00123         //  hwndOwnerに値が入らなくなってしまったために
00124         //  Tag Jump Backが動作しなくなっていたのを修正
00125         if( FALSE == CShareData::getInstance()->IsPathOpened( szJumpToFile, &hwndOwner ) )
00126             return false;
00127     }
00128
00129     // 2006.12.30 ryoji 閉じる処理は最後に（処理位置移動）
00130     //  Apr. 2003 genta 閉じるかどうかは引数による
00131     //  grep結果からEnterでジャンプするところにCtrl判定移動
00132     if( bClose )
00133     {
00134         GetCommander().Command_WINCLOSE();  //  挑戦するだけ。
00135     }
00136
00137     return true;
00138 }
00139
00140
00141
00154 BOOL CEditView::OPEN_ExtFromtoExt(
00155     BOOL            bCheckOnly,
00156     BOOL            bBeepWhenMiss,
00157     const TCHAR*    file_ext[],
00158     const TCHAR*    open_ext[],
00159     int             file_extno,
00160     int             open_extno,
00161     const TCHAR*    errmes
00162 )
00163 {
00164 //From Here Feb. 7, 2001 JEPRO 追加
00165     int     i;
00166     BOOL    bwantopen_c;
00167 //To Here Feb. 7, 2001
00168
00169     /* 編集中ファイルの拡張子を調べる */
00170     for( i = 0; i < open_extno; i++ ){
00171         if( CheckEXT( GetDocument()->GetFilePath(), open_ext[i] ) ){
00172             bwantopen_c = TRUE;
00173             goto open_c;
00174         }
00175     }
00176     if( bBeepWhenMiss ){
00177         ::MessageBeep( MB_ICONHAND );
00178     }
00179     return FALSE;
00180
00181 open_c:;
00182 //To Here Feb. 7, 2001
00183
00184     TCHAR   szPath[_MAX_PATH];
00185     TCHAR   szDrive[_MAX_DRIVE];
00186     TCHAR   szDir[_MAX_DIR];
00187     TCHAR   szFname[_MAX_FNAME];
00188     TCHAR   szExt[_MAX_EXT];
00189     HWND    hwndOwner;
00190
00191     _tsplitpath( GetDocument()->GetFilePath(), szDrive, szDir, szFname, szExt );
00192
00193     for( i = 0; i < file_extno; i++ ){
00194         _tmakepath( szPath, szDrive, szDir, szFname, file_ext[i] );
00195         if( -1 == _taccess( szPath, 0 ) ){
00196             if( i < file_extno - 1 )
00197                 continue;
00198             if( bBeepWhenMiss ){
00199                 ::MessageBeep( MB_ICONHAND );
00200             }
00201             return FALSE;
00202         }
00203         break;
00204     }
00205     if( bCheckOnly ){
00206         return TRUE;
00207     }
00208 //To Here Feb. 7, 2001
00209
00210     /* 指定ファイルが開かれているか調べる */
00211     /* 開かれている場合は開いているウィンドウのハンドルも返す */
00212     /* ファイルを開いているか */
00213     if( CShareData::getInstance()->IsPathOpened( szPath, &hwndOwner ) ){
00214     }else{
00215         /* 新しく開く */
00216         TCHAR   szPath2[_MAX_PATH + 3];
00217         if( _tcschr( szPath, _T(' ') ) ){
00218             auto_sprintf( szPath2, _T("\"%ts\""), szPath );
00219         }else{
00220             _tcscpy( szPath2, szPath );
00221         }
00222         /* 文字コードはこのファイルに合わせる */
00223         CControlTray::OpenNewEditor(
00224             m_hInstance,
00225             m_hWnd,
00226             szPath2,
00227             GetDocument()->m_nCharCode,
00228             FALSE,  /* 読み取り専用か */
00229             true
00230         );
00231         /* ファイルを開いているか */
00232         if( CShareData::getInstance()->IsPathOpened( szPath, &hwndOwner ) ){
00233         }else{
00234 			::MYMESSAGEBOX_A( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00235                 "%ls\n\n%ls\n\n", errmes, szPath
00236             );
00237             return FALSE;
00238         }
00239     }
00240     /* アクティブにする */
00241     ActivateFrameWindow( hwndOwner );
00242
00243 // 2004/06/21 novice タグジャンプ機能追加
00244 // 2004/07/09 genta/Moca タグジャンプバックの登録が取り除かれていたが、
00245 //            こちらでも従来どおり登録する
00246     TagJump tagJump;
00247     /*
00248       カーソル位置変換
00249       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00250       →
00251       物理位置(行頭からのバイト数、折り返し無し行位置)
00252     */
00253     GetDocument()->m_cLayoutMgr.LayoutToLogic(
00254         GetCaret().GetCaretLayoutPos(),
00255         &tagJump.point
00256     );
00257     tagJump.hwndReferer = GetDocument()->GetOwnerHwnd();
00258     // タグジャンプ情報の保存
00259     CShareData::getInstance()->PushTagJump(&tagJump);
00260     return TRUE;
00261 }
00262
00263
00276 CEditView::TOGGLE_WRAP_ACTION CEditView::GetWrapMode( CLayoutInt* _newKetas )
00277 {
00278     CLayoutInt& newKetas=*_newKetas;
00279     //@@@ 2002.01.14 YAZAKI 現在のウィンドウ幅で折り返されているときは、最大値にするコマンド。
00280     //2002/04/08 YAZAKI ときどきウィンドウ幅で折り返されないことがあるバグ修正。
00281     // 20051022 aroka 現在のウィンドウ幅→最大値→文書タイプの初期値 をトグルにするコマンド
00282     // ウィンドウ幅==文書タイプ||最大値==文書タイプ の場合があるため判定順序に注意する。
00283     /*  Jan.  8, 2006 genta
00284         じゅうじさんの要望により判定方法を再考．現在の幅に合わせるのを最優先に．
00285
00286         基本動作： 設定値→ウィンドウ幅
00287             →(ウィンドウ幅と合っていなければ)→ウィンドウ幅→上へ戻る
00288             →(ウィンドウ幅と合っていたら)→最大値→設定値
00289             ただし，最大値==設定値の場合には最大値→設定値の遷移が省略されて上に戻る
00290
00291             ウィンドウ幅が極端に狭い場合にはウィンドウ幅に合わせることは出来ないが，
00292             設定値と最大値のトグルは可能．
00293
00294         1)現在の折り返し幅==ウィンドウ幅 : 最大値
00295         2)現在の折り返し幅!=ウィンドウ幅
00296         3)→ウィンドウ幅が極端に狭い場合
00297         4)　└→折り返し幅!=最大値 : 最大値
00298         5)　└→折り返し幅==最大値
00299         6)　　　└→最大値==設定値 : 変更不能
00300         7)　　　└→最大値!=設定値 : 設定値
00301         8)→ウィンドウ幅が十分にある
00302         9)　└→折り返し幅==最大値
00303         a)　　　└→最大値!=設定値 : 設定値
00304         b)　　　└→最大値==設定値 : ウィンドウ幅
00305         c)　└→ウィンドウ幅
00306     */
00307
00308     if (GetDocument()->m_cLayoutMgr.GetMaxLineKetas() == GetTextArea().m_nViewColNum ){
00309         // a)
00310         newKetas = CLayoutInt(MAXLINEKETAS);
00311         return TGWRAP_FULL;
00312     }
00313     else if( 10 > GetTextArea().m_nViewColNum - 1 ){ // 2)
00314         // 3)
00315         if( GetDocument()->m_cLayoutMgr.GetMaxLineKetas() != MAXLINEKETAS ){
00316             // 4)
00317             newKetas = CLayoutInt(MAXLINEKETAS);
00318             return TGWRAP_FULL;
00319         }
00320         else if( GetDocument()->GetDocumentAttribute().m_nMaxLineKetas == MAXLINEKETAS ){ // 5)
00321             // 6)
00322             return TGWRAP_NONE;
00323         }
00324         else { // 7)
00325             newKetas = CLayoutInt(GetDocument()->GetDocumentAttribute().m_nMaxLineKetas);
00326             return TGWRAP_PROP;
00327         }
00328     }
00329     else { // 8)
00330         if( GetDocument()->m_cLayoutMgr.GetMaxLineKetas() == MAXLINEKETAS && // 9)
00331             GetDocument()->GetDocumentAttribute().m_nMaxLineKetas != MAXLINEKETAS ){
00332             // a)
00333             newKetas = CLayoutInt(GetDocument()->GetDocumentAttribute().m_nMaxLineKetas);
00334             return TGWRAP_PROP;
00335
00336         }
00337         else {  // b) c)
00338             //  現在のウィンドウ幅
00339             newKetas = GetTextArea().m_nViewColNum;
00340             return TGWRAP_WINDOW;
00341         }
00342     }
00343 }
00344
00345
00346 void CEditView::AddToCmdArr( const TCHAR* szCmd )
00347 {
00348     CRecentCmd  cRecentCmd;
00349     cRecentCmd.AppendItem( szCmd );
00350     cRecentCmd.Terminate();
00351 }
00352
00353
00354 /* 正規表現の検索パターンを必要に応じて更新する(ライブラリが使用できないときはFALSEを返す) */
00355 /* 2002.01.16 hor 共通ロジックを関数にしただけ・・・ */
00356 BOOL CEditView::ChangeCurRegexp(void)
00357 {
00358     BOOL    bChangeState;
00359     if( !m_bCurSrchKeyMark
00360      || 0 != wcscmp( m_szCurSrchKey, m_pShareData->m_aSearchKeys[0] )
00361      || m_sCurSearchOption != m_pShareData->m_Common.m_sSearch.m_sSearchOption
00362     ){
00363         bChangeState = TRUE;
00364     }else{
00365         bChangeState = FALSE;
00366     }
00367
00368     m_bCurSrchKeyMark = true;                                   // 検索文字列のマーク
00369     wcscpy( m_szCurSrchKey, m_pShareData->m_aSearchKeys[0] );// 検索文字列
00370     m_sCurSearchOption = m_pShareData->m_Common.m_sSearch.m_sSearchOption;// 検索／置換  オプション
00371     /* 正規表現 */
00372     if( m_sCurSearchOption.bRegularExp
00373      && bChangeState
00374     ){
00375         //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
00376         if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
00377             return FALSE;
00378         }
00379         int nFlag = 0x00;
00380         nFlag |= m_sCurSearchOption.bLoHiCase ? 0x01 : 0x00;
00381         /* 検索パターンのコンパイル */
00382         m_CurRegexp.Compile( m_szCurSrchKey, nFlag );
00383     }
00384
00385     if( bChangeState ){
00386         /* フォーカス移動時の再描画 */
00387         RedrawAll();
00388     }
00389
00390     return TRUE;
00391 }
00392
00393
00394
00395
00401 void CEditView::CopyCurLine(
00402     bool            bAddCRLFWhenCopy,
00403     enumEOLType     neweol,
00404     bool            bEnableLineModePaste
00405 )
00406 {
00407     if( GetSelectionInfo().IsTextSelected() ){
00408         return;
00409     }
00410
00411     const CLayout*  pcLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().y );
00412     if( NULL == pcLayout ){
00413         return;
00414     }
00415
00416     /* クリップボードに入れるべきテキストデータを、cmemBufに格納する */
00417     CNativeW cmemBuf;
00418     cmemBuf.SetString( pcLayout->GetPtr(), pcLayout->GetLengthWithoutEOL() );
00419     if( pcLayout->m_cEol.GetLen() != 0 ){
00420         cmemBuf.AppendString(
00421             ( neweol == EOL_UNKNOWN ) ?
00422                 pcLayout->m_cEol.GetUnicodeBEValue() : CEOL(neweol).GetUnicodeValue()
00423         );
00424     }else if( bAddCRLFWhenCopy ){   // 2007.10.08 ryoji bAddCRLFWhenCopy対応処理追加
00425         cmemBuf.AppendString(
00426             ( neweol == EOL_UNKNOWN ) ?
00427                 WCODE::CRLF : CEOL(neweol).GetUnicodeValue()
00428         );
00429     }
00430
00431     /* クリップボードにデータcmemBufの内容を設定 */
00432     BOOL bSetResult = MySetClipboardData(
00433         cmemBuf.GetStringPtr(),
00434         cmemBuf.GetStringLength(),
00435         false,
00436         bEnableLineModePaste
00437     );
00438     if( !bSetResult ){
00439         ::MessageBeep( MB_ICONHAND );
00440         return;
00441     }
00442
00443     return;
00444 }
Sakura-Editorに対してSat Nov 17 20:24:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Command_New.cpp

sakura_core

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 <string>
#include <vector>
#include "COsVersionInfo.h"
#include "CEditDoc.h"
#include "CEditWnd.h"
#include "CDlgCtrlCode.h"
#include "CDlgFavorite.h"

ソースコードを見る。

説明

CEditViewクラスのコマンド処理系関数群

作者:
Norio Nakatani

CEditView_Command_New.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Command_New.cpp ソースファイル

sakura_core

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 <string>
00033 #include <vector>
00034 #include "COsVersionInfo.h"   // 2002.04.09 minfu
00035 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00036 #include "CEditWnd.h"
00037 #include "CDlgCtrlCode.h"   //コントロールコードの入力(ダイアログ)
00038 #include "CDlgFavorite.h"   //履歴の管理   //@@@ 2003.04.08 MIK
00039
00040 using namespace std; // 2002/2/3 aroka to here
00041
00042
00043
00048 void CEditView::InsertData_CEditView(
00049     CLayoutPoint    ptInsertPos,    // [in] 挿入位置
00050     const wchar_t*  pData,          // [in] 挿入テキスト
00051     int             nDataLen,       // [in] 挿入テキスト長。文字単位。
00052     CLayoutPoint*   pptNewPos,      // [out] 挿入された部分の次の位置のレイアウト位置
00053     bool            bRedraw
00054 )
00055 {
00056 #ifdef _DEBUG
00057     gm_ProfileOutput = 1;
00058     MY_RUNNINGTIMER( cRunningTimer, "CEditView::InsertData_CEditView" );
00059 #endif
00060
00061     //2007.10.18 kobake COpe処理をここにまとめる
00062     COpe* pcOpe = NULL;
00063     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00064         pcOpe = new COpe(OPE_INSERT);
00065         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00066             ptInsertPos,
00067             &pcOpe->m_ptCaretPos_PHY_Before
00068         );
00069     }
00070
00071
00072     pptNewPos->y = 0;           // 挿入された部分の次の位置のレイアウト行
00073     pptNewPos->x = 0;           // 挿入された部分の次の位置のレイアウト位置
00074
00075     // テキストが選択されているか
00076     if( GetSelectionInfo().IsTextSelected() ){
00077         DeleteData( bRedraw );
00078         ptInsertPos = GetCaret().GetCaretLayoutPos();
00079     }
00080
00081     //テキスト取得 -> pLine, nLineLen, pcLayout
00082     CLogicInt       nLineLen;
00083     const CLayout*  pcLayout;
00084     const wchar_t*  pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( ptInsertPos.GetY2(), &nLineLen, &pcLayout );
00085
00086     CLayoutInt  nLineAllColLen;
00087     CLogicInt   nIdxFrom = CLogicInt(0);
00088     CNativeW    cMem;
00089     cMem.SetString(L"");
00090     if( pLine ){
00091         // 指定された桁に対応する行のデータ内の位置を調べる
00092         nIdxFrom = LineColmnToIndex2( pcLayout, ptInsertPos.GetX2(), &nLineAllColLen );
00093
00094         // 行終端より右に挿入しようとした
00095         if( nLineAllColLen > 0 ){
00096             // 終端直前から挿入位置まで空白を埋める為の処理
00097             // 行終端が何らかの改行コードか?
00098             if( EOL_NONE != pcLayout->m_cEol ){
00099                 nIdxFrom = nLineLen - CLogicInt(1);
00100                 for( int i = 0; i < ptInsertPos.GetX2() - nLineAllColLen + 1; ++i ){
00101                     cMem += L' ';
00102                 }
00103                 cMem.AppendString( pData, nDataLen );
00104             }
00105             else{
00106                 nIdxFrom = nLineLen;
00107                 for( int i = 0; i < ptInsertPos.GetX2() - nLineAllColLen; ++i ){
00108                     cMem += L' ';
00109                 }
00110                 cMem.AppendString( pData, nDataLen );
00111             }
00112         }
00113         else{
00114             cMem.AppendString( pData, nDataLen );
00115         }
00116     }
00117     else{
00118         for( CLayoutInt i = CLayoutInt(0); i < ptInsertPos.GetX2(); ++i ){
00119             cMem += L' ';
00120         }
00121         cMem.AppendString( pData, nDataLen );
00122     }
00123
00124
00125     if( !m_bDoing_UndoRedo && pcOpe ){  // アンドゥ・リドゥの実行中か
00126         if( pLine ){
00127             m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00128                 CLayoutPoint(LineIndexToColmn( pcLayout, nIdxFrom ), ptInsertPos.y),
00129                 &pcOpe->m_ptCaretPos_PHY_Before
00130             );
00131         }
00132         else{
00133             m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00134                 CLayoutPoint(CLayoutInt(0), ptInsertPos.y),
00135                 &pcOpe->m_ptCaretPos_PHY_Before
00136             );
00137         }
00138     }
00139
00140
00141     // 文字列挿入
00142     CLayoutInt  nModifyLayoutLinesOld=CLayoutInt(0);
00143     CLayoutInt  nInsLineNum;        /* 挿入によって増えたレイアウト行の数 */
00144     m_pcEditDoc->m_cLayoutMgr.InsertData_CLayoutMgr(
00145         ptInsertPos.GetY2(),
00146         nIdxFrom,
00147         cMem.GetStringPtr(),
00148         CLogicInt(cMem.GetStringLength()),
00149         &nModifyLayoutLinesOld,
00150         &nInsLineNum,
00151         pptNewPos
00152     );
00153
00154     // メモリが再確保されてアドレスが無効になるので、再度、行データを求める
00155     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( ptInsertPos.GetY2(), &nLineLen );
00156
00157     // 指定された行のデータ内の位置に対応する桁の位置を調べる
00158     const wchar_t*  pLine2;
00159     CLogicInt       nLineLen2;
00160     pLine2 = m_pcEditDoc->m_cLayoutMgr.GetLineStr( pptNewPos->GetY2(), &nLineLen2, &pcLayout );
00161     if( pLine2 ){
00162         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
00163         pptNewPos->x = pptNewPos->GetX2(); //LineIndexToColmn( pcLayout, pptNewPos->GetX2() );
00164     }
00165
00166     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00167     if( pptNewPos->x >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas() ){
00168         if( m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet
00169          || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.16 MIK
00170         {
00171             if( m_pcEditDoc->m_cLayoutMgr.IsEndOfLine( *pptNewPos ) )   //@@@ 2002.04.18
00172             {
00173                 pptNewPos->x = 0;
00174                 pptNewPos->y++;
00175             }
00176         }
00177         else
00178         {
00179             // Oct. 7, 2002 YAZAKI
00180             pptNewPos->x = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : CLayoutInt(0);
00181             pptNewPos->y++;
00182         }
00183     }
00184
00185     // 状態遷移
00186     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00187         m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
00188     }
00189
00190     // 再描画
00191     // 行番号表示に必要な幅を設定
00192     if( m_pcEditWnd->DetectWidthOfLineNumberAreaAllPane( bRedraw ) ){
00193         // キャレットの表示・更新
00194         GetCaret().ShowEditCaret();
00195     }
00196     else{
00197         PAINTSTRUCT ps;
00198
00199         if( bRedraw ){
00200             if( 0 < nInsLineNum ){
00201                 // スクロールバーの状態を更新する
00202                 AdjustScrollBars();
00203                 ps.rcPaint.left = 0;
00204                 ps.rcPaint.right = GetTextArea().GetAreaRight();
00205                 ps.rcPaint.top = GetTextArea().GetAreaTop() + GetTextMetrics().GetHankakuDy() * (Int)(ptInsertPos.y - GetTextArea().GetViewTopLine());
00206                 ps.rcPaint.bottom = GetTextArea().GetAreaBottom();
00207             }
00208             else{
00209                 if( nModifyLayoutLinesOld < 1 ){
00210                     nModifyLayoutLinesOld = CLayoutInt(1);
00211                 }
00212     //          ps.rcPaint.left = GetTextArea().GetAreaLeft();
00213                 ps.rcPaint.left = 0;
00214                 ps.rcPaint.right = GetTextArea().GetAreaRight();
00215
00216                 // 2002.02.25 Mod By KK 次行 (ptInsertPos.y - GetTextArea().GetViewTopLine() - 1); => (ptInsertPos.y - GetTextArea().GetViewTopLine());
00217                 //ps.rcPaint.top = GetTextArea().GetAreaTop() + GetTextMetrics().GetHankakuDy() * (ptInsertPos.y - GetTextArea().GetViewTopLine() - 1);
00218                 ps.rcPaint.top = GetTextArea().GetAreaTop() + GetTextMetrics().GetHankakuDy() * (Int)(ptInsertPos.y - GetTextArea().GetViewTopLine());
00219
00220                 //禁則がある場合は1行前から再描画を行う   @@@ 2002.04.19 MIK
00221                 if( m_pcEditDoc->GetDocumentAttribute().m_bWordWrap
00222                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuHead  //@@@ 2002.04.19 MIK
00223                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuTail  //@@@ 2002.04.19 MIK
00224                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet   //@@@ 2002.04.19 MIK
00225                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.19 MIK
00226                 {
00227                     ps.rcPaint.top -= GetTextMetrics().GetHankakuDy();
00228                 }
00229                 if( ps.rcPaint.top < 0 ){
00230                     ps.rcPaint.top = 0;
00231                 }
00232
00233                 ps.rcPaint.bottom = ps.rcPaint.top + GetTextMetrics().GetHankakuDy() * (Int)( nModifyLayoutLinesOld + 1);
00234                 if( GetTextArea().GetAreaBottom() < ps.rcPaint.bottom ){
00235                     ps.rcPaint.bottom = GetTextArea().GetAreaBottom();
00236                 }
00237             }
00238             HDC hdc = ::GetDC( m_hWnd );
00239             OnPaint( hdc, &ps, TRUE );  // メモリＤＣを使用してちらつきのない再描画
00240             ::ReleaseDC( m_hWnd, hdc );
00241         }
00242     }
00243
00244     if( !m_bDoing_UndoRedo && pcOpe ){  /* アンドゥ・リドゥの実行中か */
00245         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00246             *pptNewPos,
00247             &pcOpe->m_ptCaretPos_PHY_To
00248         );
00249
00250         pcOpe->m_nDataLen = cMem.GetStringLength(); /* 操作に関連するデータのサイズ */
00251         pcOpe->m_pcmemData.Clear();                 /* 操作に関連するデータ */
00252     }
00253
00254
00255
00256     //2007.10.18 kobake ここでCOpe処理をまとめる
00257     if( !m_bDoing_UndoRedo ){
00258         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00259             *pptNewPos,
00260             &pcOpe->m_ptCaretPos_PHY_After
00261         );
00262
00263         // 操作の追加
00264         m_pcOpeBlk->AppendOpe( pcOpe );
00265     }
00266
00267 #ifdef _DEBUG
00268     gm_ProfileOutput = 0;
00269 #endif
00270 }
00271
00272
00280 void CEditView::DeleteData2(
00281     const CLayoutPoint& ptCaretPos,
00282     CLogicInt           nDelLen,
00283     CNativeW*           pcMem
00284 )
00285 {
00286 #ifdef _DEBUG
00287     gm_ProfileOutput = 1;
00288     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DeleteData(1)" );
00289 #endif
00290
00291     //2007.10.18 kobake COpeの生成をここにまとめる
00292     COpe*   pcOpe = NULL;
00293     if( !m_bDoing_UndoRedo ){
00294         pcOpe = new COpe(OPE_DELETE);
00295         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00296             ptCaretPos,
00297             &pcOpe->m_ptCaretPos_PHY_Before
00298         );
00299     }
00300
00301     const wchar_t*  pLine;
00302     CLogicInt   nLineLen;
00303     CLogicInt   nIdxFrom;
00304     int         bLastLine;
00305
00306     /* 最後の行にカーソルがあるかどうか */
00307     if( ptCaretPos.y == m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
00308         bLastLine = 1;
00309     }else{
00310         bLastLine = 0;
00311     }
00312
00313     const CLayout* pcLayout;
00314     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( ptCaretPos.GetY2(), &nLineLen, &pcLayout );
00315     if( NULL == pLine ){
00316         return;
00317     }
00318     nIdxFrom = LineColmnToIndex( pcLayout, ptCaretPos.GetX2() );
00319     if( pcOpe ){
00320         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00321             CLayoutPoint(LineIndexToColmn( pcLayout, nIdxFrom + nDelLen ), ptCaretPos.y),
00322             &pcOpe->m_ptCaretPos_PHY_To
00323         );
00324     }
00325
00326
00327     /* データ削除 */
00328     CLayoutInt  nModifyLayoutLinesOld;
00329     CLayoutInt  nModifyLayoutLinesNew;
00330     CLayoutInt  nDeleteLayoutLines;
00331     m_pcEditDoc->m_cLayoutMgr.DeleteData_CLayoutMgr(
00332         ptCaretPos.GetY2(),
00333         nIdxFrom,
00334         nDelLen,
00335         &nModifyLayoutLinesOld,
00336         &nModifyLayoutLinesNew,
00337         &nDeleteLayoutLines,
00338         pcMem
00339     );
00340
00341     if( pcOpe ){
00342         pcOpe->m_nDataLen = pcMem->GetStringLength();   /* 操作に関連するデータのサイズ */
00343         pcOpe->m_pcmemData = *pcMem;                    /* 操作に関連するデータ */
00344     }
00345
00346     /* 選択エリアの先頭へカーソルを移動 */
00347     GetCaret().MoveCursor( ptCaretPos, false );
00348     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
00349
00350     //2007.10.18 kobake COpeの追加をここにまとめる
00351     if( pcOpe ){
00352         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00353             ptCaretPos,
00354             &pcOpe->m_ptCaretPos_PHY_After
00355         );
00356         // 操作の追加
00357         m_pcOpeBlk->AppendOpe( pcOpe );
00358     }
00359
00360 }
00361
00362
00363
00364
00365
00370 void CEditView::DeleteData(
00371     bool    bRedraw
00372 //  BOOL    bUndo   /* Undo操作かどうか */
00373 )
00374 {
00375 #ifdef _DEBUG
00376     gm_ProfileOutput = 1;
00377     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DeleteData(2)" );
00378 #endif
00379     const wchar_t*  pLine;
00380     CLogicInt       nLineLen;
00381     CLayoutInt  nLineNum;
00382     CLogicInt   nCurIdx;
00383     CLogicInt   nNxtIdx;
00384     CLogicInt   nIdxFrom;
00385     CLogicInt   nIdxTo;
00386     CLogicInt   nDelPos;
00387     CLogicInt   nDelLen;
00388     CLogicInt   nDelPosNext;
00389     CLogicInt   nDelLenNext;
00390     CLayoutRect     rcSel;
00391     int         bLastLine;
00392     const CLayout*  pcLayout;
00393
00394     CLayoutPoint ptSelectFrom_Old;
00395
00396     CLayoutPoint ptCaretPosOld = GetCaret().GetCaretLayoutPos();
00397
00398     /* テキストが選択されているか */
00399     if( GetSelectionInfo().IsTextSelected() ){
00400         CWaitCursor cWaitCursor( m_hWnd );  // 2002.02.05 hor
00401         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00402             COpe*       pcOpe = new COpe(OPE_MOVECARET);
00403             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos(); // 操作前のキャレット位置
00404             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
00405             /* 操作の追加 */
00406             m_pcOpeBlk->AppendOpe( pcOpe );
00407         }
00408
00409         /* 矩形範囲選択中か */
00410         if( GetSelectionInfo().IsBoxSelecting() ){
00411             m_pcEditDoc->SetModified(true,bRedraw); //  2002/06/04 YAZAKI 矩形選択を削除したときに変更マークがつかない。
00412
00413             SetDrawSwitch(false);   // 2002.01.25 hor
00414             ptSelectFrom_Old = GetSelectionInfo().m_sSelect.GetFrom();
00415
00416             /* 選択範囲のデータを取得 */
00417             /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
00418             /* ２点を対角とする矩形を求める */
00419             TwoPointToRect(
00420                 &rcSel,
00421                 GetSelectionInfo().m_sSelect.GetFrom(), // 範囲選択開始
00422                 GetSelectionInfo().m_sSelect.GetTo()        // 範囲選択終了
00423             );
00424             /* 現在の選択範囲を非選択状態に戻す */
00425             GetSelectionInfo().DisableSelectArea( bRedraw );
00426
00427             nIdxFrom = CLogicInt(0);
00428             nIdxTo = CLogicInt(0);
00429             for( nLineNum = rcSel.bottom; nLineNum >= rcSel.top - 1; nLineNum-- ){
00430                 nDelPosNext = nIdxFrom;
00431                 nDelLenNext = nIdxTo - nIdxFrom;
00432                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
00433                 if( pLine ){
00434                     using namespace WCODE;
00435
00436                     /* 指定された桁に対応する行のデータ内の位置を調べる */
00437                     nIdxFrom = LineColmnToIndex( pcLayout, rcSel.left  );
00438                     nIdxTo   = LineColmnToIndex( pcLayout, rcSel.right );
00439
00440                     for( CLogicInt i = nIdxFrom; i <= nIdxTo; ++i ){
00441                         if( pLine[i] == CR || pLine[i] == LF ){
00442                             nIdxTo = i;
00443                             break;
00444                         }
00445                     }
00446                 }else{
00447                     nIdxFrom = CLogicInt(0);
00448                     nIdxTo   = CLogicInt(0);
00449                 }
00450                 nDelPos = nDelPosNext;
00451                 nDelLen = nDelLenNext;
00452                 if( nLineNum < rcSel.bottom && 0 < nDelLen ){
00453                     CNativeW    pcMemDeleted;
00454                     // 指定位置の指定長データ削除
00455                     DeleteData2(
00456                         CLayoutPoint(rcSel.left, nLineNum + 1),
00457                         nDelLen,
00458                         &pcMemDeleted
00459                     );
00460                 }
00461             }
00462             SetDrawSwitch(true);    // 2002.01.25 hor
00463
00464             /* 行番号表示に必要な幅を設定 */
00465             if ( m_pcEditWnd->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
00466                 /* キャレットの表示・更新 */
00467                 GetCaret().ShowEditCaret();
00468             }
00469             if( bRedraw ){
00470                 /* スクロールバーの状態を更新する */
00471                 AdjustScrollBars();
00472
00473                 /* 再描画 */
00474                 Call_OnPaint(PAINT_LINENUMBER | PAINT_BODY, TRUE); // メモリＤＣを使用してちらつきのない再描画
00475             }
00476             /* 選択エリアの先頭へカーソルを移動 */
00477             ::UpdateWindow( m_hWnd );
00478             GetCaret().MoveCursor( ptSelectFrom_Old, bRedraw );
00479             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
00480             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00481                 COpe*       pcOpe = new COpe(OPE_MOVECARET);
00482                 m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00483                     ptCaretPosOld,
00484                     &pcOpe->m_ptCaretPos_PHY_Before
00485                 );
00486
00487                 pcOpe->m_ptCaretPos_PHY_After = GetCaret().GetCaretLogicPos();  // 操作後のキャレット位置
00488                 /* 操作の追加 */
00489                 m_pcOpeBlk->AppendOpe( pcOpe );
00490             }
00491         }else{
00492             /* データ置換 削除&挿入にも使える */
00493             ReplaceData_CEditView(
00494                 GetSelectionInfo().m_sSelect,
00495                 NULL,                   /* 削除されたデータのコピー(NULL可能) */
00496                 L"",                    /* 挿入するデータ */
00497                 CLogicInt(0),           /* 挿入するデータの長さ */
00498                 bRedraw
00499             );
00500         }
00501     }else{
00502         /* 現在行のデータを取得 */
00503         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( GetCaret().GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
00504         if( NULL == pLine ){
00505             goto end_of_func;
00506 //          return;
00507         }
00508         /* 最後の行にカーソルがあるかどうか */
00509         if( GetCaret().GetCaretLayoutPos().GetY() == m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
00510             bLastLine = 1;
00511         }else{
00512             bLastLine = 0;
00513         }
00514
00515         /* 指定された桁に対応する行のデータ内の位置を調べる */
00516         nCurIdx = LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
00517 //      MYTRACE_A("nLineLen=%d nCurIdx=%d \n", nLineLen, nCurIdx);
00518         if( nCurIdx == nLineLen && bLastLine ){ /* 全テキストの最後 */
00519             goto end_of_func;
00520 //          return;
00521         }
00522
00523         /* 指定された桁の文字のバイト数を調べる */
00524         CLayoutInt  nNxtPos;
00525         if( WCODE::isLineDelimiter(pLine[nCurIdx]) ){
00526             /* 改行 */
00527             nNxtIdx = nCurIdx + pcLayout->m_cEol.GetLen();
00528             nNxtPos = GetCaret().GetCaretLayoutPos().GetX() + CLayoutInt((Int)pcLayout->m_cEol.GetLen()); //※改行コードの文字数を文字幅と見なす
00529         }
00530         else{
00531             nNxtIdx = CLogicInt(CNativeW::GetCharNext( pLine, nLineLen, &pLine[nCurIdx] ) - pLine);
00532             // 指定された行のデータ内の位置に対応する桁の位置を調べる
00533             nNxtPos = LineIndexToColmn( pcLayout, nNxtIdx );
00534         }
00535
00536
00537         /* データ置換 削除&挿入にも使える */
00538         CLayoutRange sDelRange;
00539         sDelRange.SetFrom(GetCaret().GetCaretLayoutPos());
00540         sDelRange.SetTo(CLayoutPoint(nNxtPos,GetCaret().GetCaretLayoutPos().GetY()));
00541         ReplaceData_CEditView(
00542             sDelRange,
00543             NULL,               /* 削除されたデータのコピー(NULL可能) */
00544             L"",                /* 挿入するデータ */
00545             CLogicInt(0),       /* 挿入するデータの長さ */
00546             bRedraw
00547         );
00548     }
00549
00550     m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
00551
00552     if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() > 0 ){
00553         if( GetCaret().GetCaretLayoutPos().GetY() > m_pcEditDoc->m_cLayoutMgr.GetLineCount()    - 1 ){
00554             /* 現在行のデータを取得 */
00555             const CLayout*  pcLayout;
00556             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_pcEditDoc->m_cLayoutMgr.GetLineCount() - CLayoutInt(1), &nLineLen, &pcLayout );
00557             if( NULL == pLine ){
00558                 goto end_of_func;
00559             }
00560             /* 改行で終わっているか */
00561             if( ( EOL_NONE != pcLayout->m_cEol ) ){
00562                 goto end_of_func;
00563             }
00564             /*ファイルの最後に移動 */
00565             GetCommander().Command_GOFILEEND( FALSE );
00566         }
00567     }
00568 end_of_func:;
00569
00570     return;
00571 }
00572
00573
00574
00575
00576
00577
00578 /* データ置換 削除&挿入にも使える */
00579 // Jun 23, 2000 genta 変数名を書き換え忘れていたのを修正
00580 // Jun. 1, 2000 genta DeleteDataから移動した
00581 void CEditView::ReplaceData_CEditView(
00582     CLayoutRange    sDelRange,          // 削除範囲レイアウト単位
00583     CNativeW*       pcmemCopyOfDeleted,
00584     const wchar_t*  pInsData,           // 挿入するデータ
00585     CLogicInt       nInsDataLen,        // 挿入するデータの長さ
00586     bool            bRedraw
00587 )
00588 {
00589     {
00590         //  May. 29, 2000 genta
00591         //  From Here
00592         //  行の後ろが選択されていたときの不具合を回避するため，
00593         //  選択領域から行末以降の部分を取り除く．
00594
00595         //  先頭
00596         const CLayout*  pcLayout;
00597         CLogicInt       len;
00598         const wchar_t*  line = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sDelRange.GetFrom().GetY2(), &len, &pcLayout );
00599         if( line ){
00600             CLogicInt pos = LineColmnToIndex( pcLayout, sDelRange.GetFrom().GetX2() );
00601             //  Jun. 1, 2000 genta
00602             //  同一行の行末以降のみが選択されている場合を考慮する
00603
00604             //  Aug. 22, 2000 genta
00605             //  開始位置がEOFの後ろのときは次行に送る処理を行わない
00606             //  これをやってしまうと存在しない行をPointして落ちる．
00607             if( sDelRange.GetFrom().y < m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 && pos >= len){
00608                 if( sDelRange.GetFrom().y == sDelRange.GetTo().y  ){
00609                     //  GetSelectionInfo().m_sSelect.GetFrom().y <= GetSelectionInfo().m_sSelect.GetTo().y はチェックしない
00610                     CLayoutPoint tmp = sDelRange.GetFrom();
00611                     tmp.y++;
00612                     sDelRange.Set(tmp);
00613                 }
00614                 else {
00615                     sDelRange.GetFromPointer()->y++;
00616                     sDelRange.SetFromX(0);
00617                 }
00618             }
00619         }
00620
00621         //  末尾
00622         line = m_pcEditDoc->m_cLayoutMgr.GetLineStr( sDelRange.GetTo().GetY2(), &len, &pcLayout );
00623         if( line ){
00624             CLayoutInt p = LineIndexToColmn( pcLayout, len );
00625
00626             if( sDelRange.GetTo().x > p ){
00627                 sDelRange.SetToX( p );
00628             }
00629         }
00630         //  To Here
00631     }
00632
00633
00634     CLogicPoint     ptCaretPos_PHY_Old;
00635
00636     ptCaretPos_PHY_Old = GetCaret().GetCaretLogicPos();
00637     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00638         COpe* pcOpe = new COpe(OPE_MOVECARET);
00639         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
00640         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
00641         /* 操作の追加 */
00642         m_pcOpeBlk->AppendOpe( pcOpe );
00643     }
00644
00645     COpe* pcOpe = NULL; // 編集操作要素 COpe
00646     if( !m_bDoing_UndoRedo ){
00647         pcOpe = new COpe(OPE_DELETE);
00648
00649         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00650             sDelRange.GetFrom(),
00651             &pcOpe->m_ptCaretPos_PHY_Before
00652         );
00653
00654         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00655             sDelRange.GetTo(),
00656             &pcOpe->m_ptCaretPos_PHY_To
00657         );
00658
00659         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
00660     }
00661
00662     CNativeW pcMemDeleted;
00663     /*
00664     || バッファサイズの調整
00665     */
00666     if( 2000 < sDelRange.GetTo().y - sDelRange.GetFrom().y ){
00667         pcMemDeleted.AllocStringBuffer( 1024000 );
00668     }
00669
00670
00671     /* 文字列置換 */
00672     LayoutReplaceArg LRArg;
00673     LRArg.sDelRange    = sDelRange;
00674     LRArg.pcmemDeleted = &pcMemDeleted;
00675     LRArg.pInsData     = pInsData;
00676     LRArg.nInsDataLen  = nInsDataLen;
00677     m_pcEditDoc->m_cLayoutMgr.ReplaceData_CLayoutMgr(
00678         &LRArg
00679     );
00680
00681     //  Jan. 30, 2001 genta
00682     //  再描画の時点でファイル更新フラグが適切になっていないといけないので
00683     //  関数の末尾からここへ移動
00684     /* 状態遷移 */
00685     if( FALSE == m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00686         m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
00687     }
00688
00689     /* 現在の選択範囲を非選択状態に戻す */
00690     GetSelectionInfo().DisableSelectArea( bRedraw );
00691
00692     /* 行番号表示に必要な幅を設定 */
00693     if( m_pcEditWnd->DetectWidthOfLineNumberAreaAllPane( bRedraw ) ){
00694         /* キャレットの表示・更新 */
00695         GetCaret().ShowEditCaret();
00696     }
00697     else{
00698         /* 再描画 */
00699         if( bRedraw ){
00700             /* 再描画ヒント レイアウト行の増減 */
00701             //  Jan. 30, 2001 genta 貼り付けで行数が減る場合の考慮が抜けていた
00702             if( 0 != LRArg.nAddLineNum ){
00703                 Call_OnPaint( PAINT_LINENUMBER | PAINT_BODY, true); // メモリＤＣを使用してちらつきのない再描画
00704             }
00705             else{
00706                 PAINTSTRUCT ps;
00707
00708                 ps.rcPaint.left = 0;
00709                 ps.rcPaint.right = GetTextArea().GetAreaRight();
00710
00711                 /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
00712                 ps.rcPaint.top = GetTextArea().GetAreaTop() + (Int)(LRArg.nModLineFrom - GetTextArea().GetViewTopLine())* GetTextMetrics().GetHankakuDy();
00713                 if( m_pcEditDoc->GetDocumentAttribute().m_bWordWrap
00714                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuHead  //@@@ 2002.04.19 MIK
00715                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuTail  //@@@ 2002.04.19 MIK
00716                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet   //@@@ 2002.04.19 MIK
00717                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.19 MIK
00718                 {
00719                     ps.rcPaint.top -= GetTextMetrics().GetHankakuDy();
00720                 }
00721                 if( ps.rcPaint.top < 0 ){
00722                     ps.rcPaint.top = 0;
00723                 }
00724                 ps.rcPaint.bottom = GetTextArea().GetAreaTop() + (Int)(LRArg.nModLineTo - GetTextArea().GetViewTopLine() + 1)* GetTextMetrics().GetHankakuDy();
00725                 if( GetTextArea().GetAreaBottom() < ps.rcPaint.bottom ){
00726                     ps.rcPaint.bottom = GetTextArea().GetAreaBottom();
00727                 }
00728
00729                 HDC hdc = ::GetDC( m_hWnd );
00730                 OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
00731                 ::ReleaseDC( m_hWnd, hdc );
00732             }
00733         }
00734     }
00735
00736     // 削除されたデータのコピー(NULL可能)
00737     if( pcmemCopyOfDeleted && 0 < pcMemDeleted.GetStringLength() ){
00738         *pcmemCopyOfDeleted = pcMemDeleted;
00739     }
00740
00741     if( !m_bDoing_UndoRedo && 0 < pcMemDeleted.GetStringLength() ){
00742         pcOpe->m_nDataLen = pcMemDeleted.GetStringLength(); /* 操作に関連するデータのサイズ */
00743         pcOpe->m_pcmemData = pcMemDeleted;                  /* 操作に関連するデータ */
00744         /* 操作の追加 */
00745         m_pcOpeBlk->AppendOpe( pcOpe );
00746     }
00747     pcMemDeleted.Clear();
00748
00749
00750     if( !m_bDoing_UndoRedo && 0 < nInsDataLen ){
00751         pcOpe = new COpe(OPE_INSERT);
00752
00753         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00754             sDelRange.GetFrom(),
00755             &pcOpe->m_ptCaretPos_PHY_Before
00756         );
00757         m_pcEditDoc->m_cLayoutMgr.LayoutToLogic(
00758             LRArg.ptLayoutNew,
00759             &pcOpe->m_ptCaretPos_PHY_To
00760         );
00761         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_To;
00762
00763
00764         /* 操作の追加 */
00765         m_pcOpeBlk->AppendOpe( pcOpe );
00766     }else{
00767         pcOpe = NULL;
00768     }
00769
00770
00771     // 挿入直後位置へカーソルを移動
00772     GetCaret().MoveCursor(
00773         LRArg.ptLayoutNew,  // 挿入された部分の次の位置
00774         bRedraw
00775     );
00776     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
00777
00778
00779     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00780         pcOpe = new COpe(OPE_MOVECARET);
00781         pcOpe->m_ptCaretPos_PHY_Before = ptCaretPos_PHY_Old;    // 操作後のキャレット位置
00782         pcOpe->m_ptCaretPos_PHY_After = GetCaret().GetCaretLogicPos();  // 操作後のキャレット位置
00783         /* 操作の追加 */
00784         m_pcOpeBlk->AppendOpe( pcOpe );
00785     }
00786
00787     //  Jan. 30, 2001 genta
00788     //  ファイル全体の更新フラグが立っていないと各行の更新状態が表示されないので
00789     //  フラグ更新処理を再描画より前に移動する
00790 }
00791
00792
00793
00794 /* C/C++スマートインデント処理 */
00795 void CEditView::SmartIndent_CPP( wchar_t wcChar )
00796 {
00797     const wchar_t*  pLine;
00798     CLogicInt       nLineLen;
00799     int         k;
00800     int         m;
00801     const wchar_t*  pLine2;
00802     CLogicInt   nLineLen2;
00803     int         nLevel;
00804     CLogicInt j;
00805
00806     /* 調整によって置換される箇所 */
00807     CLogicRange sRangeA;
00808     sRangeA.Clear(-1);
00809
00810     wchar_t*    pszData = NULL;
00811     CLogicInt   nDataLen;
00812
00813     COpe*       pcOpe = NULL;
00814     int         nWork;
00815     CDocLine*   pCDocLine = NULL;
00816     int nCharChars;
00817     int         nSrcLen;
00818     wchar_t     pszSrc[1024];
00819     BOOL        bChange;
00820
00821     int         nCaretPosX_PHY;
00822
00823     CLogicPoint ptCP;
00824
00825     if(wcChar==WCODE::CR || wcschr(L":{}()",wcChar)!=NULL){
00826         //次へ進む
00827     }else return;
00828
00829     switch( wcChar ){
00830     case WCODE::CR:
00831     case L':':
00832     case L'}':
00833     case L')':
00834     case L'{':
00835     case L'(':
00836
00837         nCaretPosX_PHY = GetCaret().GetCaretLogicPos().x;
00838
00839         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( GetCaret().GetCaretLogicPos().GetY2(), &nLineLen );
00840         if( NULL == pLine ){
00841             if( WCODE::CR != wcChar ){
00842                 return;
00843             }
00844             /* 調整によって置換される箇所 */
00845             sRangeA.Set(CLogicPoint(0,GetCaret().GetCaretLogicPos().y));
00846         }else{
00847             pCDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() );
00848
00849
00850             //  nWorkに処理の基準桁位置を設定する
00851             if( WCODE::CR != wcChar ){
00852                 nWork = nCaretPosX_PHY - 1;
00853             }else{
00854                 /*
00855                 || CRが入力された時、カーソル直後の識別子をインデントする。
00856                 || カーソル直後の識別子が'}'や')'ならば
00857                 || '}'や')'が入力された時と同じ処理をする
00858                 */
00859
00860                 int i;
00861                 for( i = nCaretPosX_PHY; i < nLineLen; i++ ){
00862                     if( WCODE::TAB != pLine[i] && WCODE::SPACE != pLine[i] ){
00863                         break;
00864                     }
00865                 }
00866                 if( i < nLineLen ){
00867                     // 2005-09-02 D.S.Koba GetSizeOfChar
00868                     nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00869                     if( 1 == nCharChars && ( pLine[i] == L')' || pLine[i] == L'}' ) ){
00870                         wcChar = pLine[i];
00871                     }
00872                     nCaretPosX_PHY = i;
00873                     nWork = nCaretPosX_PHY;
00874                 }else{
00875                     nWork = nCaretPosX_PHY;
00876                 }
00877             }
00878             int i;
00879             for( i = 0; i < nWork; i++ ){
00880                 if( WCODE::TAB != pLine[i] && WCODE::SPACE != pLine[i] ){
00881                     break;
00882                 }
00883             }
00884             if( i < nWork ){
00885                 if( ( L':' == wcChar && WCODE::isHeadCppKeyword(&pLine[i]) )
00886                     //  Sep. 18, 2002 かろと
00887                     || ( L'{' == wcChar && L'#' != pLine[i] )
00888                     || ( L'(' == wcChar && L'#' != pLine[i] )
00889                 ){
00890
00891                 }else{
00892                     return;
00893                 }
00894             }else{
00895                 if( L':' == wcChar ){
00896                     return;
00897                 }
00898             }
00899             /* 調整によって置換される箇所 */
00900             sRangeA.SetFrom(CLogicPoint(0, GetCaret().GetCaretLogicPos().GetY2()));
00901             sRangeA.SetTo(CLogicPoint(i, GetCaret().GetCaretLogicPos().GetY2()));
00902         }
00903
00904
00905         /* 対応する括弧をさがす */
00906         nLevel = 0; /* {}の入れ子レベル */
00907
00908
00909         nDataLen = CLogicInt(0);
00910         for( j = GetCaret().GetCaretLogicPos().GetY2(); j >= CLogicInt(0); --j ){
00911             pLine2 = m_pcEditDoc->m_cDocLineMgr.GetLineStr( j, &nLineLen2 );
00912             if( j == GetCaret().GetCaretLogicPos().y ){
00913                 // 2005.10.11 ryoji EOF のみの行もスマートインデントの対象にする
00914                 if( NULL == pLine2 ){
00915                     if( GetCaret().GetCaretLogicPos().y == m_pcEditDoc->m_cDocLineMgr.GetLineCount() )
00916                         continue;   // EOF のみの行
00917                     break;
00918                 }
00919                 nCharChars = CLogicInt(&pLine2[nWork] - CNativeW::GetCharPrev( pLine2, nLineLen2, &pLine2[nWork] ));
00920                 k = nWork - nCharChars;
00921             }else{
00922                 if( NULL == pLine2 )
00923                     break;
00924                 nCharChars = CLogicInt(&pLine2[nLineLen2] - CNativeW::GetCharPrev( pLine2, nLineLen2, &pLine2[nLineLen2] ));
00925                 k = nLineLen2 - nCharChars;
00926             }
00927
00928             for( ; k >= 0; /*k--*/ ){
00929                 if( 1 == nCharChars && ( L'}' == pLine2[k] || L')' == pLine2[k] )
00930                 ){
00931                     if( 0 < k && L'\'' == pLine2[k - 1]
00932                      && nLineLen2 - 1 > k && L'\'' == pLine2[k + 1]
00933                     ){
00934 //                      MYTRACE_A( "▼[%ls]\n", pLine2 );
00935                     }else{
00936                         //同じ行の場合
00937                         if( j == GetCaret().GetCaretLogicPos().y ){
00938                             if( L'{' == wcChar && L'}' == pLine2[k] ){
00939                                 wcChar = L'}';
00940                                 nLevel--;   /* {}の入れ子レベル */
00941                             }
00942                             if( L'(' == wcChar && L')' == pLine2[k] ){
00943                                 wcChar = L')';
00944                                 nLevel--;   /* {}の入れ子レベル */
00945                             }
00946                         }
00947
00948                         nLevel++;   /* {}の入れ子レベル */
00949                     }
00950                 }
00951                 if( 1 == nCharChars && ( L'{' == pLine2[k] || L'(' == pLine2[k] )
00952                 ){
00953                     if( 0 < k && L'\'' == pLine2[k - 1]
00954                      && nLineLen2 - 1 > k && L'\'' == pLine2[k + 1]
00955                     ){
00956 //                      MYTRACE_A( "▼[%ls]\n", pLine2 );
00957                     }else{
00958                         //同じ行の場合
00959                         if( j == GetCaret().GetCaretLogicPos().y ){
00960                             if( L'{' == wcChar && L'{' == pLine2[k] ){
00961                                 return;
00962                             }
00963                             if( L'(' == wcChar && L'(' == pLine2[k] ){
00964                                 return;
00965                             }
00966                         }
00967                         if( 0 == nLevel ){
00968                             break;
00969                         }else{
00970                             nLevel--;   /* {}の入れ子レベル */
00971                         }
00972
00973                     }
00974                 }
00975                 nCharChars = CLogicInt(&pLine2[k] - CNativeW::GetCharPrev( pLine2, nLineLen2, &pLine2[k] ));
00976                 if( 0 == nCharChars ){
00977                     nCharChars = CLogicInt(1);
00978                 }
00979                 k -= nCharChars;
00980             }
00981             if( k < 0 ){
00982                 /* この行にはない */
00983                 continue;
00984             }
00985
00986             for( m = 0; m < nLineLen2; m++ ){
00987                 if( WCODE::TAB != pLine2[m] && WCODE::SPACE != pLine2[m] ){
00988                     break;
00989                 }
00990             }
00991
00992
00993             nDataLen = CLogicInt(m);
00994             nCharChars = (m_pcEditDoc->GetDocumentAttribute().m_bInsSpace)? (Int)m_pcEditDoc->m_cLayoutMgr.GetTabSpace(): 1;
00995             pszData = new wchar_t[nDataLen + nCharChars + 1];
00996             wmemcpy( pszData, pLine2, nDataLen );
00997             if( WCODE::CR  == wcChar || L'{' == wcChar || L'(' == wcChar ){
00998                 // 2005.10.11 ryoji TABキーがSPACE挿入の設定なら追加インデントもSPACEにする
00999                 //  既存文字列の右端の表示位置を求めた上で挿入するスペースの数を決定する
01000                 if( m_pcEditDoc->GetDocumentAttribute().m_bInsSpace ){  // SPACE挿入設定
01001                     int i;
01002                     i = m = 0;
01003                     while( i < nDataLen ){
01004                         nCharChars = CNativeW::GetSizeOfChar( pszData, nDataLen, i );
01005                         if( nCharChars == 1 && WCODE::TAB == pszData[i] )
01006                             m += (Int)m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace(CLayoutInt(m));
01007                         else
01008                             m += nCharChars;
01009                         i += nCharChars;
01010                     }
01011                     nCharChars = (Int)m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace(CLayoutInt(m));
01012                     for( int i = 0; i < nCharChars; i++ )
01013                         pszData[nDataLen + i] = WCODE::SPACE;
01014                     pszData[nDataLen + nCharChars] = L'\0';
01015                     nDataLen += CLogicInt(nCharChars);
01016                 }else{
01017                     pszData[nDataLen] = WCODE::TAB;
01018                     pszData[nDataLen + 1] = L'\0';
01019                     ++nDataLen;
01020                 }
01021             }else{
01022                 pszData[nDataLen] = L'\0';
01023
01024             }
01025             break;
01026         }
01027         if( j < 0 ){
01028             /* 対応する括弧が見つからなかった */
01029             if( WCODE::CR == wcChar ){
01030                 return;
01031             }else{
01032                 nDataLen = CLogicInt(0);
01033                 pszData = new wchar_t[nDataLen + 1];
01034                 pszData[nDataLen] = L'\0';
01035             }
01036         }
01037
01038         /* 調整後のカーソル位置を計算しておく */
01039         ptCP.x = nCaretPosX_PHY - sRangeA.GetTo().x + nDataLen;
01040         ptCP.y = GetCaret().GetCaretLogicPos().y;
01041
01042         nSrcLen = sRangeA.GetTo().x - sRangeA.GetFrom().x;
01043         if( nSrcLen >= _countof( pszSrc ) - 1 ){
01044             //  Sep. 18, 2002 genta メモリリーク対策
01045             delete [] pszData;
01046             return;
01047         }
01048         if( NULL == pLine ){
01049             pszSrc[0] = L'\0';
01050         }else{
01051             wmemcpy( pszSrc, &pLine[sRangeA.GetFrom().x], nSrcLen );
01052             pszSrc[nSrcLen] = L'\0';
01053         }
01054
01055
01056         /* 調整によって置換される箇所 */
01057         CLayoutRange sRangeLayout;
01058         m_pcEditDoc->m_cLayoutMgr.LogicToLayout( sRangeA, &sRangeLayout );
01059
01060         if( ( 0 == nDataLen && sRangeLayout.IsOne() )
01061          || ( nDataLen == nSrcLen && 0 == wmemcmp( pszSrc, pszData, nDataLen ) )
01062          ){
01063             bChange = FALSE;
01064         }else{
01065             bChange = TRUE;
01066
01067             /* データ置換 削除&挿入にも使える */
01068             ReplaceData_CEditView(
01069                 sRangeLayout,
01070                 NULL,       /* 削除されたデータのコピー(NULL可能) */
01071                 pszData,    /* 挿入するデータ */
01072                 nDataLen,   /* 挿入するデータの長さ */
01073                 true
01074             );
01075         }
01076
01077
01078         /* カーソル位置調整 */
01079         CLayoutPoint ptCP_Layout;
01080         m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptCP, &ptCP_Layout );
01081
01082         /* 選択エリアの先頭へカーソルを移動 */
01083         GetCaret().MoveCursor( ptCP_Layout, TRUE );
01084         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
01085
01086
01087         if( bChange && !m_bDoing_UndoRedo ){    /* アンドゥ・リドゥの実行中か */
01088             pcOpe = new COpe(OPE_MOVECARET);
01089             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
01090             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
01091             /* 操作の追加 */
01092             m_pcOpeBlk->AppendOpe( pcOpe );
01093         }
01094         break;
01095     }
01096     if( NULL != pszData ){
01097         delete [] pszData;
01098         pszData = NULL;
01099     }
01100     return;
01101 }
01102
01103
01104 // 2005.10.11 ryoji 前の行にある末尾の空白を削除
01105 void CEditView::RTrimPrevLine( void )
01106 {
01107     int         nCharChars;
01108     COpe*       pcOpe = NULL;
01109
01110     CLogicPoint ptCaretPos_PHY = GetCaret().GetCaretLogicPos();
01111
01112     if( GetCaret().GetCaretLogicPos().y > 0 ){
01113         int             nLineLen;
01114         const wchar_t*  pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStrWithoutEOL( GetCaret().GetCaretLogicPos().GetY2() - CLogicInt(1), &nLineLen );
01115         if( NULL != pLine && nLineLen > 0 ){
01116             int i=0;
01117             int j=0;
01118             while( i < nLineLen ){
01119                 nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
01120                 if( !WCODE::isBlank(pLine[i]) ){
01121                     j = i + nCharChars;
01122                 }
01123                 i += nCharChars;
01124             }
01125             if( j < nLineLen ){
01126                 CLayoutRange sRangeA;
01127                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( CLogicPoint(j, GetCaret().GetCaretLogicPos().y - 1), sRangeA.GetFromPointer() );
01128                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( CLogicPoint(nLineLen, GetCaret().GetCaretLogicPos().y - 1), sRangeA.GetToPointer() );
01129                 if( !( sRangeA.GetFrom().x >= sRangeA.GetTo().x && sRangeA.GetFrom().y == sRangeA.GetTo().y) ){
01130                     ReplaceData_CEditView(
01131                         sRangeA,
01132                         NULL,       /* 削除されたデータのコピー(NULL可能) */
01133                         NULL,       /* 挿入するデータ */
01134                         CLogicInt(0),           /* 挿入するデータの長さ */
01135                         true
01136                     );
01137                     CLayoutPoint ptCP;
01138                     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptCaretPos_PHY, &ptCP );
01139                     GetCaret().MoveCursor( ptCP, TRUE );
01140
01141                     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01142                         pcOpe = new COpe(OPE_MOVECARET);
01143                         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
01144                         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
01145                         /* 操作の追加 */
01146                         m_pcOpeBlk->AppendOpe( pcOpe );
01147                     }
01148                 }
01149             }
01150         }
01151     }
01152 }
01153
01154
01155
01156
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Diff.cpp

sakura_core

CEditView_Diff.cpp

DIFF差分表示 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include "sakura_rc.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"
#include "util/module.h"
#include "util/file.h"
#include "CEditWnd.h"

ソースコードを見る。

マクロ定義

#define SAKURA_DIFF_TEMP_PREFIX _T("sakura_diff_")

説明

DIFF差分表示

作者:
MIK
日付:
2002/05/25 ExecCmd を参考にDIFF実行結果を取り込む処理作成

2005/10/29 maru Diff差分表示処理を分離し、ダイアログあり版・ダイアログなし版の両方からコール

CEditView_Diff.cpp で定義されています。

マクロ定義

#define SAKURA_DIFF_TEMP_PREFIX _T("sakura_diff_")

CEditView_Diff.cpp の 39 行で定義されています。

参照元 CEditView::MakeDiffTmpFile().

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Diff.cpp ソースファイル

sakura_core

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 "sakura_rc.h"
00025 #include "global.h"
00026 #include "CDlgDiff.h"
00027 #include "CEditDoc.h"
00028 #include "CEditView.h"
00029 #include "CDocLine.h"
00030 #include "CDocLineMgr.h"
00031 #include "CWaitCursor.h"
00032 #include "COsVersionInfo.h"
00033 #include "mymessage.h"
00034 #include "debug.h"
00035 #include "util/module.h"
00036 #include "util/file.h"
00037 #include "CEditWnd.h"
00038
00039 #define SAKURA_DIFF_TEMP_PREFIX _T("sakura_diff_")
00040
00059 void CEditView::ViewDiffInfo(
00060     const TCHAR* pszFile1,
00061     const TCHAR* pszFile2,
00062     int         nFlgOpt )
00063 /*
00064     bool    bFlgCase,       //大文字小文字同一視
00065     bool    bFlgBlank,      //空白無視
00066     bool    bFlgWhite,      //空白変更無視
00067     bool    bFlgBLine,      //空行無視
00068     bool    bFlgTabSpc,     //TAB-SPACE変換
00069     bool    bFlgFile12,     //編集中のファイルが旧ファイル
00070 */
00071 {
00072     TCHAR   cmdline[1024];
00073     HANDLE  hStdOutWrite, hStdOutRead;
00074 //  CDlgCancel  cDlgCancel;
00075     CWaitCursor cWaitCursor( m_hWnd );
00076     int     nFlgFile12 = 1;
00077
00078     /* exeのあるフォルダ */
00079     TCHAR   szExeFolder[_MAX_PATH + 1];
00080
00081     GetExedir( cmdline, _T("diff.exe") );
00082     SplitPath_FolderAndFile( cmdline, szExeFolder, NULL );
00083
00084     //  From Here Dec. 28, 2002 MIK
00085     //  diff.exeの存在チェック
00086     if( -1 == ::GetFileAttributes( cmdline ) )
00087     {
00088 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00089             _T( "差分コマンド実行は失敗しました。\n\nDIFF.EXE が見つかりません。" ) );
00090         return;
00091     }
00092
00093     //今あるDIFF差分を消去する。
00094     if( m_pcEditDoc->m_cDocLineMgr.IsDiffUse() )
00095         GetCommander().Command_Diff_Reset();
00096         //m_pcEditDoc->m_cDocLineMgr.ResetAllDiffMark();
00097
00098     PROCESS_INFORMATION pi;
00099     ZeroMemory( &pi, sizeof(pi) );
00100
00101     //子プロセスの標準出力と接続するパイプを作成
00102     SECURITY_ATTRIBUTES sa;
00103     ZeroMemory( &sa, sizeof(sa) );
00104     sa.nLength              = sizeof(sa);
00105     sa.bInheritHandle       = TRUE;
00106     sa.lpSecurityDescriptor = NULL;
00107     hStdOutRead = hStdOutWrite = 0;
00108     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE )
00109     {
00110         //エラー。対策無し
00111         return;
00112     }
00113
00114     //継承不能にする
00115     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
00116                 GetCurrentProcess(), NULL,
00117                 0, FALSE, DUPLICATE_SAME_ACCESS );
00118
00119     //CreateProcessに渡すSTARTUPINFOを作成
00120     STARTUPINFO sui;
00121     ZeroMemory( &sui, sizeof(sui) );
00122     sui.cb          = sizeof(sui);
00123     sui.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
00124     sui.wShowWindow = SW_HIDE;
00125     sui.hStdInput   = GetStdHandle( STD_INPUT_HANDLE );
00126     sui.hStdOutput  = hStdOutWrite;
00127     sui.hStdError   = hStdOutWrite;
00128
00129     //オプションを作成する
00130     TCHAR   szOption[16];   // "-cwbBt"
00131     _tcscpy( szOption, _T("-") );
00132     if( nFlgOpt & 0x0001 ) _tcscat( szOption, _T("i") );    //-i ignore-case         大文字小文字同一視
00133     if( nFlgOpt & 0x0002 ) _tcscat( szOption, _T("w") );    //-w ignore-all-space    空白無視
00134     if( nFlgOpt & 0x0004 ) _tcscat( szOption, _T("b") );    //-b ignore-space-change 空白変更無視
00135     if( nFlgOpt & 0x0008 ) _tcscat( szOption, _T("B") );    //-B ignore-blank-lines  空行無視
00136     if( nFlgOpt & 0x0010 ) _tcscat( szOption, _T("t") );    //-t expand-tabs         TAB-SPACE変換
00137     if( _tcscmp( szOption, _T("-") ) == 0 ) _tcscpy( szOption, _T("") );    //オプションなし
00138     if( nFlgOpt & 0x0020 ) nFlgFile12 = 0;
00139     else                   nFlgFile12 = 1;
00140
00141     //  To Here Dec. 28, 2002 MIK
00142
00143     //OSバージョン取得
00144     {
00145         COsVersionInfo cOsVer;
00146         //コマンドライン文字列作成(MAX:1024)
00147         if (cOsVer.IsWin32NT()){
00148             auto_sprintf(
00149                 cmdline,
00150                 _T("cmd.exe /C \"\"%ts\\%ls\" %ls \"%ts\" \"%ts\"\""),
00151                 szExeFolder,    //sakura.exeパス
00152                 _T("diff.exe"),     //diff.exe
00153                 szOption,       //diffオプション
00154                 ( nFlgFile12 ? pszFile2 : pszFile1 ),
00155                 ( nFlgFile12 ? pszFile1 : pszFile2 )
00156             );
00157         }
00158         else{
00159             auto_sprintf(
00160                 cmdline,
00161                 _T("command.com /C \"%ls\\%ls\" %ls \"%ts\" \"%ts\""),
00162                 szExeFolder,    //sakura.exeパス
00163                 _T("diff.exe"),     //diff.exe
00164                 szOption,       //diffオプション
00165                 ( nFlgFile12 ? pszFile2 : pszFile1 ),
00166                 ( nFlgFile12 ? pszFile1 : pszFile2 )
00167             );
00168         }
00169     }
00170
00171     //コマンドライン実行
00172     if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
00173             CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE )
00174     {
00175 			::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00176                 "差分コマンド実行は失敗しました。\n\n%ls", cmdline );
00177         goto finish;
00178     }
00179
00180     {
00181         DWORD   read_cnt;
00182         DWORD   new_cnt;
00183         char    work[1024];
00184         int     j;
00185         bool    bLoopFlag = true;
00186         bool    bLineHead = true;   //行頭か
00187         bool    bDiffInfo = false;  //DIFF情報か
00188         int     nDiffLen = 0;       //DIFF情報長
00189         char    szDiffData[100];    //DIFF情報
00190         bool    bFirst = true;  //先頭か？  //@@@ 2003.05.31 MIK
00191
00192         //中断ダイアログ表示
00193 //      cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_EXECRUNNING );
00194
00195         //実行結果の取り込み
00196         do {
00197             //処理中のユーザー操作を可能にする
00198 //          if( !::BlockingHook( cDlgCancel.m_hWnd ) )
00199 //          {
00200 //              bDiffInfo = false;
00201 //              break;
00202 //          }
00203
00204             //中断ボタン押下チェック
00205 //          if( cDlgCancel.IsCanceled() )
00206 //          {
00207                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
00208 //              ::TerminateProcess( pi.hProcess, 0 );
00209 //              bDiffInfo = false;
00210 //              break;
00211 //          }
00212
00213             //プロセスが終了していないか確認
00214             // Jul. 04, 2003 genta CPUを100%使い果たすのを防ぐため 200msec休む
00215             // Jan. 23, 2004 genta
00216             // 子プロセスの出力をどんどん受け取らないと子プロセスが
00217             // 停止してしまうため，待ち時間を200msから20msに減らす
00218             if( WaitForSingleObject( pi.hProcess, 20 ) == WAIT_OBJECT_0 )
00219             {
00220                 //終了していればループフラグをFALSEとする
00221                 //ただしループの終了条件は プロセス終了 && パイプが空
00222                 bLoopFlag = FALSE;
00223             }
00224
00225             new_cnt = 0;
00226             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) )
00227             {
00228                 while( new_cnt > 0 )                                                //待機中のものがある
00229                 {
00230                     if( new_cnt >= _countof(work) - 2 )                         //パイプから読み出す量を調整
00231                     {
00232                         new_cnt = _countof(work) - 2;
00233                     }
00234                     ReadFile( hStdOutRead, &work[0], new_cnt, &read_cnt, NULL );    //パイプから読み出し
00235                     if( read_cnt == 0 )
00236                     {
00237                         // Jan. 23, 2004 genta while追加のため制御を変更
00238                         break;
00239                     }
00240
00241                     //@@@ 2003.05.31 MIK
00242                     //  先頭がBinary filesならバイナリファイルのため意味のある差分が取られなかった
00243                     if( bFirst )
00244                     {
00245                         bFirst = false;
00246                         if( strncmp( work, "Binary files ", strlen( "Binary files " ) ) == 0 )
00247                         {
00248 							::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00249                                 "DIFF差分を行おうとしたファイルはバイナリファイルです。" );
00250                             goto finish;
00251                         }
00252                     }
00253
00254                     //読み出した文字列をチェックする
00255                     for( j = 0; j < (int)read_cnt/*-1*/; j++ )
00256                     {
00257                         if( bLineHead )
00258                         {
00259                             if( work[j] != '\n' && work[j] != '\r' )
00260                             {
00261                                 bLineHead = false;
00262
00263                                 //DIFF情報の始まりか？
00264                                 if( work[j] >= '0' && work[j] <= '9' )
00265                                 {
00266                                     bDiffInfo = true;
00267                                     nDiffLen = 0;
00268                                     szDiffData[nDiffLen++] = work[j];
00269                                 }
00270                                 /*
00271                                 else if( work[j] == '<' || work[j] == '>' || work[j] == '-' )
00272                                 {
00273                                     bDiffInfo = false;
00274                                     nDiffLen = 0;
00275                                 }
00276                                 */
00277                             }
00278                         }
00279                         else
00280                         {
00281                             //行末に達したか？
00282                             if( work[j] == '\n' || work[j] == '\r' )
00283                             {
00284                                 //DIFF情報があれば解析する
00285                                 if( bDiffInfo == true && nDiffLen > 0 )
00286                                 {
00287                                     szDiffData[nDiffLen] = '\0';
00288                                     AnalyzeDiffInfo( szDiffData, nFlgFile12 );
00289                                     nDiffLen = 0;
00290                                 }
00291
00292                                 bDiffInfo = false;
00293                                 bLineHead = true;
00294                             }
00295                             else if( bDiffInfo == true )
00296                             {
00297                                 //DIFF情報に追加する
00298                                 szDiffData[nDiffLen++] = work[j];
00299                                 if( nDiffLen >= 99 )
00300                                 {
00301                                     nDiffLen = 0;
00302                                     bDiffInfo = false;
00303                                 }
00304                             }
00305                         }
00306                     }
00307                     // Jan. 23, 2004 genta
00308                     // 子プロセスの出力をどんどん受け取らないと子プロセスが
00309                     // 停止してしまうため，バッファが空になるまでどんどん読み出す．
00310                     new_cnt = 0;
00311                     if( ! PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ){
00312                         break;
00313                     }
00314                     Sleep(0); // Jan. 23, 2004 genta タスクスイッチを促す
00315                 }
00316             }
00317         } while( bLoopFlag || new_cnt > 0 );
00318
00319         //残ったDIFF情報があれば解析する
00320         if( bDiffInfo == true && nDiffLen > 0 )
00321         {
00322             szDiffData[nDiffLen] = '\0';
00323             AnalyzeDiffInfo( szDiffData, nFlgFile12 );
00324         }
00325     }
00326
00327
00328     //DIFF差分が見つからなかったときにメッセージ表示
00329     if( nFlgOpt & 0x0040 )
00330     {
00331         if( false == m_pcEditDoc->m_cDocLineMgr.IsDiffUse() )
00332         {
00333             InfoMessage( m_hWnd, _T("DIFF差分は見つかりませんでした。") );
00334         }
00335     }
00336
00337
00338 finish:
00339     //終了処理
00340     CloseHandle( hStdOutWrite );
00341     CloseHandle( hStdOutRead  );
00342     if( pi.hProcess ) CloseHandle( pi.hProcess );
00343     if( pi.hThread  ) CloseHandle( pi.hThread  );
00344
00345     //分割したビューも更新
00346     for( int v = 0; v < 4; ++v )
00347         if( m_pcEditWnd->m_nActivePaneIndex != v )
00348             m_pcEditWnd->m_pcEditViewArr[v]->Redraw();
00349     Redraw();
00350
00351     return;
00352 }
00353
00362 void CEditView::AnalyzeDiffInfo(
00363     const char  *pszDiffInfo,
00364     int     nFlgFile12 )
00365 {
00366     /*
00367      * 99a99        旧ファイル99行の次行に新ファイル99行が追加された。
00368      * 99a99,99     旧ファイル99行の次行に新ファイル99〜99行が追加された。
00369      * 99c99        旧ファイル99行が新ファイル99行に変更された。
00370      * 99,99c99,99  旧ファイル99〜99行が新ファイル99〜99行に変更された。
00371      * 99d99        旧ファイル99行が新ファイル99行の次行から削除された。
00372      * 99,99d99     旧ファイル99〜99行が新ファイル99行の次行から削除された。
00373      * s1,e1 mode s2,e2
00374      * 先頭の場合0の次行となることもある
00375      */
00376     const char  *q;
00377     int     s1, e1, s2, e2;
00378     char    mode;
00379
00380     //前半ファイルの開始行
00381     s1 = 0;
00382     for( q = pszDiffInfo; *q; q++ )
00383     {
00384         if( *q == ',' ) break;
00385         if( *q == 'a' || *q == 'c' || *q == 'd' ) break;
00386         //行番号を抽出
00387         if( *q >= '0' && *q <= '9' ) s1 = s1 * 10 + (*q - '0');
00388         else return;
00389     }
00390     if( ! *q ) return;
00391
00392     //前半ファイルの終了行
00393     if( *q != ',' )
00394     {
00395         //開始・終了行番号は同じ
00396         e1 = s1;
00397     }
00398     else
00399     {
00400         e1 = 0;
00401         for( q++; *q; q++ )
00402         {
00403             if( *q == 'a' || *q == 'c' || *q == 'd' ) break;
00404             //行番号を抽出
00405             if( *q >= '0' && *q <= '9' ) e1 = e1 * 10 + (*q - '0');
00406             else return;
00407         }
00408     }
00409     if( ! *q ) return;
00410
00411     //DIFFモードを取得
00412     mode = *q;
00413
00414     //後半ファイルの開始行
00415     s2 = 0;
00416     for( q++; *q; q++ )
00417     {
00418         if( *q == ',' ) break;
00419         //行番号を抽出
00420         if( *q >= '0' && *q <= '9' ) s2 = s2 * 10 + (*q - '0');
00421         else return;
00422     }
00423
00424     //後半ファイルの終了行
00425     if( *q != ',' )
00426     {
00427         //開始・終了行番号は同じ
00428         e2 = s2;
00429     }
00430     else
00431     {
00432         e2 = 0;
00433         for( q++; *q; q++ )
00434         {
00435             //行番号を抽出
00436             if( *q >= '0' && *q <= '9' ) e2 = e2 * 10 + (*q - '0');
00437             else return;
00438         }
00439     }
00440
00441     //行末に達してなければエラー
00442     if( *q ) return;
00443
00444     //抽出したDIFF情報から行番号に差分マークを付ける
00445     if( 0 == nFlgFile12 )   //編集中ファイルは旧ファイル
00446     {
00447         if     ( mode == 'a' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_DELETE, CLogicInt(s1    ), CLogicInt(e1    ) );
00448         else if( mode == 'c' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_CHANGE, CLogicInt(s1 - 1), CLogicInt(e1 - 1) );
00449         else if( mode == 'd' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_APPEND, CLogicInt(s1 - 1), CLogicInt(e1 - 1) );
00450     }
00451     else    //編集中ファイルは新ファイル
00452     {
00453         if     ( mode == 'a' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_APPEND, CLogicInt(s2 - 1), CLogicInt(e2 - 1) );
00454         else if( mode == 'c' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_CHANGE, CLogicInt(s2 - 1), CLogicInt(e2 - 1) );
00455         else if( mode == 'd' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_DELETE, CLogicInt(s2    ), CLogicInt(e2    ) );
00456     }
00457
00458     return;
00459 }
00460
00467 BOOL CEditView::MakeDiffTmpFile( TCHAR* filename, HWND hWnd )
00468 {
00469     const wchar_t*  pLineData;
00470     CLogicInt       nLineLen;
00471     CLogicInt       y;
00472     FILE    *fp;
00473
00474     TCHAR* pszTmpName = _ttempnam( NULL, SAKURA_DIFF_TEMP_PREFIX );
00475     if( NULL == pszTmpName )
00476     {
00477 		::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00478             "差分コマンド実行は失敗しました。" );
00479         return FALSE;
00480     }
00481
00482     _tcscpy( filename, pszTmpName );
00483     free( pszTmpName );
00484
00485     //自分か？
00486     if( NULL == hWnd )
00487     {
00488         CEOL    cEol( m_pcEditDoc->m_cSaveLineCode );
00489         FILETIME    filetime;
00490         return RESULT_FAILURE != m_pcEditDoc->m_cDocLineMgr.WriteFile(
00491             filename,
00492             m_pcEditDoc->GetSplitterHwnd(),
00493             NULL,
00494             m_pcEditDoc->m_nCharCode,
00495             &filetime,
00496             cEol,
00497             m_pcEditDoc->m_bBomExist    //  Jul. 26, 2003 ryoji BOM
00498         );
00499     }
00500
00501     fp = _tfopen( filename, _T("wb") );
00502     if( NULL == fp )
00503     {
00504 		::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00505             "差分コマンド実行は失敗しました。\n\n一時ファイルを作成できません。" );
00506         return FALSE;
00507     }
00508
00509     y = CLogicInt(0);
00510
00511     // 行(改行単位)データの要求
00512     if( hWnd )
00513     {
00514         pLineData = m_pShareData->GetWorkBuffer<EDIT_CHAR>();
00515         nLineLen = CLogicInt(::SendMessageAny( hWnd, MYWM_GETLINEDATA, y, 0 ));
00516     }
00517     else
00518     {
00519         pLineData = m_pcEditDoc->m_cDocLineMgr.GetLineStr( y, &nLineLen );
00520     }
00521
00522     while( 1 )
00523     {
00524         if( 0 == nLineLen || NULL == pLineData ) break;
00525
00526         if( hWnd && nLineLen > (int)m_pShareData->GetWorkBufferCount<EDIT_CHAR>() )
00527         {
00528             // 一時バッファを超えている
00529             fclose( fp );
00530 			::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00531                 "差分コマンド実行は失敗しました。\n\n行が長すぎます。" );
00532             _tunlink( filename );       //関数の実行に失敗したとき、一時ファイルの削除は関数内で行う。2005.10.29
00533             return FALSE;
00534         }
00535
00536         if( 1 != fwrite( pLineData, nLineLen, 1, fp ) )
00537         {
00538             fclose( fp );
00539 			::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00540                 "差分コマンド実行は失敗しました。\n\n一時ファイルを作成できません。" );
00541             _tunlink( filename );       //関数の実行に失敗したとき、一時ファイルの削除は関数内で行う。2005.10.29
00542             return FALSE;
00543         }
00544
00545         y++;
00546
00547         // 行(改行単位)データの要求
00548         if( hWnd ) nLineLen = CLogicInt(::SendMessageAny( hWnd, MYWM_GETLINEDATA, y, 0 ));
00549         else       pLineData = m_pcEditDoc->m_cDocLineMgr.GetLineStr( y, &nLineLen );
00550     }
00551
00552     fclose( fp );
00553
00554     return TRUE;
00555 }
00556
00557
00558 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New.cpp

sakura_core

CEditView_New.cpp

CEditViewクラス [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.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 "CRegexKeyword.h"
#include "my_icmp.h"
#include "Clayout.h"
#include "CDocLine.h"
#include "CTypeSupport.h"
#include "parse/CWordParse.h"
#include "util/string_ex2.h"

ソースコードを見る。

マクロ定義

#define | SetNPos(N) nPos=(N)
#define | GetNPos() (nPos+CLogicInt(0))
#define | SetNBgn(N) nBgn=(N)
#define | GetNBgn() (nBgn+0)

説明

CEditViewクラス

作者:
Norio Nakatani
日付:
1998/12/08 作成

CEditView_New.cpp で定義されています。

マクロ定義

#define GetNBgn ( ) (nBgn+0)

参照元 CEditView::DispLineNew().

#define GetNPos ( ) (nPos+CLogicInt(0))

参照元 CEditView::DispLineNew().

#define SetNBgn ( N ) nBgn=(N)

参照元 CEditView::DispLineNew().

#define SetNPos ( N ) nPos=(N)

参照元 CEditView::DispLineNew().

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New.cpp ソースファイル

sakura_core

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 "CEditView.h"
00025 #include "debug.h"
00026 #include "funccode.h"
00027 #include "CRunningTimer.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 "CRegexKeyword.h"  //@@@ 2001.11.17 add MIK
00035 #include "my_icmp.h"    //@@@ 2002.01.13 add
00036 #include "Clayout.h"// 2002/2/10 aroka
00037 #include "CDocLine.h"// 2002/2/10 aroka
00038 #include "CTypeSupport.h"
00039 #include "parse/CWordParse.h"
00040 #include "util/string_ex2.h"
00041
00042 // 通常の描画処理 new
00043 void CEditView::OnPaint( HDC hdc, PAINTSTRUCT *pPs, BOOL bUseMemoryDC )
00044 {
00045     MY_RUNNINGTIMER( cRunningTimer, "CEditView::OnPaint" );
00046
00047     // 2004.01.28 Moca デスクトップに作画しないように
00048     if( NULL == hdc )return;
00049
00050     if( !GetDrawSwitch() )return;
00051
00052     // キャレットを隠す
00053     GetCaret().HideCaret_( m_hWnd ); // 2002/07/22 novice
00054
00055     //  May 9, 2000 genta
00056     Types   *TypeDataPtr = &(m_pcEditDoc->GetDocumentAttribute());
00057
00058     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00059     const CLayoutInt nWrapKeta = m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00060
00061     RECT            rc;
00062     int             nLineHeight = GetTextMetrics().GetHankakuDy();
00063     int             nCharDx = GetTextMetrics().GetHankakuDx();
00064     const CLayout*  pcLayout;
00065
00066     //サポート
00067     CTypeSupport cTextType(this,COLORIDX_TEXT);
00068
00069 //@@@ 2001.11.17 add start MIK
00070     //変更があればタイプ設定を行う。
00071     if( TypeDataPtr->m_bUseRegexKeyword || m_cRegexKeyword->m_bUseRegexKeyword ) //OFFなのに前回のデータが残ってる
00072     {
00073         //タイプ別設定をする。設定済みかどうかは呼び先でチェックする。
00074         m_cRegexKeyword->RegexKeySetTypes(TypeDataPtr);
00075     }
00076 //@@@ 2001.11.17 add end MIK
00077
00078     // メモリＤＣを利用した再描画の場合は描画先のＤＣを切り替える
00079     HDC hdcOld;
00080     bUseMemoryDC = FALSE;
00081     if( bUseMemoryDC ){
00082         hdcOld = hdc;
00083         hdc = m_hdcCompatDC;
00084     }
00085
00086     /* 03/02/18 対括弧の強調表示(消去) ai */
00087     DrawBracketPair( false );
00088
00089     /* ルーラーとテキストの間の余白 */
00090     //@@@ 2002.01.03 YAZAKI 余白が0のときは無駄でした。
00091     if ( GetTextArea().GetTopYohaku() ){
00092         rc.left   = 0;
00093         rc.top    = GetTextArea().GetRulerHeight();
00094         rc.right  = GetTextArea().GetAreaRight();
00095         rc.bottom = GetTextArea().GetAreaTop();
00096
00097         cTextType.FillBack(hdc,rc);
00098     }
00099
00100     /* 行番号の表示 */
00101     //  From Here Sep. 7, 2001 genta
00102     //  Sep. 23, 2002 genta 行番号非表示でも行番号色の帯があるので隙間を埋める
00103     if( GetTextArea().GetTopYohaku() ){
00104         rc.left   = 0;
00105         rc.top    = GetTextArea().GetRulerHeight();
00106         rc.right  = GetTextArea().GetAreaLeft() - m_pShareData->m_Common.m_sWindow.m_nLineNumRightSpace; // Sep. 23 ,2002 genta 余白はテキスト色のまま残す
00107         rc.bottom = GetTextArea().GetAreaTop();
00108         HBRUSH hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_GYOU].m_colBACK );
00109         ::FillRect( hdc, &rc, hBrush );
00110         ::DeleteObject( hBrush );
00111     }
00112     //  To Here Sep. 7, 2001 genta
00113
00114     ::SetBkMode( hdc, TRANSPARENT );
00115     m_hFontOld = NULL;
00116
00117     cTextType.SetFont(hdc);
00118     cTextType.SetColors(hdc);
00119
00120
00121     int nTop = pPs->rcPaint.top;
00122     BOOL bEOF = FALSE;
00123
00124
00125
00126     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00127     //           描画開始行 -> nLayoutLine             //
00128     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00129     CLayoutInt nLayoutLine;
00130     if( 0 > nTop - GetTextArea().GetAreaTop() ){
00131         nLayoutLine = GetTextArea().GetViewTopLine(); //ビュー上部から描画
00132     }else{
00133         nLayoutLine = GetTextArea().GetViewTopLine() + CLayoutInt( ( nTop - GetTextArea().GetAreaTop() ) / nLineHeight ); //ビュー途中から描画
00134     }
00135
00136     int nMaxRollBackLineNum = 260 / (Int)nWrapKeta + 1;
00137     int nRollBackLineNum = 0;
00138     pcLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( nLayoutLine );
00139     while( nRollBackLineNum < nMaxRollBackLineNum ){
00140         pcLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( nLayoutLine );
00141         if( NULL == pcLayout ){
00142             break;
00143         }
00144         if( 0 == pcLayout->GetLogicOffset() ){  /* 対応する論理行の先頭からのオフセット */
00145             break;
00146         }
00147         nLayoutLine--;
00148         nRollBackLineNum++;
00149     }
00150
00151
00152     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00153     //          描画終了行 -> nLogicLineTo            //
00154     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00155     CLayoutInt nLogicLineTo = GetTextArea().GetViewTopLine() + CLayoutInt( ( pPs->rcPaint.bottom - GetTextArea().GetAreaTop() ) / nLineHeight );
00156
00157
00158     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00159     //                         描画座標                            //
00160     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00161     DispPos sPos(GetTextMetrics().GetHankakuDx(),GetTextMetrics().GetHankakuDy());
00162     sPos.InitDrawPos(CMyPoint(
00163         GetTextArea().GetAreaLeft() - (Int)GetTextArea().GetViewLeftCol() * nCharDx,
00164         GetTextArea().GetAreaTop() + (Int)( nLayoutLine - GetTextArea().GetViewTopLine() ) * nLineHeight
00165     ));
00166     sPos.SetLayoutLineRef(nLayoutLine);
00167
00168
00169     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00170     //                      全部の行を描画                         //
00171     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00172
00173     //必要な行を描画する
00174     bool bSelected = GetSelectionInfo().IsTextSelected();
00175     while(sPos.GetLayoutLineRef() <= nLogicLineTo)
00176     {
00177         pcLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( sPos.GetLayoutLineRef() );
00178
00179         sPos.ResetDrawCol();
00180
00181         bool bDispResult = DispLineNew(
00182             hdc,
00183             pcLayout,
00184             &sPos,
00185             nLogicLineTo,
00186             bSelected
00187         );
00188
00189         if(bDispResult){
00190             pPs->rcPaint.bottom += nLineHeight; // EOF再描画対応
00191             bEOF = TRUE;
00192             break;
00193         }
00194
00195         if( NULL == pcLayout ){
00196             bEOF = TRUE;
00197             break;
00198         }
00199     }
00200     if( NULL != m_hFontOld ){
00201         ::SelectObject( hdc, m_hFontOld );
00202         m_hFontOld = NULL;
00203     }
00204
00205
00206     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00207     //              テキストの無い部分の塗りつぶし                 //
00208     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00209     if( IsBkBitmap() ){
00210     }else{
00211         /* テキストのない部分を背景色で塗りつぶす */
00212         if( sPos.GetDrawPos().y < pPs->rcPaint.bottom ){
00213             RECT rcBack;
00214             rcBack.left   = pPs->rcPaint.left;
00215             rcBack.right  = pPs->rcPaint.right;
00216             rcBack.top    = sPos.GetDrawPos().y;
00217             rcBack.bottom = pPs->rcPaint.bottom;
00218
00219             cTextType.FillBack(hdc,rcBack);
00220
00221             // 2006.04.29 行部分は行ごとに作画し、ここでは縦線の残りを作画
00222             GetTextDrawer().DispVerticalLines( hdc, sPos.GetDrawPos().y, pPs->rcPaint.bottom, CLayoutInt(0), CLayoutInt(-1) );
00223         }
00224     }
00225
00226     cTextType.RewindColors(hdc);
00227     cTextType.RewindFont(hdc);
00228
00229
00230     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00231     //                折り返し位置の表示 (縦線)                    //
00232     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00233     CTypeSupport cWrapType(this,COLORIDX_WRAP);
00234     if( cWrapType.IsDisp() ){
00235         int nXPos = GetTextArea().GetAreaLeft() + (Int)( nWrapKeta - GetTextArea().GetViewLeftCol() ) * nCharDx;
00236         //  2005.11.08 Moca 作画条件変更
00237         if( GetTextArea().GetAreaLeft() < nXPos && nXPos < GetTextArea().GetAreaRight() ){
00239             cWrapType.SetSolidPen(hdc,0);
00240
00241             ::MoveToEx( hdc, nXPos, GetTextArea().GetAreaTop(), NULL );
00242             ::LineTo( hdc, nXPos, GetTextArea().GetAreaBottom() );
00243
00244             cWrapType.RewindPen(hdc);
00245         }
00246     }
00247
00248
00249     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00250     //                       ルーラー描画                          //
00251     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00252     if ( pPs->rcPaint.top < GetTextArea().GetRulerHeight() ) { // ルーラーが再描画範囲にあるときのみ再描画する 2002.02.25 Add By KK
00253         GetRuler().SetRedrawFlag(); //2002.02.25 Add By KK ルーラー全体を描画。
00254         GetRuler().DispRuler( hdc );
00255     }
00256
00257     if ( m_pcEditWnd->m_nActivePaneIndex == m_nMyIndex ){
00258         /* アクティブペインは、アンダーライン描画 */
00259         GetCaret().m_cUnderLine.CaretUnderLineON( TRUE );
00260     }
00261
00262
00263     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00264     //                     その他後始末など                        //
00265     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00266     /* メモリＤＣを利用した再描画の場合はメモリＤＣに描画した内容を画面へコピーする */
00267     if( bUseMemoryDC ){
00268         ::BitBlt(
00269             hdcOld,
00270             pPs->rcPaint.left,
00271             pPs->rcPaint.top,
00272             pPs->rcPaint.right - pPs->rcPaint.left,
00273             pPs->rcPaint.bottom - pPs->rcPaint.top,
00274             hdc,
00275             pPs->rcPaint.left,
00276             pPs->rcPaint.top,
00277             SRCCOPY
00278         );
00279     }
00280
00281     /* 03/02/18 対括弧の強調表示(描画) ai */
00282     DrawBracketPair( true );
00283
00284     /* キャレットを現在位置に表示します */
00285     GetCaret().ShowCaret_( m_hWnd ); // 2002/07/22 novice
00286     return;
00287 }
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297 /*
00298 2002/03/13 novice
00299 @par nCOMMENTMODE
00300 関数内部で状態遷移のために使われる変数nCOMMENTMODEと状態の関係。
00301  - COLORIDX_TEXT     : テキスト
00302  - COLORIDX_COMMENT  : 行コメント
00303  - COLORIDX_BLOCK1   : ブロックコメント1
00304  - COLORIDX_SSTRING  : シングルコーテーション
00305  - COLORIDX_WSTRING  : ダブルコーテーション
00306  - COLORIDX_KEYWORD1 : 強調キーワード1
00307  - COLORIDX_CTRLCODE : コントロールコード
00308  - COLORIDX_DIGIT    : 半角数値
00309  - COLORIDX_BLOCK2   : ブロックコメント2
00310  - COLORIDX_KEYWORD2 : 強調キーワード2
00311  - COLORIDX_URL      : URL
00312  - COLORIDX_SEARCH   : 検索
00313  - 1000: 正規表現キーワード
00314     色指定SetCurrentColorを呼ぶときにCOLORIDX_*値を加算するので、
00315     1000〜COLORIDX_LASTまでは正規表現で使用する。
00316 */
00317
00318 //@@@ 2001.02.17 MIK
00319 //@@@ 2001.12.21 YAZAKI 改行記号の描きかたを変更
00320 //@@@ 2007.08.31 kobake 引数 bDispBkBitmap を削除
00327 bool CEditView::DispLineNew(
00328     HDC             hdc,
00329     const CLayout*  pcLayout,
00330     DispPos*        pDispPos,
00331     CLayoutInt      nLineTo,
00332     bool            bSelected
00333 )
00334 {
00335     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DispLineNew" );
00336
00337     //DispPosを保存しておく
00338     DispPos sDispPosBegin = *pDispPos;
00339
00340     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00341     const CLayoutInt nWrapKeta = m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00342
00343     int     nCharChars_2;
00344     EColorIndexType     nCOMMENTMODE;
00345     EColorIndexType     nCOMMENTMODE_OLD;
00346     int     nCOMMENTEND;
00347     int     nCOMMENTEND_OLD;
00348
00349     bool    bEOF = false;
00350     int     i, j;
00351     int     nIdx;
00352     int     nUrlLen;
00353     int     nColorIdx;
00354     bool    bKeyWordTop = true; //  Keyword Top
00355
00356     //サイズ
00357     Types* TypeDataPtr = &m_pcEditDoc->GetDocumentAttribute();
00358     int nLineHeight = GetTextMetrics().GetHankakuDy();  //行の縦幅？
00359     int nCharDx  = GetTextMetrics().GetHankakuDx();  //半角
00360
00361     bool bSearchStringMode = false; //検索ヒットフラグ？これで色分けを判定する
00362     BOOL bSearchFlg        = TRUE;  //？ 2002.02.08 hor
00363     CLogicInt  nSearchStart      = CLogicInt(-1);    //？ 2002.02.08 hor
00364     CLogicInt  nSearchEnd        = CLogicInt(-1);    //？ 2002.02.08 hor
00365
00366     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00367     //          論理行データの取得 -> pLine, pLineLen              //
00368     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00369     const wchar_t*  pLine;
00370     CLogicInt       nLineLen;
00371     const CLayout*  pcLayout2; //ワーク用CLayoutポインタ
00372     if( NULL != pcLayout ){
00373         // 2002/2/10 aroka CMemory変更
00374         nLineLen = pcLayout->m_pCDocLine->m_cLine.GetStringLength() - pcLayout->GetLogicOffset();
00375         pLine    = pcLayout->m_pCDocLine->m_cLine.GetStringPtr()    + pcLayout->GetLogicOffset();
00376
00377         // タイプ
00378         // 0=通常
00379         // 1=行コメント
00380         // 2=ブロックコメント
00381         // 3=シングルクォーテーション文字列
00382         // 4=ダブルクォーテーション文字列
00383         nCOMMENTMODE = pcLayout->GetColorTypePrev();
00384         nCOMMENTEND = 0;
00385         pcLayout2 = pcLayout;
00386     }
00387     else{
00388         pLine = NULL;
00389         nLineLen = CLogicInt(0);
00390         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00391         nCOMMENTEND = 0;
00392
00393         pcLayout2 = NULL;
00394     }
00395
00396     /* 現在の色を指定 */
00397     SetCurrentColor( hdc, nCOMMENTMODE );
00398
00399     int nLineBgn   = 0; //？
00400 //  int nX         = 0; //テキストX位置
00401     CLogicInt nCharChars = CLogicInt(0); //処理した文字数
00402
00403     //処理する文字位置
00404     CLogicInt nPos = CLogicInt(0);
00405     #define SetNPos(N) nPos=(N)
00406     #define GetNPos() (nPos+CLogicInt(0))
00407
00408     //通常テキスト開始位置 (ほぼ固定)
00409     int nBgn = 0;
00410     #define SetNBgn(N) nBgn=(N)
00411     #define GetNBgn() (nBgn+0)
00412
00413     //サポート
00414     CTypeSupport cTextType(this,COLORIDX_TEXT);
00415     CTypeSupport cSearchType(this,COLORIDX_SEARCH);
00416
00417     if( NULL != pLine ){
00418
00419         //@@@ 2001.11.17 add start MIK
00420         if( TypeDataPtr->m_bUseRegexKeyword )
00421         {
00422             m_cRegexKeyword->RegexKeyLineStart();
00423         }
00424         //@@@ 2001.11.17 add end MIK
00425
00426         pDispPos->ForwardDrawLine(-1);
00427         pDispPos->ForwardLayoutLineRef(-1);
00428
00429         while( GetNPos() < nLineLen ){
00430             pDispPos->ForwardDrawLine(1);
00431             pDispPos->ForwardLayoutLineRef(1);
00432             if( GetTextArea().GetBottomLine() < pDispPos->GetLayoutLineRef() ){
00433                 pDispPos->SetLayoutLineRef(nLineTo + CLayoutInt(1));
00434                 goto end_of_func;
00435             }
00436             if( nLineTo < pDispPos->GetLayoutLineRef() ){
00437                 goto end_of_func;
00438             }
00439
00440             pcLayout2 = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( pDispPos->GetLayoutLineRef() );
00441
00442             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00443             //                        行番号描画                           //
00444             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00445             if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00446                 // 行番号表示
00447                 GetTextDrawer().DispLineNumber( hdc, pcLayout2, (Int)pDispPos->GetLayoutLineRef(), pDispPos->GetDrawPos().y );
00448             }
00449
00450
00451             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00452             //                       本文描画開始                          //
00453             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00454             SetNBgn(GetNPos());
00455             nLineBgn = GetNBgn();
00456             pDispPos->ResetDrawCol();
00457
00458
00459             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00460             //                 行頭(インデント)背景描画                    //
00461             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00462             if(pcLayout2 && pcLayout2->GetIndent()!=0)
00463             {
00464                 RECT rcClip;
00465                 if(GetTextArea().GenerateClipRect(&rcClip,*pDispPos,(Int)pcLayout2->GetIndent())){
00466                     cTextType.FillBack(hdc,rcClip);
00467                 }
00468                 //描画位置進める
00469                 pDispPos->ForwardDrawCol((Int)pcLayout2->GetIndent());
00470             }
00471
00472
00473             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00474             //                 通常文字列以外描画ループ                    //
00475             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00476             //行終端または折り返しに達するまでループ
00477             while( GetNPos() - nLineBgn < pcLayout2->GetLength() ){
00478                 /* 検索文字列の色分け */
00479                 /* 検索文字列のマーク */
00480                 if( m_bCurSrchKeyMark && cSearchType.IsDisp() ){
00481 searchnext:;
00482                     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00483                     //        検索ヒットフラグ設定 -> bSearchStringMode            //
00484                     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00485
00486                     // 2002.02.08 hor 正規表現の検索文字列マークを少し高速化
00487                     if(!bSearchStringMode && (!m_sCurSearchOption.bRegularExp || (bSearchFlg && nSearchStart < GetNPos()))){
00488                         bSearchFlg=IsSearchString( pLine, nLineLen, GetNPos(), &nSearchStart, &nSearchEnd );
00489                     }
00490                     if( !bSearchStringMode && bSearchFlg && nSearchStart==GetNPos()){
00491                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00492                             /* テキスト表示 */
00493                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00494                         }
00495                         SetNBgn(GetNPos());
00496                         bSearchStringMode = true;
00497
00498                         // 現在の色を指定
00499                         SetCurrentColor( hdc, COLORIDX_SEARCH ); // 2002/03/13 novice
00500                     }
00501                     else if( bSearchStringMode && nSearchEnd <= GetNPos() ){ //+ == では行頭文字の場合、nSearchEndも０であるために文字色の解除ができないバグを修正 2003.05.03 かろと
00502                         // 検索した文字列の終わりまできたら、文字色を標準に戻す処理
00503                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00504                             // テキスト表示
00505                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00506                         }
00507                         SetNBgn(GetNPos());
00508                         /* 現在の色を指定 */
00509                         SetCurrentColor( hdc, nCOMMENTMODE );
00510                         bSearchStringMode = false;
00511                         goto searchnext;
00512                     }
00513
00514
00515                 }
00516
00517                 if( GetNPos() >= nLineLen - pcLayout2->m_cEol.GetLen() ){
00518                     if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00519                         /* テキスト表示 */
00520                         GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00521                         SetNBgn(GetNPos() + 1);
00522
00523                         // 行末背景描画
00524                         RECT rcClip;
00525                         if(GetTextArea().GenerateClipRectRight(&rcClip,*pDispPos)){
00526                             cTextType.FillBack(hdc,rcClip);
00527                         }
00528
00529                         // 改行記号の表示
00530                         GetTextDrawer().DispEOL(hdc,pDispPos,pcLayout2->m_cEol,bSearchStringMode);
00531
00532                         // 2006.04.29 Moca 選択処理のため縦線処理を追加
00533                         GetTextDrawer().DispVerticalLines( hdc, pDispPos->GetDrawPos().y, pDispPos->GetDrawPos().y + nLineHeight, CLayoutInt(0), CLayoutInt(-1) );
00534                         if( bSelected ){
00535                             /* テキスト反転 */
00536                             DispTextSelected(
00537                                 hdc,
00538                                 pDispPos->GetLayoutLineRef(),
00539                                 CMyPoint(sDispPosBegin.GetDrawPos().x, pDispPos->GetDrawPos().y),
00540                                 pDispPos->GetDrawCol()
00541                             );
00542                         }
00543                     }
00544
00545                     goto end_of_line;
00546                 }
00547 SEARCH_START:;
00548                 int     nMatchLen;
00549                 int     nMatchColor;
00550                 switch( nCOMMENTMODE ){
00551                 case COLORIDX_TEXT: // 2002/03/13 novice
00552 //@@@ 2001.11.17 add start MIK
00553                     //正規表現キーワード
00554                     if( TypeDataPtr->m_bUseRegexKeyword
00555                      && m_cRegexKeyword->RegexIsKeyword( pLine, GetNPos(), nLineLen, &nMatchLen, &nMatchColor )
00556                     ){
00557                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() )
00558                         {
00559                             /* テキスト表示 */
00560                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00561                         }
00562                         /* 現在の色を指定 */
00563                         SetNBgn(GetNPos());
00564                         nCOMMENTMODE = MakeColorIndexType_RegularExpression(nMatchColor);   /* 色指定 */ //@@@ 2002.01.04 upd
00565                         nCOMMENTEND = GetNPos() + nMatchLen;  /* キーワード文字列の終端をセットする */
00566                         if( !bSearchStringMode ){
00567                             SetCurrentColor( hdc, nCOMMENTMODE );   //@@@ 2002.01.04
00568                         }
00569                     }
00570 //@@@ 2001.11.17 add end MIK
00571                     //  Mar. 15, 2000 genta
00572                     else if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00573                         TypeDataPtr->m_cLineComment.Match( GetNPos(), nLineLen, pLine ) //@@@ 2002.09.22 YAZAKI
00574                     ){
00575                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00576                             /* テキスト表示 */
00577                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00578                         }
00579                         SetNBgn(GetNPos());
00580
00581                         nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
00582
00583                         /* コメントを表示する */
00584                         /* 現在の色を指定 */
00585                         if( !bSearchStringMode ){
00586                             SetCurrentColor( hdc, nCOMMENTMODE );
00587                         }
00588                     }
00589                     //  Mar. 15, 2000 genta
00590                     else if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00591                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 0, GetNPos(), nLineLen, pLine ) //@@@ 2002.09.22 YAZAKI
00592                     ){
00593                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00594                             /* テキスト表示 */
00595                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00596                         }
00597                         SetNBgn(GetNPos());
00598                         nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
00599
00600                         /* 現在の色を指定 */
00601                         if( !bSearchStringMode ){
00602                             SetCurrentColor( hdc, nCOMMENTMODE );
00603                         }
00604
00605                         /* この物理行にブロックコメントの終端があるか */
00606                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, GetNPos() + (int)wcslen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(0) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
00607
00608                     }
00609                     else if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00610                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 1, GetNPos(), nLineLen, pLine ) //@@@ 2002.09.22 YAZAKI
00611                     ){
00612                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00613                             /* テキスト表示 */
00614                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00615                         }
00616                         SetNBgn(GetNPos());
00617                         nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
00618
00619                         /* 現在の色を指定 */
00620                         if( !bSearchStringMode ){
00621                             SetCurrentColor( hdc, nCOMMENTMODE );
00622                         }
00623
00624                         /* この物理行にブロックコメントの終端があるか */
00625                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, GetNPos() + (int)wcslen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(1) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
00626                     }
00627                     else if( pLine[GetNPos()] == L'\'' &&
00628                         TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp  /* シングルクォーテーション文字列を表示する */
00629                     ){
00630                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00631                             /* テキスト表示 */
00632                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00633                         }
00634                         SetNBgn(GetNPos());
00635                         nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
00636
00637 //                      if( TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp ){    /* シングルクォーテーション文字列を表示する */
00638                             /* 現在の色を指定 */
00639                             if( !bSearchStringMode ){
00640                                 SetCurrentColor( hdc, nCOMMENTMODE );
00641                             }
00642 //                      }
00643                         /* シングルクォーテーション文字列の終端があるか */
00644                         int i;
00645                         nCOMMENTEND = nLineLen;
00646                         for( i = GetNPos() + 1; i <= nLineLen - 1; ++i ){
00647                             // 2005-09-02 D.S.Koba GetSizeOfChar
00648                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00649                             if( 0 == nCharChars_2 ){
00650                                 nCharChars_2 = 1;
00651                             }
00652                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00653                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
00654                                     ++i;
00655                                 }else
00656                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
00657                                     nCOMMENTEND = i + 1;
00658                                     break;
00659                                 }
00660                             }else
00661                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00662                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
00663                                     if( i + 1 < nLineLen && pLine[i + 1] == L'\'' ){
00664                                         ++i;
00665                                     }else{
00666                                         nCOMMENTEND = i + 1;
00667                                         break;
00668                                     }
00669                                 }
00670                             }
00671                             if( 2 == nCharChars_2 ){
00672                                 ++i;
00673                             }
00674                         }
00675                     }
00676                     else if( pLine[GetNPos()] == L'"' &&
00677                         TypeDataPtr->m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp   /* ダブルクォーテーション文字列を表示する */
00678                     ){
00679                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00680                             /* テキスト表示 */
00681                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00682                         }
00683                         SetNBgn(GetNPos());
00684                         nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
00685                         /* 現在の色を指定 */
00686                         if( !bSearchStringMode ){
00687                             SetCurrentColor( hdc, nCOMMENTMODE );
00688                         }
00689                         /* ダブルクォーテーション文字列の終端があるか */
00690                         int i;
00691                         nCOMMENTEND = nLineLen;
00692                         for( i = GetNPos() + 1; i <= nLineLen - 1; ++i ){
00693                             // 2005-09-02 D.S.Koba GetSizeOfChar
00694                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00695                             if( 0 == nCharChars_2 ){
00696                                 nCharChars_2 = 1;
00697                             }
00698                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00699                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
00700                                     ++i;
00701                                 }else
00702                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
00703                                     nCOMMENTEND = i + 1;
00704                                     break;
00705                                 }
00706                             }else
00707                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00708                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
00709                                     if( i + 1 < nLineLen && pLine[i + 1] == L'"' ){
00710                                         ++i;
00711                                     }else{
00712                                         nCOMMENTEND = i + 1;
00713                                         break;
00714                                     }
00715                                 }
00716                             }
00717                             if( 2 == nCharChars_2 ){
00718                                 ++i;
00719                             }
00720                         }
00721                     }
00722                     else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_URL].m_bDisp           /* URLを表示する */
00723                      && IsURL( &pLine[GetNPos()], nLineLen - GetNPos(), &nUrlLen )  /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
00724                     ){
00725                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00726                             /* テキスト表示 */
00727                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00728                         }
00729                         SetNBgn(GetNPos());
00730                         nCOMMENTMODE = COLORIDX_URL;    /* URLモード */ // 2002/03/13 novice
00731                         nCOMMENTEND = GetNPos() + nUrlLen;
00732                         /* 現在の色を指定 */
00733                         if( !bSearchStringMode ){
00734                             SetCurrentColor( hdc, nCOMMENTMODE );
00735                         }
00736 //@@@ 2001.02.17 Start by MIK: 半角数値を強調表示
00737 //#ifdef COMPILE_COLOR_DIGIT
00738                     }
00739                     else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp
00740                         && (i = IsNumber( pLine, GetNPos(), nLineLen )) > 0 )       /* 半角数字を表示する */
00741                     {
00742                         /* キーワード文字列の終端をセットする */
00743                         i = GetNPos() + i;
00744                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() )
00745                         {
00746                             /* テキスト表示 */
00747                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00748                         }
00749                         /* 現在の色を指定 */
00750                         SetNBgn(GetNPos());
00751                         nCOMMENTMODE = COLORIDX_DIGIT;  /* 半角数値である */ // 2002/03/13 novice
00752                         nCOMMENTEND = i;
00753                         if( !bSearchStringMode ){
00754                             SetCurrentColor( hdc, nCOMMENTMODE );
00755                         }
00756 //#endif
00757 //@@@ 2001.02.17 End by MIK: 半角数値を強調表示
00758                     }
00759                     else if( bKeyWordTop && TypeDataPtr->m_nKeyWordSetIdx[0] != -1 && /* キーワードセット */
00760                         TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1].m_bDisp &&  /* 強調キーワードを表示する */ // 2002/03/13 novice
00761                         IS_KEYWORD_CHAR( pLine[GetNPos()] )
00762                     ){
00763                         //  Mar 4, 2001 genta comment out
00764                         //  bKeyWordTop = false;
00765                         /* キーワード文字列の終端を探す */
00766                         for( i = GetNPos() + 1; i <= nLineLen - 1; ++i ){
00767                             if( IS_KEYWORD_CHAR( pLine[i] ) ){
00768                             }else{
00769                                 break;
00770                             }
00771                         }
00772                         /* キーワードが登録単語ならば、色を変える */
00773                         j = i - GetNPos();
00774                         /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
00775                         nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(       //MIK UPDATE 2000.12.01 binary search
00776                             TypeDataPtr->m_nKeyWordSetIdx[0],
00777                             &pLine[GetNPos()],
00778                             j
00779                         );
00780                         if( nIdx != -1 ){
00781                             if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00782                                 /* テキスト表示 */
00783                                 GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00784                             }
00785
00786                             /* 現在の色を指定 */
00787                             SetNBgn(GetNPos());
00788                             nCOMMENTMODE = COLORIDX_KEYWORD1;   /* 強調キーワード1 */ // 2002/03/13 novice
00789                             nCOMMENTEND = i;
00790                             if( !bSearchStringMode ){
00791                                 SetCurrentColor( hdc, nCOMMENTMODE );
00792                             }
00793                         }else{      //MIK START ADD 2000.12.01 second keyword & binary search
00794                             // 2005.01.13 MIK 強調キーワード数追加に伴う配列化
00795                             for( int my_i = 1; my_i < 10; my_i++ )
00796                             {
00797                                 if(TypeDataPtr->m_nKeyWordSetIdx[ my_i ] != -1 && /* キーワードセット */                            //MIK 2000.12.01 second keyword
00798                                     TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1 + my_i].m_bDisp)                                  //MIK
00799                                 {                                                                                           //MIK
00800                                     /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */                       //MIK
00801                                     nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(                                   //MIK 2000.12.01 binary search
00802                                         TypeDataPtr->m_nKeyWordSetIdx[ my_i ] ,                                                 //MIK
00803                                         &pLine[GetNPos()],                                                                      //MIK
00804                                         j                                                                                   //MIK
00805                                     );                                                                                      //MIK
00806                                     if( nIdx != -1 ){                                                                       //MIK
00807                                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){                                       //MIK
00808                                             /* テキスト表示 */                                                                //MIK
00809                                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );    //MIK
00810                                         }                                                                                   //MIK
00811                                         /* 現在の色を指定 */                                                             //MIK
00812                                         SetNBgn(GetNPos());                                                                     //MIK
00813                                         nCOMMENTMODE = (EColorIndexType)(COLORIDX_KEYWORD1 + my_i); /* 強調キーワード2 */ // 2002/03/13 novice       //MIK
00814                                         nCOMMENTEND = i;                                                                    //MIK
00815                                         if( !bSearchStringMode ){                                                           //MIK
00816                                             SetCurrentColor( hdc, nCOMMENTMODE );                                           //MIK
00817                                         }                                                                                   //MIK
00818                                         break;
00819                                     }                                                                                       //MIK
00820                                 }                                                                                           //MIK
00821                                 else
00822                                 {
00823                                     if(TypeDataPtr->m_nKeyWordSetIdx[my_i] == -1 )
00824                                         break;
00825                                 }
00826                             }
00827                         }           //MIK END
00828                     }
00829                     //  From Here Mar. 4, 2001 genta
00830                     if( IS_KEYWORD_CHAR( pLine[GetNPos()] ))    bKeyWordTop = false;
00831                     else                                bKeyWordTop = true;
00832                     //  To Here
00833                     break;
00834 // 2002/03/13 novice
00835                 case COLORIDX_URL:      /* URLモードである */
00836                 case COLORIDX_KEYWORD1: /* 強調キーワード1 */
00837                 case COLORIDX_DIGIT:    /* 半角数値である */  //@@@ 2001.02.17 by MIK
00838                 case COLORIDX_KEYWORD2: /* 強調キーワード2 */    //MIK
00839                 case COLORIDX_KEYWORD3: // 2005.01.13 MIK 強調キーワード3-10
00840                 case COLORIDX_KEYWORD4:
00841                 case COLORIDX_KEYWORD5:
00842                 case COLORIDX_KEYWORD6:
00843                 case COLORIDX_KEYWORD7:
00844                 case COLORIDX_KEYWORD8:
00845                 case COLORIDX_KEYWORD9:
00846                 case COLORIDX_KEYWORD10:
00847                 //case 1000:    //正規表現キーワード1〜10 //@@@ 2001.11.17 add MIK    //@@@ 2002.01.04 del
00848                     if( GetNPos() == nCOMMENTEND ){
00849                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00850                             /* テキスト表示 */
00851                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00852                         }
00853                         SetNBgn(GetNPos());
00854                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00855                         /* 現在の色を指定 */
00856                         if( !bSearchStringMode ){
00857                             SetCurrentColor( hdc, nCOMMENTMODE );
00858                         }
00859                         goto SEARCH_START;
00860                     }
00861                     break;
00862                 case COLORIDX_CTRLCODE: /* コントロールコード */ // 2002/03/13 novice
00863                     if( GetNPos() == nCOMMENTEND ){
00864                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00865                             /* テキスト表示 */
00866                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00867                         }
00868                         SetNBgn(GetNPos());
00869                         nCOMMENTMODE = nCOMMENTMODE_OLD;
00870                         nCOMMENTEND = nCOMMENTEND_OLD;
00871                         /* 現在の色を指定 */
00872                         if( !bSearchStringMode ){
00873                             SetCurrentColor( hdc, nCOMMENTMODE );
00874                         }
00875                         goto SEARCH_START;
00876                     }
00877                     break;
00878
00879                 case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
00880                     break;
00881                 case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
00882                     if( 0 == nCOMMENTEND ){
00883                         /* この物理行にブロックコメントの終端があるか */
00884                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, GetNPos(), nLineLen, pLine );    //@@@ 2002.09.22 YAZAKI
00885                     }else
00886                     if( GetNPos() == nCOMMENTEND ){
00887                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00888                             /* テキスト表示 */
00889                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00890                         }
00891                         SetNBgn(GetNPos());
00892                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00893                         /* 現在の色を指定 */
00894                         if( !bSearchStringMode ){
00895                             SetCurrentColor( hdc, nCOMMENTMODE );
00896                         }
00897                         goto SEARCH_START;
00898                     }
00899                     break;
00900 //#ifdef    COMPILE_BLOCK_COMMENT2  //@@@ 2001.03.10 by MIK
00901                 case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
00902                     if( 0 == nCOMMENTEND ){
00903                         /* この物理行にブロックコメントの終端があるか */
00904                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, GetNPos(), nLineLen, pLine );    //@@@ 2002.09.22 YAZAKI
00905                     }else
00906                     if( GetNPos() == nCOMMENTEND ){
00907                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00908                             /* テキスト表示 */
00909                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00910                         }
00911                         SetNBgn(GetNPos());
00912                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00913                         /* 現在の色を指定 */
00914                         if( !bSearchStringMode ){
00915                             SetCurrentColor( hdc, nCOMMENTMODE );
00916                         }
00917                         goto SEARCH_START;
00918                     }
00919                     break;
00920 //#endif
00921                 case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
00922                     if( 0 == nCOMMENTEND ){
00923                         /* シングルクォーテーション文字列の終端があるか */
00924                         int i;
00925                         nCOMMENTEND = nLineLen;
00926                         for( i = GetNPos()/* + 1*/; i <= nLineLen - 1; ++i ){
00927                             // 2005-09-02 D.S.Koba GetSizeOfChar
00928                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00929                             if( 0 == nCharChars_2 ){
00930                                 nCharChars_2 = 1;
00931                             }
00932                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00933                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
00934                                     ++i;
00935                                 }else
00936                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
00937                                     nCOMMENTEND = i + 1;
00938                                     break;
00939                                 }
00940                             }else
00941                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00942                                 if( 1 == nCharChars_2 && pLine[i] == L'\'' ){
00943                                     if( i + 1 < nLineLen && pLine[i + 1] == L'\'' ){
00944                                         ++i;
00945                                     }else{
00946                                         nCOMMENTEND = i + 1;
00947                                         break;
00948                                     }
00949                                 }
00950                             }
00951                             if( 2 == nCharChars_2 ){
00952                                 ++i;
00953                             }
00954                         }
00955                     }else
00956                     if( GetNPos() == nCOMMENTEND ){
00957                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
00958                             /* テキスト表示 */
00959                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
00960                         }
00961                         SetNBgn(GetNPos());
00962                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00963                         /* 現在の色を指定 */
00964                         if( !bSearchStringMode ){
00965                             SetCurrentColor( hdc, nCOMMENTMODE );
00966                         }
00967                         goto SEARCH_START;
00968                     }
00969                     break;
00970                 case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
00971                     if( 0 == nCOMMENTEND ){
00972                         /* ダブルクォーテーション文字列の終端があるか */
00973                         int i;
00974                         nCOMMENTEND = nLineLen;
00975                         for( i = GetNPos()/* + 1*/; i <= nLineLen - 1; ++i ){
00976                             // 2005-09-02 D.S.Koba GetSizeOfChar
00977                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
00978                             if( 0 == nCharChars_2 ){
00979                                 nCharChars_2 = 1;
00980                             }
00981                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00982                                 if( 1 == nCharChars_2 && pLine[i] == L'\\' ){
00983                                     ++i;
00984                                 }else
00985                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
00986                                     nCOMMENTEND = i + 1;
00987                                     break;
00988                                 }
00989                             }else
00990                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00991                                 if( 1 == nCharChars_2 && pLine[i] == L'"' ){
00992                                     if( i + 1 < nLineLen && pLine[i + 1] == L'"' ){
00993                                         ++i;
00994                                     }else{
00995                                         nCOMMENTEND = i + 1;
00996                                         break;
00997                                     }
00998                                 }
00999                             }
01000                             if( 2 == nCharChars_2 ){
01001                                 ++i;
01002                             }
01003                         }
01004                     }else
01005                     if( GetNPos() == nCOMMENTEND ){
01006                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01007                             /* テキスト表示 */
01008                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01009                         }
01010                         SetNBgn(GetNPos());
01011                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01012                         /* 現在の色を指定 */
01013                         if( !bSearchStringMode ){
01014                             SetCurrentColor( hdc, nCOMMENTMODE );
01015                         }
01016                         goto SEARCH_START;
01017                     }
01018                     break;
01019                 default:    //@@@ 2002.01.04 add start
01020                     if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 ){ //正規表現キーワード1〜10
01021                         if( GetNPos() == nCOMMENTEND ){
01022                             if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01023                                 /* テキスト表示 */
01024                                 GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01025                             }
01026                             SetNBgn(GetNPos());
01027                             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01028                             /* 現在の色を指定 */
01029                             if( !bSearchStringMode ){
01030                                 SetCurrentColor( hdc, nCOMMENTMODE );
01031                             }
01032                             goto SEARCH_START;
01033                         }
01034                     }
01035                     break;  //@@@ 2002.01.04 add end
01036                 }
01037
01038                 //タブ
01039                 if( pLine[GetNPos()] == WCODE::TAB ){
01040                     if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01041                         // テキスト表示
01042                         GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01043
01044                         // 色決定
01045                         if( bSearchStringMode ){
01046                             nColorIdx = COLORIDX_SEARCH;
01047                         }else{
01048                             nColorIdx = COLORIDX_TAB;
01049                         }
01050
01051                         // タブ表示
01052                         GetTextDrawer().DispTab( hdc, pDispPos, nColorIdx );
01053                     }
01054                     SetNBgn(GetNPos() + 1);
01055                     nCharChars = CLogicInt(1);
01056                 }
01057                 //全角スペース
01058                 else if( WCODE::isZenkakuSpace(pLine[GetNPos()]) && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )
01059                 {   //@@@ 2001.11.17 add MIK    //@@@ 2002.01.04
01060                     if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01061                         // 全角スペース以前のテキストを表示
01062                         GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01063
01064                         // 全角空白を表示する
01065                         GetTextDrawer().DispZenkakuSpace(hdc,pDispPos,bSearchStringMode);
01066                     }
01067                     //文字進める
01068                     SetNBgn(GetNPos() + 1);
01069                     nCharChars = CLogicInt(1);
01070                 }
01071                 //半角空白（半角スペース）を表示 2002.04.28 Add by KK
01072                 else if (pLine[GetNPos()] == ' ' && TypeDataPtr->m_ColorInfoArr[COLORIDX_SPACE].m_bDisp
01073                      && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )
01074                 {
01075                     GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01076                     if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01077                         GetTextDrawer().DispHankakuSpace(hdc,pDispPos,bSearchStringMode);
01078                     }
01079                     SetNBgn(GetNPos() + 1);
01080                     nCharChars = CLogicInt(1);
01081                 }
01082                 else{
01083                     // 2005-09-02 D.S.Koba GetSizeOfChar
01084                     nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, GetNPos() );
01085                     if( 0 == nCharChars ){
01086                         nCharChars = CLogicInt(1);
01087                     }
01088                     if( !bSearchStringMode
01089                      && 1 == nCharChars
01090                      && COLORIDX_CTRLCODE != nCOMMENTMODE // 2002/03/13 novice
01091                      && TypeDataPtr->m_ColorInfoArr[COLORIDX_CTRLCODE].m_bDisp  /* コントロールコードを色分け */
01092                      && WCODE::isControlCode(pLine[GetNPos()])
01093                     ){
01094                         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01095                             /* テキスト表示 */
01096                             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01097                         }
01098                         SetNBgn(GetNPos());
01099                         nCOMMENTMODE_OLD = nCOMMENTMODE;
01100                         nCOMMENTEND_OLD = nCOMMENTEND;
01101                         nCOMMENTMODE = COLORIDX_CTRLCODE;   /* コントロールコード モード */ // 2002/03/13 novice
01102                         /* コントロールコード列の終端を探す */
01103                         for( i = GetNPos() + 1; i <= nLineLen - 1; ++i ){
01104                             // 2005-09-02 D.S.Koba GetSizeOfChar
01105                             nCharChars_2 = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
01106                             if( 0 == nCharChars_2 ){
01107                                 nCharChars_2 = 1;
01108                             }
01109                             if( nCharChars_2 != 1 ){
01110                                 break;
01111                             }
01112                             if(!WCODE::isControlCode(pLine[i])){
01113                                 break;
01114                             }
01115                         }
01116                         nCOMMENTEND = i;
01117                         /* 現在の色を指定 */
01118                         SetCurrentColor( hdc, nCOMMENTMODE );
01119                     }
01120                 }
01121                 SetNPos( GetNPos() + nCharChars );
01122             }
01123             //end of while( GetNPos() - nLineBgn < pcLayout2->GetLength() )
01124
01125
01126             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01127             //                         本文描画                            //
01128             // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01129             if( GetNPos() >= nLineLen ){
01130                 break;
01131             }
01132             if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01133                 /* テキスト表示 */
01134                 GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01135                 SetNBgn(GetNPos());
01136
01137                 /* 行末背景描画 */
01138                 RECT rcClip;
01139                 if(GetTextArea().GenerateClipRectRight(&rcClip,*pDispPos)){
01140                     cTextType.FillBack(hdc,rcClip);
01141                 }
01142
01143                 /* 折り返し記号を表示する */
01144                 GetTextDrawer().DispWrap(hdc,pDispPos);
01145
01146                 // 2006.04.29 Moca 選択処理のため縦線処理を追加
01147                 GetTextDrawer().DispVerticalLines( hdc, pDispPos->GetDrawPos().y, pDispPos->GetDrawPos().y + nLineHeight,  CLayoutInt(0), CLayoutInt(-1) );
01148                 if( bSelected ){
01149                     /* テキスト反転 */
01150                     DispTextSelected(
01151                         hdc,
01152                         pDispPos->GetLayoutLineRef(),
01153                         CMyPoint(sDispPosBegin.GetDrawPos().x, pDispPos->GetDrawPos().y),
01154                         pDispPos->GetDrawCol()
01155                     );
01156                 }
01157             }
01158         }
01159         // end of while( GetNPos() < nLineLen )
01160
01161         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01162
01163             /* テキスト表示 */
01164             GetTextDrawer().DispText( hdc, pDispPos, &pLine[GetNBgn()], GetNPos() - GetNBgn() );
01165
01166             /* EOF記号の表示 */
01167             if( pDispPos->GetLayoutLineRef() + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount()
01168                 && pDispPos->GetDrawCol() < nWrapKeta )
01169             {
01170                 if( TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF].m_bDisp ){
01171                     //  May 29, 2004 genta (advised by MIK) 共通関数化
01172                     GetTextDrawer().DispEOF(hdc,pDispPos);
01173                 }
01174                 bEOF = true;
01175             }
01176
01177             if( IsBkBitmap() ){
01178             }else{
01179                 // 行末背景描画
01180                 RECT rcClip;
01181                 if(GetTextArea().GenerateClipRectRight(&rcClip,*pDispPos)){
01182                     cTextType.FillBack(hdc,rcClip);
01183                 }
01184             }
01185
01186             // 2006.04.29 Moca 選択処理のため縦線処理を追加
01187             GetTextDrawer().DispVerticalLines( hdc, pDispPos->GetDrawPos().y, pDispPos->GetDrawPos().y + nLineHeight,  CLayoutInt(0), CLayoutInt(-1) );
01188
01189             if( bSelected ){
01190                 /* テキスト反転 */
01191                 DispTextSelected(
01192                     hdc,
01193                     pDispPos->GetLayoutLineRef(),
01194                     CMyPoint(sDispPosBegin.GetDrawPos().x, pDispPos->GetDrawPos().y),
01195                     pDispPos->GetDrawCol()
01196                 );
01197             }
01198
01199         }
01200 end_of_line:;
01201         pDispPos->ForwardLayoutLineRef(1);
01202         pDispPos->ForwardDrawLine(1);
01203     }
01204     // NULL == pLineの場合
01205     else{
01206         if( pDispPos->GetDrawPos().y >= GetTextArea().GetAreaTop() ){
01207             if(GetTextDrawer().DispEmptyLine(hdc,pDispPos)){
01208                 bEOF=true;
01209             }
01210         }
01211     }
01212
01213 end_of_func:;
01214 //  2002/05/08 YAZAKI アンダーラインの再描画は不要でした
01215 //  MYTRACE_A( "m_nOldUnderLineY=%d\n", m_nOldUnderLineY );
01216 //  if( -1 != m_nOldUnderLineY ){
01217 //      /* カーソル行アンダーラインのON */
01218 //      CaretUnderLineON( TRUE );
01219 //  }
01220
01221
01222     return bEOF;
01223 }
01224
01225
01226
01227 //
01228
01229
01230 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New2.cpp

sakura_core

CEditView_New2.cpp

CEditViewクラス [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.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 "Clayout.h"
#include "CDocLine.h"
#include "CMarkMgr.h"
#include "my_icmp.h"
#include "CTextMetrics.h"
#include "CTypeSupport.h"
#include "parse/CWordParse.h"
#include "util/os.h"

ソースコードを見る。

構成

struct | KAKKO_T
対括弧の対応表 [詳細]

変数

const KAKKO_T | g_aKakkos []

説明

CEditViewクラス

作者:
Norio Nakatani
日付:
1998/12/08 作成

CEditView_New2.cpp で定義されています。

変数

const KAKKO_T g_aKakkos[]

初期値:

 {

    { L"(", L")", },
    { L"[", L"]", },
    { L"{", L"}", },
    { L"<", L">", },
    { L"｢", L"｣", },

    { L"【", L"】", },
    { L"『", L"』", },
    { L"「", L"」", },
    { L"＜", L"＞", },
    { L"≪", L"≫", },
    { L"《", L"》", },
    { L"（", L"）", },
    { L"〈", L"〉", },
    { L"｛", L"｝", },
    { L"〔", L"〕", },
    { L"［", L"］", },
    { L"“", L"”", },
    { L"〝", L"〟", },

    { NULL, NULL, },
}

CEditView_New2.cpp の 343 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New2.cpp ソースファイル

sakura_core

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 "CEditView.h"
00025 #include "debug.h"
00026 #include "funccode.h"
00027 #include "charcode.h"
00028 #include "mymessage.h"
00029 #include "CEditWnd.h"
00030 #include "CShareData.h"
00031 #include "CDlgCancel.h"
00032 #include "sakura_rc.h"
00033 #include "Clayout.h"
00034 #include "CDocLine.h"
00035 #include "CMarkMgr.h"
00036 #include "my_icmp.h"    //@@@ 2002.01.13 add
00037 #include "CTextMetrics.h"
00038 #include "CTypeSupport.h"
00039 #include "parse/CWordParse.h"
00040 #include "util/os.h"
00041
00042 /* 現在の色を指定 */
00043 void CEditView::SetCurrentColor( HDC hdc, int nCOMMENTMODE )
00044 {
00045     int             nColorIdx;
00046     COLORREF        colText;
00047     COLORREF        colBack;
00048 //  if( NULL != m_hFontOld ){
00049 //      ::SelectObject( hdc, m_hFontOld );
00050 //      m_hFontOld = NULL;
00051 //  }
00052     nColorIdx = -1;
00053     switch( nCOMMENTMODE ){
00054 // 2002/03/13 novice
00055     case COLORIDX_TEXT: /* テキスト */
00056     case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */
00057     case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */
00058     case COLORIDX_CTRLCODE: /* コントロールコードである */
00059     case COLORIDX_DIGIT:    /* 半角数値である */
00060     case COLORIDX_KEYWORD1: /* 強調キーワード1（登録単語）文字列である */
00061     case COLORIDX_KEYWORD2: /* 強調キーワード2（登録単語）文字列である */
00062     case COLORIDX_KEYWORD3: // 2005.01.13 MIK 強調キーワード3-10
00063     case COLORIDX_KEYWORD4:
00064     case COLORIDX_KEYWORD5:
00065     case COLORIDX_KEYWORD6:
00066     case COLORIDX_KEYWORD7:
00067     case COLORIDX_KEYWORD8:
00068     case COLORIDX_KEYWORD9:
00069     case COLORIDX_KEYWORD10:
00070     case COLORIDX_URL:      /* URLである */
00071     case COLORIDX_SEARCH:   /* 検索文字列である */
00072     case COLORIDX_BRACKET_PAIR: /* 対括弧の強調表示である */ // 2002/12/18 ai
00073         nColorIdx = nCOMMENTMODE;
00074         break;
00075     case COLORIDX_COMMENT:  /* 行コメントである */
00076     case COLORIDX_BLOCK1:   /* ブロックコメント1である */
00077     case COLORIDX_BLOCK2:   /* ブロックコメント2である */    //@@@ 2001.03.10 by MIK
00078         nColorIdx = COLORIDX_COMMENT;
00079         break;
00080
00081 //@@@ 2001.11.17 add start MIK
00082     default:    /* 正規表現キーワード */
00083         if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 )
00084         {
00085             nColorIdx = nCOMMENTMODE - 1000;    //下駄を履かせているのをはずす
00086             colText = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colTEXT;
00087             colBack = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colBACK;
00088             ::SetTextColor( hdc, colText );
00089             ::SetBkColor( hdc, colBack );
00090             if( NULL != m_hFontOld ){
00091                 ::SelectObject( hdc, m_hFontOld );
00092             }
00093             /* フォントを選ぶ */
00094             m_hFontOld = (HFONT)::SelectObject( hdc,
00095                 GetFontset().ChooseFontHandle(
00096                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bFatFont,
00097                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bUnderLine
00098                 )
00099             );
00100             return;
00101         }
00102         break;
00103 //@@@ 2001.11.17 add end MIK
00104
00105     }
00106
00107
00108
00109
00110
00111     if( -1 != nColorIdx ){
00112         if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bDisp ){
00113             colText = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colTEXT;
00114             colBack = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colBACK;
00115             ::SetTextColor( hdc, colText );
00116             ::SetBkColor( hdc, colBack );
00117             if( NULL != m_hFontOld ){
00118                 ::SelectObject( hdc, m_hFontOld );
00119             }
00120             /* フォントを選ぶ */
00121             m_hFontOld = (HFONT)::SelectObject( hdc,
00122                 GetFontset().ChooseFontHandle(
00123                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bFatFont,
00124                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bUnderLine
00125                 )
00126             );
00127         }
00128     }
00129
00130     return;
00131 }
00132
00133
00134
00135
00136
00137 /* テキスト反転
00138
00139     @param hdc
00140     @param nLineNum
00141     @param x
00142     @param y
00143     @param nX
00144
00145     @note
00146     CCEditView::DispLineNew() での作画(WM_PAINT)時に、1レイアウト行をまとめて反転処理するための関数。
00147     範囲選択の随時更新は、CEditView::DrawSelectArea() が選択・反転解除を行う。
00148
00149 */
00150 void CEditView::DispTextSelected(
00151     HDC             hdc,
00152     CLayoutInt      nLineNum,
00153     const CMyPoint& ptXY,
00154     CLayoutInt      nX_Layout
00155 )
00156 {
00157     CLayoutInt  nSelectFrom;
00158     CLayoutInt  nSelectTo;
00159     RECT        rcClip;
00160     int         nLineHeight = GetTextMetrics().GetHankakuDy();
00161     int         nCharWidth = GetTextMetrics().GetHankakuDx();
00162     HRGN        hrgnDraw;
00163     const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( nLineNum );
00164
00165     /* 選択範囲内の行かな */
00166 //  if( IsTextSelected() ){
00167         if( nLineNum >= GetSelectionInfo().m_sSelect.GetFrom().y && nLineNum <= GetSelectionInfo().m_sSelect.GetTo().y ){
00168             if( GetSelectionInfo().IsBoxSelecting() ){      /* 矩形範囲選択中 */
00169                 nSelectFrom = GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00170                 nSelectTo   = GetSelectionInfo().m_sSelect.GetTo().GetX2();
00171                 // 2006.09.30 Moca From 矩形選択時[EOF]とその右側は反転しないように修正。処理を追加
00172                 if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 <= nLineNum ){
00173                     CLayoutPoint ptEnd(0, 0);
00174                     m_pcEditDoc->m_cLayoutMgr.GetEndLayoutPos( &ptEnd );
00175                     if( ptEnd.y == nLineNum ){
00176                         if( ptEnd.GetX2() < nSelectFrom ){
00177                             nSelectFrom = ptEnd.GetX2();
00178                         }
00179                         if( ptEnd.GetX2() < nSelectTo ){
00180                             nSelectTo = ptEnd.GetX2();
00181                         }
00182                     }
00183                 }
00184                 // 2006.09.30 Moca To
00185             }
00186             else{
00187                 if( GetSelectionInfo().m_sSelect.IsLineOne() ){
00188                     nSelectFrom = GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00189                     nSelectTo   = GetSelectionInfo().m_sSelect.GetTo().GetX2();
00190                 }
00191                 else{
00192                     if( nLineNum == GetSelectionInfo().m_sSelect.GetFrom().y ){
00193                         nSelectFrom = GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00194                         nSelectTo   = nX_Layout;
00195                     }
00196                     else if( nLineNum == GetSelectionInfo().m_sSelect.GetTo().GetY2() ){
00197                         nSelectFrom = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
00198                         nSelectTo   = GetSelectionInfo().m_sSelect.GetTo().GetX2();
00199                     }
00200                     else{
00201                         nSelectFrom = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
00202                         nSelectTo   = nX_Layout;
00203                     }
00204                 }
00205             }
00206             // 2006.05.24 Moca 矩形選択/フリーカーソル選択(選択開始/終了行)で
00207             // To < From になることがある。必ず From < To になるように入れ替える。
00208             if( nSelectTo < nSelectFrom ){
00209                 CLayoutInt t = nSelectFrom;
00210                 nSelectFrom = nSelectTo;
00211                 nSelectTo = t;
00212             }
00213
00214             // 2006.03.28 Moca 表示域外なら何もしない
00215             if( GetTextArea().GetRightCol() < nSelectFrom ){
00216                 return;
00217             }
00218             if( nSelectTo <= GetTextArea().GetViewLeftCol() ){
00219                 return;
00220             }
00221
00222             if( nSelectFrom < GetTextArea().GetViewLeftCol() ){
00223                 nSelectFrom = GetTextArea().GetViewLeftCol();
00224             }
00225             rcClip.left   = ptXY.x + (Int)nSelectFrom * ( nCharWidth );
00226             rcClip.right  = ptXY.x + (Int)nSelectTo   * ( nCharWidth );
00227             rcClip.top    = ptXY.y;
00228             rcClip.bottom = ptXY.y + nLineHeight;
00229
00230             // 2005/04/02 かろと ０文字マッチだと反転幅が０となり反転されないので、1/3文字幅だけ反転させる
00231             // 2005/06/26 zenryaku 選択解除でキャレットの残骸が残る問題を修正
00232             // 2005/09/29 ryoji スクロール時にキャレットのようなゴミが表示される問題を修正
00233             if (GetSelectionInfo().IsTextSelected() && rcClip.right == rcClip.left &&
00234                 GetSelectionInfo().m_sSelect.IsLineOne() &&
00235                 GetSelectionInfo().m_sSelect.GetFrom().x >= GetTextArea().GetViewLeftCol())
00236             {
00237                 rcClip.right = rcClip.left + (nCharWidth/3 == 0 ? 1 : nCharWidth/3);
00238             }
00239
00240             // 2006.03.28 Moca ウィンドウ幅が大きいと正しく反転しない問題を修正
00241             if( rcClip.right > GetTextArea().GetAreaRight() ){
00242                 rcClip.right = GetTextArea().GetAreaRight();
00243             }
00244
00245             HBRUSH hBrush    = ::CreateSolidBrush( SELECTEDAREA_RGB );
00246
00247             int    nROP_Old  = ::SetROP2( hdc, SELECTEDAREA_ROP2 );
00248             HBRUSH hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00249             hrgnDraw = ::CreateRectRgn( rcClip.left, rcClip.top, rcClip.right, rcClip.bottom );
00250             ::PaintRgn( hdc, hrgnDraw );
00251             ::DeleteObject( hrgnDraw );
00252
00253             SetROP2( hdc, nROP_Old );
00254             SelectObject( hdc, hBrushOld );
00255             DeleteObject( hBrush );
00256         }
00257 //  }
00258     return;
00259 }
00260
00261
00262
00263
00264 /* 現在位置が検索文字列に該当するか */
00265 //2002.02.08 hor
00266 //正規表現で検索したときの速度改善のため、マッチ先頭位置を引数に追加
00267 bool CEditView::IsSearchString(
00268     const wchar_t*  pszData,
00269     CLogicInt       nDataLen,
00270     CLogicInt       nPos,
00271     CLogicInt*      pnSearchStart,
00272     CLogicInt*      pnSearchEnd
00273 )
00274 {
00275     CLogicInt       nKeyLength;
00276
00277     //  From Here Jun. 26, 2001 genta   正規表現ライブラリの差し替え
00278     *pnSearchStart = nPos;  // 2002.02.08 hor
00279
00280     if( m_sCurSearchOption.bRegularExp ){
00281         /* 行頭ではない? */
00282         /* 行頭検索チェックは、CBregexpクラス内部で実施するので不要 2003.11.01 かろと */
00283
00284         /* 位置を0でMatchInfo呼び出すと、行頭文字検索時に、全て true　となり、
00285         ** 画面全体が検索文字列扱いになる不具合修正
00286         ** 対策として、行頭を MacthInfoに教えないといけないので、文字列の長さ・位置情報を与える形に変更
00287         ** 2003.05.04 かろと
00288         */
00289         if( m_CurRegexp.Match( pszData, nDataLen, nPos ) ){
00290             *pnSearchStart = m_CurRegexp.GetIndex();    // 2002.02.08 hor
00291             *pnSearchEnd = m_CurRegexp.GetLastIndex();
00292     //  To Here Jun. 26, 2001 genta
00293             return true;
00294
00295         }else{
00296             return false;
00297         }
00298     }else{
00299         nKeyLength = CLogicInt(wcslen( m_szCurSrchKey ));       /* 検索条件 */
00300
00301         // 2001/06/23 単語単位の検索のために追加
00302         if( m_pShareData->m_Common.m_sSearch.m_sSearchOption.bWordOnly ){   /* 検索／置換  1==単語のみ検索 */
00303             /* 現在位置の単語の範囲を調べる */
00304             /* 現在位置の単語の範囲を調べる */
00305             CLogicInt nIdxFrom, nIdxTo;
00306             if( !CWordParse::WhereCurrentWord_2( pszData, nDataLen, nPos, &nIdxFrom, &nIdxTo, NULL, NULL ) ){
00307                 return false;
00308             }
00309             if( nPos != nIdxFrom || nKeyLength != nIdxTo - nIdxFrom ){
00310                 return false;
00311             }
00312         }
00313
00314         //検索条件が未定義 または 検索条件の長さより調べるデータが短いときはヒットしない
00315         if( 0 == nKeyLength || nKeyLength > nDataLen - nPos ){
00316             return false;
00317         }
00318         //英大文字小文字の区別をするかどうか
00319         if( m_sCurSearchOption.bLoHiCase ){ /* 1==英大文字小文字の区別 */
00320             if( 0 == wmemcmp( &pszData[nPos], m_szCurSrchKey, nKeyLength ) ){
00321                 *pnSearchEnd = nPos + nKeyLength;
00322                 return true;
00323             }
00324         }else{
00325             if( 0 == auto_memicmp( &pszData[nPos], m_szCurSrchKey, nKeyLength ) ){
00326                 *pnSearchEnd = nPos + nKeyLength;
00327                 return true;
00328             }
00329         }
00330     }
00331     return false;
00332 }
00333
00334
00335
00336 //======================================================================
00338 //2007.10.16 kobake
00339 struct KAKKO_T{
00340     wchar_t *sStr;
00341     wchar_t *eStr;
00342 };
00343 const KAKKO_T g_aKakkos[] = {
00344     //半角
00345     { L"(", L")", },
00346     { L"[", L"]", },
00347     { L"{", L"}", },
00348     { L"<", L">", },
00349     { L"｢", L"｣", },
00350     //全角
00351     { L"【", L"】", },
00352     { L"『", L"』", },
00353     { L"「", L"」", },
00354     { L"＜", L"＞", },
00355     { L"≪", L"≫", },
00356     { L"《", L"》", },
00357     { L"（", L"）", },
00358     { L"〈", L"〉", },
00359     { L"｛", L"｝", },
00360     { L"〔", L"〕", },
00361     { L"［", L"］", },
00362     { L"“", L"”", },
00363     { L"〝", L"〟", },
00364     //終端
00365     { NULL, NULL, },
00366 };
00367
00368
00369
00370 //  Jun. 16, 2000 genta
00398 bool CEditView::SearchBracket(
00399     const CLayoutPoint& ptLayout,
00400     CLayoutPoint*       pptLayoutNew,
00401     int*                mode
00402 )
00403 {
00404     CLogicInt len;  //  行の長さ
00405
00406     CLogicPoint ptPos;
00407     //int PosX, PosY;   //  物理位置
00408
00409     m_pcEditDoc->m_cLayoutMgr.LayoutToLogic( ptLayout, &ptPos );
00410     const wchar_t *cline = m_pcEditDoc->m_cDocLineMgr.GetLineStr( ptPos.GetY2(), &len );
00411
00412     //  Jun. 19, 2000 genta
00413     if( cline == NULL ) //  最後の行に本文がない場合
00414         return false;
00415
00416     // 括弧処理 2007.10.16 kobake
00417     {
00418         const KAKKO_T* p;
00419         for( p = g_aKakkos; p->sStr != NULL;  p++ )
00420         {
00421             if( wcsncmp(p->sStr, &cline[ptPos.x], 1) == 0 )
00422             {
00423                 return SearchBracketForward( ptPos, pptLayoutNew, p->sStr, p->eStr, mode );
00424             }
00425             else if( wcsncmp(p->eStr, &cline[ptPos.x], 1) == 0 )
00426             {
00427                 return SearchBracketBackward( ptPos, pptLayoutNew, p->sStr, p->eStr, mode );
00428             }
00429         }
00430     }
00431
00432     // 02/09/18 ai Start
00433     if( 0 == ( *mode & 2 ) ){
00434         /* カーソルの前方を調べない場合 */
00435         return false;
00436     }
00437     *mode |= 4;
00438     // 02/09/18 ai End
00439
00440     //  括弧が見つからなかったら，カーソルの直前の文字を調べる
00441
00442     if( ptPos.x <= 0 ){
00443 //      ::MessageBoxA( NULL, "NO DATA", "Bracket", MB_OK );
00444         return false;   //  前の文字はない
00445     }
00446
00447     const wchar_t *bPos = CNativeW::GetCharPrev( cline, ptPos.x, cline + ptPos.x );
00448     int nCharSize = cline + ptPos.x - bPos;
00449 //  m_nCharSize = nCharSize;    // 02/10/01 対括弧の文字サイズ設定 ai
00450     // 括弧処理 2007.10.16 kobake
00451     if(nCharSize==1){
00452         const KAKKO_T* p;
00453         ptPos.x = bPos - cline;
00454         for( p = g_aKakkos; p->sStr != NULL; p++ )
00455         {
00456             if( wcsncmp(p->sStr, &cline[ptPos.x], 1) == 0 )
00457             {
00458                 return SearchBracketForward( ptPos, pptLayoutNew, p->sStr, p->eStr, mode );
00459             }
00460             else if( wcsncmp(p->eStr, &cline[ptPos.x], 1) == 0 )
00461             {
00462                 return SearchBracketBackward( ptPos, pptLayoutNew, p->sStr, p->eStr, mode );
00463             }
00464         }
00465     }
00466     return false;
00467 }
00468
00487 // 03/01/08 ai
00488 bool CEditView::SearchBracketForward(
00489     CLogicPoint     ptPos,
00490     CLayoutPoint*   pptLayoutNew,
00491     const wchar_t*  upChar,
00492     const wchar_t*  dnChar,
00493     int*            mode
00494 )
00495 {
00496     CDocLine* ci;
00497
00498     int         len;
00499     const wchar_t* cPos;
00500     const wchar_t* nPos;
00501     const wchar_t* cline;
00502     const wchar_t* lineend;
00503     int         level = 0;
00504
00505     CLayoutPoint ptColLine;
00506
00507     CLayoutInt  nSearchNum; // 02/09/19 ai
00508
00509     //  初期位置の設定
00510     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, &ptColLine );   // 02/09/19 ai
00511     nSearchNum = ( GetTextArea().GetBottomLine() ) - ptColLine.y;                   // 02/09/19 ai
00512     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( ptPos.GetY2() );
00513     cline = ci->m_cLine.GetStringPtr( &len );
00514     lineend = cline + len;
00515     cPos = cline + ptPos.x;
00516
00517     do {
00518         while( cPos < lineend ){
00519             nPos = CNativeW::GetCharNext( cline, len, cPos );
00520             if( nPos - cPos > 1 ){
00521                 //  skip
00522                 cPos = nPos;
00523                 continue;
00524             }
00525             // 03/01/08 ai Start
00526             if( wcsncmp(upChar, cPos, 1) == 0 ){
00527                 ++level;
00528             }
00529             else if( wcsncmp(dnChar, cPos, 1) == 0 ){
00530                 --level;
00531             }// 03/01/08 ai End
00532
00533             if( level == 0 ){   //  見つかった！
00534                 ptPos.x = cPos - cline;
00535                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, pptLayoutNew );
00536                 return true;
00537                 //  Happy Ending
00538             }
00539             cPos = nPos;    //  次の文字へ
00540         }
00541
00542         // 02/09/19 ai Start
00543         nSearchNum--;
00544         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
00545         {   // 表示領域外を調べないモードで表示領域の終端の場合
00546             //SendStatusMessage( "対括弧の検索を中断しました" );
00547             break;
00548         }
00549         // 02/09/19 ai End
00550
00551         //  次の行へ
00552         ptPos.y++;
00553         ci = ci->m_pNext;   //  次のアイテム
00554         if( ci == NULL )
00555             break;  //  終わりに達した
00556
00557         cline = ci->m_cLine.GetStringPtr( &len );
00558         cPos = cline;
00559         lineend = cline + len;
00560     }while( cline != NULL );
00561
00562     return false;
00563 }
00564
00583 bool CEditView::SearchBracketBackward(
00584     CLogicPoint     ptPos,
00585     CLayoutPoint*   pptLayoutNew,
00586     const wchar_t*  dnChar,
00587     const wchar_t*  upChar,
00588     int*            mode
00589 )
00590 {
00591     CDocLine* ci;
00592
00593     int         len;
00594     const wchar_t* cPos;
00595     const wchar_t* pPos;
00596     const wchar_t* cline;
00597     const wchar_t* lineend;
00598     int         level = 1;
00599
00600     CLayoutPoint ptColLine;
00601     //int           nCol, nLine;
00602
00603     CLayoutInt      nSearchNum; // 02/09/19 ai
00604
00605     //  初期位置の設定
00606     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, &ptColLine );   // 02/09/19 ai
00607     nSearchNum = ptColLine.y - GetTextArea().GetViewTopLine();                                      // 02/09/19 ai
00608     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( ptPos.GetY2() );
00609     cline = ci->m_cLine.GetStringPtr( &len );
00610     lineend = cline + len;
00611     cPos = cline + ptPos.x;
00612
00613     do {
00614         while( cPos > cline ){
00615             pPos = CNativeW::GetCharPrev( cline, len, cPos );
00616             if( cPos - pPos > 1 ){
00617                 //  skip
00618                 cPos = pPos;
00619                 continue;
00620             }
00621             // 03/01/08 ai Start
00622             if( wcsncmp(upChar, pPos, 1) == 0 ){
00623                 ++level;
00624             }
00625             else if( wcsncmp(dnChar, pPos, 1) == 0 ){
00626                 --level;
00627             }// 03/01/08 ai End
00628
00629             if( level == 0 ){   //  見つかった！
00630                 ptPos.x = pPos - cline;
00631                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, pptLayoutNew );
00632                 return true;
00633                 //  Happy Ending
00634             }
00635             cPos = pPos;    //  次の文字へ
00636         }
00637
00638         // 02/09/19 ai Start
00639         nSearchNum--;
00640         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
00641         {   // 表示領域外を調べないモードで表示領域の先頭の場合
00642             //SendStatusMessage( "対括弧の検索を中断しました" );
00643             break;
00644         }
00645         // 02/09/19 ai End
00646
00647         //  次の行へ
00648         ptPos.y--;
00649         ci = ci->m_pPrev;   //  次のアイテム
00650         if( ci == NULL )
00651             break;  //  終わりに達した
00652
00653         cline = ci->m_cLine.GetStringPtr( &len );
00654         cPos = cline + len;
00655     }while( cline != NULL );
00656
00657     return false;
00658 }
00659
00660 //@@@ 2001.02.03 Start by MIK:
00679 bool CEditView::SearchBracketForward2(
00680     CLogicPoint     ptPos,
00681     CLayoutPoint*   pptLayoutNew,
00682     const wchar_t*  upChar,
00683     const wchar_t*  dnChar,
00684     int*            mode
00685 )
00686 {
00687     CDocLine* ci;
00688
00689     int len;
00690     const wchar_t* cPos;
00691     const wchar_t* nPos;
00692     const wchar_t* cline;
00693     const wchar_t* lineend;
00694     int level = 0;
00695
00696     CLayoutPoint ptColLine;
00697 //  int         nCol, nLine;
00698
00699     CLayoutInt  nSearchNum; // 02/09/19 ai
00700
00701     //  初期位置の設定
00702     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, &ptColLine );   // 02/09/19 ai
00703     nSearchNum = ( GetTextArea().GetBottomLine() ) - ptColLine.y;                   // 02/09/19 ai
00704     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( ptPos.GetY2() );
00705     cline = ci->m_cLine.GetStringPtr( &len );
00706     lineend = cline + len;
00707     cPos = cline + ptPos.x;
00708
00709     do {
00710         while( cPos < lineend ){
00711             nPos = CNativeW::GetCharNext( cline, len, cPos );
00712             if( nPos - cPos != 1 ){
00713                 //  skip
00714                 cPos = nPos;
00715                 continue;
00716             }
00717             if( wcsncmp(upChar, cPos, 1) == 0 ){
00718                 ++level;
00719             }
00720             else if( wcsncmp(dnChar, cPos, 1) == 0 ){
00721                 --level;
00722             }
00723
00724             if( level == 0 ){   //  見つかった！
00725                 ptPos.x = cPos - cline;
00726                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, pptLayoutNew );
00727                 return true;
00728             }
00729             cPos = nPos;    //  次の文字へ
00730         }
00731
00732         // 02/09/19 ai Start
00733         nSearchNum--;
00734         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
00735         {   // 表示領域外を調べないモードで表示領域の終端の場合
00736             //SendStatusMessage( "対括弧の検索を中断しました" );
00737             break;
00738         }
00739         // 02/09/19 ai End
00740
00741         //  次の行へ
00742         ptPos.y++;
00743         ci = ci->m_pNext;   //  次のアイテム
00744         if( ci == NULL )
00745             break;  //  終わりに達した
00746
00747         cline = ci->m_cLine.GetStringPtr( &len );
00748         cPos = cline;
00749         lineend = cline + len;
00750     }while( cline != NULL );
00751
00752     return false;
00753 }
00754 //@@@ 2001.02.03 End
00755
00756 //@@@ 2001.02.03 Start by MIK:
00775 bool CEditView::SearchBracketBackward2(
00776     CLogicPoint     ptPos,
00777     CLayoutPoint*   pptLayoutNew,
00778     const wchar_t*  dnChar,
00779     const wchar_t*  upChar,
00780     int*            mode
00781 )
00782 {
00783     CDocLine* ci;
00784
00785     int len;
00786     const wchar_t* cPos;
00787     const wchar_t* pPos;
00788     const wchar_t* cline;
00789     const wchar_t* lineend;
00790     int level = 1;
00791
00792     CLayoutPoint ptColLine;
00793     //int   nCol, nLine;
00794
00795     CLayoutInt nSearchNum;  // 02/09/19 ai
00796
00797     //  初期位置の設定
00798     m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, &ptColLine );   // 02/09/19 ai
00799     nSearchNum = ptColLine.y - GetTextArea().GetViewTopLine();                                      // 02/09/19 ai
00800     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( ptPos.GetY2() );
00801     cline = ci->m_cLine.GetStringPtr( &len );
00802     lineend = cline + len;
00803     cPos = cline + ptPos.x;
00804
00805     do {
00806         while( cPos > cline ){
00807             pPos = CNativeW::GetCharPrev( cline, len, cPos );
00808             if( cPos - pPos != 1 ){
00809                 //  skip
00810                 cPos = pPos;
00811                 continue;
00812             }
00813             if( wcsncmp(upChar, pPos, 1) == 0 ){
00814                 ++level;
00815             }
00816             else if( wcsncmp(dnChar, pPos, 1) == 0 ){
00817                 --level;
00818             }
00819
00820             if( level == 0 ){   //  見つかった！
00821                 ptPos.x = pPos - cline;
00822                 m_pcEditDoc->m_cLayoutMgr.LogicToLayout( ptPos, pptLayoutNew );
00823                 return true;
00824             }
00825             cPos = pPos;    //  次の文字へ
00826         }
00827
00828         // 02/09/19 ai Start
00829         nSearchNum--;
00830         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
00831         {   // 表示領域外を調べないモードで表示領域の先頭の場合
00832             //SendStatusMessage( "対括弧の検索を中断しました" );
00833             break;
00834         }
00835         // 02/09/19 ai End
00836
00837         //  次の行へ
00838         ptPos.y--;
00839         ci = ci->m_pPrev;   //  次のアイテム
00840         if( ci == NULL )
00841             break;  //  終わりに達した
00842
00843         cline = ci->m_cLine.GetStringPtr( &len );
00844         cPos = cline + len;
00845     }while( cline != NULL );
00846
00847     return false;
00848 }
00849 //@@@ 2001.02.03 End
00850
00851 //@@@ 2003.01.09 Start by ai:
00864 bool CEditView::IsBracket( const wchar_t *pLine, CLogicInt x, CLogicInt size )
00865 {
00866     // 括弧処理 2007.10.16 kobake
00867     if( size == 1 ){
00868         const struct KAKKO_T *p;
00869         for( p = g_aKakkos; p->sStr != NULL; p++ )
00870         {
00871             if( wcsncmp( p->sStr, &pLine[x], 1 ) == 0 )
00872             {
00873                 return true;
00874             }
00875             else if( wcsncmp( p->eStr, &pLine[x], 1 ) == 0 )
00876             {
00877                 return true;
00878             }
00879         }
00880     }
00881
00882     return false;
00883 }
00884 //@@@ 2003.01.09 End
00885
00887 void CEditView::AddCurrentLineToHistory( void )
00888 {
00889     CLogicPoint ptPos;
00890     //int PosX, PosY;   //  物理位置（改行単位の計算）
00891
00892     m_pcEditDoc->m_cLayoutMgr.LayoutToLogic( GetCaret().GetCaretLayoutPos(), &ptPos );
00893
00894     CMarkMgr::CMark m( ptPos );
00895     m_cHistory->Add( m );
00896
00897 }
00898
00899
00900 //  2001/06/18 Start by asa-o: 補完ウィンドウ用のキーワードヘルプ表示
00901 bool  CEditView::ShowKeywordHelp( POINT po, LPCWSTR pszHelp, LPRECT prcHokanWin)
00902 {
00903     CNativeW    cmemCurText;
00904     RECT        rcTipWin,
00905                 rcDesktop;
00906
00907     if( m_pcEditDoc->GetDocumentAttribute().m_bUseKeyWordHelp ){ /* キーワードヘルプを使用する */
00908         if( m_bInMenuLoop == FALSE  &&  /* メニュー モーダル ループに入っていない */
00909             0 != m_dwTipTimer           /* 辞書Tipを表示していない */
00910         ){
00911             cmemCurText.SetString( pszHelp );
00912
00913             /* 既に検索済みか */
00914             if( CNativeW::IsEqual( cmemCurText, m_cTipWnd.m_cKey ) ){
00915                 /* 該当するキーがなかった */
00916                 if( !m_cTipWnd.m_KeyWasHit ){
00917                     return false;
00918                 }
00919             }else{
00920                 m_cTipWnd.m_cKey = cmemCurText;
00921                 /* 検索実行 */
00922                 if(FALSE == KeySearchCore(&m_cTipWnd.m_cKey))   // 2006.04.10 fon
00923                     return FALSE;
00924             }
00925             m_dwTipTimer = 0;   /* 辞書Tipを表示している */
00926
00927         // 2001/06/19 Start by asa-o: 辞書Tipの表示位置調整
00928             // 辞書Tipのサイズを取得
00929             m_cTipWnd.GetWindowSize(&rcTipWin);
00930
00931             //  May 01, 2004 genta マルチモニタ対応
00932 			::GetMonitorWorkRect( m_cTipWnd.GetHwnd(), &rcDesktop );
00933
00934             // 右に入る
00935             if(prcHokanWin->right + rcTipWin.right < rcDesktop.right){
00936                 // そのまま
00937             }else
00938             // 左に入る
00939             if(rcDesktop.left < prcHokanWin->left - rcTipWin.right ){
00940                 // 左に表示
00941                 po.x = prcHokanWin->left - (rcTipWin.right + 8);
00942             }else
00943             // どちらもスペースが無いとき広いほうに表示
00944             if(rcDesktop.right - prcHokanWin->right > prcHokanWin->left ){
00945                 // 右に表示 そのまま
00946             }else{
00947                 // 左に表示
00948                 po.x = prcHokanWin->left - (rcTipWin.right + 8);
00949             }
00950         // 2001/06/19 End
00951
00952             /* 辞書Tipを表示 */
00953             m_cTipWnd.Show( po.x, po.y , NULL , &rcTipWin);
00954             return true;
00955         }
00956     }
00957     return false;
00958 }
00959 //  2001/06/18 End
00960
00961 #if 0
00962
00967 int CEditView::DispCtrlCode( HDC hdc, int x, int y, const unsigned char* pData, int nLength )
00968 {
00969     int     i, x1, y1;
00970     unsigned char   c;
00971     HPEN    hPen, hPenOld;
00972
00973     x1 = GetTextMetrics().GetHankakuWidth() / 3;
00974     y1 = GetTextMetrics().GetHankakuHeight() / 5;
00975
00976     hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_CTRLCODE].m_colTEXT );
00977     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00978
00979     for( i = 0; i < nLength; i++, pData++ )
00980     {
00981         if     ( (*pData) <= 0x1f ) c = '@' + (*pData);
00982         else if( (*pData) == 0x7f ) c = '?';
00983         else                        c = '･';
00984
00985         //文字を表示する
00986         DispText( hdc, x, y, &c, 1 );
00987
00988         //制御文字を示す記号を描画する
00989         ::MoveToEx( hdc, x, y + y1, NULL );
00990         ::LineTo( hdc, x + x1, y );
00991         ::LineTo( hdc, x + x1 * 2, y + y1 );
00992
00993         x += GetTextMetrics().GetHankakuWidth();
00994     }
00995
00996     ::SelectObject( hdc, hPenOld );
00997     ::DeleteObject( hPen );
00998
00999     return nLength;
01000 }
01001 #endif
01002
01003
01004 /*[EOF]*/
01005
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New3.cpp

sakura_core

CEditView_New3.cpp

試験機能？実体無し [詳細]

#include "stdafx.h"

CEditView_New3.cppのインクルード依存関係図

ソースコードを見る。

説明

試験機能？実体無し

作者:
Norio Nakatani

CEditView_New3.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_New3.cpp ソースファイル

sakura_core

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 "CEditView.h"
00023 #include "debug.h"
00024 #include "keycode.h"
00025 #include "funccode.h"
00026 #include "CRunningTimer.h"
00027 #include "charcode.h"
00028 #include "mymessage.h"
00029 #include "CWaitCursor.h"
00030 #include "CEditWnd.h"
00031 #include "CShareData.h"
00032 #include "CDlgCancel.h"
00033 #include "sakura_rc.h"
00034
00035 #ifdef _DEBUG
00036 //★★★テスト用非公開機能★★★
00037 /* ルーラー描画 */
00038 void CEditView::DispRulerEx( HDC hdc )
00039 {
00040     if( !GetDrawSwitch() ){
00041         return;
00042     }
00043     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
00044         return;
00045     }
00046
00047     /* 描画処理 */
00048     HBRUSH      hBrush;
00049     HBRUSH      hBrushOld;
00050     HRGN        hRgn;
00051     RECT        rc;
00052     RECT        rc2;
00053     int         i;
00054     int         nX;
00055     int         nY;
00056     LOGFONT lf;
00057     HFONT       hFont;
00058     HFONT       hFontOld;
00059     char        szColm[32];
00060 //  SIZE        size;
00061     HPEN        hPen;
00062     HPEN        hPenOld;
00063     int         nROP_Old;
00064     COLORREF    colTextOld;
00065     int         nToX;
00066     SIZE        sizFont;
00067
00068     /* LOGFONTの初期化 */
00069     memset_raw( &lf, 0, sizeof(lf) );
00070     lf.lfHeight         = -11;
00071     lf.lfWidth          = 5;
00072     lf.lfEscapement     = 0;
00073     lf.lfOrientation    = 0;
00074     lf.lfWeight         = 400;
00075     lf.lfItalic         = 0;
00076     lf.lfUnderline      = 0;
00077     lf.lfStrikeOut      = 0;
00078     lf.lfCharSet        = 0;
00079     lf.lfOutPrecision   = 3;
00080     lf.lfClipPrecision  = 2;
00081     lf.lfQuality        = 1;
00082     lf.lfPitchAndFamily = 34;
00083     strcpy( lf.lfFaceName, "Arial" );
00084     hFont = ::CreateFontIndirect( &lf );
00085     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00086     ::GetTextExtentPoint32W( hdc, "X", 1, &sizFont );
00087     ::SetBkMode( hdc, TRANSPARENT );
00088
00089     /* 背景 */
00090     hPen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DHILIGHT ) );
00091     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00092     ::MoveToEx( hdc, 0, 0, NULL );
00093     ::LineTo( hdc, GetAreaRight(), 0 );
00094     ::SelectObject( hdc, hPenOld );
00095     ::DeleteObject( hPen );
00096
00097
00098     hPen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DFACE ) );
00099     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00100     ::MoveToEx( hdc, 0, 1, NULL );
00101     ::LineTo( hdc, GetAreaRight(), 1 );
00102     ::MoveToEx( hdc, 0, GetRulerHeight() - 2, NULL );
00103     ::LineTo( hdc, GetAreaRight(), GetRulerHeight() - 2 );
00104     ::MoveToEx( hdc, 0, GetRulerHeight() - 3, NULL );
00105     ::LineTo( hdc, GetAreaRight(), GetRulerHeight() - 3 );
00106     ::SelectObject( hdc, hPenOld );
00107     ::DeleteObject( hPen );
00108
00109
00110     hPen = ::CreatePen( PS_SOLID, 0, /*RGB( 255, 0, 0 )*/::GetSysColor( COLOR_3DSHADOW ) );
00111     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00112     ::MoveToEx( hdc, 0, GetRulerHeight() - 1, NULL );
00113     ::LineTo( hdc, GetAreaRight(), GetRulerHeight() - 1 );
00114     ::SelectObject( hdc, hPenOld );
00115     ::DeleteObject( hPen );
00116
00117
00118
00119     rc.left = GetAreaLeft() - 2;
00120     rc.top = 2;
00121     rc.right = GetAreaLeft() + (m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - GetViewLeftCol()) * GetHankakuDx() + 2;
00122     if( rc.right > GetAreaRight() + 2 ){
00123         rc.right = GetAreaRight() + 2;
00124     }
00125     rc.bottom = GetRulerHeight() - 3;
00126     CSplitBoxWnd::Draw3dRect( hdc,
00127         rc.left,
00128         rc.top,
00129         rc.right - rc.left,
00130         rc.bottom - rc.top,
00131         ::GetSysColor( COLOR_3DSHADOW ),
00132         ::GetSysColor( COLOR_3DHILIGHT )
00133     );
00134
00135
00136     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00137     rc2.left = 0;
00138     rc2.top = 1;
00139     rc2.right = rc.left;
00140     rc2.bottom = GetRulerHeight() - 1;
00141     ::FillRect( hdc, &rc2, hBrush );
00142     ::DeleteObject( hBrush );
00143
00144     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00145     rc2.left = rc.right;
00146     rc2.top = 1;
00147     rc2.right = GetAreaRight() + 2;
00148     rc2.bottom = GetRulerHeight() - 1;
00149     ::FillRect( hdc, &rc2, hBrush );
00150     ::DeleteObject( hBrush );
00151
00152
00153     rc.left++;
00154     rc.top++;
00155     rc.right--;
00156     rc.bottom--;
00157     CSplitBoxWnd::Draw3dRect( hdc,
00158         rc.left,
00159         rc.top,
00160         rc.right - rc.left,
00161         rc.bottom - rc.top,
00162         ::GetSysColor( COLOR_3DDKSHADOW ),
00163         ::GetSysColor( COLOR_3DSHADOW )
00164     );
00165
00166
00167
00168
00169     hBrush = ::CreateSolidBrush( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colBACK );
00170     rc.left++;
00171     rc.top++;
00172     rc.right--;
00173     rc.bottom--;
00174     ::FillRect( hdc, &rc, hBrush );
00175     ::DeleteObject( hBrush );
00176
00177
00178
00179     nX = GetAreaLeft();
00180 //  nY = GetRulerHeight() - 2;
00181     nY = (rc.top + rc.bottom) / 2;
00182
00183 //  hPen = ::CreatePen( PS_SOLID, 0, RGB( 0, 0, 0 ) );
00184     hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00185     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00186 //  colTextOld = ::SetTextColor( hdc, RGB( 0, 0, 0 ) );
00187     colTextOld = ::SetTextColor( hdc, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00188
00189     nToX = GetAreaRight();
00190
00191     nToX = GetAreaLeft() + (m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - GetViewLeftCol()) * GetHankakuDx();
00192     if( nToX > GetAreaRight() ){
00193         nToX = GetAreaRight();
00194     }
00195
00196 //  ::MoveToEx( hdc, GetAreaLeft(), nY + 1, NULL );
00197 //  ::LineTo( hdc, nToX/*GetAreaRight()*/, nY + 1 );
00198
00199
00200     for( i = GetViewLeftCol();
00201         i <= GetRightCol() + 1
00202 //   && i <= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00203      && i < m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00204         i++
00205     ){
00206         if( 0 < i && 0 == ( (i) % 10 ) ){
00207 //          ::MoveToEx( hdc, nX, rc.top, NULL );
00208 //          ::LineTo( hdc, nX, rc.bottom );
00209 //          ::MoveToEx( hdc, nX, nY - 6, NULL );
00210 //          ::LineTo( hdc, nX, nY + 7 );
00211
00212             ::MoveToEx( hdc, nX, GetRulerHeight() - 3, NULL );
00213             ::LineTo( hdc, nX, GetRulerHeight() - 5 );
00214
00215 //          ::MoveToEx( hdc, nX, 0, NULL );
00216 //          ::LineTo( hdc, nX, 2 );
00217
00218
00219             _itow( (i) / 10, szColm, 10 );
00220
00221             SIZE sz;
00222             int nColmLen = lstrlen( szColm );
00223             // 文字列の幅と高さを計算します。
00224             ::GetTextExtentPoint32W( hdc, szColm, nColmLen, &sz );
00225 //          ::TextOutW_AnyBuild( hdc, nX + 2 + 0, nY - (sizFont.cy / 2), szColm, nColmLen );
00226 			::TextOutW_AnyBuild( hdc, nX - ( sz.cx / 2 ) + 1, nY - (sizFont.cy / 2), szColm, nColmLen );
00227         }else
00228         if( 0 < i && 0 == ( (i) % 5 ) ){
00229             ::MoveToEx( hdc, nX, nY - 1, NULL );
00230             ::LineTo( hdc, nX, nY + 2 );
00231         }else{
00232 //          ::MoveToEx( hdc, nX, nY , NULL );
00233 //          ::LineTo( hdc, nX, nY + 1 );
00234         }
00235         nX += GetHankakuDx();
00236     }
00237     ::SetTextColor( hdc, colTextOld );
00238     ::SelectObject( hdc, hPenOld );
00239     ::DeleteObject( hPen );
00240
00241 //  return;
00242
00243     if( GetViewLeftCol() <= GetCaret().GetCaretLayoutPos().GetX()
00244      && GetRightCol() + 2 >= GetCaret().GetCaretLayoutPos().GetX()
00245     ){
00246         if( 0 == GetCaret().GetCaretSize().cx ){
00247             hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00248         }else{
00249             hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00250         }
00251         rc.left = GetAreaLeft() + ( GetCaret().GetCaretLayoutPos().GetX() - GetViewLeftCol() ) * GetHankakuDx() + 1;
00252 //      rc.top = 0;
00253         rc.right = rc.left + GetHankakuWidth();
00254 //      rc.bottom = GetRulerHeight() - 1;
00255         nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
00256         hRgn = ::CreateRectRgnIndirect( &rc );
00257         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00258         ::PaintRgn( hdc, hRgn );
00259         ::SelectObject( hdc, hBrushOld );
00260         ::DeleteObject( hRgn );
00261 //      ::FillRect( hdc, &rc, hBrush );
00262         ::DeleteObject( hBrush );
00263         ::SetROP2( hdc, nROP_Old );
00264     }
00265 /***
00266     rc.left = 0;
00267     rc.top = 0;
00268     rc.right = GetAreaRight();
00269     rc.bottom = GetRulerHeight();
00270     CSplitBoxWnd::Draw3dRect(
00271         hdc,
00272         rc.left, rc.top, rc.right, rc.bottom,
00273         ::GetSysColor( COLOR_3DHILIGHT ),
00274         ::GetSysColor( COLOR_3DSHADOW )
00275     );
00276 ***/
00277     ::SelectObject( hdc, hFontOld );
00278     ::DeleteObject( hFont );
00279     return;
00280 }
00281 #endif //#ifdef _DEBUG
00282 #endif //#if 0
00283
00284
00285 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Paint.cpp

sakura_core

CEditView_Paint.cpp

#include "stdafx.h"
#include "CEditView_Paint.h"
#include "CEditView.h"
#include <vector>

CEditView_Paint.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Paint.cpp ソースファイル

sakura_core

CEditView_Paint.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CEditView_Paint.h"
00003 #include "CEditView.h"
00004 #include <vector>
00005
00006 /*
00007     PAINT_LINENUMBER = (1<<0), //!< 行番号
00008     PAINT_RULER      = (1<<1), //!< ルーラー
00009     PAINT_BODY       = (1<<2), //!< 本文
00010 */
00011
00012 void CEditView_Paint::Call_OnPaint(
00013     int nPaintFlag,
00014     bool bUseMemoryDC
00015 )
00016 {
00017     CEditView* pView = GetEditView();
00018
00019     //各要素
00020     CMyRect rcLineNumber(0,pView->GetTextArea().GetAreaTop(),pView->GetTextArea().GetAreaLeft(),pView->GetTextArea().GetAreaBottom());
00021     CMyRect rcRuler(pView->GetTextArea().GetAreaLeft(),0,pView->GetTextArea().GetAreaRight(),pView->GetTextArea().GetAreaTop());
00022     CMyRect rcBody(pView->GetTextArea().GetAreaLeft(),pView->GetTextArea().GetAreaTop(),pView->GetTextArea().GetAreaRight(),pView->GetTextArea().GetAreaBottom());
00023
00024     //領域を作成 -> rc
00025     std::vector<CMyRect> rcs;
00026     if(nPaintFlag & PAINT_LINENUMBER)rcs.push_back(rcLineNumber);
00027     if(nPaintFlag & PAINT_RULER)rcs.push_back(rcRuler);
00028     if(nPaintFlag & PAINT_BODY)rcs.push_back(rcBody);
00029     if(rcs.size()==0)return;
00030     CMyRect rc=rcs[0];
00031     for(int i=1;i<(int)rcs.size();i++)
00032         rc=MergeRect(rc,rcs[i]);
00033
00034     //描画
00035     PAINTSTRUCT ps;
00036     ps.rcPaint = rc;
00037     HDC hdc = ::GetDC( pView->m_hWnd );
00038     pView->OnPaint( hdc, &ps, bUseMemoryDC );
00039     ::ReleaseDC( pView->m_hWnd, hdc );
00040 }
00041
00042
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Paint.h

sakura_core

CEditView_Paint.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CEditView_Paint

列挙型

enum | EPaintArea { PAINT_LINENUMBER = (1<<0), PAINT_RULER = (1<<1), PAINT_BODY = (1<<2), PAINT_ALL = PAINT_LINENUMBER | PAINT_RULER | PAINT_BODY }
クリッピング領域を計算する際のフラグ [詳細]

列挙型

enum EPaintArea

クリッピング領域を計算する際のフラグ

列挙型の値:
PAINT_LINENUMBER | 行番号
PAINT_RULER | ルーラー
PAINT_BODY | 本文
PAINT_ALL | ぜんぶ

CEditView_Paint.h の 7 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditView_Paint.h ソースファイル

sakura_core

CEditView_Paint.h

説明を見る。
00001 #pragma once
00002
00003 class CEditView;
00004
00005
00007 enum EPaintArea{
00008     PAINT_LINENUMBER = (1<<0),
00009     PAINT_RULER      = (1<<1),
00010     PAINT_BODY       = (1<<2),
00011
00012     //特殊
00013     PAINT_ALL        = PAINT_LINENUMBER | PAINT_RULER | PAINT_BODY,
00014 };
00015
00016 class CEditView_Paint{
00017 public:
00018     virtual CEditView* GetEditView()=0;
00019
00020 public:
00021     virtual ~CEditView_Paint(){}
00022     void Call_OnPaint(
00023         int nPaintFlag,
00024         bool bUseMemoryDC
00025     );
00026 };
Sakura-Editorに対してSat Nov 17 20:24:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditWnd.cpp

sakura_core

CEditWnd.cpp

編集ウィンドウ（外枠）管理クラス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <winuser.h>
#include <mbctype.h>
#include <mbstring.h>
#include "CControlTray.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 "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"
#include "CharPointer.h"
#include "CEditApp.h"
#include "util/module.h"
#include "util/os.h"
#include "util/window.h"
#include "util/shell.h"
#include "util/file.h"
#include "util/string_ex2.h"
#include <shlobj.h>

ソースコードを見る。

マクロ定義

#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

関数

LRESULT CALLBACK | CEditWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL | MyIsDialogMessage (HWND hwnd, MSG *msg)

説明

編集ウィンドウ（外枠）管理クラス

作者:
Norio Nakatani

CEditWnd.cpp で定義されています。

マクロ定義

#define DDASTEXT

#define TBSTYLE_ALTDRAG 0x0400

CEditWnd.cpp の 66 行で定義されています。

#define TBSTYLE_FLAT 0x0800

CEditWnd.cpp の 69 行で定義されています。

参照元 CMainToolBar::CreateToolBar().

#define TBSTYLE_LIST 0x1000

CEditWnd.cpp の 72 行で定義されています。

#define WM_MOUSEWHEEL 0x020A

CEditWnd.cpp の 76 行で定義されています。

#define WM_THEMECHANGED 0x031A

CEditWnd.cpp の 81 行で定義されています。

参照元 CEditWnd::DispatchEvent(), と CTabWnd::TabWndDispatchEvent().

#define YOHAKU_X 4

CEditWnd.cpp の 84 行で定義されています。

#define YOHAKU_Y 4

CEditWnd.cpp の 85 行で定義されています。

関数

LRESULT CALLBACK CEditWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CEditWnd.cpp の 96 行で定義されています。

参照先 CEditWnd::DispatchEvent(), GetWindowLongPtr, と GWLP_USERDATA.

参照元 CEditWnd::_CreateMainWindow().

static BOOL MyIsDialogMessage | ( | HWND | hwnd,
 |  | MSG * | msg |
 | ) |  |  | [static]

CEditWnd.cpp の 686 行で定義されています。

参照先 FALSE, と NULL.

参照元 CEditWnd::MessageLoop().

Sakura-Editorに対してSat Nov 17 20:25:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditWnd.cpp ソースファイル

sakura_core

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 <mbctype.h>
00026 #include <mbstring.h>
00027
00028 #include "CControlTray.h"
00029 #include "CEditWnd.h"
00030 #include "sakura_rc.h"
00031 #include "CEditDoc.h"
00032 #include "CDocLine.h"
00033 #include "debug.h"
00034 #include "CDlgAbout.h"
00035 #include "mymessage.h"
00036 #include "CShareData.h"
00037 #include "CPrint.h"
00038 #include "charcode.h"
00039 #include "global.h"
00040 #include "CDlgPrintSetting.h"
00041 #include "CDlgPrintPage.h"
00042 #include "funccode.h"       // Stonee, 2001/03/12
00043 #include "CPrintPreview.h"
00044 #include "CMarkMgr.h"
00045 #include "CCommandLine.h"
00046 #include "CSMacroMgr.h" // Jun. 16, 2002 genta
00047 #include "COsVersioninfo.h" // Sep. 6, 2003 genta
00048 #include "CRunningTimer.h"
00049 #include "KeyCode.h"
00050 #include "CharPointer.h"
00051 #include "CEditApp.h"
00052 #include "util/module.h"
00053 #include "util/os.h"
00054 #include "util/window.h"
00055 #include "util/shell.h"
00056 #include "util/file.h"
00057 #include "util/string_ex2.h"
00058 #include <shlobj.h>
00059
00060
00061
00062 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたので
00063 //  定義を削除
00064
00065 #ifndef TBSTYLE_ALTDRAG
00066     #define TBSTYLE_ALTDRAG 0x0400
00067 #endif
00068 #ifndef TBSTYLE_FLAT
00069     #define TBSTYLE_FLAT    0x0800
00070 #endif
00071 #ifndef TBSTYLE_LIST
00072     #define TBSTYLE_LIST    0x1000
00073 #endif
00074
00075 #ifndef WM_MOUSEWHEEL
00076     #define WM_MOUSEWHEEL   0x020A
00077 #endif
00078
00079 // 2006.06.17 ryoji WM_THEMECHANGED
00080 #ifndef WM_THEMECHANGED
00081 #define WM_THEMECHANGED     0x031A
00082 #endif
00083
00084 #define     YOHAKU_X        4       /* ウィンドウ内の枠と紙の隙間最小値 */
00085 #define     YOHAKU_Y        4       /* ウィンドウ内の枠と紙の隙間最小値 */
00086 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたので
00087 //  定義を削除
00088
00089
00090
00091
00092
00093 //  /* メッセージループ */
00094 //  DWORD MessageLoop_Thread( DWORD pCEditWndObject );
00095
00096 LRESULT CALLBACK CEditWndProc(
00097     HWND    hwnd,   // handle of window
00098     UINT    uMsg,   // message identifier
00099     WPARAM  wParam, // first message parameter
00100     LPARAM  lParam  // second message parameter
00101 )
00102 {
00103     CEditWnd* pcWnd = ( CEditWnd* )::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00104     if( pcWnd ){
00105         return pcWnd->DispatchEvent( hwnd, uMsg, wParam, lParam );
00106     }
00107     return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00108 }
00109
00110 #pragma warning(disable:4355) //「thisポインタが初期化リストで使用されました」の警告を無効化
00111
00112 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00113 CEditWnd::CEditWnd()
00114 : m_hWnd( NULL )
00115 , m_bDragMode( FALSE )
00116 , m_uMSIMEReconvertMsg( ::RegisterWindowMessage( RWM_RECONVERT ) ) // 20020331 aroka 再変換対応 for 95/NT
00117 , m_uATOKReconvertMsg( ::RegisterWindowMessage( MSGNAME_ATOK_RECONVERT ) )
00118 , m_pPrintPreview( NULL ) //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00119 , m_pszWndClass( GSTR_EDITWINDOWNAME )
00120 , m_pszLastCaption( NULL )
00121 , m_nCurrentFocus( 0 )
00122 , m_bIsActiveApp( FALSE )
00123 , m_IconClicked(icNone) //by 鬼(2)
00124 , m_cToolbar(this)
00125 , m_cStatusBar(this)
00126 , m_nActivePaneIndex( 0 )
00127 {
00128     g_pcEditWnd=this;
00129     for(int i=0;i<4;i++)
00130         m_pcEditViewArr[i]=new CEditView(this);
00131
00132     //  Dec. 4, 2002 genta
00133     InitMenubarMessageFont();
00134
00135     /* 共有データ構造体のアドレスを返す */
00136     m_pShareData = CShareData::getInstance()->GetShareData();
00137 }
00138
00139 CEditWnd::~CEditWnd()
00140 {
00141     g_pcEditWnd=NULL;
00142
00143     delete[] m_pszLastCaption;
00144
00145     for(int i=0;i<4;i++)
00146         delete m_pcEditViewArr[i];
00147
00148     //  Dec. 4, 2002 genta
00149     /* キャレットの行桁位置表示用フォント */
00150     ::DeleteObject( m_hFontCaretPosInfo );
00151
00152     m_hWnd = NULL;
00153 }
00154
00155
00156
00157
00159 void CEditWnd::_GetWindowRectForInit(CMyRect* rcResult, int nGroup, const STabGroupInfo& sTabGroupInfo)
00160 {
00161     /* ウィンドウサイズ継承 */
00162     int nWinCX, nWinCY;
00163     //  2004.05.13 Moca m_Common.m_nSaveWindowSizeをBOOLからenumに変えたため
00164     if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_sWindow.m_nSaveWindowSize ){
00165         nWinCX = m_pShareData->m_Common.m_sWindow.m_nWinSizeCX;
00166         nWinCY = m_pShareData->m_Common.m_sWindow.m_nWinSizeCY;
00167     }else{
00168         nWinCX = CW_USEDEFAULT;
00169         nWinCY = 0;
00170     }
00171
00172     /* ウィンドウサイズ指定 */
00173     FileInfo fi;
00174     CCommandLine::Instance()->GetFileInfo(fi);
00175     if( fi.m_nWindowSizeX >= 0 ){
00176         nWinCX = fi.m_nWindowSizeX;
00177     }
00178     if( fi.m_nWindowSizeY >= 0 ){
00179         nWinCY = fi.m_nWindowSizeY;
00180     }
00181
00182     /* ウィンドウ位置指定 */
00183     int nWinOX, nWinOY;
00184     nWinOX = CW_USEDEFAULT;
00185     nWinOY = 0;
00186     // ウィンドウ位置固定
00187     //  2004.05.13 Moca 保存したウィンドウ位置を使う場合は共有メモリからセット
00188     if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_sWindow.m_nSaveWindowPos ){
00189         nWinOX =  m_pShareData->m_Common.m_sWindow.m_nWinPosX;
00190         nWinOY =  m_pShareData->m_Common.m_sWindow.m_nWinPosY;
00191     }
00192
00193     //  2004.05.13 Moca マルチディスプレイでは負の値も有効なので，
00194     //  未設定の判定方法を変更．(負の値→CW_USEDEFAULT)
00195     if( fi.m_nWindowOriginX != CW_USEDEFAULT ){
00196         nWinOX = fi.m_nWindowOriginX;
00197     }
00198     if( fi.m_nWindowOriginY != CW_USEDEFAULT ){
00199         nWinOY = fi.m_nWindowOriginY;
00200     }
00201
00202     // 必要なら、タブグループにフィットするよう、変更
00203     if(sTabGroupInfo.IsValid()){
00204         RECT rcWork, rcMon;
00205         GetMonitorWorkRect( sTabGroupInfo.hwndTop, &rcWork, &rcMon );
00206
00207         const WINDOWPLACEMENT& wpTop = sTabGroupInfo.wpTop;
00208         nWinCX = wpTop.rcNormalPosition.right  - wpTop.rcNormalPosition.left;
00209         nWinCY = wpTop.rcNormalPosition.bottom - wpTop.rcNormalPosition.top;
00210         nWinOX = wpTop.rcNormalPosition.left   + (rcWork.left - rcMon.left);
00211         nWinOY = wpTop.rcNormalPosition.top    + (rcWork.top - rcMon.top);
00212     }
00213
00214     //結果
00215     rcResult->SetXYWH(nWinOX,nWinOY,nWinCX,nWinCY);
00216 }
00217
00218 HWND CEditWnd::_CreateMainWindow(int nGroup, const STabGroupInfo& sTabGroupInfo)
00219 {
00220     // -- -- -- -- ウィンドウクラス登録 -- -- -- -- //
00221     WNDCLASSEX  wc;
00222     //  Apr. 27, 2000 genta
00223     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00224     wc.style            = CS_DBLCLKS | CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
00225     wc.lpfnWndProc      = CEditWndProc;
00226     wc.cbClsExtra       = 0;
00227     wc.cbWndExtra       = 32;
00228     wc.hInstance        = m_hInstance;
00229     //  Dec, 2, 2002 genta アイコン読み込み方法変更
00230     wc.hIcon            = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
00231
00232     wc.hCursor          = NULL/*LoadCursor( NULL, IDC_ARROW )*/;
00233     wc.hbrBackground    = (HBRUSH)NULL/*(COLOR_3DSHADOW + 1)*/;
00234     wc.lpszMenuName     = MAKEINTRESOURCE( IDR_MENU1 );
00235     wc.lpszClassName    = m_pszWndClass;
00236
00237     //  Dec. 6, 2002 genta
00238     //  small icon指定のため RegisterClassExに変更
00239     wc.cbSize           = sizeof( wc );
00240     wc.hIconSm          = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
00241     ATOM    atom = RegisterClassEx( &wc );
00242     if( 0 == atom ){
00243         //  2004.05.13 Moca return NULLを有効にした
00244         return NULL;
00245     }
00246
00247     //矩形取得
00248     CMyRect rc;
00249     _GetWindowRectForInit(&rc, nGroup, sTabGroupInfo);
00250
00251     //作成
00252     HWND hwndResult = ::CreateWindowEx(
00253         0,                  // extended window style
00254         m_pszWndClass,      // pointer to registered class name
00255         m_pszWndClass,      // pointer to window name
00256         WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,  // window style
00257         rc.left,            // horizontal position of window
00258         rc.top,             // vertical position of window
00259         rc.Width(),         // window width
00260         rc.Height(),        // window height
00261         NULL,               // handle to parent or owner window
00262         NULL,               // handle to menu or child-window identifier
00263         m_hInstance,        // handle to application instance
00264         NULL                // pointer to window-creation data
00265     );
00266     return hwndResult;
00267 }
00268
00269 void CEditWnd::_GetTabGroupInfo(STabGroupInfo* pTabGroupInfo, int& nGroup)
00270 {
00271     HWND hwndTop = NULL;
00272     WINDOWPLACEMENT wpTop = {0};
00273
00274     //From Here @@@ 2003.05.31 MIK
00275     //タブウインドウの場合は現状値を指定
00276     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
00277     {
00278         if( nGroup < 0 )    // 不正なグループID
00279             nGroup = 0; // グループ指定無し（最近アクティブのグループに入れる）
00280         EditNode*   pEditNode = CShareData::getInstance()->GetEditNodeAt( nGroup, 0 );  // グループの先頭ウィンドウ情報を取得  // 2007.06.20 ryoji
00281         hwndTop = pEditNode? pEditNode->GetHwnd(): NULL;
00282
00283         if( hwndTop )
00284         {
00285             //  Sep. 11, 2003 MIK 新規TABウィンドウの位置が上にずれないように
00286             // 2007.06.20 ryoji 非プライマリモニタまたはタスクバーを動かした後でもずれないように
00287
00288             wpTop.length = sizeof(wpTop);
00289             if( ::GetWindowPlacement( hwndTop, &wpTop ) ){  // 現在の先頭ウィンドウから位置を取得
00290                 if( wpTop.showCmd == SW_SHOWMINIMIZED )
00291                     wpTop.showCmd = pEditNode->m_showCmdRestore;
00292             }
00293             else{
00294                 hwndTop = NULL;
00295             }
00296         }
00297     }
00298     //To Here @@@ 2003.05.31 MIK
00299
00300     //結果
00301     pTabGroupInfo->hwndTop = hwndTop;
00302     pTabGroupInfo->wpTop = wpTop;
00303 }
00304
00305 void CEditWnd::_AdjustInMonitor(const STabGroupInfo& sTabGroupInfo)
00306 {
00307     RECT    rcOrg;
00308     RECT    rcDesktop;
00309 //  int     nWork;
00310
00311     //  May 01, 2004 genta マルチモニタ対応
00312 	::GetMonitorWorkRect( GetHwnd(), &rcDesktop );
00313     ::GetWindowRect( GetHwnd(), &rcOrg );
00314
00315     // 2005.11.23 Moca マルチモニタ等で問題があったため計算方法変更
00316     /* ウィンドウ位置調整 */
00317     if( rcOrg.bottom > rcDesktop.bottom ){
00318         rcOrg.top -= rcOrg.bottom - rcDesktop.bottom;
00319         rcOrg.bottom = rcDesktop.bottom;    //@@@ 2002.01.08
00320     }
00321     if( rcOrg.right > rcDesktop.right ){
00322         rcOrg.left -= rcOrg.right - rcDesktop.right;
00323         rcOrg.right = rcDesktop.right;  //@@@ 2002.01.08
00324     }
00325
00326     if( rcOrg.top < rcDesktop.top ){
00327         rcOrg.bottom += rcDesktop.top - rcOrg.top;
00328         rcOrg.top = rcDesktop.top;
00329     }
00330     if( rcOrg.left < rcDesktop.left ){
00331         rcOrg.right += rcDesktop.left - rcOrg.left;
00332         rcOrg.left = rcDesktop.left;
00333     }
00334
00335     /* ウィンドウサイズ調整 */
00336     if( rcOrg.bottom > rcDesktop.bottom ){
00337         //rcOrg.bottom = rcDesktop.bottom - 1;  //@@@ 2002.01.08
00338         rcOrg.bottom = rcDesktop.bottom;    //@@@ 2002.01.08
00339     }
00340     if( rcOrg.right > rcDesktop.right ){
00341         //rcOrg.right = rcDesktop.right - 1;    //@@@ 2002.01.08
00342         rcOrg.right = rcDesktop.right;  //@@@ 2002.01.08
00343     }
00344
00345     //From Here @@@ 2003.06.13 MIK
00346     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd
00347         && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin
00348         && sTabGroupInfo.hwndTop )
00349     {
00350         // 現在の先頭ウィンドウから WS_EX_TOPMOST 状態を引き継ぐ // 2007.05.18 ryoji
00351         DWORD dwExStyle = (DWORD)::GetWindowLongPtr( sTabGroupInfo.hwndTop, GWL_EXSTYLE );
00352         ::SetWindowPos( GetHwnd(), (dwExStyle & WS_EX_TOPMOST)? HWND_TOPMOST: HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00353
00354         //タブウインドウ時は現状を維持
00355         /* ウィンドウサイズ継承 */
00356         if( sTabGroupInfo.wpTop.showCmd == SW_SHOWMAXIMIZED )
00357         {
00358             ::ShowWindow( GetHwnd(), SW_SHOWMAXIMIZED );
00359         }
00360         else
00361         {
00362             ::ShowWindow( GetHwnd(), SW_SHOW );
00363         }
00364     }
00365     else
00366     {
00367         ::SetWindowPos(
00368             GetHwnd(), 0,
00369             rcOrg.left, rcOrg.top,
00370             rcOrg.right - rcOrg.left, rcOrg.bottom - rcOrg.top,
00371             SWP_NOOWNERZORDER | SWP_NOZORDER
00372         );
00373
00374         /* ウィンドウサイズ継承 */
00375         if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_sWindow.m_nSaveWindowSize &&
00376             m_pShareData->m_Common.m_sWindow.m_nWinSizeType == SIZE_MAXIMIZED ){
00377             ::ShowWindow( GetHwnd(), SW_SHOWMAXIMIZED );
00378         }else
00379         // 2004.05.14 Moca ウィンドウサイズを直接指定する場合は、最小化表示を受け入れる
00380         if( WINSIZEMODE_SET == m_pShareData->m_Common.m_sWindow.m_nSaveWindowSize &&
00381             m_pShareData->m_Common.m_sWindow.m_nWinSizeType == SIZE_MINIMIZED ){
00382             ::ShowWindow( GetHwnd(), SW_SHOWMINIMIZED );
00383         }
00384         else{
00385             ::ShowWindow( GetHwnd(), SW_SHOW );
00386         }
00387     }
00388     //To Here @@@ 2003.06.13 MIK
00389 }
00390
00397 HWND CEditWnd::Create(
00398     HINSTANCE       hInstance,
00399     int             nGroup
00400 )
00401 {
00402     MY_RUNNINGTIMER( cRunningTimer, L"CEditWnd::Create" );
00403
00404     //メンバ変数の初期化
00405     m_hInstance = hInstance;
00406
00407     //ウィンドウ数制限
00408     if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正   //@@@ 2003.05.31 MIK
00409         OkMessage( NULL, _T("編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。"), MAX_EDITWINDOWS );
00410         return NULL;
00411     }
00412
00413     //タブグループ情報取得
00414     STabGroupInfo sTabGroupInfo;
00415     _GetTabGroupInfo(&sTabGroupInfo, nGroup);
00416
00417
00418     // -- -- -- -- ウィンドウ作成 -- -- -- -- //
00419     HWND hWnd = _CreateMainWindow(nGroup, sTabGroupInfo);
00420     if(!hWnd)return NULL;
00421     m_hWnd = hWnd;
00422 	::SetWindowLongPtr( GetHwnd(), GWLP_USERDATA, (LONG_PTR)this );
00423
00424     //コモンコントロール初期化
00425     MyInitCommonControls();
00426
00427     //イメージ、ヘルパなどの作成
00428     m_CMenuDrawer.Create( m_hInstance, GetHwnd(), &CEditApp::Instance()->GetIcons() );
00429
00430
00431     // -- -- -- -- 子ウィンドウ作成 -- -- -- -- //
00432
00433     /* 分割フレーム作成 */
00434     m_cSplitterWnd.Create( m_hInstance, GetHwnd(), this );
00435
00436     /* ビュー */
00437     m_pcEditViewArr[0]->Create( m_hInstance, m_cSplitterWnd.GetHwnd(), &GetDocument(), 0, TRUE  );
00438     m_pcEditViewArr[1]->Create( m_hInstance, m_cSplitterWnd.GetHwnd(), &GetDocument(), 1, FALSE );
00439     m_pcEditViewArr[2]->Create( m_hInstance, m_cSplitterWnd.GetHwnd(), &GetDocument(), 2, FALSE );
00440     m_pcEditViewArr[3]->Create( m_hInstance, m_cSplitterWnd.GetHwnd(), &GetDocument(), 3, FALSE );
00441
00442     m_pcEditViewArr[0]->OnSetFocus();
00443
00444     /* 子ウィンドウの設定 */
00445     HWND        hWndArr[4];
00446     hWndArr[0] = m_pcEditViewArr[0]->GetHwnd();
00447     hWndArr[1] = m_pcEditViewArr[1]->GetHwnd();
00448     hWndArr[2] = m_pcEditViewArr[2]->GetHwnd();
00449     hWndArr[3] = m_pcEditViewArr[3]->GetHwnd();
00450     m_cSplitterWnd.SetChildWndArr( hWndArr );
00451
00452     MY_TRACETIME( cRunningTimer, L"View created" );
00453
00454     // -- -- -- -- ダイアログ作成 -- -- -- -- //
00455
00456     /* 入力補完ウィンドウ作成 */
00457     m_cHokanMgr.DoModeless(
00458         m_hInstance,
00459         m_pcEditViewArr[0]->GetHwnd(),
00460         (LPARAM)m_pcEditViewArr[0]
00461     );
00462
00463     /* 設定プロパティシートの初期化１ */
00464     m_cPropCommon.Create( m_hInstance, GetHwnd(), &CEditApp::Instance()->GetIcons(), GetDocument().m_pcSMacroMgr, &GetMenuDrawer() );
00465     m_cPropTypes.Create( m_hInstance, GetHwnd() );
00466
00467     // -- -- -- -- 各種バー作成 -- -- -- -- //
00468
00469     /* ツールバー */
00470     LayoutToolBar();
00471
00472     /* ステータスバー */
00473     LayoutStatusBar();
00474
00475     /* ファンクションキー バー */
00476     LayoutFuncKey();
00477
00478     /* タブウインドウ */
00479     LayoutTabBar();
00480
00481     /* バーの配置終了 */
00482     EndLayoutBars( FALSE );
00483
00484
00485     // -- -- -- -- その他調整など -- -- -- -- //
00486     // デスクトップからはみ出さないようにする
00487     _AdjustInMonitor(sTabGroupInfo);
00488
00489     // ドロップされたファイルを受け入れる
00490     ::DragAcceptFiles( GetHwnd(), TRUE );
00491
00492     //アクティブ情報
00493     m_bIsActiveApp = ( ::GetActiveWindow() == GetHwnd() );  // 2007.03.08 ryoji
00494
00495     // エディタ−トレイ間でのUI特権分離の確認（Vista UIPI機能） 2007.06.07 ryoji
00496     if( COsVersionInfo().IsWinVista_or_later() ){
00497         m_bUIPI = FALSE;
00498         ::SendMessage( m_pShareData->m_hwndTray, MYWM_UIPI_CHECK,  (WPARAM)0, (LPARAM)GetHwnd() );
00499         if( !m_bUIPI ){ // 返事が返らない
00500 			::MYMESSAGEBOX_A( GetHwnd(), MB_OK | MB_ICONSTOP | MB_TOPMOST,
00501                 GSTR_APPNAME_A,
00502                 "エディタ間の対話に失敗しました。\n"
00503                 "権限レベルの異なるエディタが既に起動している可能性があります。"
00504             );
00505             ::DestroyWindow( GetHwnd() );
00506             m_hWnd = hWnd = NULL;
00507             return hWnd;
00508         }
00509     }
00510
00511     /* 編集ウィンドウリストへの登録 */
00512     if( FALSE == CShareData::getInstance()->AddEditWndList( GetHwnd(), nGroup ) ){  // 2007.06.26 ryoji nGroup引数追加
00513         OkMessage( GetHwnd(), _T("編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。"), MAX_EDITWINDOWS );
00514         ::DestroyWindow( GetHwnd() );
00515         m_hWnd = hWnd = NULL;
00516         return hWnd;
00517     }
00518     CShareData::getInstance()->SetTraceOutSource( GetHwnd() );  // TraceOut()起動元ウィンドウの設定  // 2006.06.26 ryoji
00519
00520     //  Aug. 29, 2003 wmlhq
00521     m_nTimerCount = 0;
00522     /* タイマーを起動 */ // タイマーのIDと間隔を変更 20060128 aroka
00523     if( 0 == ::SetTimer( GetHwnd(), IDT_EDIT, 500, NULL ) ){
00524 		::MYMESSAGEBOX( GetHwnd(), MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00525             _T("CEditWnd::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。")
00526         );
00527     }
00528     // ツールバーのタイマーを分離した 20060128 aroka
00529     Timer_ONOFF( TRUE );
00530
00531     //デフォルトのIMEモード設定
00532     GetDocument().SetImeMode( m_pShareData->m_Types[0].m_nImeState );
00533
00534     return GetHwnd();
00535 }
00536
00537
00538
00540 void CEditWnd::OpenDocumentWhenCreate(
00541     const TCHAR*    pszPath,
00542     ECodeType       nCharCode,
00543     bool            bReadOnly
00544 )
00545 {
00546     if( pszPath ){
00547         TCHAR   szPathNew[_MAX_PATH];
00548         _tcscpy( szPathNew, pszPath );
00549         ::ShowWindow( GetHwnd(), SW_SHOW );
00550         //  Oct. 03, 2004 genta コード確認は設定に依存
00551         bool    bOpened;
00552         bool    bReadResult = GetDocument().FileRead(
00553             szPathNew,
00554             &bOpened,
00555             nCharCode,
00556             bReadOnly,
00557             m_pShareData->m_Common.m_sFile.m_bQueryIfCodeChange!=0
00558         );
00559         if( !bReadResult ){
00560             /* ファイルが既に開かれている */
00561             if( bOpened ){
00562 				::PostMessageAny( GetHwnd(), WM_CLOSE, 0, 0 );
00563                 // 2004.07.12 Moca return NULLだと、メッセージループを通らずにそのまま破棄されてしまい、タブの終了処理が抜ける
00564                 //  この後は正常ルートでメッセージループに入った後WM_CLOSEを受信して直ちにCLOSE & DESTROYとなる．
00565                 //  その中で編集ウィンドウの削除が行われる．
00566             }
00567         }
00568     }
00569 }
00570
00571 void CEditWnd::SetDocumentTypeWhenCreate(
00572     ECodeType       nCharCode,
00573     bool            bReadOnly,
00574     int             nDocumentType
00575 )
00576 {
00577     //  Mar. 7, 2002 genta 文書タイプの強制指定
00578     //  Jun. 4 ,2004 genta ファイル名指定が無くてもタイプ強制指定を有効にする
00579     if( nDocumentType >= 0 ){
00580         GetDocument().SetDocumentType( nDocumentType, true );
00581         //  2002/05/07 YAZAKI タイプ別設定一覧の一時適用のコードを流用
00582         GetDocument().LockDocumentType();
00583         /* 設定変更を反映させる */
00584         GetDocument().OnChangeSetting();
00585     }
00586     //  Jun. 4 ,2004 genta ファイル名指定が無くても読みとり専用強制指定を有効にする
00587     GetDocument().m_bReadOnly = bReadOnly;
00588 }
00589
00590
00594 void CEditWnd::LayoutToolBar( void )
00595 {
00596     if( m_pShareData->m_Common.m_sWindow.m_bDispTOOLBAR ){  /* ツールバーを表示する */
00597         m_cToolbar.CreateToolBar();
00598     }else{
00599         m_cToolbar.DestroyToolBar();
00600     }
00601 }
00602
00606 void CEditWnd::LayoutStatusBar( void )
00607 {
00608     if( m_pShareData->m_Common.m_sWindow.m_bDispSTATUSBAR ){    /* ステータスバーを表示する */
00609         /* ステータスバー作成 */
00610         m_cStatusBar.CreateStatusBar();
00611     }
00612     else{
00613         /* ステータスバー破棄 */
00614         m_cStatusBar.DestroyStatusBar();
00615     }
00616 }
00617
00621 void CEditWnd::LayoutFuncKey( void )
00622 {
00623     BOOL        bSizeBox;
00624
00625     if( m_pShareData->m_Common.m_sWindow.m_bDispFUNCKEYWND ){   /* ファンクションキーを表示する */
00626         if( NULL == m_CFuncKeyWnd.GetHwnd() ){
00627             if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 ){    /* ファンクションキー表示位置／0:上 1:下 */
00628                 bSizeBox = FALSE;
00629             }else{
00630                 bSizeBox = TRUE;
00631                 /* ステータスバーがあるときはサイズボックスを表示しない */
00632                 if( m_cStatusBar.GetStatusHwnd() ){
00633                     bSizeBox = FALSE;
00634                 }
00635             }
00636             m_CFuncKeyWnd.Open( m_hInstance, GetHwnd(), &GetDocument(), bSizeBox );
00637         }
00638     }else{
00639         m_CFuncKeyWnd.Close();
00640     }
00641 }
00642
00646 void CEditWnd::LayoutTabBar( void )
00647 {
00648     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd ){   /* タブバーを表示する */
00649         if( NULL == m_cTabWnd.GetHwnd() ){
00650             m_cTabWnd.Open( m_hInstance, GetHwnd() );
00651         }
00652     }else{
00653         m_cTabWnd.Close();
00654     }
00655 }
00656
00661 void CEditWnd::EndLayoutBars( BOOL bAdjust/* = TRUE*/ )
00662 {
00663     int nCmdShow = m_pPrintPreview? SW_HIDE: SW_SHOW;
00664     HWND hwndToolBar = (NULL != m_cToolbar.GetRebarHwnd())? m_cToolbar.GetRebarHwnd(): m_cToolbar.GetToolbarHwnd();
00665     if( NULL != hwndToolBar )
00666         ::ShowWindow( hwndToolBar, nCmdShow );
00667     if( m_cStatusBar.GetStatusHwnd() )
00668         ::ShowWindow( m_cStatusBar.GetStatusHwnd(), nCmdShow );
00669     if( NULL != m_CFuncKeyWnd.GetHwnd() )
00670         ::ShowWindow( m_CFuncKeyWnd.GetHwnd(), nCmdShow );
00671     if( NULL != m_cTabWnd.GetHwnd() )
00672         ::ShowWindow( m_cTabWnd.GetHwnd(), nCmdShow );
00673
00674     if( bAdjust )
00675     {
00676         RECT        rc;
00677         m_cSplitterWnd.DoSplit( -1, -1 );
00678         ::GetClientRect( GetHwnd(), &rc );
00679 		::SendMessageAny( GetHwnd(), WM_SIZE, m_nWinSizeType, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
00680         ::RedrawWindow( GetHwnd(), NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW );    // ステータスバーに必要？
00681
00682         GetActiveView().SetIMECompFormPos();
00683     }
00684 }
00685
00686 static BOOL MyIsDialogMessage(HWND hwnd, MSG* msg)
00687 {
00688     if(hwnd==NULL)return FALSE;
00689     return ::IsDialogMessage(hwnd, msg);
00690 }
00691
00692 //複数プロセス版
00693 /* メッセージループ */
00694 //2004.02.17 Moca GetMessageのエラーチェック
00695 void CEditWnd::MessageLoop( void )
00696 {
00697     MSG msg;
00698     int ret;
00699
00700     while(GetHwnd())
00701     {
00702         //メッセージ取得
00703         ret = GetMessage(&msg,NULL,0,0);
00704         if(ret== 0)break; //WM_QUIT
00705         if(ret==-1)break; //GetMessage失敗
00706
00707         if(0){}
00708         //ダイアログメッセージ
00709         else if( MyIsDialogMessage( m_pPrintPreview->GetPrintPreviewBarHANDLE_Safe(),   &msg ) ){}
00710         else if( MyIsDialogMessage( m_cDlgFind.GetHwnd(),                               &msg ) ){}
00711         else if( MyIsDialogMessage( m_cDlgFuncList.GetHwnd(),                           &msg ) ){}
00712         else if( MyIsDialogMessage( m_cDlgReplace.GetHwnd(),                            &msg ) ){}
00713         else if( MyIsDialogMessage( m_cDlgGrep.GetHwnd(),                               &msg ) ){}
00714         else if( MyIsDialogMessage( m_cHokanMgr.GetHwnd(),                              &msg ) ){}
00715         else if( m_cToolbar.EatMessage(&msg ) ){ }
00716         //アクセラレータ
00717         else if( m_pShareData->m_hAccel && TranslateAccelerator( msg.hwnd, m_pShareData->m_hAccel, &msg ) ){}
00718         //通常メッセージ
00719         else{
00720             TranslateMessage( &msg );
00721             DispatchMessage( &msg );
00722         }
00723     }
00724 }
00725
00726
00727 LRESULT CEditWnd::DispatchEvent(
00728     HWND    hwnd,   // handle of window
00729     UINT    uMsg,   // message identifier
00730     WPARAM  wParam, // first message parameter
00731     LPARAM  lParam  // second message parameter
00732 )
00733 {
00734     int                 nRet;
00735     int                 idCtrl;
00736     LPNMHDR             pnmh;
00737     int                 nPane;
00738     FileInfo*           pfi;
00739     LPHELPINFO          lphi;
00740     const wchar_t*      pLine;
00741     CLogicInt           nLineLen;
00742
00743     UINT                idCtl;  /* コントロールのID */
00744     MEASUREITEMSTRUCT*  lpmis;
00745     LPDRAWITEMSTRUCT    lpdis;  /* 項目描画情報 */
00746     int                 nItemWidth;
00747     int                 nItemHeight;
00748     UINT                uItem;
00749     UINT                fuFlags;
00750     HMENU               hmenu;
00751     LRESULT             lRes;
00752
00753     switch( uMsg ){
00754     case WM_PAINTICON:
00755 //      MYTRACE_A( "WM_PAINTICON\n" );
00756         return 0;
00757     case WM_ICONERASEBKGND:
00758 //      MYTRACE_A( "WM_ICONERASEBKGND\n" );
00759         return 0;
00760     case WM_LBUTTONDOWN:
00761         return OnLButtonDown( wParam, lParam );
00762     case WM_MOUSEMOVE:
00763         return OnMouseMove( wParam, lParam );
00764     case WM_LBUTTONUP:
00765         return OnLButtonUp( wParam, lParam );
00766     case WM_MOUSEWHEEL:
00767         return OnMouseWheel( wParam, lParam );
00768     case WM_HSCROLL:
00769         return OnHScroll( wParam, lParam );
00770     case WM_VSCROLL:
00771         return OnVScroll( wParam, lParam );
00772
00773
00774     case WM_MENUCHAR:
00775         /* メニューアクセスキー押下時の処理(WM_MENUCHAR処理) */
00776         return m_CMenuDrawer.OnMenuChar( hwnd, uMsg, wParam, lParam );
00777
00778
00779
00780
00781
00782
00783     case WM_MENUSELECT:
00784         if( NULL == m_cStatusBar.GetStatusHwnd() ){
00785             return 1;
00786         }
00787         uItem = (UINT) LOWORD(wParam);      // menu item or submenu index
00788         fuFlags = (UINT) HIWORD(wParam);    // menu flags
00789         hmenu = (HMENU) lParam;             // handle to menu clicked
00790         {
00791             /* メニュー機能のテキストをセット */
00792             CNativeT    cmemWork;
00793
00794             /* 機能に対応するキー名の取得(複数) */
00795             CNativeT**  ppcAssignedKeyList;
00796             int         nAssignedKeyNum;
00797             int         j;
00798             nAssignedKeyNum = CKeyBind::GetKeyStrList(
00799                 m_hInstance,
00800                 m_pShareData->m_nKeyNameArrNum,
00801                 (KEYDATA*)m_pShareData->m_pKeyNameArr,
00802                 &ppcAssignedKeyList,
00803                 uItem
00804             );
00805             if( 0 < nAssignedKeyNum ){
00806                 for( j = 0; j < nAssignedKeyNum; ++j ){
00807                     if( j > 0 ){
00808                         cmemWork.AppendString(_T(" , L"));
00809                     }
00810                     cmemWork.AppendNativeData( *ppcAssignedKeyList[j] );
00811                     delete ppcAssignedKeyList[j];
00812                 }
00813                 delete [] ppcAssignedKeyList;
00814             }
00815
00816             const TCHAR* pszItemStr = cmemWork.GetStringPtr();
00817
00818             m_cStatusBar.SetStatusText(0, SBT_NOBORDERS, pszItemStr);
00819
00820
00821         }
00822         return 0;
00823
00824
00825     case WM_DRAWITEM:
00826         idCtl = (UINT) wParam;              /* コントロールのID */
00827         lpdis = (DRAWITEMSTRUCT*) lParam;   /* 項目描画情報 */
00828         if( IDW_STATUSBAR == idCtl ){
00829             if( 5 == lpdis->itemID ){ // 2003.08.26 Moca idがずれて作画されなかった
00830                 int nColor;
00831                 if( m_pShareData->m_bRecordingKeyMacro  /* キーボードマクロの記録中 */
00832                  && m_pShareData->m_hwndRecordingKeyMacro == GetHwnd()  /* キーボードマクロを記録中のウィンドウ */
00833                 ){
00834                     nColor = COLOR_BTNTEXT;
00835                 }else{
00836                     nColor = COLOR_3DSHADOW;
00837                 }
00838                 ::SetTextColor( lpdis->hDC, ::GetSysColor( nColor ) );
00839                 ::SetBkMode( lpdis->hDC, TRANSPARENT );
00840
00841                 // 2003.08.26 Moca 上下中央位置に作画
00842                 TEXTMETRIC tm;
00843                 ::GetTextMetrics( lpdis->hDC, &tm );
00844                 int y = ( lpdis->rcItem.bottom - lpdis->rcItem.top - tm.tmHeight + 1 ) / 2 + lpdis->rcItem.top;
00845                 ::TextOut( lpdis->hDC, lpdis->rcItem.left, y, _T("REC"), _tcslen( _T("REC") ) );
00846                 if( COLOR_BTNTEXT == nColor ){
00847                     ::TextOut( lpdis->hDC, lpdis->rcItem.left + 1, y, _T("REC"), _tcslen( _T("REC") ) );
00848                 }
00849             }
00850             return 0;
00851         }else{
00852             switch( lpdis->CtlType ){
00853             case ODT_MENU:  /* オーナー描画メニュー */
00854                 /* メニューアイテム描画 */
00855                 m_CMenuDrawer.DrawItem( lpdis );
00856                 return TRUE;
00857             }
00858         }
00859         return FALSE;
00860     case WM_MEASUREITEM:
00861         idCtl = (UINT) wParam;                  // control identifier
00862         lpmis = (MEASUREITEMSTRUCT*) lParam;    // item-size information
00863         switch( lpmis->CtlType ){
00864         case ODT_MENU:  /* オーナー描画メニュー */
00865 //          CMenuDrawer* pCMenuDrawer;
00866 //          pCMenuDrawer = (CMenuDrawer*)lpmis->itemData;
00867
00868
00869 //          MYTRACE_A( "WM_MEASUREITEM  lpmis->itemID=%d\n", lpmis->itemID );
00870             /* メニューアイテムの描画サイズを計算 */
00871             nItemWidth = m_CMenuDrawer.MeasureItem( lpmis->itemID, &nItemHeight );
00872             if( -1 == nItemWidth ){
00873             }else{
00874                 lpmis->itemWidth = nItemWidth;
00875                 lpmis->itemHeight = nItemHeight;
00876             }
00877             return TRUE;
00878         }
00879         return FALSE;
00880
00881
00882
00883
00884     case WM_PAINT:
00885         return OnPaint( hwnd, uMsg, wParam, lParam );
00886
00887     case WM_PASTE:
00888         return GetActiveView().GetCommander().HandleCommand( F_PASTE, TRUE, 0, 0, 0, 0 );
00889
00890     case WM_COPY:
00891         return GetActiveView().GetCommander().HandleCommand( F_COPY, TRUE, 0, 0, 0, 0 );
00892
00893     case WM_HELP:
00894         lphi = (LPHELPINFO) lParam;
00895         switch( lphi->iContextType ){
00896         case HELPINFO_MENUITEM:
00897             CEditApp::Instance()->ShowFuncHelp( hwnd, (EFunctionCode)lphi->iCtrlId );
00898             break;
00899         }
00900         return TRUE;
00901
00902     case WM_ACTIVATEAPP:
00903         m_bIsActiveApp = (BOOL)wParam;  // 自アプリがアクティブかどうか
00904
00905         // アクティブ化なら編集ウィンドウリストの先頭に移動する       // 2007.04.08 ryoji WM_SETFOCUS から移動
00906         if( m_bIsActiveApp ){
00907             // アクティブ化が編集ウィンドウでない場合（ダイアログ等の場合）は一旦編集ウィンドウをアクティブ化して戻す
00908             // ・CDlgFuncListダイアログを閉じたときに以前のアクティブウィンドウではなく編集ウィンドウがアクティブになるように
00909             // ・タブまとめ表示の場合はこれで編集ウィンドウが非表示→表示に切替わるのでリスト移動処理で画面が一時的に消えることもなくなる
00910             //   （まとめ時は非アクティブタブのポップアップを非表示にしたのでそこからアクティブ化されることは無くなった）   // 2007.10.22 ryoji
00911             HWND hwndActive = ::GetActiveWindow();
00912             if( hwndActive != GetHwnd() ){
00913                 ActivateFrameWindow( GetHwnd() );       // 編集ウィンドウをアクティブ化
00914                 ::SetActiveWindow( hwndActive );    // アクティブウィンドウを元に戻す
00915             }
00916             CShareData::getInstance()->AddEditWndList( GetHwnd() ); // リスト移動処理
00917         }
00918
00919         // キャプション設定、タイマーON/OFF        // 2007.03.08 ryoji WM_ACTIVATEから移動
00920         GetDocument().SetParentCaption();
00921         m_CFuncKeyWnd.Timer_ONOFF( m_bIsActiveApp ); // 20060126 aroka
00922         this->Timer_ONOFF( m_bIsActiveApp ); // 20060128 aroka
00923
00924         return 0L;
00925
00926     case WM_WINDOWPOSCHANGED:
00927         // ポップアップウィンドウの表示切替指示をポストする // 2007.10.22 ryoji
00928         // ・WM_SHOWWINDOWはすべての表示切替で呼ばれるわけではないのでWM_WINDOWPOSCHANGEDで処理
00929         //   （タブグループ解除などの設定変更時はWM_SHOWWINDOWは呼ばれない）
00930         // ・即時切替だとタブ切替に干渉して元のタブに戻ってしまうことがあるので後で切り替える
00931         WINDOWPOS* pwp;
00932         pwp = (WINDOWPOS*)lParam;
00933         if( pwp->flags & SWP_SHOWWINDOW )
00934             ::PostMessage( hwnd, MYWM_SHOWOWNEDPOPUPS, TRUE, 0 );
00935         else if( pwp->flags & SWP_HIDEWINDOW )
00936             ::PostMessage( hwnd, MYWM_SHOWOWNEDPOPUPS, FALSE, 0 );
00937
00938         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00939
00940     case MYWM_SHOWOWNEDPOPUPS:
00941         ::ShowOwnedPopups( m_hWnd, (BOOL)wParam );  // 2007.10.22 ryoji
00942         return 0L;
00943
00944     case WM_SIZE:
00945 //      MYTRACE_A( "WM_SIZE\n" );
00946         /* WM_SIZE 処理 */
00947         if( SIZE_MINIMIZED == wParam ){
00948             GetDocument().SetParentCaption();
00949         }
00950         return OnSize( wParam, lParam );
00951
00952     //From here 2003.05.31 MIK
00953     case WM_MOVE:
00954         // From Here 2004.05.13 Moca ウィンドウ位置継承
00955         //  最後の位置を復元するため，移動されるたびに共有メモリに位置を保存する．
00956         if( WINSIZEMODE_SAVE == m_pShareData->m_Common.m_sWindow.m_nSaveWindowPos ){
00957             if( !::IsZoomed( GetHwnd() ) && !::IsIconic( GetHwnd() ) ){
00958                 // 2005.11.23 Moca ワークエリア座標だとずれるのでスクリーン座標に変更
00959                 RECT rcWork;
00960                 ::GetWindowRect( hwnd, &rcWork);
00961                 m_pShareData->m_Common.m_sWindow.m_nWinPosX = rcWork.left;
00962                 m_pShareData->m_Common.m_sWindow.m_nWinPosY = rcWork.top;
00963             }
00964         }
00965         // To Here 2004.05.13 Moca ウィンドウ位置継承
00966         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00967     //To here 2003.05.31 MIK
00968     case WM_SYSCOMMAND:
00969         // タブまとめ表示では閉じる動作はオプション指定に従う  // 2006.02.13 ryoji
00970         //  Feb. 11, 2007 genta 動作を選べるように(MDI風と従来動作)
00971         // 2007.02.22 ryoji Alt+F4 のデフォルト機能でモード毎の動作が得られるようになった
00972         if( wParam == SC_CLOSE ){
00973             // 印刷プレビューモードでウィンドウを閉じる操作のときはプレビューを閉じる    // 2007.03.04 ryoji
00974             if( m_pPrintPreview ){
00975                 PrintPreviewModeONOFF();    // 印刷プレビューモードのオン/オフ
00976                 return 0L;
00977             }
00978             OnCommand( 0, CKeyBind::GetDefFuncCode( VK_F4, _ALT ), NULL );
00979             return 0L;
00980         }
00981         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00982     case WM_IME_COMPOSITION:
00983         if ( lParam & GCS_RESULTSTR ) {
00984             /* メッセージの配送 */
00985             return Views_DispatchEvent( hwnd, uMsg, wParam, lParam );
00986         }else{
00987             return DefWindowProc( hwnd, uMsg, wParam, lParam );
00988         }
00989     case WM_KILLFOCUS:
00990     case WM_CHAR:
00991     case WM_IME_CHAR:
00992     case WM_KEYUP:
00993     case WM_SYSKEYUP:   // 2004.04.28 Moca ALT+キーのキーリピート処理のため追加
00994     case WM_ENTERMENULOOP:
00995     case MYWM_IME_REQUEST:   /*  再変換対応 by minfu 2002.03.27  */ // 20020331 aroka
00996         /* メッセージの配送 */
00997         return Views_DispatchEvent( hwnd, uMsg, wParam, lParam );
00998
00999     case WM_EXITMENULOOP:
01000 //      MYTRACE_A( "WM_EXITMENULOOP\n" );
01001         if( NULL != m_cStatusBar.GetStatusHwnd() ){
01002             m_cStatusBar.SetStatusText(0, SBT_NOBORDERS, _T(""));
01003         }
01004
01005         /* メッセージの配送 */
01006         return Views_DispatchEvent( hwnd, uMsg, wParam, lParam );
01007     case WM_SETFOCUS:
01008 //      MYTRACE_A( "WM_SETFOCUS\n" );
01009
01010         // Aug. 29, 2003 wmlhq & ryojiファイルのタイムスタンプのチェック処理 OnTimer に移行
01011         m_nTimerCount = 9;
01012
01013         /* メッセージの配送 */
01014         lRes = Views_DispatchEvent( hwnd, uMsg, wParam, lParam );
01015
01016 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
01017         /* 印刷プレビューモードのときは、キー操作は全部PrintPreviewBarへ転送 */
01018         if( m_pPrintPreview ){
01019             m_pPrintPreview->SetFocusToPrintPreviewBar();
01020         }
01021
01022         //検索ボックスを更新
01023         m_cToolbar.AcceptSharedSearchKey();
01024
01025         return lRes;
01026
01027     case WM_NOTIFY:
01028         idCtrl = (int) wParam;
01029         pnmh = (LPNMHDR) lParam;
01030         //  From Here Feb. 15, 2004 genta
01031         //  ステータスバーのダブルクリックでモード切替ができるようにする
01032         if( m_cStatusBar.GetStatusHwnd() && pnmh->hwndFrom == m_cStatusBar.GetStatusHwnd() ){
01033             if( pnmh->code == NM_DBLCLK ){
01034                 LPNMMOUSE mp = (LPNMMOUSE) lParam;
01035                 if( mp->dwItemSpec == 6 ){  //  上書き/挿入
01036                     GetDocument().HandleCommand( F_CHGMOD_INS );
01037                 }
01038                 else if( mp->dwItemSpec == 5 ){ //  マクロの記録開始・終了
01039                     GetDocument().HandleCommand( F_RECKEYMACRO );
01040                 }
01041                 else if( mp->dwItemSpec == 1 ){ //  桁位置→行番号ジャンプ
01042                     GetDocument().HandleCommand( F_JUMP_DIALOG );
01043                 }
01044             }
01045             else if( pnmh->code == NM_RCLICK ){
01046                 LPNMMOUSE mp = (LPNMMOUSE) lParam;
01047                 if( mp->dwItemSpec == 2 ){  //  入力改行モード
01048                     m_CMenuDrawer.ResetContents();
01049                     HMENU hMenuPopUp = ::CreatePopupMenu();
01050                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CRLF,
01051                         _T("入力改行コード指定(&CRLF)") ); // 入力改行コード指定(CRLF)
01052                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_LF,
01053                         _T("入力改行コード指定(&LF)") ); // 入力改行コード指定(LF)
01054                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CR,
01055                         _T("入力改行コード指定(C&R)") ); // 入力改行コード指定(CR)
01056
01057                     //  mp->ptはステータスバー内部の座標なので，スクリーン座標への変換が必要
01058                     POINT   po = mp->pt;
01059                     ::ClientToScreen( m_cStatusBar.GetStatusHwnd(), &po );
01060                     EFunctionCode nId = (EFunctionCode)::TrackPopupMenu(
01061                         hMenuPopUp,
01062                         TPM_CENTERALIGN
01063                         | TPM_BOTTOMALIGN
01064                         | TPM_RETURNCMD
01065                         | TPM_LEFTBUTTON
01066                         ,
01067                         po.x,
01068                         po.y,
01069                         0,
01070                         GetHwnd(),
01071                         NULL
01072                     );
01073                     ::DestroyMenu( hMenuPopUp );
01074                     GetDocument().HandleCommand( nId );
01075                 }
01076             }
01077             return 0L;
01078         }
01079         //  To Here Feb. 15, 2004 genta
01080
01081         switch( pnmh->code ){
01082         // 2007.09.08 kobake TTN_NEEDTEXTの処理をA版とW版に分けて明示的に処理するようにしました。
01083         //                   ※テキストが80文字を超えそうならTOOLTIPTEXT::lpszTextを利用してください。
01084         case TTN_NEEDTEXT:
01085             {
01086                 //ツールチップテキスト取得、設定
01087                 LPTOOLTIPTEXT lptip = (LPTOOLTIPTEXT)pnmh;
01088                 GetTooltipText(lptip->szText, _countof(lptip->szText), lptip->hdr.idFrom);
01089             }
01090             break;
01091
01092         case TBN_DROPDOWN:
01093             {
01094                 int nId;
01095                 nId = CreateFileDropDownMenu( pnmh->hwndFrom );
01096                 if( nId != 0 ) OnCommand( (WORD)0 /*メニュー*/, (WORD)nId, (HWND)0 );
01097             }
01098             return FALSE;
01099         //  From Here Jul. 21, 2003 genta
01100         case NM_CUSTOMDRAW:
01101             if( pnmh->hwndFrom == m_cToolbar.GetToolbarHwnd() ){
01102                 //  ツールバーのOwner Draw
01103                 return m_cToolbar.ToolBarOwnerDraw( (LPNMCUSTOMDRAW)pnmh );
01104             }
01105             break;
01106         //  To Here Jul. 21, 2003 genta
01107         }
01108         return 0L;
01109     case WM_COMMAND:
01110         OnCommand( HIWORD(wParam), LOWORD(wParam), (HWND) lParam );
01111         return 0L;
01112     case WM_INITMENUPOPUP:
01113         InitMenu( (HMENU)wParam, (UINT)LOWORD( lParam ), (BOOL)HIWORD( lParam ) );
01114         return 0L;
01115     case WM_DROPFILES:
01116         /* ファイルがドロップされた */
01117         OnDropFiles( (HDROP) wParam );
01118         return 0L;
01119     case WM_QUERYENDSESSION:
01120         if( OnClose() ){
01121             DestroyWindow( hwnd );
01122             return TRUE;
01123         }else{
01124             return FALSE;
01125         }
01126     case WM_CLOSE:
01127         if( OnClose() ){
01128             DestroyWindow( hwnd );
01129         }
01130         return 0L;
01131     case WM_DESTROY:
01132         RELPRINT_A("CEditWnd WM_DESTROY");
01133
01134         if( m_pShareData->m_bRecordingKeyMacro ){                   /* キーボードマクロの記録中 */
01135             if( m_pShareData->m_hwndRecordingKeyMacro == GetHwnd() ){   /* キーボードマクロを記録中のウィンドウ */
01136                 m_pShareData->m_bRecordingKeyMacro = FALSE;         /* キーボードマクロの記録中 */
01137                 m_pShareData->m_hwndRecordingKeyMacro = NULL;       /* キーボードマクロを記録中のウィンドウ */
01138             }
01139         }
01140
01141         /* タイマーを削除 */
01142         ::KillTimer( GetHwnd(), IDT_TOOLBAR );
01143
01144         /* ドロップされたファイルを受け入れるのを解除 */
01145         ::DragAcceptFiles( hwnd, FALSE );
01146
01147         /* 編集ウィンドウリストからの削除 */
01148         CShareData::getInstance()->DeleteEditWndList( GetHwnd() );
01149
01150         if( m_pShareData->m_hwndDebug == GetHwnd() ){
01151             m_pShareData->m_hwndDebug = NULL;
01152         }
01153         m_hWnd = NULL;
01154
01155
01156         /* 編集ウィンドウオブジェクトからのオブジェクト削除要求 */
01157         RELPRINT_A("post MYWM_DELETE_ME to 0x%08X", m_pShareData->m_hwndTray);
01158 		::PostMessageAny( m_pShareData->m_hwndTray, MYWM_DELETE_ME, 0, 0 );
01159
01160         /* Windows にスレッドの終了を要求します */
01161         ::PostQuitMessage( 0 );
01162
01163         return 0L;
01164
01165     case WM_THEMECHANGED:
01166         // 2006.06.17 ryoji
01167         // ビジュアルスタイル／クラシックスタイルが切り替わったらツールバーを再作成する
01168         // （ビジュアルスタイル: Rebar 有り、クラシックスタイル: Rebar 無し）
01169         if( m_cToolbar.GetToolbarHwnd() ){
01170             if( IsVisualStyle() == (NULL == m_cToolbar.GetRebarHwnd()) ){
01171                 m_cToolbar.DestroyToolBar();
01172                 LayoutToolBar();
01173                 EndLayoutBars();
01174             }
01175         }
01176         return 0L;
01177
01178     case MYWM_UIPI_CHECK:
01179         /* エディタ−トレイ間でのUI特権分離の確認メッセージ */   // 2007.06.07 ryoji
01180         m_bUIPI = TRUE; // トレイからの返事を受け取った
01181         return 0L;
01182
01183     case MYWM_CLOSE:
01184         /* エディタへの終了要求 */
01185         if( FALSE != ( nRet = OnClose()) ){ // Jan. 23, 2002 genta 警告抑制
01186             // タブまとめ表示では閉じる動作はオプション指定に従う  // 2006.02.13 ryoji
01187             if( !(BOOL)wParam ){    // 全終了要求でない場合
01188                 // タブまとめ表示で(無題)を残す指定の場合、残ウィンドウが１個なら新規エディタを起動して終了する
01189                 if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd &&
01190                     !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin &&
01191                     m_pShareData->m_Common.m_sTabBar.m_bTab_RetainEmptyWin
01192                     ){
01193                     // 自グループ内の残ウィンドウ数を調べる   // 2007.06.20 ryoji
01194                     int nGroup = CShareData::getInstance()->GetGroupId( GetHwnd() );
01195                     if( 1 == CShareData::getInstance()->GetEditorWindowsNum( nGroup ) ){
01196                         EditNode* pEditNode = CShareData::getInstance()->GetEditNode( GetHwnd() );
01197                         if( pEditNode )
01198                             pEditNode->m_bClosing = TRUE;   // 自分はタブ表示してもらわなくていい
01199                         CControlTray::OpenNewEditor( m_hInstance, GetHwnd(), NULL, CODE_DEFAULT, FALSE, TRUE );
01200                     }
01201                 }
01202             }
01203             DestroyWindow( hwnd );
01204         }
01205         return nRet;
01206
01207
01208     case MYWM_GETFILEINFO:
01209         /* トレイからエディタへの編集ファイル名要求通知 */
01210         pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01211
01212         /* 編集ファイル情報を格納 */
01213         GetDocument().GetFileInfo( pfi );
01214         return 0L;
01215     case MYWM_CHANGESETTING:
01216         /* 設定変更の通知 */
01217 // Oct 10, 2000 ao
01218 /* 設定変更時、ツールバーを再作成するようにする（バーの内容変更も反映） */
01219         m_cToolbar.DestroyToolBar();
01220         LayoutToolBar();
01221 // Oct 10, 2000 ao ここまで
01222
01223         // ファンクションキーを再作成する（バーの内容、位置、グループボタン数の変更も反映） // 2006.12.19 ryoji
01224         m_CFuncKeyWnd.Close();
01225         LayoutFuncKey();
01226
01227         // タブバーの表示／非表示切り替え    // 2006.12.19 ryoji
01228         LayoutTabBar();
01229
01230         // ステータスバーの表示／非表示切り替え   // 2006.12.19 ryoji
01231         LayoutStatusBar();
01232
01233         // 水平スクロールバーの表示／非表示切り替え // 2006.12.19 ryoji
01234         {
01235             int i;
01236             bool b1;
01237             bool b2;
01238             b1 = (m_pShareData->m_Common.m_sWindow.m_bScrollBarHorz == FALSE);
01239             for( i = 0; i < 4; i++ )
01240             {
01241                 b2 = (m_pcEditViewArr[i]->m_hwndHScrollBar == NULL);
01242                 if( b1 != b2 )      /* 水平スクロールバーを使う */
01243                 {
01244                     m_pcEditViewArr[i]->DestroyScrollBar();
01245                     m_pcEditViewArr[i]->CreateScrollBar();
01246                 }
01247             }
01248         }
01249
01250         // バー変更で画面が乱れないように    // 2006.12.19 ryoji
01251         EndLayoutBars();
01252
01253         if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd )
01254         {
01255             // タブ表示のままグループ化する／しないが変更されていたらタブを更新する必要がある
01256             m_cTabWnd.Refresh( FALSE );
01257         }
01258         if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01259         {
01260             if( CShareData::getInstance()->IsTopEditWnd( GetHwnd() ) )
01261             {
01262                 if( !::IsWindowVisible( GetHwnd() ) )
01263                 {
01264                     // ::ShowWindow( GetHwnd(), SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01265                     ::SetWindowPos( GetHwnd(), NULL,0,0,0,0,
01266                                     SWP_SHOWWINDOW | SWP_NOACTIVATE
01267                                     | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01268
01269                     // このウィンドウの WS_EX_TOPMOST 状態を全ウィンドウに反映する    // 2007.05.18 ryoji
01270                     WindowTopMost( ((DWORD)::GetWindowLongPtr( GetHwnd(), GWL_EXSTYLE ) & WS_EX_TOPMOST)? 1: 2 );
01271                 }
01272             }
01273             else
01274             {
01275                 if( ::IsWindowVisible( GetHwnd() ) )
01276                 {
01277                     ::ShowWindow( GetHwnd(), SW_HIDE );
01278                 }
01279             }
01280         }
01281         else
01282         {
01283             if( !::IsWindowVisible( GetHwnd() ) )
01284             {
01285                 // ::ShowWindow( GetHwnd(), SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01286                 ::SetWindowPos( GetHwnd(), NULL,0,0,0,0,
01287                                 SWP_SHOWWINDOW | SWP_NOACTIVATE
01288                                 | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01289             }
01290         }
01291
01292         //  Aug, 21, 2000 genta
01293         GetDocument().ReloadAutoSaveParam();
01294
01295         GetDocument().SetDocumentIcon();    // Sep. 10, 2002 genta 文書アイコンの再設定
01296         GetDocument().OnChangeSetting();    /* ビューに設定変更を反映させる */
01297         return 0L;
01298     case MYWM_SETACTIVEPANE:
01299         if( -1 == (int)wParam ){
01300             if( 0 == lParam ){
01301                 nPane = m_cSplitterWnd.GetFirstPane();
01302             }else{
01303                 nPane = m_cSplitterWnd.GetLastPane();
01304             }
01305         }
01306         this->SetActivePane( nPane );
01307         return 0L;
01308
01309
01310     case MYWM_SETCARETPOS:  /* カーソル位置変更通知 */
01311         {
01312             //  2006.07.09 genta LPARAMに新たな意味を追加
01313             //  bit 0 (MASK 1): (bit 1==0のとき) 0/選択クリア, 1/選択開始・変更
01314             //  bit 1 (MASK 2): 0: bit 0の設定に従う．1:現在の選択ロックs状態を継続
01315             //  既存の実装では どちらも0なので強制解除と解釈される．
01316             //  呼び出し時はe_PM_SETCARETPOS_SELECTSTATEの値を使うこと．
01317             bool bSelect = (0!= (lParam & 1));
01318             if( lParam & 2 ){
01319                 // 現在の状態をKEEP
01320                 bSelect = GetActiveView().GetSelectionInfo().m_bSelectingLock;
01321             }
01322
01323             //  2006.07.09 genta 強制解除しない
01324             /*
01325             カーソル位置変換
01326              物理位置(行頭からのバイト数、折り返し無し行位置)
01327             →
01328              レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01329             */
01330             CLogicPoint* ppoCaret = m_pShareData->GetWorkBuffer<CLogicPoint>();
01331             CLayoutPoint ptCaretPos;
01332             GetDocument().m_cLayoutMgr.LogicToLayout(
01333                 *ppoCaret,
01334                 &ptCaretPos
01335             );
01336             // 改行の真ん中にカーソルが来ないように   // 2007.08.22 ryoji
01337             // Note. もとが改行単位の桁位置なのでレイアウト折り返しの桁位置を超えることはない。
01338             //       選択指定(bSelect==TRUE)の場合にはどうするのが妥当かよくわからないが、
01339             //       2007.08.22現在ではアウトライン解析ダイアログから桁位置0で呼び出される
01340             //       パターンしかないので実用上特に問題は無い。
01341             if( !bSelect ){
01342                 const CDocLine *pTmpDocLine = GetDocument().m_cDocLineMgr.GetLineInfo( ppoCaret->GetY2() );
01343                 if( pTmpDocLine ){
01344                     if( pTmpDocLine->GetLengthWithoutEOL() < ppoCaret->x ) ptCaretPos.x--;
01345                 }
01346             }
01347             //  2006.07.09 genta 選択範囲を考慮して移動
01348             //  MoveCursorの位置調整機能があるので，最終行以降への
01349             //  移動指示の調整もMoveCursorにまかせる
01350             GetActiveView().MoveCursorSelecting( ptCaretPos, bSelect, _CARETMARGINRATE / 3 );
01351         }
01352         return 0L;
01353
01354
01355     case MYWM_GETCARETPOS:  /* カーソル位置取得要求 */
01356         /*
01357         カーソル位置変換
01358          レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01359         →
01360         物理位置(行頭からのバイト数、折り返し無し行位置)
01361         */
01362         {
01363             CLogicPoint* ppoCaret = m_pShareData->GetWorkBuffer<CLogicPoint>();
01364             GetDocument().m_cLayoutMgr.LayoutToLogic(
01365                 GetActiveView().GetCaret().GetCaretLayoutPos(),
01366                 ppoCaret
01367             );
01368         }
01369         return 0L;
01370
01371     case MYWM_GETLINEDATA:  /* 行(改行単位)データの要求 */
01372         pLine = GetDocument().m_cDocLineMgr.GetLineStr( CLogicInt(wParam), &nLineLen );
01373         if( NULL == pLine ){
01374             return 0;
01375         }
01376         if( nLineLen > (int)m_pShareData->GetWorkBufferCount<EDIT_CHAR>() ){
01377             auto_memcpy( m_pShareData->GetWorkBuffer<EDIT_CHAR>(), pLine, m_pShareData->GetWorkBufferCount<EDIT_CHAR>() );
01378         }else{
01379             auto_memcpy( m_pShareData->GetWorkBuffer<EDIT_CHAR>(), pLine, nLineLen );
01380         }
01381         return nLineLen;
01382
01383
01384     case MYWM_ADDSTRING:
01385         {
01386             EDIT_CHAR* pWork = m_pShareData->GetWorkBuffer<EDIT_CHAR>();
01387
01388             GetActiveView().GetCommander().HandleCommand(
01389                 F_ADDTAIL_W,
01390                 TRUE,
01391                 (LPARAM)pWork,
01392                 (LPARAM)wcslen( pWork ),
01393                 0,
01394                 0
01395             );
01396             GetActiveView().GetCommander().HandleCommand(
01397                 F_GOFILEEND,
01398                 TRUE,
01399                 0,
01400                 0,
01401                 0,
01402                 0
01403             );
01404         }
01405         return 0L;
01406
01407     //タブウインドウ //@@@ 2003.05.31 MIK
01408     case MYWM_TAB_WINDOW_NOTIFY:
01409         m_cTabWnd.TabWindowNotify( wParam, lParam );
01410         return 0L;
01411
01412     //バーの表示・非表示   //@@@ 2003.06.10 MIK
01413     case MYWM_BAR_CHANGE_NOTIFY:
01414         if( GetHwnd() != (HWND)lParam )
01415         {
01416             switch( wParam )
01417             {
01418             case MYBCN_TOOLBAR:
01419                 LayoutToolBar();    // 2006.12.19 ryoji
01420                 break;
01421             case MYBCN_FUNCKEY:
01422                 LayoutFuncKey();    // 2006.12.19 ryoji
01423                 break;
01424             case MYBCN_TAB:
01425                 LayoutTabBar();     // 2006.12.19 ryoji
01426                 if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd
01427                     && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01428                 {
01429                     ::ShowWindow(GetHwnd(), SW_HIDE);
01430                 }
01431                 else
01432                 {
01433                     // ::ShowWindow( hwnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01434                     ::SetWindowPos( hwnd, NULL,0,0,0,0,
01435                                     SWP_SHOWWINDOW | SWP_NOACTIVATE
01436                                     | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01437                 }
01438                 break;
01439             case MYBCN_STATUSBAR:
01440                 LayoutStatusBar();      // 2006.12.19 ryoji
01441                 break;
01442             }
01443             EndLayoutBars();    // 2006.12.19 ryoji
01444         }
01445         return 0L;
01446
01447     //by 鬼 (2) MYWM_CHECKSYSMENUDBLCLKは不要に, WM_LBUTTONDBLCLK追加
01448     case WM_NCLBUTTONDOWN:
01449         return OnNcLButtonDown(wParam, lParam);
01450
01451     case WM_NCLBUTTONUP:
01452         return OnNcLButtonUp(wParam, lParam);
01453
01454     case WM_LBUTTONDBLCLK:
01455         return OnLButtonDblClk(wParam, lParam);
01456
01457     case WM_IME_NOTIFY: // Nov. 26, 2006 genta
01458         if( wParam == IMN_SETCONVERSIONMODE || wParam == IMN_SETOPENSTATUS){
01459             this->GetActiveView().GetCaret().ShowEditCaret();
01460         }
01461         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01462
01463     case WM_NCACTIVATE:
01464         // 編集ウィンドウ切替中（タブまとめ時）はタイトルバーのアクティブ／非アクティブ状態をできるだけ変更しないように（１）  // 2007.04.03 ryoji
01465         // 前面にいるのが編集ウィンドウならアクティブ状態を保持する
01466         if( m_pShareData->m_bEditWndChanging && CShareData::IsEditWnd(::GetForegroundWindow()) ){
01467             wParam = TRUE;  // アクティブ
01468         }
01469         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01470
01471     case WM_SETTEXT:
01472         // 編集ウィンドウ切替中（タブまとめ時）はタイトルバーのアクティブ／非アクティブ状態をできるだけ変更しないように（２）  // 2007.04.03 ryoji
01473         // タイマーを使用してタイトルの変更を遅延する
01474         if( m_pShareData->m_bEditWndChanging ){
01475             delete[] m_pszLastCaption;
01476             m_pszLastCaption = new TCHAR[ ::_tcslen((LPCTSTR)lParam) + 1 ];
01477 			::_tcscpy( m_pszLastCaption, (LPCTSTR)lParam );  // 変更後のタイトルを記憶しておく
01478             ::SetTimer( GetHwnd(), IDT_CAPTION, 50, NULL );
01479             return 0L;
01480         }
01481         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01482
01483     case WM_TIMER:
01484         if( !OnTimer(wParam, lParam) )
01485             return 0L;
01486         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01487
01488     default:
01489 // << 20020331 aroka 再変換対応 for 95/NT
01490         if( uMsg == m_uMSIMEReconvertMsg || uMsg == m_uATOKReconvertMsg){
01491             return Views_DispatchEvent( hwnd, uMsg, wParam, lParam );
01492         }
01493 // >> by aroka
01494         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01495     }
01496 }
01497
01502 int CEditWnd::OnClose( void )
01503 {
01504     /* ウィンドウをアクティブにする */
01505     /* アクティブにする */
01506 //  ActivateFrameWindow( GetHwnd() );   //削除(必要ならOnFileClose内で) @@@ 2003.06.25 MIK
01507 //  if( ::IsIconic( GetHwnd() ) ){
01508 //      ::ShowWindow( GetHwnd(), SW_RESTORE );
01509 //  }else{
01510 //      ::ShowWindow( GetHwnd(), SW_SHOW );
01511 //  }
01512 //  ::SetForegroundWindow( GetHwnd() );
01513 //  ::SetActiveWindow( GetHwnd() );
01514     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01515     int nRet = GetDocument().OnFileClose();
01516     if( !nRet ) return nRet;
01517
01518     // 2005.09.01 ryoji タブまとめ表示の場合は次のウィンドウを前面に（終了時のウィンドウちらつきを抑制）
01519
01520     // 2007.07.07 ryoji
01521     // Note. タブまとめでない場合にも以下の処理を通しているのは、以前、タブまとめ設定を同期していなかったときの名残です。
01522     //       （タブまとめ解除しても非表示のままになっているウィンドウを表示に戻す必要があった）
01523     //       同期にしている現在では、同期に不具合があって非表示になっている場合でも表示に戻す、という保険的な意味しかありません。
01524
01525     int i, j;
01526     EditNode*   p = NULL;
01527     int nCount = CShareData::getInstance()->GetOpenedWindowArr( &p, FALSE );
01528     if( nCount > 1 )
01529     {
01530         for( i = 0; i < nCount; i++ )
01531         {
01532             if( p[ i ].GetHwnd() == GetHwnd() )
01533                 break;
01534         }
01535         if( i < nCount )
01536         {
01537             for( j = i + 1; j < nCount; j++ )
01538             {
01539                 if( p[ j ].m_nGroup == p[ i ].m_nGroup )
01540                     break;
01541             }
01542             if( j >= nCount )
01543             {
01544                 for( j = 0; j < i; j++ )
01545                 {
01546                     if( p[ j ].m_nGroup == p[ i ].m_nGroup )
01547                         break;
01548                 }
01549             }
01550             if( j != i )
01551             {
01552                 HWND hwnd = p[ j ].GetHwnd();
01553                 {
01554                     // 2006.01.28 ryoji
01555                     // タブまとめ表示でこの画面が非表示から表示に変わってすぐ閉じる場合(タブの中クリック時等)、
01556                     // 以前のウィンドウが消えるよりも先に一気にここまで処理が進んでしまうと
01557                     // あとで画面がちらつくので、以前のウィンドウが消えるのをちょっとだけ待つ
01558                     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd
01559                         && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01560                     {
01561                         int iWait = 0;
01562                         while( ::IsWindowVisible( hwnd ) && iWait++ < 20 )
01563                             ::Sleep(1);
01564                     }
01565                 }
01566                 if( !::IsWindowVisible( hwnd ) )
01567                 {
01568                     ActivateFrameWindow( hwnd );
01569                 }
01570             }
01571         }
01572     }
01573     if( p ) delete []p;
01574
01575     return nRet;
01576 }
01577
01578
01579
01580
01581
01582
01583 void CEditWnd::OnCommand( WORD wNotifyCode, WORD wID , HWND hwndCtl )
01584 {
01585 //  MYTRACE_A( "CEditWnd::OnCommand()\n" );
01586
01587     int             nFuncCode;
01588     HWND            hwndWork;
01589
01590     switch( wNotifyCode ){
01591     /* メニューからのメッセージ */
01592     case 0:
01593     case CMD_FROM_MOUSE: // 2006.05.19 genta マウスから呼びだされた場合
01594         switch( wID ){
01595         case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
01596             /* サクラエディタの全終了 */
01597             CControlTray::TerminateApplication( GetHwnd() );    // 2006.12.25 ryoji 引数追加
01598             break;
01599 //Sept. 15, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
01600         case F_HELP_CONTENTS:
01601             /* ヘルプ目次 */
01602             {
01603                 ShowWinHelpContents( GetHwnd(), CEditApp::Instance()->GetHelpFilePath() );  //  目次を表示する
01604             }
01605             break;
01606         case F_HELP_SEARCH:
01607             /* ヘルプキーワード検索 */
01608             {
01609                 MyWinHelp( GetHwnd(), CEditApp::Instance()->GetHelpFilePath(), HELP_KEY, (ULONG_PTR)_T("") );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01610             }
01611             break;
01612         case F_ABOUT:   //Dec. 25, 2000 JEPRO F_に変更
01613             /* バージョン情報 */
01614             {
01615                 CDlgAbout cDlgAbout;
01616                 cDlgAbout.DoModal( m_hInstance, GetHwnd() );
01617             }
01618             break;
01619         default:
01620             if( wID - IDM_SELWINDOW >= 0 &&
01621                 wID - IDM_SELWINDOW < m_pShareData->m_nEditArrNum ){
01622                 hwndWork = m_pShareData->m_pEditArr[wID - IDM_SELWINDOW].GetHwnd();
01623
01624                 /* アクティブにする */
01625                 ActivateFrameWindow( hwndWork );
01626             }else
01627             if( wID - IDM_SELMRU >= 0 &&
01628                 wID - IDM_SELMRU < 999
01629             ){
01630                 /* 指定ファイルが開かれているか調べる */
01631 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01632                 CMRU cMRU;
01633                 FileInfo checkFileInfo;
01634                 cMRU.GetFileInfo(wID - IDM_SELMRU, &checkFileInfo);
01635                 //  Oct.  9, 2004 genta 共通関数化
01636                 GetDocument().OpenFile( checkFileInfo.m_szPath, checkFileInfo.m_nCharCode);
01637
01638             }else
01639             if( wID - IDM_SELOPENFOLDER >= 0 &&
01640                 wID - IDM_SELOPENFOLDER < 999
01641             ){
01642                 {
01643                     //Stonee, 2001/12/21 UNCであれば接続を試みる
01644 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
01645                     CMRUFolder cMRUFolder;
01646                     NetConnect( cMRUFolder.GetPath( wID - IDM_SELOPENFOLDER ) );
01647
01648                     /* 「ファイルを開く」ダイアログ */
01649                     ECodeType nCharCode = CODE_AUTODETECT;  /* 文字コード自動判別 */
01650                     bool bReadOnly = false;
01651                     TCHAR       szPath[_MAX_PATH + 3];
01652                     szPath[0] = _T('\0');
01653                     if( !GetDocument().OpenFileDialog( GetHwnd(), cMRUFolder.GetPath(wID - IDM_SELOPENFOLDER), szPath, &nCharCode, &bReadOnly ) ){
01654                         return;
01655                     }
01656                     //  Oct.  9, 2004 genta 共通関数化
01657                     GetDocument().OpenFile( szPath, nCharCode, bReadOnly );
01658                 }
01659             }else{
01660                 //ビューにフォーカスを移動しておく
01661                 if( wID != F_SEARCH_BOX && m_nCurrentFocus == F_SEARCH_BOX )
01662                     ::SetFocus( GetActiveView().GetHwnd() );
01663
01664                 /* コマンドコードによる処理振り分け */
01665                 //  May 19, 2006 genta 上位ビットを渡す
01666                 GetDocument().HandleCommand( (EFunctionCode)MAKELONG( wID, wNotifyCode ));
01667             }
01668             break;
01669         }
01670         break;
01671     /* アクセラレータからのメッセージ */
01672     case 1:
01673         //ビューにフォーカスを移動しておく
01674         if( wID != F_SEARCH_BOX && m_nCurrentFocus == F_SEARCH_BOX )
01675             ::SetFocus( GetActiveView().GetHwnd() );
01676
01677         nFuncCode = CKeyBind::GetFuncCode(
01678             wID,
01679             m_pShareData->m_nKeyNameArrNum,
01680             m_pShareData->m_pKeyNameArr
01681         );
01682 //      MYTRACE_A( "CEditWnd::OnCommand()  nFuncCode=%d\n", nFuncCode );
01683         GetDocument().HandleCommand( (EFunctionCode)MAKELONG( nFuncCode, wNotifyCode ) );
01684         break;
01685
01686     case CBN_SETFOCUS:
01687         if( NULL != m_cToolbar.GetSearchHwnd() && hwndCtl == m_cToolbar.GetSearchHwnd() )
01688         {
01689             m_nCurrentFocus = F_SEARCH_BOX;
01690         }
01691         break;
01692
01693     case CBN_KILLFOCUS:
01694         if( NULL != m_cToolbar.GetSearchHwnd() && hwndCtl == m_cToolbar.GetSearchHwnd() )
01695         {
01696             m_nCurrentFocus = 0;
01697
01698             //フォーカスがはずれたときに検索キーにしてしまう。
01699
01700             //検索キーワードを取得
01701             wchar_t szText[_MAX_PATH];
01702             if( m_cToolbar.GetSearchKey(szText,_countof(szText)) )  //キー文字列がある
01703             {
01704                 //検索キーを登録
01705                 CShareData::getInstance()->AddToSearchKeyArr( szText );
01706             }
01707
01708         }
01709         break;
01710
01711     /* コントロールからのメッセージには通知コード */
01712     default:
01713         break;
01714     }
01715     return;
01716 }
01717
01718
01719
01720 //  キーワード：メニューバー順序
01721 //  Sept.14, 2000 Jepro note: メニューバーの項目のキャプションや順番設定などは以下で行っているらしい
01722 //  Sept.16, 2000 Jepro note: アイコンとの関連付けはCShareData_new2.cppファイルで行っている
01723 void CEditWnd::InitMenu( HMENU hMenu, UINT uPos, BOOL fSystemMenu )
01724 {
01725     int         cMenuItems;
01726     int         nPos;
01727     UINT        id;
01728     UINT        fuFlags;
01729     int         i;
01730     BOOL        bRet;
01731     int         nRowNum;
01732
01733     HMENU       hMenuPopUp;
01734     HMENU       hMenuPopUp_2;
01735     const TCHAR*    pszLabel;
01736
01737
01738     if( hMenu != ::GetSubMenu( ::GetMenu( GetHwnd() ), uPos ) ){
01739         goto end_of_func_IsEnable;
01740     }
01741
01742
01743     if( fSystemMenu ){
01744     }else{
01745 //      MYTRACE_A( "hMenu=%08xh uPos=%d, fSystemMenu=%ls\n", hMenu, uPos, fSystemMenu ? "TRUE":"FALSE" );
01746         switch( uPos ){
01747         case 0:
01748             /* 「ファイル」メニュー */
01749             m_CMenuDrawer.ResetContents();
01750             cMenuItems = ::GetMenuItemCount( hMenu );
01751             for( i = cMenuItems - 1; i >= 0; i-- ){
01752                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01753             }
01754             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW         , _T("新規作成(&N)") );
01755             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN        , _T("開く(&O)...") );
01756             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVE        , _T("上書き保存(&S)") );
01757             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEAS_DIALOG   , _T("名前を付けて保存(&A)...") );
01758             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEALL     , _T("すべて上書き保存(&Z)") );
01759
01760             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01761
01762             //  Feb. 28, 2003 genta 保存して閉じるを追加．閉じるメニューを近くに移動
01763             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVECLOSE   , _T("保存して閉じる(&E)") );
01764             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINCLOSE        , _T("閉じる(&C)") );    //Feb. 18, 2001 JEPRO 追加
01765             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILECLOSE       , _T("閉じて(無題) (&R)") );   //Oct. 17, 2000 jepro キャプションを「閉じる」から変更  //Feb. 18, 2001 JEPRO アクセスキー変更(C→B; Blankの意味)
01766             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILECLOSE_OPEN  , _T("閉じて開く(&L)...") );
01767
01768             // 「文字コードセット」ポップアップメニュー
01769             //  Aug. 19. 2003 genta アクセスキー表記を統一
01770             hMenuPopUp_2 = ::CreatePopupMenu(); // Jan. 29, 2002 genta
01771             //  Dec. 4, 2002 genta
01772             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN  , _T("開き直す(&W)") );
01773             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp_2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01774             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_SJIS, _T("SJISで開き直す(&S)") );       //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01775             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_JIS, _T("JISで開き直す(&J)") );         //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01776             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_EUC, _T("EUCで開き直す(&E)") );         //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01777             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UNICODE, _T("Unicodeで開き直す(&U)") ); //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01778             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UNICODEBE, _T("UnicodeBEで開き直す(&N)") );
01779             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UTF8, _T("UTF-8で開き直す(&8)") );      //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01780             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UTF7, _T("UTF-7で開き直す(&7)") );      //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
01781             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp_2 , _T("開き直す(&W)") );//Oct. 11, 2000 JEPRO アクセスキー変更(M→H)
01782
01783             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01784
01785             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT               , _T("印刷(&P)...") );
01786             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT_PREVIEW       , _T("印刷プレビュー(&V)...") );
01787             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT_PAGESETUP     , _T("ページ設定(&U)...") );
01788
01789             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01790
01791             // 「ファイル操作」ポップアップメニュー
01792             //hMenuPopUp = ::CreatePopupMenu(); // Jan. 29, 2002 genta
01793             //m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01794             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PROPERTY_FILE               , _T("ファイルのプロパティ(&T)") );       //Nov. 7, 2000 jepro キャプションに'ファイルの'を追加
01795             //m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("ファイル操作(&R)") );
01796             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_BROWSE                      , _T("ブラウズ(&B)") );
01797
01798             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01799
01800             /* MRUリストのファイルのリストをメニューにする */
01801             {
01802                 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01803                 CMRU cMRU;
01804                 hMenuPopUp = cMRU.CreateMenu( &m_CMenuDrawer ); //  ファイルメニュー
01805                 if ( cMRU.Length() > 0 ){
01806                     //  アクティブ
01807                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("最近使ったファイル(&F)") );
01808                 }
01809                 else {
01810                     //  非アクティブ
01811                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , _T("最近使ったファイル(&F)") );
01812                 }
01813             }
01814
01815             /* 最近使ったフォルダのメニューを作成 */
01816             {
01817                 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
01818                 CMRUFolder cMRUFolder;
01819                 hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
01820                 if (cMRUFolder.Length() > 0){
01821                     //  アクティブ
01822                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("最近使ったフォルダ(&D)") );
01823                 }
01824                 else {
01825                     //  非アクティブ
01826                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , _T("最近使ったフォルダ(&D)") );
01827                 }
01828             }
01829             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01830
01831             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GROUPCLOSE, _T("グループを閉じる(&G)") );   // グループを閉じる // 2007.06.20 ryoji
01832             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALLEDITORS, _T("編集の全終了(&Q)") ); //Feb/ 19, 2001 JEPRO 追加    // 2006.10.21 ryoji 表示文字列変更   // 2007.02.13 ryoji →F_EXITALLEDITORS
01833             //  Jun. 9, 2001 genta ソフトウェア名改称
01834             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL         , _T("サクラエディタの全終了(&X)") );    //Sept. 11, 2000 jepro キャプションを「アプリケーション終了」から変更    //Dec. 26, 2000 JEPRO F_に変更
01835             break;
01836
01837         case 1:
01838             /* 「編集」メニュー */
01839             m_CMenuDrawer.ResetContents();
01840             cMenuItems = ::GetMenuItemCount( hMenu );
01841             for( i = cMenuItems - 1; i >= 0; i-- ){
01842                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01843             }
01844             //  Aug. 19. 2003 genta アクセスキー表記を統一
01845             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_UNDO        , _T("元に戻す(&U)") );
01846             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REDO        , _T("やり直し(&R)") );
01847
01848             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01849             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CUT         , _T("切り取り(&T)") );
01850             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY        , _T("コピー(&C)") );
01851             //  Jul, 3, 2000 genta
01852 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE, _T("全行引用コピー(&N)") );
01853             //  Sept. 14, 2000 JEPRO    キャプションに「記号付き」を追加、アクセスキー変更(N→.)
01854 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE, _T("選択範囲内全行引用符付きコピー(&.)") );
01855 //          Sept. 30, 2000 JEPRO    引用符付きコピーのアイコンを作成したので上記メニューは重複を避けて「高度な操作」内におくだけにする
01856             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PASTE       , _T("貼り付け(&P)") );
01857             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DELETE      , _T("削除(&D)") );
01858             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SELECTALL   , _T("すべて選択(&A)") );
01859             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );                          /* メニューからの再変換対応 minfu 2002.04.09 */
01860             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECONVERT   , _T("再変換(&R)") );        /* メニューからの再変換対応 minfu 2002.04.09 */
01861             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01862             //  Aug. 19. 2003 genta アクセスキー表記を統一
01863             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY_CRLF   , _T("CRLF改行でコピー(&L)") );               //Nov. 9, 2000 JEPRO 追加
01864             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY_ADDCRLF    , _T("折り返し位置に改行をつけてコピー(&H)") );
01865             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PASTEBOX    , _T("矩形貼り付け(&X)") );                   //Sept. 13, 2000 JEPRO 移動に伴いアクセスキー付与  //Oct. 22, 2000 JEPRO アクセスキー変更(P→X)
01866             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DELETE_BACK , _T("カーソル前を削除(&B)") );
01867             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01868
01869             // 「挿入」ポップアップメニュー
01870             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
01871             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INS_DATE, _T("日付(&D)") );
01872             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INS_TIME, _T("時刻(&T)") );
01873             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CTRL_CODE_DIALOG, _T("コントロールコード(&C)...") );  // 2004.05.06 MIK ...追加
01874
01875             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("挿入(&I)") );
01876
01877             // 「高度な操作」ポップアップメニュー
01878             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
01879             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDeleteToStart  ,   _T("単語の左端まで削除(&L)") );            //Sept. 13, 2000 JEPRO アクセスキー付与
01880             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDeleteToEnd    ,   _T("単語の右端まで削除(&R)") );            //Sept. 13, 2000 JEPRO アクセスキー付与
01881             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01882             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTWORD         ,   _T("現在位置の単語選択(&W)") );
01883             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordCut            ,   _T("単語切り取り(&T)") );             //Sept. 13, 2000 JEPRO アクセスキー付与
01884             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDelete         ,   _T("単語削除(&D)") );                   //Sept. 13, 2000 JEPRO アクセスキー付与
01885             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01886             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineCutToStart     ,   _T("行頭まで切り取り(改行単位) (&U)") );//Sept. 13, 2000 JEPRO アクセスキー付与
01887             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineCutToEnd       ,   _T("行末まで切り取り(改行単位) (&K)") );//Sept. 13, 2000 JEPRO アクセスキー付与
01888             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01889             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineDeleteToStart  ,   _T("行頭まで削除(改行単位) (&H)") );  //Sept. 13, 2000 JEPRO アクセスキー付与
01890             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineDeleteToEnd    ,   _T("行末まで削除(改行単位) (&E)") );  //Sept. 13, 2000 JEPRO アクセスキー付与
01891             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01892             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CUT_LINE           ,   _T("行切り取り(折り返し単位) (&X)") );   //Jan. 16, 2001 JEPRO 行(頭・末)関係の順序を入れ替えた
01893             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DELETE_LINE        ,   _T("行削除(折り返し単位) (&Y)") );
01894             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01895             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DUPLICATELINE      ,   _T("行の二重化(折り返し単位) (&2)") );
01896             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01897             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INDENT_TAB         ,   _T("TABインデント(&A)") );             //Oct. 22, 2000 JEPRO 追加
01898             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UNINDENT_TAB       ,   _T("逆TABインデント(&B)") );          //Oct. 22, 2000 JEPRO 追加
01899             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INDENT_SPACE       ,   _T("SPACEインデント(&S)") );           //Oct. 22, 2000 JEPRO 追加
01900             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UNINDENT_SPACE     ,   _T("逆SPACEインデント(&P)") );            //Oct. 22, 2000 JEPRO 追加
01901             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01902             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINES              , _T("選択範囲内全行コピー(&@)") );       //Sept. 14, 2000 JEPRO アクセスキー付与
01903             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE     , _T("選択範囲内全行引用符付きコピー(&.)") );//Sept. 13, 2000 JEPRO キャプションから「記号付き」を追加、アクセスキー付与
01904             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINESWITHLINENUMBER, _T("選択範囲内全行行番号付きコピー(&:)") );//Sept. 13, 2000 JEPRO アクセスキー付与
01905             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01906             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYFNAME          ,   _T("このファイル名をコピー(&-)") );  // 2002/2/3 aroka
01907             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYPATH           ,   _T("このファイルのパス名をコピー(&\\)") );
01908             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYTAG            ,   _T("このファイルのパス名とカーソル位置をコピー(&^)") );
01909 //          m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_TEST_CREATEKEYBINDLIST   , _T("キー割り当て一覧をコピー(&Q)") ); //Sept. 15, 2000 JEPRO キャプションの「...リスト」、アクセスキー変更(K→Q)
01910 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDSREFERENCE, _T("単語リファレンス(&W)") );
01911
01912             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("高度な操作(&V)") );
01913
01914         //From Here Feb. 19, 2001 JEPRO [移動(M)], [選択(R)]メニューを[編集]のサブメニューとして移動
01915             // 「移動」ポップアップメニュー
01916             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
01917             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UP2        , _T("カーソル上移動(２行ごと) (&Q)") );
01918             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DOWN2      , _T("カーソル下移動(２行ごと) (&K)") );
01919             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDLEFT   , _T("単語の左端に移動(&L)") );
01920             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDRIGHT  , _T("単語の右端に移動(&R)") );
01921             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOPREVPARAGRAPH    , _T("前の段落に移動(&A)") );
01922             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GONEXTPARAGRAPH    , _T("次の段落に移動(&Z)") );
01923             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINETOP  , _T("行頭に移動(折り返し単位) (&H)") );
01924             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINEEND  , _T("行末に移動(折り返し単位) (&E)") );
01925             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01926             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageUp    , _T("１ページアップ(&U)") );
01927             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageDown  , _T("１ページダウン(&D)") );
01928             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILETOP  , _T("ファイルの先頭に移動(&T)") );
01929             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILEEND  , _T("ファイルの最後に移動(&B)") );
01930             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01931             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CURLINECENTER, _T("カーソル行をウィンドウ中央へ(&C)") );
01932             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01933             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMP_DIALOG, _T("指定行へジャンプ(&J)...") );
01934             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMP_SRCHSTARTPOS, _T("検索開始位置へ戻る(&I)") );    // 検索開始位置へ戻る 02/06/26 ai
01935             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01936             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_PREV  , _T("移動履歴: 前へ(&P)") );
01937             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_NEXT  , _T("移動履歴: 次へ(&N)") );
01938             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_SET   , _T("現在位置を移動履歴に登録(&S)") );
01939
01940             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("移動(&O)") );
01941
01942             // 「選択」ポップアップメニュー
01943             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
01944             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTWORD     , _T("現在位置の単語選択(&W)") );
01945             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTALL      , _T("すべて選択(&A)") );
01946             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BEGIN_SEL      , _T("範囲選択開始(&S)") );
01947             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01948             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UP2_SEL        , _T("(選択)カーソル上移動(２行ごと) (&Q)") );
01949             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DOWN2_SEL      , _T("(選択)カーソル下移動(２行ごと) (&K)") );
01950             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDLEFT_SEL   , _T("(選択)単語の左端に移動(&L)") );
01951             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDRIGHT_SEL  , _T("(選択)単語の右端に移動(&R)") );
01952             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOPREVPARAGRAPH_SEL    , _T("(選択)前の段落に移動(&2)") );
01953             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GONEXTPARAGRAPH_SEL    , _T("(選択)次の段落に移動(&8)") );
01954             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINETOP_SEL  , _T("(選択)行頭に移動(折り返し単位) (&H)") );
01955             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINEEND_SEL  , _T("(選択)行末に移動(折り返し単位) (&T)") );
01956             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01957             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageUp_Sel    , _T("(選択)１ページアップ(&U)") );
01958             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageDown_Sel  , _T("(選択)１ページダウン(&D)") );
01959             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILETOP_SEL  , _T("(選択)ファイルの先頭に移動(&1)") );
01960             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILEEND_SEL  , _T("(選択)ファイルの最後に移動(&9)") );
01961
01962             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01963             //  Mar. 11, 2004 genta 矩形選択メニューを選択メニューに統合
01964             //  今のところは1つしかないので
01965             // 「矩形選択」ポップアップメニュー
01966             // hMenuPopUp = ::CreatePopupMenu();    // Jan. 29, 2002 genta
01967             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BEGIN_BOX  , _T("矩形範囲選択開始(&B)") );
01973 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_UP2_BOX         , _T("(矩選)カーソル上移動(２行ごと) (&Q)") );
01974 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DOWN2_BOX       , _T("(矩選)カーソル下移動(２行ごと) (&K)") );
01975 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDLEFT_BOX    , _T("(矩選)単語の左端に移動(&L)") );
01976 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDRIGHT_BOX   , _T("(矩選)単語の右端に移動(&R)") );
01977 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOLINETOP_BOX   , _T("(矩選)行頭に移動(折り返し単位) (&H)") x);
01978 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOLINEEND_BOX   , _T("(矩選)行末に移動(折り返し単位) (&E)") );
01979 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01982 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_1PageUp_Box     , _T("(矩選)１ページアップ(&U)") );
01983 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_1PageDown_Box   , _T("(矩選)１ページダウン(&D)") );
01984 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOFILETOP_BOX   , _T("(矩選)ファイルの先頭に移動(&T)") );
01985 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOFILEEND_BOX   , _T("(矩選)ファイルの最後に移動(&B)") );
01986
01987             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("選択(&S)") );
01988
01989 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("矩形選択(&E)") );
01990
01991             // 「整形」ポップアップメニュー
01992             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
01993             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LTRIM, _T("左(先頭)の空白を削除(&L)") );  // 2001.12.06 hor
01994             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_RTRIM, _T("右(末尾)の空白を削除(&R)") );  // 2001.12.06 hor
01995             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01996             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SORT_ASC, _T("選択行の昇順ソート(&A)") ); // 2001.12.06 hor
01997             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SORT_DESC, _T("選択行の降順ソート(&D)") );    // 2001.12.06 hor
01998             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
01999             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_MERGE, _T("連続した重複行の削除(uniq)(&U)") );           // 2001.12.06 hor
02000             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("整形(&K)") );
02001
02002             break;
02003         //Feb. 19, 2001 JEPRO [移動][移動], [選択]を[編集]配下に移したので削除
02004
02005 //      case 4://case 2: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02006         case 2://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02007             m_CMenuDrawer.ResetContents();
02008             /* 「変換」メニュー */
02009             cMenuItems = ::GetMenuItemCount( hMenu );
02010             for( i = cMenuItems - 1; i >= 0; i-- ){
02011                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02012             }
02013             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOLOWER             , _T("小文字(&L)") );            //Sept. 10, 2000 jepro キャプションを英語から変更
02014             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOUPPER             , _T("大文字(&U)") );            //Sept. 10, 2000 jepro キャプションを英語から変更
02015             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02016 //  From Here Sept. 18, 2000 JEPRO
02017 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKAKU           , _T("全角→半角") );
02018 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUKATA       , _T("半角→全角カタカナ") );
02019 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUHIRA       , _T("半角→全角ひらがな") );
02020             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKAKU           , _T("全角→半角(&F)") );                  //Sept. 13, 2000 JEPRO アクセスキー付与
02021     // From Here 2007.01.24 maru メニューの並び変更とアクセスキー追加
02022             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUKATA       , _T("半角＋全ひら→全角・カタカナ(&Z)") );   //Sept. 13, 2000 JEPRO キャプション変更 & アクセスキー付与 //Oct. 11, 2000 JEPRO キャプション変更
02023             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUHIRA       , _T("半角＋全カタ→全角・ひらがな(&N)") );   //Sept. 13, 2000 JEPRO キャプション変更 & アクセスキー付与 //Oct. 11, 2000 JEPRO キャプション変更
02024             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANEI             , _T("全角英数→半角英数(&A)") );
02025             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENEI             , _T("半角英数→全角英数(&M)") );              //July. 29, 2001 Misaka アクセスキー付与
02026             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKATA           , _T("全角カタカナ→半角カタカナ(&J)") );      //Aug. 29, 2002 ai
02027     // To Here 2007.01.24 maru メニューの並び変更とアクセスキー追加
02028 //  To Here Sept. 18, 2000
02029             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HANKATATOZENKAKUKATA, _T("半角カタカナ→全角カタカナ(&K)") );  //Sept. 13, 2000 JEPRO アクセスキー付与
02030             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HANKATATOZENKAKUHIRA, _T("半角カタカナ→全角ひらがな(&H)") );  //Sept. 13, 2000 JEPRO アクセスキー付与
02031             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02032             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TABTOSPACE          , _T("TAB→空白(&S)") ); //Feb. 19, 2001 JEPRO 下から移動した
02033             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPACETOTAB          , _T("空白→TAB(&T)") ); //---- Stonee, 2001/05/27
02034             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02035
02036             //「文字コード変換」ポップアップ
02037             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02038             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_AUTO2SJIS      , _T("自動判別→SJISコード変換(&A)") );
02039             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_EMAIL          , _T("E-Mail(JIS→SJIS)コード変換(&M)") );//Sept. 11, 2000 JEPRO キャプションに「E-Mail」を追加しアクセスキー変更(V→M:Mail)
02040             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_EUC2SJIS       , _T("EUC→SJISコード変換(&W)") );        //Sept. 11, 2000 JEPRO アクセスキー変更(E→W:Work Station)
02041             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UNICODE2SJIS   , _T("Unicode→SJISコード変換(&U)") );    //Sept. 11, 2000 JEPRO アクセスキー変更候補はI:shIft
02042             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UNICODEBE2SJIS , _T("UnicodeBE→SJISコード変換(&N)") );
02043             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UTF82SJIS      , _T("UTF-8→SJISコード変換(&T)") );  //Sept. 11, 2000 JEPRO アクセスキー付与(T:uTF/shifT)    //Oct. 6, 2000 簡潔表示にした
02044             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UTF72SJIS      , _T("UTF-7→SJISコード変換(&F)") );  //Sept. 11, 2000 JEPRO アクセスキー付与(F:utF/shiFt)    //Oct. 6, 2000 簡潔表示にした
02045             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02046             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2JIS       , _T("SJIS→JISコード変換(&J)") );        //Sept. 11, 2000 JEPRO アクセスキー付与
02047             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2EUC       , _T("SJIS→EUCコード変換(&E)") );        //Sept. 11, 2000 JEPRO アクセスキー付与
02048 //          m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UNICODE   , _T("SJIS→&Unicodeコード変換") );       //Sept. 11, 2000 JEPRO アクセスキー付与
02049             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UTF8      , _T("SJIS→UTF-8コード変換(&8)") );  //Sept. 11, 2000 JEPRO アクセスキー付与 //Oct. 6, 2000 簡潔表示にした
02050             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UTF7      , _T("SJIS→UTF-7コード変換(&7)") );  //Sept. 11, 2000 JEPRO アクセスキー付与 //Oct. 6, 2000 簡潔表示にした
02051             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02052             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BASE64DECODE           , _T("Base64デコードして保存(&B)") );   //Oct. 6, 2000 JEPRO アクセスキー変更(6→B)
02053             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UUDECODE               , _T("uudecodeして保存(&D)") );         //Sept. 11, 2000 JEPRO アクセスキー変更(U→D)
02054
02055             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("文字コード変換(&C)") );
02056
02057             break;
02058
02059 //      case 5://case 3: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02060         case 3://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02061             m_CMenuDrawer.ResetContents();
02062             /* 「検索」メニュー */
02063             cMenuItems = ::GetMenuItemCount( hMenu );
02064             for( i = cMenuItems - 1; i >= 0; i-- ){
02065                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02066             }
02067             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_DIALOG   , _T("検索(&F)...") );
02068             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_NEXT     , _T("次を検索(&N)") );             //Sept. 11, 2000 JEPRO "次"を"前"の前に移動
02069             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_PREV     , _T("前を検索(&P)") );
02070             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REPLACE_DIALOG  , _T("置換(&R)...") );                //Oct. 7, 2000 JEPRO 下のセクションからここに移動
02071             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_CLEARMARK, _T("検索マークの切替え(&C)") );  // "検索マークのクリア(&C)" );
02072             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_JUMP_SRCHSTARTPOS, _T("検索開始位置へ戻る(&I)") ); // 検索開始位置へ戻る 02/06/26 ai
02073
02074             // Jan. 10, 2005 genta インクリメンタルサーチ
02075             hMenuPopUp = ::CreatePopupMenu();
02076             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_NEXT, _T("前方インクリメンタルサーチ(&F)") );
02077             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_PREV, _T("後方インクリメンタルサーチ(&B)") );
02078             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_REGEXP_NEXT, _T("正規表現前方インクリメンタルサーチ(&R)") );
02079             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_REGEXP_PREV, _T("正規表現後方インクリメンタルサーチ(&X)") );
02080             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_MIGEMO_NEXT, _T("MIGEMO前方インクリメンタルサーチ(&M)") );
02081             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_MIGEMO_PREV, _T("MIGEMO後方インクリメンタルサーチ(&N)") );
02082             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("インクリメンタルサーチ(&S)") );
02083
02084             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02085 // From Here 2001.12.03 hor
02086             // Jan. 10, 2005 genta 長すぎるのでブックマークをサブメニューに
02087             hMenuPopUp = ::CreatePopupMenu();
02088             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_SET   , _T("ブックマーク設定・解除(&S)") );
02089             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_NEXT  , _T("次のブックマークへ(&A)") );
02090             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_PREV  , _T("前のブックマークへ(&Z)") );
02091             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_RESET , _T("ブックマークの全解除(&X)") );
02092             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_VIEW  , _T("ブックマークの一覧(&V)") );
02093             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("ブックマーク(&M)") );
02094 // To Here 2001.12.03 hor
02095             //  Aug. 19. 2003 genta アクセスキー表記を統一
02096             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GREP_DIALOG     , _T("Grep(&G)...") );                  //Oct. 7, 2000 JEPRO 下からここに移動
02097             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_JUMP_DIALOG     , _T("指定行へジャンプ(&J)...") );  //Sept. 11, 2000 jepro キャプションに「 ジャンプ」を追加
02098             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OUTLINE         , _T("アウトライン解析(&L)...") );
02099             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMP         , _T("タグジャンプ(&T)") );
02100             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMPBACK     , _T("タグジャンプバック(&B)") );
02101             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGS_MAKE       , _T("タグファイルの作成...") );   //@@@ 2003.04.13 MIK // 2004.05.06 MIK ...追加
02102             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIRECT_TAGJUMP  , _T("ダイレクトタグジャンプ") );    //@@@ 2003.04.13 MIK
02103             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMP_KEYWORD , _T("キーワードを指定してタグジャンプ") ); //@@ 2005.03.31 MIK
02104             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPEN_HfromtoC               , _T("同名のC/C++ヘッダ(ソース)を開く(&C)") );  //Feb. 7, 2001 JEPRO 追加
02105             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02106             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COMPARE         , _T("ファイル内容比較(&@)...") );
02107             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_DIALOG     , _T("DIFF差分表示(&D)...") );  //@@@ 2002.05.25 MIK
02108             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_NEXT       , _T("次の差分へ") );      //@@@ 2002.05.25 MIK
02109             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_PREV       , _T("前の差分へ") );      //@@@ 2002.05.25 MIK
02110             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_RESET      , _T("差分表示の全解除") );     //@@@ 2002.05.25 MIK
02111 //  From Here Sept. 1, 2000 JEPRO   対括弧の検索をメニューに追加
02112             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02113             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_BRACKETPAIR     , _T("対括弧の検索(&[)") );
02114 //  To Here Sept. 1, 2000
02115
02116             break;
02117
02118 //      case 6://case 4: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02119         case 4://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02120             m_CMenuDrawer.ResetContents();
02121             /* 「オプション」メニュー */
02122             cMenuItems = ::GetMenuItemCount( hMenu );
02123             for( i = cMenuItems - 1; i >= 0; i-- ){
02124                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02125             }
02126
02127             if( !m_pShareData->m_bRecordingKeyMacro ){  /* キーボードマクロの記録中 */
02128                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECKEYMACRO , _T("キーマクロの記録開始(&R)") );
02129                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SAVEKEYMACRO, _T("キーマクロの保存(&M)") );
02130                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_LOADKEYMACRO, _T("キーマクロの読み込み(&A)") );
02131                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECKEYMACRO, _T("キーマクロの実行(&D)") );
02132             }else{
02133                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECKEYMACRO , _T("キーマクロの記録終了(&R)") );
02134                 ::CheckMenuItem( hMenu, F_RECKEYMACRO, MF_BYCOMMAND | MF_CHECKED );
02135                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SAVEKEYMACRO, _T("キーマクロの記録終了&&保存(&M)") );
02136                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_LOADKEYMACRO, _T("キーマクロの記録終了&&読み込み(&A)") );
02137                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECKEYMACRO, _T("キーマクロの記録終了&&実行(&D)") );
02138             }
02139
02140             //  From Here Sep. 14, 2001 genta
02141             //「登録済みマクロ」ポップアップ
02142             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02143
02144             for( i = 0; i < MAX_CUSTMACRO; ++i ){
02145                 MacroRec *mp = &m_pShareData->m_MacroTable[i];
02146                 if( mp->IsEnabled() ){
02147                     if(  mp->m_szName[0] ){
02148                         m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_USERMACRO_0 + i, mp->m_szName );
02149                     }
02150                     else {
02151                         m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_USERMACRO_0 + i, mp->m_szFile );
02152                     }
02153                 }
02154             }
02155             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("登録済みマクロ(&B)") );
02156             //  To Here Sep. 14, 2001 genta
02157
02158             if( m_pShareData->m_bRecordingKeyMacro ){   /* キーボードマクロの記録中 */
02159                 ::CheckMenuItem( hMenu, F_RECKEYMACRO, MF_BYCOMMAND | MF_CHECKED );
02160             }
02161             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02162
02163             //From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
02164 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECCMMAND, _T("外部コマンド実行(&X)") );
02165             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECCOMMAND_DIALOG, _T("外部コマンド実行(&X)...") );    //Mar. 10, 2001 JEPRO 機能しないのでメニューから隠した  //Mar.21, 2001 JEPRO 標準出力しないで復活 // 2004.05.06 MIK ...追加
02166             //To Here Sept. 20, 2000
02167
02168             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ACTIVATE_SQLPLUS            , _T("SQL*Plusをアクティブ表示(&P)") ); //Sept. 11, 2000 JEPRO アクセスキー付与 説明の「アクティブ化」を「アクティブ表示」に統一
02169             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PLSQL_COMPILE_ON_SQLPLUS    , _T("SQL*Plusで実行(&S)") );            //Sept. 11, 2000 JEPRO アクセスキー付与
02170
02171             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02172             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HOKAN           , _T("入力補完(&/)") );
02173             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02174
02175             //「カスタムメニュー」ポップアップ
02176             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02177             //  右クリックメニュー
02178             if( m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[0] > 0 ){
02179                  m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING,
02180                     F_MENU_RBUTTON, m_pShareData->m_Common.m_sCustomMenu.m_szCustMenuNameArr[0] );
02181             }
02182             //  カスタムメニュー
02183             for( i = 1; i < MAX_CUSTOM_MENU; ++i ){
02184                 if( m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[i] > 0 ){
02185                      m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING,
02186                         F_CUSTMENU_BASE + i, m_pShareData->m_Common.m_sCustomMenu.m_szCustMenuNameArr[i] );
02187                 }
02188             }
02189
02190             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("カスタムメニュー(&U)") );
02191
02192 //      m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
02193
02194             break;
02195
02196         case 5://Feb. 28, 2004 genta 「設定」メニュー
02197             //  設定項目を「ツール」から独立させた
02198             m_CMenuDrawer.ResetContents();
02199             /* 「ウィンドウ」メニュー */
02200             cMenuItems = ::GetMenuItemCount( hMenu );
02201             for( i = cMenuItems - 1; i >= 0; i-- ){
02202                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02203             }
02204
02205 //  From Here Sept. 17, 2000 JEPRO
02206 //  やはりWin標準に合わせてチェックマークだけで表示／非表示を判断するようにした方がいいので変更
02207             if ( FALSE == m_pShareData->m_Common.m_sWindow.m_bMenuIcon ){
02208                 pszLabel = _T("ツールバーを表示(&T)");              //これのみ表示
02209                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTOOLBAR, pszLabel );    //これのみ
02210                 pszLabel = _T("ファンクションキーを表示(&K)");      //これのみ表示
02211                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWFUNCKEY, pszLabel );    //これのみ
02212                 pszLabel = _T("タブバーを表示");     //これのみ表示    //@@@ 2003.06.10 MIK    // 2007.02.13 ryoji 「タブ」→「タブバー」
02213                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTAB, pszLabel );    //これのみ  //@@@ 2003.06.10 MIK
02214                 pszLabel = _T("ステータスバーを表示(&S)");            //これのみ表示
02215 //  To Here Sept.17, 2000 JEPRO
02216 //  From Here Oct. 28, 2000 JEPRO
02217 //  3つボタンのアイコンができたことに伴い表示／非表示のメッセージを変えるように再び変更
02218             }
02219             else{
02220                 if( m_cToolbar.GetToolbarHwnd() == NULL ){
02221                     pszLabel = _T("ツールバーを表示(&T)");          //これのみ表示
02222                 }else{
02223                     pszLabel = _T("表示中のツールバーを隠す(&T)");          //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02224                 }
02225                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTOOLBAR, pszLabel );    //これのみ
02226                 if( NULL == m_CFuncKeyWnd.GetHwnd() ){
02227                     pszLabel = _T("ファンクションキーを表示(&K)");  //これのみ表示
02228                 }else{
02229                     pszLabel = _T("表示中のファンクションキーを隠す(&K)");  //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02230                 }
02231                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWFUNCKEY, pszLabel );    //これのみ
02232                 //@@@ 2003.06.10 MIK
02233                 if( NULL == m_cTabWnd.GetHwnd() ){
02234                     pszLabel = _T("タブバーを表示(&M)"); //これのみ表示    // 2007.02.13 ryoji 「タブ」→「タブバー」
02235                 }else{
02236                     pszLabel = _T("表示中のタブバーを隠す(&M)"); // 2007.02.13 ryoji 「タブ」→「タブバー」
02237                 }
02238                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTAB, pszLabel );    //これのみ
02239                 if( m_cStatusBar.GetStatusHwnd() == NULL ){
02240                     pszLabel = _T("ステータスバーを表示(&S)");        //これのみ表示
02241                 }else{
02242                     pszLabel = _T("表示中のステータスバーを隠す(&S)");        //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02243                 }
02244             }
02245 //  To Here Oct. 28, 2000
02246
02247             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWSTATUSBAR, pszLabel );
02248
02249             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02250             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TYPE_LIST       , _T("タイプ別設定一覧(&L)...") );  //Sept. 13, 2000 JEPRO 設定より上に移動
02251             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPTION_TYPE     , _T("タイプ別設定(&Y)...") );        //Sept. 13, 2000 JEPRO アクセスキー変更(S→Y)
02252             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPTION          , _T("共通設定(&C)...") );
02253             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FONT            , _T("フォント設定(&F)...") );        //Sept. 17, 2000 jepro キャプションに「設定」を追加
02254             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FAVORITE        , _T("履歴の管理(&O)...") );   //履歴の管理   //@@@ 2003.04.08 MIK
02255             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02256 //@@@ 2002.01.14 YAZAKI 折り返さないコマンド追加
02257 // 20051022 aroka タイプ別設定値に戻すコマンド追加
02258             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02259             //  Jan.  8, 2006 genta 共通関数化
02260             {
02261                 CLayoutInt ketas;
02262                 CEditView::TOGGLE_WRAP_ACTION mode = this->GetActiveView().GetWrapMode( &ketas );
02263                 if( mode == CEditView::TGWRAP_NONE ){
02264                     pszLabel = _T("幅の変更は出来ません(&W)");
02265                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_WRAPWINDOWWIDTH , pszLabel );
02266                 }
02267                 else {
02268                     if( mode == CEditView::TGWRAP_FULL ){
02269                         pszLabel = _T("折り返さない(&W)");
02270                     }
02271                     else if( mode == CEditView::TGWRAP_WINDOW ){
02272                         pszLabel = _T("現在のウィンドウ幅で折り返し(&W)");
02273                     }
02274                     else {  // TGWRAP_PROP
02275                         pszLabel = _T("タイプ別設定の幅で折り返し(&W)");
02276                     }
02277                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WRAPWINDOWWIDTH , pszLabel );
02278                 }
02279             }
02280             //Sept. 13, 2000 JEPRO アクセスキー付与 //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
02281 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WRAPWINDOWWIDTH , _T("現在のウィンドウ幅で折り返し(&W)") );   //Sept. 13, 2000 JEPRO アクセスキー付与 //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
02282             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02283             // 2003.06.08 Moca 追加
02284             // 「モード変更」ポップアップメニュー
02285             // Feb. 28, 2004 genta 編集メニューから移動
02286             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CHGMOD_INS  , _T("挿入／上書きモード(&I)") );  //Nov. 9, 2000 JEPRO アクセスキー付与
02287             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_READONLY                    , _T("読み取り専用(&R)") );
02288             if ( FALSE == m_pShareData->m_Common.m_sWindow.m_bMenuIcon ){
02289                 pszLabel = _T("キーワードヘルプ自動表示(&H)");
02290             }
02291             else if( IsFuncChecked( &GetDocument(), m_pShareData, F_TOGGLE_KEY_SEARCH ) ){
02292                 pszLabel = _T("キーワードヘルプ自動表示しない(&H)");
02293             }
02294             else {
02295                 pszLabel = _T("キーワードヘルプ自動表示する(&H)");
02296             }
02297             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOGGLE_KEY_SEARCH, pszLabel );
02298             hMenuPopUp = ::CreatePopupMenu();
02299             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CRLF, _T("入力改行コード指定(&CRLF)") ); // 入力改行コード指定(CRLF)
02300             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_LF, _T("入力改行コード指定(&LF)") ); // 入力改行コード指定(LF)
02301             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CR, _T("入力改行コード指定(C&R)") ); // 入力改行コード指定(CR)
02302             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , _T("入力改行コード指定(&E)") );
02303
02304
02305             break;
02306
02307 //      case 7://case 5: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02308 //      case 5://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02309         case 6://Feb. 28, 2004 genta 「設定」の新設のため番号をずらした
02310             m_CMenuDrawer.ResetContents();
02311             /* 「ウィンドウ」メニュー */
02312             cMenuItems = ::GetMenuItemCount( hMenu );
02313             for( i = cMenuItems - 1; i >= 0; i-- ){
02314                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02315             }
02316
02317             if( 1 == m_cSplitterWnd.GetAllSplitRows() ){ // 2002/2/8 aroka メソッドを通じてアクセス
02318                 pszLabel = _T("上下に分割(&-)");   //Oct. 7, 2000 JEPRO アクセスキーを変更(T→-)
02319             }else{
02320                 pszLabel = _T("上下分割の解除(&-)");
02321             }
02322             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_V , pszLabel );
02323
02324             if( 1 == m_cSplitterWnd.GetAllSplitCols() ){ // 2002/2/8 aroka メソッドを通じてアクセス
02325                 pszLabel = _T("左右に分割(&I)");   //Oct. 7, 2000 JEPRO アクセスキーを変更(Y→I)
02326             }else{
02327                 pszLabel = _T("左右分割の解除(&I)");
02328             }
02329             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_H , pszLabel );
02330 //  From Here Sept. 17, 2000 JEPRO  縦横分割の場合も状態によってメニューメッセージが変わるように変更
02331             if( (1 < m_cSplitterWnd.GetAllSplitRows()) && (1 < m_cSplitterWnd.GetAllSplitCols()) ){ // 2002/2/8 aroka メソッドを通じてアクセス
02332                 pszLabel = _T("縦横分割の解除(&S)"); //Feb. 18, 2001 JEPRO アクセスキー変更(Q→S)
02333             }else{
02334                 pszLabel = _T("縦横に分割(&S)");   //Sept. 17, 2000 jepro 説明に「に」を追加  //Oct. 7, 2000 JEPRO アクセスキーを変更(S→Q) //Feb. 18, 2001 JEPRO アクセスキーを元に戻した(Q→S)
02335             }
02336             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_VH , pszLabel );
02337 //  To Here Sept. 17, 2000
02338             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );  /* セパレータ */
02339             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINCLOSE        , _T("閉じる(&C)") );            //Feb. 18, 2001 JEPRO アクセスキー変更(O→C)
02340             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WIN_CLOSEALL    , _T("すべて閉じる(&Q)") );       //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)  //Feb. 18, 2001 JEPRO アクセスキー変更(L→Q)
02341             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02342             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_NEXTWINDOW      , _T("次のウィンドウ(&N)") );    //Sept. 11, 2000 JEPRO "次"を"前"の前に移動
02343             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PREVWINDOW      , _T("前のウィンドウ(&P)") );
02344             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINLIST         , _T("ウィンドウ一覧(&W)...") );     // 2006.03.23 fon
02345             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );  /* セパレータ */
02346             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CASCADE         , _T("重ねて表示(&E)") );      //Oct. 7, 2000 JEPRO アクセスキー変更(C→E)
02347             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TILE_V          , _T("上下に並べて表示(&H)") ); //Sept. 13, 2000 JEPRO 分割に合わせてメニューの左右と上下を入れ替えた //Oct. 7, 2000 JEPRO アクセスキー変更(V→H)
02348             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TILE_H          , _T("左右に並べて表示(&T)") ); //Oct. 7, 2000 JEPRO アクセスキー変更(H→T)
02349             if( (DWORD)::GetWindowLongPtr( GetHwnd(), GWL_EXSTYLE ) & WS_EX_TOPMOST ){
02350                 pszLabel = _T("常に手前を解除(&F)");
02351             }else{
02352                 pszLabel = _T("常に手前に表示(&F)");
02353             }
02354             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOPMOST, pszLabel ); //2004.09.21 Moca  // 2007.06.20 ryoji アクセスキー追加
02355
02356             hMenuPopUp = ::CreatePopupMenu();   // 2007.06.20 ryoji
02357             if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
02358                 pszLabel = _T("グループ化を解除(&B)");
02359             }else{
02360                 pszLabel = _T("グループ化(&B)");
02361             }
02362             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BIND_WINDOW, pszLabel );       //2004.07.14 Kazika 新規追加    // 2007.02.13 ryoji 「結合して表示」→「ひとつにまとめて表示」 // 2007.06.20 ryoji 「グループ化」
02363             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02364             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GROUPCLOSE     , _T("グループを閉じる(&G)") ); // 2007.06.20 ryoji
02365             m_CMenuDrawer.MyAppendMenuSep( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02366             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_NEXTGROUP      , _T("次のグループ(&N)") );           // 2007.06.20 ryoji
02367             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_PREVGROUP      , _T("前のグループ(&P)") );           // 2007.06.20 ryoji
02368             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_MOVERIGHT  , _T("タブを右に移動(&R)") );        // 2007.06.20 ryoji
02369             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_MOVELEFT   , _T("タブを左に移動(&L)") );        // 2007.06.20 ryoji
02370             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_SEPARATE   , _T("新規グループ(&E)") );           // 2007.06.20 ryoji
02371             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_JOINTNEXT  , _T("次のグループに移動(&X)") );  // 2007.06.20 ryoji
02372             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_JOINTPREV  , _T("前のグループに移動(&V)") );  // 2007.06.20 ryoji
02373             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("タブの操作(&B)") );     // 2007.06.20 ryoji
02374
02375             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );  /* セパレータ */
02376             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MAXIMIZE_V      , _T("縦方向に最大化(&X)") );    //Sept. 13, 2000 JEPRO アクセスキー付与
02377             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MAXIMIZE_H      , _T("横方向に最大化(&Y)") );    //2001.02.10 by MIK
02378             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MINIMIZE_ALL    , _T("すべて最小化(&M)") );       //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
02379             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );  /* セパレータ */               //Oct. 22, 2000 JEPRO 下の「再描画」復活に伴いセパレータを追加
02380             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REDRAW          , _T("再描画(&R)") );            //Oct. 22, 2000 JEPRO コメントアウトされていたのを復活させた
02381             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );  /* セパレータ */
02382             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WIN_OUTPUT      , _T("アウトプット(&U)") );       //Sept. 13, 2000 JEPRO アクセスキー変更(O→U)
02383 // 2006.03.23 fon CHG-start>>
02384             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );      /* セパレータ */
02385             EditNode*   pEditNodeArr;
02386             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
02387             WinListMenu(hMenu, pEditNodeArr, nRowNum, false);
02388             delete [] pEditNodeArr;
02389 //<< 2006.03.23 fon CHG-end
02390             break;
02391
02392 //      case 8://case 6: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02393 //      case 6://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02394         case 7://Feb. 28, 2004 genta 「設定」の新設のため番号をずらした
02395             m_CMenuDrawer.ResetContents();
02396             /* 「ヘルプ」メニュー */
02397             cMenuItems = ::GetMenuItemCount( hMenu );
02398             for( i = cMenuItems - 1; i >= 0; i-- ){
02399                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02400             }
02401 //Sept. 15, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
02402             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_CONTENTS , _T("目次(&O)") );             //Sept. 7, 2000 jepro キャプションを「ヘルプ目次」から変更    Oct. 13, 2000 JEPRO アクセスキーを「トレイ右ボタン」のために変更(C→O)
02403             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_SEARCH ,    _T("キーワード検索(&S)...") );  //Sept. 7, 2000 jepro キャプションを「ヘルプトピックの検索」から変更 //Nov. 25, 2000 jepro「トピックの」→「キーワード」に変更 // 2004.05.06 MIK ...追加
02404             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02405             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MENU_ALLFUNC    , _T("コマンド一覧(&M)") );       //Oct. 13, 2000 JEPRO アクセスキーを「トレイ右ボタン」のために変更(L→M)
02406 //Sept. 16, 2000 JEPRO ショートカットキーがうまく働かないので次行は殺して元に戻してある     //Dec. 25, 2000 復活
02407             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CREATEKEYBINDLIST   , _T("キー割り当て一覧をコピー(&Q)") );         //Sept. 15, 2000 JEPRO キャプションの「...リスト」、アクセスキー変更(K→Q) IDM_TEST→Fに変更          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02408             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXTHELP1        , _T("外部ヘルプ１(&E)") );       //Sept. 7, 2000 JEPRO このメニューの順番をトップから下に移動
02409             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXTHTMLHELP     , _T("外部HTMLヘルプ(&H)") );  //Sept. 7, 2000 JEPRO このメニューの順番を２番目から下に移動
02410             m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02411             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ABOUT           , _T("バージョン情報(&A)") );    //Dec. 25, 2000 JEPRO F_に変更
02412             break;
02413         }
02414     }
02415
02416 end_of_func_IsEnable:;
02417 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02418     if (m_pPrintPreview)    return; //  印刷プレビューモードなら排除。（おそらく排除しなくてもいいと思うんだけど、念のため）
02419
02420     /* 機能が利用可能かどうか、チェック状態かどうかを一括チェック */
02421     cMenuItems = ::GetMenuItemCount( hMenu );
02422     for (nPos = 0; nPos < cMenuItems; nPos++) {
02423         id = ::GetMenuItemID(hMenu, nPos);
02424         /* 機能が利用可能か調べる */
02425         //  Jan.  8, 2006 genta 機能が有効な場合には明示的に再設定しないようにする．
02426         if( ! IsFuncEnable( &GetDocument(), m_pShareData, id ) ){
02427             fuFlags = MF_BYCOMMAND | MF_GRAYED;
02428             ::EnableMenuItem(hMenu, id, fuFlags);
02429         }
02430
02431         /* 機能がチェック状態か調べる */
02432         if( IsFuncChecked( &GetDocument(), m_pShareData, id ) ){
02433             fuFlags = MF_BYCOMMAND | MF_CHECKED;
02434             ::CheckMenuItem(hMenu, id, fuFlags);
02435         }
02436         /* else{
02437             fuFlags = MF_BYCOMMAND | MF_UNCHECKED;
02438         }
02439         */
02440     }
02441     return;
02442 }
02443
02444
02445
02446
02447 /* ファイルがドロップされた */
02448 void CEditWnd::OnDropFiles( HDROP hDrop )
02449 {
02450     POINT       pt;
02451     WORD        cFiles, i;
02452     TCHAR       szFile[_MAX_PATH + 1];
02453     TCHAR       szWork[_MAX_PATH + 1];
02454     FileInfo*   pfi;
02455     HWND        hWndOwner;
02456
02457     ::DragQueryPoint( hDrop, &pt );
02458     cFiles = ::DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0);
02459     /* ファイルをドロップしたときは閉じて開く */
02460     if( m_pShareData->m_Common.m_sFile.m_bDropFileAndClose ){
02461         cFiles = 1;
02462     }
02463     /* 一度にドロップ可能なファイル数 */
02464     if( cFiles > m_pShareData->m_Common.m_sFile.m_nDropFileNumMax ){
02465         cFiles = m_pShareData->m_Common.m_sFile.m_nDropFileNumMax;
02466     }
02467
02468     for( i = 0; i < cFiles; i++ ) {
02469         ::DragQueryFile( hDrop, i, szFile, _countof(szFile) );
02470         /* ショートカット(.lnk)の解決 */
02471         if( TRUE == ResolveShortcutLink( NULL, szFile, szWork ) ){
02472             _tcscpy( szFile, szWork );
02473         }
02474         /* ロングファイル名を取得する */
02475         if( TRUE == ::GetLongFileName( szFile, szWork ) ){
02476             _tcscpy( szFile, szWork );
02477         }
02478
02479         /* 指定ファイルが開かれているか調べる */
02480         if( CShareData::getInstance()->IsPathOpened( szFile, &hWndOwner ) ){
02481 			::SendMessageAny( hWndOwner, MYWM_GETFILEINFO, 0, 0 );
02482             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
02483             /* アクティブにする */
02484             ActivateFrameWindow( hWndOwner );
02485             /* MRUリストへの登録 */
02486             CMRU cMRU;
02487             cMRU.Add( pfi );
02488         }
02489         else{
02490             /* 変更フラグがオフで、ファイルを読み込んでいない場合 */
02491             //  2005.06.24 Moca
02492             if( GetDocument().IsFileOpenInThisWindow() ){
02493                 /* ファイル読み込み */
02494                 bool        bOpened;
02495                 GetDocument().FileRead(
02496                         szFile,
02497                         &bOpened,
02498                         CODE_AUTODETECT,    /* 文字コード自動判別 */
02499                         false,              /* 読み取り専用か */
02500                         //  Oct. 03, 2004 genta コード確認は設定に依存
02501                         m_pShareData->m_Common.m_sFile.m_bQueryIfCodeChange!=0
02502                 );
02503                 hWndOwner = GetHwnd();
02504                 /* アクティブにする */
02505                 // 2007.06.17 maru すでに開いているかチェック済みだが
02506                 // ドロップされたのはフォルダかもしれないので再チェック
02507                 if(!bOpened) ActivateFrameWindow( hWndOwner );
02508             }
02509             else{
02510                 /* ファイルをドロップしたときは閉じて開く */
02511                 if( m_pShareData->m_Common.m_sFile.m_bDropFileAndClose ){
02512                     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
02513                     if( GetDocument().OnFileClose() ){
02514                         /* 既存データのクリア */
02515                         GetDocument().Init();
02516
02517                         /* 全ビューの初期化 */
02518                         GetDocument().InitAllView();
02519
02520                         /* 親ウィンドウのタイトルを更新 */
02521                         GetDocument().SetParentCaption();
02522
02523                         /* ファイル読み込み */
02524                         bool        bOpened;
02525                         GetDocument().FileRead(
02526                             szFile,
02527                             &bOpened,
02528                             CODE_AUTODETECT,    /* 文字コード自動判別 */
02529                             false,              /* 読み取り専用か */
02530                             //  Oct. 03, 2004 genta コード確認は設定に依存
02531                             m_pShareData->m_Common.m_sFile.m_bQueryIfCodeChange!=0
02532                             //TRUE
02533                         );
02534                         hWndOwner = GetHwnd();
02535                         /* アクティブにする */
02536                         ActivateFrameWindow( hWndOwner );
02537                     }
02538                     goto end_of_drop_query;
02539                 }
02540                 else{
02541                     /* 編集ウィンドウの上限チェック */
02542                     if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正   //@@@ 2003.05.31 MIK
02543                         TCHAR szMsg[512];
02544                         auto_sprintf(
02545                             szMsg,
02546                             _T("編集ウィンドウ数の上限は%dです。\n")
02547                             _T("これ以上は同時に開けません。"),
02548                             MAX_EDITWINDOWS
02549                         );
02550                         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
02551                         ::DragFinish( hDrop );
02552                         return;
02553                     }
02554                     TCHAR   szFile2[_MAX_PATH + 3];
02555                     if( _tcschr( szFile, _T(' ') ) ){
02556                         auto_sprintf( szFile2, _T("\"%ts\""), szFile );
02557                         _tcscpy( szFile, szFile2 );
02558                     }
02559                     /* 新たな編集ウィンドウを起動 */
02560                     CControlTray::OpenNewEditor(
02561                         m_hInstance,
02562                         GetHwnd(),
02563                         szFile,
02564                         CODE_AUTODETECT,    /* 文字コード自動判別 */
02565                         FALSE               /* 読み取り専用か */
02566                     );
02567                 }
02568             }
02569         }
02570     }
02571 end_of_drop_query:;
02572     ::DragFinish( hDrop );
02573     return;
02574 }
02575
02579 LRESULT CEditWnd::OnTimer( WPARAM wParam, LPARAM lParam )
02580 {
02581     // タイマー ID で処理を振り分ける
02582     switch( wParam )
02583     {
02584     case IDT_EDIT:
02585         OnEditTimer();
02586         break;
02587     case IDT_TOOLBAR:
02588         m_cToolbar.OnToolbarTimer();
02589         break;
02590     case IDT_CAPTION:
02591         OnCaptionTimer();
02592         break;
02593     case IDT_SYSMENU:
02594         OnSysMenuTimer();
02595         break;
02596     default:
02597         return 1L;
02598     }
02599
02600     return 0L;
02601 }
02602
02603
02607 void CEditWnd::OnCaptionTimer( void )
02608 {
02609     // 編集画面の切替（タブまとめ時）が終わっていたらタイマーを終了してタイトルバーを更新する
02610     // まだ切替中ならタイマー継続
02611     if( !m_pShareData->m_bEditWndChanging ){
02612         ::KillTimer( GetHwnd(), IDT_CAPTION );
02613         ::SetWindowText( GetHwnd(), m_pszLastCaption );
02614     }
02615 }
02616
02621 void CEditWnd::OnSysMenuTimer( void ) //by 鬼(2)
02622 {
02623     ::KillTimer( GetHwnd(), IDT_SYSMENU );  // 2007.04.03 ryoji
02624
02625     if(m_IconClicked == icClicked)
02626     {
02627         ReleaseCapture();
02628
02629         //システムメニュー表示
02630         // 2006.04.21 ryoji マルチモニタ対応の修正
02631         // 2007.05.13 ryoji 0x0313メッセージをポストする方式に変更（TrackPopupMenuだとメニュー項目の有効／無効状態が不正になる問題対策）
02632         RECT R;
02633         GetWindowRect(GetHwnd(), &R);
02634         POINT pt;
02635         pt.x = R.left + GetSystemMetrics(SM_CXFRAME);
02636         pt.y = R.top + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);
02637         GetMonitorWorkRect( pt, &R );
02638 		::PostMessageAny(
02639             GetHwnd(),
02640             0x0313, //右クリックでシステムメニューを表示する際に送信するモノらしい
02641             0,
02642             MAKELPARAM( (pt.x > R.left)? pt.x: R.left, (pt.y < R.bottom)? pt.y: R.bottom )
02643         );
02644     }
02645     m_IconClicked = icNone;
02646 }
02647
02648
02649
02650
02651 //#ifdef _DEBUG
02652     /* デバッグモニタモードに設定 */
02653     void CEditWnd::SetDebugModeON( void )
02654     {
02655         if( NULL != m_pShareData->m_hwndDebug ){
02656             if( CShareData::IsEditWnd( m_pShareData->m_hwndDebug ) ){
02657                 return;
02658             }
02659         }
02660         m_pShareData->m_hwndDebug = GetHwnd();
02661         GetDocument().m_bDebugMode = TRUE;
02662
02663 // 2001/06/23 N.Nakatani アウトプット窓への出力テキストの追加F_ADDTAIL_Wが抑止されるのでとりあえず読み取り専用モードは辞めました
02664         GetDocument().m_bReadOnly = FALSE;      /* 読み取り専用モード */
02665         /* 親ウィンドウのタイトルを更新 */
02666         GetDocument().SetParentCaption();
02667         return;
02668     }
02669
02670     // 2005.06.24 Moca
02672     void CEditWnd::SetDebugModeOFF( void )
02673     {
02674         if( m_pShareData->m_hwndDebug == GetHwnd() ){
02675             m_pShareData->m_hwndDebug = NULL;
02676             GetDocument().m_bDebugMode = FALSE;
02677             GetDocument().SetParentCaption();
02678         }
02679     }
02680 //#endif
02681
02682
02683
02684
02685 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02686
02687 /* 印刷プレビューモードのオン/オフ */
02688 void CEditWnd::PrintPreviewModeONOFF( void )
02689 {
02690     HMENU   hMenu;
02691     HWND    hwndToolBar;
02692
02693     // 2006.06.17 ryoji Rebar があればそれをツールバー扱いする
02694     hwndToolBar = (NULL != m_cToolbar.GetRebarHwnd())? m_cToolbar.GetRebarHwnd(): m_cToolbar.GetToolbarHwnd();
02695
02696     /* 印刷プレビューモードか */
02697 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02698     if( m_pPrintPreview ){
02699 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02700         /*  印刷プレビューモードを解除します。 */
02701         delete m_pPrintPreview; //  削除。
02702         m_pPrintPreview = NULL; //  NULLか否かで、プリントプレビューモードか判断するため。
02703
02704         /*  通常モードに戻す    */
02705         ::ShowWindow( GetDocument().GetSplitterHwnd(), SW_SHOW );
02706         ::ShowWindow( hwndToolBar, SW_SHOW );   // 2006.06.17 ryoji
02707         ::ShowWindow( m_cStatusBar.GetStatusHwnd(), SW_SHOW );
02708         ::ShowWindow( m_CFuncKeyWnd.GetHwnd(), SW_SHOW );
02709         ::ShowWindow( m_cTabWnd.GetHwnd(), SW_SHOW );   //@@@ 2003.06.25 MIK
02710
02711         ::SetFocus( GetHwnd() );
02712
02713         hMenu = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_MENU1 ) );
02714         ::SetMenu( GetHwnd(), hMenu );
02715         ::DrawMenuBar( GetHwnd() );
02716
02717 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02718         ::InvalidateRect( GetHwnd(), NULL, TRUE );
02719     }else{
02720 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02721         /*  通常モードを隠す    */
02722         hMenu = ::GetMenu( GetHwnd() );
02723         //  Jun. 18, 2001 genta Print Previewではメニューを削除
02724         ::SetMenu( GetHwnd(), NULL );
02725         ::DestroyMenu( hMenu );
02726         ::DrawMenuBar( GetHwnd() );
02727
02728         ::ShowWindow( GetDocument().GetSplitterHwnd(), SW_HIDE );
02729         ::ShowWindow( hwndToolBar, SW_HIDE );   // 2006.06.17 ryoji
02730         ::ShowWindow( m_cStatusBar.GetStatusHwnd(), SW_HIDE );
02731         ::ShowWindow( m_CFuncKeyWnd.GetHwnd(), SW_HIDE );
02732         ::ShowWindow( m_cTabWnd.GetHwnd(), SW_HIDE );   //@@@ 2003.06.25 MIK
02733
02734 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02735         m_pPrintPreview = new CPrintPreview( this );
02736         /* 現在の印刷設定 */
02737         m_pPrintPreview->SetPrintSetting(
02738             &m_pShareData->m_PrintSettingArr[
02739                 GetDocument().GetDocumentAttribute().m_nCurrentPrintSetting]
02740         );
02741
02742         //  プリンタの情報を取得。
02743
02744         /* 現在のデフォルトプリンタの情報を取得 */
02745         BOOL bRes;
02746         bRes = m_pPrintPreview->GetDefaultPrinterInfo();
02747         if( FALSE == bRes ){
02748 			::MYMESSAGEBOX( GetHwnd(), MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
02749                 _T("印刷プレビューを実行する前に、プリンタをインストールしてください。\n")
02750             );
02751             return;
02752         }
02753
02754         /* 印刷設定の反映 */
02755 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02756         m_pPrintPreview->OnChangePrintSetting();
02757         ::InvalidateRect( GetHwnd(), NULL, TRUE );
02758         ::UpdateWindow( GetHwnd() /* m_pPrintPreview->GetPrintPreviewBarHANDLE() */);
02759
02760     }
02761     return;
02762
02763 }
02764
02765
02766
02767
02768 /* WM_SIZE 処理 */
02769 LRESULT CEditWnd::OnSize( WPARAM wParam, LPARAM lParam )
02770 {
02771     HWND        hwndToolBar;
02772     int         cx;
02773     int         cy;
02774     int         nToolBarHeight;
02775     int         nStatusBarHeight;
02776     int         nFuncKeyWndHeight;
02777     int         nTabWndHeight;  //タブウインドウ //@@@ 2003.05.31 MIK
02778     RECT        rc, rcClient;
02779     int         nCxHScroll;
02780     int         nCyHScroll;
02781     int         nCxVScroll;
02782     int         nCyVScroll;
02783 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる
02784 //  変数削除
02785
02786     RECT        rcWin;
02787
02788
02789
02790     cx = LOWORD( lParam );
02791     cy = HIWORD( lParam );
02792
02793     /* ウィンドウサイズ継承 */
02794     if( wParam != SIZE_MINIMIZED ){                     /* 最小化は継承しない */
02795         //  2004.05.13 Moca m_nSaveWindowSizeの解釈追加のため
02796         if( WINSIZEMODE_SAVE == m_pShareData->m_Common.m_sWindow.m_nSaveWindowSize ){       /* ウィンドウサイズ継承をするか */
02797             if( wParam == SIZE_MAXIMIZED ){                 /* 最大化はサイズを記録しない */
02798                 if( m_pShareData->m_Common.m_sWindow.m_nWinSizeType != (int)wParam ){
02799                     m_pShareData->m_Common.m_sWindow.m_nWinSizeType = wParam;
02800                 }
02801             }else{
02802                 ::GetWindowRect( GetHwnd(), &rcWin );
02803                 /* ウィンドウサイズに関するデータが変更されたか */
02804                 if( m_pShareData->m_Common.m_sWindow.m_nWinSizeType != (int)wParam ||
02805                     m_pShareData->m_Common.m_sWindow.m_nWinSizeCX != rcWin.right - rcWin.left ||
02806                     m_pShareData->m_Common.m_sWindow.m_nWinSizeCY != rcWin.bottom - rcWin.top
02807                 ){
02808                     m_pShareData->m_Common.m_sWindow.m_nWinSizeType = wParam;
02809                     m_pShareData->m_Common.m_sWindow.m_nWinSizeCX = rcWin.right - rcWin.left;
02810                     m_pShareData->m_Common.m_sWindow.m_nWinSizeCY = rcWin.bottom - rcWin.top;
02811                 }
02812             }
02813         }
02814
02815         // 元に戻すときのサイズ種別を記憶    // 2007.06.20 ryoji
02816         EditNode *p = CShareData::getInstance()->GetEditNode( GetHwnd() );
02817         if( p != NULL ){
02818             p->m_showCmdRestore = ::IsZoomed( p->GetHwnd() )? SW_SHOWMAXIMIZED: SW_SHOWNORMAL;
02819         }
02820     }
02821
02822     m_nWinSizeType = wParam;    /* サイズ変更のタイプ */
02823     nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
02824     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
02825     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
02826     nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
02827
02828     // 2006.06.17 ryoji Rebar があればそれをツールバー扱いする
02829     hwndToolBar = (NULL != m_cToolbar.GetRebarHwnd())? m_cToolbar.GetRebarHwnd(): m_cToolbar.GetToolbarHwnd();
02830     nToolBarHeight = 0;
02831     if( NULL != hwndToolBar ){
02832 		::SendMessageAny( hwndToolBar, WM_SIZE, wParam, lParam );
02833         ::GetWindowRect( hwndToolBar, &rc );
02834         nToolBarHeight = rc.bottom - rc.top;
02835     }
02836     nFuncKeyWndHeight = 0;
02837     if( NULL != m_CFuncKeyWnd.GetHwnd() ){
02838 		::SendMessageAny( m_CFuncKeyWnd.GetHwnd(), WM_SIZE, wParam, lParam );
02839         ::GetWindowRect( m_CFuncKeyWnd.GetHwnd(), &rc );
02840         nFuncKeyWndHeight = rc.bottom - rc.top;
02841     }
02842     //@@@ From Here 2003.05.31 MIK
02843     //タブウインドウ
02844     nTabWndHeight = 0;
02845     if( NULL != m_cTabWnd.GetHwnd() )
02846     {
02847 		::SendMessageAny( m_cTabWnd.GetHwnd(), WM_SIZE, wParam, lParam );
02848         ::GetWindowRect( m_cTabWnd.GetHwnd(), &rc );
02849         nTabWndHeight = rc.bottom - rc.top;
02850     }
02851     //@@@ To Here 2003.05.31 MIK
02852     nStatusBarHeight = 0;
02853     if( NULL != m_cStatusBar.GetStatusHwnd() ){
02854 		::SendMessageAny( m_cStatusBar.GetStatusHwnd(), WM_SIZE, wParam, lParam );
02855         ::GetClientRect( m_cStatusBar.GetStatusHwnd(), &rc );
02856         //  May 12, 2000 genta
02857         //  2カラム目に改行コードの表示を挿入
02858         //  From Here
02859         int         nStArr[8];
02860         // 2003.08.26 Moca CR0LF0廃止に従い、適当に調整
02861         // 2004-02-28 yasu 文字列を出力時の書式に合わせる
02862         // 幅を変えた場合にはCEditView::DrawCaretPosInfo()での表示方法を見直す必要あり．
02863         const TCHAR*    pszLabel[7] = { _T(""), _T("99999 行 9999 列"), _T("CRLF"), _T("0000"), _T("Unicode"), _T("REC"), _T("上書") }; //Oct. 30, 2000 JEPRO 千万行も要らん
02864         int         nStArrNum = 7;
02865         //  To Here
02866         int         nAllWidth = rc.right - rc.left;
02867         int         nSbxWidth = ::GetSystemMetrics(SM_CXVSCROLL) + ::GetSystemMetrics(SM_CXEDGE); // サイズボックスの幅
02868         int         nBdrWidth = ::GetSystemMetrics(SM_CXSIZEFRAME) + ::GetSystemMetrics(SM_CXEDGE) * 2; // 境界の幅
02869         SIZE        sz;
02870         HDC         hdc;
02871         int         i;
02872         // 2004-02-28 yasu
02873         // 正確な幅を計算するために、表示フォントを取得してhdcに選択させる。
02874         hdc = ::GetDC( m_cStatusBar.GetStatusHwnd() );
02875         HFONT hFont = (HFONT)::SendMessageAny(m_cStatusBar.GetStatusHwnd(), WM_GETFONT, 0, 0);
02876         if (hFont != NULL)
02877         {
02878             hFont = (HFONT)::SelectObject(hdc, hFont);
02879         }
02880         nStArr[nStArrNum - 1] = nAllWidth;
02881         if( wParam != SIZE_MAXIMIZED ){
02882             nStArr[nStArrNum - 1] -= nSbxWidth;
02883         }
02884         for( i = nStArrNum - 1; i > 0; i-- ){
02885             ::GetTextExtentPoint32( hdc, pszLabel[i], _tcslen( pszLabel[i] ), &sz );
02886             nStArr[i - 1] = nStArr[i] - ( sz.cx + nBdrWidth );
02887         }
02888
02889         //  Nov. 8, 2003 genta
02890         //  初期状態ではすべての部分が「枠あり」だが，メッセージエリアは枠を描画しないようにしている
02891         //  ため，初期化時の枠が変な風に残ってしまう．初期状態で枠を描画させなくするため，
02892         //  最初に「枠無し」状態を設定した後でバーの分割を行う．
02893         m_cStatusBar.SetStatusText(0, SBT_NOBORDERS, _T(""));
02894
02895 		::SendMessageAny( m_cStatusBar.GetStatusHwnd(), SB_SETPARTS, nStArrNum, (LPARAM)nStArr );
02896         if (hFont != NULL)
02897         {
02898             ::SelectObject(hdc, hFont);
02899         }
02900         ::ReleaseDC( m_cStatusBar.GetStatusHwnd(), hdc );
02901
02902         ::UpdateWindow( m_cStatusBar.GetStatusHwnd() ); // 2006.06.17 ryoji 即時描画でちらつきを減らす
02903         ::GetWindowRect( m_cStatusBar.GetStatusHwnd(), &rc );
02904         nStatusBarHeight = rc.bottom - rc.top;
02905     }
02906     ::GetClientRect( GetHwnd(), &rcClient );
02907
02908     //@@@ From 2003.05.31 MIK
02909     //タブウインドウ追加に伴い，ファンクションキー表示位置も調整
02910
02911     //タブウインドウ
02912     if( m_cTabWnd.GetHwnd() )
02913     {
02914         if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 )
02915         {
02916             ::MoveWindow( m_cTabWnd.GetHwnd(), 0, nToolBarHeight + nFuncKeyWndHeight, cx, nTabWndHeight, TRUE );
02917         }
02918         else
02919         {
02920             ::MoveWindow( m_cTabWnd.GetHwnd(), 0, nToolBarHeight, cx, nTabWndHeight, TRUE );
02921         }
02922     }
02923
02924     //  2005.04.23 genta ファンクションキー非表示の時は移動しない
02925     if( m_CFuncKeyWnd.GetHwnd() != NULL ){
02926         if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 )
02927         {   /* ファンクションキー表示位置／0:上 1:下 */
02928             ::MoveWindow(
02929                 m_CFuncKeyWnd.GetHwnd(),
02930                 0,
02931                 nToolBarHeight,
02932                 cx,
02933                 nFuncKeyWndHeight, TRUE );
02934         }
02935         else if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 1 )
02936         {   /* ファンクションキー表示位置／0:上 1:下 */
02937             ::MoveWindow(
02938                 m_CFuncKeyWnd.GetHwnd(),
02939                 0,
02940                 cy - nFuncKeyWndHeight - nStatusBarHeight,
02941                 cx,
02942                 nFuncKeyWndHeight, TRUE
02943             );
02944
02945             BOOL    bSizeBox = TRUE;
02946             if( NULL != m_cStatusBar.GetStatusHwnd() ){
02947                 bSizeBox = FALSE;
02948             }
02949             if( wParam == SIZE_MAXIMIZED ){
02950                 bSizeBox = FALSE;
02951             }
02952             m_CFuncKeyWnd.SizeBox_ONOFF( bSizeBox );
02953         }
02954         ::UpdateWindow( m_CFuncKeyWnd.GetHwnd() );  // 2006.06.17 ryoji 即時描画でちらつきを減らす
02955     }
02956
02957     if( m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 )
02958     {
02959         ::MoveWindow(
02960             m_cSplitterWnd.GetHwnd(),
02961             0,
02962             nToolBarHeight + nFuncKeyWndHeight + nTabWndHeight, //@@@ 2003.05.31 MIK
02963             cx,
02964             cy - nToolBarHeight - nFuncKeyWndHeight - nTabWndHeight - nStatusBarHeight, //@@@ 2003.05.31 MIK
02965             TRUE
02966         );
02967     }
02968     else
02969     {
02970         ::MoveWindow(
02971             m_cSplitterWnd.GetHwnd(),
02972             0,
02973             nToolBarHeight + nTabWndHeight,
02974             cx,
02975             cy - nToolBarHeight - nTabWndHeight - nFuncKeyWndHeight - nStatusBarHeight, //@@@ 2003.05.31 MIK
02976             TRUE
02977         );
02978     }
02979     //@@@ To 2003.05.31 MIK
02980
02981     /* 印刷プレビューモードか */
02982 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02983     if( !m_pPrintPreview ){
02984         return 0L;
02985     }
02986     return m_pPrintPreview->OnSize(wParam, lParam);
02987 }
02988
02989
02990
02991
02992 /* WM_PAINT 描画処理 */
02993 LRESULT CEditWnd::OnPaint(
02994     HWND            hwnd,   // handle of window
02995     UINT            uMsg,   // message identifier
02996     WPARAM          wParam, // first message parameter
02997     LPARAM          lParam  // second message parameter
02998 )
02999 {
03000     HDC             hdc;
03001 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03002     /* 印刷プレビューモードか */
03003     if( !m_pPrintPreview ){
03004         PAINTSTRUCT     ps;
03005         hdc = ::BeginPaint( hwnd, &ps );
03006         ::EndPaint( hwnd, &ps );
03007         return 0L;
03008     }
03009 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03010     return m_pPrintPreview->OnPaint(hwnd, uMsg, wParam, lParam);
03011 }
03012
03013 /* 印刷プレビュー 垂直スクロールバーメッセージ処理 WM_VSCROLL */
03014 LRESULT CEditWnd::OnVScroll( WPARAM wParam, LPARAM lParam )
03015 {
03016     /* 印刷プレビューモードか */
03017     if( !m_pPrintPreview ){
03018         return 0;
03019     }
03020 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03021     return m_pPrintPreview->OnVScroll(wParam, lParam);
03022 }
03023
03024
03025
03026
03027 /* 印刷プレビュー 水平スクロールバーメッセージ処理 */
03028 LRESULT CEditWnd::OnHScroll( WPARAM wParam, LPARAM lParam )
03029 {
03030 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03031     /* 印刷プレビューモードか */
03032     if( !m_pPrintPreview ){
03033         return 0;
03034     }
03035     return m_pPrintPreview->OnHScroll( wParam, lParam );
03036 }
03037
03038 LRESULT CEditWnd::OnLButtonDown( WPARAM wParam, LPARAM lParam )
03039 {
03040     //by 鬼(2) キャプチャーして押されたら非クライアントでもこっちに来る
03041     if(m_IconClicked != icNone)
03042         return 0;
03043
03044     m_ptDragPosOrg.x = LOWORD(lParam);  // horizontal position of cursor
03045     m_ptDragPosOrg.y = HIWORD(lParam);  // vertical position of cursor
03046     m_bDragMode      = true;
03047     SetCapture( GetHwnd() );
03048
03049     return 0;
03050 }
03051
03052 LRESULT CEditWnd::OnLButtonUp( WPARAM wParam, LPARAM lParam )
03053 {
03054     //by 鬼 2002/04/18
03055     if(m_IconClicked != icNone)
03056     {
03057         if(m_IconClicked == icDown)
03058         {
03059             m_IconClicked = icClicked;
03060             //by 鬼(2) タイマー(IDは適当です)
03061             SetTimer(GetHwnd(), IDT_SYSMENU, GetDoubleClickTime(), NULL);
03062         }
03063         return 0;
03064     }
03065
03066     m_bDragMode = FALSE;
03067 //  MYTRACE_A("m_bDragMode = FALSE (OnLButtonUp)\n");
03068     ReleaseCapture();
03069     ::InvalidateRect( GetHwnd(), NULL, TRUE );
03070     return 0;
03071 }
03072
03073
03074 LRESULT CEditWnd::OnMouseMove( WPARAM wParam, LPARAM lParam )
03075 {
03076     //by 鬼
03077     if(m_IconClicked != icNone)
03078     {
03079         //by 鬼(2) 一回押された時だけ
03080         if(m_IconClicked == icDown)
03081         {
03082             POINT P;
03083             GetCursorPos(&P); //スクリーン座標
03084             if(SendMessageAny(GetHwnd(), WM_NCHITTEST, 0, P.x | (P.y << 16)) != HTSYSMENU)
03085             {
03086                 ReleaseCapture();
03087                 m_IconClicked = icNone;
03088
03089                 if(GetDocument().IsFilePathAvailable())
03090                 {
03091                     const TCHAR *PathEnd = GetDocument().GetFilePath();
03092                     for(CharPointerT I = GetDocument().GetFilePath(); *I != 0; ++I)
03093                     {
03094                         if(*I == _T('\\'))
03095                             PathEnd = I.GetPointer();
03096                     }
03097
03098                     //CMyString WPath(GetDocument().GetFilePath(), PathEnd-GetDocument().GetFilePath()); //wchar_tへの変換用
03099                     wchar_t WPath[MAX_PATH];
03100                     {
03101                         //文字列抜き出し
03102                         const TCHAR* p=GetDocument().GetFilePath();
03103                         int n = PathEnd - p;
03104                         CMyString tmp(p,n);
03105
03106                         //wchar_tに変換
03107                         wcscpy(WPath,tmp);
03108                     }
03109
03110                     //CMyString WFile(PathEnd+1); //wchar_tへの変換用
03111                     wchar_t WFile[MAX_PATH];
03112                     _tcstowcs(WFile,PathEnd+1,_countof(WFile));
03113
03114                     IDataObject *DataObject;
03115                     IMalloc *Malloc;
03116                     IShellFolder *Desktop, *Folder;
03117                     LPITEMIDLIST PathID, ItemID;
03118                     SHGetMalloc(&Malloc);
03119                     SHGetDesktopFolder(&Desktop);
03120                     DWORD Eaten, Attribs;
03121                     if(SUCCEEDED(Desktop->ParseDisplayName(0, NULL, WPath, &Eaten, &PathID, &Attribs)))
03122                     {
03123                         Desktop->BindToObject(PathID, NULL, IID_IShellFolder, (void**)&Folder);
03124                         Malloc->Free(PathID);
03125                         if(SUCCEEDED(Folder->ParseDisplayName(0, NULL, WFile, &Eaten, &ItemID, &Attribs)))
03126                         {
03127                             LPCITEMIDLIST List[1];
03128                             List[0] = ItemID;
03129                             Folder->GetUIObjectOf(0, 1, List, IID_IDataObject, NULL, (void**)&DataObject);
03130                             Malloc->Free(ItemID);
03131 #define DDASTEXT
03132 #ifdef  DDASTEXT
03133                             //テキストでも持たせる…便利
03134                             {
03135                                 FORMATETC F;
03136                                 F.cfFormat = CF_UNICODETEXT;
03137                                 F.ptd      = NULL;
03138                                 F.dwAspect = DVASPECT_CONTENT;
03139                                 F.lindex   = -1;
03140                                 F.tymed    = TYMED_HGLOBAL;
03141
03142                                 STGMEDIUM M;
03143                                 const wchar_t* pFilePath = to_wchar(GetDocument().GetFilePath());
03144                                 int Len = wcslen(pFilePath);
03145                                 M.tymed          = TYMED_HGLOBAL;
03146                                 M.pUnkForRelease = NULL;
03147                                 M.hGlobal        = GlobalAlloc(GMEM_MOVEABLE, (Len+1)*sizeof(wchar_t));
03148                                 void* p = GlobalLock(M.hGlobal);
03149                                 CopyMemory(p, pFilePath, (Len+1)*sizeof(wchar_t));
03150                                 GlobalUnlock(M.hGlobal);
03151
03152                                 DataObject->SetData(&F, &M, TRUE);
03153                             }
03154 #endif
03155                             //移動は禁止
03156                             DWORD R;
03157                             DoDragDrop(DataObject, new CDropSource(TRUE), DROPEFFECT_COPY | DROPEFFECT_LINK, &R);
03158                             DataObject->Release();
03159                         }
03160                         Folder->Release();
03161                     }
03162                     Desktop->Release();
03163                     Malloc->Release();
03164                 }
03165             }
03166         }
03167         return 0;
03168     }
03169
03170 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03171     if (!m_pPrintPreview){
03172         return 0;
03173     }
03174     else {
03175         return m_pPrintPreview->OnMouseMove( wParam, lParam );
03176     }
03177 }
03178
03179
03180
03181
03182 LRESULT CEditWnd::OnMouseWheel( WPARAM wParam, LPARAM lParam )
03183 {
03184 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03185     /* 印刷プレビューモードか */
03186     if( !m_pPrintPreview ){
03187         // 2006.03.26 ryoji by assitance with John タブ上ならウィンドウ切り替え
03188         if( m_pShareData->m_Common.m_sTabBar.m_bChgWndByWheel && NULL != m_cTabWnd.m_hwndTab )
03189         {
03190             POINT pt;
03191             pt.x = (short)LOWORD( lParam );
03192             pt.y = (short)HIWORD( lParam );
03193             int nDelta = (short)HIWORD( wParam );
03194             HWND hwnd = ::WindowFromPoint( pt );
03195             if( (hwnd == m_cTabWnd.m_hwndTab || hwnd == m_cTabWnd.GetHwnd()) )
03196             {
03197                 // 現在開いている編集窓のリストを得る
03198                 EditNode* pEditNodeArr;
03199                 int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03200                 if(  nRowNum > 0 )
03201                 {
03202                     // 自分のウィンドウを調べる
03203                     int i, j;
03204                     int nGroup = 0;
03205                     for( i = 0; i < nRowNum; ++i )
03206                     {
03207                         if( GetHwnd() == pEditNodeArr[i].GetHwnd() )
03208                         {
03209                             nGroup = pEditNodeArr[i].m_nGroup;
03210                             break;
03211                         }
03212                     }
03213                     if( i < nRowNum )
03214                     {
03215                         if( nDelta < 0 )
03216                         {
03217                             // 次のウィンドウ
03218                             for( j = i + 1; j < nRowNum; ++j )
03219                             {
03220                                 if( nGroup == pEditNodeArr[j].m_nGroup )
03221                                     break;
03222                             }
03223                             if( j >= nRowNum )
03224                             {
03225                                 for( j = 0; j < i; ++j )
03226                                 {
03227                                     if( nGroup == pEditNodeArr[j].m_nGroup )
03228                                         break;
03229                                 }
03230                             }
03231                         }
03232                         else
03233                         {
03234                             // 前のウィンドウ
03235                             for( j = i - 1; j >= 0; --j )
03236                             {
03237                                 if( nGroup == pEditNodeArr[j].m_nGroup )
03238                                     break;
03239                             }
03240                             if( j < 0 )
03241                             {
03242                                 for( j = nRowNum - 1; j > i; --j )
03243                                 {
03244                                     if( nGroup == pEditNodeArr[j].m_nGroup )
03245                                         break;
03246                                 }
03247                             }
03248                         }
03249
03250                         /* 次の（or 前の）ウィンドウをアクティブにする */
03251                         if( i != j )
03252                             ActivateFrameWindow( pEditNodeArr[j].GetHwnd() );
03253                     }
03254
03255                     delete []pEditNodeArr;
03256                 }
03257                 return 0;
03258             }
03259         }
03260
03261         /* メッセージの配送 */
03262         return Views_DispatchEvent( GetHwnd(), WM_MOUSEWHEEL, wParam, lParam );
03263     }
03264     return m_pPrintPreview->OnMouseWheel( wParam, lParam );
03265 }
03266
03267 /* 印刷ページ設定
03268     印刷プレビュー時にも、そうでないときでも呼ばれる可能性がある。
03269 */
03270 BOOL CEditWnd::OnPrintPageSetting( void )
03271 {
03272     /* 印刷設定（CANCEL押したときに破棄するための領域） */
03273     CDlgPrintSetting    cDlgPrintSetting;
03274     BOOL                bRes;
03275     PRINTSETTING        PrintSettingArr[MAX_PRINTSETTINGARR];
03276     int                 i;
03277     int                 nCurrentPrintSetting;
03278     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
03279         PrintSettingArr[i] = m_pShareData->m_PrintSettingArr[i];
03280     }
03281
03282 //  cDlgPrintSetting.Create( m_hInstance, GetHwnd() );
03283     nCurrentPrintSetting = GetDocument().GetDocumentAttribute().m_nCurrentPrintSetting;
03284     bRes = cDlgPrintSetting.DoModal(
03285         m_hInstance,
03286 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03287         GetHwnd(),
03288         &nCurrentPrintSetting, /* 現在選択している印刷設定 */
03289         PrintSettingArr
03290     );
03291
03292     if( TRUE == bRes ){
03293         /* 現在選択されているページ設定の番号が変更されたか */
03294         if( nCurrentPrintSetting !=
03295             m_pShareData->m_Types[GetDocument().GetDocumentType()].m_nCurrentPrintSetting
03296         ){
03297 //          /* 変更フラグ(タイプ別設定) */
03298             GetDocument().GetDocumentAttribute().m_nCurrentPrintSetting = nCurrentPrintSetting;
03299         }
03300
03301         for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
03302             m_pShareData->m_PrintSettingArr[i] = PrintSettingArr[i];
03303         }
03304
03305 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03306         //  印刷プレビュー時のみ。
03307         if ( m_pPrintPreview ){
03308             /* 現在の印刷設定 */
03309             m_pPrintPreview->SetPrintSetting( &m_pShareData->m_PrintSettingArr[GetDocument().GetDocumentAttribute().m_nCurrentPrintSetting] );
03310
03311             /* 印刷プレビュー スクロールバー初期化 */
03312             m_pPrintPreview->InitPreviewScrollBar();
03313
03314             /* 印刷設定の反映 */
03315             m_pPrintPreview->OnChangePrintSetting( );
03316
03317             ::InvalidateRect( GetHwnd(), NULL, TRUE );
03318         }
03319     }
03320 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03321     ::UpdateWindow( GetHwnd() /* m_pPrintPreview->GetPrintPreviewBarHANDLE() */);
03322     return bRes;
03323 }
03324
03326
03327 LRESULT CEditWnd::OnNcLButtonDown(WPARAM wp, LPARAM lp)
03328 {
03329     LRESULT Result;
03330     if(wp == HTSYSMENU)
03331     {
03332         SetCapture(GetHwnd());
03333         m_IconClicked = icDown;
03334         Result = 0;
03335     }
03336     else
03337         Result = DefWindowProc(GetHwnd(), WM_NCLBUTTONDOWN, wp, lp);
03338
03339     return Result;
03340 }
03341
03342 LRESULT CEditWnd::OnNcLButtonUp(WPARAM wp, LPARAM lp)
03343 {
03344     LRESULT Result;
03345     if(m_IconClicked != icNone)
03346     {
03347         //念のため
03348         ReleaseCapture();
03349         m_IconClicked = icNone;
03350         Result = 0;
03351     }
03352     else if(wp == HTSYSMENU)
03353         Result = 0;
03354     else{
03355         //  2004.05.23 Moca メッセージミス修正
03356         //  フレームのダブルクリック時後にウィンドウサイズ
03357         //  変更モードなっていた
03358         Result = DefWindowProc(GetHwnd(), WM_NCLBUTTONUP, wp, lp);
03359     }
03360
03361     return Result;
03362 }
03363
03364 LRESULT CEditWnd::OnLButtonDblClk(WPARAM wp, LPARAM lp) //by 鬼(2)
03365 {
03366     LRESULT Result;
03367     if(m_IconClicked != icNone)
03368     {
03369         ReleaseCapture();
03370         m_IconClicked = icDoubleClicked;
03371
03372         SendMessageCmd(GetHwnd(), WM_SYSCOMMAND, SC_CLOSE, 0);
03373
03374         Result = 0;
03375     }
03376     else {
03377         //  2004.05.23 Moca メッセージミス修正
03378         Result = DefWindowProc(GetHwnd(), WM_LBUTTONDBLCLK, wp, lp);
03379     }
03380
03381     return Result;
03382 }
03383     //@@@ 2002.06.15 MIK
03385 int CEditWnd::CreateFileDropDownMenu( HWND hwnd )
03386 {
03387     int         nId;
03388     HMENU       hMenu;
03389     HMENU       hMenuPopUp;
03390     POINT       po;
03391     RECT        rc;
03392     int         nIndex;
03393
03394     // メニュー表示位置を決める // 2007.03.25 ryoji
03395     // ※ TBN_DROPDOWN 時の NMTOOLBAR::iItem や NMTOOLBAR::rcButton にはドロップダウンメニュー(開く)ボタンが
03396     //    複数あるときはどれを押した時も１個目のボタン情報が入るようなのでマウス位置からボタン位置を求める
03397     ::GetCursorPos( &po );
03398     ::ScreenToClient( hwnd, &po );
03399     nIndex = ::SendMessageAny( hwnd, TB_HITTEST, (WPARAM)0, (LPARAM)&po );
03400     if( nIndex < 0 ){
03401         return 0;
03402     }
03403 	::SendMessageAny( hwnd, TB_GETITEMRECT, (WPARAM)nIndex, (LPARAM)&rc );
03404     po.x = rc.left;
03405     po.y = rc.bottom;
03406     ::ClientToScreen( hwnd, &po );
03407     GetMonitorWorkRect( po, &rc );
03408     if( po.x < rc.left )
03409         po.x = rc.left;
03410     if( po.y < rc.top )
03411         po.y = rc.top;
03412
03413
03414     m_CMenuDrawer.ResetContents();
03415
03416     /* MRUリストのファイルのリストをメニューにする */
03417     CMRU cMRU;
03418     hMenu = cMRU.CreateMenu( &m_CMenuDrawer );
03419     if( cMRU.Length() > 0 )
03420     {
03421         m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
03422     }
03423
03424     /* 最近使ったフォルダのメニューを作成 */
03425     CMRUFolder cMRUFolder;
03426     hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
03427     if ( cMRUFolder.Length() > 0 )
03428     {
03429         //  アクティブ
03430         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, _T("最近使ったフォルダ(&D)") );
03431     }
03432     else
03433     {
03434         //  非アクティブ
03435         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp, _T("最近使ったフォルダ(&D)") );
03436     }
03437
03438     m_CMenuDrawer.MyAppendMenuSep( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
03439
03440     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW, _T("新規作成(&N)"), FALSE );
03441     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN, _T("開く(&O)..."), FALSE );
03442
03443     nId = ::TrackPopupMenu(
03444         hMenu,
03445         TPM_TOPALIGN
03446         | TPM_LEFTALIGN
03447         | TPM_RETURNCMD
03448         | TPM_LEFTBUTTON
03449         ,
03450         po.x,
03451         po.y,
03452         0,
03453         hwnd,
03454         NULL
03455     );
03456
03457     ::DestroyMenu( hMenu );
03458
03459     return nId;
03460 }
03461
03462
03474 void CEditWnd::SetWindowIcon(HICON hIcon, int flag)
03475 {
03476     HICON hOld = (HICON)::SendMessageAny( GetHwnd(), WM_SETICON, flag, (LPARAM)hIcon );
03477     if( hOld != NULL ){
03478         ::DestroyIcon( hOld );
03479     }
03480 }
03481
03492 void CEditWnd::GetDefaultIcon( HICON& hIconBig, HICON& hIconSmall ) const
03493 {
03494     hIconBig   = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
03495     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
03496 }
03497
03513 bool CEditWnd::GetRelatedIcon(const TCHAR* szFile, HICON& hIconBig, HICON& hIconSmall) const
03514 {
03515     if( NULL != szFile && szFile[0] != _T('\0') ){
03516         TCHAR szExt[_MAX_EXT];
03517         TCHAR FileType[1024];
03518
03519         // (.で始まる)拡張子の取得
03520         _tsplitpath( szFile, NULL, NULL, NULL, szExt );
03521
03522         if( ReadRegistry(HKEY_CLASSES_ROOT, szExt, NULL, FileType, _countof(FileType) - 13)){
03523             _tcscat( FileType, _T("\\DefaultIcon") );
03524             if( ReadRegistry(HKEY_CLASSES_ROOT, FileType, NULL, NULL, 0)){
03525                 // 関連づけられたアイコンを取得する
03526                 SHFILEINFO shfi;
03527                 SHGetFileInfo( szFile, 0, &shfi, sizeof(shfi), SHGFI_ICON | SHGFI_LARGEICON );
03528                 hIconBig = shfi.hIcon;
03529                 SHGetFileInfo( szFile, 0, &shfi, sizeof(shfi), SHGFI_ICON | SHGFI_SMALLICON );
03530                 hIconSmall = shfi.hIcon;
03531                 return true;
03532             }
03533         }
03534     }
03535
03536     //  標準のアイコンを返す
03537     GetDefaultIcon( hIconBig, hIconSmall );
03538     return false;
03539 }
03540
03541 /*
03542     @brief メニューバー表示用フォントの初期化
03543
03544     メニューバー表示用フォントの初期化を行う．
03545
03546     @date 2002.12.04 CEditViewのコンストラクタから移動
03547 */
03548 void CEditWnd::InitMenubarMessageFont(void)
03549 {
03550     TEXTMETRIC  tm;
03551     LOGFONT lf;
03552     HDC         hdc;
03553     HFONT       hFontOld;
03554
03555     /* LOGFONTの初期化 */
03556     memset_raw( &lf, 0, sizeof( lf ) );
03557     lf.lfHeight         = -12;
03558     lf.lfWidth          = 0;
03559     lf.lfEscapement     = 0;
03560     lf.lfOrientation    = 0;
03561     lf.lfWeight         = 400;
03562     lf.lfItalic         = 0x0;
03563     lf.lfUnderline      = 0x0;
03564     lf.lfStrikeOut      = 0x0;
03565     lf.lfCharSet        = 0x80;
03566     lf.lfOutPrecision   = 0x3;
03567     lf.lfClipPrecision  = 0x2;
03568     lf.lfQuality        = 0x1;
03569     lf.lfPitchAndFamily = 0x31;
03570     _tcscpy( lf.lfFaceName, _T("ＭＳ ゴシック") );
03571     m_hFontCaretPosInfo = ::CreateFontIndirect( &lf );
03572
03573     hdc = ::GetDC( ::GetDesktopWindow() );
03574     hFontOld = (HFONT)::SelectObject( hdc, m_hFontCaretPosInfo );
03575     ::GetTextMetrics( hdc, &tm );
03576     m_nCaretPosInfoCharWidth = tm.tmAveCharWidth;
03577     m_nCaretPosInfoCharHeight = tm.tmHeight;
03578     ::SelectObject( hdc, hFontOld );
03579     ::ReleaseDC( ::GetDesktopWindow(), hdc );
03580 }
03581
03582 /*
03583     @brief メニューバーにメッセージを表示する
03584
03585     事前にメニューバー表示用フォントが初期化されていなくてはならない．
03586     指定できる文字数は最大30バイト．それ以上の場合はうち切って表示する．
03587
03588     @author genta
03589     @date 2002.12.04
03590 */
03591 void CEditWnd::PrintMenubarMessage( const TCHAR* msg ) const
03592 {
03593     if( NULL == ::GetMenu( GetHwnd() ) )    // 2007.03.08 ryoji 追加
03594         return;
03595
03596     POINT   po,poFrame;
03597     RECT    rc,rcFrame;
03598     HFONT   hFontOld;
03599     int     nStrLen;
03600     const int MAX_LEN = 30;
03601     TCHAR   szText[MAX_LEN + 1];
03602
03603     int len = _tcslen( msg );
03604     _tcsncpy( szText, msg, MAX_LEN );
03605
03606     if( len < MAX_LEN ){
03607         auto_memset( szText + len, _T(' '), MAX_LEN - len );
03608     }
03609     szText[MAX_LEN] = _T('\0');
03610
03611     HDC     hdc;
03612     hdc = ::GetWindowDC( GetHwnd() );
03613     poFrame.x = 0;
03614     poFrame.y = 0;
03615     ::ClientToScreen( GetHwnd(), &poFrame );
03616     ::GetWindowRect( GetHwnd(), &rcFrame );
03617     po.x = rcFrame.right - rcFrame.left;
03618     po.y = poFrame.y - rcFrame.top;
03619     hFontOld = (HFONT)::SelectObject( hdc, m_hFontCaretPosInfo );
03620     nStrLen = MAX_LEN;
03621     rc.left = po.x - nStrLen * m_nCaretPosInfoCharWidth - ( ::GetSystemMetrics( SM_CXSIZEFRAME ) + 2 );
03622     rc.right = rc.left + nStrLen * m_nCaretPosInfoCharWidth;
03623     rc.top = po.y - m_nCaretPosInfoCharHeight - 2;
03624     rc.bottom = rc.top + m_nCaretPosInfoCharHeight;
03625     ::SetTextColor( hdc, ::GetSysColor( COLOR_MENUTEXT ) );
03626     //  Sep. 6, 2003 genta Windows XP(Luna)の場合にはCOLOR_MENUBARを使わなくてはならない
03627     COLORREF bkColor =
03628         ::GetSysColor( COsVersionInfo().IsWinXP_or_later() ? COLOR_MENUBAR : COLOR_MENU );
03629     ::SetBkColor( hdc, bkColor );
03630     /*
03631     int         m_pnCaretPosInfoDx[64]; // 文字列描画用文字幅配列
03632     for( i = 0; i < _countof( m_pnCaretPosInfoDx ); ++i ){
03633         m_pnCaretPosInfoDx[i] = ( m_nCaretPosInfoCharWidth );
03634     }
03635     */
03636     ::ExtTextOut( hdc,rc.left,rc.top,ETO_OPAQUE,&rc,szText,nStrLen,NULL/*m_pnCaretPosInfoDx*/); //2007.10.17 kobake めんどいので今のところは文字間隔配列を使わない。
03637     ::SelectObject( hdc, hFontOld );
03638     ::ReleaseDC( GetHwnd(), hdc );
03639 }
03640
03651 void CEditWnd::SendStatusMessage( const TCHAR* msg )
03652 {
03653     if( NULL == m_cStatusBar.GetStatusHwnd() ){
03654         // メニューバーへ
03655         PrintMenubarMessage( msg );
03656     }
03657     else{
03658         // ステータスバーへ
03659         m_cStatusBar.SetStatusText(0, SBT_NOBORDERS, msg);
03660     }
03661 }
03662
03669 void CEditWnd::ChangeFileNameNotify( const TCHAR* pszTabCaption, const TCHAR* _pszFilePath, BOOL bIsGrep )
03670 {
03671     const TCHAR* pszFilePath = _pszFilePath;
03672
03673     EditNode    *p;
03674     int     nIndex;
03675
03676     if( NULL == pszTabCaption ) pszTabCaption = _T(""); //ガード
03677     if( NULL == pszFilePath )pszFilePath = _FT("");     //ガード 2006.01.28 ryoji
03678
03679     CRecentEditNode cRecentEditNode;
03680     nIndex = cRecentEditNode.FindItemByHwnd( GetHwnd() );
03681     if( -1 != nIndex )
03682     {
03683         p = cRecentEditNode.GetItem( nIndex );
03684         if( p )
03685         {
03686             int size = _countof( p->m_szTabCaption ) - 1;
03687             _tcsncpy( p->m_szTabCaption, pszTabCaption, size );
03688             p->m_szTabCaption[ size ] = _T('\0');
03689
03690             // 2006.01.28 ryoji ファイル名、Grepモード追加
03691             size = _countof2( p->m_szFilePath ) - 1;
03692             _tcsncpy( p->m_szFilePath, pszFilePath, size );
03693             p->m_szFilePath[ size ] = _T('\0');
03694
03695             p->m_bIsGrep = bIsGrep;
03696         }
03697     }
03698     cRecentEditNode.Terminate();
03699
03700     //ファイル名変更通知をブロードキャストする。
03701     int nGroup = CShareData::getInstance()->GetGroupId( GetHwnd() );
03702     CShareData::getInstance()->PostMessageToAllEditors(
03703         MYWM_TAB_WINDOW_NOTIFY,
03704         (WPARAM)TWNT_FILE,
03705         (LPARAM)GetHwnd(),
03706         GetHwnd(),
03707         nGroup
03708     );
03709
03710     return;
03711 }
03712
03717 void CEditWnd::WindowTopMost( int top )
03718 {
03719     if( 0 == top ){
03720         DWORD dwExstyle = (DWORD)::GetWindowLongPtr( GetHwnd(), GWL_EXSTYLE );
03721         if( dwExstyle & WS_EX_TOPMOST ){
03722             top = 2; // 最前面である -> 解除
03723         }else{
03724             top = 1;
03725         }
03726     }
03727
03728     HWND hwndInsertAfter;
03729     switch( top ){
03730     case 1:
03731         hwndInsertAfter = HWND_TOPMOST;
03732         break;
03733     case 2:
03734         hwndInsertAfter = HWND_NOTOPMOST;
03735         break;
03736     default:
03737         return;
03738     }
03739
03740     ::SetWindowPos( GetHwnd(), hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
03741
03742     // タブまとめ時は WS_EX_TOPMOST 状態を全ウィンドウで同期する   // 2007.05.18 ryoji
03743     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
03744         HWND hwnd;
03745         int i;
03746         for( i = 0, hwndInsertAfter = GetHwnd(); i < m_pShareData->m_nEditArrNum; i++ ){
03747             hwnd = m_pShareData->m_pEditArr[i].GetHwnd();
03748             if( hwnd != GetHwnd() && CShareData::getInstance()->IsEditWnd( hwnd ) ){
03749                 if( !CShareData::getInstance()->IsSameGroup( GetHwnd(), hwnd ) )
03750                     continue;
03751                 ::SetWindowPos( hwnd, hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
03752                 hwndInsertAfter = hwnd;
03753             }
03754         }
03755     }
03756 }
03757
03758
03759 // タイマーの更新を開始／停止する。 20060128 aroka
03760 // ツールバー表示はタイマーにより更新しているが、
03761 // アプリのフォーカスが外れたときにウィンドウからON/OFFを
03762 //  呼び出してもらうことにより、余計な負荷を停止したい。
03763 void CEditWnd::Timer_ONOFF( BOOL bStart )
03764 {
03765     if( NULL != GetHwnd() ){
03766         if( bStart ){
03767             /* タイマーを起動 */
03768             if( 0 == ::SetTimer( GetHwnd(), IDT_TOOLBAR, 300, NULL ) ){
03769 				::MYMESSAGEBOX( GetHwnd(), MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
03770                     _T("CEditWnd::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。")
03771                 );
03772             }
03773         } else {
03774             /* タCマーを削除 */
03775             ::KillTimer( GetHwnd(), IDT_TOOLBAR );
03776         }
03777     }
03778     return;
03779 }
03780
03789 LRESULT CEditWnd::PopupWinList( bool bMousePos )
03790 {
03791     POINT pt;
03792
03793     // ポップアップ位置をアクティブビューの上辺に設定
03794     RECT rc;
03795
03796     if( bMousePos ){
03797         ::GetCursorPos( &pt );  // マウスカーソル位置に変更
03798     }
03799     else {
03800         ::GetWindowRect( GetActiveView().GetHwnd(), &rc );
03801         pt.x = rc.right - 150;
03802         if( pt.x < rc.left )
03803             pt.x = rc.left;
03804         pt.y = rc.top;
03805     }
03806
03807     // ウィンドウ一覧メニューをポップアップ表示する
03808     if( NULL != m_cTabWnd.GetHwnd() ){
03809         m_cTabWnd.TabListMenu( pt );
03810     }
03811     else{
03812         EditNode*   pEditNodeArr;
03813         HMENU hMenu = ::CreatePopupMenu();  // 2006.03.23 fon
03814         int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03815         WinListMenu( hMenu, pEditNodeArr, nRowNum, TRUE );
03816         // メニューを表示する
03817         RECT rcWork;
03818         GetMonitorWorkRect( pt, &rcWork );  // モニタのワークエリア
03819         int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
03820                                     ( pt.x > rcWork.left )? pt.x: rcWork.left,
03821                                     ( pt.y < rcWork.bottom )? pt.y: rcWork.bottom,
03822                                     0, GetHwnd(), NULL);
03823         delete [] pEditNodeArr;
03824         ::DestroyMenu( hMenu );
03825 		::SendMessageCmd( GetHwnd(), WM_COMMAND, (WPARAM)nId, (LPARAM)NULL );
03826     }
03827
03828     return 0L;
03829 }
03830
03834 LRESULT CEditWnd::WinListMenu( HMENU hMenu, EditNode* pEditNodeArr, int nRowNum, BOOL bFull )
03835 {
03836     int         i;
03837     TCHAR       szMemu[280];
03838 //> EditNode*   pEditNodeArr;
03839     FileInfo*   pfi;
03840
03841 //> int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03842     if( nRowNum > 0 ){
03843 //>     /* セパレータ */
03844 //>     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
03845         CShareData::getInstance()->TransformFileName_MakeCache();
03846         for( i = 0; i < nRowNum; ++i ){
03847             /* トレイからエディタへの編集ファイル名要求通知 */
03848 			::SendMessageAny( pEditNodeArr[i].GetHwnd(), MYWM_GETFILEINFO, 0, 0 );
03849             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
03850             if( pfi->m_bIsGrep ){
03851                 /* データを指定バイト数以内に切り詰める */
03852                 CNativeW    cmemDes;
03853                 int         nDesLen;
03854                 const wchar_t*  pszDes;
03855                 LimitStringLengthW( pfi->m_szGrepKey, wcslen( pfi->m_szGrepKey ), 64, cmemDes );
03856                 pszDes = cmemDes.GetStringPtr();
03857                 nDesLen = wcslen( pszDes );
03860                 auto_sprintf( szMemu, _T("&%tc 【Grep】\"%ls%ts\""),
03861                     ((1 + i) <= 9)?(_T('1') + i):(_T('A') + i - 9),
03862                     pszDes,
03863                     ( (int)wcslen( pfi->m_szGrepKey ) > nDesLen ) ? _T("・・・"):_T("")
03864                 );
03865             }
03866             else if( pEditNodeArr[i].GetHwnd() == m_pShareData->m_hwndDebug ){
03868                 auto_sprintf( szMemu, _T("&%tc アウトプット"), ((1 + i) <= 9)?(_T('1') + i):(_T('A') + i - 9) );
03869
03870             }
03871             else{
03875                 TCHAR   szFile2[_MAX_PATH * 2];
03876                 if( _T('\0') == pfi->m_szPath[0] ){
03877                     _tcscpy( szFile2, _T("(無題)") );
03878                 }else{
03879                     TCHAR buf[_MAX_PATH];
03880                     CShareData::getInstance()->GetTransformFileNameFast( pfi->m_szPath, buf, _MAX_PATH );
03881
03882                     dupamp( buf, szFile2 );
03883                 }
03884                 auto_sprintf(
03885                     szMemu,
03886                     _T("&%tc %ts %ts"),
03887                     ((1 + i) <= 9)?(_T('1') + i):(_T('A') + i - 9),
03888                     szFile2,
03889                     pfi->m_bIsModified ? _T("*"):_T(" ")
03890                 );
03893
03895                 // SJIS以外の文字コードの種別を表示する
03896                 // gm_pszCodeNameArr_Bracket からコピーするように変更
03897                 if(IsValidCodeTypeExceptSJIS(pfi->m_nCharCode)){
03898                     _tcscat( szMemu, gm_pszCodeNameArr_Bracket[pfi->m_nCharCode] );
03899                 }
03900             }
03901             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_SELWINDOW + pEditNodeArr[i].m_nIndex, szMemu );
03902             if( GetHwnd() == pEditNodeArr[i].GetHwnd() ){
03903                 ::CheckMenuItem( hMenu, IDM_SELWINDOW + pEditNodeArr[i].m_nIndex, MF_BYCOMMAND | MF_CHECKED );
03904             }
03905         }
03906 //>     delete [] pEditNodeArr;
03907     }
03908     return 0L;
03909 }
03910
03911 //2007.09.08 kobake 追加
03913 void CEditWnd::GetTooltipText(TCHAR* wszBuf, size_t nBufCount, int nID) const
03914 {
03915     // 機能文字列の取得 -> tmp -> wszBuf
03916     WCHAR tmp[256];
03917     if( !GetDocument().m_cFuncLookup.Funccode2Name( nID, tmp, _countof(tmp) )){
03918         tmp[0] = LTEXT('\0');
03919     }
03920     _wcstotcs(wszBuf, tmp, nBufCount);
03921
03922     // 機能に対応するキー名の取得(複数)
03923     CNativeT**  ppcAssignedKeyList;
03924     int nAssignedKeyNum = CKeyBind::GetKeyStrList(
03925         m_hInstance,
03926         m_pShareData->m_nKeyNameArrNum,
03927         m_pShareData->m_pKeyNameArr,
03928         &ppcAssignedKeyList,
03929         nID
03930     );
03931
03932     // wszBufへ結合
03933     if( 0 < nAssignedKeyNum ){
03934         for( int j = 0; j < nAssignedKeyNum; ++j ){
03935             _tcscat_s( wszBuf, nBufCount, _T("\n        ") );
03936             const TCHAR* pszKey = ppcAssignedKeyList[j]->GetStringPtr();
03937             _tcscat_s( wszBuf, nBufCount, pszKey );
03938             delete ppcAssignedKeyList[j];
03939         }
03940         delete [] ppcAssignedKeyList;
03941     }
03942 }
03943
03944
03945
03952 void CEditWnd::OnEditTimer( void )
03953 {
03954     //static    int nLoopCount = 0; // wmlhq m_nTimerCountに移行
03955     // タイマーの呼び出し間隔を 500msに変更。300*10→500*6にする。 20060128 aroka
03956     IncrementTimerCount(6);
03957
03958     // 2006.01.28 aroka ツールバー更新関連は OnToolbarTimerに移動した。
03959
03960     //  Aug. 29, 2003 wmlhq, ryoji
03961     if( m_nTimerCount == 0 && GetCapture() == NULL ){
03962         /* ファイルのタイムスタンプのチェック処理 */
03963         GetDocument().CheckFileTimeStamp() ;
03964     }
03965
03966     GetDocument().CheckAutoSave();
03967     return;
03968 }
03969
03970 LRESULT CEditWnd::Views_DispatchEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
03971 {
03972     switch( msg ){
03973     case WM_ENTERMENULOOP:
03974     case WM_EXITMENULOOP:
03975         m_pcEditViewArr[0]->DispatchEvent( hwnd, msg, wParam, lParam );
03976         m_pcEditViewArr[1]->DispatchEvent( hwnd, msg, wParam, lParam );
03977         m_pcEditViewArr[2]->DispatchEvent( hwnd, msg, wParam, lParam );
03978         m_pcEditViewArr[3]->DispatchEvent( hwnd, msg, wParam, lParam );
03979         return 0L;
03980     default:
03981         return this->GetActiveView().DispatchEvent( hwnd, msg, wParam, lParam );
03982     }
03983 }
03984
03985 void CEditWnd::Views_RedrawAll()
03986 {
03987     //アクティブ以外を再描画してから…
03988     for( int v = 0; v < 4; ++v ){
03989         if( m_nActivePaneIndex != v ){
03990             this->m_pcEditViewArr[v]->RedrawAll();
03991         }
03992     }
03993     //アクティブを再描画
03994     this->GetActiveView().RedrawAll();
03995 }
03996
03997 void CEditWnd::Views_Redraw()
03998 {
03999     //アクティブ以外を再描画してから…
04000     for( int v = 0; v < 4; ++v ){
04001         if( m_nActivePaneIndex != v )
04002             m_pcEditViewArr[v]->Redraw();
04003     }
04004     //アクティブを再描画
04005     GetActiveView().Redraw();
04006 }
04007
04008
04009 /* アクティブなペインを設定 */
04010 void  CEditWnd::SetActivePane( int nIndex )
04011 {
04012     this->GetActiveView().OnKillFocus();
04013     this->GetActiveView().GetCaret().m_cUnderLine.CaretUnderLineOFF(TRUE);  //  2002/05/11 YAZAKI
04014
04015     /* アクティブなビューを切り替える */
04016     m_nActivePaneIndex = nIndex;
04017
04018     this->GetActiveView().OnSetFocus();
04019
04020     this->GetActiveView().RedrawAll();  /* フォーカス移動時の再描画 */
04021
04022     m_cSplitterWnd.SetActivePane( nIndex );
04023
04024     if( NULL != m_cDlgFind.GetHwnd() ){     /* 「検索」ダイアログ */
04025         /* モードレス時：検索対象となるビューの変更 */
04026         m_cDlgFind.ChangeView( (LPARAM)&this->GetActiveView() );
04027     }
04028     if( NULL != m_cDlgReplace.GetHwnd() ){  /* 「置換」ダイアログ */
04029         /* モードレス時：検索対象となるビューの変更 */
04030         m_cDlgReplace.ChangeView( (LPARAM)&this->GetActiveView() );
04031     }
04032     if( NULL != m_cHokanMgr.GetHwnd() ){    /* 「入力補完」ダイアログ */
04033         m_cHokanMgr.Hide();
04034         /* モードレス時：検索対象となるビューの変更 */
04035         m_cHokanMgr.ChangeView( (LPARAM)&this->GetActiveView() );
04036     }
04037     if( NULL != m_cDlgFuncList.GetHwnd() ){ /* 「アウトライン」ダイアログ */ // 20060201 aroka
04038         /* モードレス時：現在位置表示の対象となるビューの変更 */
04039         m_cDlgFuncList.ChangeView( (LPARAM)&this->GetActiveView() );
04040     }
04041
04042     return;
04043 }
04044
04045
04046 /* アクティブなペインを取得 */
04047 int CEditWnd::GetActivePane( void ) const
04048 {
04049     return m_nActivePaneIndex;
04050 }
04051
04052
04053
04059 void CEditWnd::RedrawInactivePane(void)
04060 {
04061     if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
04062         this->m_pcEditViewArr[m_nActivePaneIndex^1]->AdjustScrollBars();
04063         this->m_pcEditViewArr[m_nActivePaneIndex^1]->Redraw();
04064     }
04065     if ( m_cSplitterWnd.GetAllSplitRows() == 2 ){
04066         this->m_pcEditViewArr[m_nActivePaneIndex^2]->AdjustScrollBars();
04067         this->m_pcEditViewArr[m_nActivePaneIndex^2]->Redraw();
04068         if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
04069             this->m_pcEditViewArr[(m_nActivePaneIndex^1)^2]->AdjustScrollBars();
04070             this->m_pcEditViewArr[(m_nActivePaneIndex^1)^2]->Redraw();
04071         }
04072     }
04073 }
04074
04075 void CEditWnd::Views_DisableSelectArea(bool bRedraw)
04076 {
04077     for( int i = 0; i < 4; ++i ){
04078         if( m_pcEditViewArr[i]->GetSelectionInfo().IsTextSelected() ){  /* テキストが選択されているか */
04079             /* 現在の選択範囲を非選択状態に戻す */
04080             m_pcEditViewArr[i]->GetSelectionInfo().DisableSelectArea( true );
04081         }
04082     }
04083 }
04084
04085
04086 /* すべてのペインで、行番号表示に必要な幅を再設定する（必要なら再描画する） */
04087 BOOL CEditWnd::DetectWidthOfLineNumberAreaAllPane( bool bRedraw )
04088 {
04089     if ( this->GetActiveView().GetTextArea().DetectWidthOfLineNumberArea( bRedraw ) ){
04090         /* ActivePaneで計算したら、再設定・再描画が必要と判明した */
04091         if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
04092             this->m_pcEditViewArr[m_nActivePaneIndex^1]->GetTextArea().DetectWidthOfLineNumberArea( bRedraw );
04093         }
04094         else {
04095             //  表示されていないので再描画しない
04096             this->m_pcEditViewArr[m_nActivePaneIndex^1]->GetTextArea().DetectWidthOfLineNumberArea( FALSE );
04097         }
04098         if ( m_cSplitterWnd.GetAllSplitRows() == 2 ){
04099             this->m_pcEditViewArr[m_nActivePaneIndex^2]->GetTextArea().DetectWidthOfLineNumberArea( bRedraw );
04100             if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
04101                 this->m_pcEditViewArr[(m_nActivePaneIndex^1)^2]->GetTextArea().DetectWidthOfLineNumberArea( bRedraw );
04102             }
04103         }
04104         else {
04105             this->m_pcEditViewArr[m_nActivePaneIndex^2]->GetTextArea().DetectWidthOfLineNumberArea( FALSE );
04106             this->m_pcEditViewArr[(m_nActivePaneIndex^1)^2]->GetTextArea().DetectWidthOfLineNumberArea( FALSE );
04107         }
04108         return TRUE;
04109     }
04110     return FALSE;
04111 }
04112
04113
04121 void CEditWnd::ChangeLayoutParam( bool bShowProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas )
04122 {
04123     HWND        hwndProgress = NULL;
04124     if( bShowProgress && NULL != this ){
04125         hwndProgress = this->m_cStatusBar.GetProgressHwnd();
04126         //  Status Barが表示されていないときはm_hwndProgressBar == NULL
04127     }
04128
04129     if( hwndProgress ){
04130         ::ShowWindow( hwndProgress, SW_SHOW );
04131     }
04132
04133     //  座標の保存
04134     CLogicPoint* posSave = SavePhysPosOfAllView();
04135
04136     //  レイアウトの更新
04137     GetDocument().m_cLayoutMgr.ChangeLayoutParam( NULL, nTabSize, nMaxLineKetas );
04138
04139     //  座標の復元
04140     RestorePhysPosOfAllView( posSave );
04141
04142     for( int i = 0; i < 4; i++ ){
04143         if( m_pcEditViewArr[i]->GetHwnd() ){
04144             InvalidateRect( m_pcEditViewArr[i]->GetHwnd(), NULL, TRUE );
04145         }
04146     }
04147
04148     if( hwndProgress ){
04149         ::ShowWindow( hwndProgress, SW_HIDE );
04150     }
04151 }
04152
04153
04165 CLogicPoint* CEditWnd::SavePhysPosOfAllView(void)
04166 {
04167     const int NUM_OF_VIEW = 4;
04168     const int NUM_OF_POS = 5;
04169
04170     CLogicPoint* pptPosArray = new CLogicPoint[NUM_OF_VIEW * NUM_OF_POS];
04171
04172     for( int i = 0; i < NUM_OF_VIEW; ++i ){
04173         GetDocument().m_cLayoutMgr.LayoutToLogic(
04174             this->m_pcEditViewArr[i]->GetCaret().GetCaretLayoutPos(),
04175             &pptPosArray[i * NUM_OF_POS + 0]
04176         );
04177         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetFrom().y >= 0 ){
04178             GetDocument().m_cLayoutMgr.LayoutToLogic(
04179                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetFrom(),
04180                 &pptPosArray[i * NUM_OF_POS + 1]
04181             );
04182         }
04183         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetTo().y >= 0 ){
04184             GetDocument().m_cLayoutMgr.LayoutToLogic(
04185                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetTo(),
04186                 &pptPosArray[i * NUM_OF_POS + 2]
04187             );
04188         }
04189         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetFrom().y >= 0 ){
04190             GetDocument().m_cLayoutMgr.LayoutToLogic(
04191                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetFrom(),
04192                 &pptPosArray[i * NUM_OF_POS + 3]
04193             );
04194         }
04195         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetTo().y >= 0 ){
04196             GetDocument().m_cLayoutMgr.LayoutToLogic(
04197                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetTo(),
04198                 &pptPosArray[i * NUM_OF_POS + 4]
04199             );
04200         }
04201     }
04202     return pptPosArray;
04203 }
04204
04205
04213 void CEditWnd::RestorePhysPosOfAllView( CLogicPoint* pptPosArray/*int* posary*/ )
04214 {
04215     const int NUM_OF_VIEW = 4;
04216     const int NUM_OF_POS = 5;
04217
04218     for( int i = 0; i < NUM_OF_VIEW; ++i ){
04219         CLayoutPoint ptPosXY;
04220         GetDocument().m_cLayoutMgr.LogicToLayout(
04221             pptPosArray[i * NUM_OF_POS + 0],
04222             &ptPosXY
04223         );
04224         this->m_pcEditViewArr[i]->GetCaret().MoveCursor( ptPosXY, TRUE );
04225         this->m_pcEditViewArr[i]->GetCaret().m_nCaretPosX_Prev = this->m_pcEditViewArr[i]->GetCaret().GetCaretLayoutPos().GetX2();
04226
04227         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetFrom().y >= 0 ){
04228             GetDocument().m_cLayoutMgr.LogicToLayout(
04229                 pptPosArray[i * NUM_OF_POS + 1],
04230                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetFromPointer()
04231             );
04232         }
04233         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetTo().y >= 0 ){
04234             GetDocument().m_cLayoutMgr.LogicToLayout(
04235                 pptPosArray[i * NUM_OF_POS + 2],
04236                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelectBgn.GetToPointer()
04237             );
04238         }
04239         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetFrom().y >= 0 ){
04240             GetDocument().m_cLayoutMgr.LogicToLayout(
04241                 pptPosArray[i * NUM_OF_POS + 3],
04242                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetFromPointer()
04243             );
04244         }
04245         if( this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetTo().y >= 0 ){
04246             GetDocument().m_cLayoutMgr.LogicToLayout(
04247                 pptPosArray[i * NUM_OF_POS + 4],
04248                 this->m_pcEditViewArr[i]->GetSelectionInfo().m_sSelect.GetToPointer()
04249             );
04250         }
04251     }
04252     delete[] pptPosArray;
04253 }
04254
04255 CEditDoc& CEditWnd::GetDocument()
04256 {
04257     return CEditApp::Instance()->GetDocument();
04258 }
04259 const CEditDoc& CEditWnd::GetDocument() const
04260 {
04261     return CEditApp::Instance()->GetDocument();
04262 }
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditWnd.h

sakura_core

CEditWnd.h

編集ウィンドウ（外枠）管理クラス [詳細]

#include <shellapi.h>
#include "CEditDoc.h"
#include "CShareData.h"
#include "CFuncKeyWnd.h"
#include "CTabWnd.h"
#include "CMenuDrawer.h"
#include "CMainToolBar.h"
#include "CMainStatusBar.h"
#include "CEditView.h"
#include "CSplitterWnd.h"
#include "CDlgFind.h"
#include "CDlgReplace.h"
#include "CDlgJump.h"
#include "CDlgGrep.h"
#include "CDlgFuncList.h"
#include "CDlgOpenFile.h"
#include "CHokanMgr.h"
#include "CPropCommon.h"
#include "CPropTypes.h"
#include "CDropTarget.h"

ソースコードを見る。

構成

struct | STabGroupInfo
class | CEditWnd
編集ウィンドウ（外枠）管理クラス [詳細]

マクロ定義

#define | IDT_EDIT 455
#define | IDT_TOOLBAR 456
#define | IDT_CAPTION 457
#define | IDT_SYSMENU 1357
#define | ID_TOOLBAR 100

説明

編集ウィンドウ（外枠）管理クラス

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2002/01/14 YAZAKI PrintPreviewの分離

CEditWnd.h で定義されています。

マクロ定義

#define ID_TOOLBAR 100

CEditWnd.h の 60 行で定義されています。

参照元 CMainToolBar::CreateToolBar().

#define IDT_CAPTION 457

CEditWnd.h の 58 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CEditWnd::OnCaptionTimer(), と CEditWnd::OnTimer().

#define IDT_EDIT 455

CEditWnd.h の 56 行で定義されています。

参照元 CEditWnd::Create(), と CEditWnd::OnTimer().

#define IDT_SYSMENU 1357

CEditWnd.h の 59 行で定義されています。

参照元 CEditWnd::OnLButtonUp(), CEditWnd::OnSysMenuTimer(), と CEditWnd::OnTimer().

#define IDT_TOOLBAR 456

CEditWnd.h の 57 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CEditWnd::OnTimer(), と CEditWnd::Timer_ONOFF().

Sakura-Editorに対してSat Nov 17 20:25:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEditWnd.h ソースファイル

sakura_core

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 <shellapi.h>// HDROP
00029 #include "CEditDoc.h"
00030 #include "CShareData.h"
00031 #include "CFuncKeyWnd.h"
00032 #include "CTabWnd.h"    //@@@ 2003.05.31 MIK
00033 #include "CMenuDrawer.h"
00034 #include "CMainToolBar.h"
00035 #include "CMainStatusBar.h"
00036 #include "CEditView.h"
00037 #include "CSplitterWnd.h"
00038 #include "CDlgFind.h"
00039 #include "CDlgReplace.h"
00040 #include "CDlgJump.h"
00041 #include "CDlgGrep.h"
00042 #include "CDlgFuncList.h"
00043 #include "CDlgOpenFile.h"
00044 #include "CHokanMgr.h"
00045 #include "CPropCommon.h"
00046 #include "CPropTypes.h"
00047
00048 //by 鬼
00049 #include"CDropTarget.h"
00050
00051 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00052 class CPrintPreview;// 2002/2/10 aroka
00053
00054
00055 //メインウィンドウ内コントロールID
00056 #define IDT_EDIT        455  // 20060128 aroka
00057 #define IDT_TOOLBAR     456
00058 #define IDT_CAPTION     457
00059 #define IDT_SYSMENU     1357
00060 #define ID_TOOLBAR      100
00061
00062 struct STabGroupInfo{
00063     HWND            hwndTop;
00064     WINDOWPLACEMENT wpTop;
00065
00066     STabGroupInfo() : hwndTop(NULL) { }
00067     bool IsValid() const{ return hwndTop!=NULL; }
00068 };
00069
00071 // 2002.02.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00072 // 2007.10.30 kobake IsFuncEnable,IsFuncCheckedをFunccode.hに移動
00073 // 2007.10.30 kobake OnHelp_MenuItemをCEditAppに移動
00074 class SAKURA_CORE_API CEditWnd
00075 {
00076 public:
00077     /*
00078     ||  Constructors
00079     */
00080     CEditWnd();
00081     ~CEditWnd();
00082
00083     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00084     //                           作成                              //
00085     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086     //  Mar. 7, 2002 genta 文書タイプ用引数追加
00087     // 2007.06.26 ryoji グループ指定引数追加
00089     HWND Create(
00090         HINSTANCE       hInstance,
00091         int             nGroup
00092     );
00093     void _GetTabGroupInfo(STabGroupInfo* pTabGroupInfo, int& nGroup);
00094     void _GetWindowRectForInit(CMyRect* rcResult, int nGroup, const STabGroupInfo& sTabGroupInfo);
00095     HWND _CreateMainWindow(int nGroup, const STabGroupInfo& sTabGroupInfo);
00096     void _AdjustInMonitor(const STabGroupInfo& sTabGroupInfo);
00097
00098     void OpenDocumentWhenCreate(
00099         const TCHAR*    pszPath,
00100         ECodeType       nCharCode,
00101         bool            bReadOnly
00102     );
00103
00104     void SetDocumentTypeWhenCreate(
00105         ECodeType       nCharCode,
00106         bool            bReadOnly,
00107         int             nDocumentType = -1
00108     );
00109     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00110     //                         イベント                            //
00111     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00112     //管理
00113     void MessageLoop( void );                               /* メッセージループ */
00114     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 */
00115
00116     //各種イベント
00117     LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );  /* 描画処理 */
00118     LRESULT OnSize( WPARAM, LPARAM );   /* WM_SIZE 処理 */
00119     LRESULT OnLButtonUp( WPARAM, LPARAM );
00120     LRESULT OnLButtonDown( WPARAM, LPARAM );
00121     LRESULT OnMouseMove( WPARAM, LPARAM );
00122     LRESULT OnMouseWheel( WPARAM, LPARAM );
00123     LRESULT OnHScroll( WPARAM, LPARAM );
00124     LRESULT OnVScroll( WPARAM, LPARAM );
00125     int OnClose( void );    /* 終了時の処理 */
00126     void OnDropFiles( HDROP );  /* ファイルがドロップされた */
00127     BOOL OnPrintPageSetting( void );/* 印刷ページ設定 */
00128     LRESULT OnTimer( WPARAM, LPARAM );  // WM_TIMER 処理  // 2007.04.03 ryoji
00129     void OnEditTimer( void );   /* タイマーの処理 */
00130     void OnCaptionTimer( void );
00131     void OnSysMenuTimer( void );
00132     void OnCommand( WORD, WORD , HWND );
00133     LRESULT OnNcLButtonDown(WPARAM, LPARAM);
00134     LRESULT OnNcLButtonUp(WPARAM, LPARAM);
00135     LRESULT OnLButtonDblClk(WPARAM, LPARAM);
00136
00137
00138     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00139     //                           通知                              //
00140     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00141
00142     //ファイル名変更通知
00143     void ChangeFileNameNotify( const TCHAR* pszTabCaption, const TCHAR* pszFilePath, BOOL m_bIsGrep );  //@@@ 2003.05.31 MIK, 2006.01.28 ryoji ファイル名、Grepモードパラメータを追加
00144
00145
00146     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00147     //                         メニュー                            //
00148     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00149     void InitMenu( HMENU, UINT, BOOL );
00150     void InitMenubarMessageFont(void);  //  メニューバーへのメッセージ表示機能をCEditWndより移管  //  Dec. 4, 2002 genta
00151     LRESULT WinListMenu( HMENU hMenu, EditNode* pEditNodeArr, int nRowNum, BOOL bFull );        // 2006.03.23 fon
00152     LRESULT PopupWinList( bool bMousePos );     // 2006.03.23 fon   // 2007.02.28 ryoji フルパス指定のパラメータを削除
00153
00154
00155     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00156     //                           整形                              //
00157     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00158     void LayoutToolBar( void );         /* ツールバーの配置処理 */            // 2006.12.19 ryoji
00159     void LayoutFuncKey( void );         /* ファンクションキーの配置処理 */    // 2006.12.19 ryoji
00160     void LayoutTabBar( void );          /* タブバーの配置処理 */           // 2006.12.19 ryoji
00161     void LayoutStatusBar( void );       /* ステータスバーの配置処理 */      // 2006.12.19 ryoji
00162     void EndLayoutBars( BOOL bAdjust = TRUE );  /* バーの配置終了処理 */   // 2006.12.19 ryoji
00163
00164
00165     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00166     //                           設定                              //
00167     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00168     void PrintPreviewModeONOFF( void ); /* 印刷プレビューモードのオン/オフ */
00169
00170     //アイコン
00171     void SetWindowIcon( HICON, int);    //  Sep. 10, 2002 genta
00172     void GetDefaultIcon( HICON& hIconBig, HICON& hIconSmall ) const;    //  Sep. 10, 2002 genta
00173     bool GetRelatedIcon(const TCHAR* szFile, HICON& hIconBig, HICON& hIconSmall) const; //  Sep. 10, 2002 genta
00174
00175
00176     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00177     //                           情報                              //
00178     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00179
00181     BOOL IsActiveApp() const { return m_bIsActiveApp; };
00182
00184     void GetTooltipText(TCHAR* wszBuf, size_t nBufCount, int nID) const;
00185
00187     bool IsInPreviewMode()
00188     {
00189         return m_pPrintPreview!=NULL;
00190     }
00191
00192     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00193     //                           表示                              //
00194     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00195     void PrintMenubarMessage( const TCHAR* msg ) const;
00196     void SendStatusMessage( const TCHAR* msg );     //  Dec. 4, 2002 genta 実体をCEditViewから移動
00197
00198
00199     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00200     //                      ウィンドウ操作                         //
00201     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00202     void WindowTopMost( int ); // 2004.09.21 Moca
00203
00204     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00205     //                        ビュー管理                           //
00206     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00207     LRESULT Views_DispatchEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
00208     void Views_RedrawAll();
00209     void Views_Redraw();
00210     void SetActivePane( int );  /* アクティブなペインを設定 */
00211     int GetActivePane( void ) const;    /* アクティブなペインを取得 */ //2007.08.26 kobake const追加
00212     void RedrawInactivePane( void );    /* 非アクティブなペインをRedrawする */
00213     void Views_DisableSelectArea(bool bRedraw);
00214     BOOL DetectWidthOfLineNumberAreaAllPane( bool bRedraw );    /* すべてのペインで、行番号表示に必要な幅を再設定する（必要なら再描画する） */
00215     //  Aug. 14, 2005 genta TAB幅と折り返し位置の更新
00216     void ChangeLayoutParam( bool bShowProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas );
00217     //  Aug. 14, 2005 genta
00218     CLogicPoint* SavePhysPosOfAllView(void);
00219     void RestorePhysPosOfAllView( CLogicPoint* pptPosArray );
00220
00221     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00222     //                         デバッグ                            //
00223     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00224     void SetDebugModeON( void );    /* デバッグモニタモードに設定 */
00225     void SetDebugModeOFF( void );   // 2005.06.24 Moca
00226
00227     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00228     //                       各種アクセサ                          //
00229     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00230     HWND            GetHwnd()       const   { return m_hWnd;        }
00231     CMenuDrawer&    GetMenuDrawer()         { return m_CMenuDrawer; }
00232     CEditDoc&       GetDocument();
00233     const CEditDoc& GetDocument() const;
00234
00235     //ビュー
00236     const CEditView&    GetActiveView() const { return *m_pcEditViewArr[m_nActivePaneIndex]; }
00237     CEditView&          GetActiveView()       { return *m_pcEditViewArr[m_nActivePaneIndex]; }
00238
00239     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00240     //                         実装補助                            //
00241     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00242 //by 鬼
00243 protected:
00244     enum EIconClickStatus{
00245         icNone,
00246         icDown,
00247         icClicked,
00248         icDoubleClicked
00249     };
00250
00251 protected:
00252     //ドロップダウンメニュー
00253     int CreateFileDropDownMenu( HWND ); //開く(ドロップダウン) //@@@ 2002.06.15 MIK
00254
00255     //タイマー
00256     void Timer_ONOFF( BOOL ); /* 更新の開始／停止 20060128 aroka */
00257
00258 public:
00260     void IncrementTimerCount(int nInterval)
00261     {
00262         m_nTimerCount++;
00263         if( nInterval < m_nTimerCount ){
00264             m_nTimerCount = 0;
00265         }
00266     }
00267
00268     //D&Dフラグ管理
00269     void SetDragPosOrg(CMyPoint ptDragPosOrg){ m_ptDragPosOrg=ptDragPosOrg; }
00270     void SetDragMode(bool bDragMode){ m_bDragMode = bDragMode; }
00271     bool GetDragMode() const{ return m_bDragMode; }
00272     const CMyPoint& GetDragPosOrg() const{ return m_ptDragPosOrg; }
00273
00274     //フォーカス管理
00275     int GetCurrentFocus() const{ return m_nCurrentFocus; }
00276     void SetCurrentFocus(int n){ m_nCurrentFocus = n; }
00277
00278
00279     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00280     //                        メンバ変数                           //
00281     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00282 private:
00283     //モジュール情報
00284     HINSTANCE       m_hInstance;
00285
00286     //自ウィンドウ
00287     HWND            m_hWnd;
00288
00289     //親ウィンドウ
00290     HWND            m_hwndParent;
00291
00292 public:
00293     //子ウィンドウ
00294     CMainToolBar    m_cToolbar;
00295     CTabWnd         m_cTabWnd;
00296     CFuncKeyWnd     m_CFuncKeyWnd;
00297     CMainStatusBar  m_cStatusBar;
00298     CPrintPreview*  m_pPrintPreview;
00299
00300     CSplitterWnd    m_cSplitterWnd;
00301     CEditView*      m_pcEditViewArr[4];
00302     int             m_nActivePaneIndex;
00303
00304     //ダイアログ達
00305     CDlgFind        m_cDlgFind;         // 「検索」ダイアログ
00306     CDlgReplace     m_cDlgReplace;      // 「置換」ダイアログ
00307     CDlgJump        m_cDlgJump;         // 「指定行へジャンプ」ダイアログ
00308     CDlgGrep        m_cDlgGrep;         // Grepダイアログ
00309     CDlgFuncList    m_cDlgFuncList;     // アウトライン解析結果ダイアログ
00310     CDlgOpenFile    m_cDlgOpenFile;     // ファイルオープンダイアログ
00311     CHokanMgr       m_cHokanMgr;        // 入力補完
00312     CPropCommon     m_cPropCommon;
00313     CPropTypes      m_cPropTypes;
00314
00315 private:
00316     //共有データ
00317     DLLSHAREDATA*   m_pShareData;
00318
00319     //ヘルパ
00320     CMenuDrawer     m_CMenuDrawer;
00321
00322     //メッセージID
00323     UINT            m_uMSIMEReconvertMsg;
00324     UINT            m_uATOKReconvertMsg;
00325
00326     //状態
00327     const TCHAR*    m_pszWndClass;
00328     BOOL            m_bIsActiveApp;
00329     LPTSTR          m_pszLastCaption;
00330     int             m_nTimerCount;
00331     int             m_nCurrentFocus;
00332     int             m_nWinSizeType;
00333
00334     //フォント・イメージ
00335     HFONT           m_hFontCaretPosInfo;
00336     int             m_nCaretPosInfoCharWidth;
00337     int             m_nCaretPosInfoCharHeight;
00338
00339     //D&Dフラグ
00340     bool            m_bDragMode;
00341     CMyPoint        m_ptDragPosOrg;
00342
00343     //その他フラグ
00344     BOOL                m_bUIPI;        // エディタ−トレイ間でのUI特権分離確認用フラグ    // 2007.06.07 ryoji
00345     EIconClickStatus    m_IconClicked;
00346
00347 };
00348
00349
00351 #endif /* _CEDITWND_H_ */
00352
00353
00354 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEol.cpp

sakura_core

CEol.cpp

CEOLクラスの実装 [詳細]

#include "stdafx.h"
#include "CEol.h"

CEol.cppのインクルード依存関係図

ソースコードを見る。

説明

CEOLクラスの実装

作者:
genta
日付:
2000/05/15 新規作成 genta

CEol.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEol.cpp ソースファイル

sakura_core

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 TCHAR* CEOL::gm_pszEolNameArr[EOL_TYPE_NUM] = {
00076     //  May 12, 2000 genta
00077     //  文字幅の都合上“無”を漢字に
00078     _T("改行無"),
00079     _T("CRLF"),
00080     _T("LFCR"),
00081     _T("LF"),
00082     _T("CR")
00083 };
00084
00085
00086 //-----------------------------------------------
00087 //  実装部
00088 //-----------------------------------------------
00095 bool CEOL::SetType( enumEOLType t )
00096 {
00097     if( t < EOL_NONE || EOL_CR < t ){
00098         //  異常値
00099         m_enumEOLType = EOL_CRLF;
00100         return false;
00101     }
00102     //  正しい値
00103     m_enumEOLType = t;
00104     return true;
00105 }
00106
00113 enumEOLType CEOL::GetEOLType( const char* pszData, int nDataLen )
00114 {
00115     int i;
00116     /* 改行コードの長さを調べる */
00117     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00118         if( gm_pnEolLenArr[i] <= nDataLen
00119          && 0 == auto_memcmp( pszData, gm_pszEolDataArr[i], gm_pnEolLenArr[i] )
00120         ){
00121             return gm_pnEolTypeArr[i];
00122         }
00123     }
00124     return EOL_NONE;
00125 }
00126 enumEOLType CEOL::GetEOLType( const wchar_t* pszData, int nDataLen )
00127 {
00128     int i;
00129     /* 改行コードの長さを調べる */
00130     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00131         if( gm_pnEolLenArr[i] <= nDataLen
00132          && 0 == wmemcmp( pszData, gm_pszEolUnicodeDataArr[i], gm_pnEolLenArr[i] )
00133         ){
00134             return gm_pnEolTypeArr[i];
00135         }
00136     }
00137     return EOL_NONE;
00138 }
00139
00146 enumEOLType CEOL::GetEOLTypeUni( const wchar_t* pszData, int nDataLen )
00147 {
00148     int i;
00149     /* 改行コードの長さを調べる */
00150     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00151         if( gm_pnEolLenArr[i] <= nDataLen
00152          && 0 == auto_memcmp( pszData, gm_pszEolUnicodeDataArr[i], gm_pnEolLenArr[i] )
00153         ){
00154             return gm_pnEolTypeArr[i];
00155         }
00156     }
00157     return EOL_NONE;
00158 }
00159
00160 /*
00161     行端子の種類を調べるUnicodeBE版
00162     @param pszData 調査対象文字列へのポインタ
00163     @param nDataLen 調査対象文字列の長さ(wchar_tの長さ)
00164     @return 改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。
00165 */
00166 enumEOLType CEOL::GetEOLTypeUniBE( const wchar_t* pszData, int nDataLen )
00167 {
00168     int i;
00169     /* 改行コードの長さを調べる */
00170     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00171         if( gm_pnEolLenArr[i] <= nDataLen
00172          && 0 == auto_memcmp( pszData, gm_pszEolUnicodeBEDataArr[i], gm_pnEolLenArr[i] )
00173         ){
00174             return gm_pnEolTypeArr[i];
00175         }
00176     }
00177     return EOL_NONE;
00178 }
00179
00180 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEol.h

sakura_core

CEol.h

End of Line種別の管理 [詳細]

#include "global.h"

CEol.hのインクルード依存関係図

ソースコードを見る。

構成

class CEOL
行末の改行コードを管理 [詳細]

説明

End of Line種別の管理

作者:
genta
日付:
2000/5/15 新規作成

CEol.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEol.h ソースファイル

sakura_core

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 TCHAR*     gm_pszEolNameArr            [EOL_TYPE_NUM];
00054     static const wchar_t*   gm_aEolInfoStrings          [EOL_TYPE_NUM];
00055 public:
00056
00057     //  設定関数
00058     void Init(void){
00059         m_enumEOLType = EOL_NONE;
00060     //  m_nEOLLen = 2; /* = CR+LF */
00061     }
00062
00063     static enumEOLType GetEOLType( const char* pszData, int nDataLen );
00064     static enumEOLType GetEOLType( const wchar_t* pszData, int nDataLen );
00065     static enumEOLType GetEOLTypeUni( const wchar_t* pszData, int nDataLen );
00066     static enumEOLType GetEOLTypeUniBE( const wchar_t* pszData, int nDataLen );
00067     bool SetType( enumEOLType t);   //  Typeの設定
00068     void GetTypeFromString( const wchar_t* pszData, int nDataLen )
00069         {   SetType( GetEOLType( pszData, nDataLen ) ); }
00070     void GetTypeFromString( const char* pszData, int nDataLen )
00071         {   SetType( GetEOLType( pszData, nDataLen ) ); }
00072
00073     //  読み出し関数
00074     enumEOLType     GetType()           const{ return m_enumEOLType; }
00075     CLogicInt       GetLen()            const{ return CLogicInt(gm_pnEolLenArr[ m_enumEOLType ]); }
00076     const TCHAR*    GetName()           const{ return gm_pszEolNameArr[ m_enumEOLType ]; }
00077     const char*     GetValue()          const{ return gm_pszEolDataArr[ m_enumEOLType ]; }
00078     const wchar_t*  GetUnicodeValue()   const{ return gm_pszEolUnicodeDataArr[m_enumEOLType]; }
00079     const wchar_t*  GetUnicodeBEValue() const{ return gm_pszEolUnicodeBEDataArr[m_enumEOLType]; }
00080
00081     //  利便性向上のためのOverload
00082     bool operator==( enumEOLType t ) const { return GetType() == t; }
00083     bool operator!=( enumEOLType t ) const { return GetType() != t; }
00084     const CEOL& operator=( const CEOL& t )
00085         { m_enumEOLType = t.m_enumEOLType; return *this; }
00086     operator enumEOLType(void) const { return GetType(); }
00087
00088     //  constructor
00089     CEOL(){ Init(); }
00090     CEOL( enumEOLType t ){ SetType(t); }
00091
00092 private:
00093     enumEOLType     m_enumEOLType;
00094     //int           m_nEOLLen;      /* 改行コードの長さ */
00095 };
00096
00097 //  利便性向上のためのOverload
00098 // inline bool operator==(m_enumEOLType t, const CEOL& c ){ return c == t; }
00099 // inline bool operator!=(m_enumEOLType t, const CEOL& c ){ return c != t; }
00100
00101 #endif
00102
00103
00104 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CESI.cpp

sakura_core

CESI.cpp

文字コード調査情報保持クラス [詳細]

#include "stdafx.h"
#include "CESI.h"
#include "charcode.h"

CESI.cppのインクルード依存関係図

ソースコードを見る。

説明

文字コード調査情報保持クラス

作者:
Sakura-Editor collaborators
日付:
2006/12/10 新規作成

CESI.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CESI.cpp ソースファイル

sakura_core

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 Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CESI.h

sakura_core

CESI.h

文字コード調査情報保持クラス [詳細]

#include "global.h"
#include "charcode.h"

CESI.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CESI

説明

文字コード調査情報保持クラス

作者:
Sakura-Editor collaborators
日付:
2006/12/10 新規作成

CESI.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CESI.h ソースファイル

sakura_core

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 Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEuc.cpp

sakura_core » charset

CEuc.cpp

#include "stdafx.h"
#include "CEuc.h"
#include "CShiftJis.h"
#include "charcode.h"
#include <mbstring.h>
#include "codeutil.h"

CEuc.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEuc.cpp ソースファイル

sakura_core » charset

CEuc.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CEuc.h"
00003 #include "CShiftJis.h"
00004 #include "charcode.h"
00005 #include <mbstring.h>
00006 #include "codeutil.h"
00007
00008 /* EUC→Unicodeコード変換 */
00009 //2007.08.13 kobake 追加
00010 EConvertResult CEuc::EUCToUnicode(CMemory* pMem)
00011 {
00012     //$$ SJISを介しているので無駄にデータを失うかも？
00013     EUCToSJIS(pMem);
00014     CShiftJis::SJISToUnicode(pMem);
00015
00016     return RESULT_COMPLETE;
00017 }
00018
00019 EConvertResult CEuc::UnicodeToEUC(CMemory* pMem)
00020 {
00021     //$$ SJISを介しているので無駄にデータを失うかも？
00022     CShiftJis::UnicodeToSJIS(pMem);
00023     SJISToEUC(pMem);
00024
00025     return RESULT_COMPLETE;
00026 }
00027
00028
00029 /************************************************************************
00030 *
00031 *【関数名】
00032 *   EUCToSJIS
00033 *
00034 *【機能】
00035 *   指定範囲のバッファ内にEUC漢字コード
00036 *   があればSJIS全角コードに変換する。   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00037 *   半角文字は変換せずにそのまま残す。
00038 *
00039 *   制御文字CRLF以外のバイナリコードが混入している場合には結果が不定と
00040 *   なることがあるので注意。
00041 *   バッファの最後に漢字コードの1バイト目だけがあると困る
00042 *
00043 *【入力】   なし
00044 *
00045 *【戻り値】    なし
00046 *
00047 ************************************************************************/
00048 /* EUC→SJISコード変換 */
00049 void CEuc::EUCToSJIS( CMemory* pMem )
00050 {
00051     //データ取得
00052     int             nBufLen;
00053     const char*     pBuf = (const char*)pMem->GetRawPtr(&nBufLen);
00054
00055     CMemory cmemTmp;
00056
00057     int             nPtr = 0L;
00058     int             nPtrDes = 0L;
00059     char*           pszDes = new char[nBufLen];
00060     unsigned int    sCode;
00061
00062     while( nPtr < nBufLen ){
00063         if( (unsigned char)pBuf[nPtr] == (unsigned char)0x8e && nPtr < nBufLen - 1 ){
00064             /* 半角カタカナ */
00065             pszDes[nPtrDes] = pBuf[nPtr + 1];
00066             nPtrDes++;
00067             nPtr += 2;
00068         }
00069         /* EUC漢字コードか? */
00070         else if( nPtr < nBufLen - 1 && Charcode::IsEucKan1(pBuf[nPtr]) && Charcode::IsEucKan2(pBuf[nPtr + 1L]) ){
00071             /* 通常のJISコードに変換 */
00072             char jis[2];
00073             jis[0] = pBuf[nPtr    ] & 0x7f;
00074             jis[1] = pBuf[nPtr + 1L] & 0x7f;
00075
00076             /* SJISコードに変換 */    //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00077             sCode = (unsigned short)_mbcjistojms(
00078                 (unsigned int)
00079                 ((unsigned short)jis[0] << 8) |
00080                  ((unsigned short)jis[1])
00081             );
00082             if( sCode != 0 ){
00083                 pszDes[nPtrDes    ] = (unsigned char)(sCode >> 8);
00084                 pszDes[nPtrDes + 1] = (unsigned char)(sCode);
00085                 nPtrDes += 2;;
00086                 nPtr += 2;
00087             }else{
00088                 pszDes[nPtrDes] = jis[0];
00089                 nPtrDes++;
00090                 nPtr++;
00091             }
00092         }
00093         else{
00094             pszDes[nPtrDes] = pBuf[nPtr];
00095             nPtrDes++;
00096             nPtr++;
00097         }
00098     }
00099     pMem->SetRawData( pszDes, nPtrDes );
00100     delete [] pszDes;
00101     return;
00102 }
00103
00104
00105 /* SJIS→EUCコード変換 */
00106 void CEuc::SJISToEUC( CMemory* pMem )
00107 {
00108     //データ取得
00109     int             nBufLen;
00110     unsigned char*  pBuf = (unsigned char*)pMem->GetRawPtr(&nBufLen);
00111
00112     int             i;
00113     int             nCharChars;
00114     unsigned char*  pDes;
00115     int             nDesIdx;
00116     unsigned short  sCode;
00117
00118     pDes = new unsigned char[nBufLen * 2];
00119     nDesIdx = 0;
00120     for( i = 0; i < nBufLen; ++i ){
00121         // 2005-09-02 D.S.Koba GetSizeOfChar
00122         nCharChars = CShiftJis::GetSizeOfChar( reinterpret_cast<char*>(pBuf), nBufLen, i );
00123         if( nCharChars == 1 ){
00124             if( pBuf[i] >= (unsigned char)0x80 ){
00125                 /* 半角カタカナ */
00126                 pDes[nDesIdx    ] = (unsigned char)0x8e;
00127                 pDes[nDesIdx + 1] = pBuf[i];
00128                 nDesIdx += 2;
00129             }else{
00130                 pDes[nDesIdx] = pBuf[i];
00131                 nDesIdx++;
00132             }
00133         }else
00134         if( nCharChars == 2 ){
00135             /* 全角文字 */
00136             //  Oct. 3, 2002 genta IBM拡張文字対応
00137             sCode = (unsigned short)_mbcjmstojis_ex( pBuf + i );
00138             if(sCode != 0){
00139                 pDes[nDesIdx    ] = (unsigned char)0x80 | (unsigned char)(sCode >> 8);
00140                 pDes[nDesIdx + 1] = (unsigned char)0x80 | (unsigned char)(sCode);
00141                 nDesIdx += 2;
00142                 ++i;
00143             }else{
00144                 pDes[nDesIdx    ] = pBuf[i];
00145                 pDes[nDesIdx + 1] = pBuf[i + 1];
00146                 nDesIdx += 2;
00147                 ++i;
00148             }
00149         }else
00150         if( nCharChars > 0 ){
00151             i += nCharChars - 1;
00152         }
00153     }
00154     pMem->SetRawData( pDes, nDesIdx );
00155     delete [] pDes;
00156     return;
00157 }
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEuc.h

sakura_core » charset

CEuc.h

#include "CCodeBase.h"

CEuc.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEuc

Sakura-Editorに対してSat Nov 17 20:25:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CEuc.h ソースファイル

sakura_core » charset

CEuc.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CEuc : public CCodeBase{
00006 public:
00007     //CCodeBaseインターフェース
00008     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return EUCToUnicode(pDst->_GetMemory()); }
00009     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToEUC(pDst); }
00010
00011 public:
00012     //実装
00013     static EConvertResult EUCToUnicode(CMemory* pMem);      // EUC       → Unicodeコード変換  //2007.08.13 kobake 追加
00014     static EConvertResult UnicodeToEUC(CMemory* pMem);      // Unicode   → EUCコード変換
00015     static void EUCToSJIS(CMemory* pMem);           // EUC       → SJISコード変換
00016     static void SJISToEUC(CMemory* pMem);           // SJIS      → EUCコード変換
00017 };
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileExt.cpp

sakura_core

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 Nov 17 20:25:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileExt.cpp ソースファイル

sakura_core

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     _tcscpy( m_szFilter, _T("") );
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 TCHAR *pszName, const TCHAR *pszExt )
00060 {
00061     TCHAR   szWork[1024];
00062
00063     if( !ConvertTypesExtToDlgExt( pszExt, szWork ) ) return false;
00064     return AppendExtRaw( pszName, szWork );
00065 }
00066
00067 bool CFileExt::AppendExtRaw( const TCHAR *pszName, const TCHAR *pszExt )
00068 {
00069     FileExtInfoTag  *p;
00070
00071     if( NULL == pszName || 0 == _tcslen( pszName ) ) return false;
00072     if( NULL == pszExt  || 0 == _tcslen( 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     _tcscpy( m_puFileExtInfo[m_nCount].m_szName, pszName );
00087     _tcscpy( m_puFileExtInfo[m_nCount].m_szExt, pszExt );
00088     m_nCount++;
00089
00090     return true;
00091 }
00092
00093 const TCHAR *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 TCHAR *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 TCHAR *CFileExt::GetExtFilter( void )
00108 {
00109     int     i;
00110     TCHAR   szWork[1024];
00111
00112     /* 拡張子フィルタの作成 */
00113     _tcscpy( m_szFilter, _T("") );
00114
00115     for( i = 0; i < m_nCount; i++ )
00116     {
00117         auto_sprintf( szWork,
00118             _T("%ls (%ls)|%ls|"),
00119             m_puFileExtInfo[i].m_szName,
00120             m_puFileExtInfo[i].m_szExt,
00121             m_puFileExtInfo[i].m_szExt );
00122
00123         _tcscat( m_szFilter, szWork );
00124     }
00125     _tcscat( m_szFilter, _T("|") );
00126
00127     //区切りは０なので置き換える。
00128     for( i = 0; m_szFilter[i] != _T('\0'); i++ )
00129     {
00130         if( m_szFilter[i] == _T('|') ) m_szFilter[i] = _T('\0');
00131     }
00132
00133     return m_szFilter;
00134 }
00135
00136 bool CFileExt::ConvertTypesExtToDlgExt( const TCHAR *pszSrcExt, TCHAR *pszDstExt )
00137 {
00138     TCHAR   *token;
00139     TCHAR   *p;
00140
00141     //  2003.08.14 MIK NULLじゃなくてfalse
00142     if( NULL == pszSrcExt ) return false;
00143     if( NULL == pszDstExt ) return false;
00144
00145     p = _tcsdup( pszSrcExt );
00146     _tcscpy( pszDstExt, _T("") );
00147
00148     token = _tcstok( p, _T(" ;,") );
00149     while( token )
00150     {
00151         if( _T('.') == *token ) _tcscat( pszDstExt, _T("*") );
00152         else                 _tcscat( pszDstExt, _T("*.") );
00153         _tcscat( pszDstExt, token );
00154
00155         token = _tcstok( NULL, _T(" ;,") );
00156         if( token ) _tcscat( pszDstExt, _T(";") );
00157     }
00158     free( p );  // 2003.05.20 MIK メモリ解放漏れ
00159     return true;
00160 }
00161
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileExt.h

sakura_core

CFileExt.h

オープンダイアログ用ファイル拡張子管理 [詳細]

#include "global.h"

CFileExt.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CFileExt
struct | CFileExt::FileExtInfoTag

説明

オープンダイアログ用ファイル拡張子管理

作者:
MIK
日付:
2003.5.12

CFileExt.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileExt.h ソースファイル

sakura_core

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 TCHAR *pszName, const TCHAR *pszExt );
00043     bool AppendExtRaw( const TCHAR *pszName, const TCHAR *pszExt );
00044     const TCHAR *GetName( int nIndex );
00045     const TCHAR *GetExt( int nIndex );
00046
00047     //ダイアログに渡す拡張子フィルタを取得する。(lpstrFilterに直接指定可能)
00048     const TCHAR *GetExtFilter( void );
00049
00050     int GetCount( void ) { return m_nCount; }
00051
00052 protected:
00053     bool ConvertTypesExtToDlgExt( const TCHAR *pszSrcExt, TCHAR *pszDstExt );
00054
00055 private:
00056
00057     typedef struct {
00058         TCHAR   m_szName[64];       //名前(64文字以下のはず→m_szTypeName)
00059         TCHAR   m_szExt[64*3+1];    //拡張子(64文字以下のはず→m_szTypeExts) なお "*." を追加するのでそれなりに必要
00060     } FileExtInfoTag;
00061
00062     int             m_nCount;
00063     FileExtInfoTag  *m_puFileExtInfo;
00064     TCHAR           m_szFilter[4096];
00065 };
00066
00067 #endif  //_CFILEEXT_H_
00068
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileLoad.cpp

sakura_core

CFileLoad.cpp

ファイル読み込みクラス [詳細]

#include "stdafx.h"
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include "global.h"
#include "CMemory.h"
#include "CEOL.h"
#include "CFileLoad.h"
#include "charcode.h"
#include "CIoBridge.h"
#include "charset/CCodeMediator.h"
#include "util/string_ex2.h"

CFileLoad.cppのインクルード依存関係図

ソースコードを見る。

説明

ファイル読み込みクラス

作者:
Moca
日付:
2002/08/30 新規作成

CFileLoad.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileLoad.cpp ソースファイル

sakura_core

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 "CMemory.h"
00040 #include "CEOL.h"
00041 #include "CFileLoad.h"
00042 #include "charcode.h"
00043 #ifdef _DEBUG
00044 #include "Debug.h"
00045 #endif
00046 #include "CIoBridge.h"
00047 #include "charset/CCodeMediator.h"
00048 #include "util/string_ex2.h"
00049
00050 /*
00051     @note Win32APIで実装
00052         2GB以上のファイルは開けない
00053 */
00054
00056 const int CFileLoad::gm_nBufSizeDef = 32768;
00057 //(最適値がマシンによって違うのでとりあえず32KB確保する)
00058
00059 // /*! ロード用バッファサイズの設定可能な最低値 */
00060 // const int gm_nBufSizeMin = 1024;
00061
00063 CFileLoad::CFileLoad( void )
00064 {
00065     m_hFile         = NULL;
00066     m_nFileSize     = 0;
00067     m_nFileDataLen  = 0;
00068     m_CharCode      = CODE_DEFAULT;
00069     m_bBomExist     = FALSE;    // Jun. 08, 2003 Moca
00070     m_nFlag         = 0;
00071     m_nReadLength   = 0;
00072     m_eMode         = FLMODE_CLOSE; // Jun. 08, 2003 Moca
00073
00074     m_nLineIndex    = -1;
00075
00076     m_pReadBuf = NULL;
00077     m_nReadDataLen    = 0;
00078     m_nReadBufSize    = 0;
00079     m_nReadBufOffSet  = 0;
00080 }
00081
00083 CFileLoad::~CFileLoad( void )
00084 {
00085     if( NULL != m_hFile ){
00086         FileClose();
00087     }
00088     if( NULL != m_pReadBuf ){
00089         free( m_pReadBuf );
00090     }
00091 }
00092
00102 ECodeType CFileLoad::FileOpen( LPCTSTR pFileName, ECodeType CharCode, int nFlag, BOOL* pbBomExist )
00103 {
00104     HANDLE  hFile;
00105     DWORD   FileSize;
00106     DWORD   FileSizeHigh;
00107     int     nBomCode;
00108
00109     // FileCloseを呼んでからにしてください
00110     if( NULL != m_hFile ){
00111 #ifdef _DEBUG
00112         ::MessageBox( NULL, _T("CFileLoad::FileOpen\nFileCloseを呼んでからにしてください") , NULL, MB_OK );
00113 #endif
00114         throw CError_FileOpen();
00115     }
00116     hFile = ::CreateFile(
00117         pFileName,
00118         GENERIC_READ,
00119         //  Oct. 18, 2002 genta FILE_SHARE_WRITE 追加
00120         //  他プロセスが書き込み中のファイルを開けるように
00121         FILE_SHARE_READ | FILE_SHARE_WRITE, // 共有
00122         NULL,                       // セキュリティ記述子
00123         OPEN_EXISTING,              // 作成方法
00124         FILE_FLAG_SEQUENTIAL_SCAN,  // ファイル属性
00125         NULL                        // テンプレートファイルのハンドル
00126     );
00127     if( hFile == INVALID_HANDLE_VALUE ){
00128         throw CError_FileOpen();
00129     }
00130     m_hFile = hFile;
00131
00132     FileSize = ::GetFileSize( hFile, &FileSizeHigh );
00133     // ファイルサイズが、約2GBを超える場合はとりあえずエラー
00134     if( 0x80000000 <= FileSize || 0 < FileSizeHigh ){
00135         FileClose();
00136         throw CError_FileOpen();
00137     }
00138     m_nFileSize = FileSize;
00139 //  m_eMode = FLMODE_OPEN;
00140
00141     // From Here Jun. 08, 2003 Moca 文字コード判定
00142     // データ読み込み
00143     Buffering();
00144
00145     if( CharCode == CODE_AUTODETECT ){
00146         CharCode = CCodeMediator::CheckKanjiCode( (const unsigned char*)m_pReadBuf, m_nReadDataLen );
00147     }
00148     // To Here Jun. 08, 2003
00149     // 不正な文字コードのときはデフォルト(SJIS:無変換)を設定
00150     if( 0 > CharCode || CODE_CODEMAX <= CharCode ){
00151         CharCode = CODE_SJIS;
00152     }
00153     m_CharCode = CharCode;
00154     m_nFlag = nFlag;
00155
00156     // From Here Jun. 08, 2003 Moca BOMの除去
00157 //- nBomCode = CMemory::IsUnicodeBom( (const unsigned char*)m_pReadBuf, m_nReadDataLen );
00158     nBomCode = Charcode::DetectUnicodeBom( (const char *)m_pReadBuf, m_nReadDataLen );  // 2006.09.22  by rastiv
00159     m_nFileDataLen = m_nFileSize;
00160     if( nBomCode != 0 && nBomCode == m_CharCode ){
00161         //  Jul. 26, 2003 ryoji BOMの有無をパラメータで返す
00162         m_bBomExist = TRUE;
00163         if( pbBomExist != NULL ){
00164             *pbBomExist = TRUE;
00165         }
00166         switch( nBomCode ){
00167             case CODE_UNICODE:
00168             case CODE_UNICODEBE:
00169                 m_nFileDataLen -= 2;
00170                 m_nReadBufOffSet += 2;
00171                 break;
00172             case CODE_UTF8:
00173                 m_nFileDataLen -= 3;
00174                 m_nReadBufOffSet += 3;
00175                 break;
00176         }
00177     }else{
00178         //  Jul. 26, 2003 ryoji BOMの有無をパラメータで返す
00179         if( pbBomExist != NULL ){
00180             *pbBomExist = FALSE;
00181         }
00182     }
00183
00184     // To Here Jun. 13, 2003 Moca BOMの除去
00185     m_eMode = FLMODE_REDY;
00186 //  m_cmemLine.AllocBuffer( 256 );
00187     return (enumCodeType)m_CharCode;
00188 }
00189
00194 void CFileLoad::FileClose( void )
00195 {
00196     ReadBufEmpty();
00197     if( NULL != m_hFile ){
00198         ::CloseHandle( m_hFile );
00199         m_hFile = NULL;
00200     }
00201     m_nFileSize     =  0;
00202     m_nFileDataLen  =  0;
00203     m_CharCode      = CODE_DEFAULT;
00204     m_bBomExist     = FALSE; // From Here Jun. 08, 2003
00205     m_nFlag         =  0;
00206     m_nReadLength   =  0;
00207     m_eMode         = FLMODE_CLOSE;
00208     m_nLineIndex    = -1;
00209 }
00210
00217 /*
00218 void CFileLoad::SeekBegin( void )
00219 {
00220     DWORD   ReadSize = 0;
00221     char    Buf[4];
00222     FilePointer( 0, FILE_BEGIN );
00223     m_nFileDataLen = m_nFileSize;
00224     switch( m_CharCode ){
00225     case CODE_UNICODE:
00226     case CODE_UNICODEBE:
00227         ReadSize = Read( &Buf, 2 );
00228         m_nFileDataLen -= 2;
00229         break;
00230     case CODE_UTF8:
00231         ReadSize = Read( &Buf, 3 );
00232         m_nFileDataLen -= 3;
00233         break;
00234 //  case CODE_SJIS:
00235 //  case CODE_EUC:
00236 //  case CODE_JIS:
00237 //  case CODE_UTF7:
00238 //  default:
00239 //      break;
00240     }
00241     // もしBOMが付いていなかったらポインタを元に戻す
00242     m_bBomExist = FALSE;
00243     if( ReadSize != 0 ){
00244         if( m_CharCode == CMemory::IsUnicodeBom( (const unsigned char*)Buf, ReadSize ) ){
00245             m_bBomExist = TRUE;
00246         }else{
00247             m_nFileDataLen = m_nFileSize;
00248             FilePointer( 0, FILE_BEGIN );
00249         }
00250     }
00251 }
00252 */
00253
00261 const wchar_t* CFileLoad::ReadLine(
00262     CNativeW*   pUnicodeBuffer,
00263     int*        pnLineLen,
00264     CEOL*       pcEol
00265 )
00266 {
00267     const char  *pLine;
00268     int         nRetVal = 1;
00269     int         nBufLineLen;
00270     int         nEolLen;
00271 #ifdef _DEBUG
00272     if( m_eMode < FLMODE_REDY ){
00273         MYTRACE_A( "CFileLoad::ReadLine(): m_eMode = %d\n", m_eMode );
00274         return NULL;
00275     }
00276 #endif
00277     //行データバッファ (文字コード変換無しの生のデータ)
00278     static CMemory cLineBuffer;
00279     cLineBuffer.SetRawData("",0);
00280
00281     // 1行取り出し ReadBuf -> m_memLine
00282     //  Oct. 19, 2002 genta while条件を整理
00283     while(1){
00284         pLine = GetNextLineCharCode(
00285             m_pReadBuf,
00286             m_nReadDataLen,    //[in] 改行を含む長さ
00287             &nBufLineLen,      //[out]改行を含まない長さ
00288             &m_nReadBufOffSet, //[i/o]オフセット
00289             pcEol,
00290             &nEolLen
00291         );
00292         if(pLine==NULL)break;
00293
00294         // ReadBufから1行を取得するとき、改行コードが欠ける可能性があるため
00295         if( m_nReadDataLen <= m_nReadBufOffSet && FLMODE_REDY == m_eMode ){// From Here Jun. 13, 2003 Moca
00296             cLineBuffer.AppendRawData( pLine, nBufLineLen );
00297             m_nReadBufOffSet -= nEolLen;
00298             // バッファロード   File -> ReadBuf
00299             Buffering();
00300         }else{
00301             cLineBuffer.AppendRawData( pLine, nBufLineLen );
00302             break;
00303         }
00304     }
00305
00306     m_nReadLength += ( nBufLineLen = cLineBuffer.GetRawLength() );
00307
00308     // 文字コード変換 cLineBuffer -> pUnicodeBuffer
00309     CIoBridge::FileToImpl(&cLineBuffer,pUnicodeBuffer,m_CharCode,m_nFlag);
00310     cLineBuffer.SetRawData("",0);
00311
00312     m_nLineIndex++;
00313     // データあり
00314     if( 0 != nBufLineLen + nEolLen ){
00315         // 改行コードを追加
00316         pUnicodeBuffer->AppendString( pcEol->GetUnicodeValue(), pcEol->GetLen() );
00317
00318         // ポインタと文字列長を得る
00319         int nDataLen;
00320         const wchar_t* pData=pUnicodeBuffer->GetStringPtr( &nDataLen );
00321
00322         // 戻り値を作る
00323         *pnLineLen=nDataLen;
00324         return pData;
00325     }
00326
00327     return NULL;
00328 }
00329
00330
00331
00336 void CFileLoad::Buffering( void )
00337 {
00338     DWORD   ReadSize;
00339
00340     // メモリー確保
00341     if( NULL == m_pReadBuf ){
00342         int nBufSize;
00343         nBufSize = ( m_nFileSize < gm_nBufSizeDef )?( m_nFileSize ):( gm_nBufSizeDef );
00344         //  Borland C++では0バイトのmallocを獲得失敗と見なすため
00345         //  最低1バイトは取得することで0バイトのファイルを開けるようにする
00346         if( 0 >= nBufSize ){
00347             nBufSize = 1; // Jun. 08, 2003  BCCのmalloc(0)がNULLを返す仕様に対処
00348         }
00349
00350         m_pReadBuf = (char *)malloc( nBufSize );
00351         if( NULL == m_pReadBuf ){
00352             throw CError_FileRead(); // メモリー確保に失敗
00353         }
00354         m_nReadDataLen = 0;
00355         m_nReadBufSize = nBufSize;
00356         m_nReadBufOffSet = 0;
00357     }
00358     // ReadBuf内にデータが残っている
00359     else if( m_nReadBufOffSet < m_nReadDataLen ){
00360         m_nReadDataLen -= m_nReadBufOffSet;
00361         memmove( m_pReadBuf, &m_pReadBuf[m_nReadBufOffSet], m_nReadDataLen );
00362         m_nReadBufOffSet = 0;
00363     }
00364     else{
00365         m_nReadBufOffSet = 0;
00366         m_nReadDataLen = 0;
00367     }
00368     // ファイルの読み込み
00369     ReadSize = Read( &m_pReadBuf[m_nReadDataLen], m_nReadBufSize - m_nReadDataLen );
00370     if( 0 == ReadSize ){
00371         m_eMode = FLMODE_READBUFEND;    // ファイルなどの終わりに達したらしい
00372     }
00373     m_nReadDataLen += ReadSize;
00374 }
00375
00379 void CFileLoad::ReadBufEmpty( void )
00380 {
00381     if ( NULL != m_pReadBuf ){
00382         free( m_pReadBuf );
00383         m_pReadBuf = NULL;
00384     }
00385     m_nReadDataLen    = 0;
00386     m_nReadBufSize    = 0;
00387     m_nReadBufOffSet  = 0;
00388 }
00389
00395 /*
00396 void CFileLoad::SetReadBufAlloc( int nNewSize ){
00397     char * pBuf;
00398
00399     // データが残っている場合は移動させる
00400     if( m_nReadBufOffSet + 1 <= m_nReadDataLen ){
00401         m_nReadDataLen -= m_nReadBufOffSet;
00402         memmove( m_pReadBuf, &m_pReadBuf[m_nReadBufOffSet], m_nReadDataLen );
00403         m_nReadBufOffSet = 0;
00404     }
00405
00406     // 現在ロードしてるデータを失わないように
00407     if( m_nReadDataLen > nNewSize ){
00408         nNewSize = m_nReadDataLen;
00409     }
00410     // wchar_t の大きさで整頓
00411     if( 0 != nNewSize % sizeof(wchar_t) ){
00412         nNewSize += sizeof(wchar_t) - ( nNewSize % sizeof(wchar_t) );
00413     }
00414     if( gm_nBufSizeMin > nNewSize ){
00415         nNewSize = gm_nBufSizeMin;
00416     }
00417
00418     // バッファサイズを変更
00419     if( m_nReadBufSize != nNewSize ){
00420         if( NULL != ( pBuf = (char *)realloc( m_pReadBuf, nNewSize ) ) ){
00421             m_pReadBuf = pBuf;
00422             m_nReadBufSize = nNewSize;
00423         }
00424         // メモリー確保に失敗したときは変更はなかったことにする
00425     }
00426 }
00427 */
00428
00429
00434 int CFileLoad::GetPercent( void ){
00435     int nRet;
00436     if( 0 == m_nFileDataLen || m_nReadLength > m_nFileDataLen ){
00437         nRet = 100;
00438     }else if(  0x10000 > m_nFileDataLen ){
00439         nRet = m_nReadLength * 100 / m_nFileDataLen ;
00440     }else{
00441         nRet = m_nReadLength / 128 * 100 / ( m_nFileDataLen / 128 );
00442     }
00443     return nRet;
00444 }
00445
00449 const char* CFileLoad::GetNextLineCharCode(
00450     const char* pData,
00451     int         nDataLen,
00452     int*        pnLineLen,
00453     int*        pnBgn,
00454     CEOL*       pcEol,
00455     int*        pnEolLen
00456 ){
00457     const char *pRetStr;
00458     switch( m_CharCode ){
00459     case CODE_UNICODE:
00460         *pnBgn /= sizeof( wchar_t );
00461         pRetStr = (const char*)GetNextLineW(
00462             (const wchar_t*)pData,
00463             nDataLen / sizeof( wchar_t ),
00464             pnLineLen,
00465             pnBgn,
00466             pcEol );
00467         *pnLineLen *= sizeof( wchar_t );
00468         *pnBgn     *= sizeof( wchar_t );
00469         *pnEolLen   = (Int)pcEol->GetLen() * sizeof( wchar_t );
00470         break;
00471
00472     case CODE_UNICODEBE:
00473         *pnBgn /= sizeof( wchar_t );
00474         pRetStr = (const char*)GetNextLineWB(
00475             (const wchar_t*)pData,
00476             nDataLen / sizeof( wchar_t ),
00477             pnLineLen,
00478             pnBgn,
00479             pcEol );
00480         *pnLineLen *= sizeof( wchar_t );
00481         *pnBgn     *= sizeof( wchar_t );
00482         *pnEolLen   = (Int)pcEol->GetLen() * sizeof( wchar_t );
00483         break;
00484
00485     default:
00486         pRetStr = GetNextLine( pData, nDataLen, pnLineLen, pnBgn, pcEol );
00487         *pnEolLen = (Int)pcEol->GetLen();
00488         break;
00489     }
00490     return pRetStr;
00491 }
00492
00493
00494 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileLoad.h

sakura_core

CFileLoad.h

メモリバッファクラスへのファイル入力クラス [詳細]

#include <windows.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 の 39 行で定義されています。

参照元 CFileLoad::FilePointer().

Sakura-Editorに対してSat Nov 17 20:25:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileLoad.h ソースファイル

sakura_core

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 "CMemory.h"
00033
00034 #ifndef _CFILELOAD_H_
00035 #define _CFILELOAD_H_
00036
00037 // VC6添付のヘッダで定義されてません
00038 #ifndef INVALID_SET_FILE_POINTER
00039  #define INVALID_SET_FILE_POINTER 0xFFFFFFFF
00040 #endif // INVALID_SET_FILE_POINTER
00041
00042
00043 // ファイルのオープンに失敗したときに送出する例外
00044 #ifndef DEF_CERROR_FILEOPEN
00045
00046 #define DEF_CERROR_FILEOPEN
00047 class CError_FileOpen
00048 {
00049 };
00050
00051 #endif // DEF_CERROR_FILEOPEN
00052
00054 class CError_FileRead
00055 {
00056 };
00057
00063 class SAKURA_CORE_API CFileLoad
00064 {
00065 public:
00066
00067     CFileLoad( void );
00068     ~CFileLoad( void );
00069
00070     //  Jul. 26, 2003 ryoji BOM引数追加
00071     ECodeType FileOpen( LPCTSTR, ECodeType, int, BOOL* pbBomExist = NULL );     // 指定文字コードでファイルをオープンする
00072     void FileClose( void );                 // 明示的にファイルをクローズする
00073
00075     const wchar_t* ReadLine(
00076         CNativeW*   pUnicodeBuffer,
00077         int*        pnLineLen,
00078         CEOL*       pcEol
00079     );
00080
00081 //  未実装関数郡
00082 //  cosnt char* ReadAtLine( int, int*, CEOL* ); // 指定行目をロードする
00083 //  cosnt wchar_t* ReadAtLineW( int, int*, CEOL* ); // 指定行目をロードする(Unicode版)
00084 //  bool ReadIgnoreLine( void ); // 1行読み飛ばす
00085
00086
00087 //  void SetReadBufAlloc( int );    // バッファサイズの変更
00088
00090     BOOL GetFileTime( FILETIME*, FILETIME*, FILETIME* ); // inline
00091
00092     //  Jun. 08, 2003 Moca
00094     BOOL IsBomExist( void ){ return m_bBomExist; }
00095
00097     int GetPercent( void );
00098
00100     inline int GetFileSize( void ){ return m_nFileSize; }
00101
00102     static const int gm_nBufSizeDef; // ロード用バッファサイズの初期値
00103 //  static const int gm_nBufSizeMin; // ロード用バッファサイズの設定可能な最低値
00104
00105 protected:
00106
00107     // コピーの禁止
00108     CFileLoad( const CFileLoad& ){}
00109     CFileLoad& operator= ( const CFileLoad& ){ return *this; }
00110
00111     // Oct. 19, 2002 genta スペルミス修正
00112 //  void SeekBegin( void );     // ファイルの先頭位置に移動する(BOMを考慮する)
00113     void Buffering( void );     // バッファにデータをロードする
00114     void ReadBufEmpty( void );  // バッファを空にする
00115
00116     // GetLextLine の 文字コード考慮版
00117     const char* GetNextLineCharCode( const char*, int, int*, int*, CEOL*, int* );
00118
00119     int Read( void*, size_t ); // inline
00120     DWORD FilePointer( DWORD, DWORD ); // inline
00121
00122     /* メンバオブジェクト */
00123
00124 //  LPTSTR  m_pszFileName;  // ファイル名
00125     HANDLE  m_hFile;        // ファイルハンドル
00126     int     m_nFileSize;    // ファイルサイズ
00127     int     m_nFileDataLen; // ファイルデータ長からBOM長を引いたバイト数
00128     int     m_nReadLength;  // 現在までにロードしたデータの合計バイト数(BOM長を含まない)
00129     int     m_nLineIndex;   // 現在ロードしている論理行(0開始)
00130     ECodeType   m_CharCode;     // 文字コード
00131     BOOL    m_bBomExist;    // ファイルのBOMが付いているか Jun. 08, 2003 Moca
00132     int     m_nFlag;        // 文字コードの変換オプション
00133     //  Jun. 13, 2003 Moca
00134     //  状態をenumとしてわかりやすく．
00135     enum enumFileLoadMode{
00136         FLMODE_CLOSE = 0,
00137         FLMODE_OPEN,
00138         FLMODE_REDY,
00139         FLMODE_READBUFEND
00140     };
00141     enumFileLoadMode    m_eMode;        // 現在の読み込み状態
00142
00143     // 読み込みバッファ系
00144     char*   m_pReadBuf;         // 読み込みバッファへのポインタ
00145     int     m_nReadBufSize;     // 読み込みバッファの実際に確保しているサイズ
00146     int     m_nReadDataLen;     // 読み込みバッファの有効データサイズ
00147     int     m_nReadBufOffSet;   // 読み込みバッファ中のオフセット(次の行頭位置)
00148 //  int     m_nReadBufSumSize;  // 今までにバッファに読み込んだデータの合計サイズ
00149
00150 }; // class CFileLoad
00151
00152 // インライン関数郡
00153
00154 // public
00155 inline BOOL CFileLoad::GetFileTime( FILETIME* pftCreate, FILETIME* pftLastAccess, FILETIME* pftLastWrite ){
00156     return ::GetFileTime( m_hFile, pftCreate, pftLastAccess, pftLastWrite );
00157 }
00158
00159 // protected
00160 inline int CFileLoad::Read( void* pBuf, size_t nSize )
00161 {
00162     DWORD ReadSize;
00163     if( FALSE == ::ReadFile( m_hFile, pBuf, nSize, &ReadSize, NULL ) )
00164         throw CError_FileRead();
00165     return (int)ReadSize;
00166 }
00167
00168 // protected
00169 inline DWORD CFileLoad::FilePointer( DWORD offset, DWORD origin )
00170 {
00171     DWORD fp;
00172     if( INVALID_SET_FILE_POINTER == ( fp = ::SetFilePointer( m_hFile, offset, NULL, FILE_BEGIN ) ) )
00173         throw CError_FileRead();
00174     return fp;
00175 }
00176
00177
00178 #endif /* _CFILELOAD_H_ */
00179
00180 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFilePath.cpp

sakura_core

CFilePath.cpp

#include "stdafx.h"
#include "CFilePath.h"
#include "CharPointer.h"

CFilePath.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFilePath.cpp ソースファイル

sakura_core

CFilePath.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CFilePath.h"
00003 #include "CharPointer.h"
00004
00005
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFilePath.h

sakura_core

CFilePath.h

#include "StaticType.h"

CFilePath.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define _FT _T

型定義

typedef StaticString< TCHAR,
_MAX_PATH > 		SFilePath

マクロ定義

#define _FT _T

CFilePath.h の 5 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify(), CControlTray::DispatchEvent(), と CEditDoc::MakeFuncList_VisualBasic().

型定義

typedef StaticString<TCHAR,_MAX_PATH> SFilePath

CFilePath.h の 10 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFilePath.h ソースファイル

sakura_core

CFilePath.h

説明を見る。
00001 #pragma once
00002
00003
00004 //共通マクロ
00005 #define _FT _T
00006
00007 #include "StaticType.h"
00008
00009 //共通型
00010 typedef StaticString<TCHAR,_MAX_PATH> SFilePath;
00011
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileWrite.cpp

sakura_core

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 Nov 17 20:25:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileWrite.cpp ソースファイル

sakura_core

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     if(m_hFile){
00056         Close();
00057     }
00058 }
00059
00060 void CFileWrite::Close()
00061 {
00062     if(m_hFile){
00063         ::fclose(m_hFile);
00064         if(m_ChangeAttribute)
00065             ::SetFileAttributes(m_pszPath,m_dwFileAttribute);
00066         ::free(m_pszPath);
00067     }
00068     else{
00069         //2度目のClose禁止
00070         assert(0);
00071     }
00072 }
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileWrite.h

sakura_core

CFileWrite.h

ファイル書き込み用クラス [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CError_FileOpen
ファイルのオープンに失敗したときに送出する例外 [詳細]
class | CError_FileWrite
ファイルの書き込みに失敗したときに送出する例外 [詳細]
class | CFileWrite
ファイル書き込みクラス（Cのライブラリ関数を使用して実装） [詳細]

説明

ファイル書き込み用クラス

作者:
Frozen
日付:
2000/05/22 新規作成

CFileWrite.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFileWrite.h ソースファイル

sakura_core

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 // 2007.08.23 kobake デストラクタと同じ処理をClose関数からも呼べるようにしました。Close後のWriteは禁止です。
00035 class CFileWrite
00036 {
00037 public:
00038     CFileWrite(const TCHAR* pszPath);
00039     ~CFileWrite();
00040     void Close();
00041     inline void Write(const void* buffer,size_t size)
00042     {
00043         assert(m_hFile);
00044         if(::fwrite(buffer,1,size,m_hFile)!=size)
00045             throw CError_FileWrite();
00046     }
00047     //※終端'\0'は出力しない
00048     inline void WriteSz(const char* szData)
00049     {
00050         Write(szData,strlen(szData));
00051     }
00052 private:
00053     FILE* m_hFile;
00054     DWORD m_dwFileAttribute;
00055     TCHAR* m_pszPath;
00056     bool m_ChangeAttribute;
00057 };
00058
00059 #endif // FILE_WRITE_H
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfo.cpp

sakura_core

CFuncInfo.cpp

アウトライン解析 データ要素 [詳細]

#include "stdafx.h"
#include "CFuncInfo.h"

CFuncInfo.cppのインクルード依存関係図

ソースコードを見る。

説明

アウトライン解析 データ要素

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfo.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfo.cpp ソースファイル

sakura_core

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     CLogicInt       nFuncLineCRLF,
00020     CLayoutInt      nFuncLineLAYOUT,
00021     const TCHAR*    pszFuncName,
00022     int             nInfo
00023 )
00024 : m_nDepth(0) // 深さ
00025 {
00026     m_nFuncLineCRLF = nFuncLineCRLF;        /* 関数のある行(CRLF単位) */
00027     m_nFuncLineLAYOUT = nFuncLineLAYOUT;    /* 関数のある行(折り返し単位) */
00028     m_cmemFuncName.SetString( pszFuncName );
00029
00030     m_nInfo = nInfo;
00031     return;
00032 }
00033
00034
00035
00036
00037 /* CFuncInfoクラス消滅 */
00038 CFuncInfo::~CFuncInfo()
00039 {
00040
00041 }
00042
00043
00044 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfo.h

sakura_core

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 Nov 17 20:25:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfo.h ソースファイル

sakura_core

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( CLogicInt, CLayoutInt, const TCHAR*, 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         CLogicInt   m_nFuncLineCRLF;
00043         CLayoutInt  m_nFuncLineLAYOUT;
00044         CNativeT    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 Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfoArr.cpp

sakura_core

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 Nov 17 20:25:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfoArr.cpp ソースファイル

sakura_core

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     CLogicInt       nFuncLineCRLF,
00089     CLayoutInt      nFuncLineLAYOUT,
00090     const TCHAR*    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 void CFuncInfoArr::AppendData(
00102     CLogicInt           nFuncLineCRLF,
00103     CLayoutInt          nFuncLineLAYOUT,
00104     const NOT_TCHAR*    pszFuncName,
00105     int                 nInfo,
00106     int                 nDepth
00107 )
00108 {
00109     AppendData(nFuncLineCRLF,nFuncLineLAYOUT,to_tchar(pszFuncName),nInfo,nDepth);
00110 }
00111
00112
00113 void CFuncInfoArr::DUMP( void )
00114 {
00115 #ifdef _DEBUG
00116     int i;
00117     MYTRACE_A( "=============================\n" );
00118     for( i = 0; i < m_nFuncInfoArrNum; i++ ){
00119         MYTRACE_A( "[%d]------------------\n", i );
00120         MYTRACE_A( "m_nFuncLineCRLF =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineCRLF );
00121         MYTRACE_A( "m_nFuncLineLAYOUT   =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineLAYOUT );
00122         MYTRACE_A( "m_cmemFuncName  =[%ls]\n", m_ppcFuncInfoArr[i]->m_cmemFuncName.GetStringPtr() );
00123         MYTRACE_A( "m_nInfo         =%d\n", m_ppcFuncInfoArr[i]->m_nInfo );
00124     }
00125     MYTRACE_A( "=============================\n" );
00126 #endif
00127 }
00128
00129
00130 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfoArr.h

sakura_core

CFuncInfoArr.h

アウトライン解析 データ配列 [詳細]

#include "CFuncInfo.h"

CFuncInfoArr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncInfoArr
アウトライン解析 データ配列 [詳細]

説明

アウトライン解析 データ配列

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfoArr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncInfoArr.h ソースファイル

sakura_core

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( CLogicInt, CLayoutInt, const TCHAR*, int, int nDepth = 0 );    /* 配列の最後にデータを追加する 2002.04.01 YAZAKI 深さ導入*/
00030     void AppendData( CLogicInt, CLayoutInt, const NOT_TCHAR*, int, int nDepth = 0 );    /* 配列の最後にデータを追加する 2002.04.01 YAZAKI 深さ導入*/
00031     int GetNum( void ){ return m_nFuncInfoArrNum; } /* 配列要素数を返す */
00032     void Empty( void );
00033     void DUMP( void );
00034
00035
00036
00037
00038 public:
00039     SFilePath   m_szFilePath;
00040 private:
00041     int         m_nFuncInfoArrNum;
00042     CFuncInfo** m_ppcFuncInfoArr;
00043 };
00044
00045
00046
00048 #endif /* _CFUNCINFOARR_H_ */
00049
00050
00051 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncKeyWnd.cpp

sakura_core

CFuncKeyWnd.cpp

ファンクションキーウィンドウ [詳細]

#include "stdafx.h"
#include "CFuncKeyWnd.h"
#include "debug.h"
#include "CEditWnd.h"
#include "global.h"
#include "KeyCode.h"
#include "util/input.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::OnTimer(), と CFuncKeyWnd::Timer_ONOFF().

Sakura-Editorに対してSat Nov 17 20:25:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncKeyWnd.cpp ソースファイル

sakura_core

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 "util/input.h"
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 : CWnd(_T("::CFuncKeyWnd"))
00055 {
00056     int     i;
00057     LOGFONT lf;
00058     m_pszClassName = _T("CFuncKeyWnd");
00059     m_pCEditDoc = NULL;
00060     /* 共有データ構造体のアドレスを返す */
00061     m_pShareData = CShareData::getInstance()->GetShareData();
00062     m_nCurrentKeyState = -1;
00063     for( i = 0; i < _countof(m_szFuncNameArr); ++i ){
00064         wcscpy( m_szFuncNameArr[i], LTEXT("") );
00065     }
00066 //  2002.11.04 Moca Open()側で設定
00067 //  m_nButtonGroupNum = 4;
00068
00069     for( i = 0; i < _countof( m_hwndButtonArr ); ++i ){
00070         m_hwndButtonArr[i] = NULL;
00071     }
00072
00073     /* 表示用フォント */
00074     /* LOGFONTの初期化 */
00075     memset_raw( &lf, 0, sizeof(lf) );
00076     lf.lfHeight         = -12;
00077     lf.lfWidth          = 0;
00078     lf.lfEscapement     = 0;
00079     lf.lfOrientation    = 0;
00080     lf.lfWeight         = 400;
00081     lf.lfItalic         = 0x0;
00082     lf.lfUnderline      = 0x0;
00083     lf.lfStrikeOut      = 0x0;
00084     lf.lfCharSet        = 0x80;
00085     lf.lfOutPrecision   = 0x3;
00086     lf.lfClipPrecision  = 0x2;
00087     lf.lfQuality        = 0x1;
00088     lf.lfPitchAndFamily = 0x31;
00089     _tcscpy( lf.lfFaceName, _T("ＭＳ Ｐゴシック") );
00090     m_hFont = ::CreateFontIndirect( &lf );
00091
00092     m_bSizeBox = FALSE;
00093     m_hwndSizeBox = NULL;
00094     m_nTimerCount = 0;
00095
00096     return;
00097 }
00098
00099
00100
00101
00102 CFuncKeyWnd::~CFuncKeyWnd()
00103 {
00104     /* 表示用フォント */
00105     ::DeleteObject( m_hFont );
00106     return;
00107 }
00108
00109
00110
00111
00112 /* ウィンドウ オープン */
00113 HWND CFuncKeyWnd::Open( HINSTANCE hInstance, HWND hwndParent, CEditDoc* pCEditDoc, BOOL bSizeBox )
00114 {
00115     m_pCEditDoc = pCEditDoc;
00116     m_bSizeBox = bSizeBox;
00117     m_hwndSizeBox = NULL;
00118     m_nCurrentKeyState = -1;
00119
00120     // 2002.11.04 Moca 変更できるように
00121     m_nButtonGroupNum = m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum;
00122     if( 1 > m_nButtonGroupNum || 12 < m_nButtonGroupNum ){
00123         m_nButtonGroupNum = 4;
00124     }
00125
00126     /* ウィンドウクラス作成 */
00127     RegisterWC(
00128         hInstance,
00129         NULL,// Handle to the class icon.
00130         NULL,   //Handle to a small icon
00131         ::LoadCursor( NULL, IDC_ARROW ),// Handle to the class cursor.
00132         (HBRUSH)(COLOR_3DFACE + 1),// Handle to the class background brush.
00133         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.
00134         m_pszClassName// Pointer to a null-terminated string or is an atom.
00135     );
00136
00137     /* 基底クラスメンバ呼び出し */
00138     CWnd::Create(
00139         hInstance,
00140         hwndParent,
00141         0, // extended window style
00142         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00143         m_pszClassName, // pointer to window name
00144         WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPCHILDREN, // window style    // 2006.06.17 ryoji WS_CLIPCHILDREN 追加  // 2007.03.08 ryoji WS_VISIBLE 除去
00145         CW_USEDEFAULT, // horizontal position of window
00146         0, // vertical position of window
00147         0, // window width  // 2007.02.05 ryoji 100->0（半端なサイズで一瞬表示されるより見えないほうがいい）
00148         ::GetSystemMetrics( SM_CYMENU ), // window height
00149         NULL // handle to menu, or child-window identifier
00150     );
00151
00152
00153     m_hwndSizeBox = NULL;
00154     if( m_bSizeBox ){
00155         m_hwndSizeBox = ::CreateWindowEx(
00156             0L,                         /* no extended styles           */
00157             _T("SCROLLBAR"),                /* scroll bar control class     */
00158             NULL,                       /* text for window title bar    */
00159             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00160             0,                          /* horizontal position          */
00161             0,                          /* vertical position            */
00162             200,                        /* width of the scroll bar      */
00163             CW_USEDEFAULT,              /* default height               */
00164             GetHwnd(),                  /* handle of main window        */
00165             (HMENU) NULL,               /* no menu for a scroll bar     */
00166             GetAppInstance(),               /* instance owning this window  */
00167             (LPVOID) NULL               /* pointer not needed           */
00168         );
00169     }
00170
00171     /* ボタンの生成 */
00172     CreateButtons();
00173
00174     Timer_ONOFF( TRUE ); // 20060126 aroka
00175     OnTimer( GetHwnd(), WM_TIMER, IDT_FUNCWND, ::GetTickCount() );  // 初回更新 // 2006.12.20 ryoji
00176
00177     return GetHwnd();
00178 }
00179
00180
00181
00182
00183 /* ウィンドウ クローズ */
00184 void CFuncKeyWnd::Close( void )
00185 {
00186     this->DestroyWindow();
00187 }
00188
00189
00190
00191
00192
00194 //void CFuncKeyWnd::OnSize(
00195 //  WPARAM  wParam, // first message parameter
00196 //  LPARAM  lParam  // second message parameter
00197
00198 // WM_SIZE処理
00199 LRESULT CFuncKeyWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00200 {
00201     int         nButtonWidth;
00202     int         nButtonHeight;
00203     int         i;
00204     int         nX;
00205 //  RECT        rc;
00206     int         nButtonNum;
00207     RECT        rcParent;
00208
00209     if( NULL == GetHwnd() ){
00210         return 0L;
00211     }
00212
00213     nButtonNum = _countof( m_hwndButtonArr );
00214
00215     /* ボタンのサイズを計算 */
00216     nButtonWidth = CalcButtonSize();
00217
00218     ::GetWindowRect( GetHwnd(), &rcParent );
00219     nButtonHeight = rcParent.bottom - rcParent.top - 2;
00220
00221     nX = 1;
00222     for( i = 0; i < nButtonNum; ++i ){
00223         if( 0 < i  && 0 == ( i % m_nButtonGroupNum ) ){
00224             nX += 12;
00225         }
00226         ::MoveWindow( m_hwndButtonArr[i], nX, 1, nButtonWidth, nButtonHeight, TRUE );
00227         nX += nButtonWidth + 1;
00228     }
00229     ::InvalidateRect( GetHwnd(), NULL, TRUE );  //再描画してね。 //@@@ 2003.06.11 MIK
00230     return 0L;
00231 }
00232
00233
00234 #if 0
00235 LRESULT CFuncKeyWnd::DispatchEvent(
00236     HWND    hwnd,   // handle of window
00237     UINT    uMsg,   // message identifier
00238     WPARAM  wParam, // first message parameter
00239     LPARAM  lParam  // second message parameter
00240 )
00241 {
00242 //  if( NULL == GetHwnd() ){
00243 //      return 0L;
00244 //  }
00245
00246     int     i;
00247     WORD    wNotifyCode;
00248     WORD    wID;
00249     HWND    hwndCtl;
00250     switch ( uMsg ){
00251
00252     case WM_TIMER:      return OnTimer( hwnd, uMsg, wParam, lParam );
00253     case WM_COMMAND:    return OnCommand( hwnd, uMsg, wParam, lParam );
00254     case WM_SIZE:       return OnSize( hwnd, uMsg, wParam, lParam );
00255     case WM_DESTROY:    return OnDestroy( hwnd, uMsg, wParam, lParam );
00256
00257     default:
00258         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00259     }
00260 }
00261 #endif
00262
00263
00264
00265 LRESULT CFuncKeyWnd::OnCommand( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
00266 {
00267     int     i;
00268     WORD    wNotifyCode;
00269     WORD    wID;
00270     HWND    hwndCtl;
00271
00272     wNotifyCode = HIWORD(wParam);   // notification code
00273     wID = LOWORD(wParam);           // item, control, or accelerator identifier
00274     hwndCtl = (HWND) lParam;        // handle of control
00275 //  switch( wNotifyCode ){
00276 //  case BN_PUSHED:
00277         for( i = 0; i < _countof( m_hwndButtonArr ); ++i ){
00278             if( hwndCtl == m_hwndButtonArr[i] ){
00279                 if( 0 != m_nFuncCodeArr[i] ){
00280 					::SendMessageCmd( GetParentHwnd(), WM_COMMAND, MAKELONG( m_nFuncCodeArr[i], 0 ),  (LPARAM)hwnd );
00281                 }
00282                 break;
00283             }
00284         }
00285         ::SetFocus( GetParentHwnd() );
00286 //      break;
00287 //  }
00288     return 0L;
00289 }
00290
00291
00292 // WM_TIMERタイマーの処理
00293 LRESULT CFuncKeyWnd::OnTimer( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00294 {
00295 //  HWND hwnd,  // handle of window for timer messages
00296 //  UINT uMsg,  // WM_TIMER message
00297 //  UINT idEvent,   // timer identifier
00298 //  DWORD dwTime    // current system time
00299
00300
00301     //  return;
00302     if( NULL == GetHwnd() ){
00303         return 0;
00304     }
00305
00306     if( ::GetActiveWindow() != GetParentHwnd() && m_nCurrentKeyState != -1 ) {  //  2002/06/02 MIK  // 2006.12.20 ryoji 初回更新は処理する
00307         return 0;
00308     }
00309
00310     int         nIdx;
00311 //  int         nFuncId;
00312     int         i;
00313     int         nFuncCode;
00314
00315 // novice 2004/10/10
00316     /* Shift,Ctrl,Altキーが押されていたか */
00317     nIdx = getCtrlKeyState();
00318     /* ALT,Shift,Ctrlキーの状態が変化したか */
00319     if( nIdx != m_nCurrentKeyState ){
00320         m_nTimerCount = TIMER_CHECKFUNCENABLE + 1;
00321
00322         /* ファンクションキーの機能名を取得 */
00323         for( i = 0; i < _countof( m_szFuncNameArr ); ++i ){
00324             // 2007.02.22 ryoji CKeyBind::GetFuncCode()を使う
00325             nFuncCode = CKeyBind::GetFuncCode(
00326                     (((VK_F1 + i) | ((WORD)((BYTE)(nIdx))) << 8)),
00327                     m_pShareData->m_nKeyNameArrNum,
00328                     m_pShareData->m_pKeyNameArr
00329             );
00330             if( nFuncCode != m_nFuncCodeArr[i] ){
00331                 m_nFuncCodeArr[i] = nFuncCode;
00332                 if( 0 == m_nFuncCodeArr[i] ){
00333                     wcscpy( m_szFuncNameArr[i], LTEXT("") );
00334                 }else{
00335                     //  Oct. 2, 2001 genta
00336                     m_pCEditDoc->m_cFuncLookup.Funccode2Name(
00337                         m_nFuncCodeArr[i],
00338                         m_szFuncNameArr[i],
00339                         _countof(m_szFuncNameArr[i]) - 1
00340                     );
00341                 }
00342                 Wnd_SetText( m_hwndButtonArr[i], m_szFuncNameArr[i] );
00343             }
00344         }
00345     }
00346     m_nTimerCount += TIMER_TIMEOUT;
00347     if( m_nTimerCount > TIMER_CHECKFUNCENABLE ||
00348         nIdx != m_nCurrentKeyState
00349     ){
00350         m_nTimerCount = 0;
00351         /* 機能が利用可能か調べる */
00352         for( i = 0; i < _countof(   m_szFuncNameArr ); ++i ){
00353             if( IsFuncEnable( (CEditDoc*)m_pCEditDoc, m_pShareData, m_nFuncCodeArr[i]  ) ){
00354                 ::EnableWindow( m_hwndButtonArr[i], TRUE );
00355             }else{
00356                 ::EnableWindow( m_hwndButtonArr[i], FALSE );
00357             }
00358         }
00359     }
00360 //  MYTRACE_A( "\n" );
00361     m_nCurrentKeyState = nIdx;
00362     return 0;
00363 }
00364
00365
00366 // WM_DESTROY処理
00367 LRESULT CFuncKeyWnd::OnDestroy( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00368 {
00369     int i;
00370
00371     /* タイマーを削除 */
00372     Timer_ONOFF( FALSE ); // 20060126 aroka
00373
00374     /* ボタンを削除 */
00375     for( i = 0; i < _countof( m_hwndButtonArr ); ++i ){
00376         if( NULL != m_hwndButtonArr[i] ){
00377 			::DestroyWindow( m_hwndButtonArr[i]  );
00378             m_hwndButtonArr[i] = NULL;
00379         }
00380     }
00381
00382     /* サイズボックスを削除 */
00383     if( NULL != m_hwndSizeBox ){
00384 		::DestroyWindow( m_hwndSizeBox );
00385         m_hwndSizeBox = NULL;
00386     }
00387
00388     _SetHwnd(NULL);
00389
00390     return 0L;
00391 }
00392
00393
00394
00396 int CFuncKeyWnd::CalcButtonSize( void )
00397 {
00398     int         nButtonNum;
00399     RECT        rc;
00400     int         nCxHScroll;
00401     int         nCyHScroll;
00402     int         nCxVScroll;
00403     int         nCyVScroll;
00404     ::GetWindowRect( GetHwnd(), &rc );
00405
00406     nButtonNum = _countof( m_hwndButtonArr );
00407
00408     if( NULL == m_hwndSizeBox ){
00409 //      return ( rc.right - rc.left - nButtonNum - ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00410         nCxVScroll = 0;
00411     }else{
00412         /* サイズボックスの位置、サイズ変更 */
00413         nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
00414         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00415         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00416         nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
00417         ::MoveWindow( m_hwndSizeBox,  rc.right - rc.left - nCxVScroll, rc.bottom - rc.top - nCyHScroll, nCxVScroll, nCyHScroll, TRUE );
00418 //      ::MoveWindow( m_hwndSizeBox,  0, 0, nCxVScroll, nCyHScroll, TRUE );
00419
00420 //      return ( rc.right - rc.left - nCxVScroll = - nButtonNum -  ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00421     }
00422     return ( rc.right - rc.left - nCxVScroll - nButtonNum -  ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00423
00424 }
00425
00426
00427
00431 void CFuncKeyWnd::CreateButtons( void )
00432 {
00433     RECT    rcParent;
00434     int     nButtonHeight;
00435     int     i;
00436
00437     ::GetWindowRect( GetHwnd(), &rcParent );
00438     nButtonHeight = nButtonHeight = rcParent.bottom - rcParent.top - 2;
00439
00440     for( i = 0; i < _countof(   m_nFuncCodeArr ); ++i ){
00441         m_nFuncCodeArr[i] = 0;
00442     }
00443
00444     for( i = 0; i < _countof( m_hwndButtonArr ); ++i ){
00445         m_hwndButtonArr[i] = ::CreateWindow(
00446             _T("BUTTON"),                       // predefined class
00447             _T(""),                             // button text
00448             WS_VISIBLE | WS_CHILD | BS_LEFT,    // styles
00449             // Size and position values are given explicitly, because
00450             // the CW_USEDEFAULT constant gives zero values for buttons.
00451             0,                  // starting x position
00452             0 + 1,              // starting y position
00453             0,                  // button width
00454             nButtonHeight,      // button height
00455             GetHwnd(),              // parent window
00456             NULL,               // No menu
00457             (HINSTANCE) GetWindowLongPtr(GetHwnd(), GWLP_HINSTANCE),    // Modified by KEITA for WIN64 2003.9.6
00458             NULL                // pointer not needed
00459         );
00460         /* フォント変更 */
00461 		::SendMessageAny( m_hwndButtonArr[i], WM_SETFONT, (WPARAM)m_hFont, MAKELPARAM(TRUE, 0) );
00462     }
00463     m_nCurrentKeyState = -1;
00464     return;
00465 }
00466
00467
00468
00469
00471 void CFuncKeyWnd::SizeBox_ONOFF( BOOL bSizeBox )
00472 {
00473
00474     RECT        rc;
00475     ::GetWindowRect( GetHwnd(), &rc );
00476     if( m_bSizeBox == bSizeBox ){
00477         return;
00478     }
00479     if( m_bSizeBox ){
00480 		::DestroyWindow( m_hwndSizeBox );
00481         m_hwndSizeBox = NULL;
00482         m_bSizeBox = FALSE;
00483         OnSize( NULL, 0, 0, 0 );
00484     }else{
00485         m_hwndSizeBox = ::CreateWindowEx(
00486             0L,                         /* no extended styles           */
00487             _T("SCROLLBAR"),                /* scroll bar control class     */
00488             NULL,                       /* text for window title bar    */
00489             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00490             0,                          /* horizontal position          */
00491             0,                          /* vertical position            */
00492             200,                        /* width of the scroll bar      */
00493             CW_USEDEFAULT,              /* default height               */
00494             GetHwnd(),              /* handle of main window        */
00495             (HMENU) NULL,               /* no menu for a scroll bar     */
00496             GetAppInstance(),               /* instance owning this window  */
00497             (LPVOID) NULL           /* pointer not needed               */
00498         );
00499         ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00500         m_bSizeBox = TRUE;
00501         OnSize( NULL, 0, 0, 0 );
00502     }
00503     return;
00504 }
00505
00506
00507
00508 // タイマーの更新を開始／停止する。 20060126 aroka
00509 // ファンクションキー表示はタイマーにより更新しているが、
00510 // アプリのフォーカスが外れたときに親ウィンドウからON/OFFを
00511 //  呼び出してもらうことにより、余計な負荷を停止したい。
00512 void CFuncKeyWnd::Timer_ONOFF( BOOL bStart )
00513 {
00514     if( NULL != GetHwnd() ){
00515         if( bStart ){
00516             /* タイマーを起動 */
00517             if( 0 == ::SetTimer( GetHwnd(), IDT_FUNCWND, TIMER_TIMEOUT, NULL ) ){
00518 				::MYMESSAGEBOX_A(   GetHwnd(),  MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
00519                     "CFuncKeyWnd::Open()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
00520                 );
00521             }
00522         } else {
00523             /* タイマーを削除 */
00524             ::KillTimer( GetHwnd(), IDT_FUNCWND );
00525             m_nCurrentKeyState = -1;
00526         }
00527     }
00528     return;
00529 }
00530
00531
00532 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncKeyWnd.h

sakura_core

CFuncKeyWnd.h

ファンクションキーウィンドウ [詳細]

#include "CWnd.h"
#include "CShareData.h"

CFuncKeyWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncKeyWnd
ファンクションキーウィンドウ [詳細]

説明

ファンクションキーウィンドウ

作者:
Norio Nakatani

CFuncKeyWnd.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncKeyWnd.h ソースファイル

sakura_core

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 TCHAR*    m_pszClassName;
00047     CEditDoc*       m_pCEditDoc;
00048     DLLSHAREDATA*   m_pShareData;
00049     int             m_nCurrentKeyState;
00050     WCHAR           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 Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncLookup.cpp

sakura_core

CFuncLookup.cpp

表示用文字列等の取得 [詳細]

#include "stdafx.h"
#include "CFuncLookup.h"
#include "CSMacroMgr.h"

CFuncLookup.cppのインクルード依存関係図

ソースコードを見る。

変数

const int | LUOFFSET_MACRO = 0
const int | LUOFFSET_CUSTMENU = 1
const TCHAR * | DynCategory []
動的に内容が変わる分類の名前

説明

表示用文字列等の取得

機能名，機能分類，機能番号などの変換．設定画面での表示用文字列を用意する．

作者:
genta
日付:
Oct. 1, 2001 マクロ

Oct. 15, 2001 カスタムメニュー

CFuncLookup.cpp で定義されています。

変数

const TCHAR* DynCategory[]

初期値:

 {
    _T("外部マクロ"),

}
動的に内容が変わる分類の名前

CFuncLookup.cpp の 43 行で定義されています。

参照元 CFuncLookup::Category2Name(), と CFuncLookup::SetCategory2Combo().

const int LUOFFSET_CUSTMENU = 1

CFuncLookup.cpp の 40 行で定義されています。

参照元 CFuncLookup::Category2Name(), CFuncLookup::GetItemCount(), CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), と CFuncLookup::SetListItem().

const int LUOFFSET_MACRO = 0

CFuncLookup.cpp の 39 行で定義されています。

参照元 CFuncLookup::Category2Name(), CFuncLookup::GetItemCount(), CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), と CFuncLookup::SetListItem().

Sakura-Editorに対してSat Nov 17 20:25:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncLookup.cpp ソースファイル

sakura_core

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 TCHAR *DynCategory[] = {
00044     _T("外部マクロ"),
00045     _T("カスタムメニュー")
00046 };
00047
00053 EFunctionCode 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 (EFunctionCode)(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 (EFunctionCode)(F_CUSTMENU_BASE + position);
00069     }
00070     return F_DEFAULT;
00071 }
00072
00078 bool CFuncLookup::Pos2FuncName(
00079     int     category,
00080     int     position,
00081     WCHAR*  ptr,
00082     int     bufsize
00083 ) const
00084 {
00085     int func;
00086     if( category < nsFuncCode::nFuncKindNum ){
00087         func = nsFuncCode::ppnFuncListArr[category][position];
00088         return ( ::LoadStringW_AnyBuild( m_hInstance, func, ptr, bufsize ) > 0 );
00089     }
00090     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO){
00091         //  キー割り当てマクロ
00092         const TCHAR *p = m_pcSMacroMgr->GetTitle( position );
00093         if( p == NULL )
00094             return false;
00095         _tcstowcs( ptr, p, bufsize - 1 );
00096         ptr[ bufsize - 1 ] = LTEXT('\0');
00097     }
00098     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU){
00099         //  キー割り当てマクロ
00100         if( 0 <= position && position < MAX_CUSTOM_MENU )
00101         {
00102             wcsncpy( ptr, m_pCommon->m_sCustomMenu.m_szCustMenuNameArr[position], bufsize );
00103             ptr[bufsize-1] = LTEXT('\0');
00104         }
00105         else
00106             return false;
00107     }
00108     return true;
00109 }
00110
00120 bool CFuncLookup::Funccode2Name( int funccode, WCHAR* 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 = LTEXT('\0');
00126             return false;
00127         }
00128
00129         const WCHAR *p = to_wchar(m_pcSMacroMgr->GetTitle( position ));
00130         if( p == NULL )
00131             return false;
00132         wcsncpy( ptr, p, bufsize - 1 );
00133         ptr[ bufsize - 1 ] = LTEXT('\0');
00134     }
00135     else if( funccode == F_MENU_RBUTTON ){
00136         wcsncpy( ptr, m_pCommon->m_sCustomMenu.m_szCustMenuNameArr[0], bufsize );
00137         ptr[bufsize-1] = LTEXT('\0');
00138     }
00139     else if( F_CUSTMENU_1 <= funccode && funccode < F_CUSTMENU_BASE + MAX_CUSTMACRO ){
00140         wcsncpy( ptr, m_pCommon->m_sCustomMenu.m_szCustMenuNameArr[ funccode - F_CUSTMENU_BASE ], bufsize );
00141         ptr[bufsize-1] = LTEXT('\0');
00142     }
00143     else {
00144         return ( ::LoadStringW_AnyBuild( m_hInstance, funccode, ptr, bufsize ) > 0 );
00145     }
00146     return true;
00147 }
00148
00155 const TCHAR* 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 	::SendMessageAny( hComboBox, CB_RESETCONTENT, 0, (LPARAM)0 );
00179
00180     //  固定機能リスト
00181     for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
00182         Combo_AddString( hComboBox, nsFuncCode::ppszFuncKind[i] );
00183     }
00184
00185     //  ユーザマクロ
00186     Combo_AddString( hComboBox, DynCategory[0] );
00187     //  カスタムメニュー
00188     Combo_AddString( hComboBox, DynCategory[1] );
00189 }
00190
00196 void CFuncLookup::SetListItem( HWND hListBox, int category ) const
00197 {
00198     int i;
00199
00200     //  リストを初期化する
00201 	::SendMessageAny( hListBox, LB_RESETCONTENT , 0, (LPARAM)0 );
00202
00203     if( category < nsFuncCode::nFuncKindNum ){
00204         TCHAR pszLabel[256];
00205         for( i = 0; i < nsFuncCode::pnFuncListNumArr[category]; ++i ){
00206             if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[category])[i], pszLabel, 255 ) ){
00207 				::List_AddString( hListBox, pszLabel );
00208             }else{
00209 				::List_AddString( hListBox, _WINT("--未定義--") );
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 				::List_AddString( hListBox, m_pcSMacroMgr->GetTitle(i));
00218             }
00219             else {
00220 				::List_AddString( hListBox, _WINT("unavailable") );
00221             }
00222         }
00223     }
00224     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU ){
00225         for( i = 0; i < MAX_CUSTOM_MENU ; ++i ){
00226 			::List_AddString( hListBox, m_pCommon->m_sCustomMenu.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 Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncLookup.h

sakura_core

CFuncLookup.h

表示用文字列等の取得 [詳細]

#include <windows.h>
#include "global.h"
#include "Funccode.h"

CFuncLookup.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncLookup
表示用文字列等の取得 [詳細]

説明

表示用文字列等の取得

機能名，機能分類，機能番号などの変換．設定画面での表示用文字列を用意する．

作者:
genta
日付:
Oct. 1, 2001

CFuncLookup.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CFuncLookup.h ソースファイル

sakura_core

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 CommonSetting;// 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, CommonSetting* 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, CommonSetting* pCom ){
00057         m_pcSMacroMgr = SMacroMgr;
00058         m_hInstance = hInst;
00059         m_pCommon = pCom;
00060     }
00061
00062     EFunctionCode Pos2FuncCode( int category, int position ) const;
00063     bool Pos2FuncName( int category, int position, WCHAR* ptr, int bufsize ) const;
00064     bool Funccode2Name( int funccode, WCHAR* ptr, int bufsize ) const ;
00065     const TCHAR* 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     CommonSetting* m_pCommon;
00082
00083 };
00084
00085 #endif
00086 /* [EOF] */
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode.cpp

sakura_core

charcode.cpp

文字コード認識ライブラリ [詳細]

#include "stdafx.h"
#include "global.h"
#include "charcode.h"

charcode.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | Charcode
namespace | WCODE

構成

class | LocalCache

関数

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)
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)
ECodeType | Charcode::DetectUnicodeBom (const char *pS, int nLen)
bool | WCODE::isHankaku (wchar_t wc)
半角文字(縦長長方形)かどうか判定
bool | WCODE::isControlCode (wchar_t wc)
制御文字であるかどうか
bool | CalcHankakuByFont (wchar_t c)

変数

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 で定義されています。

関数

bool CalcHankakuByFont ( wchar_t c )

charcode.cpp の 1303 行で定義されています。

参照先 LocalCache::ExistCache(), LocalCache::GetCache(), ApiWrap::GetTextExtentPoint32W_AnyBuild(), NULL, と LocalCache::SetCache().

参照元 WCODE::isHankaku().

Sakura-Editorに対してSat Nov 17 20:25:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode.cpp ソースファイル

sakura_core

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     int __fastcall GetJisESCSeqLen( const enumJisESCSeqType eEscType ){
00195         return TABLE_JISESCLEN[(int)eEscType];
00196     }
00197     const char* __fastcall GetJisESCSeqData( const enumJisESCSeqType eEscType ){
00198         return TABLE_JISESCDATA[(int)eEscType];
00199     }
00200
00201     /*
00202         UTF-7 のこと.
00203
00204         UTF-7 セットD：　角英数字、'(),-./:?、および、TAB SP CR LF
00205         UTF-7 セットO：　!"#$%&*;<=>@[]^_`{|}
00206         UTF-7 セットB：　パッド文字を除く BASE64 文字
00207
00208         1. セットD または セットO にあるユニコード文字は, 等価な ASCII 文字で表現される.
00209         2. セットD または セットO にないユニコード文字は, BASE64 符号化され, セットB 文字列によって表現される.
00210         3. セットB の開始は, ASCII 文字 '+' によって, セットB 文字列の終端は, セットB にない文字の出現によって認識される.
00211            セットB 文字列の終端部分には, セットB にない ASCII 文字 '-' を入れてもよいことになっていて,
00212            その終端文字は見つかり次第削除される.
00213            セットB 開始文字である ASCII 文字 '+' 自体は, "+-" という文字列で表される.
00214
00215         参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00216                   「RFC 2152」http://www.ietf.org/rfc/rfc2152.txt
00217     */
00218
00225     int CheckUtf7SetDPart( const uchar_t* pS, const int nLen, uchar_t*& ref_pNext )
00226     {
00227         uchar_t* ptr;
00228         uchar_t* base_ptr;
00229         uchar_t* end_ptr;
00230         int nlostbytes = 0;
00231
00232         base_ptr = const_cast<uchar_t*>(pS);
00233         end_ptr = base_ptr + nLen;
00234         for( ptr = base_ptr; ptr < end_ptr; ++ptr ){
00235             if( IsUtf7SetDChar( *ptr ) ){
00236                 continue;
00237             }
00238             if( *ptr == '+' ){
00239                 // UTF-7 Set B 部分の開始記号を発見.
00240                 break;
00241             }
00242             nlostbytes++;
00243         }
00244
00245         ref_pNext = ptr;
00246         return nlostbytes;
00247     }
00248
00256     int CheckUtf7SetBPart( const uchar_t* pS, const int nLen, uchar_t*& ref_pNext )
00257     {
00258         uchar_t* ptr;
00259         uchar_t* base_ptr;
00260         uchar_t* end_ptr;
00261         int nlostbytes = 0;
00262         int nrem;
00263
00264         base_ptr = const_cast<uchar_t*>(pS);
00265         end_ptr = base_ptr + nLen;
00266         for( ptr = base_ptr; ptr < end_ptr; ++ptr ){
00267             if( !IsBase64Char( *ptr ) ){
00268                 // UTF-7 Set D 部分の開始を認識.
00269                 break;
00270             }
00271         }
00272
00273         /*
00274         ◆ 検証ステップ
00275
00276         デコード後のデータ長をチェックする.
00277         調査してきたデータ長 (ptr-base_ptr) を８で割ってみる.
00278         その余りの値から考えられるビット列は…
00279
00280                      |----------------------------- Base64 表現 --------------------------------------------|
00281                      第1バイト  第2バイト  第3バイト  第4バイト  第5バイト  第6バイト  第7バイト  第8バイト
00282         残り１文字   00xx xxxx  00xx xxxx  00xx xx00     ---        ---        ---        ---        ---
00283         残り２文字   00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx 0000     ---        ---
00284         残り３文字   00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx
00285
00286         上記３通りのいづれにも当てはまらない場合は全データを落とす（不正バイトとする）.
00287         */
00288
00289         nrem = (ptr-base_ptr) % 8;
00290         switch ( nrem ){
00291         case 3:
00292             if( Base64_CharToVal( ptr[-1] ) & 0x03 ){
00293                 nlostbytes = ptr - base_ptr;
00294             }
00295             break;
00296         case 6:
00297             if( Base64_CharToVal( ptr[-1] ) & 0x0f ){
00298                 nlostbytes = ptr - base_ptr;
00299             }
00300             break;
00301         case 0:
00302             break;
00303         default:
00304             nlostbytes = ptr - base_ptr;
00305         }
00306
00307         ref_pNext = ptr;
00308         return nlostbytes;
00309     }
00310
00311
00315     void GetEncdInf_Utf7( const char* pS, const int nLen, MBCODE_INFO* pEI )
00316     {
00317         uchar_t* ptr;
00318         uchar_t* base_ptr;
00319         uchar_t* end_ptr;
00320         int nlostbytes;
00321         int num_of_base64_encoded_bytes;
00322         bool bSetBPart;
00323         int nret;
00324
00325         nlostbytes = 0;
00326         num_of_base64_encoded_bytes = 0;
00327         bSetBPart = false;
00328         base_ptr = (uchar_t *)pS;
00329         ptr = base_ptr;
00330         end_ptr = base_ptr + nLen;
00331
00332         while( 1 ){
00333             nret = CheckUtf7SetDPart( base_ptr, end_ptr-base_ptr, ptr );
00334             nlostbytes += nret;
00335
00336             ptr++;  // '+' をスキップ．
00337             base_ptr = ptr;
00338
00339             nret = CheckUtf7SetBPart( base_ptr, end_ptr-base_ptr, ptr );
00340             // ここで， [特有バイト数] := [実際に調査されたデータ長] - [不正バイト数]
00341             num_of_base64_encoded_bytes += (ptr-base_ptr) - nret;
00342
00343             // ptr == end_ptr が成り立つ場合, CheckUtf7SetBPart() 関数の特性により，
00344             // 単純に不正バイト数 := ptr-base_ptr（読み込んだバイト数）となる恐れがあるので，
00345             // 条件 ptr == end_ptr が成り立つときはループ脱出．
00346             if( end_ptr <= ptr ){
00347                 break;
00348             }
00349             nlostbytes += nret;
00350
00351             if( *ptr == '-' ){
00352                 ptr++;
00353                 if( end_ptr <= ptr ){
00354                     break;
00355                 }
00356             }
00357             base_ptr = ptr;
00358         }
00359         pEI->eCodeID = CODE_UTF7;
00360         pEI->nSpecBytes = num_of_base64_encoded_bytes;
00361         pEI->nDiff = num_of_base64_encoded_bytes - nlostbytes;
00362
00363         return;
00364     }
00365
00366
00367     /* -------------------------------------------------------------------------------------------------------------- *
00368     UTF-8のコード
00369     ビット列        内容
00370     0xxx xxxx   1バイトコードの先頭
00371     110x xxxx   2バイトコードの先頭
00372     1110 xxxx   3バイトコードの先頭
00373     1111 0xxx   4バイトコードの先頭
00374     10xx xxxx   UTF-8 バイトコードの 2 バイト目以降
00375
00376     UTF-8のエンコーディング
00377
00378     ビット列                  MSB -         UCS ビット列         - LSB     第1バイト  第2バイト  第3バイト  第4バイト
00379     \u0〜\u7F         (UCS2)  0000 0000 0000 0000  0000 0000 0aaa bbbb  -> 0aaa bbbb     ---        ---        ---
00380     \u80〜\u7FF       (UCS2)  0000 0000 0000 0000  0000 0aaa bbbb cccc  -> 110a aabb  10bb cccc     ---        ---
00381     \u800〜\uFFFF     (UCS2)  0000 0000 0000 0000  aaaa bbbb cccc dddd  -> 1110 aaaa  10bb bbcc  10cc dddd     ---
00382     \u10000〜\u1FFFFF (UCS4)  0000 0000 000a bbbb  cccc dddd eeee ffff  -> 1111 0abb  10bb cccc  10dd ddee  10ee ffff
00383
00384     参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00385     * --------------------------------------------------------------------------------------------------------------- */
00386
00394     int CheckUtf8Char( const uchar_t* pC, const int nLen )
00395     {
00396         uchar_t c0, c1, c2, c3, ctemp;
00397
00398 #if 0
00399         // rastiv  分かりやすいコード．
00400
00401         if( nLen < 1 ){
00402             return 0;
00403         }
00404
00405         c0 = *pC;
00406         if( /*nLen > 0 &&*/ (c0 & 0x80) == 0 ){
00407             return 1;
00408         }
00409         if( 1 < nLen && (c0 & 0xe0) == 0xc0 ){
00410             c1 = pC[1];
00411             if( (c1 & 0xc0) == 0x80 ){
00412                 if( (c0 & 0x1e) == 0 ){
00413                     // デコードできません.(往復変換不可)
00414                     return -2;
00415                 }
00416                 return 2;
00417             }
00418         }
00419         if( 2 < nLen && (c0 & 0xf0) == 0xe0 ){
00420             c1 = pC[1];
00421             c2 = pC[2];
00422             if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 ){
00423                 if( (c0 & 0x0f) == 0 && (c1 & 0x20) == 0 ){
00424                     // デコードできません.(往復変換不可)
00425                     return -3;
00426                 }
00427                 if( (c0 & 0x0f) == 0x0d && (c1 & 0x20) != 0 ){
00428                     // U+D800 から U+DFFF のサロゲート領域は不正です.
00429                     return -3;
00430                 }
00431                 return 3;
00432             }
00433         }
00434         if( 3 < nLen && (c0 & 0xf8) == 0xf0 ){
00435             c1 = pC[1];
00436             c2 = pC[2];
00437             c3 = pC[3];
00438             if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 && (c3 & 0xc0) == 0x80 ){
00439                 if( (c0 & 0x07) == 0 && (c1 & 0x30) == 0 ){
00440                     // デコードできません.(往復変換不可)
00441                     return -4;
00442                 }
00443                 if( (c0 & 0x04) != 0 && ((c0 & 0x03) != 0 || (c1 & 0x30) != 0) ){
00444                     // 値が大きすぎます.
00445                     return -4;
00446                 }
00447                 return 4;
00448             }
00449         }
00450         return -1;
00451 #endif
00452
00453         if( 0 < nLen ){
00454             c0 = *pC;
00455             if( (c0 & 0x80) == 0 ){
00456                 return 1;
00457             }
00458             if( 1 < nLen ){
00459                 c1 = pC[1];
00460                 if( (c0 & 0xe0) == 0xc0 ){
00461                     if( (c1 & 0xc0) == 0x80 ){
00462                         if( (c0 & 0x1e) == 0 ){
00463                             // デコードできません.(往復変換不可領域)
00464                             return -2;
00465                         }
00466                         return 2;
00467                     }
00468                 }
00469                 if( 2 < nLen ){
00470                     c2 = pC[2];
00471                     if( (c0 & 0xf0) == 0xe0 ){
00472                     //  if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 ){
00473                         if( ((c1 & 0xc0) & (c2 & 0xc0)) == 0x80 ){
00474                         //  if( (c0 & 0x0f) == 0 && (c1 & 0x20) == 0 ){
00475                             if( ((c0 & 0x0f) | (c1 & 0x20)) == 0 ){
00476                                 // デコードできません.(往復変換不可領域)
00477                                 return -3;
00478                             }
00479                         //  if( (c0 & 0x0f) == 0x0d && (c1 & 0x20) != 0 ){
00480                             if( (((c0 & 0x0f) ^ 0x0d) | (c1 & 0x20)) == 0x20 ){
00481                                 // U+D800 から U+DFFF のサロゲート領域は不正です.
00482                                 return -3;
00483                             }
00484                             return 3;
00485                         }
00486                     }
00487                     if( 3 < nLen ){
00488                         c3 = pC[3];
00489                         if( (c0 & 0xf8) == 0xf0 ){
00490                         //  if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 && (c3 & 0xc0) == 0x80 ){
00491                             if( ((c1 & 0xc0) & (c2 & 0xc0) & (c3 & 0xc0)) == 0x80 ){
00492                             //  if( (c0 & 0x07) == 0 && (c1 & 0x30) == 0 ){
00493                                 if( ((c0 & 0x07) | (c1 & 0x30)) == 0 ){
00494                                     // デコードできません.(往復変換不可領域)
00495                                     return -4;
00496                                 }
00497                             //  if( (c0 & 0x04) != 0 && ((c0 & 0x03) != 0 || (c1 & 0x30) != 0) ){
00498                                 ctemp = static_cast<uchar_t>(c0 & 0x04);
00499                                 if( (ctemp | (c0 & 0x03)) | (ctemp | (c1 & 0x30)) ){
00500                                     // 値が大きすぎます.
00501                                     return -4;
00502                                 }
00503                                 return 4;
00504                             }
00505                         }
00506                     } // 3 < nLen
00507                 } // 2 < nLen
00508             } // 1 < nLen
00509             return -1;
00510         } // 0 < nLen
00511         return 0;
00512     }
00513     int GuessCharLen_utf8(const uchar_t* pC, const int nlen )
00514     {
00515         uchar_t uc;
00516
00517         if( nlen < 1 ){
00518             return 0;
00519         }
00520         uc = *pC;
00521         if( 1 < nlen && ( uc & 0xe0 ) == 0xc0 ){
00522             return 2;
00523         }
00524         if( 2 < nlen && ( uc & 0xf0 ) == 0xe0 ){
00525             return 3;
00526         }
00527         if( 3 < nlen && ( uc & 0xf8 ) == 0xf0 ){
00528             return 4;
00529         }
00530         return 1;
00531     }
00532
00533
00537     void GetEncdInf_Utf8( const char* pS, const int nLen, MBCODE_INFO* pEI )
00538     {
00539         uchar_t* ptr;
00540         uchar_t* end_ptr;
00541         int nlostbytes;
00542         int num_of_utf8_encoded_bytes;
00543         int nret;
00544
00545         nlostbytes = 0;
00546         num_of_utf8_encoded_bytes = 0;
00547         ptr = (uchar_t *)pS;
00548         end_ptr = ptr + nLen;
00549
00550         while( 0 != (nret = CheckUtf8Char( ptr, end_ptr-ptr )) ){
00551             if( 0 < nret ){
00552                 ptr += nret;
00553                 if( 1 < nret ){
00554                     num_of_utf8_encoded_bytes += nret;
00555                 }
00556             }else{
00557                 if( end_ptr - ptr < GuessCharLen_utf8( ptr ) ){
00558                     // データが少なくなってきました．
00559                     break;
00560                 }
00561                 ptr += -nret;
00562                 nlostbytes += -nret;
00563             }
00564         }
00565         pEI->eCodeID = CODE_UTF8;
00566         pEI->nSpecBytes = num_of_utf8_encoded_bytes;
00567         pEI->nDiff = num_of_utf8_encoded_bytes - nlostbytes;
00568
00569         return;
00570     }
00571
00572
00573     /*
00574         UTF-16 サロゲート処理のこと.
00575
00576         U+10000 から U+10FFFF の文字値 a0 に対しては,
00577
00578             a0 = HHHHHHHHHHLLLLLLLLLL  U+10000 〜 U+10FFFF
00579             w1 = 110110HH HHHHHHHH     上位サロゲート：U+D800 〜 U+DBFF
00580             w2 = 110111LL LLLLLLLL     下位サロゲート：U+DC00 〜 U+DFFF
00581
00582         1. 0x10000 を引き, 20ビットの文字値 a1 (0x00000 〜 0xFFFFF) で表現した後,
00583              a1 ← a0 - 0x10000
00584         2. 上位 10ビットを w1, 下位 10ビットを w2 に分け,
00585              w1 ← (a1 & 0xFFC0) >> 6
00586              w2 ←  a1 & 0x03FF
00587         3. w1, w2 の上位 6ビット分の空き領域を, それぞれ 110110 と 110111 で埋める.
00588              w1 ← w1 | 0xD800
00589              w2 ← w2 | 0xDC00
00590
00591
00592         U+FFFE, U+FFFF は, 未定義値.
00593
00594         参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00595     */
00596
00603     int imp_CheckUtf16Char( const uchar_t* pC, const int nLen, bool bBigEndian )
00604     {
00605         const uchar16_t* pwC = reinterpret_cast<const uchar16_t*>(pC);
00606         uchar16_t wc1, wc2, tmp;
00607
00608         if( 1 < nLen ){
00609             wc1 = pwC[0];
00610             if( bBigEndian ){
00611                 tmp = static_cast<uchar16_t>(wc1 >> 8);
00612                 wc1 <<= 8;
00613                 wc1 |= tmp;
00614             }
00615             if( (wc1 & 0xfffe) == 0xfffe || IsUtf16SurrogLow(wc1) ){
00616                 /* 未定義文字，または下位サロゲート． */
00617                 // 0xffff とか 0xfffe は将来的に内部で使用するかもしれないのでカット．
00618                 return -2;
00619             }
00620             if( !IsUtf16SurrogHi(wc1) ){
00621                 return 2; // 通常の文字．
00622             }
00623             if( 3 < nLen ){
00624                 wc2 = pwC[1];
00625                 if( bBigEndian ){
00626                     tmp = static_cast<uchar16_t>(wc2 >> 8);
00627                     wc2 <<= 8;
00628                     wc2 |= tmp;
00629                 }
00630                 if( IsUtf16SurrogLow(wc2) ){
00631                     return 4;  // サロゲートペア．
00632                 }
00633             }
00634             return -2;  // サロゲート片 → 不正．
00635         }
00636         return 0;
00637     }
00638     int CheckUtf16Char( const uchar_t* pC, const int nLen ){
00639         return imp_CheckUtf16Char( pC, nLen, false );
00640     }
00641     int CheckUtf16BeChar( const uchar_t* pC, const int nLen ){
00642         return imp_CheckUtf16Char( pC, nLen, true );
00643     }
00644
00645 #if 0  // 未使用．
00646     int GuessCharLenAsUtf16_imp( const uchar_t* pC, const int nLen, bool bBigEndian )
00647     {
00648         uchar16_t wc1, wc2;
00649
00650         if( nLen < 2 ){
00651             return 0;
00652         }
00653         wc1 = *reinterpret_cast<const uchar16_t *>(pC);
00654         if( bBigEndian ){
00655             wc2 = wc1;
00656             wc2 >>= 8;
00657             wc1 <<= 8;
00658             wc1 |= wc2;
00659         }
00660         if( 3 < nLen && IsUtf16SurrogHi(wc1) ){
00661             return 4;
00662         }else{
00663             return 2;
00664         }
00665     }
00666     int GuessCharLenAsUtf16( const uchar_t* pC, const int nLen )
00667     {
00668         return GuessCharLenAsUtf16_imp( pC, nLen, false );
00669     }
00670     int GuessCharLenAsUtf16Be( const uchar_t* pC, const int nLen )
00671     {
00672         return GuessCharLenAsUtf16_imp( pC, nLen, true );
00673     }
00674 #endif
00675
00679     void GetEncdInf_Uni( const char* pS, const int nLen, UNICODE_INFO* pWEI )
00680     {
00681         uchar_t* ptr;
00682         uchar_t* end_ptr;
00683         int nlostbytes;
00684         int nCRorLF_uni;    // Unicode 版 CR, LF のバイト数
00685         int nCRorLF_ascii;  // ASCII 版 CR, LF のバイト数
00686         int nret;
00687         uchar16_t wc, wc_tmp1, wc_tmp2;
00688
00689         nlostbytes = 0;
00690         nCRorLF_ascii = 0;
00691         nCRorLF_uni = 0;
00692         ptr = (uchar_t *)pS;
00693         end_ptr = ptr + nLen;
00694
00695         while( 0 != (nret = CheckUtf16Char(ptr, end_ptr-ptr)) ){
00696             if( 0 < nret ){
00697                 if( nret == 2 ){
00698                     //
00699                     // ワイド文字(Unicode)の改行とマルチバイト文字の改行をカウント
00700                     //
00701                     wc = *reinterpret_cast<uchar16_t *>(ptr);
00702                     wc_tmp1 = static_cast<uchar16_t>(0x00ff & wc);
00703                     wc_tmp2 = static_cast<uchar16_t>(0xff00 & wc);
00704                     if( 0x000a == wc_tmp1 ){
00705                         nCRorLF_ascii++;
00706                         if( 0x0000 == wc_tmp2 ){
00707                             nCRorLF_uni++;
00708                         }else if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00709                             nCRorLF_ascii++;
00710                         }
00711                     }else if( 0x000d == wc_tmp1 ){
00712                         nCRorLF_ascii++;
00713                         if( 0x0000 == wc_tmp2 ){
00714                             nCRorLF_uni++;
00715                         }else if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00716                             nCRorLF_ascii++;
00717                         }
00718                     }else{
00719                         if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00720                             nCRorLF_ascii++;
00721                         }
00722                     }
00723                 }/*else{ // nret == 4
00724                 }*/
00725                 ptr += nret;
00726             }else if( nret == -2 ){
00727                 // サロゲートペアが片一方しかない, または値が未定義.
00728                 ptr += 2;
00729                 nlostbytes += 2;
00730             }else{
00731                 break;
00732             }
00733         }
00734         pWEI->Uni.eCodeID = CODE_UNICODE;
00735         pWEI->Uni.nCRorLF = nCRorLF_uni;
00736         pWEI->Uni.nLostBytes = nlostbytes;
00737         pWEI->nCRorLF_ascii = nCRorLF_ascii;
00738
00739         nlostbytes = 0;
00740         nCRorLF_uni = 0;
00741         ptr = (uchar_t *)pS;
00742         //end_ptr = ptr + nLen;
00743
00744         while( 0 != (nret = CheckUtf16BeChar(ptr, end_ptr-ptr)) ){
00745             if( 0 < nret ){
00746                 if( nret == 2 ){
00747                     //
00748                     // ワイド文字(Unicode BE)の改行をカウント
00749                     //
00750                     wc = *reinterpret_cast<uchar16_t *>(ptr);
00751                     if( 0x0a00 == wc || 0x0d00 == wc ){
00752                         nCRorLF_uni++;
00753                     }
00754                 }/*else{ // nret == 4
00755                 }*/
00756                 ptr += nret;
00757             }else if( nret == -2 ){
00758                 // サロゲートペアが片一方しかない, または値が未定義.
00759                 ptr += 2;
00760                 nlostbytes += 2;
00761             }else{
00762                 break;
00763             }
00764         }
00765         pWEI->UniBe.eCodeID = CODE_UNICODEBE;
00766         pWEI->UniBe.nCRorLF = nCRorLF_uni;
00767         pWEI->UniBe.nLostBytes = nlostbytes;
00768
00769         return;
00770     }
00771
00772
00773     /*
00774         SJIS のこと.
00775
00776         第１バイト |  1000 0001(0x81)         |   1110 0000(0xE0)         |   1010 0001(0xA1)
00777                    | 〜 1001 1111(0x9F)       |  〜 1110 1111(0xEF)       |  〜 1101 1111(0xDF)
00778                    | → SJIS 全角漢字かなカナ |  → SJIS 全角漢字カナかな |  → 半角カナ
00779         -----------+--------------------------+---------------------------+-------------------------
00780         第２バイト |        0100 0000(0x40)  〜  1111 1100(0xFC)          |      ----
00781                    |         ただし 0111 1111(0x7F) は除く.               |
00782
00783         参考：「■G-PROJECT■ -日本語文字コードの判別」http://www.gprj.net/dev/tips/other/kanji.shtml
00784               「ミケネコの文字コードの部屋」http://mikeneko.creator.club.ne.jp/~lab/kcode/index.html
00785     */
00786
00790     int CheckSJisChar( const uchar_t* pS, const int nLen )
00791     {
00792         uchar_t uc;
00793
00794         if( 0 < nLen ){
00795             uc = *pS;
00796             if( (uc & 0x80) == 0 || IsSJisHanKata( uc ) ){
00797                 // ASCII またはローマ字(JIS X 0201 Roman)
00798                 // 半角カナ(JIS X 0201 Kana)
00799                 return 1;
00800             }
00801             if( 1 < nLen && IsSJisKan(pS) ){
00802                 // SJIS 漢字・全角カナかな  (JIS X 0208)
00803                 return 2;
00804             }
00805             return -1;
00806         }
00807         return 0;
00808     }
00809     int CheckSJisCharR( const uchar_t* pS, const int nLen )
00810     {
00811         uchar_t uc;
00812
00813         if( 0 < nLen ){
00814             uc = pS[-1];
00815             if( uc < 0x40 || 0x7f == uc ){
00816                 // ASCII またはローマ字(JIS X 0201 Roman.)
00817                 return 1;
00818             }
00819             if( 1 < nLen && IsSJisKan1(pS[-2]) ){
00820                 // SJIS 漢字・全角カナかな  (JIS X 0208)
00821                 return 2;
00822             }
00823             if( IsSJisHanKata(uc) ){
00824                 // 半角カナ(JIS X 0201 Kana)
00825                 return 1;
00826             }
00827             return -1;
00828         }
00829         return 0;
00830     }
00831     int GuessCharLen_sjis( const uchar_t* pC, const int nLen )
00832     {
00833         if( nLen < 1 ){
00834             return 0;
00835         }
00836         if( 1 < nLen && IsSJisKan1(*pC) ){
00837             return 2;
00838         }
00839         return 1;
00840     }
00841
00845     void GetEncdInf_SJis( const char* pS, const int nLen, MBCODE_INFO* pEI )
00846     {
00847         uchar_t* ptr;
00848         uchar_t* end_ptr;
00849         int nlostbytes;
00850         int num_of_sjis_encoded_bytes;
00851         int nret;
00852
00853         nlostbytes = 0;
00854         num_of_sjis_encoded_bytes = 0;
00855         ptr = (uchar_t *)pS;
00856         end_ptr = ptr + nLen;
00857
00858         while( 0 != (nret = CheckSJisChar( ptr, end_ptr-ptr )) ){
00859             if( 0 < nret ){
00860                 ptr += nret;
00861                 if( 1 < nret ){
00862                     num_of_sjis_encoded_bytes += nret;
00863                 }
00864             }else /* ret < 0 */{
00865                 if( end_ptr-ptr < GuessCharLen_sjis( ptr ) ){
00866                     // データが残り少なくなりました.
00867                     break;
00868                 }
00869                 ptr++;
00870                 nlostbytes++;
00871             }
00872         }
00873         pEI->eCodeID = CODE_SJIS;
00874         pEI->nSpecBytes = num_of_sjis_encoded_bytes;
00875         pEI->nDiff = num_of_sjis_encoded_bytes - nlostbytes;
00876
00877         return;
00878     }
00879
00880
00881
00882     /*
00883         EUC-JP のこと.
00884
00885         第1バイト |   1000 1110(0x8E)   |  1000 1111(0x8F)    |  1010 0001(0xA1) 〜 1111 1110(0xFE)
00886                   |   → 半角カナ       |  → 補助漢字        |  → 漢字かなカナ
00887         ----------+---------------------+---------------------+-------------------------------------
00888         第2バイト |  1010 0001(0xA1)    |   1010 0001(0xA1)   |      1010 0001(0xA1)
00889                   | 〜 1101 1111(0xDF)  |  〜 1111 1110(0xFE) |     〜 1111 1110(0xFE)
00890         ----------+---------------------+---------------------+-------------------------------------
00891         第3バイト |        ----         |   1010 0001(0xA1)   |        ----
00892                   |                     |  〜 1111 1110(0xFE) |
00893
00894         参考：「■G-PROJECT■ -日本語文字コードの判別」http://www.gprj.net/dev/tips/other/kanji.shtml
00895               「ミケネコの文字コードの部屋」http://mikeneko.creator.club.ne.jp/~lab/kcode/index.html
00896     */
00897
00903     int CheckEucJpChar( const uchar_t* pS, const int nLen )
00904     {
00905         uchar_t uc;
00906
00907         if( 0 < nLen ){
00908             uc = *pS;
00909             if( (uc & 0x80) == 0 ){
00910                 // ASCII またはローマ字です.  (JIS X 0201 Roman.)
00911                 return 1;
00912             }
00913             if( 1 < nLen ){
00914                 if( IsEucKan( pS ) ){
00915                     // EUC-JP 漢字・かなカナ です.  (JIS X 0208.)
00916                     return 2;
00917                 }
00918             //- if( uc == 0x8e && IsEucKan( pS ) ){
00919             //-     // 半角カナです.  (JIS X 0201 Kana.)
00920             //-     return 2;
00921             //- }
00922                 if( uc == 0x8e && IsEucHanKana2( pS[1] ) ){
00923                     // 半角カナです.  (JIS X 0201 Kana.)
00924                     return 2;
00925                 }
00926                 if( 2 < nLen ){
00927                     if( uc == 0x8f && IsEucKan( pS+1 ) ){
00928                         // EUC-JP 補助漢字です.  (JIS X 0212.)
00929                         return 3;
00930                     }
00931                 }
00932             }
00933             return -1;
00934         }
00935         return 0;
00936     }
00937     int GuessCharLen_eucjp( const uchar_t*pC, const int nlen )
00938     {
00939         uchar_t uc;
00940
00941         if( nlen < 1 ){
00942             return 0;
00943         }
00944         uc = *pC;
00945         if( 2 < nlen && uc == 0x8f ){
00946             return 3;
00947         }
00948         if( 1 < nlen && (uc == 0x8e || IsEucKan1(uc)) ){
00949             return 2;
00950         }
00951         return 1;
00952     }
00953
00954
00958     void GetEncdInf_EucJp( const char* pS, const int nLen, MBCODE_INFO* pEI )
00959     {
00960         uchar_t* ptr;
00961         uchar_t* end_ptr;
00962         int nlostbytes;
00963         int num_of_eucjp_encoded_bytes;
00964         int nret;
00965
00966         nlostbytes = 0;
00967         num_of_eucjp_encoded_bytes = 0;
00968         ptr = (uchar_t *)pS;
00969         end_ptr = ptr + nLen;
00970         while( 0 != (nret = CheckEucJpChar( ptr, end_ptr-ptr )) ){
00971             if( 0 < nret ){
00972                 ptr += nret;
00973                 if( 1 < nret ){
00974                     num_of_eucjp_encoded_bytes += nret;
00975                 }
00976             }else /* ret < 0 */{
00977                 if( end_ptr-ptr < GuessCharLen_eucjp( ptr ) ){
00978                     // 残りデータが少なくなりました...
00979                     break;
00980                 }
00981                 ptr++;
00982                 nlostbytes++;
00983             }
00984         }
00985         pEI->eCodeID = CODE_EUC;
00986         pEI->nSpecBytes = num_of_eucjp_encoded_bytes;
00987         pEI->nDiff = num_of_eucjp_encoded_bytes - nlostbytes;
00988
00989         return;
00990     }
00991
00992
00993
00994
01005     int GetCharLen_sjis( const uchar_t* pC, const int nLen ){
01006         int nret = CheckSJisChar( pC, nLen );
01007         return 0 <= nret ? nret : -nret;
01008     }
01009     int GetCharLenR_sjis( const uchar_t* pC, const int nLen ){
01010         int nret = CheckSJisCharR( pC, nLen );
01011         return 0 <= nret ? nret : -nret;
01012     }
01013     int GetCharLen_eucjp( const uchar_t* pC, const int nLen ){
01014         int nret = CheckEucJpChar( pC, nLen );
01015         return 0 <= nret ? nret : -nret;
01016     }
01017     int GetCharLen_utf8( const uchar_t* pC, const int nLen ){
01018         int nret = CheckUtf8Char( pC, nLen );
01019         return 0 <= nret ? nret : -nret;
01020     }
01021
01022
01061     int DetectJisESCSeq( const uchar_t* pS, const int nLen, int* pnEscType )
01062     {
01063         const uchar_t* end_ptr = pS + nLen;
01064         uchar_t* p;
01065         int expected_esc_len;
01066         int nEscType;
01067
01068         if( nLen < 1 ){
01069             return 0;
01070         }
01071
01072         nEscType = JISESC_UNKNOWN;
01073         expected_esc_len = 0;
01074
01075         if( *pS == ACODE::ESC ){
01076             expected_esc_len++;
01077             p = const_cast<uchar_t *>(pS)+1;
01078             if( p+2 <= end_ptr ){
01079                 expected_esc_len += 2;
01080                 if( *p == '(' ){
01081                     if( p[1] == 'B' ){
01082                         nEscType = JISESC_ASCII;            // ESC ( B  -  ASCII
01083                     }else if( p[1] == 'J'){
01084                         nEscType = JISESC_JISX0201Latin;    // ESC ( J  -  JIS X 0201 ラテン
01085                     }else if( p[1] == 'H'){
01086                         nEscType = JISESC_JISX0201Latin_OLD;// ESC ( H  -  JIS X 0201 ラテン
01087                     }else if( p[1] == 'I' ){
01088                         nEscType = JISESC_JISX0201Katakana; // ESC ( I  -  JIS X 0201 片仮名
01089                     }
01090                 }else if( *p == '$' ){
01091                     if( p[1] == 'B' ){
01092                         nEscType = JISESC_JISX0208_1983;    // ESC $ B  -  JIS X 0208-1983
01093                     }else if( p[1] == '@' ){
01094                         nEscType = JISESC_JISX0208_1978;    // ESC $ @  -  JIS X 0208-1978  (旧JIS)
01095                     }
01096                 }
01097             }else if( p+5 <= end_ptr ){
01098                 expected_esc_len += 5;
01099                 if( 0 == memcmp( p, &JISESCDATA_JISX0208_1990[1], 5 ) ){
01100                     nEscType = JISESC_JISX0208_1990;        // ESC & @ ESC $ B  -  JIS X 0208-1990
01101                 }
01102             }
01103         }
01104
01105         if( 0 < expected_esc_len ){
01106             if( pnEscType ){
01107                 *pnEscType = nEscType;
01108             }
01109             if( JISESC_UNKNOWN != nEscType ){
01110                 return expected_esc_len;
01111             }else{
01112                 return 1;
01113             }
01114         }else{
01115             return -1;
01116         }
01117     }
01118
01119 #if 0
01120     int CheckJisChar_JISX0208( const uchar_t* pS, const int nLen )
01121     {
01122         uchar_t uc0, uc1;
01123
01124         if( nLen < 1 ){
01125             return 0;
01126         }
01127         if( 1 < nLen ){
01128             uc0 = *(pS  );
01129             uc1 = *(pS+1);
01130             if( (0x20 < uc0 && uc0 < 0x80)
01131              && (0x20 < uc1 && uc1 < 0x80)
01132             ){
01133                 return 2;
01134             }
01135         }
01136         return -1;
01137     }
01138 #endif
01139
01143     void GetEncdInf_Jis( const char* pS, const int nLen, MBCODE_INFO* pEI )
01144     {
01145         uchar_t* ptr;
01146         uchar_t* end_ptr;
01147         int nescbytes;
01148         int nlostbytes;
01149         int nret;
01150         int nEscType;
01151
01152         nescbytes = 0;
01153         nlostbytes = 0;
01154         nEscType = JISESC_ASCII;
01155         ptr = (uchar_t *)pS;
01156         end_ptr = ptr + nLen;
01157
01158         for( ; 0 != (nret = DetectJisESCSeq(ptr, end_ptr - ptr, &nEscType)); ptr += nret ){
01159             if( nret < 0 ){
01160                 nret = 1;
01161             }else{
01162                 nescbytes += nret;
01163             }
01164             if( *ptr & 0x80 ){
01165                 nlostbytes++;
01166             }
01167         }
01168         pEI->eCodeID = CODE_JIS;
01169         pEI->nSpecBytes = nescbytes;
01170         pEI->nDiff = nescbytes - nlostbytes;
01171
01172         return;
01173     }
01174
01175
01186     ECodeType DetectUnicodeBom( const char* pS, int nLen )
01187     {
01188         const uchar_t* pBuf = reinterpret_cast<const uchar_t *>(pS);
01189
01190         if( NULL == pS ){
01191             return CODE_NONE;
01192         }
01193         if( 2 <= nLen ){
01194             if( pBuf[0] == 0xff && pBuf[1] == 0xfe ){
01195                 return CODE_UNICODE;
01196             }
01197             if( pBuf[0] == 0xfe && pBuf[1] == 0xff ){
01198                 return CODE_UNICODEBE;
01199             }
01200             if( 3 <= nLen ){
01201                 if( pBuf[0] == 0xef && pBuf[1] == 0xbb && pBuf[2] == 0xbf ){
01202                     return CODE_UTF8;
01203                 }
01204             }
01205         }
01206         return CODE_NONE;
01207     }
01208
01209
01210
01211
01212
01213
01214
01215 } // ends namespace Charcode.
01216
01217
01218
01219 namespace WCODE
01220 {
01221     //2007.08.30 kobake 追加
01222     bool isHankaku(wchar_t wc)
01223     {
01224         //※ほぼ未検証。ロジックが確定したらインライン化すると良い。
01225
01226         //参考：http://www.swanq.co.jp/blog/archives/000783.html
01227         if(
01228                wc<=0x007E //ACODEとか
01229             || wc==0x00A5 //バックスラッシュ
01230             || wc==0x203E //にょろ
01231             || (wc>=0xFF61 && wc<=0xFF9f)
01232         )return true;
01233
01234         //0x7F 〜 0xA0 も半角とみなす
01235         //http://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF を見て、なんとなく
01236         if(wc>=0x007F && wc<=0x00A0)return true;
01237
01238         //$$ 仮。もう動的に計算しちゃえ。(初回のみ)
01239         bool CalcHankakuByFont(wchar_t);
01240         return CalcHankakuByFont(wc);
01241
01242
01243         return false;
01244     }
01245
01247     bool isControlCode(wchar_t wc)
01248     {
01249         //改行は制御文字とみなさない
01250         if(isLineDelimiter(wc))return false;
01251
01252         //タブは制御文字とみなさない
01253         if(wc==TAB)return false;
01254
01255         return iswcntrl(wc)!=0;
01256     }
01257
01258 }
01259
01260
01261
01270 class LocalCache{
01271 public:
01272     LocalCache()
01273     {
01274         memset(cache,0,sizeof(cache));
01275         test=0x12345678;
01276     }
01277     void SetCache(wchar_t c, bool cache_value)
01278     {
01279         int v=cache_value?0x1:0x2;
01280         cache[c/4] &= ~( 0x3<< ((c%4)*2) ); //該当箇所クリア
01281         cache[c/4] |=  ( v  << ((c%4)*2) ); //該当箇所セット
01282     }
01283     bool GetCache(wchar_t c) const
01284     {
01285         return _GetRaw(c)==0x1?true:false;
01286     }
01287     bool ExistCache(wchar_t c) const
01288     {
01289         assert(test==0x12345678);
01290         return _GetRaw(c)!=0x0;
01291     }
01292 protected:
01293     int _GetRaw(wchar_t c) const
01294     {
01295         return (cache[c/4]>>((c%4)*2))&0x3;
01296     }
01297 private:
01298     BYTE cache[0x10000/4]; //16KB
01299     int test; //cache溢れ検出
01300 };
01301
01302 //文字幅の動的計算。半角ならtrue。
01303 bool CalcHankakuByFont(wchar_t c)
01304 {
01305     // -- -- キャッシュが存在すれば、それをそのまま返す -- -- //
01306     static LocalCache cache; //$$ これはShare領域に入れておいたほうが、もっと良い
01307     if(cache.ExistCache(c))return cache.GetCache(c);
01308
01309     // -- -- 作業用HDC -- -- //
01310     HDC hdc=GetDC(NULL);
01311     HFONT hFont = CreateFontW(
01312         0,
01313         0,
01314         0,
01315         0,
01316         0,
01317         0,
01318         0,
01319         0,
01320         DEFAULT_CHARSET,
01321         OUT_CHARACTER_PRECIS,
01322         CLIP_CHARACTER_PRECIS,
01323         DEFAULT_QUALITY,
01324         FIXED_PITCH,
01325         L"ＭＳ ゴシック"
01326     );
01327     HFONT hfntOld = (HFONT)SelectObject(hdc,hFont);
01328
01329     // -- -- 半角基準 -- -- //
01330     SIZE han_size;
01331     GetTextExtentPoint32W_AnyBuild(hdc,L"x",1,&han_size);
01332
01333     // -- -- 周辺256文字を一気に判定 -- -- //
01334     int begin=c/256*256;
01335     int end=begin+256;
01336     for(int i=begin;i<end;i++){
01337         // -- -- 相対比較 -- -- //
01338         SIZE size={han_size.cx*2,0}; //関数が失敗したときのことを考え、全角幅で初期化しておく
01339         wchar_t tmp = (wchar_t)i;
01340         GetTextExtentPoint32W_AnyBuild(hdc,&tmp,1,&size);
01341         int char_width;
01342         if(size.cx>han_size.cx){
01343             char_width=2;
01344         }
01345         else{
01346             char_width=1;
01347         }
01348
01349         // -- -- キャッシュ更新 -- -- //
01350         cache.SetCache(i,char_width==1);
01351     }
01352
01353     // -- -- 後始末 -- -- //
01354     SelectObject(hdc,hfntOld);
01355     ReleaseDC(NULL,hdc);
01356
01357     return cache.GetCache(c);
01358 }
01359
01360
01361
01362
01363
01364
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode.h

sakura_core

charcode.h

文字コード認識ライブラリ [詳細]

#include "charcode2.h"

charcode.hのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | Charcode

構成

struct | EncodingInfo_t
struct | WC_EncodingInfo_t
struct | UnicodeInfo_t

型定義

typedef enumCodeType | ECodeType
typedef struct EncodingInfo_t | MBCODE_INFO
typedef struct WC_EncodingInfo_t | WCCODE_INFO
typedef struct 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)
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)
ECodeType | 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)

説明

文字コード認識ライブラリ

作者:
Sakura-Editor collaborators
日付:
1998/03/06 新規作成 by 原作者 Norio Nakatani (C) 1998-2001

2006/03/06 名称・ライセンス改訂 [文字コード定数の定義] → [文字コード認識ライブラリ]

charcode.h で定義されています。

型定義

typedef enumCodeType ECodeType

charcode.h の 38 行で定義されています。

typedef struct EncodingInfo_t MBCODE_INFO

typedef struct UnicodeInfo_t UNICODE_INFO

typedef struct WC_EncodingInfo_t WCCODE_INFO

列挙型

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 の 96 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode.h ソースファイル

sakura_core

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
00038 enum enumCodeType;
00039 typedef enumCodeType ECodeType;
00040 #if 0
00041
00042 enum enumCodeType {
00043     CODE_SJIS,              // MS-CP932(Windows-31J), シフトJIS(Shift_JIS)
00044     CODE_JIS,               // MS-CP5022x(ISO-2022-JP-MS)
00045     CODE_EUC,               // MS-CP51932, eucJP-ms(eucJP-open)
00046     CODE_UNICODE,           // UTF-16 LittleEndian(UCS-2)
00047     CODE_UTF8,              // UTF-8(UCS-2)
00048     CODE_UTF7,              // UTF-7(UCS-2)
00049     CODE_UNICODEBE,         // UTF-16 BigEndian(UCS-2)
00050     // ...
00051     CODE_CODEMAX,
00052     CODE_AUTODETECT = 99    /* 文字コード自動判別 */
00053
00054     /*
00055         - MS-CP50220
00056             Unicode から cp50220 への変換時に、
00057             JIS X 0201 片仮名は JIS X 0208 の片仮名に置換される
00058         - MS-CP50221
00059             Unicode から cp50221 への変換時に、
00060             JIS X 0201 片仮名は、G0 集合への指示のエスケープシーケンス ESC ( I を用いてエンコードされる
00061         - MS-CP50222
00062             Unicode から cp50222 への変換時に、
00063             JIS X 0201 片仮名は、SO/SI を用いてエンコードされる
00064
00065         参考
00066         http://legacy-encoding.sourceforge.jp/wiki/
00067     */
00068 };
00069 #endif
00070
00072 /*
00073     符号化文字集合       16進表現            文字列表現[*1]
00074     ------------------------------------------------------------
00075     JIS C 6226-1978      1b 24 40            ESC $ @
00076     JIS X 0208-1983      1b 24 42            ESC $ B
00077     JIS X 0208-1990      1b 26 40 1b 24 42   ESC & @ ESC $ B
00078     JIS X 0212-1990      1b 24 28 44         ESC $ ( D
00079     JIS X 0213:2000 1面  1b 24 28 4f         ESC $ ( O
00080     JIS X 0213:2004 1面  1b 24 28 51         ESC $ ( Q
00081     JIS X 0213:2000 2面  1b 24 28 50         ESC $ ( P
00082     JIS X 0201 ラテン    1b 28 4a            ESC ( J
00083     JIS X 0201 ラテン    1b 28 48            ESC ( H         (歴史的[*2])
00084     JIS X 0201 片仮名    1b 28 49            ESC ( I
00085     ISO/IEC 646 IRV      1b 28 42            ESC ( B
00086
00087
00088       [*1] 各バイトを便宜的にISO/IEC 646 IRVの文字で表したもの。
00089            ただしESCはバイト値1bを表す。
00090
00091       [*2] JIS X 0201の指示としては使用すべきでないが、古いデータでは
00092            使われている可能性がある。
00093
00094     出展：http://www.asahi-net.or.jp/~wq6k-yn/code/
00095     参考：http://homepage2.nifty.com/zaco/code/
00096 */
00097 enum enumJisESCSeqType {
00098     JISESC_UNKNOWN,
00099     JISESC_ASCII,
00100     JISESC_JISX0201Latin,
00101     JISESC_JISX0201Latin_OLD,
00102     JISESC_JISX0201Katakana,
00103     JISESC_JISX0208_1978,
00104     JISESC_JISX0208_1983,
00105     JISESC_JISX0208_1990,
00106 };
00107
00108 /*
00109     文字コード判定情報 構造体群
00110 */
00111 typedef struct EncodingInfo_t {
00112     ECodeType eCodeID;      // 文字コード識別番号
00113     int nSpecBytes;         // 特有バイト数
00114     int nDiff;              // ポイント数 := 特有バイト数 − 不正バイト数
00115 } MBCODE_INFO;
00116 typedef struct WC_EncodingInfo_t {
00117     enumCodeType eCodeID;   // 文字コード識別番号
00118     int nCRorLF;            // ワイド文字の改行の個数
00119     int nLostBytes;         // 不正バイト数
00120 } WCCODE_INFO;
00121 typedef struct UnicodeInfo_t {
00122     WCCODE_INFO Uni;        // 文字コード判定情報 for UNICODE
00123     WCCODE_INFO UniBe;      // 文字コード判定情報 for UNICODE BE
00124     int nCRorLF_ascii;      // マルチバイト文字の改行の個数
00125 } UNICODE_INFO;
00126
00127 /*
00128     関数のエミュレーション
00129 */
00130
00131
00132
00133
00134 namespace Charcode
00135 {
00136     // BASE64エンコード後に使用する文字
00137     extern const uchar_t BASE64CHAR[];
00138     // BASE64デコードする際に使うバイナリ値
00139     extern const uchar_t BASE64VAL[];
00140     // UTF7SetD を処理する際に使うブール値
00141     extern const bool UTF7SetD[];
00142     // JIS コードのエスケープシーケンス文字列データ
00143     extern const char JISESCDATA_ASCII[];
00144     extern const char JISESCDATA_JISX0201Latin[];
00145     extern const char JISESCDATA_JISX0201Latin_OLD[];
00146     extern const char JISESCDATA_JISX0201Katakana[];
00147     extern const char JISESCDATA_JISX0208_1978[];
00148     extern const char JISESCDATA_JISX0208_1983[];
00149     extern const char JISESCDATA_JISX0208_1990[];
00150     extern const int TABLE_JISESCLEN[];
00151     extern const char* TABLE_JISESCDATA[];
00152
00153     uchar_t __fastcall Base64_CharToVal( const uchar_t );
00154     uchar_t __fastcall Base64_ValToChar( const uchar_t );
00155     int __fastcall GetJisESCSeqLen( const enumJisESCSeqType );
00156     const char* __fastcall GetJisESCSeqData( const enumJisESCSeqType );
00157
00158     /*
00159     || 共有実装ヘルパ関数
00160     */
00161
00162     // --- 文字コード判別支援
00163     bool __fastcall IsSJisKan1( const uchar_t );  // SJIS 文字長2 の場合の 0バイト目チェック
00164     bool __fastcall IsSJisKan2( const uchar_t );  // SJIS 文字長2 の場合の 1バイト目チェック
00165     bool __fastcall IsSJisKan( const uchar_t* ); // IsSJisKan1 + IsSJisKan2
00166     bool __fastcall IsSJisHanKata( const uchar_t );  // SJIS 半角カタカナ判別
00167     bool __fastcall IsEucKan1( const uchar_t );  // EUCJP 文字長2 の場合の 0バイト目チェック
00168     bool __fastcall IsEucKan2( const uchar_t );  // EUCJP 文字長2 の場合の 1バイト目チェック
00169     bool __fastcall IsEucKan( const uchar_t* );  // IsEucKan1  + IsEucKan2
00170     bool __fastcall IsEucHanKata2( const uchar_t );  // EUCJP 半角カタカナ 2バイト目判別  add by genta
00171     bool __fastcall IsUtf16SurrogHi( const uchar16_t );  // UTF16 文字長4 の場合の 0-1バイト目チェック
00172     bool __fastcall IsUtf16SurrogLow( const uchar16_t ); // UTF16 文字長4 の場合の 2-3バイト目チェック
00173 #if 0
00174     bool __fastcall IsUtf16Surrogates( const uchar16_t* ); // UTF16 のサロゲートペア判別
00175     bool __fastcall IsUtf16SurrogHiOrLow( const uchar16_t );  // UTF16 のサロゲート片判別
00176 #endif
00177     bool __fastcall IsBase64Char( const uchar_t );  // UTF-7 で使われる Modified BASE64 を判別
00178     bool __fastcall IsUtf7SetDChar( const uchar_t ); // UTF-7 Set D の文字を判別
00179     // --- 文字長予測．
00180     int GuessCharLen_utf8( const uchar_t*, const int nStrLen = 4 );
00181     int GuessCharLen_sjis( const uchar_t*, const int nStrLen = 2 );
00182     int GuessCharLen_eucjp( const uchar_t*, const int nStrLen = 3 );
00183 #if 0
00184     int GuessCharLenAsUtf16_imp( const uchar_t*, const int, bool bBigEndian );
00185     int GuessCharLenAsUtf16( const uchar_t*, const int nStrLen = 4 );
00186     int GuessCharLenAsUtf16Be( const uchar_t*, const int nStrLen = 4 );
00187 #endif
00188     // --- 一文字チェック
00189     int CheckSJisChar( const uchar_t*, const int );
00190     int CheckSJisCharR( const uchar_t*, const int );  // CheckCharLenAsSJis の逆方向モード
00191     int CheckEucJpChar( const uchar_t*, const int );
00192     int CheckUtf8Char( const uchar_t*, const int );
00193     int imp_CheckUtf16Char( const uchar_t*, const int, bool );
00194     int CheckUtf16Char( const uchar_t*, const int );
00195     int CheckUtf16BeChar( const uchar_t*, const int );
00196 #if 0
00197     int CheckJisChar_JISX0208( const uchar_t*, const int );
00198 #endif
00199     // --- 文字長チェック
00200     int GetCharLen_sjis( const uchar_t*, const int );
00201     int GetCharLenR_sjis( const uchar_t*, const int );  // GetCharLenAsSJis の逆方向モード
00202     int GetCharLen_eucjp( const uchar_t*, const int );
00203     int GetCharLen_utf8( const uchar_t*, const int );
00204     // --- UTF-7 正当性チェック
00205     int CheckUtf7SetDPart( const uchar_t*, const int, uchar_t*& ref_pNextC );
00206     int CheckUtf7SetBPart( const uchar_t*, const int, uchar_t*& ref_pNextC );
00207     // --- JIS エスケープシーケンス検出
00208     int DetectJisESCSeq( const uchar_t* pS, const int nLen, int* pnEscType );
00209     // --- ユニコード BOM 検出器
00210     ECodeType DetectUnicodeBom( const char*, int );
00211
00212     /*
00213     || 文字列の文字コード情報を得る．
00214     */
00215
00216     // --- 文字列チェック
00217     void GetEncdInf_SJis( const char*, const int, MBCODE_INFO* );
00218     void GetEncdInf_Jis( const char*, const int, MBCODE_INFO* );
00219     void GetEncdInf_EucJp( const char*, const int, MBCODE_INFO* );
00220     void GetEncdInf_Utf8( const char*, const int, MBCODE_INFO* );
00221     void GetEncdInf_Utf7( const char*, const int, MBCODE_INFO* );
00222     void GetEncdInf_Uni( const char*, const int, UNICODE_INFO* );
00223 } // ends namespace Charcode.
00224
00225 #include "charcode2.h"
00226
00227
00228 #endif /* _CHARCODE_H_ */
00229
00230 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode2.h

sakura_core

charcode2.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | ACODE
namespace | WCODE
namespace | TCODE

マクロ定義

#define | TAB_ '\t'
#define | SPACE_ ' '
#define | CR_ '\015'
#define | LF_ '\012'
#define | ESC_ '\x1b'
#define | CRLF_ "\015\012"
#define | LFCR_ "\012\015"
#define | HEAD_EQ(DATA, LITERAL) (wcsncmp(DATA,LITERAL,_countof(LITERAL)-1)==0)

関数

bool | _IS_SJIS_1 (unsigned char c)
bool | _IS_SJIS_2 (unsigned char c)
bool | _IS_SJIS_1 (char c)
bool | _IS_SJIS_2 (char c)
bool | IS_KEYWORD_CHAR (wchar_t wc)
bool | WCODE::isAZ (wchar_t wc)
bool | WCODE::is09 (wchar_t wc)
bool | WCODE::isHankaku (wchar_t wc)
半角文字(縦長長方形)かどうか判定
bool | WCODE::isZenkaku (wchar_t wc)
全角文字(正方形)かどうか判定
bool | WCODE::isZenkakuSpace (wchar_t wc)
全角スペースかどうか判定
bool | WCODE::isControlCode (wchar_t wc)
制御文字であるかどうか
bool | WCODE::isLineDelimiter (wchar_t wc)
改行文字であるかどうか
bool | WCODE::isWordDelimiter (wchar_t wc)
単語の区切り文字であるかどうか
bool | WCODE::isIndentChar (wchar_t wc, bool bAcceptZenSpace)
インデント構成要素であるかどうか。bAcceptZenSpace: 全角スペースを含めるかどうか
bool | WCODE::isBlank (wchar_t wc)
空白かどうか
bool | WCODE::isHeadCppKeyword (const wchar_t *pData)
CPPキーワードで始まっていれば true
bool | WCODE::isValidFilenameChar (const wchar_t *pData, size_t nIndex)
ファイル名に使える文字であるかどうか
bool | WCODE::isTabAvailableCode (wchar_t wc)
タブ表示に使える文字かどうか
bool | WCODE::isHankakuKatakana (wchar_t c)
半角カナかどうか
bool | WCODE::isZenkakuKigou (wchar_t c)
全角記号かどうか
bool | WCODE::isHiragana (wchar_t c)
ひらがなかどうか
bool | WCODE::isZenkakuKatakana (wchar_t c)
カタカナかどうか
bool | WCODE::isGreek (wchar_t c)
ギリシャ文字かどうか
bool | WCODE::isCyrillic (wchar_t c)
キリル文字かどうか
bool | WCODE::isBoxDrawing (wchar_t c)
BOX DRAWING 文字 かどうか
bool | ACODE::isControlCode (char c)
制御文字であるかどうか
bool | ACODE::isTabAvailableCode (char c)
タブ表示に使える文字かどうか
bool | ACODE::isValidFilenameChar (const char *pData, size_t nIndex)
ファイル名に使える文字であるかどうか

変数

static const char | ACODE::TAB = TAB_
static const char | ACODE::SPACE = SPACE_
static const char | ACODE::CR = CR_
static const char | ACODE::LF = LF_
static const char | ACODE::ESC = ESC_
static const char | ACODE::CRLF [] = CRLF_
static const char | ACODE::LFCR [] = LFCR_
static const wchar_t | ACODE::BREGEXP_DELIMITER = (wchar_t)0xFF
static const wchar_t | WCODE::TAB = LCHAR(TAB_)
static const wchar_t | WCODE::SPACE = LCHAR(SPACE_)
static const wchar_t | WCODE::CR = LCHAR(CR_)
static const wchar_t | WCODE::LF = LCHAR(LF_)
static const wchar_t | WCODE::ESC = LCHAR(ESC_)
static const wchar_t | WCODE::CRLF [] = LTEXT(CRLF_)
static const wchar_t | WCODE::LFCR [] = LTEXT(LFCR_)
static const wchar_t | WCODE::BREGEXP_DELIMITER = (wchar_t)0xFFFF

マクロ定義

#define CR_ '\015'

charcode2.h の 33 行で定義されています。

#define CRLF_ "\015\012"

charcode2.h の 36 行で定義されています。

#define ESC_ '\x1b'

charcode2.h の 35 行で定義されています。

#define HEAD_EQ | ( | DATA,
 |  | LITERAL | ) | (wcsncmp(DATA,LITERAL,_countof(LITERAL)-1)==0)

参照元 WCODE::isHeadCppKeyword().

#define LF_ '\012'

charcode2.h の 34 行で定義されています。

#define LFCR_ "\012\015"

charcode2.h の 37 行で定義されています。

#define SPACE_ ' '

charcode2.h の 32 行で定義されています。

#define TAB_ '\t'

charcode2.h の 31 行で定義されています。

関数

bool _IS_SJIS_1 ( char c ) [inline]

charcode2.h の 17 行で定義されています。

参照先 Charcode::IsSJisKan1().

bool _IS_SJIS_1 ( unsigned char c ) [inline]

charcode2.h の 9 行で定義されています。

参照先 Charcode::IsSJisKan1().

bool _IS_SJIS_2 ( char c ) [inline]

charcode2.h の 21 行で定義されています。

参照先 Charcode::IsSJisKan2().

bool _IS_SJIS_2 ( unsigned char c ) [inline]

charcode2.h の 13 行で定義されています。

参照先 Charcode::IsSJisKan2().

参照元 CharPointerA::_forward(), CharPointerA::_get(), _mbcjmstojis_ex(), CShareData::ExpandMetaToFolder(), CNativeA::GetCharNext(), CShareData::GetFilePathFormat(), CShiftJis::GetSizeOfChar(), と CJis::StrSJIStoJIS().

bool IS_KEYWORD_CHAR ( wchar_t wc ) [inline]

charcode2.h の 85 行で定義されています。

参照元 CKeyWordSetMgr::CleanKeyWords(), CEditView::DispLineNew(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), と CEditView::HokanSearchByFile().

Sakura-Editorに対してSat Nov 17 20:25:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: charcode2.h ソースファイル

sakura_core

charcode2.h

説明を見る。
00001 //2007.09.13 kobake 作成
00002
00003 #pragma once
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                         判定関数                            //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00009 inline bool _IS_SJIS_1(unsigned char c)
00010 {
00011     return Charcode::IsSJisKan1(c);
00012 }
00013 inline bool _IS_SJIS_2(unsigned char c)
00014 {
00015     return Charcode::IsSJisKan2(c);
00016 }
00017 inline bool _IS_SJIS_1(char c)
00018 {
00019     return Charcode::IsSJisKan1((unsigned char)c);
00020 }
00021 inline bool _IS_SJIS_2(char c)
00022 {
00023     return Charcode::IsSJisKan2((unsigned char)c);
00024 }
00025
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027 //                           定数                              //
00028 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00029
00030 //定数の素 (直接使用は控えてください)
00031 #define TAB_                '\t'
00032 #define SPACE_              ' '
00033 #define CR_                 '\015'
00034 #define LF_                 '\012'
00035 #define ESC_                '\x1b'
00036 #define CRLF_               "\015\012"
00037 #define LFCR_               "\012\015"
00038
00039 //ANSI定数
00040 namespace ACODE{
00041     //文字
00042     static const char TAB   = TAB_;
00043     static const char SPACE = SPACE_;
00044     static const char CR    = CR_;
00045     static const char LF    = LF_;
00046     static const char ESC   = ESC_;
00047
00048     //文字列
00049     static const char CRLF[] = CRLF_;
00050     static const char LFCR[] = LFCR_;
00051
00052     //特殊 (BREGEXP)
00053     static const wchar_t BREGEXP_DELIMITER = (wchar_t)0xFF;
00054 }
00055
00056 //UNICODE定数
00057 namespace WCODE{
00058     //文字
00059     static const wchar_t TAB   = LCHAR(TAB_);
00060     static const wchar_t SPACE = LCHAR(SPACE_);
00061     static const wchar_t CR    = LCHAR(CR_);
00062     static const wchar_t LF    = LCHAR(LF_);
00063     static const wchar_t ESC   = LCHAR(ESC_);
00064
00065     //文字列
00066     static const wchar_t CRLF[] = LTEXT(CRLF_);
00067     static const wchar_t LFCR[] = LTEXT(LFCR_);
00068
00069     //特殊 (BREGEXP)
00070     //$$ UNICODE版の仮デリミタ。bregonigの仕様がよくわかんないので、とりあえずこんな値にしてます。
00071     static const wchar_t BREGEXP_DELIMITER = (wchar_t)0xFFFF;
00072 }
00073
00074
00075 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00076 //                         判定関数                            //
00077 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00078
00079
00080
00081
00082 //Oct. 31, 2000 JEPRO  TeX Keyword のために'\'を追加
00083 //Nov.  9, 2000 JEPRO  HSP Keyword のために'@'を追加
00084 //Oct. 18, 2007 kobake UNICODE用に書き直し
00085 inline bool IS_KEYWORD_CHAR(wchar_t wc)
00086 {
00087     if(wc==L'#')return true;                //user-define
00088     if(wc==L'$')return true;                //user-define
00089     if(wc>=L'0' && wc<=L'9')return true;    //iscsym
00090     if(wc==L'@')return true;                //user-define
00091     if(wc>=L'A' && wc<=L'Z')return true;    //iscsym
00092     if(wc>=L'a' && wc<=L'z')return true;    //iscsym
00093     if(wc==L'_')return true;                //iscsym
00094     if(wc==L'\\')return true;               //user-define
00095     return false;
00096 }
00097
00098
00099 //UNICODE判定関数群
00100 namespace WCODE
00101 {
00102     inline bool isAZ(wchar_t wc)
00103     {
00104         return (wc>=L'A' && wc<=L'Z') || (wc>=L'a' && wc<=L'z');
00105     }
00106     inline bool is09(wchar_t wc)
00107     {
00108         return (wc>=L'0' && wc<=L'9');
00109     }
00110
00112     bool isHankaku(wchar_t wc);
00113
00115     inline bool isZenkaku(wchar_t wc)
00116     {
00117         return !isHankaku(wc);
00118     }
00119
00121     inline bool isZenkakuSpace(wchar_t wc)
00122     {
00123         return wc == 0x3000; //L'　'
00124     }
00125
00127     bool isControlCode(wchar_t wc);
00128
00130     inline bool isLineDelimiter(wchar_t wc)
00131     {
00132         return wc==CR || wc==LF;
00133     }
00134
00136     inline bool isWordDelimiter(wchar_t wc)
00137     {
00138         return wc==SPACE || wc==TAB || isZenkakuSpace(wc);
00139     }
00140
00142     inline bool isIndentChar(wchar_t wc,bool bAcceptZenSpace)
00143     {
00144         if(wc==TAB || wc==SPACE)return true;
00145         if(bAcceptZenSpace && isZenkakuSpace(wc))return true;
00146         return false;
00147     }
00148
00150     inline bool isBlank(wchar_t wc)
00151     {
00152         return wc==TAB || wc==SPACE || isZenkakuSpace(wc);
00153     }
00154
00156     inline bool isHeadCppKeyword(const wchar_t* pData)
00157     {
00158         #define HEAD_EQ(DATA,LITERAL) (wcsncmp(DATA,LITERAL,_countof(LITERAL)-1)==0)
00159         if( HEAD_EQ(pData, L"case"      ) )return true;
00160         if( HEAD_EQ(pData, L"default:"  ) )return true;
00161         if( HEAD_EQ(pData, L"public:"   ) )return true;
00162         if( HEAD_EQ(pData, L"private:"  ) )return true;
00163         if( HEAD_EQ(pData, L"protected:") )return true;
00164         return false;
00165     }
00166
00168     inline bool isValidFilenameChar(const wchar_t* pData, size_t nIndex)
00169     {
00170         static const wchar_t* table = L"<>?\"|*";
00171
00172         wchar_t wc = pData[nIndex];
00173         if(wcschr(table,wc)!=NULL)return false; //table内の文字が含まれていたら、ダメ。
00174         else return true;
00175     }
00176
00178     inline bool isTabAvailableCode(wchar_t wc)
00179     {
00180         //$$要検証
00181         if(wc==L'\0')return false;
00182         if(wc==L'\r')return false;
00183         if(wc==L'\n')return false;
00184         if(wc==L'\t')return false;
00185         return true;
00186     }
00187
00189     inline bool isHankakuKatakana(wchar_t c)
00190     {
00191         //参考: http://ash.jp/code/unitbl1.htm
00192         return c>=0xFF61 && c<=0xFF9F;
00193     }
00194
00196     inline bool isZenkakuKigou(wchar_t c)
00197     {
00198         //$ 他にも全角記号はあると思うけど、とりあえずANSI版時代の判定を踏襲。パフォーマンス悪し。
00199         static const wchar_t* table=L"　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼〜‖｜…‥‘’“”（）〔〕［］｛｝〈〉《》「」『』【】＋−±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄¢£％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬Å‰♯♭♪†‡¶◯";
00200         return wcschr(table,c)!=NULL;
00201     }
00202
00204     inline bool isHiragana(wchar_t c)
00205     {
00206         return c>=0x3041 && c<=0x3093;
00207     }
00208
00210     inline bool isZenkakuKatakana(wchar_t c)
00211     {
00212         return c>=0x30A1 && c<=0x30F6;
00213     }
00214
00216     inline bool isGreek(wchar_t c)
00217     {
00218         return c>=0x0391 && c<=0x03C9;
00219     }
00220
00222     inline bool isCyrillic(wchar_t c)
00223     {
00224         return c>=0x0410 && c<=0x044F;
00225     }
00226
00228     inline bool isBoxDrawing(wchar_t c)
00229     {
00230         return c>=0x2500 && c<=0x257F;
00231     }
00232 }
00233
00234
00235 //ANSI判定関数群
00236 namespace ACODE
00237 {
00239     inline bool isControlCode(char c)
00240     {
00241         unsigned char n=(unsigned char)c;
00242         if(c==TAB)return false;
00243         if(c==CR )return false;
00244         if(c==LF )return false;
00245         if(n<=0x1F)return true;
00246         if(n>=0x7F && n<=0xA0)return true;
00247         if(n>=0xE0)return true;
00248         return false;
00249     }
00250
00252     inline bool isTabAvailableCode(char c)
00253     {
00254         if(c=='\0')return false;
00255         if(c<=0x1f)return false;
00256         if(c>=0x7f)return false;
00257         return true;
00258     }
00259
00261     inline bool isValidFilenameChar(const char* pData, size_t nIndex)
00262     {
00263         static const TCHAR* table = _T("<>?\"|*");
00264         char c = pData[nIndex];
00265
00266         //table内の文字が含まれていて
00267         if(_tcschr(table,c)!=NULL){
00268             //それが1バイト文字だったら
00269             if( nIndex==0 || (nIndex>0 && !_IS_SJIS_1(pData[nIndex-1])) ){
00270                 //使っちゃいけない文字！
00271                 return false;
00272             }
00273         }
00274
00275         return true;
00276     }
00277 }
00278
00279 //TCHAR判定関数群
00280 namespace TCODE
00281 {
00282     #ifdef _UNICODE
00283         using namespace WCODE;
00284     #else
00285         using namespace ACODE;
00286     #endif
00287 }
00288
00289
00290
00291
00292
00293
00294
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CharPointer.h

sakura_core

CharPointer.h

#include "charcode.h"

CharPointer.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CharPointerA
< ディレクトリを除いた、ファイル名だけを取得する [詳細]
class | CharPointerW

型定義

typedef CharPointerA | CharPointerT

型定義

typedef CharPointerA CharPointerT

CharPointer.h の 92 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CharPointer.h ソースファイル

sakura_core

CharPointer.h

説明を見る。
00001 #pragma once
00002
00003 #include "charcode.h"
00004
00006 class CharPointerA{
00007 public:
00008     CharPointerA(){ }
00009     CharPointerA(const char* p) : m_p(p) { }
00010     CharPointerA(const CharPointerA& rhs) : m_p(rhs.m_p) { }
00011
00012     //進む
00013     const char* operator ++ ()   { _forward(); return this->m_p; }
00014     const char* operator ++ (int){ CharPointerA tmp; _forward(); return tmp.m_p;  }
00015     const char* operator += (size_t n){ while(n-->0)_forward(); return this->m_p; }
00016
00017     //進んだ値
00018     const char* operator + (size_t n) const{ CharPointerA tmp=*this; return tmp+=n; }
00019     WORD operator[](size_t n) const{ CharPointerA tmp=*this; tmp+=n; return *tmp; }
00020
00021     //代入
00022     const char* operator = (const char* p){ m_p=p; return this->m_p; }
00023
00024     //文字取得
00025     WORD operator * () const{ return _get(); }
00026
00027     //ポインタ取得
00028 //  operator const char*() const{ return m_p; } //※operator + と競合するので、このキャスト演算子は提供しない
00029     const char* GetPointer() const{ return m_p; }
00030
00031 protected:
00032     void _forward()
00033     {
00034         if(_IS_SJIS_1(m_p[0]) && _IS_SJIS_2(m_p[1]))m_p+=2;
00035         else m_p+=1;
00036     }
00037     WORD _get() const
00038     {
00039         if(_IS_SJIS_1(m_p[0]) && _IS_SJIS_2(m_p[1]))return *((WORD*)m_p);
00040         else return *m_p;
00041     }
00042
00043 private:
00044     const char* m_p;
00045 };
00046
00047
00048 class CharPointerW{
00049 public:
00050     CharPointerW(){ }
00051     CharPointerW(const wchar_t* p) : m_p(p) { }
00052     CharPointerW(const CharPointerW& rhs) : m_p(rhs.m_p) { }
00053
00054     //進む
00055     const wchar_t* operator ++ ()   { _forward(); return this->m_p; }
00056     const wchar_t* operator ++ (int){ CharPointerW tmp; _forward(); return tmp.m_p;   }
00057     const wchar_t* operator += (size_t n){ while(n-->0)_forward(); return this->m_p;  }
00058
00059     //進んだ値
00060     const wchar_t* operator + (size_t n) const{ CharPointerW tmp=*this; return tmp+=n; }
00061     WORD operator[](size_t n) const{ CharPointerW tmp=*this; tmp+=n; return *tmp; }
00062
00063     //代入
00064     const wchar_t* operator = (const wchar_t* p){ m_p=p; return this->m_p; }
00065
00066     //文字取得
00067     WORD operator * () const{ return _get(); }
00068
00069     //ポインタ取得
00070 //  operator const wchar_t*() const{ return m_p; } //※operator + と競合するので、このキャスト演算子は提供しない
00071     const wchar_t* GetPointer() const{ return m_p; }
00072
00073 protected:
00074     void _forward()
00075     {
00076         ++m_p;
00077     }
00078     WORD _get() const
00079     {
00080         return *m_p;
00081     }
00082
00083 private:
00084     const wchar_t* m_p;
00085 };
00086
00087
00088
00089 #ifdef _UNICODE
00090 typedef CharPointerW CharPointerT;
00091 #else
00092 typedef CharPointerA CharPointerT;
00093 #endif
00094
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHokanMgr.cpp

sakura_core

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 "util/input.h"
#include "util/os.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 の 32 行で定義されています。

参照先 _SHIFT, DWLP_USER, getCtrlKeyState(), GetWindowLongPtr, gm_wpHokanListProc, CHokanMgr::KeyProc(), CDialog::m_hwndParent, NULL, PostMessageAny, と TRUE.

参照元 CHokanMgr::DoModeless().

変数

WNDPROC gm_wpHokanListProc

CHokanMgr.cpp の 29 行で定義されています。

参照元 CHokanMgr::DoModeless(), と HokanList_SubclassProc().

const DWORD p_helpids[]

初期値:

 {
    0, 0
}

CHokanMgr.cpp の 668 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHokanMgr.cpp ソースファイル

sakura_core

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 "util/input.h"
00027 #include "util/os.h"
00028
00029 WNDPROC         gm_wpHokanListProc;
00030
00031
00032 LRESULT APIENTRY HokanList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00033 {
00034     // Modified by KEITA for WIN64 2003.9.6
00035     CDialog* pCDialog = ( CDialog* )::GetWindowLongPtr( ::GetParent( hwnd ), DWLP_USER );
00036     CHokanMgr* pCHokanMgr = (CHokanMgr*)::GetWindowLongPtr( ::GetParent( hwnd ), DWLP_USER );
00037     MSG* pMsg;
00038     int nVKey;
00039
00040     switch( uMsg ){
00041     case WM_KEYDOWN:
00042         nVKey = (int) wParam;   // virtual-key code
00043         /* キー操作を偽造しよう */
00044         if (nVKey == VK_SPACE){ //  Space
00045 // novice 2004/10/10
00046             /* Shift,Ctrl,Altキーが押されていたか */
00047             int nIdx = getCtrlKeyState();
00048             if (nIdx == _SHIFT){
00049                 //  Shift + Spaceで↑を偽造
00050                 wParam = VK_UP;
00051             }
00052             else if (nIdx == 0) {
00053                 //  Spaceのみで↓を偽造
00054                 wParam = VK_DOWN;
00055             }
00056         }
00057         /* 補完実行キーなら補完する */
00058         if( -1 != pCHokanMgr->KeyProc( wParam, lParam ) ){
00059             /* キーストロークを親に転送 */
00060             ::EnableWindow( ::GetParent( ::GetParent( pCDialog->m_hwndParent ) ), TRUE );
00061             return ::PostMessageAny( ::GetParent( ::GetParent( pCDialog->m_hwndParent ) ), uMsg, wParam, lParam );
00062         }
00063         break;
00064     case WM_GETDLGCODE:
00065         pMsg = (MSG*) lParam; // pointer to an MSG structure
00066         if( NULL == pMsg ){
00067 //          MYTRACE_A( "WM_GETDLGCODE  pMsg==NULL\n" );
00068             return 0;
00069         }
00070 //      MYTRACE_A( "WM_GETDLGCODE  pMsg->message = %xh\n", pMsg->message );
00071         return DLGC_WANTALLKEYS;/* すべてのキーストロークを私に下さい */   //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00072     }
00073     return CallWindowProc( (WNDPROC)gm_wpHokanListProc, hwnd, uMsg, wParam, lParam);
00074 }
00075
00076
00077
00078 CHokanMgr::CHokanMgr()
00079 {
00080 //  m_hFont = NULL;
00081 //  m_hFontOld = NULL;
00082     m_cmemCurWord.SetString(L"");
00083
00084     m_pcmemKouho = NULL;
00085     m_nKouhoNum = 0;;
00086     m_nCurKouhoIdx = -1;
00087     m_pszCurKouho = NULL;
00088 //  m_pcEditView = NULL;
00089     m_bTimerFlag = TRUE;
00090 //  hm_wpHokanListProc = FALSE;
00091     return;
00092 }
00093
00094 CHokanMgr::~CHokanMgr()
00095 {
00096     if( NULL != m_pcmemKouho ){
00097         delete m_pcmemKouho;
00098         m_pcmemKouho = NULL;
00099     }
00100     m_nKouhoNum = 0;;
00101     if( NULL != m_pszCurKouho ){
00102         delete [] m_pszCurKouho;
00103         m_pszCurKouho = NULL;
00104     }
00105
00106 }
00107
00108 /* モードレスダイアログの表示 */
00109 HWND CHokanMgr::DoModeless( HINSTANCE hInstance , HWND hwndParent, LPARAM lParam )
00110 {
00111     HWND hwndWork;
00112     hwndWork = CDialog::DoModeless( hInstance, hwndParent, IDD_HOKAN, lParam, SW_HIDE );
00113     OnSize( 0, 0 );
00114     /* リストをフック */
00115     // Modified by KEITA for WIN64 2003.9.6
00116 	::gm_wpHokanListProc = (WNDPROC) ::SetWindowLongPtr( ::GetDlgItem( GetHwnd(), IDC_LIST_WORDS ), GWLP_WNDPROC, (LONG_PTR)HokanList_SubclassProc  );
00117
00118     ::ShowWindow( GetHwnd(), SW_HIDE );
00119     return hwndWork;
00120 }
00121
00122 /* モードレス時：対象となるビューの変更 */
00123 void CHokanMgr::ChangeView( LPARAM pcEditView )
00124 {
00125     m_lParam = pcEditView;
00126     return;
00127 }
00128
00129 void CHokanMgr::Hide( void )
00130 {
00131     ::EnableWindow( ::GetParent( ::GetParent( m_hwndParent ) ), TRUE );
00132 //  ::DestroyWindow( hwnd );
00133     ::ShowWindow( GetHwnd(), SW_HIDE );
00134     m_nCurKouhoIdx = -1;
00135     /* 入力フォーカスを受け取ったときの処理 */
00136     CEditView* pcEditView = (CEditView*)m_lParam;
00137     pcEditView->OnSetFocus();
00138 //  m_nCurKouhoIdx = -1;
00139     return;
00140
00141 }
00142
00149 int CHokanMgr::Search(
00150     POINT*          ppoWin,
00151     int             nWinHeight,
00152     int             nColmWidth,
00153     const wchar_t*  pszCurWord,
00154     const TCHAR*    pszHokanFile,
00155     int             bHokanLoHiCase, // 入力補完機能：英大文字小文字を同一視する 2001/06/19 asa-o
00156     BOOL            bHokanByFile,   // 編集中データから候補を探す 2003.06.23 Moca
00157     CNativeW*       pcmemHokanWord  // 2001/06/19 asa-o
00158 )
00159 {
00160     CEditView* pcEditView = (CEditView*)m_lParam;
00161     /*
00162     ||  補完キーワードの検索
00163     ||
00164     ||  ・見つかった候補をすべて返す(改行で区切って返す)
00165     ||  ・指定された候補の最大数を超えると処理を中断する
00166     ||  ・見つかった数を返す
00167     ||
00168     */
00169     if( NULL != m_pcmemKouho ){
00170         delete m_pcmemKouho;
00171         m_pcmemKouho = NULL;
00172     }
00173     m_nKouhoNum = CDicMgr::HokanSearch(
00174         pszCurWord,
00175         bHokanLoHiCase,                             // 引数からに変更    2001/06/19 asa-o
00176         &m_pcmemKouho,
00177         0, //Max候補数
00178         pszHokanFile
00179     );
00180
00181     // 2003.05.16 Moca 追加 編集中データ内から候補を探す
00182     if( bHokanByFile ){
00183         m_nKouhoNum = pcEditView->HokanSearchByFile(
00184             pszCurWord,
00185             bHokanLoHiCase,
00186             &m_pcmemKouho,
00187             m_nKouhoNum,
00188             1024 // 編集中データからなので数を制限しておく
00189         );
00190     }
00191     if( 0 == m_nKouhoNum ){
00192         m_nCurKouhoIdx = -1;
00193         return 0;
00194     }
00195
00196 //  2001/06/19 asa-o 候補が１つの場合補完ウィンドウは表示しない(逐次補完の場合は除く)
00197     if( 1 == m_nKouhoNum ){
00198         if(pcmemHokanWord != NULL){
00199             m_nCurKouhoIdx = -1;
00200             // 2004.05.14 Moca m_pcmemKouhoの末尾には改行コードがあり、それを削除してコピーするするように
00201             pcmemHokanWord->SetString( m_pcmemKouho->GetStringPtr(), m_pcmemKouho->GetStringLength() - 1 );
00202             return 1;
00203         }
00204     }
00205
00206     int         i;
00207
00208     /* 共有データ構造体のアドレスを返す */
00209     m_pShareData = CShareData::getInstance()->GetShareData();
00210
00211 //  m_hFont = hFont;
00212     m_poWin.x = ppoWin->x;
00213     m_poWin.y = ppoWin->y;
00214     m_nWinHeight = nWinHeight;
00215     m_nColmWidth = nColmWidth;
00216 //  m_cmemCurWord.SetData( pszCurWord, lstrlen( pszCurWord ) );
00217     m_cmemCurWord.SetString( pszCurWord );
00218
00219
00220     m_nCurKouhoIdx = 0;
00221 //  SetCurKouhoStr();
00222
00223
00224
00225 //  ::ShowWindow( GetHwnd(), SW_SHOWNA );
00226
00227
00228
00229
00230
00231
00232
00233     HWND hwndList;
00234     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_WORDS );
00235 	::SendMessageAny( hwndList, LB_RESETCONTENT, 0, 0 );
00236     wchar_t*    pszCR = L"\n";
00237     wchar_t*    pszWork;
00238     wchar_t*    pszNext;
00239     wchar_t*    pszTest;
00240     pszWork = m_pcmemKouho->GetStringPtr();
00241     for( i = 0; i < m_nKouhoNum; ++i ){
00242         pszNext = wcsstr( pszWork, pszCR );
00243         if( NULL == pszNext ){
00244             break;
00245         }
00246         pszTest = new wchar_t[pszNext - pszWork + 1];
00247         wmemcpy( pszTest, pszWork, pszNext - pszWork );
00248         pszTest[pszNext - pszWork] = L'\0';
00249
00250 		::List_AddString( hwndList, pszTest );
00251
00252         delete [] pszTest;
00253         pszTest = NULL;
00254         pszWork = pszNext + wcslen( pszCR );
00255     }
00256 	::SendMessageAny( hwndList, LB_SETCURSEL, 0, 0 );
00257
00258
00259 //@@    ::EnableWindow( ::GetParent( ::GetParent( m_hwndParent ) ), FALSE );
00260
00261
00262     int nX;
00263     int nY;
00264     int nCX;
00265     int nCY;
00266     RECT    rcDesktop;
00267     //  May 01, 2004 genta マルチモニタ対応
00268 	::GetMonitorWorkRect( GetHwnd(), &rcDesktop );
00269
00270     nX = m_poWin.x - m_nColmWidth;
00271     nY = m_poWin.y + m_nWinHeight + 4;
00272     nCX = m_nWidth;
00273     nCY = m_nHeight;
00274
00275     /* 下に入るなら */
00276     if( nY + nCY < rcDesktop.bottom ){
00277         /* 何もしない */
00278     }else
00279     /* 上に入るなら */
00280     if( rcDesktop.top < m_poWin.y - m_nHeight - 4 ){
00281         /* 上に出す */
00282         nY = m_poWin.y - m_nHeight - 4;
00283     }else
00284     /* 上に出すか下に出すか(広いほうに出す) */
00285     if( rcDesktop.bottom - nY > m_poWin.y ){
00286         /* 下に出す */
00287 //      m_nHeight = rcDesktop.bottom - nY;
00288         nCY = rcDesktop.bottom - nY;
00289     }else{
00290         /* 上に出す */
00291         nY = rcDesktop.top;
00292         nCY = m_poWin.y - 4 - rcDesktop.top;
00293     }
00294
00295 //  2001/06/19 Start by asa-o: 表示位置補正
00296
00297     // 右に入る
00298     if(nX + nCX < rcDesktop.right ){
00299         // そのまま
00300     }else
00301     // 左に入る
00302     if(rcDesktop.left < nX - nCX + 8){
00303         // 左に表示
00304         nX -= nCX - 8;
00305     }else{
00306         // サイズを調整して右に表示
00307         nCX = __max((int)(rcDesktop.right - nX) , 100); // 最低サイズを100くらいに
00308     }
00309
00310 //  2001/06/19 End
00311
00312 //  2001/06/18 Start by asa-o: 補正後の位置・サイズを保存
00313     m_poWin.x = nX;
00314     m_poWin.y = nY;
00315     m_nHeight = nCY;
00316     m_nWidth = nCX;
00317 //  2001/06/18 End
00318
00319     /* はみ出すなら小さくする */
00320 //  if( rcDesktop.bottom < nY + nCY ){
00321 //      /* 下にはみ出す */
00322 //      if( m_poWin.y - 4 - nCY < 0 ){
00323 //          /* 上にはみ出す */
00324 //          /* →高さだけ調節 */
00325 //          nCY = rcDesktop.bottom - nY - 4;
00326 //      }else{
00327 //
00328 //      }
00329 //
00330 //  }
00331     ::MoveWindow( GetHwnd(), nX, nY, nCX, nCY, TRUE );
00332     ::ShowWindow( GetHwnd(), SW_SHOW );
00333 //  ::ShowWindow( GetHwnd(), SW_SHOWNA );
00334     ::SetFocus( GetHwnd() );
00335 //  ::SetFocus( ::GetDlgItem( GetHwnd(), IDC_LIST_WORDS ) );
00336 //  ::SetFocus( ::GetParent( ::GetParent( m_hwndParent ) ) );
00337
00338
00339 //  2001/06/18 asa-o:
00340     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00341
00342 //  2003.06.25 Moca 他のメソッドで使っていないので、とりあえず削除しておく
00343     if( NULL != m_pcmemKouho ){
00344         delete m_pcmemKouho;
00345         m_pcmemKouho = NULL;
00346     }
00347     return m_nKouhoNum;
00348 }
00349
00350
00351
00352 BOOL CHokanMgr::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00353 {
00354     _SetHwnd( hwndDlg );
00355     /* 基底クラスメンバ */
00356 //- CreateSizeBox();
00357     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00358
00359 }
00360
00361 BOOL CHokanMgr::OnDestroy( void )
00362 {
00363     /* 基底クラスメンバ */
00364     CreateSizeBox();
00365     return CDialog::OnDestroy();
00366
00367
00368 }
00369
00370
00371 BOOL CHokanMgr::OnSize( WPARAM wParam, LPARAM lParam )
00372 {
00373     /* 基底クラスメンバ */
00374     CDialog::OnSize( wParam, lParam );
00375
00376     int Controls[] = {
00377         IDC_LIST_WORDS
00378     };
00379     int     nControls = _countof( Controls );
00380     int     fwSizeType;
00381     int     nWidth;
00382     int     nHeight;
00383     int     i;
00384     int     nWork;
00385     RECT    rc;
00386     HWND    hwndCtrl;
00387     POINT   po;
00388     RECT    rcDlg;
00389
00390     fwSizeType = wParam;    // resizing flag
00391
00392     ::GetClientRect( GetHwnd(), &rcDlg );
00393     nWidth = rcDlg.right - rcDlg.left;  // width of client area
00394     nHeight = rcDlg.bottom - rcDlg.top; // height of client area
00395
00396 //  2001/06/18 Start by asa-o: サイズ変更後の位置を保存
00397     m_poWin.x = rcDlg.left - 4;
00398     m_poWin.y = rcDlg.top - 3;
00399     ::ClientToScreen(GetHwnd(),&m_poWin);
00400 //  2001/06/18 End
00401
00402     nWork = 48;
00403     for ( i = 0; i < nControls; ++i ){
00404         hwndCtrl = ::GetDlgItem( GetHwnd(), Controls[i] );
00405         ::GetWindowRect( hwndCtrl, &rc );
00406         po.x = rc.left;
00407         po.y = rc.top;
00408         ::ScreenToClient( GetHwnd(), &po );
00409         rc.left = po.x;
00410         rc.top  = po.y;
00411         po.x = rc.right;
00412         po.y = rc.bottom;
00413         ::ScreenToClient( GetHwnd(), &po );
00414         rc.right = po.x;
00415         rc.bottom  = po.y;
00416         if( Controls[i] == IDC_LIST_WORDS ){
00417             ::SetWindowPos(
00418                 hwndCtrl,
00419                 NULL,
00420                 rc.left,
00421                 rc.top,
00422                 nWidth - rc.left * 2,
00423                 nHeight - rc.top * 2/* - 20*/,
00424                 SWP_NOOWNERZORDER | SWP_NOZORDER
00425             );
00426         }
00427     }
00428
00429 //  2001/06/18 asa-o:
00430     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00431
00432     return TRUE;
00433
00434 }
00435
00436 BOOL CHokanMgr::OnBnClicked( int wID )
00437 {
00438     switch( wID ){
00439     case IDCANCEL:
00440 //      CloseDialog( 0 );
00441         Hide();
00442         return TRUE;
00443     case IDOK:
00444 //      CloseDialog( 0 );
00445         /* 補完実行 */
00446         DoHokan( VK_RETURN );
00447         return TRUE;
00448     }
00449     return FALSE;
00450     return 0;
00451 }
00452
00453
00454
00455 BOOL CHokanMgr::OnKeyDown( WPARAM wParam, LPARAM lParam )
00456 {
00457     int nVKey;
00458     nVKey = (int) wParam;   // virtual-key code
00459 //  lKeyData = lParam;          // key data
00460     switch( nVKey ){
00461     case VK_HOME:
00462     case VK_END:
00463     case VK_UP:
00464     case VK_DOWN:
00465     case VK_PRIOR:
00466     case VK_NEXT:
00467         return 1;
00468     }
00469     return 0;
00470 }
00471
00472
00473 BOOL CHokanMgr::OnCbnSelChange( HWND hwndCtl, int wID )
00474 {
00475 //  2001/06/18 asa-o:
00476     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00477     return TRUE;
00478 }
00479
00480 BOOL CHokanMgr::OnLbnDblclk( int wID )
00481 {
00482     /* 補完実行 */
00483     DoHokan( 0 );
00484     return TRUE;
00485
00486 }
00487
00488
00489 BOOL CHokanMgr::OnKillFocus( WPARAM wParam, LPARAM lParam )
00490 {
00491 //  Hide();
00492     return TRUE;
00493 }
00494
00495
00496
00497 /* 補完実行 */
00498 BOOL CHokanMgr::DoHokan( int nVKey )
00499 {
00500 #ifdef _DEBUG
00501     MYTRACE_A( "CHokanMgr::DoHokan( nVKey==%xh )\n", nVKey );
00502 #endif
00503     /* 補完候補決定キー */
00504     if( VK_RETURN   == nVKey && FALSE == m_pShareData->m_Common.m_sHelper.m_bHokanKey_RETURN )  return FALSE;/* VK_RETURN 補完決定キーが有効/無効 */
00505     if( VK_TAB      == nVKey && FALSE == m_pShareData->m_Common.m_sHelper.m_bHokanKey_TAB )         return FALSE;/* VK_TAB    補完決定キーが有効/無効 */
00506     if( VK_RIGHT    == nVKey && FALSE == m_pShareData->m_Common.m_sHelper.m_bHokanKey_RIGHT )       return FALSE;/* VK_RIGHT  補完決定キーが有効/無効 */
00507
00508     HWND hwndList;
00509     int nItem;
00510     wchar_t wszLabel[1024];
00511     CEditView* pcEditView;
00512     hwndList = ::GetDlgItem( GetHwnd(), IDC_LIST_WORDS );
00513     nItem = ::SendMessageAny( hwndList, LB_GETCURSEL, 0, 0 );
00514     if( LB_ERR == nItem ){
00515         return FALSE;
00516     }
00517     List_GetText( hwndList, nItem, wszLabel );
00518
00519     /* テキストを貼り付け */
00520     pcEditView = (CEditView*)m_lParam;
00521     //  Apr. 28, 2000 genta
00522     pcEditView->GetCommander().HandleCommand( F_WordDeleteToStart, FALSE, 0, 0, 0, 0 );
00523     pcEditView->GetCommander().HandleCommand( F_INSTEXT_W, TRUE, (LPARAM)wszLabel, TRUE, 0, 0 );
00524
00525     // Until here
00526 //  pcEditView->GetCommander().HandleCommand( F_INSTEXT_W, TRUE, (LPARAM)(wszLabel + m_cmemCurWord.GetLength()), TRUE, 0, 0 );
00527     Hide();
00528
00529     m_pShareData->m_Common.m_sHelper.m_bUseHokan = FALSE;   //  補完したら
00530     return TRUE;
00531 }
00532
00533 /*
00534 戻り値が -2 の場合は、アプリケーションは項目の選択を完了し、
00535 リスト ボックスでそれ以上の動作が必要でないことを示します。
00536
00537 戻り値が -1 の場合は、リスト ボックスがキーストロークに応じて
00538 デフォルトの動作を実行することを示します。
00539
00540  戻り値が 0 以上の場合は、その値はリスト ボックスの項目の 0 を
00541 基準としたインデックスを意味し、リスト ボックスがその項目での
00542 キーストロークに応じてデフォルトの動作を実行することを示します。
00543
00544 */
00545 //  int CHokanMgr::OnVKeyToItem( WPARAM wParam, LPARAM lParam )
00546 //  {
00547 //      return KeyProc( wParam, lParam );
00548 //  }
00549
00550 /*
00551 戻り値が -2 の場合は、アプリケーションは項目の選択を完了し、
00552 リスト ボックスでそれ以上の動作が必要でないことを示します。
00553
00554 戻り値が -1 の場合は、リスト ボックスがキーストロークに応じて
00555 デフォルトの動作を実行することを示します。
00556
00557  戻り値が 0 以上の場合は、その値はリスト ボックスの項目の 0 を
00558 基準としたインデックスを意味し、リスト ボックスがその項目での
00559 キーストロークに応じてデフォルトの動作を実行することを示します。
00560
00561 */
00562 //  int CHokanMgr::OnCharToItem( WPARAM wParam, LPARAM lParam )
00563 //  {
00564 //      WORD vkey;
00565 //      WORD nCaretPos;
00566 //      LPARAM hwndLB;
00567 //      vkey = LOWORD(wParam);      // virtual-key code
00568 //      nCaretPos = HIWORD(wParam); // caret position
00569 //      hwndLB = lParam;            // handle to list box
00570 //  //  switch( vkey ){
00571 //  //  }
00572 //
00573 //      MYTRACE_A( "CHokanMgr::OnCharToItem vkey=%xh\n", vkey );
00574 //      return -1;
00575 //  }
00576
00577 int CHokanMgr::KeyProc( WPARAM wParam, LPARAM lParam )
00578 {
00579     WORD vkey;
00580     WORD nCaretPos;
00581     LPARAM hwndLB;
00582     vkey = LOWORD(wParam);      // virtual-key code
00583     nCaretPos = HIWORD(wParam); // caret position
00584     hwndLB = lParam;            // handle to list box
00585 //  MYTRACE_A( "CHokanMgr::OnVKeyToItem vkey=%xh\n", vkey );
00586     switch( vkey ){
00587     case VK_HOME:
00588     case VK_END:
00589     case VK_UP:
00590     case VK_DOWN:
00591     case VK_PRIOR:
00592     case VK_NEXT:
00593         /* リストボックスのデフォルトの動作をさせる */
00594         return -1;
00595     case VK_RETURN:
00596     case VK_TAB:
00597     case VK_RIGHT:
00598 #if 0
00599     case VK_SPACE:
00600 #endif
00601         /* 補完実行 */
00602         if( DoHokan( vkey ) ){
00603             return -1;
00604         }else{
00605             return -2;
00606         }
00607     case VK_ESCAPE:
00608     case VK_LEFT:
00609         m_pShareData->m_Common.m_sHelper.m_bUseHokan = FALSE;
00610         return -2;
00611     }
00612     return -2;
00613 }
00614
00615 //BOOL CHokanMgr::OnNextDlgCtl( WPARAM wParam, LPARAM lParam )
00616 //{
00617 //  /* 補完実行 */
00618 //  DoHokan();
00619 //  return 0;
00620 //}
00621
00622
00623 //  2001/06/18 Start by asa-o: 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00624 void CHokanMgr::ShowTip()
00625 {
00626     INT         nItem,
00627                 nTopItem,
00628                 nItemHeight;
00629     WCHAR       szLabel[1024];
00630     POINT       point;
00631     CEditView*  pcEditView;
00632     HWND        hwndCtrl;
00633     RECT        rcHokanWin;
00634
00635     hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_LIST_WORDS );
00636
00637     nItem = ::SendMessageAny( hwndCtrl, LB_GETCURSEL, 0, 0 );
00638     if( LB_ERR == nItem )   return ;
00639
00640     List_GetText( hwndCtrl, nItem, szLabel );   // 選択中の単語を取得
00641
00642     pcEditView = (CEditView*)m_lParam;
00643
00644     // すでに辞書Tipが表示されていたら
00645     if( pcEditView->m_dwTipTimer == 0 )
00646     {
00647         // 辞書Tipを消す
00648         pcEditView -> m_cTipWnd.Hide();
00649         pcEditView -> m_dwTipTimer = ::GetTickCount();
00650     }
00651
00652     // 表示する位置を決定
00653     nTopItem = ::SendMessageAny(hwndCtrl,LB_GETTOPINDEX,0,0);
00654     nItemHeight = ::SendMessageAny( hwndCtrl, LB_GETITEMHEIGHT, 0, 0 );
00655     point.x = m_poWin.x + m_nWidth;
00656     point.y = m_poWin.y + 4 + (nItem - nTopItem) * nItemHeight;
00657     // 2001/06/19 asa-o 選択中の単語が補完ウィンドウに表示されているなら辞書Tipを表示
00658     if( point.y > m_poWin.y && point.y < m_poWin.y + m_nHeight )
00659     {
00660         ::SetRect( &rcHokanWin , m_poWin.x, m_poWin.y, m_poWin.x + m_nWidth, m_poWin.y + m_nHeight );
00661         if( !pcEditView -> ShowKeywordHelp( point,szLabel, &rcHokanWin ) )
00662             pcEditView -> m_dwTipTimer = ::GetTickCount();  // 表示するべきキーワードヘルプが無い
00663     }
00664 }
00665 //  2001/06/18 End
00666
00667 //@@@ 2002.01.18 add start
00668 const DWORD p_helpids[] = {
00669     0, 0
00670 };
00671
00672 LPVOID CHokanMgr::GetHelpIdTable(void)
00673 {
00674     return (LPVOID)p_helpids;
00675 }
00676 //@@@ 2002.01.18 add end
00677
00678 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHokanMgr.h

sakura_core

CHokanMgr.h

キーワード補完 [詳細]

#include "CDialog.h"
#include <windows.h>
#include "CMemory.h"

CHokanMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CHokanMgr
キーワード補完 [詳細]

説明

キーワード補完

作者:
Norio Nakatani

CHokanMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHokanMgr.h ソースファイル

sakura_core

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         POINT*          ppoWin,
00045         int             nWinHeight,
00046         int             nColmWidth,
00047         const wchar_t*  pszCurWord,
00048         const TCHAR*    pszHokanFile,
00049         BOOL            bHokanLoHiCase,         // 入力補完機能：英大文字小文字を同一視する 2001/06/19 asa-o
00050         BOOL            bHokanByFile,           // 編集中データから候補を探す。 2003.06.23 Moca
00051         CNativeW*       pcmemHokanWord = NULL   // 補完候補が１つのときこれに格納 2001/06/19 asa-o
00052     );
00053 //  void SetCurKouhoStr( void );
00054     BOOL DoHokan( int );
00055     void ChangeView( LPARAM );/* モードレス時：対象となるビューの変更 */
00056
00057
00058     BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00059     BOOL OnDestroy( void );
00060     BOOL OnSize( WPARAM wParam, LPARAM lParam );
00061     BOOL OnBnClicked( int wID );
00062     BOOL OnKeyDown( WPARAM wParam, LPARAM lParam );
00063     BOOL OnCbnSelChange( HWND hwndCtl, int wID );
00064     BOOL OnLbnDblclk( int wID );
00065     BOOL OnKillFocus( WPARAM wParam, LPARAM lParam );
00066 //  int OnVKeyToItem( WPARAM wParam, LPARAM lParam );
00067 //  int OnCharToItem( WPARAM wParam, LPARAM lParam );
00068 //  BOOL OnNextDlgCtl( WPARAM, LPARAM );
00069
00070     int KeyProc( WPARAM, LPARAM );
00071
00072 //  2001/06/18 asa-o
00073     void ShowTip(); // 補完ウィンドウで選択中の単語にキーワードヘルプの表示
00074
00075
00076 //  HFONT           m_hFont;
00077 //  HFONT           m_hFontOld;
00078     CNativeW        m_cmemCurWord;
00079     CNativeW*       m_pcmemKouho;
00080     int             m_nKouhoNum;
00081
00082     int             m_nCurKouhoIdx;
00083     char*           m_pszCurKouho;
00084
00085     POINT           m_poWin;
00086     int             m_nWinHeight;
00087     int             m_nColmWidth;
00088 //  void*           m_pcEditView;
00089     int             m_bTimerFlag;
00090
00091 protected:
00092     /*
00093     ||  実装ヘルパ関数
00094     */
00095     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00096
00097 };
00098
00099
00100
00102 #endif /* _CHOKANMGR_H_ */
00103
00104
00105 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHtmlHelp.cpp

sakura_core

CHtmlHelp.cpp

HtmpHelp動的ロード [詳細]

#include "stdafx.h"
#include "CHtmlHelp.h"

CHtmlHelp.cppのインクルード依存関係図

ソースコードを見る。

説明

HtmpHelp動的ロード

HTML Help コンポーネントへの動的アクセスクラス

作者:
genta
日付:
Jul. 5, 2001

CHtmlHelp.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHtmlHelp.cpp ソースファイル

sakura_core

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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHtmlHelp.h

sakura_core

CHtmlHelp.h

HtmpHelp動的ロード [詳細]

#include "CDllHandler.h"

CHtmlHelp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CHtmlHelp
HtmpHelp動的ロード [詳細]

説明

HtmpHelp動的ロード

HTML Help コンポーネントへの動的アクセスクラス

作者:
genta
日付:
Jul. 5, 2001

CHtmlHelp.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CHtmlHelp.h ソースファイル

sakura_core

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
00038
00044 class SAKURA_CORE_API CHtmlHelp : public CDllHandler {
00045 public:
00046     CHtmlHelp(){};
00047     virtual ~CHtmlHelp();
00048
00049     //  HtmlHelp のEntry Point
00050     typedef HWND (WINAPI* Proc_HtmlHelp)(HWND, LPCTSTR, UINT, DWORD_PTR);
00051     Proc_HtmlHelp HtmlHelp;
00052
00053 protected:
00054     virtual int InitDll(void);
00055     virtual LPCTSTR GetDllName(LPCTSTR);
00056 };
00057
00058 #endif
00059
00060
00061 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CImageListMgr.cpp

sakura_core

CImageListMgr.cpp

ImageListの取り扱い [詳細]

#include "stdafx.h"
#include "CImageListMgr.h"
#include "sakura_rc.h"
#include "CRunningTimer.h"
#include "util/module.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 行で定義されています。

参照先 ApiWrap::ExtTextOutW_AnyBuild(), と 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 Nov 17 20:25:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CImageListMgr.cpp ソースファイル

sakura_core

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 "util/module.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 	::ExtTextOutW_AnyBuild( 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
00060     @date 2003.07.21 genta ImageListの構築は行わない．代わりにbitmapをそのまま保持する．
00061 */
00062 bool CImageListMgr::Create(HINSTANCE hInstance)
00063 {
00064     MY_RUNNINGTIMER( cRunningTimer, "CImageListMgr::Create" );
00065     if( m_hIconBitmap != NULL ){    //  既に構築済みなら無視する
00066         return true;
00067     }
00068
00069     HBITMAP hRscbmp;    //  リソースから読み込んだひとかたまりのBitmap
00070     HBITMAP hFOldbmp;   //  SetObjectで得られた1つ前のハンドルを保持する
00071     HDC     dcFrom;     //  描画用
00072     int     nRetPos;    //  後処理用
00073     m_cx = m_cy  = 16;
00074
00075     nRetPos = 0;
00076     do {
00077         //  From Here 2001.7.1 GAE
00078         //  2001.7.1 GAE リソースをローカルファイル(sakuraディレクトリ) my_icons.bmp から読めるように
00079         // 2007.05.19 ryoji 設定ファイル優先に変更
00080         TCHAR szPath[_MAX_PATH];
00081         GetInidirOrExedir( szPath, FN_TOOL_BMP );
00082         hRscbmp = (HBITMAP)::LoadImage( NULL, szPath, IMAGE_BITMAP, 0, 0,
00083             LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
00084
00085         if( hRscbmp == NULL ) { // ローカルファイルの読み込み失敗時はリソースから取得
00086             //  このブロック内は従来の処理
00087             //  リソースからBitmapを読み込む
00088             //  2003.09.29 wmlhq 環境によってアイコンがつぶれる
00089             //hRscbmp = ::LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_MYTOOL ) );
00090             hRscbmp = (HBITMAP)::LoadImage( hInstance, MAKEINTRESOURCE( IDB_MYTOOL ), IMAGE_BITMAP, 0, 0,
00091                 LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS  );
00092             if( hRscbmp == NULL ){
00093                 //  Oct. 4, 2003 genta エラーコード追加
00094                 //  正常終了と同じコードだとdcFromを不正に解放してしまう
00095                 nRetPos = 2;
00096                 break;
00097             }
00098         }
00099         //  To Here 2001.7.1 GAE
00100         m_hIconBitmap = hRscbmp;
00101
00102         //  透過色を得るためにDCにマップする
00103         //  2003.07.21 genta 透過色を得る以外の目的では使わなくなった
00104         dcFrom = CreateCompatibleDC(0); //  転送元用
00105         if( dcFrom == NULL ){
00106             nRetPos = 1;
00107             break;
00108         }
00109
00110         //  まずbitmapをdcにmapする
00111         //  こうすることでCreateCompatibleBitmapで
00112         //  hRscbmpと同じ形式のbitmapを作れる．
00113         //  単にCreateCompatibleDC(0)で取得したdcや
00114         //  スクリーンのDCに対してCreateCompatibleBitmapを
00115         //  使うとモノクロBitmapになる．
00116         hFOldbmp = (HBITMAP)SelectObject( dcFrom, hRscbmp );
00117         if( hFOldbmp == NULL ){
00118             nRetPos = 4;
00119             break;
00120         }
00121
00122         m_cTrans = GetPixel( dcFrom, 0, 0 );//  取得した画像の(0,0)の色を背景色として使う
00123
00124         //  2003.07.21 genta
00125         //  ImageListへの登録部分は当然ばっさり削除
00126
00127         //  もはや処理とは無関係だが，後学のためにコメントのみ残しておこう
00128         //---------------------------------------------------------
00129         //  BitmapがMemoryDCにAssignされている間はbitmapハンドルを
00130         //  使っても正しいbitmapが取得できない．
00131         //  つまり，DCへの描画命令を発行してもその場でBitmapに
00132         //  反映されるわけではない．
00133         //  BitmapをDCから取り外して初めて内容の保証ができる
00134
00135         //  DCのmap/unmapが速度に大きく影響するため，
00136         //  横長のBitmapを作って一括登録するように変更
00137         //  これによって250msecくらい速度が改善される．
00138         //---------------------------------------------------------
00139
00140     }while(0);  //  1回しか通らない
00141
00142     //  後処理
00143     switch( nRetPos ){
00144     case 0:
00145         //  Oct. 4, 2003 genta hRscBmpをdcFromから切り離しておく必要がある
00146         //  アイコン描画変更時に過って削除されていた
00147         SelectObject( dcFrom, hFOldbmp );
00148     case 4:
00149         DeleteDC( dcFrom );
00150     case 2:
00151     case 1:
00152         //  2003.07.21 genta hRscbmpは m_hIconBitmap としてオブジェクトと
00153         //  同じだけ保持されるので解放してはならない
00154         break;
00155     }
00156
00157     return nRetPos == 0;
00158
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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CImageListMgr.h

sakura_core

CImageListMgr.h

ImageListの取り扱い [詳細]

#include "global.h"

CImageListMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CImageListMgr
ImageListの管理 [詳細]

説明

ImageListの取り扱い

作者:
genta
日付:
Oct. 11, 2000 genta

CImageListMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CImageListMgr.h ソースファイル

sakura_core

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);   //  生成
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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CIoBridge.cpp

sakura_core

CIoBridge.cpp

#include "stdafx.h"
#include "CIoBridge.h"
#include "charset/CCodeFactory.h"
#include "charset/CCodeBase.h"

CIoBridge.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:25:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CIoBridge.cpp ソースファイル

sakura_core

CIoBridge.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CIoBridge.h"
00003 #include "charset/CCodeFactory.h"
00004 #include "charset/CCodeBase.h"
00005
00007 EConvertResult CIoBridge::FileToImpl(
00008     const CMemory*  pSrc,
00009     CNativeW*       pDst,
00010     ECodeType       eCharcodeFrom,
00011     int             nFlag
00012 )
00013 {
00014     //任意の文字コードからUnicodeへ変換する
00015     CCodeBase* pCode=CCodeFactory::CreateCodeBase(eCharcodeFrom,nFlag);
00016     EConvertResult ret = pCode->CodeToUnicode(pSrc,pDst);
00017     delete pCode;
00018
00019     //結果
00020     return ret;
00021 }
00022
00023 EConvertResult CIoBridge::ImplToFile(
00024     const CNativeW* pSrc,
00025     CMemory*            pDst,
00026     ECodeType           eCharcodeTo
00027 )
00028 {
00029     // Unicodeから任意の文字コードへ変換する
00030     CCodeBase* pCode=CCodeFactory::CreateCodeBase(eCharcodeTo,0);
00031     EConvertResult ret = pCode->UnicodeToCode(pSrc,pDst);
00032     delete pCode;
00033
00034     //結果
00035     return ret;
00036 }
00037
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CIoBridge.h

sakura_core

CIoBridge.h

#include "CMemory.h"
#include "charset/CCodeBase.h"

CIoBridge.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CIoBridge

Sakura-Editorに対してSat Nov 17 20:25:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CIoBridge.h ソースファイル

sakura_core

CIoBridge.h

説明を見る。
00001 #pragma once
00002
00003 #include "CMemory.h"
00004 #include "charset/CCodeBase.h"
00005
00006 class CIoBridge{
00007 public:
00009     static EConvertResult FileToImpl(
00010         const CMemory*  pSrc,
00011         CNativeW*       pDst,
00012         ECodeType       eCharcodeFrom,
00013         int             nFlag
00014     );
00015
00017     static EConvertResult ImplToFile(
00018         const CNativeW* pSrc,
00019         CMemory*            pDst,
00020         ECodeType           eCharcodeTo
00021     );
00022 };
00023
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CJis.cpp

sakura_core » charset

CJis.cpp

#include "stdafx.h"
#include "CJis.h"
#include "CShiftJis.h"
#include <mbstring.h>
#include "convert/CConvert_Base64Decode.h"
#include "charcode.h"
#include "codeutil.h"

CJis.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 CHAR_8BITCODE 1

CJis.cpp の 18 行で定義されています。

参照元 CJis::JIStoSJIS(), と CJis::StrSJIStoJIS().

#define CHAR_ASCII 0

CJis.cpp の 17 行で定義されています。

参照元 CJis::JIStoSJIS(), と CJis::StrSJIStoJIS().

#define CHAR_NULL 3

CJis.cpp の 20 行で定義されています。

参照元 CJis::StrSJIStoJIS().

#define CHAR_ZENKAKU 2

CJis.cpp の 19 行で定義されています。

参照元 CJis::JIStoSJIS(), と CJis::StrSJIStoJIS().

#define ESC_8BIT "\x01b(I"

CJis.cpp の 11 行で定義されています。

参照元 CJis::StrSJIStoJIS().

#define ESC_ASCII "\x01b(B"

CJis.cpp の 10 行で定義されています。

参照元 CJis::StrSJIStoJIS().

#define ESC_JIS "\x01b$B"

CJis.cpp の 9 行で定義されています。

参照元 CJis::StrSJIStoJIS().

#define MIME_BASE64 1

CJis.cpp の 13 行で定義されています。

参照元 CJis::JIStoSJIS().

#define MIME_QUOTED 2

CJis.cpp の 14 行で定義されています。

参照元 CJis::JIStoSJIS().

Sakura-Editorに対してSat Nov 17 20:25:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CJis.cpp ソースファイル

sakura_core » charset

CJis.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CJis.h"
00003 #include "CShiftJis.h"
00004 #include <mbstring.h>
00005 #include "convert/CConvert_Base64Decode.h"
00006 #include "charcode.h"
00007 #include "codeutil.h"
00008
00009 #define ESC_JIS     "\x01b$B"
00010 #define ESC_ASCII   "\x01b(B"
00011 #define ESC_8BIT    "\x01b(I"
00012
00013 #define MIME_BASE64 1
00014 #define MIME_QUOTED 2
00015
00016 /* 文字種別 */
00017 #define CHAR_ASCII      0   /* ASCII文字 */
00018 #define CHAR_8BITCODE   1   /* 8ビットコード(半角カタカナなど) */
00019 #define CHAR_ZENKAKU    2   /* 全角文字 */
00020 #define CHAR_NULL       3   /* なにもない */
00021
00022
00023 /* E-Mail(JIS→Unicode)コード変換 */
00024 //2007.08.13 kobake 追加
00025 EConvertResult CJis::JISToUnicode(CMemory* pMem, bool base64decode)
00026 {
00027     //$$ SJISを介しているため、無駄にデータが失われるかもしれません
00028     JIStoSJIS(pMem,base64decode);
00029     CShiftJis::SJISToUnicode(pMem);
00030
00031     return RESULT_COMPLETE;
00032 }
00033
00034 EConvertResult CJis::UnicodeToJIS(CMemory* pMem)
00035 {
00036     //$$ SJISを介しているため、無駄にデータが失われるかもしれません
00037     CShiftJis::UnicodeToSJIS(pMem);
00038     SJIStoJIS(pMem);
00039
00040     return RESULT_COMPLETE;
00041 }
00042
00043
00044 /* JIS→SJIS変換 */
00045 long CJis::MemJIStoSJIS( unsigned char* pszSrc, long nSrcLen )
00046 {
00047     int             i, j;
00048     char*           pszDes;
00049     unsigned short  sCode;
00050
00051     pszDes = new char [nSrcLen + 1];
00052     memset( pszDes, 0, nSrcLen + 1 );
00053     j = 0;
00054     for( i = 0; i < nSrcLen - 1; i++ ){
00055         sCode = (unsigned short)_mbcjistojms(
00056             (unsigned int)
00057             (((unsigned short)pszSrc[i    ] << 8) |
00058              ((unsigned short)pszSrc[i + 1]))
00059         );
00060         if( sCode != 0 ){
00061             pszDes[j    ] = (unsigned char)(sCode >> 8);
00062             pszDes[j + 1] = (unsigned char)(sCode);
00063             ++i;
00064             j+=2;
00065         }else{
00066             pszDes[j] = pszSrc[i];
00067             j++;
00068         }
00069     }
00070     pszDes[j] = 0;
00071     memcpy( pszSrc, pszDes, j );
00072     delete [] pszDes;
00073     return j;
00074 }
00075
00076
00077
00078 /* コード変換 JIS→SJIS */
00079 void CJis::JIStoSJIS( CMemory* pMem, bool bMIMEdecode )
00080 {
00081     //データ取得
00082     CMemory cSrcMem(pMem->GetRawPtr(),pMem->GetRawLength());
00083     int                     nSrcLen;
00084     const unsigned char*    pszSrc = (const unsigned char*)cSrcMem.GetRawPtr(&nSrcLen);
00085
00086     CMemory cTmpMem;
00087
00088     int             i;
00089     int             j;
00090     unsigned char*  pszDes;
00091     BOOL            bMIME = FALSE;
00092     int             nMEME_Selected;
00093     long            nWorkBgn;
00094     long            nWorkLen;
00095     unsigned char*  pszWork;
00096
00097     int             nISOCode = CHAR_ASCII;
00098     int             nOldISOCode = nISOCode;
00099     BOOL            bFindESCSeq = FALSE;
00100     int             nESCSeqLen  = - 1; // エスケープシーケンス長 - 1
00101
00102     pszDes = new unsigned char [nSrcLen + 1];
00103     memset( pszDes, 0, nSrcLen + 1 );
00104     j = 0;
00105     if( bMIMEdecode ){
00106         for( i = 0; i < nSrcLen; i++ ){
00107             if( i <= nSrcLen - 16 && '=' == pszSrc[i] ){
00108                 if( 0 == auto_memicmp( "=?ISO-2022-JP?B?", (char*)&pszSrc[i], 16 ) ){
00109                     nMEME_Selected = MIME_BASE64;
00110                     bMIME = TRUE;
00111                     i += 15;
00112                     nWorkBgn = i + 1;
00113                     continue;
00114                 }
00115                 if( 0 == auto_memicmp( "=?ISO-2022-JP?Q?", (char*)&pszSrc[i], 16 ) ){
00116                     nMEME_Selected = MIME_QUOTED;
00117                     bMIME = TRUE;
00118                     i += 15;
00119                     nWorkBgn = i + 1;
00120                     continue;
00121                 }
00122             }
00123             if( bMIME == TRUE ){
00124                 if( i <= nSrcLen - 2  &&
00125                     0 == memcmp( "?=", &pszSrc[i], 2 ) ){
00126                     nWorkLen = i - nWorkBgn;
00127                     pszWork = new unsigned char [nWorkLen + 1];
00128                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00129                     pszWork[nWorkLen] = '\0';
00130                     switch( nMEME_Selected ){
00131                     case MIME_BASE64:
00132                         // Base64デコード
00133                         nWorkLen = CConvert_Base64Decode::MemBASE64_Decode((char*)pszWork, nWorkLen, pszWork);
00134                         break;
00135                     case MIME_QUOTED:
00136                         // Quoted-Printableデコード
00137                         nWorkLen = QuotedPrintable_Decode( (char*)pszWork, nWorkLen );
00138                         break;
00139                     }
00140                     memcpy( &pszDes[j], pszWork, nWorkLen );
00141                     bMIME = FALSE;
00142                     j += nWorkLen;
00143                     ++i;
00144                     delete [] pszWork;
00145                     continue;
00146                 }else{
00147                     continue;
00148                 }
00149             }
00150             pszDes[j] = pszSrc[i];
00151             j++;
00152         }
00153         if( bMIME ){
00154             nWorkBgn -= 16; // MIMEヘッダをそのままコピー
00155             nWorkLen = i - nWorkBgn;
00156             memcpy( &pszDes[j], &pszSrc[nWorkBgn], nWorkLen );
00157             j += nWorkLen;
00158         }
00159
00160         // 非ASCIIテキスト対応メッセージヘッダのMIMEコード
00161         cTmpMem.SetRawData(pszDes,j);
00162         //memcpy( pszSrc, pszDes, j );
00163
00164         nSrcLen = j;
00165         pszSrc=(const unsigned char*)cTmpMem.GetRawPtr();
00166     }
00167
00168     nWorkBgn = 0;
00169     j = 0;
00170     for( i = 0; i < nSrcLen; i++ ){
00171         if( i <= nSrcLen - 3        &&
00172             pszSrc[i + 0] == 0x1b   &&
00173             pszSrc[i + 1] == '$'    &&
00174            (pszSrc[i + 2] == 'B' || pszSrc[i + 2] == '@') ){
00175
00176             bFindESCSeq = TRUE;
00177             nOldISOCode = nISOCode;
00178             nISOCode = CHAR_ZENKAKU;
00179             nESCSeqLen = 2;
00180         }
00181         else if( i <= nSrcLen - 3       &&
00182             pszSrc[i + 0] == 0x1b   &&
00183             pszSrc[i + 1] == '('    &&
00184             pszSrc[i + 2] == 'I' ){
00185
00186             bFindESCSeq = TRUE;
00187             nOldISOCode = nISOCode;
00188             nISOCode = CHAR_8BITCODE;
00189             nESCSeqLen = 2;
00190         }
00191         else if( i <= nSrcLen - 3       &&
00192             pszSrc[i + 0] == 0x1b   &&
00193             pszSrc[i + 1] == '('    &&
00194            (pszSrc[i + 2] == 'B' || pszSrc[i + 2] == 'J') ){
00195
00196             bFindESCSeq = TRUE;
00197             nOldISOCode = nISOCode;
00198             nISOCode = CHAR_ASCII;
00199             nESCSeqLen = 2;
00200         }
00201
00202         if( bFindESCSeq ){
00203             if( 0 < i - nWorkBgn ){
00204                 if( CHAR_ZENKAKU == nOldISOCode ){
00205                     nWorkLen = i - nWorkBgn;
00206                     pszWork = new unsigned char [nWorkLen + 1];
00207                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00208                     pszWork[nWorkLen] = '\0';
00209                     // JIS→SJIS変換
00210                     nWorkLen = MemJIStoSJIS( (unsigned char*)pszWork, nWorkLen );
00211                     memcpy( &pszDes[j], pszWork, nWorkLen );
00212                     j += nWorkLen;
00213                     delete [] pszWork;
00214                 }
00215             }
00216             i += nESCSeqLen;
00217             nWorkBgn = i + 1;
00218             bFindESCSeq = FALSE;
00219             continue;
00220         }
00221         else if( CHAR_ASCII == nISOCode ){
00222             pszDes[j] = pszSrc[i];
00223             j++;
00224             continue;
00225         }
00226         else if( CHAR_8BITCODE == nISOCode ){
00227             pszDes[j] = (unsigned char)0x80 | pszSrc[i];
00228             j++;
00229             continue;
00230         }
00231     }
00232
00233     // ESCSeqがASCIIに戻らなかったときに，データを失わないように
00234     if( CHAR_ZENKAKU == nISOCode ){
00235         if( 0 < i - nWorkBgn ){
00236             nWorkBgn -= nESCSeqLen + 1; // ESCSeqも残しておきたい
00237             nWorkLen = i - nWorkBgn;
00238             memcpy( &pszDes[j], &pszSrc[nWorkBgn], nWorkLen );
00239             j += nWorkLen;
00240         }
00241     }
00242
00243     pMem->SetRawData(pszDes,j);
00244 //  memcpy( pszSrc, pszDes, j );
00245  // m_nDataLen = j;
00246     delete [] pszDes;
00247     return;
00248 }
00249
00250
00251
00252 /* Quoted-Printableデコード */
00253 long CJis::QuotedPrintable_Decode( char* pszSrc, long nSrcLen )
00254 {
00255     int         i;
00256     char*       pszDes;
00257     long        lDesSize;
00258     char        szHex[3];
00259     int         nHex;
00260
00261     memset( szHex, 0, 3 );
00262     pszDes = new char [nSrcLen + 1];
00263     memset( pszDes, 0, nSrcLen + 1 );
00264     lDesSize = 0;
00265     for( i = 0; i < nSrcLen; i++ ){
00266         if( pszSrc[i] == '=' ){
00267             szHex[0] = pszSrc[i + 1];
00268             szHex[1] = pszSrc[i + 2];
00269             sscanf( szHex, "%x", &nHex );
00270             pszDes[lDesSize] = (char)nHex;
00271             lDesSize++;
00272             i += 2;
00273         }else{
00274             pszDes[lDesSize] = pszSrc[i];
00275             lDesSize++;
00276         }
00277     }
00278     pszDes[lDesSize] = 0;
00279     memcpy( pszSrc, pszDes, lDesSize );
00280     delete [] pszDes;
00281     return lDesSize;
00282 }
00283
00284
00285
00286
00287
00288
00289 /* コード変換 SJIS→JIS */
00290 void CJis::SJIStoJIS( CMemory* pMem )
00291 {
00292     void*   pBufJIS;
00293     int     nBufJISLen;
00294     CMemory cMem;
00295
00296     /* SJIS→JIS */
00297     StrSJIStoJIS( &cMem, (unsigned char *)pMem->GetRawPtr(), pMem->GetRawLength() );
00298     pBufJIS = cMem.GetRawPtr( &nBufJISLen );
00299     pMem->SetRawData( pBufJIS, nBufJISLen );
00300     return;
00301 }
00302
00303
00304
00309 int CJis::StrSJIStoJIS( CMemory* pcmemDes, unsigned char* pszSrc, int nSrcLen )
00310 {
00311 //  BOOL bSJISKAN   = FALSE;
00312 //  BOOL b8BITCODE  = FALSE;
00313
00314     long            nWorkBgn;
00315     long            nWorkLen;
00316     int             i;
00317     int             j;
00318     unsigned char * pszWork;
00319     int             nCharKindOld;
00320     int             nCharKind;
00321     int             bChange;
00322     nCharKind = CHAR_ASCII;     /* ASCII文字 */
00323     nCharKindOld = nCharKind;
00324     bChange = FALSE;
00325 //  /* 文字種別 */
00326 //  #define CHAR_ASCII      0   /* ASCII文字 */
00327 //  #define CHAR_8BITCODE   1   /* 8ビットコード(半角カタカナなど) */
00328 //  #define CHAR_ZENKAKU    2   /* 全角文字 */
00329
00330     pcmemDes->SetRawData("",0);
00331     pcmemDes->AllocBuffer( nSrcLen );
00332 //  bSJISKAN  = FALSE;
00333     nWorkBgn = 0;
00334     for( i = 0;; i++ ){
00335         /* 処理が終了した */
00336         if( i >= nSrcLen ){
00337             nCharKind = CHAR_NULL;  /* なにもない */
00338         }else
00339         // 漢字か？
00340         if( ( i < nSrcLen - 1) && _IS_SJIS_1(pszSrc[i + 0]) && _IS_SJIS_2(pszSrc[i + 1]) ){
00341             nCharKind = CHAR_ZENKAKU;   /* 全角文字 */
00342 //          ++i;
00343         }
00344         else if( pszSrc[i] & (unsigned char)0x80 ){
00345             nCharKind = CHAR_8BITCODE;  /* 8ビットコード(半角カタカナなど) */
00346         }else{
00347             nCharKind = CHAR_ASCII;     /* ASCII文字 */
00348         }
00349         /* 文字種類が変化した */
00350         if( nCharKindOld != nCharKind ){
00351             if( CHAR_NULL != nCharKind ){
00352                 bChange = TRUE;
00353             }
00354
00355             nWorkLen = i - nWorkBgn;
00356             /* 以前の文字種類 */
00357             switch( nCharKindOld ){
00358             case CHAR_ASCII:    /* ASCII文字 */
00359                 if( 0 < nWorkLen ){
00360                     pcmemDes->AppendRawData( &(pszSrc[nWorkBgn]), nWorkLen );
00361                 }
00362                 break;
00363             case CHAR_8BITCODE: /* 8ビットコード(半角カタカナなど) */
00364                 if( 0 < nWorkLen ){
00365                     pszWork = new unsigned char[nWorkLen + 1];
00366                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00367                     pszWork[ nWorkLen ] = '\0';
00368                     for( j = 0; j < nWorkLen; ++j ){
00369                         pszWork[j] -= (unsigned char)0x80;
00370                     }
00371                     pcmemDes->AppendRawData( pszWork, nWorkLen );
00372                     delete [] pszWork;
00373                 }
00374                 break;
00375             case CHAR_ZENKAKU:  /* 全角文字 */
00376                 if( 0 < nWorkLen ){
00377                     pszWork = new unsigned char[nWorkLen + 1];
00378                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00379                     pszWork[ nWorkLen ] = '\0';
00380                     // SJIS→JIS変換
00381                     nWorkLen = MemSJIStoJIS( pszWork, nWorkLen );
00382                     pcmemDes->AppendRawData( pszWork, nWorkLen );
00383                     delete [] pszWork;
00384                 }
00385                 break;
00386             }
00387             /* 新しい文字種類 */
00388             switch( nCharKind ){
00389             case CHAR_ASCII:    /* ASCII文字 */
00390                 pcmemDes->_AppendSz( ESC_ASCII );
00391                 break;
00392             case CHAR_NULL:     /* なにもない */
00393                 if( bChange &&                  /* 一回は文字種が変化した */
00394                     nCharKindOld != CHAR_ASCII  /* 直前がASCII文字ではない */
00395                 ){
00396                     pcmemDes->_AppendSz( ESC_ASCII );
00397                 }
00398                 break;
00399             case CHAR_8BITCODE: /* 8ビットコード(半角カタカナなど) */
00400                 pcmemDes->_AppendSz( ESC_8BIT );
00401                 break;
00402             case CHAR_ZENKAKU:  /* 全角文字 */
00403                 pcmemDes->_AppendSz( ESC_JIS );
00404                 break;
00405             }
00406             nCharKindOld = nCharKind;
00407             nWorkBgn = i;
00408             if( nCharKind == CHAR_NULL ){   /* なにもない */
00409                 break;
00410             }
00411         }
00412         if( nCharKind == CHAR_ZENKAKU ){    /* 全角文字 */
00413             ++i;
00414         }
00415     }
00416     return pcmemDes->GetRawLength();
00417 }
00418
00419
00420
00421 /* SJIS→JIS変換 */
00422 long CJis::MemSJIStoJIS( unsigned char* pszSrc, long nSrcLen )
00423 {
00424     int             i, j;
00425     char *          pszDes;
00426     unsigned short  sCode;
00427
00428     pszDes = new char[nSrcLen + 1];
00429     memset( pszDes, 0, nSrcLen + 1 );
00430     j = 0;
00431     for( i = 0; i < nSrcLen - 1; i++ ){
00432         //  Oct. 3, 2002 genta IBM拡張文字対応
00433         sCode = _mbcjmstojis_ex( pszSrc + i );
00434         if( sCode != 0 ){
00435             pszDes[j    ] = (unsigned char)(sCode >> 8);
00436             pszDes[j + 1] = (unsigned char)(sCode);
00437             ++i;
00438             j += 2;
00439         }else{
00440             pszDes[j] = pszSrc[i];
00441             j++;
00442         }
00443     }
00444     pszDes[j] = 0;
00445     memcpy( pszSrc, pszDes, j );
00446     delete [] pszDes;
00447     return j;
00448 }
00449
00450
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CJis.h

sakura_core » charset

CJis.h

#include "CCodeBase.h"

CJis.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CJis

Sakura-Editorに対してSat Nov 17 20:25:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CJis.h ソースファイル

sakura_core » charset

CJis.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CJis : public CCodeBase{
00006 public:
00007     CJis(bool base64decode = true) : m_base64decode(base64decode) { }
00008 public:
00009     //CCodeBaseインターフェース
00010     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return JISToUnicode(pDst->_GetMemory()); }
00011     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToJIS(pDst); }
00012
00013 public:
00014     //実装
00015     static EConvertResult JISToUnicode(CMemory* pMem, bool base64decode = true);    // E-Mail(JIS→Unicode)コード変換 //2007.08.13 kobake 追加
00016     static EConvertResult UnicodeToJIS(CMemory* pMem);      // Unicode   → JISコード変換
00017
00018     static void SJIStoJIS(CMemory* pMem);       // SJIS→JISコード変換
00019     static void JIStoSJIS( CMemory* pMem, bool base64decode = true);        // E-Mail(JIS→SJIS)コード変換    //Jul. 15, 2001 JEPRO
00020
00021 protected:
00022     static long MemJIStoSJIS(unsigned char*, long );    /* JIS→SJIS変換 */
00023     static long MemSJIStoJIS( unsigned char*, long );   /* SJIS→JIS変換 */
00024     static int StrSJIStoJIS( CMemory*, unsigned char*, int );   /* SJIS→JISで新メモリ確保 */
00025     static long QuotedPrintable_Decode(char*, long );   /* Quoted-Printableデコード */
00026
00027 private:
00028     //変換方針
00029     bool m_base64decode;
00030 };
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyBind.cpp

sakura_core

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 Nov 17 20:25:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyBind.cpp ソースファイル

sakura_core

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     HACCEL  hAccel;
00051     int     j, k;
00052
00053     // 機能が割り当てられているキーの数をカウント -> nAccelArrNum
00054     int nAccelArrNum = 0;
00055     for( int i = 0; i < nKeyNameArrNum; ++i ){
00056         if( 0 != pKeyNameArr[i].m_nKeyCode ){
00057             for( j = 0; j < 8; ++j ){
00058                 if( 0 != GetFuncCodeAt( pKeyNameArr[i], j ) ){
00059                     nAccelArrNum++;
00060                 }
00061             }
00062         }
00063     }
00064 //  nAccelArrNum = nKeyNameArrNum * 8;
00065
00066
00067     if( nAccelArrNum <= 0 ){
00068         /* 機能割り当てがゼロ */
00069         return NULL;
00070     }
00071     pAccelArr = new ACCEL[nAccelArrNum];
00072     k = 0;
00073     for( int i = 0; i < nKeyNameArrNum; ++i ){
00074         if( 0 != pKeyNameArr[i].m_nKeyCode ){
00075             for( j = 0; j < 8; ++j ){
00076                 if( 0 != GetFuncCodeAt( pKeyNameArr[i], j ) ){
00077                     pAccelArr[k].fVirt = FNOINVERT | FVIRTKEY;;
00078                     pAccelArr[k].key = pKeyNameArr[i].m_nKeyCode;
00079                     pAccelArr[k].cmd = pKeyNameArr[i].m_nKeyCode | (((WORD)j)<<8) ;
00080                     if( j & _SHIFT ){
00081                         pAccelArr[k].fVirt |= FSHIFT;
00082                     }
00083                     if( j & _CTRL ){
00084                         pAccelArr[k].fVirt |= FCONTROL;
00085                     }
00086                     if( j & _ALT ){
00087                         pAccelArr[k].fVirt |= FALT;
00088                     }
00089                     k++;
00090                 }
00091             }
00092         }
00093     }
00094     hAccel = ::CreateAcceleratorTable( pAccelArr, nAccelArrNum );
00095     delete [] pAccelArr;
00096     return hAccel;
00097 }
00098
00099
00100
00101
00102
00103
00109 EFunctionCode CKeyBind::GetFuncCode(
00110         WORD        nAccelCmd,
00111         int         nKeyNameArrNum,
00112         KEYDATA*    pKeyNameArr,
00113         BOOL        bGetDefFuncCode /* = TRUE */
00114 )
00115 {
00116     int nCmd = (int)( nAccelCmd & 0x00ff );
00117     int nSts = (int)( ( nAccelCmd & 0xff00 ) >> 8 );
00118     for( int i = 0; i < nKeyNameArrNum; ++i ){
00119         if( nCmd == pKeyNameArr[i].m_nKeyCode ){
00120             return GetFuncCodeAt( pKeyNameArr[i], nSts, bGetDefFuncCode );
00121         }
00122     }
00123     return F_DEFAULT;
00124 }
00125
00126
00127
00128
00129
00130
00137 int CKeyBind::CreateKeyBindList(
00138     HINSTANCE       hInstance,
00139     int             nKeyNameArrNum,
00140     KEYDATA*        pKeyNameArr,
00141     CNativeW&       cMemList,
00142     CFuncLookup*    pcFuncLookup,
00143     BOOL            bGetDefFuncCode
00144 )
00145 {
00146     int     i;
00147     int     j;
00148     int     nValidKeys;
00149     WCHAR   pszStr[256];
00150     WCHAR   szFuncName[256];
00151     WCHAR   szFuncNameJapanese[256];
00152
00153     nValidKeys = 0;
00154 //  cMemList = "";
00155 //  cMemList.SetData( "", strlen( "" ) );
00156     cMemList.SetString(LTEXT(""));
00157     const WCHAR*    pszSHIFT = LTEXT("Shift+");
00158     const WCHAR*    pszCTRL  = LTEXT("Ctrl+");
00159     const WCHAR*    pszALT   = LTEXT("Alt+");
00160 //  char*   pszEQUAL = " = ";
00161     const WCHAR*    pszTAB   = LTEXT("\t");
00162
00163 //  char*   pszCR = "\n";   //Feb. 17, 2001 JEPRO \n=0x0a=LFが行末コードになってしまうので
00164     const WCHAR*    pszCR    = LTEXT("\r\n");   //\r=0x0d=CRを追加
00165
00166
00167     cMemList.AppendString( LTEXT("キー\t機能名\t関数名\t機能番号\tキーマクロ記録可/不可") );
00168     cMemList.AppendString( pszCR );
00169     cMemList.AppendString( LTEXT("-----\t-----\t-----\t-----\t-----") );
00170     cMemList.AppendString( pszCR );
00171
00172     for( j = 0; j < 8; ++j ){
00173         for( i = 0; i < nKeyNameArrNum; ++i ){
00174             int iFunc = GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode );
00175
00176             if( 0 != iFunc ){
00177                 nValidKeys++;
00178                 if( j & _SHIFT ){
00179                     cMemList.AppendString( pszSHIFT );
00180                 }
00181                 if( j & _CTRL ){
00182                     cMemList.AppendString( pszCTRL );
00183                 }
00184                 if( j & _ALT ){
00185                     cMemList.AppendString( pszALT );
00186                 }
00187                 cMemList.AppendString( to_wchar(pKeyNameArr[i].m_szKeyName) );
00188 //              cMemList.AppendString( pszEQUAL );
00189 //              cMemList.AppendString( pszTAB );
00190                 //  Oct. 31, 2001 genta
00191                 if( !pcFuncLookup->Funccode2Name(
00192                     iFunc,
00193                     szFuncNameJapanese, 255 )){
00194                     auto_strcpy( szFuncNameJapanese, LTEXT("---名前が定義されていない-----") );
00195                 }
00196                 auto_strcpy( szFuncName, LTEXT("")/*"---unknown()--"*/ );
00197
00198 //              /* 機能名日本語 */
00199 //              ::LoadString(
00200 //                  hInstance,
00201 //                  pKeyNameArr[i].m_nFuncCodeArr[j],
00202 //                   szFuncNameJapanese, 255
00203 //              );
00204                 cMemList.AppendString( pszTAB );
00205                 cMemList.AppendString( szFuncNameJapanese );
00206
00207                 /* 機能ID→関数名，機能名日本語 */
00208                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00209 //              CMacro::GetFuncInfoByID(
00210                 CSMacroMgr::GetFuncInfoByID(
00211                     hInstance,
00212                     iFunc,
00213                     szFuncName,
00214                     szFuncNameJapanese
00215                 );
00216
00217                 /* 関数名 */
00218                 cMemList.AppendString( pszTAB );
00219                 cMemList.AppendString( szFuncName );
00220
00221                 /* 機能番号 */
00222                 cMemList.AppendString( pszTAB );
00223                 auto_sprintf( pszStr, LTEXT("%d"), iFunc );
00224                 cMemList.AppendString( pszStr );
00225
00226                 /* キーマクロに記録可能な機能かどうかを調べる */
00227                 cMemList.AppendString( pszTAB );
00228                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00229 //              if( CMacro::CanFuncIsKeyMacro( pKeyNameArr[i].m_nFuncCodeArr[j] ) ){
00230                 if( CSMacroMgr::CanFuncIsKeyMacro( iFunc ) ){
00231                     cMemList.AppendString( LTEXT("○") );
00232                 }else{
00233                     cMemList.AppendString( LTEXT("×") );
00234                 }
00235
00236
00237
00238                 cMemList.AppendString( pszCR );
00239             }
00240         }
00241     }
00242 //  delete [] pszStr;
00243     return nValidKeys;
00244 }
00245
00246
00247
00251 int CKeyBind::GetKeyStr(
00252         HINSTANCE   hInstance,
00253         int         nKeyNameArrNum,
00254         KEYDATA*    pKeyNameArr,
00255         CNativeT&   cMemList,
00256         int         nFuncId,
00257         BOOL        bGetDefFuncCode /* = TRUE */
00258 )
00259 {
00260     int     i;
00261     int     j;
00262     const TCHAR*    pszSHIFT = _T("Shift+");
00263     const TCHAR*    pszCTRL  = _T("Ctrl+");
00264     const TCHAR*    pszALT   = _T("Alt+");
00265 //  cMemList.SetData( "", strlen( "" ) );
00266     cMemList.SetString(_T(""));
00267     for( j = 0; j < 8; ++j ){
00268         for( i = 0; i < nKeyNameArrNum; ++i ){
00269             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00270                 if( j & _SHIFT ){
00271 //                  cMemList.Append( pszSHIFT, strlen( pszSHIFT ) );
00272                     cMemList.AppendString( pszSHIFT );
00273                 }
00274                 if( j & _CTRL ){
00275 //                  cMemList.Append( pszCTRL, strlen( pszCTRL ) );
00276                     cMemList.AppendString( pszCTRL );
00277                 }
00278                 if( j & _ALT ){
00279 //                  cMemList.Append( pszALT, strlen( pszALT ) );
00280                     cMemList.AppendString( pszALT );
00281                 }
00282 //              cMemList.Append( pKeyNameArr[i].m_szKeyName, strlen( pKeyNameArr[i].m_szKeyName ) );
00283                 cMemList.AppendString( pKeyNameArr[i].m_szKeyName );
00284                 return 1;
00285             }
00286         }
00287     }
00288     return 0;
00289 }
00290
00291
00295 int CKeyBind::GetKeyStrList(
00296     HINSTANCE   hInstance,
00297     int         nKeyNameArrNum,
00298     KEYDATA*    pKeyNameArr,
00299     CNativeT*** pppcMemList,
00300     int         nFuncId,
00301     BOOL        bGetDefFuncCode /* = TRUE */
00302 )
00303 {
00304     int     i;
00305     int     j;
00306     const TCHAR*    pszSHIFT = _T("Shift+");
00307     const TCHAR*    pszCTRL  = _T("Ctrl+");
00308     const TCHAR*    pszALT   = _T("Alt+");
00309     int     nAssignedKeysNum;
00310
00311     nAssignedKeysNum = 0;
00312     if( 0 == nFuncId ){
00313         return 0;
00314     }
00315     for( j = 0; j < 8; ++j ){
00316         for( i = 0; i < nKeyNameArrNum; ++i ){
00317             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00318                 nAssignedKeysNum++;
00319             }
00320         }
00321     }
00322     if( 0 == nAssignedKeysNum ){
00323         return 0;
00324     }
00325     (*pppcMemList) = new CNativeT*[nAssignedKeysNum + 1];
00326     for( i = 0; i < nAssignedKeysNum; ++i ){
00327         (*pppcMemList)[i] = new CNativeT;
00328     }
00329     (*pppcMemList)[i] = NULL;
00330
00331
00332     nAssignedKeysNum = 0;
00333     for( j = 0; j < 8; ++j ){
00334         for( i = 0; i < nKeyNameArrNum; ++i ){
00335             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00336                 if( j & _SHIFT ){
00337 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszSHIFT, strlen( pszSHIFT ) );
00338                     (*pppcMemList)[nAssignedKeysNum]->AppendString( pszSHIFT );
00339                 }
00340                 if( j & _CTRL ){
00341 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszCTRL, strlen( pszCTRL ) );
00342                     (*pppcMemList)[nAssignedKeysNum]->AppendString( pszCTRL );
00343                 }
00344                 if( j & _ALT ){
00345 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszALT, strlen( pszALT ) );
00346                     (*pppcMemList)[nAssignedKeysNum]->AppendString( pszALT );
00347                 }
00348 //              (*pppcMemList)[nAssignedKeysNum]->Append( pKeyNameArr[i].m_szKeyName, strlen( pKeyNameArr[i].m_szKeyName ) );
00349                 (*pppcMemList)[nAssignedKeysNum]->AppendString( pKeyNameArr[i].m_szKeyName );
00350                 nAssignedKeysNum++;
00351             }
00352         }
00353     }
00354     return nAssignedKeysNum;
00355 }
00356
00357
00361 TCHAR* CKeyBind::GetMenuLabel(
00362         HINSTANCE   hInstance,
00363         int         nKeyNameArrNum,
00364         KEYDATA*    pKeyNameArr,
00365         int         nFuncId,
00366         TCHAR*      pszLabel,
00367         BOOL        bKeyStr,
00368         BOOL        bGetDefFuncCode /* = TRUE */
00369 )
00370 {
00371     CNativeT        cMemList;
00372 //  int         i;
00373
00374
00375     if( 0 == _tcslen( pszLabel ) ){
00376         _tcscpy( pszLabel, _T("-- undefined name --") );
00377         ::LoadString( hInstance, nFuncId, pszLabel, 255 );
00378     }
00379
00380
00381     /* 機能に対応するキー名を追加するか */
00382     if( bKeyStr ){
00383         /* 機能に対応するキー名の取得 */
00384         if( ( IDM_SELWINDOW <= nFuncId && nFuncId <= IDM_SELWINDOW + 999 )
00385          || ( IDM_SELMRU <= nFuncId && nFuncId <= IDM_SELMRU + 999 )
00386          || ( IDM_SELOPENFOLDER <= nFuncId && nFuncId <= IDM_SELOPENFOLDER + 999 )
00387          ){
00388         }else{
00389             _tcscat( pszLabel, _T("\t") );
00390         }
00391
00392         if( GetKeyStr( hInstance, nKeyNameArrNum, pKeyNameArr, cMemList, nFuncId, bGetDefFuncCode ) ){
00393             _tcscat( pszLabel, cMemList.GetStringPtr() );
00394         }
00395     }
00396     return pszLabel;
00397 }
00398
00399
00409 EFunctionCode CKeyBind::GetDefFuncCode( int nKeyCode, int nState )
00410 {
00411     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();
00412     if( pShareData == NULL )
00413         return F_DEFAULT;
00414
00415     EFunctionCode nDefFuncCode = F_DEFAULT;
00416     if( nKeyCode == VK_F4 ){
00417         if( nState == _CTRL ){
00418             nDefFuncCode = F_FILECLOSE; // 閉じて(無題)
00419             if( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
00420                 nDefFuncCode = F_WINCLOSE;  // 閉じる
00421             }
00422         }
00423         else if( nState == _ALT ){
00424             nDefFuncCode = F_WINCLOSE;  // 閉じる
00425             if( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
00426                 if( !pShareData->m_Common.m_sTabBar.m_bTab_CloseOneWin ){
00427                     nDefFuncCode = F_GROUPCLOSE;    // グループを閉じる // 2007.06.20 ryoji
00428                 }
00429             }
00430         }
00431     }
00432     return nDefFuncCode;
00433 }
00434
00435
00446 EFunctionCode CKeyBind::GetFuncCodeAt( KEYDATA& KeyData, int nState, BOOL bGetDefFuncCode )
00447 {
00448     if( 0 != KeyData.m_nFuncCodeArr[nState] )
00449         return KeyData.m_nFuncCodeArr[nState];
00450     if( bGetDefFuncCode )
00451         return GetDefFuncCode( KeyData.m_nKeyCode, nState );
00452     return F_DEFAULT;
00453 };
00454
00455
00456 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyBind.h

sakura_core

CKeyBind.h

キー割り当てに関するクラス [詳細]

#include <windows.h>
#include "Funccode.h"

CKeyBind.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | KEYDATA
キー情報を保持する [詳細]
class | CKeyBind
キー割り当て関連ルーチン [詳細]

説明

キー割り当てに関するクラス

作者:
Norio Nakatani
日付:
1998/03/25 新規作成

1998/05/16 クラス内にデータを持たないように変更

CKeyBind.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:25:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyBind.h ソースファイル

sakura_core

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
00022 #include "Funccode.h"
00023
00025 struct KEYDATA {
00027     short           m_nKeyCode;
00028
00030     TCHAR           m_szKeyName[64];
00031
00037     EFunctionCode   m_nFuncCodeArr[8];
00038 };
00039
00040 class CFuncLookup;
00041
00042 /*-----------------------------------------------------------------------
00043 クラスの宣言
00044 -----------------------------------------------------------------------*/
00050 class CKeyBind
00051 {
00052 public:
00053     /*
00054     ||  Constructors
00055     */
00056     CKeyBind();
00057     ~CKeyBind();
00058
00059     /*
00060     ||  参照系メンバ関数
00061     */
00062     static HACCEL CreateAccerelator( int, KEYDATA* );
00063     static EFunctionCode GetFuncCode( WORD nAccelCmd, int nKeyNameArrNum, KEYDATA* pKeyNameArr, BOOL bGetDefFuncCode = TRUE );
00064     static EFunctionCode GetFuncCodeAt( KEYDATA& KeyData, int nState, BOOL bGetDefFuncCode = TRUE );    /* 特定のキー情報から機能コードを取得する */ // 2007.02.24 ryoji
00065     static EFunctionCode GetDefFuncCode( int nKeyCode, int nState );    /* キーのデフォルト機能を取得する */ // 2007.02.22 ryoji
00066
00068     static int CreateKeyBindList( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, CNativeW& cMemList, CFuncLookup* pcFuncLookup, BOOL bGetDefFuncCode = TRUE );
00069     static int GetKeyStr( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, CNativeT& cMemList, int nFuncId, BOOL bGetDefFuncCode = TRUE );    /* 機能に対応するキー名の取得 */
00070     static int GetKeyStrList( HINSTANCE hInstance, int nKeyNameArrNum,KEYDATA* pKeyNameArr, CNativeT*** pppcMemList, int nFuncId, BOOL bGetDefFuncCode = TRUE );    /* 機能に対応するキー名の取得(複数) */
00071     static TCHAR* GetMenuLabel( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, int nFuncId, TCHAR* pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode = TRUE );   /* メニューラベルの作成 */
00072
00073     /*
00074     ||  更新系メンバ関数
00075     */
00076
00077
00078 protected:
00079     /*
00080     ||  メンバ変数
00081     */
00082 //  HINSTANCE   m_hInstance;
00083 //  CKeyData*   m_pKeyNameArr;
00084 //  int         m_nKeyNameArrNum;
00085
00086     /*
00087     ||  実装ヘルパ関数
00088     */
00089 };
00090
00091
00092
00094 #endif /* _CKEYBIND_H_ */
00095
00096
00097 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyMacroMgr.cpp

sakura_core

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 "CMemory.h"
#include "CMacroFactory.h"
#include "io/CTextStream.h"

CKeyMacroMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
Norio Nakatani
日付:
20011229 aroka バグ修正、コメント追加 YAZAKI 組替え

CKeyMacroMgr.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyMacroMgr.cpp ソースファイル

sakura_core

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 <string.h>
00022 #include "CKeyMacroMgr.h"
00023 #include "CMacro.h"
00024 #include "CSMacroMgr.h"// 2002/2/10 aroka
00025 #include "debug.h"
00026 #include "charcode.h"
00027 #include "CMemory.h"
00028 #include "CMacroFactory.h"
00029 #include "io/CTextStream.h"
00030
00031 CKeyMacroMgr::CKeyMacroMgr()
00032 {
00033     m_pTop = NULL;
00034     m_pBot = NULL;
00035 //  m_nKeyMacroDataArrNum = 0;  2002.2.2 YAZAKI
00036     //  Apr. 29, 2002 genta
00037     //  m_nReadyはCMacroManagerBaseへ
00038     return;
00039 }
00040
00041 CKeyMacroMgr::~CKeyMacroMgr()
00042 {
00043     /* キーマクロのバッファをクリアする */
00044     ClearAll();
00045     return;
00046 }
00047
00048
00050 void CKeyMacroMgr::ClearAll( void )
00051 {
00052     CMacro* p = m_pTop;
00053     CMacro* del_p;
00054     while (p){
00055         del_p = p;
00056         p = p->GetNext();
00057         delete del_p;
00058     }
00059 //  m_nKeyMacroDataArrNum = 0;  2002.2.2 YAZAKI
00060     m_pTop = NULL;
00061     m_pBot = NULL;
00062     return;
00063
00064 }
00065
00070 void CKeyMacroMgr::Append(
00071     EFunctionCode   nFuncID,
00072     LPARAM          lParam1,
00073     CEditView*      pcEditView
00074 )
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 TCHAR* pszPath ) const
00104 {
00105     CTextOutputStream out(pszPath);
00106     if(!out){
00107         return FALSE;
00108     }
00109
00110     //最初のコメント
00111     out.WriteF(L"//キーボードマクロのファイル\n");
00112
00113     //マクロ内容
00114     CMacro* p = m_pTop;
00115     while (p){
00116         p->Save( hInstance, out );
00117         p = p->GetNext();
00118     }
00119
00120     out.Close();
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 TCHAR* pszPath )
00142 {
00143     /* キーマクロのバッファをクリアする */
00144     ClearAll();
00145
00146     CTextInputStream in( pszPath );
00147     if(!in){
00148         m_nReady = false;
00149         return FALSE;
00150     }
00151
00152     WCHAR   szFuncName[100];
00153     WCHAR   szFuncNameJapanese[256];
00154     EFunctionCode   nFuncID;
00155     int     i;
00156     int     nBgn, nEnd;
00157     CMacro* macro = NULL;
00158
00159     //  Jun. 16, 2002 genta
00160     m_nReady = true;    //  エラーがあればfalseになる
00161     static const TCHAR MACRO_ERROR_TITLE[] = _T("Macro読み込みエラー");
00162
00163     int line = 1;   //  エラー時に行番号を通知するため．1始まり．
00164     for( ; in.Good() ; ++line ){
00165         std::wstring szLine = in.ReadLineW();
00166         using namespace WCODE;
00167
00168         int nLineLen = auto_strlen( szLine.c_str() );
00169         // 先行する空白をスキップ
00170         for( i = 0; i < nLineLen; ++i ){
00171             if( szLine[i] != SPACE && szLine[i] != TAB ){
00172                 break;
00173             }
00174         }
00175         nBgn = i;
00176         // コメント行の検出
00177         //# パフォーマンス：'/'のときだけ２文字目をテスト
00178         if( szLine[nBgn] == LTEXT('/') && nBgn + 1 < nLineLen && szLine[nBgn + 1] == LTEXT('/') ){
00179             continue;
00180         }
00181         //  Jun. 16, 2002 genta 空行を無視する
00182         if( szLine[nBgn] == LTEXT('\0') ){
00183             continue;
00184         }
00185
00186         // 関数名の取得
00187         szFuncName[0]='\0';// 初期化
00188         for( ; i < nLineLen; ++i ){
00189             //# バッファオーバーランチェック
00190             if( szLine[i] == LTEXT('(') && (i - nBgn)< _countof(szFuncName) ){
00191                 auto_memcpy( szFuncName, &szLine[nBgn], i - nBgn );
00192                 szFuncName[i - nBgn] = L'\0';
00193                 ++i;
00194                 nBgn = i;
00195                 break;
00196             }
00197         }
00198         // 関数名にS_が付いていたら
00199
00200         /* 関数名→機能ID，機能名日本語 */
00201         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00202         nFuncID = CSMacroMgr::GetFuncInfoByName( hInstance, szFuncName, szFuncNameJapanese );
00203         if( -1 != nFuncID ){
00204             macro = new CMacro( nFuncID );
00205             // Jun. 16, 2002 genta プロトタイプチェック用に追加
00206             int nArgs;
00207             const MacroFuncInfo* mInfo= CSMacroMgr::GetFuncInfoByID( nFuncID );
00208             //  Skip Space
00209             for(nArgs = 0; szLine[i] ; ++nArgs ) {
00210                 // Jun. 16, 2002 genta プロトタイプチェック
00211                 if( nArgs >= _countof( mInfo->m_varArguments ) ){
00212 					::MYMESSAGEBOX(
00213                         NULL,
00214                         MB_OK | MB_ICONSTOP | MB_TOPMOST,
00215                         MACRO_ERROR_TITLE,
00216                         _T("Line %d: Column %d: 引数が多すぎます\n"),
00217                         line,
00218                         i + 1
00219                     );
00220                     m_nReady = false;
00221                 }
00222
00223                 while( szLine[i] == LTEXT(' ') || szLine[i] == LTEXT('\t') )
00224                     i++;
00225
00226                 //@@@ 2002.2.2 YAZAKI PPA.DLLマクロにあわせて仕様変更。文字列は''で囲む。
00227                 //  Jun. 16, 2002 genta double quotationも許容する
00228                 if( LTEXT('\'') == szLine[i] || LTEXT('\"') == szLine[i]  ){    //  'で始まったら文字列だよきっと。
00229                     // Jun. 16, 2002 genta プロトタイプチェック
00230                     // Jun. 27, 2002 genta 余分な引数を無視するよう，VT_EMPTYを許容する．
00231                     if( mInfo->m_varArguments[nArgs] != VT_BSTR &&
00232                         mInfo->m_varArguments[nArgs] != VT_EMPTY ){
00233 						::MYMESSAGEBOX(
00234                             NULL,
00235                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00236                             MACRO_ERROR_TITLE,
00237                             _T("Line %d: Column %d\r\n")
00238                             _T("関数%lsの%d番目の引数に文字列は置けません．"),
00239                             line,
00240                             i + 1,
00241                             szFuncName,
00242                             nArgs + 1
00243                         );
00244                         m_nReady = false;
00245                         break;
00246                     }
00247                     WCHAR cQuote = szLine[i];
00248                     ++i;
00249                     nBgn = i;   //  nBgnは引数の先頭の文字
00250                     //  Jun. 16, 2002 genta
00251                     //  行末の検出のため，ループ回数を1増やした
00252                     for( ; i <= nLineLen; ++i ){        //  最後の文字+1までスキャン
00253                         if( szLine[i] == LTEXT('\\') ){ // エスケープのスキップ
00254                             ++i;
00255                             continue;
00256                         }
00257                         if( szLine[i] == cQuote ){  //  始まりと同じquotationで終了。
00258                             nEnd = i;   //  nEndは終わりの次の文字（'）
00259                             break;
00260                         }
00261                         if( szLine[i] == LTEXT('\0') ){ //  行末に来てしまった
00262 							::MYMESSAGEBOX(
00263                                 NULL,
00264                                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00265                                 MACRO_ERROR_TITLE,
00266                                 _T("Line %d:\r\n関数%lsの%d番目の引数の終わりに%mcがありません．"),
00267                                 line,
00268                                 szFuncName,
00269                                 nArgs + 1,
00270                                 cQuote
00271                             );
00272                             m_nReady = false;
00273                             nEnd = i - 1;   //  nEndは終わりの次の文字（'）
00274                             break;
00275                         }
00276                     }
00277                     //  Jun. 16, 2002 genta
00278                     if( !m_nReady ){
00279                         break;
00280                     }
00281
00282                     CNativeW cmemWork;
00283                     cmemWork.SetString( szLine.c_str() + nBgn, nEnd - nBgn );
00284                     cmemWork.Replace( LTEXT("\\\'"), LTEXT("\'") );
00285
00286                     //  Jun. 16, 2002 genta double quotationもエスケープ解除
00287                     cmemWork.Replace( LTEXT("\\\""), LTEXT("\"") );
00288                     cmemWork.Replace( LTEXT("\\\\"), LTEXT("\\") );
00289                     macro->AddStringParam( cmemWork.GetStringPtr() );   //  引数を文字列として追加
00290                 }
00291                 else if ( is09(szLine[i]) ){    //  数字で始まったら数字列だ。
00292                     // Jun. 16, 2002 genta プロトタイプチェック
00293                     // Jun. 27, 2002 genta 余分な引数を無視するよう，VT_EMPTYを許容する．
00294                     if( mInfo->m_varArguments[nArgs] != VT_I4 &&
00295                         mInfo->m_varArguments[nArgs] != VT_EMPTY){
00296 						::MYMESSAGEBOX(
00297                             NULL,
00298                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00299                             MACRO_ERROR_TITLE,
00300                             _T("Line %d: Column %d\r\n")
00301                             _T("関数%lsの%d番目の引数に数値は置けません．"),
00302                             line,
00303                             i + 1,
00304                             szFuncName,
00305                             nArgs + 1
00306                         );
00307                         m_nReady = false;
00308                         break;
00309                     }
00310                     nBgn = i;   //  nBgnは引数の先頭の文字
00311                     for( ; i < nLineLen; ++i ){     //  最後の文字までスキャン
00312                         if( is09(szLine[i]) ){  // まだ数値
00313 //                          ++i;
00314                             continue;
00315                         }
00316                         else {
00317                             nEnd = i;   //  数字の最後の文字
00318                             i--;
00319                             break;
00320                         }
00321                     }
00322
00323                     CNativeW cmemWork;
00324                     cmemWork.SetString( szLine.c_str() + nBgn, nEnd - nBgn );
00325                     // Jun. 16, 2002 genta
00326                     //  数字の中にquotationは入っていないよ
00327                     //cmemWork.Replace( L"\\\'", L"\'" );
00328                     //cmemWork.Replace( L"\\\\", L"\\" );
00329                     macro->AddStringParam( cmemWork.GetStringPtr() );   //  引数を文字列として追加
00330                 }
00331                 //  Jun. 16, 2002 genta
00332                 else if( szLine[i] == LTEXT(')') ){
00333                     //  引数無し
00334                     break;
00335                 }
00336                 else {
00337                     //  Parse Error:文法エラーっぽい。
00338                     //  Jun. 16, 2002 genta
00339                     nBgn = nEnd = i;
00340 					::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00341                         _T("Line %d: Column %d: Syntax Error\n"), line, i );
00342                     m_nReady = false;
00343                     break;
00344                 }
00345
00346                 for( ; i < nLineLen; ++i ){     //  最後の文字までスキャン
00347                     if( szLine[i] == LTEXT(')') || szLine[i] == LTEXT(',') ){   //  ,もしくは)を読み飛ばす
00348                         i++;
00349                         break;
00350                     }
00351                 }
00352                 if (szLine[i-1] == LTEXT(')')){
00353                     break;
00354                 }
00355             }
00356             //  Jun. 16, 2002 genta
00357             if( !m_nReady ){
00358                 //  どこかでエラーがあったらしい
00359                 delete macro;
00360                 break;
00361             }
00362             /* キーマクロのバッファにデータ追加 */
00363             Append( macro );
00364         }
00365         else {
00366 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00367                 _T("Line %d: %lsは存在しない関数です．\n"), line, szFuncName );
00368             //  Jun. 16, 2002 genta
00369             m_nReady = false;
00370             break;
00371         }
00372     }
00373     in.Close();
00374
00375     //  Jun. 16, 2002 genta
00376     //  マクロ中にエラーがあったら異常終了できるようにする．
00377     return m_nReady ? TRUE : FALSE;
00378 }
00379
00380 //  From Here Apr. 29, 2002 genta
00389 CMacroManagerBase* CKeyMacroMgr::Creator(const TCHAR* ext)
00390 {
00391     if( _tcscmp( ext, _T("mac") ) == 0 ){
00392         return new CKeyMacroMgr;
00393     }
00394     return NULL;
00395 }
00396
00401 void CKeyMacroMgr::declare (void)
00402 {
00403     //  常に実行
00404     CMacroFactory::Instance()->RegisterCreator( Creator );
00405 }
00406 //  To Here Apr. 29, 2002 genta
00407
00408 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyMacroMgr.h

sakura_core

CKeyMacroMgr.h

キーボードマクロ [詳細]

#include <windows.h>
#include "CMacroManagerBase.h"

CKeyMacroMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CKeyMacroMgr
キーボードマクロ [詳細]

説明

キーボードマクロ

作者:
Norio Nakatani

CKeyMacroMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyMacroMgr.h ソースファイル

sakura_core

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 enum EFunctionCode;
00022 class CMacro;
00023
00024 //#define MAX_STRLEN            70
00025 //#define MAX_KEYMACRONUM       10000
00026 /*-----------------------------------------------------------------------
00027 クラスの宣言
00028 -----------------------------------------------------------------------*/
00030
00033 class CKeyMacroMgr : public CMacroManagerBase
00034 {
00035 public:
00036     /*
00037     ||  Constructors
00038     */
00039     CKeyMacroMgr();
00040     ~CKeyMacroMgr();
00041
00042     /*
00043     ||  Attributes & Operations
00044     */
00045     void ClearAll( void );              /* キーマクロのバッファをクリアする */
00046     void Append( EFunctionCode , LPARAM, class CEditView* pcEditView );     /* キーマクロのバッファにデータ追加 */
00047     void Append( class CMacro* macro );     /* キーマクロのバッファにデータ追加 */
00048
00049     /* キーボードマクロをまとめて取り扱う */
00050     BOOL SaveKeyMacro( HINSTANCE hInstance, const TCHAR* pszPath) const;    /* CMacroの列を、キーボードマクロに保存 */
00051     //@@@2002.2.2 YAZAKI PPA.DLLアリ/ナシ共存のためvirtualに。
00052     virtual void ExecKeyMacro( class CEditView* pcEditView ) const;             /* キーボードマクロの実行 */
00053     virtual BOOL LoadKeyMacro( HINSTANCE hInstance, const TCHAR* pszPath);      /* キーボードマクロを読み込み、CMacroの列に変換 */
00054
00055     // Apr. 29, 2002 genta
00056     static CMacroManagerBase* Creator(const TCHAR* ext);
00057     static void declare(void);
00058
00059 protected:
00060     CMacro* m_pTop; //  先頭と終端を保持
00061     CMacro* m_pBot;
00062 };
00063
00064
00065
00067 #endif /* _CKEYMACROMGR_H_ */
00068
00069
00070 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyWordSetMgr.cpp

sakura_core

CKeyWordSetMgr.cpp

強調キーワード管理 [詳細]

#include "stdafx.h"
#include "CKeyWordSetMgr.h"
#include <stdlib.h>
#include <malloc.h>
#include "my_icmp.h"
#include "charcode.h"

CKeyWordSetMgr.cppのインクルード依存関係図

ソースコードを見る。

型定義

typedef int(__cdecl * | qsort_callback )(const void *, const void *)

関数

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 で定義されています。

型定義

typedef int(__cdecl * qsort_callback)(const void *, const void *)

キーワードのソートとキーワード長の最大値計算

引数:
nIdx [in] キーワードセット番号

CKeyWordSetMgr.cpp の 339 行で定義されています。

関数

int GetAlignmentSize ( int nSize ) [inline]

ブロックサイズで整列

CKeyWordSetMgr.cpp の 47 行で定義されています。

参照先 nKeyWordSetBlockSize.

変数

const int nKeyWordSetBlockSize = 50 [static]

1ブロック当たりのキーワード数

CKeyWordSetMgr.cpp の 44 行で定義されています。

参照元 CKeyWordSetMgr::AddKeyWordSet(), CKeyWordSetMgr::CanAddKeyWord(), と GetAlignmentSize().

Sakura-Editorに対してSat Nov 17 20:26:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyWordSetMgr.cpp ソースファイル

sakura_core

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 #include "charcode.h"
00042
00044 static const int nKeyWordSetBlockSize = 50;
00045
00047 inline int GetAlignmentSize( int nSize )
00048 {
00049     return (nKeyWordSetBlockSize - 1 + nSize) / nKeyWordSetBlockSize * nKeyWordSetBlockSize;
00050 }
00051
00056 CKeyWordSetMgr::CKeyWordSetMgr( void )
00057 {
00058     m_nCurrentKeyWordSetIdx = 0;
00059     m_nKeyWordSetNum = 0;
00060     m_nStartIdx[0] = 0;
00061     m_nStartIdx[1] = 0;
00062     m_nStartIdx[MAX_SETNUM] = 0;
00063     return;
00064 }
00065
00066 CKeyWordSetMgr::~CKeyWordSetMgr( void)
00067 {
00068     m_nKeyWordSetNum = 0;
00069     return;
00070 }
00071
00079 void CKeyWordSetMgr::ResetAllKeyWordSet( void )
00080 {
00081     m_nKeyWordSetNum = 0;
00082     int i;
00083     for( i = 0; i < MAX_SETNUM+1; i++ ){
00084         m_nStartIdx[i] = 0;
00085     }
00086     for( i = 0; i < MAX_SETNUM; i++ ){
00087         m_nKeyWordNumArr[MAX_SETNUM] = 0;
00088     }
00089 }
00090
00091 const CKeyWordSetMgr& CKeyWordSetMgr::operator=( CKeyWordSetMgr& cKeyWordSetMgr )
00092 {
00093 //  int     nDataLen;
00094 //  char*   pData;
00095 //  int     i;
00096     if( this == &cKeyWordSetMgr ){
00097         return *this;
00098     }
00099     m_nCurrentKeyWordSetIdx = cKeyWordSetMgr.m_nCurrentKeyWordSetIdx;
00100     m_nKeyWordSetNum = cKeyWordSetMgr.m_nKeyWordSetNum;
00101     //配列まるごとコピー
00102     memcpy_raw( m_szSetNameArr   , cKeyWordSetMgr.m_szSetNameArr   , sizeof( m_szSetNameArr )    );
00103     memcpy_raw( m_nKEYWORDCASEArr, cKeyWordSetMgr.m_nKEYWORDCASEArr, sizeof( m_nKEYWORDCASEArr ) );
00104     memcpy_raw( m_nStartIdx      , cKeyWordSetMgr.m_nStartIdx      , sizeof( m_nStartIdx )       );// 2004.07.29 Moca
00105     memcpy_raw( m_nKeyWordNumArr , cKeyWordSetMgr.m_nKeyWordNumArr , sizeof( m_nKeyWordNumArr )  );
00106     memcpy_raw( m_szKeyWordArr   , cKeyWordSetMgr.m_szKeyWordArr   , sizeof( m_szKeyWordArr )    );
00107     memcpy_raw( m_IsSorted       , cKeyWordSetMgr.m_IsSorted       , sizeof( m_IsSorted )        ); //MIK 2000.12.01 binary search
00108     return *this;
00109 }
00110
00111
00112
00113
00123 BOOL CKeyWordSetMgr::AddKeyWordSet( const wchar_t* pszSetName, BOOL nKEYWORDCASE, int nSize )
00124 {
00125     if( nSize < 0 ) nSize = nKeyWordSetBlockSize;
00126     if( MAX_SETNUM <= m_nKeyWordSetNum ){
00127         return FALSE;
00128     }
00129     int nIdx = m_nKeyWordSetNum;    //追加位置
00130     m_nStartIdx[ ++m_nKeyWordSetNum ] = m_nStartIdx[ nIdx ];// サイズ0でセット追加
00131
00132     if( !KeyWordReAlloc( nIdx, nSize ) ){
00133         --m_nKeyWordSetNum; //  キーワードセットの追加をキャンセルする
00134         return FALSE;
00135     }
00136     wcscpy( m_szSetNameArr[nIdx], pszSetName );
00137     m_nKEYWORDCASEArr[nIdx] = nKEYWORDCASE;
00138     m_nKeyWordNumArr[nIdx] = 0;
00139     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00140     return TRUE;
00141 }
00142
00143 /* ｎ番目のセットを削除 */
00144 BOOL CKeyWordSetMgr::DelKeyWordSet( int nIdx )
00145 {
00146     int     i;
00147     if( m_nKeyWordSetNum <= nIdx ||
00148         0 > nIdx
00149     ){
00150         return FALSE;
00151     }
00152     // キーワード領域を開放
00153     KeyWordReAlloc( nIdx, 0 );
00154
00155     for( i = nIdx; i < m_nKeyWordSetNum - 1; ++i ){
00156         //配列まるごとコピー
00157         memcpy_raw( m_szSetNameArr[i], m_szSetNameArr[i + 1], sizeof( m_szSetNameArr[0] ) );
00158         m_nKEYWORDCASEArr[i] = m_nKEYWORDCASEArr[i + 1];
00159         m_nKeyWordNumArr[i] = m_nKeyWordNumArr[i + 1];
00160         m_nStartIdx[i] = m_nStartIdx[i + 1];    //  2004.07.29 Moca 可変長記憶
00161         m_IsSorted[i] = m_IsSorted[i+1];    //MIK 2000.12.01 binary search
00162     }
00163     m_nStartIdx[m_nKeyWordSetNum - 1] = m_nStartIdx[m_nKeyWordSetNum];  // 2007.07.14 ryoji これが無いと末尾＝最終セットの先頭になってしまう
00164     m_nKeyWordSetNum--;
00165     if( m_nKeyWordSetNum <= m_nCurrentKeyWordSetIdx ){
00166         m_nCurrentKeyWordSetIdx = m_nKeyWordSetNum - 1;
00167 //セットが無くなったとき、m_nCurrentKeyWordSetIdxをわざと-1にするため、コメント化
00168 //      if( 0 > m_nCurrentKeyWordSetIdx ){
00169 //          m_nCurrentKeyWordSetIdx = 0;
00170 //      }
00171     }
00172     return TRUE;
00173 }
00174
00175
00176
00181 const wchar_t* CKeyWordSetMgr::GetTypeName( int nIdx )
00182 {
00183     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00184         return NULL;
00185     }
00186     return m_szSetNameArr[nIdx];
00187 }
00188
00193 const wchar_t* CKeyWordSetMgr::SetTypeName( int nIdx, const wchar_t* name )
00194 {
00195     if( NULL == name || nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00196         return NULL;
00197     }
00198     wcsncpy( m_szSetNameArr[nIdx], name, MAX_SETNAMELEN );
00199     m_szSetNameArr[nIdx][MAX_SETNAMELEN] = L'\0';
00200     return m_szSetNameArr[nIdx];
00201 }
00202
00203 /* ｎ番目のセットのキーワードの数を返す */
00204 int CKeyWordSetMgr::GetKeyWordNum( int nIdx )
00205 {
00206     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00207         return 0;
00208     }
00209     return m_nKeyWordNumArr[nIdx];
00210 }
00211
00217 const wchar_t* CKeyWordSetMgr::GetKeyWord( int nIdx, int nIdx2 )
00218 {
00219     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00220         return NULL;
00221     }
00222     if( nIdx2 < 0 || m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00223         return NULL;
00224     }
00225     return m_szKeyWordArr[m_nStartIdx[nIdx] + nIdx2];
00226 }
00227
00229 const wchar_t* CKeyWordSetMgr::UpdateKeyWord(
00230     int             nIdx,
00231     int             nIdx2,
00232     const WCHAR*    pszKeyWord
00233 )
00234 {
00235     int i;
00236     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00237         return NULL;
00238     }
00239     if( nIdx2 < 0 || m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00240         return NULL;
00241     }
00242     /* 0バイトの長さのキーワードは編集しない */
00243     if( pszKeyWord[0] == L'\0' ){
00244         return NULL;
00245     }
00246     /* 重複したキーワードは編集しない */
00247     for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00248         if( 0 == wcscmp( m_szKeyWordArr[i], pszKeyWord ) ){
00249             return NULL;
00250         }
00251     }
00252     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00253     return wcscpy( m_szKeyWordArr[m_nStartIdx[nIdx] + nIdx2], pszKeyWord );
00254 }
00255
00256
00266 int CKeyWordSetMgr::AddKeyWord( int nIdx, const wchar_t* pszKeyWord )
00267 {
00268     int  i;
00269     if( m_nKeyWordSetNum <= nIdx ){
00270         return 1;
00271     }
00272 // 2004.07.29 Moca
00273     if( !KeyWordReAlloc( nIdx, m_nKeyWordNumArr[nIdx] + 1 ) ){
00274         return 2;
00275     }
00276 //  if( MAX_KEYWORDNUM <= m_nKeyWordNumArr[nIdx] ){
00277 //      return FALSE;
00278 //  }
00279
00280     /* 0バイトの長さのキーワードは登録しない */
00281     if( pszKeyWord[0] == L'\0' ){
00282         return 3;
00283     }
00284     /* 重複したキーワードは登録しない */
00285     for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00286         if( 0 == wcscmp( m_szKeyWordArr[i], pszKeyWord ) ){
00287             return 4;
00288         }
00289     }
00290     /* MAX_KEYWORDLENより長いキーワードは切り捨てる */
00291     if( MAX_KEYWORDLEN < wcslen( pszKeyWord ) ){
00292         wmemcpy( m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]], pszKeyWord, MAX_KEYWORDLEN );
00293         m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]][MAX_KEYWORDLEN] = '\0';
00294     }else{
00295         wcscpy( m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]], pszKeyWord );
00296     }
00297     m_nKeyWordNumArr[nIdx]++;
00298     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00299     return 0;
00300 }
00301
00302
00308 int CKeyWordSetMgr::DelKeyWord( int nIdx, int nIdx2 )
00309 {
00310     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00311         return 1;
00312     }
00313     if( nIdx2 < 0 ||  m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00314         return 2;
00315     }
00316     if( 0 >= m_nKeyWordNumArr[nIdx] ){
00317         return 3;   //  登録数が0なら上の条件で引っかかるのでここには来ない？
00318     }
00319     int  i;
00320     int  endPos = m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx] - 1;
00321     for( i = m_nStartIdx[nIdx] + nIdx2; i < endPos; ++i ){
00322         wcscpy( m_szKeyWordArr[i], m_szKeyWordArr[i + 1] );
00323     }
00324     m_nKeyWordNumArr[nIdx]--;
00325
00326     // 2005.01.26 Moca 1つずらすだけなので、ソートの状態は保持される
00327     // m_IsSorted[nIdx] = 0;    //MIK 2000.12.01 binary search
00328     KeyWordReAlloc( nIdx, m_nKeyWordNumArr[nIdx] ); // 2004.07.29 Moca
00329     return 0;
00330 }
00331
00332
00333 //MIK START 2000.12.01 binary search
00339 typedef int (__cdecl *qsort_callback)(const void *, const void *);
00340 void CKeyWordSetMgr::SortKeyWord( int nIdx )
00341 {
00342     //nIdxのセットをソートする。
00343     if( m_nKEYWORDCASEArr[nIdx] ) {
00344         qsort(
00345             m_szKeyWordArr[m_nStartIdx[nIdx]],
00346             m_nKeyWordNumArr[nIdx],
00347             sizeof(m_szKeyWordArr[0]),
00348             (qsort_callback)wcscmp
00349         );
00350     }
00351     else {
00352         qsort(
00353             m_szKeyWordArr[m_nStartIdx[nIdx]],
00354             m_nKeyWordNumArr[nIdx],
00355             sizeof(m_szKeyWordArr[0]),
00356             (qsort_callback)wcsicmp
00357         );
00358     }
00359
00360     {
00361         int i;
00362         int len;
00363         m_nKeyWordMaxLenArr[nIdx] = 0;
00364         for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; i++ ){
00365             len = wcslen( m_szKeyWordArr[i] );
00366             if( m_nKeyWordMaxLenArr[nIdx] < len ){
00367                 m_nKeyWordMaxLenArr[nIdx] = len;
00368             }
00369         }
00370     }
00371     m_IsSorted[nIdx] = 1;
00372     return;
00373 }
00374 /* ｎ番目のセットから指定キーワードをバイナリサーチ 無いときは-1を返す */
00375 int CKeyWordSetMgr::SearchKeyWord2( int nIdx, const wchar_t* pszKeyWord, int nKeyWordLen )
00376 {
00377     int pc, pr, pl, ret, wcase;
00378
00379     //sort
00380     if(m_IsSorted[nIdx] == 0) SortKeyWord(nIdx);
00381
00382     pl = m_nStartIdx[nIdx];
00383     pr = m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx] - 1;
00384 //  if( pr < 0 ) return -1;
00385     if( nKeyWordLen > m_nKeyWordMaxLenArr[nIdx] ) return -1;
00386     pc = (pr + 1 - pl) / 2 + pl;
00387     wcase = m_nKEYWORDCASEArr[nIdx];
00388     while(pl <= pr) {
00389         if( wcase ) {
00390             ret = wcsncmp( pszKeyWord, m_szKeyWordArr[pc], nKeyWordLen );
00391         } else {
00392             ret = wcsnicmp( pszKeyWord, m_szKeyWordArr[pc], nKeyWordLen );
00393         }
00394         if( ret == 0 ) {
00395             if( (int)wcslen( m_szKeyWordArr[pc] ) > nKeyWordLen ) {
00396                 ret = -1;
00397             } else {
00398                 return pc - m_nStartIdx[nIdx];
00399             }
00400         }
00401
00402         if( ret < 0 ) {
00403             pr = pc - 1;
00404         } else {
00405             pl = pc + 1;
00406         }
00407
00408         pc = (pr + 1 - pl) / 2 + pl;
00409     }
00410     return -1;
00411 }
00412 //MIK END
00413 //MIK START 2000.12.01 START
00414 void CKeyWordSetMgr::SetKeyWordCase( int nIdx, int nCase )
00415 {
00416     //大文字小文字判断は１ビットあれば実現できる。
00417     //今はint型(sizeof(int) * セット数 = 4 * 100 = 400)だが,
00418     //char型(sizeof(char) * セット数 = 1 * 100 = 100)で十分だし
00419     //ビット操作してもいい。
00420     if(nCase) {
00421         m_nKEYWORDCASEArr[nIdx] = TRUE;
00422     } else {
00423         m_nKEYWORDCASEArr[nIdx] = FALSE;
00424     }
00425
00426     m_IsSorted[nIdx] = 0;
00427     return;
00428 }
00429
00430 int CKeyWordSetMgr::GetKeyWordCase( int nIdx )
00431 {
00432     return  m_nKEYWORDCASEArr[nIdx];
00433 }
00434 //MIK END
00435
00436
00437 // From Here 2004.07.29 Moca 可変長記憶
00449 int CKeyWordSetMgr::SetKeyWordArr(
00450     int nIdx,
00451     int nSize,
00452     const wchar_t* pszKeyWordArr
00453 )
00454 {
00455     if( !KeyWordReAlloc( nIdx, nSize ) ){
00456         return 0;
00457     }
00458     int cnt, i;
00459     const wchar_t* ptr = pszKeyWordArr;
00460     for( cnt = 0, i = m_nStartIdx[nIdx];
00461         i < m_nStartIdx[nIdx] + nSize && *ptr != L'\0'; cnt++, i++ ){
00462         //  May 25, 2003 キーワードの区切りとして\0以外にTABを受け付けるようにする
00463         const wchar_t* pTop = ptr;  // キーワードの先頭位置を保存
00464         while( *ptr != L'\t' && *ptr != L'\0' )
00465             ++ptr;
00466         int kwlen = ptr - pTop;
00467         wmemcpy( m_szKeyWordArr[i], pTop, kwlen );
00468         m_szKeyWordArr[i][kwlen] = L'\0';
00469         ++ptr;
00470     }
00471     m_nKeyWordNumArr[nIdx] = cnt;
00472     return nSize;
00473 }
00474
00484 int CKeyWordSetMgr::SetKeyWordArr(
00485     int nIdx,
00486     int nSize,
00487     const wchar_t* const *ppszKeyWordArr
00488 )
00489 {
00490     if( !KeyWordReAlloc( nIdx, nSize ) ){
00491         return 0;
00492     }
00493     int cnt, i;
00494     for( cnt = 0, i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + nSize; cnt++, i++ ){
00495         wcscpy( m_szKeyWordArr[i], ppszKeyWordArr[cnt] );
00496     }
00497     m_nKeyWordNumArr[nIdx] = nSize;
00498     return nSize;
00499 }
00500
00509 int CKeyWordSetMgr::CleanKeyWords( int nIdx )
00510 {
00511     // 先にソートしておかないと、後で順番が変わると都合が悪い
00512     if( m_IsSorted[nIdx] == 0 ) SortKeyWord( nIdx );
00513
00514     int nDelCount = 0;
00515     int i = 0;
00516     while( i < GetKeyWordNum( nIdx ) - 1 ){
00517         const wchar_t* p = GetKeyWord( nIdx, i );
00518         bool bDelKey = false;
00519         // 表示できないキーワードか
00520         int k;
00521         for( k = 0;p[k] != '\0'; k++ ){
00522             if( IS_KEYWORD_CHAR( p[k] ) ){
00523             }else{
00524                 bDelKey = true;
00525                 break;
00526             }
00527         }
00528         if( !bDelKey ){
00529             // 重複するキーワードか
00530             const wchar_t* r = GetKeyWord( nIdx, i + 1 );
00531             unsigned int nKeyWordLen = wcslen( p );
00532             if( nKeyWordLen == wcslen( r ) ){
00533                 if( m_nKEYWORDCASEArr[nIdx] ){
00534                     if( 0 == auto_memcmp( p, r, nKeyWordLen ) ){
00535                         bDelKey = true;
00536                     }
00537                 }else{
00538                     if( 0 == auto_memicmp( p, r, nKeyWordLen ) ){
00539                         bDelKey = true;
00540                     }
00541                 }
00542             }
00543         }
00544         if( bDelKey ){
00545             DelKeyWord( nIdx, i );
00546             nDelCount++;
00547             //後ろがずれるので、iを増やさない
00548         }else{
00549             i++;
00550         }
00551     }
00552     return nDelCount;
00553 }
00554
00563 bool CKeyWordSetMgr::CanAddKeyWord( int nIdx )
00564 {
00565     //  割り当て済みの領域の空きをまず調べる
00566     int nSizeOld = GetAllocSize( nIdx );
00567     if( m_nKeyWordNumArr[nIdx] < nSizeOld ){
00568         return true;
00569     }
00570
00571     //  割り当て済み領域がいっぱいならば，割り当て可能領域の有無を確認
00572     //  一応割り当て最小単位分残っていることを確認．
00573     if( GetFreeSize() >= nKeyWordSetBlockSize ){
00574         return true;
00575     }
00576
00577     //  それでもだめか
00578     return false;
00579 }
00580
00581 #if 0
00582
00585 bool CKeyWordSetMgr::KeyWordAlloc( int nSize )
00586 {
00587     // assert( m_nKeyWordSetNum < MAX_SETNUM );
00588     // assert( 0 <= nSize );
00589
00590     // ブロックのサイズで整列
00591     int nAllocSize = GetAlignmentSize( nSize );
00592
00593     if( GetFreeSize() < nAllocSize ){
00594         // メモリ不足
00595         return false;
00596     }
00597     m_nStartIdx[m_nKeyWordSetNum + 1] = m_nStartIdx[m_nKeyWordSetNum] + nAllocSize;
00598     int i;
00599     for( i = m_nKeyWordSetNum + 1; i < MAX_SETNUM; i++ ){
00600         m_nStartIdx[i + 1] = m_nStartIdx[i];
00601     }
00602     return true;
00603 }
00604 #endif
00605
00611 bool CKeyWordSetMgr::KeyWordReAlloc( int nIdx, int nSize )
00612 {
00613     // assert( 0 <= nIdx && nIdx < m_nKeyWordSetNum );
00614
00615     // ブロックのサイズで整列
00616     int nAllocSize = GetAlignmentSize( nSize );
00617     int nSizeOld = GetAllocSize( nIdx );
00618
00619     if( nSize < 0 ){
00620         return false;
00621     }
00622     if( nAllocSize == nSizeOld ){
00623         // サイズ変更なし
00624         return true;
00625     }
00626
00627     int nDiffSize = nAllocSize - nSizeOld;
00628     if( GetFreeSize() < nDiffSize ){
00629         // メモリ不足
00630         return false;
00631     }
00632     // 後ろのキーワードセットのキーワードをすべて移動する
00633     int i;
00634     if( nIdx + 1 < m_nKeyWordSetNum ){
00635         int nKeyWordIdx = m_nStartIdx[nIdx + 1];
00636         int nKeyWordNum = m_nStartIdx[m_nKeyWordSetNum] - m_nStartIdx[nIdx + 1];
00637         memmove( m_szKeyWordArr[nKeyWordIdx + nDiffSize],
00638             m_szKeyWordArr[nKeyWordIdx],
00639             nKeyWordNum * sizeof( m_szKeyWordArr[0] ) );
00640     }
00641     for( i = nIdx + 1; i <= m_nKeyWordSetNum; i++ ){
00642         m_nStartIdx[ i ] += nDiffSize;
00643     }
00644     return true;
00645 }
00646
00652 int CKeyWordSetMgr::GetAllocSize( int nIdx ) const
00653 {
00654     return m_nStartIdx[nIdx + 1] - m_nStartIdx[nIdx];
00655 }
00656
00663 int CKeyWordSetMgr::GetFreeSize( void ) const
00664 {
00665     return MAX_KEYWORDNUM - m_nStartIdx[m_nKeyWordSetNum];
00666 }
00667 // To Here 2004.07.29 Moca
00668
00669
00670 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyWordSetMgr.h

sakura_core

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 行で定義されています。

参照元 CKeyWordSetMgr::AddKeyWord(), 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 行で定義されています。

参照元 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 Nov 17 20:26:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CKeyWordSetMgr.h ソースファイル

sakura_core

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 wchar_t*, BOOL, int nSize = -1 );
00083     BOOL DelKeyWordSet( int  ); /* ｎ番目のセットを削除 */
00084     const wchar_t* GetTypeName( int );  /* ｎ番目のセット名を返す */
00085     const wchar_t* SetTypeName( int, const wchar_t* );
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 wchar_t* );
00092     int SetKeyWordArr( int, int, const wchar_t* const* );
00093     // To Here 2004.07.29 Moca
00095
00097
00098     int GetKeyWordNum( int );   /* ｎ番目のセットのキーワードの数を返す */
00099     const wchar_t* GetKeyWord( int , int ); /* ｎ番目のセットのｍ番目のキーワードを返す */
00100     const wchar_t* UpdateKeyWord( int , int , const WCHAR* );   /* ｎ番目のセットのｍ番目のキーワードを編集 */
00101     int AddKeyWord( int, const wchar_t* );  /* ｎ番目のセットにキーワードを追加 */
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 wchar_t*, 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     wchar_t m_szSetNameArr[MAX_SETNUM][MAX_SETNAMELEN + 1];
00136     int     m_nKEYWORDCASEArr[MAX_SETNUM];
00137     int     m_nKeyWordNumArr[MAX_SETNUM];
00138 private:
00140     wchar_t m_szKeyWordArr[MAX_KEYWORDNUM][MAX_KEYWORDLEN + 1];
00141     char    m_IsSorted[MAX_SETNUM];   //MIK
00142
00143 protected:
00144     // 2004.07.29 Moca 可変長記憶
00149     int     m_nStartIdx[MAX_SETNUM + 1];
00150     int     m_nKeyWordMaxLenArr[MAX_SETNUM];
00151
00152 protected:
00153     /*
00154     ||  実装ヘルパ関数
00155     */
00156     //bool KeyWordAlloc( int );
00157     bool KeyWordReAlloc( int, int );
00158 };
00159
00160
00161
00163 #endif /* _CKEYWORDSETMGR_H_ */
00164
00165
00166 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLaxInteger.cpp

sakura_core » basis

CLaxInteger.cpp

#include "stdafx.h"
#include "CLaxInteger.h"

CLaxInteger.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLaxInteger.cpp ソースファイル

sakura_core » basis

CLaxInteger.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CLaxInteger.h"
00003
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLaxInteger.h

sakura_core » basis

CLaxInteger.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CLaxInteger
型チェックの緩い整数型 [詳細]

Sakura-Editorに対してSat Nov 17 20:26:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLaxInteger.h ソースファイル

sakura_core » basis

CLaxInteger.h

説明を見る。
00001 #pragma once
00002
00004 class CLaxInteger{
00005 private:
00006     typedef CLaxInteger Me;
00007
00008 public:
00009     //コンストラクタ・デストラクタ
00010     CLaxInteger(){ m_value=0; }
00011     CLaxInteger(const Me& rhs){ m_value=rhs.m_value; }
00012     CLaxInteger(int value){ m_value=value; }
00013
00014     //暗黙の変換
00015     operator const int&() const{ return m_value; }
00016     operator       int&()      { return m_value; }
00017
00018 private:
00019     int m_value;
00020 };
00021
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayout.cpp

sakura_core

CLayout.cpp

テキストのレイアウト情報 [詳細]

#include "stdafx.h"
#include "CLayout.h"
#include "debug.h"
#include "charcode.h"
#include "CLayoutMgr.h"

CLayout.cppのインクルード依存関係図

ソースコードを見る。

説明

テキストのレイアウト情報

作者:
Norio Nakatani
日付:
1998/3/11 新規作成

CLayout.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayout.cpp ソースファイル

sakura_core

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 #include "charcode.h"
00018 #include "CLayoutMgr.h"
00019
00020
00021
00022 CLayout::~CLayout()
00023 {
00024     return;
00025 }
00026
00027 void CLayout::DUMP( void )
00028 {
00029 #ifdef _DEBUG
00030     MYTRACE_A( "\n\n■CLayout::DUMP()======================\n" );
00031     MYTRACE_A( "m_ptLogicPos.y=%d\t\t対応する論理行番号\n", m_ptLogicPos.y );
00032     MYTRACE_A( "m_ptLogicPos.x=%d\t\t対応する論理行の先頭からのオフセット\n", m_ptLogicPos.x );
00033     MYTRACE_A( "m_nLength=%d\t\t対応する論理行のハイト数\n", m_nLength.GetValue() );
00034     MYTRACE_A( "m_nTypePrev=%d\t\tタイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列 \n", m_nTypePrev );
00035     MYTRACE_A( "======================\n" );
00036 #endif
00037     return;
00038 }
00039
00041 CLayoutInt CLayout::CalcLayoutOffset(const CLayoutMgr& pLayoutMgr) const
00042 {
00043     CLayoutInt nRet(0);
00044     if(this->GetLogicOffset()){
00045         const wchar_t* pLine = this->m_pCDocLine->GetPtr();
00046         int nLineLen = this->m_pCDocLine->GetLength();
00047         for(int i=0;i<GetLogicOffset();i++){
00048             if(pLine[i]==WCODE::TAB){
00049                 nRet+=pLayoutMgr.GetActualTabSpace(nRet);
00050             }
00051             else{
00052                 nRet+=CNativeW::GetKetaOfChar(pLine,nLineLen,i);
00053             }
00054         }
00055     }
00056     return nRet;
00057 }
00058
00059 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayout.h

sakura_core

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 Nov 17 20:26:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayout.h ソースファイル

sakura_core

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 class CLayoutMgr;
00017
00018 #ifndef _CLAYOUT_H_
00019 #define _CLAYOUT_H_
00020
00021
00022
00023 #include "CEol.h"// 2002/2/10 aroka
00024 #include "CDocLine.h"// 2002/4/21 YAZAKI
00025 #include "CMemory.h"// 2002/4/21 YAZAKI
00026
00027 /*-----------------------------------------------------------------------
00028 クラスの宣言
00029 -----------------------------------------------------------------------*/
00030 class CLayout
00031 {
00032 public:
00033     /*
00034     ||  Constructors
00035     */
00036     //2007.08.23 kobake コンストラクタでメンバ変数を初期化するようにした
00037     CLayout(
00038         const CDocLine* pcDocLine,
00039         CLogicPoint     ptLogicPos,
00040         CLogicInt       nLength,
00041         EColorIndexType nTypePrev,
00042         CLayoutInt      nTypeIndent
00043     )
00044     {
00045         m_pPrev         = NULL;
00046         m_pNext         = NULL;
00047         m_pCDocLine     = pcDocLine;
00048         m_ptLogicPos    = ptLogicPos;   // 実データ参照位置
00049         m_nLength       = nLength;      // 実データ内データ長
00050         m_nTypePrev     = nTypePrev;    // タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列
00051         m_nIndent       = nTypeIndent;  // このレイアウト行のインデント数 @@@ 2002.09.23 YAZAKI
00052     }
00053     ~CLayout();
00054     void DUMP( void );
00055
00056     // m_ptLogicPos.xで補正したあとの文字列を得る
00057     const wchar_t* GetPtr() const   { return m_pCDocLine->m_cLine.GetStringPtr() + m_ptLogicPos.x; };
00058     int GetLengthWithEOL() const    { return m_nLength; };  //  ただしEOLは常に1文字とカウント？？
00059     int GetLengthWithoutEOL() const { return m_nLength - (m_cEol.GetLen() ? 1 : 0); };
00060     CLogicInt GetLength() const {   return m_nLength;   };  //  CMemoryIterator用（EOL含む）
00061     CLayoutInt GetIndent() const {  return m_nIndent;   };
00062
00063     //取得インターフェース
00064     CLogicInt GetLogicLineNo() const{ return m_ptLogicPos.GetY2(); }
00065     CLogicInt GetLogicOffset() const{ return m_ptLogicPos.GetX2(); }
00066     CLogicPoint GetLogicPos() const{ return m_ptLogicPos; }
00067     EColorIndexType GetColorTypePrev() const{ return m_nTypePrev; }
00068
00069     //変更インターフェース
00070     void OffsetLogicLineNo(CLogicInt n){ m_ptLogicPos.y+=n; }
00071     void SetColorTypePrev(EColorIndexType n){ m_nTypePrev=n; }
00072
00074     CLayoutInt CalcLayoutWidth() const
00075     {
00076         //ソース
00077         const wchar_t* pText    = m_pCDocLine->GetPtr();
00078         CLogicInt      nTextLen = m_pCDocLine->GetLengthWithoutEOL();
00079
00080         //計算
00081         CLayoutInt nWidth = CLayoutInt(0);
00082         for(CLogicInt i=m_ptLogicPos.GetX2();i<m_ptLogicPos.GetX2()+m_nLength;i++){
00083             nWidth += CNativeW::GetKetaOfChar(pText,nTextLen,i);
00084         }
00085         return nWidth;
00086     }
00087
00089     CLayoutInt CalcLayoutOffset(const CLayoutMgr& pLayoutMgr) const;
00090
00092     CStringRef GetStringRef() const{ return CStringRef(GetPtr(), GetLength()); }
00093 public:
00094     CLayout*        m_pPrev;
00095     CLayout*        m_pNext;
00096     const CDocLine* m_pCDocLine;
00097
00098 private:
00099     CLogicPoint         m_ptLogicPos;
00100     CLogicInt           m_nLength;
00101     EColorIndexType     m_nTypePrev;
00102     CLayoutInt          m_nIndent;
00103
00104 public:
00105     CEOL            m_cEol;
00106 };
00107
00108
00110 #endif /* _CLAYOUT_H_ */
00111
00112
00113 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr.cpp

sakura_core

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 "CMemoryIterator.h"
#include "basis/SakuraBasis.h"

CLayoutMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani

CLayoutMgr.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr.cpp ソースファイル

sakura_core

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 "CMemoryIterator.h" // 2006.07.29 genta
00029 #include "basis/SakuraBasis.h"
00030
00031
00032
00033
00034 /*
00035 || コンストラクタ
00036 */
00037 CLayoutMgr::CLayoutMgr()
00038 : m_cLineComment(), m_cBlockComment(),
00039     //  2004.04.03 Moca
00040     //  画面折り返し幅がTAB幅以下にならないことを初期値でも保証する
00041     m_nMaxLineKetas( 10 ),
00042     //  Nov. 16, 2002 メンバー関数ポインタにはクラス名が必要
00043     m_getIndentOffset( &CLayoutMgr::getIndentOffset_Normal )    //  Oct. 1, 2002 genta
00044 {
00045     m_pcDocLineMgr = NULL;
00046     m_bWordWrap = TRUE;     /* 英文ワードラップをする */
00047     m_nTabSpace = CLayoutInt(8);        /* TAB文字スペース */
00048     m_nStringType = 0;      /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00049     m_bKinsokuHead = FALSE;     /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00050     m_bKinsokuTail = FALSE;     /* 行末禁則 */  //@@@ 2002.04.08 MIK
00051     m_bKinsokuRet  = FALSE;     /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
00052     m_bKinsokuKuto = FALSE;     /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
00053     m_pszKinsokuHead_1.clear(); /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00054     m_pszKinsokuTail_1.clear(); /* 行末禁則 */  //@@@ 2002.04.08 MIK
00055     m_pszKinsokuKuto_1.clear(); /* 句読点ぶらさげ */ //@@@ 2002.04.17 MIK
00056     // 2005.11.21 Moca 色分けフラグをメンバで持つ
00057     m_bDispComment = FALSE;
00058     m_bDispSString = FALSE;
00059     m_bDispWString = FALSE;
00060
00061     Init();
00062     return;
00063 }
00064
00065
00066 /*
00067 || デストラクタ
00068 */
00069 CLayoutMgr::~CLayoutMgr()
00070 {
00071     Empty();
00072
00073     m_pszKinsokuHead_1.clear(); /* 行頭禁則 */
00074     m_pszKinsokuTail_1.clear(); /* 行末禁則 */  //@@@ 2002.04.08 MIK
00075     m_pszKinsokuKuto_1.clear(); /* 句読点ぶらさげ */ //@@@ 2002.04.17 MIK
00076
00077     return;
00078 }
00079
00080
00081 /*
00082 || レイアウト情報の変更
00083 */
00084 void CLayoutMgr::SetLayoutInfo(
00085     int     bDoRayout,
00086     HWND    hwndProgress,
00087     Types&  refType         /* タイプ別設定 */
00088 )
00089 {
00090     MY_RUNNINGTIMER( cRunningTimer, "CLayoutMgr::SetLayoutInfo" );
00091
00092     m_nMaxLineKetas = refType.m_nMaxLineKetas;
00093     m_bWordWrap     = refType.m_bWordWrap;      /* 英文ワードラップをする */
00094     m_nTabSpace     = refType.m_nTabSpace;
00095     m_nStringType   = refType.m_nStringType;        /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00096
00097     m_cLineComment = refType.m_cLineComment;    /* 行コメントデリミタ */   //@@@ 2002.09.22 YAZAKI
00098     m_cBlockComment = refType.m_cBlockComment;  /* ブロックコメントデリミタ */  //@@@ 2002.09.22 YAZAKI
00099
00100     // 2005.11.21 Moca 色分けフラグをメンバで持つ
00101     m_bDispComment = refType.m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp;
00102     m_bDispSString = refType.m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp;
00103     m_bDispWString = refType.m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp;
00104
00105     //  Oct. 1, 2002 genta タイプによって処理関数を変更する
00106     //  数が増えてきたらテーブルにすべき
00107     switch ( refType.m_nIndentLayout ){ /* 折り返しは2行目以降を字下げ表示 */    //@@@ 2002.09.29 YAZAKI
00108         case 1:
00109             //  Nov. 16, 2002 メンバー関数ポインタにはクラス名が必要
00110             m_getIndentOffset = &CLayoutMgr::getIndentOffset_Tx2x;
00111             break;
00112         case 2:
00113             m_getIndentOffset = &CLayoutMgr::getIndentOffset_LeftSpace;
00114             break;
00115         default:
00116             m_getIndentOffset = &CLayoutMgr::getIndentOffset_Normal;
00117             break;
00118     }
00119
00120     {   //@@@ 2002.04.08 MIK start
00121
00122         //句読点のぶらさげ
00123         m_bKinsokuKuto = refType.m_bKinsokuKuto;    /* 句読点ぶらさげ */ //@@@ 2002.04.17 MIK
00124         m_pszKinsokuKuto_1.clear();
00125         //  Kuto_2="。、，．", Kuto_1="｡､,."
00126         //データ部は行頭禁則処理で設定する。
00127
00128         //行頭禁則文字の1,2バイト文字を分けて管理する。
00129         m_bKinsokuHead = refType.m_bKinsokuHead;
00130         m_pszKinsokuHead_1.clear();
00131
00132         //refType.m_szKinsokuHead → m_pszKinsokuKuto_1, m_pszKinsokuHead_1
00133         for( wchar_t* p = refType.m_szKinsokuHead; *p; p++ )
00134         {
00135             if(IsKutoTen(*p)) //句読点は別管理
00136             {
00137                 // 2004.11.12 Moca 重複していたら登録しない
00138                 if(!_ExistKinsokuKuto(*p)){
00139                     m_pszKinsokuKuto_1.push_back(*p);
00140                 }
00141             }
00142             else
00143             {
00144                 m_pszKinsokuHead_1.push_back(*p);
00145             }
00146         }
00147         m_pszKinsokuHead_1.push_back(0); //終端 \0
00148         m_pszKinsokuKuto_1.push_back(0); //終端 \0
00149
00150         //行末禁則文字の1,2バイト文字を分けて管理する。
00151         m_bKinsokuTail = refType.m_bKinsokuTail;
00152         m_pszKinsokuTail_1.clear();
00153
00154         //refType.m_szKinsokuTail → m_pszKinsokuTail_1
00155         {
00156             for( const wchar_t* p = refType.m_szKinsokuTail; *p; p++ )
00157             {
00158                 m_pszKinsokuTail_1.push_back(*p);
00159             }
00160         }
00161         m_pszKinsokuTail_1.push_back(0); //終端 \0
00162
00163         m_bKinsokuRet = refType.m_bKinsokuRet;  /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
00164
00165     }   //@@@ 2002.04.08 MIK end
00166
00167     if( bDoRayout ){
00168         DoLayout( hwndProgress );
00169     }
00170
00171     return;
00172 }
00173
00174
00175 /*
00176 ||
00177 || 行データ管理クラスのポインタを初期化します
00178 ||
00179 */
00180 void CLayoutMgr::Create( CEditDoc* pcEditDoc, CDocLineMgr* pcDocLineMgr )
00181 {
00182     Init();
00183     //  Jun. 20, 2003 genta EditDocへのポインタ追加
00184     m_pcEditDoc = pcEditDoc;
00185     m_pcDocLineMgr = pcDocLineMgr;
00186     return;
00187 }
00188
00189
00190
00191 void CLayoutMgr::Init()
00192 {
00193     m_pLayoutTop = NULL;
00194     m_pLayoutBot = NULL;
00195     m_nPrevReferLine = CLayoutInt(0);
00196     m_pLayoutPrevRefer = NULL;
00197 //  m_pLayoutCurrent = NULL;
00198     m_nLines = CLayoutInt(0);           /* 全物理行数 */
00199 //  m_pszLineComment = NULL;            /* 行コメントデリミタ */
00200 //  m_pszBlockCommentFrom = NULL;       /* ブロックコメントデリミタ(From) */
00201 //  m_pszBlockCommentTo = NULL;         /* ブロックコメントデリミタ(To) */
00202     // 2006.10.07 Moca EOFレイアウト位置記憶
00203     m_nEOFLine = CLayoutInt(-1);
00204     m_nEOFColumn = CLayoutInt(-1);
00205     return;
00206 }
00207
00208
00209
00210 void CLayoutMgr::Empty()
00211 {
00212     CLayout* pLayout;
00213     CLayout* pLayoutNext;
00214     pLayout = m_pLayoutTop;
00215     while( NULL != pLayout ){
00216         pLayoutNext = pLayout->m_pNext;
00217         delete pLayout;
00218         pLayout = pLayoutNext;
00219     }
00220     return;
00221 }
00222
00223
00229 const CLayout* CLayoutMgr::SearchLineByLayoutY(
00230     CLayoutInt nLineLayout
00231 ) const
00232 {
00233     CLayoutInt nLineNum = nLineLayout;
00234
00235     CLayout*    pLayout;
00236     CLayoutInt  nCount;
00237     if( CLayoutInt(0) == m_nLines ){
00238         return NULL;
00239     }
00240
00241     //  Mar. 19, 2003 Moca nLineNumが負の場合のチェックを追加
00242     if( CLayoutInt(0) > nLineNum || nLineNum >= m_nLines ){
00243 #ifdef _DEBUG
00244         if( CLayoutInt(0) > nLineNum ){
00245             MYTRACE_A( "CLayoutMgr::SearchLineByLayoutY() nLineNum = %d\n", nLineNum );
00246         }
00247 #endif
00248         return NULL;
00249     }
00250 //  /*+++++++ 低速版 +++++++++*/
00251 //  if( nLineNum < (m_nLines / 2) ){
00252 //      nCount = 0;
00253 //      pLayout = m_pLayoutTop;
00254 //      while( NULL != pLayout ){
00255 //          if( nLineNum == nCount ){
00256 //              m_pLayoutPrevRefer = pLayout;
00257 //              m_nPrevReferLine = nLineNum;
00258 //              return pLayout;
00259 //          }
00260 //          pLayout = pLayout->m_pNext;
00261 //          nCount++;
00262 //      }
00263 //  }else{
00264 //      nCount = m_nLines - 1;
00265 //      pLayout = m_pLayoutBot;
00266 //      while( NULL != pLayout ){
00267 //          if( nLineNum == nCount ){
00268 //              m_pLayoutPrevRefer = pLayout;
00269 //              m_nPrevReferLine = nLineNum;
00270 //              return pLayout;
00271 //          }
00272 //          pLayout = pLayout->m_pPrev;
00273 //          nCount--;
00274 //      }
00275 //  }
00276
00277
00278     /*+++++++わずかに高速版+++++++*/
00279     // 2004.03.28 Moca m_pLayoutPrevReferより、Top,Botのほうが近い場合は、そちらを利用する
00280     CLayoutInt nPrevToLineNumDiff = t_abs( m_nPrevReferLine - nLineNum );
00281     if( m_pLayoutPrevRefer == NULL
00282       || nLineNum < nPrevToLineNumDiff
00283       || m_nLines - nLineNum < nPrevToLineNumDiff
00284     ){
00285         if( nLineNum < (m_nLines / 2) ){
00286             nCount = CLayoutInt(0);
00287             pLayout = m_pLayoutTop;
00288             while( NULL != pLayout ){
00289                 if( nLineNum == nCount ){
00290                     m_pLayoutPrevRefer = pLayout;
00291                     m_nPrevReferLine = nLineNum;
00292                     return pLayout;
00293                 }
00294                 pLayout = pLayout->m_pNext;
00295                 nCount++;
00296             }
00297         }else{
00298             nCount = m_nLines - CLayoutInt(1);
00299             pLayout = m_pLayoutBot;
00300             while( NULL != pLayout ){
00301                 if( nLineNum == nCount ){
00302                     m_pLayoutPrevRefer = pLayout;
00303                     m_nPrevReferLine = nLineNum;
00304                     return pLayout;
00305                 }
00306                 pLayout = pLayout->m_pPrev;
00307                 nCount--;
00308             }
00309         }
00310     }else{
00311         if( nLineNum == m_nPrevReferLine ){
00312             return m_pLayoutPrevRefer;
00313         }
00314         else if( nLineNum > m_nPrevReferLine ){
00315             nCount = m_nPrevReferLine + CLayoutInt(1);
00316             pLayout = m_pLayoutPrevRefer->m_pNext;
00317             while( NULL != pLayout ){
00318                 if( nLineNum == nCount ){
00319                     m_pLayoutPrevRefer = pLayout;
00320                     m_nPrevReferLine = nLineNum;
00321                     return pLayout;
00322                 }
00323                 pLayout = pLayout->m_pNext;
00324                 nCount++;
00325             }
00326         }
00327         else{
00328             nCount = m_nPrevReferLine - CLayoutInt(1);
00329             pLayout = m_pLayoutPrevRefer->m_pPrev;
00330             while( NULL != pLayout ){
00331                 if( nLineNum == nCount ){
00332                     m_pLayoutPrevRefer = pLayout;
00333                     m_nPrevReferLine = nLineNum;
00334                     return pLayout;
00335                 }
00336                 pLayout = pLayout->m_pPrev;
00337                 nCount--;
00338             }
00339         }
00340     }
00341     return NULL;
00342 }
00343
00344
00345 //@@@ 2002.09.23 YAZAKI CLayout*を作成するところは分離して、InsertLineNext()と共通化
00346 void CLayoutMgr::AddLineBottom( CLayout* pLayout )
00347 {
00348     if( CLayoutInt(0) == m_nLines ){
00349         m_pLayoutBot = m_pLayoutTop = pLayout;
00350         m_pLayoutTop->m_pPrev = NULL;
00351     }else{
00352         m_pLayoutBot->m_pNext = pLayout;
00353         pLayout->m_pPrev = m_pLayoutBot;
00354         m_pLayoutBot = pLayout;
00355     }
00356     pLayout->m_pNext = NULL;
00357     m_nLines++;
00358     return;
00359 }
00360
00361 //@@@ 2002.09.23 YAZAKI CLayout*を作成するところは分離して、AddLineBottom()と共通化
00362 CLayout* CLayoutMgr::InsertLineNext( CLayout* pLayoutPrev, CLayout* pLayout )
00363 {
00364     CLayout* pLayoutNext;
00365
00366     if( CLayoutInt(0) == m_nLines ){
00367         /* 初 */
00368         m_pLayoutBot = m_pLayoutTop = pLayout;
00369         m_pLayoutTop->m_pPrev = NULL;
00370         m_pLayoutTop->m_pNext = NULL;
00371     }
00372     else if( NULL == pLayoutPrev ){
00373         /* 先頭に挿入 */
00374         m_pLayoutTop->m_pPrev = pLayout;
00375         pLayout->m_pPrev = NULL;
00376         pLayout->m_pNext = m_pLayoutTop;
00377         m_pLayoutTop = pLayout;
00378     }else
00379     if( NULL == pLayoutPrev->m_pNext ){
00380         /* 最後に挿入 */
00381         m_pLayoutBot->m_pNext = pLayout;
00382         pLayout->m_pPrev = m_pLayoutBot;
00383         pLayout->m_pNext = NULL;
00384         m_pLayoutBot = pLayout;
00385     }else{
00386         /* 途中に挿入 */
00387         pLayoutNext = pLayoutPrev->m_pNext;
00388         pLayoutPrev->m_pNext = pLayout;
00389         pLayoutNext->m_pPrev = pLayout;
00390         pLayout->m_pPrev = pLayoutPrev;
00391         pLayout->m_pNext = pLayoutNext;
00392     }
00393     m_nLines++;
00394     return pLayout;
00395 }
00396
00397 /* CLayoutを作成する
00398     @@@ 2002.09.23 YAZAKI
00399 */
00400 CLayout* CLayoutMgr::CreateLayout(
00401     CDocLine*       pCDocLine,
00402     CLogicPoint     ptLogicPos,
00403     CLogicInt       nLength,
00404     EColorIndexType nTypePrev,
00405     CLayoutInt      nIndent
00406 )
00407 {
00408     CLayout* pLayout = new CLayout(
00409         pCDocLine,
00410         ptLogicPos,
00411         nLength,
00412         nTypePrev,
00413         nIndent
00414     );
00415
00416     if( EOL_NONE == pCDocLine->m_cEol ){
00417         pLayout->m_cEol.SetType( EOL_NONE );/* 改行コードの種類 */
00418     }else{
00419         if( pLayout->GetLogicOffset() + pLayout->GetLength() >
00420             pCDocLine->m_cLine.GetStringLength() - pCDocLine->m_cEol.GetLen()
00421         ){
00422             pLayout->m_cEol = pCDocLine->m_cEol;/* 改行コードの種類 */
00423         }else{
00424             pLayout->m_cEol = EOL_NONE;/* 改行コードの種類 */
00425         }
00426     }
00427     return pLayout;
00428 }
00429
00430
00431 /*
00432 || 指定された物理行のデータへのポインタとその長さを返す Ver0
00433
00434     @date 2002/2/10 aroka CMemory変更
00435 */
00436 const wchar_t* CLayoutMgr::GetLineStr( CLayoutInt nLine, CLogicInt* pnLineLen ) const
00437 {
00438     const CLayout* pLayout;
00439     if( NULL == ( pLayout = SearchLineByLayoutY( nLine )    ) ){
00440         return NULL;
00441     }
00442     *pnLineLen = CLogicInt(pLayout->GetLength());
00443     return pLayout->m_pCDocLine->m_cLine.GetStringPtr() + pLayout->GetLogicOffset();
00444 }
00445
00449 const wchar_t* CLayoutMgr::GetLineStr( CLayoutInt nLine, CLogicInt* pnLineLen, const CLayout** ppcLayoutDes ) const
00450 {
00451     if( NULL == ( (*ppcLayoutDes) = SearchLineByLayoutY( nLine )    ) ){
00452         return NULL;
00453     }
00454     *pnLineLen = (*ppcLayoutDes)->GetLength();
00455     return (*ppcLayoutDes)->m_pCDocLine->m_cLine.GetStringPtr() + (*ppcLayoutDes)->GetLogicOffset();
00456 }
00457
00458 /*
00459 || 指定された位置がレイアウト行の途中の行末かどうか調べる
00460
00461     @date 2002/4/27 MIK
00462 */
00463 bool CLayoutMgr::IsEndOfLine(
00464     const CLayoutPoint& ptLinePos
00465 )
00466 {
00467     const CLayout* pLayout;
00468
00469     if( NULL == ( pLayout = SearchLineByLayoutY( ptLinePos.GetY2() )    ) )
00470     {
00471         return false;
00472     }
00473
00474     if( EOL_NONE == pLayout->m_cEol.GetType() )
00475     {   /* この行に改行はない */
00476         /* この行の最後か？ */
00477         if( ptLinePos.x == (Int)pLayout->GetLength() ) return true; //$$ 単位混在
00478     }
00479
00480     return false;
00481 }
00482
00493 void CLayoutMgr::GetEndLayoutPos(
00494     CLayoutPoint* ptLayoutEnd //[out]
00495 )
00496 {
00497     if( -1 != m_nEOFLine ){
00498         ptLayoutEnd->x = m_nEOFColumn;
00499         ptLayoutEnd->y = m_nEOFLine;
00500         return;
00501     }
00502
00503     if( CLayoutInt(0) == m_nLines || m_pLayoutBot == NULL ){
00504         // データが空
00505         ptLayoutEnd->x = CLayoutInt(0);
00506         ptLayoutEnd->y = CLayoutInt(0);
00507         m_nEOFColumn = ptLayoutEnd->x;
00508         m_nEOFLine = ptLayoutEnd->y;
00509         return;
00510     }
00511
00512     CLayout *btm = m_pLayoutBot;
00513     if( btm->m_cEol != EOL_NONE ){
00514         //  末尾に改行がある
00515         ptLayoutEnd->Set(CLayoutInt(0), GetLineCount());
00516     }
00517     else {
00518         CMemoryIterator it( btm, GetTabSpace() );
00519         int nPosX = 0;
00520         while( !it.end() ){
00521             it.scanNext();
00522             it.addDelta();
00523         }
00524         ptLayoutEnd->Set(it.getColumn(), GetLineCount() - CLayoutInt(1));
00525         // 2006.10.01 Moca Start [EOF]のみのレイアウト行処理が抜けていたバグを修正
00526         if( GetMaxLineKetas() <= ptLayoutEnd->GetX2() ){
00527             ptLayoutEnd->SetX(CLayoutInt(0));
00528             ptLayoutEnd->y++;
00529         }
00530         // 2006.10.01 Moca End
00531     }
00532     m_nEOFColumn = ptLayoutEnd->x;
00533     m_nEOFLine = ptLayoutEnd->y;
00534 }
00535
00536
00541 void CLayoutMgr::DeleteData_CLayoutMgr(
00542     CLayoutInt  nLineNum,
00543     CLogicInt   nDelPos,
00544     CLogicInt   nDelLen,
00545     CLayoutInt* pnModifyLayoutLinesOld,
00546     CLayoutInt* pnModifyLayoutLinesNew,
00547     CLayoutInt* pnDeleteLayoutLines,
00548     CNativeW*   cmemDeleted
00549 )
00550 {
00551 #ifdef _DEBUG
00552     CRunningTimer cRunningTimer( "CLayoutMgr::DeleteData_CLayoutMgr" );
00553 #endif
00554     const wchar_t*  pLine;
00555     CLogicInt       nLineLen;
00556     CLayout*    pLayout;
00557     CLayout*    pLayoutPrev;
00558     CLayout*    pLayoutWork;
00559     CLogicInt   nModLineOldFrom;    /* 影響のあった変更前の行(from) */
00560     CLogicInt   nModLineOldTo;      /* 影響のあった変更前の行(to) */
00561     CLogicInt   nDelLineOldFrom;    /* 削除された変更前論理行(from) */
00562     CLogicInt   nDelLineOldNum;     /* 削除された行数 */
00563     CLogicInt   nRowNum;
00564     CLogicInt   nDelStartLogicalLine;
00565     CLogicInt           nDelStartLogicalPos;
00566     EColorIndexType     nCurrentLineType;
00567     CLayoutInt      nLineWork;
00568
00569     /* 現在行のデータを取得 */
00570     pLine = GetLineStr( nLineNum, &nLineLen );
00571     if( NULL == pLine ){
00572         return;
00573     }
00574     pLayout = m_pLayoutPrevRefer;
00575     nDelStartLogicalLine = pLayout->GetLogicLineNo();
00576     nDelStartLogicalPos  = nDelPos + pLayout->GetLogicOffset();
00577
00578     pLayoutWork = pLayout;
00579     nLineWork = nLineNum;
00580     while( 0 != pLayoutWork->GetLogicOffset() ){
00581         pLayoutWork = pLayoutWork->m_pPrev;
00582         --nLineWork;
00583     }
00584     nCurrentLineType = pLayoutWork->GetColorTypePrev();
00585
00586     /* テキストのデータを削除 */
00587     m_pcDocLineMgr->DeleteData_CDocLineMgr(
00588         nDelStartLogicalLine,
00589         nDelStartLogicalPos,
00590         nDelLen,
00591         &nModLineOldFrom,
00592         &nModLineOldTo,
00593         &nDelLineOldFrom,
00594         &nDelLineOldNum,
00595         cmemDeleted
00596     );
00597
00598 //  DUMP();
00599
00600     /*--- 変更された行のレイアウト情報を再生成 ---*/
00601     /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00602     /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00603     CLayoutInt      nAllLinesOld = m_nLines;
00604     pLayoutPrev = DeleteLayoutAsLogical(
00605         pLayoutWork,
00606         nLineWork,
00607         nModLineOldFrom,
00608         nModLineOldTo,
00609         CLogicPoint(nDelStartLogicalPos, nDelStartLogicalLine),
00610         pnModifyLayoutLinesOld
00611     );
00612
00613     /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00614     /* 論理行が削除された場合は０より小さい行数 */
00615     /* 論理行が挿入された場合は０より大きい行数 */
00616     ShiftLogicalLineNum( pLayoutPrev, nDelLineOldNum * (-1) );
00617
00618     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00619     if( NULL == pLayoutPrev ){
00620         if( NULL == m_pLayoutTop ){
00621             nRowNum = m_pcDocLineMgr->GetLineCount();
00622         }else{
00623             nRowNum = m_pLayoutTop->GetLogicLineNo();
00624         }
00625     }else{
00626         if( NULL == pLayoutPrev->m_pNext ){
00627             nRowNum =
00628                 m_pcDocLineMgr->GetLineCount() -
00629                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00630         }else{
00631             nRowNum =
00632                 pLayoutPrev->m_pNext->GetLogicLineNo() -
00633                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00634         }
00635     }
00636
00637     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00638     CLayoutInt  nAddInsLineNum;
00639     *pnModifyLayoutLinesNew = DoLayout_Range(
00640         pLayoutPrev,
00641         nRowNum,
00642         CLogicPoint(nDelStartLogicalPos, nDelStartLogicalLine),
00643         nCurrentLineType,
00644         &nAddInsLineNum
00645     );
00646
00647     *pnDeleteLayoutLines = nAllLinesOld - m_nLines + nAddInsLineNum;
00648     return;
00649 }
00650
00651
00652
00653
00654
00655
00660 void CLayoutMgr::InsertData_CLayoutMgr(
00661     CLayoutInt      nLineNum,
00662     CLogicInt       nInsPos,
00663     const wchar_t*  pInsData,
00664     CLogicInt       nInsDataLen,
00665     CLayoutInt*     pnModifyLayoutLinesOld,
00666     CLayoutInt*     pnInsLineNum,           // 挿入によって増えたレイアウト行の数
00667     CLayoutPoint*   pptNewLayout            // 挿入された部分の次の位置
00668 )
00669 {
00670     CLayout*    pLayout;
00671     CLayout*    pLayoutPrev;
00672     CLayout*    pLayoutWork;
00673     CLogicInt   nInsStartLogicalLine;
00674     CLogicInt   nInsStartLogicalPos;
00675     CLogicInt   nInsLineNum;
00676     CLogicInt   nRowNum;
00677     EColorIndexType     nCurrentLineType;
00678     CLayoutInt      nLineWork;
00679
00680
00681     // 現在行のデータを取得 -> pLine, nLineLen
00682     CLogicInt       nLineLen;
00683     const wchar_t*  pLine = GetLineStr( nLineNum, &nLineLen );
00684     if( !pLine ){
00685         /*
00686             2004.04.02 FILE / Moca カーソル位置不正のため、空テキストで
00687             nLineNumが0でないときに落ちる対策．データが空であることを
00688             カーソル位置ではなく総行数で判定することでより確実に．
00689         */
00690         if( m_nLines == CLayoutInt(0) )
00691         {
00692             /* 空のテキストの先頭に行を作る場合 */
00693             pLayout = NULL;
00694             nLineWork = CLayoutInt(0);
00695             nInsStartLogicalLine = m_pcDocLineMgr->GetLineCount();
00696             nInsStartLogicalPos  = CLogicInt(0);
00697             nCurrentLineType = COLORIDX_DEFAULT;
00698         }
00699         else{
00700             using namespace WCODE;
00701
00702             pLine = GetLineStr( m_nLines - CLayoutInt(1), &nLineLen );
00703             //終端2文字のどちらかにcr,lfのいずれかが含まれている場合
00704             if( ( nLineLen > 0 && ( pLine[nLineLen - 1] == CR || pLine[nLineLen - 1] == LF )) ||
00705                 ( nLineLen > 1 && ( pLine[nLineLen - 2] == CR || pLine[nLineLen - 2] == LF )) ){
00706                 // 空でないテキストの最後に行を作る場合
00707                 pLayout = NULL;
00708                 nLineWork = CLayoutInt(0);
00709                 nInsStartLogicalLine = m_pcDocLineMgr->GetLineCount();
00710                 nInsStartLogicalPos  = CLogicInt(0);
00711                 nCurrentLineType = m_nLineTypeBot;
00712             }
00713             else{
00714                 /* 空でないテキストの最後の行を変更する場合 */
00715                 nLineNum = m_nLines - CLayoutInt(1);
00716                 nInsPos = nLineLen;
00717                 pLayout = m_pLayoutPrevRefer;
00718                 nLineWork = m_nPrevReferLine;
00719
00720
00721                 nInsStartLogicalLine = pLayout->GetLogicLineNo();
00722                 nInsStartLogicalPos  = nInsPos + pLayout->GetLogicOffset();
00723                 nCurrentLineType = pLayout->GetColorTypePrev();
00724             }
00725         }
00726     }else{
00727         pLayout = m_pLayoutPrevRefer;
00728         nLineWork = m_nPrevReferLine;
00729
00730
00731         nInsStartLogicalLine = pLayout->GetLogicLineNo();
00732         nInsStartLogicalPos  = nInsPos + pLayout->GetLogicOffset();
00733         nCurrentLineType = pLayout->GetColorTypePrev();
00734     }
00735
00736     if( pLayout ){
00737         pLayoutWork = pLayout;
00738         while( pLayoutWork != NULL && 0 != pLayoutWork->GetLogicOffset() ){
00739             pLayoutWork = pLayoutWork->m_pPrev;
00740             nLineWork--;
00741         }
00742         if( NULL != pLayoutWork ){
00743             nCurrentLineType = pLayoutWork->GetColorTypePrev();
00744         }else{
00745             nCurrentLineType = COLORIDX_DEFAULT;
00746         }
00747     }
00748
00749
00750     // データの挿入
00751     CLogicPoint ptNewPos;   //挿入された部分の次のデータ位置
00752     m_pcDocLineMgr->InsertData_CDocLineMgr(
00753         nInsStartLogicalLine,
00754         nInsStartLogicalPos,
00755         pInsData,
00756         nInsDataLen,
00757         &nInsLineNum,
00758         &ptNewPos
00759     );
00760
00761
00762     //--- 変更された行のレイアウト情報を再生成 ---
00763     // 論理行の指定範囲に該当するレイアウト情報を削除して
00764     // 削除した範囲の直前のレイアウト情報のポインタを返す
00765     CLayoutInt  nAllLinesOld = m_nLines;
00766     if( NULL != pLayout ){
00767         pLayoutPrev = DeleteLayoutAsLogical(
00768             pLayoutWork,
00769             nLineWork,
00770             nInsStartLogicalLine,
00771             nInsStartLogicalLine,
00772             CLogicPoint(nInsStartLogicalPos, nInsStartLogicalLine),
00773             pnModifyLayoutLinesOld
00774         );
00775     }else{
00776         pLayoutPrev = m_pLayoutBot;
00777     }
00778
00779     // 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする
00780     // 論理行が削除された場合は０より小さい行数
00781     // 論理行が挿入された場合は０より大きい行数
00782     if( pLine ){
00783         ShiftLogicalLineNum( pLayoutPrev, nInsLineNum );
00784     }
00785
00786     // 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする
00787     if( NULL == pLayoutPrev ){
00788         if( NULL == m_pLayoutTop ){
00789             nRowNum = m_pcDocLineMgr->GetLineCount();
00790         }else{
00791             nRowNum = m_pLayoutTop->GetLogicLineNo();
00792         }
00793     }
00794     else{
00795         if( NULL == pLayoutPrev->m_pNext ){
00796             nRowNum =
00797                 m_pcDocLineMgr->GetLineCount() -
00798                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00799         }else{
00800             nRowNum =
00801                 pLayoutPrev->m_pNext->GetLogicLineNo() -
00802                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00803         }
00804     }
00805
00806     // 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする
00807     CLayoutInt      nAddInsLineNum;
00808     DoLayout_Range(
00809         pLayoutPrev,
00810         nRowNum,
00811         CLogicPoint(nInsStartLogicalPos, nInsStartLogicalLine),
00812         nCurrentLineType,
00813         &nAddInsLineNum
00814     );
00815
00816     *pnInsLineNum = m_nLines - nAllLinesOld + nAddInsLineNum;
00817
00818     // 論理位置→レイアウト位置変換
00819     LogicToLayout( ptNewPos, pptNewLayout );
00820     return;
00821 }
00822
00823
00824
00825
00826
00827
00828 /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00829 /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00830 CLayout* CLayoutMgr::DeleteLayoutAsLogical(
00831     CLayout*    pLayoutInThisArea,
00832     CLayoutInt  nLineOf_pLayoutInThisArea,
00833     CLogicInt   nLineFrom,
00834     CLogicInt   nLineTo,
00835     CLogicPoint ptDelLogicalFrom,
00836     CLayoutInt* pnDeleteLines
00837 )
00838 {
00839     CLayout* pLayout;
00840     CLayout* pLayoutWork;
00841     CLayout* pLayoutNext;
00842
00843     *pnDeleteLines = CLayoutInt(0);
00844     if( CLayoutInt(0) == m_nLines){ /* 全物理行数 */
00845         return NULL;
00846     }
00847     if( NULL == pLayoutInThisArea ){
00848         return NULL;
00849     }
00850
00851     // 1999.11.22
00852     m_pLayoutPrevRefer = pLayoutInThisArea->m_pPrev;
00853     m_nPrevReferLine = nLineOf_pLayoutInThisArea - CLayoutInt(1);
00854 //  m_pLayoutPrevRefer = NULL;
00855 //  m_nPrevReferLine = 0;
00856
00857
00858     /* 範囲内先頭に該当するレイアウト情報をサーチ */
00859     pLayoutWork = pLayoutInThisArea->m_pPrev;
00860     while( NULL != pLayoutWork && nLineFrom <= pLayoutWork->GetLogicLineNo()){
00861         pLayoutWork = pLayoutWork->m_pPrev;
00862     }
00863 //          m_pLayoutPrevRefer = pLayout->m_pPrev;
00864 //          --m_nPrevReferLine;
00865
00866
00867
00868     if( NULL == pLayoutWork ){
00869         pLayout = m_pLayoutTop;
00870     }else{
00871         pLayout = pLayoutWork->m_pNext;
00872     }
00873     while( NULL != pLayout ){
00874         if( pLayout->GetLogicLineNo() > nLineTo ){
00875             break;
00876         }
00877         pLayoutNext = pLayout->m_pNext;
00878         if( NULL == pLayoutWork ){
00879             /* 先頭行の処理 */
00880             m_pLayoutTop = pLayout->m_pNext;
00881             if( NULL != pLayout->m_pNext ){
00882                 pLayout->m_pNext->m_pPrev = NULL;
00883             }
00884         }else{
00885             pLayoutWork->m_pNext = pLayout->m_pNext;
00886             if( NULL != pLayout->m_pNext ){
00887                 pLayout->m_pNext->m_pPrev = pLayoutWork;
00888             }
00889         }
00890 //      if( m_pLayoutPrevRefer == pLayout ){
00891 //          // 1999.12.22 前にずらすだけでよいのでは
00892 //          m_pLayoutPrevRefer = pLayout->m_pPrev;
00893 //          --m_nPrevReferLine;
00894 //      }
00895
00896         if( ( ptDelLogicalFrom.GetY2() == pLayout->GetLogicLineNo() &&
00897               ptDelLogicalFrom.GetX2() < pLayout->GetLogicOffset() + pLayout->GetLength() ) ||
00898             ( ptDelLogicalFrom.GetY2() < pLayout->GetLogicLineNo() )
00899         ){
00900             (*pnDeleteLines)++;;
00901         }
00902
00903 #ifdef _DEBUG
00904         if( m_pLayoutPrevRefer == pLayout ){
00905             MYTRACE_A( "バグバグ\n" );
00906         }
00907 #endif
00908         delete pLayout;
00909
00910         m_nLines--; /* 全物理行数 */
00911         if( NULL == pLayoutNext ){
00912             m_pLayoutBot = pLayoutWork;
00913         }
00914         pLayout = pLayoutNext;
00915     }
00916 //  MYTRACE_A( "(*pnDeleteLines)=%d\n", (*pnDeleteLines) );
00917
00918     return pLayoutWork;
00919 }
00920
00921
00922
00923
00924 /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00925 /* 論理行が削除された場合は０より小さい行数 */
00926 /* 論理行が挿入された場合は０より大きい行数 */
00927 void CLayoutMgr::ShiftLogicalLineNum( CLayout* pLayoutPrev, CLogicInt nShiftLines )
00928 {
00929     MY_RUNNINGTIMER( cRunningTimer, "CLayoutMgr::ShiftLogicalLineNum" );
00930
00931     CLayout* pLayout;
00932 //  CLayout* pLayoutNext;
00933     if( 0 == nShiftLines ){
00934         return;
00935     }
00936     if( NULL == pLayoutPrev ){
00937         pLayout = m_pLayoutTop;
00938     }else{
00939         pLayout = pLayoutPrev->m_pNext;
00940     }
00941     /* レイアウト情報全体を更新する(なな、なんと!!!) */
00942     while( NULL != pLayout ){
00943         pLayout->OffsetLogicLineNo(nShiftLines);    /* 対応する論理行番号 */
00944         pLayout = pLayout->m_pNext;
00945     }
00946     return;
00947 }
00948
00949
00950 bool CLayoutMgr::ChangeLayoutParam(
00951     HWND        hwndProgress,
00952     CLayoutInt  nTabSize,
00953     CLayoutInt  nMaxLineKetas
00954 )
00955 {
00956     if( nTabSize < 1 || nTabSize > 64 ) { return false; }
00957     if( nMaxLineKetas < MINLINEKETAS || nMaxLineKetas > MAXLINEKETAS ){ return false; }
00958
00959     m_nTabSpace = nTabSize;
00960     m_nMaxLineKetas = nMaxLineKetas;
00961
00962     DoLayout( hwndProgress );
00963
00964     return true;
00965 }
00966
00967
00968
00969
00970
00971 /* 現在位置の単語の範囲を調べる */
00972 bool CLayoutMgr::WhereCurrentWord(
00973     CLayoutInt      nLineNum,
00974     CLogicInt       nIdx,
00975     CLayoutRange*   pSelect,
00976     CNativeW*       pcmcmWord,
00977     CNativeW*       pcmcmWordLeft
00978 )
00979 {
00980     const CLayout* pLayout = SearchLineByLayoutY( nLineNum );
00981     if( NULL == pLayout ){
00982         return false;
00983     }
00984
00985     // 現在位置の単語の範囲を調べる -> ロジック単位pSelect, pcmemWord, pcmemWordLeft
00986     CLogicInt nFromX;
00987     CLogicInt nToX;
00988     bool nRetCode = m_pcDocLineMgr->WhereCurrentWord(
00989         pLayout->GetLogicLineNo(),
00990         pLayout->GetLogicOffset() + CLogicInt(nIdx),
00991         &nFromX,
00992         &nToX,
00993         pcmcmWord,
00994         pcmcmWordLeft
00995     );
00996
00997     if( nRetCode ){
00998         /* 論理位置→レイアウト位置変換 */
00999         CLayoutPoint ptFrom;
01000         LogicToLayout( CLogicPoint(nFromX, pLayout->GetLogicLineNo()), &ptFrom, nLineNum );
01001         pSelect->SetFrom(ptFrom);
01002
01003         CLayoutPoint ptTo;
01004         LogicToLayout( CLogicPoint(nToX, pLayout->GetLogicLineNo()), &ptTo, nLineNum );
01005         pSelect->SetTo(ptTo);
01006     }
01007     return nRetCode;
01008
01009 }
01010
01011
01012
01013
01014
01015 /* 現在位置の左右の単語の先頭位置を調べる */
01016 int CLayoutMgr::PrevOrNextWord(
01017     CLayoutInt      nLineNum,
01018     CLogicInt       nIdx,
01019     CLayoutPoint*   pptLayoutNew,
01020     BOOL            bLEFT,
01021     BOOL            bStopsBothEnds
01022 )
01023 {
01024     const CLayout*  pLayout = SearchLineByLayoutY( nLineNum );
01025     if( NULL == pLayout ){
01026         return FALSE;
01027     }
01028
01029     // 現在位置の左右の単語の先頭位置を調べる
01030     CLogicInt   nPosNew;
01031     int         nRetCode = m_pcDocLineMgr->PrevOrNextWord(
01032         pLayout->GetLogicLineNo(),
01033         pLayout->GetLogicOffset() + nIdx,
01034         &nPosNew,
01035         bLEFT,
01036         bStopsBothEnds
01037     );
01038
01039     if( nRetCode ){
01040         /* 論理位置→レイアウト位置変換 */
01041         LogicToLayout(
01042             CLogicPoint(nPosNew,pLayout->GetLogicLineNo()),
01043             pptLayoutNew,
01044             nLineNum
01045         );
01046     }
01047     return nRetCode;
01048 }
01049
01050
01051
01052
01053
01055 /*
01056     @retval 0 見つからない
01057 */
01058 int CLayoutMgr::SearchWord(
01059     CLayoutInt              nLine,
01060     CLogicInt               nIdx,
01061     const wchar_t*          pszPattern,
01062     ESearchDirection        eSearchDirection,
01063     const SSearchOption&    sSearchOption,
01064     CLayoutRange*           pMatchRange,
01065     CBregexp*               pRegexp
01066 )
01067 {
01068     int         nRetCode;
01069     const CLayout*  pLayout;
01070     pLayout = this->SearchLineByLayoutY( nLine );
01071     if( NULL == pLayout ){
01072         return FALSE;
01073     }
01074
01075     // 単語検索 -> cLogicRange (データ位置)
01076     CLogicRange cLogicRange;
01077     nRetCode = m_pcDocLineMgr->SearchWord(
01078         CLogicPoint(pLayout->GetLogicOffset() + nIdx, pLayout->GetLogicLineNo()),
01079         pszPattern,
01080         eSearchDirection,
01081         sSearchOption,
01082         &cLogicRange, //pMatchRange,
01083         pRegexp         /* 正規表現コンパイルデータ */
01084     );
01085
01086     // 論理位置→レイアウト位置変換
01087     // cLogicRange -> pMatchRange
01088     if( nRetCode ){
01089         LogicToLayout(
01090             cLogicRange,
01091             pMatchRange
01092         );
01093     }
01094     return nRetCode;
01095 }
01096
01097
01098
01099
01100
01101 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01102 //                        単位の変換                           //
01103 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01104
01118 void CLayoutMgr::LogicToLayout(
01119     const CLogicPoint&  ptLogic,
01120     CLayoutPoint*       pptLayout,
01121     CLayoutInt          nLineHint
01122 )
01123 {
01124     pptLayout->Clear();
01125
01126     if(GetLineCount()==0)return; //変換不可
01127
01128     // サーチ開始地点 -> pLayout, nCaretPosX, nCaretPosY
01129     CLayoutInt      nCaretPosX = CLayoutInt(0);
01130     CLayoutInt      nCaretPosY;
01131     const CLayout*  pLayout;
01132     if(nLineHint==0){
01133         nCaretPosY = CLayoutInt(ptLogic.y);
01134
01135         // [ヒント無しの場合]
01136         // ロジック行 <= レイアウト行 が成り立つから、
01137         // サーチ開始地点をできるだけ目的地へ近づける
01138         pLayout = SearchLineByLayoutY( nCaretPosY );
01139         if( !pLayout ){
01140             if( 0 < m_nLines ){
01141                 pptLayout->SetY( m_nLines );
01142             }
01143             return;
01144         }
01145     }
01146     else{
01147         nCaretPosY = nLineHint;
01148
01149         // [ヒント有りの場合]
01150         pLayout = SearchLineByLayoutY(nCaretPosY);
01151         if(!pLayout) pLayout = SearchLineByLayoutY( nCaretPosY = CLayoutInt(0) );
01152
01153         //ロジックYがでかすぎる場合は、一致するまでデクリメント (
01154         while(pLayout->GetLogicLineNo() > ptLogic.GetY2()){
01155             pLayout = pLayout->m_pPrev;
01156             nCaretPosY--;
01157         }
01158
01159         //ロジックYが同じ場合は、ロジックY内の最小レイアウトYを開始地点とする
01160         if(pLayout->GetLogicLineNo() == ptLogic.GetY2()){
01161             while(pLayout->m_pPrev && pLayout->m_pPrev->GetLogicLineNo() == ptLogic.GetY2()){
01162                 pLayout = pLayout->m_pPrev;
01163                 nCaretPosY--;
01164             }
01165         }
01166
01167     }
01168
01169
01170     //  Layoutを１つずつ先に進めながらptLogic.yが物理行に一致するLayoutを探す
01171     do{
01172         if( ptLogic.GetY2() == pLayout->GetLogicLineNo() ){
01173             //  2004.06.16 Moca インデント表示の際に位置がずれる(TAB位置ずれによる)
01174             //  TAB幅を正確に計算するには当初からインデント分を加えておく必要がある．
01175             nCaretPosX = pLayout->GetIndent();
01176             const wchar_t*  pData;
01177             pData = pLayout->m_pCDocLine->m_cLine.GetStringPtr() + pLayout->GetLogicOffset(); // 2002/2/10 aroka CMemory変更
01178             CLogicInt   nDataLen = pLayout->GetLength();
01179
01180             CLogicInt i;
01181             for( i = CLogicInt(0); i < nDataLen; ++i ){
01182                 if( pLayout->GetLogicOffset() + i >= ptLogic.x ){
01183                     break;
01184                 }
01185
01186                 //文字ロジック幅 -> nCharChars
01187                 CLogicInt nCharChars = CNativeW::GetSizeOfChar( pData, nDataLen, i );
01188                 if( nCharChars == 0 )
01189                     nCharChars = CLogicInt(1);
01190
01191                 //文字レイアウト幅 -> nCharKetas
01192                 CLayoutInt nCharKetas;
01193                 if( pData[i] == WCODE::TAB ){
01194                     // Sep. 23, 2002 genta メンバー関数を使うように
01195                     nCharKetas = GetActualTabSpace( nCaretPosX );
01196                 }
01197                 else{
01198                     nCharKetas = CNativeW::GetKetaOfChar( pData, nDataLen, i );
01199                 }
01200                 if( nCharKetas == 0 )
01201                     nCharKetas = CLayoutInt(1);
01202
01203                 //レイアウト加算
01204                 nCaretPosX += nCharKetas;
01205
01206                 //ロジック加算
01207                 if( pData[i] == WCODE::TAB ){
01208                     nCharChars = CLogicInt(1);
01209                 }
01210                 i += nCharChars - CLogicInt(1);
01211             }
01212             if( i < nDataLen ){
01213                 //  ptLogic.x, ptLogic.yがこの行の中に見つかったらループ打ち切り
01214                 break;
01215             }
01216
01217             if( !pLayout->m_pNext ){
01218                 //  当該位置に達していなくても，レイアウト末尾ならデータ末尾のレイアウト位置を返す．
01219                 nCaretPosX = pLayout->GetIndent() + pLayout->CalcLayoutWidth() + CLayoutInt(pLayout->m_cEol.GetLen()>0?1:0);
01220                 break;
01221             }
01222
01223             if( ptLogic.y < pLayout->m_pNext->GetLogicLineNo() ){
01224                 //  次のLayoutが当該物理行を過ぎてしまう場合はデータ末尾のレイアウト位置を返す．
01225                 nCaretPosX = pLayout->GetIndent() + pLayout->CalcLayoutWidth() + CLayoutInt(pLayout->m_cEol.GetLen()>0?1:0);
01226                 break;
01227             }
01228         }
01229         if( ptLogic.GetY2() < pLayout->GetLogicLineNo() ){
01230             //  ふつうはここには来ないと思うが... (genta)
01231             //  Layoutの指す物理行が探している行より先を指していたら打ち切り
01232             break;
01233         }
01234
01235         //  次の行へ進む
01236         nCaretPosY++;
01237         pLayout = pLayout->m_pNext;
01238     }
01239     while( pLayout );
01240
01241     //  2004.06.16 Moca インデント表示の際の位置ずれ修正
01242     pptLayout->Set(
01243         pLayout ? nCaretPosX : CLayoutInt(0),
01244         nCaretPosY
01245     );
01246 }
01247
01248 /*
01249   カーソル位置変換
01250   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01251   →
01252   物理位置(行頭からのバイト数、折り返し無し行位置)
01253 */
01254 //2007.09.06 kobake 関数名をLayoutToLogic→LayoutToLogicに変更
01255 void CLayoutMgr::LayoutToLogic(
01256     const CLayoutPoint& ptLayout,
01257     CLogicPoint*        pptLogic
01258 ) const
01259 {
01260     pptLogic->Set(CLogicInt(0), CLogicInt(0));
01261     if( ptLayout.GetY2() > m_nLines ){
01262         //2007.10.11 kobake Y値が間違っていたので修正
01263         //pptLogic->Set(0, m_nLines);
01264         pptLogic->Set(CLogicInt(0), m_pcDocLineMgr->GetLineCount());
01265         return;
01266     }
01267
01268     CLogicInt       nDataLen;
01269     const wchar_t*  pData;
01270
01271     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01272     //                        Ｙ値の決定                           //
01273     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01274     BOOL            bEOF = FALSE;
01275     CLayoutInt      nX;
01276     const CLayout*  pcLayout = SearchLineByLayoutY( ptLayout.GetY2() );
01277     if( !pcLayout ){
01278         if( 0 < ptLayout.y ){
01279             pcLayout = SearchLineByLayoutY( ptLayout.GetY2() - CLayoutInt(1) );
01280             if( NULL == pcLayout ){
01281                 pptLogic->Set(CLogicInt(0), m_pcDocLineMgr->GetLineCount());
01282                 return;
01283             }
01284             else{
01285                 pData = GetLineStr( ptLayout.GetY2() - CLayoutInt(1), &nDataLen );
01286                 if( pData[nDataLen - 1] == L'\r' || pData[nDataLen - 1] == L'\n' ){
01287                     pptLogic->Set(CLogicInt(0), m_pcDocLineMgr->GetLineCount());
01288                     return;
01289                 }
01290                 else{
01291                     pptLogic->y = m_pcDocLineMgr->GetLineCount() - 1; // 2002/2/10 aroka CDocLineMgr変更
01292                     bEOF = TRUE;
01293                     nX = CLayoutInt(MAXLINEKETAS);
01294                     goto checkloop;
01295
01296                 }
01297             }
01298         }
01299         //2007.10.11 kobake Y値が間違っていたので修正
01300         //pptLogic->Set(0, m_nLines);
01301         pptLogic->Set(CLogicInt(0), m_pcDocLineMgr->GetLineCount());
01302         return;
01303     }
01304     else{
01305         pptLogic->y = pcLayout->GetLogicLineNo();
01306     }
01307
01308
01309     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01310     //                        Ｘ値の決定                           //
01311     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01312     pData = GetLineStr( ptLayout.GetY2(), &nDataLen );
01313     nX = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
01314
01315 checkloop:;
01316     CLogicInt   i;
01317     for( i = CLogicInt(0); i < nDataLen; ++i )
01318     {
01319         //文字ロジック幅 -> nCharChars
01320         CLogicInt   nCharChars;
01321         nCharChars = CNativeW::GetSizeOfChar( pData, nDataLen, i );
01322         if( nCharChars == 0 )
01323             nCharChars = CLogicInt(1);
01324
01325         //文字レイアウト幅 -> nCharKetas
01326         CLayoutInt  nCharKetas;
01327         if( pData[i] == WCODE::TAB ){
01328             nCharKetas = GetActualTabSpace( nX );
01329         }
01330         else{
01331             nCharKetas = CNativeW::GetKetaOfChar( pData, nDataLen, i );
01332         }
01333         if( nCharKetas == 0 )
01334             nCharKetas = CLayoutInt(1);
01335
01336         //レイアウト加算
01337         nX += nCharKetas;
01338         if( nX > ptLayout.GetX2() && !bEOF ){
01339             break;
01340         }
01341
01342         //ロジック加算
01343         if( pData[i] == WCODE::TAB ){
01344             nCharChars = CLogicInt(1);
01345         }
01346         i += nCharChars - CLogicInt(1);
01347     }
01348     i += pcLayout->GetLogicOffset();
01349     pptLogic->x = i;
01350     return;
01351 }
01352
01353
01354
01355
01356
01357 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01358 //                         デバッグ                            //
01359 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
01360
01361 /* テスト用にレイアウト情報をダンプ */
01362 void CLayoutMgr::DUMP( void )
01363 {
01364 #ifdef _DEBUG
01365     const wchar_t* pData;
01366     CLogicInt nDataLen;
01367     MYTRACE_A( "------------------------\n" );
01368     MYTRACE_A( "m_nLines=%d\n", m_nLines );
01369     MYTRACE_A( "m_pLayoutTop=%08lxh\n", m_pLayoutTop );
01370     MYTRACE_A( "m_pLayoutBot=%08lxh\n", m_pLayoutBot );
01371     MYTRACE_A( "m_nMaxLineKetas=%d\n", m_nMaxLineKetas );
01372
01373     MYTRACE_A( "m_nTabSpace=%d\n", m_nTabSpace );
01374     CLayout* pLayout;
01375     CLayout* pLayoutNext;
01376     pLayout = m_pLayoutTop;
01377     while( NULL != pLayout ){
01378         pLayoutNext = pLayout->m_pNext;
01379         MYTRACE_A( "\t-------\n" );
01380         MYTRACE_A( "\tthis=%08lxh\n", pLayout );
01381         MYTRACE_A( "\tm_pPrev =%08lxh\n",       pLayout->m_pPrev );
01382         MYTRACE_A( "\tm_pNext =%08lxh\n",       pLayout->m_pNext );
01383         MYTRACE_A( "\tm_nLinePhysical=%d\n",    pLayout->GetLogicLineNo() );
01384         MYTRACE_A( "\tm_nOffset=%d\n",      pLayout->GetLogicOffset() );
01385         MYTRACE_A( "\tm_nLength=%d\n",      pLayout->GetLength() );
01386         MYTRACE_A( "\tm_enumEOLType =%ls\n",    pLayout->m_cEol.GetName() );
01387         MYTRACE_A( "\tm_nEOLLen =%d\n",     pLayout->m_cEol.GetLen() );
01388         MYTRACE_A( "\tm_nTypePrev=%d\n",        pLayout->GetColorTypePrev() );
01389         pData = m_pcDocLineMgr->GetLineStr( pLayout->GetLogicLineNo(), &nDataLen );
01390         MYTRACE_A( "\t[%ls]\n", pData );
01391         pLayout = pLayoutNext;
01392     }
01393     MYTRACE_A( "------------------------\n" );
01394 #endif
01395     return;
01396 }
01397
01398
01399 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr.h

sakura_core

CLayoutMgr.h

テキストのレイアウト情報管理 [詳細]

#include <windows.h>
#include "global.h"
#include "CLineComment.h"
#include "CBlockComment.h"
#include "basis/SakuraBasis.h"
#include <vector>

CLayoutMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | LayoutReplaceArg
class | CLayoutMgr
テキストのレイアウト情報管理 [詳細]

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

1998/04/14 データの削除を実装

1999/12/20 データの置換を実装

CLayoutMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr.h ソースファイル

sakura_core

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 #include "basis/SakuraBasis.h"
00030 #include <vector>
00031
00032 class CBregexp;// 2002/2/10 aroka
00033 class CLayout;// 2002/2/10 aroka
00034 class CDocLineMgr;// 2002/2/10 aroka
00035 class CDocLine;// 2002/2/10 aroka
00036 class CMemory;// 2002/2/10 aroka
00037 class CEditDoc;// 2003/07/20 genta
00038 struct Types;// 2005.11.20 Moca
00039 #include "basis/SakuraBasis.h"
00040
00041
00042 struct LayoutReplaceArg {
00043     CLayoutRange    sDelRange;
00044     CNativeW*       pcmemDeleted;
00045     const wchar_t*  pInsData;
00046     CLogicInt       nInsDataLen;
00047     CLayoutInt      nAddLineNum;
00048     CLayoutInt      nModLineFrom;
00049     CLayoutInt      nModLineTo;
00050     CLayoutPoint    ptLayoutNew;
00051 };
00052
00053
00054 /*-----------------------------------------------------------------------
00055 クラスの宣言
00056 -----------------------------------------------------------------------*/
00061 //2007.10.15 XYLogicalToLayoutを廃止。LogicToLayoutに統合。
00062 class SAKURA_CORE_API CLayoutMgr
00063 {
00064 private:
00065     typedef CLayoutInt (CLayoutMgr::*CalcIndentProc)( CLayout* );
00066
00067 public:
00068     /*
00069     ||  Constructors
00070     */
00071     CLayoutMgr();
00072     ~CLayoutMgr();
00073     void Create( CEditDoc*, CDocLineMgr* );
00074
00075
00076     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00077     //                          参照系                             //
00078     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00079 public:
00080     //2007.10.09 kobake 関数名変更: Search → SearchLineByLayoutY
00081     CLayoutInt GetLineCount() const{ return m_nLines; } /* 全物理行数を返す */
00082     const wchar_t* GetLineStr( CLayoutInt nLine, CLogicInt* pnLineLen ) const;  /* 指定された物理行のデータへのポインタとその長さを返す */
00083     const wchar_t* GetLineStr( CLayoutInt nLine, CLogicInt* pnLineLen, const CLayout** ppcLayoutDes ) const;    /* 指定された物理行のデータへのポインタとその長さを返す */
00084     bool IsEndOfLine( const CLayoutPoint& ptLinePos );  /* 指定位置が行末(改行文字の直前)か調べる */  //@@@ 2002.04.18 MIK
00085     const CLayout* SearchLineByLayoutY( CLayoutInt nLineLayout ) const; /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
00086     CLayout* SearchLineByLayoutY( CLayoutInt nLineLayout ){ return const_cast<CLayout*>(static_cast<const CLayoutMgr*>(this)->SearchLineByLayoutY(nLineLayout)); }
00087     bool WhereCurrentWord( CLayoutInt , CLogicInt , CLayoutRange* pSelect, CNativeW*, CNativeW* );  /* 現在位置の単語の範囲を調べる */
00088
00089     //  Sep. 23, 2002 genta
00093     CLayoutInt GetTabSpace(void) const { return m_nTabSpace; }
00094
00099     CLayoutInt GetActualTabSpace(CLayoutInt pos) const { return m_nTabSpace - pos % m_nTabSpace; }
00100
00101     //  Aug. 14, 2005 genta
00102     // Sep. 07, 2007 kobake 関数名変更 GetMaxLineSize→GetMaxLineKetas
00103     CLayoutInt GetMaxLineKetas(void) const { return m_nMaxLineKetas; }
00104
00105     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00106     bool ChangeLayoutParam( HWND hwndProgress, CLayoutInt nTabSize, CLayoutInt nMaxLineKetas );
00107
00108     // Jul. 29, 2006 genta
00109     void GetEndLayoutPos(CLayoutPoint* ptLayoutEnd);
00110
00111
00112     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00113     //                           検索                              //
00114     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00115 protected:
00116     int PrevOrNextWord( CLayoutInt, CLogicInt, CLayoutPoint* pptLayoutNew, BOOL, BOOL bStopsBothEnds ); /* 現在位置の左右の単語の先頭位置を調べる */
00117 public:
00118     int PrevWord( CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint* pptLayoutNew, BOOL bStopsBothEnds ){ return PrevOrNextWord(nLineNum, nIdx, pptLayoutNew, TRUE, bStopsBothEnds); }  /* 現在位置の左右の単語の先頭位置を調べる */
00119     int NextWord( CLayoutInt nLineNum, CLogicInt nIdx, CLayoutPoint* pptLayoutNew, BOOL bStopsBothEnds ){ return PrevOrNextWord(nLineNum, nIdx, pptLayoutNew, FALSE, bStopsBothEnds); } /* 現在位置の左右の単語の先頭位置を調べる */
00120
00121     int SearchWord( CLayoutInt nLine, CLogicInt nIdx, const wchar_t* , ESearchDirection eSearchDirection, const SSearchOption& sSearchOption, CLayoutRange* pMatchRange, CBregexp* );   /* 単語検索 */
00122
00123
00124     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00125     //                        単位の変換                           //
00126     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00127 public:
00129     void LogicToLayout( const CLogicPoint& ptLogic, CLayoutPoint* pptLayout, CLayoutInt nLineHint = CLayoutInt(0) );
00130     void LogicToLayout( const CLogicRange& rangeLogic, CLayoutRange* prangeLayout )
00131     {
00132         LogicToLayout(rangeLogic.GetFrom(), prangeLayout->GetFromPointer());
00133         LogicToLayout(rangeLogic.GetTo(), prangeLayout->GetToPointer());
00134     }
00135
00137     void LayoutToLogic( const CLayoutPoint& ptLayout, CLogicPoint* pptLogic ) const;
00138     void LayoutToLogic( const CLayoutRange& rangeLayout, CLogicRange* prangeLogic ) const
00139     {
00140         LayoutToLogic(rangeLayout.GetFrom(), prangeLogic->GetFromPointer());
00141         LayoutToLogic(rangeLayout.GetTo(), prangeLogic->GetToPointer());
00142     }
00143
00144     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00145     //                         デバッグ                            //
00146     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00147 public:
00148     void DUMP( void );  /* テスト用にレイアウト情報をダンプ */
00149
00150
00151     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00152     //                         編集とか                            //
00153     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00154 public:
00155     /*
00156     || 更新系
00157     */
00158     /* レイアウト情報の変更
00159         @date Jun. 01, 2001 JEPRO char* (行コメントデリミタ3用)を1つ追加
00160         @date 2002.04.13 MIK 禁則,改行文字をぶら下げる,句読点ぶらさげを追加
00161         @date 2002/04/27 YAZAKI Typesを渡すように変更。
00162     */
00163     void SetLayoutInfo( int, HWND, Types& refType );
00164
00165     /* 行内文字削除 */
00166     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00167     void DeleteData_CLayoutMgr(
00168         CLayoutInt  nLineNum,
00169         CLogicInt   nDelPos,
00170         CLogicInt   nDelLen,
00171         CLayoutInt* pnModifyLayoutLinesOld,
00172         CLayoutInt* pnModifyLayoutLinesNew,
00173         CLayoutInt* pnDeleteLayoutLines,
00174         CNativeW*   cmemDeleted         /* 削除されたデータ */
00175     );
00176
00177     /* 文字列挿入 */
00178     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00179     void InsertData_CLayoutMgr(
00180         CLayoutInt      nLineNum,
00181         CLogicInt       nInsPos,
00182         const wchar_t*  pInsData,
00183         CLogicInt       nInsDataLen,
00184         CLayoutInt*     pnModifyLayoutLinesOld,
00185         CLayoutInt*     pnInsLineNum,       /* 挿入によって増えたレイアウト行の数 */
00186         CLayoutPoint*   pptNewLayout        // 挿入された部分の次の位置のデータ位置
00187     );
00188
00189     /* 文字列置換 */
00190     void ReplaceData_CLayoutMgr(
00191         LayoutReplaceArg*   pArg
00192     );
00193
00194
00195
00196 protected:
00197     /*
00198     ||  参照系
00199     */
00200     const char* GetFirstLinrStr( int* );    /* 順アクセスモード：先頭行を得る */
00201     const char* GetNextLinrStr( int* ); /* 順アクセスモード：次の行を得る */
00202
00203
00204     /*
00205     || 更新系
00206     */
00207     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00208     void DoLayout( HWND );  /* 現在の折り返し文字数に合わせて全データのレイアウト情報を再生成します */
00209     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00210     CLayoutInt DoLayout_Range( CLayout* , CLogicInt, CLogicPoint, EColorIndexType, CLayoutInt* );   /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00211     CLayout* DeleteLayoutAsLogical( CLayout*, CLayoutInt, CLogicInt , CLogicInt, CLogicPoint, CLayoutInt* );    /* 論理行の指定範囲に該当するレイアウト情報を削除 */
00212     void ShiftLogicalLineNum( CLayout* , CLogicInt );   /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00213
00214
00215 public:
00216     void Init();
00217     void Empty();
00218
00219 private:
00220     bool _ExistKinsokuKuto(wchar_t wc) const{ return m_pszKinsokuKuto_1.size() && wcschr(&m_pszKinsokuKuto_1[0],wc)!=NULL; }
00221     bool _ExistKinsokuHead(wchar_t wc) const{ return m_pszKinsokuHead_1.size() && wcschr(&m_pszKinsokuHead_1[0],wc)!=NULL; }
00222     bool IsKinsokuHead( const wchar_t *pLine, CLogicInt length );       //@@@ 2002.04.08 MIK
00223     bool IsKinsokuTail( const wchar_t *pLine, CLogicInt length );       //@@@ 2002.04.08 MIK
00224     bool IsKutoTen( wchar_t wc );       //@@@ 2002.04.17 MIK
00225     bool IsKinsokuKuto( const wchar_t *pLine, CLogicInt length );       //@@@ 2002.04.17 MIK
00226     //  2005-08-20 D.S.Koba 禁則関連処理の関数化
00231     bool IsKinsokuPosKuto(CLayoutInt nRest, CLayoutInt nCharChars ) const {
00232         return nRest < nCharChars;
00233     }
00234     bool IsKinsokuPosHead(CLayoutInt, CLayoutInt, CLayoutInt);
00235     bool IsKinsokuPosTail(CLayoutInt, CLayoutInt, CLayoutInt);
00236
00237     //@@@ 2002.09.22 YAZAKI
00238     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00239     bool CheckColorMODE( EColorIndexType& nCOMMENTMODE, int& nCOMMENTEND, int nPos, int nLineLen, const wchar_t* pLine );
00240     int Match_Quote( wchar_t wcQuote, int nPos, int nLineLen, const wchar_t* pLine );
00241
00242     //  Oct. 1, 2002 genta インデント幅計算関数群
00243     CLayoutInt getIndentOffset_Normal( CLayout* pLayoutPrev );
00244     CLayoutInt getIndentOffset_Tx2x( CLayout* pLayoutPrev );
00245     CLayoutInt getIndentOffset_LeftSpace( CLayout* pLayoutPrev );
00246
00247 protected:
00248     /*
00249     || 実装ヘルパ系
00250     */
00251     //@@@ 2002.09.23 YAZAKI
00252     CLayout* CreateLayout( CDocLine* pCDocLine, CLogicPoint ptLogicPos, CLogicInt nLength, EColorIndexType nTypePrev, CLayoutInt nIndent );
00253     CLayout* InsertLineNext( CLayout*, CLayout* );
00254     void AddLineBottom( CLayout* );
00255
00256     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00257     //                        メンバ変数                           //
00258     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00259 public:
00260     CDocLineMgr*    m_pcDocLineMgr; /* 行バッファ管理マネージャ */
00261
00262 protected:
00263     // 2002.10.07 YAZAKI add m_nLineTypeBot
00264     // 2007.09.07 kobake 変数名変更: m_nMaxLineSize→m_nMaxLineKetas
00265     // 2007.10.08 kobake 変数名変更: getIndentOffset→m_getIndentOffset
00266
00267     //実データ
00268     CLayout*                m_pLayoutTop;
00269     CLayout*                m_pLayoutBot;
00270
00271     //フラグ等
00272     EColorIndexType         m_nLineTypeBot;
00273     CLayoutInt              m_nLines;                   // 全レイアウト行数
00274     CLayoutInt              m_nMaxLineKetas;            // 折り返し桁数
00275     BOOL                    m_bWordWrap;                // 英文ワードラップをする
00276     BOOL                    m_bKinsokuHead;             // 行頭禁則をする    //@@@ 2002.04.08 MIK
00277     BOOL                    m_bKinsokuTail;             // 行末禁則をする    //@@@ 2002.04.08 MIK
00278     BOOL                    m_bKinsokuRet;              // 改行文字をぶら下げる   //@@@ 2002.04.13 MIK
00279     BOOL                    m_bKinsokuKuto;             // 句読点をぶら下げる  //@@@ 2002.04.17 MIK
00280     std::vector<wchar_t>    m_pszKinsokuHead_1;         // 行頭禁則文字   //@@@ 2002.04.08 MIK
00281     std::vector<wchar_t>    m_pszKinsokuTail_1;         // 行末禁則文字   //@@@ 2002.04.08 MIK
00282     std::vector<wchar_t>    m_pszKinsokuKuto_1;         // 句読点ぶらさげ文字  //@@@ 2002.04.17 MIK
00283     CLayoutInt              m_nTabSpace;                // TAB文字スペース
00284     BOOL                    m_bDispComment;             // コメントの色分け     // 2005.11.21 Moca
00285     BOOL                    m_bDispSString;             // シングルクォーテーションの色分け     // 2005.11.21 Moca
00286     BOOL                    m_bDispWString;             // ダブルクォーテーションの色分け        // 2005.11.21 Moca
00287     CLineComment            m_cLineComment;             // 行コメントデリミタ      //@@@ 2002.09.22 YAZAKI
00288     CBlockComment           m_cBlockComment;            // ブロックコメントデリミタ //@@@ 2002.09.22 YAZAKI
00289     int                     m_nStringType;              // 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""]['']
00290     CalcIndentProc          m_getIndentOffset;          //  Oct. 1, 2002 genta インデント幅計算関数を保持
00291
00292     mutable CLayoutInt      m_nPrevReferLine;
00293     mutable CLayout*        m_pLayoutPrevRefer;
00294
00295     // 2006.10.01 Moca EOFカーソル位置を記憶する(DoLayout/DoLayout_Rangeで無効にする)
00296     CLayoutInt              m_nEOFLine;
00297     CLayoutInt              m_nEOFColumn;
00298
00299     //  Jul. 20, 2003 genta
00300     //  タイプ別の設定を取得するためにCEditDocへの参照が必要
00301     CEditDoc*       m_pcEditDoc;
00302
00303 };
00304
00305
00307 #endif /* _CLAYOUTMGR_H_ */
00308
00309
00310 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr_New.cpp

sakura_core

CLayoutMgr_New.cpp

テキストのレイアウト情報管理 [詳細]

#include "stdafx.h"
#include <mbstring.h>
#include "CLayoutMgr.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 "CMemoryIterator.h"
#include "CEditDoc.h"
#include "util/window.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 行で定義されています。

参照元 CLayoutMgr::DoLayout(), と CLayoutMgr::DoLayout_Range().

#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 行で定義されています。

参照元 CLayoutMgr::DoLayout(), と CLayoutMgr::DoLayout_Range().

#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 Nov 17 20:26:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr_New.cpp ソースファイル

sakura_core

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 "debug.h"
00023 #include <commctrl.h>
00024 #include "CRunningTimer.h"
00025 #include "CLayout.h"
00026 #include "CDocLine.h"
00027 #include "CDocLineMgr.h"// 2002/2/10 aroka
00028 #include "CMemory.h"
00029 #include "CMemoryIterator.h"
00030 #include "CEditDoc.h"
00031 #include "util/window.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     CLogicInt   nLineNum;
00056     CDocLine*   pCDocLine;
00057     /*  表示上のX位置
00058         2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00059     */
00060     CLayoutInt          nPosX; //レイアウト単位
00061     EColorIndexType     nCOMMENTMODE;
00062     EColorIndexType     nCOMMENTMODE_Prev;
00063     int         nCOMMENTEND;
00064     int         nAllLineNum;
00065
00066     CLayoutInt  nIndent;            //  インデント幅
00067     CLayout*    pLayoutCalculated;  //  インデント幅計算済みのCLayout.
00068     CLayoutInt  nMaxLineKetas;
00069
00070 // 2002/03/13 novice
00071     nCOMMENTMODE = COLORIDX_TEXT;
00072     nCOMMENTMODE_Prev = COLORIDX_TEXT;
00073
00074     if( NULL != hwndProgress ){
00075 		::PostMessageAny( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00076 		::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00077         /* 処理中のユーザー操作を可能にする */
00078         if( !::BlockingHook( NULL ) ){
00079             return;
00080         }
00081     }
00082
00083     Empty();
00084     Init();
00085     nLineNum = CLogicInt(0);
00086
00087     //  Nov. 16, 2002 genta
00088     //  折り返し幅 <= TAB幅のとき無限ループするのを避けるため，
00089     //  TABが折り返し幅以上の時はTAB=4としてしまう
00090     //  折り返し幅の最小値=10なのでこの値は問題ない
00091     if( m_nTabSpace >= m_nMaxLineKetas ){
00092         m_nTabSpace = CLayoutInt(4);
00093     }
00094
00095     pCDocLine = m_pcDocLineMgr->GetDocLineTop(); // 2002/2/10 aroka CDocLineMgr変更
00096
00097     nCOMMENTEND = 0;
00098     nAllLineNum = m_pcDocLineMgr->GetLineCount();
00099
00100     /*
00101         2004.03.28 Moca TAB計算を正しくするためにインデントを幅で調整することはしない
00102         nMaxLineKetasは変更しないので，ここでm_nMaxLineKetasを設定する．
00103     */
00104     nMaxLineKetas = m_nMaxLineKetas;
00105
00106     while( NULL != pCDocLine ){
00107         CLogicInt       nLineLen;
00108         const wchar_t*  pLine = pCDocLine->m_cLine.GetStringPtr( &nLineLen );
00109         nPosX = CLayoutInt(0);
00110
00111         CLogicInt   nBgn = CLogicInt(0);
00112         CLogicInt   nPos = CLogicInt(0); // メモリ上の位置(offset) ロジック単位
00113
00114         CLogicInt   nWordBgn = CLogicInt(0);
00115         CLogicInt   nWordLen = CLogicInt(0);
00116
00117         int         nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00118
00119         int nEol = pCDocLine->m_cEol.GetLen();
00120         int nEol_1 = nEol - 1;
00121         if( 0 > nEol_1 ){
00122             nEol_1 = 0;
00123         }
00124
00125         nIndent = CLayoutInt(0);    //  インデント幅
00126         pLayoutCalculated = NULL;   //  インデント幅計算済みのCLayout.
00127
00128         while( nPos < nLineLen - CLogicInt(nEol_1) ){
00129             //  インデント幅の計算コストを下げるための方策
00130             if ( m_pLayoutBot && m_pLayoutBot!=pLayoutCalculated && nBgn )
00131             {
00132                 //  計算
00133                 //  Oct, 1, 2002 genta Indentサイズを取得するように変更
00134                 nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00135
00136                 //  計算済み
00137                 pLayoutCalculated = m_pLayoutBot;
00138             }
00139
00140
00141             SEARCH_START:;
00142
00143             //禁則処理中ならスキップする   @@@ 2002.04.20 MIK
00144             if( KINSOKU_TYPE_NONE != nKinsokuType )
00145             {
00146                 //禁則処理の最後尾に達したら禁則処理中を解除する
00147                 if( nPos >= nWordBgn + nWordLen )
00148                 {
00149                     if( nKinsokuType == KINSOKU_TYPE_KINSOKU_KUTO && nPos == nWordBgn + nWordLen )
00150                     {
00151                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol ) )   //改行文字をぶら下げる        //@@@ 2002.04.14 MIK
00152                         {
00153                             AddLineBottom(
00154                                 CreateLayout(
00155                                     pCDocLine,
00156                                     CLogicPoint(nBgn, nLineNum),
00157                                     nPos - nBgn,
00158                                     nCOMMENTMODE_Prev,
00159                                     nIndent
00160                                 )
00161                             );
00162                             m_nLineTypeBot = nCOMMENTMODE;
00163                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00164                             nBgn = nPos;
00165                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00166                             nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00167                             pLayoutCalculated = m_pLayoutBot;
00168                         }
00169                     }
00170
00171                     nWordLen = CLogicInt(0);
00172                     nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00173                 }
00174             }
00175             else
00176             {
00177
00178                 /* ワードラップ処理 */
00179                 if( m_bWordWrap /* 英文ワードラップをする */
00180                  && nKinsokuType == KINSOKU_TYPE_NONE )
00181                 {
00182                     /* 英単語の先頭か */
00183                     int nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00184                     if( 0 == nCharChars ){
00185                         nCharChars = 1;
00186                     }
00187                     if( nPos>=nBgn && nCharChars==1 && IS_KEYWORD_CHAR(pLine[nPos]) ){
00188                         // 2007.09.07 kobake レイアウトとロジックの区別
00189                         // キーワード文字列の終端を探す
00190                         // -> iLogic  (ロジック単位終端)
00191                         // -> iLayout (レイアウト単位終端)
00192                         CLogicInt   iLogic = nPos + CLogicInt(1);
00193                         CLayoutInt  iLayout = nPosX + CNativeW::GetKetaOfChar( pLine, nLineLen, nPos);
00194                         while( iLogic < nLineLen )
00195                         {
00196                             CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, iLogic );
00197                             if( 0 == nCharChars2 ){
00198                                 nCharChars2 = CLogicInt(1);
00199                             }
00200                             CLayoutInt nCharKetas = CNativeW::GetKetaOfChar( pLine, nLineLen, iLogic);
00201
00202                             if( nCharChars2 != 1 )break;
00203                             if( !IS_KEYWORD_CHAR( pLine[iLogic] ) )break;
00204
00205                             iLogic+=nCharChars2;
00206                             iLayout+=nCharKetas;
00207                         }
00208                         nWordBgn = nPos;
00209                         nWordLen = iLogic - nPos;
00210                         CLayoutInt nWordKetas = iLayout - nPosX;
00211
00212                         nKinsokuType = KINSOKU_TYPE_WORDWRAP;   //@@@ 2002.04.20 MIK
00213
00214                         if( nPosX+nWordKetas>=nMaxLineKetas && nPos-nBgn>0 )
00215                         {
00216                             AddLineBottom(
00217                                 CreateLayout(
00218                                     pCDocLine,
00219                                     CLogicPoint(nBgn, nLineNum),
00220                                     nPos - nBgn,
00221                                     nCOMMENTMODE_Prev,
00222                                     nIndent
00223                                 )
00224                             );
00225                             m_nLineTypeBot = nCOMMENTMODE;
00226                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00227                             nBgn = nPos;
00228                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00229                             nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00230                             pLayoutCalculated = m_pLayoutBot;
00231                         }
00232                     }
00233                 }
00234
00235                 //@@@ 2002.04.07 MIK start
00236                 /* 句読点のぶらさげ */
00237                 if( m_bKinsokuKuto && (nMaxLineKetas - nPosX < 2) && (nKinsokuType == KINSOKU_TYPE_NONE) )
00238                 {
00239                     // 2005-09-02 D.S.Koba GetSizeOfChar
00240                     // 2007.09.07 kobake   レイアウトとロジックの区別
00241                     CLogicInt  nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00242                     CLayoutInt nCharKetas  = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00243
00244                     if( IsKinsokuPosKuto( nMaxLineKetas - nPosX, nCharKetas ) && IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )
00245                     {
00246                         nWordBgn = nPos;
00247                         nWordLen = nCharChars2;
00248                         nKinsokuType = KINSOKU_TYPE_KINSOKU_KUTO;
00249                     }
00250                 }
00251
00252                 /* 行頭禁則 */
00253                 if( m_bKinsokuHead
00254                  && (nMaxLineKetas - nPosX < 4)
00255                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00256                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00257                 {
00258                     // 2005-09-02 D.S.Koba GetSizeOfChar
00259                     CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00260                     CLogicInt nCharChars3 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00261                     CLayoutInt nCharKetas2 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00262                     CLayoutInt nCharKetas3 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos+nCharChars2 );
00263
00264                     if( IsKinsokuPosHead( nMaxLineKetas - nPosX, nCharKetas2, nCharKetas3 )
00265                      && IsKinsokuHead( &pLine[nPos+nCharChars2], nCharChars3 )
00266                      && ! IsKinsokuHead( &pLine[nPos], nCharChars2 )    //1文字前が行頭禁則でない
00267                      && ! IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )  //句読点でない
00268                     {
00269                         nWordBgn = nPos;
00270                         nWordLen = nCharChars2 + nCharChars3;
00271                         nKinsokuType = KINSOKU_TYPE_KINSOKU_HEAD;
00272                         AddLineBottom( CreateLayout(pCDocLine, CLogicPoint(nBgn, nLineNum), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00273                         m_nLineTypeBot = nCOMMENTMODE;
00274                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00275                         nBgn = nPos;
00276                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00277                         nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00278                         pLayoutCalculated = m_pLayoutBot;
00279                     }
00280                 }
00281
00282                 /* 行末禁則 */
00283                 if( m_bKinsokuTail
00284                  && (nMaxLineKetas - nPosX < 4)
00285                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00286                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00287                 {   /* 行末禁則する && 行末付近 && 行頭でないこと(無限に禁則してしまいそう) */
00288                     // 2005-09-02 D.S.Koba GetSizeOfChar
00289                     CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00290                     CLogicInt nCharChars3 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00291                     CLayoutInt nCharKetas2 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00292                     CLayoutInt nCharKetas3 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos+nCharChars2 );
00293
00294                     if( IsKinsokuPosTail( nMaxLineKetas - nPosX, nCharKetas2, nCharKetas3 )
00295                         && IsKinsokuTail( &pLine[nPos], nCharChars2 ) )
00296                     {
00297                         nWordBgn = nPos;
00298                         nWordLen = nCharChars2;
00299                         nKinsokuType = KINSOKU_TYPE_KINSOKU_TAIL;
00300                         AddLineBottom( CreateLayout(pCDocLine, CLogicPoint(nBgn, nLineNum), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00301                         m_nLineTypeBot = nCOMMENTMODE;
00302                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00303                         nBgn = nPos;
00304                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00305                         nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00306                         pLayoutCalculated = m_pLayoutBot;
00307                     }
00308                 }
00309                 //@@@ 2002.04.08 MIK end
00310             }   //if( KINSOKU_TYPE_NONE != nKinsokuTyoe ) 禁則処理中
00311
00312             //@@@ 2002.09.22 YAZAKI
00313             bool bGotoSEARCH_START = CheckColorMODE( nCOMMENTMODE, nCOMMENTEND, nPos, nLineLen, pLine );
00314             if ( bGotoSEARCH_START )
00315                 goto SEARCH_START;
00316
00317             if( pLine[nPos] == WCODE::TAB ){
00318                 //  Sep. 23, 2002 genta せっかく作ったので関数を使う
00319                 CLayoutInt nCharKetas = GetActualTabSpace( nPosX );
00320                 if( nPosX + nCharKetas > nMaxLineKetas ){
00321                     AddLineBottom( CreateLayout(pCDocLine, CLogicPoint(nBgn, nLineNum), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00322                     m_nLineTypeBot = nCOMMENTMODE;
00323                     nCOMMENTMODE_Prev = nCOMMENTMODE;
00324                     nBgn = nPos;
00325                     // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00326                     nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00327                     pLayoutCalculated = m_pLayoutBot;
00328                     continue;
00329                 }
00330                 nPosX += nCharKetas;
00331                 nPos += CLogicInt(1);
00332             }else{
00333                 // 2005-09-02 D.S.Koba GetSizeOfChar
00334                 // 2007.09.07 kobake   ロジック幅とレイアウト幅を区別
00335                 CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00336                 if( 0 == nCharChars2 ){
00337                     nCharChars2 = CLogicInt(1);
00338                     break;  //@@@ 2002.04.16 MIK
00339                 }
00340                 CLayoutInt nCharKetas = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00341                 if( 0 == nCharKetas ){
00342                     nCharKetas = CLayoutInt(1);
00343                 }
00344
00345                 if( nPosX + nCharKetas > nMaxLineKetas ){
00346                     if( nKinsokuType != KINSOKU_TYPE_KINSOKU_KUTO )
00347                     {
00348                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol) )    //改行文字をぶら下げる        //@@@ 2002.04.14 MIK
00349                         {   //@@@ 2002.04.14 MIK
00350                             AddLineBottom( CreateLayout(pCDocLine, CLogicPoint(nBgn, nLineNum), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00351                             m_nLineTypeBot = nCOMMENTMODE;
00352                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00353                             nBgn = nPos;
00354                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00355                             nPosX = nIndent = (this->*m_getIndentOffset)( m_pLayoutBot );
00356                             pLayoutCalculated = m_pLayoutBot;
00357                             continue;
00358                         }   //@@@ 2002.04.14 MIK
00359                     }
00360                 }
00361                 nPos+= CLogicInt(nCharChars2);
00362                 nPosX += nCharKetas;
00363             }
00364         }
00365         if( nPos - nBgn > 0 ){
00366 // 2002/03/13 novice
00367             if( nCOMMENTMODE == COLORIDX_COMMENT ){ /* 行コメントである */
00368                 nCOMMENTMODE = COLORIDX_TEXT;
00369             }
00370             AddLineBottom( CreateLayout(pCDocLine, CLogicPoint(nBgn, nLineNum), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00371             m_nLineTypeBot = nCOMMENTMODE;
00372             nCOMMENTMODE_Prev = nCOMMENTMODE;
00373         }
00374         nLineNum++;
00375         if( NULL != hwndProgress && 0 < nAllLineNum && 0 == ( nLineNum % 1024 ) ){
00376 			::PostMessageAny( hwndProgress, PBM_SETPOS, nLineNum * 100 / nAllLineNum , 0 );
00377             /* 処理中のユーザー操作を可能にする */
00378             if( !::BlockingHook( NULL ) ){
00379                 return;
00380             }
00381         }
00382 //      pLine = m_pcDocLineMgr->GetNextLinrStr( &nLineLen );
00383         pCDocLine = pCDocLine->m_pNext;;
00384 // 2002/03/13 novice
00385         if( nCOMMENTMODE_Prev == COLORIDX_COMMENT ){    /* 行コメントである */
00386             nCOMMENTMODE_Prev = COLORIDX_TEXT;
00387         }
00388         nCOMMENTMODE = nCOMMENTMODE_Prev;
00389         nCOMMENTEND = 0;
00390     }
00391     m_nPrevReferLine = CLayoutInt(0);
00392     m_pLayoutPrevRefer = NULL;
00393
00394     if( NULL != hwndProgress ){
00395 		::PostMessageAny( hwndProgress, PBM_SETPOS, 0, 0 );
00396         /* 処理中のユーザー操作を可能にする */
00397         if( !::BlockingHook( NULL ) ){
00398             return;
00399         }
00400     }
00401     return;
00402 }
00403
00404
00405
00406
00407
00421 CLayoutInt CLayoutMgr::DoLayout_Range(
00422     CLayout*        pLayoutPrev,
00423     CLogicInt       nLineNum,
00424     CLogicPoint     ptDelLogicalFrom,
00425     EColorIndexType nCurrentLineType,
00426     CLayoutInt*     pnExtInsLineNum
00427 )
00428 {
00429     *pnExtInsLineNum = CLayoutInt(0);
00430
00431     bool        bNeedChangeCOMMENTMODE = false; //@@@ 2002.09.23 YAZAKI bAddを名称変更
00432     CLayoutInt  nMaxLineKetas= m_nMaxLineKetas;
00433     CLogicInt   nLineNumWork = CLogicInt(0);
00434
00435     CLayout*    pLayout = pLayoutPrev;
00436
00437     CLogicInt   nCurLine;
00438     if( NULL == pLayout ){
00439         nCurLine = CLogicInt(0);
00440     }else{
00441         nCurLine = pLayout->GetLogicLineNo() + CLogicInt(1);
00442     }
00443
00444     EColorIndexType     nCOMMENTMODE = nCurrentLineType;
00445     EColorIndexType     nCOMMENTMODE_Prev = nCOMMENTMODE;
00446
00447     CDocLine*   pCDocLine = m_pcDocLineMgr->GetLineInfo( nCurLine );
00448
00449     int         nCOMMENTEND = 0;
00450     CLayoutInt  nModifyLayoutLinesNew = CLayoutInt(0);
00451
00452     // 2006.12.01 Moca 途中にまで再構築した場合にEOF位置がずれたまま
00453     //  更新されないので，範囲にかかわらず必ずリセットする．
00454     m_nEOFColumn = CLayoutInt(-1);
00455     m_nEOFLine = CLayoutInt(-1);
00456
00457     while( NULL != pCDocLine ){
00458         CLogicInt       nLineLen;
00459         const wchar_t*  pLine = pCDocLine->m_cLine.GetStringPtr( &nLineLen );
00460         CLayoutInt      nPosX = CLayoutInt(0); //表示上のX位置
00461
00462         // メモリ上の位置(offset)
00463         CLogicInt   nBgn = CLogicInt(0);
00464         CLogicInt   nPos = CLogicInt(0);
00465
00466         CLogicInt   nWordBgn = CLogicInt(0);
00467         CLogicInt   nWordLen = CLogicInt(0);
00468
00469         int         nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00470
00471         int nEol = pCDocLine->m_cEol.GetLen();
00472         int nEol_1 = nEol - 1;
00473         if( 0 > nEol_1 ){
00474             nEol_1 = 0;
00475         }
00476
00477         CLayoutInt  nIndent = CLayoutInt(0);                //  インデント幅
00478         CLayout*    pLayoutCalculated = pLayout;    //  インデント幅計算済みのCLayout.
00479
00480         while( nPos < nLineLen - CLogicInt(nEol_1) ){
00481             //  インデント幅の計算コストを下げるための方策
00482             if ( pLayout && pLayout != pLayoutCalculated ){
00483
00484                  // 計算
00485                 //  Oct, 1, 2002 genta Indentサイズを取得するように変更
00486                 nIndent = (this->*m_getIndentOffset)( pLayout );
00487
00488                 //  計算済み
00489                 pLayoutCalculated = pLayout;
00490             }
00491
00492             SEARCH_START:;
00493
00494             //禁則処理中ならスキップする   @@@ 2002.04.20 MIK
00495             if( KINSOKU_TYPE_NONE != nKinsokuType )
00496             {
00497                 //禁則処理の最後尾に達したら禁則処理中を解除する
00498                 if( nPos >= nWordBgn + nWordLen )
00499                 {
00500                     if( nKinsokuType==KINSOKU_TYPE_KINSOKU_KUTO && nPos==nWordBgn+nWordLen )
00501                     {
00502                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol ) )   //改行文字をぶら下げる        //@@@ 2002.04.14 MIK
00503                         {
00504                             //@@@ 2002.09.23 YAZAKI 最適化
00505                             if( bNeedChangeCOMMENTMODE ){
00506                                 pLayout = pLayout->m_pNext;
00507                                 pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00508                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00509                             }
00510                             else {
00511                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00512                             }
00513                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00514
00515                             nBgn = nPos;
00516                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00517                             nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00518                             pLayoutCalculated = pLayout;
00519                             if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00520                                 ( ptDelLogicalFrom.GetY2() < nCurLine )
00521                             ){
00522                                 (nModifyLayoutLinesNew)++;;
00523                             }
00524                         }
00525                     }
00526
00527                     nWordLen = CLogicInt(0);
00528                     nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00529                 }
00530             }
00531             else
00532             {
00533
00534                 /* ワードラップ処理 */
00535                 if( m_bWordWrap /* 英文ワードラップをする */
00536                  && nKinsokuType == KINSOKU_TYPE_NONE )
00537                 {
00538                     /* 英単語の先頭か */
00539                     // 2005-09-02 D.S.Koba GetSizeOfChar
00540                     int nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00541                     if( 0 == nCharChars ){
00542                         nCharChars = 1;
00543                     }
00544                     if( nPos >= nBgn && nCharChars == 1 && IS_KEYWORD_CHAR(pLine[nPos]) ){
00545                         /* キーワード文字列の終端を探す */
00546                         // 2007.09.07 kobake レイアウトとロジックの区別
00547                         CLogicInt   iLogic = nPos + CLogicInt(1);
00548                         CLayoutInt  iLayout = nPosX + CNativeW::GetKetaOfChar( pLine, nLineLen, nPos);
00549                         while(iLogic < nLineLen){
00550                             CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, iLogic );
00551                             if( 0 == nCharChars2 ){
00552                                 nCharChars2 = CLogicInt(1);
00553                             }
00554                             CLayoutInt nCharKetas = CNativeW::GetKetaOfChar( pLine, nLineLen, iLogic);
00555                             if( 0 == nCharKetas ){
00556                                 nCharKetas = CLayoutInt(1);
00557                             }
00558
00559                             if( nCharChars2 != 1 )break;
00560                             if( !IS_KEYWORD_CHAR(pLine[iLogic]) )break;
00561
00562                             iLogic+=nCharChars2;
00563                             iLayout+=nCharKetas;
00564                         }
00565                         nWordBgn = nPos;
00566                         nWordLen = iLogic - nPos;
00567                         CLayoutInt nWordKetas = iLayout - nPosX;
00568                         nKinsokuType = KINSOKU_TYPE_WORDWRAP;   //@@@ 2002.04.20 MIK
00569
00570                         if( nPosX+nWordKetas>=nMaxLineKetas && nPos-nBgn>0 )
00571                         {
00572                             //@@@ 2002.09.23 YAZAKI 最適化
00573                             if( bNeedChangeCOMMENTMODE ){
00574                                 pLayout = pLayout->m_pNext;
00575                                 pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00576                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00577                             }
00578                             else {
00579                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00580                             }
00581                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00582
00583                             nBgn = nPos;
00584                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00585                             nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00586                             pLayoutCalculated = pLayout;
00587                             if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00588                                 ( ptDelLogicalFrom.GetY2() < nCurLine )
00589                             ){
00590                                 (nModifyLayoutLinesNew)++;;
00591                             }
00592 //?                         continue;
00593                         }
00594                     }
00595                 }
00596
00597                 //@@@ 2002.04.07 MIK start
00598                 /* 句読点のぶらさげ */
00599                 if( m_bKinsokuKuto
00600                  && (nMaxLineKetas - nPosX < 2)
00601                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00602                 {
00603                     // 2005-09-02 D.S.Koba GetSizeOfChar
00604                     // 2007.09.07 kobake   レイアウトとロジックの区別
00605                     CLogicInt  nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00606                     CLayoutInt nCharKetas = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00607
00608                     if( IsKinsokuPosKuto( nMaxLineKetas - nPosX, nCharKetas )
00609                         && IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )
00610                     {
00611                         nWordBgn = nPos;
00612                         nWordLen = nCharChars2;
00613                         nKinsokuType = KINSOKU_TYPE_KINSOKU_KUTO;
00614                     }
00615                 }
00616
00617                 /* 行頭禁則 */
00618                 if( m_bKinsokuHead
00619                  && (nMaxLineKetas - nPosX < 4)
00620                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00621                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00622                 {
00623                     // 2005-09-02 D.S.Koba GetSizeOfChar
00624                     // 2007.09.07 kobake   レイアウトとロジックの区別
00625                     CLogicInt  nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00626                     CLayoutInt nCharKetas2 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00627                     CLogicInt  nCharChars3 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00628                     CLayoutInt nCharKetas3 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos+nCharChars2 );
00629
00630                     if( IsKinsokuPosHead( nMaxLineKetas - nPosX, nCharKetas2, nCharKetas3 )
00631                      && IsKinsokuHead( &pLine[nPos+nCharChars2], nCharChars3 )
00632                      && ! IsKinsokuHead( &pLine[nPos], nCharChars2 )    //1文字前が行頭禁則でない
00633                      && ! IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )  //句読点でない
00634                     {
00635                         nWordBgn = nPos;
00636                         nWordLen = nCharChars2 + nCharChars3;
00637                         nKinsokuType = KINSOKU_TYPE_KINSOKU_HEAD;
00638                         //@@@ 2002.09.23 YAZAKI 最適化
00639                         if( bNeedChangeCOMMENTMODE ){
00640                             pLayout = pLayout->m_pNext;
00641                             pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00642                             (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00643                         }
00644                         else {
00645                             pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00646                         }
00647                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00648
00649                         nBgn = nPos;
00650                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00651                         nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00652                         pLayoutCalculated = pLayout;
00653                         if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00654                             ( ptDelLogicalFrom.GetY2() < nCurLine )
00655                         ){
00656                             (nModifyLayoutLinesNew)++;;
00657                         }
00658                     }
00659                 }
00660
00661                 /* 行末禁則 */
00662                 if( m_bKinsokuTail
00663                  && (nMaxLineKetas - nPosX < 4)
00664                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00665                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00666                 {   /* 行末禁則する && 行末付近 && 行頭でないこと(無限に禁則してしまいそう) */
00667                     // 2005-09-02 D.S.Koba GetSizeOfChar
00668                     // 2007.09.07 kobake   レイアウトとロジックの区別
00669                     CLogicInt  nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
00670                     CLayoutInt nCharKetas2 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00671                     CLogicInt  nCharChars3 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00672                     CLayoutInt nCharKetas3 = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos+nCharChars2 );
00673
00674                     if( IsKinsokuPosTail( nMaxLineKetas - nPosX, nCharKetas2, nCharKetas3 )
00675                         && IsKinsokuTail( &pLine[nPos], nCharChars2 ) )
00676                     {
00677                         nWordBgn = nPos;
00678                         nWordLen = nCharChars2;
00679                         nKinsokuType = KINSOKU_TYPE_KINSOKU_TAIL;
00680                         //@@@ 2002.09.23 YAZAKI 最適化
00681                         if( bNeedChangeCOMMENTMODE ){
00682                             pLayout = pLayout->m_pNext;
00683                             pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00684                             (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00685                         }
00686                         else {
00687                             pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00688                         }
00689                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00690
00691                         nBgn = nPos;
00692                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00693                         nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00694                         pLayoutCalculated = pLayout;
00695                         if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00696                             ( ptDelLogicalFrom.GetY2() < nCurLine )
00697                         ){
00698                             (nModifyLayoutLinesNew)++;;
00699                         }
00700                     }
00701                 }
00702                 //@@@ 2002.04.08 MIK end
00703             }   // if( nKinsokuType != KINSOKU_TYPE_NONE )
00704
00705             //@@@ 2002.09.22 YAZAKI
00706             bool bGotoSEARCH_START = CheckColorMODE( nCOMMENTMODE, nCOMMENTEND, nPos, nLineLen, pLine );
00707             if ( bGotoSEARCH_START )
00708                 goto SEARCH_START;
00709
00710             CLayoutInt nCharKetas;
00711             if( pLine[nPos] == WCODE::TAB ){
00712                 //  Sep. 23, 2002 genta せっかく作ったので関数を使う
00713                 nCharKetas = GetActualTabSpace( nPosX );
00714                 if( nPosX + nCharKetas > nMaxLineKetas ){
00715                     //@@@ 2002.09.23 YAZAKI 最適化
00716                     if( bNeedChangeCOMMENTMODE ){
00717                         pLayout = pLayout->m_pNext;
00718                         pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00719                         (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00720                     }
00721                     else {
00722                         pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00723                     }
00724                     nCOMMENTMODE_Prev = nCOMMENTMODE;
00725
00726                     nBgn = nPos;
00727                     // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00728                     nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00729                     pLayoutCalculated = pLayout;
00730                     if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00731                         ( ptDelLogicalFrom.GetY2() < nCurLine )
00732                     ){
00733                         (nModifyLayoutLinesNew)++;;
00734                     }
00735                     continue;
00736                 }
00737                 nPos++;
00738             }
00739             else{
00740                 // 2005-09-02 D.S.Koba GetSizeOfChar
00741                 // 2007.09.07 kobake   レイアウトとロジックの区別
00742                 nCharKetas = CNativeW::GetKetaOfChar( pLine, nLineLen, nPos );
00743                 if( 0 == nCharKetas ){
00744                     nCharKetas = CLayoutInt(1);
00745                 }
00746                 CLogicInt nCharChars2 = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos);
00747                 if( 0 == nCharChars2 ){
00748                     break;
00749                 }
00750                 if( nPosX + nCharKetas > nMaxLineKetas ){
00751                     if( nKinsokuType != KINSOKU_TYPE_KINSOKU_KUTO )
00752                     {
00753                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol) )    //改行文字をぶら下げる        //@@@ 2002.04.14 MIK
00754                         {   //@@@ 2002.04.14 MIK
00755                             //@@@ 2002.09.23 YAZAKI 最適化
00756                             if( bNeedChangeCOMMENTMODE ){
00757                                 pLayout = pLayout->m_pNext;
00758                                 pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00759                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00760                             }
00761                             else {
00762                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00763                             }
00764                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00765
00766                             nBgn = nPos;
00767                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00768                             nPosX = nIndent = (this->*m_getIndentOffset)( pLayout );
00769                             pLayoutCalculated = pLayout;
00770                             if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00771                                 ( ptDelLogicalFrom.GetY2() < nCurLine )
00772                             ){
00773                                 (nModifyLayoutLinesNew)++;;
00774                             }
00775                             continue;
00776                         }
00777                     }
00778                 }
00779                 nPos+= nCharChars2;
00780             }
00781
00782             nPosX += nCharKetas;
00783         }
00784         if( nPos - nBgn > 0 ){
00785 // 2002/03/13 novice
00786             if( nCOMMENTMODE == COLORIDX_COMMENT ){ /* 行コメントである */
00787                 nCOMMENTMODE = COLORIDX_TEXT;
00788             }
00789             //@@@ 2002.09.23 YAZAKI 最適化
00790             if( bNeedChangeCOMMENTMODE ){
00791                 pLayout = pLayout->m_pNext;
00792                 pLayout->SetColorTypePrev(nCOMMENTMODE_Prev);
00793                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00794             }
00795             else {
00796                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, CLogicPoint(nBgn, nCurLine), nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00797             }
00798             nCOMMENTMODE_Prev = nCOMMENTMODE;
00799
00800             if( ( ptDelLogicalFrom.GetY2() == nCurLine && ptDelLogicalFrom.GetX2() < nPos ) ||
00801                 ( ptDelLogicalFrom.GetY2() < nCurLine )
00802             ){
00803                 (nModifyLayoutLinesNew)++;;
00804             }
00805         }
00806
00807         nLineNumWork++;
00808         nCurLine++;
00809
00810         /* 目的の行数(nLineNum)に達したか、または通り過ぎた（＝行数が増えた）か確認 */
00811         //@@@ 2002.09.23 YAZAKI 最適化
00812         if( nLineNumWork >= nLineNum ){
00813             if( NULL != pLayout
00814              && NULL != pLayout->m_pNext
00815              && ( nCOMMENTMODE_Prev != pLayout->m_pNext->GetColorTypePrev() )
00816             ){
00817                 //  COMMENTMODEが異なる行が増えましたので、次の行→次の行と更新していきます。
00818                 bNeedChangeCOMMENTMODE = true;
00819             }else{
00820                 break;  //  while( NULL != pCDocLine ) 終了
00821             }
00822         }
00823         pCDocLine = pCDocLine->m_pNext;
00824 // 2002/03/13 novice
00825         if( nCOMMENTMODE_Prev == COLORIDX_COMMENT ){    /* 行コメントである */
00826             nCOMMENTMODE_Prev = COLORIDX_TEXT;
00827         }
00828         nCOMMENTMODE = nCOMMENTMODE_Prev;
00829         nCOMMENTEND = 0;
00830
00831     }
00832
00833     // 2004.03.28 Moca EOFだけの論理行の直前の行の色分けが確認・更新された
00834     if( nCurLine == m_pcDocLineMgr->GetLineCount() ){
00835         m_nLineTypeBot = nCOMMENTMODE_Prev;
00836         // 2006.10.01 Moca 最終行が変更された。EOF位置情報を破棄する。
00837         m_nEOFColumn = CLayoutInt(-1);
00838         m_nEOFLine = CLayoutInt(-1);
00839     }
00840
00841 // 1999.12.22 レイアウト情報がなくなる訳ではないので
00842 //  m_nPrevReferLine = 0;
00843 //  m_pLayoutPrevRefer = NULL;
00844 //  m_pLayoutCurrent = NULL;
00845
00846     return nModifyLayoutLinesNew;
00847 }
00848
00857 bool CLayoutMgr::IsKinsokuHead( const wchar_t *pLine, CLogicInt length )
00858 {
00859     if(length==1 && m_pszKinsokuHead_1.size()){
00860         wchar_t wc=pLine[0];
00861         return wcschr(&m_pszKinsokuHead_1[0],wc)!=NULL;
00862     }
00863     else{
00864         return false;
00865     }
00866 }
00867
00876 bool CLayoutMgr::IsKinsokuTail( const wchar_t *pLine, CLogicInt length )
00877 {
00878     if(length==1 && m_pszKinsokuTail_1.size()){
00879         wchar_t wc=pLine[0];
00880         return wcschr(&m_pszKinsokuTail_1[0],wc)!=NULL;
00881     }
00882     else{
00883         return false;
00884     }
00885 }
00886
00896 bool CLayoutMgr::IsKutoTen( wchar_t wc )
00897 {
00898     //句読点定義
00899     static const wchar_t *KUTOTEN=
00900         L"｡､,."
00901         L"。、，．"
00902     ;
00903
00904     const wchar_t* p;
00905     for(p=KUTOTEN;*p;p++){
00906         if(*p==wc)return true;
00907     }
00908     return false;
00909 }
00910
00919 bool CLayoutMgr::IsKinsokuKuto( const wchar_t *pLine, CLogicInt length )
00920 {
00921     if(length==1 && m_pszKinsokuKuto_1.size()){
00922         wchar_t wc=pLine[0];
00923         return wcschr(&m_pszKinsokuKuto_1[0],wc)!=NULL;
00924     }
00925     else{
00926         return false;
00927     }
00928 }
00929
00937 bool CLayoutMgr::IsKinsokuPosHead(
00938     CLayoutInt nRest,
00939     CLayoutInt nCharKetas,
00940     CLayoutInt nCharKetas2
00941 )
00942 {
00943     switch( (Int)nRest )
00944     {
00945     //    321012  ↓マジックナンバー
00946     // 3 "る）" : 22 "）"の2バイト目で折り返しのとき
00947     // 2  "Z）" : 12 "）"の2バイト目で折り返しのとき
00948     // 2  "る）": 22 "）"で折り返しのとき
00949     // 2  "る)" : 21 ")"で折り返しのとき
00950     // 1   "Z）": 12 "）"で折り返しのとき
00951     // 1   "Z)" : 11 ")"で折り返しのとき
00952     //↑何文字前か？
00953     // ※ただし、"るZ"部分が禁則なら処理しない。
00954     case 3: // 3文字前
00955         if( nCharKetas == 2 && nCharKetas2 == 2 ){
00956             return true;
00957         }
00958         break;
00959     case 2: // 2文字前
00960         if( nCharKetas == 2 ){
00961             return true;
00962         }
00963         else if( nCharKetas == 1 && nCharKetas2 == 2 ){
00964             return true;
00965         }
00966         break;
00967     case 1: // 1文字前
00968         if( nCharKetas == 1 ){
00969             return true;
00970         }
00971         break;
00972     }
00973     return false;
00974 }
00975
00983 bool CLayoutMgr::IsKinsokuPosTail(
00984     CLayoutInt nRest,
00985     CLayoutInt nCharKetas,
00986     CLayoutInt nCharKetas2
00987 )
00988 {
00989     switch( (Int)nRest )
00990     {
00991     case 3: // 3文字前
00992         if( nCharKetas == 2 && nCharKetas2 == 2){
00993             // "（あ": "あ"の2バイト目で折り返しのとき
00994             return true;
00995         }
00996         break;
00997     case 2: // 2文字前
00998         if( nCharKetas == 2 ){
00999             // "（あ": "あ"で折り返しのとき
01000             return true;
01001         }
01002         else if( nCharKetas == 1 && nCharKetas2 == 2){
01003             // "(あ": "あ"の2バイト目で折り返しのとき
01004             return true;
01005         }
01006         break;
01007     case 1: // 1文字前
01008         if( nCharKetas == 1 ){
01009             // "(あ": "あ"で折り返しのとき
01010             return true;
01011         }
01012         break;
01013     }
01014     return false;
01015 }
01016
01017 int CLayoutMgr::Match_Quote( wchar_t wcQuote, int nPos, int nLineLen, const wchar_t* pLine )
01018 {
01019     int nCharChars;
01020     int i;
01021     for( i = nPos; i < nLineLen; ++i ){
01022         // 2005-09-02 D.S.Koba GetSizeOfChar
01023         nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, i );
01024         if( 0 == nCharChars ){
01025             nCharChars = 1;
01026         }
01027         if( m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01028             if( 1 == nCharChars && pLine[i] == L'\\' ){
01029                 ++i;
01030             }else
01031             if( 1 == nCharChars && pLine[i] == wcQuote ){
01032                 return i + 1;
01033             }
01034         }else
01035         if( m_nStringType == 1 ){   /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01036             if( 1 == nCharChars && pLine[i] == wcQuote ){
01037                 if( i + 1 < nLineLen && pLine[i + 1] == wcQuote ){
01038                     ++i;
01039                 }else{
01040                     return i + 1;
01041                 }
01042             }
01043         }
01044         if( 2 == nCharChars ){
01045             ++i;
01046         }
01047     }
01048     return nLineLen;
01049 }
01050
01051 bool CLayoutMgr::CheckColorMODE( EColorIndexType& nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const wchar_t* pLine )
01052 {
01053     switch( nCOMMENTMODE ){
01054     case COLORIDX_TEXT: // 2002/03/13 novice
01055         // 2005.11.20 Mocaコメントの色分けがON/OFF関係なく行われていたバグを修正
01056         if( m_bDispComment && m_cLineComment.Match( nPos, nLineLen, pLine ) ){
01057             nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
01058         }
01059         else if( m_bDispComment && m_cBlockComment.Match_CommentFrom( 0, nPos, nLineLen, pLine ) ){
01060             nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
01061             /* この物理行にブロックコメントの終端があるか */
01062             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 0, nPos + m_cBlockComment.getBlockFromLen(0), nLineLen, pLine );
01063         }
01064         else if( m_bDispComment &&  m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine ) ){
01065             nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
01066             /* この物理行にブロックコメントの終端があるか */
01067             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 1, nPos + m_cBlockComment.getBlockFromLen(1), nLineLen, pLine );
01068         }
01069         else if( m_bDispSString && /* シングルクォーテーション文字列を表示する */
01070             pLine[nPos] == L'\''
01071         ){
01072             nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
01073             /* シングルクォーテーション文字列の終端があるか */
01074             nCOMMENTEND = Match_Quote( L'\'', nPos + 1, nLineLen, pLine );
01075         }
01076         else if( m_bDispWString && /* ダブルクォーテーション文字列を表示する */
01077             pLine[nPos] == L'"'
01078         ){
01079             nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
01080             /* ダブルクォーテーション文字列の終端があるか */
01081             nCOMMENTEND = Match_Quote( L'"', nPos + 1, nLineLen, pLine );
01082         }
01083         break;
01084     case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
01085         break;
01086     case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
01087         if( 0 == nCOMMENTEND ){
01088             /* この物理行にブロックコメントの終端があるか */
01089             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine );
01090         }else
01091         if( nPos == nCOMMENTEND ){
01092             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01093             return true;
01094         }
01095         break;
01096 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
01097     case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
01098         if( 0 == nCOMMENTEND ){
01099             /* この物理行にブロックコメントの終端があるか */
01100             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine );
01101         }else
01102         if( nPos == nCOMMENTEND ){
01103             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01104             return true;
01105         }
01106         break;
01107 //#endif
01108     case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
01109         if( 0 == nCOMMENTEND ){
01110             /* シングルクォーテーション文字列の終端があるか */
01111             nCOMMENTEND = Match_Quote( L'\'', nPos, nLineLen, pLine );
01112         }else
01113         if( nPos == nCOMMENTEND ){
01114             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01115             return true;
01116         }
01117         break;
01118     case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
01119         if( 0 == nCOMMENTEND ){
01120             /* ダブルクォーテーション文字列の終端があるか */
01121             nCOMMENTEND = Match_Quote( L'"', nPos, nLineLen, pLine );
01122         }else
01123         if( nPos == nCOMMENTEND ){
01124             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01125             return true;
01126         }
01127         break;
01128     }
01129     return false;
01130 }
01131
01143 CLayoutInt CLayoutMgr::getIndentOffset_Normal( CLayout* )
01144 {
01145     return CLayoutInt(0);
01146 }
01147
01160 CLayoutInt CLayoutMgr::getIndentOffset_Tx2x( CLayout* pLayoutPrev )
01161 {
01162     //  前の行が無いときは、インデント不要。
01163     if ( pLayoutPrev == NULL ) return CLayoutInt(0);
01164
01165     CLayoutInt nIpos = pLayoutPrev->GetIndent();
01166
01167     //  前の行が折り返し行ならばそれに合わせる
01168     if( pLayoutPrev->GetLogicOffset() > 0 )
01169         return nIpos;
01170
01171     CMemoryIterator it( pLayoutPrev, m_nTabSpace );
01172     while( !it.end() ){
01173         it.scanNext();
01174         if ( it.getIndexDelta() == 1 && it.getCurrentChar() == WCODE::TAB ){
01175             nIpos = it.getColumn() + it.getColumnDelta();
01176         }
01177         it.addDelta();
01178     }
01179     if ( m_nMaxLineKetas - nIpos < 6 ){
01180         nIpos = pLayoutPrev->GetIndent();   //  あきらめる
01181     }
01182     return nIpos;   //  インデント
01183 }
01184
01196 CLayoutInt CLayoutMgr::getIndentOffset_LeftSpace( CLayout* pLayoutPrev )
01197 {
01198     //  前の行が無いときは、インデント不要。
01199     if ( pLayoutPrev == NULL ) return CLayoutInt(0);
01200
01201     //  インデントの計算
01202     CLayoutInt nIpos = pLayoutPrev->GetIndent();
01203
01204     //  Oct. 5, 2002 genta
01205     //  折り返しの3行目以降は1つ前の行のインデントに合わせる．
01206     if( pLayoutPrev->GetLogicOffset() > 0 )
01207         return nIpos;
01208
01209     //  2002.10.07 YAZAKI インデントの計算
01210     CMemoryIterator it( pLayoutPrev, m_nTabSpace );
01211
01212     //  Jul. 20, 2003 genta 自動インデントに準じた動作にする
01213     bool bZenSpace = m_pcEditDoc->GetDocumentAttribute().m_bAutoIndent_ZENSPACE != FALSE ? 1 : 0;
01214     const wchar_t* szSpecialIndentChar = m_pcEditDoc->GetDocumentAttribute().m_szIndentChars;
01215     while( !it.end() ){
01216         it.scanNext();
01217         if ( it.getIndexDelta() == 1 && WCODE::isIndentChar(it.getCurrentChar(),bZenSpace) )
01218         {
01219             //  インデントのカウントを継続する
01220         }
01221         //  Jul. 20, 2003 genta インデント対象文字
01222         else if( szSpecialIndentChar[0] != L'\0' ){
01223             wchar_t buf[3]; // 文字の長さは1 or 2
01224             wmemcpy( buf, it.getCurrentPos(), it.getIndexDelta() );
01225             buf[ it.getIndexDelta() ] = L'\0';
01226             if( NULL != wcsstr( szSpecialIndentChar, buf )){
01227                 //  インデントのカウントを継続する
01228             }
01229             else {
01230                 nIpos = it.getColumn(); //  終了
01231                 break;
01232             }
01233         }
01234         else {
01235             nIpos = it.getColumn(); //  終了
01236             break;
01237         }
01238         it.addDelta();
01239     }
01240     if ( m_nMaxLineKetas - nIpos < 6 ){
01241         nIpos = pLayoutPrev->GetIndent();   //  あきらめる
01242     }
01243     return nIpos;   //  インデント
01244 }
01245
01246 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr_New2.cpp

sakura_core

CLayoutMgr_New2.cpp

テキストのレイアウト情報管理 [詳細]

#include "stdafx.h"
#include "CLayoutMgr.h"
#include "charcode.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 Nov 17 20:26:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLayoutMgr_New2.cpp ソースファイル

sakura_core

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 "debug.h"
00017 #include <commctrl.h>
00018 #include <stdlib.h>
00019 #include "CLayout.h" // 2002/2/10 aroka
00020 #include "CDocLineMgr.h" // 2002/2/10 aroka
00021
00022
00023
00024 /* 文字列置換 */
00025 void CLayoutMgr::ReplaceData_CLayoutMgr(
00026     LayoutReplaceArg*   pArg
00027 )
00028 {
00029     CLayoutInt  nWork_nLines = m_nLines;    //変更前の全行数の保存    @@@ 2002.04.19 MIK
00030
00031     /* 置換先頭位置のレイアウト情報 */
00032     CLayout*        pLayout = SearchLineByLayoutY( pArg->sDelRange.GetFrom().GetY2() );
00033     EColorIndexType nCurrentLineType = COLORIDX_DEFAULT;
00034     CLayoutInt      nLineWork = pArg->sDelRange.GetFrom().GetY2();
00035
00036     CLayout*        pLayoutWork = pLayout;
00037     if( pLayoutWork ){
00038         while( 0 != pLayoutWork->GetLogicOffset() ){
00039             pLayoutWork = pLayoutWork->m_pPrev;
00040             nLineWork--;
00041         }
00042         nCurrentLineType = pLayoutWork->GetColorTypePrev();
00043     }
00044
00045
00046     /*
00047     ||  カーソル位置変換
00048     ||  レイアウト位置(行頭からの表示桁位置、折り返しあり行位置) →
00049     ||  物理位置(行頭からのバイト数、折り返し無し行位置)
00050     */
00051     CLogicPoint ptFrom;
00052     CLogicPoint ptTo;
00053     LayoutToLogic( pArg->sDelRange.GetFrom(), &ptFrom );
00054     LayoutToLogic( pArg->sDelRange.GetTo(), &ptTo );
00055
00056     /* 指定範囲のデータを置換(削除 & データを挿入)
00057       Fromを含む位置からToの直前を含むデータを削除する
00058       Fromの位置へテキストを挿入する
00059     */
00060     DocLineReplaceArg DLRArg;
00061     DLRArg.sDelRange.SetFrom(ptFrom);   //削除範囲from
00062     DLRArg.sDelRange.SetTo(ptTo);       //削除範囲to
00063     DLRArg.pcmemDeleted = pArg->pcmemDeleted;   // 削除されたデータを保存
00064     DLRArg.pInsData = pArg->pInsData;           // 挿入するデータ
00065     DLRArg.nInsDataLen = pArg->nInsDataLen;     // 挿入するデータの長さ
00066     m_pcDocLineMgr->ReplaceData(
00067         &DLRArg
00068     );
00069
00070
00071     /*--- 変更された行のレイアウト情報を再生成 ---*/
00072     /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00073     /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00074
00075     CLayoutInt  nModifyLayoutLinesOld = CLayoutInt(0);
00076     CLayout* pLayoutPrev;
00077     CLogicInt nWork;
00078     nWork = __max( DLRArg.nDeletedLineNum, DLRArg.nInsLineNum );
00079
00080
00081     if( pLayoutWork ){
00082         pLayoutPrev = DeleteLayoutAsLogical(
00083             pLayoutWork,
00084             nLineWork,
00085             ptFrom.GetY2(),
00086             ptFrom.GetY2() + nWork,
00087             ptFrom,
00088             &nModifyLayoutLinesOld
00089         );
00090
00091         /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00092         /* 論理行が削除された場合は０より小さい行数 */
00093         /* 論理行が挿入された場合は０より大きい行数 */
00094         if( 0 != DLRArg.nInsLineNum - DLRArg.nDeletedLineNum ){
00095             ShiftLogicalLineNum(
00096                 pLayoutPrev,
00097                 DLRArg.nInsLineNum - DLRArg.nDeletedLineNum
00098             );
00099         }
00100     }else{
00101         pLayoutPrev = m_pLayoutBot;
00102     }
00103
00104     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00105     CLogicInt   nRowNum;
00106     if( NULL == pLayoutPrev ){
00107         if( NULL == m_pLayoutTop ){
00108             nRowNum = m_pcDocLineMgr->GetLineCount();
00109         }else{
00110             nRowNum = m_pLayoutTop->GetLogicLineNo();
00111         }
00112     }
00113     else{
00114         if( NULL == pLayoutPrev->m_pNext ){
00115             nRowNum =
00116                 m_pcDocLineMgr->GetLineCount() -
00117                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00118         }else{
00119             nRowNum =
00120                 pLayoutPrev->m_pNext->GetLogicLineNo() -
00121                 pLayoutPrev->GetLogicLineNo() - CLogicInt(1);
00122         }
00123     }
00124
00125     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00126     CLayoutInt nAddInsLineNum;
00127     pArg->nModLineTo = DoLayout_Range(
00128         pLayoutPrev,
00129         nRowNum,
00130         ptFrom,
00131         nCurrentLineType,
00132         &nAddInsLineNum
00133     );
00134
00135     pArg->nAddLineNum = nWork_nLines - m_nLines;    //変更後の全行数との差分 @@@ 2002.04.19 MIK
00136     if( 0 == pArg->nAddLineNum )
00137         pArg->nAddLineNum = nModifyLayoutLinesOld - pArg->nModLineTo;   /* 再描画ヒント レイアウト行の増減 */
00138     pArg->nModLineFrom = pArg->sDelRange.GetFrom().GetY2(); /* 再描画ヒント 変更されたレイアウト行From */
00139     pArg->nModLineTo += ( pArg->nModLineFrom - CLayoutInt(1) ) ;    /* 再描画ヒント 変更されたレイアウト行To */
00140
00141     //2007.10.18 kobake LayoutReplaceArg::ptLayoutNewはここで算出するのが正しい
00142     LogicToLayout(DLRArg.ptNewPos, &pArg->ptLayoutNew); // 挿入された部分の次の位置
00143 }
00144
00145
00146 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLineComment.cpp

sakura_core

CLineComment.cpp

行コメントデリミタを管理する [詳細]

#include "stdafx.h"
#include "CLineComment.h"
#include "my_icmp.h"

CLineComment.cppのインクルード依存関係図

ソースコードを見る。

説明

行コメントデリミタを管理する

作者:
Yazaki
日付:
2002/09/17 新規作成

CLineComment.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLineComment.cpp ソースファイル

sakura_core

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 wchar_t* buffer, int nCommentPos )
00034 {
00035     int nStrLen = wcslen( buffer );
00036     if( 0 < nStrLen && nStrLen < COMMENT_DELIMITER_BUFFERSIZE ){
00037         wcscpy( m_pszLineComment[n], buffer );
00038         m_nLineCommentPos[n] = nCommentPos;
00039         m_nLineCommentLen[n] = nStrLen;
00040     }
00041     else {
00042         m_pszLineComment[n][0] = L'\0';
00043         m_nLineCommentPos[n] = -1;
00044         m_nLineCommentLen[n] = 0;
00045     }
00046 }
00047
00048 bool CLineComment::Match( int nPos, int nLineLen, const wchar_t* pLine ) const
00049 {
00050     int i;
00051     for ( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
00052         if (
00053           L'\0' != m_pszLineComment[i][0] &&    /* 行コメントデリミタ */
00054           ( m_nLineCommentPos[i] < 0 || nPos == m_nLineCommentPos[i] ) &&   //  位置指定ON.
00055           nPos <= nLineLen - m_nLineCommentLen[i] &&    /* 行コメントデリミタ */
00056           0 == auto_memicmp( &pLine[nPos], m_pszLineComment[i], m_nLineCommentLen[i] )
00057         ){
00058             return true;
00059         }
00060     }
00061     return false;
00062 }
00063 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLineComment.h

sakura_core

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(), と CShareData::ShareData_IO_Types().

#define COMMENT_DELIMITER_NUM 3

CLineComment.h の 23 行で定義されています。

参照元 CLineComment::CLineComment(), CPropTypes::GetData_p3_new(), CLineComment::Match(), と CPropTypes::SetData_p3_new().

Sakura-Editorに対してSat Nov 17 20:26:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CLineComment.h ソースファイル

sakura_core

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     wchar_t 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 wchar_t* buffer, int nCommentPos ); //  行コメントデリミタをコピーする
00043     bool Match( int nPos, int nLineLen, const wchar_t* pLine ) const;   //  行コメントに値するか確認する
00044
00045     const wchar_t* 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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacro.cpp

sakura_core

CMacro.cpp

#include "stdafx.h"
#include "funccode.h"
#include "CMacro.h"
#include "CControlTray.h"
#include "CEditView.h"
#include "CSMacroMgr.h"
#include "CEditDoc.h"
#include "debug.h"
#include "OleTypes.h"
#include "io/CTextStream.h"
#include "CEditWnd.h"

CMacro.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
Norio Nakatani

CMacro.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacro.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00025 #include "CEditView.h" //2002/2/10 aroka
00026 #include "CSMacroMgr.h" //2002/2/10 aroka
00027 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00028 #include "debug.h"
00029 #include "OleTypes.h" //2003-02-21 鬼
00030 #include "io/CTextStream.h"
00031 #include "CEditWnd.h"
00032
00033 CMacro::CMacro( EFunctionCode nFuncID )
00034 {
00035     m_nFuncID = nFuncID;
00036     m_pNext = NULL;
00037     m_pParamTop = m_pParamBot = NULL;
00038 }
00039
00040 CMacro::~CMacro( void )
00041 {
00042     CMacroParam* p = m_pParamTop;
00043     CMacroParam* del_p;
00044     while (p){
00045         del_p = p;
00046         p = p->m_pNext;
00047         delete[] del_p->m_pData;
00048         delete del_p;
00049     }
00050     return;
00051 }
00052
00053 /*  引数の型振り分け
00054     機能IDによって、期待する型は異なります。
00055     そこで、引数の型を機能IDによって振り分けて、AddParamしましょう。
00056     たとえば、F_INSTEXT_Wの1つめ、2つめの引数は文字列、3つめの引数はintだったりするのも、ここでうまく振り分けられることを期待しています。
00057
00058     lParamは、HandleCommandのparamに値を渡しているコマンドの場合にのみ使います。
00059 */
00060 void CMacro::AddLParam( LPARAM lParam, const CEditView* pcEditView )
00061 {
00062     switch( m_nFuncID ){
00063     /*  文字列パラメータを追加 */
00064     case F_INSTEXT_W:
00065     case F_FILEOPEN:
00066     case F_EXECCOMMAND:
00067         {
00068             AddStringParam( (const wchar_t*)lParam );   //  lParamを追加。
00069             LPARAM lFlag = 0x00;
00070             lFlag |= pcEditView->m_pShareData->m_nExecFlgOpt;
00071             AddIntParam( lFlag );
00072         }
00073         break;
00074
00075     case F_JUMP:    //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00076         {
00077             AddIntParam( pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgJump.m_nLineNum );
00078             LPARAM lFlag = 0x00;
00079             lFlag |= pcEditView->m_pShareData->m_bLineNumIsCRLF     ? 0x01 : 0x00;
00080             lFlag |= pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgJump.m_bPLSQL  ? 0x02 : 0x00;
00081             AddIntParam( lFlag );
00082         }
00083         break;
00084
00085     case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00086     case F_SEARCH_NEXT:
00087     case F_SEARCH_PREV:
00088         {
00089             AddStringParam( pcEditView->m_pShareData->m_aSearchKeys[0] );   //  lParamを追加。
00090
00091             LPARAM lFlag = 0x00;
00092             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bWordOnly     ? 0x01 : 0x00;
00093             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bLoHiCase     ? 0x02 : 0x00;
00094             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp   ? 0x04 : 0x00;
00095             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND             ? 0x08 : 0x00;
00096             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind               ? 0x10 : 0x00;
00097             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bSearchAll                  ? 0x20 : 0x00;
00098             AddIntParam( lFlag );
00099         }
00100         break;
00101     case F_REPLACE:
00102     case F_REPLACE_ALL:
00103         {
00104             AddStringParam( pcEditView->m_pShareData->m_aSearchKeys[0] );   //  lParamを追加。
00105             AddStringParam( pcEditView->m_pShareData->m_aReplaceKeys[0] );  //  lParamを追加。
00106
00107             LPARAM lFlag = 0x00;
00108             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bWordOnly     ? 0x01 : 0x00;
00109             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bLoHiCase     ? 0x02 : 0x00;
00110             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp   ? 0x04 : 0x00;
00111             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND             ? 0x08 : 0x00;
00112             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind               ? 0x10 : 0x00;
00113             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bSearchAll                  ? 0x20 : 0x00;
00114             lFlag |= pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgReplace.m_nPaste                   ? 0x40 : 0x00;  //  CShareDataに入れなくていいの？
00115             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bSelectedArea                   ? 0x80 : 0x00;  //  置換する時は選べない
00116             lFlag |= pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgReplace.m_nReplaceTarget << 8; //  8bitシフト（0x100で掛け算）
00117             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bConsecutiveAll             ? 0x0400: 0x00; // 2007.01.16 ryoji
00118             AddIntParam( lFlag );
00119         }
00120         break;
00121     case F_GREP:
00122         {
00123             AddStringParam( pcEditView->m_pShareData->m_aSearchKeys[0] );   //  lParamを追加。
00124             AddStringParam( pcEditView->m_pShareData->m_aGrepFiles[0] );    //  lParamを追加。
00125             AddStringParam( pcEditView->m_pShareData->m_aGrepFolders[0] );  //  lParamを追加。
00126
00127             LPARAM lFlag = 0x00;
00128             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bGrepSubFolder              ? 0x01 : 0x00;
00129             //          この編集中のテキストから検索する(0x02.未実装)
00130             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bLoHiCase                     ? 0x04 : 0x00;
00131             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp                   ? 0x08 : 0x00;
00132             lFlag |= (pcEditView->m_pShareData->m_Common.m_sSearch.m_nGrepCharSet == CODE_AUTODETECT) ? 0x10 : 0x00;    //  2002/09/21 Moca 下位互換性のための処理
00133             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_bGrepOutputLine             ? 0x20 : 0x00;
00134             lFlag |= (pcEditView->m_pShareData->m_Common.m_sSearch.m_nGrepOutputStyle == 2)     ? 0x40 : 0x00;  //  CShareDataに入れなくていいの？
00135             lFlag |= pcEditView->m_pShareData->m_Common.m_sSearch.m_nGrepCharSet << 8;
00136             AddIntParam( lFlag );
00137         }
00138         break;
00139     /*  数値パラメータを追加 */
00140     case F_WCHAR:
00141         AddIntParam( lParam ); //※文字コードが渡される
00142         break;
00143
00144     /*  標準もパラメータを追加 */
00145     default:
00146         AddIntParam( lParam );
00147         break;
00148     }
00149 }
00150
00151 /*  引数に文字列を追加。
00152 */
00153 void CMacro::AddStringParam( const WCHAR* szParam )
00154 {
00155     CMacroParam* param = new CMacroParam;
00156     param->m_pNext = NULL;
00157
00158     //  必要な領域を確保してコピー。
00159     int nLen = auto_strlen( szParam );
00160     param->m_pData = new WCHAR[nLen + 1];
00161     auto_memcpy(param->m_pData, szParam, nLen );
00162     param->m_pData[nLen] = LTEXT('\0');
00163
00164     //  リストの整合性を保つ
00165     if (m_pParamTop){
00166         m_pParamBot->m_pNext = param;
00167         m_pParamBot = param;
00168     }
00169     else {
00170         m_pParamTop = param;
00171         m_pParamBot = m_pParamTop;
00172     }
00173 }
00174
00175 /*  引数に数値を追加。
00176 */
00177 void CMacro::AddIntParam( const int nParam )
00178 {
00179     CMacroParam* param = new CMacroParam;
00180     param->m_pNext = NULL;
00181
00182     //  必要な領域を確保してコピー。
00183     param->m_pData = new WCHAR[16]; //  数値格納（最大16桁）用
00184     _itow(nParam, param->m_pData, 10);
00185
00186     //  リストの整合性を保つ
00187     if (m_pParamTop){
00188         m_pParamBot->m_pNext = param;
00189         m_pParamBot = param;
00190     }
00191     else {
00192         m_pParamTop = param;
00193         m_pParamBot = m_pParamTop;
00194     }
00195 }
00196
00197 /*  コマンドを実行する（pcEditView->GetCommander().HandleCommandを発行する）
00198     m_nFuncIDによって、引数の型を正確に渡してあげましょう。
00199
00200     paramArrは何かのポインタ（アドレス）をLONGであらわした値になります。
00201     引数がchar*のときは、paramArr[i]をそのままHandleCommandに渡してかまいません。
00202     引数がintのときは、*((int*)paramArr[i])として渡しましょう。
00203
00204     たとえば、F_INSTEXT_Wの1つめ、2つめの引数は文字列、3つめの引数はint、4つめの引数が無し。だったりする場合は、次のようにしましょう。
00205     pcEditView->GetCommander().HandleCommand( m_nFuncID, TRUE, paramArr[0], paramArr[1], *((int*)paramArr[2]), 0);
00206 */
00207 void CMacro::Exec( CEditView* pcEditView ) const
00208 {
00209     const WCHAR* paramArr[4] = {NULL, NULL, NULL, NULL};    //  4つに限定。
00210
00211     CMacroParam* p = m_pParamTop;
00212     int i = 0;
00213     for (i = 0; i < 4; i++) {
00214         if (!p) break;  //  pが無ければbreak;
00215         paramArr[i] = p->m_pData;
00216         p = p->m_pNext;
00217     }
00218     CMacro::HandleCommand(pcEditView, m_nFuncID, paramArr, i);
00219 }
00220
00221 /*  CMacroを再現するための情報をhFileに書き出します。
00222
00223     InsText("なんとか");
00224     のように。
00225 */
00226 void CMacro::Save( HINSTANCE hInstance, CTextOutputStream& out ) const
00227 {
00228     WCHAR           szFuncName[1024];
00229     WCHAR           szFuncNameJapanese[500];
00230     int             nTextLen;
00231     const WCHAR*    pText;
00232     CNativeW        cmemWork;
00233
00234     /* 2002.2.2 YAZAKI CSMacroMgrに頼む */
00235     if (CSMacroMgr::GetFuncInfoByID( hInstance, m_nFuncID, szFuncName, szFuncNameJapanese)){
00236         switch ( m_nFuncID ){
00237         case F_INSTEXT_W:
00238         case F_FILEOPEN:
00239             //  引数ひとつ分だけ保存
00240             pText = m_pParamTop->m_pData;
00241             nTextLen = wcslen(pText);
00242             cmemWork.SetString( pText, nTextLen );
00243             cmemWork.Replace( LTEXT("\\"), LTEXT("\\\\") );
00244             cmemWork.Replace( LTEXT("\'"), LTEXT("\\\'") );
00245             out.WriteF(
00246                 LTEXT("S_%ts(\'%ls\');\t// %ts\r\n"),
00247                 szFuncName,
00248                 cmemWork.GetStringPtr(),
00249                 szFuncNameJapanese
00250             );
00251             break;
00252         case F_JUMP:        //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00253             out.WriteF(
00254                 LTEXT("S_%ts(%d, %d);\t// %ts\r\n"),
00255                 szFuncName,
00256                 (m_pParamTop->m_pData ? _wtoi(m_pParamTop->m_pData) : 1),
00257                 m_pParamTop->m_pNext->m_pData ? _wtoi(m_pParamTop->m_pNext->m_pData) : 0,
00258                 szFuncNameJapanese
00259             );
00260             break;
00261         case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00262         case F_SEARCH_NEXT:
00263         case F_SEARCH_PREV:
00264             pText = m_pParamTop->m_pData;
00265             nTextLen = wcslen(pText);
00266             cmemWork.SetString( pText, nTextLen );
00267             cmemWork.Replace( LTEXT("\\"), LTEXT("\\\\") );
00268             cmemWork.Replace( LTEXT("\'"), LTEXT("\\\'") );
00269             out.WriteF(
00270                 LTEXT("S_%ts(\'%ls\', %d);\t// %ts\r\n"),
00271                 szFuncName,
00272                 cmemWork.GetStringPtr(),
00273                 m_pParamTop->m_pNext->m_pData ? _wtoi(m_pParamTop->m_pNext->m_pData) : 0,
00274                 szFuncNameJapanese
00275             );
00276             break;
00277         case F_EXECCOMMAND:
00278             //  引数ひとつ分だけ保存
00279             pText = m_pParamTop->m_pData;
00280             nTextLen = wcslen(pText);
00281             cmemWork.SetString( pText, nTextLen );
00282             cmemWork.Replace( LTEXT("\\"), LTEXT("\\\\") );
00283             cmemWork.Replace( LTEXT("\'"), LTEXT("\\\'") );
00284             out.WriteF(
00285                 LTEXT("S_%ts(\'%ls\', %d);\t// %ts\r\n"),
00286                 szFuncName,
00287                 cmemWork.GetStringPtr(),
00288                 m_pParamTop->m_pNext->m_pData ? _wtoi(m_pParamTop->m_pNext->m_pData) : 0,
00289                 szFuncNameJapanese
00290             );
00291             break;
00292         case F_REPLACE:
00293         case F_REPLACE_ALL:
00294             pText = m_pParamTop->m_pData;
00295             nTextLen = wcslen(pText);
00296             cmemWork.SetString( pText, nTextLen );
00297             cmemWork.Replace( LTEXT("\\"), LTEXT("\\\\") );
00298             cmemWork.Replace( LTEXT("\'"), LTEXT("\\\'") );
00299             {
00300                 CNativeW cmemWork2(m_pParamTop->m_pNext->m_pData);
00301                 cmemWork2.Replace( LTEXT("\\"), LTEXT("\\\\") );
00302                 cmemWork2.Replace( LTEXT("\'"), LTEXT("\\\'") );
00303                 out.WriteF(
00304                     LTEXT("S_%ts(\'%ls\', \'%ls\', %d);\t// %ts\r\n"),
00305                     szFuncName,
00306                     cmemWork.GetStringPtr(),
00307                     cmemWork2.GetStringPtr(),
00308                     m_pParamTop->m_pNext->m_pNext->m_pData ? _wtoi(m_pParamTop->m_pNext->m_pNext->m_pData) : 0,
00309                     szFuncNameJapanese
00310                 );
00311             }
00312             break;
00313         case F_GREP:
00314             pText = m_pParamTop->m_pData;
00315             nTextLen = wcslen(pText);
00316             cmemWork.SetString( pText, nTextLen );
00317             cmemWork.Replace( LTEXT("\\"), LTEXT("\\\\") );
00318             cmemWork.Replace( LTEXT("\'"), LTEXT("\\\'") );
00319             {
00320                 CNativeW cmemWork2(m_pParamTop->m_pNext->m_pData);
00321                 cmemWork2.Replace( LTEXT("\\"), LTEXT("\\\\") );
00322                 cmemWork2.Replace( LTEXT("\'"), LTEXT("\\\'") );
00323
00324                 CNativeW cmemWork3(m_pParamTop->m_pNext->m_pNext->m_pData);
00325                 cmemWork3.Replace( LTEXT("\\"), LTEXT("\\\\") );
00326                 cmemWork3.Replace( LTEXT("\'"), LTEXT("\\\'") );
00327                 out.WriteF(
00328                     LTEXT("S_%ts(\'%ls\', \'%ls\', \'%ls\', %d);\t// %ts\r\n"),
00329                     szFuncName,
00330                     cmemWork.GetStringPtr(),
00331                     cmemWork2.GetStringPtr(),
00332                     cmemWork3.GetStringPtr(),
00333                     m_pParamTop->m_pNext->m_pNext->m_pNext->m_pData ? _wtoi(m_pParamTop->m_pNext->m_pNext->m_pNext->m_pData) : 0,
00334                     szFuncNameJapanese
00335                 );
00336             }
00337             break;
00338         default:
00339             if( 0 == m_pParamTop ){
00340                 out.WriteF( LTEXT("S_%ts();\t// %ts\r\n"), szFuncName, szFuncNameJapanese );
00341             }else{
00342                 out.WriteF( LTEXT("S_%ts(%d);\t// %ts\r\n"), szFuncName, m_pParamTop->m_pData ? _wtoi(m_pParamTop->m_pData) : 0, szFuncNameJapanese );
00343             }
00344             break;
00345         }
00346         return;
00347     }
00348     out.WriteF( LTEXT("CMacro::GetFuncInfoByID()に、バグがあるのでエラーが出ましたぁぁぁぁぁぁあああ\r\n") );
00349 }
00350
00361 void CMacro::HandleCommand(
00362     CEditView*          pcEditView,
00363     const EFunctionCode Index,
00364     const WCHAR*        Argument[],
00365     const int           ArgSize
00366 )
00367 {
00368     const TCHAR EXEC_ERROR_TITLE[] = _T("Macro実行エラー");
00369     switch (Index)
00370     {
00371     case F_WCHAR:       //  文字入力。数値は文字コード
00372     case F_IME_CHAR:    //  日本語入力
00373     case F_CHGMOD_EOL:  //  入力改行コード指定。enumEOLTypeの数値を指定。2003.06.23 Moca
00374         //  Jun. 16, 2002 genta
00375         if( Argument[0] == NULL ){
00376 			::MYMESSAGEBOX(
00377                 NULL,
00378                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00379                 EXEC_ERROR_TITLE,
00380                 _T("挿入すべき文字コードが指定されていません．")
00381             );
00382             break;
00383         }
00384         /* NO BREAK */
00385     case F_GOLINETOP:   //  行頭に移動。数値は、0x0（デフォルト）、0x1（空白を無視して先頭に移動）、0x2（未定義）、0x4（選択して移動）、0x8（改行単位で先頭に移動：未実装）
00386         //  一つ目の引数が数値。
00387         pcEditView->GetCommander().HandleCommand( Index, FALSE, (Argument[0] != NULL ? _wtoi(Argument[0]) : 0 ), 0, 0, 0 );
00388         break;
00389     case F_INSTEXT_W:       //  テキスト挿入
00390     case F_ADDTAIL_W:       //  この操作はキーボード操作では存在しないので保存することができない？
00391     case F_SET_QUOTESTRING: // Jan. 29, 2005 genta 追加 テキスト引数1つを取るマクロはここに統合していこう．
00392         //  一つ目の引数が文字列。
00393         //  ただし2つ目の引数は文字数。
00394         if( Argument[0] == NULL ){
00395 			::MYMESSAGEBOX(
00396                 NULL,
00397                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00398                 EXEC_ERROR_TITLE,
00399                 _T("引数(文字列)が指定されていません．")
00400             );
00401             break;
00402         }
00403         {
00404             int len = wcslen(Argument[0]);
00405             pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], len, 0, 0 );   //  標準
00406         }
00407         break;
00408     /* 一つ目、二つ目とも引数は数値 */
00409     case F_JUMP:        //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00410         //  Argument[0]へジャンプ。オプションはArgument[1]に。
00411         //      ******** 以下「行番号の単位」 ********
00412         //      0x00    折り返し単位の行番号
00413         //      0x01    改行単位の行番号
00414         //      **************************************
00415         //      0x02    PL/SQLコンパイルエラー行を処理する
00416         //      未定義   テキストの□行目をブロックの1行目とする
00417         //      未定義   検出されたPL/SQLパッケージのブロックから選択
00418         if( Argument[0] == NULL ){
00419 			::MYMESSAGEBOX(
00420                 NULL,
00421                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00422                 EXEC_ERROR_TITLE,
00423                 _T("ジャンプ先行番号が指定されていません．")
00424             );
00425             break;
00426         }
00427         {
00428             pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgJump.m_nLineNum = _wtoi(Argument[0]);   //ジャンプ先
00429             LPARAM lFlag = Argument[1] != NULL ? _wtoi(Argument[1]) : 1; // デフォルト1
00430             pcEditView->m_pShareData->m_bLineNumIsCRLF = lFlag & 0x01 ? 1 : 0;
00431             pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgJump.m_bPLSQL = lFlag & 0x02 ? 1 : 0;
00432             pcEditView->GetCommander().HandleCommand( Index, FALSE, 0, 0, 0, 0 );   //  標準
00433         }
00434         break;
00435     /*  一つ目の引数は文字列、二つ目の引数は数値    */
00436     case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00437         if( Argument[0] == NULL ){
00438 			::MYMESSAGEBOX(
00439                 NULL,
00440                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00441                 EXEC_ERROR_TITLE,
00442                 _T("マーク行のパターンが指定されていません．")
00443             );
00444             break;
00445         }
00446         /* NO BREAK */
00447     case F_SEARCH_NEXT:
00448     case F_SEARCH_PREV:
00449         //  Argument[0]を検索。オプションはArgument[1]に。
00450         //  Argument[1]:
00451         //      0x01    単語単位で探す
00452         //      0x02    英大文字と小文字を区別する
00453         //      0x04    正規表現
00454         //      0x08    見つからないときにメッセージを表示
00455         //      0x10    検索ダイアログを自動的に閉じる
00456         //      0x20    先頭（末尾）から再検索する
00457         //  各値をShareDataに設定してコマンドを発行し、ShareDataの値を元に戻す。
00458         {
00459             if( 0 < wcslen( Argument[0] ) ){
00460                 /* 正規表現 */
00461                 if( pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp
00462                     && !CheckRegexpSyntax( Argument[0], NULL, true )
00463                 )
00464                 {
00465                     break;
00466                 }
00467
00468                 /* 検索文字列 */
00469                 CShareData::getInstance()->AddToSearchKeyArr( Argument[0] );
00470             }
00471             //  設定値バックアップ
00472             //  マクロパラメータ→設定値変換
00473             LPARAM lFlag = Argument[1] != NULL ? _wtoi(Argument[1]) : 0;
00474             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bWordOnly          = lFlag & 0x01 ? 1 : 0;
00475             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bLoHiCase          = lFlag & 0x02 ? 1 : 0;
00476             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp        = lFlag & 0x04 ? 1 : 0;
00477             pcEditView->m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND  = lFlag & 0x08 ? 1 : 0;
00478             pcEditView->m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind    = lFlag & 0x10 ? 1 : 0;
00479             pcEditView->m_pShareData->m_Common.m_sSearch.m_bSearchAll           = lFlag & 0x20 ? 1 : 0;
00480
00481             //  コマンド発行
00482         //  pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00483             pcEditView->GetCommander().HandleCommand( Index, FALSE, 0, 0, 0, 0);
00484         }
00485         break;
00486     case F_DIFF:
00487         //  Argument[0]とDiff差分表示。オプションはArgument[1]に。
00488         //  Argument[1]:
00489         //      次の数値の和。
00490         //      0x0001 -i ignore-case         大文字小文字同一視
00491         //      0x0002 -w ignore-all-space    空白無視
00492         //      0x0004 -b ignore-space-change 空白変更無視
00493         //      0x0008 -B ignore-blank-lines  空行無視
00494         //      0x0010 -t expand-tabs         TAB-SPACE変換
00495         //      0x0020    (編集中のファイルが旧ファイル)
00496         //      0x0040    (DIFF差分がないときにメッセージ表示)
00497         /* NO BREAK */
00498
00499     case F_EXECCOMMAND:
00500         //  Argument[0]を実行。オプションはArgument[1]に。
00501         //  Argument[1]:
00502         //      次の数値の和。
00503         //      0x01    標準出力を得る
00504         //      0x02    標準出力をキャレット位置に //  2007.01.02 maru 引数の拡張
00505         //      0x04    編集中ファイルを標準入力へ //  2007.01.02 maru 引数の拡張
00506         /* NO BREAK */
00507
00508     case F_TRACEOUT:        // 2006.05.01 マクロ用アウトプットウインドウに出力
00509         //  Argument[0]を出力。オプションはArgument[1]に。
00510         //  Argument[1]:
00511         //      次の数値の和。
00512         //      0x01    ExpandParameterによる文字列展開を行う
00513         //      0x02    テキスト末尾に改行コードを付加しない
00514         if( Argument[0] == NULL ){
00515 			::MYMESSAGEBOX(
00516                 NULL,
00517                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
00518                 EXEC_ERROR_TITLE,
00519                 _T( "引数(文字列)が指定されていません．" )
00520             );
00521             break;
00522         }
00523         {
00524             pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], (LPARAM)(Argument[1] != NULL ? _wtoi(Argument[1]) : 0 ), 0, 0);
00525         }
00526         break;
00527
00528     /* はじめの引数は文字列。２つ目と３つ目は数値 */
00529     case F_PUTFILE:     // 2006.12.10 作業中ファイルの一時出力
00530         //  Argument[0]に出力。Argument[1]に文字コード。オプションはArgument[2]に。
00531         //  Argument[2]:
00532         //      次の値の和
00533         //      0x01    選択範囲を出力（非選択状態なら空ファイルを生成）
00534         // no break
00535
00536     case F_INSFILE:     // 2006.12.10 キャレット位置にファイル挿入
00537         //  Argument[0]に出力。Argument[1]に文字コード。オプションはArgument[2]に。
00538         //  Argument[2]:
00539         //      現在は特になし
00540         if( Argument[0] == NULL ){
00541 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00542                 _T( "ファイル名が指定されていません．" ));
00543             break;
00544         }
00545         {
00546             pcEditView->GetCommander().HandleCommand(
00547                 Index,
00548                 FALSE,
00549                 (LPARAM)Argument[0],
00550                 (LPARAM)(Argument[1] != NULL ? _wtoi(Argument[1]) : 0 ),
00551                 (LPARAM)(Argument[2] != NULL ? _wtoi(Argument[2]) : 0 ),
00552                 0
00553             );
00554         }
00555         break;
00556
00557     /* はじめの2つの引数は文字列。3つ目は数値 */
00558     case F_REPLACE:
00559     case F_REPLACE_ALL:
00560         //  Argument[0]を、Argument[1]に置換。オプションはArgument[2]に（入れる予定）
00561         //  Argument[2]:
00562         //      次の数値の和。
00563         //      0x001   単語単位で探す
00564         //      0x002   英大文字と小文字を区別する
00565         //      0x004   正規表現
00566         //      0x008   見つからないときにメッセージを表示
00567         //      0x010   検索ダイアログを自動的に閉じる
00568         //      0x020   先頭（末尾）から再検索する
00569         //      0x040   クリップボードから貼り付ける
00570         //      ******** 以下「置換範囲」 ********
00571         //      0x000   ファイル全体
00572         //      0x080   選択範囲
00573         //      **********************************
00574         //      ******** 以下「置換対象」 ********
00575         //      0x000   見つかった文字列と置換
00576         //      0x100   見つかった文字列の前に挿入
00577         //      0x200   見つかった文字列の後に追加
00578         //      **********************************
00579         //      0x400   「すべて置換」は置換の繰返し（ON:連続置換, OFF:一括置換）
00580         //  各値をShareDataに設定してコマンドを発行し、ShareDataの値を元に戻す。
00581         if( Argument[0] == NULL ){
00582 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00583                 _T("置換元パターンが指定されていません．"));
00584             break;
00585         }
00586         if( Argument[1] == NULL ){
00587 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00588                 _T("置換先パターンが指定されていません．"));
00589             break;
00590         }
00591         {
00592             /* 正規表現 */
00593             if( pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp
00594                 && !CheckRegexpSyntax( Argument[0], NULL, true )
00595             )
00596             {
00597                 break;
00598             }
00599
00600             /* 検索文字列 */
00601             CShareData::getInstance()->AddToSearchKeyArr( Argument[0] );
00602
00603             /* 検索文字列 */
00604             CShareData::getInstance()->AddToReplaceKeyArr( Argument[1] );
00605
00606             LPARAM lFlag = Argument[2] != NULL ? _wtoi(Argument[2]) : 0;
00607             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bWordOnly          = lFlag & 0x01 ? 1 : 0;
00608             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bLoHiCase          = lFlag & 0x02 ? 1 : 0;
00609             pcEditView->m_pShareData->m_Common.m_sSearch.m_sSearchOption.bRegularExp        = lFlag & 0x04 ? 1 : 0;
00610             pcEditView->m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND  = lFlag & 0x08 ? 1 : 0;
00611             pcEditView->m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind    = lFlag & 0x10 ? 1 : 0;
00612             pcEditView->m_pShareData->m_Common.m_sSearch.m_bSearchAll           = lFlag & 0x20 ? 1 : 0;
00613             pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgReplace.m_nPaste            = lFlag & 0x40 ? 1 : 0; //  CShareDataに入れなくていいの？
00614 //          pcEditView->m_pShareData->m_Common.m_sSearch.m_bSelectedArea        = 0;    //  lFlag & 0x80 ? 1 : 0;
00615             pcEditView->m_pShareData->m_Common.m_sSearch.m_bConsecutiveAll  = lFlag & 0x0400 ? 1 : 0;   // 2007.01.16 ryoji
00616             if (Index == F_REPLACE) {
00617                 //  置換する時は選べない
00618                 pcEditView->m_pShareData->m_Common.m_sSearch.m_bSelectedArea    = 0;
00619             }
00620             else if (Index == F_REPLACE_ALL) {
00621                 //  全置換の時は選べる？
00622                 pcEditView->m_pShareData->m_Common.m_sSearch.m_bSelectedArea    = lFlag & 0x80 ? 1 : 0;
00623             }
00624             pcEditView->m_pcEditDoc->m_pcEditWnd->m_cDlgReplace.m_nReplaceTarget    = (lFlag >> 8) & 0x03;  //  8bitシフト（0x100で割り算）    // 2007.01.16 ryoji 下位 2bitだけ取り出す
00625             //  コマンド発行
00626             pcEditView->GetCommander().HandleCommand( Index, FALSE, 0, 0, 0, 0);
00627         }
00628         break;
00629     case F_GREP:
00630         //  Argument[0] 検索文字列
00631         //  Argument[1] 検索対象にするファイル名
00632         //  Argument[2] 検索対象にするフォルダ名
00633         //  Argument[3]:
00634         //      次の数値の和。
00635         //      0x01    サブフォルダからも検索する
00636         //      0x02    この編集中のテキストから検索する（未実装）
00637         //      0x04    英大文字と英小文字を区別する
00638         //      0x08    正規表現
00639         //      0x10    文字コード自動判別
00640         //      ******** 以下「結果出力」 ********
00641         //      0x00    該当行
00642         //      0x20    該当部分
00643         //      **********************************
00644         //      ******** 以下「出力形式」 ********
00645         //      0x00    ノーマル
00646         //      0x40    ファイル毎
00647         //      **********************************
00648         //      0x0100 〜 0xff00   文字コードセット番号 * 0x100
00649         if( Argument[0] == NULL ){
00650 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00651                 _T("GREPパターンが指定されていません．"));
00652             break;
00653         }
00654         if( Argument[1] == NULL ){
00655 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00656                 _T("ファイル種別が指定されていません．"));
00657             break;
00658         }
00659         if( Argument[2] == NULL ){
00660 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00661                 _T("検索先フォルダが指定されていません．"));
00662             break;
00663         }
00664         {
00665             //  常に外部ウィンドウに。
00666             /*======= Grepの実行 =============*/
00667             /* Grep結果ウィンドウの表示 */
00668             TCHAR   pCmdLine[1024];
00669             TCHAR   pOpt[64];
00670 //          int     nDataLen;
00671             ECodeType   nCharSet;
00672
00673             CNativeT cmWork1;   cmWork1.SetStringW( Argument[0] );  cmWork1.Replace( _T("\""), _T("\"\"") );    //  検索文字列
00674             CNativeT cmWork2;   cmWork2.SetStringW( Argument[1] );  cmWork2.Replace( _T("\""), _T("\"\"") );    //  ファイル名
00675             CNativeT cmWork3;   cmWork3.SetStringW( Argument[2] );  cmWork3.Replace( _T("\""), _T("\"\"") );    //  フォルダ名
00676
00677             LPARAM lFlag = Argument[3] != NULL ? _wtoi(Argument[3]) : 5;
00678
00679             // 2002/09/21 Moca 文字コードセット
00680             {
00681                 nCharSet = CODE_SJIS;
00682                 if( lFlag & 0x10 ){ // 文字コード自動判別(下位互換用)
00683                     nCharSet = CODE_AUTODETECT;
00684                 }
00685                 int nCode = (lFlag >> 8) & 0xff; // 下から 7-15 ビット目(0開始)を使う
00686                 if( IsValidCodeTypeExceptSJIS(nCode) || CODE_AUTODETECT == nCode ){
00687                     nCharSet = (ECodeType)nCode;
00688                 }
00689             }
00690             /*
00691             || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00692             */
00693             auto_sprintf(
00694                 pCmdLine,
00695                 _T("-GREPMODE -GKEY=\"%ls\" -GFILE=\"%ls\" -GFOLDER=\"%ls\" -GCODE=%d"),
00696                 cmWork1.GetStringPtr(),
00697                 cmWork2.GetStringPtr(),
00698                 cmWork3.GetStringPtr(),
00699                 nCharSet
00700             );
00701
00702             pOpt[0] = '\0';
00703             if( lFlag & 0x01 ){ /* サブフォルダからも検索する */
00704                 _tcscat( pOpt, _T("S") );
00705             }
00706         //  if( lFlag & 0x02 ){ /* この編集中のテキストから検索する */
00707         //
00708         //  }
00709             if( lFlag & 0x04 ){ /* 英大文字と英小文字を区別する */
00710                 _tcscat( pOpt, _T("L") );
00711             }
00712             if( lFlag & 0x08 ){ /* 正規表現 */
00713                 _tcscat( pOpt, _T("R") );
00714             }
00715 //          2002/09/21 Moca -GCODE に統合
00716 //          if( lFlag & 0x10 ){ /* 文字コード自動判別 */
00717 //              _tcscat( pOpt, _T("K") );
00718 //          }
00719             if( lFlag & 0x20 ){ /* 行を出力するか該当部分だけ出力するか */
00720                 _tcscat( pOpt, _T("P") );
00721             }
00722             if( lFlag & 0x40 ){ /* Grep: 出力形式 */
00723                 _tcscat( pOpt, _T("2") );
00724             }
00725             else {
00726                 _tcscat( pOpt, _T("1") );
00727             }
00728             if( 0 < _tcslen( pOpt ) ){
00729                 _tcscat( pCmdLine, _T(" -GOPT=") );
00730                 _tcscat( pCmdLine, pOpt );
00731             }
00732             /* 新規編集ウィンドウの追加 ver 0 */
00733             CControlTray::OpenNewEditor( pcEditView->m_hInstance, pcEditView->m_hWnd, pCmdLine, CODE_DEFAULT, FALSE );
00734             /*======= Grepの実行 =============*/
00735             /* Grep結果ウィンドウの表示 */
00736         }
00737         break;
00738     case F_FILEOPEN:
00739         //  Argument[0]を開く。
00740         if( Argument[0] == NULL ){
00741 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00742                 _T("読み込みファイル名が指定されていません．"));
00743             break;
00744         }
00745         {
00746             pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00747         }
00748         break;
00749     case F_FILESAVEAS:
00750         //  Argument[0]を別名で保存。
00751         if( Argument[0] == NULL ){
00752 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00753                 _T("保存ファイル名が指定されていません．"));
00754             break;
00755         }
00756         {
00757             /* デフォルト値 */
00758             //  Sep. 11, 2004 genta 初期値を「変更しない」に
00759             //  0だとSJIS指定となってしまうため
00760             ECodeType nCharCode = CODE_AUTODETECT;
00761             int nSaveLineCode = 0;
00762
00763             if (Argument[1] != NULL){
00764                 nCharCode = (ECodeType)_wtoi( Argument[1] );
00765             }
00766             if (Argument[2] != NULL){
00767                 nSaveLineCode = _wtoi( Argument[2] );
00768             }
00769             // 文字コードセット
00770             //  Sep. 11, 2004 genta 文字コード設定の範囲チェック
00771             if( IsValidCodeType(nCharCode) &&
00772                 nCharCode != pcEditView->m_pcEditDoc->m_nCharCode ){
00773                 pcEditView->m_pcEditDoc->m_nCharCode = nCharCode;
00774                 //  From Here Jul. 26, 2003 ryoji BOM状態を初期化
00775                 switch( pcEditView->m_pcEditDoc->m_nCharCode ){
00776                 case CODE_UNICODE:
00777                 case CODE_UNICODEBE:
00778                     pcEditView->m_pcEditDoc->m_bBomExist = TRUE;
00779                     break;
00780                 case CODE_UTF8:
00781                 default:
00782                     pcEditView->m_pcEditDoc->m_bBomExist = FALSE;
00783                     break;
00784                 }
00785                 //  To Here Jul. 26, 2003 ryoji BOM状態を初期化
00786             }
00787             // 改行コード
00788             switch (nSaveLineCode){
00789             case 0:
00790                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_NONE;
00791                 break;
00792             case 1:
00793                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_CRLF;
00794                 break;
00795             case 2:
00796                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_LF;
00797                 break;
00798             case 3:
00799                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_CR;
00800                 break;
00801             default:
00802                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_NONE;
00803                 break;
00804             }
00805
00806             pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00807         }
00808         break;
00809     // Jul. 5, 2002 genta
00810     case F_EXTHTMLHELP:
00811         pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], (LPARAM)Argument[1], 0, 0);
00812         break;
00813     //  From Here Dec. 4, 2002 genta
00814     case F_FILE_REOPEN              ://開き直す
00815     case F_FILE_REOPEN_SJIS         ://SJISで開き直す
00816     case F_FILE_REOPEN_JIS          ://JISで開き直す
00817     case F_FILE_REOPEN_EUC          ://EUCで開き直す
00818     case F_FILE_REOPEN_UNICODE      ://Unicodeで開き直す
00819     case F_FILE_REOPEN_UNICODEBE    ://UnicodeBEで開き直す
00820     case F_FILE_REOPEN_UTF8         ://UTF-8で開き直す
00821     case F_FILE_REOPEN_UTF7         ://UTF-7で開き直す
00822         {
00823             int noconfirm = 0;
00824             if (Argument[0] != NULL){
00825                 noconfirm = ( _wtoi( Argument[0] ) != 0 );
00826             }
00827             pcEditView->GetCommander().HandleCommand( Index, FALSE, noconfirm, 0, 0, 0 );
00828         }
00829         break;
00830     //  To Here Dec. 4, 2002 genta
00831     case F_TOPMOST:
00832         {
00833             int lparam1;
00834             if( Argument[0] != NULL ){
00835                 lparam1 = _wtoi( Argument[0] );
00836                 pcEditView->GetCommander().HandleCommand( Index, FALSE, lparam1, 0, 0, 0 );
00837             }
00838         }
00839         break;  //  Jan. 29, 2005 genta 抜けていた
00840     case F_TAGJUMP_KEYWORD: // @@ 2005.03.31 MIK
00841         {
00842             //引数はNULLでもOK
00843             pcEditView->GetCommander().HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00844         }
00845         break;
00846     default:
00847         //  引数なし。
00848         pcEditView->GetCommander().HandleCommand( Index, FALSE, 0, 0, 0, 0 );   //  標準
00849         break;
00850     }
00851 }
00852
00869 bool CMacro::HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result)
00870 {
00871     Variant varCopy;    // VT_BYREFだと困るのでコピー用
00872
00873     //2003-02-21 鬼
00874     switch(ID)
00875     {
00876     case F_GETFILENAME:
00877         {
00878             const TCHAR* FileName = View->m_pcEditDoc->GetFilePath();
00879             SysString S(FileName, _tcslen(FileName));
00880             Wrap(&Result)->Receive(S);
00881         }
00882         return true;
00883     case F_GETSELECTED:
00884         {
00885             if(View->GetSelectionInfo().IsTextSelected())
00886             {
00887                 CNativeW cMem;
00888                 if(!View->GetSelectedData(&cMem, FALSE, NULL, FALSE, FALSE)) return false;
00889                 SysString S(cMem.GetStringPtr(), cMem.GetStringLength());
00890                 Wrap(&Result)->Receive(S);
00891             }
00892             else
00893             {
00894                 Result.vt = VT_BSTR;
00895                 Result.bstrVal = SysAllocString(L"");
00896             }
00897         }
00898         return true;
00899     case F_EXPANDPARAMETER:
00900         // 2003.02.24 Moca
00901         {
00902             if(ArgSize != 1) return false;
00903             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_BSTR) != S_OK) return false; // VT_BSTRとして解釈
00904             //void ExpandParameter(const char* pszSource, char* pszBuffer, int nBufferLen);
00905             //pszSourceを展開して、pszBufferにコピー
00906             wchar_t *Source;
00907             int SourceLength;
00908             Wrap(&varCopy.Data.bstrVal)->GetW(&Source, &SourceLength);
00909             wchar_t Buffer[2048];
00910             View->m_pcEditDoc->ExpandParameter(Source, Buffer, 2047);
00911             delete[] Source;
00912             SysString S(Buffer, wcslen(Buffer));
00913             Wrap(&Result)->Receive(S);
00914         }
00915         return true;
00916     case F_GETLINESTR:
00917         //  2003.06.01 Moca マクロ追加
00918         {
00919             if( ArgSize != 1 ) return false;
00920             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00921             if( -1 < varCopy.Data.lVal ){
00922                 const wchar_t *Buffer;
00923                 CLogicInt nLength;
00924                 CLogicInt nLine;
00925                 if( 0 == varCopy.Data.lVal ){
00926                     nLine = View->GetCaret().GetCaretLogicPos().GetY2();
00927                 }else{
00928                     nLine = CLogicInt(varCopy.Data.lVal - 1);
00929                 }
00930                 Buffer = View->m_pcEditDoc->m_cDocLineMgr.GetLineStr( nLine, &nLength );
00931                 if( Buffer != NULL ){
00932                     SysString S( Buffer, nLength );
00933                     Wrap( &Result )->Receive( S );
00934                 }else{
00935                     Result.vt = VT_BSTR;
00936                     Result.bstrVal = SysAllocString(L"");
00937                 }
00938             }else{
00939                 return false;
00940             }
00941         }
00942         return true;
00943     case F_GETLINECOUNT:
00944         //  2003.06.01 Moca マクロ追加
00945         {
00946             if( ArgSize != 1 ) return false;
00947             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00948             if( 0 == varCopy.Data.lVal ){
00949                 int nLineCount;
00950                 nLineCount = View->m_pcEditDoc->m_cDocLineMgr.GetLineCount();
00951                 Wrap( &Result )->Receive( nLineCount );
00952             }else{
00953                 return false;
00954             }
00955         }
00956         return true;
00957     case F_CHGTABWIDTH:
00958         //  2004.03.16 zenryaku マクロ追加
00959         {
00960             if( ArgSize != 1 ) return false;
00961             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00962             Wrap( &Result )->Receive( (Int)View->m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00963             View->m_pcEditDoc->m_pcEditWnd->ChangeLayoutParam(
00964                 false,
00965                 CLayoutInt(varCopy.Data.iVal),
00966                 View->m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas()
00967             );
00968         }
00969         return true;
00970     case F_ISTEXTSELECTED:
00971         //  2005.07.30 maru マクロ追加
00972         {
00973             if(View->GetSelectionInfo().IsTextSelected()) {
00974                 if(View->GetSelectionInfo().IsBoxSelecting()) {
00975                     Wrap( &Result )->Receive( 2 );  //矩形選択中
00976                 } else {
00977                     Wrap( &Result )->Receive( 1 );  //選択中
00978                 }
00979             } else {
00980                 Wrap( &Result )->Receive( 0 );      //非選択中
00981             }
00982         }
00983         return true;
00984     case F_GETSELLINEFROM:
00985         //  2005.07.30 maru マクロ追加
00986         {
00987             Wrap( &Result )->Receive( (Int)View->GetSelectionInfo().m_sSelect.GetFrom().y + 1 );
00988         }
00989         return true;
00990     case F_GETSELCOLMFROM:
00991         //  2005.07.30 maru マクロ追加
00992         {
00993             Wrap( &Result )->Receive( (Int)View->GetSelectionInfo().m_sSelect.GetFrom().x + 1 );
00994         }
00995         return true;
00996     case F_GETSELLINETO:
00997         //  2005.07.30 maru マクロ追加
00998         {
00999             Wrap( &Result )->Receive( (Int)View->GetSelectionInfo().m_sSelect.GetTo().y + 1 );
01000         }
01001         return true;
01002     case F_GETSELCOLMTO:
01003         //  2005.07.30 maru マクロ追加
01004         {
01005             Wrap( &Result )->Receive( (Int)View->GetSelectionInfo().m_sSelect.GetTo().x + 1);
01006         }
01007         return true;
01008     case F_ISINSMODE:
01009         //  2005.07.30 maru マクロ追加
01010         {
01011             Wrap( &Result )->Receive(View->IsInsMode() /* Oct. 2, 2005 genta */);
01012         }
01013         return true;
01014     case F_GETCHARCODE:
01015         //  2005.07.31 maru マクロ追加
01016         {
01017             Wrap( &Result )->Receive(View->m_pcEditDoc->m_nCharCode);
01018         }
01019         return true;
01020     case F_GETLINECODE:
01021         //  2005.08.04 maru マクロ追加
01022         {
01023             switch( View->m_pcEditDoc->GetNewLineCode() ){
01024             case EOL_CRLF:
01025                 Wrap( &Result )->Receive( 0 );
01026                 break;
01027             case EOL_CR:
01028                 Wrap( &Result )->Receive( 1 );
01029                 break;
01030             case EOL_LF:
01031                 Wrap( &Result )->Receive( 2 );
01032                 break;
01033             }
01034         }
01035         return true;
01036     case F_ISPOSSIBLEUNDO:
01037         //  2005.08.04 maru マクロ追加
01038         {
01039             Wrap( &Result )->Receive( View->m_pcEditDoc->IsEnableUndo() );
01040         }
01041         return true;
01042     case F_ISPOSSIBLEREDO:
01043         //  2005.08.04 maru マクロ追加
01044         {
01045             Wrap( &Result )->Receive( View->m_pcEditDoc->IsEnableRedo() );
01046         }
01047         return true;
01048     default:
01049         return false;
01050     }
01051 }
01052
01053 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacro.h

sakura_core

CMacro.h

キーボードマクロ [詳細]

#include <windows.h>
#include <objidl.h>
#include "Funccode.h"

CMacro.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMacro
キーボードマクロの1コマンド [詳細]
struct | CMacro::CMacroParam

説明

キーボードマクロ

CMacroのインスタンスひとつが、1コマンドになる。

作者:
Norio Nakatani

CMacro.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacro.h ソースファイル

sakura_core

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 class CTextOutputStream;
00019
00020 #ifndef _CMACRO_H_
00021 #define _CMACRO_H_
00022
00023 #include <windows.h>
00024 #include <objidl.h>  // VARIANT等
00025 #include "Funccode.h"
00026
00027 class CEditView;
00028
00044 class CMacro
00045 {
00046 public:
00047     /*
00048     ||  Constructors
00049     */
00050     CMacro( EFunctionCode nFuncID );    //  機能IDを指定して初期化
00051     ~CMacro();
00052
00053     void SetNext(CMacro* pNext){ m_pNext = pNext; };
00054     CMacro* GetNext(){ return m_pNext;};
00055     void Exec( CEditView* pcEditView ) const; //2007.09.30 kobake const追加
00056     void Save( HINSTANCE hInstance, CTextOutputStream& out ) const; //2007.09.30 kobake const追加
00057
00058     void AddLParam( LPARAM lParam, const CEditView* pcEditView  );  //@@@ 2002.2.2 YAZAKI pcEditViewも渡す
00059     void AddStringParam( const WCHAR* lParam );
00060     void AddStringParam( const ACHAR* lParam ){ return AddStringParam(to_wchar(lParam)); }
00061     void AddIntParam( const int lParam );
00062
00063     static void HandleCommand( CEditView* pcEditView, const EFunctionCode Index,    const WCHAR* Argument[], const int ArgSize );
00064     static bool HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result);
00065 #if 0
00066     /*
00067     ||  Attributes & Operations
00068     */
00069     static char* GetFuncInfoByID( HINSTANCE , int , char* , char* );    /* 機能ID→関数名，機能名日本語 */
00070     static int GetFuncInfoByName( HINSTANCE , const char* , char* );    /* 関数名→機能ID，機能名日本語 */
00071     static BOOL CanFuncIsKeyMacro( int );   /* キーマクロに記録可能な機能かどうかを調べる */
00072 #endif
00073
00074 protected:
00075     struct CMacroParam{
00076         WCHAR*          m_pData;
00077         CMacroParam*    m_pNext;
00078     };
00079
00080     /*
00081     ||  実装ヘルパ関数
00082     */
00083     EFunctionCode   m_nFuncID;      //  機能ID
00084     CMacroParam*    m_pParamTop;    //  パラメータ
00085     CMacroParam*    m_pParamBot;
00086     CMacro*         m_pNext;        //  次のマクロへのポインタ
00087 };
00088
00089
00090
00092 #endif /* _CMACRO_H_ */
00093
00094 /*[EOF]*/
00095
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroFactory.cpp

sakura_core

CMacroFactory.cpp

マクロ種別管理 [詳細]

#include "stdafx.h"
#include "CMacroFactory.h"
#include <algorithm>
#include "ctype.h"
#include "debug.h"

CMacroFactory.cppのインクルード依存関係図

ソースコードを見る。

変数

static const TCHAR NULSTR [] = _T("")

説明

マクロ種別管理

作者:
genta
日付:
2002.4.29

CMacroFactory.cpp で定義されています。

変数

const TCHAR NULSTR[] = _T("") [static]

CMacroFactory.cpp の 37 行で定義されています。

参照元 CMacroFactory::Ext2Key().

Sakura-Editorに対してSat Nov 17 20:26:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroFactory.cpp ソースファイル

sakura_core

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 TCHAR NULSTR[] = _T("");
00038
00039 CMacroFactory::CMacroFactory()
00040 {}
00041
00051 std::tstring CMacroFactory::Ext2Key(const TCHAR *ext)
00052 {
00053     if( ext == NULL ){
00054         ext = NULSTR;
00055     }
00056
00057     std::tstring key = ext;
00058     std::transform( key.begin(), key.end(), key.begin(), _totlower);
00059
00060     return key;
00061 }
00062
00075 bool CMacroFactory::RegisterCreator( Creator f )
00076 {
00077     if( f == NULL ){
00078         return false;
00079     }
00080
00081     m_mMacroCreators.push_back( f );
00082     return true;
00083 }
00084
00090 bool CMacroFactory::Unregister( Creator f )
00091 {
00092     //  Creator Listからの削除
00093     MacroEngineRep::iterator c_it = m_mMacroCreators.begin();
00094     while( c_it != m_mMacroCreators.end() ){
00095         if( *c_it == f ){
00096             MacroEngineRep::iterator tmp_it;
00097
00098             //  いきなり削除するとiteratorが無効になるので，
00099             //  iteratorを1つ進めてから現在位置を削除する．
00100             tmp_it = c_it++;
00101             m_mMacroCreators.erase( tmp_it );
00102             //  重複登録されている場合を考慮して，
00103             //  1つ見つかっても最後までチェックする
00104         }
00105         else {
00106             ++ c_it;
00107         }
00108     }
00109
00110     return true;
00111 }
00112
00113 /*
00114     Object Factory
00115
00116     登録されたFactory Objectを順に呼び出して、
00117     Objectが得られたらそれを返す。
00118
00119     @pararm ext [in] 拡張子
00120     @return Macroオブジェクト。適切なものが見つからなければNULL。
00121 */
00122 CMacroManagerBase* CMacroFactory::Create(const TCHAR* ext)
00123 {
00124     std::tstring key = Ext2Key( ext );
00125
00126     //  Creatorを順に試す
00127     for( MacroEngineRep::iterator c_it = m_mMacroCreators.begin();
00128         c_it != m_mMacroCreators.end(); ++ c_it ){
00129         CMacroManagerBase* pobj = (*c_it)(key.c_str());
00130         if( pobj != NULL ){
00131             DBPRINT_A( "CMacroFactory::Create/ Answered for (%ls)\n", key.c_str() );
00132             return pobj;
00133         }
00134     }
00135
00136     return NULL;
00137 }
00138
00144 CMacroFactory* CMacroFactory::Instance(void)
00145 {
00146     static CMacroFactory factory;
00147     return &factory;
00148 }
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroFactory.h

sakura_core

CMacroFactory.h

マクロ種別管理 [詳細]

#include <map>
#include <list>
#include <string>

CMacroFactory.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMacroFactory
マクロHandler生成クラス [詳細]

説明

マクロ種別管理

作者:
genta
日付:
2002.4.29

CMacroFactory.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroFactory.h ソースファイル

sakura_core

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 TCHAR*);
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 TCHAR* ext);
00068
00069     static CMacroFactory* Instance();
00070
00071 private:
00072     CMacroFactory();
00073     std::tstring Ext2Key(const TCHAR *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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroManagerBase.cpp

sakura_core

CMacroManagerBase.cpp

マクロエンジン [詳細]

#include "stdafx.h"
#include "CMacroManagerBase.h"

CMacroManagerBase.cppのインクルード依存関係図

ソースコードを見る。

説明

マクロエンジン

作者:
genta
日付:
2002.4.29

CMacroManagerBase.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroManagerBase.cpp ソースファイル

sakura_core

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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroManagerBase.h

sakura_core

CMacroManagerBase.h

マクロエンジン [詳細]

#include <windows.h>

CMacroManagerBase.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMacroManagerBase
マクロを処理するエンジン部分の基底クラス [詳細]

説明

マクロエンジン

作者:
genta
日付:
2002.4.29

CMacroManagerBase.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMacroManagerBase.h ソースファイル

sakura_core

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 TCHAR* 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 Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainStatusBar.cpp

sakura_core

CMainStatusBar.cpp

#include "stdafx.h"
#include "CMainStatusBar.h"
#include "CEditWnd.h"
#include "CEditApp.h"

CMainStatusBar.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainStatusBar.cpp ソースファイル

sakura_core

CMainStatusBar.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMainStatusBar.h"
00003 #include "CEditWnd.h"
00004 #include "CEditApp.h"
00005
00006 CMainStatusBar::CMainStatusBar(CEditWnd* pOwner)
00007 : m_pOwner(pOwner)
00008 , m_hwndStatusBar( NULL )
00009 , m_hwndProgressBar( NULL )
00010 {
00011 }
00012
00013
00014 //  キーワード：ステータスバー順序
00015 /* ステータスバー作成 */
00016 void CMainStatusBar::CreateStatusBar( void )
00017 {
00018     if( m_hwndStatusBar )return;
00019
00020     /* ステータスバー */
00021     m_hwndStatusBar = ::CreateStatusWindow(
00022         WS_CHILD/* | WS_VISIBLE*/ | WS_EX_RIGHT | SBARS_SIZEGRIP,   // 2007.03.08 ryoji WS_VISIBLE 除去
00023         _T(""),
00024         m_pOwner->GetHwnd(),
00025         IDW_STATUSBAR
00026     );
00027
00028     /* プログレスバー */
00029     m_hwndProgressBar = ::CreateWindowEx(
00030         WS_EX_TOOLWINDOW,
00031         PROGRESS_CLASS,
00032         NULL,
00033         WS_CHILD /*|  WS_VISIBLE*/,
00034         3,
00035         5,
00036         150,
00037         13,
00038         m_hwndStatusBar,
00039         NULL,
00040         CEditApp::Instance()->GetAppInstance(),
00041         0
00042     );
00043
00044     if( NULL != m_pOwner->m_CFuncKeyWnd.GetHwnd() ){
00045         m_pOwner->m_CFuncKeyWnd.SizeBox_ONOFF( FALSE );
00046     }
00047
00048     //スプリッターの、サイズボックスの位置を変更
00049     m_pOwner->m_cSplitterWnd.DoSplit( -1, -1);
00050 }
00051
00052
00053 /* ステータスバー破棄 */
00054 void CMainStatusBar::DestroyStatusBar( void )
00055 {
00056     if( NULL != m_hwndProgressBar ){
00057         ::DestroyWindow( m_hwndProgressBar );
00058         m_hwndProgressBar = NULL;
00059     }
00060     ::DestroyWindow( m_hwndStatusBar );
00061     m_hwndStatusBar = NULL;
00062
00063     if( NULL != m_pOwner->m_CFuncKeyWnd.GetHwnd() ){
00064         BOOL bSizeBox;
00065         if( GetDllShareData().m_Common.m_sWindow.m_nFUNCKEYWND_Place == 0 ){    /* ファンクションキー表示位置／0:上 1:下 */
00066             /* サイズボックスの表示／非表示切り替え */
00067             bSizeBox = FALSE;
00068         }
00069         else{
00070             bSizeBox = TRUE;
00071             /* ステータスパーを表示している場合はサイズボックスを表示しない */
00072             if( NULL != m_hwndStatusBar ){
00073                 bSizeBox = FALSE;
00074             }
00075         }
00076         m_pOwner->m_CFuncKeyWnd.SizeBox_ONOFF( bSizeBox );
00077     }
00078     //スプリッターの、サイズボックスの位置を変更
00079     m_pOwner->m_cSplitterWnd.DoSplit( -1, -1 );
00080
00081     return;
00082 }
00083
00084
00099 void CMainStatusBar::SendStatusMessage2( const TCHAR* msg )
00100 {
00101     if( NULL != m_hwndStatusBar ){
00102         // ステータスバーへ
00103         StatusBar_SetText( m_hwndStatusBar,0 | SBT_NOBORDERS,msg );
00104     }
00105 }
00106
00107
00108 void CMainStatusBar::SetStatusText(int nIndex, int nOption, const TCHAR* pszText)
00109 {
00110     StatusBar_SetText( m_hwndStatusBar, nIndex | nOption, pszText );
00111 }
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainStatusBar.h

sakura_core

CMainStatusBar.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMainStatusBar

Sakura-Editorに対してSat Nov 17 20:26:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainStatusBar.h ソースファイル

sakura_core

CMainStatusBar.h

説明を見る。
00001 #pragma once
00002
00003 class CEditWnd;
00004
00005 class CMainStatusBar{
00006 public:
00007     CMainStatusBar(CEditWnd* pOwner);
00008
00009     void CreateStatusBar( void );       // ステータスバー作成
00010     void DestroyStatusBar( void );      /* ステータスバー破棄 */
00011     void SendStatusMessage2( const TCHAR* msg );    //  Jul. 9, 2005 genta メニューバー右端には出したくない長めのメッセージを出す
00019     bool SendStatusMessage2IsEffective(void) const {
00020         return NULL != m_hwndStatusBar;
00021     }
00022
00023     //取得
00024     HWND GetStatusHwnd() const{ return m_hwndStatusBar; }
00025     HWND GetProgressHwnd() const{ return m_hwndProgressBar; }
00026
00027     //設定
00028     void SetStatusText(int nIndex, int nOption, const TCHAR* pszText);
00029
00030 private:
00031     CEditWnd*   m_pOwner;
00032     HWND        m_hwndStatusBar;
00033     HWND        m_hwndProgressBar;
00034 };
00035
Sakura-Editorに対してSat Nov 17 20:24:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainToolBar.cpp

sakura_core

CMainToolBar.cpp

#include "stdafx.h"
#include "CMainToolBar.h"
#include "CEditWnd.h"
#include "util/os.h"
#include "CEditApp.h"
#include "util/tchar_receive.h"

CMainToolBar.cppのインクルード依存関係図

ソースコードを見る。

関数

static LRESULT CALLBACK | ToolBarWndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

変数

static WNDPROC | g_pOldToolBarWndProc

関数

static LRESULT CALLBACK ToolBarWndProc | ( | HWND | hWnd,
 |  | UINT | msg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

CMainToolBar.cpp の 59 行で定義されています。

参照先 g_pOldToolBarWndProc, GWLP_WNDPROC, LONG_PTR, と SetWindowLongPtr.

参照元 CMainToolBar::CreateToolBar().

変数

WNDPROC g_pOldToolBarWndProc [static]

サブクラス化したツールバーのウィンドウプロシージャ

作者:
ryoji
日付:
2006.09.06 ryoji

CMainToolBar.cpp の 57 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), と ToolBarWndProc().

Sakura-Editorに対してSat Nov 17 20:26:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainToolBar.cpp ソースファイル

sakura_core

CMainToolBar.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMainToolBar.h"
00003 #include "CEditWnd.h"
00004 #include "util/os.h"
00005 #include "CEditApp.h"
00006 #include "util/tchar_receive.h"
00007
00008 CMainToolBar::CMainToolBar(CEditWnd* pOwner)
00009 : m_pOwner(pOwner)
00010 , m_fontSearchBox(NULL)
00011 , m_hwndReBar(NULL)
00012 , m_hwndToolBar(NULL)
00013 , m_hwndSearchBox(NULL)
00014 {
00015 }
00016
00018 void CMainToolBar::ProcSearchBox( MSG *msg )
00019 {
00020     if( msg->message == WM_KEYDOWN /* && ::GetParent( msg->hwnd ) == m_hwndSearchBox */ )
00021     {
00022         if( msg->wParam == VK_RETURN )  //リターンキー
00023         {
00024             //検索キーワードを取得
00025             wchar_t szText[_MAX_PATH];
00026             wmemset( szText, 0, _countof(szText) );
00027             ::SendMessage( m_hwndSearchBox, WM_GETTEXT, _MAX_PATH - 1, (LPARAM)szText );
00028             if( szText[0] ) //キー文字列がある
00029             {
00030                 //検索キーを登録
00031                 CShareData::getInstance()->AddToSearchKeyArr( szText );
00032
00033                 //::SetFocus( m_hWnd ); //先にフォーカスを移動しておかないとキャレットが消える
00034                 ::SetFocus( m_pOwner->GetActiveView().m_hWnd );
00035
00036                 // 検索開始時のカーソル位置登録条件を変更 02/07/28 ai start
00037                 m_pOwner->GetActiveView().m_ptSrchStartPos_PHY = m_pOwner->GetActiveView().GetCaret().GetCaretLogicPos();
00038                 // 02/07/28 ai end
00039
00040                 //次を検索
00041                 m_pOwner->OnCommand( (WORD)0 /*メニュー*/, (WORD)F_SEARCH_NEXT, (HWND)0 );
00042             }
00043         }
00044         else if( msg->wParam == VK_TAB )    //タブキー
00045         {
00046             //フォーカスを移動
00047             //  2004.10.27 MIK IME表示位置のずれ修正
00048             ::SetFocus( m_pOwner->GetHwnd()  );
00049         }
00050     }
00051 }
00052
00057 static WNDPROC g_pOldToolBarWndProc;    // ツールバーの本来のウィンドウプロシージャ
00058
00059 static LRESULT CALLBACK ToolBarWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
00060 {
00061     switch( msg )
00062     {
00063     // WinXP Visual Style のときにツールバー上でのマウス左右ボタン同時押しで無応答になる
00064     //（マウスをキャプチャーしたまま放さない） 問題を回避するために右ボタンを無視する
00065     case WM_RBUTTONDOWN:
00066     case WM_RBUTTONUP:
00067         return 0L;              // 右ボタンの UP/DOWN は本来のウィンドウプロシージャに渡さない
00068
00069     case WM_DESTROY:
00070         // サブクラス化解除
00071 		::SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)g_pOldToolBarWndProc );
00072         break;
00073     }
00074     return ::CallWindowProc( g_pOldToolBarWndProc, hWnd, msg, wParam, lParam );
00075 }
00076
00077
00078 /* ツールバー作成
00079     @date @@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00080     @date 2005.08.29 aroka ツールバーの折り返し
00081     @date 2006.06.17 ryoji ビジュアルスタイルが有効の場合はツールバーを Rebar に入れてサイズ変更時のちらつきを無くす
00082 */
00083 void CMainToolBar::CreateToolBar( void )
00084 {
00085     if( m_hwndToolBar )return;
00086
00087     REBARINFO       rbi;
00088     REBARBANDINFO   rbBand;
00089     int             nFlag;
00090     TBBUTTON        tbb;
00091     int             i;
00092     int             nIdx;
00093     UINT            uToolType;
00094     nFlag = 0;
00095
00096     // 2006.06.17 ryoji
00097     // Rebar ウィンドウの作成
00098     if( IsVisualStyle() ){  // ビジュアルスタイル有効
00099         m_hwndReBar = ::CreateWindowEx(
00100             WS_EX_TOOLWINDOW,
00101             REBARCLASSNAME, //レバーコントロール
00102             NULL,
00103             WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | // 2007.03.08 ryoji WS_VISIBLE 除去
00104             RBS_BANDBORDERS | CCS_NODIVIDER,
00105             0, 0, 0, 0,
00106             m_pOwner->GetHwnd(),
00107             NULL,
00108             CEditApp::Instance()->GetAppInstance(),
00109             NULL
00110         );
00111
00112         if( NULL == m_hwndReBar ){
00113 			::MYMESSAGEBOX( m_pOwner->GetHwnd(), MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00114                 _T("Rebar の作成に失敗しました。")
00115             );
00116             return;
00117         }
00118
00119         if( GetDllShareData().m_Common.m_sToolBar.m_bToolBarIsFlat ){   /* フラットツールバーにする／しない */
00120             PreventVisualStyle( m_hwndReBar );  // ビジュアルスタイル非適用のフラットな Rebar にする
00121         }
00122
00123         ::ZeroMemory(&rbi, sizeof(rbi));
00124         rbi.cbSize = sizeof(rbi);
00125 		::SendMessageAny(m_hwndReBar, RB_SETBARINFO, 0, (LPARAM)&rbi);
00126
00127         nFlag = CCS_NORESIZE | CCS_NODIVIDER | CCS_NOPARENTALIGN | TBSTYLE_FLAT;    // ツールバーへの追加スタイル
00128     }
00129
00130     /* ツールバーウィンドウの作成 */
00131     m_hwndToolBar = ::CreateWindowEx(
00132         0,
00133         TOOLBARCLASSNAME,
00134         NULL,
00135         WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPCHILDREN | /*WS_BORDER | */  // 2006.06.17 ryoji WS_CLIPCHILDREN 追加  // 2007.03.08 ryoji WS_VISIBLE 除去
00136 /*      WS_EX_WINDOWEDGE| */
00137         TBSTYLE_TOOLTIPS |
00138 //      TBSTYLE_WRAPABLE |
00139 //      TBSTYLE_ALTDRAG |
00140 //      CCS_ADJUSTABLE |
00141         nFlag,
00142         0, 0,
00143         0, 0,
00144         m_pOwner->GetHwnd(),
00145         (HMENU)ID_TOOLBAR,
00146         CEditApp::Instance()->GetAppInstance(),
00147         NULL
00148     );
00149     if( NULL == m_hwndToolBar ){
00150         if( GetDllShareData().m_Common.m_sToolBar.m_bToolBarIsFlat ){   /* フラットツールバーにする／しない */
00151             GetDllShareData().m_Common.m_sToolBar.m_bToolBarIsFlat = FALSE;
00152         }
00153 		::MYMESSAGEBOX( m_pOwner->GetHwnd(), MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00154             _T("ツールバーの作成に失敗しました。")
00155         );
00156         DestroyToolBar();   // 2006.06.17 ryoji
00157     }
00158     else{
00159         // 2006.09.06 ryoji ツールバーをサブクラス化する
00160         g_pOldToolBarWndProc = (WNDPROC)::SetWindowLongPtr(
00161             m_hwndToolBar,
00162             GWLP_WNDPROC,
00163             (LONG_PTR)ToolBarWndProc
00164         );
00165
00166 		::SendMessageAny( m_hwndToolBar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0 );
00167         //  Oct. 12, 2000 genta
00168         //  既に用意されているImage Listをアイコンとして登録
00169         CEditApp::Instance()->GetIcons().SetToolBarImages( m_hwndToolBar );
00170         /* ツールバーにボタンを追加 */
00171         int count = 0;  //@@@ 2002.06.15 MIK
00172         int nToolBarButtonNum = 0;// 2005/8/29 aroka
00173         //  From Here 2005.08.29 aroka
00174         // はじめにツールバー構造体の配列を作っておく
00175         TBBUTTON *pTbbArr = new TBBUTTON[GetDllShareData().m_Common.m_sToolBar.m_nToolBarButtonNum];
00176         for( i = 0; i < GetDllShareData().m_Common.m_sToolBar.m_nToolBarButtonNum; ++i ){
00177             nIdx = GetDllShareData().m_Common.m_sToolBar.m_nToolBarButtonIdxArr[i];
00178             pTbbArr[nToolBarButtonNum] = m_pOwner->GetMenuDrawer().getButton(nIdx);
00179             // セパレータが続くときはひとつにまとめる
00180             // 折り返しボタンもTBSTYLE_SEP属性を持っているので
00181             // 折り返しの前のセパレータは全て削除される．
00182             if( (pTbbArr[nToolBarButtonNum].fsStyle & TBSTYLE_SEP) && (nToolBarButtonNum!=0)){
00183                 if( (pTbbArr[nToolBarButtonNum-1].fsStyle & TBSTYLE_SEP) ){
00184                     pTbbArr[nToolBarButtonNum-1] = pTbbArr[nToolBarButtonNum];
00185                     nToolBarButtonNum--;
00186                 }
00187             }
00188             // 仮想折返しボタンがきたら直前のボタンに折返し属性を付ける
00189             if( pTbbArr[nToolBarButtonNum].fsState & TBSTATE_WRAP ){
00190                 if( nToolBarButtonNum!=0 ){
00191                     pTbbArr[nToolBarButtonNum-1].fsState |= TBSTATE_WRAP;
00192                 }
00193                 continue;
00194             }
00195             nToolBarButtonNum++;
00196         }
00197         //  To Here 2005.08.29 aroka
00198
00199         for( i = 0; i < nToolBarButtonNum; ++i ){
00200             tbb = pTbbArr[i];
00201
00202             //@@@ 2002.06.15 MIK start
00203             switch( tbb.fsStyle )
00204             {
00205             case TBSTYLE_DROPDOWN:  //ドロップダウン
00206                 //拡張スタイルに設定
00207 				::SendMessageAny( m_hwndToolBar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS );
00208                 ::SendMessage( m_hwndToolBar, TB_ADDBUTTONSW, (WPARAM)1, (LPARAM)&tbb );
00209                 count++;
00210                 break;
00211
00212             case TBSTYLE_COMBOBOX:  //コンボボックス
00213                 {
00214                     RECT            rc;
00215                     TBBUTTONINFO    tbi;
00216                     TBBUTTON        my_tbb;
00217                     LOGFONT     lf;
00218                     int             my_i;
00219
00220                     switch( tbb.idCommand )
00221                     {
00222                     case F_SEARCH_BOX:
00223                         if( m_hwndSearchBox )
00224                         {
00225                             break;
00226                         }
00227
00228                         //セパレータ作る
00229                         memset_raw( &my_tbb, 0, sizeof(my_tbb) );
00230                         my_tbb.fsStyle   = TBSTYLE_BUTTON;  //ボタンにしないと描画が乱れる 2005/8/29 aroka
00231                         my_tbb.idCommand = tbb.idCommand;   //同じIDにしておく
00232                         if( tbb.fsState & TBSTATE_WRAP ){   //折り返し 2005/8/29 aroka
00233                             my_tbb.fsState |=  TBSTATE_WRAP;
00234                         }
00235                         ::SendMessage( m_hwndToolBar, TB_ADDBUTTONSW, (WPARAM)1, (LPARAM)&my_tbb );
00236                         count++;
00237
00238                         //サイズを設定する
00239                         tbi.cbSize = sizeof(tbi);
00240                         tbi.dwMask = TBIF_SIZE;
00241                         tbi.cx     = 160;   //ボックスの幅
00242                         ::SendMessage( m_hwndToolBar, TB_SETBUTTONINFO, (WPARAM)(tbb.idCommand), (LPARAM)&tbi );
00243
00244                         //サイズを取得する
00245                         rc.right = rc.left = rc.top = rc.bottom = 0;
00246 						::SendMessageAny( m_hwndToolBar, TB_GETITEMRECT, (WPARAM)(count-1), (LPARAM)&rc );
00247
00248                         //コンボボックスを作る
00249                         //  Mar. 8, 2003 genta 検索ボックスを1ドット下にずらした
00250                         m_hwndSearchBox = CreateWindow( _T("COMBOBOX"), _T("Combo"),
00251                                 WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN
00252                                 /*| CBS_SORT*/ | CBS_AUTOHSCROLL /*| CBS_DISABLENOSCROLL*/,
00253                                 rc.left, rc.top + 1, rc.right - rc.left, (rc.bottom - rc.top) * 10,
00254                                 m_hwndToolBar, (HMENU)(INT_PTR)tbb.idCommand, CEditApp::Instance()->GetAppInstance(), NULL );
00255                         if( m_hwndSearchBox )
00256                         {
00257                             m_pOwner->SetCurrentFocus(0);
00258
00259                             memset_raw( &lf, 0, sizeof(lf) );
00260                             lf.lfHeight         = 12; // Jan. 14, 2003 genta ダイアログにあわせてちょっと小さく
00261                             lf.lfWidth          = 0;
00262                             lf.lfEscapement     = 0;
00263                             lf.lfOrientation    = 0;
00264                             lf.lfWeight         = FW_NORMAL;
00265                             lf.lfItalic         = FALSE;
00266                             lf.lfUnderline      = FALSE;
00267                             lf.lfStrikeOut      = FALSE;
00268                             lf.lfCharSet        = SHIFTJIS_CHARSET;
00269                             lf.lfOutPrecision   = OUT_DEFAULT_PRECIS;
00270                             lf.lfClipPrecision  = CLIP_DEFAULT_PRECIS;
00271                             lf.lfQuality        = DEFAULT_QUALITY;
00272                             lf.lfPitchAndFamily = FF_MODERN | DEFAULT_PITCH;
00273                             //wcscpy( lf.lfFaceName, _T("ＭＳ ゴシック") );
00274                             _tcscpy( lf.lfFaceName, _T("ＭＳ Ｐゴシック") );
00275                             m_fontSearchBox = ::CreateFontIndirect( &lf );
00276                             if( m_fontSearchBox )
00277                             {
00278 								::SendMessageAny( m_hwndSearchBox, WM_SETFONT, (WPARAM)m_fontSearchBox, MAKELONG (TRUE, 0) );
00279                             }
00280
00281                             //入力長制限
00282                             ::SendMessage( m_hwndSearchBox, CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00283
00284                             //検索ボックスを更新
00285 							::SendMessageAny( m_hwndSearchBox, CB_RESETCONTENT, 0, 0 );
00286                             for( my_i = 0; my_i < GetDllShareData().m_aSearchKeys.size(); my_i++ )
00287                             {
00288                                 Combo_AddString( m_hwndSearchBox, GetDllShareData().m_aSearchKeys[my_i] );
00289                             }
00290 							::SendMessageAny( m_hwndSearchBox, CB_SETCURSEL, 0, 0 );
00291                         }
00292                         break;
00293
00294                     default:
00295                         //width = 0;
00296                         //my_hwnd = NULL;
00297                         //my_font = NULL;
00298                         break;
00299                     }
00300                 }
00301                 break;
00302
00303             case TBSTYLE_BUTTON:    //ボタン
00304             case TBSTYLE_SEP:       //セパレータ
00305             default:
00306                 ::SendMessage( m_hwndToolBar, TB_ADDBUTTONSW, (WPARAM)1, (LPARAM)&tbb );
00307                 count++;
00308                 break;
00309             }
00310             //@@@ 2002.06.15 MIK end
00311         }
00312         if( GetDllShareData().m_Common.m_sToolBar.m_bToolBarIsFlat ){   /* フラットツールバーにする／しない */
00313             uToolType = (UINT)::GetWindowLong(m_hwndToolBar, GWL_STYLE);
00314             uToolType |= (TBSTYLE_FLAT);
00315             ::SetWindowLong(m_hwndToolBar, GWL_STYLE, uToolType);
00316             ::InvalidateRect(m_hwndToolBar, NULL, TRUE);
00317         }
00318         delete []pTbbArr;// 2005/8/29 aroka
00319     }
00320
00321     // 2006.06.17 ryoji
00322     // ツールバーを Rebar に入れる
00323     if( m_hwndReBar && m_hwndToolBar ){
00324         // ツールバーの高さを取得する
00325         DWORD dwBtnSize = ::SendMessage( m_hwndToolBar, TB_GETBUTTONSIZE, 0, 0 );
00326         DWORD dwRows = ::SendMessage( m_hwndToolBar, TB_GETROWS, 0, 0 );
00327
00328         // バンド情報を設定する
00329         rbBand.cbSize = sizeof(rbBand);
00330         rbBand.fMask  = RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_SIZE;
00331         rbBand.fStyle = RBBS_CHILDEDGE;
00332         rbBand.hwndChild  = m_hwndToolBar;  // ツールバー
00333         rbBand.cxMinChild = 0;
00334         rbBand.cyMinChild = HIWORD(dwBtnSize) * dwRows;
00335         rbBand.cx         = 250;
00336
00337         // バンドを追加する
00338         ::SendMessage( m_hwndReBar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand );
00339         ::ShowWindow( m_hwndToolBar, SW_SHOW );
00340     }
00341
00342     return;
00343 }
00344
00345 void CMainToolBar::DestroyToolBar( void )
00346 {
00347     if( m_hwndToolBar )
00348     {
00349         if( m_hwndSearchBox )
00350         {
00351             if( m_fontSearchBox )
00352             {
00353                 ::DeleteObject( m_fontSearchBox );
00354                 m_fontSearchBox = NULL;
00355             }
00356
00357             ::DestroyWindow( m_hwndSearchBox );
00358             m_hwndSearchBox = NULL;
00359
00360             m_pOwner->SetCurrentFocus(0);
00361         }
00362
00363         ::DestroyWindow( m_hwndToolBar );
00364         m_hwndToolBar = NULL;
00365
00366         //if( m_cTabWnd.m_pOwner->GetHwnd() ) ::UpdateWindow( m_cTabWnd.m_pOwner->GetHwnd() );
00367         //if( m_CFuncKeyWnd.m_pOwner->GetHwnd() ) ::UpdateWindow( m_CFuncKeyWnd.m_pOwner->GetHwnd() );
00368     }
00369
00370     // 2006.06.17 ryoji Rebar を破棄する
00371     if( m_hwndReBar )
00372     {
00373         ::DestroyWindow( m_hwndReBar );
00374         m_hwndReBar = NULL;
00375     }
00376
00377     return;
00378 }
00379
00381 bool CMainToolBar::EatMessage(MSG* msg)
00382 {
00383     if( m_hwndSearchBox && ::IsDialogMessage( m_hwndSearchBox, msg ) ){ //検索コンボボックス
00384         ProcSearchBox( msg );
00385         return true;
00386     }
00387     return false;
00388 }
00389
00390
00403 LPARAM CMainToolBar::ToolBarOwnerDraw( LPNMCUSTOMDRAW pnmh )
00404 {
00405     switch( pnmh->dwDrawStage ){
00406     case CDDS_PREPAINT:
00407         //  描画開始前
00408         //  アイテムを自前で描画する旨を通知する
00409         return CDRF_NOTIFYITEMDRAW;
00410
00411     case CDDS_ITEMPREPAINT:
00412         //  面倒くさいので，枠はToolbarに描いてもらう
00413         //  アイコンが登録されていないので中身は何も描かれない
00414         return CDRF_NOTIFYPOSTPAINT;
00415
00416     case CDDS_ITEMPOSTPAINT:
00417         {
00418             //  描画
00419             //  pnmh->dwItemSpec はコマンド番号なので，アイコン番号に変更する必要がある]
00420             int nIndex = m_pOwner->GetMenuDrawer().FindIndexFromCommandId( pnmh->dwItemSpec );
00421             int nIconId = m_pOwner->GetMenuDrawer().GetIconId( nIndex );
00422
00423             //  もしもアイコンがなかったら
00424             if( nIconId < 0 ){
00425                 nIconId = 348; // なんとなく(i)アイコン
00426             }
00427
00428             int offset = ((pnmh->rc.bottom - pnmh->rc.top) - CEditApp::Instance()->GetIcons().cy()) / 2;        // アイテム矩形からの画像のオフセット  // 2007.03.25 ryoji
00429             int shift = pnmh->uItemState & ( CDIS_SELECTED | CDIS_CHECKED ) ? 1 : 0;    //  Aug. 30, 2003 genta ボタンを押されたらちょっと画像をずらす
00430             int color = pnmh->uItemState & CDIS_CHECKED ? COLOR_3DHILIGHT : COLOR_3DFACE;
00431
00432
00433             //  Sep. 6, 2003 genta 押下時は右だけでなく下にもずらす
00434             CEditApp::Instance()->GetIcons().Draw( nIconId, pnmh->hdc, pnmh->rc.left + offset + shift, pnmh->rc.top + offset + shift,
00435                 (pnmh->uItemState & CDIS_DISABLED ) ? ILD_MASK : ILD_NORMAL
00436             );
00437         }
00438         break;
00439     default:
00440         break;
00441     }
00442     return CDRF_DODEFAULT;
00443 }
00444
00445
00452 void CMainToolBar::OnToolbarTimer( void )
00453 {
00454     m_pOwner->IncrementTimerCount(10);
00455
00456     // 印刷プレビュー中なら、何もしない。
00457     if( m_pOwner->IsInPreviewMode() )return;
00458
00459     // ツールバーの状態更新
00460     if( m_hwndToolBar )
00461     {
00462         for( int i = 0; i < GetDllShareData().m_Common.m_sToolBar.m_nToolBarButtonNum; ++i )
00463         {
00464             TBBUTTON tbb = m_pOwner->GetMenuDrawer().getButton(
00465                 GetDllShareData().m_Common.m_sToolBar.m_nToolBarButtonIdxArr[i]
00466             );
00467
00468             // 機能が利用可能か調べる
00469 			::PostMessageAny(
00470                 m_hwndToolBar,
00471                 TB_ENABLEBUTTON,
00472                 tbb.idCommand,
00473                 MAKELONG( (IsFuncEnable( &m_pOwner->GetDocument(), &GetDllShareData(), tbb.idCommand ) ) , 0 )
00474             );
00475
00476             // 機能がチェック状態か調べる
00477 			::PostMessageAny(
00478                 m_hwndToolBar,
00479                 TB_CHECKBUTTON,
00480                 tbb.idCommand,
00481                 MAKELONG( IsFuncChecked( &m_pOwner->GetDocument(), &GetDllShareData(), tbb.idCommand ), 0 )
00482             );
00483         }
00484     }
00485 }
00486
00487 void CMainToolBar::AcceptSharedSearchKey()
00488 {
00489     if( m_hwndSearchBox )
00490     {
00491         int i;
00492 		::SendMessageAny( m_hwndSearchBox, CB_RESETCONTENT, 0, 0 );
00493         for( i = 0; i < GetDllShareData().m_aSearchKeys.size(); i++ )
00494         {
00495             Combo_AddString( m_hwndSearchBox, GetDllShareData().m_aSearchKeys[i] );
00496         }
00497 		::SendMessageAny( m_hwndSearchBox, CB_SETCURSEL, 0, 0 );
00498     }
00499 }
00500
00501 int CMainToolBar::GetSearchKey(wchar_t* pBuf, int nBufCount)
00502 {
00503     pBuf[0]=L'\0';
00504     return ::GetWindowText( m_hwndSearchBox, TcharReceiver<wchar_t>(pBuf,nBufCount), nBufCount );
00505     /*
00506     wmemset( szText, 0, _countof(szText) );
00507     ::SendMessage( m_hwndSearchBox, WM_GETTEXT, _MAX_PATH - 1, (LPARAM)szText );
00508     */
00509 }
00510
00511
00516 void CMainToolBar::SetFocusSearchBox( void ) const
00517 {
00518     if( m_hwndSearchBox ){
00519         ::SetFocus(m_hwndSearchBox);
00520     }
00521 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainToolBar.h

sakura_core

CMainToolBar.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMainToolBar

Sakura-Editorに対してSat Nov 17 20:26:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMainToolBar.h ソースファイル

sakura_core

CMainToolBar.h

説明を見る。
00001 #pragma once
00002
00003 class CEditWnd;
00004
00005 class CMainToolBar{
00006 public:
00007     CMainToolBar(CEditWnd* pOwner);
00008
00009     //作成・破棄
00010     void CreateToolBar( void );
00011     void DestroyToolBar( void );
00012
00013     //メッセージ
00014     bool EatMessage(MSG* msg);
00015     void ProcSearchBox( MSG* );
00016
00017     //イベント
00018     void OnToolbarTimer( void );
00019
00020     //描画
00021     LPARAM ToolBarOwnerDraw( LPNMCUSTOMDRAW pnmh );
00022
00023     //共有データとの同期
00024     void AcceptSharedSearchKey();
00025
00026     //取得
00027     HWND GetToolbarHwnd() const{ return m_hwndToolBar; }
00028     HWND GetRebarHwnd() const{ return m_hwndReBar; }
00029     HWND GetSearchHwnd() const{ return m_hwndSearchBox; }
00030     int GetSearchKey(wchar_t* pBuf, int nBufCount);
00031
00032     //操作
00033     void SetFocusSearchBox( void ) const;       /* ツールバー検索ボックスへフォーカスを移動 */  // 2006.06.04 yukihane
00034
00035 private:
00036     CEditWnd*   m_pOwner;
00037     HWND        m_hwndToolBar;
00038
00039     //子ウィンドウ
00040     HWND        m_hwndReBar;
00041     HWND        m_hwndSearchBox;
00042
00043     //フォント
00044     HFONT       m_fontSearchBox;
00045 };
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMarkMgr.cpp

sakura_core

CMarkMgr.cpp

現在行のマークを管理する [詳細]

#include "stdafx.h"
#include "global.h"
#include "CMarkMgr.h"

CMarkMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

現在行のマークを管理する

作者:
genta

CMarkMgr.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMarkMgr.cpp ソースファイル

sakura_core

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 Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMarkMgr.h

sakura_core

CMarkMgr.h

現在行のマークを管理する [詳細]

#include <vector>
#include <string>

CMarkMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMarkMgr
class | CMarkMgr::CMark
class | CAutoMarkMgr
移動履歴の管理クラス [詳細]

説明

現在行のマークを管理する

作者:
genta

CMarkMgr.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMarkMgr.h ソースファイル

sakura_core

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( const CLogicPoint& pt ) : m_ptLogic(pt) { }
00067
00068         int GetLine(void) const { return m_ptLogic.y; }
00069         int GetPos(void) const { return m_ptLogic.x; }
00070         void SetPosition(const CLogicPoint& pt) { m_ptLogic=pt; }
00071
00072         bool IsValid(void) const { return true; }
00073
00074         bool operator==(CMark &r) const { return m_ptLogic.y == r.m_ptLogic.y; }
00075         bool operator!=(CMark &r) const { return m_ptLogic.y != r.m_ptLogic.y; }
00076
00077     private:
00078         CLogicPoint m_ptLogic;
00079         /*
00080         int m_line;     //!<    該当行番号: 行番号は論理行で数える
00081         int m_pos;      //!<    該当桁位置
00082         */
00083     };
00084
00085     // GENERATE_FACTORY(CMark,CMarkFactory);    //  CMark用Factory class
00086
00087     //  型宣言
00088     typedef std::vector<CMark> CMarkChain;
00089     typedef std::vector<CMark>::const_iterator  CMarkIterator;
00090
00091     //  Interface
00092     //  constructor
00093     CMarkMgr() : m_nCurpos(0), m_nMaxitem(10){}
00094     // CMarkMgr(const CDocLineMgr *p) : doc(p) {}
00095
00096     int Count(void) const { return (int)m_cMarkChain.size(); }
00097     int GetMax(void) const { return m_nMaxitem; }
00098     void SetMax(int max);
00099
00100     virtual void Add(const CMark& m) = 0;
00101
00102     //  Apr. 1, 2001 genta
00103     virtual void Flush(void);
00104
00106     const CMark& GetCurrent(void) const { return m_cMarkChain[m_nCurpos]; }
00107
00108     //  有効性の確認
00109     bool  CheckCurrent(void) const;
00110     bool  CheckPrev(void) const;
00111     bool  CheckNext(void) const;
00112
00113     //  現在位置の移動
00114     bool NextValid(void);
00115     bool PrevValid(void);
00116
00117     const CMark& operator[](int index) const { return m_cMarkChain[index]; }
00118
00119     //  連続取得インターフェース
00120 //  CMarkIterator CurrentPos(void) const { return (CMarkIterator)m_cMarkChain.begin() + m_nCurpos; }
00121 //  CMarkIterator Begin(void) const { return (CMarkIterator)m_cMarkChain.begin(); }
00122 //  CMarkIterator End(void) const { return (CMarkIterator)m_cMarkChain.end(); }
00123
00124 protected:
00125     virtual void Expire(void) = 0;
00126
00127     // CMarkFactory m_factory;  //  Factory Class (マクロで生成される）
00128     CMarkChain m_cMarkChain;    //  マークデータ本体
00129     int m_nCurpos;  //  現在位置（番号）
00130
00131     int m_nMaxitem; //  保管可能アイテムの最大数
00132 private:
00133     //CMarkMgr( const CMarkMgr& );  //  Copy禁止
00134
00135 };
00136
00137 // ----------------------------------------------------
00143 class CAutoMarkMgr : public CMarkMgr{
00144 public:
00145     virtual void Add(const CMark& m);
00146     virtual void Expire(void);
00147 };
00148
00149 #endif
00150
00151
00152 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemory.cpp

sakura_core

CMemory.cpp

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <ctype.h>
#include <locale.h>
#include <limits.h>
#include "CMemory.h"
#include "CEol.h"
#include "charcode.h"
#include "my_icmp.h"
#include <vector>
#include "charset/CShiftJis.h"
#include <mbstring.h>
#include "global.h"
#include "debug.h"
#include "CRunningTimer.h"

ソースコードを見る。

説明

メモリバッファクラス

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

CMemory.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemory.cpp ソースファイル

sakura_core

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 <ctype.h>
00041 #include <locale.h>
00042 #include <limits.h>
00043 #include "CMemory.h"
00044 #include "CEol.h"// 2002/2/3 aroka
00045 #include "charcode.h"
00046 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00047 #include <vector>
00048 #include "charset/CShiftJis.h"
00049 #include <mbstring.h>
00050 #include "global.h"
00051 #include "debug.h"
00052 #include "CRunningTimer.h"
00053
00054
00055
00056
00057
00058
00059 /*///////////////////////////////////////////////////////////////////////////
00060 //
00061 //  CMemory::CMemory
00062 //  CMemory()
00063 //
00064 //  説明
00065 //      CMemoryクラス コンストラクタ
00066 //
00068 CMemory::CMemory()
00069 {
00070     m_nDataBufSize = 0;
00071     m_pData = NULL;
00072     m_nDataLen = 0;
00073     return;
00074 }
00075
00076
00077
00078 /*///////////////////////////////////////////////////////////////////////////
00079 //
00080 //  CMemory::CMemory
00081 //  CMemory( const char* pData, int nDataLen )
00082 //
00083 //  引数
00084 //    pData     格納データアドレス
00085 //    nDataLen  格納データの有効長
00086 //
00087 //  説明
00088 //      CMemoryクラス  コンストラクタ
00089 //
00090 //
00091 //  戻値
00092 //      なし
00093 //
00094 //  備考
00095 //      格納データにはNULLを含むことができる
00096 //
00098 CMemory::CMemory( const void* pData, int nDataLenBytes )
00099 {
00100     m_nDataBufSize = 0;
00101     m_pData = NULL;
00102     m_nDataLen = 0;
00103     SetRawData( pData, nDataLenBytes );
00104     return;
00105 }
00106
00107
00108 CMemory::~CMemory()
00109 {
00110     _Empty();
00111     return;
00112 }
00113
00114
00115
00116
00117
00118 //const CMemory& CMemory::operator = ( const char* pszStr )
00119 //{
00120 //  SetData( pszStr, strlen( pszStr ) );
00121 //  return *this;
00122 //}
00123
00124 /******
00125 const CMemory& CMemory::operator=( const char* pData, int nDataLen )
00126 {
00127     SetData( pData, nDataLen );
00128     return *this;
00129 }
00130 *******/
00131
00132 const CMemory& CMemory::operator = ( const CMemory& cMemory )
00133 {
00134     if( this != &cMemory ){
00135         SetRawData( cMemory );
00136     }
00137     return *this;
00138 }
00139
00140
00141
00142
00143
00144
00145
00146
00147 /*
00148 || バッファの最後にデータを追加する（protectメンバ
00149 */
00150 void CMemory::_AddData( const void* pData, int nDataLen )
00151 {
00152     if( NULL == m_pData ){
00153         return;
00154     }
00155     memcpy( &m_pData[m_nDataLen], pData, nDataLen );
00156     m_nDataLen += nDataLen;
00157     m_pData[m_nDataLen]   = '\0';
00158     m_pData[m_nDataLen+1] = '\0'; //終端'\0'を2つ付加する('\0''\0'==L'\0')。 2007.08.13 kobake 追加
00159     return;
00160 }
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175 /* 等しい内容か */
00176 int CMemory::IsEqual( CMemory& cmem1, CMemory& cmem2 )
00177 {
00178     const char* psz1;
00179     const char* psz2;
00180     int     nLen1;
00181     int     nLen2;
00182
00183     psz1 = (const char*)cmem1.GetRawPtr( &nLen1 );
00184     psz2 = (const char*)cmem2.GetRawPtr( &nLen2 );
00185     if( nLen1 == nLen2 ){
00186         if( 0 == memcmp( psz1, psz2, nLen1 ) ){
00187             return TRUE;
00188         }
00189     }
00190     return FALSE;
00191 }
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211 /* !上位バイトと下位バイトを交換する
00212
00213     @author Moca
00214     @date 2002/5/27
00215
00216     @note   nBufLen が2の倍数でないときは、最後の1バイトは交換されない
00217 */
00218 void CMemory::SwapHLByte( void ){
00219     unsigned char *p;
00220     unsigned char ctemp;
00221     unsigned char *p_end;
00222     unsigned int *pdwchar;
00223     unsigned int *pdw_end;
00224     unsigned char*  pBuf;
00225     int         nBufLen;
00226
00227     pBuf = (unsigned char*)GetRawPtr( &nBufLen );
00228
00229     if( nBufLen < 2){
00230         return;
00231     }
00232     // 高速化のため
00233     if( (size_t)pBuf % 2 == 0){
00234         if( (size_t)pBuf % 4 == 2 ){
00235             ctemp = pBuf[0];
00236             pBuf[0]  = pBuf[1];
00237             pBuf[1]  = ctemp;
00238             pdwchar = (unsigned int*)(pBuf + 2);
00239         }else{
00240             pdwchar = (unsigned int*)pBuf;
00241         }
00242         pdw_end = (unsigned int*)(pdwchar + nBufLen / sizeof(int)) - 1;
00243
00244         for(; pdwchar <= pdw_end ; ++pdwchar ){
00245             pdwchar[0] = ((pdwchar[0] & (unsigned int)0xff00ff00) >> 8) |
00246                          ((pdwchar[0] & (unsigned int)0x00ff00ff) << 8);
00247         }
00248     }
00249     p = (unsigned char*)pdwchar;
00250     p_end = pBuf + nBufLen - 2;
00251
00252     for(; p <= p_end ; p+=2){
00253         ctemp = p[0];
00254         p[0]  = p[1];
00255         p[1]  = ctemp;
00256     }
00257     return;
00258 }
00259
00260
00261
00262 /*
00263 || バッファサイズの調整
00264 */
00265 void CMemory::AllocBuffer( int nNewDataLen )
00266 {
00267     int     nWorkLen;
00268     char*   pWork = NULL;
00269
00270     // 2バイト多くメモリ確保しておく('\0'またはL'\0'を入れるため) 2007.08.13 kobake 変更
00271     nWorkLen = nNewDataLen + 2;
00272
00273     if( m_nDataBufSize == 0 ){
00274         /* 未確保の状態 */
00275         pWork = malloc_char( nWorkLen );
00276         m_nDataBufSize = nWorkLen;
00277     }else{
00278         /* 現在のバッファサイズより大きくなった場合のみ再確保する */
00279         if( m_nDataBufSize < nWorkLen ){
00280             pWork = (char*)realloc( m_pData, nWorkLen );
00281             m_nDataBufSize = nWorkLen;
00282         }else{
00283             return;
00284         }
00285     }
00286
00287
00288     if( NULL == pWork ){
00289 		::MYMESSAGEBOX_A( NULL, MB_OKCANCEL | MB_ICONQUESTION | MB_TOPMOST, GSTR_APPNAME_A,
00290             "CMemory::AllocBuffer(nNewDataLen==%d)\nメモリ確保に失敗しました。\n", nNewDataLen
00291         );
00292         if( NULL != m_pData && 0 != nWorkLen ){
00293             /* 古いバッファを解放して初期化 */
00294             _Empty();
00295         }
00296         return;
00297     }
00298     m_pData = pWork;
00299     return;
00300 }
00301
00302
00303
00304 /* バッファの内容を置き換える */
00305 void CMemory::SetRawData( const void* pData, int nDataLen )
00306 {
00307     _Empty();
00308     AllocBuffer( nDataLen );
00309     _AddData( pData, nDataLen );
00310     return;
00311 }
00312
00313 /* バッファの内容を置き換える */
00314 void CMemory::SetRawData( const CMemory& pcmemData )
00315 {
00316     const void* pData;
00317     int     nDataLen;
00318     pData = pcmemData.GetRawPtr( &nDataLen );
00319     _Empty();
00320     AllocBuffer( nDataLen );
00321     _AddData( pData, nDataLen );
00322     return;
00323 }
00324
00325
00326 /* バッファの最後にデータを追加する（publicメンバ）*/
00327 void CMemory::AppendRawData( const void* pData, int nDataLenBytes )
00328 {
00329     AllocBuffer( m_nDataLen + nDataLenBytes );
00330     _AddData( pData, nDataLenBytes );
00331 }
00332
00333 /* バッファの最後にデータを追加する（publicメンバ）*/
00334 void CMemory::AppendRawData( const CMemory* pcmemData )
00335 {
00336     if( this == pcmemData ){
00337         CMemory cm = *pcmemData;
00338         AppendRawData(&cm);
00339     }
00340     int nDataLen;
00341     const void* pData = pcmemData->GetRawPtr( &nDataLen );
00342     AllocBuffer( m_nDataLen + nDataLen );
00343     _AddData( pData, nDataLen );
00344 }
00345
00346 void CMemory::_Empty( void )
00347 {
00348     if( m_pData != NULL ){
00349         free( m_pData );
00350         m_pData = NULL;
00351     }
00352     m_nDataBufSize = 0;
00353     m_pData = NULL;
00354     m_nDataLen = 0;
00355     return;
00356 }
00357
00358
00359
00360 void CMemory::_AppendSz(const char* str)
00361 {
00362     int len=strlen(str);
00363     AllocBuffer( m_nDataLen + len );
00364     _AddData(str,len);
00365 }
00366
00367
00368 void CMemory::_SetRawLength(int nLength)
00369 {
00370     assert(m_nDataLen <= m_nDataBufSize-2);
00371     m_nDataLen = nLength;
00372     m_pData[m_nDataLen  ]=0;
00373     m_pData[m_nDataLen+1]=0; //終端'\0'を2つ付加する('\0''\0'==L'\0')。
00374 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemory.h

sakura_core

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 行で定義されています。

参照元 CCodeMediator::CheckKanjiCodeOfFile(), と CDlgProperty::SetData().

Sakura-Editorに対してSat Nov 17 20:26:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemory.h ソースファイル

sakura_core

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 void* pData, int nDataLenBytes );
00052     ~CMemory();
00053
00054     /*
00055     || 生
00056     */
00057     void AllocBuffer( int );
00058     void SetRawData( const void* pData, int nDataLen );
00059     void SetRawData( const CMemory& );
00060     void AppendRawData( const void* pData, int nDataLen );
00061     void AppendRawData( const CMemory* );
00062     void Clean(){ _Empty(); }
00063     void Clear(){ _Empty(); }
00064
00065     __forceinline const void* GetRawPtr(int* pnLength) const;
00066     __forceinline void* GetRawPtr(int* pnLength);
00067     __forceinline const void* GetRawPtr() const{ return m_pData; }
00068     __forceinline void* GetRawPtr(){ return m_pData; }
00069     int GetRawLength() const { return m_nDataLen; }
00070
00071     /*
00072     || 演算子
00073     */
00074     const CMemory& operator=( const CMemory& );
00075
00076     /*
00077     || 比較
00078     */
00079     static int IsEqual( CMemory&, CMemory& );   /* 等しい内容か */
00080
00081     /*
00082     || 変換関数
00083     */
00084     void SwapHLByte();          // Byteを交換する
00085
00086
00087 protected:
00088     /*
00089     ||  実装ヘルパ関数
00090     */
00091     void _Empty( void );
00092     void _AddData( const void*, int );
00093 public:
00094     void _AppendSz(const char* str);
00095     void _SetRawLength(int nLength);
00096
00097
00098 protected:
00099     typedef char* PCHAR;
00100     PCHAR& _DebugGetPointerRef(){ return m_pData; } //デバッグ用。バッファポインタの参照を返す。
00101
00102 private: // 2002/2/10 aroka アクセス権変更
00103     /*
00104     || メンバ変数
00105     */
00106     int     m_nDataBufSize; //バッファサイズ。バイト単位。
00107     char*   m_pData;        //バッファ
00108     int     m_nDataLen;     //データサイズ(m_nDataBufSize以内)。バイト単位。
00109
00110
00111
00112 };
00113
00114
00115 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00116 //                     inline関数の実装                        //
00117 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00118 __forceinline const void* CMemory::GetRawPtr(int* pnLength) const
00119 {
00120     if(pnLength) *pnLength = GetRawLength();
00121     return m_pData;
00122 }
00123 __forceinline void* CMemory::GetRawPtr(int* pnLength)
00124 {
00125     if(pnLength) *pnLength = GetRawLength();
00126     return m_pData;
00127 }
00128
00130 #endif /* _CMEMORY_H_ */
00131
00132
00133 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemoryIterator.h

sakura_core

CMemoryIterator.h

CLayoutとCDocLineのイテレータ [詳細]

#include "global.h"
#include "charcode.h"
#include "CLayout.h"
#include "CDocLine.h"

CMemoryIterator.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMemoryIterator
ブロックコメントデリミタを管理する [詳細]

説明

CLayoutとCDocLineのイテレータ

作者:
Yazaki
日付:
2002/09/25 新規作成

CMemoryIterator.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMemoryIterator.h ソースファイル

sakura_core

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 #ifndef _CMEMORYITERATOR_H_
00016 #define _CMEMORYITERATOR_H_
00017
00018 //  sakura
00019 #include "global.h"
00020 #include "charcode.h"
00021
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00025 // 2007.10.23 kobake テンプレートである必要も無いので、非テンプレートに変更。
00026
00027 #include "CLayout.h"
00028 #include "CDocLine.h"
00029
00031 class SAKURA_CORE_API CMemoryIterator
00032 {
00033 public:
00034     //CDocLine用コンストラクタ
00035     CMemoryIterator( const CDocLine* pcT, CLayoutInt nTabSpace )
00036     : m_pLine( pcT ? pcT->GetPtr() : NULL )
00037     , m_nLineLen( pcT ? pcT->GetLength() : 0 )
00038     , m_nTabSpace( nTabSpace )
00039     , m_nIndent( CLayoutInt(0) )
00040     {
00041         first();
00042     }
00043
00044     //CLayout用コンストラクタ
00045     CMemoryIterator( const CLayout* pcT, CLayoutInt nTabSpace )
00046     : m_pLine( pcT ? pcT->GetPtr() : NULL )
00047     , m_nLineLen( pcT ? pcT->GetLength() : 0 )
00048     , m_nTabSpace( nTabSpace )
00049     , m_nIndent( pcT ? pcT->GetIndent() : CLayoutInt(0) )
00050     {
00051         first();
00052     }
00053
00055     void first()
00056     {
00057         m_nIndex = CLogicInt(0);
00058         m_nColumn = m_nIndent;
00059         m_nIndex_Delta = CLogicInt(0);
00060         m_nColumn_Delta = CLayoutInt(0);
00061     }
00062
00066     bool end() const
00067     {
00068         return (m_nLineLen <= m_nIndex);
00069     }
00070
00071     //  次の文字を確認して次の文字との差を求める
00072     void scanNext()
00073     {
00074         // 2005-09-02 D.S.Koba GetSizeOfChar
00075         // 2007.09.04 kobake UNICODE化：データ増分と桁増分を別々の値として計算する。
00076
00077         //データ増分を計算
00078         m_nIndex_Delta = CLogicInt(CNativeW::GetSizeOfChar( m_pLine, m_nLineLen, m_nIndex ));
00079         if( 0 == m_nIndex_Delta )
00080             m_nIndex_Delta = CLogicInt(1);
00081
00082         //桁増分を計算
00083         if (m_pLine[m_nIndex] == WCODE::TAB){
00084             m_nColumn_Delta = m_nTabSpace - ( m_nColumn % m_nTabSpace );
00085         }
00086         else{
00087             m_nColumn_Delta = CLayoutInt(CNativeW::GetKetaOfChar( m_pLine, m_nLineLen, m_nIndex ));
00088             if( 0 == m_nColumn_Delta )
00089                 m_nColumn_Delta = CLayoutInt(1);
00090         }
00091     }
00092
00096     void addDelta(){
00097         m_nColumn += m_nColumn_Delta;
00098         m_nIndex += m_nIndex_Delta;
00099     }   //  ポインタをずらす
00100
00101     CLogicInt   getIndex()          const { return m_nIndex;    };
00102     CLayoutInt  getColumn()         const { return m_nColumn;   };
00103     CLogicInt   getIndexDelta()     const { return m_nIndex_Delta;  };
00104     CLayoutInt  getColumnDelta()    const { return m_nColumn_Delta; };
00105
00106     //  2002.10.07 YAZAKI
00107     const wchar_t getCurrentChar(){ return m_pLine[m_nIndex];   };
00108     //  Jul. 20, 2003 genta 追加
00109     //  memcpyをするのにポインタがとれないと面倒
00110     const wchar_t* getCurrentPos(){ return m_pLine + m_nIndex;  };
00111
00112
00113 private:
00114     //コンストラクタで受け取ったパラメータ (固定)
00115     const wchar_t*      m_pLine;
00116     const int           m_nLineLen;  //データ長。文字単位。
00117     const CLayoutInt    m_nTabSpace;
00118     const CLayoutInt    m_nIndent;
00119
00120     //状態変数
00121     CLogicInt   m_nIndex;        //データ位置。文字単位。
00122     CLayoutInt  m_nColumn;       //レイアウト位置。桁(半角幅)単位。
00123     CLogicInt   m_nIndex_Delta;  //index増分
00124     CLayoutInt  m_nColumn_Delta; //column増分
00125
00126 };
00127
00128
00130 #endif /* _CBLOCKCOMMENT_H_ */
00131
00132
00133 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMenuDrawer.cpp

sakura_core

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 "CImageListMgr.h"

CMenuDrawer.cppのインクルード依存関係図

ソースコードを見る。

関数

void FillSolidRect (HDC hdc, int x, int y, int cx, int cy, COLORREF clr)

説明

メニュー管理＆表示

作者:
Norio Nakatani

CMenuDrawer.cpp で定義されています。

関数

void FillSolidRect | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | cx,
 |  | int | cy,
 |  | COLORREF | clr
 | ) |  |

CMenuDrawer.cpp の 30 行で定義されています。

参照先 ApiWrap::ExtTextOutW_AnyBuild(), と NULL.

Sakura-Editorに対してSat Nov 17 20:26:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMenuDrawer.cpp ソースファイル

sakura_core

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 "CImageListMgr.h"
00028
00029
00030 void FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr)
00031 {
00032 //  ASSERT_VALID(this);
00033 //  ASSERT(m_hDC != NULL);
00034
00035     RECT rect;
00036     ::SetBkColor( hdc, clr );
00037     ::SetRect( &rect, x, y, x + cx, y + cy );
00038 	::ExtTextOutW_AnyBuild( hdc, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL );
00039 }
00040
00041
00042 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00043 CMenuDrawer::CMenuDrawer()
00044 {
00045     /* 共有データ構造体のアドレスを返す */
00046     m_pShareData = CShareData::getInstance()->GetShareData();
00047
00048     m_nMenuItemNum = 0;
00049     m_nMenuHeight = 0;
00050     m_hFontMenu = NULL;
00051     m_hFontMenuUndelLine = NULL;
00052
00053 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。 /* ツールバーのボタン TBBUTTON構造体 */
00054     /* ツールバーのボタン TBBUTTON構造体 */
00055     /*
00056     typedef struct _TBBUTTON {
00057         int iBitmap;    // ボタン イメージの 0 から始まるインデックス
00058         int idCommand;  // ボタンが押されたときに送られるコマンド
00059         BYTE fsState;   // ボタンの状態--以下を参照
00060         BYTE fsStyle;   // ボタン スタイル--以下を参照
00061         DWORD dwData;   // アプリケーション-定義された値
00062         int iString;    // ボタンのラベル文字列の 0 から始まるインデックス
00063     } TBBUTTON;
00064     */
00065     SetTBBUTTONVal( &m_tbMyButton[0], 0, 0, 0, TBSTYLE_SEP, 0, 0 );     //セパレータ
00066 #if 0
00067     2002/04/26 無用な汎用性は排除。
00068     struct TBUTTONDATA {
00069         int         idCommand;
00070         BYTE        fsState;
00071         BYTE        fsStyle;
00072         DWORD       dwData;
00073         int         iString;
00074     };
00075 #endif
00076 //  キーワード：アイコン順序(アイコンインデックス)
00077 //  Sept. 16, 2000 Jepro note: アイコン登録メニュー
00078 //  以下の登録はツールバーだけでなくアイコンをもつすべてのメニューで利用されている
00079 //  数字はビットマップリソースのIDB_MYTOOLに登録されているアイコンの先頭からの順番のようである
00080 //  アイコンをもっと登録できるように横幅を16dotsx218=2048dotsに拡大
00081 //  縦も15dotsから16dotsにして「プリンタ」アイコンや「ヘルプ1」の、下が欠けている部分を補ったが15dotsまでしか表示されないらしく効果なし
00082 //  →
00083 //  Sept. 17, 2000 縦16dot目を表示できるようにした
00084 //  修正したファイルにはJEPRO_16thdotとコメントしてあるのでもし間違っていたらそれをキーワードにして検索してください(Sept. 28, 2000現在 6箇所変更)
00085 //  IDB_MYTOOLの16dot目に見やすいように横16dotsづつの区切りになる目印を付けた
00086 //
00087 //  Sept. 16, 2000 見やすいように横に20個(あるいは32個)づつに配列しようとしたが配列構造を変えなければうまく格納できないので
00088 //  それを解決するのが先決(→げんた氏改修版ur3β13で解決)
00089 //
00090 //  Sept. 16, 2000 JEPRO できるだけ系ごとに集まるように順番を大幅に入れ替えた  それに伴いCShareData.cppで設定している初期設定値も変更
00091 //  Oct. 22, 2000 JEPRO アイコンのビットマップリソースの2次元配置が可能になったため根本的に配置転換した
00092 //  ・配置の基本は「コマンド一覧」に入っている機能(コマンド)順  なお「コマンド一覧」自体は「メニューバー」の順におおよそ準拠している
00093 //  ・アイコンビットマップファイルには横32個X13段あるが有効にしてあるのは11段まで(12段目は基本的に作業用, 13段目は試作品など保管用)
00094 //  ・メニューに属する系および各系の段との関係は次の通り(Oct. 22, 2000 現在)：
00095 //      ファイル----- ファイル操作系 (1段目32個: 1-32)
00096 //      編集--------- 編集系           (2段目32個: 33-64)
00097 //      移動--------- カーソル移動系   (3段目32個: 65-96)
00098 //      選択--------- 選択系           (4段目32個: 97-128)
00099 //                  + 矩形選択系       (5段目32個: 129-160) //(注. 矩形選択系のほとんどは未実装)
00100 //                  + クリップボード系  (6段目24個: 161-184)
00101 //          ★挿入系                    (6段目残りの8個: 185-192)
00102 //      変換--------- 変換系           (7段目32個: 193-224)
00103 //      検索--------- 検索系           (8段目32個: 225-256)
00104 //      ツール------- モード切り替え系   (9段目4個: 257-260)
00105 //                  + 設定系         (9段目次の16個: 261-276)
00106 //                  + マクロ系          (9段目最後の12個: 277-288)
00107 //                  + 外部マクロ       (12段目12個: 353-372)
00108 //                  + カスタムメニュー  (10段目32個: 289-320)
00109 //      ウィンドウ--- ウィンドウ系       (11段目22個: 321-342)
00110 //      ヘルプ------- 支援             (11段目残りの10個: 343-352)
00111 //          ★その他                    (12段目残りの10個: 373-384)
00112 //  注1.「挿入系」はメニューでは「編集」に入っている
00113 //  注2.「その他」はメニューには入っていないものを入れる (現在何もないので12段目を設定してない)
00114 //  注3.「コマンド一覧」で敢えて重複していれてあるコマンドはその「本家」の方に配置した
00115 //  注4.「コマンド一覧」に入ってないコマンドもわかっている範囲で位置予約にしておいた
00116 //  注5. F_DISABLE は未定義用(ダミーとしても使う)
00117 //  注6. ユーザー用に確保された場所は特にないので各段の空いている後ろの方を使ってください。
00118
00119     int /* TBUTTONDATA */ tbd[] = {
00120 /* ファイル操作系(1段目32個: 1-32) */
00121 /*  1 */        F_FILENEW                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //新規作成
00122 /*  2 */        F_FILEOPEN                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開く
00123 /*  3 */        F_FILESAVE                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //上書き保存
00124 /*  4 */        F_FILESAVEAS_DIALOG         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //名前を付けて保存  //Sept. 18, 2000 JEPRO 追加
00125 /*  5 */        F_FILECLOSE                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //閉じて(無題) //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00126 /*  6 */        F_FILECLOSE_OPEN            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //閉じて開く
00127 /*  7 */        F_FILE_REOPEN_SJIS          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJISで開き直す
00128 /*  8 */        F_FILE_REOPEN_JIS           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //JISで開き直す
00129 /*  9 */        F_FILE_REOPEN_EUC           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //EUCで開き直す
00130 /* 10 */        F_FILE_REOPEN_UNICODE       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Unicodeで開き直す
00131 /* 11 */        F_FILE_REOPEN_UTF8          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-8で開き直す
00132 /* 12 */        F_FILE_REOPEN_UTF7          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-7で開き直す
00133 /* 13 */        F_PRINT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷
00134 /* 14 */        F_PRINT_PREVIEW             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷プレビュー
00135 /* 15 */        F_PRINT_PAGESETUP           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷ページ設定 //Sept. 21, 2000 JEPRO 追加
00136 /* 16 */        F_OPEN_HfromtoC             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
00137 /* 17 */        F_OPEN_HHPP                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ヘッダファイルを開く  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00138 /* 18 */        F_OPEN_CCPP                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ソースファイルを開く  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00139 /* 19 */        F_ACTIVATE_SQLPLUS          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Oracle SQL*Plusをアクティブ表示 */    //Sept. 20, 2000 JEPRO 追加
00140 /* 20 */        F_PLSQL_COMPILE_ON_SQLPLUS  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Oracle SQL*Plusで実行 */   //Sept. 17, 2000 jepro 説明の「コンパイル」を「実行」に統一
00141 /* 21 */        F_BROWSE                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブラウズ
00142 /* 22 */        F_PROPERTY_FILE             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルのプロパティ//Sept. 16, 2000 JEPRO mytool1.bmpにあった「ファイルのプロパティ」アイコンをIDB_MYTOOLにコピー
00143 /* 23 */        F_READONLY                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //読み取り専用
00144 /* 24 */        F_FILE_REOPEN_UNICODEBE     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UnicodeBEで開き直す // Moca, 2002/05/26 追加
00145 /* 25 */        F_FILEOPEN_DROPDOWN         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開く(ドロップダウン)
00146 /* 26 */        F_FILE_REOPEN               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開きなおす
00147 /* 27 */        F_EXITALL                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //サクラエディタの全終了 //Dec. 27, 2000 JEPRO 追加
00148 /* 28 */        F_FILESAVECLOSE             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //保存して閉じる Feb. 28, 2004 genta
00149 /* 29 */        F_DISABLE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00150 /* 30 */        F_FILESAVEALL                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全て上書き保存 Jan. 24, 2005 genta
00151 /* 31 */        F_EXITALLEDITORS            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //編集の全終了    // 2007.02.13 ryoji 追加
00152 /* 32 */        F_DISABLE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00153
00154 /* 編集系(2段目32個: 32-64) */
00155 /* 33 */        F_UNDO                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //元に戻す(Undo)
00156 /* 34 */        F_REDO                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //やり直し(Redo)
00157 /* 35 */        F_DELETE                        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //削除
00158 /* 36 */        F_DELETE_BACK                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル前を削除
00159 /* 37 */        F_WordDeleteToStart             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の左端まで削除
00160 /* 38 */        F_WordDeleteToEnd               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の右端まで削除
00161 /* 39 */        F_WordDelete                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語削除
00162 /* 40 */        F_WordCut                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語切り取り
00163 /* 41 */        F_LineDeleteToStart             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭まで削除(改行単位)
00164 /* 42 */        F_LineDeleteToEnd               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末まで削除(改行単位)
00165 /* 43 */        F_LineCutToStart                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭まで切り取り(改行単位)
00166 /* 44 */        F_LineCutToEnd                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末まで切り取り(改行単位)
00167 /* 45 */        F_DELETE_LINE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行削除(折り返し単位)
00168 /* 46 */        F_CUT_LINE                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行切り取り(改行単位)
00169 /* 47 */        F_DUPLICATELINE                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行の二重化(折り返し単位)
00170 /* 48 */        F_INDENT_TAB                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //TABインデント
00171 /* 49 */        F_UNINDENT_TAB                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //逆TABインデント
00172 /* 50 */        F_INDENT_SPACE                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SPACEインデント
00173 /* 51 */        F_UNINDENT_SPACE                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //逆SPACEインデント
00174 /* 52 */        F_DISABLE/*F_WORDSREFERENCE*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語リファレンス  //アイコン未作
00175 /* 53 */        F_LTRIM                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //LTRIM     // 2001.12.03 hor
00176 /* 54 */        F_RTRIM                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //RTRIM     // 2001.12.03 hor
00177 /* 55 */        F_SORT_ASC                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SORT_ASC  // 2001.12.06 hor
00178 /* 56 */        F_SORT_DESC                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SORT_DES  // 2001.12.06 hor
00179 /* 57 */        F_MERGE                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MERGE     // 2001.12.06 hor
00180 /* 58 */        F_RECONVERT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //再変換 // 2002.4.12 YAZAKI
00181 /* 59 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00182 /* 60 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00183 /* 61 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00184 /* 62 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00185 /* 63 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00186 /* 64 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00187
00188 /* カーソル移動系(3段目32個: 65-96) */
00189 /* 65 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00190 /* 66 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00191 /* 67 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00192 /* 68 */        F_UP                            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル上移動
00193 /* 69 */        F_DOWN                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル下移動
00194 /* 70 */        F_LEFT                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル左移動
00195 /* 71 */        F_RIGHT                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル右移動
00196 /* 72 */        F_UP2                           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル上移動(２行ごと)
00197 /* 73 */        F_DOWN2                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル下移動(２行ごと)
00198 /* 74 */        F_WORDLEFT                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の左端に移動
00199 /* 75 */        F_WORDRIGHT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の右端に移動
00200 /* 76 */        F_GOLINETOP                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭に移動(折り返し単位)
00201 /* 77 */        F_GOLINEEND                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末に移動(折り返し単位)
00202 /* 78 */        F_HalfPageUp                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00203 /* 79 */        F_HalfPageDown                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00204 /* 80 */        F_1PageUp                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //１ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00205 /* 81 */        F_1PageDown                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //１ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00206 /* 82 */        F_DISABLE/*F_DISPLAYTOP*/       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //画面の先頭に移動(未実装)
00207 /* 83 */        F_DISABLE/*F_DISPLAYEND*/       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //画面の最後に移動(未実装)
00208 /* 84 */        F_GOFILETOP                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルの先頭に移動
00209 /* 85 */        F_GOFILEEND                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルの最後に移動
00210 /* 86 */        F_CURLINECENTER                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル行をウィンドウ中央へ
00211 /* 87 */        F_JUMPHIST_PREV                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //移動履歴: 前へ  //Sept. 28, 2000 JEPRO 追加
00212 /* 88 */        F_JUMPHIST_NEXT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //移動履歴: 次へ  //Sept. 28, 2000 JEPRO 追加
00213 /* 89 */        F_WndScrollDown                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを１行下へスクロール    //Jun. 28, 2001 JEPRO 追加
00214 /* 90 */        F_WndScrollUp                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを１行上へスクロール    //Jun. 28, 2001 JEPRO 追加
00215 /* 91 */        F_GONEXTPARAGRAPH               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次の段落へ
00216 /* 92 */        F_GOPREVPARAGRAPH               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前の段落へ
00217 /* 93 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00218 /* 94 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00219 /* 95 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00220 /* 96 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00221
00222 /* 選択系(4段目32個: 97-128) */
00223 /* 97 */        F_SELECTWORD                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //現在位置の単語選択
00224 /* 98 */        F_SELECTALL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //すべて選択   //Sept. 21, 2000 JEPRO 追加
00225 /* 99 */        F_BEGIN_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //範囲選択開始
00226 /* 100 */       F_UP_SEL                        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル上移動
00227 /* 101 */       F_DOWN_SEL                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル下移動
00228 /* 102 */       F_LEFT_SEL                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル左移動
00229 /* 103 */       F_RIGHT_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル右移動
00230 /* 104 */       F_UP2_SEL                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル上移動(２行ごと)
00231 /* 105 */       F_DOWN2_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル下移動(２行ごと)
00232 /* 106 */       F_WORDLEFT_SEL                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)単語の左端に移動
00233 /* 107 */       F_WORDRIGHT_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)単語の右端に移動
00234 /* 108 */       F_GOLINETOP_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)行頭に移動(折り返し単位)
00235 /* 109 */       F_GOLINEEND_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)行末に移動(折り返し単位)
00236 /* 110 */       F_HalfPageUp_Sel                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)半ページアップ   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00237 /* 111 */       F_HalfPageDown_Sel              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)半ページダウン   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00238 /* 112 */       F_1PageUp_Sel                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)１ページアップ   //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00239 /* 113 */       F_1PageDown_Sel                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)１ページダウン   //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00240 /* 114 */       F_DISABLE/*F_DISPLAYTOP_SEL*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)画面の先頭に移動(未実装)
00241 /* 115 */       F_DISABLE/*F_DISPLAYEND_SEL*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)画面の最後に移動(未実装)
00242 /* 116 */       F_GOFILETOP_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)ファイルの先頭に移動
00243 /* 117 */       F_GOFILEEND_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)ファイルの最後に移動
00244 /* 118 */       F_GONEXTPARAGRAPH_SEL           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)次の段落へ
00245 /* 119 */       F_GOPREVPARAGRAPH_SEL           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)前の段落へ
00246 /* 120 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00247 /* 121 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00248 /* 122 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00249 /* 123 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00250 /* 124 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00251 /* 125 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00252 /* 126 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00253 /* 127 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00254 /* 128 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00255
00256 /* 矩形選択系(5段目32個: 129-160) */ //(注. 矩形選択系のほとんどは未実装)
00257 /* 129 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00258 /* 130 */       F_DISABLE/*F_BOXSELALL*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形ですべて選択
00259 /* 131 */       F_BEGIN_BOX                             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形範囲選択開始  //Sept. 29, 2000 JEPRO 追加
00260 /* 132 */       F_DISABLE/*F_UP_BOX*/                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル上移動
00261 /* 133 */       F_DISABLE/*F_DOWN_BOX*/                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル下移動
00262 /* 134 */       F_DISABLE/*F_LEFT_BOX*/                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル左移動
00263 /* 135 */       F_DISABLE/*F_RIGHT_BOX*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル右移動
00264 /* 136 */       F_DISABLE/*F_UP2_BOX*/                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル上移動(２行ごと)
00265 /* 137 */       F_DISABLE/*F_DOWN2_BOX*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル下移動(２行ごと)
00266 /* 138 */       F_DISABLE/*F_WORDLEFT_BOX*/             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)単語の左端に移動
00267 /* 139 */       F_DISABLE/*F_WORDRIGHT_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)単語の右端に移動
00268 /* 140 */       F_DISABLE/*F_GOLINETOP_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)行頭に移動(折り返し単位)
00269 /* 141 */       F_DISABLE/*F_GOLINEEND_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)行末に移動(折り返し単位)
00270 /* 142 */       F_DISABLE/*F_HalfPageUp_Box*/           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)半ページアップ
00271 /* 143 */       F_DISABLE/*F_HalfPageDown_Box*/         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)半ページダウン
00272 /* 144 */       F_DISABLE/*F_1PageUp_Box*/              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)１ページアップ
00273 /* 145 */       F_DISABLE/*F_1PageDown_Box*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)１ページダウン
00274 /* 146 */       F_DISABLE/*F_DISABLE/*F_DISPLAYTOP_BOX*//* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)画面の先頭に移動(未実装)
00275 /* 147 */       F_DISABLE/*F_DISPLAYEND_BOX*/           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)画面の最後に移動(未実装)
00276 /* 148 */       F_DISABLE/*F_GOFILETOP_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)ファイルの先頭に移動
00277 /* 149 */       F_DISABLE/*F_GOFILEEND_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)ファイルの最後に移動
00278 /* 150 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00279 /* 151 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00280 /* 152 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00281 /* 153 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00282 /* 154 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00283 /* 155 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00284 /* 156 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00285 /* 157 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00286 /* 158 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00287 /* 159 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00288 /* 160 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00289
00290 /* クリップボード系(6段目24個: 161-184) */
00291 /* 161 */       F_CUT                           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //切り取り(選択範囲をクリップボードにコピーして削除)
00292 /* 162 */       F_COPY                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //コピー(選択範囲をクリップボードにコピー)
00293 /* 163 */       F_COPY_CRLF                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //CRLF改行でコピー
00294 /* 164 */       F_PASTE                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //貼り付け(クリップボードから貼り付け)
00295 /* 165 */       F_PASTEBOX                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形貼り付け(クリップボードから貼り付け)
00296 /* 166 */       F_DISABLE/*F_INSTEXT_W*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを貼り付け   (未公開コマンド？未完成？)
00297 /* 167 */       F_DISABLE/*F_ADDTAIL_W*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //最後にテキストを追加    (未公開コマンド？未完成？)
00298 /* 168 */       F_COPYLINES                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行コピー    //Sept. 30, 2000 JEPRO 追加
00299 /* 169 */       F_COPYLINESASPASSAGE            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行引用符付きコピー //Sept. 30, 2000 JEPRO 追加
00300 /* 170 */       F_COPYLINESWITHLINENUMBER       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行行番号付きコピー //Sept. 30, 2000 JEPRO 追加
00301 /* 171 */       F_COPYPATH                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイルのパス名をコピー //added Oct. 22, 2000 JEPRO                //Nov. 5, 2000 JEPRO 追加
00302 /* 172 */       F_COPYTAG                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイルのパス名とカーソル位置をコピー //added Oct. 22, 2000 JEPRO   //Nov. 5, 2000 JEPRO 追加
00303 /* 173 */       F_CREATEKEYBINDLIST             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キー割り当て一覧をコピー //added Oct. 22, 2000 JEPRO  //Dec. 25, 2000 JEPRO アイコン追加
00304 /* 174 */       F_COPYFNAME                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイル名をクリップボードにコピー //2002/2/3 aroka
00305 /* 175 */       F_COPY_ADDCRLF                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //折り返し位置に改行をつけてコピー
00306 /* 176 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00307 /* 177 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00308 /* 178 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00309 /* 179 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00310 /* 180 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00311 /* 181 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00312 /* 182 */       F_CHGMOD_EOL_CRLF,  // 2003.06.23 Moca
00313 /* 183 */       F_CHGMOD_EOL_LF,    // 2003.06.23 Moca
00314 /* 184 */       F_CHGMOD_EOL_CR,    // 2003.06.23 Moca
00315
00316 /* 挿入系(6段目残り8個: 185-192) */
00317 /* 185 */       F_INS_DATE  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //日付挿入  //Nov. 5, 2000 JEPRO 追加
00318 /* 186 */       F_INS_TIME  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //時刻挿入  //Nov. 5, 2000 JEPRO 追加
00319 /* 187 */       F_CTRL_CODE_DIALOG  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //コントロールコードの入力(ダイアログ) //@@@ 2002.06.02 MIK
00320 /* 188 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00321 /* 189 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00322 /* 190 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00323 /* 191 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00324 /* 192 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00325
00326 /* 変換系(7段目32個: 193-224) */
00327 /* 193 */       F_TOLOWER               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //小文字
00328 /* 194 */       F_TOUPPER               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //大文字
00329 /* 195 */       F_TOHANKAKU             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角→半角
00330 /* 196 */       F_TOZENKAKUKATA         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角＋全ひら→全角・カタカナ    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00331 /* 197 */       F_TOZENKAKUHIRA         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角＋全カタ→全角・ひらがな    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00332 /* 198 */       F_HANKATATOZENKAKUKATA  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角カタカナ→全角カタカナ   //Sept. 18, 2000 JEPRO 追加
00333 /* 199 */       F_HANKATATOZENKAKUHIRA  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角カタカナ→全角ひらがな   //Sept. 18, 2000 JEPRO 追加
00334 /* 200 */       F_TABTOSPACE            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //TAB→空白  //Sept. 20, 2000 JEPRO 追加
00335 /* 201 */       F_CODECNV_AUTO2SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //自動判別→SJISコード変換
00336 /* 202 */       F_CODECNV_EMAIL         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //E-Mail(JIS→SIJIS)コード変換
00337 /* 203 */       F_CODECNV_EUC2SJIS      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //EUC→SJISコード変換
00338 /* 204 */       F_CODECNV_UNICODE2SJIS  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Unicode→SJISコード変換
00339 /* 205 */       F_CODECNV_UTF82SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-8→SJISコード変換
00340 /* 206 */       F_CODECNV_UTF72SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-7→SJISコード変換
00341 /* 207 */       F_CODECNV_SJIS2JIS      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→JISコード変換
00342 /* 208 */       F_CODECNV_SJIS2EUC      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→EUCコード変換
00343 /* 209 */       F_CODECNV_SJIS2UTF8     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→UTF-8コード変換
00344 /* 210 */       F_CODECNV_SJIS2UTF7     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→UTF-7コード変換
00345 /* 211 */       F_BASE64DECODE          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Base64デコードして保存    //Sept. 28, 2000 JEPRO 追加
00346 /* 212 */       F_UUDECODE              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //uudecodeしてファイルに保存//Sept. 28, 2000 JEPRO 追加  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00347 /* 213 */       F_SPACETOTAB            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //空白→TAB  //Jun. 01, 2001 JEPRO 追加
00348 /* 214 */       F_TOZENEI               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角英数→全角英数 //July. 30, 2001 Misaka 追加
00349 /* 215 */       F_TOHANEI               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角英数→半角英数
00350 /* 216 */       F_CODECNV_UNICODEBE2SJIS/* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UnicodeBE→SJISコード変換   //Moca, 2002/05/26
00351 /* 217 */       F_TOHANKATA             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角カタカナ→半角カタカナ   //Aug. 29, 2002 ai
00352 /* 218 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00353 /* 219 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00354 /* 220 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00355 /* 221 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00356 /* 222 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00357 /* 223 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00358 /* 224 */       F_OUTLINE_TOGGLE        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //アウトライン解析(toggle) // 20060201 aroka
00359
00360 /* 検索系(8段目32個: 225-256) */
00361 /* 225 */       F_SEARCH_DIALOG     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索(単語検索ダイアログ)
00362 /* 226 */       F_SEARCH_NEXT       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次を検索
00363 /* 227 */       F_SEARCH_PREV       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前を検索
00364 /* 228 */       F_REPLACE_DIALOG    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //置換    //Sept. 21, 2000 JEPRO 追加
00365 /* 229 */       F_SEARCH_CLEARMARK  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索マークのクリア
00366 /* 230 */       F_GREP_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Grep
00367 /* 231 */       F_JUMP_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //指定行へジャンプ      //Sept. 21, 2000 JEPRO 追加
00368 /* 232 */       F_OUTLINE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //アウトライン解析
00369 /* 233 */       F_TAGJUMP           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグジャンプ機能          //Sept. 21, 2000 JEPRO 追加
00370 /* 234 */       F_TAGJUMPBACK       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグジャンプバック機能 //Sept. 21, 2000 JEPRO 追加
00371 /* 235 */       F_COMPARE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイル内容比較  //Sept. 21, 2000 JEPRO 追加
00372 /* 236 */       F_BRACKETPAIR       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //対括弧の検索    //Sept. 20, 2000 JEPRO 追加
00373 /* 237 */       F_BOOKMARK_SET      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマーク設定・解除 // 2001.12.03 hor
00374 /* 238 */       F_BOOKMARK_NEXT     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次のブックマークへ       // 2001.12.03 hor
00375 /* 239 */       F_BOOKMARK_PREV     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前のブックマークへ       // 2001.12.03 hor
00376 /* 240 */       F_BOOKMARK_RESET    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマークの全解除        // 2001.12.03 hor
00377 /* 241 */       F_BOOKMARK_VIEW     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマークの一覧       // 2001.12.03 hor
00378 /* 242 */       F_DIFF_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //DIFF差分表示  //@@@ 2002.05.25 MIK
00379 /* 243 */       F_DIFF_NEXT         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次の差分へ   //@@@ 2002.05.25 MIK
00380 /* 244 */       F_DIFF_PREV         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前の差分へ   //@@@ 2002.05.25 MIK
00381 /* 245 */       F_DIFF_RESET        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //差分の全解除    //@@@ 2002.05.25 MIK
00382 /* 246 */       F_SEARCH_BOX        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索(ボックス)
00383 /* 247 */       F_JUMP_SRCHSTARTPOS /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索開始位置へ戻る   // 02/06/26 ai
00384 /* 248 */       F_TAGS_MAKE         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグファイルの作成   //@@@ 2003.04.13 MIK
00385 /* 249 */       F_DIRECT_TAGJUMP    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダイレクトタグジャンプ //@@@ 2003.04.15 MIK
00386 /* 250 */       F_ISEARCH_NEXT      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前方インクリメンタルサーチ //2004.10.13 isearch
00387 /* 251 */       F_ISEARCH_PREV      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //後方インクリメンタルサーチ //2004.10.13 isearch
00388 /* 252 */       F_ISEARCH_REGEXP_NEXT   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //正規表現前方インクリメンタルサーチ //2004.10.13 isearch
00389 /* 253 */       F_ISEARCH_REGEXP_PREV   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //正規表現前方インクリメンタルサーチ //2004.10.13 isearch
00390 /* 254 */       F_ISEARCH_MIGEMO_NEXT   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MIGEMO前方インクリメンタルサーチ //2004.10.13 isearch
00391 /* 255 */       F_ISEARCH_MIGEMO_PREV   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MIGEMO前方インクリメンタルサーチ //2004.10.13 isearch
00392 /* 256 */       F_TAGJUMP_KEYWORD   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キーワードを指定してダイレクトタグジャンプ //2005.03.31 MIK
00393
00394 /* モード切り替え系(9段目4個: 257-260) */
00395 /* 257 */       F_CHGMOD_INS    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //挿入／上書きモード切り替え   //Nov. 5, 2000 JEPRO 追加
00396 /* 258 */       F_CANCEL_MODE   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //各種モードの取り消し            //Nov. 7, 2000 JEPRO 追加
00397 /* 259 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00398 /* 260 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00399
00400 /* 設定系(9段目次の16個: 261-276) */
00401 /* 261 */       F_SHOWTOOLBAR       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ツールバーの表示
00402 /* 262 */       F_SHOWFUNCKEY       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファンクションキーの表示
00403 /* 263 */       F_SHOWSTATUSBAR     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ステータスバーの表示
00404 /* 264 */       F_TYPE_LIST         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タイプ別設定一覧  //Sept. 18, 2000 JEPRO 追加
00405 /* 265 */       F_OPTION_TYPE       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タイプ別設定
00406 /* 266 */       F_OPTION            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //共通設定          //Sept. 16, 2000 jepro 説明を「設定プロパティシート」から変更
00407 /* 267 */       F_FONT              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //フォント設定
00408 /* 268 */       F_WRAPWINDOWWIDTH   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //現在のウィンドウ幅で折り返し    //  Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00409 /* 269 */       F_FAVORITE          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //履歴の管理   //@@@ 2003.04.08 MIK
00410 /* 270 */       F_SHOWTAB           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タブの表示   //@@@ 2003.06.10 MIK
00411 /* 271 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00412 /* 272 */       F_TOGGLE_KEY_SEARCH /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キーワードヘルプ自動表示 2007.03.92 genta
00413 /* 273 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00414 /* 274 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00415 /* 275 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00416 /* 276 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00417
00418 /* マクロ系(9段目最後の12個: 277-288) */
00419 /* 277 */       F_RECKEYMACRO           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの記録開始／終了
00420 /* 278 */       F_SAVEKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの保存      //Sept. 21, 2000 JEPRO 追加
00421 /* 279 */       F_LOADKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの読み込み    //Sept. 21, 2000 JEPRO 追加
00422 /* 280 */       F_EXECKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの実行      //Sept. 16, 2000 JEPRO 下から上に移動した
00423 /* 281 */       F_EXECCOMMAND_DIALOG    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部コマンド実行//Sept. 20, 2000 JEPRO 名称をCMMANDからCOMMANDに変更(EXECCMMAND→EXECCMMAND)
00424 /* 282 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00425 /* 283 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00426 /* 284 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00427 /* 285 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00428 /* 286 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00429 /* 287 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00430 /* 288 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00431
00432 /* カスタムメニュー(10段目32個: 289-320) */
00433 /* 289 */       F_MENU_RBUTTON              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //右クリックメニュー   //Sept. 30, 2000 JEPRO 追加
00434 /* 290 */       F_CUSTMENU_1                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー1
00435 /* 291 */       F_CUSTMENU_2                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー2
00436 /* 292 */       F_CUSTMENU_3                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー3
00437 /* 293 */       F_CUSTMENU_4                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー4
00438 /* 294 */       F_CUSTMENU_5                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー5
00439 /* 295 */       F_CUSTMENU_6                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー6
00440 /* 296 */       F_CUSTMENU_7                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー7
00441 /* 297 */       F_CUSTMENU_8                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー8
00442 /* 298 */       F_CUSTMENU_9                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー9
00443 /* 299 */       F_CUSTMENU_10               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー10
00444 /* 300 */       F_DISABLE/*F_CUSTMENU_11*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー11    //アイコン未作
00445 /* 301 */       F_DISABLE/*F_CUSTMENU_12*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー12    //アイコン未作
00446 /* 302 */       F_DISABLE/*F_CUSTMENU_13*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー13    //アイコン未作
00447 /* 303 */       F_DISABLE/*F_CUSTMENU_14*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー14    //アイコン未作
00448 /* 304 */       F_DISABLE/*F_CUSTMENU_15*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー15    //アイコン未作
00449 /* 305 */       F_DISABLE/*F_CUSTMENU_16*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー16    //アイコン未作
00450 /* 306 */       F_DISABLE/*F_CUSTMENU_17*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー17    //アイコン未作
00451 /* 307 */       F_DISABLE/*F_CUSTMENU_18*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー18    //アイコン未作
00452 /* 308 */       F_DISABLE/*F_CUSTMENU_19*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー19    //アイコン未作
00453 /* 309 */       F_DISABLE/*F_CUSTMENU_20*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー20    //アイコン未作
00454 /* 310 */       F_DISABLE/*F_CUSTMENU_21*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー21    //アイコン未作
00455 /* 311 */       F_DISABLE/*F_CUSTMENU_22*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー22    //アイコン未作
00456 /* 312 */       F_DISABLE/*F_CUSTMENU_23*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー23    //アイコン未作
00457 /* 313 */       F_CUSTMENU_24               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー24    //アイコン未作
00458 /* 314 */       F_TAB_MOVERIGHT             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //タブを右に移動 // 2007.06.20 ryoji
00459 /* 315 */       F_TAB_MOVELEFT              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //タブを左に移動 // 2007.06.20 ryoji
00460 /* 316 */       F_TAB_SEPARATE              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //新規グループ    // 2007.06.20 ryoji
00461 /* 317 */       F_TAB_JOINTNEXT             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のグループに移動   // 2007.06.20 ryoji
00462 /* 318 */       F_TAB_JOINTPREV             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のグループに移動   // 2007.06.20 ryoji
00463 /* 319 */       F_DISABLE                   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00464 /* 320 */       F_DISABLE                   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00465
00466 /* ウィンドウ系(11段目22個: 321-342) */
00467 /* 321 */       F_SPLIT_V       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //上下に分割   //Sept. 16, 2000 jepro 説明を「縦」から「上下に」に変更
00468 /* 322 */       F_SPLIT_H       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //左右に分割   //Sept. 16, 2000 jepro 説明を「横」から「左右に」に変更
00469 /* 323 */       F_SPLIT_VH      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //縦横に分割   //Sept. 17, 2000 jepro 説明に「に」を追加
00470 /* 324 */       F_WINCLOSE      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ウィンドウを閉じる
00471 /* 325 */       F_WIN_CLOSEALL  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //すべてのウィンドウを閉じる   //Sept. 18, 2000 JEPRO 追加   //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00472 /* 329 */       F_NEXTWINDOW    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のウィンドウ
00473 /* 330 */       F_PREVWINDOW    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のウィンドウ
00474 /* 326 */       F_CASCADE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //重ねて表示
00475 /* 237 */       F_TILE_V        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //上下に並べて表示
00476 /* 328 */       F_TILE_H        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //左右に並べて表示
00477 /* 331 */       F_MAXIMIZE_V    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //縦方向に最大化
00478 /* 332 */       F_MAXIMIZE_H    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //横方向に最大化 //2001.02.10 by MIK
00479 /* 333 */       F_MINIMIZE_ALL  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //すべて最小化                    //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00480 /* 334 */       F_REDRAW        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //再描画                     //Sept. 30, 2000 JEPRO 追加
00481 /* 335 */       F_WIN_OUTPUT    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //アウトプットウィンドウ表示   //Sept. 18, 2000 JEPRO 追加
00482 /* 336 */       F_BIND_WINDOW   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //結合して表示    2004.07.14 kazika / Design Oct. 1, 2004 genta
00483 /* 337 */       F_TOPMOST       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //常に手前に表示 2004.09.21 Moca
00484 /* 338 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00485 /* 339 */       F_WINLIST       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ウィンドウ一覧ポップアップ表示 // 2006.03.23 fon
00486 /* 340 */       F_GROUPCLOSE    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //グループを閉じる  // 2007.06.20 ryoji
00487 /* 341 */       F_NEXTGROUP     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のグループ    // 2007.06.20 ryoji
00488 /* 342 */       F_PREVGROUP     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のグループ    // 2007.06.20 ryoji
00489
00490 /* 支援(11段目残りの10個: 343-352) */
00491 /* 343 */       F_HOKAN         /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //入力補完
00492 /* 344 */       F_HELP_CONTENTS /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ヘルプ目次           //Nov. 25, 2000 JEPRO 追加
00493 /* 345 */       F_HELP_SEARCH   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ヘルプキーワード検索    //Nov. 25, 2000 JEPRO 追加
00494 /* 346 */       F_MENU_ALLFUNC  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //コマンド一覧            //Sept. 30, 2000 JEPRO 追加
00495 /* 347 */       F_EXTHELP1      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部ヘルプ１
00496 /* 348 */       F_EXTHTMLHELP   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部HTMLヘルプ
00497 /* 349 */       F_ABOUT         /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //バージョン情報 //Dec. 24, 2000 JEPRO 追加
00498 /* 350 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00499 /* 351 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00500 /* 352 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00501
00502 //2002.01.17 hor ｢その他｣のエリアを外部マクロ用に割当て
00503 /* 外部マクロ(12段目32個: 353-384) */
00504 /* 353 */       F_USERMACRO_0       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ①
00505 /* 354 */       F_USERMACRO_0+1     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ②
00506 /* 355 */       F_USERMACRO_0+2     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ③
00507 /* 356 */       F_USERMACRO_0+3     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ④
00508 /* 357 */       F_USERMACRO_0+4     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑤
00509 /* 358 */       F_USERMACRO_0+5     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑥
00510 /* 359 */       F_USERMACRO_0+6     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑦
00511 /* 360 */       F_USERMACRO_0+7     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑧
00512 /* 361 */       F_USERMACRO_0+8     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑨
00513 /* 362 */       F_USERMACRO_0+9     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑩
00514 /* 363 */       F_USERMACRO_0+10    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑪
00515 /* 364 */       F_USERMACRO_0+11    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑫
00516 /* 365 */       F_USERMACRO_0+12    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑬
00517 /* 366 */       F_USERMACRO_0+13    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑭
00518 /* 367 */       F_USERMACRO_0+14    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑮
00519 /* 368 */       F_USERMACRO_0+15    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑯
00520 /* 369 */       F_USERMACRO_0+16    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑰
00521 /* 370 */       F_USERMACRO_0+17    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑱
00522 /* 371 */       F_USERMACRO_0+18    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑲
00523 /* 372 */       F_USERMACRO_0+19    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑳
00524 /* 373 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00525 /* 374 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00526 /* 375 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00527 /* 376 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00528 /* 377 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00529 /* 378 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00530 /* 379 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00531 /* 380 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00532 /* 381 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00533 /* 382 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00534 /* 383 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00535 /* 384 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */    //最終行用ダミー(Jepro note: 最終行末にはカンマを付けないこと)
00536
00537 };
00538     int tbd_num = _countof( tbd );
00539     BYTE    style;  //@@@ 2002.06.15 MIK
00540
00541     for( int i = 0; i < tbd_num; i++ ){
00542         switch( tbd[i] )    //@@@ 2002.06.15 MIK
00543         {
00544         case F_FILEOPEN_DROPDOWN:
00545             style = TBSTYLE_DROPDOWN;   //ドロップダウン
00546             break;
00547
00548         case F_SEARCH_BOX:
00549             style = TBSTYLE_COMBOBOX;   //コンボボックス
00550             break;
00551
00552         default:
00553             style = TBSTYLE_BUTTON; //ボタン
00554             break;
00555         }
00556
00557         //  m_tbMyButton[0]にはセパレータが入っているため。
00558         SetTBBUTTONVal(
00559             &m_tbMyButton[i+1],
00560             i,
00561             tbd[i],             //  tbd[i].idCommand,
00562             TBSTATE_ENABLED,    //  tbd[i].fsState,
00563             style /*TBSTYLE_BUTTON*/,       //  tbd[i].fsStyle,
00564             0,                  //  tbd[i].dwData,
00565             0                   //  tbd[i].iString
00566         );
00567     }
00568
00569     // ツールバー改行用の仮想ボタン（実際は表示されない） // 20050809 aroka
00570     SetTBBUTTONVal(
00571         &m_tbMyButton[tbd_num],
00572         0,
00573         F_MENU_NOT_USED_FIRST,          //  tbd[i].idCommand,
00574         TBSTATE_ENABLED|TBSTATE_WRAP,   //  tbd[i].fsState,
00575         TBSTYLE_SEP,            //  tbd[i].fsStyle,
00576         0,                      //  tbd[i].dwData,
00577         0                       //  tbd[i].iString
00578     );
00579     m_nMyButtonNum = tbd_num + 1;   //  + 1は、セパレータの分
00580     return;
00581 }
00582
00583
00584 CMenuDrawer::~CMenuDrawer()
00585 {
00586     if( NULL != m_hFontMenu ){
00587         ::DeleteObject( m_hFontMenu );
00588         m_hFontMenu = NULL;
00589     }
00590     if( NULL != m_hFontMenuUndelLine ){
00591         ::DeleteObject( m_hFontMenuUndelLine );
00592         m_hFontMenuUndelLine = NULL;
00593     }
00594     return;
00595 }
00596
00597 void CMenuDrawer::Create( HINSTANCE hInstance, HWND hWndOwner, CImageListMgr* pcIcons )
00598 {
00599     m_hInstance = hInstance;
00600     m_hWndOwner = hWndOwner;
00601     m_pcIcons = pcIcons;
00602
00603     return;
00604 }
00605
00606
00607 void CMenuDrawer::ResetContents( void )
00608 {
00609     int     i;
00610     LOGFONT lf;
00611     for( i = 0; i < m_nMenuItemNum; ++i ){
00612         m_cmemMenuItemStrArr[i].SetString(_T(""));
00613         m_nMenuItemFuncArr[i] = 0;
00614     }
00615     m_nMenuItemNum = 0;
00616
00617     NONCLIENTMETRICS    ncm;
00618     ncm.cbSize = sizeof( ncm );
00619     ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(ncm), (PVOID)&ncm, 0 );
00620
00621     m_nMenuHeight = ncm.iMenuHeight;
00622     if( 21 > m_nMenuHeight ){
00623         m_nMenuHeight = 21;
00624     }
00625
00626     if( NULL != m_hFontMenu ){
00627         ::DeleteObject( m_hFontMenu );
00628         m_hFontMenu = NULL;
00629     }
00630     if( NULL != m_hFontMenuUndelLine ){
00631         ::DeleteObject( m_hFontMenuUndelLine );
00632         m_hFontMenuUndelLine = NULL;
00633     }
00634     lf = ncm.lfMenuFont;
00635     m_hFontMenu = ::CreateFontIndirect( &lf );
00636     lf.lfUnderline = TRUE;
00637     m_hFontMenuUndelLine = ::CreateFontIndirect( &lf );
00638 //@@@ 2002.01.03 YAZAKI 不使用のため
00639 //  m_nMaxTab = 0;
00640 //  m_nMaxTabLen = 0;
00641     return;
00642 }
00643
00644
00645
00646
00647 /* メニューアイテムの描画サイズを計算 */
00648 int CMenuDrawer::MeasureItem( int nFuncID, int* pnItemHeight )
00649 {
00650
00651
00652     *pnItemHeight = m_nMenuHeight;
00653     const TCHAR* pszLabel;
00654     RECT rc;
00655     HDC hdc;
00656     HFONT hFontOld;
00657
00658     if( NULL == ( pszLabel = GetLabel( nFuncID ) ) ){
00659         return 0;
00660     }
00661     hdc = ::GetDC( m_hWndOwner );
00662     hFontOld = (HFONT)::SelectObject( hdc, m_hFontMenu );
00663     ::DrawText( hdc, pszLabel, _tcslen( pszLabel ), &rc, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_CALCRECT );
00664     ::SelectObject( hdc, hFontOld );
00665     ::ReleaseDC( m_hWndOwner, hdc );
00666
00667
00668 //  *pnItemHeight = 20;
00669 //  *pnItemHeight = 2 + 15 + 1;
00670     //@@@ 2002.2.2 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
00671     *pnItemHeight = GetSystemMetrics(SM_CYMENU);
00672
00673     return rc.right - rc.left + 20 + 8;
00674 //  return m_nMaxTab + 16 + m_nMaxTabLen;
00675
00676 }
00677
00678 /* メニュー項目を追加 */
00679 void CMenuDrawer::MyAppendMenu(
00680     HMENU           hMenu,
00681     int             nFlag,
00682     int             nFuncId,
00683     const TCHAR*    pszLabel,
00684     BOOL            bAddKeyStr,
00685     int             nForceIconId    //お気に入り   //@@@ 2003.04.08 MIK
00686 )
00687 {
00688     TCHAR       szLabel[256];
00689     int         nFlagAdd = 0;
00690     int         i;
00691
00692     if( nForceIconId == -1 ) nForceIconId = nFuncId;    //お気に入り   //@@@ 2003.04.08 MIK
00693
00694     szLabel[0] = _T('\0');
00695     if( NULL != pszLabel ){
00696         _tcsncpy( szLabel, pszLabel, _countof( szLabel ) - 1 );
00697         szLabel[ _countof( szLabel ) - 1 ] = _T('\0');
00698     }
00699     if( nFuncId != 0 ){
00700         /* メニューラベルの作成 */
00701         CKeyBind::GetMenuLabel(
00702             m_hInstance,
00703             m_pShareData->m_nKeyNameArrNum,
00704             m_pShareData->m_pKeyNameArr,
00705             nFuncId,
00706             szLabel,
00707             bAddKeyStr
00708          );
00709
00710         /* アイコン用ビットマップを持つものは、オーナードロウにする */
00711
00712         if( m_nMenuItemNum + 1 > MAX_MENUITEMS ){
00713 			::MYMESSAGEBOX_A(    NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
00714                 "CMenuDrawer::MyAppendMenu()エラー\n"
00715                 "\n"
00716                 "CMenuDrawerが管理できるメニューアイテムの上限はCMenuDrawer::MAX_MENUITEMS==%dです。\n ",
00717                 MAX_MENUITEMS
00718             );
00719         }
00720         else{
00721
00722             m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = -1;
00723             m_nMenuItemFuncArr[m_nMenuItemNum] = nFuncId;
00724             m_cmemMenuItemStrArr[m_nMenuItemNum].SetString( szLabel, _tcslen( szLabel ) );
00725 //#ifdef _DEBUG
00726             /* メニュー項目をオーナー描画にする */
00727             /* メニューにアイコンを表示する */
00728             if( m_pShareData->m_Common.m_sWindow.m_bMenuIcon ){
00729                 nFlagAdd = MF_OWNERDRAW;
00730             }
00731 //#endif
00732             /* 機能のビットマップがあるかどうか調べておく */
00733 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00734 //          for( i = 0; i < m_cShareData.m_nMyButtonNum; ++i ){
00735 //              if( nFuncId == m_cShareData.m_tbMyButton[i].idCommand ){
00736 //                  /* 機能のビットマップの情報を覚えておく */
00737 //                  m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = m_cShareData.m_tbMyButton[i].iBitmap;
00738 //                  break;
00739 //              }
00740 //          }
00741             for( i = 0; i < m_nMyButtonNum; ++i ){
00742                 //if( nFuncId == m_tbMyButton[i].idCommand ){
00743                 if( nForceIconId == m_tbMyButton[i].idCommand ){    //お気に入り   //@@@ 2003.04.08 MIK
00744                     /* 機能のビットマップの情報を覚えておく */
00745                     m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = m_tbMyButton[i].iBitmap;
00746                     break;
00747                 }
00748             }
00749             m_nMenuItemNum++;
00750         }
00751     }
00752
00753     MENUITEMINFO mii;
00754     memset_raw( &mii, 0, sizeof( mii ) );
00755     //  Aug. 31, 2001 genta
00756     mii.cbSize = SIZEOF_MENUITEMINFO; //Win95対策済みのsizeof(MENUITEMINFO)値
00757
00758     mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
00759     mii.fType = 0;
00760     if( MF_OWNERDRAW    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_OWNERDRAW;
00761     if( MF_SEPARATOR    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_SEPARATOR;
00762     if( MF_STRING       & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_STRING;
00763     if( MF_MENUBREAK    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_MENUBREAK;
00764     if( MF_MENUBARBREAK & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_MENUBARBREAK;
00765
00766     mii.fState = 0;
00767     if( MF_GRAYED       & ( nFlag | nFlagAdd ) ) mii.fState |= MFS_GRAYED;
00768     if( MF_CHECKED      & ( nFlag | nFlagAdd ) ) mii.fState |= MFS_CHECKED;
00769
00770     mii.wID = nFuncId;
00771     mii.hSubMenu = (nFlag&MF_POPUP)?((HMENU)nFuncId):NULL;
00772     mii.hbmpChecked = NULL;
00773     mii.hbmpUnchecked = NULL;
00774     mii.dwItemData = (ULONG_PTR)this;
00775     mii.dwTypeData = szLabel;
00776     mii.cch = 0;
00777
00778     // メニュー内の指定された位置に、新しいメニュー項目を挿入します。
00779     ::InsertMenuItem( hMenu, 0xFFFFFFFF, TRUE, &mii );
00780     return;
00781 }
00782
00783
00784
00785
00790 void CMenuDrawer::DrawItem( DRAWITEMSTRUCT* lpdis )
00791 {
00792
00793 //  int         i;
00794     int         j;
00795     int         nItemIndex;
00796     HDC         hdc;
00797     int         nItemStrLen;
00798     HFONT       hFontOld;
00799     int         nIndentLeft;
00800     int         nIndentRight;
00801     int         nTextTopMargin;
00802     RECT        rc1;
00803     HBRUSH      hBrush;
00804     RECT        rcText;
00805     int         nBkModeOld;
00806
00807     nIndentLeft = 26;
00808     nIndentRight = 8;
00809     nTextTopMargin = 3;
00810
00811 /*  for( i = 0; i < m_nMenuItemNum; ++i ){
00812         if( (int)lpdis->itemID == m_nMenuItemFuncArr[i] ){
00813             break;
00814         }
00815     }
00816     if( i >= m_nMenuItemNum ){
00817         return;
00818     }
00819     nItemIndex = i;
00820 */
00821 //@@@ 2002.01.03 YAZAKI 極力メンバ関数を使用するように。
00822     nItemIndex = Find( (int)lpdis->itemID );
00823     const TCHAR*    pszItemStr;
00824     pszItemStr = m_cmemMenuItemStrArr[nItemIndex].GetStringPtr( &nItemStrLen );
00825
00826     hdc = lpdis->hDC;
00827     hFontOld = (HFONT)::SelectObject( hdc, m_hFontMenu );
00828
00829
00830     /* アイテム矩形塗りつぶし */
00831     hBrush = ::GetSysColorBrush( COLOR_MENU );
00832     ::FillRect( hdc, &lpdis->rcItem, hBrush );
00833
00834
00835     /* アイテムが選択されている */
00836     nBkModeOld = ::SetBkMode( hdc, TRANSPARENT );
00837     if( lpdis->itemState & ODS_SELECTED ){
00838         hBrush = ::GetSysColorBrush( COLOR_HIGHLIGHT );
00839         rc1 = lpdis->rcItem;
00840         if( -1 != m_nMenuItemBitmapIdxArr[nItemIndex] || lpdis->itemState & ODS_CHECKED ){
00841             rc1.left += (nIndentLeft - 2);
00842         }
00843         /* 選択ハイライト矩形 */
00844         ::FillRect( hdc, &rc1, hBrush );
00845
00846         /* アイテムが使用不可 */
00847         if( lpdis->itemState & ODS_DISABLED ){
00848             ::SetTextColor( hdc, ::GetSysColor( COLOR_MENU/*COLOR_3DSHADOW*/ ) );
00849         }else{
00850             ::SetTextColor( hdc, ::GetSysColor( COLOR_HIGHLIGHTTEXT/*COLOR_MENUTEXT*//*COLOR_3DHIGHLIGHT*/ ) );
00851         }
00852     }else{
00853         /* アイテムが使用不可 */
00854         if( lpdis->itemState & ODS_DISABLED ){
00855             ::SetTextColor( hdc, ::GetSysColor( COLOR_3DSHADOW ) );
00856         }else{
00857             ::SetTextColor( hdc, ::GetSysColor( COLOR_MENUTEXT ) );
00858         }
00859     }
00860
00861 #ifdef _DEBUG
00862     TCHAR   szText[1024];
00863     MENUITEMINFO mii;
00864     // メニュー項目に関する情報を取得します。
00865     memset_raw( &mii, 0, sizeof( mii ) );
00866
00867     mii.cbSize = SIZEOF_MENUITEMINFO; // Win95対策済みのsizeof(MENUITEMINFO)値
00868
00869     mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
00870     mii.fType = MFT_STRING;
00871     _tcscpy( szText, _T("--unknown--") );
00872     mii.dwTypeData = szText;
00873     mii.cch = _countof( szText ) - 1;
00874     if( 0 != ::GetMenuItemInfo( (HMENU)lpdis->hwndItem, lpdis->itemID, FALSE, &mii )
00875      && NULL == mii.hSubMenu
00876      && 0 == /* CEditWnd */::FuncID_To_HelpContextID( (EFunctionCode)lpdis->itemID )    /* 機能IDに対応するメニューコンテキスト番号を返す */
00877     ){
00878         //@@@ 2001.12.21 YAZAKI
00879         if( lpdis->itemState & ODS_SELECTED ){
00880             ::SetTextColor( hdc, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );    //  ハイライトカラー
00881         }
00882         else {
00883             ::SetTextColor( hdc, RGB( 0, 0, 255 ) );    //  青くしてる。
00884         }
00885 //      ::SetTextColor( hdc, RGB( 0, 0, 255 ) );
00886     }
00887 #endif
00888
00889     rcText = lpdis->rcItem;
00890     rcText.left += nIndentLeft;
00891     rcText.right -= nIndentRight;
00892
00893     /* TAB文字の前と後ろに分割してテキストを描画する */
00894     for( j = 0; j < nItemStrLen; ++j ){
00895         if( pszItemStr[j] == _T('\t') ){
00896             break;
00897         }
00898     }
00899     /* TAB文字の後ろ側のテキストを描画する */
00900     if( j < nItemStrLen ){
00901         /* アイテムが使用不可 */
00902         if( lpdis->itemState & ODS_DISABLED && !(lpdis->itemState & ODS_SELECTED)  ){
00903             COLORREF colOld = ::SetTextColor( hdc, ::GetSysColor( COLOR_3DHIGHLIGHT ) );
00904                 rcText.left++;
00905                 rcText.top++;
00906                 rcText.right++;
00907                 rcText.bottom++;
00908                 ::DrawText(
00909                     hdc,
00910                     &pszItemStr[j + 1],
00911                     _tcslen( &pszItemStr[j + 1] ),
00912                     &rcText,
00913                     DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_RIGHT
00914                 );
00915                 rcText.left--;
00916                 rcText.top--;
00917                 rcText.right--;
00918                 rcText.bottom--;
00919                 ::SetTextColor( hdc, colOld );
00920         }
00921         ::DrawText(
00922             hdc,
00923             &pszItemStr[j + 1],
00924             _tcslen( &pszItemStr[j + 1] ),
00925             &rcText,
00926             DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_RIGHT
00927         );
00928     }
00929     /* TAB文字の前側のテキストを描画する */
00930     /* アイテムが使用不可 */
00931     if( lpdis->itemState & ODS_DISABLED && !(lpdis->itemState & ODS_SELECTED)  ){
00932         COLORREF colOld = ::SetTextColor( hdc, ::GetSysColor( COLOR_3DHIGHLIGHT ) );
00933
00934         rcText.left++;
00935         rcText.top++;
00936         rcText.right++;
00937         rcText.bottom++;
00938         ::DrawText( hdc, pszItemStr, j, &rcText, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_LEFT );
00939
00940         rcText.left--;
00941         rcText.top--;
00942         rcText.right--;
00943         rcText.bottom--;
00944         ::SetTextColor( hdc, colOld );
00945     }
00946     ::DrawText(
00947         hdc,
00948         pszItemStr,
00949         j,
00950         &rcText,
00951         DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_LEFT
00952     );
00953     ::SelectObject( hdc, hFontOld  );
00954     ::SetBkMode( hdc, nBkModeOld );
00955
00956     /* チェック状態なら凹んだ3D枠を描画する */
00957     if( lpdis->itemState & ODS_CHECKED ){
00958         /* アイコンを囲む枠 */
00959         CSplitBoxWnd::Draw3dRect(
00960             hdc, lpdis->rcItem.left + 1, lpdis->rcItem.top,
00961             2 + 16 + 2, lpdis->rcItem.bottom - lpdis->rcItem.top,
00962             ::GetSysColor( COLOR_3DSHADOW ),
00963             ::GetSysColor( COLOR_3DHILIGHT )
00964         );
00965         /* アイテムが選択されていない場合は3D枠の中を明るく塗りつぶす */
00966         if( lpdis->itemState & ODS_SELECTED ){
00967         }else{
00968 //          HBRUSH hbr = ::CreateSolidBrush( ::GetSysColor( COLOR_3DHILIGHT ) );
00969 //          HBRUSH hbr = ::CreateSolidBrush( ::GetSysColor( COLOR_3DLIGHT ) );
00970             HBRUSH hbr = ::GetSysColorBrush( COLOR_3DLIGHT );
00971             HBRUSH hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
00972             RECT rc;
00973             ::SetRect( &rc, lpdis->rcItem.left + 1 + 1, lpdis->rcItem.top + 1, lpdis->rcItem.left + 1 + 1 + 16 + 2, lpdis->rcItem.top + 1+ 15 + 2 );
00974             ::FillRect( hdc, &rc, hbr );
00975             ::SelectObject( hdc, hbrOld );
00976 //          ::DeleteObject( hbr );
00977         }
00978     }
00979
00980
00981     /* 機能の画像が存在するならメニューアイコン?を描画する */
00982     if( -1 != m_nMenuItemBitmapIdxArr[nItemIndex] ){
00983         /* 3D枠を描画する */
00984         /* アイテムが選択されている */
00985         if( lpdis->itemState & ODS_SELECTED ){
00986             /* アイテムが使用不可 */
00987             if( lpdis->itemState & ODS_DISABLED /*&& !(lpdis->itemState & ODS_SELECTED)*/  ){
00988             }else{
00989                 if( lpdis->itemState & ODS_CHECKED ){
00990                 }else{
00991                     /* アイコンを囲む枠 */
00992                     CSplitBoxWnd::Draw3dRect(
00993                         hdc, lpdis->rcItem.left + 1, lpdis->rcItem.top,
00994                         2 + 16 + 2, lpdis->rcItem.bottom - lpdis->rcItem.top,
00995                         ::GetSysColor( COLOR_3DHILIGHT ),
00996                         ::GetSysColor( COLOR_3DSHADOW )
00997                      );
00998                 }
00999             }
01000         }
01001
01002         /* アイテムが使用不可 */
01003         if( lpdis->itemState & ODS_DISABLED ){
01004             /* 淡色アイコン */
01005             // 2003.09.04 Moca SetTextColorする必要は無い
01006 //          COLORREF cOld;
01007 //          cOld = SetTextColor( hdc, GetSysColor(COLOR_3DSHADOW) );    //Oct. 24, 2000 これは標準ではRGB(128,128,128)と同じ
01008 //          cOld = SetTextColor( hdc, RGB(132,132,132) );   //Oct. 24, 2000 JEPRO もう少し薄くした
01009             m_pcIcons->Draw( m_nMenuItemBitmapIdxArr[nItemIndex],
01010                 hdc,    //  Target DC
01011                 lpdis->rcItem.left + 1, //  X
01012                 //@@@ 2002.1.29 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
01013                 //lpdis->rcItem.top + 1,        //  Y
01014                 lpdis->rcItem.top + GetSystemMetrics(SM_CYMENU)/2 - 8,  //  Y
01015                 ILD_MASK
01016             );
01017 //          SetTextColor( hdc, cOld );
01018
01019         }else{
01020 /*
01021             COLORREF colBk;
01022             if( lpdis->itemState & ODS_CHECKED && !( lpdis->itemState & ODS_SELECTED ) ){
01023                 colBk = ::GetSysColor( COLOR_3DLIGHT );
01024 //              colBk = ::GetSysColor( COLOR_3DHILIGHT );
01025             }else{
01026                 colBk = ::GetSysColor( COLOR_MENU );
01027             }
01028 */
01029             /* 通常のアイコン */
01030             m_pcIcons->Draw( m_nMenuItemBitmapIdxArr[nItemIndex],
01031                 hdc,    //  Target DC
01032                 lpdis->rcItem.left + 1 + 1, //  X
01033                 //@@@ 2002.1.29 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
01034                 lpdis->rcItem.top + GetSystemMetrics(SM_CYMENU)/2 - 8,  //  Y
01035                 //lpdis->rcItem.top + 1,        //  Y
01036                 ILD_NORMAL
01037             );
01038         }
01039
01040     }else{
01041         if( lpdis->itemState & ODS_CHECKED ){
01042             /* アイコンがないチェックマークの表示 */
01043             int nX, nY;
01044             nX = lpdis->rcItem.left + 1 + 8;
01045             nY = lpdis->rcItem.top + 8;
01046             ::MoveToEx( hdc, nX, nY, NULL );
01047             ::LineTo( hdc, nX + 1, nY + 1 );
01048             ::LineTo( hdc, nX + 4, nY - 2 );
01049
01050             nY++;
01051             ::MoveToEx( hdc, nX, nY, NULL );
01052             ::LineTo( hdc, nX + 1, nY + 1 );
01053             ::LineTo( hdc, nX + 4, nY - 2 );
01054
01055         }
01056     }
01057
01058     return;
01059 }
01060
01061
01062 /* ツールバーボタンリストのアイテム描画
01063     @date 2005.08.09 aroka m_nMyButtonNum隠蔽のため追加
01064     @retval みつからなければ-1を返す。
01065 */
01066 int CMenuDrawer::FindIndexFromCommandId( int idCommand )
01067 {
01068     int nIndex = -1;
01069     for( int i = 1; i < m_nMyButtonNum; i++ ){
01070         if( m_tbMyButton[i].idCommand == idCommand ){
01071             nIndex = i;
01072             break;
01073         }
01074     }
01075
01076     return nIndex;
01077 }
01078
01079 int CMenuDrawer::Find( int nFuncID )
01080 {
01081     int i;
01082     for( i = 0; i < m_nMenuItemNum; ++i ){
01083         if( (int)nFuncID == m_nMenuItemFuncArr[i] ){
01084             break;
01085         }
01086     }
01087     if( i >= m_nMenuItemNum ){
01088         return -1;
01089     }else{
01090         return i;
01091     }
01092 }
01093
01094
01095 const TCHAR* CMenuDrawer::GetLabel( int nFuncID )
01096 {
01097     int i;
01098     if( -1 == ( i = Find( nFuncID ) ) ){
01099         return NULL;
01100     }
01101     return m_cmemMenuItemStrArr[i].GetStringPtr();
01102 }
01103
01104 TCHAR CMenuDrawer::GetAccelCharFromLabel( const TCHAR* pszLabel )
01105 {
01106     int i;
01107     for( i = 0; i + 1 < (int)_tcslen( pszLabel ); ++i ){
01108         if( _T('&') == pszLabel[i] ){
01109             if( _T('&') == pszLabel[i + 1]  ){
01110                 i++;
01111             }else{
01112                 return _totupper( pszLabel[i + 1] );
01113             }
01114         }
01115     }
01116     return _T('\0');
01117 }
01118
01119
01120
01121
01122
01124 LRESULT CMenuDrawer::OnMenuChar( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01125 {
01126     TCHAR               chUser;
01127     UINT                fuFlag;
01128     HMENU               hmenu;
01129     int i;
01130     chUser = (TCHAR) LOWORD(wParam);    // character code
01131     fuFlag = (UINT) HIWORD(wParam);     // menu flag
01132     hmenu = (HMENU) lParam;             // handle to menu
01133 //  MYTRACE_A( "::GetMenuItemCount( %xh )==%d\n", hmenu, ::GetMenuItemCount( hmenu ) );
01134
01135     //  Oct. 27, 2000 genta
01136     if( 0 <= chUser && chUser < ' '){
01137         chUser += '@';
01138     }
01139     else {
01140         chUser = _totupper( chUser );
01141     }
01142
01143     struct WorkData{
01144         int             idx;
01145         MENUITEMINFO    mii;
01146     };
01147
01148     WorkData vecAccel[100];
01149     int nAccelNum;
01150     int nAccelSel;
01151     nAccelNum = 0;
01152     nAccelSel = 99999;
01153     for( i = 0; i < ::GetMenuItemCount( hmenu ); i++ ){
01154         TCHAR   szText[1024];
01155         // メニュー項目に関する情報を取得します。
01156         MENUITEMINFO        mii;
01157         memset_raw( &mii, 0, sizeof( mii ) );
01158
01159         mii.cbSize = SIZEOF_MENUITEMINFO; //Win95対策済みのsizeof(MENUITEMINFO)値
01160
01161         mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
01162         mii.fType = MFT_STRING;
01163         _tcscpy( szText, _T("--unknown--") );
01164         mii.dwTypeData = szText;
01165         mii.cch = _countof( szText ) - 1;
01166         if( 0 == ::GetMenuItemInfo( hmenu, i, TRUE, &mii ) ){
01167             continue;
01168         }
01169         const TCHAR* pszLabel;
01170         if( NULL == ( pszLabel = GetLabel( mii.wID ) ) ){
01171             continue;
01172         }
01173         if( chUser == GetAccelCharFromLabel( pszLabel ) ){
01174             vecAccel[nAccelNum].idx = i;
01175             vecAccel[nAccelNum].mii = mii;
01176             if( /*-1 == nAccelSel ||*/ MFS_HILITE & mii.fState ){
01177                 nAccelSel = nAccelNum;
01178             }
01179             nAccelNum++;
01180         }
01181     }
01182 //  MYTRACE_A( "%d\n", (int)mapAccel.size() );
01183     if( 0 == nAccelNum ){
01184         return  MAKELONG( 0, MNC_IGNORE );
01185     }
01186     if( 1 == nAccelNum ){
01187         return  MAKELONG( vecAccel[0].idx, MNC_EXECUTE );
01188     }
01189 //  MYTRACE_A( "nAccelSel=%d nAccelNum=%d\n", nAccelSel, nAccelNum );
01190     if( nAccelSel + 1 >= nAccelNum ){
01191 //      MYTRACE_A( "vecAccel[0].idx=%d\n", vecAccel[0].idx );
01192         return  MAKELONG( vecAccel[0].idx, MNC_SELECT );
01193     }else{
01194 //      MYTRACE_A( "vecAccel[nAccelSel + 1].idx=%d\n", vecAccel[nAccelSel + 1].idx );
01195         return  MAKELONG( vecAccel[nAccelSel + 1].idx, MNC_SELECT );
01196     }
01197 }
01198
01199 //  Jul. 21, 2003 genta
01200 //  コメントアウトされていた部分を削除 (CImageListで再利用)
01201
01202
01203 /* TBBUTTON構造体にデータをセット */
01204 void CMenuDrawer::SetTBBUTTONVal(
01205     TBBUTTON*   ptb,
01206     int         iBitmap,
01207     int         idCommand,
01208     BYTE        fsState,
01209     BYTE        fsStyle,
01210     DWORD_PTR   dwData,
01211     INT_PTR     iString
01212 )
01213 {
01214     /*
01215 typedef struct _TBBUTTON {
01216     int iBitmap;    // ボタン イメージの 0 から始まるインデックス
01217     int idCommand;  // ボタンが押されたときに送られるコマンド
01218     BYTE fsState;   // ボタンの状態--以下を参照
01219     BYTE fsStyle;   // ボタン スタイル--以下を参照
01220     DWORD dwData;   // アプリケーション-定義された値
01221     int iString;    // ボタンのラベル文字列の 0 から始まるインデックス
01222 } TBBUTTON;
01223 */
01224
01225     ptb->iBitmap    = iBitmap;
01226     ptb->idCommand  = idCommand;
01227     ptb->fsState    = fsState;
01228     ptb->fsStyle    = fsStyle;
01229     ptb->dwData     = dwData;
01230     ptb->iString    = iString;
01231     return;
01232 }
01233
01234 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMenuDrawer.h

sakura_core

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 行で定義されています。

参照元 CMainToolBar::CreateToolBar().

#define TBSTYLE_COMBOBOX ((BYTE)0x40)

CMenuDrawer.h の 33 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), と CMainToolBar::CreateToolBar().

#define TBSTYLE_DROPDOWN 0x0008

CMenuDrawer.h の 35 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), と CMainToolBar::CreateToolBar().

#define TBSTYLE_EX_DRAWDDARROWS 0x00000001

CMenuDrawer.h の 41 行で定義されています。

参照元 CMainToolBar::CreateToolBar().

Sakura-Editorに対してSat Nov 17 20:26:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMenuDrawer.h ソースファイル

sakura_core

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 hMenu, int nFlag, int nFuncId, const TCHAR*     pszLabel, BOOL bAddKeyStr = TRUE, int nForceIconId = -1 ); /* メニュー項目を追加 */   //お気に入り   //@@@ 2003.04.08 MIK
00070     void MyAppendMenu( HMENU hMenu, int nFlag, int nFuncId, const NOT_TCHAR* pszLabel, BOOL bAddKeyStr = TRUE, int nForceIconId = -1 )
00071     {
00072         MyAppendMenu(hMenu,nFlag,nFuncId,to_tchar(pszLabel),bAddKeyStr,nForceIconId);
00073     }
00074     void MyAppendMenuSep( HMENU hMenu, int nFlag, int nFuncId, const TCHAR* pszLabel, BOOL bAddKeyStr = TRUE, int nForceIconId = -1 )
00075     {
00076         MyAppendMenu(hMenu,nFlag,nFuncId,pszLabel,bAddKeyStr,nForceIconId);
00077     }
00078     int MeasureItem( int, int* );   /* メニューアイテムの描画サイズを計算 */
00079     void DrawItem( DRAWITEMSTRUCT* );   /* メニューアイテム描画 */
00080     LRESULT OnMenuChar( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
00081     int FindIndexFromCommandId( int idCommand ); /* ツールバーIndexの取得 */// 20050809 aroka
00082     int GetIconId( int nIndex ){ return m_tbMyButton[nIndex].iBitmap; }
00083
00084     TBBUTTON getButton( int index ) const{ return m_tbMyButton[index]; } // 20050809 aroka
00085 private:
00086     int Find( int nFuncID );
00087     const TCHAR* GetLabel( int nFuncID );
00088     TCHAR GetAccelCharFromLabel( const TCHAR* pszLabel );
00089
00090
00091 private:
00092     DLLSHAREDATA*   m_pShareData;
00093
00094     HINSTANCE       m_hInstance;
00095     HWND            m_hWndOwner;
00096
00097     int             m_nMenuItemNum;
00098 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00099     TBBUTTON        m_tbMyButton[MAX_TOOLBARBUTTONS+1]; /* ツールバーのボタン +1はセパレータ */
00100     int             m_nMyButtonNum;
00101
00102     int             m_nMenuItemBitmapIdxArr[MAX_MENUITEMS];
00103     int             m_nMenuItemFuncArr[MAX_MENUITEMS];
00104     CNativeT        m_cmemMenuItemStrArr[MAX_MENUITEMS];
00105     int             m_nMenuHeight;
00106     HFONT           m_hFontMenu;
00107     HFONT           m_hFontMenuUndelLine;
00108
00109     //  Oct. 16, 2000 genta
00110     CImageListMgr   *m_pcIcons; //  Image List
00111
00112 protected:
00113     /*
00114     ||  実装ヘルパ関数
00115     */
00116     int GetData( void );    /* ダイアログデータの取得 */
00117
00118 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00119     void SetTBBUTTONVal( TBBUTTON*, int, int, BYTE, BYTE, DWORD_PTR, INT_PTR ); /* TBBUTTON構造体にデータをセット */
00120 };
00121
00122
00123
00125 #endif /* _CMENUDRAWER_H_ */
00126
00127
00128 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMigemo.cpp

sakura_core

CMigemo.cpp

C/Migemo インターフェース [詳細]

#include "stdafx.h"
#include <io.h>
#include "CMigemo.h"
#include "Csharedata.h"
#include "util/module.h"
#include "util/file.h"

CMigemo.cppのインクルード依存関係図

ソースコードを見る。

説明

C/Migemo インターフェース

作者:
isearch
日付:
2004.09.14 新規作成

CMigemo.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMigemo.cpp ソースファイル

sakura_core

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 "util/module.h"
00021 #include "util/file.h"
00022
00023 //-----------------------------------------
00024 //  DLL 初期化関数
00025 //-----------------------------------------
00026 CMigemo* CMigemo::_instance;
00027
00028 CMigemo* CMigemo::getInstance(){
00029     return _instance;
00030 }
00031
00032 CMigemo::CMigemo() {
00033     _instance = this;
00034 }
00035
00036
00037 int CMigemo::InitDll(void)
00038 {
00039     //  staticにしてはいけないらしい
00040
00041     const ImportTable table[] = {
00042         &m_migemo_open              ,"migemo_open"              ,
00043         &m_migemo_close             ,"migemo_close"             ,
00044         &m_migemo_query             ,"migemo_query"             ,
00045         &m_migemo_release           ,"migemo_release"           ,
00046         &m_migemo_set_operator      ,"migemo_set_operator"      ,
00047         &m_migemo_get_operator      ,"migemo_get_operator"      ,
00048         &m_migemo_setproc_char2int  ,"migemo_setproc_char2int"  ,
00049         &m_migemo_setproc_int2char  ,"migemo_setproc_int2char"  ,
00050         &m_migemo_load              ,"migemo_load"              ,
00051         &m_migemo_is_enable         ,"migemo_is_enable"         ,
00052         NULL, 0
00053     };
00054
00055     if( ! RegisterEntries(table) ){
00056             return 1;
00057     }
00058
00059     if( ! migemo_open(NULL) )
00060         return 1;
00061
00062     return 0;
00063 }
00064
00065 int CMigemo::DeInitDll(void)
00066 {
00067     migemo_close();
00068     return 0;
00069 }
00070
00071 LPCTSTR CMigemo::GetDllName(LPCTSTR)
00072 {
00073     TCHAR* szDll;
00074     static TCHAR szDllName[_MAX_PATH];
00075     szDll = CShareData::getInstance()->GetShareData()->m_Common.m_sHelper.m_szMigemoDll;
00076
00077     if(_tcslen(szDll)==0){
00078         GetInidir( szDllName, _T("migemo.dll") );
00079         return ( _taccess( szDllName, 0 ) != -1 )? szDllName: _T("migemo.dll");
00080     }else{
00081         if(_IS_REL_PATH(szDll)){
00082             GetInidirOrExedir(szDllName , szDll);   // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00083             szDll = szDllName;
00084         }
00085         return szDll;
00086     }
00087     //return "migemo.dll";
00088 }
00089
00090 long CMigemo::migemo_open(char* dict)
00091 {
00092
00093     if (!IsAvailable())
00094         return 0;
00095
00096     m_migemo = (*m_migemo_open)(NULL);
00097
00098     if (m_migemo == NULL)
00099         return 0;
00100
00101     //if (!migemo_load(MIGEMO_DICTID_MIGEMO, path2))
00102     //  return 0;
00103
00104     return 1;
00105 }
00106 void CMigemo::migemo_close()
00107 {
00108     if (!IsAvailable() || (m_migemo == NULL))
00109         return;
00110
00111     (*m_migemo_close)(m_migemo);
00112
00113 }
00114 unsigned char* CMigemo::migemo_query(unsigned char* query)
00115 {
00116     if (!IsAvailable() || (m_migemo == NULL))
00117         return NULL;
00118
00119     return (*m_migemo_query)(m_migemo, query);
00120 }
00121 void CMigemo::migemo_release( unsigned char* string)
00122 {
00123     if (!IsAvailable() || (m_migemo == NULL))
00124         return;
00125
00126     (*m_migemo_release)(m_migemo, string);
00127
00128 }
00129 int CMigemo::migemo_set_operator(int index, unsigned char* op)
00130 {
00131     if (!IsAvailable() || (m_migemo == NULL))
00132         return 0;
00133
00134     return (*m_migemo_set_operator)(m_migemo, index, op);
00135
00136 }
00137 const unsigned char* CMigemo::migemo_get_operator(int index)
00138 {
00139     if (!IsAvailable() || (m_migemo == NULL))
00140         return NULL;
00141
00142     return (*m_migemo_get_operator)(m_migemo,index);
00143
00144 }
00145 void CMigemo::migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc)
00146 {
00147     if (!IsAvailable() || (m_migemo == NULL))
00148         return ;
00149
00150     (*m_migemo_setproc_char2int)(m_migemo,proc);
00151 }
00152 void CMigemo::migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc)
00153 {
00154     if (!IsAvailable() || (m_migemo == NULL))
00155         return;
00156
00157     (*m_migemo_setproc_int2char)(m_migemo,proc);
00158 }
00159
00160 int CMigemo::migemo_load_a(int dict_id, const char* dict_file)
00161 {
00162     if (!IsAvailable() || (m_migemo == NULL))
00163         return 0;
00164     return (*m_migemo_load)(m_migemo, dict_id, dict_file);
00165
00166 }
00167
00168 int CMigemo::migemo_load_w(int dict_id, const wchar_t* dict_file)
00169 {
00170     char szBuf[_MAX_PATH];
00171     wcstombs2(szBuf,dict_file,_countof(szBuf));
00172     return migemo_load_a(dict_id,szBuf);
00173 }
00174
00175 int CMigemo::migemo_is_enable()
00176 {
00177     if (!IsAvailable() || (m_migemo == NULL))
00178         return 0;
00179
00180     return (*m_migemo_is_enable)(m_migemo);
00181 }
00182
00183 int CMigemo::migemo_load_all()
00184 {
00185     if( !migemo_is_enable()){
00186
00187         TCHAR* szDict = CShareData::getInstance()->GetShareData()->m_Common.m_sHelper.m_szMigemoDict;
00188         TCHAR path[MAX_PATH];
00189         //char path2[MAX_PATH];
00190         TCHAR *ppath;
00191
00192         if (_tcslen(szDict) == 0){
00193             GetInidirOrExedir(path,_T("dict")); // 2007.05.20 ryoji 相対パスは設定ファイルからのパスを優先
00194         }
00195         else{
00196             if (_IS_REL_PATH(szDict)){
00197                 GetInidirOrExedir(path,szDict); // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00198             }else{
00199                 _tcscpy(path,szDict);
00200             }
00201         }
00202         ppath = &path[_tcslen(path)];
00203         *(ppath++) = _T('\\');
00204
00205         _tcscpy(ppath,_T("migemo-dict"));
00206         migemo_load_t(MIGEMO_DICTID_MIGEMO,path);
00207         _tcscpy(ppath,_T("han2zen.dat"));
00208         migemo_load_t(MIGEMO_DICTID_HAN2ZEN,path);
00209         _tcscpy(ppath,_T("hira2kata.dat"));
00210         migemo_load_t(MIGEMO_DICTID_HIRA2KATA,path);
00211         _tcscpy(ppath,_T("roma2hira.dat"));
00212         migemo_load_t(MIGEMO_DICTID_ROMA2HIRA,path);
00213     }
00214     return 1;
00215 }
00216
00217
00218 CMigemo::~CMigemo()
00219 {
00220 }
00221
00222
00223 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMigemo.h

sakura_core

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
#define | migemo_load_t migemo_load_a

型定義

typedef int(* | MIGEMO_PROC_CHAR2INT )(unsigned char *, unsigned int *)
typedef int(* | MIGEMO_PROC_INT2CHAR )(unsigned int, unsigned char *)
typedef struct _migemo | migemo

説明

Migemo関連

C/Migemoアクセス関数

作者:
isearch
日付:
2004.09.14 新規作成

CMigemo.h で定義されています。

マクロ定義

#define MIGEMO_DICTID_HAN2ZEN 4

CMigemo.h の 30 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_HIRA2KATA 3

CMigemo.h の 29 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_INVALID 0

CMigemo.h の 26 行で定義されています。

#define MIGEMO_DICTID_MIGEMO 1

CMigemo.h の 27 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_ROMA2HIRA 2

CMigemo.h の 28 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define migemo_load_t migemo_load_a

CMigemo.h の 107 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_OPINDEX_NEST_IN 1

CMigemo.h の 34 行で定義されています。

#define MIGEMO_OPINDEX_NEST_OUT 2

CMigemo.h の 35 行で定義されています。

#define MIGEMO_OPINDEX_NEWLINE 5

CMigemo.h の 38 行で定義されています。

#define MIGEMO_OPINDEX_OR 0

CMigemo.h の 33 行で定義されています。

#define MIGEMO_OPINDEX_SELECT_IN 3

CMigemo.h の 36 行で定義されています。

#define MIGEMO_OPINDEX_SELECT_OUT 4

CMigemo.h の 37 行で定義されています。

#define MIGEMO_VERSION "1.1"

CMigemo.h の 23 行で定義されています。

型定義

typedef struct _migemo migemo

Migemoオブジェクト。migemo_open()で作成され、migemo_closeで破棄される。

CMigemo.h の 47 行で定義されています。

typedef int(* MIGEMO_PROC_CHAR2INT)(unsigned char *, unsigned int *)

CMigemo.h の 41 行で定義されています。

typedef int(* MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char *)

CMigemo.h の 42 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMigemo.h ソースファイル

sakura_core

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 Migemo はローマ字のまま日本語をインクリメンタル検索するためのツールです。
00018 */
00019
00020 #ifndef _SAKURA_MIGEMO_H_
00021 #define _SAKURA_MIGEMO_H_
00022
00023 #define MIGEMO_VERSION "1.1"
00024
00025 /* for migemo_load() */
00026 #define MIGEMO_DICTID_INVALID       0
00027 #define MIGEMO_DICTID_MIGEMO        1
00028 #define MIGEMO_DICTID_ROMA2HIRA     2
00029 #define MIGEMO_DICTID_HIRA2KATA     3
00030 #define MIGEMO_DICTID_HAN2ZEN       4
00031
00032 /* for migemo_set_operator()/migemo_get_operator().  see: rxgen.h */
00033 #define MIGEMO_OPINDEX_OR       0
00034 #define MIGEMO_OPINDEX_NEST_IN      1
00035 #define MIGEMO_OPINDEX_NEST_OUT     2
00036 #define MIGEMO_OPINDEX_SELECT_IN    3
00037 #define MIGEMO_OPINDEX_SELECT_OUT   4
00038 #define MIGEMO_OPINDEX_NEWLINE      5
00039
00040 /* see: rxgen.h */
00041 typedef int (*MIGEMO_PROC_CHAR2INT)(unsigned char*, unsigned int*);
00042 typedef int (*MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char*);
00043
00047 typedef struct _migemo migemo;
00048
00049
00050 #include "CDllHandler.h"
00051
00052 class SAKURA_CORE_API CMigemo : public CDllHandler {
00053
00054
00055 public:
00056     CMigemo() ;
00057     virtual ~CMigemo();
00058     static CMigemo* _instance;
00059     static CMigemo* getInstance();
00060
00061     //  Entry Point
00062 protected:
00063     //  Aug. 20, 2005 Aroka : 最適化オプションでデフォルトを__fastcallに変更しても
00064     //  影響を受けないようにする．
00065     typedef migemo*        (__cdecl *Proc_migemo_open)            (char* dict);
00066     typedef void           (__cdecl *Proc_migemo_close)           (migemo* object);
00067     typedef unsigned char* (__cdecl *Proc_migemo_query)           (migemo* object, unsigned char* query);
00068     typedef void           (__cdecl *Proc_migemo_release)         (migemo* object, unsigned char* string);
00069     typedef int            (__cdecl *Proc_migemo_set_operator)    (migemo* object, int index, unsigned char* op);
00070     typedef const uchar_t* (__cdecl *Proc_migemo_get_operator)    (migemo* object, int index);
00071     typedef void           (__cdecl *Proc_migemo_setproc_char2int)(migemo* object, MIGEMO_PROC_CHAR2INT proc);
00072     typedef void           (__cdecl *Proc_migemo_setproc_int2char)(migemo* object, MIGEMO_PROC_INT2CHAR proc);
00073     typedef int            (__cdecl *Proc_migemo_load)            (migemo* obj, int dict_id, const char* dict_file);
00074     typedef int            (__cdecl *Proc_migemo_is_enable)       (migemo* obj);
00075
00076     Proc_migemo_open                  m_migemo_open                ;
00077     Proc_migemo_close                 m_migemo_close               ;
00078     Proc_migemo_query                 m_migemo_query               ;
00079     Proc_migemo_release               m_migemo_release             ;
00080     Proc_migemo_set_operator          m_migemo_set_operator        ;
00081     Proc_migemo_get_operator          m_migemo_get_operator        ;
00082     Proc_migemo_setproc_char2int      m_migemo_setproc_char2int    ;
00083     Proc_migemo_setproc_int2char      m_migemo_setproc_int2char    ;
00084     Proc_migemo_load                  m_migemo_load                ;
00085     Proc_migemo_is_enable             m_migemo_is_enable           ;
00086
00087     migemo* m_migemo;
00088
00089     LPCTSTR GetDllName(LPCTSTR);
00090     int InitDll(void);
00091     int DeInitDll(void);
00092
00093 public:
00094     long migemo_open(char* dict);
00095     void migemo_close();
00096     unsigned char* migemo_query(unsigned char* query);
00097     void migemo_release( unsigned char* string);
00098     int migemo_set_operator(int index, unsigned char* op);
00099     const unsigned char* migemo_get_operator(int index);
00100     void migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc);
00101     void migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc);
00102     int migemo_load_a(int dict_id, const char* dict_file);
00103     int migemo_load_w(int dict_id, const wchar_t* dict_file);
00104 #ifdef _UNICODE
00105     #define migemo_load_t migemo_load_w
00106 #else
00107     #define migemo_load_t migemo_load_a
00108 #endif
00109     int migemo_is_enable();
00110     int migemo_load_all();
00111
00112 };
00113
00114 #endif
00115
00116
00117 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRU.cpp

sakura_core

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 "my_icmp.h"
#include "util/string_ex2.h"

CMRU.cppのインクルード依存関係図

ソースコードを見る。

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRU.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRU.cpp ソースファイル

sakura_core

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 "my_icmp.h" // 2002/11/30 Moca 追加
00026 #include "util/string_ex2.h"
00027
00031 CMRU::CMRU()
00032 {
00033     //  初期化。
00034     m_pShareData = CShareData::getInstance()->GetShareData();
00035 }
00036
00037 /*  デストラクタ  */
00038 CMRU::~CMRU()
00039 {
00040     m_cRecentFile.Terminate();
00041 }
00042
00051 HMENU CMRU::CreateMenu( CMenuDrawer* pCMenuDrawer )
00052 {
00053     HMENU   hMenuPopUp;
00054     TCHAR   szFile2[_MAX_PATH * 2]; //  全部&でも問題ないように。
00055     TCHAR   szMemu[300];            //  メニューキャプション
00056     int     i;
00057     bool    bFavorite;
00058     FileInfo    *p;
00059
00060     CShareData::getInstance()->TransformFileName_MakeCache();
00061
00062     //  空メニューを作る
00063     hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
00064     for( i = 0; i < m_cRecentFile.GetItemCount(); ++i )
00065     {
00066         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00067         if ( i >= m_cRecentFile.GetViewCount() ) break;
00068
00069         /* MRUリストの中にある開かれていないファイル */
00070
00071         p = m_cRecentFile.GetItem( i );
00072
00073         CShareData::getInstance()->GetTransformFileNameFast( p->m_szPath, szMemu, _MAX_PATH );
00074         //  &を&&に置換。
00075         //  Jan. 19, 2002 genta
00076         dupamp( szMemu, szFile2 );
00077
00078         bFavorite = m_cRecentFile.IsFavorite( i );
00079         //  j >= 10 + 26 の時の考慮を省いた(に近い)がファイルの履歴MAXを36個にしてあるので事実上OKでしょう
00080         auto_sprintf(
00081             szMemu,
00082             _T("&%tc %ts%ts"),
00083             (i < 10) ? (_T('0') + i) : (_T('A') + i - 10),
00084             (FALSE == m_pShareData->m_Common.m_sWindow.m_bMenuIcon && bFavorite) ? _T("★ ") : _T(""),
00085             szFile2
00086         );
00087
00088         //  ファイル名のみ必要。
00089         //  文字コード表記
00090         if(IsValidCodeTypeExceptSJIS(p->m_nCharCode)){
00091             _tcscat( szMemu, gm_pszCodeNameArr_Bracket[ p->m_nCharCode ] );
00092         }
00093
00094         //  メニューに追加。
00095         pCMenuDrawer->MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_SELMRU + i, szMemu, TRUE,
00096             bFavorite ? F_FAVORITE : -1 );
00097     }
00098     return hMenuPopUp;
00099 }
00100
00101 BOOL CMRU::DestroyMenu( HMENU hMenuPopUp )
00102 {
00103     return ::DestroyMenu( hMenuPopUp );
00104 }
00105
00113 void CMRU::GetPathList( TCHAR** ppszMRU )
00114 {
00115     int i;
00116
00117     for( i = 0; i < m_cRecentFile.GetItemCount(); ++i )
00118     {
00119         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00120         if ( i >= m_cRecentFile.GetViewCount() ) break;
00121         ppszMRU[i] = const_cast<TCHAR*>(m_cRecentFile.GetItemText( i ));
00122     }
00123     ppszMRU[i] = NULL;
00124 }
00125
00127 int CMRU::Length(void)
00128 {
00129     return m_cRecentFile.GetItemCount();
00130 }
00131
00135 void CMRU::ClearAll(void)
00136 {
00137     m_cRecentFile.DeleteAllItem();
00138 }
00139
00149 BOOL CMRU::GetFileInfo( int num, FileInfo* pfi )
00150 {
00151     FileInfo*   p = m_cRecentFile.GetItem( num );
00152     if( NULL == p ) return FALSE;
00153
00154     *pfi = *p;
00155
00156     return TRUE;
00157 }
00158
00170 BOOL CMRU::GetFileInfo( const TCHAR* pszPath, FileInfo* pfi )
00171 {
00172     FileInfo*   p = m_cRecentFile.GetItem( m_cRecentFile.FindItemByPath( pszPath ) );
00173     if( NULL == p ) return FALSE;
00174
00175     *pfi = *p;
00176
00177     return TRUE;
00178 }
00179
00189 void CMRU::Add( FileInfo* pFileInfo )
00190 {
00191     //  ファイル名が無ければ無視
00192     if( NULL == pFileInfo
00193      || 0 == _tcslen( pFileInfo->m_szPath ) )
00194     {
00195         return;
00196     }
00197
00198     TCHAR   szDrive[_MAX_DRIVE];
00199     TCHAR   szDir[_MAX_DIR];
00200     TCHAR   szFolder[_MAX_PATH + 1];    //  ドライブ＋フォルダ
00201
00202     _tsplitpath( pFileInfo->m_szPath, szDrive, szDir, NULL, NULL ); //  ドライブとフォルダを取り出す。
00203
00204     //  Jan.  10, 2006 genta USBメモリはRemovable mediaと認識されるようなので，
00205     //  一応無効化する．
00206     //  リムーバブルなら非登録？
00207     //if (/* 「リムーバブルなら登録しない」オン && */ ! IsLocalDrive( szDrive ) ){
00208     //  return;
00209     //}
00210
00211     //  szFolder作成
00212     _tcscpy( szFolder, szDrive );
00213     _tcscat( szFolder, szDir );
00214     //  Folderを、CMRUFolderに登録
00215     CMRUFolder cMRUFolder;
00216     cMRUFolder.Add(szFolder);
00217
00218     m_cRecentFile.AppendItem( pFileInfo );
00219 }
00220
00221 /*EOF*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRU.h

sakura_core

CMRU.h

MRUリストと呼ばれるリストを管理する [詳細]

#include <windows.h>
#include "CRecentFile.h"

CMRU.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMRU

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRU.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRU.h ソースファイル

sakura_core

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 "CRecentFile.h"
00041 struct FileInfo; // 2004.04.11 genta パラメータ内のstructを削除するため．doxygen対策
00042
00043 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00044 class CMRU{
00045 public:
00046     //  コンストラクタ
00047     CMRU();
00048     ~CMRU();
00049
00050     //  メニューを取得する
00051     HMENU CreateMenu( class CMenuDrawer* pCMenuDrawer );    //  うーん。pCMenuDrawerが必要なくなるといいなぁ。
00052     BOOL DestroyMenu( HMENU hMenu );
00053
00054     //  ファイル名の一覧を教えて
00055     void GetPathList( TCHAR** ppszMRU );    //  ppszMRUにはファイル名をコピーしません。変更しないでね☆
00056
00057     //  アクセス関数
00058     int Length(void);   //  アイテムの数。
00059     void ClearAll(void);//  アイテムを削除〜。
00060     BOOL GetFileInfo( int num, FileInfo* pfi );             //  番号で指定したFileInfo（情報をまるごと）
00061     BOOL GetFileInfo( const TCHAR* pszPath, FileInfo* pfi );    //  ファイル名で指定したFileInfo（情報をまるごと）
00062     void Add( FileInfo* pFileInfo );        //  *pFileInfoを追加する。
00063
00064 protected:
00065     //  共有メモリアクセス用。
00066     struct DLLSHAREDATA*    m_pShareData;       //  共有メモリを参照するよ。
00067     bool IsRemovableDrive( const char* pszDrive );
00068
00069 private:
00070     CRecentFile m_cRecentFile;  //履歴    //@@@ 2003.04.08 MIK
00071
00072 };
00073 #endif
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRUFolder.cpp

sakura_core

CMRUFolder.cpp

MRUリストと呼ばれるリストを管理する [詳細]

#include "stdafx.h"
#include "CShareData.h"
#include "CMenuDrawer.h"
#include "CMRUFolder.h"
#include "CRecent.h"
#include "my_icmp.h"
#include "util/string_ex2.h"

CMRUFolder.cppのインクルード依存関係図

ソースコードを見る。

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRUFolder.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRUFolder.cpp ソースファイル

sakura_core

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 "my_icmp.h" // 2002/11/30 Moca 追加
00023 #include "util/string_ex2.h"
00024
00029 CMRUFolder::CMRUFolder()
00030 {
00031     //  初期化。
00032     m_pShareData = CShareData::getInstance()->GetShareData();
00033 }
00034
00035 /*  デストラクタ  */
00036 CMRUFolder::~CMRUFolder()
00037 {
00038     m_cRecentFolder.Terminate();
00039 }
00040
00041 HMENU CMRUFolder::CreateMenu( CMenuDrawer* pCMenuDrawer )
00042 {
00043     HMENU   hMenuPopUp;
00044     TCHAR   szFolder2[_MAX_PATH * 2];   //  全部&でも問題ないように :-)
00045     TCHAR   szMemu[300];                //  メニューキャプション
00046     int     i;
00047     bool    bFavorite;
00048
00049     hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
00050     CShareData::getInstance()->TransformFileName_MakeCache();
00051     for( i = 0; i < m_cRecentFolder.GetItemCount(); ++i )
00052     {
00053         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00054         if ( i >= m_cRecentFolder.GetViewCount() ) break;
00055
00056         CShareData::getInstance()->GetTransformFileNameFast( m_cRecentFolder.GetItemText( i ), szMemu, _MAX_PATH );
00057         //  &を&&に置換。
00058         //  Jan. 19, 2002 genta
00059         dupamp( szMemu, szFolder2 );
00060
00061         bFavorite = m_cRecentFolder.IsFavorite( i );
00062         //  j >= 10 + 26 の時の考慮を省いた(に近い)がフォルダの履歴MAXを36個にしてあるので事実上OKでしょう
00063         auto_sprintf( szMemu, _T("&%tc %ts%ts"),
00064             (i < 10) ? (_T('0') + i) : (_T('A') + i - 10),
00065             (FALSE == m_pShareData->m_Common.m_sWindow.m_bMenuIcon && bFavorite) ? _T("★ ") : _T(""),
00066             szFolder2 );
00067
00068         //  メニューに追加
00069         pCMenuDrawer->MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_SELOPENFOLDER + i, szMemu, TRUE,
00070             bFavorite ? F_FAVORITE : -1 );
00071     }
00072     return hMenuPopUp;
00073 }
00074
00075 void CMRUFolder::GetPathList( TCHAR** ppszOPENFOLDER )
00076 {
00077     int i;
00078
00079     for( i = 0; i < m_cRecentFolder.GetItemCount(); ++i )
00080     {
00081         //  「共通設定」→「全般」→「フォルダの履歴MAX」を反映
00082         if ( i >= m_cRecentFolder.GetViewCount() ) break;
00083         ppszOPENFOLDER[i] = const_cast<TCHAR*>(m_cRecentFolder.GetItemText( i ));
00084     }
00085     ppszOPENFOLDER[i] = NULL;
00086 }
00087
00088 int CMRUFolder::Length()
00089 {
00090     return m_cRecentFolder.GetItemCount();
00091 }
00092
00093 void CMRUFolder::ClearAll()
00094 {
00095     m_cRecentFolder.DeleteAllItem();
00096 }
00097
00098 /*  @brief 開いたフォルダ リストへの登録
00099
00100     @date 2001.12.26  CShareData::AddOPENFOLDERListから移動した。（YAZAKI）
00101 */
00102 void CMRUFolder::Add( const TCHAR* pszFolder )
00103 {
00104     if( NULL == pszFolder
00105      || 0 == _tcslen( pszFolder ) )
00106     {   //  長さが0なら排除。
00107         return;
00108     }
00109
00110     m_cRecentFolder.AppendItem( pszFolder );
00111 }
00112
00113 const TCHAR* CMRUFolder::GetPath(int num)
00114 {
00115     return m_cRecentFolder.GetItemText( num );
00116 }
00117
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRUFolder.h

sakura_core

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 Nov 17 20:26:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMRUFolder.h ソースファイル

sakura_core

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( TCHAR** ppszMRU );    //  ppszMRUにはフォルダ名をコピーしません。変更しないでね☆
00058
00059     //  アクセス関数
00060     int Length();   //  アイテムの数。
00061     void ClearAll();                    //  アイテムを削除〜。
00062     void Add( const TCHAR* pszFolder ); //  pszFolderを追加する。
00063     const TCHAR* GetPath(int num);
00064
00065 protected:
00066
00067     //  共有メモリアクセス用。
00068     struct DLLSHAREDATA*    m_pShareData;           //  共有メモリを参照するよ。
00069
00070 private:
00071     CRecentFolder   m_cRecentFolder;    //履歴    //@@@ 2003.04.08 MIK
00072 };
00073
00074 #endif
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMutex.h

sakura_core

CMutex.h

Mutex管理 [詳細]

#include <windows.h>

CMutex.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMutex
class | LockGuard< EXCLUSIVE_OBJECT >

説明

Mutex管理

作者:
ryoji
日付:
2007.07.05

CMutex.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMutex.h ソースファイル

sakura_core

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 Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyPoint.cpp

sakura_core » basis

CMyPoint.cpp

#include "stdafx.h"
#include "CMyPoint.h"

CMyPoint.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyPoint.cpp ソースファイル

sakura_core » basis

CMyPoint.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMyPoint.h"
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyPoint.h

sakura_core » basis

CMyPoint.h

#include <windows.h>

CMyPoint.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMyPoint

関数

template<class POINT_T>
int | PointCompare (const POINT_T &pt1, const POINT_T &pt2)
template<class POINT_T>
void | TwoPointToRect (RECT *prcRect, POINT_T pt1, POINT_T pt2)
2点を対角とする矩形を求める

関数

template<class POINT_T>
int PointCompare | ( | const POINT_T & | pt1,
 |  | const POINT_T & | pt2 |
 | ) |  |  | [inline]

pt1 - pt2の結果を返す Yを優先して比較。Yが同一なら、Xで比較。

戻り値:
<0 pt1 < pt2

0 pt1 == pt2

>0 pt1 > pt2

CMyPoint.h の 67 行で定義されています。

参照元 CViewSelect::ChangeSelectAreaByCurrentCursorTEST(), CViewCommander::Command_SEARCH_NEXT(), CViewSelect::DrawSelectArea(), と CEditView::IsCurrentPositionSelectedTEST().

template<class POINT_T>
void TwoPointToRect | ( | RECT * | prcRect,
 |  | POINT_T | pt1,
 |  | POINT_T | pt2 |
 | ) |  |  | [inline]

2点を対角とする矩形を求める

CMyPoint.h の 76 行で定義されています。

参照元 CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditView::DeleteData(), CViewSelect::DrawSelectArea(), CEditView::GetSelectedData(), CEditView::IsCurrentPositionSelected(), と TwoPointToRange().

Sakura-Editorに対してSat Nov 17 20:26:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyPoint.h ソースファイル

sakura_core » basis

CMyPoint.h

説明を見る。
00001 #pragma once
00002
00003 #include <windows.h> //POINT
00004
00005 class CMyPoint : public POINT{
00006 public:
00007     //コンストラクタ・デストラクタ
00008     CMyPoint(){ x=0; y=0; }
00009     CMyPoint(int _x,int _y){ x=_x; y=_y; }
00010     CMyPoint(const POINT& rhs){ x=rhs.x; y=rhs.y; }
00011
00012     //算術演算子
00013     CMyPoint& operator += (const POINT& rhs){ x+=rhs.x; y+=rhs.y; return *this; }
00014     CMyPoint& operator -= (const POINT& rhs){ x-=rhs.x; y-=rhs.y; return *this; }
00015     CMyPoint& operator *= (int n){ x*=n; y*=n; return *this; }
00016     CMyPoint& operator /= (int n){ x/=n; y/=n; return *this; }
00017
00018     //算術演算子２
00019     CMyPoint operator + (const POINT& rhs) const{ CMyPoint tmp=*this; tmp+=rhs; return tmp; }
00020     CMyPoint operator - (const POINT& rhs) const{ CMyPoint tmp=*this; tmp-=rhs; return tmp; }
00021     CMyPoint operator * (int n) const{ CMyPoint tmp=*this; tmp*=n; return tmp; }
00022     CMyPoint operator / (int n) const{ CMyPoint tmp=*this; tmp/=n; return tmp; }
00023
00024     //代入演算子
00025     CMyPoint& operator = (const POINT& rhs){ x=rhs.x; y=rhs.y; return *this; }
00026
00027     //比較演算子
00028     bool operator == (const POINT& rhs) const{ return x==rhs.x && y==rhs.y; }
00029     bool operator != (const POINT& rhs) const{ return !this->operator==(rhs); }
00030
00031     //設定
00032     void Set(int _x,int _y){ x=_x; y=_y; }
00033     void Set(const CMyPoint& pt){ x=pt.x; y=pt.y; }
00034     void SetX(int _x){ x=_x; }
00035     void SetY(int _y){ y=_y; }
00036     void Offset(int _x,int _y){ x+=_x; y+=_y; }
00037     void Offset(const CMyPoint& pt){ x+=pt.x; y+=pt.y; }
00038
00039     //取得
00040     int GetX() const{ return (int)x; }
00041     int GetY() const{ return (int)y; }
00042     CMyPoint Get() const{ return *this; }
00043
00045     bool HasNegative() const
00046     {
00047         return x<0 || y<0;
00048     }
00049
00051     bool BothNatural() const
00052     {
00053         return x>=0 && y>=0;
00054     }
00055 };
00056
00057
00066 template <class POINT_T>
00067 inline int PointCompare(const POINT_T& pt1,const POINT_T& pt2)
00068 {
00069     if(pt1.y!=pt2.y)return (Int)(pt1.y-pt2.y);
00070     return (Int)(pt1.x-pt2.x);
00071 }
00072
00073
00075 template <class POINT_T>
00076 inline void TwoPointToRect(
00077     RECT*   prcRect,
00078     POINT_T pt1,
00079     POINT_T pt2
00080 )
00081 {
00082     if( pt1.y < pt2.y ){
00083         prcRect->top    = (Int)pt1.y;
00084         prcRect->bottom = (Int)pt2.y;
00085     }else{
00086         prcRect->top    = (Int)pt2.y;
00087         prcRect->bottom = (Int)pt1.y;
00088     }
00089     if( pt1.x < pt2.x ){
00090         prcRect->left   = (Int)pt1.x;
00091         prcRect->right  = (Int)pt2.x;
00092     }else{
00093         prcRect->left   = (Int)pt2.x;
00094         prcRect->right  = (Int)pt1.x;
00095     }
00096 }
00097
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyRect.cpp

sakura_core » basis

CMyRect.cpp

#include "stdafx.h"
#include "CMyRect.h"

CMyRect.cppのインクルード依存関係図

ソースコードを見る。

関数

CMyRect MergeRect (const CMyRect &rc1, const CMyRect &rc2)
CRect合成。rc1,rc2を含む最小の矩形を生成する。

関数

CMyRect MergeRect | ( | const CMyRect & | rc1,
 |  | const CMyRect & | rc2
 | ) |  |

CRect合成。rc1,rc2を含む最小の矩形を生成する。

CMyRect.cpp の 4 行で定義されています。

参照先 t_max(), と t_min().

参照元 CEditView_Paint::Call_OnPaint().

Sakura-Editorに対してSat Nov 17 20:26:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyRect.cpp ソースファイル

sakura_core » basis

CMyRect.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMyRect.h"
00003
00004 CMyRect MergeRect(const CMyRect& rc1, const CMyRect& rc2)
00005 {
00006     return CMyRect(
00007         t_min(rc1.left  , rc2.left),
00008         t_min(rc1.top   , rc2.top),
00009         t_max(rc1.right , rc2.right),
00010         t_max(rc1.bottom, rc2.bottom)
00011     );
00012 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyRect.h

sakura_core » basis

CMyRect.h

#include <windows.h>
#include "CMyPoint.h"

CMyRect.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMyRect

関数

CMyRect | MergeRect (const CMyRect &rc1, const CMyRect &rc2)
CRect合成。rc1,rc2を含む最小の矩形を生成する。

関数

CMyRect MergeRect | ( | const CMyRect & | rc1,
 |  | const CMyRect & | rc2
 | ) |  |

CRect合成。rc1,rc2を含む最小の矩形を生成する。

CMyRect.cpp の 4 行で定義されています。

参照先 t_max(), と t_min().

参照元 CEditView_Paint::Call_OnPaint().

Sakura-Editorに対してSat Nov 17 20:26:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyRect.h ソースファイル

sakura_core » basis

CMyRect.h

説明を見る。
00001 #pragma once
00002
00003 #include <windows.h> //RECT
00004 #include "CMyPoint.h"
00005
00006 class CMyRect : public RECT{
00007 public:
00008     //コンストラクタ・デストラクタ
00009     CMyRect()
00010     {
00011         SetLTRB(0,0,0,0);
00012     }
00013     CMyRect(int l,int t,int r,int b)
00014     {
00015         SetLTRB(l,t,r,b);
00016     }
00017     CMyRect(const RECT& rc)
00018     {
00019         RECT* p=this;
00020         *p=rc;
00021     }
00022
00023     //演算子
00024
00025     //代入
00026     void SetLTRB(int l,int t,int r,int b)
00027     {
00028         left  =l;
00029         top   =t;
00030         right =r;
00031         bottom=b;
00032     }
00033     void SetXYWH(int x,int y,int w,int h)
00034     {
00035         left   = x;
00036         top    = y;
00037         right  = x+w;
00038         bottom = y+h;
00039     }
00040
00041     //計算
00042     int Width() const
00043     {
00044         return right-left;
00045     }
00046     int Height() const
00047     {
00048         return bottom-top;
00049     }
00051     CMyPoint UpperLeft() const
00052     {
00053         return CMyPoint(left,top);
00054     }
00056     CMyPoint LowerRight() const
00057     {
00058         return CMyPoint(right,bottom);
00059     }
00060
00061 };
00062
00064 CMyRect MergeRect(const CMyRect& rc1, const CMyRect& rc2);
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMySize.cpp

sakura_core » basis

CMySize.cpp

#include "stdafx.h"
#include "CMySize.h"

CMySize.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMySize.cpp ソースファイル

sakura_core » basis

CMySize.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMySize.h"
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMySize.h

sakura_core » basis

CMySize.h

#include <windows.h>

CMySize.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMySize

Sakura-Editorに対してSat Nov 17 20:26:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMySize.h ソースファイル

sakura_core » basis

CMySize.h

説明を見る。
00001 #pragma once
00002
00003 #include <windows.h> //SIZE
00004
00005 class CMySize : public SIZE{
00006 public:
00007     //コンストラクタ・デストラクタ
00008     CMySize(){} //※初期化なし
00009     CMySize(int _cx,int _cy){ cx=_cx; cy=_cy; }
00010     CMySize(const SIZE& rhs){ cx=rhs.cx; cy=rhs.cy; }
00011
00012     //関数
00013     void Set(int _cx,int _cy){ cx=_cx; cy=_cy; }
00014
00015     //演算子
00016     bool operator == (const SIZE& rhs) const{ return cx==rhs.cx && cy==rhs.cy; }
00017     bool operator != (const SIZE& rhs) const{ return !operator==(rhs); }
00018 };
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyString.cpp

sakura_core » basis

CMyString.cpp

#include "stdafx.h"
#include "CMyString.h"
#include "charcode.h"
#include "CharPointer.h"

CMyString.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyString.cpp ソースファイル

sakura_core » basis

CMyString.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CMyString.h"
00003 #include "charcode.h"
00004 #include "CharPointer.h"
00005
00006 void CMyString::set(const char* szData)
00007 {
00008     wchar_t* wszData=mbstowcs_new(szData);
00009     set(wszData);
00010     delete[] wszData;
00011 }
00012
00013 void CMyString::set(const char* szData, int nLength)
00014 {
00015     wchar_t* wszData=mbstowcs_new(szData,nLength);
00016     set(wszData);
00017     delete[] wszData;
00018 }
00019
00020 const char* CMyString::c_astr() const
00021 {
00022     if(!m_str_cache)
00023         m_str_cache=wcstombs_new(m_wstr.c_str());
00024     return m_str_cache;
00025 }
00026
00027 CMyString::~CMyString()
00028 {
00029     m_delete2(m_str_cache);
00030 }
00031
00032 /*
00033 CFilePath::CFilePath(const char* rhs)
00034 {
00035     //現時点ではNULLを受け付けない
00036     assert(rhs);
00037     _mbstotcs(m_tszPath, _countof(m_tszPath), rhs);
00038 }
00039 CFilePath::CFilePath(const wchar_t* rhs)
00040 {
00041     //現時点ではNULLを受け付けない
00042     assert(rhs);
00043     _wcstotcs(m_tszPath, _countof(m_tszPath), rhs);
00044 }
00045 */
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyString.h

sakura_core » basis

CMyString.h

#include <string>
#include "CFilePath.h"

CMyString.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMyString

マクロ定義

#define | m_delete2(p) do{ if(p){ delete[] p; p=0; } }while(0)
#define | tstring string
#define | astring string

マクロ定義

#define astring string

CMyString.h の 58 行で定義されています。

#define m_delete2 ( p ) do{ if(p){ delete[] p; p=0; } }while(0)

CMyString.h の 5 行で定義されています。

参照元 CMyString::set(), と CMyString::~CMyString().

#define tstring string

CMyString.h の 56 行で定義されています。

参照元 CMacroFactory::Create(), と CMacroFactory::Ext2Key().

Sakura-Editorに対してSat Nov 17 20:26:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CMyString.h ソースファイル

sakura_core » basis

CMyString.h

説明を見る。
00001 #pragma once
00002
00003 #include <string>
00004
00005 #define m_delete2(p) do{ if(p){ delete[] p; p=0; } }while(0)
00006
00007 class CMyString{
00008 public:
00009     //コンストラクタ・デストラクタ
00010     CMyString(WCHAR wc)                             : m_wstr(1,wc),          m_str_cache(NULL) { }
00011     CMyString(const WCHAR* szData=L"")              : m_wstr(szData),        m_str_cache(NULL) { }
00012     CMyString(const WCHAR* pData, size_t nLength)   : m_wstr(pData,nLength), m_str_cache(NULL) { }
00013     CMyString(const ACHAR* szData)                  : m_wstr(L""), m_str_cache(NULL) { set(szData); }
00014     CMyString(const ACHAR* pData, size_t nLength)   : m_wstr(L""), m_str_cache(NULL) { set(pData,nLength); }
00015     CMyString(ACHAR wc)                             : m_wstr(L""), m_str_cache(NULL) { ACHAR buf[2]={wc,0}; set(buf); }
00016     CMyString(const CMyString& rhs) : m_wstr(rhs.c_wstr()), m_str_cache(NULL) { }
00017     ~CMyString();
00018
00019     //演算子
00020     operator const wchar_t* () const{ return c_wstr(); }
00021     operator const char* () const{ return c_astr(); }
00022     CMyString& operator = (const CMyString& rhs){ set(rhs); return *this; }
00023
00024     //設定
00025     void set(const wchar_t* wszData){ m_wstr=wszData; m_delete2(m_str_cache); }
00026     void set(const char* szData);
00027     void set(const char* szData, int nLength);
00028     void set(const CMyString& cszData){ set(cszData.c_wstr()); }
00029
00030     //取得
00031     const wchar_t* c_wstr() const{ return m_wstr.c_str(); }
00032     const char* c_astr() const;
00033     int wlength() const{ return wcslen(c_wstr()); }
00034     int alength() const{ return strlen(c_astr()); }
00035
00036
00037     //TCHAR
00038 #ifdef _UNICODE
00039     const TCHAR* c_tstr() const{ return c_wstr(); }
00040 #else
00041     const TCHAR* c_tstr() const{ return c_astr(); }
00042 #endif
00043
00044 private:
00045     std::wstring m_wstr;
00046     mutable char* m_str_cache; //c_str用キャッシュ。m_wstrが変更(set)されたらこれを解放し、NULLにしておくのがルール。
00047 };
00048
00049 #include "CFilePath.h"
00050
00051
00052 //std::string の TCHAR 対応用マクロ定義
00053 #ifdef _UNICODE
00054 #define tstring wstring
00055 #else
00056 #define tstring string
00057 #endif
00058 #define astring string
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNative.cpp

sakura_core

CNative.cpp

#include "stdafx.h"
#include "CNative.h"

CNative.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNative.cpp ソースファイル

sakura_core

CNative.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CNative.h"
00003
00005 void CNative::Clear()
00006 {
00007     this->SetRawData("",0);
00008 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNative.h

sakura_core

CNative.h

#include "CMemory.h"
#include "CNativeA.h"
#include "CNativeW.h"

CNative.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CNative

Sakura-Editorに対してSat Nov 17 20:26:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNative.h ソースファイル

sakura_core

CNative.h

説明を見る。
00001 #pragma once
00002
00003 #include "CMemory.h"
00004
00005 //※CMemoryをprotect継承することにより、あまり自由にCMemoryを使えないようにしておく
00006 class CNative : protected CMemory{
00007 public:
00008     //CMemory*ポインタを得る
00009     CMemory* _GetMemory(){ return static_cast<CMemory*>(this); }
00010     const CMemory* _GetMemory() const{ return static_cast<const CMemory*>(this); }
00011
00012 public:
00013     //汎用
00014     void Clear();
00015 };
00016
00017 #include "CNativeA.h"
00018 #include "CNativeW.h"
00019
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeA.cpp

sakura_core

CNativeA.cpp

#include "stdafx.h"
#include "CNativeA.h"
#include "charset/CShiftJis.h"
#include <mbstring.h>
#include "CEOL.h"
#include "charcode.h"
#include <string>
#include "util/string_ex2.h"

CNativeA.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeA.cpp ソースファイル

sakura_core

CNativeA.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CNativeA.h"
00003 #include "charset/CShiftJis.h"
00004 #include <mbstring.h>
00005 #include "CEOL.h"
00006 #include "charcode.h"
00007 #include <string>
00008 #include "util/string_ex2.h"
00009
00010 CNativeA::CNativeA(const char* szData)
00011 : CNative()
00012 {
00013     SetString(szData);
00014 }
00015
00016
00017 CNativeA::CNativeA()
00018 : CNative()
00019 {
00020 }
00021
00022 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00023 //              ネイティブ設定インターフェース                 //
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025
00026 // バッファの内容を置き換える
00027 void CNativeA::SetString( const char* pszData )
00028 {
00029     SetString(pszData,strlen(pszData));
00030 }
00031
00032 // バッファの内容を置き換える。nLenは文字単位。
00033 void CNativeA::SetString( const char* pData, int nDataLen )
00034 {
00035     int nDataLenBytes = nDataLen * sizeof(char);
00036     CNative::SetRawData(pData, nDataLenBytes);
00037 }
00038
00039 // バッファの内容を置き換える
00040 void CNativeA::SetNativeData( const CNativeA& pcNative )
00041 {
00042     CNative::SetRawData(pcNative);
00043 }
00044
00045 // バッファの最後にデータを追加する
00046 void CNativeA::AppendString( const char* pszData )
00047 {
00048     AppendString(pszData, strlen(pszData));
00049 }
00050
00052 void CNativeA::AppendString( const char* pszData, int nLength )
00053 {
00054     CNative::AppendRawData(pszData, nLength * sizeof(char));
00055 }
00056
00057 const CNativeA& CNativeA::operator = ( char cChar )
00058 {
00059     char pszChar[2];
00060     pszChar[0] = cChar;
00061     pszChar[1] = '\0';
00062     SetRawData( pszChar, 1 );
00063     return *this;
00064 }
00065
00067 void CNativeA::AppendNativeData( const CNativeA& pcNative )
00068 {
00069     AppendString(pcNative.GetStringPtr(), pcNative.GetStringLength());
00070 }
00071
00073 void CNativeA::AllocStringBuffer( int nDataLen )
00074 {
00075     CNative::AllocBuffer(nDataLen * sizeof(char));
00076 }
00077
00078 const CNativeA& CNativeA::operator += ( char ch )
00079 {
00080     char szChar[2]={ch,'\0'};
00081     AppendString(szChar);
00082     return *this;
00083 }
00084
00085 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086 //                           互換                              //
00087 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00088
00089 void CNativeA::SetStringNew(const wchar_t* wszData, int nDataLen)
00090 {
00091     std::wstring buf(wszData,nDataLen); //切り出し
00092     char* tmp=wcstombs_new(buf.c_str());
00093     SetString(tmp);
00094     delete[] tmp;
00095 }
00096
00097 void CNativeA::SetStringNew(const wchar_t* wszData)
00098 {
00099     SetStringNew(wszData,wcslen(wszData));
00100 }
00101
00102
00103 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00104 //              ネイティブ取得インターフェース                 //
00105 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00106
00107 int CNativeA::GetStringLength() const
00108 {
00109     return CNative::GetRawLength() / sizeof(char);
00110 }
00111
00112 const char* CNativeA::GetStringPtr(int* pnLength) const
00113 {
00114     if(pnLength)*pnLength=GetStringLength();
00115     return GetStringPtr();
00116 }
00117
00118 // 任意位置の文字取得。nIndexは文字単位。
00119 char CNativeA::operator[](int nIndex) const
00120 {
00121     if( nIndex < GetStringLength() ){
00122         return GetStringPtr()[nIndex];
00123     }else{
00124         return 0;
00125     }
00126 }
00127
00128 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00129 //              ネイティブ変換インターフェース                 //
00130 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00131
00132 /* 文字列置換 */
00133 void CNativeA::Replace( const char* pszFrom, const char* pszTo )
00134 {
00135     CNativeA    cmemWork;
00136     int         nFromLen = strlen( pszFrom );
00137     int         nToLen = strlen( pszTo );
00138     int         nBgnOld = 0;
00139     int         nBgn = 0;
00140     while( nBgn <= GetStringLength() - nFromLen ){
00141         if( 0 == auto_memcmp( &GetStringPtr()[nBgn], pszFrom, nFromLen ) ){
00142             if( 0  < nBgn - nBgnOld ){
00143                 cmemWork.AppendString( &GetStringPtr()[nBgnOld], nBgn - nBgnOld );
00144             }
00145             cmemWork.AppendString( pszTo, nToLen );
00146             nBgn = nBgn + nFromLen;
00147             nBgnOld = nBgn;
00148         }else{
00149             nBgn++;
00150         }
00151     }
00152     if( 0  < GetStringLength() - nBgnOld ){
00153         cmemWork.AppendString( &GetStringPtr()[nBgnOld], GetStringLength() - nBgnOld );
00154     }
00155     SetNativeData( cmemWork );
00156     return;
00157 }
00158
00159
00160
00161 /* 文字列置換（日本語考慮版） */
00162 void CNativeA::Replace_j( const char* pszFrom, const char* pszTo )
00163 {
00164     CNativeA    cmemWork;
00165     int         nFromLen = strlen( pszFrom );
00166     int         nToLen = strlen( pszTo );
00167     int         nBgnOld = 0;
00168     int         nBgn = 0;
00169     while( nBgn <= GetStringLength() - nFromLen ){
00170         if( 0 == memcmp( &GetStringPtr()[nBgn], pszFrom, nFromLen ) ){
00171             if( 0  < nBgn - nBgnOld ){
00172                 cmemWork.AppendString( &GetStringPtr()[nBgnOld], nBgn - nBgnOld );
00173             }
00174             cmemWork.AppendString( pszTo, nToLen );
00175             nBgn = nBgn + nFromLen;
00176             nBgnOld = nBgn;
00177         }else{
00178             if( _IS_SJIS_1( (unsigned char)GetStringPtr()[nBgn] ) ) nBgn++;
00179             nBgn++;
00180         }
00181     }
00182     if( 0  < GetStringLength() - nBgnOld ){
00183         cmemWork.AppendString( &GetStringPtr()[nBgnOld], GetStringLength() - nBgnOld );
00184     }
00185     SetNativeData( cmemWork );
00186     return;
00187 }
00188
00189
00190
00191
00192 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00193 //                   一般インターフェース                      //
00194 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00195
00196 /* 小文字 */
00197 void CNativeA::ToLower()
00198 {
00199     unsigned char*  pBuf = (unsigned char*)GetStringPtr();
00200     int             nBufLen = GetStringLength();
00201     int             i;
00202     int             nCharChars;
00203     unsigned char   uc;
00204     for( i = 0; i < nBufLen; ++i ){
00205         // 2005-09-02 D.S.Koba GetSizeOfChar
00206         nCharChars = CShiftJis::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
00207         if( nCharChars == 1 ){
00208             uc = (unsigned char)tolower( pBuf[i] );
00209             pBuf[i] = uc;
00210         }
00211         else if( nCharChars == 2 ){
00212             /* 全角英大文字→全角英小文字 */
00213             if( pBuf[i] == 0x82 && pBuf[i + 1] >= 0x60 && pBuf[i + 1] <= 0x79 ){
00214                 pBuf[i] = pBuf[i];
00215                 pBuf[i + 1] = pBuf[i + 1] + 0x21;
00216 //@@@ 2001.02.03 Start by MIK: ギリシャ文字変換
00217             //大文字:0x839f〜0x83b6
00218             //小文字:0x83bf〜0x83d6
00219             }else if( pBuf[i] == 0x83 && pBuf[i + 1] >= 0x9f && pBuf[i + 1] <= 0xb6 ){
00220                 pBuf[i] = pBuf[i];
00221                 pBuf[i + 1] = pBuf[i + 1] + 0x20;
00222 //@@@ 2001.02.03 End
00223 //@@@ 2001.02.03 Start by MIK: ロシア文字変換
00224             //大文字:0x8440〜0x8460
00225             //小文字:0x8470〜0x8491 0x847fがない！
00226             }else if( pBuf[i] == 0x84 && pBuf[i + 1] >= 0x40 && pBuf[i + 1] <= 0x60 ){
00227                 pBuf[i] = pBuf[i];
00228                 if( pBuf[i + 1] >= 0x4f ){
00229                     pBuf[i + 1] = pBuf[i + 1] + 0x31;
00230                 }else{
00231                     pBuf[i + 1] = pBuf[i + 1] + 0x30;
00232                 }
00233 //@@@ 2001.02.03 End
00234             }
00235         }
00236         if( nCharChars > 0 ){
00237             i += nCharChars - 1;
00238         }
00239     }
00240     return;
00241 }
00242
00243
00244
00245
00246
00247 /* 大文字 */
00248 void CNativeA::ToUpper()
00249 {
00250     unsigned char*  pBuf = (unsigned char*)GetStringPtr();
00251     int             nBufLen = GetStringLength();
00252     int             i;
00253     int             nCharChars;
00254     unsigned char   uc;
00255     for( i = 0; i < nBufLen; ++i ){
00256         // 2005-09-02 D.S.Koba GetSizeOfChar
00257         nCharChars = CShiftJis::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
00258         if( nCharChars == 1 ){
00259             uc = (unsigned char)toupper( pBuf[i] );
00260             pBuf[i] = uc;
00261         }
00262         else if( nCharChars == 2 ){
00263             /* 全角英小文字→全角英大文字 */
00264             if( pBuf[i] == 0x82 && pBuf[i + 1] >= 0x81 && pBuf[i + 1] <= 0x9a ){
00265                 pBuf[i] = pBuf[i];
00266                 pBuf[i + 1] = pBuf[i + 1] - 0x21;
00267 //@@@ 2001.02.03 Start by MIK: ギリシャ文字変換
00268             //大文字:0x839f〜0x83b6
00269             //小文字:0x83bf〜0x83d6
00270             }else if( pBuf[i] == 0x83 && pBuf[i + 1] >= 0xbf && pBuf[i + 1] <= 0xd6 ){
00271                 pBuf[i] = pBuf[i];
00272                 pBuf[i + 1] = pBuf[i + 1] - 0x20;
00273 //@@@ 2001.02.03 End
00274 //@@@ 2001.02.03 Start by MIK: ロシア文字変換
00275             //大文字:0x8440〜0x8460
00276             //小文字:0x8470〜0x8491 0x847fがない！
00277             }else if( pBuf[i] == 0x84 && pBuf[i + 1] >= 0x70 && pBuf[i + 1] <= 0x91 && pBuf[i + 1] != 0x7f ){
00278                 pBuf[i] = pBuf[i];
00279                 if( pBuf[i + 1] >= 0x7f ){
00280                     pBuf[i + 1] = pBuf[i + 1] - 0x31;
00281                 }else{
00282                     pBuf[i + 1] = pBuf[i + 1] - 0x30;
00283                 }
00284 //@@@ 2001.02.03 End
00285             }
00286         }
00287         if( nCharChars > 0 ){
00288             i += nCharChars - 1;
00289         }
00290     }
00291     return;
00292 }
00293
00294
00295 /* 半角→全角 */
00296 void CNativeA::ToZenkaku(
00297         int bHiragana,      /* 1== ひらがな 0==カタカナ //2==英数専用 2001/07/30 Misaka 追加 */
00298         int bHanKataOnly    /* 1== 半角カタカナにのみ作用する*/
00299 )
00300 {
00301     unsigned char*          pBuf = (unsigned char*)GetStringPtr();
00302     int                     nBufLen = GetStringLength();
00303     int                     i;
00304     int                     nCharChars;
00305 //  unsigned char           uc;
00306     unsigned short          usSrc;
00307     unsigned short          usDes;
00308     unsigned char*          pBufDes;
00309     int                     nBufDesLen;
00310     static unsigned char*   pszHanKataSet = (unsigned char*)"｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ";
00311     static unsigned char*   pszDakuSet = (unsigned char*)"ｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾊﾋﾌﾍﾎ";
00312     static unsigned char*   pszYouSet = (unsigned char*)"ﾊﾋﾌﾍﾎ";
00313     BOOL                    bHenkanOK;
00314
00315     pBufDes = new unsigned char[nBufLen * 2 + 1];
00316     if( NULL == pBufDes ){
00317         return;
00318     }
00319     nBufDesLen = 0;
00320     for( i = 0; i < nBufLen; ++i ){
00321         // 2005-09-02 D.S.Koba GetSizeOfChar
00322         nCharChars = CShiftJis::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
00323         if( nCharChars == 1){
00324             bHenkanOK = FALSE;
00325             if( bHanKataOnly ){ /* 1== 半角カタカナにのみ作用する */
00326                 if( NULL != strchr( (const char *)pszHanKataSet, pBuf[i] ) ){
00327                     bHenkanOK = TRUE;
00328                 }
00329             }else{
00331                 if( ( (unsigned char)0x20 <= pBuf[i] && pBuf[i] <= (unsigned char)0x7E ) ||
00332                     ( bHiragana != 2 && (unsigned char)0xA1 <= pBuf[i] && pBuf[i] <= (unsigned char)0xDF )
00333                 ){
00334                     bHenkanOK = TRUE;
00335                 }
00336             }
00337             if( bHenkanOK ){
00338                 usSrc = pBuf[i];
00339                 if( FALSE == bHiragana &&
00340                     pBuf[i]     == (unsigned char)'ｳ' &&
00341                     pBuf[i + 1] == (unsigned char)'ﾞ' &&
00342                     bHiragana != 2
00343                 ){
00344                     usDes = (unsigned short)0x8394; /* ヴ */
00345                     nCharChars = 2;
00346                 }else {
00347                     usDes = _mbbtombc( usSrc );
00348                     /* 濁音 */
00349                     if( bHiragana != 2 && pBuf[i + 1] == (unsigned char)'ﾞ' && NULL != strchr( (const char *)pszDakuSet, pBuf[i] ) ){
00350                         usDes++;
00351                         nCharChars = 2;
00352                     }
00353                     /* 拗音 */
00356                     if( bHiragana != 2 && pBuf[i + 1] == (unsigned char)'ﾟ' && NULL != strchr( (const char *)pszYouSet, pBuf[i] ) ){
00357                         usDes += 2;
00358                         nCharChars = 2;
00359                     }
00360                 }
00361
00362                 if( bHiragana == 1 ){
00363                     /* ひらがなに変換可能なカタカナならば、ひらがなに変換する */
00364                     if( (unsigned short)0x8340 <= usDes && usDes <= (unsigned short)0x837e ){   /* ァ〜ミ */
00365                         usDes-= (unsigned short)0x00a1;
00366                     }else
00367                     if( (unsigned short)0x8380 <= usDes && usDes <= (unsigned short)0x8393 ){   /* ム〜ン */
00368                         usDes-= (unsigned short)0x00a2;
00369                     }
00370                 }
00371                 pBufDes[nBufDesLen]     = ( usDes & 0xff00 ) >>  8;
00372                 pBufDes[nBufDesLen + 1] = ( usDes & 0x00ff );
00373                 nBufDesLen += 2;
00374             }else{
00375                 memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
00376                 nBufDesLen += nCharChars;
00377
00378             }
00379         }else
00380         if( nCharChars == 2 ){
00381             usDes = usSrc = pBuf[i + 1] | ( pBuf[i] << 8 );
00382             if( bHanKataOnly == 0 ){
00383                 if( bHiragana == 1 ){//英数変換を付加したために数値で指定した　2001/07/30 Misaka
00384                     /* 全角ひらがなに変換可能な全角カタカナならば、ひらがなに変換する */
00385                     if( (unsigned short)0x8340 <= usSrc && usSrc <= (unsigned short)0x837e ){   /* ァ〜ミ */
00386                         usDes = usSrc - (unsigned short)0x00a1;
00387                     }else
00388                     if( (unsigned short)0x8380 <= usSrc && usSrc <= (unsigned short)0x8393 ){   /* ム〜ン */
00389                         usDes = usSrc - (unsigned short)0x00a2;
00390                     }
00391                 }else if( bHiragana == 0 ){//英数変換を付加したために数値で指定した　2001/07/30 Misaka
00392                     /* 全角カタカナに変換可能な全角ひらがなならば、カタカナに変換する */
00393                     if( (unsigned short)0x829f <= usSrc && usSrc <= (unsigned short)0x82dd ){   /* ぁ〜み */
00394                         usDes = usSrc + (unsigned short)0x00a1;
00395                     }else
00396                     if( (unsigned short)0x82de <= usSrc && usSrc <= (unsigned short)0x82f1 ){   /* む〜ん */
00397                         usDes = usSrc + (unsigned short)0x00a2;
00398                     }
00399                 }
00400             }
00401             pBufDes[nBufDesLen]     = ( usDes & 0xff00 ) >> 8;
00402             pBufDes[nBufDesLen + 1] = ( usDes & 0x00ff );
00403             nBufDesLen += 2;
00404         }else{
00405             memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
00406             nBufDesLen += nCharChars;
00407
00408         }
00409         if( nCharChars > 0 ){
00410             i += nCharChars - 1;
00411         }
00412     }
00413     pBufDes[nBufDesLen] = '\0';
00414     SetRawData( pBufDes, nBufDesLen );
00415     delete [] pBufDes;
00416
00417
00418     return;
00419 }
00420
00421
00422 /* TAB→空白 */
00423 void CNativeA::TABToSPACE( int nTabSpace    /* TABの文字数 */ )
00424 {
00425     using namespace ACODE;
00426
00427     const char* pLine;
00428     int         nLineLen;
00429     char*       pDes;
00430     int         nBgn;
00431     int         i;
00432     int         nPosDes;
00433 //  BOOL        bEOL;
00434     int         nPosX;
00435     int         nWork;
00436     CEOL        cEol;
00437     nBgn = 0;
00438     nPosDes = 0;
00439     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00440     while( NULL != ( pLine = GetNextLine( GetStringPtr(), GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00441         if( 0 < nLineLen ){
00442             nPosX = 0;
00443             for( i = 0; i < nLineLen; ++i ){
00444                 if( TAB == pLine[i] ){
00445                     nWork = nTabSpace - ( nPosX % nTabSpace );
00446                     nPosDes += nWork;
00447                     nPosX += nWork;
00448                 }else{
00449                     nPosDes++;
00450                     nPosX++;
00451                 }
00452             }
00453         }
00454         nPosDes += cEol.GetLen();
00455     }
00456     if( 0 >= nPosDes ){
00457         return;
00458     }
00459     pDes = new char[nPosDes + 1];
00460     nBgn = 0;
00461     nPosDes = 0;
00462     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00463     while( NULL != ( pLine = GetNextLine( GetStringPtr(), GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00464         if( 0 < nLineLen ){
00465             nPosX = 0;
00466             for( i = 0; i < nLineLen; ++i ){
00467                 if( TAB == pLine[i] ){
00468                     nWork = nTabSpace - ( nPosX % nTabSpace );
00469                     auto_memset( &pDes[nPosDes], ' ', nWork );
00470                     nPosDes += nWork;
00471                     nPosX += nWork;
00472                 }else{
00473                     pDes[nPosDes] = pLine[i];
00474                     nPosDes++;
00475                     nPosX++;
00476                 }
00477             }
00478         }
00479         auto_memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
00480         nPosDes += cEol.GetLen();
00481     }
00482     pDes[nPosDes] = '\0';
00483
00484     SetRawData( pDes, nPosDes );
00485     delete [] pDes;
00486     pDes = NULL;
00487     return;
00488 }
00489
00490
00492
00499 void CNativeA::SPACEToTAB( int nTabSpace )
00500 {
00501     using namespace ACODE;
00502
00503     const char* pLine;
00504     int         nLineLen;
00505     char*       pDes;
00506     int         nBgn;
00507     int         i;
00508     int         nPosDes;
00509     int         nPosX;
00510     CEOL        cEol;
00511
00512     BOOL        bSpace = FALSE; //スペースの処理中かどうか
00513     int     j;
00514     int     nStartPos;
00515
00516     nBgn = 0;
00517     nPosDes = 0;
00518     /* 変換後に必要なバイト数を調べる */
00519     while( NULL != ( pLine = GetNextLine( GetStringPtr(), GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00520         if( 0 < nLineLen ){
00521             nPosDes += nLineLen;
00522         }
00523         nPosDes += cEol.GetLen();
00524     }
00525     if( 0 >= nPosDes ){
00526         return;
00527     }
00528     pDes = new char[nPosDes + 1];
00529     nBgn = 0;
00530     nPosDes = 0;
00531     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00532     while( NULL != ( pLine = GetNextLine( GetStringPtr(), GetStringLength(), &nLineLen, &nBgn, &cEol ) ) ){
00533         if( 0 < nLineLen ){
00534             nPosX = 0;  // 処理中のiに対応する表示桁位置
00535             bSpace = FALSE; //直前がスペースか
00536             nStartPos = 0;  // スペースの先頭
00537             for( i = 0; i < nLineLen; ++i ){
00538                 if( SPACE == pLine[i] || TAB == pLine[i] ){
00539                     if( bSpace == FALSE ){
00540                         nStartPos = nPosX;
00541                     }
00542                     bSpace = TRUE;
00543                     if( SPACE == pLine[i] ){
00544                         nPosX++;
00545                     }else if( TAB == pLine[i] ){
00546                         nPosX += nTabSpace - (nPosX % nTabSpace);
00547                     }
00548                 }else{
00549                     if( bSpace ){
00550                         if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
00551                             pDes[nPosDes] = SPACE;
00552                             nPosDes++;
00553                         } else{
00554                             for( j = nStartPos / nTabSpace; j < (nPosX / nTabSpace); j++ ){
00555                                 pDes[nPosDes] = TAB;
00556                                 nPosDes++;
00557                                 nStartPos += nTabSpace - ( nStartPos % nTabSpace );
00558                             }
00559                             //  2003.08.05 Moca
00560                             //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
00561                             //  バッファをはみ出すのを修正
00562                             for( j = nStartPos; j < nPosX; j++ ){
00563                                 pDes[nPosDes] = SPACE;
00564                                 nPosDes++;
00565                             }
00566                         }
00567                     }
00568                     nPosX++;
00569                     pDes[nPosDes] = pLine[i];
00570                     nPosDes++;
00571                     bSpace = FALSE;
00572                 }
00573             }
00574             //for( ; i < nLineLen; ++i ){
00575             //  pDes[nPosDes] = pLine[i];
00576             //  nPosDes++;
00577             //}
00578             if( bSpace ){
00579                 if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
00580                     pDes[nPosDes] = SPACE;
00581                     nPosDes++;
00582                 } else{
00583                     //for( j = nStartPos - 1; (j + nTabSpace) <= nPosX + 1; j+=nTabSpace ){
00584                     for( j = nStartPos / nTabSpace; j < (nPosX / nTabSpace); j++ ){
00585                         pDes[nPosDes] = TAB;
00586                         nPosDes++;
00587                         nStartPos += nTabSpace - ( nStartPos % nTabSpace );
00588                     }
00589                     //  2003.08.05 Moca
00590                     //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
00591                     //  バッファをはみ出すのを修正
00592                     for( j = nStartPos; j < nPosX; j++ ){
00593                         pDes[nPosDes] = SPACE;
00594                         nPosDes++;
00595                     }
00596                 }
00597             }
00598         }
00599
00600         /* 行末の処理 */
00601         memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
00602         nPosDes += cEol.GetLen();
00603     }
00604     pDes[nPosDes] = '\0';
00605
00606     SetRawData( pDes, nPosDes );
00607     delete [] pDes;
00608     pDes = NULL;
00609     return;
00610 }
00611
00612
00613
00614 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00615 //                  staticインターフェース                     //
00616 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00617
00619 int CNativeA::GetSizeOfChar( const char* pData, int nDataLen, int nIdx )
00620 {
00621     return CShiftJis::GetSizeOfChar(pData,nDataLen,nIdx);
00622 }
00623
00624 /* ポインタで示した文字の次にある文字の位置を返します */
00625 /* 次にある文字がバッファの最後の位置を越える場合は&pData[nDataLen]を返します */
00626 const char* CNativeA::GetCharNext( const char* pData, int nDataLen, const char* pDataCurrent )
00627 {
00628 //#ifdef _DEBUG
00629 //  CRunningTimer cRunningTimer( "CMemory::MemCharNext" );
00630 //#endif
00631
00632     const char* pNext;
00633     if( pDataCurrent[0] == '\0' ){
00634         pNext = pDataCurrent + 1;
00635     }else
00636     {
00637 //      pNext = ::CharNext( pDataCurrent );
00638         if(
00639             /* SJIS全角コードの1バイト目か */    //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00640             _IS_SJIS_1( (unsigned char)pDataCurrent[0] )
00641             &&
00642             /* SJIS全角コードの2バイト目か */    //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00643             _IS_SJIS_2( (unsigned char)pDataCurrent[1] )
00644         ){
00645             pNext = pDataCurrent + 2;
00646         }else{
00647             pNext = pDataCurrent + 1;
00648         }
00649     }
00650
00651     if( pNext >= &pData[nDataLen] ){
00652         pNext = &pData[nDataLen];
00653     }
00654     return pNext;
00655 }
00656
00657 /* ポインタで示した文字の直前にある文字の位置を返します */
00658 /* 直前にある文字がバッファの先頭の位置を越える場合はpDataを返します */
00659 const char* CNativeA::GetCharPrev( const char* pData, int nDataLen, const char* pDataCurrent )
00660 {
00661 //#ifdef _DEBUG
00662 //  CRunningTimer cRunningTimer( "CMemory::MemCharPrev" );
00663 //#endif
00664
00665
00666     const char* pPrev;
00667     pPrev = ::CharPrevA( pData, pDataCurrent );
00668
00669 //===1999.08.12  このやり方だと、ダメだった。===============-
00670 //
00671 //  if( (pDataCurrent - 1)[0] == '\0' ){
00672 //      pPrev = pDataCurrent - 1;
00673 //  }else{
00674 //      if( pDataCurrent - pData >= 2 &&
00675 //          /* SJIS全角コードの1バイト目か */    //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00676 //          (
00677 //          ( (unsigned char)0x81 <= (unsigned char)pDataCurrent[-2] && (unsigned char)pDataCurrent[-2] <= (unsigned char)0x9F ) ||
00678 //          ( (unsigned char)0xE0 <= (unsigned char)pDataCurrent[-2] && (unsigned char)pDataCurrent[-2] <= (unsigned char)0xFC )
00679 //          ) &&
00680 //          /* SJIS全角コードの2バイト目か */    //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00681 //          (
00682 //          ( (unsigned char)0x40 <= (unsigned char)pDataCurrent[-1] && (unsigned char)pDataCurrent[-1] <= (unsigned char)0x7E ) ||
00683 //          ( (unsigned char)0x80 <= (unsigned char)pDataCurrent[-1] && (unsigned char)pDataCurrent[-1] <= (unsigned char)0xFC )
00684 //          )
00685 //      ){
00686 //          pPrev = pDataCurrent - 2;
00687 //      }else{
00688 //          pPrev = pDataCurrent - 1;
00689 //      }
00690 //  }
00691 //  if( pPrev < pData ){
00692 //      pPrev = pData;
00693 //  }
00694     return pPrev;
00695 }
00696
00697
00698 void CNativeA::AppendStringNew( const wchar_t* pszData )
00699 {
00700     AppendStringNew(pszData,wcslen(pszData));
00701 }
00702 void CNativeA::AppendStringNew( const wchar_t* pData, int nDataLen )
00703 {
00704     char* buf=wcstombs_new(pData,nDataLen);
00705     AppendString(buf);
00706     delete[] buf;
00707 }
00708
00709
00710 const wchar_t* CNativeA::GetStringW() const
00711 {
00712     return to_wchar(GetStringPtr(),GetStringLength());
00713 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeA.h

sakura_core

CNativeA.h

#include "CNative.h"

CNativeA.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CNativeA

Sakura-Editorに対してSat Nov 17 20:26:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeA.h ソースファイル

sakura_core

CNativeA.h

説明を見る。
00001 #pragma once
00002
00003 #include "CNative.h"
00004
00005 class CNativeA : public CNative{
00006 public:
00007     CNativeA();
00008     CNativeA(const CNativeA& rhs);
00009     CNativeA(const char* szData);
00010     CNativeA(const char* pData, int nLength);
00011
00012     //ネイティブ設定
00013     void SetString( const char* pszData );
00014     void SetString( const char* pData, int nDataLen );
00015     void SetNativeData( const CNativeA& pcNative );
00016     void AppendString( const char* pszData );
00017     void AppendString( const char* pszData, int nLength );
00018     void AppendNativeData( const CNativeA& pcNative );
00019     void AllocStringBuffer( int nDataLen );
00020
00021     //ネイティブ取得
00022     int GetStringLength() const;
00023     char operator[](int nIndex) const;
00024     const char* GetStringPtr() const
00025     {
00026         return reinterpret_cast<const char*>(GetRawPtr());
00027     }
00028     char* GetStringPtr()
00029     {
00030         return reinterpret_cast<char*>(GetRawPtr());
00031     }
00032     const char* GetStringPtr(int* pnLength) const; //[out]pnLengthは文字単位。
00033
00034     //演算子
00035     const CNativeA& operator=( char );
00036     const CNativeA& operator+=( char );
00037
00038     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00039     //                           変換                              //
00040     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00041
00042     //ネイティブ変換
00043     void Replace( const char* pszFrom, const char* pszTo );
00044     void Replace_j( const char* pszFrom, const char* pszTo );
00045
00046     //一般関数
00047     void ToLower(); // →小文字
00048     void ToUpper(); // →大文字
00049
00050     void ToZenkaku( int, int );  // 半角→全角
00051
00052     void TABToSPACE( int ); // TAB→空白
00053     void SPACEToTAB( int ); // 空白→TAB  //---- Stonee, 2001/05/27
00054
00055
00056     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00057     //                  型限定インターフェース                     //
00058     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00059     // 使用はできるだけ控えるのが望ましい。
00060     // ひとつはオーバーヘッドを抑える意味で。
00061     // ひとつは変換によるデータ喪失を抑える意味で。
00062
00063     //WCHAR
00064     void SetStringNew(const wchar_t* wszData, int nDataLen);
00065     void SetStringNew(const wchar_t* wszData);
00066     void AppendStringNew( const wchar_t* pszData );
00067     void AppendStringNew( const wchar_t* pszData, int nDataLen );
00068     void SetStringW(const wchar_t* pszData)             { return SetStringNew(pszData); }
00069     void SetStringW(const wchar_t* pData, int nLength)      { return SetStringNew(pData,nLength); }
00070     void AppendStringW(const wchar_t* pszData)              { return AppendStringNew(pszData); }
00071     void AppendStringW(const wchar_t* pData, int nLength)   { return AppendStringNew(pData,nLength); }
00072     const wchar_t* GetStringW() const;
00073
00074     //TCHAR
00075 #ifdef _UNICODE
00076     void SetStringT( const TCHAR* pszData )             { return SetStringNew(pszData); }
00077     void SetStringT( const TCHAR* pData, int nLength )  { return SetStringNew(pData,nLength); }
00078 #else
00079     void SetStringT( const TCHAR* pszData )             { return SetString(pszData); }
00080     void SetStringT( const TCHAR* pData, int nLength )  { return SetString(pData,nLength); }
00081 #endif
00082
00083 public:
00084     // -- -- staticインターフェース -- -- //
00085     static int GetSizeOfChar( const char* pData, int nDataLen, int nIdx );
00086     static const char* GetCharNext( const char* pData, int nDataLen, const char* pDataCurrent );
00087     static const char* GetCharPrev( const char* pData, int nDataLen, const char* pDataCurrent );
00088 };
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeT.h

sakura_core

CNativeT.h

#include "CNativeA.h"
#include "CNativeW.h"

CNativeT.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

型定義

typedef CNativeA CNativeT

型定義

typedef CNativeA CNativeT

CNativeT.h の 4 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeT.h ソースファイル

sakura_core

CNativeT.h

説明を見る。
00001 #pragma once
00002
00003 class CNativeW;
00004 class CNativeA;
00005
00006 #ifdef _UNICODE
00007 typedef CNativeW CNativeT;
00008 #else
00009 typedef CNativeA CNativeT;
00010 #endif
00011
00012
00013 #include "CNativeA.h"
00014 #include "CNativeW.h"
00015
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeW.cpp

sakura_core

CNativeW.cpp

#include "stdafx.h"
#include "CNativeW.h"
#include "charcode.h"
#include "CEOL.h"
#include <mbstring.h>
#include "charset/CShiftJis.h"

CNativeW.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeW.cpp ソースファイル

sakura_core

CNativeW.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CNativeW.h"
00003 #include "charcode.h"
00004 #include "CEOL.h"
00005 #include <mbstring.h>
00006 #include "charset/CShiftJis.h"
00007
00008 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00009 //               コンストラクタ・デストラクタ                  //
00010 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00011 CNativeW::CNativeW()
00012 : m_pDebugData((PWCHAR&)_DebugGetPointerRef())
00013 {
00014 }
00015
00017 CNativeW::CNativeW( const wchar_t* pData, int nDataLen )
00018 : m_pDebugData((PWCHAR&)_DebugGetPointerRef())
00019 {
00020     SetString(pData,nDataLen);
00021 }
00022
00023 CNativeW::CNativeW( const wchar_t* pData)
00024 : m_pDebugData((PWCHAR&)_DebugGetPointerRef())
00025 {
00026     SetString(pData,wcslen(pData));
00027 }
00028
00029 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00030 //              ネイティブ設定インターフェース                 //
00031 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00032
00033
00034 // バッファの内容を置き換える
00035 void CNativeW::SetString( const wchar_t* pData, int nDataLen )
00036 {
00037     CNative::SetRawData(pData,nDataLen * sizeof(wchar_t));
00038 }
00039
00040 // バッファの内容を置き換える
00041 void CNativeW::SetString( const wchar_t* pszData )
00042 {
00043     SetString(pszData,wcslen(pszData));
00044 }
00045
00046 // バッファの内容を置き換える
00047 void CNativeW::SetNativeData( const CNativeW& pcNative )
00048 {
00049     CNative::SetRawData(pcNative);
00050 }
00051
00053 void CNativeW::AllocStringBuffer( int nDataLen )
00054 {
00055     CNative::AllocBuffer(nDataLen * sizeof(wchar_t));
00056 }
00057
00059 void CNativeW::AppendString( const wchar_t* pszData )
00060 {
00061     AppendString(pszData,wcslen(pszData));
00062 }
00063
00065 void CNativeW::AppendString( const wchar_t* pszData, int nLength )
00066 {
00067     CNative::AppendRawData(pszData, nLength * sizeof(wchar_t));
00068 }
00069
00071 void CNativeW::AppendNativeData( const CNativeW& cmemData )
00072 {
00073     AppendString(cmemData.GetStringPtr(),cmemData.GetStringLength());
00074 }
00075
00076 // -- -- charからの移行用 -- -- //
00077
00079 void CNativeW::SetStringOld( const char* pData, int nDataLen )
00080 {
00081     CNative::SetRawData(pData,nDataLen * sizeof(char));
00082     CShiftJis::SJISToUnicode(this->_GetMemory());
00083 }
00084
00086 void CNativeW::SetStringOld( const char* pszData )
00087 {
00088     SetStringOld(pszData,strlen(pszData));
00089 }
00090
00091 void CNativeW::AppendStringOld( const char* pData, int nDataLen )
00092 {
00093     wchar_t* szTmp=mbstowcs_new(pData,nDataLen);
00094     AppendString(szTmp);
00095     delete[] szTmp;
00096 }
00097
00099 void CNativeW::AppendStringOld( const char* pszData )
00100 {
00101     AppendStringOld(pszData,strlen(pszData));
00102 }
00103
00104
00105 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00106 //              ネイティブ取得インターフェース                 //
00107 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00108
00109 // GetAt()と同機能
00110 wchar_t CNativeW::operator[](int nIndex) const
00111 {
00112     if( nIndex < GetStringLength() ){
00113         return GetStringPtr()[nIndex];
00114     }else{
00115         return 0;
00116     }
00117 }
00118
00120 CLogicInt CNativeW::GetStringLength() const
00121 {
00122     return CLogicInt(CNative::GetRawLength() / sizeof(wchar_t));
00123 }
00124
00125
00126 /* 等しい内容か */
00127 bool CNativeW::IsEqual( const CNativeW& cmem1, const CNativeW& cmem2 )
00128 {
00129     if(&cmem1==&cmem2)return true;
00130
00131     const wchar_t* psz1;
00132     const wchar_t* psz2;
00133     int nLen1;
00134     int nLen2;
00135
00136     psz1 = cmem1.GetStringPtr( &nLen1 );
00137     psz2 = cmem2.GetStringPtr( &nLen2 );
00138     if( nLen1 == nLen2 ){
00139         if( 0 == wmemcmp( psz1, psz2, nLen1 ) ){
00140             return true;
00141         }
00142     }
00143     return false;
00144 }
00145
00146
00147 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00148 //              ネイティブ変換インターフェース                 //
00149 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00150
00152 void CNativeW::Replace( const wchar_t* pszFrom, const wchar_t* pszTo )
00153 {
00154     CNativeW    cmemWork;
00155     int         nFromLen = wcslen( pszFrom );
00156     int         nToLen = wcslen( pszTo );
00157     int         nBgnOld = 0;
00158     int         nBgn = 0;
00159     while( nBgn <= GetStringLength() - nFromLen ){
00160         if( 0 == wmemcmp( &GetStringPtr()[nBgn], pszFrom, nFromLen ) ){
00161             if( 0  < nBgn - nBgnOld ){
00162                 cmemWork.AppendString( &GetStringPtr()[nBgnOld], nBgn - nBgnOld );
00163             }
00164             cmemWork.AppendString( pszTo, nToLen );
00165             nBgn = nBgn + nFromLen;
00166             nBgnOld = nBgn;
00167         }else{
00168             nBgn++;
00169         }
00170     }
00171     if( 0  < GetStringLength() - nBgnOld ){
00172         cmemWork.AppendString( &GetStringPtr()[nBgnOld], GetStringLength() - nBgnOld );
00173     }
00174     SetNativeData( cmemWork );
00175 }
00176
00177
00178
00179
00180
00181
00182
00183
00184 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00185 //                  staticインターフェース                     //
00186 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00187
00189 CLogicInt CNativeW::GetSizeOfChar( const wchar_t* pData, int nDataLen, int nIdx )
00190 {
00191     if( nIdx >= nDataLen )
00192         return CLogicInt(0);
00193
00194     return CLogicInt(1);
00195 }
00196
00198 CLayoutInt CNativeW::GetKetaOfChar( const wchar_t* pData, int nDataLen, int nIdx )
00199 {
00200     //文字列範囲外なら 0
00201     if( nIdx >= nDataLen )
00202         return CLayoutInt(0);
00203
00204     //半角文字なら 1
00205     if(WCODE::isHankaku(pData[nIdx]) )
00206         return CLayoutInt(1);
00207
00208     //全角文字なら 2
00209     else
00210         return CLayoutInt(2);
00211 }
00212
00213
00214 /* ポインタで示した文字の次にある文字の位置を返します */
00215 /* 次にある文字がバッファの最後の位置を越える場合は&pData[nDataLen]を返します */
00216 const wchar_t* CNativeW::GetCharNext( const wchar_t* pData, int nDataLen, const wchar_t* pDataCurrent )
00217 {
00218     const wchar_t* pNext = pDataCurrent + 1;
00219
00220     if( pNext >= &pData[nDataLen] ){
00221         pNext = &pData[nDataLen];
00222     }
00223     return pNext;
00224 }
00225
00226 /* ポインタで示した文字の直前にある文字の位置を返します */
00227 /* 直前にある文字がバッファの先頭の位置を越える場合はpDataを返します */
00228 const wchar_t* CNativeW::GetCharPrev( const wchar_t* pData, int nDataLen, const wchar_t* pDataCurrent )
00229 {
00230     const wchar_t* pPrev = pDataCurrent - 1;
00231     if( pPrev < pData ){
00232         pPrev = pData;
00233     }
00234     return pPrev;
00235 //  return ::CharPrevW_AnyBuild( pData, pDataCurrent );
00236 }
00237
00238
00239 //ShiftJISに変換して返す
00240 const char* CNativeW::GetStringPtrOld() const
00241 {
00242     return to_achar(GetStringPtr(),GetStringLength());
00243 }
00244
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeW.h

sakura_core

CNativeW.h

#include "CNative.h"
#include "CNativeT.h"

CNativeW.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CNativeW
class | IStringRef
文字列への参照を取得するインターフェース [詳細]
class | CStringRef
文字列への参照を保持するクラス [詳細]

Sakura-Editorに対してSat Nov 17 20:26:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNativeW.h ソースファイル

sakura_core

CNativeW.h

説明を見る。
00001 #pragma once
00002
00003 #include "CNative.h"
00004 #include "CNativeT.h"
00005
00006 class CNativeW : public CNative{
00007 public:
00008     //コンストラクタ・デストラクタ
00009     CNativeW();
00010     CNativeW( const CNativeW& );
00011     CNativeW( const wchar_t* pData, int nDataLen );
00012     CNativeW( const wchar_t* pData);
00013
00014     //管理
00015     void AllocStringBuffer( int nDataLen );
00016
00017     //WCHAR
00018     void SetString( const wchar_t* pData, int nDataLen );
00019     void SetString( const wchar_t* pszData );
00020     void AppendString( const wchar_t* pszData );
00021     void AppendString( const wchar_t* pszData, int nLength );
00022
00023     //CNativeW
00024     void SetNativeData( const CNativeW& pcNative );
00025     void AppendNativeData( const CNativeW& );
00026
00027     //演算子
00028     const CNativeW& operator+=( wchar_t wch )        { AppendString(&wch,1);   return *this; }
00029     const CNativeW& operator=( wchar_t wch )         { SetString(&wch,1);      return *this; }
00030     const CNativeW& operator+=( const CNativeW& rhs ){ AppendNativeData(rhs); return *this; }
00031     const CNativeW& operator=(const CNativeW& rhs)   { SetNativeData(rhs);    return *this; }
00032
00033
00034     //ネイティブ取得インターフェース
00035     wchar_t operator[](int nIndex) const;
00036     CLogicInt GetStringLength() const;
00037     const wchar_t* GetStringPtr() const
00038     {
00039         return reinterpret_cast<const wchar_t*>(GetRawPtr());
00040     }
00041     wchar_t* GetStringPtr()
00042     {
00043         return reinterpret_cast<wchar_t*>(GetRawPtr());
00044     }
00045     const wchar_t* GetStringPtr(int* pnLength) const //[out]pnLengthは文字単位。
00046     {
00047         *pnLength=GetStringLength();
00048         return reinterpret_cast<const wchar_t*>(GetRawPtr());
00049     }
00050 #ifdef USE_STRICT_INT
00051     const wchar_t* GetStringPtr(CLogicInt* pnLength) const //[out]pnLengthは文字単位。
00052     {
00053         int n;
00054         const wchar_t* p=GetStringPtr(&n);
00055         *pnLength=CLogicInt(n);
00056         return p;
00057     }
00058 #endif
00059
00060     //特殊
00061     void _SetStringLength(int nLength)
00062     {
00063         _GetMemory()->_SetRawLength(nLength*sizeof(wchar_t));
00064     }
00065
00066
00067     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00068     //                           判定                              //
00069     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00070
00072     static bool IsEqual( const CNativeW& cmem1, const CNativeW& cmem2 );
00073
00074
00075     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00076     //                           変換                              //
00077     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00078
00079
00080     void Replace( const wchar_t* pszFrom, const wchar_t* pszTo );
00081
00082
00083     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00084     //                  型限定インターフェース                     //
00085     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086     // 使用はできるだけ控えるのが望ましい。
00087     // ひとつはオーバーヘッドを抑える意味で。
00088     // ひとつは変換によるデータ喪失を抑える意味で。
00089
00090     //ACHAR
00091     void SetStringOld( const char* pData, int nDataLen );
00092     void SetStringOld( const char* pszData );
00093     void AppendStringOld( const char* pData, int nDataLen );
00094     void AppendStringOld( const char* pszData );
00095     const char* GetStringPtrOld() const; //ShiftJISに変換して返す
00096
00097     //WCHAR
00098     void SetStringW(const wchar_t* pszData)             { return SetString(pszData); }
00099     void SetStringW(const wchar_t* pData, int nLength)      { return SetString(pData,nLength); }
00100     void AppendStringW(const wchar_t* pszData)              { return AppendString(pszData); }
00101     void AppendStringW(const wchar_t* pData, int nLength)   { return AppendString(pData,nLength); }
00102     const wchar_t* GetStringW() const                       { return GetStringPtr(); }
00103
00104     //TCHAR
00105 #ifdef _UNICODE
00106     void SetStringT( const TCHAR* pData, int nDataLen ) { return SetString(pData,nDataLen); }
00107     void SetStringT( const TCHAR* pszData )             { return SetString(pszData); }
00108     void AppendStringT(const TCHAR* pszData)            { return AppendString(pszData); }
00109     void AppendStringT(const TCHAR* pData, int nLength) { return AppendString(pData,nLength); }
00110     void AppendNativeDataT(const CNativeT& rhs)         { return AppendNativeData(rhs); }
00111     const TCHAR* GetStringT() const                     { return GetStringPtr(); }
00112 #else
00113     void SetStringT( const TCHAR* pData, int nDataLen ) { return SetStringOld(pData,nDataLen); }
00114     void SetStringT( const TCHAR* pszData )             { return SetStringOld(pszData); }
00115     void AppendStringT(const TCHAR* pszData)            { return AppendStringOld(pszData); }
00116     void AppendStringT(const TCHAR* pData, int nLength) { return AppendStringOld(pData,nLength); }
00117     void AppendNativeDataT(const CNativeT& rhs)         { return AppendStringOld(rhs.GetStringPtr(), rhs.GetStringLength()); }
00118     const TCHAR* GetStringT() const                     { return GetStringPtrOld(); }
00119 #endif
00120
00121 private:
00122     typedef wchar_t* PWCHAR;
00123     PWCHAR& m_pDebugData; //デバッグ用。CMemoryの内容をwchar_t*型でウォッチするためのモノ
00124
00125 public:
00126     // -- -- staticインターフェース -- -- //
00127     static CLogicInt GetSizeOfChar( const wchar_t* pData, int nDataLen, int nIdx );
00128     static CLayoutInt GetKetaOfChar( const wchar_t* pData, int nDataLen, int nIdx );
00129     static const wchar_t* GetCharNext( const wchar_t* pData, int nDataLen, const wchar_t* pDataCurrent );
00130     static const wchar_t* GetCharPrev( const wchar_t* pData, int nDataLen, const wchar_t* pDataCurrent );
00131 };
00132
00133
00135 class IStringRef{
00136 public:
00137     virtual const wchar_t*  GetPtr()    const = 0;
00138     virtual int             GetLength() const = 0;
00139 };
00140
00142 class CStringRef : public IStringRef{
00143 public:
00144     CStringRef(const wchar_t* pData, int nDataLen) : m_pData(pData), m_nDataLen(nDataLen) { }
00145     const wchar_t*  GetPtr()    const{ return m_pData;    }
00146     int             GetLength() const{ return m_nDataLen; }
00147 private:
00148     const wchar_t*  m_pData;
00149     int             m_nDataLen;
00150 };
00151
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNormalProcess.cpp

sakura_core

CNormalProcess.cpp

エディタプロセスクラス [詳細]

#include "stdafx.h"
#include "CNormalProcess.h"
#include "CCommandLine.h"
#include "CControlTray.h"
#include "CShareData.h"
#include "Debug.h"
#include "CEditWnd.h"
#include "mymessage.h"
#include "CDocLine.h"
#include <tchar.h>
#include "CRunningTimer.h"
#include "util/window.h"
#include "util/file.h"

CNormalProcess.cppのインクルード依存関係図

ソースコードを見る。

説明

エディタプロセスクラス

作者:
aroka
日付:
2002/01/07 Create

CNormalProcess.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNormalProcess.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00025 #include "CShareData.h"
00026 #include "Debug.h"
00027 #include "CEditWnd.h" // 2002/2/3 aroka
00028 #include "mymessage.h" // 2002/2/3 aroka
00029 #include "CDocLine.h" // 2003/03/28 MIK
00030 #include <tchar.h>
00031 #include "CRunningTimer.h"
00032 #include "util/window.h"
00033 #include "util/file.h"
00034
00047 bool CNormalProcess::Initialize()
00048 {
00049     MY_RUNNINGTIMER( cRunningTimer, "NormalProcess::Init" );
00050
00051     /* プロセス初期化の目印 */
00052     HANDLE  hMutex = GetInitializeMutex();  // 2002/2/8 aroka 込み入っていたので分離
00053     if( NULL == hMutex ){
00054         return false;
00055     }
00056
00057     if ( CProcess::Initialize() == false ){
00058         return false;
00059     }
00060
00061     /* コマンドラインオプション */
00062     bool            bReadOnly;
00063     bool            bDebugMode;
00064     bool            bGrepMode;
00065     bool            bGrepDlg;
00066     GrepInfo        gi;
00067     FileInfo        fi;
00068
00069     /* コマンドラインで受け取ったファイルが開かれている場合は */
00070     /* その編集ウィンドウをアクティブにする */
00071     CCommandLine::Instance()->GetFileInfo(fi); // 2002/2/8 aroka ここに移動
00072     if( 0 < _tcslen( fi.m_szPath ) ){
00073         //  Oct. 27, 2000 genta
00074         //  MRUからカーソル位置を復元する操作はCEditDoc::FileReadで
00075         //  行われるのでここでは必要なし．
00076
00077         HWND hwndOwner;
00078         /* 指定ファイルが開かれているか調べる */
00079         // 2007.03.13 maru 文字コードが異なるときはワーニングを出すように
00080         if( FALSE != GetShareData().IsPathOpened( fi.m_szPath, &hwndOwner, fi.m_nCharCode ) ){
00081             //  From Here Oct. 19, 2001 genta
00082             //  カーソル位置が引数に指定されていたら指定位置にジャンプ
00083             if( fi.m_ptCursor.y >= 0 ){ //  行の指定があるか
00084                 CLogicPoint& pt = *CProcess::GetDllShareData().GetWorkBuffer<CLogicPoint>();
00085                 if( fi.m_ptCursor.x < 0 ){
00086                     //  桁の指定が無い場合
00087 					::SendMessageAny( hwndOwner, MYWM_GETCARETPOS, 0, 0 );
00088                 }
00089                 else {
00090                     pt.x = fi.m_ptCursor.x;
00091                 }
00092                 pt.y = fi.m_ptCursor.y;
00093 				::SendMessageAny( hwndOwner, MYWM_SETCARETPOS, 0, 0 );
00094             }
00095             //  To Here Oct. 19, 2001 genta
00096             /* アクティブにする */
00097             ActivateFrameWindow( hwndOwner );
00098             ::ReleaseMutex( hMutex );
00099             ::CloseHandle( hMutex );
00100             return false;
00101         }else{
00102
00103         }
00104     }
00105
00106
00107     // エディタアプリケーションを作成。2007.10.23 kobake
00108     m_pcEditApp = new CEditApp(GetProcessInstance());
00109     CEditWnd* pEditWnd = m_pcEditApp->GetWindow();
00110
00111     /* コマンドラインの解析 */     // 2002/2/8 aroka ここに移動
00112     bDebugMode = CCommandLine::Instance()->IsDebugMode();
00113     bGrepMode  = CCommandLine::Instance()->IsGrepMode();
00114     bGrepDlg   = CCommandLine::Instance()->IsGrepDlg();
00115
00116     MY_TRACETIME( cRunningTimer, "CheckFile" );
00117     if( bDebugMode ){
00118         /* デバッグモニタモードに設定 */
00119         pEditWnd->SetDebugModeON();
00120         // 2004.09.20 naoh アウトプット用タイプ別設定
00121         pEditWnd->GetDocument().SetDocumentType( GetShareData().GetDocumentTypeExt(_T("output")), true );
00122     }
00123     else if( bGrepMode ){
00124         // 2004.05.13 Moca CEditWnd::Create()に失敗した場合の考慮を追加
00125         if( NULL == pEditWnd->GetHwnd() ){
00126             goto end_of_func;
00127         }
00128         /* GREP */
00129         CCommandLine::Instance()->GetGrepInfo(gi); // 2002/2/8 aroka ここに移動
00130         if( !bGrepDlg ){
00131             TCHAR szWork[MAX_PATH];
00132             /* ロングファイル名を取得する */
00133             if( ::GetLongFileName( gi.cmGrepFolder.GetStringPtr(), szWork ) ){
00134                 gi.cmGrepFolder.SetString( szWork, _tcslen( szWork ) );
00135             }
00136             // 2003.06.23 Moca GREP実行前にMutexを開放
00137             //  こうしないとGrepが終わるまで新しいウィンドウを開けない
00138             SetMainWindow( pEditWnd->GetHwnd() );
00139             ::ReleaseMutex( hMutex );
00140             ::CloseHandle( hMutex );
00141             pEditWnd->m_pcEditViewArr[0]->DoGrep(
00142                 &gi.cmGrepKey,
00143                 &gi.cmGrepFile,
00144                 &gi.cmGrepFolder,
00145                 gi.bGrepSubFolder,
00146                 gi.sGrepSearchOption,
00147                 gi.nGrepCharSet,    //  2002/09/21 Moca
00148                 gi.bGrepOutputLine,
00149                 gi.nGrepOutputStyle
00150             );
00151             return true; // 2003.06.23 Moca
00152         }
00153         else{
00154             //-GREPDLGでダイアログを出す。　引数も反映（2002/03/24 YAZAKI）
00155             CShareData::getInstance()->AddToSearchKeyArr( gi.cmGrepKey.GetStringPtr() );
00156             CShareData::getInstance()->AddToGrepFileArr( gi.cmGrepFile.GetStringPtr() );
00157             CShareData::getInstance()->AddToGrepFolderArr( gi.cmGrepFolder.GetStringPtr() );
00158             GetDllShareData().m_Common.m_sSearch.m_bGrepSubFolder = gi.bGrepSubFolder;
00159             GetDllShareData().m_Common.m_sSearch.m_sSearchOption = gi.sGrepSearchOption;
00160             GetDllShareData().m_Common.m_sSearch.m_nGrepCharSet = gi.nGrepCharSet;
00161             GetDllShareData().m_Common.m_sSearch.m_bGrepOutputLine = gi.bGrepOutputLine;
00162             GetDllShareData().m_Common.m_sSearch.m_nGrepOutputStyle = gi.nGrepOutputStyle;
00163             // 2003.06.23 Moca GREPダイアログ表示前にMutexを開放
00164             //  こうしないとGrepが終わるまで新しいウィンドウを開けない
00165             SetMainWindow( pEditWnd->GetHwnd() );
00166             ::ReleaseMutex( hMutex );
00167             ::CloseHandle( hMutex );
00168
00169             //  Oct. 9, 2003 genta コマンドラインからGERPダイアログを表示させた場合に
00170             //  引数の設定がBOXに反映されない
00171             wcscpy( pEditWnd->m_cDlgGrep.m_szText, gi.cmGrepKey.GetStringPtr() );       /* 検索文字列 */
00172             _tcscpy( pEditWnd->m_cDlgGrep.m_szFile, gi.cmGrepFile.GetStringPtr() ); /* 検索ファイル */
00173             _tcscpy( pEditWnd->m_cDlgGrep.m_szFolder, gi.cmGrepFolder.GetStringPtr() ); /* 検索フォルダ */
00174
00175
00176             // Feb. 23, 2003 Moca Owner windowが正しく指定されていなかった
00177             int nRet = pEditWnd->m_cDlgGrep.DoModal( GetProcessInstance(), pEditWnd->GetHwnd(),  NULL);
00178             if( FALSE != nRet ){
00179                 pEditWnd->m_pcEditViewArr[0]->GetCommander().HandleCommand(F_GREP, TRUE, 0, 0, 0, 0);
00180             }
00181             return true; // 2003.06.23 Moca
00182         }
00183     }
00184     else{
00185         // 2004.05.13 Moca さらにif分の中から前に移動
00186         // ファイル名が与えられなくてもReadOnly指定を有効にするため．
00187         bReadOnly = CCommandLine::Instance()->IsReadOnly(); // 2002/2/8 aroka ここに移動
00188         if( 0 < _tcslen( fi.m_szPath ) ){
00189             //  Mar. 9, 2002 genta 文書タイプ指定
00190             pEditWnd->OpenDocumentWhenCreate(
00191                 fi.m_szPath,
00192                 fi.m_nCharCode,
00193                 bReadOnly/* 読み取り専用か */
00194             );
00195             pEditWnd->SetDocumentTypeWhenCreate(
00196                 fi.m_nCharCode,
00197                 bReadOnly/* 読み取り専用か */,
00198                 fi.m_szDocType[0] == '\0' ? -1 : GetShareData().GetDocumentTypeExt( fi.m_szDocType )
00199             );
00200             // 2004.05.13 Moca CEditWnd::Create()に失敗した場合の考慮を追加
00201             if( NULL == pEditWnd->GetHwnd() ){
00202                 goto end_of_func;
00203             }
00204             //  Nov. 6, 2000 genta
00205             //  キャレット位置の復元のため
00206             //  オプション指定がないときは画面移動を行わないようにする
00207             //  Oct. 19, 2001 genta
00208             //  未設定＝-1になるようにしたので，安全のため両者が指定されたときだけ
00209             //  移動するようにする． || → &&
00210             if( ( CLayoutInt(0) <= fi.m_nViewTopLine && CLayoutInt(0) <= fi.m_nViewLeftCol )
00211                 && fi.m_nViewTopLine < pEditWnd->GetDocument().m_cLayoutMgr.GetLineCount() ){
00212                 pEditWnd->m_pcEditViewArr[0]->GetTextArea().SetViewTopLine( fi.m_nViewTopLine );
00213                 pEditWnd->m_pcEditViewArr[0]->GetTextArea().SetViewLeftCol( fi.m_nViewLeftCol );
00214             }
00215
00216             //  オプション指定がないときはカーソル位置設定を行わないようにする
00217             //  Oct. 19, 2001 genta
00218             //  0も位置としては有効な値なので判定に含めなくてはならない
00219             if( 0 <= fi.m_ptCursor.x || 0 <= fi.m_ptCursor.y ){
00220                 /*
00221                   カーソル位置変換
00222                   物理位置(行頭からのバイト数、折り返し無し行位置)
00223                   →
00224                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00225                 */
00226                 CLayoutPoint ptPos;
00227                 pEditWnd->GetDocument().m_cLayoutMgr.LogicToLayout(
00228                     fi.m_ptCursor,
00229                     &ptPos
00230                 );
00231
00232                 // From Here Mar. 28, 2003 MIK
00233                 // 改行の真ん中にカーソルが来ないように。
00234                 // 2008.08.20 ryoji 改行単位の行番号を渡すように修正
00235                 const CDocLine *pTmpDocLine = pEditWnd->GetDocument().m_cDocLineMgr.GetLineInfo( fi.m_ptCursor.GetY2() );
00236                 if( pTmpDocLine ){
00237                     if( pTmpDocLine->GetLengthWithoutEOL() < fi.m_ptCursor.x ) ptPos.x--;
00238                 }
00239                 // To Here Mar. 28, 2003 MIK
00240
00241                 pEditWnd->m_pcEditViewArr[0]->GetCaret().MoveCursor( ptPos, TRUE );
00242                 pEditWnd->m_pcEditViewArr[0]->GetCaret().m_nCaretPosX_Prev =
00243                     pEditWnd->m_pcEditViewArr[0]->GetCaret().GetCaretLayoutPos().GetX2();
00244             }
00245             pEditWnd->m_pcEditViewArr[0]->RedrawAll();
00246         }
00247         else{
00248             // 2004.05.13 Moca ファイル名が与えられなくてもReadOnlyとタイプ指定を有効にする
00249             pEditWnd->SetDocumentTypeWhenCreate(
00250                 fi.m_nCharCode,
00251                 bReadOnly/* 読み取り専用か */,
00252                 fi.m_szDocType[0] == '\0' ? -1 : GetShareData().GetDocumentTypeExt( fi.m_szDocType )
00253             );
00254         }
00255     }
00256
00257 end_of_func:
00258     SetMainWindow( pEditWnd->GetHwnd() );
00259
00260     //ウィンドウキャプション更新
00261     pEditWnd->GetDocument().SetParentCaption();
00262
00263     //  YAZAKI 2002/05/30 IMEウィンドウの位置がおかしいのを修正。
00264     pEditWnd->GetActiveView().SetIMECompFormPos();
00265
00266     //WM_SIZEをポスト
00267     {
00268         RECT rc;
00269         GetClientRect( pEditWnd->GetHwnd(), &rc);
00270 		::PostMessageAny(
00271             pEditWnd->GetHwnd(),
00272             WM_SIZE,
00273             SIZE_RESTORED,
00274             MAKELPARAM(
00275                 rc.right -rc.left,
00276                 rc.bottom-rc.top
00277             )
00278         );
00279     }
00280
00281     //再描画
00282     ::InvalidateRect( pEditWnd->GetHwnd(), NULL, TRUE );
00283
00284     ::ReleaseMutex( hMutex );
00285     ::CloseHandle( hMutex );
00286
00287
00288     return pEditWnd->GetHwnd() ? true : false;
00289 }
00290
00297 bool CNormalProcess::MainLoop()
00298 {
00299     if( GetMainWindow() ){
00300         m_pcEditApp->GetWindow()->MessageLoop();    /* メッセージループ */
00301         return true;
00302     }
00303     return false;
00304 }
00305
00313 void CNormalProcess::Terminate()
00314 {
00315 }
00316
00317
00318
00324 CNormalProcess::~CNormalProcess()
00325 {
00326 };
00327
00328
00338 HANDLE CNormalProcess::GetInitializeMutex() const
00339 {
00340     MY_RUNNINGTIMER( cRunningTimer, "NormalProcess::GetInitializeMutex" );
00341     HANDLE hMutex;
00342     hMutex = ::CreateMutex( NULL, TRUE, GSTR_MUTEX_SAKURA_INIT );
00343     if( NULL == hMutex ){
00344         ::MessageBeep( MB_ICONSTOP );
00345 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST,
00346             GSTR_APPNAME, _T("CreateMutex()失敗。\n終了します。") );
00347         return NULL;
00348     }
00349     if( ::GetLastError() == ERROR_ALREADY_EXISTS ){
00350         DWORD dwRet = ::WaitForSingleObject( hMutex, 15000 );   // 2002/2/8 aroka 少し長くした
00351         if( WAIT_TIMEOUT == dwRet ){// 別の誰かが起動中
00352 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00353                 _T("エディタまたはシステムがビジー状態です。\nしばらく待って開きなおしてください。") );
00354             ::CloseHandle( hMutex );
00355             return NULL;
00356         }
00357     }
00358     return hMutex;
00359 }
00360
00361 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNormalProcess.h

sakura_core

CNormalProcess.h

エディタプロセスクラスヘッダファイル [詳細]

#include "global.h"
#include "CProcess.h"
#include "CMigemo.h"
#include "CEditApp.h"
#include "util/design_template.h"

CNormalProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CNormalProcess
エディタプロセスクラス [詳細]

説明

エディタプロセスクラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CNormalProcess.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CNormalProcess.h ソースファイル

sakura_core

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 #include "CEditApp.h"
00021 #include "util/design_template.h"
00022 class CEditWnd;
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00032 class SAKURA_CORE_API CNormalProcess : public CProcess, public TSingleInstance<CNormalProcess> {
00033 public:
00034     CNormalProcess( HINSTANCE hInstance, LPTSTR lpCmdLine ) :
00035         m_pcEditApp( NULL ),
00036         CProcess( hInstance, lpCmdLine ){}
00037     virtual ~CNormalProcess(); // 2002/2/3 aroka
00038
00039 protected:
00040     CNormalProcess();
00041     virtual bool Initialize();
00042     virtual bool MainLoop();
00043     virtual void Terminate();
00044
00045     HANDLE GetInitializeMutex() const; // 2002/2/8 aroka
00046
00047 private:
00048     CEditApp*   m_pcEditApp; //2007.10.23 kobake
00049 //  CEditWnd*   m_pcEditWnd;
00050
00051     CMigemo     m_cMigemo;  //migemo
00052 };
00053
00054
00056 #endif /* _CNORMALPROCESS_H_ */
00057
00058 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: codeutil.cpp

sakura_core » charset

codeutil.cpp

#include "stdafx.h"
#include "codeutil.h"
#include "charcode.h"
#include <mbstring.h>

codeutil.cppのインクルード依存関係図

ソースコードを見る。

関数

unsigned short _mbcjmstojis_ex (unsigned char *pszSrc)
拡張版 SJIS→JIS変換

関数

unsigned short _mbcjmstojis_ex ( unsigned char * pszSrc )

拡張版 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

codeutil.cpp の 20 行で定義されています。

参照先 _IS_SJIS_1, と _IS_SJIS_2().

参照元 CJis::MemSJIStoJIS(), と CEuc::SJISToEUC().

Sakura-Editorに対してSat Nov 17 20:26:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: codeutil.cpp ソースファイル

sakura_core » charset

codeutil.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "codeutil.h"
00003 #include "charcode.h"
00004 #include <mbstring.h>
00005
00020 unsigned short _mbcjmstojis_ex( unsigned char* pszSrc )
00021 {
00022     unsigned int    tmpw;   /* ← int が 16 bit 以上である事を期待しています。 */
00023
00024     if( _IS_SJIS_1(* pszSrc    ) && /* Shift_JIS 全角文字の 1バイト目 */
00025         _IS_SJIS_2(*(pszSrc+1) )    /* Shift_JIS 全角文字の 2バイト目 */
00026     ){  /* Shift_JIS全角文字である */
00027         tmpw = ( ((unsigned int)*pszSrc) << 8 ) | ( (unsigned int)*(pszSrc + 1) );
00028         if(
00029             ( *pszSrc == 0x0fa ) ||
00030             ( *pszSrc == 0x0fb ) ||
00031             ( ( *pszSrc == 0x0fc ) && ( *(pszSrc+1) <= 0x04b ) )
00032         ) {     /* fa40〜fc4b の文字である。 */
00033             /* 文字コード変換処理 */
00034             if        ( tmpw <= 0xfa49 ) {  tmpw -= 0x0b51; }   /* fa40〜fa49 → eeef〜eef8 (ⅰ〜ⅹ) */
00035             else    if( tmpw <= 0xfa53 ) {  tmpw -= 0x72f6; }   /* fa4a〜fa53 → 8754〜875d (Ⅰ〜Ⅹ) */
00036             else    if( tmpw <= 0xfa57 ) {  tmpw -= 0x0b5b; }   /* fa54〜fa57 → eef9〜eefc (¬〜＂) */
00037             else    if( tmpw == 0xfa58 ) {  tmpw  = 0x878a; }   /* ㈱ */
00038             else    if( tmpw == 0xfa59 ) {  tmpw  = 0x8782; }   /* № */
00039             else    if( tmpw == 0xfa5a ) {  tmpw  = 0x8784; }   /* ℡ */
00040             else    if( tmpw == 0xfa5b ) {  tmpw  = 0x879a; }   /* ∵ */
00041             else    if( tmpw <= 0xfa7e ) {  tmpw -= 0x0d1c; }   /* fa5c〜fa7e → ed40〜ed62 (纊〜兊) */
00042             else    if( tmpw <= 0xfa9b ) {  tmpw -= 0x0d1d; }   /* fa80〜fa9b → ed63〜ed7e (兤〜﨏) */
00043             else    if( tmpw <= 0xfafc ) {  tmpw -= 0x0d1c; }   /* fa9c〜fafc → ed80〜ede0 (塚〜浯) */
00044             else    if( tmpw <= 0xfb5b ) {  tmpw -= 0x0d5f; }   /* fb40〜fb5b → ede1〜edfc (涖〜犱) */
00045             else    if( tmpw <= 0xfb7e ) {  tmpw -= 0x0d1c; }   /* fb5c〜fb7e → ee40〜ee62 (犾〜神) */
00046             else    if( tmpw <= 0xfb9b ) {  tmpw -= 0x0d1d; }   /* fb80〜fb9b → ee63〜ee7e (祥〜蕙) */
00047             else    if( tmpw <= 0xfbfc ) {  tmpw -= 0x0d1c; }   /* fb9c〜fbfc → ee80〜eee0 (蕫〜髙) */
00048             else{                           tmpw -= 0x0d5f; }   /* fc40〜fc4b → eee1〜eeec (髜〜黑) */
00049         }
00050         return (unsigned short) _mbcjmstojis( tmpw );
00051     }
00052     return 0;
00053 }
00054
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: codeutil.h

sakura_core » charset

codeutil.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

unsigned short _mbcjmstojis_ex (unsigned char *pszSrc)
拡張版 SJIS→JIS変換

関数

unsigned short _mbcjmstojis_ex ( unsigned char * pszSrc )

拡張版 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

codeutil.cpp の 20 行で定義されています。

参照先 _IS_SJIS_1, と _IS_SJIS_2().

参照元 CJis::MemSJIStoJIS(), と CEuc::SJISToEUC().

Sakura-Editorに対してSat Nov 17 20:26:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: codeutil.h ソースファイル

sakura_core » charset

codeutil.h

説明を見る。
00001 #pragma once
00002
00003
00004 //  Oct. 3, 2002 genta
00005 unsigned short _mbcjmstojis_ex( unsigned char* pszSrc );
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonControl.h

sakura_core » apiwrap

CommonControl.h

#include <commctrl.h>

CommonControl.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | ApiWrap

関数

LRESULT | ApiWrap::StatusBar_SetText (HWND hwndStatus, WPARAM opt, const TCHAR *str)

Sakura-Editorに対してSat Nov 17 20:26:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonControl.h ソースファイル

sakura_core » apiwrap

CommonControl.h

説明を見る。
00001 #pragma once
00002
00003 #include <commctrl.h>
00004
00005 namespace ApiWrap
00006 {
00007     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008     //                      ステータスバー                         //
00009     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010     inline LRESULT StatusBar_SetText(HWND hwndStatus, WPARAM opt, const TCHAR* str)
00011     {
00012         return ::SendMessage( hwndStatus, SB_SETTEXT, opt, (LPARAM)str );
00013     }
00014
00015 }
00016
00017 using namespace ApiWrap;
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonSetting.cpp

sakura_core » share

CommonSetting.cpp

#include "stdafx.h"
#include "CommonSetting.h"
#include <vector>

CommonSetting.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | CommonValueInfo
class | CommonValue< T >

型定義

typedef char | mystring [10]

関数

void | CommonValue_AllSave ()
void | sample ()

変数

vector< CommonValueInfo > | g_commonvalues

型定義

typedef char mystring[10]

CommonSetting.cpp の 71 行で定義されています。

関数

void CommonValue_AllSave ( )

CommonSetting.cpp の 42 行で定義されています。

参照先 g_commonvalues.

参照元 sample().

void sample ( )

CommonSetting.cpp の 73 行で定義されています。

参照先 CommonValue_AllSave(), と CommonValue< T >::Regist().

変数

vector<CommonValueInfo> g_commonvalues

CommonSetting.cpp の 41 行で定義されています。

参照元 CommonValue_AllSave(), と CommonValue< T >::Regist().

Sakura-Editorに対してSat Nov 17 20:26:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonSetting.cpp ソースファイル

sakura_core » share

CommonSetting.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CommonSetting.h"
00003 #include <vector>
00004 using namespace std;
00005
00006 //CommonValue管理
00007 struct CommonValueInfo{
00008     enum EType{
00009         TYPE_UNKNOWN,
00010         TYPE_ASTR,    //char文字列 (終端NULL)
00011         TYPE_WSTR,    //wchar_t文字列 (終端NULL)
00012     };
00013
00014     void* m_pValue;
00015     int   m_nValueSize;
00016     char  m_szEntryKey[32];
00017     EType m_eType;
00018
00019     CommonValueInfo(void* pValue, int nValueSize, const char* szEntryKey, EType eType=TYPE_UNKNOWN)
00020     : m_pValue(pValue), m_nValueSize(nValueSize), m_eType(eType)
00021     {
00022         strcpy_s(m_szEntryKey,_countof(m_szEntryKey),szEntryKey);
00023     }
00024
00025     void Save()
00026     {
00027         printf("%hs=",m_szEntryKey);
00028
00029         //intと同じサイズならintとして出力
00030         if(m_nValueSize==sizeof(int)){
00031             printf("%d\n",*((int*)m_pValue));
00032         }
00033         //それ以外ならバイナリ出力
00034         else{
00035             for(int i=0;i<m_nValueSize;i++){
00036                 printf("%%%02X",((BYTE*)m_pValue)[i]);
00037             }
00038         }
00039     }
00040 };
00041 vector<CommonValueInfo> g_commonvalues;
00042 void CommonValue_AllSave()
00043 {
00044     for(int i=0;i<(int)g_commonvalues.size();i++){
00045         g_commonvalues[i].Save();
00046     }
00047 }
00048
00049 //CommonValue ※virtual使うの禁止
00050 template <class T>
00051 class CommonValue{
00052 private:
00053     typedef CommonValue<T> Me;
00054 public:
00055     CommonValue()
00056     {
00057     }
00058     void Regist(const char* szEntryKey)
00059     {
00060         //CommonValueリストに自分を追加
00061         g_commonvalues.push_back(CommonValueInfo(&m_value,sizeof(m_value),szEntryKey));
00062     }
00063     Me& operator = (const T& rhs){ m_value=rhs; return *this; }
00064     operator T& () { return m_value; }
00065     operator const T& () const{ return m_value; }
00066 private:
00067     T m_value;
00068 };
00069
00070
00071 typedef char mystring[10];
00072
00073 void sample()
00074 {
00075     CommonValue<int>      intvalue;
00076     CommonValue<mystring> strvalue;
00077
00078     intvalue.Regist("intvalue");
00079     strvalue.Regist("strvalue");
00080
00081     intvalue=3;
00082     strcpy(strvalue,"hage");
00083
00084     CommonValue_AllSave();
00085 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonSetting.h

sakura_core » share

CommonSetting.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | CommonSetting_General
struct | CommonSetting_Window
struct | CommonSetting_Edit
struct | CommonSetting_File
struct | CommonSetting_Backup
struct | CommonSetting_Format
struct | CommonSetting_CustomMenu
struct | CommonSetting_Helper
struct | CommonSetting_Search
struct | CommonSetting_TabBar
struct | CommonSetting_ToolBar
struct | CommonSetting_OutLine
struct | CommonSetting_Compare
struct | CommonSetting_View
struct | CommonSetting_Others
struct | CommonSetting
共通設定 [詳細]

列挙型

enum | EShareMode { SHAREMODE_NOT_EXCLUSIVE, SHAREMODE_DENY_WRITE, SHAREMODE_DENY_READWRITE }
ファイルの排他制御モード 2007.10.11 kobake 作成 [詳細]

変数

static const int | MAX_CAPTION_CONF_LEN = 256
static const int | BKUP_AUTO = 64
static const int | MAX_DATETIMEFOREMAT_LEN = 100
static const int | MAX_CUSTOM_MENU = 25
static const int | MAX_CUSTOM_MENU_NAME_LEN = 32
static const int | MAX_CUSTOM_MENU_ITEMS = 48
static const int | MAX_TOOLBARBUTTONS = 384

列挙型

enum EShareMode

ファイルの排他制御モード 2007.10.11 kobake 作成

列挙型の値:
SHAREMODE_NOT_EXCLUSIVE | 排他制御しない
SHAREMODE_DENY_WRITE | 他プロセスからの上書きを禁止
SHAREMODE_DENY_READWRITE | 他プロセスからの読み書きを禁止

CommonSetting.h の 136 行で定義されています。

変数

const int BKUP_AUTO = 64 [static]

CommonSetting.h の 9 行で定義されています。

参照元 CommonSetting_Backup::EnableAutoBackup(), と CommonSetting_Backup::IsAutoBackupEnabled().

const int MAX_CAPTION_CONF_LEN = 256 [static]

CommonSetting.h の 6 行で定義されています。

const int MAX_CUSTOM_MENU = 25 [static]

CommonSetting.h の 12 行で定義されています。

参照元 CViewCommander::Command_CUSTMENU(), CFuncLookup::GetItemCount(), CShareData::Init(), CEditWnd::InitMenu(), CPropCommon::p8_Export_CustMenuSetting(), CPropCommon::p8_Import_CustMenuSetting(), CFuncLookup::Pos2FuncCode(), CFuncLookup::Pos2FuncName(), CPropCommon::SetData_p8(), CFuncLookup::SetListItem(), と CShareData::ShareData_IO_CustMenu().

const int MAX_CUSTOM_MENU_ITEMS = 48 [static]

CommonSetting.h の 14 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CShareData::Init().

const int MAX_CUSTOM_MENU_NAME_LEN = 32 [static]

CommonSetting.h の 13 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

const int MAX_DATETIMEFOREMAT_LEN = 100 [static]

CommonSetting.h の 11 行で定義されています。

const int MAX_TOOLBARBUTTONS = 384 [static]

CommonSetting.h の 15 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR(), CShareData::InitToolButtons(), と CShareData::ShareData_IO_Toolbar().

Sakura-Editorに対してSat Nov 17 20:26:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CommonSetting.h ソースファイル

sakura_core » share

CommonSetting.h

説明を見る。
00001 //2007.09.28 kobake Common整理
00002
00003 #pragma once
00004
00005 // Apr. 05, 2003 genta WindowCaption用領域（変換前）の長さ
00006 static const int MAX_CAPTION_CONF_LEN = 256;
00007
00008 //  Aug. 21, 2000 genta
00009 static const int BKUP_AUTO      = 64;
00010
00011 static const int MAX_DATETIMEFOREMAT_LEN    = 100;
00012 static const int MAX_CUSTOM_MENU            =  25;
00013 static const int MAX_CUSTOM_MENU_NAME_LEN   =  32;
00014 static const int MAX_CUSTOM_MENU_ITEMS      =  48;
00015 static const int MAX_TOOLBARBUTTONS         = 384;  //Oct. 22, 2000 JEPRO アイコンの最大登録数を128個増やした(256→384)
00016
00017
00018 //  注意: 設定ファイルからの読み込み時にINTとして扱うため，bool型を使ってはいけない．
00019 //  sizeof(int) != sizeof(bool)だとデータを破壊してしまう．
00020
00021 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00022 //                           全般                              //
00023 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00024 struct CommonSetting_General
00025 {
00026     //  Jul. 3, 2000 genta
00027     //  アクセス関数(簡易)
00028     //  intをビット単位に分割して使う
00029     //  下4bitをCaretTypeに当てておく(将来の予約で多めに取っておく)
00030     int     GetCaretType(void) const { return m_nCaretType & 0xf; }
00031     void    SetCaretType(const int f){ m_nCaretType &= ~0xf; m_nCaretType |= f & 0xf; }
00032
00033     //カーソル
00034     int     m_nCaretType;                           // カーソルのタイプ 0=win 1=dos
00035     int     m_bIsINSMode;                           // 挿入／上書きモード
00036     int     m_bIsFreeCursorMode;                    // フリーカーソルモードか
00037     BOOL    m_bStopsBothEndsWhenSearchWord;         // 単語単位で移動するときに、単語の両端で止まるか
00038     BOOL    m_bStopsBothEndsWhenSearchParagraph;    // 段落単位で移動するときに、段落の両端で止まるか
00039     BOOL    m_bNoCaretMoveByActivation;             // マウスクリックにてアクティベートされた時はカーソル位置を移動しない  2007.10.02 nasukoji (add by genta)
00040
00041     //スクロール
00042     CLayoutInt      m_nRepeatedScrollLineNum;       // キーリピート時のスクロール行数
00043     BOOL    m_nRepeatedScroll_Smooth;       // キーリピート時のスクロールを滑らかにするか
00044
00045     //タスクトレイ
00046     BOOL    m_bUseTaskTray;                 // タスクトレイのアイコンを使う
00047     BOOL    m_bStayTaskTray;                // タスクトレイのアイコンを常駐
00048     WORD    m_wTrayMenuHotKeyCode;          // タスクトレイ左クリックメニュー キー */
00049     WORD    m_wTrayMenuHotKeyMods;          // タスクトレイ左クリックメニュー キー */
00050
00051     //履歴
00052     int     m_nMRUArrNum_MAX;               // ファイルの履歴MAX
00053     int     m_nOPENFOLDERArrNum_MAX;        // フォルダの履歴MAX
00054
00055     //ノーカテゴリ
00056     BOOL    m_bCloseAllConfirm;             // [すべて閉じる]で他に編集用のウィンドウがあれば確認する // 2006.12.25 ryoji
00057     BOOL    m_bExitConfirm;                 // 終了時の確認をする
00058
00059     //INI内設定のみ
00060     BOOL    m_bDispExitingDialog;           // 終了ダイアログを表示する
00061 };
00062
00063 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00064 //                        ウィンドウ                           //
00065 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00066 struct CommonSetting_Window
00067 {
00068     //基本設定
00069     BOOL    m_bDispTOOLBAR;             // 次回ウィンドウを開いたときツールバーを表示する
00070     BOOL    m_bDispSTATUSBAR;           // 次回ウィンドウを開いたときステータスバーを表示する
00071     BOOL    m_bDispFUNCKEYWND;          // 次回ウィンドウを開いたときファンクションキーを表示する
00072     BOOL    m_bMenuIcon;                // メニューにアイコンを表示する (アイコン付きメニュー)
00073     BOOL    m_bScrollBarHorz;           // 水平スクロールバーを使う
00074
00075     //位置と大きさの設定
00076     int     m_nSaveWindowSize;          // ウィンドウサイズ継承・固定 eWINSIZEMODEに順ずる 2004.05.13 Moca
00077     int     m_nWinSizeType;
00078     int     m_nWinSizeCX;
00079     int     m_nWinSizeCY;
00080     int     m_nSaveWindowPos;           // ウィンドウ位置継承・固定 eWINSIZEMODEに順ずる 2004.05.13 Moca
00081     int     m_nWinPosX;
00082     int     m_nWinPosY;
00083
00084     //ファンクションキー
00085     int     m_nFUNCKEYWND_Place;        // ファンクションキー表示位置／0:上 1:下
00086     int     m_nFUNCKEYWND_GroupNum;     // 2002/11/04 Moca ファンクションキーのグループボタン数
00087
00088     //ルーラー・行番号
00089     int     m_nRulerHeight;             // ルーラー高さ
00090     int     m_nRulerBottomSpace;        // ルーラーとテキストの隙間
00091     int     m_nRulerType;               // ルーラーのタイプ $$$未使用っぽい
00092     int     m_nLineNumRightSpace;       // 行番号の右のスペース Sep. 18, 2002 genta
00093
00094     //分割ウィンドウ
00095     BOOL    m_bSplitterWndHScroll;      // 分割ウィンドウの水平スクロールの同期をとる 2001/06/20 asa-o
00096     BOOL    m_bSplitterWndVScroll;      // 分割ウィンドウの垂直スクロールの同期をとる 2001/06/20 asa-o
00097
00098     //タイトルバー
00099     TCHAR   m_szWindowCaptionActive  [MAX_CAPTION_CONF_LEN];
00100     TCHAR   m_szWindowCaptionInactive[MAX_CAPTION_CONF_LEN];
00101
00102     //INI内設定のみ
00103     int     m_nVertLineOffset;          // 縦線の描画座標オフセット 2005.11.10 Moca
00104 };
00105
00106 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00107 //                           編集                              //
00108 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00109 struct CommonSetting_Edit
00110 {
00111     //コピー
00112     bool    m_bAddCRLFWhenCopy;         // 折り返し行に改行を付けてコピー
00113     BOOL    m_bCopyAndDisablSelection;  // コピーしたら選択解除
00114     bool    m_bEnableLineModePaste;     // ラインモード貼り付けを可能にする  2007.10.08 ryoji
00115
00116     //ドラッグ＆ドロップ
00117     BOOL    m_bUseOLE_DragDrop;         // OLEによるドラッグ & ドロップを使う
00118     BOOL    m_bUseOLE_DropSource;       // OLEによるドラッグ元にするか
00119
00120     //上書きモード
00121     BOOL    m_bNotOverWriteCRLF;        // 改行は上書きしない
00122
00123     //クリッカブルURL
00124     BOOL    m_bJumpSingleClickURL;      // URLのシングルクリックでJump $$$未使用
00125     BOOL    m_bSelectClickedURL;        // URLがクリックされたら選択するか
00126
00127
00128     // (ダイアログ項目無し)
00129     BOOL    m_bAutoColmnPaste;          // 矩形コピーのテキストは常に矩形貼り付け
00130 };
00131
00132 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00133 //                         ファイル                            //
00134 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00136 enum EShareMode{
00137     SHAREMODE_NOT_EXCLUSIVE,
00138     SHAREMODE_DENY_WRITE,
00139     SHAREMODE_DENY_READWRITE,
00140 };
00141
00142 struct CommonSetting_File
00143 {
00144 public:
00145     // カーソル位置を復元するかどうか  Oct. 27, 2000 genta
00146     bool    GetRestoreCurPosition(void) const   { return m_bRestoreCurPosition != 0; }
00147     void    SetRestoreCurPosition(bool i)       { m_bRestoreCurPosition = i; }
00148
00149     // ブックマークを復元するかどうか  2002.01.16 hor
00150     bool    GetRestoreBookmarks(void) const     { return m_bRestoreBookmarks != 0; }
00151     void    SetRestoreBookmarks(bool i)         { m_bRestoreBookmarks = i; }
00152
00153     // ファイル読み込み時にMIMEのdecodeを行うか  Nov. 12, 2000 genta
00154     bool    GetAutoMIMEdecode(void) const       { return m_bAutoMIMEdecode != 0; }
00155     void    SetAutoMIMEdecode(bool i)           { m_bAutoMIMEdecode = i; }
00156
00157     // 前回と文字コードが異なるときに問い合わせを行う  Oct. 03, 2004 genta
00158     bool    GetQueryIfCodeChange(void) const    { return m_bQueryIfCodeChange != 0; }
00159     void    SetQueryIfCodeChange(bool i)        { m_bQueryIfCodeChange = i; }
00160
00161     // 開こうとしたファイルが存在しないとき警告する  Oct. 09, 2004 genta
00162     bool    GetAlertIfFileNotExist(void) const  { return m_bAlertIfFileNotExist != 0; }
00163     void    SetAlertIfFileNotExist(bool i)      { m_bAlertIfFileNotExist = i; }
00164
00165 public:
00166     //ファイルの排他制御モード
00167     EShareMode      m_nFileShareMode;
00168     BOOL                m_bCheckFileTimeStamp;          // 更新の監視
00169
00170     //ファイルの保存
00171     BOOL    m_bEnableUnmodifiedOverwrite;   // 無変更でも上書きするか
00172
00173     //「名前を付けて保存」でファイルの種類が[ユーザー指定]のときのファイル一覧表示
00174     //ファイル保存ダイアログのフィルタ設定    // 2006.11.16 ryoji
00175     BOOL    m_bNoFilterSaveNew;             // 新規から保存時は全ファイル表示
00176     BOOL    m_bNoFilterSaveFile;            // 新規以外から保存時は全ファイル表示
00177
00178     //ファイルオープン
00179     BOOL    m_bDropFileAndClose;            // ファイルをドロップしたときは閉じて開く
00180     int     m_nDropFileNumMax;              // 一度にドロップ可能なファイル数
00181     BOOL    m_bRestoreCurPosition;          // ファイルを開いたときカーソル位置を復元するか
00182     BOOL    m_bRestoreBookmarks;            // ブックマークを復元するかどうか 2002.01.16 hor
00183     BOOL    m_bAutoMIMEdecode;              // ファイル読み込み時にMIMEのdecodeを行うか
00184     BOOL    m_bQueryIfCodeChange;           // 前回と文字コードが異なるときに問い合わせを行う Oct. 03, 2004 genta
00185     BOOL    m_bAlertIfFileNotExist;         // 開こうとしたファイルが存在しないとき警告する Oct. 09, 2004 genta
00186 };
00187
00188 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00189 //                       バックアップ                          //
00190 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00191 struct CommonSetting_Backup
00192 {
00193 public:
00194     //  Aug. 15, 2000 genta
00195     //  Backup設定のアクセス関数
00196     int     GetBackupType(void) const           { return m_nBackUpType; }
00197     void    SetBackupType(int n)                { m_nBackUpType = n; }
00198
00199     bool    GetBackupOpt(int flag) const        { return ( flag & m_nBackUpType_Opt1 ) == flag; }
00200     void    SetBackupOpt(int flag, bool value)  { m_nBackUpType_Opt1 = value ? ( flag | m_nBackUpType_Opt1) :  ((~flag) & m_nBackUpType_Opt1 ); }
00201
00202     //  バックアップ数
00203     int     GetBackupCount(void) const          { return m_nBackUpType_Opt2 & 0xffff; }
00204     void    SetBackupCount(int value)           { m_nBackUpType_Opt2 = (m_nBackUpType_Opt2 & 0xffff0000) | ( value & 0xffff ); }
00205
00206     //  バックアップの拡張子先頭文字(1文字)
00207     int     GetBackupExtChar(void) const        { return ( m_nBackUpType_Opt2 >> 16 ) & 0xff ; }
00208     void    SetBackupExtChar(int value)         { m_nBackUpType_Opt2 = (m_nBackUpType_Opt2 & 0xff00ffff) | (( value & 0xff ) << 16 ); }
00209
00210     //  Aug. 21, 2000 genta
00211     //  自動Backup
00212     bool    IsAutoBackupEnabled(void) const     { return GetBackupOpt( BKUP_AUTO ); }
00213     void    EnableAutoBackup(bool flag)         { SetBackupOpt( BKUP_AUTO, flag ); }
00214
00215     int     GetAutoBackupInterval(void) const   { return m_nBackUpType_Opt3; }
00216     void    SetAutoBackupInterval(int i)        { m_nBackUpType_Opt3 = i; }
00217
00218     //  Backup詳細設定のアクセス関数
00219     int     GetBackupTypeAdv(void) const { return m_nBackUpType_Opt4; }
00220     void    SetBackupTypeAdv(int n){ m_nBackUpType_Opt4 = n; }
00221
00222 public:
00223     BOOL        m_bBackUp;                  // バックアップの作成
00224     BOOL        m_bBackUpDialog;            // バックアップの作成前に確認
00225     BOOL        m_bBackUpFolder;            // 指定フォルダにバックアップを作成する
00226     SFilePath   m_szBackUpFolder;           // バックアップを作成するフォルダ
00227     int         m_nBackUpType;              // バックアップファイル名のタイプ 1=(.bak) 2=*_日付.*
00228     int         m_nBackUpType_Opt1;         // バックアップファイル名：オプション1
00229     int         m_nBackUpType_Opt2;         // バックアップファイル名：オプション2
00230     int         m_nBackUpType_Opt3;         // バックアップファイル名：オプション3
00231     int         m_nBackUpType_Opt4;         // バックアップファイル名：オプション4
00232     int         m_nBackUpType_Opt5;         // バックアップファイル名：オプション5
00233     int         m_nBackUpType_Opt6;         // バックアップファイル名：オプション6
00234     BOOL        m_bBackUpDustBox;           // バックアップファイルをごみ箱に放り込む    //@@@ 2001.12.11 add MIK
00235     BOOL        m_bBackUpPathAdvanced;      // バックアップ先フォルダを詳細設定する 20051107 aroka
00236     SFilePath   m_szBackUpPathAdvanced;     // バックアップを作成するフォルダの詳細設定 20051107 aroka
00237 };
00238
00239
00240 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00241 //                           書式                              //
00242 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00243 struct CommonSetting_Format
00244 {
00245     //日付書式
00246     int         m_nDateFormatType;                          //日付書式のタイプ
00247     TCHAR       m_szDateFormat[MAX_DATETIMEFOREMAT_LEN];    //日付書式
00248
00249     //時刻書式
00250     int         m_nTimeFormatType;                          //時刻書式のタイプ
00251     TCHAR       m_szTimeFormat[MAX_DATETIMEFOREMAT_LEN];    //時刻書式
00252
00253     //見出し記号
00254     wchar_t     m_szMidashiKigou[256];
00255
00256     //引用符
00257     wchar_t     m_szInyouKigou[32];
00258 };
00259
00260 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00261 //                     カスタムメニュー                        //
00262 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00263 struct CommonSetting_CustomMenu
00264 {
00265     WCHAR       m_szCustMenuNameArr   [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN + 1];
00266     int         m_nCustMenuItemNumArr [MAX_CUSTOM_MENU];
00267     int         m_nCustMenuItemFuncArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00268     KEYCODE     m_nCustMenuItemKeyArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00269 };
00270
00271
00272 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00273 //                           支援                              //
00274 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00275 struct CommonSetting_Helper
00276 {
00277     //入力補完機能
00278     BOOL        m_bHokanKey_RETURN;             // VK_RETURN    補完決定キーが有効/無効
00279     BOOL        m_bHokanKey_TAB;                // VK_TAB       補完決定キーが有効/無効
00280     BOOL        m_bHokanKey_RIGHT;              // VK_RIGHT     補完決定キーが有効/無効
00281     BOOL        m_bHokanKey_SPACE;              // VK_SPACE     補完決定キーが有効/無効 $$$ほぼ未使用
00282
00283     //外部ヘルプの設定
00284     TCHAR       m_szExtHelp[_MAX_PATH];
00285
00286     //外部HTMLヘルプの設定
00287     TCHAR       m_szExtHtmlHelp[_MAX_PATH];
00288     BOOL        m_bHtmlHelpIsSingle;            // HtmlHelpビューアはひとつ (ビューアを複数起動しない)
00289
00290     //migemo設定
00291     TCHAR       m_szMigemoDll[_MAX_PATH];       // migemo dll
00292     TCHAR       m_szMigemoDict[_MAX_PATH];      // migemo dict
00293
00294     //キーワードヘルプ
00295     LOGFONT     m_lf_kh;                        // キーワードヘルプのフォント情報        // ai 02/05/21 Add
00296
00297     //INI内設定のみ
00298     int         m_bUseHokan;                    // 入力補完機能を使用する
00299 };
00300
00301 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00302 //                           検索                              //
00303 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00304 struct CommonSetting_Search
00305 {
00306     SSearchOption   m_sSearchOption;            // 検索／置換  条件
00307
00308     int             m_bConsecutiveAll;          // 「すべて置換」は置換の繰返し   // 2007.01.16 ryoji
00309     int             m_bNOTIFYNOTFOUND;          // 検索／置換  見つからないときメッセージを表示
00310     int             m_bSelectedArea;            // 置換  選択範囲内置換
00311
00312     int             m_bGrepSubFolder;           // Grep: サブフォルダも検索
00313     BOOL            m_bGrepOutputLine;          // Grep: 行を出力するか該当部分だけ出力するか
00314     int             m_nGrepOutputStyle;         // Grep: 出力形式
00315     int             m_bGrepDefaultFolder;       // Grep: フォルダの初期値をカレントフォルダにする
00316     ECodeType       m_nGrepCharSet;             // Grep: 文字コードセット // 2002/09/20 Moca Add
00317
00318     //Grep - Grep
00319     BOOL            m_bCaretTextForSearch;      // カーソル位置の文字列をデフォルトの検索文字列にする 2006.08.23 ryoji
00320     TCHAR           m_szRegexpLib[_MAX_PATH];   // 使用する正規表現DLL  2007.08.22 genta
00321
00322     BOOL            m_bGrepExitConfirm;         // Grepモードで保存確認するか
00323     int             m_bGrepRealTimeView;        // Grep結果のリアルタイム表示 2003.06.16 Moca
00324
00325     BOOL            m_bGTJW_RETURN;             // エンターキーでタグジャンプ
00326     BOOL            m_bGTJW_LDBLCLK;            // ダブルクリックでタグジャンプ
00327
00328     //検索・置換ダイアログ
00329     BOOL            m_bAutoCloseDlgFind;        // 検索ダイアログを自動的に閉じる
00330     BOOL            m_bAutoCloseDlgReplace;     // 置換 ダイアログを自動的に閉じる
00331     BOOL            m_bSearchAll;               // 先頭（末尾）から再検索 2002.01.26 hor
00332
00333     //INI内設定のみ
00334     BOOL            m_bUseCaretKeyWord;         // キャレット位置の単語を辞書検索        // 2006.03.24 fon
00335 };
00336
00337 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00338 //                         タブバー                            //
00339 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00340 struct CommonSetting_TabBar
00341 {
00342     BOOL        m_bDispTabWnd;                  //タブウインドウ表示する //@@@ 2003.05.31 MIK
00343     BOOL        m_bDispTabWndMultiWin;          //タブをまとめない  //@@@ 2003.05.31 MIK
00344     BOOL        m_bTab_RetainEmptyWin;
00345     BOOL        m_bTab_CloseOneWin;
00346
00347     wchar_t     m_szTabWndCaption[MAX_CAPTION_CONF_LEN];    //タブウインドウキャプション   //@@@ 2003.06.13 MIK
00348     BOOL        m_bSameTabWidth;                //タブを等幅にする          //@@@ 2006.01.28 ryoji
00349     BOOL        m_bDispTabIcon;                 //タブにアイコンを表示する  //@@@ 2006.01.28 ryoji
00350     BOOL        m_bSortTabList;                 //タブ一覧をソートする    //@@@ 2006.03.23 fon
00351     BOOL        m_bTab_ListFull;                //タブ一覧をフルパス表示する   //@@@ 2007.02.28 ryoji
00352
00353     BOOL        m_bChgWndByWheel;               //マウスホイールでウィンドウ切り替え   //@@@ 2006.03.26 ryoji
00354 };
00355
00356 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00357 //                        ツールバー                           //
00358 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00359
00360 struct CommonSetting_ToolBar
00361 {
00362     int         m_nToolBarButtonNum;            // ツールバーボタンの数
00363     int         m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTONS]; // ツールバーボタン構造体
00364     int         m_bToolBarIsFlat;               // フラットツールバーにする／しない
00365 };
00366
00367
00368 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00369 //                       アウトライン                          //
00370 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00371 struct CommonSetting_OutLine
00372 {
00373     // 20060201 aroka アウトライン/トピックリスト の位置とサイズを記憶
00374     int         m_bRememberOutlineWindowPos;
00375     int         m_widthOutlineWindow;
00376     int         m_heightOutlineWindow;
00377     int         m_xOutlineWindowPos;
00378     int         m_yOutlineWindowPos;
00379
00380     //IDD_FUNCLIST (ツール - アウトライン解析)
00381     BOOL        m_bAutoCloseDlgFuncList;    // アウトラインダイアログを自動的に閉じる
00382     BOOL        m_bFunclistSetFocusOnJump;  // フォーカスを移す 2002.02.08 hor
00383     BOOL        m_bMarkUpBlankLineEnable;   // 空行を無視する 2002.02.08 aroka,hor
00384 };
00385
00386 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00387 //                     ファイル内容比較                        //
00388 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00389 struct CommonSetting_Compare
00390 {
00391     //ファイル内容比較ダイアログ
00392     BOOL        m_bCompareAndTileHorz;      // 文書比較後、左右に並べて表示
00393 };
00394
00395 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00396 //                          ビュー                             //
00397 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00398 struct CommonSetting_View
00399 {
00400     //INI内設定のみ
00401     LOGFONT     m_lf;                       // 現在のフォント情報
00402     BOOL        m_bFontIs_FIXED_PITCH;      // 現在のフォントは固定幅フォントである
00403 };
00404
00405 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00406 //                          その他                             //
00407 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00408 struct CommonSetting_Others
00409 {
00410     //INI内設定のみ
00411     RECT        m_rcOpenDialog;             // 「開く」ダイアログのサイズと位置
00412 };
00413
00414
00415
00416 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00417 //                                                             //
00418 //                          まとめ                             //
00419 //                                                             //
00420 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00421
00423 struct CommonSetting
00424 {
00425     CommonSetting_General       m_sGeneral;
00426     CommonSetting_Window        m_sWindow;
00427     CommonSetting_Edit          m_sEdit;
00428     CommonSetting_File          m_sFile;
00429     CommonSetting_Backup        m_sBackup;
00430     CommonSetting_Format        m_sFormat;
00431     CommonSetting_CustomMenu    m_sCustomMenu;
00432     CommonSetting_Helper        m_sHelper;
00433     CommonSetting_Search        m_sSearch;
00434     CommonSetting_TabBar        m_sTabBar;
00435     CommonSetting_ToolBar       m_sToolBar;
00436     CommonSetting_OutLine       m_sOutline;
00437     CommonSetting_Compare       m_sCompare;
00438     CommonSetting_View          m_sView;
00439     CommonSetting_Others        m_sOthers;
00440 };
00441
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: convert_util.cpp

sakura_core » convert

convert_util.cpp

#include "stdafx.h"
#include "convert_util.h"

convert_util.cppのインクルード依存関係図

ソースコードを見る。

関数

bool | wcschr_idx (const wchar_t *str, wchar_t c, int *idx)
void | Convert_ZenhiraToZenkana (wchar_t *pData, int nLength)
全角ひらがな→全角カタカナ (文字数は不変)
void | Convert_ZenkanaToZenhira (wchar_t *pData, int nLength)
全角カタカナ→全角ひらがな (文字数は不変)
void | Convert_ZenEisuu_To_HanEisuu (wchar_t *pData, int nLength)
全角英数→半角英数 (文字数は不変)
void | Convert_HanEisuu_To_ZenEisuu (wchar_t *pData, int nLength)
半角英数→全角英数 (文字数は不変)
void | Convert_ZenKana_To_HanKana (const wchar_t *pSrc, int nSrcLength, wchar_t *pDst)
void | Convert_HankanaToZenkana (const wchar_t *pSrc, int nSrcLength, wchar_t *pDst)

変数

static const wchar_t | tableZenKana_Normal []
static const wchar_t | tableZenKana_Dakuten []
static const wchar_t | tableZenKana_HanDakuten []
static const wchar_t | tableZenKana_Kigo []
static const wchar_t | tableHanKana_Normal []
static const wchar_t | tableHanKana_Dakuten []
static const wchar_t | tableHanKana_HanDakuten []
static const wchar_t | tableHanKana_Kigo []
static const wchar_t | tableZenKigo []
static const wchar_t | tableHanKigo []

関数

void Convert_HanEisuu_To_ZenEisuu | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

半角英数→全角英数 (文字数は不変)

convert_util.cpp の 131 行で定義されています。

参照先 tableHanKigo, tableZenKigo, と wcschr_idx().

参照元 CConvert_HaneisuToZeneisu::DoConvert().

void Convert_HankanaToZenkana | ( | const wchar_t * | pSrc,
 |  | int | nSrcLength,
 |  | wchar_t * | pDst
 | ) |  |

半角カタカナ→全角カタカナ 濁点の分だけ、文字数は減る可能性がある。最小で2分の1になる。 pDstにはあらかじめ十分なメモリを確保しておくこと。

convert_util.cpp の 183 行で定義されています。

参照先 tableHanKana_Dakuten, tableHanKana_HanDakuten, tableHanKana_Kigo, tableHanKana_Normal, tableZenKana_Dakuten, tableZenKana_HanDakuten, tableZenKana_Kigo, tableZenKana_Normal, と wcschr_idx().

参照元 CConvert_ToZenkana::DoConvert(), CConvert_ToZenhira::DoConvert(), CConvert_HankanaToZenkana::DoConvert(), と CConvert_HankanaToZenhira::DoConvert().

void Convert_ZenEisuu_To_HanEisuu | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角英数→半角英数 (文字数は不変)

convert_util.cpp の 110 行で定義されています。

参照先 tableHanKigo, tableZenKigo, と wcschr_idx().

参照元 CConvert_ZeneisuToHaneisu::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenhiraToZenkana | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角ひらがな→全角カタカナ (文字数は不変)

convert_util.cpp の 81 行で定義されています。

参照元 CConvert_ToZenkana::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenKana_To_HanKana | ( | const wchar_t * | pSrc,
 |  | int | nSrcLength,
 |  | wchar_t * | pDst
 | ) |  |

全角カタカナ→半角カタカナ 濁点の分だけ、文字数は増える可能性がある。最大で2倍になる。 pDstにはあらかじめ十分なメモリを確保しておくこと。

convert_util.cpp の 156 行で定義されています。

参照先 tableHanKana_Dakuten, tableHanKana_HanDakuten, tableHanKana_Kigo, tableHanKana_Normal, tableZenKana_Dakuten, tableZenKana_HanDakuten, tableZenKana_Kigo, tableZenKana_Normal, と wcschr_idx().

参照元 CConvert_ZenkanaToHankana::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenkanaToZenhira | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角カタカナ→全角ひらがな (文字数は不変)

convert_util.cpp の 95 行で定義されています。

参照元 CConvert_ToZenhira::DoConvert(), と CConvert_HankanaToZenhira::DoConvert().

bool wcschr_idx | ( | const wchar_t * | str,
 |  | wchar_t | c,
 |  | int * | idx
 | ) |  |

wcschr の結果をインデックスで受け取る版。 c が見つかったときは、その位置を idx に格納し、true を返す。 見つからないときは idx を変更せずに false を返す。

convert_util.cpp の 67 行で定義されています。

参照先 NULL.

参照元 Convert_HanEisuu_To_ZenEisuu(), Convert_HankanaToZenkana(), Convert_ZenEisuu_To_HanEisuu(), と Convert_ZenKana_To_HanKana().

変数

const wchar_t tableHanKana_Dakuten[] [static]

初期値:

    L"ｳｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄ"
    L"ﾊﾋﾌﾍﾎ" L"ﾜｦ"

convert_util.cpp の 31 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableHanKana_HanDakuten[] [static]

初期値:

    L"ﾊﾋﾌﾍﾎ"

convert_util.cpp の 35 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableHanKana_Kigo[] [static]

初期値:

    L"ｰﾞﾟ｡､｢｣･"

convert_util.cpp の 38 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableHanKana_Normal[] [static]

初期値:

    L"ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉ"
    L"ﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝ"
    L"ｧｨｩｪｫｯｬｭｮ"

convert_util.cpp の 26 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableHanKigo[] [static]

初期値:

    L"+-*/%=|&"
    L"^\\@;:"
    L"\"\"''<>(){}"
    L"!?#$~_"

convert_util.cpp の 51 行で定義されています。

参照元 Convert_HanEisuu_To_ZenEisuu(), と Convert_ZenEisuu_To_HanEisuu().

const wchar_t tableZenKana_Dakuten[] [static]

初期値:

    L"ヴガギグゲゴザシズセゾダヂヅデド"
    L"バビブベボ" L"\u30f7\u30fa"

convert_util.cpp の 14 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableZenKana_HanDakuten[] [static]

初期値:

    L"パピプペポ"

convert_util.cpp の 18 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableZenKana_Kigo[] [static]

初期値:

    L"ー゛゜。、「」・"

convert_util.cpp の 21 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableZenKana_Normal[] [static]

初期値:

    L"アイウエオカキクケコサシスセソタチツテトナニヌネノ"
    L"ハヒフヘホマミムメモヤユヨラリルレロワヲン"
    L"ァィゥェォッャュョ"

convert_util.cpp の 9 行で定義されています。

参照元 Convert_HankanaToZenkana(), と Convert_ZenKana_To_HanKana().

const wchar_t tableZenKigo[] [static]

初期値:

    L"＋−＊／％＝｜＆"
    L"＾￥＠；："
    L"“”‘’＜＞（）｛｝"
    L"！？＃＄〜＿"

convert_util.cpp の 43 行で定義されています。

参照元 Convert_HanEisuu_To_ZenEisuu(), と Convert_ZenEisuu_To_HanEisuu().

Sakura-Editorに対してSat Nov 17 20:26:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: convert_util.cpp ソースファイル

sakura_core » convert

convert_util.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "convert_util.h"
00003
00004 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00005 //                       変換テーブル                          //
00006 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00007
00008 //全角カナ
00009 static const wchar_t tableZenKana_Normal[]=
00010     L"アイウエオカキクケコサシスセソタチツテトナニヌネノ"  //普通
00011     L"ハヒフヘホマミムメモヤユヨラリルレロワヲン"          //      ※「ヰ」「ヱ」は除外。(半角が存在しないので)
00012     L"ァィゥェォッャュョ"                                  //小    ※「ヵ」「ヶ」「ヮ」は除外。(半角が存在しないので)
00013 ;
00014 static const wchar_t tableZenKana_Dakuten[]=
00015     L"ヴガギグゲゴザシズセゾダヂヅデド"                     //濁点
00016     L"バビブベボ" L"\u30f7\u30fa"                          //※後半2文字は「ワ゛」「ヲ゛」  ※「ヰ゛」(\u30f8)「ヱ゛」(\u30f9)は除外。(半角が存在しないので)
00017 ;
00018 static const wchar_t tableZenKana_HanDakuten[]=
00019     L"パピプペポ"                                          //半濁点
00020 ;
00021 static const wchar_t tableZenKana_Kigo[]=
00022     L"ー゛゜。、「」・"                                     //記号
00023 ;
00024
00025 //半角カナ
00026 static const wchar_t tableHanKana_Normal[]=
00027     L"ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉ"
00028     L"ﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝ"
00029     L"ｧｨｩｪｫｯｬｭｮ"
00030 ;
00031 static const wchar_t tableHanKana_Dakuten[]=
00032     L"ｳｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄ"
00033     L"ﾊﾋﾌﾍﾎ" L"ﾜｦ"
00034 ;
00035 static const wchar_t tableHanKana_HanDakuten[]=
00036     L"ﾊﾋﾌﾍﾎ"
00037 ;
00038 static const wchar_t tableHanKana_Kigo[] =
00039     L"ｰﾞﾟ｡､｢｣･"
00040 ;
00041
00042 //全角英記号。文字の並びに深い意味はありません。バックスラッシュは無視。
00043 static const wchar_t tableZenKigo[] =
00044     L"＋−＊／％＝｜＆"
00045     L"＾￥＠；："
00046     L"“”‘’＜＞（）｛｝"
00047     L"！？＃＄〜＿"
00048 ;
00049
00050 //半角英記号
00051 static const wchar_t tableHanKigo[] =
00052     L"+-*/%=|&"
00053     L"^\\@;:"
00054     L"\"\"''<>(){}"
00055     L"!?#$~_"
00056 ;
00057
00058 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00059 //                         実装補助                            //
00060 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00061
00067 bool wcschr_idx(const wchar_t* str, wchar_t c, int* idx)
00068 {
00069     const wchar_t* p=wcschr(str,c);
00070     if(p)*idx=(int)(p-str);
00071     return p!=NULL;
00072 }
00073
00074 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00075 //                         変換実装                            //
00076 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00077
00078
00079
00081 void Convert_ZenhiraToZenkana(wchar_t* pData, int nLength)
00082 {
00083     wchar_t* p=pData;
00084     wchar_t* q=p+nLength;
00085     while(p<q){
00086         wchar_t& c=*p;
00087
00088         if(c>=L'ぁ' && c<=L'\u3096'){ c=L'ァ'+(c-L'ぁ'); } //※\3096は「ヶ」のひらがな版。
00089
00090         p++;
00091     }
00092 }
00093
00095 void Convert_ZenkanaToZenhira(wchar_t* pData, int nLength)
00096 {
00097     wchar_t* p=pData;
00098     wchar_t* q=p+nLength;
00099     while(p<q){
00100         wchar_t& c=*p;
00101
00102         if(c>=L'ァ' && c<=L'ヶ'){ c=L'ぁ'+(c-L'ァ'); }
00103
00104         p++;
00105     }
00106 }
00107
00108
00110 void Convert_ZenEisuu_To_HanEisuu(wchar_t* pData, int nLength)
00111 {
00112     wchar_t* p=pData;
00113     wchar_t* q=p+nLength;
00114     int n;
00115     while(p<q){
00116         wchar_t& c=*p;
00117
00118         if(0){}
00119         else if(c>=L'Ａ' && c<=L'Ｚ'){ c=L'A'+(c-L'Ａ'); }
00120         else if(c>=L'ａ' && c<=L'ｚ'){ c=L'a'+(c-L'ａ'); }
00121         else if(c>=L'０' && c<=L'９'){ c=L'0'+(c-L'０'); }
00122         //一部の記号も変換する
00123         else if(wcschr_idx(tableZenKigo,c,&n)){ c=tableHanKigo[n]; }
00124
00125         p++;
00126     }
00127 }
00128
00129
00131 void Convert_HanEisuu_To_ZenEisuu(wchar_t* pData, int nLength)
00132 {
00133     wchar_t* p=pData;
00134     wchar_t* q=p+nLength;
00135     int n;
00136     while(p<q){
00137         wchar_t& c=*p;
00138
00139         if(0){}
00140         else if(c>=L'A' && c<=L'Z'){ c=L'Ａ'+(c-L'A'); }
00141         else if(c>=L'a' && c<=L'z'){ c=L'ａ'+(c-L'a'); }
00142         else if(c>=L'0' && c<=L'9'){ c=L'０'+(c-L'0'); }
00143         //一部の記号も変換する
00144         else if(wcschr_idx(tableHanKigo,c,&n)){ c=tableZenKigo[n]; }
00145
00146         p++;
00147     }
00148 }
00149
00150
00156 void Convert_ZenKana_To_HanKana(const wchar_t* pSrc, int nSrcLength, wchar_t* pDst)
00157 {
00158     const wchar_t* src = pSrc;
00159     const wchar_t* src_end = src + nSrcLength;
00160     wchar_t* dst = pDst;
00161     int n;
00162
00163     while(src<src_end){
00164         wchar_t c=*src;
00165         if(0){}
00166         //ヒットする文字があれば変換を行う
00167         else if(wcschr_idx(tableZenKana_Normal    ,c,&n)){ *dst++=tableHanKana_Normal[n];                  }
00168         else if(wcschr_idx(tableZenKana_Dakuten   ,c,&n)){ *dst++=tableHanKana_Dakuten[n];    *dst++=L'ﾞ'; }
00169         else if(wcschr_idx(tableZenKana_HanDakuten,c,&n)){ *dst++=tableHanKana_HanDakuten[n]; *dst++=L'ﾟ'; }
00170         else if(wcschr_idx(tableZenKana_Kigo      ,c,&n)){ *dst++=tableHanKana_Kigo[n];                    }
00171         //無変換
00172         else { *dst++=c; }
00173         src++;
00174     }
00175     *dst=L'\0';
00176 }
00177
00183 void Convert_HankanaToZenkana(const wchar_t* pSrc, int nSrcLength, wchar_t* pDst)
00184 {
00185     const wchar_t* src = pSrc;
00186     const wchar_t* src_end = src + nSrcLength;
00187     wchar_t* dst = pDst;
00188     int n;
00189
00190     while(src<src_end){
00191         wchar_t c=*src;
00192         wchar_t next=(src+1<src_end)?*(src+1):0; //次の1文字を先読み
00193         if(0){}
00194         //濁点、半濁点のチェックを先行して行う
00195         else if(next==L'ﾞ' && wcschr_idx(tableHanKana_Dakuten   ,c,&n)){ *dst++=tableZenKana_Dakuten[n];    src++; }
00196         else if(next==L'ﾟ' && wcschr_idx(tableHanKana_HanDakuten,c,&n)){ *dst++=tableZenKana_HanDakuten[n]; src++; }
00197         //それ以外の文字チェックを行う
00198         else if(              wcschr_idx(tableHanKana_Normal    ,c,&n)){ *dst++=tableZenKana_Normal[n];            }
00199         else if(              wcschr_idx(tableHanKana_Kigo      ,c,&n)){ *dst++=tableZenKana_Kigo[n];              }
00200         //無変換
00201         else { *dst++=c; }
00202         src++;
00203     }
00204     *dst=L'\0';
00205 }
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: convert_util.h

sakura_core » convert

convert_util.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

void | Convert_ZenhiraToZenkana (wchar_t *pData, int nLength)
全角ひらがな→全角カタカナ (文字数は不変)
void | Convert_ZenkanaToZenhira (wchar_t *pData, int nLength)
全角カタカナ→全角ひらがな (文字数は不変)
void | Convert_ZenEisuu_To_HanEisuu (wchar_t *pData, int nLength)
全角英数→半角英数 (文字数は不変)
void | Convert_ZenKana_To_HanKana (const wchar_t *pSrc, int nSrcLength, wchar_t *pDst)
void | Convert_HanEisuu_To_ZenEisuu (wchar_t *pData, int nLength)
半角英数→全角英数 (文字数は不変)
void | Convert_HankanaToZenkana (const wchar_t *pSrc, int nSrcLength, wchar_t *pDst)

関数

void Convert_HanEisuu_To_ZenEisuu | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

半角英数→全角英数 (文字数は不変)

convert_util.cpp の 131 行で定義されています。

参照先 tableHanKigo, tableZenKigo, と wcschr_idx().

参照元 CConvert_HaneisuToZeneisu::DoConvert().

void Convert_HankanaToZenkana | ( | const wchar_t * | pSrc,
 |  | int | nSrcLength,
 |  | wchar_t * | pDst
 | ) |  |

半角カタカナ→全角カタカナ 濁点の分だけ、文字数は減る可能性がある。最小で2分の1になる。 pDstにはあらかじめ十分なメモリを確保しておくこと。

convert_util.cpp の 183 行で定義されています。

参照先 tableHanKana_Dakuten, tableHanKana_HanDakuten, tableHanKana_Kigo, tableHanKana_Normal, tableZenKana_Dakuten, tableZenKana_HanDakuten, tableZenKana_Kigo, tableZenKana_Normal, と wcschr_idx().

参照元 CConvert_ToZenkana::DoConvert(), CConvert_ToZenhira::DoConvert(), CConvert_HankanaToZenkana::DoConvert(), と CConvert_HankanaToZenhira::DoConvert().

void Convert_ZenEisuu_To_HanEisuu | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角英数→半角英数 (文字数は不変)

convert_util.cpp の 110 行で定義されています。

参照先 tableHanKigo, tableZenKigo, と wcschr_idx().

参照元 CConvert_ZeneisuToHaneisu::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenhiraToZenkana | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角ひらがな→全角カタカナ (文字数は不変)

convert_util.cpp の 81 行で定義されています。

参照元 CConvert_ToZenkana::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenKana_To_HanKana | ( | const wchar_t * | pSrc,
 |  | int | nSrcLength,
 |  | wchar_t * | pDst
 | ) |  |

全角カタカナ→半角カタカナ 濁点の分だけ、文字数は増える可能性がある。最大で2倍になる。 pDstにはあらかじめ十分なメモリを確保しておくこと。

convert_util.cpp の 156 行で定義されています。

参照先 tableHanKana_Dakuten, tableHanKana_HanDakuten, tableHanKana_Kigo, tableHanKana_Normal, tableZenKana_Dakuten, tableZenKana_HanDakuten, tableZenKana_Kigo, tableZenKana_Normal, と wcschr_idx().

参照元 CConvert_ZenkanaToHankana::DoConvert(), と CConvert_ToHankaku::DoConvert().

void Convert_ZenkanaToZenhira | ( | wchar_t * | pData,
 |  | int | nLength
 | ) |  |

全角カタカナ→全角ひらがな (文字数は不変)

convert_util.cpp の 95 行で定義されています。

参照元 CConvert_ToZenhira::DoConvert(), と CConvert_HankanaToZenhira::DoConvert().

Sakura-Editorに対してSat Nov 17 20:26:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: convert_util.h ソースファイル

sakura_core » convert

convert_util.h

説明を見る。
00001 //2007.10.18 kobake
00002
00003 #pragma once
00004
00005
00007 void Convert_ZenhiraToZenkana(wchar_t* pData, int nLength);
00008
00010 void Convert_ZenkanaToZenhira(wchar_t* pData, int nLength);
00011
00013 void Convert_ZenEisuu_To_HanEisuu(wchar_t* pData, int nLength);
00014
00020 void Convert_ZenKana_To_HanKana(const wchar_t* pSrc, int nSrcLength, wchar_t* pDst);
00021
00022
00024 void Convert_HanEisuu_To_ZenEisuu(wchar_t* pData, int nLength);
00025
00031 void Convert_HankanaToZenkana(const wchar_t* pSrc, int nSrcLength, wchar_t* pDst);
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpe.cpp

sakura_core

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 Nov 17 20:26:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpe.cpp ソースファイル

sakura_core

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(EOpeCode eCode)
00022 {
00023     m_nOpe = eCode;                 // 操作種別
00024
00025     m_ptCaretPos_PHY_To.Set(CLogicInt(0),CLogicInt(0));         //操作前のキャレット位置
00026     m_ptCaretPos_PHY_Before.Set(CLogicInt(-1),CLogicInt(-1));   //カーソル位置
00027     m_ptCaretPos_PHY_After.Set(CLogicInt(-1),CLogicInt(-1));    //カーソル位置
00028
00029     m_nDataLen = CLogicInt(0);  // 操作に関連するデータのサイズ
00030     return;
00031 }
00032
00033
00034
00035
00036 /* COpeクラス消滅 */
00037 COpe::~COpe()
00038 {
00039 }
00040
00041 /* 編集操作要素のダンプ */
00042 void COpe::DUMP( void )
00043 {
00044 #ifdef _DEBUG
00045     MYTRACE_A( "\t\tm_nOpe                  = [%d]\n", m_nOpe               );
00046     MYTRACE_A( "\t\tm_ptCaretPos_PHY_Before = [%d,%d]\n", m_ptCaretPos_PHY_Before.x, m_ptCaretPos_PHY_Before.y   );
00047     MYTRACE_A( "\t\tm_ptCaretPos_PHY_After  = [%d,%d]\n", m_ptCaretPos_PHY_After.x, m_ptCaretPos_PHY_After.y   );
00048     MYTRACE_A( "\t\tm_nDataLen              = [%d]\n",  m_nDataLen           );
00049     MYTRACE_A( "\t\tm_pcmemData             = [%ls]\n", m_pcmemData.GetStringPtr() );
00050 #endif
00051     return;
00052 }
00053
00054
00055 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpe.h

sakura_core

COpe.h

編集操作要素 [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | COpe

型定義

typedef COpe * | PCOpe

列挙型

enum | EOpeCode { OPE_UNKNOWN = 0, OPE_INSERT = 1, OPE_DELETE = 2, OPE_MOVECARET = 3 }

説明

編集操作要素

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpe.h で定義されています。

型定義

typedef COpe* PCOpe

COpe.h の 59 行で定義されています。

列挙型

enum EOpeCode

列挙型の値:
OPE_UNKNOWN
OPE_INSERT
OPE_DELETE
OPE_MOVECARET

COpe.h の 23 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpe.h ソースファイル

sakura_core

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
00021
00022 // アンドゥバッファ用 操作コード
00023 enum EOpeCode {
00024     OPE_UNKNOWN     = 0,
00025     OPE_INSERT      = 1,
00026     OPE_DELETE      = 2,
00027     OPE_MOVECARET   = 3,
00028 };
00029
00030
00037 //2007.10.17 kobake 解放漏れを防ぐため、データをポインタではなくインスタンス実体で持つように変更
00038 class COpe {
00039 public:
00040     COpe(EOpeCode eCode = OPE_UNKNOWN);     /* COpeクラス構築 */
00041     ~COpe();    /* COpeクラス消滅 */
00042
00043     void DUMP( void );  /* 編集操作要素のダンプ */
00044
00045     EOpeCode    GetCode() const{ return m_nOpe; }
00046
00047 private:
00048     EOpeCode    m_nOpe;
00049
00050 public:
00051     CLogicPoint m_ptCaretPos_PHY_Before;
00052     CLogicPoint m_ptCaretPos_PHY_To;
00053     CLogicPoint m_ptCaretPos_PHY_After;
00054
00055     CLogicInt   m_nDataLen;
00056     CNativeW    m_pcmemData;
00057 };
00058
00059 typedef COpe* PCOpe;
00060
00061
00063 #endif /* _COPE_H_ */
00064
00065
00066 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBlk.cpp

sakura_core

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 Nov 17 20:26:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBlk.cpp ソースファイル

sakura_core

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 )
00068 {
00069     if(pcOpe->m_ptCaretPos_PHY_Before.HasNegative() || pcOpe->m_ptCaretPos_PHY_After.HasNegative()){
00070         MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
00071             "COpeBlk::AppendOpe() error.\n"
00072             "バグ\n"
00073             "pcOpe->m_nCaretPos_PHY_Before = %d,%d\n"
00074             "pcOpe->m_nCaretPos_PHY_After = %d,%d\n",
00075             pcOpe->m_ptCaretPos_PHY_Before.x,
00076             pcOpe->m_ptCaretPos_PHY_Before.y,
00077             pcOpe->m_ptCaretPos_PHY_After.x,
00078             pcOpe->m_ptCaretPos_PHY_After.y
00079         );
00080     }
00081
00082     /* 配列のメモリサイズを調整 */
00083     if( 0 == m_nCOpeArrNum ){
00084         m_ppCOpeArr = (COpe**)malloc( sizeof( COpe* ) );
00085     }else{
00086         m_ppCOpeArr = (COpe**)realloc( m_ppCOpeArr,  sizeof( COpe* ) * (m_nCOpeArrNum + 1 ) );
00087     }
00088     if( NULL == m_ppCOpeArr ){
00089         MessageBoxA( 0, "COpeBlk::AppendOpe() error", "メモリ確保に失敗しました。\n非常に危険な状態です。", MB_OK );
00090         return FALSE;
00091     }
00092     m_ppCOpeArr[m_nCOpeArrNum] = pcOpe;
00093     m_nCOpeArrNum++;
00094     return TRUE;
00095 }
00096
00097
00098
00099
00100
00101 /* 操作を返す */
00102 COpe* COpeBlk::GetOpe( int nIndex )
00103 {
00104     if( m_nCOpeArrNum <= nIndex ){
00105         return NULL;
00106     }
00107     return m_ppCOpeArr[nIndex];
00108 }
00109
00110
00111 /* 編集操作要素ブロックのダンプ */
00112 void COpeBlk::DUMP( void )
00113 {
00114 #ifdef _DEBUG
00115     int i;
00116     for( i = 0; i < m_nCOpeArrNum; ++i ){
00117         MYTRACE_A( "\tCOpeBlk.m_ppCOpeArr[%d]----\n", i );
00118         m_ppCOpeArr[i]->DUMP();
00119     }
00120 #endif
00121     return;
00122 }
00123
00124
00125 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBlk.h

sakura_core

COpeBlk.h

編集操作要素ブロック [詳細]

#include "COpe.h"

COpeBlk.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COpeBlk
編集操作要素ブロック [詳細]

説明

編集操作要素ブロック

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBlk.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBlk.h ソースファイル

sakura_core

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 Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBuf.cpp

sakura_core

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 Nov 17 20:26:23 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBuf.cpp ソースファイル

sakura_core

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( m_ppCOpeBlkArr,  sizeof( COpeBlk* ) * (m_nCOpeBlkArrNum + 1 ) );
00082     }
00083     if( NULL == m_ppCOpeBlkArr ){
00084         ::MessageBoxA( 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( bool* pbModified )
00127 {
00128     /* Undo可能な状態か */
00129     if( !IsEnableUndo() ){
00130         return NULL;
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( bool* pbModified )
00147 {
00148     COpeBlk*    pcOpeBlk;
00149     /* Redo可能な状態か */
00150     if( !IsEnableRedo() ){
00151         return NULL;
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_A( "COpeBuf.m_nCurrentPointer=[%d]----\n", m_nCurrentPointer );
00179     for( i = 0; i < m_nCOpeBlkArrNum; ++i ){
00180         MYTRACE_A( "COpeBuf.m_ppCOpeBlkArr[%d]----\n", i );
00181         m_ppCOpeBlkArr[i]->DUMP();
00182     }
00183     MYTRACE_A( "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 Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBuf.h

sakura_core

COpeBuf.h

アンドゥ・リドゥバッファ [詳細]

#include "global.h"

COpeBuf.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COpeBuf
2002/2/10 aroka [詳細]

説明

アンドゥ・リドゥバッファ

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBuf.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COpeBuf.h ソースファイル

sakura_core

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 #include "global.h"
00021 class COpeBlk;
00022
00023
00024
00025
00026 /*-----------------------------------------------------------------------
00027 クラスの宣言
00028 -----------------------------------------------------------------------*/
00032 class SAKURA_CORE_API COpeBuf {
00033     public:
00034         COpeBuf();  /* COpeBufクラス構築 */
00035         ~COpeBuf(); /* COpeBufクラス消滅 */
00036         void ClearAll( void );  /* 全要素のクリア */
00037         int AppendOpeBlk( COpeBlk* );   /* 操作ブロックの追加 */
00038         int IsEnableUndo( void );   /* Undo可能な状態か */
00039         int IsEnableRedo( void );   /* Redo可能な状態か */
00040         COpeBlk* DoUndo( bool* );   /* 現在のUndo対象の操作ブロックを返す */
00041         COpeBlk* DoRedo( bool* );   /* 現在のRedo対象の操作ブロックを返す */
00042         void SetNoModified( void ); /* 現在位置で無変更な状態になったことを通知 */
00043
00044         void DUMP( void );  /* 編集操作要素ブロックのダンプ */
00045     private:
00046         int          m_nCOpeBlkArrNum;  /* 操作ブロックの数 */
00047         COpeBlk**   m_ppCOpeBlkArr; /* 操作ブロックの配列 */
00048         int         m_nCurrentPointer;  /* 現在位置 */
00049         int         m_nNoModifiedIndex; /* 無変更な状態になった位置 */
00050 };
00051
00052
00053
00055 #endif /* _COPEBUF_H_ */
00056
00057
00058 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COsVersionInfo.h

sakura_core

COsVersionInfo.h

COsVersionInfo [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COsVersionInfo

説明

COsVersionInfo

OSVERSIONINFOをラッピング

作者:
YAZAKI
日付:
2002年3月3日

COsVersionInfo.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: COsVersionInfo.h ソースファイル

sakura_core

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_raw( &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 Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPA.cpp

sakura_core

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 "CControlTray.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 の 47 行で定義されています。

参照元 CPPA::stdIntFunc(), CPPA::stdProc(), CPPA::stdStrFunc(), と CPPA::stdStrObj().

#define omGet (0)

CPPA.cpp の 51 行で定義されています。

参照元 CPPA::stdStrObj().

#define omSet (1)

CPPA.cpp の 52 行で定義されています。

参照元 CPPA::stdStrObj().

Sakura-Editorに対してSat Nov 17 20:26:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPA.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00044 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00045 #include "OleTypes.h"
00046
00047 #define NEVER_USED_PARAM(p) ((void)p)
00048
00049
00050 // 2003.06.01 Moca
00051 #define omGet (0)
00052 #define omSet (1)
00053
00054 CNativeA        CPPA::m_cMemRet;
00055 CNativeA        CPPA::m_cMemDebug;
00056 CEditView*      CPPA::m_pcEditView = NULL;
00057 DLLSHAREDATA*   CPPA::m_pShareData = NULL;
00058 bool            CPPA::m_bError = false;
00059
00060
00061 CPPA::CPPA()
00062 {
00063 }
00064
00065 CPPA::~CPPA()
00066 {
00067     //  Apr. 15, 2002 genta cleanup処理追加
00068     if( IsAvailable()){
00069         DeinitDll();
00070     }
00071 }
00072
00073
00074 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00075 void CPPA::Execute(CEditView* pcEditView )
00076 {
00077     m_pcEditView = pcEditView;
00078     m_pShareData = CShareData::getInstance()->GetShareData();
00079     m_bError = false;           //  2003.06.01 Moca
00080     m_cMemDebug.SetString("");  //  2003.06.01 Moca
00081     m_fnExecute();
00082 }
00083
00084 LPCTSTR CPPA::GetDllName( LPCTSTR str )
00085 {
00086     return _T("PPA.DLL");
00087 }
00088
00097 int CPPA::InitDll()
00098 {
00099     /* PPA.DLLが持っている関数を準備 */
00100
00101     //  Apr. 15, 2002 genta constを付けた
00102     //  アドレスの入れ場所はオブジェクトに依存するので
00103     //  static配列にはできない。
00104     const ImportTable table[] =
00105     {
00106         { &m_fnExecute,     "Execute" },
00107         { &m_fnSetDeclare,  "SetDeclare" },
00108         { &m_fnSetSource,   "SetSource" },
00109         { &m_fnSetDefProc,  "SetDefProc" },
00110         { &m_fnSetDefine,   "SetDefine" },
00111         { &m_fnSetIntFunc,  "SetIntFunc" },
00112         { &m_fnSetStrFunc,  "SetStrFunc" },
00113         { &m_fnSetProc,     "SetProc" },
00114         { &m_fnSetErrProc,  "SetErrProc" },
00115         { &m_fnAbort,       "ppaAbort" },
00116         { &m_fnGetVersion,  "GetVersion" },
00117         { &m_fnDeleteVar,   "DeleteVar" },
00118         { &m_fnGetArgInt,   "GetArgInt" },
00119         { &m_fnGetArgStr,   "GetArgStr" },
00120         { &m_fnGetArgBStr,  "GetArgBStr" },
00121         { &m_fnGetIntVar,   "GetIntVar" },
00122         { &m_fnGetStrVar,   "GetStrVar" },
00123         { &m_fnGetBStrVar,  "GetBStrVar" },
00124         { &m_fnSetIntVar,   "SetIntVar" },
00125         { &m_fnSetStrVar,   "SetStrVar" },
00126         { &m_fnAddIntObj,   "AddIntObj" },
00127         { &m_fnAddStrObj,   "AddStrObj" },
00128         { &m_fnAddIntVar,   "AddIntVar" },
00129         { &m_fnAddStrVar,   "AddStrVar" },
00130         { &m_fnSetIntObj,   "SetIntObj" },
00131         { &m_fnSetStrObj,   "SetStrObj" },
00132
00133 #if PPADLL_VER >= 120
00134         { &m_fnAddRealVar,  "AddRealVar" },
00135         { &m_fnSetRealObj,  "SetRealObj" },
00136         { &m_fnAddRealObj,  "AddRealObj" },
00137         { &m_fnGetRealVar,  "GetRealVar" },
00138         { &m_fnSetRealVar,  "SetRealVar" },
00139         { &m_fnSetRealFunc, "SetRealFunc" },
00140         { &m_fnGetArgReal,  "GetArgReal" },
00141 #endif
00142
00143 #if PPADLL_VER >= 123
00144         { &m_fnIsRunning, "IsRunning" },
00145         { &m_fnSetFinishProc, "SetFinishProc"}, // 2003.06.23 Moca
00146 #endif
00147
00148         { NULL, 0 }
00149     };
00150
00151     //  Apr. 15, 2002 genta
00152     //  CDllHandlerの共通関数化した
00153     if( ! RegisterEntries(table) )
00154         return 1;
00155
00156     SetIntFunc(CPPA::stdIntFunc);   // 2003.02.24 Moca
00157     SetStrFunc(CPPA::stdStrFunc);
00158     SetProc(CPPA::stdProc);
00159
00160     // 2003.06.01 Moca エラーメッセージを追加
00161     SetErrProc(CPPA::stdError);
00162     SetStrObj(CPPA::stdStrObj); // UserErrorMes用
00163 #if PPADLL_VER >= 123
00164     SetFinishProc(CPPA::stdFinishProc);
00165 #endif
00166
00167     SetDefine( "sakura-editor" );   // 2003.06.01 Moca SAKURAエディタ用独自関数を準備
00168     AddStrObj( "UserErrorMes", "", FALSE, 2 ); // 2003.06.01 デバッグ用文字列変数を用意
00169
00170     int i;
00171
00172     //  Jun. 16, 2003 genta 一時作業エリア
00173     char buf[1024];
00174     // コマンドに置き換えられない関数 ＝ PPA無しでは使えない。。。
00175     for (i=0; CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_pszFuncName != NULL; i++) {
00176         //  2003.06.08 Moca メモリーリークの修正
00177         //  2003.06.16 genta バッファを外から与えるように
00178         //  関数登録用文字列を作成する
00179         GetDeclarations( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i], buf );
00180         SetDefProc( buf );
00181     }
00182
00183     // コマンドに置き換えられる関数 ＝ PPA無しでも使える。
00184     for (i=0; CSMacroMgr::m_MacroFuncInfoArr[i].m_pszFuncName != NULL; i++) {
00185         //  2003.06.08 Moca メモリーリークの修正
00186         //  2003.06.16 genta バッファを外から与えるように
00187         //  関数登録用文字列を作成する
00188         GetDeclarations( CSMacroMgr::m_MacroFuncInfoArr[i], buf );
00189         SetDefProc( buf );
00190     }
00191     return 0;
00192 }
00193
00207 char* CPPA::GetDeclarations( const MacroFuncInfo& cMacroFuncInfo, char* szBuffer )
00208 {
00209     char szType[20];            //  procedure/function用バッファ
00210     char szReturn[20];          //  戻り値型用バッファ
00211     if (cMacroFuncInfo.m_varResult == VT_EMPTY){
00212         strcpy( szType, "procedure" );
00213         szReturn[0] = '\0';
00214     }
00215     else {
00216         strcpy( szType, "function" );
00217         if (cMacroFuncInfo.m_varResult == VT_BSTR){
00218             strcpy( szReturn, ": string" );
00219         }
00220         else if ( cMacroFuncInfo.m_varResult == VT_I4 ){
00221             strcpy( szReturn, ": Integer" );
00222         }
00223         else {
00224             szReturn[0] = '\0';
00225         }
00226     }
00227
00228     char szArguments[4][20];    //  引数用バッファ
00229     int i;
00230     for (i=0; i<4; i++){
00231         if ( cMacroFuncInfo.m_varArguments[i] == VT_EMPTY ){
00232             break;
00233         }
00234         if ( cMacroFuncInfo.m_varArguments[i] == VT_BSTR ){
00235             strcpy( szArguments[i], "s0: string" );
00236             szArguments[i][1] = '0' + i;
00237         }
00238         else if ( cMacroFuncInfo.m_varArguments[i] == VT_I4 ){
00239             strcpy( szArguments[i], "i0: Integer" );
00240             szArguments[i][1] = '0' + i;
00241         }
00242         else {
00243             strcpy( szArguments[i], "u0: Unknown" );
00244         }
00245     }
00246     if ( i > 0 ){   //  引数があったとき
00247         int j;
00248         char szArgument[80];
00249         // 2002.12.06 Moca 原因不明だが，strcatがVC6Proでうまく動かなかったため，strcpyにしてみたら動いた
00250         strcpy( szArgument, szArguments[0] );
00251         for ( j=1; j<i; j++){
00252             strcat( szArgument, "; " );
00253             strcat( szArgument, szArguments[j] );
00254         }
00255         auto_sprintf( szBuffer, "%hs S_%ls(%hs)%hs; index %d;",
00256             szType,
00257             cMacroFuncInfo.m_pszFuncName,
00258             szArgument,
00259             szReturn,
00260             cMacroFuncInfo.m_nFuncID
00261         );
00262     }
00263     else {
00264         auto_sprintf( szBuffer, "%hs S_%ts%hs; index %d;",
00265             szType,
00266             cMacroFuncInfo.m_pszFuncName,
00267             szReturn,
00268             cMacroFuncInfo.m_nFuncID
00269         );
00270     }
00271     //  Jun. 01, 2003 Moca / Jun. 16, 2003 genta
00272     return szBuffer;
00273 }
00274
00277 int CPPA::DeinitDll( void )
00278 {
00279     // Jun. 01, 2003 Moca m_pszDataを使わなくなったため，
00280     //  CSMacroMgr::m_MacroFuncInfoArr[i].m_pszDataの後始末を削除
00281
00282     return 0;
00283 }
00284
00285
00289 void __stdcall CPPA::stdStrObj(const char* ObjName, int Index, BYTE GS_Mode, int* Err_CD, char** Value)
00290 {
00291     NEVER_USED_PARAM(ObjName);
00292     *Err_CD = 0;
00293     switch(Index){
00294     case 2:
00295         switch(GS_Mode){
00296         case omGet:
00297 //          ::MessageBoxA( m_pcEditView->m_hWnd, m_cMemDebug.GetPtr(), "GetStrObj", MB_OK );
00298             *Value = m_cMemDebug.GetStringPtr();
00299             break;
00300         case omSet:
00301 //          ::MessageBoxA( m_pcEditView->m_hWnd, *Value, "SetStrObj", MB_OK );
00302             m_cMemDebug.SetString(*Value);
00303             break;
00304         }
00305         break;
00306     default:
00307         *Err_CD = -1;
00308     }
00309 }
00310
00311
00325 void __stdcall CPPA::stdError( int Err_CD, const char* Err_Mes )
00326 {
00327     if( false != m_bError ){
00328         return;
00329     }
00330     m_bError = true; // 関数内で関数を呼ぶ場合等、2回表示されるのを防ぐ
00331
00332     char szMes[2048]; // 2048あれば足りるかと
00333     const char* pszErr;
00334     pszErr = szMes;
00335     if( 0 < Err_CD ){
00336         int i, FuncID;
00337         FuncID = Err_CD - 1;
00338         for( i = 0; CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID != -1; i++ ){
00339             if( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID == FuncID ){
00340                 break;
00341             }
00342         }
00343         if( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID != -1 ){
00344             char szFuncDec[1024];
00345             GetDeclarations( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i], szFuncDec );
00346             auto_sprintf( szMes, "関数の実行エラー\n%hs", szFuncDec );
00347         }else{
00348             auto_sprintf( szMes, "不明な関数の実行エラー(バグです)\nFunc_ID=%d", FuncID );
00349         }
00350     }else{
00351         switch( Err_CD ){
00352         case 0:
00353             if( 0 == lstrlenA( Err_Mes ) ){
00354                 pszErr = "詳細不明のエラー";
00355             }else{
00356                 pszErr = Err_Mes;
00357             }
00358             break;
00359         default:
00360             auto_sprintf( szMes, "未定義のエラー\nError_CD=%d\n%hs", Err_CD, Err_Mes );
00361         }
00362     }
00363     if( 0 == m_cMemDebug.GetStringLength() ){
00364         ::MessageBoxA( m_pcEditView->m_hWnd, pszErr, "PPA実行エラー", MB_OK );
00365     }else{
00366         char* p = new char [ lstrlenA(pszErr) + m_cMemDebug.GetStringLength() + 2 ];
00367         strcpy( p, pszErr );
00368         strcat( p, "\n" );
00369         strcat( p, m_cMemDebug.GetStringPtr() );
00370         ::MessageBoxA( m_pcEditView->m_hWnd, p, "PPA実行エラー", MB_OK );
00371         delete [] p;
00372     }
00373 }
00374
00375
00376
00377 //----------------------------------------------------------------------
00378 void __stdcall CPPA::stdProc(
00379     const char*     FuncName,
00380     const int       _Index,
00381     const char*     Argument[],
00382     const int       ArgSize,
00383     int*            Err_CD
00384 )
00385 {
00386     NEVER_USED_PARAM(FuncName);
00387     EFunctionCode Index=(EFunctionCode)_Index;
00388
00389     *Err_CD = 0;
00390
00391     //Argumentをwchar_t[]に変換 -> tmpArguments
00392     WCHAR** tmpArguments2=new WCHAR*[ArgSize];
00393     for(int i=0;i<ArgSize;i++){
00394         if(Argument[i]){
00395             tmpArguments2[i]=mbstowcs_new(Argument[i]);
00396         }
00397         else{
00398             tmpArguments2[i]=NULL;
00399         }
00400     }
00401     const WCHAR** tmpArguments=(const WCHAR**)tmpArguments2;
00402
00403     //処理
00404     CMacro::HandleCommand( m_pcEditView, Index, tmpArguments, ArgSize );
00405
00406     //tmpArgumentsを解放
00407     for(int i=0;i<ArgSize;i++){
00408         if(tmpArguments2[i]){
00409             WCHAR* p=const_cast<WCHAR*>(tmpArguments2[i]);
00410             delete[] p;
00411         }
00412     }
00413     delete[] tmpArguments2;
00414 }
00415
00416 //----------------------------------------------------------------------
00424 void __stdcall CPPA::stdIntFunc(
00425     const char* FuncName, const int Index,
00426     const char* Argument[], const int ArgSize, int* Err_CD,
00427     int* ResultValue)
00428 {
00429     NEVER_USED_PARAM(FuncName);
00430     VARIANT Ret;
00431     ::VariantInit(&Ret);
00432
00433     *ResultValue = 0;
00434     *Err_CD = 0;
00435     if( false != CallHandleFunction(Index, Argument, ArgSize, &Ret) ){
00436         switch( Ret.vt ){
00437         case VT_I4:
00438             *ResultValue = Ret.lVal;
00439             break;
00440         case VT_INT:
00441             *ResultValue = Ret.intVal;
00442             break;
00443         case VT_UINT:
00444             *ResultValue = Ret.uintVal;
00445             break;
00446         default:
00447             *Err_CD = -2; // 2003.06.01 Moca 値変更
00448         }
00449         ::VariantClear(&Ret);
00450         return;
00451     }
00452     *Err_CD = Index + 1; // 2003.06.01 Moca
00453     ::VariantClear(&Ret);
00454     return;
00455 }
00456
00457 //----------------------------------------------------------------------
00464 void __stdcall CPPA::stdStrFunc(
00465     const char* FuncName, const int Index,
00466     const char* Argument[], const int ArgSize, int* Err_CD,
00467     char** ResultValue)
00468 {
00469     NEVER_USED_PARAM(FuncName);
00470
00471     VARIANT Ret;
00472     ::VariantInit(&Ret);
00473     *Err_CD = 0;
00474     if( false != CallHandleFunction(Index, Argument, ArgSize, &Ret) ){
00475         if(VT_BSTR == Ret.vt){
00476             int len;
00477             char* buf;
00478             Wrap(&Ret.bstrVal)->Get(&buf,&len);
00479             m_cMemRet.SetString(buf,len); // Mar. 9, 2003 genta
00480             delete[] buf;
00481             *ResultValue = m_cMemRet.GetStringPtr();
00482             ::VariantClear(&Ret);
00483             return;
00484         }
00485     }
00486     ::VariantClear(&Ret);
00487     *Err_CD = Index + 1;
00488     *ResultValue = "";
00489     return;
00490 }
00491
00498 bool CPPA::CallHandleFunction(
00499     const int Index, const char* Arg[],
00500     int ArgSize, VARIANT* Result )
00501 {
00502     int i, ArgCnt;
00503     VARIANT vtArg[4];
00504     const MacroFuncInfo* mfi;
00505     bool Ret;
00506
00507     mfi = CSMacroMgr::GetFuncInfoByID(Index);
00508     for( i=0; i<4; i++ ){
00509         ::VariantInit( &vtArg[i] );
00510     }
00511     for(i=0, ArgCnt=0; i<4 && i<ArgSize; i++ ){
00512         if(VT_EMPTY == mfi->m_varArguments[i]){
00513             break;
00514         }
00515
00516         switch( mfi->m_varArguments[i] ){
00517         case VT_I4:
00518         {
00519             vtArg[i].vt = VT_I4;
00520             vtArg[i].lVal = atoi( Arg[i] );
00521             break;
00522         }
00523         case VT_BSTR:
00524         {
00525             SysString S(Arg[i],lstrlenA(Arg[i]));
00526             Wrap(&vtArg[i])->Receive(S);
00527             break;
00528         }
00529         default:
00530             for( i=0; i<4; i++ ){
00531                 ::VariantClear( &vtArg[i] );
00532             }
00533             return false;
00534         }
00535         ArgCnt++;
00536     }
00537
00538     if(Index >= F_FUNCTION_FIRST)
00539     {
00540         Ret = CMacro::HandleFunction(m_pcEditView, Index, vtArg, ArgCnt, *Result);
00541         for( i=0; i<4; i++ ){
00542             ::VariantClear( &vtArg[i] );
00543         }
00544         return Ret;
00545     }else{
00546         for( i=0; i<4; i++ ){
00547             ::VariantClear( &vtArg[i] );
00548         }
00549         return false;
00550     }
00551 }
00552
00553
00554 #if PPADLL_VER >= 123
00555
00561 void __stdcall CPPA::stdFinishProc()
00562 {
00563     m_cMemRet.SetString("");
00564     m_cMemDebug.SetString("");
00565     m_pShareData = NULL;
00566     m_pcEditView = NULL;
00567     m_bError = false;
00568 }
00569
00570 #endif
00571
00572 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPA.h

sakura_core

CPPA.h

PPA Library Handler [詳細]

#include <objidl.h>
#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 の 46 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPA.h ソースファイル

sakura_core

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 PPA(Poor-Pascal for Application)はDelphi/C++Builder用のPascalインタプリタコンポーネントです。
00036 */
00037
00038 #ifndef _DLL_CPPA_H_
00039 #define _DLL_CPPA_H_
00040
00041 #include <objidl.h>  // VARIANT等
00042 #include "CSMacroMgr.h"
00043 #include "CDllHandler.h"
00044 #include "stdio.h"
00045
00046 #define PPADLL_VER 123
00047
00048
00049 /*
00050 PPA(Poor-Pascal for Application)はDelphi/C++Builder用の
00051 Pascalインタプリタコンポーネントです。
00052 アプリケーションにマクロ機能を搭載する事を目的に作成されています。
00053 */
00054
00062 class SAKURA_CORE_API CPPA : public CDllHandler {
00063 public:
00064     CPPA();
00065     virtual ~CPPA();
00066
00067     const char* GetVersion(){
00068         if ( IsAvailable() ){
00069             auto_sprintf(m_szMsg, "PPA.DLL Version %d.%d", m_fnGetVersion() / 100, m_fnGetVersion() % 100);
00070             return m_szMsg;
00071         }
00072         return "";
00073     }
00074
00076     const char* GetLastMessage(void) const { return m_szMsg; }
00077
00078     //  Jun. 16, 2003 genta 引数追加
00079     static char* GetDeclarations( const MacroFuncInfo&, char* buf );
00080
00081 protected:
00082     //  Jul. 5, 2001 genta インターフェース変更に伴う引数追加
00083 public:
00084     virtual LPCTSTR GetDllName(LPCTSTR);
00085 protected:
00086     virtual int InitDll(void);
00087     virtual int DeinitDll(void);
00088
00089 private:
00090     //  DLL Interfaceの受け皿
00091     typedef void (WINAPI *PPA_Execute)();
00092     typedef void (WINAPI *PPA_SetSource) (const char* ss);
00093     typedef void (WINAPI *PPA_SetDeclare)(const char* ss);
00094     typedef void (WINAPI *PPA_SetDefProc)(const char* ss);
00095     typedef void (WINAPI *PPA_SetDefine) (const char* ss);
00096     typedef void (WINAPI *PPA_AddIntVar) (const char*, int, int);
00097     typedef void (WINAPI *PPA_AddStrVar) (const char*, const char*, int);
00098     typedef void (WINAPI *PPA_SetIntFunc)(void* p);
00099     typedef void (WINAPI *PPA_SetStrFunc)(void* p);
00100     typedef void (WINAPI *PPA_SetProc)   (void* p);
00101     typedef void (WINAPI *PPA_SetErrProc)(void* p);
00102     typedef void (WINAPI *PPA_Abort)     ();
00103     typedef int  (WINAPI *PPA_GetVersion)();
00104     typedef void (WINAPI *PPA_DeleteVar) (const char*);
00105     typedef int  (WINAPI *PPA_GetArgInt) (int);
00106     typedef char*(WINAPI *PPA_GetArgStr) (int);
00107     typedef char*(WINAPI *PPA_GetArgBStr)(int);
00108     typedef void (WINAPI *PPA_SetStrObj) (void* proc);
00109     typedef void (WINAPI *PPA_SetIntObj) (void* proc);
00110     typedef void (WINAPI *PPA_AddIntObj) (const char*, int, BOOL, int);
00111     typedef void (WINAPI *PPA_AddStrObj) (const char*, const char*, BOOL, int);
00112     typedef int  (WINAPI *PPA_GetIntVar) (const char* ss);
00113     typedef char*(WINAPI *PPA_GetStrVar) (const char* ss);
00114     typedef char*(WINAPI *PPA_GetBStrVar)(const char* ss);
00115     typedef BOOL (WINAPI *PPA_SetIntVar) (const char*, int);
00116     typedef BOOL (WINAPI *PPA_SetStrVar) (const char*, const char*);
00117
00118     // 以下は PPA.DLL Version 1.20 で追加された関数 --
00119     #if PPADLL_VER >= 120
00120     typedef void   (WINAPI *PPA_AddRealVar)(const char*, double, BOOL);
00121     typedef void   (WINAPI *PPA_SetRealObj)(void* p);
00122     typedef void   (WINAPI *PPA_AddRealObj)(const char*, double, BOOL, LONG);
00123     typedef double (WINAPI *PPA_GetRealVar)(const char*);
00124     typedef BOOL   (WINAPI *PPA_SetRealVar)(const char*, double);
00125     typedef void   (WINAPI *PPA_SetRealFunc)(void* p);
00126     typedef DWORD  (WINAPI *PPA_GetArgReal)(int);
00127     #endif // PPADLL_VER >= 120
00128
00129     // 以下は PPA.DLL Version 1.23 で追加された関数 --
00130     #if PPADLL_VER >= 123
00131     typedef BYTE (WINAPI *PPA_IsRunning)();
00132     typedef void (WINAPI *PPA_SetFinishProc)(void* p);  //  2003.06.01 Moca
00133     #endif // PPADLL_VER >= 123
00134
00135     PPA_Execute    m_fnExecute;
00136     PPA_SetSource  m_fnSetSource;
00137     PPA_SetDeclare m_fnSetDeclare;
00138     PPA_SetDefProc m_fnSetDefProc;
00139     PPA_SetDefine  m_fnSetDefine;
00140     PPA_AddIntVar  m_fnAddIntVar;
00141     PPA_AddStrVar  m_fnAddStrVar;
00142     PPA_SetIntFunc m_fnSetIntFunc;
00143     PPA_SetStrFunc m_fnSetStrFunc;
00144     PPA_SetProc    m_fnSetProc;
00145     PPA_SetErrProc m_fnSetErrProc;
00146     PPA_Abort      m_fnAbort;
00147     PPA_GetVersion m_fnGetVersion;
00148     PPA_DeleteVar  m_fnDeleteVar;
00149     PPA_GetArgInt  m_fnGetArgInt;
00150     PPA_GetArgStr  m_fnGetArgStr;
00151     PPA_GetArgBStr m_fnGetArgBStr;
00152     PPA_SetStrObj  m_fnSetStrObj;
00153     PPA_SetIntObj  m_fnSetIntObj;
00154     PPA_AddIntObj  m_fnAddIntObj;
00155     PPA_AddStrObj  m_fnAddStrObj;
00156     PPA_GetIntVar  m_fnGetIntVar;
00157     PPA_GetStrVar  m_fnGetStrVar;
00158     PPA_GetBStrVar m_fnGetBStrVar;
00159     PPA_SetIntVar  m_fnSetIntVar;
00160     PPA_SetStrVar  m_fnSetStrVar;
00161
00162 #if PPADLL_VER >= 120
00163     PPA_AddRealVar  m_fnAddRealVar;
00164     PPA_SetRealObj  m_fnSetRealObj;
00165     PPA_AddRealObj  m_fnAddRealObj;
00166     PPA_GetRealVar  m_fnGetRealVar;
00167     PPA_SetRealVar  m_fnSetRealVar;
00168     PPA_SetRealFunc m_fnSetRealFunc;
00169     PPA_GetArgReal  m_fnGetArgReal;
00170 #endif
00171
00172 #if PPADLL_VER >= 123
00173     PPA_IsRunning m_fnIsRunning;
00174     PPA_SetFinishProc m_fnSetFinishProc;    //  2003.06.01 Moca
00175 #endif
00176
00177 public:
00178     // exported
00179     void Execute(class CEditView* pcEditView );
00180     void SetSource(const char* ss)
00181         { m_fnSetSource(ss); }
00182     void SetDeclare(const char* ss)
00183         { m_fnSetDeclare(ss); }
00184     void SetDefProc(const char* ss)
00185         { m_fnSetDefProc(ss); }
00186     void SetDefine(const char* ss)
00187         { m_fnSetDefine(ss); }
00188     void AddIntVar(const char* lpszDef, int nVal, int nCnst)
00189         { m_fnAddIntVar(lpszDef, nVal, nCnst); }
00190     void AddStrVar(const char* lpszDef, const char* lpszVal, int nCnst)
00191         { m_fnAddStrVar(lpszDef, lpszVal, nCnst); }
00192     void SetIntFunc(void* proc)
00193         { m_fnSetIntFunc(proc); }
00194     void SetStrFunc(void* proc)
00195         { m_fnSetStrFunc(proc); }
00196     void SetProc(void* proc)
00197         { m_fnSetProc(proc); }
00198     void SetErrProc(void* proc)
00199         { m_fnSetErrProc(proc); }
00200     void Abort()
00201         { m_fnAbort(); }
00202 //  int  GetVersion()
00203 //      { return m_fnGetVersion(); }
00204     void DeleteVar(const char* ss)
00205         { m_fnDeleteVar(ss); }
00206     int  GetArgInt(int index)
00207         { return m_fnGetArgInt(index); }
00208     char* GetArgStr(int index)
00209         { return m_fnGetArgStr(index); }
00210     char* GetArgBStr(int index)
00211         { return m_fnGetArgBStr(index); }
00212     void SetStrObj(void* proc)
00213         { m_fnSetStrObj(proc); }
00214     void SetIntObj(void* proc)
00215         { m_fnSetIntObj(proc); }
00216     void AddIntObj(const char* ss, int def, BOOL read, int index)
00217         { m_fnAddIntObj(ss, def, read, index); }
00218     void AddStrObj(const char* ss, const char* def, BOOL read, int index)
00219         { m_fnAddStrObj(ss, def, read, index); }
00220     int  GetIntVar(const char* ss)
00221         { return m_fnGetIntVar(ss); }
00222     char* GetStrVar(const char* ss)
00223         { return m_fnGetStrVar(ss); }
00224     char* GetBStrVar(const char* ss)
00225         { return m_fnGetBStrVar(ss); }
00226     BOOL SetIntVar(const char* ss, int val)
00227         { return m_fnSetIntVar(ss, val); }
00228     BOOL SetStrVar(const char* ss, const char* val)
00229         { return m_fnSetStrVar(ss, val); }
00230
00231 #if PPADLL_VER >= 120
00232     void AddRealVar(const char* ss, double val, BOOL cnst)
00233         { m_fnAddRealVar(ss, val, cnst); }
00234     void SetRealObj(void* proc)
00235         { m_fnSetRealObj(proc); }
00236     void AddRealObj(const char* ss, double val, BOOL read, LONG index)
00237         { m_fnAddRealObj(ss, val, read, index); }
00238     double GetRealVar(const char* ss)
00239         { return m_fnGetRealVar(ss); }
00240     BOOL SetRealVar(const char* ss, double val)
00241         { return m_fnSetRealVar(ss, val); }
00242     void SetRealFunc(void* proc)
00243         { m_fnSetRealFunc(proc); }
00244     DWORD GetArgReal(int index)
00245         { return m_fnGetArgReal(index); }
00246 #endif
00247
00248 #if PPADLL_VER >= 123
00249     BOOL IsRunning()
00250         { return (BOOL)m_fnIsRunning(); }
00251     void SetFinishProc(void* proc)  //  2003.06.01 Moca
00252         { m_fnSetFinishProc(proc); }
00253 #endif
00254
00255 private:
00256     // コールバックプロシージャ群
00257     static void __stdcall stdStrObj(const char*, int, BYTE, int*, char**);  //  2003.06.01 Moca
00258
00259     static void __stdcall stdProc( const char* FuncName, const int Index, const char* Argument[], const int ArgSize, int* Err_CD);
00260     static void __stdcall stdIntFunc( const char* FuncName, const int Index,
00261         const char* Argument[], const int ArgSize, int* Err_CD, int* ResultValue); // 2002.02.24 Moca
00262     static void __stdcall stdStrFunc( const char* FuncName, const int Index, const char* Argument[], const int ArgSize, int* Err_CD, char** ResultValue);
00263     static bool CallHandleFunction( const int Index, const char* Arg[], int ArgSize, VARIANT* Result ); // 2002.02.24 Moca
00264
00265     static void __stdcall stdError( int, const char* ); //  2003.06.01 Moca
00266     static void __stdcall stdFinishProc();  //  2003.06.01 Moca
00267
00268     //  メンバ変数
00269     char        m_szMsg[80];
00270
00271     static CNativeA         m_cMemRet;
00272     static CEditView*       m_pcEditView;   //  2003.06.01 Moca
00273     static DLLSHAREDATA*    m_pShareData;   //  2003.06.01 Moca
00274     static bool             m_bError;       //<! エラーが2回表示されるのを防ぐ    2003.06.01 Moca
00275     static CNativeA         m_cMemDebug;    //<! デバッグ用変数UserErrorMes 2003.06.01 Moca
00276
00277 /*  関数名はCMacroが持つ。
00278     static struct MacroFuncInfo S_Table[];
00279     static int                  m_nFuncNum; //  SAKURAエディタ用関数の数
00280 */
00281 };
00282
00283 #endif
00284 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPAMacroMgr.cpp

sakura_core

CPPAMacroMgr.cpp

キーボードマクロ [詳細]

#include "stdafx.h"
#include "CPPAMacroMgr.h"
#include "CPPA.h"
#include "CMemory.h"
#include "CMacroFactory.h"
#include <string.h>
#include "io/CTextStream.h"

CPPAMacroMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
YAZAKI
日付:
2002年1月26日

CPPAMacroMgr.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:25 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPAMacroMgr.cpp ソースファイル

sakura_core

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 #include "io/CTextStream.h"
00021 using namespace std;
00022
00023 CPPA CPPAMacroMgr::m_cPPA;
00024
00025 CPPAMacroMgr::CPPAMacroMgr()
00026 {
00027 }
00028
00029 CPPAMacroMgr::~CPPAMacroMgr()
00030 {
00031 }
00032
00036 void CPPAMacroMgr::ExecKeyMacro( CEditView* pcEditView ) const
00037 {
00038     m_cPPA.SetSource( to_achar(m_cBuffer.GetStringPtr()) );
00039     m_cPPA.Execute(pcEditView);
00040 }
00041
00045 BOOL CPPAMacroMgr::LoadKeyMacro( HINSTANCE hInstance, const TCHAR* pszPath )
00046 {
00047     CTextInputStream in( pszPath );
00048     if(!in){
00049         m_nReady = false;
00050         return FALSE;
00051     }
00052
00053     CNativeW cmemWork;
00054
00055     // バッファ（cmemWork）にファイル内容を読み込み、m_cPPAに渡す。
00056     while( in ){
00057         wstring szLine = in.ReadLineW();
00058         szLine += L"\n";
00059         cmemWork.AppendString(szLine.c_str());
00060     }
00061     in.Close();
00062
00063     m_cBuffer.SetNativeData( cmemWork );    //  m_cBufferにコピー
00064
00065     m_nReady = true;
00066     return TRUE;
00067 }
00068
00069 //  From Here Apr. 29, 2002 genta
00079 CMacroManagerBase* CPPAMacroMgr::Creator(const TCHAR* ext)
00080 {
00081     if( _tcscmp( ext, _T("ppa") ) == 0 ){
00082         return new CPPAMacroMgr;
00083     }
00084     return NULL;
00085 }
00086
00093 void CPPAMacroMgr::declare (void)
00094 {
00095     if( m_cPPA.Init() ){
00096         CMacroFactory::Instance()->RegisterCreator( Creator );
00097     }
00098 }
00099 //  To Here Apr. 29, 2002 genta
00100
00101 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPAMacroMgr.h

sakura_core

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 Nov 17 20:26:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPPAMacroMgr.h ソースファイル

sakura_core

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 TCHAR* pszPath);  /* キーボードマクロを読み込み、CMacroの列に変換 */
00041
00042     static class CPPA m_cPPA;
00043
00044     // Apr. 29, 2002 genta
00045     static CMacroManagerBase* Creator(const TCHAR* ext);
00046     static void declare(void);
00047
00048 protected:
00049     CNativeW m_cBuffer;
00050 };
00051
00052
00053
00055 #endif /* _CPPAMACROMGR_H_ */
00056
00057
00058 /*[EOF]*/
00059
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrint.cpp

sakura_core

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 Nov 17 20:26:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrint.cpp ソースファイル

sakura_core

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, _T("A4 (210 x 297 mm)")},
00031     {DMPAPER_A3,                  2970,  4200, _T("A3 (297 x 420 mm)")},
00032     {DMPAPER_A4SMALL,             2100,  2970, _T("A4 small(210 x 297 mm)")},
00033     {DMPAPER_A5,                  1480,  2100, _T("A5 (148 x 210 mm)")},
00034     {DMPAPER_B4,                  2500,  3540, _T("B4 (250 x 354 mm)")},
00035     {DMPAPER_B5,                  1820,  2570, _T("B5 (182 x 257 mm)")},
00036     {DMPAPER_QUARTO,              2150,  2750, _T("Quarto(215 x 275 mm)")},
00037     {DMPAPER_ENV_DL,              1100,  2200, _T("DL Envelope(110 x 220 mm)")},
00038     {DMPAPER_ENV_C5,              1620,  2290, _T("C5 Envelope(162 x 229 mm)")},
00039     {DMPAPER_ENV_C3,              3240,  4580, _T("C3 Envelope(324 x 458 mm)")},
00040     {DMPAPER_ENV_C4,              2290,  3240, _T("C4 Envelope(229 x 324 mm)")},
00041     {DMPAPER_ENV_C6,              1140,  1620, _T("C6 Envelope(114 x 162 mm)")},
00042     {DMPAPER_ENV_C65,             1140,  2290, _T("C65 Envelope(114 x 229 mm)")},
00043     {DMPAPER_ENV_B4,              2500,  3530, _T("B4 Envelope(250 x 353 mm)")},
00044     {DMPAPER_ENV_B5,              1760,  2500, _T("B5 Envelope(176 x 250 mm)")},
00045     {DMPAPER_ENV_B6,              1760,  1250, _T("B6 Envelope(176 x 125 mm)")},
00046     {DMPAPER_ENV_ITALY,           1100,  2300, _T("Italy Envelope(110 x 230 mm)")},
00047     {DMPAPER_LETTER,              2159,  2794, _T("Letter (8 1/2 x 11 inch)")},
00048     {DMPAPER_LEGAL,               2159,  3556, _T("Legal  (8 1/2 x 14 inch)")},
00049     {DMPAPER_CSHEET,              4318,  5588, _T("C sheet (17 x 22 inch)")},
00050     {DMPAPER_DSHEET,              5588,  8634, _T("D sheet (22 x 34 inch)")},
00051     {DMPAPER_ESHEET,              8634, 11176, _T("E sheet (34 x 44 inch)")},
00052     {DMPAPER_LETTERSMALL,         2159,  2794, _T("Letter Small (8 1/2 x 11 inch)")},
00053     {DMPAPER_TABLOID,             2794,  4318, _T("Tabloid (11 x 17 inch)")},
00054     {DMPAPER_LEDGER,              4318,  2794, _T("Ledger  (17 x 11 inch)")},
00055     {DMPAPER_STATEMENT,           1397,  2159, _T("Statement (5 1/2 x 8 1/2 inch)")},
00056     {DMPAPER_EXECUTIVE,           1841,  2667, _T("Executive (7 1/4 x 10 1/2 inch)")},
00057     {DMPAPER_FOLIO,               2159,  3302, _T("Folio (8 1/2 x 13 inch)")},
00058     {DMPAPER_10X14,               2540,  3556, _T("10x14 inch sheet")},
00059     {DMPAPER_11X17,               2794,  4318, _T("11x17 inch sheet")},
00060     {DMPAPER_NOTE,                2159,  2794, _T("Note (8 1/2 x 11 inch)")},
00061     {DMPAPER_ENV_9,                984,  2254, _T("#9 Envelope  (3 7/8 x 8 7/8 inch)")},
00062     {DMPAPER_ENV_10,              1047,  2413, _T("#10 Envelope (4 1/8 x 9 1/2 inch)")},
00063     {DMPAPER_ENV_11,              1143,  2635, _T("#11 Envelope (4 1/2 x 10 3/8 inch)")},
00064     {DMPAPER_ENV_12,              1206,  2794, _T("#12 Envelope (4 3/4 x 11 inch)")},
00065     {DMPAPER_ENV_14,              1270,  2921, _T("#14 Envelope (5 x 11 1/2 inch)")},
00066     {DMPAPER_ENV_MONARCH,          984,  1905, _T("Monarch Envelope (3 7/8 x 7 1/2 inch)")},
00067     {DMPAPER_ENV_PERSONAL,         920,  1651, _T("6 3/4 Envelope (3 5/8 x 6 1/2 inch)")},
00068     {DMPAPER_FANFOLD_US,          3778,  2794, _T("US Std Fanfold (14 7/8 x 11 inch)")},
00069     {DMPAPER_FANFOLD_STD_GERMAN,  2159,  3048, _T("German Std Fanfold   (8 1/2 x 12 inch)")},
00070     {DMPAPER_FANFOLD_LGL_GERMAN,  2159,  3302, _T("German Legal Fanfold (8 1/2 x 13 inch)")},
00071 };
00072
00073 const int CPrint::m_nPaperInfoArrNum = _countof( m_paperInfoArr );
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(*pPD);
00134     pPD->hDevMode = m_hDevMode;
00135     pPD->hDevNames = m_hDevNames;
00136     if( !::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     // プリンタドライバ名
00148     _tcscpy_s(
00149         pMYDEVMODE->m_szPrinterDriverName,
00150         _countof(pMYDEVMODE->m_szPrinterDriverName),
00151         (const TCHAR*)pDEVNAMES + pDEVNAMES->wDriverOffset
00152     );
00153     // プリンタデバイス名
00154     _tcscpy_s(
00155         pMYDEVMODE->m_szPrinterDeviceName,
00156         _countof(pMYDEVMODE->m_szPrinterDeviceName),
00157         (const TCHAR*)pDEVNAMES + pDEVNAMES->wDeviceOffset
00158     );
00159     // プリンタポート名
00160     _tcscpy_s(
00161         pMYDEVMODE->m_szPrinterOutputName,
00162         _countof(pMYDEVMODE->m_szPrinterOutputName),
00163         (const TCHAR*)pDEVNAMES + pDEVNAMES->wOutputOffset
00164     );
00165
00166     // プリンタから得られた、dmFieldsは変更しない
00167     // プリンタがサポートしないbitをセットすると、プリンタドライバによっては、不安定な動きをする場合がある
00168     // pMYDEVMODEは、コピーしたいbitで１のものだけセットする
00169     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00170     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00171     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00172     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00173     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00174     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00175     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00176
00177 #ifdef _DEBUG
00178     MYTRACE_A( " (入力/出力) デバイス ドライバ=[%ls]\n", (TCHAR*)pDEVNAMES + pDEVNAMES->wDriverOffset );
00179     MYTRACE_A( " (入力/出力) デバイス名=[%ls]\n",        (TCHAR*)pDEVNAMES + pDEVNAMES->wDeviceOffset );
00180     MYTRACE_A( "物理出力メディア (出力ポート) =[%ls]\n", (TCHAR*)pDEVNAMES + pDEVNAMES->wOutputOffset );
00181     MYTRACE_A( "デフォルトのプリンタか=[%d]\n", pDEVNAMES->wDefault );
00182 #endif
00183
00184     ::GlobalUnlock( m_hDevMode );
00185     ::GlobalUnlock( m_hDevNames );
00186     return TRUE;
00187 }
00188
00189
00194 BOOL CPrint::GetDefaultPrinter( MYDEVMODE* pMYDEVMODE )
00195 {
00196     PRINTDLG    pd;
00197     DEVMODE*    pDEVMODE;
00198     DEVNAMES*   pDEVNAMES;      /* プリンタ設定 DEVNAMES用*/
00199
00200     // すでに DEVMODEを取得済みなら、何もしない
00201     if (m_hDevMode != NULL) {
00202         return TRUE;
00203     }
00204
00205     //
00206     // PRINTDLG構造体を初期化する（ダイアログは表示しないように）
00207     // PrintDlg()でデフォルトプリンタのデバイス名などを取得する
00208     //
00209     memset_raw ( &pd, 0, sizeof(pd) );
00210     pd.lStructSize  = sizeof(pd);
00211     pd.Flags        = PD_RETURNDEFAULT;
00212     if( FALSE == ::PrintDlg( &pd ) ){
00213         pMYDEVMODE->m_bPrinterNotFound = TRUE;  /* プリンタがなかったフラグ */
00214         return FALSE;
00215     }
00216     pMYDEVMODE->m_bPrinterNotFound = FALSE; /* プリンタがなかったフラグ */
00217
00218     /* 初期化 */
00219     memset_raw( pMYDEVMODE, 0, sizeof(*pMYDEVMODE) );
00220     m_hDevMode = pd.hDevMode;
00221     m_hDevNames = pd.hDevNames;
00222
00223     // MYDEVMODEへのコピー
00224     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00225     pDEVNAMES = (DEVNAMES*)::GlobalLock( m_hDevNames );
00226
00227     // プリンタドライバ名
00228     _tcscpy_s( pMYDEVMODE->m_szPrinterDriverName,
00229         _countof(pMYDEVMODE->m_szPrinterDriverName),
00230         (TCHAR*)pDEVNAMES + pDEVNAMES->wDriverOffset
00231     );
00232     // プリンタデバイス名
00233     _tcscpy_s( pMYDEVMODE->m_szPrinterDeviceName,
00234         _countof(pMYDEVMODE->m_szPrinterDeviceName),
00235         (TCHAR*)pDEVNAMES + pDEVNAMES->wDeviceOffset
00236     );
00237     // プリンタポート名
00238     _tcscpy_s( pMYDEVMODE->m_szPrinterOutputName,
00239         _countof(pMYDEVMODE->m_szPrinterOutputName),
00240         (TCHAR*)pDEVNAMES + pDEVNAMES->wOutputOffset
00241     );
00242
00243     // プリンタから得られた、dmFieldsは変更しない
00244     // プリンタがサポートしないbitをセットすると、プリンタドライバによっては、不安定な動きをする場合がある
00245     // pMYDEVMODEは、コピーしたいbitで１のものだけコピーする
00246     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00247     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00248     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00249     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00250     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00251     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00252     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00253
00254 #ifdef _DEBUG
00255     MYTRACE_A( " (入力/出力) デバイス ドライバ=[%ts]\n", (TCHAR*)pDEVNAMES + pDEVNAMES->wDriverOffset );
00256     MYTRACE_A( " (入力/出力) デバイス名=[%ts]\n",        (TCHAR*)pDEVNAMES + pDEVNAMES->wDeviceOffset );
00257     MYTRACE_A( "物理出力メディア (出力ポート) =[%ts]\n", (TCHAR*)pDEVNAMES + pDEVNAMES->wOutputOffset );
00258     MYTRACE_A( "デフォルトのプリンタか=[%d]\n",          pDEVNAMES->wDefault );
00259 #endif
00260
00261     ::GlobalUnlock( m_hDevMode );
00262     ::GlobalUnlock( m_hDevNames );
00263     return TRUE;
00264 }
00265
00269 HDC CPrint::CreateDC(
00270     MYDEVMODE*  pMYDEVMODE,
00271     TCHAR*      pszErrMsg       /* エラーメッセージ格納場所 */
00272 )
00273 {
00274     HDC         hdc = NULL;
00275     HANDLE      hPrinter = NULL;
00276     DEVMODE*    pDEVMODE;
00277
00278     // プリンタが選択されていなければ、NULLを返す
00279     if ( m_hDevMode == NULL ) {
00280         return NULL;
00281     }
00282
00283     //
00284     // OpenPrinter()で、デバイス名でプリンタハンドルを取得
00285     //
00286     if( FALSE == ::OpenPrinter(
00287         pMYDEVMODE->m_szPrinterDeviceName,      /* プリンタデバイス名 */
00288         &hPrinter,                  /* プリンタハンドルのポインタ */
00289         NULL
00290     ) ){
00291         auto_sprintf(
00292             pszErrMsg,
00293             _T("OpenPrinter()に失敗。\n")
00294             _T("プリンタデバイス名=[%ts]"),
00295             pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */
00296         );
00297         goto end_of_func;
00298     }
00299
00300     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00301     pDEVMODE->dmOrientation         = pMYDEVMODE->dmOrientation;
00302     pDEVMODE->dmPaperSize           = pMYDEVMODE->dmPaperSize;
00303     pDEVMODE->dmPaperLength         = pMYDEVMODE->dmPaperLength;
00304     pDEVMODE->dmPaperWidth          = pMYDEVMODE->dmPaperWidth;
00305
00306     //
00307     //DocumentProperties()でアプリケーション独自のプリンタ設定に変更する
00308     //
00309     ::DocumentProperties(
00310         NULL,
00311         hPrinter,
00312         pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */,
00313         pDEVMODE,
00314         pDEVMODE,
00315         DM_OUT_BUFFER | DM_IN_BUFFER
00316     );
00317     /* 指定デバイスに対するデバイス コンテキストを作成します。 */
00318     hdc = ::CreateDC(
00319         pMYDEVMODE->m_szPrinterDriverName,  /* プリンタドライバ名 */
00320         pMYDEVMODE->m_szPrinterDeviceName,  /* プリンタデバイス名 */
00321         pMYDEVMODE->m_szPrinterOutputName,  /* プリンタポート名 */
00322         pDEVMODE
00323     );
00324
00325     // pMYDEVMODEは、コピーしたいbitで１のものだけコピーする
00326     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00327     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00328     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00329     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00330     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00331     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00332     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00333
00334     ::GlobalUnlock( m_hDevMode );
00335
00336 end_of_func:;
00337     if (hPrinter != NULL) {
00338         ::ClosePrinter( hPrinter );
00339     }
00340
00341     return hdc;
00342 }
00343
00344
00345 /* 印刷/プレビューに必要な情報を取得 */
00346 BOOL CPrint::GetPrintMetrics(
00347     MYDEVMODE*  pMYDEVMODE,
00348     int*        pnPaperAllWidth,    /* 用紙幅 */
00349     int*        pnPaperAllHeight,   /* 用紙高さ */
00350     int*        pnPaperWidth,       /* 用紙印刷可能幅 */
00351     int*        pnPaperHeight,      /* 用紙印刷可能高さ */
00352     int*        pnPaperOffsetLeft,  /* 用紙余白左端 */
00353     int*        pnPaperOffsetTop,   /* 用紙余白上端 */
00354     TCHAR*      pszErrMsg           /* エラーメッセージ格納場所 */
00355 )
00356 {
00357     BOOL        bRet;
00358     HDC         hdc;
00359     bRet = TRUE;
00360
00361     /* 現在の設定で、用紙の幅、高さを確定し、CreateDCに渡す */
00362     if( FALSE == GetPaperSize( pnPaperAllWidth, pnPaperAllHeight, pMYDEVMODE ) ){
00363         *pnPaperAllWidth = *pnPaperWidth + 2 * (*pnPaperOffsetLeft);
00364         *pnPaperAllHeight = *pnPaperHeight + 2 * (*pnPaperOffsetTop);
00365
00366         bRet = TRUE;
00367     }
00368
00369     // pMYDEVMODEを使って、hdcを取得
00370     if ( NULL == (hdc = CreateDC( pMYDEVMODE, pszErrMsg )) ){
00371         bRet = FALSE;
00372         goto end_of_func;
00373     }
00374
00375     /* CreateDC実行によって得られた実際のプリンタの用紙の幅、高さを取得 */
00376     if( FALSE == GetPaperSize( pnPaperAllWidth, pnPaperAllHeight, pMYDEVMODE ) ){
00377         *pnPaperAllWidth = *pnPaperWidth + 2 * (*pnPaperOffsetLeft);
00378         *pnPaperAllHeight = *pnPaperHeight + 2 * (*pnPaperOffsetTop);
00379
00380         bRet = TRUE;
00381     }
00382
00383     /* マッピング モードの設定 */
00384     ::SetMapMode( hdc, MM_LOMETRIC );   //MM_LOMETRIC   それぞれの論理単位は 0.1 mm にマップされます。
00385
00386     /* 最小左マージンと最小上マージンを取得(1mm単位) */
00387     POINT   po;
00388     if( 0 < ::Escape( hdc, GETPRINTINGOFFSET, (int)NULL, NULL, (LPPOINT)&po ) ){
00389         ::DPtoLP( hdc, &po, 1 );
00390         *pnPaperOffsetLeft = abs( po.x );   /* 用紙余白左端 */
00391         *pnPaperOffsetTop = abs( po.y );    /* 用紙余白上端 */
00392     }else{
00393         *pnPaperOffsetLeft = 0; /* 用紙余白左端 */
00394         *pnPaperOffsetTop = 0;  /* 用紙余白上端 */
00395     }
00396
00397     /* 用紙の印刷可能な幅、高さ */
00398     po.x = ::GetDeviceCaps( hdc, HORZRES ); /* 用紙印刷可能幅←物理ディスプレイの幅 (mm 単位) */
00399     po.y = ::GetDeviceCaps( hdc, VERTRES ); /* 用紙印刷可能高さ←物理ディスプレイの高さ (mm 単位)  */
00400     ::DPtoLP( hdc, &po, 1 );
00401     *pnPaperWidth = abs( po.x );
00402     *pnPaperHeight = abs( po.y );
00403
00404     ::DeleteDC( hdc );
00405
00406 end_of_func:;
00407
00408     return bRet;
00409 }
00410
00411
00412
00413 /* 用紙の幅、高さ */
00414 BOOL CPrint::GetPaperSize(
00415     int*        pnPaperAllWidth,
00416     int*        pnPaperAllHeight,
00417     MYDEVMODE*  pDEVMODE
00418 )
00419 {
00420     int nWork;
00421
00422
00423     if( pDEVMODE->dmFields &  DM_PAPERSIZE ){
00424         // 2006.08.14 Moca swich/caseテーブルを廃止して 用紙情報を統合
00425         const PAPER_INFO* pi = FindPaperInfo( pDEVMODE->dmPaperSize );
00426         if( NULL != pi ){
00427             *pnPaperAllWidth = pi->m_nAllWidth;
00428             *pnPaperAllHeight = pi->m_nAllHeight;
00429         }else{
00430             // 2001.12.21 hor マウスでクリックしたままリスト外に出るとここにくるけど、
00431             //  異常ではないので FALSE を返すことにする
00432             return FALSE;
00433         }
00434     }
00435     if(pDEVMODE->dmFields & DM_PAPERLENGTH && 0 != pDEVMODE->dmPaperLength ){
00436         /* pDEVMODE->dmPaperLengthは1/10mm単位である */
00437         *pnPaperAllHeight = pDEVMODE->dmPaperLength/* * 10*/;
00438     } else {
00439         pDEVMODE->dmPaperLength = *pnPaperAllHeight;
00440         pDEVMODE->dmFields |= DM_PAPERLENGTH;
00441     }
00442     if(pDEVMODE->dmFields & DM_PAPERWIDTH && 0 != pDEVMODE->dmPaperWidth ){
00443         /* pDEVMODE->dmPaperWidthは1/10mm単位である */
00444         *pnPaperAllWidth = pDEVMODE->dmPaperWidth/* * 10*/;
00445     } else {
00446         pDEVMODE->dmPaperWidth = *pnPaperAllWidth;
00447         pDEVMODE->dmFields |= DM_PAPERWIDTH;
00448     }
00449     /* 用紙の方向 */
00450     if( DMORIENT_LANDSCAPE == pDEVMODE->dmOrientation ){
00451         nWork = *pnPaperAllWidth;
00452         *pnPaperAllWidth = *pnPaperAllHeight;
00453         *pnPaperAllHeight = nWork;
00454     }
00455     return TRUE;
00456 }
00457
00458
00459
00460
00461
00462
00463
00464 /* 印刷 ジョブ開始 */
00465 BOOL CPrint::PrintOpen(
00466     TCHAR*      pszJobName,
00467     MYDEVMODE*  pMYDEVMODE,
00468     HDC*        phdc,
00469     TCHAR*      pszErrMsg       /* エラーメッセージ格納場所 */
00470 )
00471 {
00472     BOOL        bRet;
00473     HDC         hdc;
00474     DOCINFO     di;
00475     bRet = TRUE;
00476     //
00477     // hdcを取得
00478     //
00479     if ( NULL == (hdc = CreateDC( pMYDEVMODE, pszErrMsg )) ){
00480         bRet = FALSE;
00481         goto end_of_func;
00482     }
00483
00484     /* マッピング モードの設定 */
00485     ::SetMapMode( hdc, MM_LOMETRIC );   //MM_LOMETRIC       それぞれの論理単位は、0.1 mm にマップされます。
00486
00487     //
00488     //  印刷ジョブ開始
00489     //
00490     memset_raw( &di, 0, sizeof( di ) );
00491     di.cbSize = sizeof(di);
00492     di.lpszDocName = pszJobName;
00493     di.lpszOutput  = NULL;
00494     di.lpszDatatype = NULL;
00495     di.fwType = 0;
00496     if( 0 >= ::StartDoc( hdc, &di ) ){
00497         auto_sprintf(
00498             pszErrMsg,
00499             _T("StartDoc()に失敗。\n")
00500             _T("プリンタデバイス名=[%ts]"),
00501             pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */
00502         );
00503         bRet = FALSE;
00504         goto end_of_func;
00505     }
00506
00507     *phdc = hdc;
00508
00509 end_of_func:;
00510
00511     return bRet;
00512 }
00513
00514
00515
00516 /* 印刷 ページ開始 */
00517 void CPrint::PrintStartPage( HDC hdc )
00518 {
00519     ::StartPage( hdc );
00520
00521 }
00522
00523
00524
00525 /* 印刷 ページ終了 */
00526 void CPrint::PrintEndPage( HDC hdc )
00527 {
00528     ::EndPage( hdc );
00529
00530 }
00531
00532
00533 /* 印刷 ジョブ終了 */
00534 void CPrint::PrintClose( HDC hdc )
00535 {
00536     ::EndDoc( hdc );
00537     ::DeleteDC( hdc );
00538 }
00539
00540
00541
00542
00543
00544 /* 用紙の名前を取得 */
00545 TCHAR* CPrint::GetPaperName( int nPaperSize, TCHAR* pszPaperName )
00546 {
00547     // 2006.08.14 Moca 用紙情報の統合
00548     const PAPER_INFO* paperInfo = FindPaperInfo( nPaperSize );
00549     if( NULL != paperInfo ){
00550         _tcscpy( pszPaperName, paperInfo->m_pszName );
00551     }else{
00552         _tcscpy( pszPaperName, _T("不明") );
00553     }
00554     return pszPaperName;
00555 }
00556
00561 const PAPER_INFO* CPrint::FindPaperInfo( int id )
00562 {
00563     for( int i = 0; i < m_nPaperInfoArrNum; ++i ){
00564         if( m_paperInfoArr[i].m_nId == id ){
00565             return &(m_paperInfoArr[i]);
00566         }
00567     }
00568     return NULL;
00569 }
00570
00571
00579 void CPrint::SettingInitialize( PRINTSETTING& pPrintSetting, const TCHAR* settingName )
00580 {
00581     _tcscpy( pPrintSetting.m_szPrintSettingName, settingName ); /* 印刷設定の名前 */
00582     _tcscpy( pPrintSetting.m_szPrintFontFaceHan, _T("ＭＳ 明朝") );             /* 印刷フォント */
00583     _tcscpy( pPrintSetting.m_szPrintFontFaceZen, _T("ＭＳ 明朝") );             /* 印刷フォント */
00584     pPrintSetting.m_nPrintFontWidth = 12;                               /* 印刷フォント幅(1/10mm単位) */
00585     pPrintSetting.m_nPrintFontHeight = pPrintSetting.m_nPrintFontWidth * 2; /* 印刷フォント高さ(1/10mm単位単位) */
00586     pPrintSetting.m_nPrintDansuu = 1;           /* 段組の段数 */
00587     pPrintSetting.m_nPrintDanSpace = 70;        /* 段と段の隙間(1/10mm) */
00588     pPrintSetting.m_bPrintWordWrap = TRUE;      /* 英文ワードラップする */
00589     pPrintSetting.m_bPrintKinsokuHead = FALSE;      /* 行頭禁則する */    //@@@ 2002.04.09 MIK
00590     pPrintSetting.m_bPrintKinsokuTail = FALSE;      /* 行末禁則する */    //@@@ 2002.04.09 MIK
00591     pPrintSetting.m_bPrintKinsokuRet = FALSE;       /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
00592     pPrintSetting.m_bPrintKinsokuKuto = FALSE;      // 2006.08.14 Moca 初期化ミス
00593     pPrintSetting.m_bPrintLineNumber = FALSE;   /* 行番号を印刷する */
00594     pPrintSetting.m_nPrintLineSpacing = 30; /* 印刷フォント行間 文字の高さに対する割合(%) */
00595     pPrintSetting.m_nPrintMarginTY = 100;       /* 印刷用紙マージン 上(1/10mm単位) */
00596     pPrintSetting.m_nPrintMarginBY = 200;       /* 印刷用紙マージン 下(1/10mm単位) */
00597     pPrintSetting.m_nPrintMarginLX = 200;       /* 印刷用紙マージン 左(1/10mm単位) */
00598     pPrintSetting.m_nPrintMarginRX = 100;       /* 印刷用紙マージン 右(1/10mm単位) */
00599     pPrintSetting.m_nPrintPaperOrientation = DMORIENT_PORTRAIT; /* 用紙方向 DMORIENT_PORTRAIT (1) または DMORIENT_LANDSCAPE (2) */
00600     pPrintSetting.m_nPrintPaperSize = DMPAPER_A4;   /* 用紙サイズ */
00601     /* プリンタ設定 DEVMODE用 */
00602     /* プリンタ設定を取得するのはコストがかかるので、後ほど */
00603     //  m_cPrint.GetDefaultPrinterInfo( &(pPrintSetting.m_mdmDevMode) );
00604     pPrintSetting.m_bHeaderUse[0] = TRUE;
00605     pPrintSetting.m_bHeaderUse[1] = FALSE;
00606     pPrintSetting.m_bHeaderUse[2] = FALSE;
00607     wcscpy( pPrintSetting.m_szHeaderForm[0], L"$f" );
00608     wcscpy( pPrintSetting.m_szHeaderForm[1], L"" );
00609     wcscpy( pPrintSetting.m_szHeaderForm[2], L"" );
00610     pPrintSetting.m_bFooterUse[0] = TRUE;
00611     pPrintSetting.m_bFooterUse[1] = FALSE;
00612     pPrintSetting.m_bFooterUse[2] = FALSE;
00613     wcscpy( pPrintSetting.m_szFooterForm[0], L"" );
00614     wcscpy( pPrintSetting.m_szFooterForm[1], L"- $p -" );
00615     wcscpy( pPrintSetting.m_szFooterForm[2], L"" );
00616 }
00617
00618 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrint.h

sakura_core

CPrint.h

印刷関連 [詳細]

#include <winspool.h>
#include <commdlg.h>

CPrint.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | MYDEVMODE
struct | PAPER_INFO
用紙情報 [詳細]
class | CPrint
印刷関連機能 [詳細]

説明

印刷関連

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

CPrint.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrint.h ソースファイル

sakura_core

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 #include <commdlg.h> // PRINTDLG
00022
00023 struct  MYDEVMODE {
00024     BOOL    m_bPrinterNotFound; /* プリンタがなかったフラグ */
00025     TCHAR   m_szPrinterDriverName[_MAX_PATH + 1];   // プリンタドライバ名
00026     TCHAR   m_szPrinterDeviceName[_MAX_PATH + 1];   // プリンタデバイス名
00027     TCHAR   m_szPrinterOutputName[_MAX_PATH + 1];   // プリンタポート名
00028     DWORD   dmFields;
00029     short   dmOrientation;
00030     short   dmPaperSize;
00031     short   dmPaperLength;
00032     short   dmPaperWidth;
00033     short   dmScale;
00034     short   dmCopies;
00035     short   dmDefaultSource;
00036     short   dmPrintQuality;
00037     short   dmColor;
00038     short   dmDuplex;
00039     short   dmYResolution;
00040     short   dmTTOption;
00041     short   dmCollate;
00042     BCHAR   dmFormName[CCHFORMNAME];
00043     WORD    dmLogPixels;
00044     DWORD   dmBitsPerPel;
00045     DWORD   dmPelsWidth;
00046     DWORD   dmPelsHeight;
00047     DWORD   dmDisplayFlags;
00048     DWORD   dmDisplayFrequency;
00049 };
00050
00051 // 2006.08.14 Moca 用紙情報の統合 PAPER_INFO新設
00053 struct PAPER_INFO {
00054     int             m_nId;
00055     int             m_nAllWidth;
00056     int             m_nAllHeight;
00057     const TCHAR*    m_pszName;
00058 };
00059
00060 struct PRINTSETTING;
00061
00062
00063 /*-----------------------------------------------------------------------
00064 クラスの宣言
00065 -----------------------------------------------------------------------*/
00071 class CPrint
00072 {
00073 public:
00074     static const PAPER_INFO m_paperInfoArr[];
00075     static const int m_nPaperInfoArrNum;
00076
00077
00078     /*
00079     ||  static関数群
00080     */
00081     static void SettingInitialize( PRINTSETTING&, const TCHAR* settingName );
00082
00083     static TCHAR* GetPaperName( int , TCHAR* ); /* 用紙の名前を取得 */
00084     /* 用紙の幅、高さ */
00085     static BOOL GetPaperSize(
00086         int*        pnPaperAllWidth,
00087         int*        pnPaperAllHeight,
00088         MYDEVMODE*  pDEVMODE
00089     );
00090
00091 public:
00092     /*
00093     ||  Constructors
00094     */
00095     CPrint();
00096     ~CPrint();
00097
00098     /*
00099     ||  Attributes & Operations
00100     */
00101     BOOL GetDefaultPrinter( MYDEVMODE *pMYDEVMODE );        /* デフォルトのプリンタ情報を取得 */
00102     BOOL PrintDlg( PRINTDLG *pd, MYDEVMODE *pMYDEVMODE );               /* プリンタ情報を取得 */
00103     /* 印刷/プレビューに必要な情報を取得 */
00104     BOOL GetPrintMetrics(
00105         MYDEVMODE*  pMYDEVMODE,
00106         int*        pnPaperAllWidth,    /* 用紙幅 */
00107         int*        pnPaperAllHeight,   /* 用紙高さ */
00108         int*        pnPaperWidth,       /* 用紙印刷可能幅 */
00109         int*        pnPaperHeight,      /* 用紙印刷可能高さ */
00110         int*        pnPaperOffsetLeft,  /* 用紙余白左端 */
00111         int*        pnPaperOffsetTop,   /* 用紙余白上端 */
00112         TCHAR*      pszErrMsg           /* エラーメッセージ格納場所 */
00113     );
00114
00115
00116     /* 印刷 ジョブ開始 */
00117     BOOL PrintOpen(
00118         TCHAR*      pszJobName,
00119         MYDEVMODE*  pMYDEVMODE,
00120         HDC*        phdc,
00121         TCHAR*      pszErrMsg       /* エラーメッセージ格納場所 */
00122     );
00123     void PrintStartPage( HDC ); /* 印刷 ページ開始 */
00124     void PrintEndPage( HDC );   /* 印刷 ページ終了 */
00125     void PrintClose( HDC );     /* 印刷 ジョブ終了 */ // 2003.05.02 かろと 不要なhPrinter削除
00126
00127 protected:
00128     /*
00129     ||  実装ヘルパ関数
00130     */
00131     // DC作成する(処理をまとめた) 2003.05.02 かろと
00132     HDC CreateDC( MYDEVMODE *pMYDEVMODE, TCHAR *pszErrMsg);
00133
00134     static const PAPER_INFO* FindPaperInfo( int id );
00135 private:
00136     /*
00137     ||  メンバ変数
00138     */
00139     HGLOBAL m_hDevMode;
00140     HGLOBAL m_hDevNames;
00141 };
00142
00143
00144
00146 #endif /* _CPRINT_H_ */
00147
00148
00149 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrintPreview.cpp

sakura_core

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 <stdio.h>
#include <vector>
#include "CEditApp.h"
#include "util/window.h"
#include "util/shell.h"

CPrintPreview.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | MIN_PREVIEW_ZOOM 10
#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 の 43 行で定義されています。

参照元 CPrintPreview::OnPaint(), と CPrintPreview::OnSize().

#define COMPAT_BMP_SCALE 2

CPrintPreview.cpp の 44 行で定義されています。

参照元 CPrintPreview::OnSize().

#define LINE_RANGE_X 48

CPrintPreview.cpp の 37 行で定義されています。

#define LINE_RANGE_Y 24

CPrintPreview.cpp の 38 行で定義されています。

参照元 CPrintPreview::OnHScroll(), と CPrintPreview::OnVScroll().

#define MAX_PREVIEW_ZOOM 400

CPrintPreview.cpp の 35 行で定義されています。

参照元 CPrintPreview::OnPreviewZoom().

#define MIN_PREVIEW_ZOOM 10

CPrintPreview.cpp の 34 行で定義されています。

参照元 CPrintPreview::OnPreviewZoom().

#define PAGE_RANGE_X 160

CPrintPreview.cpp の 40 行で定義されています。

#define PAGE_RANGE_Y 160

CPrintPreview.cpp の 41 行で定義されています。

参照元 CPrintPreview::OnHScroll(), と CPrintPreview::OnVScroll().

Sakura-Editorに対してSat Nov 17 20:26:26 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrintPreview.cpp ソースファイル

sakura_core

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 <stdio.h>
00028 #include <vector>
00029 #include "CEditApp.h"
00030 #include "util/window.h"
00031 #include "util/shell.h"
00032 using namespace std;
00033
00034 #define MIN_PREVIEW_ZOOM 10
00035 #define MAX_PREVIEW_ZOOM 400
00036
00037 #define     LINE_RANGE_X    48      /* 水平方向の１回のスクロール幅 */
00038 #define     LINE_RANGE_Y    24      /* 垂直方向の１回のスクロール幅 */
00039
00040 #define     PAGE_RANGE_X    160     /* 水平方向の１回のページスクロール幅 */
00041 #define     PAGE_RANGE_Y    160     /* 垂直方向の１回のページスクロール幅 */
00042
00043 #define     COMPAT_BMP_BASE     1   /* COMPAT_BMP_SCALEピクセル幅を複写する画面ピクセル幅 */
00044 #define     COMPAT_BMP_SCALE    2   /* 互換BMPのCOMPAT_BMP_BASEに対する倍率(1以上の整数倍) */
00045
00046 CPrint CPrintPreview::m_cPrint;
00047
00052 CPrintPreview::CPrintPreview(CEditWnd* pParentWnd ) :
00053     m_nPreview_Zoom( 100 ),         /* 印刷プレビュー倍率 */
00054     m_nPreviewVScrollPos( 0 ),
00055     m_nPreviewHScrollPos( 0 ),
00056     m_nCurPageNum( 0 ),             /* 現在のページ */
00057     m_pParentWnd( pParentWnd ),
00058     m_hdcCompatDC( NULL ),          // 再描画用コンパチブルDC
00059     m_hbmpCompatBMP( NULL ),        // 再描画用メモリBMP
00060     m_hbmpCompatBMPOld( NULL ),     // 再描画用メモリBMP(OLD)
00061     m_nbmpCompatScale( COMPAT_BMP_BASE )
00062 {
00063     /* 印刷用のレイアウト情報の作成 */
00064     m_pLayoutMgr_Print = new CLayoutMgr;
00065
00066     /* 印刷プレビュー コントロール 作成 */
00067     CreatePrintPreviewControls();
00068
00069     // 再描画用コンパチブルDC
00070     HDC hdc = ::GetDC( pParentWnd->GetHwnd() );
00071     m_hdcCompatDC = ::CreateCompatibleDC( hdc );
00072     ::ReleaseDC( pParentWnd->GetHwnd(), hdc );
00073 }
00074
00075 CPrintPreview::~CPrintPreview()
00076 {
00077     /* 印刷プレビュー コントロール 破棄 */
00078     DestroyPrintPreviewControls();
00079
00080     /* 印刷用のレイアウト情報の削除 */
00081     delete m_pLayoutMgr_Print;
00082
00083     // 2006.08.17 Moca CompatDC削除。CEditWndから移設
00084     // 再描画用メモリBMP
00085     if( m_hbmpCompatBMP != NULL ){
00086         // 再描画用メモリBMP(OLD)
00087         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );
00088         ::DeleteObject( m_hbmpCompatBMP );
00089     }
00090     // 再描画用コンパチブルDC
00091     if( m_hdcCompatDC != NULL ){
00092         ::DeleteDC( m_hdcCompatDC );
00093     }
00094 }
00095
00101 LRESULT CPrintPreview::OnPaint(
00102     HWND            hwnd,   // handle of window
00103     UINT            uMsg,   // message identifier
00104     WPARAM          wParam, // first message parameter
00105     LPARAM          lParam  // second message parameter
00106 )
00107 {
00108     PAINTSTRUCT     ps;
00109     HDC             hdcOld = ::BeginPaint( hwnd, &ps );
00110     HDC             hdc = m_hdcCompatDC;    //  親ウィンドウのComatibleDCに描く
00111
00112     /* 印刷プレビュー 操作バー */
00113
00114     // BMPはあとで縮小コピーするので拡大して作画する必要あり
00115
00116     // クライアント領域全体をグレーで塗りつぶす
00117     {
00118         RECT bmpRc;
00119         ::GetClientRect( hwnd, &bmpRc );
00120         bmpRc.right  = (bmpRc.right  * m_nbmpCompatScale) / COMPAT_BMP_BASE;
00121         bmpRc.bottom = (bmpRc.bottom * m_nbmpCompatScale) / COMPAT_BMP_BASE;
00122         ::FillRect( hdc, &bmpRc, (HBRUSH)::GetStockObject( GRAY_BRUSH ) );
00123     }
00124
00125     // ツールバー高さ -> nToolBarHeight
00126     int nToolBarHeight = 0;
00127     if( NULL != m_hwndPrintPreviewBar ){
00128         RECT rc;
00129         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
00130         nToolBarHeight = rc.bottom - rc.top;
00131     }
00132
00133     // プリンタ情報の表示 -> IDD_PRINTPREVIEWBAR右上のSTATICへ
00134     TCHAR   szText[1024];
00135 	::DlgItem_SetText(
00136         m_hwndPrintPreviewBar,
00137         IDC_STATIC_PRNDEV,
00138         m_pPrintSetting->m_mdmDevMode.m_szPrinterDeviceName
00139     );
00140
00141     // 要素情報の表示 -> IDD_PRINTPREVIEWBAR右下のSTATICへ
00142     TCHAR   szPaperName[256];
00143     CPrint::GetPaperName( m_pPrintSetting->m_mdmDevMode.dmPaperSize , szPaperName );
00144     auto_sprintf(
00145         szText,
00146         _T("%ts  %ts"),
00147         szPaperName,
00148         (m_pPrintSetting->m_mdmDevMode.dmOrientation & DMORIENT_LANDSCAPE) ? _T("横") : _T("縦")
00149     );
00150 	::DlgItem_SetText( m_hwndPrintPreviewBar, IDC_STATIC_PAPER, szText );
00151
00152     // バックグラウンド モードを変更
00153     ::SetBkMode( hdc, TRANSPARENT );
00154
00155     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00156     //                        マッピング                           //
00157     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00158     // マッピングモードの変更
00159     int nMapModeOld =
00160     ::SetMapMode( hdc, MM_LOMETRIC );
00161     ::SetMapMode( hdc, MM_ANISOTROPIC );
00162
00163     // 出力倍率の変更
00164     SIZE            sz;
00165     ::GetWindowExtEx( hdc, &sz );
00166     int nCx = sz.cx;
00167     int nCy = sz.cy;
00168     nCx = (int)( ((long)nCx) * 100L / ((long)m_nPreview_Zoom) );
00169     nCy = (int)( ((long)nCy) * 100L / ((long)m_nPreview_Zoom) );
00170     // 作画時は、 COMPAT_BMP_SCALE/COMPAT_BMP_BASE倍の座標 (SetWindowExtExは逆なので反対になる)
00171     nCx = (nCx * COMPAT_BMP_BASE) / m_nbmpCompatScale;
00172     nCy = (nCy * COMPAT_BMP_BASE) / m_nbmpCompatScale;
00173     ::SetWindowExtEx( hdc, nCx, nCy, &sz );
00174
00175
00176     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00177     //                         フォント                            //
00178     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00179     // 印刷用半角フォントを作成 -> hFontHan
00180     m_lfPreviewHan.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
00181     m_lfPreviewHan.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
00182     _tcscpy( m_lfPreviewHan.lfFaceName, m_pPrintSetting->m_szPrintFontFaceHan );
00183     HFONT   hFontHan = CreateFontIndirect( &m_lfPreviewHan );
00184
00185     // 印刷用全角フォントを作成 -> hFontZen
00186     m_lfPreviewZen.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
00187     m_lfPreviewZen.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
00188     _tcscpy( m_lfPreviewZen.lfFaceName, m_pPrintSetting->m_szPrintFontFaceZen );
00189     HFONT   hFontZen = CreateFontIndirect( &m_lfPreviewZen );
00190
00191     // 印刷用半角フォントに設定し、以前のフォントを保持
00192     HFONT   hFontOld = (HFONT)::SelectObject( hdc, hFontHan );
00193
00194
00195     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00196     //                           原点                              //
00197     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00198     // 操作ウィンドウの下に物理座標原点を移動
00199     POINT poViewPortOld;
00200     ::SetViewportOrgEx(
00201         hdc,
00202         ((-1 * m_nPreviewHScrollPos) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00203         ((nToolBarHeight + m_nPreviewVScrollPos) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00204         &poViewPortOld
00205     );
00206
00207
00208     // 以下 0.1mm座標でレンダリング
00209
00210     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00211     //                           背景                              //
00212     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00213     // 用紙の描画
00214     int nDirectY = -1;  //  Y座標の下をプラス方向にするため？
00215     ::Rectangle( hdc,
00216         m_nPreview_ViewMarginLeft,
00217         nDirectY * ( m_nPreview_ViewMarginTop ),
00218         m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth + 1,
00219         nDirectY * (m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight + 1 )
00220     );
00221
00222     // マージン枠の表示
00223     HPEN            hPen, hPenOld;
00224     hPen = ::CreatePen( PS_SOLID, 0, RGB(128,128,128) ); // 2006.08.14 Moca 127を128に変更
00225     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00226     ::Rectangle( hdc,
00227         m_nPreview_ViewMarginLeft + m_pPrintSetting->m_nPrintMarginLX,
00228         nDirectY * ( m_nPreview_ViewMarginTop + m_pPrintSetting->m_nPrintMarginTY ),
00229         m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth - m_pPrintSetting->m_nPrintMarginRX + 1,
00230         nDirectY * ( m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight - m_pPrintSetting->m_nPrintMarginBY )
00231     );
00232     ::SelectObject( hdc, hPenOld );
00233     ::DeleteObject( hPen );
00234
00235     ::SetTextColor( hdc, RGB( 0, 0, 0 ) );
00236
00237     RECT cRect; /* 紙の大きさをあらわすRECT */
00238     cRect.left   = m_nPreview_ViewMarginLeft +                             m_pPrintSetting->m_nPrintMarginLX + 5;
00239     cRect.right  = m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth - (m_pPrintSetting->m_nPrintMarginRX + 5);
00240     cRect.top    = nDirectY * ( m_nPreview_ViewMarginTop +                              m_pPrintSetting->m_nPrintMarginTY + 5);
00241     cRect.bottom = nDirectY * ( m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight - (m_pPrintSetting->m_nPrintMarginBY + 5));
00242
00243
00244     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00245     //                         テキスト                            //
00246     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00247
00248     // ヘッダ
00249     DrawHeader( hdc, cRect, hFontZen );
00250
00251     // 印刷/印刷プレビュー ページテキストの描画
00252     DrawPageText(
00253         hdc,
00254         m_nPreview_ViewMarginLeft + m_pPrintSetting->m_nPrintMarginLX,
00255         m_nPreview_ViewMarginTop  + m_pPrintSetting->m_nPrintMarginTY + 2 * ( m_pPrintSetting->m_nPrintFontHeight + (m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100) ),
00256         m_nCurPageNum,
00257         hFontZen,
00258         NULL
00259     );
00260
00261     // フッタ
00262     DrawFooter( hdc, cRect, hFontZen );
00263
00264
00265     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00266     //                          後始末                             //
00267     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00268
00269     // 印刷フォント解除 & 破棄
00270     ::SelectObject( hdc, hFontOld );
00271     ::DeleteObject( hFontZen );
00272     ::DeleteObject( hFontHan );
00273
00274     // マッピングモードの変更
00275     ::SetMapMode( hdc, nMapModeOld );
00276
00277     // 物理座標原点をもとに戻す
00278     ::SetViewportOrgEx( hdc, poViewPortOld.x, poViewPortOld.y, NULL );
00279
00280
00281     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00282     //                       実画面へ転送                          //
00283     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00284     // メモリＤＣを利用した再描画の場合はメモリＤＣに描画した内容を画面へコピーする
00285     RECT rc;
00286     rc = ps.rcPaint;
00287     ::DPtoLP( hdc, (POINT*)&rc, 2 );
00288     if( 1 == (m_nbmpCompatScale / COMPAT_BMP_BASE) ){
00289         ::BitBlt(
00290             hdcOld,
00291             ps.rcPaint.left,
00292             ps.rcPaint.top,
00293             ps.rcPaint.right - ps.rcPaint.left,
00294             ps.rcPaint.bottom - ps.rcPaint.top,
00295             hdc,
00296             ps.rcPaint.left,
00297             ps.rcPaint.top,
00298             SRCCOPY
00299         );
00300     }
00301     else{
00302         int stretchModeOld = SetStretchBltMode( hdcOld, STRETCH_HALFTONE );
00303         ::StretchBlt(
00304             hdcOld,
00305             ps.rcPaint.left,
00306             ps.rcPaint.top,
00307             ps.rcPaint.right - ps.rcPaint.left,
00308             ps.rcPaint.bottom - ps.rcPaint.top,
00309             hdc,
00310             (ps.rcPaint.left * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00311             (ps.rcPaint.top * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00312             ((ps.rcPaint.right - ps.rcPaint.left) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00313             ((ps.rcPaint.bottom - ps.rcPaint.top) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00314             SRCCOPY
00315         );
00316         SetStretchBltMode( hdcOld, stretchModeOld );
00317     }
00318     ::EndPaint( hwnd, &ps );
00319     return 0L;
00320 }
00321
00322 LRESULT CPrintPreview::OnSize( WPARAM wParam, LPARAM lParam )
00323 {
00324     int cx = LOWORD( lParam );
00325     int cy = HIWORD( lParam );
00326
00327     /* 印刷プレビュー 操作バー */
00328     int nToolBarHeight = 0;
00329     if( NULL != m_hwndPrintPreviewBar ){
00330         RECT            rc;
00331         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
00332         nToolBarHeight = rc.bottom - rc.top;
00333         ::MoveWindow( m_hwndPrintPreviewBar, 0, 0, cx, nToolBarHeight, TRUE );
00334     }
00335
00336     /* 印刷プレビュー 垂直スクロールバーウィンドウ */
00337     int nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00338     int nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
00339     if( NULL != m_hwndVScrollBar ){
00340         ::MoveWindow( m_hwndVScrollBar, cx - nCxVScroll, nToolBarHeight, nCxVScroll, cy - nCyVScroll - nToolBarHeight, TRUE );
00341     }
00342
00343     /* 印刷プレビュー 水平スクロールバーウィンドウ */
00344     int nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
00345     int nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00346     if( NULL != m_hwndHScrollBar ){
00347         ::MoveWindow( m_hwndHScrollBar, 0, cy - nCyHScroll, cx - nCxVScroll, nCyHScroll, TRUE );
00348     }
00349
00350     /* 印刷プレビュー サイズボックスウィンドウ */
00351     if( NULL != m_hwndSizeBox){
00352         ::MoveWindow( m_hwndSizeBox, cx - nCxVScroll, cy - nCyHScroll, nCxHScroll, nCyVScroll, TRUE );
00353     }
00354
00355     HDC         hdc = ::GetDC( m_pParentWnd->GetHwnd() );
00356     int nMapModeOld = ::SetMapMode( hdc, MM_LOMETRIC );
00357     ::SetMapMode( hdc, MM_ANISOTROPIC );
00358
00359     /* 出力倍率の変更 */
00360     SIZE        sz;
00361     ::GetWindowExtEx( hdc, &sz );
00362     int nCx = sz.cx;
00363     int nCy = sz.cy;
00364     nCx = (int)( ((long)nCx) * 100L / ((long)m_nPreview_Zoom) );
00365     nCy = (int)( ((long)nCy) * 100L / ((long)m_nPreview_Zoom) );
00366     ::SetWindowExtEx( hdc, nCx, nCy, &sz );
00367
00368     /* ビューのサイズ */
00369     POINT       po;
00370     po.x = m_nPreview_PaperAllWidth + m_nPreview_ViewMarginLeft * 2;
00371     po.y = m_nPreview_PaperAllHeight + m_nPreview_ViewMarginTop * 2;
00372     ::LPtoDP( hdc, &po, 1 );
00373
00374     /* 再描画用メモリＢＭＰ */
00375     if( m_hbmpCompatBMP != NULL ){
00376         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );    /* 再描画用メモリＢＭＰ(OLD) */
00377         ::DeleteObject( m_hbmpCompatBMP );
00378     }
00379     // 2007.02.11 Moca プレビューを滑らかにする
00380     COsVersionInfo osVer;
00381     // Win9xでは 巨大なBMPは作成できないことと
00382     // StretchBltでSTRETCH_HALFTONEが未サポートであるので Win2K 以上のみで有効にする。
00383     if( BST_CHECKED == ::IsDlgButtonChecked( m_hwndPrintPreviewBar, IDC_CHECK_ANTIALIAS ) &&
00384             osVer.IsWin2000_or_later() ){
00385         m_nbmpCompatScale = COMPAT_BMP_SCALE;
00386     }else{
00387         // Win9x: BASE = SCALE で 1:1
00388         m_nbmpCompatScale = COMPAT_BMP_BASE;
00389     }
00390     m_hbmpCompatBMP = ::CreateCompatibleBitmap( hdc, (cx * m_nbmpCompatScale + COMPAT_BMP_BASE - 1) / COMPAT_BMP_BASE,
00391         (cy * m_nbmpCompatScale + COMPAT_BMP_BASE - 1) / COMPAT_BMP_BASE);
00392     m_hbmpCompatBMPOld = (HBITMAP)::SelectObject( m_hdcCompatDC, m_hbmpCompatBMP );
00393
00394     ::SetMapMode( hdc, nMapModeOld );
00395
00396     ::ReleaseDC( m_pParentWnd->GetHwnd(), hdc );
00397
00398     /* 印刷プレビュー：ビュー幅(ピクセル) */
00399     m_nPreview_ViewWidth = abs( po.x );
00400
00401     /* 印刷プレビュー：ビュー高さ(ピクセル) */
00402     m_nPreview_ViewHeight = abs( po.y );
00403
00404     /* 印刷プレビュー スクロールバー初期化 */
00405     InitPreviewScrollBar();
00406
00407     /* 印刷プレビュー スクロールバーの初期化 */
00408
00409     m_pParentWnd->SetDragPosOrg(CMyPoint(0,0));
00410     m_pParentWnd->SetDragMode(true);
00411     OnMouseMove( 0, MAKELONG( 0, 0 ) );
00412     m_pParentWnd->SetDragMode(false);
00413     //  SizeBox問題テスト
00414     if( NULL != m_hwndSizeBox ){
00415         if( wParam == SIZE_MAXIMIZED ){
00416             ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00417         }else
00418         if( wParam == SIZE_RESTORED ){
00419             if( ::IsZoomed( m_pParentWnd->GetHwnd() ) ){
00420                 ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00421             }else{
00422                 ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00423             }
00424         }else{
00425             ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00426         }
00427     }
00428     ::InvalidateRect( m_pParentWnd->GetHwnd(), NULL, TRUE );
00429     return 0L;
00430 }
00431
00435 LRESULT CPrintPreview::OnVScroll( WPARAM wParam, LPARAM lParam )
00436 {
00437     int         nPreviewVScrollPos;
00438     SCROLLINFO  si;
00439     int         nNowPos;
00440     int         nMove;
00441     int         nNewPos;
00442     int         nScrollCode;
00443     int         nPos;
00444     HWND        hwndScrollBar;
00445     nScrollCode = (int) LOWORD(wParam);
00446     nPos = (int) HIWORD(wParam);
00447     hwndScrollBar = (HWND) lParam;
00448     si.cbSize = sizeof( si );
00449     si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00450     ::GetScrollInfo( hwndScrollBar, SB_CTL, &si );
00451     nNowPos = ::GetScrollPos( hwndScrollBar, SB_CTL );
00452     nNewPos = 0;
00453     nMove = 0;
00454     switch( nScrollCode ){
00455     case SB_LINEUP:
00456         nMove = -1 * LINE_RANGE_Y;
00457         break;
00458     case SB_LINEDOWN:
00459         nMove = LINE_RANGE_Y;
00460         break;
00461     case SB_PAGEUP:
00462         nMove = -1 * PAGE_RANGE_Y;
00463         break;
00464     case SB_PAGEDOWN:
00465         nMove = PAGE_RANGE_Y;
00466         break;
00467     case SB_THUMBPOSITION:
00468     case SB_THUMBTRACK:
00469         nMove = nPos - nNowPos;
00470         break;
00471     // 2006.08.14 Moca SB_TOP, SB_BOTTOMへの対応
00472     case SB_TOP:
00473         nMove = -1 * nNowPos;
00474         break;
00475     case SB_BOTTOM:
00476         nMove = si.nMax - nNowPos;
00477         break;
00478     default:
00479         return 0;
00480     }
00481     nNewPos = nNowPos + nMove;
00482     if( nNewPos < 0 ){
00483         nNewPos = 0;
00484     }else
00485     if( nNewPos > (int)(si.nMax - si.nPage + 1) ){
00486         nNewPos = (int)(si.nMax - si.nPage + 1);
00487     }
00488     nMove = nNowPos - nNewPos;
00489     nPreviewVScrollPos = -1 * nNewPos;
00490     if( nPreviewVScrollPos != m_nPreviewVScrollPos ){
00491         ::SetScrollPos( hwndScrollBar, SB_CTL, nNewPos, TRUE);
00492         m_nPreviewVScrollPos = nPreviewVScrollPos;
00493         /* 描画 */
00494         ::ScrollWindowEx( m_pParentWnd->GetHwnd(), 0, nMove, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00495     }
00496     return 0;
00497 }
00498
00502 LRESULT CPrintPreview::OnHScroll( WPARAM wParam, LPARAM lParam )
00503 {
00504     int         nPreviewHScrollPos;
00505     SCROLLINFO  si;
00506     int         nNowPos;
00507     int         nMove;
00508     int         nNewPos;
00509     int         nScrollCode;
00510     int         nPos;
00511     HWND        hwndScrollBar;
00512     nScrollCode = (int) LOWORD(wParam);
00513     nPos = (int) HIWORD(wParam);
00514     hwndScrollBar = (HWND) lParam;
00515     si.cbSize = sizeof( si );
00516     si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00517     ::GetScrollInfo( hwndScrollBar, SB_CTL, &si );
00518     nNowPos = ::GetScrollPos( hwndScrollBar, SB_CTL );
00519     nMove = 0;
00520     switch( nScrollCode ){
00521     case SB_LINEUP:
00522         nMove = -1 * LINE_RANGE_Y;
00523         break;
00524     case SB_LINEDOWN:
00525         nMove = LINE_RANGE_Y;
00526         break;
00527     case SB_PAGEUP:
00528         nMove = -1 * PAGE_RANGE_Y;
00529         break;
00530     case SB_PAGEDOWN:
00531         nMove = PAGE_RANGE_Y;
00532         break;
00533     case SB_THUMBPOSITION:
00534     case SB_THUMBTRACK:
00535         nMove = nPos - nNowPos;
00536         break;
00537     // 2006.08.14 Moca SB_LEFT, SB_RIGHTへの対応
00538     case SB_LEFT:
00539         nMove = -1 * nNowPos;
00540         break;
00541     case SB_RIGHT:
00542         nMove = si.nMax - nNowPos;
00543     default:
00544         return 0;
00545     }
00546     nNewPos = nNowPos + nMove;
00547     if( nNewPos < 0 ){
00548         nNewPos = 0;
00549     }else
00550     if( nNewPos > (int)(si.nMax - si.nPage + 1) ){
00551         nNewPos = (int)(si.nMax - si.nPage + 1);
00552     }
00553     nMove = nNowPos - nNewPos;
00554     nPreviewHScrollPos = nNewPos;
00555     if( nPreviewHScrollPos != m_nPreviewHScrollPos ){
00556         ::SetScrollPos( hwndScrollBar, SB_CTL, nNewPos, TRUE);
00557         m_nPreviewHScrollPos = nPreviewHScrollPos;
00558         /* 描画 */
00559         ::ScrollWindowEx( m_pParentWnd->GetHwnd(), nMove, 0, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00560     }
00561     return 0;
00562 }
00563
00564 LRESULT CPrintPreview::OnMouseMove( WPARAM wParam, LPARAM lParam )
00565 {
00566     /* 手カーソル */
00567     ::SetCursor( ::LoadCursor( CEditApp::Instance()->GetAppInstance(), MAKEINTRESOURCE( IDC_CURSOR_HAND ) ) );
00568     if( !m_pParentWnd->GetDragMode() ){
00569         return 0;
00570     }
00571 //  WPARAM      fwKeys = wParam;            // key flags
00572     int         xPos = LOWORD( lParam );    // horizontal position of cursor
00573     int         yPos = HIWORD( lParam );    // vertical position of cursor
00574     RECT        rc;
00575     GetClientRect( m_pParentWnd->GetHwnd(), &rc );
00576     POINT       po;
00577     po.x = xPos;
00578     po.y = yPos;
00579     if( !PtInRect( &rc, po ) ){ //  プレビュー内かチェック。
00580         return 0;
00581     }
00582
00583     //  Y軸
00584     SCROLLINFO  siV;
00585     siV.cbSize = sizeof( siV );
00586     siV.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00587     GetScrollInfo( m_hwndVScrollBar, SB_CTL, &siV );
00588     int         nMoveY;
00589     if( m_SCROLLBAR_VERT ){
00590         int     nNowPosY = GetScrollPos( m_hwndVScrollBar, SB_CTL );
00591         nMoveY = m_pParentWnd->GetDragPosOrg().y - yPos;
00592
00593         int     nNewPosY = nNowPosY + nMoveY;
00594         if( nNewPosY < 0 ){
00595             nNewPosY = 0;
00596         }else
00597         if( nNewPosY > (int)(siV.nMax - siV.nPage + 1) ){
00598             nNewPosY = (int)(siV.nMax - siV.nPage + 1);
00599         }
00600         nMoveY = nNowPosY - nNewPosY;
00601         SetScrollPos( m_hwndVScrollBar, SB_CTL, nNewPosY, TRUE );
00602         m_nPreviewVScrollPos = -1 * nNewPosY;
00603     }else{
00604         nMoveY = 0;
00605     }
00606
00607     //  X軸
00608     SCROLLINFO  siH;
00609     siH.cbSize = sizeof( siH );
00610     siH.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00611     GetScrollInfo( m_hwndHScrollBar, SB_CTL, &siH );
00612     int         nMoveX;
00613     if( m_SCROLLBAR_HORZ ){
00614         int     nNowPosX = GetScrollPos( m_hwndHScrollBar, SB_CTL );
00615         nMoveX = m_pParentWnd->GetDragPosOrg().x - xPos;
00616
00617         int     nNewPosX = nNowPosX + nMoveX;
00618         if( nNewPosX < 0 ){
00619             nNewPosX = 0;
00620         }else
00621         if( nNewPosX > (int)(siH.nMax - siH.nPage + 1) ){
00622             nNewPosX = (int)(siH.nMax - siH.nPage + 1);
00623         }
00624         nMoveX = nNowPosX - nNewPosX;
00625         SetScrollPos( m_hwndHScrollBar, SB_CTL, nNewPosX, TRUE );
00626         m_nPreviewHScrollPos = nNewPosX;
00627     }else{
00628         nMoveX = 0;
00629     }
00630
00631     m_pParentWnd->SetDragPosOrg(CMyPoint(xPos,yPos));
00632     /* 描画 */
00633     ScrollWindowEx( m_pParentWnd->GetHwnd(), nMoveX, nMoveY, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00634     return 0;
00635 }
00636
00637 LRESULT CPrintPreview::OnMouseWheel( WPARAM wParam, LPARAM lParam )
00638 {
00639 //  WORD    fwKeys = LOWORD(wParam);            // key flags
00640     short   zDelta = (short) HIWORD(wParam);    // wheel rotation
00641 //  short   xPos = (short) LOWORD(lParam);      // horizontal position of pointer
00642 //  short   yPos = (short) HIWORD(lParam);      // vertical position of pointer
00643
00644     int     nScrollCode;
00645     if( 0 < zDelta ){
00646         nScrollCode = SB_LINEUP;
00647     }else{
00648         nScrollCode = SB_LINEDOWN;
00649     }
00650
00651     int     i;
00652     for( i = 0; i < 3; ++i ){
00653         /* 印刷プレビュー 垂直スクロールバーメッセージ処理 WM_VSCROLL */
00654 		::PostMessageAny( m_pParentWnd->GetHwnd(), WM_VSCROLL, MAKELONG( nScrollCode, 0 ), (LPARAM)m_hwndVScrollBar );
00655
00656         /* 処理中のユーザー操作を可能にする */
00657         if( !::BlockingHook( NULL ) ){
00658             return -1;
00659         }
00660     }
00661     return 0;
00662 }
00663
00664 void CPrintPreview::OnChangePrintSetting( void )
00665 {
00666     HDC     hdc = ::GetDC( m_pParentWnd->GetHwnd() );
00667     ::SetMapMode( hdc, MM_LOMETRIC ); //MM_HIMETRIC それぞれの論理単位は、0.01 mm にマップされます
00668     ::SetMapMode( hdc, MM_ANISOTROPIC );
00669
00670     ::EnumFontFamilies(
00671         hdc,
00672         NULL,
00673         (FONTENUMPROC)CPrintPreview::MyEnumFontFamProc,
00674         (LPARAM)this
00675     );
00676
00677     /* 印刷プレビュー表示情報 */
00678     m_nPreview_LineNumberColmns = 0;    /* 行番号エリアの幅(文字数) */
00679
00680     /* 行番号を表示するか */
00681     if( m_pPrintSetting->m_bPrintLineNumber ){
00682         /* 行番号表示に必要な桁数を計算 */
00683         m_nPreview_LineNumberColmns = m_pParentWnd->m_pcEditViewArr[0]->GetTextArea().DetectWidthOfLineNumberArea_calculate();
00684     }
00685     /* 現在のページ設定の、用紙サイズと用紙方向を反映させる */
00686     m_pPrintSetting->m_mdmDevMode.dmPaperSize = m_pPrintSetting->m_nPrintPaperSize;
00687     m_pPrintSetting->m_mdmDevMode.dmOrientation = m_pPrintSetting->m_nPrintPaperOrientation;
00688     // 用紙サイズ、用紙方向は変更したのでビットを立てる
00689     m_pPrintSetting->m_mdmDevMode.dmFields |= ( DM_ORIENTATION | DM_PAPERSIZE );
00690     // 用紙の長さ、幅は決まっていないので、ビットを下ろす
00691     m_pPrintSetting->m_mdmDevMode.dmFields &= (~DM_PAPERLENGTH );
00692     m_pPrintSetting->m_mdmDevMode.dmFields &= (~DM_PAPERWIDTH);
00693
00694     /* 印刷/プレビューに必要な情報を取得 */
00695     TCHAR   szErrMsg[1024];
00696     if( FALSE == m_cPrint.GetPrintMetrics(
00697         &m_pPrintSetting->m_mdmDevMode, /* プリンタ設定 DEVMODE用*/
00698         &m_nPreview_PaperAllWidth,      /* 用紙幅 */
00699         &m_nPreview_PaperAllHeight,     /* 用紙高さ */
00700         &m_nPreview_PaperWidth,         /* 用紙印刷有効幅 */
00701         &m_nPreview_PaperHeight,        /* 用紙印刷有効高さ */
00702         &m_nPreview_PaperOffsetLeft,    /* 印刷可能位置左端 */
00703         &m_nPreview_PaperOffsetTop,     /* 印刷可能位置上端 */
00704         szErrMsg                        /* エラーメッセージ格納場所 */
00705     ) ){
00706         /* エラーの場合、A4縦(210mm×297mm)で初期化 */
00707         m_nPreview_PaperAllWidth = 210 * 10;    /* 用紙幅 */
00708         m_nPreview_PaperAllHeight = 297 * 10;   /* 用紙高さ */
00709         m_nPreview_PaperWidth = 210 * 10;       /* 用紙印刷有効幅 */
00710         m_nPreview_PaperHeight = 297 * 10;      /* 用紙印刷有効高さ */
00711         m_nPreview_PaperOffsetLeft = 0;         /* 印刷可能位置左端 */
00712         m_nPreview_PaperOffsetTop = 0;          /* 印刷可能位置上端 */
00713         // DEVMODE構造体もA4縦で初期化 2003.07.03 かろと
00714         m_pPrintSetting->m_mdmDevMode.dmPaperSize = DMPAPER_A4;
00715         m_pPrintSetting->m_mdmDevMode.dmOrientation = DMORIENT_PORTRAIT;
00716         m_pPrintSetting->m_mdmDevMode.dmPaperLength = m_nPreview_PaperHeight;
00717         m_pPrintSetting->m_mdmDevMode.dmPaperWidth = m_nPreview_PaperWidth;
00718         m_pPrintSetting->m_mdmDevMode.dmFields |= ( DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00719     }else{
00720         if( m_pPrintSetting->m_nPrintPaperSize != m_pPrintSetting->m_mdmDevMode.dmPaperSize ){
00721             TCHAR   szPaperNameOld[256];
00722             TCHAR   szPaperNameNew[256];
00723             /* 用紙の名前を取得 */
00724             CPrint::GetPaperName( m_pPrintSetting->m_nPrintPaperSize , szPaperNameOld );
00725             CPrint::GetPaperName( m_pPrintSetting->m_mdmDevMode.dmPaperSize , szPaperNameNew );
00726
00727 			::MYMESSAGEBOX_A(
00728                 m_pParentWnd->GetHwnd(),
00729                 MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
00730                 GSTR_APPNAME_A,
00731                 "現在のプリンタ %ts では、\n指定された用紙 %ts は使用できません。\n"
00732                 "利用可能な用紙 %ts に変更しました。",
00733                 m_pPrintSetting->m_mdmDevMode.m_szPrinterDeviceName,
00734                 szPaperNameOld,
00735                 szPaperNameNew
00736             );
00737         }
00738     }
00739     /* 現在のページ設定の、用紙サイズと用紙方向を反映させる(エラーでA4縦になった場合も考慮してif文の外へ移動 2003.07.03 かろと) */
00740     m_pPrintSetting->m_nPrintPaperSize = m_pPrintSetting->m_mdmDevMode.dmPaperSize;
00741     m_pPrintSetting->m_nPrintPaperOrientation = m_pPrintSetting->m_mdmDevMode.dmOrientation;    // 用紙方向の反映忘れを修正 2003/07/03 かろと
00742
00743     m_nPreview_ViewMarginLeft = 8 * 10;     /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00744     m_nPreview_ViewMarginTop = 8 * 10;      /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00745
00746     m_bPreview_EnableColms =
00747         CLayoutInt(
00748             ( m_nPreview_PaperAllWidth - m_pPrintSetting->m_nPrintMarginLX - m_pPrintSetting->m_nPrintMarginRX
00749             - ( m_pPrintSetting->m_nPrintDansuu - 1 ) * m_pPrintSetting->m_nPrintDanSpace
00750             - ( m_pPrintSetting->m_nPrintDansuu ) * ( ( m_nPreview_LineNumberColmns /*+ (m_nPreview_LineNumberColmns?1:0)*/ ) * m_pPrintSetting->m_nPrintFontWidth )
00751             ) / m_pPrintSetting->m_nPrintFontWidth / m_pPrintSetting->m_nPrintDansuu    /* 印字可能桁数/ページ */
00752         );
00753     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;    /* 印字可能行数/ページ */
00754
00755     /* 印刷用のレイアウト管理情報の初期化 */
00756     m_pLayoutMgr_Print->Create( &m_pParentWnd->GetDocument(), &m_pParentWnd->GetDocument().m_cDocLineMgr );
00757
00758     /* 印刷用のレイアウト情報の変更 */
00759 //  Types& ref = m_pParentWnd->GetDocument().GetDocumentAttribute();
00760     Types ref = m_pParentWnd->GetDocument().GetDocumentAttribute();
00761     ref.m_nMaxLineKetas =       m_bPreview_EnableColms;
00762     ref.m_bWordWrap =           m_pPrintSetting->m_bPrintWordWrap;  /* 英文ワードラップをする */
00763     //  Sep. 23, 2002 genta LayoutMgrの値を使う
00764     ref.m_nTabSpace =           m_pParentWnd->GetDocument().m_cLayoutMgr.GetTabSpace();
00765
00766     //@@@ 2002.09.22 YAZAKI
00767     ref.m_cLineComment.CopyTo(0, L"", -1);  /* 行コメントデリミタ */
00768     ref.m_cLineComment.CopyTo(1, L"", -1);  /* 行コメントデリミタ2 */
00769     ref.m_cLineComment.CopyTo(2, L"", -1);  /* 行コメントデリミタ3 */  //Jun. 01, 2001 JEPRO 追加
00770     ref.m_cBlockComment.CopyTo(0, L"", L"");    /* ブロックコメントデリミタ */
00771     ref.m_cBlockComment.CopyTo(1, L"", L"");    /* ブロックコメントデリミタ2 */
00772
00773     ref.m_nStringType =         0;      /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
00774     ref.m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp = FALSE;
00775     ref.m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
00776     ref.m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
00777     ref.m_bKinsokuHead = m_pPrintSetting->m_bPrintKinsokuHead,  /* 行頭禁則する */    //@@@ 2002.04.08 MIK
00778     ref.m_bKinsokuTail = m_pPrintSetting->m_bPrintKinsokuTail,  /* 行末禁則する */    //@@@ 2002.04.08 MIK
00779     ref.m_bKinsokuRet = m_pPrintSetting->m_bPrintKinsokuRet,    /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
00780     ref.m_bKinsokuKuto = m_pPrintSetting->m_bPrintKinsokuKuto,  /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
00781     m_pLayoutMgr_Print->SetLayoutInfo(
00782         TRUE,
00783         NULL,
00784         ref
00785     );
00786     m_nAllPageNum = (Int)m_pLayoutMgr_Print->GetLineCount() / ( m_bPreview_EnableLines * m_pPrintSetting->m_nPrintDansuu );     /* 全ページ数 */
00787     if( 0 < (Int)m_pLayoutMgr_Print->GetLineCount() % ( m_bPreview_EnableLines * m_pPrintSetting->m_nPrintDansuu ) ){
00788         m_nAllPageNum++;
00789     }
00790     if( m_nAllPageNum <= m_nCurPageNum ){   /* 現在のページ */
00791         m_nCurPageNum = 0;
00792     }
00793
00794     /* WM_SIZE 処理 */
00795     RECT    rc;
00796     ::GetClientRect( m_pParentWnd->GetHwnd(), &rc );
00797     OnSize( SIZE_RESTORED, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
00798     ::ReleaseDC( m_pParentWnd->GetHwnd(), hdc );
00799     /* プレビュー ページ指定 */
00800     OnPreviewGoPage( m_nCurPageNum );
00801     return;
00802 }
00803
00808 void CPrintPreview::OnPreviewGoDirectPage( void )
00809 {
00810     const int  INPUT_PAGE_NUM_LEN = 12;
00811
00812     CDlgInput1 cDlgInputPage;
00813     TCHAR      szMessage[512];
00814     TCHAR      szPageNum[INPUT_PAGE_NUM_LEN];
00815
00816     auto_sprintf( szMessage, _T("表示するページ番号を指定してください。(1 - %d)") , m_nAllPageNum );
00817     auto_sprintf( szPageNum, _T("%d"), m_nCurPageNum + 1 );
00818
00819     BOOL bDlgInputPageResult=cDlgInputPage.DoModal(
00820         CEditApp::Instance()->GetAppInstance(),
00821         m_hwndPrintPreviewBar,
00822         _T("プレビューページ指定"),
00823         szMessage,
00824         INPUT_PAGE_NUM_LEN,
00825         szPageNum
00826     );
00827     if( FALSE != bDlgInputPageResult ){
00828         int i;
00829         int nPageNumLen = _tcslen( szPageNum );
00830         for( i = 0; i < nPageNumLen;  i++ ){
00831             if( !(_T('0') <= szPageNum[i] &&  szPageNum[i] <= _T('9')) ){
00832                 return;
00833             }
00834         }
00835         int nPage = _ttoi( szPageNum );
00836         OnPreviewGoPage( nPage - 1 );
00837     }
00838 }
00839
00840 void CPrintPreview::OnPreviewGoPage( int nPage )
00841 {
00842     if( m_nAllPageNum <= nPage ){   /* 現在のページ */
00843         nPage = m_nAllPageNum - 1;
00844     }
00845     if( 0 > nPage ){                /* 現在のページ */
00846         nPage = 0;
00847     }
00848     m_nCurPageNum = nPage;
00849
00850     if( 0 == m_nCurPageNum ){
00851         //  最初のページのときは、前のページボタンをオフ。
00852         //  Jul. 18, 2001 genta FocusのあるWindowをDisableにすると操作できなくなるのを回避
00853         ::SetFocus( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ));
00854         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_PREVPAGE ), FALSE );
00855     }else{
00856         //  前のページボタンをオン
00857         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_PREVPAGE ), TRUE );
00858     }
00859
00860     if( m_nAllPageNum <= m_nCurPageNum + 1 ){
00861         //  最後のページのときは、次のページボタンをオフ。
00862         //  Jul. 18, 2001 genta FocusのあるWindowをDisableにすると操作できなくなるのを回避
00863         //  Mar. 9, 2003 genta 1ページしか無いときは「前へ」ボタンもDisableされているので、
00864         //  最後のページまで達したら「戻る」にフォーカスを移すように
00865         ::SetFocus( ::GetDlgItem( m_hwndPrintPreviewBar, IDCANCEL ));
00866         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ), FALSE );
00867     }else{
00868         //  次のページボタンをオン。
00869         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ), TRUE );
00870     }
00871
00872     wchar_t szEdit[1024];
00873     auto_sprintf( szEdit, L"%d/%d頁", m_nCurPageNum + 1, m_nAllPageNum );
00874 	::DlgItem_SetText( m_hwndPrintPreviewBar, IDC_STATIC_PAGENUM, szEdit );
00875
00876     auto_sprintf( szEdit, L"%d %%", m_nPreview_Zoom );
00877 	::DlgItem_SetText( m_hwndPrintPreviewBar, IDC_STATIC_ZOOM, szEdit );
00878
00879     ::InvalidateRect( m_pParentWnd->GetHwnd(), NULL, TRUE );
00880     return;
00881 }
00882
00883 void CPrintPreview::OnPreviewZoom( BOOL bZoomUp )
00884 {
00885     if( bZoomUp ){
00886         m_nPreview_Zoom += 10;  /* 印刷プレビュー倍率 */
00887         if( MAX_PREVIEW_ZOOM < m_nPreview_Zoom ){
00888             m_nPreview_Zoom = MAX_PREVIEW_ZOOM;
00889         }
00890     }else{
00891         /* スクロール位置を調整 */
00892         m_nPreviewVScrollPos = 0;
00893         m_nPreviewHScrollPos = 0;
00894
00895         m_nPreview_Zoom -= 10;  /* 印刷プレビュー倍率 */
00896         if( MIN_PREVIEW_ZOOM > m_nPreview_Zoom ){
00897             m_nPreview_Zoom = MIN_PREVIEW_ZOOM;
00898         }
00899     }
00900
00901     //  縮小ボタンのON/OFF
00902     if( MIN_PREVIEW_ZOOM == m_nPreview_Zoom ){
00903         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMDOWN ), FALSE );
00904     }else{
00905         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMDOWN ), TRUE );
00906     }
00907     //  拡大ボタンのON/OFF
00908     if( MAX_PREVIEW_ZOOM == m_nPreview_Zoom ){
00909         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMUP ), FALSE );
00910     }else{
00911         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMUP ), TRUE );
00912     }
00913
00914     wchar_t szEdit[1024];
00915     auto_sprintf( szEdit, L"%d %%", m_nPreview_Zoom );
00916 	::DlgItem_SetText( m_hwndPrintPreviewBar, IDC_STATIC_ZOOM, szEdit );
00917
00918     /* WM_SIZE 処理 */
00919     RECT        rc1;
00920     ::GetClientRect( m_pParentWnd->GetHwnd(), &rc1 );
00921     OnSize( SIZE_RESTORED, MAKELONG( rc1.right - rc1.left, rc1.bottom - rc1.top ) );
00922
00923     /* 印刷プレビュー スクロールバー初期化 */
00924     InitPreviewScrollBar();
00925
00926     /* 再描画 */
00927     ::InvalidateRect( m_pParentWnd->GetHwnd(), NULL, TRUE );
00928     return;
00929 }
00930
00931
00936 void CPrintPreview::OnCheckAntialias( void )
00937 {
00938     /* WM_SIZE 処理 */
00939     RECT    rc;
00940     ::GetClientRect( m_pParentWnd->GetHwnd(), &rc );
00941     OnSize( SIZE_RESTORED, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
00942 }
00943
00944
00945
00946
00947 void CPrintPreview::OnPrint( void )
00948 {
00949     HDC         hdc;
00950     TCHAR       szJobName[256 + 1];
00951     TCHAR       szProgress[100];
00952     TCHAR       szErrMsg[1024];
00953     int         nDirectY = -1;
00954     int         i;
00955     HFONT       hFontOld;   //  OnPrint以前のフォント
00956     HFONT       hFontHan;   //  印刷用半角フォント
00957     HFONT       hFontZen;   //  印刷用全角フォント
00958
00959     if( 0 == m_nAllPageNum ){
00960 		::MYMESSAGEBOX_A( m_pParentWnd->GetHwnd(), MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME_A,
00961             "印刷するページがありません。"
00962         );
00963         return;
00964     }
00965
00966     /* プリンタに渡すジョブ名を生成 */
00967     if( ! m_pParentWnd->GetDocument().IsFilePathAvailable() ){  /* 現在編集中のファイルのパス */
00968         _tcscpy( szJobName, _T("無題") );
00969     }else{
00970         TCHAR   szFileName[_MAX_FNAME];
00971         TCHAR   szExt[_MAX_EXT];
00972         _tsplitpath( m_pParentWnd->GetDocument().GetFilePath(), NULL, NULL, szFileName, szExt );
00973         auto_sprintf( szJobName, _T("%ts%ts"), szFileName, szExt );
00974     }
00975
00976     /* 印刷範囲を指定できるプリンタダイアログを作成 */
00977     //  2003.05.02 かろと
00978     PRINTDLG pd;
00979     memset_raw( &pd, 0, sizeof(pd) );
00980 #ifndef _DEBUG
00981 // Debugモードで、hwndOwnerを指定すると、Win2000では落ちるので・・・
00982     pd.hwndOwner = m_pParentWnd->GetHwnd();
00983 #endif
00984     pd.nMinPage = 1;
00985     pd.nMaxPage = m_nAllPageNum;
00986     pd.nFromPage = 1;
00987     pd.nToPage = m_nAllPageNum;
00988     pd.Flags = PD_ALLPAGES | PD_NOSELECTION | PD_USEDEVMODECOPIESANDCOLLATE;
00989     if( !m_cPrint.PrintDlg(&pd, &m_pPrintSetting->m_mdmDevMode) ){
00990         return;
00991     }
00992     // 印刷開始ページと、印刷ページ数を確認
00993     int         nFrom;
00994     int         nNum;
00995     if( 0 != (pd.Flags & PD_PAGENUMS) ){    // 2003.05.02 かろと
00996         nFrom = pd.nFromPage - 1;
00997         nNum  = pd.nToPage - nFrom;
00998     }else{
00999         nFrom = 0;
01000         nNum  = m_nAllPageNum;
01001     }
01002
01003     /* 印刷過程を表示して、キャンセルするためのダイアログを作成 */
01004     CDlgCancel  cDlgPrinting;
01005     cDlgPrinting.DoModeless( CEditApp::Instance()->GetAppInstance(), m_pParentWnd->GetHwnd(), IDD_PRINTING );
01006 	::DlgItem_SetText( cDlgPrinting.GetHwnd(), IDC_STATIC_JOBNAME, szJobName );
01007
01008     /* 親ウィンドウを無効化 */
01009     ::EnableWindow( m_pParentWnd->GetHwnd(), FALSE );
01010
01011     /* 印刷 ジョブ開始 */
01012     if( FALSE == m_cPrint.PrintOpen(
01013         szJobName,
01014         &m_pPrintSetting->m_mdmDevMode, /* プリンタ設定 DEVMODE用*/
01015         &hdc,
01016         szErrMsg                        /* エラーメッセージ格納場所 */
01017     ) ){
01018 //      MYTRACE_A( "%ts\n", szErrMsg );
01019     }
01020
01021     /* 印刷用半角フォントと、印刷用全角フォントを作成 */
01022     hFontHan = CreateFontIndirect( &m_lfPreviewHan );
01023     hFontZen = CreateFontIndirect( &m_lfPreviewZen );
01024
01025     // 現在のフォントを印刷用半角フォントに設定＆以前のフォントを保持
01026     hFontOld = (HFONT)::SelectObject( hdc, hFontHan );
01027
01028     /* 紙の大きさをあらわすRECTを設定 */
01029     RECT cRect;
01030     cRect.left   =                             m_pPrintSetting->m_nPrintMarginLX - m_nPreview_PaperOffsetLeft + 5;
01031     cRect.right  = m_nPreview_PaperAllWidth - (m_pPrintSetting->m_nPrintMarginRX + m_nPreview_PaperOffsetLeft + 5);
01032     cRect.top    = nDirectY * (                              m_pPrintSetting->m_nPrintMarginTY - m_nPreview_PaperOffsetTop + 5 );
01033     cRect.bottom = nDirectY * ( m_nPreview_PaperAllHeight - (m_pPrintSetting->m_nPrintMarginBY + m_nPreview_PaperOffsetTop + 5) );
01034
01035     /* ヘッダ・フッタの$pを展開するために、m_nCurPageNumを保持 */
01036     int nCurPageNumOld = m_nCurPageNum;
01037     for( i = 0; i < nNum; ++i ){
01038         m_nCurPageNum = nFrom + i;
01039
01040         /* 印刷過程を表示 */
01041         //  Jun. 18, 2001 genta ページ番号表示の計算ミス修正
01042         auto_sprintf( szProgress, _T("%d/%d"), i + 1, nNum );
01043 		::DlgItem_SetText( cDlgPrinting.GetHwnd(), IDC_STATIC_PROGRESS, szProgress );
01044
01045         /* 印刷 ページ開始 */
01046         m_cPrint.PrintStartPage( hdc );
01047
01048         //  From Here Jun. 26, 2003 かろと / おきた
01049         //  Windows 95/98ではStartPage()関数の呼び出し時に、属性はリセットされて既定値へ戻ります．
01050         //  このとき開発者は次のページの印刷を始める前にオブジェクトを選択し直し，
01051         //  マッピングモードをもう一度設定しなければなりません
01052         //  Windows NT/2000ではStartPageでも属性はリセットされません．
01053
01054         /* マッピングモードの変更 */
01055         ::SetMapMode( hdc, MM_LOMETRIC );       //それぞれの論理単位は、0.1 mm にマップされます
01056         ::SetMapMode( hdc, MM_ANISOTROPIC );    //論理単位は、任意にスケーリングされた軸上の任意の単位にマップされます
01057
01058         // 現在のフォントを印刷用半角フォントに設定
01059         ::SelectObject( hdc, hFontHan );
01060         //  To Here Jun. 26, 2003 かろと / おきた
01061
01062         /* ヘッダ印刷 */
01063         DrawHeader( hdc, cRect, hFontZen );
01064
01065         /* 印刷/印刷プレビュー ページテキストの描画 */
01066         DrawPageText(
01067             hdc,
01068             m_pPrintSetting->m_nPrintMarginLX - m_nPreview_PaperOffsetLeft ,
01069             m_pPrintSetting->m_nPrintMarginTY - m_nPreview_PaperOffsetTop+ 2 * ( m_pPrintSetting->m_nPrintFontHeight + (m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100) ),
01070             nFrom + i,
01071             hFontZen,
01072             &cDlgPrinting
01073         );
01074
01075         /* フッタ印刷 */
01076         DrawFooter( hdc, cRect, hFontZen );
01077
01078         /* 印刷 ページ終了 */
01079         m_cPrint.PrintEndPage( hdc );
01080
01081         /* 中断ボタン押下チェック */
01082         if( cDlgPrinting.IsCanceled() ){
01083             break;
01084         }
01085     }
01086     //  印刷前のフォントに戻す 2003.05.02 かろと hdc解放の前に処理順序を変更
01087     ::SelectObject( hdc, hFontOld );
01088
01089     /* 印刷 ジョブ終了 */
01090     m_cPrint.PrintClose( hdc );
01091
01092     //  印刷用フォントを削除。
01093     ::DeleteObject( hFontZen );
01094     ::DeleteObject( hFontHan );
01095
01096     ::EnableWindow( m_pParentWnd->GetHwnd(), TRUE );
01097     cDlgPrinting.CloseDialog( 0 );
01098
01099     m_nCurPageNum = nCurPageNumOld;
01100
01101     // 印刷が終わったら、Previewから抜ける 2003.05.02 かろと
01102     m_pParentWnd->PrintPreviewModeONOFF();
01103     return;
01104 }
01105
01108 void CPrintPreview::DrawHeader( HDC hdc, const CMyRect& rect, HFONT hFontZen )
01109 {
01110     int nTextWidth = 0;
01111
01112     // ヘッダ
01113     const int nHeaderWorkLen = 1024;
01114     wchar_t     szHeaderWork[1024 + 1];
01115
01116     //文字間隔
01117     int nDx = m_pPrintSetting->m_nPrintFontWidth;
01118
01119     // 左寄せ
01120     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_LEFT], szHeaderWork, nHeaderWorkLen);
01121     Print_DrawLine(
01122         hdc,
01123         rect.UpperLeft(),
01124         szHeaderWork,
01125         wcslen( szHeaderWork ),
01126         CLayoutInt(0),
01127         hFontZen
01128     );
01129
01130     // 中央寄せ
01131     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_CENTER], szHeaderWork, nHeaderWorkLen);
01132     nTextWidth = CTextMetrics::CalcTextWidth2(szHeaderWork, wcslen(szHeaderWork), nDx); //テキスト幅
01133     Print_DrawLine(
01134         hdc,
01135         CMyPoint(
01136             ( rect.right + rect.left - nTextWidth) / 2,
01137             rect.top
01138         ),
01139         szHeaderWork,
01140         wcslen( szHeaderWork ),
01141         CLayoutInt(0),
01142         hFontZen
01143     );
01144
01145     // 右寄せ
01146     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_RIGHT], szHeaderWork, nHeaderWorkLen);
01147     nTextWidth = CTextMetrics::CalcTextWidth2(szHeaderWork, wcslen(szHeaderWork), nDx); //テキスト幅
01148     Print_DrawLine(
01149         hdc,
01150         CMyPoint(
01151             rect.right - nTextWidth,
01152             rect.top
01153         ),
01154         szHeaderWork,
01155         wcslen( szHeaderWork ),
01156         CLayoutInt(0),
01157         hFontZen
01158     );
01159 }
01160
01163 void CPrintPreview::DrawFooter( HDC hdc, const CMyRect& rect, HFONT hFontZen )
01164 {
01165     int nTextWidth = 0;
01166
01167     // フッタ
01168     const int nFooterWorkLen = 1024;
01169     wchar_t   szFooterWork[1024 + 1];
01170
01171     //文字間隔
01172     int nDx = m_pPrintSetting->m_nPrintFontWidth;
01173
01174     // Y座標基準
01175     int nY = rect.bottom + m_pPrintSetting->m_nPrintFontHeight;
01176
01177     // 左寄せ
01178     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_LEFT], szFooterWork, nFooterWorkLen);
01179     Print_DrawLine(
01180         hdc,
01181         CMyPoint(
01182             rect.left,
01183             nY
01184         ),
01185         szFooterWork,
01186         wcslen( szFooterWork ),
01187         CLayoutInt(0),
01188         hFontZen
01189     );
01190
01191     // 中央寄せ
01192     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_CENTER], szFooterWork, nFooterWorkLen);
01193     nTextWidth = CTextMetrics::CalcTextWidth2(szFooterWork, wcslen(szFooterWork), nDx); //テキスト幅
01194     Print_DrawLine(
01195         hdc,
01196         CMyPoint(
01197             ( rect.right + rect.left - nTextWidth) / 2,
01198             nY
01199         ),
01200         szFooterWork,
01201         wcslen( szFooterWork ),
01202         CLayoutInt(0),
01203         hFontZen
01204     );
01205
01206     // 右寄せ
01207     m_pParentWnd->GetDocument().ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_RIGHT], szFooterWork, nFooterWorkLen);
01208     nTextWidth = CTextMetrics::CalcTextWidth2(szFooterWork, wcslen(szFooterWork), nDx); //テキスト幅
01209     Print_DrawLine(
01210         hdc,
01211         CMyPoint(
01212             rect.right - nTextWidth,
01213             nY
01214         ),
01215         szFooterWork,
01216         wcslen( szFooterWork ),
01217         CLayoutInt(0),
01218         hFontZen
01219     );
01220 }
01221
01222 /* 印刷/印刷プレビュー ページテキストの描画
01223     DrawPageTextでは、行番号を（半角フォントで）印刷。
01224     本文はPrint_DrawLineにお任せ
01225     @date 2006.08.14 Moca 共通式のくくりだしと、コードの整理
01226 */
01227 void CPrintPreview::DrawPageText(
01228     HDC             hdc,
01229     int             nOffX,
01230     int             nOffY,
01231     int             nPageNum,
01232     HFONT           hFontZen,
01233     CDlgCancel*     pCDlgCancel
01234 )
01235 {
01236     int             nDirectY = -1;
01237     TEXTMETRIC      tm;
01238
01239     const int       nLineHeight = m_pPrintSetting->m_nPrintFontHeight + ( m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100 );
01240     // 段と段の間隔の幅
01241     const int       nDanWidth = (Int)m_bPreview_EnableColms * m_pPrintSetting->m_nPrintFontWidth + m_pPrintSetting->m_nPrintDanSpace;
01242     // 行番号の幅
01243     const int       nLineNumWidth = m_nPreview_LineNumberColmns * m_pPrintSetting->m_nPrintFontWidth;
01244
01245     /* 半角フォントの情報を取得＆半角フォントに設定 */
01246     ::GetTextMetrics( hdc, &tm );
01247     int nAscentHan = tm.tmAscent;
01248
01249     int             nDan;   //  段数カウンタ
01250     int             i;  //  行数カウンタ
01251     for( nDan = 0; nDan < m_pPrintSetting->m_nPrintDansuu; ++nDan ){
01252         // 本文1桁目の左隅の座標(行番号がある場合はこの座標より左側)
01253         const int nBasePosX = nOffX + nDanWidth * nDan + nLineNumWidth * (nDan + 1);
01254
01255         for( i = 0; i < m_bPreview_EnableLines; ++i ){
01256             if( NULL != pCDlgCancel ){
01257                 /* 処理中のユーザー操作を可能にする */
01258                 if( !::BlockingHook( pCDlgCancel->GetHwnd() ) ){
01259                     return;
01260                 }
01261             }
01262
01263             /*  現在描画しようとしている行の物理行数（折り返しごとにカウントした行数）
01264                 関係するものは、
01265                 「ページ数（nPageNum）」
01266                 「段数（m_pPrintSetting->m_nPrintDansuu）」
01267                 「段数が1のときに、1ページあたりに何行入るか（m_bPreview_EnableLines）」
01268             */
01269             const CLayoutInt nLineNum = CLayoutInt( (nPageNum * m_pPrintSetting->m_nPrintDansuu + nDan) * m_bPreview_EnableLines + i );
01270             const CLayout*  pcLayout = m_pLayoutMgr_Print->SearchLineByLayoutY( nLineNum );
01271             if( NULL == pcLayout ){
01272                 break;
01273             }
01274             /* 行番号を表示するか */
01275             if( m_pPrintSetting->m_bPrintLineNumber ){
01276                 wchar_t     szLineNum[64];  //  行番号を入れる。
01277                 /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
01278                 if( m_pParentWnd->GetDocument().GetDocumentAttribute().m_bLineNumIsCRLF ){
01279                     /* 論理行番号表示モード */
01280                     if( 0 != pcLayout->GetLogicOffset() ){
01281                         wcscpy( szLineNum, L" " );
01282                     }else{
01283                         _itow( pcLayout->GetLogicLineNo() + 1, szLineNum, 10 ); /* 対応する論理行番号 */
01284                     }
01285                 }
01286                 else{
01287                     /* 物理行(レイアウト行)番号表示モード */
01288                     _itow( (Int)nLineNum + 1, szLineNum, 10 );
01289                 }
01290
01291                 /* 行番号区切り  0=なし 1=縦線 2=任意 */
01292                 if( 2 == m_pParentWnd->GetDocument().GetDocumentAttribute().m_nLineTermType ){
01293                     wchar_t szLineTerm[2];
01294                     auto_sprintf( szLineTerm, L"%lc", m_pParentWnd->GetDocument().GetDocumentAttribute().m_cLineTermChar ); /* 行番号区切り文字 */
01295                     wcscat( szLineNum, szLineTerm );
01296                 }
01297                 else{
01298                     wcscat( szLineNum, L" " );
01299                 }
01300
01301                 //文字列長
01302                 const int nLineCols = wcslen( szLineNum );
01303
01304                 //文字間隔配列を生成
01305                 vector<int> vDxArray;
01306                 const int* pDxArray = CTextMetrics::GenerateDxArray(&vDxArray, szLineNum, nLineCols, m_pPrintSetting->m_nPrintFontWidth);
01307
01308                 ApiWrap::ExtTextOutW_AnyBuild(
01309                     hdc,
01310                     nBasePosX - nLineCols * m_pPrintSetting->m_nPrintFontWidth,
01311                     nDirectY * ( nOffY + nLineHeight * i + ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ) ),
01312                     0,
01313                     NULL,
01314                     szLineNum,
01315                     nLineCols,
01316                     pDxArray
01317                 );
01318             }
01319
01320             const int nLineLen = pcLayout->GetLengthWithoutEOL();
01321             if( 0 == nLineLen ){
01322                 continue;
01323             }
01324
01325             // 印刷／プレビュー 行描画
01326             Print_DrawLine(
01327                 hdc,
01328                 CMyPoint(
01329                     nBasePosX,
01330                     nDirectY * ( nOffY + nLineHeight * i )
01331                 ),
01332                 pcLayout->GetPtr(),
01333                 nLineLen,
01334                 pcLayout->GetIndent(), // 2006.05.16 Add Moca. レイアウトインデント分ずらす。
01335                 hFontZen
01336             );
01337         }
01338
01339         // 2006.08.14 Moca 行番号が縦線の場合は1度に引く
01340         if( m_pPrintSetting->m_bPrintLineNumber &&
01341                 1 == m_pParentWnd->GetDocument().GetDocumentAttribute().m_nLineTermType ){
01342             // 縦線は本文と行番号の隙間1桁の中心に作画する(画面作画では、右詰め)
01343             ::MoveToEx( hdc,
01344                 nBasePosX - (m_pPrintSetting->m_nPrintFontWidth / 2 ),
01345                 nDirectY * nOffY,
01346                 NULL );
01347             ::LineTo( hdc,
01348                 nBasePosX - (m_pPrintSetting->m_nPrintFontWidth / 2 ),
01349                 nDirectY * ( nOffY + nLineHeight * i )
01350             );
01351         }
01352     }
01353     return;
01354 }
01355
01356
01357
01358
01359
01360
01361 /* 印刷プレビュー スクロールバー初期化 */
01362 void CPrintPreview::InitPreviewScrollBar( void )
01363 {
01364     SCROLLINFO  si;
01365     RECT        rc;
01366     int         cx, cy;
01367     int         nToolBarHeight = 0;
01368     if( NULL != m_hwndPrintPreviewBar ){
01369         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
01370         nToolBarHeight = rc.bottom - rc.top;
01371     }
01372     ::GetClientRect( m_pParentWnd->GetHwnd(), &rc );
01373     cx = rc.right - rc.left;
01374     cy = rc.bottom - rc.top - nToolBarHeight;
01375
01376     if( NULL != m_hwndVScrollBar ){
01377         /* 垂直スクロールバー */
01378         si.cbSize = sizeof( si );
01379         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01380         si.nMin  = 0;
01381         if( m_nPreview_ViewHeight <= cy - nToolBarHeight ){
01382             si.nMax  = cy - nToolBarHeight;         /* 全幅 */
01383             si.nPage = cy - nToolBarHeight;         /* 表示域の桁数 */
01384             si.nPos  = -1 * m_nPreviewVScrollPos;   /* 表示域の一番左の位置 */
01385             si.nTrackPos = 0;
01386             m_SCROLLBAR_VERT = FALSE;
01387         }else{
01388             si.nMax  = m_nPreview_ViewHeight;       /* 全幅 */
01389             si.nPage = cy - nToolBarHeight;         /* 表示域の桁数 */
01390             si.nPos  = -1 * m_nPreviewVScrollPos;   /* 表示域の一番左の位置 */
01391             si.nTrackPos = 100;
01392             m_SCROLLBAR_VERT = TRUE;
01393         }
01394         ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
01395     }
01396     /* 印刷プレビュー 水平スクロールバーウィンドウハンドル */
01397     if( NULL != m_hwndHScrollBar ){
01398         si.cbSize = sizeof( si );
01399         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01400         /* 水平スクロールバー */
01401 //      si.cbSize = sizeof( si );
01402 //      si.fMask = SIF_ALL;
01403         si.nMin  = 0;
01404         if( m_nPreview_ViewWidth <= cx ){
01405             si.nMax  = cx;                          /* 全幅 */
01406             si.nPage = cx;                          /* 表示域の桁数 */
01407             si.nPos  = m_nPreviewHScrollPos;        /* 表示域の一番左の位置 */
01408             si.nTrackPos = 0;
01409             m_SCROLLBAR_HORZ = FALSE;
01410         }else{
01411             si.nMax  = m_nPreview_ViewWidth;        /* 全幅 */
01412             si.nPage = cx;                          /* 表示域の桁数 */
01413             si.nPos  = m_nPreviewHScrollPos;        /* 表示域の一番左の位置 */
01414             si.nTrackPos = 100;
01415             m_SCROLLBAR_HORZ = TRUE;
01416         }
01417         ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
01418     }
01419     return;
01420 }
01421
01427 void CPrintPreview::Print_DrawLine(
01428     HDC             hdc,
01429     POINT           ptDraw,
01430     const wchar_t*  pLine,
01431     int             nLineLen,
01432     CLayoutInt      nIndent,  // 2006.08.14 Moca 追加
01433     HFONT           hFontZen
01434 )
01435 {
01436     const int MODE_SINGLEBYTE = 1;
01437     const int MODE_DOUBLEBYTE = 2;
01438
01439     TEXTMETRIC  tm;
01440
01441     /* 全角文字のアセント（文字高）を取得 */
01442     HFONT   hFontHan = (HFONT)::SelectObject( hdc, hFontZen );
01443     ::GetTextMetrics( hdc, &tm );
01444     int nAscentZen = tm.tmAscent;
01445
01446     /* 半角文字のアセント（文字高）を取得 */
01447     //  半角文字用フォントが選択されていることを期待している。
01448     ::SelectObject( hdc, hFontHan );
01449     ::GetTextMetrics( hdc, &tm );
01450     int nAscentHan = tm.tmAscent;
01451
01452     /*  pLineをスキャンして、半角文字は半角文字でまとめて、全角文字は全角文字でまとめて描画する。
01453     */
01454
01455     //文字間隔
01456     int nDx = m_pPrintSetting->m_nPrintFontWidth;
01457
01458     //文字間隔配列を生成
01459     vector<int> vDxArray;
01460     const int* pDxArray = CTextMetrics::GenerateDxArray(
01461         &vDxArray,
01462         pLine,
01463         nLineLen,
01464         nDx
01465     );
01466
01467     CLayoutInt nTabSpace = m_pParentWnd->GetDocument().m_cLayoutMgr.GetTabSpace(); //   Sep. 23, 2002 genta LayoutMgrの値を使う
01468
01469     int nBgnLogic = 0;      // TABを展開する前のバイト数で、pLineの何バイト目まで描画したか？
01470     int iLogic;             // pLineの何文字目をスキャン？
01471     CLayoutInt nLayoutX = nIndent;  // TABを展開した後のバイト数で、テキストの何バイト目まで描画したか？
01472
01473     for( iLogic = 0; iLogic < nLineLen; ++iLogic ){
01474         // タブ文字が出現する毎に描画
01475         if( WCODE::TAB == pLine[iLogic] ){
01476             if( 0 < iLogic - nBgnLogic ){
01477                 // タブ文字の前までを描画。
01478 				::ExtTextOutW_AnyBuild(
01479                     hdc,
01480                     ptDraw.x + (Int)nLayoutX * nDx,
01481                     ptDraw.y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ),
01482                     0,
01483                     NULL,
01484                     &pLine[nBgnLogic],
01485                     iLogic - nBgnLogic,
01486                     &pDxArray[nBgnLogic]
01487                 );
01488
01489                 // 描画したテキスト分の桁数を埋める。
01490                 for(int i=nBgnLogic;i<iLogic;i++){
01491                     nLayoutX += CLayoutInt(pDxArray[i]/nDx);
01492                 }
01493                 //nLayoutX += ( iLogic - nBgnLogic );
01494             }
01495
01496             // タブ分の桁数を埋める。
01497             nLayoutX += ( nTabSpace - nLayoutX % nTabSpace );
01498
01499             //文字位置進める
01500             nBgnLogic = iLogic + 1; //  スキャン中の次のバイト
01501         }
01502     }
01503
01504     if( 0 < iLogic - nBgnLogic ){
01505         /* 1バイト文字描画。フォントは標準で1バイト文字用。  */
01506 		::ExtTextOutW_AnyBuild(
01507             hdc,
01508             ptDraw.x + (Int)nLayoutX * nDx,
01509             ptDraw.y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ),
01510             0,
01511             NULL,
01512             &pLine[nBgnLogic],
01513             iLogic - nBgnLogic,
01514             &pDxArray[nBgnLogic]
01515         );
01516     }
01517     return;
01518 }
01519
01520 /*  印刷プレビューフォント（半角）を設定する
01521     typedef struct tagLOGFONT {
01522        LONG lfHeight;
01523        LONG lfWidth;
01524        LONG lfEscapement;
01525        LONG lfOrientation;
01526        LONG lfWeight;
01527        BYTE lfItalic;
01528        BYTE lfUnderline;
01529        BYTE lfStrikeOut;
01530        BYTE lfCharSet;
01531        BYTE lfOutPrecision;
01532        BYTE lfClipPrecision;
01533        BYTE lfQuality;
01534        BYTE lfPitchAndFamily;
01535        TCHAR lfFaceName[LF_FACESIZE];
01536     } LOGFONT;
01537 */
01538 void CPrintPreview::SetPreviewFontHan( const LOGFONT* lf )
01539 {
01540     m_lfPreviewHan = *lf;
01541
01542     //  PrintSettingからコピー
01543     m_lfPreviewHan.lfHeight         = m_pPrintSetting->m_nPrintFontHeight;
01544     m_lfPreviewHan.lfWidth          = m_pPrintSetting->m_nPrintFontWidth;
01545     _tcscpy(m_lfPreviewHan.lfFaceName, m_pPrintSetting->m_szPrintFontFaceHan);
01546 }
01547
01548 void CPrintPreview::SetPreviewFontZen( const LOGFONT* lf )
01549 {
01550     m_lfPreviewZen = *lf;
01551     //  PrintSettingからコピー
01552     m_lfPreviewZen.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
01553     m_lfPreviewZen.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
01554     _tcscpy(m_lfPreviewZen.lfFaceName, m_pPrintSetting->m_szPrintFontFaceZen );
01555 }
01556
01557 int CALLBACK CPrintPreview::MyEnumFontFamProc(
01558     ENUMLOGFONT*    pelf,       // pointer to logical-font data
01559     NEWTEXTMETRIC*  pntm,       // pointer to physical-font data
01560     int             nFontType,  // type of font
01561     LPARAM          lParam      // address of application-defined data
01562 )
01563 {
01564     CPrintPreview* pCPrintPreview = (CPrintPreview*)lParam;
01565     if( 0 == _tcscmp( pelf->elfLogFont.lfFaceName, pCPrintPreview->m_pPrintSetting->m_szPrintFontFaceHan ) ){
01566         pCPrintPreview->SetPreviewFontHan(&pelf->elfLogFont);
01567     }
01568     if( 0 == _tcscmp( pelf->elfLogFont.lfFaceName, pCPrintPreview->m_pPrintSetting->m_szPrintFontFaceZen ) ){
01569         pCPrintPreview->SetPreviewFontZen(&pelf->elfLogFont);
01570     }
01571
01572     return 1;
01573 }
01574
01578 void CPrintPreview::CreatePrintPreviewControls( void )
01579 {
01580     int         nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
01581     int         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
01582     int         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01583     int         nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
01584
01585     /* 印刷プレビュー 操作バー */
01586     m_hwndPrintPreviewBar = ::CreateDialogParam(
01587         CEditApp::Instance()->GetAppInstance(),             // handle to application instance
01588         MAKEINTRESOURCE( IDD_PRINTPREVIEWBAR ),             // identifies dialog box template name
01589         m_pParentWnd->GetHwnd(),                            // handle to owner window
01590         (DLGPROC)CPrintPreview::PrintPreviewBar_DlgProc,    // pointer to dialog box procedure
01591         (LPARAM)this
01592     );
01593
01594     /* 縦スクロールバーの作成 */
01595     m_hwndVScrollBar = ::CreateWindowEx(
01596         0L,                                 /* no extended styles           */
01597         _T("SCROLLBAR"),                        /* scroll bar control class     */
01598         NULL,                               /* text for window title bar    */
01599         WS_VISIBLE | WS_CHILD | SBS_VERT,   /* scroll bar styles            */
01600         0,                                  /* horizontal position          */
01601         0,                                  /* vertical position            */
01602         200,                                /* width of the scroll bar      */
01603         CW_USEDEFAULT,                      /* default height               */
01604         m_pParentWnd->GetHwnd(),                                /* handle of main window        */
01605         (HMENU) NULL,                       /* no menu for a scroll bar     */
01606         CEditApp::Instance()->GetAppInstance(),                     /* instance owning this window  */
01607         (LPVOID) NULL                       /* pointer not needed           */
01608     );
01609     SCROLLINFO  si;
01610     si.cbSize = sizeof( si );
01611     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01612     si.nMin  = 0;
01613     si.nMax  = 29;
01614     si.nPage = 10;
01615     si.nPos  = 0;
01616     si.nTrackPos = 1;
01617     ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
01618     ::ShowScrollBar( m_hwndVScrollBar, SB_CTL, TRUE );
01619
01620     /* 横スクロールバーの作成 */
01621     m_hwndHScrollBar = ::CreateWindowEx(
01622         0L,                                 /* no extended styles           */
01623         _T("SCROLLBAR"),                        /* scroll bar control class     */
01624         NULL,                               /* text for window title bar    */
01625         WS_VISIBLE | WS_CHILD | SBS_HORZ,   /* scroll bar styles            */
01626         0,                                  /* horizontal position          */
01627         0,                                  /* vertical position            */
01628         200,                                /* width of the scroll bar      */
01629         CW_USEDEFAULT,                      /* default height               */
01630         m_pParentWnd->GetHwnd(),                                /* handle of main window        */
01631         (HMENU) NULL,                       /* no menu for a scroll bar     */
01632         CEditApp::Instance()->GetAppInstance(),                     /* instance owning this window  */
01633         (LPVOID) NULL                       /* pointer not needed           */
01634     );
01635     si.cbSize = sizeof( si );
01636     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01637     si.nMin  = 0;
01638     si.nMax  = 29;
01639     si.nPage = 10;
01640     si.nPos  = 0;
01641     si.nTrackPos = 1;
01642     ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
01643     ::ShowScrollBar( m_hwndHScrollBar, SB_CTL, TRUE );
01644
01645     /* サイズボックスの作成 */
01646     m_hwndSizeBox = ::CreateWindowEx(
01647         WS_EX_CONTROLPARENT/*0L*/,                          /* no extended styles           */
01648         _T("SCROLLBAR"),                                        /* scroll bar control class     */
01649         NULL,                                               /* text for window title bar    */
01650         WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles            */
01651         0,                                                  /* horizontal position          */
01652         0,                                                  /* vertical position            */
01653         200,                                                /* width of the scroll bar      */
01654         CW_USEDEFAULT,                                      /* default height               */
01655         m_pParentWnd->GetHwnd(),                                            /* handle of main window        */
01656         (HMENU) NULL,                                       /* no menu for a scroll bar     */
01657         CEditApp::Instance()->GetAppInstance(),                                     /* instance owning this window  */
01658         (LPVOID) NULL                                       /* pointer not needed           */
01659     );
01660     ::ShowWindow( m_hwndPrintPreviewBar, SW_SHOW );
01661
01662
01663     /* WM_SIZE 処理 */
01664     RECT        rc1;
01665     ::GetClientRect( m_pParentWnd->GetHwnd(), &rc1 );
01666     OnSize( SIZE_RESTORED, MAKELONG( rc1.right - rc1.left, rc1.bottom - rc1.top ) );
01667     return;
01668 }
01669
01670
01674 void CPrintPreview::DestroyPrintPreviewControls( void )
01675 {
01676     /* 印刷プレビュー 操作バー 削除 */
01677     if ( m_hwndPrintPreviewBar ){
01678         ::DestroyWindow( m_hwndPrintPreviewBar );
01679         m_hwndPrintPreviewBar = NULL;
01680     }
01681
01682     /* 印刷プレビュー 垂直スクロールバーウィンドウ 削除 */
01683     if( m_hwndVScrollBar ){
01684         ::DestroyWindow( m_hwndVScrollBar );
01685         m_hwndVScrollBar = NULL;
01686     }
01687     /* 印刷プレビュー 水平スクロールバーウィンドウ 削除 */
01688     if( m_hwndHScrollBar ){
01689         ::DestroyWindow( m_hwndHScrollBar );
01690         m_hwndHScrollBar = NULL;
01691     }
01692     /* 印刷プレビュー サイズボックスウィンドウ 削除 */
01693     if ( m_hwndSizeBox ){
01694         ::DestroyWindow( m_hwndSizeBox );
01695         m_hwndSizeBox = NULL;
01696     }
01697 }
01698
01699 /* ダイアログプロシージャ */
01700 INT_PTR CALLBACK CPrintPreview::PrintPreviewBar_DlgProc(
01701     HWND hwndDlg,   // handle to dialog box
01702     UINT uMsg,      // message
01703     WPARAM wParam,  // first message parameter
01704     LPARAM lParam   // second message parameter
01705 )
01706 {
01707     CPrintPreview* pCPrintPreview;
01708     switch( uMsg ){
01709     case WM_INITDIALOG:
01710         // Modified by KEITA for WIN64 2003.9.6
01711 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01712         // 2007.02.11 Moca WM_INITもDispatchEvent_PPBを呼ぶように
01713         pCPrintPreview = ( CPrintPreview* )lParam;
01714         if( NULL != pCPrintPreview ){
01715             return pCPrintPreview->DispatchEvent_PPB( hwndDlg, uMsg, wParam, lParam );
01716         }
01717         return TRUE;
01718     default:
01719         // Modified by KEITA for WIN64 2003.9.6
01720         pCPrintPreview = ( CPrintPreview* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
01721         if( NULL != pCPrintPreview ){
01722             return pCPrintPreview->DispatchEvent_PPB( hwndDlg, uMsg, wParam, lParam );
01723         }else{
01724             return FALSE;
01725         }
01726     }
01727 }
01728
01729 /* 印刷プレビュー 操作バーにフォーカスを当てる */
01730 void CPrintPreview::SetFocusToPrintPreviewBar( void )
01731 {
01732     if( NULL != m_hwndPrintPreviewBar ){
01733         ::SetFocus( m_hwndPrintPreviewBar );
01734     }
01735 }
01736
01737 /* 印刷プレビュー 操作バー ダイアログのメッセージ処理 */
01738 // IDD_PRINTPREVIEWBAR
01739 INT_PTR CPrintPreview::DispatchEvent_PPB(
01740     HWND                hwndDlg,    // handle to dialog box
01741     UINT                uMsg,       // message
01742     WPARAM              wParam,     // first message parameter
01743     LPARAM              lParam      // second message parameter
01744 )
01745 {
01746     WORD                wNotifyCode;
01747     WORD                wID;
01748     HWND                hwndCtl;
01749     CMemory             cMemBuf;
01750
01751
01752
01753     switch( uMsg ){
01754
01755     case WM_INITDIALOG:
01756         // 2007.02.11 Moca DWLP_USER設定は不要
01758         //::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01759         {
01760             COsVersionInfo cOsVer;
01761             if( cOsVer.IsWin2000_or_later() ){
01762                 ::EnableWindow( ::GetDlgItem(hwndDlg, IDC_CHECK_ANTIALIAS), TRUE );
01763             }
01764         }
01765         return TRUE;
01766     case WM_COMMAND:
01767         wNotifyCode = HIWORD(wParam);   /* 通知コード */
01768         wID         = LOWORD(wParam);   /* 項目ID、コントロールID またはアクセラレータID */
01769         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
01770         switch( wNotifyCode ){
01771         /* ボタン／チェックボックスがクリックされた */
01772         case BN_CLICKED:
01773             switch( wID ){
01774             case IDC_BUTTON_PRINTERSELECT:
01775                 // From Here 2003.05.03 かろと
01776                 // PRINTDLGを初期化
01777                 PRINTDLG    pd;
01778                 memset_raw( &pd, 0, sizeof(pd) );
01779                 pd.Flags = PD_PRINTSETUP | PD_NONETWORKBUTTON;
01780                 pd.hwndOwner = m_pParentWnd->GetHwnd();
01781                 if (m_cPrint.PrintDlg( &pd, &m_pPrintSetting->m_mdmDevMode )) {
01782                     // 用紙サイズと用紙方向を反映させる 2003.05.03 かろと
01783                     m_pPrintSetting->m_nPrintPaperSize = m_pPrintSetting->m_mdmDevMode.dmPaperSize;
01784                     m_pPrintSetting->m_nPrintPaperOrientation = m_pPrintSetting->m_mdmDevMode.dmOrientation;
01785                     /* 印刷プレビュー スクロールバー初期化 */
01786                     InitPreviewScrollBar();
01787                     OnChangePrintSetting();
01788                     ::InvalidateRect( m_pParentWnd->GetHwnd(), NULL, TRUE );
01789                 }
01790                 // To Here 2003.05.03 かろと
01791                 break;
01792             case IDC_BUTTON_PRINTSETTING:
01793                 m_pParentWnd->OnPrintPageSetting();
01794                 break;
01795             case IDC_BUTTON_ZOOMUP:
01796                 /* プレビュー拡大縮小 */
01797                 OnPreviewZoom( TRUE );
01798                 break;
01799             case IDC_BUTTON_ZOOMDOWN:
01800                 /* プレビュー拡大縮小 */
01801                 OnPreviewZoom( FALSE );
01802                 break;
01803             case IDC_BUTTON_PREVPAGE:
01804                 /* 前ページ */
01805                 OnPreviewGoPreviousPage( );
01806                 break;
01807             case IDC_BUTTON_NEXTPAGE:
01808                 /* 次ページ */
01809                 OnPreviewGoNextPage( );
01810                 break;
01811             //From Here 2007.02.11 Moca ダイレクトジャンプおよびアンチエイリアス
01812             case IDC_BUTTON_DIRECTPAGE:
01813                 OnPreviewGoDirectPage( );
01814                 break;
01815             case IDC_CHECK_ANTIALIAS:
01816                 OnCheckAntialias();
01817                 break;
01818             //To Here 2007.02.11 Moca
01819             case IDC_BUTTON_HELP:
01820                 /* 印刷プレビューのヘルプ */
01821                 //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
01822                 MyWinHelp( hwndDlg, CEditApp::Instance()->GetHelpFilePath(), HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PRINT_PREVIEW) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01823                 break;
01824             case IDOK:
01825                 /* 印刷実行 */
01826                 OnPrint();
01827                 return TRUE;
01828             case IDCANCEL:
01829                 /* 印刷プレビューモードのオン/オフ */
01830                 m_pParentWnd->PrintPreviewModeONOFF();
01831                 return TRUE;
01832             }
01833             break;  /* BN_CLICKED */
01834         }
01835         break;  /* WM_COMMAND */
01836     }
01837     return FALSE;
01838 }
01839
01840
01841 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrintPreview.h

sakura_core

CPrintPreview.h

印刷プレビュー管理クラス [詳細]

#include "CShareData.h"
#include "CPrint.h"
#include <windows.h>

CPrintPreview.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CPrintPreview

説明

印刷プレビュー管理クラス

作者:
YAZAKI
日付:
2002/1/11 新規作成

CPrintPreview.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPrintPreview.h ソースファイル

sakura_core

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     HWND GetPrintPreviewBarHANDLE_Safe() const{ if(!this)return NULL; else return m_hwndPrintPreviewBar; }
00066
00067     //  PrintPreviewバーのメッセージ処理。
00068     //  まずPrintPreviewBar_DlgProcにメッセージが届き、DispatchEvent_PPBに転送する仕組み
00069     static INT_PTR CALLBACK PrintPreviewBar_DlgProc(
00070         HWND    hwndDlg,    // handle to dialog box
00071         UINT    uMsg,       // message
00072         WPARAM  wParam,     // first message parameter
00073         LPARAM  lParam      // second message parameter
00074     );
00075     INT_PTR DispatchEvent_PPB(
00076         HWND    hwndDlg,    // handle to dialog box
00077         UINT    uMsg,       // message
00078         WPARAM  wParam,     // first message parameter
00079         LPARAM  lParam      // second message parameter
00080     );
00081
00082 protected:
00083     /*
00084     ||  描画。
00085     ||  DrawXXXXX()は、現在のフォントを半角フォントに設定してから呼び出すこと。
00086     ||  また、DrawXXXXX()から抜けてきたときは、半角フォントに設定されていることを期待してよい。
00087     ||  フォントは、半角フォントと全角フォントしかないことも期待してよい。
00088     */
00089     void DrawHeader( HDC hdc, const CMyRect& rect, HFONT hFontZen );
00090     void DrawPageText( HDC, int, int, int, HFONT hFontZen, class CDlgCancel* );
00091     void DrawFooter( HDC hdc, const CMyRect& rect, HFONT hFontZen );
00092
00093     /* 印刷／プレビュー 行描画 */
00094     void Print_DrawLine(
00095         HDC             hdc,
00096         POINT           ptDraw,
00097         const wchar_t*  pLine,
00098         int             nLineLen,
00099         CLayoutInt      nIndent,
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( const LOGFONT* lf );
00130     void SetPreviewFontZen( const 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     CLayoutInt      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     // プレビューから出ても現在のプリンタ情報を記憶しておけるようにstaticにする 2003.05.02 かろと
00188     static CPrint   m_cPrint;
00189 };
00190
00191 #endif
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcess.cpp

sakura_core

CProcess.cpp

プロセス基底クラス [詳細]

#include "stdafx.h"
#include "CProcess.h"
#include "debug.h"

CProcess.cppのインクルード依存関係図

ソースコードを見る。

説明

プロセス基底クラス

作者:
aroka
日付:
2002/01/07 作成

2002/01/17 修正

CProcess.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:27 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcess.cpp ソースファイル

sakura_core

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
00027 CProcess::CProcess(
00028     HINSTANCE   hInstance,
00029     LPTSTR      lpCmdLine
00030 )
00031 : m_hInstance( hInstance )
00032 , m_CommandLine( lpCmdLine )
00033 , m_hWnd( 0 )
00034 {
00035 }
00036
00042 bool CProcess::Initialize()
00043 {
00044     /* 共有データ構造体のアドレスを返す */
00045     if( !m_cShareData.Init() ){
00046         //  適切なデータを得られなかった
00047 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONERROR,
00048             GSTR_APPNAME, _T("異なるバージョンのエディタを同時に起動することはできません。") );
00049         return false;
00050     }
00051
00052     /* リソースから製品バージョンの取得 */
00053     //  2004.05.13 Moca 共有データのバージョン情報はコントロールプロセスだけが
00054     //  ShareDataで設定するように変更したのでここからは削除
00055
00056     return true;
00057 }
00058
00065 bool CProcess::Run(void)
00066 {
00067     if( Initialize() )
00068     {
00069         MainLoop() ;
00070         Terminate();
00071         return true;
00072     }
00073     return false;
00074 }
00075 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcess.h

sakura_core

CProcess.h

プロセス基底クラスヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"

CProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CProcess
プロセス基底クラス [詳細]

説明

プロセス基底クラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CProcess.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcess.h ソースファイル

sakura_core

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, LPTSTR 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 protected:
00038     void            SetMainWindow(HWND hwnd){ m_hWnd = hwnd; }
00039 public:
00040     HINSTANCE       GetProcessInstance() const{ return m_hInstance; }
00041     CShareData&     GetShareData()   { return m_cShareData; }
00042     DLLSHAREDATA&   GetDllShareData(){ return *m_cShareData.GetShareData(); }
00043     HWND            GetMainWindow() const{ return m_hWnd; }
00044
00045 private:
00046     HINSTANCE   m_hInstance;
00047     HWND        m_hWnd;
00048     LPTSTR      m_CommandLine;
00049
00050     //  唯一のCShareDateとする。（CProcessが責任を持ってnew/deleteする）
00051     CShareData      m_cShareData;
00052
00053 private:
00054 };
00055
00056
00058 #endif /* _CPROCESS_H_ */
00059
00060 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcessFactory.cpp

sakura_core

CProcessFactory.cpp

プロセス生成クラス [詳細]

#include "stdafx.h"
#include "CProcessFactory.h"
#include "CControlProcess.h"
#include "CNormalProcess.h"
#include "CCommandLine.h"
#include "CControlTray.h"
#include "Debug.h"
#include <io.h>
#include <tchar.h>
#include "COsVersionInfo.h"
#include "CRunningTimer.h"
#include "util/os.h"

CProcessFactory.cppのインクルード依存関係図

ソースコードを見る。

説明

プロセス生成クラス

作者:
aroka
日付:
2002/01/03 Create

CProcessFactory.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcessFactory.cpp ソースファイル

sakura_core

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 "CControlTray.h"
00025 #include "Debug.h"
00026
00027 #include <io.h>
00028 #include <tchar.h>
00029 #include "COsVersionInfo.h"
00030 #include "CRunningTimer.h"
00031 #include "util/os.h"
00032
00033 class CProcess;
00034
00035
00049 CProcess* CProcessFactory::Create( HINSTANCE hInstance, LPTSTR lpCmdLine )
00050 {
00051     CCommandLine::Instance(lpCmdLine);
00052
00053     CProcess* process = 0;
00054     if( !IsValidVersion() ){
00055         return 0;
00056     }
00057
00058     // プロセスクラスを生成する
00059     //
00060     // Note: 以下の処理において使用される IsExistControlProcess() は、コントロールプロセスが
00061     // 存在しない場合だけでなく、コントロールプロセスが起動して ::CreateMutex() を実行するまで
00062     // の間も false（コントロールプロセス無し）を返す。
00063     // 従って、複数のノーマルプロセスが同時に起動した場合などは複数のコントロールプロセスが
00064     // 起動されることもある。
00065     // しかし、そのような場合でもミューテックスを最初に確保したコントロールプロセスが唯一生き残る。
00066     //
00067     if( IsStartingControlProcess() ){
00068         if( TestWriteQuit() ){  // 2007.09.04 ryoji「設定を保存して終了する」オプション処理（sakuext連携用）
00069             return 0;
00070         }
00071         if( !IsExistControlProcess() ){
00072             process = new CControlProcess( hInstance, lpCmdLine );
00073         }
00074     }
00075     else{
00076         if( !IsExistControlProcess() ){
00077             StartControlProcess();
00078         }
00079         if( WaitForInitializedControlProcess() ){   // 2006.04.10 ryoji コントロールプロセスの初期化完了待ち
00080             process = new CNormalProcess( hInstance, lpCmdLine );
00081         }
00082     }
00083     return process;
00084 }
00085
00086
00096 bool CProcessFactory::IsValidVersion()
00097 {
00098     /* Windowsバージョンのチェック */
00099     COsVersionInfo  cOsVer;
00100     if( cOsVer.GetVersion() ){
00101         if( !cOsVer.OsIsEnableVersion() ){
00102 			::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00103                 "このアプリケーションを実行するには、\nWindows95以上 または WindowsNT4.0以上のOSが必要です。\nアプリケーションを終了します。"
00104             );
00105             return false;
00106         }
00107     }else{
00108 		::MYMESSAGEBOX_A( NULL, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00109             "OSのバージョンが取得できません。\nアプリケーションを終了します。"
00110         );
00111         return false;
00112     }
00113
00114     /* システムリソースのチェック */
00115     // Jul. 5, 2001 shoji masami NTではリソースチェックを行わない
00116     if( !cOsVer.IsWin32NT() ){
00117         if( !CheckSystemResources( GSTR_APPNAME ) ){
00118             return false;
00119         }
00120     }
00121     return true;
00122 }
00123
00124
00131 bool CProcessFactory::IsStartingControlProcess()
00132 {
00133     return CCommandLine::Instance()->IsNoWindow();
00134 }
00135
00143 bool CProcessFactory::IsExistControlProcess()
00144 {
00145     HANDLE hMutexCP;
00146     hMutexCP = ::OpenMutex( MUTEX_ALL_ACCESS, FALSE, GSTR_MUTEX_SAKURA_CP );    // 2006.04.10 ryoji ::CreateMutex() を ::OpenMutex()に変更
00147     if( NULL != hMutexCP ){
00148         ::CloseHandle( hMutexCP );
00149         return true;    // コントロールプロセスが見つかった
00150     }
00151
00152     return false;   // コントロールプロセスは存在していないか、まだ CreateMutex() してない
00153 }
00154
00155 //  From Here Aug. 28, 2001 genta
00165 bool CProcessFactory::StartControlProcess()
00166 {
00167     MY_RUNNINGTIMER(cRunningTimer,"StartControlProcess" );
00168
00169     //  プロセスの起動
00170     PROCESS_INFORMATION p;
00171     STARTUPINFO s;
00172
00173     s.cb          = sizeof( s );
00174     s.lpReserved  = NULL;
00175     s.lpDesktop   = NULL;
00176     s.lpTitle     = _T("sakura control process"); //2007.09.21 kobake デバッグしやすいように、名前を付ける
00177     s.dwFlags     = STARTF_USESHOWWINDOW;
00178     s.wShowWindow = SW_SHOWDEFAULT;
00179     s.cbReserved2 = 0;
00180     s.lpReserved2 = NULL;
00181
00182     TCHAR szCmdLineBuf[1024];   //  コマンドライン
00183     TCHAR szEXE[MAX_PATH + 1];  //  アプリケーションパス名
00184     TCHAR szDir[MAX_PATH + 1];  //  ディレクトリパス名
00185
00186     ::GetModuleFileName( ::GetModuleHandle( NULL ), szEXE, _countof( szEXE ));
00187 	::auto_sprintf( szCmdLineBuf, _T("%ts -NOWIN"), szEXE );
00188     ::GetSystemDirectory( szDir, _countof( szDir ));
00189
00190     //常駐プロセス起動
00191     DWORD dwCreationFlag = CREATE_DEFAULT_ERROR_MODE;
00192 #ifdef _DEBUG
00193 //  dwCreationFlag |= DEBUG_PROCESS; //2007.09.22 kobake デバッグ用フラグ
00194 #endif
00195     BOOL bCreateResult = ::CreateProcess(
00196         szEXE,              // 実行可能モジュールの名前
00197         szCmdLineBuf,       // コマンドラインの文字列
00198         NULL,               // セキュリティ記述子
00199         NULL,               // セキュリティ記述子
00200         FALSE,              // ハンドルの継承オプション
00201         dwCreationFlag,     // 作成のフラグ
00202         NULL,               // 新しい環境ブロック
00203         szDir,              // カレントディレクトリの名前
00204         &s,                 // スタートアップ情報
00205         &p                  // プロセス情報
00206     );
00207     if( !bCreateResult ){
00208         //  失敗
00209         TCHAR* pMsg;
00210         ::FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
00211                         FORMAT_MESSAGE_IGNORE_INSERTS |
00212                         FORMAT_MESSAGE_FROM_SYSTEM,
00213                         NULL,
00214                         ::GetLastError(),
00215                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
00216                         (LPTSTR)&pMsg,
00217                         0,
00218                         NULL
00219         );
00220 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00221             _T("\'%ts\'\nプロセスの起動に失敗しました。\n%ts"), szEXE, pMsg );
00222         ::LocalFree( (HLOCAL)pMsg );    //  エラーメッセージバッファを解放
00223         return false;
00224     }
00225
00226     // 起動したプロセスが完全に立ち上がるまでちょっと待つ．
00227     //
00228     // Note: この待ちにより、ここで起動したコントロールプロセスが競争に生き残れなかった場合でも、
00229     // 唯一生き残ったコントロールプロセスが多重起動防止用ミューテックスを作成しているはず。
00230     //
00231     int nResult;
00232     nResult = ::WaitForInputIdle( p.hProcess, 10000 );  //  最大10秒間待つ
00233     if( 0 != nResult ){
00234 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00235             _T("\'%ls\'\nコントロールプロセスの起動に失敗しました。"), szEXE );
00236         ::CloseHandle( p.hThread );
00237         ::CloseHandle( p.hProcess );
00238         return false;
00239     }
00240
00241     ::CloseHandle( p.hThread );
00242     ::CloseHandle( p.hProcess );
00243
00244     return true;
00245 }
00246 //  To Here Aug. 28, 2001 genta
00247
00254 bool CProcessFactory::WaitForInitializedControlProcess()
00255 {
00256     // 初期化完了イベントを待つ
00257     //
00258     // Note: コントロールプロセス側は多重起動防止用ミューテックスを ::CreateMutex() で
00259     // 作成するよりも先に初期化完了イベントを ::CreateEvent() で作成する。
00260     //
00261     if( !IsExistControlProcess() ){
00262         // コントロールプロセスが多重起動防止用のミューテックス作成前に異常終了した場合など
00263         return false;
00264     }
00265
00266     HANDLE hEvent;
00267     hEvent = ::OpenEvent( EVENT_ALL_ACCESS, FALSE, GSTR_EVENT_SAKURA_CP_INITIALIZED );
00268     if( NULL == hEvent ){
00269         // 動作中のコントロールプロセスを旧バージョンとみなし、イベントを待たずに処理を進める
00270         //
00271         // Note: Ver1.5.9.91以前のバージョンは初期化完了イベントを作らない。
00272         // このため、コントロールプロセスが常駐していないときに複数ウィンドウをほぼ
00273         // 同時に起動すると、競争に生き残れなかったコントロールプロセスの親プロセスや、
00274         // 僅かに出遅れてコントロールプロセスを作成しなかったプロセスでも、
00275         // コントロールプロセスの初期化処理を追い越してしまい、異常終了したり、
00276         // 「タブバーが表示されない」のような問題が発生していた。
00277         //
00278         return true;
00279     }
00280     DWORD dwRet;
00281     dwRet = ::WaitForSingleObject( hEvent, 10000 ); // 最大10秒間待つ
00282     if( WAIT_TIMEOUT == dwRet ){    // コントロールプロセスの初期化が終了しない
00283         ::CloseHandle( hEvent );
00284 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00285             _T("エディタまたはシステムがビジー状態です。\nしばらく待って開きなおしてください。") );
00286         return false;
00287     }
00288     ::CloseHandle( hEvent );
00289     return true;
00290 }
00291
00298 bool CProcessFactory::TestWriteQuit()
00299 {
00300     if( CCommandLine::Instance()->IsWriteQuit() ){
00301         TCHAR szIniFileIn[_MAX_PATH];
00302         TCHAR szIniFileOut[_MAX_PATH];
00303         CShareData::GetIniFileNameDirect( szIniFileIn, szIniFileOut );
00304         if( szIniFileIn[0] != _T('\0') ){   // マルチユーザ用設定か
00305             // 既にマルチユーザ用のiniファイルがあればEXE基準のiniファイルに上書き更新して終了
00306             if( _taccess( szIniFileIn, 0 ) == 0 ){
00307                 if( ::CopyFile( szIniFileIn, szIniFileOut, FALSE ) ){
00308                     return true;
00309                 }
00310             }
00311         }else{
00312             // 既にEXE基準のiniファイルがあれば何もせず終了
00313             if( _taccess( szIniFileOut, 0 ) == 0 ){
00314                 return true;
00315             }
00316         }
00317     }
00318     return false;
00319 }
00320
00321 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcessFactory.h

sakura_core

CProcessFactory.h

プロセス生成クラスヘッダファイル [詳細]

#include "global.h"

CProcessFactory.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CProcessFactory
プロセス生成クラス [詳細]

説明

プロセス生成クラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CProcessFactory.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProcessFactory.h ソースファイル

sakura_core

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, LPTSTR 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 Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProfile.cpp

sakura_core

CProfile.cpp

INIファイル入出力 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include "CProfile.h"
#include "Debug.h"
#include "io/CTextStream.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 Nov 17 20:26:28 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProfile.cpp ソースファイル

sakura_core

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 #include <stdio.h>
00037 #include <string.h>
00038 #include <algorithm>
00039 #include "CProfile.h"
00040 #include "Debug.h"
00041 #include "io/CTextStream.h"
00042 using namespace std;
00043
00048 void CProfile::Init( void )
00049 {
00050     m_strProfileName = _T("");
00051     m_ProfileData.clear();
00052     m_bRead = true;
00053     return;
00054 }
00055
00063 void CProfile::ReadOneline(
00064     const wstring& line
00065 )
00066 {
00067     //  空行を読み飛ばす
00068     if( line.empty() )
00069         return;
00070
00071     //コメント行を読みとばす
00072     if( 0 == line.compare( 0, 2, LTEXT("//") ))
00073         return;
00074
00075     // セクション取得
00076     //  Jan. 29, 2004 genta compare使用
00077     if( line.compare( 0, 1, LTEXT("[") ) == 0
00078             && line.find( LTEXT("=") ) == line.npos
00079             && line.find( LTEXT("]") ) == ( line.size() - 1 ) ) {
00080         Section Buffer;
00081         Buffer.strSectionName = line.substr( 1, line.size() - 1 - 1 );
00082         m_ProfileData.push_back( Buffer );
00083     }
00084     // エントリ取得
00085     else if( !m_ProfileData.empty() ) { //最初のセクション以前の行のエントリは無視
00086         wstring::size_type idx = line.find( LTEXT("=") );
00087         if( line.npos != idx ) {
00088             m_ProfileData.back().mapEntries.insert( PAIR_STR_STR( line.substr(0,idx), line.substr(idx+1) ) );
00089         }
00090     }
00091 }
00092
00106 bool CProfile::ReadProfile( const TCHAR* pszProfileName )
00107 {
00108     m_strProfileName = pszProfileName;
00109
00110     CTextInputStream in(m_strProfileName.c_str());
00111     if(!in){
00112         return false;
00113     }
00114
00115     try{
00116         while( in ){
00117             //1行読込
00118             wstring line=in.ReadLineW();
00119
00120             //解析
00121             ReadOneline(line);
00122         }
00123     }
00124     catch( ... ){
00125         return false;
00126     }
00127
00128     return true;
00129 }
00130
00131
00143 bool CProfile::WriteProfile(
00144     const TCHAR* pszProfileName,
00145     const WCHAR* pszComment
00146 )
00147 {
00148     if( pszProfileName!=NULL ) {
00149         m_strProfileName = pszProfileName;
00150     }
00151
00152     std::vector< wstring > vecLine;
00153     if( NULL != pszComment ) {
00154         vecLine.push_back( LTEXT("//") + wstring( pszComment ) );
00155         vecLine.push_back( LTEXT("") );
00156     }
00157     std::vector< Section >::iterator iter;
00158     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00159     MAP_STR_STR::iterator mapiter;
00160     MAP_STR_STR::iterator mapiterEnd;
00161     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00162         //セクション名を書き込む
00163         vecLine.push_back( LTEXT("[") + iter->strSectionName + LTEXT("]") );
00164         mapiterEnd = iter->mapEntries.end();
00165         for( mapiter = iter->mapEntries.begin(); mapiter != mapiterEnd; mapiter++ ) {
00166             //エントリを書き込む
00167             vecLine.push_back( mapiter->first + LTEXT("=") + mapiter->second );
00168         }
00169         vecLine.push_back( LTEXT("") );
00170     }
00171
00172     return WriteFile( m_strProfileName, vecLine );
00173 }
00174
00183 bool CProfile::WriteFile(
00184     const tstring&          strFilename,
00185     const vector<wstring>&  vecLine
00186 )
00187 {
00188     CTextOutputStream out(strFilename.c_str());
00189     if(!out){
00190         return false;
00191     }
00192
00193     for(int i=0;i<(int)vecLine.size();i++){
00194         // 出力
00195         out.WriteString(vecLine[i].c_str());
00196         out.WriteString(L"\n");
00197     }
00198
00199     out.Close();
00200
00201     return true;
00202 }
00203
00204
00205
00206 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00207 //                            Imp                              //
00208 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00209
00217 bool CProfile::GetProfileDataImp(
00218     const wstring&  strSectionName,
00219     const wstring&  strEntryKey,
00220     wstring&        strEntryValue
00221 )
00222 {
00223     wstring strWork;
00224     std::vector< Section >::iterator iter;
00225     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00226     MAP_STR_STR::iterator mapiter;
00227     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00228         if( iter->strSectionName == strSectionName ) {
00229             mapiter = iter->mapEntries.find( strEntryKey );
00230             if( iter->mapEntries.end() != mapiter ) {
00231                 strEntryValue = mapiter->second;
00232                 return true;
00233             }
00234         }
00235     }
00236     return false;
00237 }
00238
00246 bool CProfile::SetProfileDataImp(
00247     const wstring&  strSectionName,
00248     const wstring&  strEntryKey,
00249     const wstring&  strEntryValue
00250 )
00251 {
00252     std::vector< Section >::iterator iter;
00253     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00254     MAP_STR_STR::iterator mapiter;
00255     MAP_STR_STR::iterator mapiterEnd;
00256     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00257         if( iter->strSectionName == strSectionName ) {
00258             //既存のセクションの場合
00259             mapiter = iter->mapEntries.find( strEntryKey );
00260             if( iter->mapEntries.end() != mapiter ) {
00261                 //既存のエントリの場合は値を上書き
00262                 mapiter->second = strEntryValue;
00263                 break;
00264             }
00265             else {
00266                 //既存のエントリが見つからない場合は追加
00267                 iter->mapEntries.insert( PAIR_STR_STR( strEntryKey, strEntryValue ) );
00268                 break;
00269             }
00270         }
00271     }
00272     //既存のセクションではない場合，セクション及びエントリを追加
00273     if( iterEnd == iter ) {
00274         Section Buffer;
00275         Buffer.strSectionName = strSectionName;
00276         Buffer.mapEntries.insert( PAIR_STR_STR( strEntryKey, strEntryValue ) );
00277         m_ProfileData.push_back( Buffer );
00278     }
00279     return true;
00280 }
00281
00282
00283
00284 void CProfile::DUMP( void )
00285 {
00286 #ifdef _DEBUG
00287     std::vector< Section >::iterator iter;
00288     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00289     //  2006.02.20 ryoji: MAP_STR_STR_ITER削除時の修正漏れによるコンパイルエラー修正
00290     MAP_STR_STR::iterator mapiter;
00291     MAP_STR_STR::iterator mapiterEnd;
00292     MYTRACE_A( "\n\nCProfile::DUMP()======================" );
00293     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00294         MYTRACE_A( "\n■strSectionName=%ls", iter->strSectionName.c_str() );
00295         mapiterEnd = iter->mapEntries.end();
00296         for( mapiter = iter->mapEntries.begin(); mapiter != mapiterEnd; mapiter++ ) {
00297             MYTRACE_A( "\"%ls\" = \"%ls\"\n", mapiter->first.c_str(), mapiter->second.c_str() );
00298         }
00299     }
00300     MYTRACE_A( "========================================\n" );
00301 #endif
00302     return;
00303 }
00304
00305 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProfile.h

sakura_core

CProfile.h

INIファイル入出力 [詳細]

#include <windows.h>
#include <string>
#include <vector>
#include <map>

CProfile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CProfile
INIファイル入出力 [詳細]
struct | CProfile::Section

マクロ定義

#define | _INI_T LTEXT

説明

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 で定義されています。

マクロ定義

#define _INI_T LTEXT

CProfile.h の 95 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CProfile.h ソースファイル

sakura_core

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     //文字列型
00054     typedef std::wstring wstring;
00055     typedef std::tstring tstring;
00056
00057     typedef std::pair< wstring, wstring > PAIR_STR_STR;
00058     typedef std::map< wstring, wstring > MAP_STR_STR;
00059     struct Section
00060     {
00061         wstring     strSectionName;
00062         MAP_STR_STR mapEntries;
00063     };
00064
00065 public:
00066     CProfile() {}
00067     ~CProfile() {};
00068     void Init( void );
00069     bool IsReadingMode( void ) { return m_bRead; }
00070     void SetReadingMode( void ) { m_bRead = true; }
00071     void SetWritingMode( void ) { m_bRead = false; }
00072     bool ReadProfile( const TCHAR* );
00073     bool WriteProfile( const TCHAR*, const WCHAR* pszComment);
00074
00075
00076
00077     void DUMP( void );
00078
00079 protected:
00080     void ReadOneline( const wstring& line );
00081     bool WriteFile( const tstring& strFilename, const std::vector< wstring >& vecLine);
00082
00083
00084     bool GetProfileDataImp( const wstring& strSectionName, const wstring& strEntryKey, wstring& strEntryValue);
00085
00086     bool SetProfileDataImp( const wstring& strSectionName, const wstring& strEntryKey, const wstring& strEntryValue );
00087
00088 protected:
00089     // メンバ変数
00090     tstring                 m_strProfileName;
00091     std::vector< Section >  m_ProfileData;
00092     bool                    m_bRead;
00093 };
00094
00095 #define _INI_T LTEXT
00096
00097
00098
00099
00101 #endif /* _CPROFILE_H_ */
00102
00103 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComBackup.cpp

sakura_core

CPropComBackup.cpp

共通設定ダイアログボックス、「バックアップ」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "util/shell.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 Nov 17 20:26:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComBackup.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00022
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 //  int         nDummy;
00107 //  int         nCharChars;
00108
00109     switch( uMsg ){
00110
00111     case WM_INITDIALOG:
00112         /* ダイアログデータの設定 p1 */
00113         SetData_PROP_BACKUP( hwndDlg );
00114         // Modified by KEITA for WIN64 2003.9.6
00115 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00116
00117         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00118         //  Oct. 5, 2002 genta バックアップフォルダ名の入力サイズを指定
00119         //  Oct. 8, 2002 genta 最後に付加される\の領域を残すためバッファサイズ-1しか入力させない
00120         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ),  EM_LIMITTEXT, _countof2(m_Common.m_sBackup.m_szBackUpFolder) - 1 - 1, 0 );
00121         // 20051107 aroka
00122         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ),  EM_LIMITTEXT, _countof2(m_Common.m_sBackup.m_szBackUpPathAdvanced) - 1 - 1, 0 );
00123         return TRUE;
00124
00125     case WM_NOTIFY:
00126         idCtrl = (int)wParam;
00127         pNMHDR = (NMHDR*)lParam;
00128         pMNUD  = (NM_UPDOWN*)lParam;
00129         switch( idCtrl ){
00130         default:
00131             switch( pNMHDR->code ){
00132             case PSN_HELP:
00133                 OnHelp( hwndDlg, IDD_PROP_BACKUP );
00134                 return TRUE;
00135             case PSN_KILLACTIVE:
00136                 /* ダイアログデータの取得 p1 */
00137                 GetData_PROP_BACKUP( hwndDlg );
00138                 return TRUE;
00139 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00140             case PSN_SETACTIVE:
00141                 m_nPageNum = ID_PAGENUM_BACKUP; //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00142                 return TRUE;
00143             }
00144             break;
00145
00146         case IDC_SPIN_BACKUP_GENS:
00147             /* バックアップファイルの世代数 */
00148             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, NULL, FALSE );
00149             if( pMNUD->iDelta < 0 ){
00150                 ++nVal;
00151             }else
00152             if( pMNUD->iDelta > 0 ){
00153                 --nVal;
00154             }
00155             if( nVal < 1 ){
00156                 nVal = 1;
00157             }
00158             if( nVal > 99 ){
00159                 nVal = 99;
00160             }
00161             ::SetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, nVal, FALSE );
00162             return TRUE;
00163         }
00164 //****  To Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00165         break;
00166
00167     case WM_COMMAND:
00168         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00169         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00170         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00171         switch( wNotifyCode ){
00172         /* ボタン／チェックボックスがクリックされた */
00173         case BN_CLICKED:
00174             switch( wID ){
00175             case IDC_RADIO_BACKUP_TYPE1:
00176                 //  Aug. 16, 2000 genta
00177                 //  バックアップ方式追加
00178             case IDC_RADIO_BACKUP_TYPE3:
00179             case IDC_CHECK_BACKUP:
00180             case IDC_CHECK_BACKUPFOLDER:
00181                 //  Aug. 21, 2000 genta
00182             case IDC_CHECK_AUTOSAVE:
00183             //  Jun.  5, 2004 genta IDC_RADIO_BACKUP_TYPE2を廃止して，
00184             //  IDC_RADIO_BACKUP_DATETYPE1, IDC_RADIO_BACKUP_DATETYPE2を同列に持ってきた
00185             case IDC_RADIO_BACKUP_DATETYPE1:
00186             case IDC_RADIO_BACKUP_DATETYPE2:
00187             // 20051107 aroka
00188             case IDC_CHECK_BACKUP_ADVANCED:
00189                 GetData_PROP_BACKUP( hwndDlg );
00190                 UpdateBackupFile( hwndDlg );
00191                 EnableBackupInput(hwndDlg);
00192                 return TRUE;
00193             case IDC_BUTTON_BACKUP_FOLDER_REF:  /* フォルダ参照 */
00194                 {
00195                     /* バックアップを作成するフォルダ */
00196                     TCHAR       szFolder[_MAX_PATH];
00197 					::DlgItem_GetText( hwndDlg, IDC_EDIT_BACKUPFOLDER, szFolder, _countof( szFolder ));
00198
00199                     if( SelectDir( hwndDlg, _T("バックアップを作成するフォルダを選んでください"), szFolder, szFolder ) ){
00200                         _tcscpy( m_Common.m_sBackup.m_szBackUpFolder, szFolder );
00201 						::DlgItem_SetText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_sBackup.m_szBackUpFolder );
00202                     }
00203                     UpdateBackupFile( hwndDlg );
00204                 }
00205                 return TRUE;
00206             default: // 20051107 aroka Default節 追加
00207                 GetData_PROP_BACKUP( hwndDlg );
00208                 UpdateBackupFile( hwndDlg );
00209             }
00210             break;  /* BN_CLICKED */
00211         case EN_CHANGE: // 20051107 aroka フォルダが変更されたらリアルタイムにエディットボックス内を更新
00212             switch( wID ){
00213             case IDC_EDIT_BACKUPFOLDER:
00214 				::DlgItem_GetText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_sBackup.m_szBackUpFolder, _countof2(m_Common.m_sBackup.m_szBackUpFolder) );
00215                 UpdateBackupFile( hwndDlg );
00216                 break;
00217             }
00218             break;  /* EN_CHANGE */
00219         }
00220         break;  /* WM_COMMAND */
00221
00222 //@@@ 2001.02.04 Start by MIK: Popup Help
00223     case WM_HELP:
00224         {
00225             HELPINFO *p = (HELPINFO *)lParam;
00226             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00227         }
00228         return TRUE;
00229         /*NOTREACHED*/
00230         //break;
00231 //@@@ 2001.02.04 End
00232
00233 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00234     //Context Menu
00235     case WM_CONTEXTMENU:
00236         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00237         return TRUE;
00238 //@@@ 2001.12.22 End
00239
00240     }
00241     return FALSE;
00242 }
00243
00244
00251 void CPropCommon::SetData_PROP_BACKUP( HWND hwndDlg )
00252 {
00253 //  BOOL    bRet;
00254
00255 //  BOOL                m_bGrepExitConfirm; /* Grepモードで保存確認するか */
00256
00257
00258     /* バックアップの作成 */
00259     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP, m_Common.m_sBackup.m_bBackUp );
00260     /* バックアップの作成前に確認 */
00261     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPDIALOG, m_Common.m_sBackup.m_bBackUpDialog );
00262 //  /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 「バックアップの作成」に連動させる
00263 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPFOLDER, .m_sBackup.m_bBackUpFolder );
00264
00265     /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00266     //  Jun.  5, 2004 genta 元の拡張子を残す設定(5,6)を追加．
00267     switch( m_Common.m_sBackup.GetBackupType() ){
00268     case 2:
00269         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1, 1 ); // 付加する日付のタイプ(現時刻)
00270         break;
00271     case 3:
00272     case 6:
00273         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_TYPE3, 1 );
00274         break;
00275     case 4:
00276         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2, 1 ); // 付加する日付のタイプ(前回の保存時刻)
00277         break;
00278     case 5:
00279     case 1:
00280     default:
00281         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_TYPE1, 1 );
00282         break;
00283     }
00284
00285     //  Jun.  5, 2004 genta 元の拡張子を残す設定(5,6)を追加．
00286     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT,
00287         ( m_Common.m_sBackup.GetBackupType() == 5 || m_Common.m_sBackup.GetBackupType() == 6 ) ? 1 : 0
00288      );
00289
00290     /* バックアップファイル名：日付の年 */
00291     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_YEAR, m_Common.m_sBackup.GetBackupOpt(BKUP_YEAR) );
00292     /* バックアップファイル名：日付の月 */
00293     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_MONTH, m_Common.m_sBackup.GetBackupOpt(BKUP_MONTH) );
00294     /* バックアップファイル名：日付の日 */
00295     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_DAY, m_Common.m_sBackup.GetBackupOpt(BKUP_DAY) );
00296     /* バックアップファイル名：日付の時 */
00297     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_HOUR, m_Common.m_sBackup.GetBackupOpt(BKUP_HOUR) );
00298     /* バックアップファイル名：日付の分 */
00299     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_MIN, m_Common.m_sBackup.GetBackupOpt(BKUP_MIN) );
00300     /* バックアップファイル名：日付の秒 */
00301     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_SEC, m_Common.m_sBackup.GetBackupOpt(BKUP_SEC) );
00302
00303     /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 移動：連動対象にする。
00304     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPFOLDER, m_Common.m_sBackup.m_bBackUpFolder );
00305
00306     /* バックアップを作成するフォルダ */
00307 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_sBackup.m_szBackUpFolder );
00308
00309     /* バックアップファイルをごみ箱に放り込む */ //@@@ 2001.12.11 add MIK
00310     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX, m_Common.m_sBackup.m_bBackUpDustBox ); //@@@ 2001.12.11 add MIK
00311
00312     /* バックアップ先フォルダを詳細設定する */ // 20051107 aroka
00313     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_ADVANCED, m_Common.m_sBackup.m_bBackUpPathAdvanced );
00314
00315     /* バックアップを作成するフォルダの詳細設定 */ // 20051107 aroka
00316 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_sBackup.m_szBackUpPathAdvanced );
00317
00318     /* バックアップを作成するフォルダの詳細設定 */ // 20051128 aroka
00319     switch( m_Common.m_sBackup.GetBackupTypeAdv() ){
00320     case 2:
00321         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A, 1 );    // 付加する日付のタイプ(現時刻)
00322         break;
00323     case 4:
00324         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A, 1 );    // 付加する日付のタイプ(前回の保存時刻)
00325         break;
00326     default:
00327         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A, 1 );
00328         break;
00329     }
00330
00331     //  From Here Aug. 16, 2000 genta
00332     int nN = m_Common.m_sBackup.GetBackupCount();
00333     nN = nN < 1  ?  1 : nN;
00334     nN = nN > 99 ? 99 : nN;
00335
00336     ::SetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, nN, FALSE );   //  Oct. 29, 2001 genta
00337     //  To Here Aug. 16, 2000 genta
00338
00339     UpdateBackupFile( hwndDlg );
00340
00341     EnableBackupInput(hwndDlg);
00342     return;
00343 }
00344
00345
00346
00347
00348
00349
00350
00351
00352 /* ダイアログデータの取得 */
00353 int CPropCommon::GetData_PROP_BACKUP( HWND hwndDlg )
00354 {
00355 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00356 //  m_nPageNum = ID_PAGENUM_BACKUP;
00357
00358     /* バックアップの作成 */
00359     m_Common.m_sBackup.m_bBackUp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP );
00360     /* バックアップの作成前に確認 */
00361     m_Common.m_sBackup.m_bBackUpDialog = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPDIALOG );
00362 //  /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 「バックアップの作成」に連動させる
00363 //  m_Common.m_sBackup.m_bBackUpFolder = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER );
00364
00365
00366     /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00367     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ) ){
00368         //  Jun.  5, 2005 genta 拡張子を残すパターンを追加
00369         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT )){
00370             m_Common.m_sBackup.SetBackupType(5);
00371         }
00372         else {
00373             m_Common.m_sBackup.SetBackupType(1);
00374         }
00375     }
00376 //  if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE2 ) ){
00377         // 2001/06/05 Start by asa-o: 日付のタイプ
00378         if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ) ){
00379             m_Common.m_sBackup.SetBackupType(2);    // 現時刻
00380         }
00381         if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ) ){
00382             m_Common.m_sBackup.SetBackupType(4);    // 前回の保存時刻
00383         }
00384         // 2001/06/05 End
00385 //  }
00386
00387     //  Aug. 16, 2000 genta
00388     //  3 = *.b??
00389     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ) ){
00390         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT )){
00391             m_Common.m_sBackup.SetBackupType(6);
00392         }
00393         else {
00394             m_Common.m_sBackup.SetBackupType(3);
00395         }
00396     }
00397
00398     /* バックアップファイル名：日付の年 */
00399     m_Common.m_sBackup.SetBackupOpt(BKUP_YEAR, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_YEAR ) == BST_CHECKED);
00400     /* バックアップファイル名：日付の月 */
00401     m_Common.m_sBackup.SetBackupOpt(BKUP_MONTH, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_MONTH ) == BST_CHECKED);
00402     /* バックアップファイル名：日付の日 */
00403     m_Common.m_sBackup.SetBackupOpt(BKUP_DAY, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_DAY ) == BST_CHECKED);
00404     /* バックアップファイル名：日付の時 */
00405     m_Common.m_sBackup.SetBackupOpt(BKUP_HOUR, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_HOUR ) == BST_CHECKED);
00406     /* バックアップファイル名：日付の分 */
00407     m_Common.m_sBackup.SetBackupOpt(BKUP_MIN, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_MIN ) == BST_CHECKED);
00408     /* バックアップファイル名：日付の秒 */
00409     m_Common.m_sBackup.SetBackupOpt(BKUP_SEC, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_SEC ) == BST_CHECKED);
00410
00411     /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 移動
00412     m_Common.m_sBackup.m_bBackUpFolder = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER );
00413
00414     /* バックアップを作成するフォルダ */
00415     //  Oct. 5, 2002 genta サイズをsizeof()で指定
00416     //  Oct. 8, 2002 genta 後ろに\が追加されるので，1文字余裕を見る必要がある．
00417 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_sBackup.m_szBackUpFolder, _countof2(m_Common.m_sBackup.m_szBackUpFolder) - 1);
00418
00419     /* バックアップファイルをごみ箱に放り込む */ //@@@ 2001.12.11 add MIK
00420     m_Common.m_sBackup.m_bBackUpDustBox = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX );    //@@@ 2001.12.11 add MIK
00421
00422     /* 指定フォルダにバックアップを作成する詳細設定 */ // 20051107 aroka
00423     m_Common.m_sBackup.m_bBackUpPathAdvanced = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_ADVANCED );
00424     /* バックアップを作成するフォルダ */ // 20051107 aroka
00425 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_sBackup.m_szBackUpPathAdvanced, _countof2( m_Common.m_sBackup.m_szBackUpPathAdvanced ) - 1);
00426
00427     // 20051128 aroka 詳細設定の日付のタイプ
00428     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ) ){
00429         m_Common.m_sBackup.SetBackupTypeAdv(2); // 現時刻
00430     }
00431     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ) ){
00432         m_Common.m_sBackup.SetBackupTypeAdv(4); // 前回の保存時刻
00433     }
00434
00435     //  From Here Aug. 16, 2000 genta
00436     //  世代数の取得
00437     int  nN;
00438     nN = ::GetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, NULL, FALSE );    //  Oct. 29, 2001 genta
00439
00440 //  for( nN = 0, pDigit = szNumBuf; *pDigit != '\0'; pDigit++ ){
00441 //      if( '0' <= *pDigit && *pDigit <= '9' ){
00442 //          nN = nN * 10 + *pDigit - '0';
00443 //      }
00444 //      else
00445 //          break;
00446 //  }
00447     nN = nN < 1  ?  1 : nN;
00448     nN = nN > 99 ? 99 : nN;
00449     m_Common.m_sBackup.SetBackupCount( nN );
00450     //  To Here Aug. 16, 2000 genta
00451
00452     return TRUE;
00453 }
00454
00455 //  From Here Aug. 16, 2000 genta
00466 void CPropCommon::EnableBackupInput(HWND hwndDlg)
00467 {
00468     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP ) ){
00469         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ), TRUE ); // 20050628 aroka
00470         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ) ){
00471             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), FALSE );
00472             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), FALSE );
00473             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00474             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00475             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00476             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00477             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00478             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00479             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00480             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00481             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), FALSE );
00482             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), FALSE );
00483             //  Jun.  5, 2005 genta 追加
00484             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00485             //  20051107 aroka 追加
00486             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // 20051107 aroka
00487             // 詳細設定
00488             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), TRUE );
00489             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_SHOW );
00490             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), TRUE );
00491             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_SHOW );
00492             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), TRUE );
00493             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_SHOW );
00494             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), TRUE );
00495             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_SHOW );
00496         }else{
00497             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), TRUE );
00498             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), TRUE );
00499             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), TRUE );
00500             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), TRUE );
00501
00502             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ) ||
00503                 ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 )){
00504                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), TRUE );
00505             }
00506             else {
00507                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00508             }
00509
00510             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ) ){
00511                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), TRUE );
00512                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), TRUE );
00513                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), TRUE );  // added Oct. 6, JEPRO Enableになるように変更
00514             }
00515             else {
00516                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00517                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00518                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // added Oct. 6, JEPRO Disableになるように変更
00519             }
00520             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ) ||
00521                 ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ) ){
00522                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), TRUE );
00523                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), TRUE );
00524                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), TRUE );
00525                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), TRUE );
00526                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), TRUE );
00527                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), TRUE );
00528             }else{
00529                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00530                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00531                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00532                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00533                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00534                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00535             }
00536
00537             // 詳細設定
00538             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), FALSE );
00539             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_HIDE );
00540             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_HIDE );
00541             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_HIDE );
00542             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_HIDE );
00543         }
00544
00545         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPFOLDER ), TRUE );
00546         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER ) ){
00547             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), TRUE );    // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00548             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), TRUE );
00549             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), TRUE );
00550         }else{
00551             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), FALSE );   // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00552             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), FALSE );
00553             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), FALSE );
00554         }
00555         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX ), TRUE );  //@@@ 2001.12.11 add MIK
00556
00557         // 作成前に確認
00558         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPDIALOG ), TRUE );
00559     }else{
00560         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), FALSE );
00561         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), FALSE );
00562         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00563         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00564         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00565         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00566         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00567         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00568         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00569         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00570         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPDIALOG ), FALSE );
00571         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPFOLDER ), FALSE );
00572         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), FALSE );   // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00573         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), FALSE );
00574         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), FALSE );
00575         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), FALSE );
00576         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), FALSE );
00577         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX ), FALSE ); //@@@ 2001.12.11 add MIK
00578         //  Jun.  5, 2005 genta 追加
00579         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00580         //  20051107 aroka 追加
00581         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // 20051107 aroka
00582         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ), FALSE );
00583         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), FALSE );
00584         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_HIDE );
00585         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_HIDE );
00586         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_HIDE );
00587         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_HIDE );
00588     }
00589 }
00590 //  To Here Aug. 16, 2000 genta
00591
00592
00600 void CPropCommon::UpdateBackupFile(HWND hwndDlg)    //  バックアップファイルの詳細設定
00601 {
00602     wchar_t temp[MAX_PATH];
00603     /* バックアップを作成するファイル */ // 20051107 aroka
00604     if( !m_Common.m_sBackup.m_bBackUp ){
00605         wcscpy( temp, LTEXT("") );
00606     }
00607     else{
00608         if( m_Common.m_sBackup.m_bBackUpFolder ){
00609             wcscpy( temp, LTEXT("") );
00610         }
00611         else if( m_Common.m_sBackup.m_bBackUpDustBox  ){
00612             auto_sprintf( temp, LTEXT("%ls\\"), LTEXT("(ゴミ箱)") );
00613         }
00614         else{
00615             auto_sprintf( temp, LTEXT(".\\") );
00616         }
00617
00618         switch( m_Common.m_sBackup.GetBackupType() ){
00619         case 1: // .bak
00620             wcscat( temp, LTEXT("$0.bak") );
00621             break;
00622         case 5: // .*.bak
00623             wcscat( temp, LTEXT("$0.*.bak") );
00624             break;
00625         case 3: // .b??
00626             wcscat( temp, LTEXT("$0.b??") );
00627             break;
00628         case 6: // .*.b??
00629             wcscat( temp, LTEXT("$0.*.b??") );
00630             break;
00631         case 2: //  日付，時刻
00632         case 4: //  日付，時刻
00633             wcscat( temp, LTEXT("$0_") );
00634
00635             if( m_Common.m_sBackup.GetBackupOpt(BKUP_YEAR) ){   /* バックアップファイル名：日付の年 */
00636                 wcscat( temp, LTEXT("%Y") );
00637             }
00638             if( m_Common.m_sBackup.GetBackupOpt(BKUP_MONTH) ){  /* バックアップファイル名：日付の月 */
00639                 wcscat( temp, LTEXT("%m") );
00640             }
00641             if( m_Common.m_sBackup.GetBackupOpt(BKUP_DAY) ){    /* バックアップファイル名：日付の日 */
00642                 wcscat( temp, LTEXT("%d") );
00643             }
00644             if( m_Common.m_sBackup.GetBackupOpt(BKUP_HOUR) ){   /* バックアップファイル名：日付の時 */
00645                 wcscat( temp, LTEXT("%H") );
00646             }
00647             if( m_Common.m_sBackup.GetBackupOpt(BKUP_MIN) ){    /* バックアップファイル名：日付の分 */
00648                 wcscat( temp, LTEXT("%M") );
00649             }
00650             if( m_Common.m_sBackup.GetBackupOpt(BKUP_SEC) ){    /* バックアップファイル名：日付の秒 */
00651                 wcscat( temp, LTEXT("%S") );
00652             }
00653
00654             wcscat( temp, LTEXT(".*") );
00655             break;
00656         default:
00657             break;
00658         }
00659     }
00660     if( !m_Common.m_sBackup.m_bBackUpPathAdvanced ){    // 詳細設定モードでないときだけ自動更新する
00661         auto_sprintf( m_Common.m_sBackup.m_szBackUpPathAdvanced, _T("%ls"), temp );
00662 		::DlgItem_SetText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_sBackup.m_szBackUpPathAdvanced );
00663     }
00664     return;
00665 }
00666 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComCustmenu.cpp

sakura_core

CPropComCustmenu.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include "CDlgInput1.h"
#include "CDlgOpenFile.h"
#include "debug.h"
#include "io/CTextStream.h"
#include "util/shell.h"
#include "util/file.h"
#include "sakura.hh"

CPropComCustmenu.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | WSTR_CUSTMENU_HEAD_V2 L"SakuraEditorMenu_Ver2"

変数

static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「カスタムメニュー」ページ

作者:
Norio Nakatani

CPropComCustmenu.cpp で定義されています。

マクロ定義

#define WSTR_CUSTMENU_HEAD_V2 L"SakuraEditorMenu_Ver2"

CPropComCustmenu.cpp の 29 行で定義されています。

参照元 CPropCommon::p8_Export_CustMenuSetting(), と 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 の 35 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComCustmenu.cpp ソースファイル

sakura_core

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 "debug.h" // 2002/2/10 aroka
00022 #include "io/CTextStream.h"
00023 #include "util/shell.h"
00024 #include "util/file.h"
00025 using namespace std;
00026
00027 // Sept. 5, 2000 JEPRO 半角カタカナの全角化に伴い文字長を変更(27→46)
00028 // 2007.10.02 kobake UNICODE化に際して、カスタムメニューファイルの仕様を変更
00029 #define WSTR_CUSTMENU_HEAD_V2       L"SakuraEditorMenu_Ver2"
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[] = {  //10100
00036     IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE,             //メニューから機能削除
00037     IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR,    //セパレータ挿入
00038     IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT,             //メニューへ機能挿入
00039     IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD,                //メニューへ機能追加
00040     IDC_BUTTON_UP,                  HIDC_BUTTON_UP,                 //メニューの機能を上へ移動
00041     IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN,               //メニューの機能を下へ移動
00042     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT,             //インポート
00043     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT,             //エクスポート
00044     IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND,            //機能の種別
00045     IDC_COMBO_MENU,                 HIDC_COMBO_MENU,                //メニューの種別
00046     IDC_LIST_FUNC,                  HIDC_LIST_FUNC,                 //機能一覧
00047     IDC_LIST_RES,                   HIDC_LIST_RES,                  //メニュー一覧
00048 //  IDC_LABEL_MENUFUNCKIND,         -1,
00049 //  IDC_LABEL_MENUCHOICE,           -1,
00050 //  IDC_LABEL_MENUFUNC,             -1,
00051 //  IDC_LABEL_MENU,                 -1,
00052 //  IDC_LABEL_MENUKEYCHANGE,        -1,
00053 //  IDC_STATIC,                     -1,
00054     0, 0
00055 };
00056 #else
00057 static const DWORD p_helpids[] = {  //10100
00058     IDC_BUTTON_DELETE,              10100,  //メニューから機能削除
00059     IDC_BUTTON_INSERTSEPARATOR,     10101,  //セパレータ挿入
00060     IDC_BUTTON_INSERT,              10102,  //メニューへ機能挿入
00061     IDC_BUTTON_ADD,                 10103,  //メニューへ機能追加
00062     IDC_BUTTON_UP,                  10104,  //メニューの機能を上へ移動
00063     IDC_BUTTON_DOWN,                10105,  //メニューの機能を下へ移動
00064     IDC_BUTTON_IMPORT,              10106,  //インポート
00065     IDC_BUTTON_EXPORT,              10107,  //エクスポート
00066     IDC_COMBO_FUNCKIND,             10130,  //機能の種別
00067     IDC_COMBO_MENU,                 10131,  //メニューの種別
00068     IDC_LIST_FUNC,                  10150,  //機能一覧
00069     IDC_LIST_RES,                   10151,  //メニュー一覧
00070     IDC_LABEL_MENUFUNCKIND,         -1,
00071     IDC_LABEL_MENUCHOICE,           -1,
00072     IDC_LABEL_MENUFUNC,             -1,
00073     IDC_LABEL_MENU,                 -1,
00074     IDC_LABEL_MENUKEYCHANGE,        -1,
00075 //  IDC_STATIC,                     -1,
00076     0, 0
00077 };
00078 #endif
00079 //@@@ 2001.02.04 End
00080
00081 //  From Here Jun. 2, 2001 genta
00088 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_CUSTMENU(
00089     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00090 {
00091     return DlgProc( &CPropCommon::DispatchEvent_p8, hwndDlg, uMsg, wParam, lParam );
00092 }
00093 //  To Here Jun. 2, 2001 genta
00094
00095 /* p8 メッセージ処理 */
00096 INT_PTR CPropCommon::DispatchEvent_p8(
00097     HWND    hwndDlg,    // handle to dialog box
00098     UINT    uMsg,       // message
00099     WPARAM  wParam,     // first message parameter
00100     LPARAM  lParam      // second message parameter
00101 )
00102 {
00103     WORD        wNotifyCode;
00104     WORD        wID;
00105     HWND        hwndCtl;
00106     NMHDR*      pNMHDR;
00107     NM_UPDOWN*  pMNUD;
00108     int         idCtrl;
00109     static HWND hwndCOMBO_FUNCKIND;
00110     static HWND hwndLIST_FUNC;
00111     static HWND hwndCOMBO_MENU;
00112     static HWND hwndLIST_RES;
00113
00114     int         i;
00115
00116     int         nIdx1;
00117     int         nIdx2;
00118     int         nNum2;
00119     int         nIdx3;
00120     int         nIdx4;
00121     WCHAR       szLabel[300];
00122     WCHAR       szLabel2[300];
00123     int         nFunc;
00124
00125     CDlgInput1  cDlgInput1;
00126
00127     switch( uMsg ){
00128     case WM_INITDIALOG:
00129         /* ダイアログデータの設定 p8 */
00130         SetData_p8( hwndDlg );
00131         // Modified by KEITA for WIN64 2003.9.6
00132 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00133
00134         /* コントロールのハンドルを取得 */
00135         hwndCOMBO_FUNCKIND = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00136         hwndLIST_FUNC = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00137         hwndCOMBO_MENU = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00138         hwndLIST_RES = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00139
00140         /* キー選択時の処理 */
00141 		::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCOMBO_FUNCKIND );
00142
00143         ::SetTimer( hwndDlg, 1, 300, NULL );
00144
00145         return TRUE;
00146
00147     case WM_NOTIFY:
00148         idCtrl = (int)wParam;
00149         pNMHDR = (NMHDR*)lParam;
00150         pMNUD  = (NM_UPDOWN*)lParam;
00151         switch( pNMHDR->code ){
00152         case PSN_HELP:
00153             OnHelp( hwndDlg, IDD_PROP_CUSTMENU );
00154             return TRUE;
00155         case PSN_KILLACTIVE:
00156 //          MYTRACE_A( "p8 PSN_KILLACTIVE\n" );
00157             /* ダイアログデータの取得 p8 */
00158             GetData_p8( hwndDlg );
00159             return TRUE;
00160 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00161         case PSN_SETACTIVE:
00162             m_nPageNum = ID_PAGENUM_CUSTMENU;
00163             return TRUE;
00164         }
00165         break;
00166
00167     case WM_COMMAND:
00168         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00169         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00170         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00171
00172         switch( wNotifyCode ){
00173         /* ボタン／チェックボックスがクリックされた */
00174         case BN_CLICKED:
00175             switch( wID ){
00176             case IDC_BUTTON_IMPORT: /* インポート */
00177                 /* p8:カスタムメニュー設定をインポートする */
00178                 p8_Import_CustMenuSetting( hwndDlg );
00179                 return TRUE;
00180             case IDC_BUTTON_EXPORT: /* エクスポート */
00181                 /* p8:カスタムメニュー設定をエクスポートする */
00182                 p8_Export_CustMenuSetting( hwndDlg );
00183                 return TRUE;
00184             case IDC_BUTTON_MENUNAME:
00185                 //  メニュー文字列の設定
00186                 nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00187                 if( LB_ERR == nIdx1 ){
00188                     break;
00189                 }
00190 				::DlgItem_GetText( hwndDlg, IDC_EDIT_MENUNAME,
00191                     m_Common.m_sCustomMenu.m_szCustMenuNameArr[nIdx1], MAX_CUSTOM_MENU_NAME_LEN );
00192                 //  Combo Boxも変更 削除＆再登録
00193 				::SendMessageAny( hwndCOMBO_MENU, CB_DELETESTRING, nIdx1, 0 );
00194                 ::SendMessage( hwndCOMBO_MENU, CB_INSERTSTRING, nIdx1,
00195                     (LPARAM)m_Common.m_sCustomMenu.m_szCustMenuNameArr[nIdx1] );
00196                 // 削除すると選択が解除されるので，元に戻す
00197 				::SendMessageAny( hwndCOMBO_MENU, CB_SETCURSEL, nIdx1, 0 );
00198                 return TRUE;
00199             }
00200             break;  /* BN_CLICKED */
00201         }
00202
00203         if( hwndCOMBO_MENU == hwndCtl ){
00204             switch( wNotifyCode ){
00205             case CBN_SELCHANGE:
00206                 nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00207                 if( CB_ERR == nIdx1 ){
00208                     break;
00209                 }
00210                 /* メニュー項目一覧に文字列をセット（リストボックス）*/
00211 				::SendMessageAny( hwndLIST_RES, LB_RESETCONTENT, 0, 0 );
00212                 for( i = 0; i < m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]; ++i ){
00213                     if( 0 == m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i] ){
00214                         auto_strcpy( szLabel2, LTEXT(" ─────────────") ); //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00215                     }else{
00216                         //  Oct. 3, 2001 genta
00217                         m_cLookup.Funccode2Name( m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i], szLabel, 256 );
00218                         /* キー */
00219                         if( '\0' == m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i] ){
00220                             _tcscpy( szLabel2, szLabel );
00221                         }else{
00222                             auto_sprintf( szLabel2, LTEXT("%ls(%hc)"), szLabel, m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i] );
00223                         }
00224                     }
00225 					::List_AddString( hwndLIST_RES, szLabel2 );
00226                 }
00227                 //  Oct. 15, 2001 genta メニュー名を設定
00228 				::DlgItem_SetText( hwndDlg, IDC_EDIT_MENUNAME, m_Common.m_sCustomMenu.m_szCustMenuNameArr[nIdx1] );
00229
00230                 break;  /* CBN_SELCHANGE */
00231             }
00232         }else
00233         if( hwndLIST_RES == hwndCtl ){
00234             switch( wNotifyCode ){
00235             case LBN_DBLCLK:
00236                 nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00237                 if( LB_ERR == nIdx1 ){
00238                     break;
00239                 }
00240                 nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00241                 if( LB_ERR == nIdx2 ){
00242                     break;
00243                 }
00244
00245                 if( 0 == m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2] ){
00246                     break;
00247                 }
00248
00249 //          idListBox = (int) LOWORD(wParam);   // identifier of list box
00250 //          hwndListBox = (HWND) lParam;        // handle of list box
00251                 TCHAR       szKey[2];
00252                 auto_sprintf( szKey, _T("%hc"), m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00253                 {
00254                     BOOL bDlgInputResult = cDlgInput1.DoModal(
00255                         m_hInstance,
00256                         hwndDlg,
00257                         _T("メニューアイテムのアクセスキー設定"),
00258                         _T("キーを入力してください。"),
00259                         1,
00260                         szKey
00261                     );
00262                     if( FALSE == bDlgInputResult ){
00263                         return TRUE;
00264                     }
00265                 }
00266                 //  Oct. 3, 2001 genta
00267                 m_cLookup.Funccode2Name( m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2], szLabel, 255 );
00268                 //::LoadString( m_hInstance, m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2], szLabel, 255 );
00269
00270                 {
00271                     KEYCODE keycode[3]={0}; _tctomb(szKey, keycode);
00272                     m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = keycode[0];
00273                 }
00274 //@@@ 2002.01.08 YAZAKI カスタムメニューでアクセスキーを消した時、左カッコ ( がメニュー項目に一回残るバグ修正
00275                 if (m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2]){
00276                     auto_sprintf( szLabel2, LTEXT("%ts(%hc)"),
00277                         szLabel,
00278                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2]
00279                     );
00280                 }
00281                 else {
00282                     auto_sprintf( szLabel2, LTEXT("%ls"), szLabel );
00283                 }
00284
00285                 ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel2 );
00286 				::SendMessageAny( hwndLIST_RES, LB_DELETESTRING, nIdx2 + 1, 0 );
00287
00288                 break;
00289             case LBN_SELCHANGE:
00290                 nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00291                 if( LB_ERR == nIdx1 ){
00292                     break;
00293                 }
00294
00295                 if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00296                     break;
00297                 }
00298
00299                 nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00300                 if( LB_ERR == nIdx2 ){
00301                     break;
00302                 }
00303
00304                 /* キー */
00305                 if( '\0' == m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ||
00306                     ' '  == m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ){
00307                 }else{
00308                 }
00309                 break;  /* LBN_SELCHANGE */
00310             }
00311         }
00312         else if( hwndCOMBO_FUNCKIND == hwndCtl ){
00313             switch( wNotifyCode ){
00314             case CBN_SELCHANGE:
00315                 nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, LB_GETCURSEL, 0, 0 );
00316                 nIdx2 = ::SendMessageAny( hwndLIST_RES, CB_GETCURSEL, 0, 0 );
00317                 nIdx3 = ::SendMessageAny( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00318                 nIdx4 = ::SendMessageAny( hwndLIST_FUNC, CB_GETCURSEL, 0, 0 );
00319
00320
00321                 /* 機能一覧に文字列をセット（リストボックス）*/
00322 //  Oct. 14, 2000 jepro note: ここのforブロックで実際にリストを書いているようである
00323                 // Oct. 3, 2001 genta
00324                 // 専用ルーチンに置き換え
00325                 m_cLookup.SetListItem( hwndLIST_FUNC, nIdx3 );
00326                 i = 0;
00327
00328                 return TRUE;
00329             }
00330         }else{
00331             switch( wNotifyCode ){
00332             /* ボタン／チェックボックスがクリックされた */
00333             case BN_CLICKED:
00334                 switch( wID ){
00335                 case IDC_BUTTON_INSERTSEPARATOR:
00336                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00337                     if( LB_ERR == nIdx1 ){
00338                         break;
00339                     }
00340
00341                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00342                         break;
00343                     }
00344
00345                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00346                     if( LB_ERR == nIdx2 ){
00347                         nIdx2 = 0;
00348                     }
00349                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)L" ─────────────" ); //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00350                     if( nIdx2 == LB_ERR || nIdx2 == LB_ERRSPACE ){
00351                         break;
00352                     }
00353 					::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00354
00355
00356                     for( i = m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i--){
00357                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i - 1];
00358                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i - 1];
00359                     }
00360                     m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = 0;
00361                     m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
00362                     m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]++;
00363
00364 //                  ::SetWindowText( hwndEDIT_KEY, L"" );
00365                     break;
00366                 case IDC_BUTTON_DELETE:
00367                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00368                     if( LB_ERR == nIdx1 ){
00369                         break;
00370                     }
00371
00372                     if( 0 == m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00373                         break;
00374                     }
00375
00376                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00377                     if( LB_ERR == nIdx2 ){
00378                         break;
00379                     }
00380                     nNum2 = ::SendMessageAny( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00381                     if( nNum2 == LB_ERR ){
00382                         break;
00383                     }
00384
00385                     for( i = nIdx2; i < m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]; ++i ){
00386                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i + 1];
00387                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i + 1];
00388                     }
00389                     m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]--;
00390
00391                     if( nNum2 > 0 ){
00392                         if( nNum2 <= nIdx2 ){
00393                             nIdx2 = nNum2 - 1;
00394                         }
00395                         nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00396
00397                     }else{
00398                     }
00399                     break;
00400
00401
00402                 case IDC_BUTTON_INSERT:
00403                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00404                     if( LB_ERR == nIdx1 ){
00405                         break;
00406                     }
00407
00408                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00409                         break;
00410                     }
00411
00412                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00413                     if( LB_ERR == nIdx2 ){
00414                         nIdx2 = 0;
00415                     }
00416                     nIdx3 = ::SendMessageAny( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00417                     if( LB_ERR == nIdx3 ){
00418                         break;
00419                     }
00420                     nIdx4 = ::SendMessageAny( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00421                     if( LB_ERR == nIdx4 ){
00422                         break;
00423                     }
00424                     List_GetText( hwndLIST_FUNC, nIdx4, szLabel );
00425
00426                     for( i = m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i-- ){
00427                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][i - 1];
00428                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][i - 1];
00429                     }
00430                     //  Oct. 3, 2001 genta
00431                     m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
00432                     m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
00433                     m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]++;
00434
00435                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel );
00436                     if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
00437                         break;
00438                     }
00439 					::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00440
00441                     break;
00442
00443
00444                 case IDC_BUTTON_ADD:
00445                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00446                     if( LB_ERR == nIdx1 ){
00447                         break;
00448                     }
00449
00450                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00451                         break;
00452                     }
00453
00454                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00455                     if( LB_ERR == nIdx2 ){
00456                         nIdx2 = 0;
00457                     }
00458                     nNum2 = ::SendMessageAny( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00459                     if( LB_ERR == nNum2 ){
00460                         nIdx2 = 0;
00461                     }
00462                     nIdx3 = ::SendMessageAny( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00463                     if( LB_ERR == nIdx3 ){
00464                         break;
00465                     }
00466                     nIdx4 = ::SendMessageAny( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00467                     if( LB_ERR == nIdx4 ){
00468                         break;
00469                     }
00470                     //  Oct. 3, 2001 genta
00471                     if( m_cLookup.Pos2FuncCode( nIdx3, nIdx4 ) == 0 )
00472                         break;
00473
00474                     List_GetText( hwndLIST_FUNC, nIdx4, szLabel );
00475
00476                     //  Oct. 3, 2001 genta
00477                     m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nNum2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
00478                     m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nNum2] = '\0';
00479                     m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1]++;
00480
00481                     nIdx2 = List_AddString( hwndLIST_RES, szLabel );
00482                     if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
00483                         break;
00484                     }
00485 					::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00486
00487                     break;
00488
00489                 case IDC_BUTTON_UP:
00490                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00491                     if( LB_ERR == nIdx1 ){
00492                         break;
00493                     }
00494                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00495                     if( LB_ERR == nIdx2 ){
00496                         break;
00497                     }
00498                     if( 0 == nIdx2 ){
00499                         break;
00500                     }
00501
00502                     {
00503                         nFunc = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1];
00504                         KEYCODE key = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1];
00505                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1] = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
00506                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1]  = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
00507                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2] =   nFunc;
00508                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2]  = key;
00509                     }
00510
00511                     List_GetText( hwndLIST_RES, nIdx2, szLabel );
00512 					::SendMessageAny( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00513                     ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 - 1, (LPARAM)szLabel );
00514 					::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2 - 1, 0 );
00515                     break;
00516
00517                 case IDC_BUTTON_DOWN:
00518                     nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00519                     if( LB_ERR == nIdx1 ){
00520                         break;
00521                     }
00522                     nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00523                     if( LB_ERR == nIdx2 ){
00524                         break;
00525                     }
00526                     nNum2 = ::SendMessageAny( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00527                     if( LB_ERR == nNum2 ){
00528                         break;
00529                     }
00530                     if( nNum2 - 1 <= nIdx2 ){
00531                         break;
00532                     }
00533
00534                     {
00535                         nFunc = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1];
00536                         KEYCODE key = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1];
00537                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1] = m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
00538                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1]  = m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
00539                         m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx1][nIdx2] =   nFunc;
00540                         m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx1][nIdx2]  = key;
00541                     }
00542                     List_GetText( hwndLIST_RES, nIdx2, szLabel );
00543 					::SendMessageAny( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00544                     ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 + 1, (LPARAM)szLabel );
00545 					::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, nIdx2 + 1, 0 );
00546                     break;
00547                 }
00548
00549                 break;
00550             }
00551         }
00552         break;
00553
00554     case WM_TIMER:
00555         nIdx1 = ::SendMessageAny( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00556         nIdx2 = ::SendMessageAny( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00557         nIdx3 = ::SendMessageAny( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00558         nIdx4 = ::SendMessageAny( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00559         i = ::SendMessageAny( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00560         if( LB_ERR == nIdx2 ){
00561             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), FALSE );
00562             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00563             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00564         }else{
00565             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), TRUE );
00566             if( nIdx2 <= 0 ){
00567                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00568             }else{
00569                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), TRUE );
00570             }
00571             if( nIdx2 + 1 >= i ){
00572                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00573             }else{
00574                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), TRUE );
00575             }
00576         }
00577         if( LB_ERR == nIdx2 || LB_ERR == nIdx4 ){
00578             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00579         }else{
00580             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), TRUE );
00581         }
00582         if( LB_ERR == nIdx4 ){
00583             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00584         }else{
00585             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), TRUE );
00586         }
00587         if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx1] ){
00588             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERTSEPARATOR ), FALSE );
00589             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00590             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00591         }
00592         if( LB_ERR != nIdx3 && LB_ERR != nIdx4 &&
00593             m_cLookup.Pos2FuncCode( nIdx3, nIdx4 ) == 0
00594         ){
00595             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00596             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00597         }
00598         break;
00599     case WM_DESTROY:
00600         ::KillTimer( hwndDlg, 1 );
00601         break;
00602
00603 //@@@ 2001.02.04 Start by MIK: Popup Help
00604     case WM_HELP:
00605         {
00606             HELPINFO *p = (HELPINFO *)lParam;
00607             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00608         }
00609         return TRUE;
00610         /*NOTREACHED*/
00611         //break;
00612 //@@@ 2001.02.04 End
00613
00614 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00615     //Context Menu
00616     case WM_CONTEXTMENU:
00617         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00618         return TRUE;
00619 //@@@ 2001.12.22 End
00620
00621     }
00622     return FALSE;
00623 }
00624
00625
00626
00627
00628 /* ダイアログデータの設定 p8 */
00629 void CPropCommon::SetData_p8( HWND hwndDlg )
00630 {
00631     HWND        hwndCOMBO_MENU;
00632     HWND        hwndCombo;
00633     HWND        hwndLIST_RES;
00634     int         i;
00635     int         nIdx;
00636     WCHAR       szLabel[300];
00637     WCHAR       szLabel2[300];
00638
00639     /* 機能種別一覧に文字列をセット（コンボボックス） */
00640     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00641     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 3, 2001 genta
00642
00643     /* 種別の先頭の項目を選択（コンボボックス）*/
00644 	::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00645
00646     /* メニュー一覧に文字列をセット（コンボボックス）*/
00647     hwndCOMBO_MENU = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00648     for( i = 0; i < MAX_CUSTOM_MENU; ++i ){
00649         Combo_AddString( hwndCOMBO_MENU, m_Common.m_sCustomMenu.m_szCustMenuNameArr[i] );
00650     }
00651     /* メニュー一覧の先頭の項目を選択（コンボボックス）*/
00652 	::SendMessageAny( hwndCOMBO_MENU, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00653
00654     /* メニュー項目一覧に文字列をセット（リストボックス）*/
00655     hwndLIST_RES = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00656 //  hwndEDIT_KEY = ::GetDlgItem( hwndDlg, IDC_EDIT_KEY );
00657 	::SendMessageAny( hwndLIST_RES, LB_RESETCONTENT, 0, 0 );
00658     nIdx = 0;
00659     for( i = 0; i < m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nIdx]; ++i ){
00660         if( 0 == m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx][i] ){
00661             auto_strcpy( szLabel, LTEXT(" ─────────────") );  //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00662         }else{
00663             //  Oct. 3, 2001 genta
00664             m_cLookup.Funccode2Name( m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx][i], szLabel, 256 );
00665             //::LoadString( m_hInstance, m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nIdx][i], szLabel, 256 );
00666         }
00667         /* キー */
00668         if( '\0' == m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx][i] ){
00669             auto_strcpy( szLabel2, szLabel );
00670         }else{
00671             auto_sprintf( szLabel2, LTEXT("%ts(%hc)"),
00672                 szLabel,
00673                 m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nIdx][i]
00674             );
00675         }
00676 		::List_AddString( hwndLIST_RES, szLabel2 );
00677     }
00678
00679     //  Oct. 15, 2001 genta メニュー名を設定
00680 	::DlgItem_SetText( hwndDlg, IDC_EDIT_MENUNAME, m_Common.m_sCustomMenu.m_szCustMenuNameArr[0] );
00681
00682 //  /* カスタムメニューの先頭の項目を選択（リストボックス）*/ //Oct. 8, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00683 	::SendMessageAny( hwndLIST_RES, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00684     return;
00685 }
00686
00687
00688
00689 /* ダイアログデータの取得 p8 */
00690 int CPropCommon::GetData_p8( HWND hwndDlg )
00691 {
00692 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00693 //  m_nPageNum = ID_PAGENUM_CUSTMENU;
00694
00695     return TRUE;
00696 }
00697
00698
00699
00700
00701
00702 /* p8:カスタムメニュー設定をインポートする */
00703 void CPropCommon::p8_Import_CustMenuSetting( HWND hwndDlg )
00704 {
00705     /* ファイルオープンダイアログの初期化 */
00706     CDlgOpenFile    cDlgOpenFile;
00707     TCHAR           szPath[_MAX_PATH + 1] = _T("");
00708     cDlgOpenFile.Create(
00709         m_hInstance,
00710         hwndDlg,
00711         _T("*.mnu"),
00712         m_pShareData->m_szIMPORTFOLDER // インポート用フォルダ
00713     );
00714     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00715         return;
00716     }
00717
00718     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00719     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00720 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00721     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00722
00723
00724     //ヘッダ確認
00725     CTextInputStream in(szPath);
00726     if(!in){
00727         ErrorMessage_A( hwndDlg, "ファイルを開けませんでした。\n\n%ts", szPath );
00728         return;
00729     }
00730     wstring szHeader=in.ReadLineW();
00731     if(szHeader.length()>2)szHeader=&szHeader.c_str()[2]; //コメント除去
00732     if(wcscmp(szHeader.c_str(),WSTR_CUSTMENU_HEAD_V2)==0){
00733         //OK
00734     }
00735     else{
00736         ErrorMessage_A( hwndDlg, "カスタムメニュー設定ファイルの形式が違います。\n\n%ts", szPath );
00737         return;
00738     }
00739     in.Close();
00740
00741     //中身
00742     CommonSetting_CustomMenu* menu=&m_Common.m_sCustomMenu;
00743     CDataProfile cProfile;
00744     cProfile.SetReadingMode();
00745     cProfile.ReadProfile(szPath);
00746     for(int i=0;i<MAX_CUSTOM_MENU;i++){
00747         //セクション名
00748         wchar_t szSection[64];
00749         auto_sprintf(szSection, L"Menu%d", i);
00750
00751         cProfile.IOProfileData(szSection,L"Name",MakeStringBufferW(menu->m_szCustMenuNameArr[i]));
00752         cProfile.IOProfileData(szSection,L"ItemCount",menu->m_nCustMenuItemNumArr[i]);
00753         for(int j=0;j<menu->m_nCustMenuItemNumArr[i];j++){
00754             cProfile.IOProfileData(szSection,easy_format(L"FNC[%02d]",j),menu->m_nCustMenuItemFuncArr[i][j]);
00755             cProfile.IOProfileData(szSection,easy_format(L"KEY[%02d]",j),menu->m_nCustMenuItemKeyArr[i][j]);
00756         }
00757     }
00758
00759     HWND    hwndCtrl = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00760 	::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_MENU, CBN_SELCHANGE ), (LPARAM)hwndCtrl );
00761
00762     return;
00763 }
00764
00765 /* p8:カスタムメニュー設定をエクスポートする */
00766 void CPropCommon::p8_Export_CustMenuSetting( HWND hwndDlg )
00767 {
00768     /* ファイルオープンダイアログの初期化 */
00769     CDlgOpenFile    cDlgOpenFile;
00770     TCHAR           szPath[_MAX_PATH + 1] = _T("");
00771     cDlgOpenFile.Create(
00772         m_hInstance,
00773         hwndDlg,
00774         _T("*.mnu"),
00775         m_pShareData->m_szIMPORTFOLDER // インポート用フォルダ
00776     );
00777     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00778         return;
00779     }
00780
00781     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00782     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00783 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00784     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00785
00786     // オープン
00787     CTextOutputStream out(szPath);
00788     if(!out){
00789         ErrorMessage_A(hwndDlg, "ファイルを開けませんでした。\n\n%ts", szPath );
00790         return;
00791     }
00792
00793     /* カスタムメニュー情報 */
00794     class WriteError{};
00795     try{
00796         //ヘッダ
00797         out.WriteF(L"; %ls\n\n",WSTR_CUSTMENU_HEAD_V2);
00798
00799         //内容
00800         CommonSetting_CustomMenu* menu=&m_Common.m_sCustomMenu;
00801         out.WriteF(L"[Info]\n",MAX_CUSTOM_MENU);
00802         out.WriteF(L"MENU_VERSION=%ls\n",WSTR_CUSTMENU_HEAD_V2);
00803         out.WriteF(L"MAX_CUSTOM_MENU=%d\n",MAX_CUSTOM_MENU);
00804         out.WriteF(L"\n");
00805         for(int i=0;i<MAX_CUSTOM_MENU;i++){
00806             out.WriteF(L"[Menu%d]\n",i);
00807             out.WriteF(L"Name=%ls\n",menu->m_szCustMenuNameArr[i]);
00808             out.WriteF(L"ItemCount=%d\n",menu->m_nCustMenuItemNumArr[i]);
00809             for(int j=0;j<menu->m_nCustMenuItemNumArr[i];j++){
00810                 out.WriteF(L"FNC[%02d]=%d\n",j,menu->m_nCustMenuItemFuncArr[i][j]);
00811                 out.WriteF(L"KEY[%02d]=%hc",j,menu->m_nCustMenuItemKeyArr[i][j]); out.WriteF(L"\n"); //※charが'\0'の場合を考慮して、改行を別に出力
00812             }
00813             out.WriteF(L"\n");
00814         }
00815     }
00816     catch(const WriteError&){
00817         ErrorMessage_A( hwndDlg, "ファイルの書き込みに失敗しました。\n\n%ts", szPath );
00818     }
00819     out.Close();
00820
00821     return;
00822
00823 }
00824
00825
00826 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComEdit.cpp

sakura_core

CPropComEdit.cpp

共通設定ダイアログボックス、「編集」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "util/shell.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_bEnableLineModePaste,     HIDC_CHECK_bEnableLineModePaste,
    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 の 28 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComEdit.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
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[] = {  //10210
00029     IDC_CHECK_ADDCRLFWHENCOPY,          HIDC_CHECK_ADDCRLFWHENCOPY,             //折り返し行に改行を付けてコピー
00030     IDC_CHECK_COPYnDISABLESELECTEDAREA, HIDC_CHECK_COPYnDISABLESELECTEDAREA,    //コピーしたら選択解除
00031     IDC_CHECK_bEnableLineModePaste,     HIDC_CHECK_bEnableLineModePaste,        //ラインモード貼り付けを可能にする  // 2007.10.08 ryoji
00032     IDC_CHECK_DRAGDROP,                 HIDC_CHECK_DRAGDROP,                    //Drag&Drop編集する
00033     IDC_CHECK_DROPSOURCE,               HIDC_CHECK_DROPSOURCE,                  //ドロップ元にする
00034     IDC_CHECK_bNotOverWriteCRLF,        HIDC_CHECK_bNotOverWriteCRLF,           //上書きモード
00035     //  2007.02.11 genta クリッカブルURLをこのページに移動
00036     IDC_CHECK_bSelectClickedURL,    HIDC_CHECK_bSelectClickedURL,   //クリッカブルURL
00037 //  IDC_STATIC,                         -1,
00038     0, 0
00039 };
00040 #else
00041 static const DWORD p_helpids[] = {  //10210
00042     IDC_CHECK_ADDCRLFWHENCOPY,          10210,  //折り返し行に改行を付けてコピー
00043     IDC_CHECK_COPYnDISABLESELECTEDAREA, 10211,  //コピーしたら選択解除
00044     IDC_CHECK_DRAGDROP,                 10212,  //Drag&Drop編集する
00045     IDC_CHECK_DROPSOURCE,               10213,  //ドロップ元にする
00046     IDC_CHECK_bNotOverWriteCRLF,        10214,  //上書きモード
00047 //  IDC_STATIC,                         -1,
00048     0, 0
00049 };
00050 #endif
00051 //@@@ 2001.02.04 End
00052
00053 //  From Here Jun. 2, 2001 genta
00060 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_EDIT(
00061     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00062 {
00063     return DlgProc( &CPropCommon::DispatchEvent_PROP_EDIT, hwndDlg, uMsg, wParam, lParam );
00064 }
00065 //  To Here Jun. 2, 2001 genta
00066
00067 /* メッセージ処理 */
00068 INT_PTR CPropCommon::DispatchEvent_PROP_EDIT(
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 {
00075     WORD        wNotifyCode;
00076     WORD        wID;
00077     HWND        hwndCtl;
00078     NMHDR*      pNMHDR;
00079     NM_UPDOWN*  pMNUD;
00080     int         idCtrl;
00081 //  int         nVal;
00082 //  LPDRAWITEMSTRUCT pDis;
00083
00084     switch( uMsg ){
00085
00086     case WM_INITDIALOG:
00087         /* ダイアログデータの設定 p1 */
00088         SetData_PROP_EDIT( hwndDlg );
00089         // Modified by KEITA for WIN64 2003.9.6
00090 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00091
00092         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00093
00094         return TRUE;
00095     case WM_COMMAND:
00096         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00097         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00098         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00099         switch( wNotifyCode ){
00100         /* ボタン／チェックボックスがクリックされた */
00101         case BN_CLICKED:
00102             switch( wID ){
00103             case IDC_CHECK_DRAGDROP:    /* タスクトレイを使う */
00104                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP ) ){
00105                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), TRUE );
00106                 }
00107                 else{
00108                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), FALSE );
00109                 }
00110                 return TRUE;
00111             }
00112             break;
00113         }
00114         break;
00115
00116     case WM_NOTIFY:
00117         idCtrl = (int)wParam;
00118         pNMHDR = (NMHDR*)lParam;
00119         pMNUD  = (NM_UPDOWN*)lParam;
00120         switch( pNMHDR->code ){
00121         case PSN_HELP:
00122             OnHelp( hwndDlg, IDD_PROP_EDIT );
00123             return TRUE;
00124         case PSN_KILLACTIVE:
00125             DBPRINT_A( "p1 PSN_KILLACTIVE\n" );
00126
00127             /* ダイアログデータの取得 p1 */
00128             GetData_PROP_EDIT( hwndDlg );
00129             return TRUE;
00130
00131         case PSN_SETACTIVE: //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00132             m_nPageNum = ID_PAGENUM_EDIT;   //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00133             return TRUE;
00134         }
00135         break;  /* WM_NOTIFY */
00136
00137 //@@@ 2001.02.04 Start by MIK: Popup Help
00138     case WM_HELP:
00139         {
00140             HELPINFO *p = (HELPINFO *)lParam;
00141             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00142         }
00143         return TRUE;
00144         /*NOTREACHED*/
00145         //break;
00146 //@@@ 2001.02.04 End
00147
00148 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00149     //Context Menu
00150     case WM_CONTEXTMENU:
00151         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00152         return TRUE;
00153 //@@@ 2001.12.22 End
00154
00155     }
00156     return FALSE;
00157 }
00158
00159
00160 /* ダイアログデータの設定 */
00161 void CPropCommon::SetData_PROP_EDIT( HWND hwndDlg )
00162 {
00163     /* ドラッグ & ドロップ編集 */
00164     ::CheckDlgButton( hwndDlg, IDC_CHECK_DRAGDROP, m_Common.m_sEdit.m_bUseOLE_DragDrop );
00165     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP ) ){
00166         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), TRUE );
00167     }
00168     else{
00169         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), FALSE );
00170     }
00171
00172     /* DropSource */
00173     ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, m_Common.m_sEdit.m_bUseOLE_DropSource );
00174
00175     /* 折り返し行に改行を付けてコピー */
00176     ::CheckDlgButton( hwndDlg, IDC_CHECK_ADDCRLFWHENCOPY, m_Common.m_sEdit.m_bAddCRLFWhenCopy );
00177
00178     /* コピーしたら選択解除 */
00179     ::CheckDlgButton( hwndDlg, IDC_CHECK_COPYnDISABLESELECTEDAREA, m_Common.m_sEdit.m_bCopyAndDisablSelection );
00180
00181     /* ラインモード貼り付けを可能にする */  // 2007.10.08 ryoji
00182     ::CheckDlgButton( hwndDlg, IDC_CHECK_bEnableLineModePaste, m_Common.m_sEdit.m_bEnableLineModePaste );
00183
00184     /* 改行は上書きしない */
00185     ::CheckDlgButton( hwndDlg, IDC_CHECK_bNotOverWriteCRLF, m_Common.m_sEdit.m_bNotOverWriteCRLF );
00186
00187     //  URLがクリックされたら選択するか */    // 2007.02.11 genta このページへ移動
00188     ::CheckDlgButton( hwndDlg, IDC_CHECK_bSelectClickedURL, m_Common.m_sEdit.m_bSelectClickedURL );
00189     return;
00190 }
00191
00192
00193
00194
00195
00196 /* ダイアログデータの取得 */
00197 int CPropCommon::GetData_PROP_EDIT( HWND hwndDlg )
00198 {
00199 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00200 //  m_nPageNum = ID_PAGENUM_EDIT;
00201
00202     /* ドラッグ & ドロップ編集 */
00203     m_Common.m_sEdit.m_bUseOLE_DragDrop = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP );
00204     /* DropSource */
00205     m_Common.m_sEdit.m_bUseOLE_DropSource = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DROPSOURCE );
00206
00207     /* 折り返し行に改行を付けてコピー */
00208     m_Common.m_sEdit.m_bAddCRLFWhenCopy = (0 != ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ADDCRLFWHENCOPY ));
00209
00210     /* コピーしたら選択解除 */
00211     m_Common.m_sEdit.m_bCopyAndDisablSelection = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_COPYnDISABLESELECTEDAREA );
00212
00213     /* ラインモード貼り付けを可能にする */  // 2007.10.08 ryoji
00214     m_Common.m_sEdit.m_bEnableLineModePaste = (0 != ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bEnableLineModePaste ));
00215
00216     /* 改行は上書きしない */
00217     m_Common.m_sEdit.m_bNotOverWriteCRLF = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bNotOverWriteCRLF );
00218
00219     /* URLがクリックされたら選択するか */ // 2007.02.11 genta このページへ移動
00220     m_Common.m_sEdit.m_bSelectClickedURL = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bSelectClickedURL );
00221     return TRUE;
00222 }
00223
00224
00225 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFile.cpp

sakura_core

CPropComFile.cpp

共通設定ダイアログボックス、「書式」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "util/shell.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 の 26 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFile.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00021
00022
00023 //@@@ 2001.02.04 Start by MIK: Popup Help
00024 #if 1   //@@@ 2002.01.03 add MIK
00025 #include "sakura.hh"
00026 static const DWORD p_helpids[] = {  //01310
00027     IDC_CHECK_EXCVLUSIVE_NO,                HIDC_CHECK_EXCVLUSIVE_NO,               //ファイルの排他制御（排他制御しない）
00028     IDC_CHECK_bCheckFileTimeStamp,          HIDC_CHECK_bCheckFileTimeStamp,         //更新の監視
00029     IDC_CHECK_EXCVLUSIVE_WRITE,             HIDC_CHECK_EXCVLUSIVE_WRITE,            //ファイルの排他制御（上書き禁止）
00030     IDC_CHECK_EXCVLUSIVE_READWRITE,         HIDC_CHECK_EXCVLUSIVE_READWRITE,        //ファイルお排他制御（読み書き禁止）
00031     IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,    HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,   //無変更でも上書き
00032     IDC_CHECK_AUTOSAVE,                     HIDC_CHECK_AUTOSAVE,                    //自動的に保存
00033     IDC_CHECK_bDropFileAndClose,            HIDC_CHECK_bDropFileAndClose,           //閉じて開く
00034     IDC_CHECK_RestoreCurPosition,           HIDC_CHECK_RestoreCurPosition,          //カーソル位置の復元
00035     IDC_CHECK_AutoMIMEDecode,               HIDC_CHECK_AutoMIMEDecode,              //MIMEデコード
00036     IDC_EDIT_AUTOBACKUP_INTERVAL,           HIDC_EDIT_AUTOBACKUP_INTERVAL,          //自動保存間隔
00037     IDC_EDIT_nDropFileNumMax,               HIDC_EDIT_nDropFileNumMax,              //ファイルドロップ最大数
00038     IDC_SPIN_AUTOBACKUP_INTERVAL,           HIDC_EDIT_AUTOBACKUP_INTERVAL,
00039     IDC_SPIN_nDropFileNumMax,               HIDC_EDIT_nDropFileNumMax,
00040     IDC_CHECK_RestoreBookmarks,             HIDC_CHECK_RestoreBookmarks,            // 2002.01.16 hor ブックマークの復元
00041     IDC_CHECK_QueryIfCodeChange,            HIDC_CHECK_QueryIfCodeChange,           //前回と異なる文字コードのとき問い合わせを行う    // 2006.08.06 ryoji
00042     IDC_CHECK_AlertIfFileNotExist,          HIDC_CHECK_AlertIfFileNotExist,         //開こうとしたファイルが存在しないとき警告する    // 2006.08.06 ryoji
00043     IDC_CHECK_NoFilterSaveNew,              HIDC_CHECK_NoFilterSaveNew,             // 新規から保存時は全ファイル表示    // 2006.11.16 ryoji
00044     IDC_CHECK_NoFilterSaveFile,             HIDC_CHECK_NoFilterSaveFile,            // 新規以外から保存時は全ファイル表示  // 2006.11.16 ryoji
00045 //  IDC_STATIC,                             -1,
00046     0, 0
00047 };
00048 #else
00049 static const DWORD p_helpids[] = {  //01310
00050     IDC_CHECK_EXCVLUSIVE_NO,                10310,  //ファイルの排他制御（排他制御しない）
00051     IDC_CHECK_bCheckFileTimeStamp,          10311,  //更新の監視
00052     IDC_CHECK_EXCVLUSIVE_WRITE,             10312,  //ファイルの排他制御（上書き禁止）
00053     IDC_CHECK_EXCVLUSIVE_READWRITE,         10313,  //ファイルお排他制御（読み書き禁止）
00054     IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,    10314,  //無変更でも上書き
00055     IDC_CHECK_AUTOSAVE,                     10315,  //自動的に保存
00056     IDC_CHECK_bDropFileAndClose,            10316,  //閉じて開く
00057     IDC_CHECK_RestoreCurPosition,           10317,  //カーソル位置の復元
00058     IDC_CHECK_AutoMIMEDecode,               10318,  //MIMEデコード
00059     IDC_EDIT_AUTOBACKUP_INTERVAL,           10340,  //自動保存間隔
00060     IDC_EDIT_nDropFileNumMax,               10341,  //ファイルドロップ最大数
00061     IDC_CHECK_RestoreBookmarks              10342,  // 2002.01.16 hor ブックマークの復元
00062     IDC_SPIN_AUTOBACKUP_INTERVAL,           -1,
00063     IDC_SPIN_nDropFileNumMax,               -1,
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_FILE(
00078     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00079 {
00080     return DlgProc( &CPropCommon::DispatchEvent_p2, hwndDlg, uMsg, wParam, lParam );
00081 }
00082 //  To Here Jun. 2, 2001 genta
00083
00085 INT_PTR CPropCommon::DispatchEvent_p2(
00086     HWND    hwndDlg,
00087     UINT    uMsg,
00088     WPARAM  wParam,
00089     LPARAM  lParam
00090 )
00091 {
00092     WORD        wNotifyCode;
00093     WORD        wID;
00094     HWND        hwndCtl;
00095     NMHDR*      pNMHDR;
00096     NM_UPDOWN*  pMNUD;
00097     int         idCtrl;
00098 //  int         nVal;
00099     int         nVal;   //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
00100 //  char        szFolder[_MAX_PATH];
00101
00102     switch( uMsg ){
00103     case WM_INITDIALOG:
00104         /* ダイアログデータの設定 p2 */
00105         SetData_p2( hwndDlg );
00106 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00107
00108         return TRUE;
00109 //****  From Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00110 //  case WM_NOTIFY:
00111 //      idCtrl = (int)wParam;
00112 //      pNMHDR = (NMHDR*)lParam;
00113 //      pMNUD  = (NM_UPDOWN*)lParam;
00116 //          switch( pNMHDR->code ){
00117 //          case PSN_HELP:
00118 //              OnHelp( hwndDlg, IDD_PROP_FILE );
00119 //              return TRUE;
00120 //          case PSN_KILLACTIVE:
00122 //              /* ダイアログデータの取得 p2 */
00123 //              GetData_p2( hwndDlg );
00124 //              return TRUE;
00125 //          }
00127 //      break;
00128
00129     case WM_NOTIFY:
00130         idCtrl = (int)wParam;
00131         pNMHDR = (NMHDR*)lParam;
00132         pMNUD  = (NM_UPDOWN*)lParam;
00133         switch( idCtrl ){
00134         default:
00135             switch( pNMHDR->code ){
00136             case PSN_HELP:
00137                 OnHelp( hwndDlg, IDD_PROP_FILE );
00138                 return TRUE;
00139             case PSN_KILLACTIVE:
00140 //              MYTRACE_A( "p2 PSN_KILLACTIVE\n" );
00141                 /* ダイアログデータの取得 p2 */
00142                 GetData_p2( hwndDlg );
00143                 return TRUE;
00144 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00145             case PSN_SETACTIVE:
00146                 m_nPageNum = ID_PAGENUM_FILE;
00147                 return TRUE;
00148             }
00149         break;
00150         case IDC_SPIN_nDropFileNumMax:
00151             /* 一度にドロップ可能なファイル数 */
00152             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
00153             if( pMNUD->iDelta < 0 ){
00154                 ++nVal;
00155             }else
00156             if( pMNUD->iDelta > 0 ){
00157                 --nVal;
00158             }
00159             if( nVal < 1 ){
00160                 nVal = 1;
00161             }
00162             if( nVal > 99 ){
00163                 nVal = 99;
00164             }
00165             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, nVal, FALSE );
00166             return TRUE;
00167 //@@@ 2001.03.21 Start by MIK
00168             /*NOTREACHED*/
00169 //          break;
00170         case IDC_SPIN_AUTOBACKUP_INTERVAL:
00171             /* バックアップ間隔 */
00172             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, NULL, FALSE );
00173             if( pMNUD->iDelta < 0 ){
00174                 ++nVal;
00175             }else
00176             if( pMNUD->iDelta > 0 ){
00177                 --nVal;
00178             }
00179             if( nVal < 1 ){
00180                 nVal = 1;
00181             }
00182             if( nVal > 35791 ){
00183                 nVal = 35791;
00184             }
00185             ::SetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, nVal, FALSE );
00186             return TRUE;
00187             /*NOTREACHED*/
00188 //          break;
00189 //@@@ 2001.03.21 End by MIK
00190         }
00191 //****  To Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるのでWM_NOTIFYをコメントアウトにしその下に修正を置いた
00192         break;
00193
00194     case WM_COMMAND:
00195         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00196         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00197         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00198         switch( wNotifyCode ){
00199         /* ボタン／チェックボックスがクリックされた */
00200         case BN_CLICKED:
00201             switch( wID ){
00202             case IDC_CHECK_EXCVLUSIVE_NO:
00203             case IDC_CHECK_EXCVLUSIVE_WRITE:
00204             case IDC_CHECK_EXCVLUSIVE_READWRITE:
00205             case IDC_CHECK_bDropFileAndClose:/* ファイルをドロップしたときは閉じて開く */
00206             case IDC_CHECK_AUTOSAVE:
00207                 EnableFilePropInput(hwndDlg);
00208                 break;
00209             }
00210             break;
00211         }
00212         break;
00213
00214 //@@@ 2001.02.04 Start by MIK: Popup Help
00215     case WM_HELP:
00216         {
00217             HELPINFO *p = (HELPINFO *)lParam;
00218             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00219         }
00220         return TRUE;
00221         /*NOTREACHED*/
00222 //      break;
00223 //@@@ 2001.02.04 End
00224
00225 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00226     //Context Menu
00227     case WM_CONTEXTMENU:
00228         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00229         return TRUE;
00230 //@@@ 2001.12.22 End
00231
00232     }
00233     return FALSE;
00234 }
00235
00236
00237
00238
00239
00248 void CPropCommon::SetData_p2( HWND hwndDlg )
00249 {
00250     /*--- p2 ---*/
00251     /* ファイルの排他制御モード */
00252     switch( m_Common.m_sFile.m_nFileShareMode ){
00253     case SHAREMODE_DENY_WRITE:  /* 書き込み禁止 */
00254         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE, BST_CHECKED );
00255         break;
00256     case SHAREMODE_DENY_READWRITE:  /* 読み書き禁止 */
00257         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE, BST_CHECKED );
00258         break;
00259     case SHAREMODE_NOT_EXCLUSIVE:   /* 排他なし */
00260     default:    /* 排他なし */
00261         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO, BST_CHECKED );
00262         break;
00263     }
00264     /* 更新の監視 */
00265     ::CheckDlgButton( hwndDlg, IDC_CHECK_bCheckFileTimeStamp, m_Common.m_sFile.m_bCheckFileTimeStamp );
00266
00267     /* 無変更でも上書きするか */
00268     ::CheckDlgButton( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, m_Common.m_sFile.m_bEnableUnmodifiedOverwrite );
00269
00270     /* ファイルをドロップしたときは閉じて開く */
00271     ::CheckDlgButton( hwndDlg, IDC_CHECK_bDropFileAndClose, m_Common.m_sFile.m_bDropFileAndClose );
00272     /* 一度にドロップ可能なファイル数 */
00273     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, m_Common.m_sFile.m_nDropFileNumMax, FALSE );
00274
00275     //  From Here Aug. 21, 2000 genta
00276     //  自動保存の有効・無効
00277     ::CheckDlgButton( hwndDlg, IDC_CHECK_AUTOSAVE, m_Common.m_sBackup.IsAutoBackupEnabled() );
00278
00279     TCHAR buf[6];
00280     int nN;
00281
00282     nN = m_Common.m_sBackup.GetAutoBackupInterval();
00283     nN = nN < 1  ?  1 : nN;
00284     nN = nN > 35791 ? 35791 : nN;
00285
00286     auto_sprintf( buf, _T("%d"), nN);
00287 	::DlgItem_SetText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, buf );
00288     //  To Here Aug. 21, 2000 genta
00289
00290     //  Oct. 27, 2000 genta カーソル位置復元フラグ
00291     ::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreCurPosition, m_Common.m_sFile.GetRestoreCurPosition() );
00292     // 2002.01.16 hor ブックマーク復元フラグ
00293     ::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreBookmarks, m_Common.m_sFile.GetRestoreBookmarks() );
00294     //  Nov. 12, 2000 genta MIME Decodeフラグ
00295     ::CheckDlgButton( hwndDlg, IDC_CHECK_AutoMIMEDecode, m_Common.m_sFile.GetAutoMIMEdecode() );
00296     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00297     ::CheckDlgButton( hwndDlg, IDC_CHECK_QueryIfCodeChange, m_Common.m_sFile.GetQueryIfCodeChange() );
00298     //  Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告するかどうかのフラグ
00299     ::CheckDlgButton( hwndDlg, IDC_CHECK_AlertIfFileNotExist, m_Common.m_sFile.GetAlertIfFileNotExist() );
00300
00301     // ファイル保存ダイアログのフィルタ設定   // 2006.11.16 ryoji
00302     ::CheckDlgButton( hwndDlg, IDC_CHECK_NoFilterSaveNew, m_Common.m_sFile.m_bNoFilterSaveNew );    // 新規から保存時は全ファイル表示
00303     ::CheckDlgButton( hwndDlg, IDC_CHECK_NoFilterSaveFile, m_Common.m_sFile.m_bNoFilterSaveFile );  // 新規以外から保存時は全ファイル表示
00304
00305     EnableFilePropInput(hwndDlg);
00306     return;
00307 }
00308
00318 int CPropCommon::GetData_p2( HWND hwndDlg )
00319 {
00320 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00321 //  m_nPageNum = ID_PAGENUM_FILE;
00322
00323     /* ファイルの排他制御モード */
00324     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){ /* 排他なし */
00325         m_Common.m_sFile.m_nFileShareMode = SHAREMODE_NOT_EXCLUSIVE;
00326     }else
00327     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE ) ){  /* 書き込み禁止 */
00328         m_Common.m_sFile.m_nFileShareMode = SHAREMODE_DENY_WRITE    ;
00329     }else
00330     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE ) ){  /* 読み書き禁止 */
00331         m_Common.m_sFile.m_nFileShareMode = SHAREMODE_DENY_READWRITE;
00332     }else{
00333         /* 排他なし */
00334         m_Common.m_sFile.m_nFileShareMode = SHAREMODE_NOT_EXCLUSIVE;
00335     }
00336     /* 更新の監視 */
00337     m_Common.m_sFile.m_bCheckFileTimeStamp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bCheckFileTimeStamp );
00338
00339     /* 無変更でも上書きするか */
00340     m_Common.m_sFile.m_bEnableUnmodifiedOverwrite = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE );
00341
00342     /* ファイルをドロップしたときは閉じて開く */
00343     m_Common.m_sFile.m_bDropFileAndClose = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose );
00344     /* 一度にドロップ可能なファイル数 */
00345     m_Common.m_sFile.m_nDropFileNumMax = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
00346     if( 1 > m_Common.m_sFile.m_nDropFileNumMax ){
00347         m_Common.m_sFile.m_nDropFileNumMax = 1;
00348     }
00349     if( 99 < m_Common.m_sFile.m_nDropFileNumMax ){  //Sept. 21, 2000, JEPRO 16より大きいときに99と制限されていたのを修正(16→99と変更)
00350         m_Common.m_sFile.m_nDropFileNumMax = 99;
00351     }
00352
00353     //  From Here Aug. 16, 2000 genta
00354     //  自動保存を行うかどうか
00355     m_Common.m_sBackup.EnableAutoBackup( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) == TRUE );
00356
00357     //  自動保存間隔の取得
00358     TCHAR szNumBuf[/*6*/ 7];    //@@@ 2001.03.21 by MIK
00359     int  nN;
00360     TCHAR *pDigit;
00361
00362 	::DlgItem_GetText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, szNumBuf, /*5*/ 6 ); //@@@ 2001.03.21 by MIK
00363
00364     for( nN = 0, pDigit = szNumBuf; *pDigit != _T('\0'); pDigit++ ){
00365         if( _T('0') <= *pDigit && *pDigit <= _T('9') ){
00366             nN = nN * 10 + *pDigit - _T('0');
00367         }
00368         else
00369             break;
00370     }
00371     nN = nN < 1  ?  1 : nN;
00372     nN = nN > 35791 ? 35791 : nN;
00373     m_Common.m_sBackup.SetAutoBackupInterval( nN );
00374
00375     //  To Here Aug. 16, 2000 genta
00376
00377     //  Oct. 27, 2000 genta カーソル位置復元フラグ
00378     m_Common.m_sFile.SetRestoreCurPosition( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreCurPosition ) == TRUE );
00379     // 2002.01.16 hor ブックマーク復元フラグ
00380     m_Common.m_sFile.SetRestoreBookmarks( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreBookmarks ) == TRUE );
00381     //  Nov. 12, 2000 genta MIME Decodeフラグ
00382     m_Common.m_sFile.SetAutoMIMEdecode( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AutoMIMEDecode ) == TRUE );
00383     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00384     m_Common.m_sFile.SetQueryIfCodeChange( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_QueryIfCodeChange ) == TRUE );
00385     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00386     m_Common.m_sFile.SetAlertIfFileNotExist( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AlertIfFileNotExist ) == TRUE );
00387
00388     // ファイル保存ダイアログのフィルタ設定   // 2006.11.16 ryoji
00389     m_Common.m_sFile.m_bNoFilterSaveNew = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NoFilterSaveNew );   // 新規から保存時は全ファイル表示
00390     m_Common.m_sFile.m_bNoFilterSaveFile = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NoFilterSaveFile ); // 新規以外から保存時は全ファイル表示
00391
00392     return TRUE;
00393 }
00394
00395 //  From Here Aug. 21, 2000 genta
00401 void CPropCommon::EnableFilePropInput(HWND hwndDlg)
00402 {
00403
00404     //  Drop時の動作
00405     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose ) ){
00406         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), FALSE );  // added Sept. 6, JEPRO 自動保存にしたときだけEnableになるように変更
00407         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), FALSE );  // added Sept. 6, JEPRO 同上
00408         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), FALSE );
00409         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), FALSE );// added Oct. 6, JEPRO ファイルオープンを「閉じて開く」にしたときはDisableになるように変更
00410     }else{
00411         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), TRUE );   // added Sept. 6, JEPRO 同上
00412         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), TRUE );   // added Sept. 6, JEPRO 同上
00413         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), TRUE );
00414         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), TRUE );// added Oct. 6, JEPRO ファイルオープンを「複数ファイルドロップ」にしたときだけEnableになるように変更
00415     }
00416
00417     //  排他するかどうか
00418     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){
00419         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), TRUE );
00420     }else{
00421         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), FALSE );
00422     }
00423
00424     //  自動保存
00425     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) ){
00426         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), TRUE );
00427         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), TRUE );
00428         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), TRUE );   //Sept. 6, 2000 JEPRO 自動保存にしたときだけEnableになるように変更
00429         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), TRUE );  //@@@ 2001.03.21 by MIK
00430     }else{
00431         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), FALSE );
00432         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), FALSE );
00433         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), FALSE );  //Sept. 6, 2000 JEPRO 同上
00434         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), FALSE ); //@@@ 2001.03.21 by MIK
00435     }
00436 }
00437 //  To Here Aug. 21, 2000 genta
00438
00439
00440 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFileName.cpp

sakura_core

CPropComFileName.cpp

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropCommon.h"
#include "CShareData.h"
#include "sakura.hh"
#include "util/shell.h"

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 の 42 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFileName.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00040
00041
00042 static const DWORD p_helpids[] = {  //13400
00043     IDC_LIST_FNAME,         HIDC_LIST_FNAME,        // ファイル名置換リスト
00044     IDC_EDIT_FNAME_FROM,    HIDC_EDIT_FNAME_FROM,   // 置換前
00045     IDC_EDIT_FNAME_TO,      HIDC_EDIT_FNAME_TO,     // 置換後
00046     IDC_BUTTON_FNAME_INS,   HIDC_BUTTON_FNAME_INS,  // 挿入
00047     IDC_BUTTON_FNAME_ADD,   HIDC_BUTTON_FNAME_ADD,  // 追加
00048     IDC_BUTTON_FNAME_UPD,   HIDC_BUTTON_FNAME_UPD,  // 更新
00049     IDC_BUTTON_FNAME_DEL,   HIDC_BUTTON_FNAME_DEL,  // 削除
00050     IDC_BUTTON_FNAME_TOP,   HIDC_BUTTON_FNAME_TOP,  // 先頭
00051     IDC_BUTTON_FNAME_UP,    HIDC_BUTTON_FNAME_UP,   // 上へ
00052     IDC_BUTTON_FNAME_DOWN,  HIDC_BUTTON_FNAME_DOWN, // 下へ
00053     IDC_BUTTON_FNAME_LAST,  HIDC_BUTTON_FNAME_LAST, // 最終
00054 //  IDC_CHECK_FNAME,        HIDC_CHECK_FNAME,   // ファイル名を簡易表示する
00055     0, 0 //
00056 };
00057
00058
00059
00060 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILENAME(
00061     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00062 {
00063     return DlgProc( &CPropCommon::DispatchEvent_PROP_FILENAME, hwndDlg, uMsg, wParam, lParam );
00064 }
00065
00066 INT_PTR CPropCommon::DispatchEvent_PROP_FILENAME( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00067 {
00068
00069     HWND    hListView;
00070     int     nIndex;
00071     TCHAR   szFrom[_MAX_PATH];
00072     TCHAR   szTo[_MAX_PATH];
00073
00074     switch( uMsg ){
00075
00076     case WM_INITDIALOG:
00077         {
00078             RECT        rc;
00079             LV_COLUMN   col;
00080             hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00081
00082             // Modified by KEITA for WIN64 2003.9.6
00083 			::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00084             ::GetWindowRect( hListView, &rc );
00085             col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00086             col.fmt      = LVCFMT_LEFT;
00087             col.cx       = ( rc.right - rc.left ) * 60 / 100;
00088             col.pszText  = _T("置換前");
00089             col.iSubItem = 0;
00090             ListView_InsertColumn( hListView, 0, &col );
00091             col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00092             col.fmt      = LVCFMT_LEFT;
00093             col.cx       = ( rc.right - rc.left ) * 35 / 100;
00094             col.pszText  = _T("置換後");
00095             col.iSubItem = 1;
00096             ListView_InsertColumn( hListView, 1, &col );
00097
00098             // Apr. 28, 2003 Moca 初期化漏れ修正
00099             // ダイアログを開いたときにリストが選択されていてもフィールドが空の場合があった
00100             m_nLastPos_FILENAME = -1;
00101
00102             // ダイアログデータの設定
00103             SetData_PROP_FILENAME( hwndDlg );
00104
00105             // エディット コントロールに入力できるテキストの長さを制限する
00106             ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_FNAME_FROM ),  EM_LIMITTEXT, (WPARAM)( _MAX_PATH - 1 ), 0 );
00107             ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_FNAME_TO ),    EM_LIMITTEXT, (WPARAM)( _MAX_PATH - 1 ), 0 );
00108         }
00109         return TRUE;
00110
00111     case WM_NOTIFY:
00112         {
00113             NMHDR*      pNMHDR = (NMHDR*)lParam;
00114             NM_UPDOWN*  pMNUD  = (NM_UPDOWN*)lParam;
00115             int         idCtrl = (int)wParam;
00116
00117             switch( idCtrl ){
00118             case IDC_LIST_FNAME:
00119                 switch( pNMHDR->code ){
00120                 case LVN_ITEMCHANGED:
00121                     hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00122                     nIndex = ListView_GetNextItem( hListView, -1, LVNI_SELECTED );
00123                     // 未選択
00124                     if( -1 == nIndex ){
00125 						::DlgItem_SetText( hwndDlg, IDC_EDIT_FNAME_FROM, _T("") );
00126 						::DlgItem_SetText( hwndDlg, IDC_EDIT_FNAME_TO, _T("") );
00127                     }
00128                     else if( nIndex != m_nLastPos_FILENAME ){
00129                         GetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo );
00130 						::DlgItem_SetText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom );
00131 						::DlgItem_SetText( hwndDlg, IDC_EDIT_FNAME_TO, szTo );
00132                     }
00133                     else{
00134                         // nIndex == m_nLastPos_FILENAMEのとき
00135                         // リスト→エディットボックスにデータをコピーすると[更新]がうまくうまく動作しない
00136                     }
00137                     m_nLastPos_FILENAME = nIndex;
00138                     break;
00139                 }
00140                 break;
00141             default:
00142                 switch( pNMHDR->code ){
00143                 case PSN_HELP:
00144                     OnHelp( hwndDlg, IDD_PROP_FNAME );
00145                     return TRUE;
00146                 case PSN_KILLACTIVE:
00147                     // ダイアログデータの取得
00148                     GetData_PROP_FILENAME( hwndDlg );
00149                     return TRUE;
00150     //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00151                 case PSN_SETACTIVE:
00152                     m_nPageNum = ID_PAGENUM_FILENAME;
00153                     return TRUE;
00154                 }
00155                 break;
00156             }
00157         }
00158         break;
00159
00160     case WM_COMMAND:
00161         {
00162             WORD    wNotifyCode = HIWORD(wParam);   // 通知コード
00163             WORD    wID = LOWORD(wParam);           // 項目ID､ コントロールID､ またはアクセラレータID
00164             HWND    hwndCtl = (HWND) lParam;        // コントロールのハンドル
00165             int     nCount;
00166
00167             switch( wNotifyCode ){
00168             // ボタンがクリックされた
00169             case BN_CLICKED:
00170                 hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00171                 nIndex = ListView_GetNextItem( hListView, -1, LVNI_SELECTED );
00172                 switch( wID ){
00173                 case IDC_BUTTON_FNAME_INS:  // 挿入
00174                     // 選択中のキーを探す
00175                     nCount = ListView_GetItemCount( hListView );
00176                     if( -1 == nIndex ){
00177                         // 選択中でなければ最後に追加
00178                         nIndex = nCount;
00179                     }
00180 					::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00181 					::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00182
00183                     if( -1 != SetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo, true ) ){
00184                         return TRUE;
00185                     }
00186                     break;
00187                 case IDC_BUTTON_FNAME_ADD:  // 追加
00188                     nCount = ListView_GetItemCount( hListView );
00189
00190 					::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00191 					::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00192
00193                     if( -1 != SetListViewItem_FILENAME( hListView, nCount, szFrom, szTo, true ) ){
00194                         return TRUE;
00195                     }
00196                     break;
00197
00198                 case IDC_BUTTON_FNAME_UPD:  // 更新
00199                     if( -1 != nIndex ){
00200 						::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00201 						::DlgItem_GetText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00202                         if( -1 != SetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo, false ) ){
00203                             return TRUE;
00204                         }
00205                     }else{
00206                         // 未選択でリストにひとつも項目がない場合は追加しておく
00207                         if( 0 == ListView_GetItemCount( hListView ) ){
00208                             if( -1 != SetListViewItem_FILENAME( hListView, 0, szFrom, szTo, true ) ){
00209                                 return TRUE;
00210                             }
00211                         }
00212                     }
00213                     break;
00214                 case IDC_BUTTON_FNAME_DEL:  // 削除
00215                     if( -1 != nIndex ){
00216                         ListView_DeleteItem( hListView, nIndex );   //古いキーを削除
00217                         ListView_SetItemState( hListView, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00218                         return TRUE;
00219                     }
00220                     break;
00221                 case IDC_BUTTON_FNAME_TOP:  // 先頭
00222                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, 0 ) ){
00223                         return TRUE;
00224                     }
00225                     break;
00226                 case IDC_BUTTON_FNAME_UP:   // 上へ
00227                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nIndex - 1 ) ){
00228                         return TRUE;
00229                     }
00230                     break;
00231                 case IDC_BUTTON_FNAME_DOWN: // 下へ
00232                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nIndex + 1 ) ){
00233                         return TRUE;
00234                     }
00235                     break;
00236                 case IDC_BUTTON_FNAME_LAST: // 最終
00237                     nCount = ListView_GetItemCount( hListView );
00238                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nCount - 1 ) ){
00239                         return TRUE;
00240                     }
00241                     break;
00242                 // default:
00243                 }
00244                 break;
00245             // default:
00246             }
00247         }
00248
00249         break;  /* WM_COMMAND */
00250 //@@@ 2001.02.04 Start by MIK: Popup Help
00251     case WM_HELP:
00252         {
00253             HELPINFO *p = (HELPINFO *)lParam;
00254             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00255         }
00256         return TRUE;
00257 //@@@ 2001.02.04 End
00258
00259 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00260     //Context Menu
00261     case WM_CONTEXTMENU:
00262         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00263         return TRUE;
00264 //@@@ 2001.12.22 End
00265
00266     }
00267     return FALSE;
00268 }
00269
00270
00271
00277 void CPropCommon::SetData_PROP_FILENAME( HWND hwndDlg )
00278 {
00279     int nIndex;
00280     int i;
00281     LVITEM lvItem;
00282
00283
00284     // ファイル名置換リスト
00285     HWND hListView = ::GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00286     ListView_DeleteAllItems( hListView ); // リストを空にする
00287
00288     // リストにデータをセット
00289     for( i = 0, nIndex = 0; i < m_nTransformFileNameArrNum; i++ ){
00290         if( '\0' == m_szTransformFileNameFrom[i][0] ) continue;
00291
00292         ::ZeroMemory( &lvItem, sizeof_raw( lvItem ));
00293         lvItem.mask     = LVIF_TEXT;
00294         lvItem.iItem    = nIndex;
00295         lvItem.iSubItem = 0;
00296         lvItem.pszText  = m_szTransformFileNameFrom[i];
00297         ListView_InsertItem( hListView, &lvItem );
00298
00299         ::ZeroMemory( &lvItem, sizeof_raw( lvItem ));
00300         lvItem.mask     = LVIF_TEXT;
00301         lvItem.iItem    = nIndex;
00302         lvItem.iSubItem = 1;
00303         lvItem.pszText  = m_szTransformFileNameTo[i];
00304         ListView_SetItem( hListView, &lvItem );
00305
00306         nIndex++;
00307     }
00308
00309     // 一番上を選択しておく
00310     if( 0 != nIndex ){
00311         ListView_SetItemState( hListView, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00312     }
00313     //  リストビューの行選択を可能にする．
00314     DWORD dwStyle;
00315     dwStyle = ListView_GetExtendedListViewStyle( hListView );
00316     dwStyle |= LVS_EX_FULLROWSELECT;
00317     ListView_SetExtendedListViewStyle( hListView, dwStyle );
00318
00319     return;
00320 }
00321
00328 int CPropCommon::GetData_PROP_FILENAME( HWND hwndDlg )
00329 {
00330
00331     int nIndex;
00332     int nCount;
00333
00334     // ファイル名を簡易表示する
00335 //  if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_FNAME ) ){
00336 //      m_bUseTransformFileName = TRUE;
00337 //  }else{
00338 //      m_bUseRegexKeyword = FALSE;
00339 //  }
00340
00341     // ファイル名置換リスト
00342     HWND hListView = ::GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00343     m_nTransformFileNameArrNum = ListView_GetItemCount( hListView );
00344
00345     for( nIndex = 0, nCount = 0; nIndex < MAX_TRANSFORM_FILENAME ; ++nIndex ){
00346         if( nIndex < m_nTransformFileNameArrNum ){
00347             ListView_GetItemText( hListView, nIndex, 0, m_szTransformFileNameFrom[nCount], _MAX_PATH );
00348
00349             // 置換前文字列がNULLだったら捨てる
00350             if( L'\0' == m_szTransformFileNameFrom[nCount][0] ){
00351                 m_szTransformFileNameTo[nIndex][0] = L'\0';
00352             }else{
00353                 ListView_GetItemText( hListView, nIndex, 1, m_szTransformFileNameTo[nCount], _MAX_PATH );
00354                 nCount++;
00355             }
00356         }else{
00357             m_szTransformFileNameFrom[nIndex][0] = L'\0';
00358             m_szTransformFileNameTo[nIndex][0] = L'\0';
00359         }
00360     }
00361
00362     return TRUE;
00363 }
00364
00365
00366 int CPropCommon::SetListViewItem_FILENAME( HWND hListView, int nIndex, LPTSTR szFrom, LPTSTR szTo, bool bInsMode )
00367 {
00368     LV_ITEM Item;
00369     int nCount;
00370
00371     if( _T('\0') == szFrom[0] || -1 == nIndex ) return -1;
00372
00373     nCount = ListView_GetItemCount( hListView );
00374
00375     // これ以上追加できない
00376     if( bInsMode && MAX_TRANSFORM_FILENAME <= nCount ){
00377         ::MessageBox( GetParent( hListView ), _T("これ以上登録できません。"), GSTR_APPNAME, MB_OK | MB_ICONSTOP );
00378         return -1;
00379     }
00380
00381     ::ZeroMemory( &Item, sizeof_raw( Item ));
00382     Item.mask     = LVIF_TEXT;
00383     Item.iItem    = nIndex;
00384     Item.iSubItem = 0;
00385     Item.pszText  = szFrom;
00386     if( bInsMode ){
00387         ListView_InsertItem( hListView, &Item );
00388     }else{
00389         ListView_SetItem( hListView, &Item );
00390     }
00391
00392     ::ZeroMemory( &Item, sizeof_raw( Item ));
00393     Item.mask     = LVIF_TEXT;
00394     Item.iItem    = nIndex;
00395     Item.iSubItem = 1;
00396     Item.pszText  = szTo;
00397     ListView_SetItem( hListView, &Item );
00398
00399     ListView_SetItemState( hListView, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00400     return nIndex;
00401 }
00402
00403
00404 void CPropCommon::GetListViewItem_FILENAME( HWND hListView, int nIndex, LPTSTR szFrom, LPTSTR szTo )
00405 {
00406     ListView_GetItemText( hListView, nIndex, 0, szFrom, _MAX_PATH );
00407     ListView_GetItemText( hListView, nIndex, 1, szTo, _MAX_PATH );
00408 }
00409
00410
00411 int CPropCommon::MoveListViewItem_FILENAME( HWND hListView, int nIndex, int nIndex2 )
00412 {
00413     TCHAR szFrom[_MAX_PATH];
00414     TCHAR szTo[_MAX_PATH];
00415     int nCount = ListView_GetItemCount( hListView );
00416
00417     //  2004.03.24 dskoba
00418     if( nIndex > nCount - 1 ){
00419         nIndex = nCount - 1;
00420     }
00421     if( nIndex2 > nCount - 1 ){
00422         nIndex2 = nCount - 1;
00423     }
00424     if( nIndex < 0 ){
00425         nIndex = 0;
00426     }
00427     if( nIndex2 < 0 ){
00428         nIndex2 = 0;
00429     }
00430
00431     if( nIndex == nIndex2 ){
00432         return -1;
00433     }
00434
00435     GetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo );
00436     ListView_DeleteItem( hListView, nIndex );   //古いキーを削除
00437     SetListViewItem_FILENAME( hListView, nIndex2, szFrom, szTo, true );
00438     return nIndex2;
00439 }
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFormat.cpp

sakura_core

CPropComFormat.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "util/shell.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 の 59 行で定義されています。

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 の 77 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComFormat.cpp ソースファイル

sakura_core

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 "debug.h" // 2002/2/10 aroka
00021 #include "util/shell.h"
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     TCHAR szText[1024];
00110     SYSTEMTIME systime;
00111     ::GetLocalTime( &systime );
00112     CShareData::getInstance()->MyGetDateFormat( systime, szText, _countof( szText ) - 1, m_Common.m_sFormat.m_nDateFormatType, m_Common.m_sFormat.m_szDateFormat );
00113 	::DlgItem_SetText( 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     TCHAR szText[1024];
00123     SYSTEMTIME systime;
00124     ::GetLocalTime( &systime );
00125     CShareData::getInstance()->MyGetTimeFormat( systime, szText, _countof( szText ) - 1, m_Common.m_sFormat.m_nTimeFormatType, m_Common.m_sFormat.m_szTimeFormat );
00126 	::DlgItem_SetText( 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         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_MIDASHIKIGOU ), EM_LIMITTEXT, (WPARAM)(_countof(m_Common.m_sFormat.m_szMidashiKigou) - 1 ), 0 );
00159
00160         /* 引用符 */
00161         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_INYOUKIGOU ), EM_LIMITTEXT, (WPARAM)(_countof(m_Common.m_sFormat.m_szInyouKigou) - 1 ), 0 );
00162
00163         /* 日付書式 */
00164         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), EM_LIMITTEXT, (WPARAM)(_countof(m_Common.m_sFormat.m_szDateFormat) - 1 ), 0 );
00165
00166         /* 時刻書式 */
00167         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), EM_LIMITTEXT, (WPARAM)(_countof(m_Common.m_sFormat.m_szTimeFormat) - 1 ), 0 );
00168
00169
00170
00171         return TRUE;
00172     case WM_COMMAND:
00173         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00174         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00175         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00176         switch( wNotifyCode ){
00177         case EN_CHANGE:
00178             if( IDC_EDIT_DFORM == wID ){
00179                 ChangeDateExample( hwndDlg );
00180                 return 0;
00181             }
00182             if( IDC_EDIT_TFORM == wID  ){
00183                 ChangeTimeExample( hwndDlg );
00184                 return 0;
00185             }
00186             break;
00187
00188         /* ボタン／チェックボックスがクリックされた */
00189         case BN_CLICKED:
00190             switch( wID ){
00191             case IDC_RADIO_DFORM_0:
00192             case IDC_RADIO_DFORM_1:
00193                 ChangeDateExample( hwndDlg );
00194             //  From Here Sept. 10, 2000 JEPRO
00195             //  日付書式 0=標準 1=カスタム
00196             //  日付書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00197                 EnableFormatPropInput( hwndDlg );
00198             //  To Here Sept. 10, 2000
00199                 return 0;
00200             case IDC_RADIO_TFORM_0:
00201             case IDC_RADIO_TFORM_1:
00202                 ChangeTimeExample( hwndDlg );
00203             //  From Here Sept. 10, 2000 JEPRO
00204             //  時刻書式 0=標準 1=カスタム
00205             //  時刻書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00206                 EnableFormatPropInput( hwndDlg );
00207             //  To Here Sept. 10, 2000
00208                 return 0;
00209
00210
00211
00212
00213             }
00214             break;  /* BN_CLICKED */
00215         }
00216         break;  /* WM_COMMAND */
00217     case WM_NOTIFY:
00218         idCtrl = (int)wParam;
00219         pNMHDR = (NMHDR*)lParam;
00220         pMNUD  = (NM_UPDOWN*)lParam;
00221 //      switch( idCtrl ){
00222 //      case ???????:
00223 //          return 0L;
00224 //      default:
00225             switch( pNMHDR->code ){
00226             case PSN_HELP:
00227                 OnHelp( hwndDlg, IDD_PROP_FORMAT );
00228                 return TRUE;
00229             case PSN_KILLACTIVE:
00230 //              MYTRACE_A( "p9 PSN_KILLACTIVE\n" );
00231                 /* ダイアログデータの取得 p9 */
00232                 GetData_p9( hwndDlg );
00233                 return TRUE;
00234 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00235             case PSN_SETACTIVE:
00236                 m_nPageNum = ID_PAGENUM_FORMAT;
00237                 return TRUE;
00238             }
00239 //          break;  /* default */
00240 //      }
00241
00242 //      MYTRACE_A( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00243 //      MYTRACE_A( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00244 //      MYTRACE_A( "pNMHDR->code    =%xh\n", pNMHDR->code );
00245 //      MYTRACE_A( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00246 //      MYTRACE_A( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00247         break;  /* WM_NOTIFY */
00248
00249 //@@@ 2001.02.04 Start by MIK: Popup Help
00250     case WM_HELP:
00251         {
00252             HELPINFO *p = (HELPINFO *)lParam;
00253             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00254         }
00255         return TRUE;
00256         /*NOTREACHED*/
00257         break;
00258 //@@@ 2001.02.04 End
00259
00260 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00261     //Context Menu
00262     case WM_CONTEXTMENU:
00263         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00264         return TRUE;
00265 //@@@ 2001.12.22 End
00266
00267     }
00268     return FALSE;
00269 }
00270
00271
00272
00273
00274
00275 /* ダイアログデータの設定 p9 */
00276 void CPropCommon::SetData_p9( HWND hwndDlg )
00277 {
00278
00279     /* 見出し記号 */
00280 	::DlgItem_SetText( hwndDlg, IDC_EDIT_MIDASHIKIGOU, m_Common.m_sFormat.m_szMidashiKigou );
00281
00282     /* 引用符 */
00283 	::DlgItem_SetText( hwndDlg, IDC_EDIT_INYOUKIGOU, m_Common.m_sFormat.m_szInyouKigou );
00284
00285
00286     //日付書式のタイプ
00287     if( 0 == m_Common.m_sFormat.m_nDateFormatType ){
00288         ::CheckDlgButton( hwndDlg, IDC_RADIO_DFORM_0, BST_CHECKED );
00289     }else{
00290         ::CheckDlgButton( hwndDlg, IDC_RADIO_DFORM_1, BST_CHECKED );
00291     }
00292     //日付書式
00293 	::DlgItem_SetText( hwndDlg, IDC_EDIT_DFORM, m_Common.m_sFormat.m_szDateFormat );
00294
00295     //時刻書式のタイプ
00296     if( 0 == m_Common.m_sFormat.m_nTimeFormatType ){
00297         ::CheckDlgButton( hwndDlg, IDC_RADIO_TFORM_0, BST_CHECKED );
00298     }else{
00299         ::CheckDlgButton( hwndDlg, IDC_RADIO_TFORM_1, BST_CHECKED );
00300     }
00301     //時刻書式
00302 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TFORM, m_Common.m_sFormat.m_szTimeFormat );
00303
00304     //  From Here Sept. 10, 2000 JEPRO
00305     //  日付/時刻書式 0=標準 1=カスタム
00306     //  日付/時刻書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00307     EnableFormatPropInput( hwndDlg );
00308     //  To Here Sept. 10, 2000
00309
00310     return;
00311 }
00312
00313
00314
00315
00316 /* ダイアログデータの取得 p9 */
00317 int CPropCommon::GetData_p9( HWND hwndDlg )
00318 {
00319 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00320 //  m_nPageNum = ID_PAGENUM_FORMAT;
00321
00322     /* 見出し記号 */
00323 	::DlgItem_GetText( hwndDlg, IDC_EDIT_MIDASHIKIGOU, m_Common.m_sFormat.m_szMidashiKigou, _countof(m_Common.m_sFormat.m_szMidashiKigou) );
00324
00325 //  /* 外部ヘルプ１ */
00326 //  ::DlgItem_GetText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_sFormat.m_szExtHelp1, MAX_PATH - 1 );
00327 //
00328 //  /* 外部HTMLヘルプ */
00329 //  ::DlgItem_GetText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_sFormat.m_szExtHtmlHelp, MAX_PATH - 1 );
00330
00331     /* 引用符 */
00332 	::DlgItem_GetText( hwndDlg, IDC_EDIT_INYOUKIGOU, m_Common.m_sFormat.m_szInyouKigou, _countof(m_Common.m_sFormat.m_szInyouKigou) );
00333
00334
00335     //日付書式のタイプ
00336     if( BST_CHECKED == ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_DFORM_0 ) ){
00337         m_Common.m_sFormat.m_nDateFormatType = 0;
00338     }else{
00339         m_Common.m_sFormat.m_nDateFormatType = 1;
00340     }
00341     //日付書式
00342 	::DlgItem_GetText( hwndDlg, IDC_EDIT_DFORM, m_Common.m_sFormat.m_szDateFormat, _countof( m_Common.m_sFormat.m_szDateFormat ));
00343
00344     //時刻書式のタイプ
00345     if( BST_CHECKED == ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_TFORM_0 ) ){
00346         m_Common.m_sFormat.m_nTimeFormatType = 0;
00347     }else{
00348         m_Common.m_sFormat.m_nTimeFormatType = 1;
00349     }
00350
00351     //時刻書式
00352 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TFORM, m_Common.m_sFormat.m_szTimeFormat, _countof( m_Common.m_sFormat.m_szTimeFormat ));
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365     return TRUE;
00366 }
00367
00368
00369
00370
00371
00372 //  From Here Sept. 10, 2000 JEPRO
00373 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
00374 //  適切に設定する
00375 void CPropCommon::EnableFormatPropInput( HWND hwndDlg )
00376 {
00377     //  日付書式をカスタムにするかどうか
00378     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_DFORM_1 ) ){
00379         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_DFORM ), TRUE );
00380         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), TRUE );
00381     }else{
00382         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_DFORM ), FALSE );
00383         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), FALSE );
00384     }
00385
00386     //  時刻書式をカスタムにするかどうか
00387     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_TFORM_1 ) ){
00388         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_TFORM ), TRUE );
00389         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), TRUE );
00390     }else{
00391         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_TFORM ), FALSE );
00392         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), FALSE );
00393     }
00394 }
00395 //  To Here Sept. 10, 2000
00396
00397
00398 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComGrep.cpp

sakura_core

CPropComGrep.cpp

共通設定ダイアログボックス、「Grep」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "util/shell.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 の 25 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComGrep.cpp ソースファイル

sakura_core

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 "util/shell.h"
00020 #include "CBregexp.h"   // 2007.08/12 genta バージョン取得
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[] = {  //10500
00026     IDC_EDIT_REGEXPLIB,             HIDC_EDIT_REGEXPLIB,    //正規表現ライブラリ選択 // 2007.09.02 genta
00027     IDC_LABEL_REGEXP,               HIDC_EDIT_REGEXPLIB,
00028     IDC_LABEL_REGEXP_VER,           HIDC_LABEL_REGEXPVER,   //正規表現ライブラリバージョン    // 2007.09.02 genta
00029     IDC_CHECK_bCaretTextForSearch,  HIDC_CHECK_bCaretTextForSearch, //カーソル位置の文字列をデフォルトの検索文字列にする   // 2006.08.23 ryoji
00030     IDC_CHECK_bGrepExitConfirm,     HIDC_CHECK_bGrepExitConfirm,    //GREPの保存確認
00031     IDC_CHECK_GTJW_RETURN,          HIDC_CHECK_GTJW_RETURN,         //タグジャンプ（エンターキー）
00032     IDC_CHECK_GTJW_LDBLCLK,         HIDC_CHECK_GTJW_LDBLCLK,        //タグジャンプ（ダブルクリック）
00033     IDC_CHECK_GREPREALTIME,         HIDC_CHECK_GREPREALTIME,        //リアルタイムで表示する // 2006.08.08 ryoji
00034 //  IDC_STATIC,                     -1,
00035     0, 0
00036 };
00037 #else
00038 static const DWORD p_helpids[] = {  //10500
00039     IDC_CHECK_bGrepExitConfirm,     10510,  //GREPの保存確認
00040     IDC_CHECK_GTJW_RETURN,          10511,  //タグジャンプ（エンターキー）
00041     IDC_CHECK_GTJW_LDBLCLK,         10512,  //タグジャンプ（ダブルクリック）
00042 //  IDC_STATIC,                     -1,
00043     0, 0
00044 };
00045 #endif
00046 //@@@ 2001.02.04 End
00047
00048 //  From Here Jun. 2, 2001 genta
00055 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GREP(
00056     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00057 {
00058     return DlgProc( &CPropCommon::DispatchEvent_PROP_GREP, hwndDlg, uMsg, wParam, lParam );
00059 }
00060 //  To Here Jun. 2, 2001 genta
00061
00062 /* メッセージ処理 */
00063 INT_PTR CPropCommon::DispatchEvent_PROP_GREP( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00064 {
00065 //  WORD        wNotifyCode;
00066 //  WORD        wID;
00067 //  HWND        hwndCtl;
00068     NMHDR*      pNMHDR;
00069     NM_UPDOWN*  pMNUD;
00070     int         idCtrl;
00071 //  int         nVal;
00072 //    LPDRAWITEMSTRUCT pDis;
00073
00074     switch( uMsg ){
00075
00076     case WM_INITDIALOG:
00077         /* ダイアログデータの設定 p1 */
00078         SetData_PROP_GREP( hwndDlg );
00079         // Modified by KEITA for WIN64 2003.9.6
00080 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00081
00082         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00083
00084         return TRUE;
00085     case WM_NOTIFY:
00086         idCtrl = (int)wParam;
00087         pNMHDR = (NMHDR*)lParam;
00088         pMNUD  = (NM_UPDOWN*)lParam;
00089 //      switch( idCtrl ){
00090 //      default:
00091             switch( pNMHDR->code ){
00092             case PSN_HELP:
00093                 OnHelp( hwndDlg, IDD_PROP_GREP );
00094                 return TRUE;
00095             case PSN_KILLACTIVE:
00096                 /* ダイアログデータの取得 p1 */
00097                 GetData_PROP_GREP( hwndDlg );
00098                 return TRUE;
00099 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00100             case PSN_SETACTIVE:
00101                 m_nPageNum = ID_PAGENUM_GREP;
00102                 return TRUE;
00103             }
00104 //          break;  /* default */
00105 //      }
00106         break;  /* WM_NOTIFY */
00107     case WM_COMMAND:
00108         //  2007.08.12 genta 正規表現DLLの変更に応じてVersionを再取得する
00109         if( wParam == MAKEWPARAM( IDC_EDIT_REGEXPLIB, EN_KILLFOCUS )){
00110             SetRegexpVersion( hwndDlg );
00111         }
00112         break;
00113
00114 //@@@ 2001.02.04 Start by MIK: Popup Help
00115     case WM_HELP:
00116         {
00117             HELPINFO *p = (HELPINFO *)lParam;
00118             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00119         }
00120         return TRUE;
00121         /*NOTREACHED*/
00122         //break;
00123 //@@@ 2001.02.04 End
00124
00125 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00126     //Context Menu
00127     case WM_CONTEXTMENU:
00128         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00129         return TRUE;
00130 //@@@ 2001.12.22 End
00131
00132     }
00133     return FALSE;
00134 }
00135
00136
00137 /* ダイアログデータの設定 */
00138 void CPropCommon::SetData_PROP_GREP( HWND hwndDlg )
00139 {
00140     /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00141     ::CheckDlgButton( hwndDlg, IDC_CHECK_bCaretTextForSearch, m_Common.m_sSearch.m_bCaretTextForSearch );
00142
00143     /* Grepモードで保存確認するか */
00144     ::CheckDlgButton( hwndDlg, IDC_CHECK_bGrepExitConfirm, m_Common.m_sSearch.m_bGrepExitConfirm );
00145
00146     /* Grep結果のリアルタイム表示 */
00147     ::CheckDlgButton( hwndDlg, IDC_CHECK_GREPREALTIME, m_Common.m_sSearch.m_bGrepRealTimeView );    // 2006.08.08 ryoji ID修正
00148
00149
00150     /* Grepモード: エンターキーでタグジャンプ */
00151     ::CheckDlgButton( hwndDlg, IDC_CHECK_GTJW_RETURN, m_Common.m_sSearch.m_bGTJW_RETURN );
00152
00153     /* Grepモード: ダブルクリックでタグジャンプ */
00154     ::CheckDlgButton( hwndDlg, IDC_CHECK_GTJW_LDBLCLK, m_Common.m_sSearch.m_bGTJW_LDBLCLK );
00155
00156     //  2007.08.12 genta 正規表現DLL
00157     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_REGEXPLIB ),  EM_LIMITTEXT, (WPARAM)( sizeof(m_Common.m_sSearch.m_szRegexpLib ) - 1 ), 0 );
00158     ::SetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, m_Common.m_sSearch.m_szRegexpLib);
00159     SetRegexpVersion( hwndDlg );
00160
00161     return;
00162 }
00163
00164
00165
00166
00167 /* ダイアログデータの取得 */
00168 int CPropCommon::GetData_PROP_GREP( HWND hwndDlg )
00169 {
00170 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00171 //  m_nPageNum = ID_PAGENUM_GREP;
00172
00173     /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00174     m_Common.m_sSearch.m_bCaretTextForSearch = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bCaretTextForSearch );
00175
00176     /* Grepモードで保存確認するか */
00177     m_Common.m_sSearch.m_bGrepExitConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bGrepExitConfirm );
00178
00179     /* Grep結果のリアルタイム表示 */
00180     m_Common.m_sSearch.m_bGrepRealTimeView = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GREPREALTIME );   // 2006.08.08 ryoji ID修正
00181
00182     /* Grepモード: エンターキーでタグジャンプ */
00183     m_Common.m_sSearch.m_bGTJW_RETURN = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GTJW_RETURN );
00184
00185     /* Grepモード: ダブルクリックでタグジャンプ */
00186     m_Common.m_sSearch.m_bGTJW_LDBLCLK = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GTJW_LDBLCLK );
00187
00188     //  2007.08.12 genta 正規表現DLL
00189     ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, m_Common.m_sSearch.m_szRegexpLib, sizeof( m_Common.m_sSearch.m_szRegexpLib ));
00190
00191     return TRUE;
00192 }
00193
00194 void CPropCommon::SetRegexpVersion( HWND hwndDlg )
00195 {
00196     TCHAR regexp_dll[_MAX_PATH];
00197
00198     ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, regexp_dll, sizeof( regexp_dll ));
00199     CBregexp breg;
00200     if( ! breg.Init( regexp_dll ) ){
00201         ::SetDlgItemText( hwndDlg, IDC_LABEL_REGEXP_VER, _T("正規表現は使用できません") );
00202         return;
00203     }
00204     ::SetDlgItemText( hwndDlg, IDC_LABEL_REGEXP_VER, breg.GetVersionT() );
00205 }
00206
00207
00208 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComHelper.cpp

sakura_core

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 "CDlgInput1.h"
#include "global.h"
#include "util/shell.h"
#include "util/module.h"
#include "util/file.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 の 36 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComHelper.cpp ソースファイル

sakura_core

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 "CDlgInput1.h"
00028 #include "global.h"
00029 #include "util/shell.h"
00030 #include "util/module.h"
00031 #include "util/file.h"
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[] = {  //10600
00037     IDC_BUTTON_OPENHELP1,           HIDC_BUTTON_OPENHELP1,          //外部ヘルプファイル参照
00038     IDC_BUTTON_OPENEXTHTMLHELP,     HIDC_BUTTON_OPENEXTHTMLHELP,    //外部HTMLファイル参照
00039 //  IDC_CHECK_USEHOKAN,             HIDC_CHECK_USEHOKAN,            //逐次入力補完
00040     IDC_CHECK_m_bHokanKey_RETURN,   HIDC_CHECK_m_bHokanKey_RETURN,  //候補決定キー（Enter）
00041     IDC_CHECK_m_bHokanKey_TAB,      HIDC_CHECK_m_bHokanKey_TAB,     //候補決定キー（Tab）
00042     IDC_CHECK_m_bHokanKey_RIGHT,    HIDC_CHECK_m_bHokanKey_RIGHT,   //候補決定キー（→）
00043 //  IDC_CHECK_m_bHokanKey_SPACE,    HIDC_CHECK_m_bHokanKey_SPACE,   //候補決定キー（Space）
00044     IDC_CHECK_HTMLHELPISSINGLE,     HIDC_CHECK_HTMLHELPISSINGLE,    //ビューアの複数起動
00045     IDC_EDIT_EXTHELP1,              HIDC_EDIT_EXTHELP1,             //外部ヘルプファイル名
00046     IDC_EDIT_EXTHTMLHELP,           HIDC_EDIT_EXTHTMLHELP,          //外部HTMLヘルプファイル名
00047     //  2007.02.04 genta カーソル位置の単語の辞書検索は共通設定から外した
00048     //IDC_CHECK_CLICKKEYSEARCH,     HIDC_CHECK_CLICKKEYSEARCH,      //キャレット位置の単語を辞書検索 // 2006.03.24 fon
00049     IDC_BUTTON_KEYWORDHELPFONT,     HIDC_BUTTON_KEYWORDHELPFONT,    //キーワードヘルプのフォント
00050     IDC_EDIT_MIGEMO_DLL,            HIDC_EDIT_MIGEMO_DLL,           //Migemo DLLファイル名 // 2006.08.06 ryoji
00051     IDC_BUTTON_OPENMDLL,            HIDC_BUTTON_OPENMDLL,           //Migemo DLLファイル参照  // 2006.08.06 ryoji
00052     IDC_EDIT_MIGEMO_DICT,           HIDC_EDIT_MIGEMO_DICT,          //Migemo 辞書ファイル名  // 2006.08.06 ryoji
00053     IDC_BUTTON_OPENMDICT,           HIDC_BUTTON_OPENMDICT,          //Migemo 辞書ファイル参照   // 2006.08.06 ryoji
00054 //  IDC_STATIC,                     -1,
00055     0, 0
00056 };
00057 #else
00058 static const DWORD p_helpids[] = {  //10600
00059 //  IDC_BUTTON_HOKANFILE_REF,       10600,  //入力補完 単語ファイル参照     //Jul. 05, 2001 JEPRO タイプ別に移動
00060 //  IDC_BUTTON_KEYWORDHELPFILE_REF, 10601,  //キーワードヘルプファイル参照    //Jul. 05, 2001 JEPRO タイプ別に移動
00061     IDC_BUTTON_OPENHELP1,           10602,  //外部ヘルプファイル参照
00062     IDC_BUTTON_OPENEXTHTMLHELP,     10603,  //外部HTMLファイル参照
00063 //  IDC_CHECK_USEHOKAN,             10610,  //逐次入力補完
00064 //  IDC_CHECK_HOKANLOHICASE,        10611,  //入力補完の英大文字小文字      //Jul. 05, 2001 JEPRO タイプ別に移動
00065     IDC_CHECK_m_bHokanKey_RETURN,   10612,  //候補決定キー（Enter）
00066     IDC_CHECK_m_bHokanKey_TAB,      10613,  //候補決定キー（Tab）
00067     IDC_CHECK_m_bHokanKey_RIGHT,    10614,  //候補決定キー（→）
00068 //  IDC_CHECK_m_bHokanKey_SPACE,    10615,  //候補決定キー（Space）
00069 //  IDC_CHECK_USEKEYWORDHELP,       10616,  //キーワードヘルプ機能            //Jul. 05, 2001 JEPRO タイプ別に移動
00070     IDC_CHECK_HTMLHELPISSINGLE,     10617,  //ビューアの複数起動
00071 //  IDC_EDIT_HOKANFILE,             10640,  //単語ファイル名             //Jul. 05, 2001 JEPRO タイプ別に移動
00072 //  IDC_EDIT_KEYWORDHELPFILE,       10641,  //辞書ファイル名             //Jul. 05, 2001 JEPRO タイプ別に移動
00073     IDC_EDIT_EXTHELP1,              10642,  //外部ヘルプファイル名
00074     IDC_EDIT_EXTHTMLHELP,           10643,  //外部HTMLヘルプファイル名
00075 //  IDC_STATIC,                     -1,
00076     0, 0
00077 };
00078 #endif
00079 //@@@ 2001.02.04 End
00080
00081 //  From Here Jun. 2, 2001 genta
00088 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_HELPER(
00089     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00090 {
00091     return DlgProc( &CPropCommon::DispatchEvent_p10, hwndDlg, uMsg, wParam, lParam );
00092 }
00093 //  To Here Jun. 2, 2001 genta
00094
00095 /* p10 メッセージ処理 */
00096 INT_PTR CPropCommon::DispatchEvent_p10(
00097     HWND    hwndDlg,    // handle to dialog box
00098     UINT    uMsg,       // message
00099     WPARAM  wParam,     // first message parameter
00100     LPARAM  lParam      // second message parameter
00101 )
00102 {
00103     WORD        wNotifyCode;
00104     WORD        wID;
00105     HWND        hwndCtl;
00106     NMHDR*      pNMHDR;
00107     NM_UPDOWN*  pMNUD;
00108     int         idCtrl;
00109 //  int         nVal;
00110
00111     switch( uMsg ){
00112     case WM_INITDIALOG:
00113         /* ダイアログデータの設定 p10 */
00114         SetData_p10( hwndDlg );
00115         // Modified by KEITA for WIN64 2003.9.6
00116 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00117
00118         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00119         /* 外部ヘルプ１ */
00120         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHELP1 ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00121         /* 外部HTMLヘルプ */
00122         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHTMLHELP ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00123
00124
00125         return TRUE;
00126     case WM_COMMAND:
00127         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00128         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00129         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00130         switch( wNotifyCode ){
00131         /* ボタン／チェックボックスがクリックされた */
00132         case BN_CLICKED:
00133             /* ダイアログデータの取得 p10 */
00134             GetData_p10( hwndDlg );
00135             switch( wID ){
00136             case IDC_BUTTON_OPENHELP1:  /* 外部ヘルプ１の「参照...」ボタン */
00137                 {
00138                     CDlgOpenFile    cDlgOpenFile;
00139                     TCHAR           szPath[_MAX_PATH + 1];
00140                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00141                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00142                     if( _IS_REL_PATH( m_Common.m_sHelper.m_szExtHelp ) ){
00143                         GetInidirOrExedir( szPath, m_Common.m_sHelper.m_szExtHelp, TRUE );
00144                     }else{
00145                         _tcscpy( szPath, m_Common.m_sHelper.m_szExtHelp );
00146                     }
00147                     /* ファイルオープンダイアログの初期化 */
00148                     cDlgOpenFile.Create(
00149                         m_hInstance,
00150                         hwndDlg,
00151                         _T("*.hlp"),
00152                         szPath
00153                     );
00154                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00155                         _tcscpy( m_Common.m_sHelper.m_szExtHelp, szPath );
00156 						::DlgItem_SetText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_sHelper.m_szExtHelp );
00157                     }
00158                 }
00159                 return TRUE;
00160             case IDC_BUTTON_OPENEXTHTMLHELP:    /* 外部HTMLヘルプの「参照...」ボタン */
00161                 {
00162                     CDlgOpenFile    cDlgOpenFile;
00163                     TCHAR           szPath[_MAX_PATH + 1];
00164                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00165                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00166                     if( _IS_REL_PATH( m_Common.m_sHelper.m_szExtHtmlHelp ) ){
00167                         GetInidirOrExedir( szPath, m_Common.m_sHelper.m_szExtHtmlHelp, TRUE );
00168                     }else{
00169                         _tcscpy( szPath, m_Common.m_sHelper.m_szExtHtmlHelp );
00170                     }
00171                     /* ファイルオープンダイアログの初期化 */
00172                     cDlgOpenFile.Create(
00173                         m_hInstance,
00174                         hwndDlg,
00175                         _T("*.chm;*.col"),
00176                         szPath
00177                     );
00178                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00179                         _tcscpy( m_Common.m_sHelper.m_szExtHtmlHelp, szPath );
00180 						::DlgItem_SetText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_sHelper.m_szExtHtmlHelp );
00181                     }
00182                 }
00183                 return TRUE;
00184             // ai 02/05/21 Add S
00185             case IDC_BUTTON_KEYWORDHELPFONT:    /* キーワードヘルプの「フォント」ボタン */
00186                 {
00187                     CHOOSEFONT  cf;
00188                     LOGFONT     lf;
00189
00190                     /* LOGFONTの初期化 */
00191                     memcpy_raw(&lf, &(m_Common.m_sHelper.m_lf_kh), sizeof(lf));
00192
00193                     /* CHOOSEFONTの初期化 */
00194                     memset_raw(&cf, 0, sizeof(cf));
00195                     cf.lStructSize = sizeof(cf);
00196                     cf.hwndOwner = hwndDlg;
00197                     cf.hDC = NULL;
00198                     cf.lpLogFont = &lf;
00199 //                  cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_EFFECTS;
00200                     cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00201                     if(ChooseFont(&cf))
00202                     {
00203                         memcpy_raw(&(m_Common.m_sHelper.m_lf_kh), &lf, sizeof(lf));
00204                     }
00205                 }
00206                 return TRUE;
00207             // ai 02/05/21 Add E
00208             case IDC_BUTTON_OPENMDLL:   /* MIGEMODLL場所指定「参照...」ボタン */
00209                 {
00210                     CDlgOpenFile    cDlgOpenFile;
00211                     TCHAR           szPath[_MAX_PATH + 1];
00212                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00213                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00214                     if( _IS_REL_PATH( m_Common.m_sHelper.m_szMigemoDll ) ){
00215                         GetInidirOrExedir( szPath, m_Common.m_sHelper.m_szMigemoDll, TRUE );
00216                     }else{
00217                         _tcscpy( szPath, m_Common.m_sHelper.m_szMigemoDll );
00218                     }
00219                     /* ファイルオープンダイアログの初期化 */
00220                     cDlgOpenFile.Create(
00221                         m_hInstance,
00222                         hwndDlg,
00223                         _T("*.dll"),
00224                         szPath
00225                     );
00226                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00227                         _tcscpy( m_Common.m_sHelper.m_szMigemoDll, szPath );
00228 						::DlgItem_SetText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_sHelper.m_szMigemoDll );
00229                     }
00230                 }
00231                 return TRUE;
00232             case IDC_BUTTON_OPENMDICT:  /* MigemoDict場所指定「参照...」ボタン */
00233                 {
00234                     TCHAR   szPath[MAX_PATH];
00235                     /* 検索フォルダ */
00236                     // 2007.05.27 ryoji 相対パスは設定ファイルからのパスを優先
00237                     if( _IS_REL_PATH( m_Common.m_sHelper.m_szMigemoDict ) ){
00238                         GetInidirOrExedir( szPath, m_Common.m_sHelper.m_szMigemoDict, TRUE );
00239                     }else{
00240                         _tcscpy( szPath, m_Common.m_sHelper.m_szMigemoDict );
00241                     }
00242                     if( SelectDir( hwndDlg, _T("検索するフォルダを選んでください"), szPath, szPath ) ){
00243                         _tcscpy( m_Common.m_sHelper.m_szMigemoDict, szPath );
00244 						::DlgItem_SetText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_sHelper.m_szMigemoDict );
00245                     }
00246                 }
00247                 return TRUE;
00248             }
00249             break;  /* BN_CLICKED */
00250         }
00251         break;  /* WM_COMMAND */
00252     case WM_NOTIFY:
00253         idCtrl = (int)wParam;
00254         pNMHDR = (NMHDR*)lParam;
00255         pMNUD  = (NM_UPDOWN*)lParam;
00256 //      switch( idCtrl ){
00257 //      case ???????:
00258 //          return 0L;
00259 //      default:
00260             switch( pNMHDR->code ){
00261             case PSN_HELP:
00262                 OnHelp( hwndDlg, IDD_PROP_HELPER );
00263                 return TRUE;
00264             case PSN_KILLACTIVE:
00265 //              MYTRACE_A( "p10 PSN_KILLACTIVE\n" );
00266                 /* ダイアログデータの取得 p10 */
00267                 GetData_p10( hwndDlg );
00268                 return TRUE;
00269 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00270             case PSN_SETACTIVE:
00271                 m_nPageNum = ID_PAGENUM_HELPER;
00272                 return TRUE;
00273             }
00274 //          break;  /* default */
00275 //      }
00276
00277 //      MYTRACE_A( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00278 //      MYTRACE_A( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00279 //      MYTRACE_A( "pNMHDR->code    =%xh\n", pNMHDR->code );
00280 //      MYTRACE_A( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00281 //      MYTRACE_A( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00282         break;  /* WM_NOTIFY */
00283
00284 //@@@ 2001.02.04 Start by MIK: Popup Help
00285     case WM_HELP:
00286         {
00287             HELPINFO *p = (HELPINFO *)lParam;
00288             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00289         }
00290         return TRUE;
00291         /*NOTREACHED*/
00292         //break;
00293 //@@@ 2001.02.04 End
00294
00295 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00296     //Context Menu
00297     case WM_CONTEXTMENU:
00298         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00299         return TRUE;
00300 //@@@ 2001.12.22 End
00301
00302     }
00303     return FALSE;
00304 }
00305
00306 /* ダイアログデータの設定 p10 */
00307 void CPropCommon::SetData_p10( HWND hwndDlg )
00308 {
00309     /* 外部ヘルプ１ */
00310 	::DlgItem_SetText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_sHelper.m_szExtHelp );
00311
00312     /* 外部HTMLヘルプ */
00313 	::DlgItem_SetText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_sHelper.m_szExtHtmlHelp );
00314
00315     /* HtmlHelpビューアはひとつ */
00316     ::CheckDlgButton( hwndDlg, IDC_CHECK_HTMLHELPISSINGLE, m_Common.m_sHelper.m_bHtmlHelpIsSingle );
00317
00318     /* 補完候補決定キー */
00319     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_RETURN, m_Common.m_sHelper.m_bHokanKey_RETURN );   //VK_RETURN 補完決定キーが有効/無効
00320     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_TAB, m_Common.m_sHelper.m_bHokanKey_TAB );     //VK_TAB    補完決定キーが有効/無効
00321     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_RIGHT, m_Common.m_sHelper.m_bHokanKey_RIGHT ); //VK_RIGHT  補完決定キーが有効/無効
00322
00323     //migemo dict
00324 	::DlgItem_SetText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_sHelper.m_szMigemoDll);
00325 	::DlgItem_SetText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_sHelper.m_szMigemoDict);
00326
00327     return;
00328 }
00329
00330
00331 /* ダイアログデータの取得 p10 */
00332 int CPropCommon::GetData_p10( HWND hwndDlg )
00333 {
00334     // Oct. 5, 2002 genta サイズ制限方法変更
00335     /* 外部ヘルプ１ */
00336 	::DlgItem_GetText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_sHelper.m_szExtHelp, _countof( m_Common.m_sHelper.m_szExtHelp ));
00337
00338     /* 外部HTMLヘルプ */
00339 	::DlgItem_GetText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_sHelper.m_szExtHtmlHelp, _countof( m_Common.m_sHelper.m_szExtHtmlHelp ));
00340
00341     /* HtmlHelpビューアはひとつ */
00342     m_Common.m_sHelper.m_bHtmlHelpIsSingle = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HTMLHELPISSINGLE );
00343
00344
00345     /* 補完候補決定キー */
00346     m_Common.m_sHelper.m_bHokanKey_RETURN = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_RETURN );//VK_RETURN 補完決定キーが有効/無効
00347     m_Common.m_sHelper.m_bHokanKey_TAB = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_TAB );        //VK_TAB    補完決定キーが有効/無効
00348     m_Common.m_sHelper.m_bHokanKey_RIGHT = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_RIGHT );    //VK_RIGHT  補完決定キーが有効/無効
00349
00350 	::DlgItem_GetText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_sHelper.m_szMigemoDll, _countof( m_Common.m_sHelper.m_szMigemoDll ));
00351 	::DlgItem_GetText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_sHelper.m_szMigemoDict, _countof( m_Common.m_sHelper.m_szMigemoDict ));
00352
00353
00354     return TRUE;
00355 }
00356
00357
00358 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComKeybind.cpp

sakura_core

CPropComKeybind.cpp

共通設定ダイアログボックス、「キーバインド」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "CDlgOpenFile.h"
#include "CSMacroMgr.h"
#include "KeyCode.h"
#include "debug.h"
#include <stdio.h>
#include "io/CTextStream.h"
#include "CDataProfile.h"
#include "charcode.h"
#include "util/shell.h"
#include "util/file.h"
#include "sakura.hh"

CPropComKeybind.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | STR_SHIFT_PLUS _T("Shift+")
#define | STR_CTRL_PLUS _T("Ctrl+")
#define | STR_ALT_PLUS _T("Alt+")

関数

LRESULT CALLBACK | CPropComKeybindWndProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

const wchar_t | WSTR_KEYDATA_HEAD [] = L"SakuraKeyBind_Ver3"
static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「キーバインド」ページ

作者:
Norio Nakatani

CPropComKeybind.cpp で定義されています。

マクロ定義

#define STR_ALT_PLUS _T("Alt+")

CPropComKeybind.cpp の 37 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define STR_CTRL_PLUS _T("Ctrl+")

CPropComKeybind.cpp の 36 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define STR_SHIFT_PLUS _T("Shift+")

CPropComKeybind.cpp の 35 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

関数

LRESULT CALLBACK CPropComKeybindWndProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropComKeybind.cpp の 103 行で定義されています。

変数

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 wchar_t WSTR_KEYDATA_HEAD[] = L"SakuraKeyBind_Ver3"

CPropComKeybind.cpp の 33 行で定義されています。

参照元 CPropCommon::p5_Export_KeySetting(), と CPropCommon::p5_Import_KeySetting().

Sakura-Editorに対してSat Nov 17 20:26:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComKeybind.cpp ソースファイル

sakura_core

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 "CSMacroMgr.h" // 2002/2/10 aroka
00023 #include "KeyCode.h"
00024 #include "debug.h"
00025 #include <stdio.h>
00026 #include "io/CTextStream.h"
00027 #include "CDataProfile.h"
00028 #include "charcode.h"
00029 #include "util/shell.h"
00030 #include "util/file.h"
00031 using namespace std;
00032
00033 const wchar_t WSTR_KEYDATA_HEAD[] = L"SakuraKeyBind_Ver3";  //2007.10.05 kobake ファイル形式をini形式に変更
00034
00035 #define STR_SHIFT_PLUS        _T("Shift+")  //@@@ 2001.11.08 add MIK
00036 #define STR_CTRL_PLUS         _T("Ctrl+")  //@@@ 2001.11.08 add MIK
00037 #define STR_ALT_PLUS          _T("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 //  int         nLength;
00148     int         nAssignedKeyNum;
00149
00150     int         nIndex;
00151     int         nIndex2;
00152     int         nIndex3;
00153     int         i;
00154     int         j;
00155     EFunctionCode   nFuncCode;
00156     static WCHAR pszLabel[256];
00157
00158     switch( uMsg ){
00159     case WM_INITDIALOG:
00160         /* ダイアログデータの設定 p5 */
00161         SetData_p5( hwndDlg );
00162         // Modified by KEITA for WIN64 2003.9.6
00163 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00164
00165         /* コントロールのハンドルを取得 */
00166         hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00167         hwndFuncList = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00168         hwndAssignedkeyList = ::GetDlgItem( hwndDlg, IDC_LIST_ASSIGNEDKEYS );
00169         hwndCheckShift = ::GetDlgItem( hwndDlg, IDC_CHECK_SHIFT );
00170         hwndCheckCtrl = ::GetDlgItem( hwndDlg, IDC_CHECK_CTRL );
00171         hwndCheckAlt = ::GetDlgItem( hwndDlg, IDC_CHECK_ALT );
00172         hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00173 //      hwndLIST_KEYSFUNC = ::GetDlgItem( hwndDlg, IDC_LIST_KEYSFUNC );
00174         hwndEDIT_KEYSFUNC = ::GetDlgItem( hwndDlg, IDC_EDIT_KEYSFUNC );
00175
00176         /* キー選択時の処理 */
00177 //  From Here Oct. 14, 2000 JEPRO わかりにくいので選択しないように変更    //Oct. 17, 2000 JEPRO 復活！
00178 //  /* キーリストの先頭の項目を選択（リストボックス）*/
00179 		::SendMessageAny( hwndKeyList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );  //Oct. 14, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00180 		::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );    //Oct. 14, 2000 JEPRO ここはどっちでもいい？(わからん)
00181 //  To Here Oct. 14, 2000
00182 		::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
00183
00184         return TRUE;
00185
00186     case WM_NOTIFY:
00187         idCtrl = (int)wParam;
00188         pNMHDR = (NMHDR*)lParam;
00189         pMNUD  = (NM_UPDOWN*)lParam;
00190         switch( pNMHDR->code ){
00191         case PSN_HELP:
00192 //          OnHelp( hwndDlg, IDD_PROP1P5 );     // Sept. 9, 2000 JEPRO 実際のID名に変更
00193             OnHelp( hwndDlg, IDD_PROP_KEYBIND );
00194             return TRUE;
00195         case PSN_KILLACTIVE:
00196 //          MYTRACE_A( "p5 PSN_KILLACTIVE\n" );
00197             /* ダイアログデータの取得 p5 */
00198             GetData_p5( hwndDlg );
00199             return TRUE;
00200 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00201         case PSN_SETACTIVE:
00202             m_nPageNum = ID_PAGENUM_KEYBOARD;
00203             return TRUE;
00204         }
00205         break;
00206
00207     case WM_COMMAND:
00208         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00209         wID = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00210         hwndCtl = (HWND) lParam;    /* コントロールのハンドル */
00211
00212         switch( wNotifyCode ){
00213         /* ボタン／チェックボックスがクリックされた */
00214         case BN_CLICKED:
00215             switch( wID ){
00216             case IDC_BUTTON_IMPORT: /* インポート */
00217                 /* p5:キー割り当て設定をインポートする */
00218                 p5_Import_KeySetting( hwndDlg );
00219                 return TRUE;
00220             case IDC_BUTTON_EXPORT: /* エクスポート */
00221                 /* p5:キー割り当て設定をエクスポートする */
00222                 p5_Export_KeySetting( hwndDlg );
00223                 return TRUE;
00224             case IDC_BUTTON_ASSIGN: /* 割付 */
00225                 nIndex = ::SendMessageAny( hwndKeyList, LB_GETCURSEL, 0, 0 );
00226                 nIndex2 = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
00227                 nIndex3 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00228                 nFuncCode = m_cLookup.Pos2FuncCode( nIndex2, nIndex3 ); // Oct. 2, 2001 genta
00229                 i = 0;
00230                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00231                     i |= _SHIFT;
00232                 }
00233                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00234                     i |= _CTRL;
00235                 }
00236                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00237                     i |= _ALT;
00238                 }
00239                 m_pKeyNameArr[nIndex].m_nFuncCodeArr[i] = nFuncCode;
00240 				::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00241 				::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndFuncList );
00242                 return TRUE;
00243             case IDC_BUTTON_RELEASE:    /* 解除 */
00244                 nIndex = ::SendMessageAny( hwndKeyList, LB_GETCURSEL, 0, 0 );
00245                 nIndex2 = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
00246                 nIndex3 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00247                 nFuncCode = F_DEFAULT;
00248                 i = 0;
00249                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00250                     i |= _SHIFT;
00251                 }
00252                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00253                     i |= _CTRL;
00254                 }
00255                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00256                     i |= _ALT;
00257                 }
00258                 m_pKeyNameArr[nIndex].m_nFuncCodeArr[i] = nFuncCode;
00259 				::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00260 				::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndFuncList );
00261                 return TRUE;
00262             }
00263             break;  /* BN_CLICKED */
00264         }
00265         if( hwndCheckShift == hwndCtl
00266          || hwndCheckCtrl == hwndCtl
00267          || hwndCheckAlt == hwndCtl
00268         ){
00269             switch( wNotifyCode ){
00270             case BN_CLICKED:
00271                 p5_ChangeKeyList( hwndDlg );
00272
00273                 return TRUE;
00274             }
00275         }else
00276         if( hwndKeyList == hwndCtl ){
00277             switch( wNotifyCode ){
00278             case LBN_SELCHANGE:
00279                 nIndex = ::SendMessageAny( hwndKeyList, LB_GETCURSEL, 0, 0 );
00280                 i = 0;
00281                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00282                     i |= _SHIFT;
00283                 }
00284                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00285                     i |= _CTRL;
00286                 }
00287                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00288                     i |= _ALT;
00289                 }
00290                 nFuncCode = m_pKeyNameArr[nIndex].m_nFuncCodeArr[i];
00291                 // Oct. 2, 2001 genta
00292                 if( m_cLookup.Funccode2Name( nFuncCode, pszLabel, 255 )){
00293 //              if( 0 < ::LoadString( m_hInstance, nFuncCode, pszLabel, 255 )  ){   //}
00294                     Wnd_SetText( hwndEDIT_KEYSFUNC, pszLabel );
00295                 }else{
00296                     Wnd_SetText( hwndEDIT_KEYSFUNC, _T("--不明--") );
00297                 }
00298                 return TRUE;
00299             }
00300         }else
00301         if( hwndFuncList == hwndCtl ){
00302             switch( wNotifyCode ){
00303             case LBN_SELCHANGE:
00304                 nIndex = ::SendMessageAny( hwndKeyList, LB_GETCURSEL, 0, 0 );
00305                 nIndex2 = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
00306                 nIndex3 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00307                 nFuncCode = m_cLookup.Pos2FuncCode( nIndex2, nIndex3 ); // Oct. 2, 2001 genta
00308                 /* 機能に対応するキー名の取得(複数) */
00309                 CNativeT**  ppcAssignedKeyList;
00310                 nAssignedKeyNum = CKeyBind::GetKeyStrList(  /* 機能に対応するキー名の取得(複数) */
00311                     m_hInstance, m_nKeyNameArrNum, (KEYDATA*)m_pKeyNameArr,
00312                     &ppcAssignedKeyList, nFuncCode,
00313                     FALSE   // 2007.02.22 ryoji デフォルト機能は取得しない
00314                 );
00315                 /* 割り当てキーリストをクリアして値の設定 */
00316 				::SendMessageAny( hwndAssignedkeyList, LB_RESETCONTENT, 0, 0 );
00317                 if( 0 < nAssignedKeyNum){
00318                     for( j = 0; j < nAssignedKeyNum; ++j ){
00319                         /* デバッグモニタに出力 */
00320                         const TCHAR* cpszString = ppcAssignedKeyList[j]->GetStringPtr();
00321 						::List_AddString( hwndAssignedkeyList, cpszString );
00322                         delete ppcAssignedKeyList[j];
00323                     }
00324                     delete [] ppcAssignedKeyList;
00325                 }
00326                 return TRUE;
00327             }
00328         }else
00329         if( hwndCombo == hwndCtl){
00330             switch( wNotifyCode ){
00331             case CBN_SELCHANGE:
00332                 nIndex2 = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
00333                 /* 機能一覧に文字列をセット（リストボックス）*/
00334                 m_cLookup.SetListItem( hwndFuncList, nIndex2 ); //  Oct. 2, 2001 genta
00335                 return TRUE;
00336             }
00337
00338 //@@@ 2001.11.08 add start MIK
00339         }else
00340         if( hwndAssignedkeyList == hwndCtl){
00341             switch( wNotifyCode ){
00342             case LBN_SELCHANGE:
00343             //case LBN_DBLCLK:
00344                 {
00345                     TCHAR   buff[1024], *p;
00346                     int ret;
00347
00348                     nIndex = ::SendMessageAny( hwndAssignedkeyList, LB_GETCURSEL, 0, 0 );
00349                     auto_memset(buff, 0, _countof(buff));
00350                     ret = List_GetText( hwndAssignedkeyList, nIndex, buff);
00351                     if( ret != LB_ERR )
00352                     {
00353                         i = 0;
00354                         p = buff;
00355                         //SHIFT
00356                         if( auto_memcmp(p, STR_SHIFT_PLUS, _tcslen(STR_SHIFT_PLUS)) == 0 ){
00357                             p += _tcslen(STR_SHIFT_PLUS);
00358                             i |= _SHIFT;
00359                         }
00360                         //CTRL
00361                         if( auto_memcmp(p, STR_CTRL_PLUS, _tcslen(STR_CTRL_PLUS)) == 0 ){
00362                             p += _tcslen(STR_CTRL_PLUS);
00363                             i |= _CTRL;
00364                         }
00365                         //ALT
00366                         if( auto_memcmp(p, STR_ALT_PLUS, _tcslen(STR_ALT_PLUS)) == 0 ){
00367                             p += _tcslen(STR_ALT_PLUS);
00368                             i |= _ALT;
00369                         }
00370                         for(j = 0; j < m_nKeyNameArrNum; j++)
00371                         {
00372                             if( _tcscmp(m_pKeyNameArr[j].m_szKeyName, p) == 0 )
00373                             {
00374 								::SendMessageAny( hwndKeyList, LB_SETCURSEL, (WPARAM)j, (LPARAM)0);
00375                                 if( i & _SHIFT ) ::CheckDlgButton( hwndDlg, IDC_CHECK_SHIFT, BST_CHECKED );  //チェック
00376                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_SHIFT, BST_UNCHECKED );  //チェックをはずす
00377                                 if( i & _CTRL )  ::CheckDlgButton( hwndDlg, IDC_CHECK_CTRL,  BST_CHECKED );  //チェック
00378                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_CTRL,  BST_UNCHECKED );  //チェックをはずす
00379                                 if( i & _ALT )   ::CheckDlgButton( hwndDlg, IDC_CHECK_ALT,   BST_CHECKED );  //チェック
00380                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_ALT,   BST_UNCHECKED );  //チェックをはずす
00381 								::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00382
00383                                 // キー一覧の文字列も変更
00384                                 p5_ChangeKeyList( hwndDlg );
00385                                 break;
00386                             }
00387                         }
00388                     }
00389                     return TRUE;
00390                 }
00391             }
00392 //@@@ 2001.11.08 add end MIK
00393
00394         }
00395         break;
00396
00397 //@@@ 2001.02.04 Start by MIK: Popup Help
00398     case WM_HELP:
00399         {
00400             HELPINFO *p = (HELPINFO *)lParam;
00401             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00402         }
00403         return TRUE;
00404         /*NOTREACHED*/
00405         //break;
00406 //@@@ 2001.02.04 End
00407
00408 //@@@ 2001.11.07 Start by MIK: Context Menu Help
00409     //Context Menu
00410     case WM_CONTEXTMENU:
00411         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00412         return TRUE;
00413 //@@@ 2001.11.07 End
00414
00415     }
00416     return FALSE;
00417 }
00418
00419
00420
00421
00422
00423
00424
00425 /* ダイアログデータの設定 p5 */
00426 void CPropCommon::SetData_p5( HWND hwndDlg )
00427 {
00428     HWND        hwndCombo;
00429     HWND        hwndKeyList;
00430     int         i;
00431
00432     /* 機能種別一覧に文字列をセット（コンボボックス）*/
00433     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00434     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 2, 2001 genta
00435
00436     /* 種別の先頭の項目を選択（コンボボックス）*/
00437 	::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00438
00439     /* キー一覧に文字列をセット（リストボックス）*/
00440     hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00441     for( i = 0; i < m_nKeyNameArrNum; ++i ){
00442 			::List_AddString( hwndKeyList, m_pKeyNameArr[i].m_szKeyName );
00443     }
00444     return;
00445 }
00446
00447
00448
00449 /* ダイアログデータの取得 p5 */
00450 int CPropCommon::GetData_p5( HWND hwndDlg )
00451 {
00452 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00453 //  m_nPageNum = ID_PAGENUM_KEYBOARD;
00454     return TRUE;
00455 }
00457 void CPropCommon::p5_ChangeKeyList( HWND hwndDlg){
00458     HWND    hwndKeyList;
00459     int     nIndex;
00460     int     nIndexTop;
00461     int     i;
00462     wchar_t szKeyState[64];
00463
00464     hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00465     nIndex = ::SendMessageAny( hwndKeyList, LB_GETCURSEL, 0, 0 );
00466     nIndexTop = ::SendMessageAny( hwndKeyList, LB_GETTOPINDEX, 0, 0 );
00467     wcscpy( szKeyState, L"" );
00468     i = 0;
00469     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00470         i |= _SHIFT;
00471         wcscat( szKeyState, L"Shift+" );
00472     }
00473     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00474         i |= _CTRL;
00475         wcscat( szKeyState, L"Ctrl+" );
00476     }
00477     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00478         i |= _ALT;
00479         wcscat( szKeyState, L"Alt+" );
00480     }
00481     /* キー一覧に文字列をセット（リストボックス）*/
00482 	::SendMessageAny( hwndKeyList, LB_RESETCONTENT, 0, 0 );
00483     for( i = 0; i < m_nKeyNameArrNum; ++i ){
00484         TCHAR   pszLabel[256];
00485         auto_sprintf( pszLabel, _T("%ls%ls"), szKeyState, m_pKeyNameArr[i].m_szKeyName );
00486 		::List_AddString( hwndKeyList, pszLabel );
00487     }
00488 	::SendMessageAny( hwndKeyList, LB_SETCURSEL, nIndex, 0 );
00489 	::SendMessageAny( hwndKeyList, LB_SETTOPINDEX, nIndexTop, 0 );
00490 	::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00491 }
00492
00493 /* p5:キー割り当て設定をインポートする */
00494 void CPropCommon::p5_Import_KeySetting( HWND hwndDlg )
00495 {
00496     CDlgOpenFile    cDlgOpenFile;
00497     TCHAR           szPath[_MAX_PATH + 1];
00498
00499     KEYDATA         pKeyNameArr[100];               /* キー割り当て表 */
00500     TCHAR           szInitDir[_MAX_PATH + 1];
00501
00502     _tcscpy( szPath, _T("") );
00503     _tcscpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );   /* インポート用フォルダ */
00504     /* ファイルオープンダイアログの初期化 */
00505     cDlgOpenFile.Create(
00506         m_hInstance,
00507         hwndDlg,
00508         _T("*.key"),
00509         szInitDir
00510     );
00511     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00512         return;
00513     }
00514     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00515     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00516 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00517     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00518
00519
00520
00521     //オープン
00522     CDataProfile in;
00523     in.SetReadingMode();
00524     if(!in.ReadProfile(szPath)){
00525         ErrorMessage_A( hwndDlg, "ファイルを開けませんでした。\n\n%ts", szPath );
00526         return;
00527     }
00528     static const wchar_t* szSection=L"SakuraKeybind";
00529
00530     //バージョン確認
00531     WCHAR szHeader[256];
00532     in.IOProfileData(szSection,L"Ver",MakeStringBufferW(szHeader));
00533     if(wcscmp(szHeader,WSTR_KEYDATA_HEAD)!=0)goto err;
00534
00535     //Count取得 -> nKeyNameArrNum
00536     int nKeyNameArrNum;         // キー割り当て表の有効データ数
00537     in.IOProfileData(szSection,L"Count",nKeyNameArrNum);
00538     if(nKeyNameArrNum<0 || nKeyNameArrNum>100)goto err; //範囲チェック
00539
00540     //各要素取得
00541     for(int i=0;i<100;i++)
00542     {
00543         //値 -> szData
00544         wchar_t szKey[256];
00545         auto_sprintf(szKey,L"KeyBind[%03d]",i);
00546         wchar_t szData[1024];
00547         in.IOProfileData(szSection,szKey,MakeStringBufferW(szData));
00548
00549         //解析開始
00550         wchar_t* p=szData;
00551
00552         //keycode取得
00553         int keycode;
00554         {
00555             //1トークン -> buf
00556             wchar_t buf[64];
00557             wchar_t* q=wcschr(p,',');
00558             if(q==NULL)goto err;
00559             wcsncpy(buf,p,q-p);
00560             buf[q-p]=L'\0';
00561             //buf -> 16進数変換 -> keycode
00562             int n=swscanf(buf,L"%04x",&keycode);
00563             if(n!=1)goto err;
00564             //p進める
00565             p=q+1;
00566         }
00567         pKeyNameArr[i].m_nKeyCode = keycode;
00568
00569         //後に続くトークン
00570         for(int j=0;j<8;j++)
00571         {
00572             wchar_t* q=auto_strchr(p,L',');
00573             if(!q)goto err;
00574             *q=L'\0';
00575
00576             //機能名を数値に置き換える。(数値の機能名もあるかも)
00577             //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00578             WCHAR   szFuncNameJapanese[256];
00579             EFunctionCode n = CSMacroMgr::GetFuncInfoByName(m_hInstance, p, szFuncNameJapanese);
00580             if( n == F_INVALID )
00581             {
00582                 if( WCODE::is09(*p) )
00583                 {
00584                     n = (EFunctionCode)auto_atol(p);
00585                 }
00586                 else
00587                 {
00588                     n = F_DEFAULT;
00589                 }
00590             }
00591             pKeyNameArr[i].m_nFuncCodeArr[j] = n;
00592             p = q + 1;
00593         }
00594
00595         auto_strcpy(pKeyNameArr[i].m_szKeyName, to_tchar(p));
00596     }
00597
00598     // データのコピー
00599     m_nKeyNameArrNum = nKeyNameArrNum;
00600     memcpy_raw( m_pKeyNameArr, pKeyNameArr, sizeof_raw( pKeyNameArr ) );
00601
00602     // ダイアログデータの設定 p5
00603     //@@@ 2001.11.07 modify start MIK: 機能に割り当てられているキー一覧を更新する。
00604     HWND            hwndCtrl;
00605     hwndCtrl = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00606 	::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndCtrl );
00607     hwndCtrl = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00608 	::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndCtrl );
00609     //@@@ 2001.11.07 modify end MIK
00610     return;
00611
00612 err:
00613 	::MYMESSAGEBOX_A(  hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00614         "キー設定ファイルの形式が違います。\n\n%ls", szPath
00615     );
00616 }
00617
00618
00619 /* p5:キー割り当て設定をエクスポートする */
00620 void CPropCommon::p5_Export_KeySetting( HWND hwndDlg )
00621 {
00622     CDlgOpenFile    cDlgOpenFile;
00623     TCHAR           szPath[_MAX_PATH + 1];
00624     TCHAR           szInitDir[_MAX_PATH + 1];
00625
00626     _tcscpy( szPath, _T("") );
00627     _tcscpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );   /* インポート用フォルダ */
00628     /* ファイルオープンダイアログの初期化 */
00629     cDlgOpenFile.Create(
00630         m_hInstance,
00631         hwndDlg,
00632         _T("*.key"),
00633         szInitDir
00634     );
00635     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00636         return;
00637     }
00638     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00639     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00640 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00641     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00642
00643     //@@@ 2001.11.07 add start MIK: テキスト形式で保存
00644     {
00645         int i, j;
00646         WCHAR   szFuncNameJapanese[256];
00647
00648         CTextOutputStream out(szPath);
00649         if(!out){
00650 			::MYMESSAGEBOX_A(    hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00651                 "ファイルを開けませんでした。\n\n%ts", szPath
00652             );
00653             return;
00654         }
00655
00656         out.WriteF( L"[SakuraKeybind]\n" );
00657         out.WriteF( L"Ver=%ls\n", WSTR_KEYDATA_HEAD);
00658         out.WriteF( L"Count=%d\n", m_nKeyNameArrNum);
00659
00660         for(i = 0; i < 100; i++)
00661         {
00662             out.WriteF( L"KeyBind[%03d]=%04x", i, m_pKeyNameArr[i].m_nKeyCode);
00663
00664             for(j = 0; j < 8; j++)
00665             {
00666                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00667                 WCHAR szFuncName[256];
00668                 WCHAR   *p = CSMacroMgr::GetFuncInfoByID(
00669                     m_hInstance,
00670                     m_pKeyNameArr[i].m_nFuncCodeArr[j],
00671                     szFuncName,
00672                     szFuncNameJapanese
00673                 );
00674                 if( p ) {
00675                     out.WriteF( L",%ls", p);
00676                 }
00677                 else {
00678                     out.WriteF( L",%d", m_pKeyNameArr[i].m_nFuncCodeArr[j]);
00679                 }
00680             }
00681
00682             out.WriteF( L",%ls\n", m_pKeyNameArr[i].m_szKeyName);
00683         }
00684
00685         out.Close();
00686     }
00687 //@@@ 2001.11.07 add end MIK
00688
00689     return;
00690 }
00691
00692
00693 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComKeyword.cpp

sakura_core

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 "CDlgInput1.h"
#include "global.h"
#include "io/CTextStream.h"
#include "util/shell.h"
#include "util/file.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 の 38 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComKeyword.cpp ソースファイル

sakura_core

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 "CDlgInput1.h"
00029 #include "global.h"
00030 #include "io/CTextStream.h"
00031 #include "util/shell.h"
00032 #include "util/file.h"
00033 using namespace std;
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[] = {  //10800
00039     IDC_BUTTON_ADDSET,              HIDC_BUTTON_ADDSET,         //キーワードセット追加
00040     IDC_BUTTON_DELSET,              HIDC_BUTTON_DELSET,         //キーワードセット削除
00041     IDC_BUTTON_ADDKEYWORD,          HIDC_BUTTON_ADDKEYWORD,     //キーワード追加
00042     IDC_BUTTON_EDITKEYWORD,         HIDC_BUTTON_EDITKEYWORD,    //キーワード編集
00043     IDC_BUTTON_DELKEYWORD,          HIDC_BUTTON_DELKEYWORD,     //キーワード削除
00044     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_KEYWORD, //インポート
00045     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_KEYWORD, //エクスポート
00046     IDC_CHECK_KEYWORDCASE,          HIDC_CHECK_KEYWORDCASE,     //キーワードの英大文字小文字区別
00047     IDC_COMBO_SET,                  HIDC_COMBO_SET,             //強調キーワードセット名
00048     IDC_LIST_KEYWORD,               HIDC_LIST_KEYWORD,          //キーワード一覧
00049     IDC_BUTTON_KEYCLEAN     ,       HIDC_BUTTON_KEYCLEAN,       //キーワード整理 // 2006.08.06 ryoji
00050     IDC_BUTTON_KEYSETRENAME,        HIDC_BUTTON_KEYSETRENAME,   //セットの名称変更  // 2006.08.06 ryoji
00051 //  IDC_STATIC,                     -1,
00052     0, 0
00053 };
00054 #else
00055 static const DWORD p_helpids[] = {  //10800
00056     IDC_BUTTON_ADDSET,              10800,  //キーワードセット追加
00057     IDC_BUTTON_DELSET,              10801,  //キーワードセット削除
00058     IDC_BUTTON_ADDKEYWORD,          10802,  //キーワード追加
00059     IDC_BUTTON_EDITKEYWORD,         10803,  //キーワード編集
00060     IDC_BUTTON_DELKEYWORD,          10804,  //キーワード削除
00061     IDC_BUTTON_IMPORT,              10805,  //インポート
00062     IDC_BUTTON_EXPORT,              10806,  //エクスポート
00063     IDC_CHECK_KEYWORDCASE,          10810,  //キーワードの英大文字小文字区別
00064     IDC_COMBO_SET,                  10830,  //強調キーワードセット名
00065     IDC_LIST_KEYWORD,               10840,  //キーワード一覧
00066 //  IDC_STATIC,                     -1,
00067     0, 0
00068 };
00069 #endif
00070 //@@@ 2001.02.04 End
00071
00072 //  From Here Jun. 2, 2001 genta
00079 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_KEYWORD(
00080     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00081 {
00082     return DlgProc( &CPropCommon::DispatchEvent_p7, hwndDlg, uMsg, wParam, lParam );
00083 }
00084 //  To Here Jun. 2, 2001 genta
00085
00086 /* p7 メッセージ処理 */
00087 INT_PTR CPropCommon::DispatchEvent_p7(
00088     HWND    hwndDlg,    // handle to dialog box
00089     UINT    uMsg,       // message
00090     WPARAM  wParam,     // first message parameter
00091     LPARAM  lParam      // second message parameter
00092 )
00093 {
00094     WORD                wNotifyCode;
00095     WORD                wID;
00096     HWND                hwndCtl;
00097     NMHDR*              pNMHDR;
00098     NM_UPDOWN*          pMNUD;
00099     int                 idCtrl;
00100     int                 nIndex1;
00101     int                 i;
00102     static int          nListItemHeight;
00103     LV_COLUMN           lvc;
00104     LV_ITEM*            plvi;
00105     static HWND         hwndCOMBO_SET;
00106     static HWND         hwndLIST_KEYWORD;
00107     RECT                rc;
00108     CDlgInput1          cDlgInput1;
00109     wchar_t             szKeyWord[MAX_KEYWORDLEN + 1];
00110     DWORD               dwStyle;
00111     LV_DISPINFO*        plvdi;
00112     LV_KEYDOWN*         pnkd;
00113
00114     switch( uMsg ){
00115     case WM_INITDIALOG:
00116         /* ダイアログデータの設定 p7 */
00117         SetData_p7( hwndDlg );
00118         // Modified by KEITA for WIN64 2003.9.6
00119 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00120
00121         /* コントロールのハンドルを取得 */
00122         hwndCOMBO_SET = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
00123         hwndLIST_KEYWORD = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00124         ::GetWindowRect( hwndLIST_KEYWORD, &rc );
00125         lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00126         lvc.fmt = LVCFMT_LEFT;
00127         lvc.cx = rc.right - rc.left;
00128         lvc.pszText = _T("");
00129         lvc.iSubItem = 0;
00130         ListView_InsertColumn( hwndLIST_KEYWORD, 0, &lvc );
00131
00132         dwStyle = (DWORD)::GetWindowLong( hwndLIST_KEYWORD, GWL_STYLE );
00133         ::SetWindowLong( hwndLIST_KEYWORD, GWL_STYLE, dwStyle | LVS_SHOWSELALWAYS );
00134 //              (dwStyle & ~LVS_TYPEMASK) | dwView);
00135
00136
00137         /* コントロール更新のタイミング用のタイマーを起動 */
00138         ::SetTimer( hwndDlg, 1, 300, NULL );
00139
00140         return TRUE;
00141
00142     case WM_NOTIFY:
00143         idCtrl = (int)wParam;
00144         pNMHDR = (NMHDR*)lParam;
00145         pnkd = (LV_KEYDOWN *)lParam;
00146         pMNUD  = (NM_UPDOWN*)lParam;
00147         plvdi = (LV_DISPINFO*)lParam;
00148         plvi = &plvdi->item;
00149
00150         if( hwndLIST_KEYWORD == pNMHDR->hwndFrom ){
00151             switch( pNMHDR->code ){
00152             case NM_DBLCLK:
00153 //              MYTRACE_A( "NM_DBLCLK     \n" );
00154                 /* p7:リスト中で選択されているキーワードを編集する */
00155                 p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00156                 return TRUE;
00157             case LVN_BEGINLABELEDIT:
00158 #ifdef _DEBUG
00159                 MYTRACE_A( "LVN_BEGINLABELEDIT\n" );
00160                                                 MYTRACE_A( "    plvi->mask =[%xh]\n", plvi->mask );
00161                                                 MYTRACE_A( "    plvi->iItem =[%d]\n", plvi->iItem );
00162                                                 MYTRACE_A( "    plvi->iSubItem =[%d]\n", plvi->iSubItem );
00163                 if (plvi->mask & LVIF_STATE)    MYTRACE_A( "    plvi->state =[%xf]\n", plvi->state );
00164                                                 MYTRACE_A( "    plvi->stateMask =[%xh]\n", plvi->stateMask );
00165                 if (plvi->mask & LVIF_TEXT)     MYTRACE_A( "    plvi->pszText =[%ls]\n", plvi->pszText );
00166                                                 MYTRACE_A( "    plvi->cchTextMax=[%d]\n", plvi->cchTextMax );
00167                 if (plvi->mask & LVIF_IMAGE)    MYTRACE_A( "    plvi->iImage=[%d]\n", plvi->iImage );
00168                 if (plvi->mask & LVIF_PARAM)    MYTRACE_A( "    plvi->lParam=[%xh(%d)]\n", plvi->lParam, plvi->lParam );
00169 #endif
00170                 return TRUE;
00171             case LVN_ENDLABELEDIT:
00172 #ifdef _DEBUG
00173                 MYTRACE_A( "LVN_ENDLABELEDIT\n" );
00174                                                 MYTRACE_A( "    plvi->mask =[%xh]\n", plvi->mask );
00175                                                 MYTRACE_A( "    plvi->iItem =[%d]\n", plvi->iItem );
00176                                                 MYTRACE_A( "    plvi->iSubItem =[%d]\n", plvi->iSubItem );
00177                 if (plvi->mask & LVIF_STATE)    MYTRACE_A( "    plvi->state =[%xf]\n", plvi->state );
00178                                                 MYTRACE_A( "    plvi->stateMask =[%xh]\n", plvi->stateMask );
00179                 if (plvi->mask & LVIF_TEXT)     MYTRACE_A( "    plvi->pszText =[%ls]\n", plvi->pszText  );
00180                                                 MYTRACE_A( "    plvi->cchTextMax=[%d]\n", plvi->cchTextMax );
00181                 if (plvi->mask & LVIF_IMAGE)    MYTRACE_A( "    plvi->iImage=[%d]\n", plvi->iImage );
00182                 if (plvi->mask & LVIF_PARAM)    MYTRACE_A( "    plvi->lParam=[%xh(%d)]\n", plvi->lParam, plvi->lParam );
00183 #endif
00184                 if( NULL == plvi->pszText ){
00185                     return TRUE;
00186                 }
00187                 if( 0 < _tcslen( plvi->pszText ) ){
00188                     if( MAX_KEYWORDLEN < _tcslen( plvi->pszText ) ){
00189 						::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00190                             "キーワードの長さは%dバイトまでです。", MAX_KEYWORDLEN
00191                         );
00192                         return TRUE;
00193                     }
00194                     /* ｎ番目のセットにキーワードを編集 */
00195                     m_CKeyWordSetMgr.UpdateKeyWord(
00196                         m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx,
00197                         plvi->lParam,
00198                         to_wchar(plvi->pszText)
00199                     );
00200                 }else{
00201                     /* ｎ番目のセットのｍ番目のキーワードを削除 */
00202                     m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, plvi->lParam );
00203                 }
00204                 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00205                 SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00206
00207                 ListView_SetItemState( hwndLIST_KEYWORD, plvi->iItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00208
00209                 return TRUE;
00210             case LVN_KEYDOWN:
00211 //              MYTRACE_A( "LVN_KEYDOWN\n" );
00212                 switch( pnkd->wVKey ){
00213                 case VK_DELETE:
00214                     /* p7:リスト中で選択されているキーワードを削除する */
00215                     p7_Delete_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00216                     break;
00217                 case VK_SPACE:
00218                     /* p7:リスト中で選択されているキーワードを編集する */
00219                     p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00220                     break;
00221                 }
00222                 return TRUE;
00223             }
00224         }else{
00225             switch( pNMHDR->code ){
00226             case PSN_HELP:
00227                 OnHelp( hwndDlg, IDD_PROP_KEYWORD );
00228                 return TRUE;
00229             case PSN_KILLACTIVE:
00230 #ifdef _DEBUG
00231                 MYTRACE_A( "p7 PSN_KILLACTIVE\n" );
00232 #endif
00233                 /* ダイアログデータの取得 p7 */
00234                 GetData_p7( hwndDlg );
00235                 return TRUE;
00236 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00237             case PSN_SETACTIVE:
00238                 m_nPageNum = ID_PAGENUM_KEYWORD;
00239                 return TRUE;
00240             }
00241         }
00242         break;
00243     case WM_COMMAND:
00244         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00245         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00246         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00247         if( hwndCOMBO_SET == hwndCtl){
00248             switch( wNotifyCode ){
00249             case CBN_SELCHANGE:
00250                 nIndex1 = ::SendMessageAny( hwndCOMBO_SET, CB_GETCURSEL, 0, 0 );
00251                 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00252                 SetData_p7_KeyWordSet( hwndDlg, nIndex1 );
00253                 return TRUE;
00254             }
00255         }else{
00256             switch( wNotifyCode ){
00257             /* ボタン／チェックボックスがクリックされた */
00258             case BN_CLICKED:
00259                 switch( wID ){
00260                 case IDC_BUTTON_ADDSET: /* セット追加 */
00261                     if( MAX_SETNUM <= m_CKeyWordSetMgr.m_nKeyWordSetNum ){
00262 						::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00263                             "セットは%d個までしか登録できません。\n", MAX_SETNUM
00264                         );
00265                         return TRUE;
00266                     }
00267                     /* モードレスダイアログの表示 */
00268                     wcscpy( szKeyWord, L"" );
00269                     //  Oct. 5, 2002 genta 長さ制限の設定を修正．バッファオーバーランしていた．
00270                     if( FALSE == cDlgInput1.DoModal(
00271                         m_hInstance,
00272                         hwndDlg,
00273                         _T("キーワードのセット追加"),
00274                         _T("セット名を入力してください。"),
00275                         MAX_SETNAMELEN,
00276                         szKeyWord
00277                         )
00278                     ){
00279                         return TRUE;
00280                     }
00281                     if( 0 < wcslen( szKeyWord ) ){
00282                         /* セットの追加 */
00283                         m_CKeyWordSetMgr.AddKeyWordSet( szKeyWord, FALSE );
00284
00285                         m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = m_CKeyWordSetMgr.m_nKeyWordSetNum - 1;
00286
00287                         /* ダイアログデータの設定 p7 */
00288                         SetData_p7( hwndDlg );
00289                     }
00290                     return TRUE;
00291                 case IDC_BUTTON_DELSET: /* セット削除 */
00292                     nIndex1 = ::SendMessageAny( hwndCOMBO_SET, CB_GETCURSEL, 0, 0 );
00293                     if( CB_ERR == nIndex1 ){
00294                         return TRUE;
00295                     }
00296                     /* 削除対象のセットを使用しているファイルタイプを列挙 */
00297                     static TCHAR        pszLabel[1024];
00298                     _tcscpy( pszLabel, _T("") );
00299                     for( i = 0; i < MAX_TYPES; ++i ){
00300                         // 2002/04/25 YAZAKI Types全体を保持する必要はないし、m_pShareDataを直接見ても問題ない。
00301                         if( nIndex1 == m_Types_nKeyWordSetIdx[i][0]
00302                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][1]
00303                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][2]
00304                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][3]
00305                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][4]
00306                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][5]
00307                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][6]
00308                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][7]
00309                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][8]
00310                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][9] ){
00311                             _tcscat( pszLabel, _T("・") );
00312                             _tcscat( pszLabel, m_pShareData->m_Types[i].m_szTypeName );
00313                             _tcscat( pszLabel, _T("（") );
00314                             _tcscat( pszLabel, m_pShareData->m_Types[i].m_szTypeExts );
00315                             _tcscat( pszLabel, _T("）") );
00316                             _tcscat( pszLabel, _T("\n") );
00317                         }
00318                     }
00319                     if( IDCANCEL == ::MYMESSAGEBOX_A(   hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME_A,
00320                         "「%ls」のセットを削除します。\nよろしいですか？\n削除しようとするセットは、以下のファイルタイプに割り当てられています。\n削除したセットは無効になります。\n\n%ls",
00321                         m_CKeyWordSetMgr.GetTypeName( nIndex1 ),
00322                         pszLabel
00323                     ) ){
00324                         return TRUE;
00325                     }
00326                     /* 削除対象のセットを使用しているファイルタイプのセットをクリア */
00327                     for( i = 0; i < MAX_TYPES; ++i ){
00328                         // 2002/04/25 YAZAKI Types全体を保持する必要はない。
00329                         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00330                             if( nIndex1 == m_Types_nKeyWordSetIdx[i][j] ){
00331                                 m_Types_nKeyWordSetIdx[i][j] = -1;
00332                             }
00333                             else if( nIndex1 < m_Types_nKeyWordSetIdx[i][j] ){
00334                                 m_Types_nKeyWordSetIdx[i][j]--;
00335                             }
00336                         }
00337                     }
00338                     /* ｎ番目のセットを削除 */
00339                     m_CKeyWordSetMgr.DelKeyWordSet( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00340                     /* ダイアログデータの設定 p7 */
00341                     SetData_p7( hwndDlg );
00342                     return TRUE;
00343                 case IDC_BUTTON_KEYSETRENAME: // キーワードセットの名称変更
00344                     // モードレスダイアログの表示
00345                     wcscpy( szKeyWord, m_CKeyWordSetMgr.GetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) );
00346                     {
00347                         BOOL bDlgInputResult = cDlgInput1.DoModal(
00348                             m_hInstance,
00349                             hwndDlg,
00350                             _T("セットの名称変更"),
00351                             _T("セット名を入力してください。"),
00352                             MAX_SETNAMELEN,
00353                             szKeyWord
00354                         );
00355                         if( FALSE == bDlgInputResult ){
00356                             return TRUE;
00357                         }
00358                     }
00359                     if( 0 < wcslen( szKeyWord ) ){
00360                         m_CKeyWordSetMgr.SetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szKeyWord );
00361
00362                         // ダイアログデータの設定 p7
00363                         SetData_p7( hwndDlg );
00364                     }
00365                     return TRUE;
00366                 case IDC_CHECK_KEYWORDCASE: /* キーワードの英大文字小文字区別 */
00367 //                  m_CKeyWordSetMgr.m_nKEYWORDCASEArr[ m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ] = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYWORDCASE );    //MIK 2000.12.01 case sense
00368                     m_CKeyWordSetMgr.SetKeyWordCase(m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYWORDCASE ));          //MIK 2000.12.01 case sense
00369                     return TRUE;
00370                 case IDC_BUTTON_ADDKEYWORD: /* キーワード追加 */
00371                     /* ｎ番目のセットのキーワードの数を返す */
00372                     if( !m_CKeyWordSetMgr.CanAddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) ){
00373 						::MYMESSAGEBOX_A( hwndDlg,    MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00374                             "登録できるキーワード数が上限に達しています。\n"
00375                         );
00376                         return TRUE;
00377                     }
00378                     /* モードレスダイアログの表示 */
00379                     wcscpy( szKeyWord, L"" );
00380                     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, _T("キーワード追加"), _T("キーワードを入力してください。"), MAX_KEYWORDLEN, szKeyWord ) ){
00381                         return TRUE;
00382                     }
00383                     if( 0 < wcslen( szKeyWord ) ){
00384                         /* ｎ番目のセットにキーワードを追加 */
00385                         if( 0 == m_CKeyWordSetMgr.AddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szKeyWord ) ){
00386                             // ダイアログデータの設定 p7 指定キーワードセットの設定
00387                             SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00388                         }
00389                     }
00390                     return TRUE;
00391                 case IDC_BUTTON_EDITKEYWORD:    /* キーワード編集 */
00392                     /* p7:リスト中で選択されているキーワードを編集する */
00393                     p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00394                     return TRUE;
00395                 case IDC_BUTTON_DELKEYWORD: /* キーワード削除 */
00396                     /* p7:リスト中で選択されているキーワードを削除する */
00397                     p7_Delete_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00398                     return TRUE;
00399                 // From Here 2005.01.26 Moca
00400                 case IDC_BUTTON_KEYCLEAN:
00401                     p7_Clean_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00402                     return TRUE;
00403                 // To Here 2005.01.26 Moca
00404                 case IDC_BUTTON_IMPORT: /* インポート */
00405                     /* p7:リスト中のキーワードをインポートする */
00406                     p7_Import_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00407                     return TRUE;
00408                 case IDC_BUTTON_EXPORT: /* エクスポート */
00409                     /* p7:リスト中のキーワードをエクスポートする */
00410                     p7_Export_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00411                     return TRUE;
00412                 }
00413                 break;  /* BN_CLICKED */
00414             }
00415         }
00416         break;  /* WM_COMMAND */
00417
00418     case WM_TIMER:
00419         nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00420         if( -1 == nIndex1 ){
00421             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00422             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00423         }else{
00424             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), TRUE );
00425             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), TRUE );
00426         }
00427         break;
00428
00429     case WM_DESTROY:
00430         ::KillTimer( hwndDlg, 1 );
00431         break;
00432
00433 //@@@ 2001.02.04 Start by MIK: Popup Help
00434     case WM_HELP:
00435         {
00436             HELPINFO *p = (HELPINFO *)lParam;
00437             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00438         }
00439         return TRUE;
00440         /*NOTREACHED*/
00441         //break;
00442 //@@@ 2001.02.04 End
00443
00444 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00445     //Context Menu
00446     case WM_CONTEXTMENU:
00447         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00448         return TRUE;
00449 //@@@ 2001.12.22 End
00450
00451     }
00452     return FALSE;
00453 }
00454
00455 /* p7:リスト中で選択されているキーワードを編集する */
00456 void CPropCommon::p7_Edit_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00457 {
00458     int         nIndex1;
00459     LV_ITEM lvi;
00460     wchar_t     szKeyWord[MAX_KEYWORDLEN + 1];
00461     CDlgInput1  cDlgInput1;
00462
00463     nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00464     if( -1 == nIndex1 ){
00465         return;
00466     }
00467     lvi.mask = LVIF_PARAM;
00468     lvi.iItem = nIndex1;
00469     lvi.iSubItem = 0;
00470     ListView_GetItem( hwndLIST_KEYWORD, &lvi );
00471
00472     /* ｎ番目のセットのｍ番目のキーワードを返す */
00473     wcscpy( szKeyWord, m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam ) );
00474
00475     /* モードレスダイアログの表示 */
00476     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, _T("キーワード編集"), _T("キーワードを編集してください。"), MAX_KEYWORDLEN, szKeyWord ) ){
00477         return;
00478     }
00479     if( 0 < wcslen( szKeyWord ) ){
00480         /* ｎ番目のセットにキーワードを編集 */
00481         m_CKeyWordSetMgr.UpdateKeyWord(
00482             m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx,
00483             lvi.lParam,
00484             szKeyWord
00485         );
00486     }else{
00487         /* ｎ番目のセットのｍ番目のキーワードを削除 */
00488         m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam );
00489     }
00490     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00491     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00492
00493     ListView_SetItemState( hwndLIST_KEYWORD, nIndex1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00494     return;
00495 }
00496
00497
00498
00499 /* p7:リスト中で選択されているキーワードを削除する */
00500 void CPropCommon::p7_Delete_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00501 {
00502     int         nIndex1;
00503     LV_ITEM     lvi;
00504
00505     nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00506     if( -1 == nIndex1 ){
00507         return;
00508     }
00509     lvi.mask = LVIF_PARAM;
00510     lvi.iItem = nIndex1;
00511     lvi.iSubItem = 0;
00512     ListView_GetItem( hwndLIST_KEYWORD, &lvi );
00513     /* ｎ番目のセットのｍ番目のキーワードを削除 */
00514     m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam );
00515     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00516     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00517     ListView_SetItemState( hwndLIST_KEYWORD, nIndex1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00518
00519     //キーワード数を表示する。
00520     DispKeywordCount( hwndDlg );
00521
00522     return;
00523 }
00524
00525
00526 /* p7:リスト中のキーワードをインポートする */
00527 /* p7:リスト中のキーワードをインポートする */
00528 void CPropCommon::p7_Import_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00529 {
00530     CDlgOpenFile    cDlgOpenFile;
00531     TCHAR           szPath[_MAX_PATH + 1];
00532     TCHAR           szInitDir[_MAX_PATH + 1];
00533     bool            bAddError = false;
00534
00535     // 2007.05.19 ryoji 他画面と同じようにインポート用フォルダ設定を使うようにした
00536     _tcscpy( szPath, _T("") );
00537     _tcscpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );   /* インポート用フォルダ */
00538     /* ファイルオープンダイアログの初期化 */
00539     cDlgOpenFile.Create(
00540         m_hInstance,
00541         hwndDlg,
00542         _T("*.kwd"),
00543         szInitDir
00544     );
00545     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00546         return;
00547     }
00548     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00549     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00550 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00551     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00552
00553     CTextInputStream in(szPath);
00554     if(!in){
00555 		::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00556             "ファイルを開けませんでした。\n\n%ls", szPath
00557         );
00558         return;
00559     }
00560     while( in ){
00561         wstring szLine = in.ReadLineW();
00562
00563         //コメント無視
00564         if( 2 < szLine.length() && 0 == auto_memcmp( szLine.c_str(), L"//", 2 )  )continue;
00565
00566         //解析
00567         if( 0 < szLine.length() ){
00568             /* ｎ番目のセットにキーワードを追加 */
00569             int nRetValue = m_CKeyWordSetMgr.AddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szLine.c_str() );
00570             if( 2 == nRetValue ){
00571                 bAddError = true;
00572                 break;
00573             }
00574         }
00575     }
00576     in.Close();
00577
00578     if( bAddError ){
00579 		::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00580             "キーワードの数が上限に達したため、いくつかのキーワードを追加できませんでした。"
00581         );
00582     }
00583     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00584     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00585     return;
00586 }
00587
00588
00589 /* p7:リスト中のキーワードをエクスポートする */
00590 void CPropCommon::p7_Export_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00591 {
00592     CDlgOpenFile    cDlgOpenFile;
00593     TCHAR           szPath[_MAX_PATH + 1];
00594     TCHAR           szInitDir[_MAX_PATH + 1];
00595     int             i;
00596     int             nKeyWordNum;
00597
00598     // 2007.05.19 ryoji 他画面と同じようにインポート用フォルダ設定を使うようにした
00599     _tcscpy( szPath, _T("") );
00600     _tcscpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );   /* インポート用フォルダ */
00601     /* ファイルオープンダイアログの初期化 */
00602     cDlgOpenFile.Create(
00603         m_hInstance,
00604         hwndDlg,
00605         _T("*.kwd"),
00606         szInitDir
00607     );
00608     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00609         return;
00610     }
00611 //  MYTRACE_A( "%ls\n", szPath );
00612     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00613     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00614 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00615     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00616
00617     CTextOutputStream out(szPath);
00618     if(!out){
00619 		::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
00620             "ファイルを開けませんでした。\n\n%ls", szPath
00621         );
00622         return;
00623     }
00624     out.WriteF( L"// " );
00625     out.WriteF( m_CKeyWordSetMgr.GetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) );
00626     out.WriteF( L"  キーワード定義ファイル" );
00627     out.WriteF( L"\n" );
00628     out.WriteF( L"\n" );
00629
00630     m_CKeyWordSetMgr.SortKeyWord(m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx); //MIK 2000.12.01 sort keyword
00631
00632     /* ｎ番目のセットのキーワードの数を返す */
00633     nKeyWordNum = m_CKeyWordSetMgr.GetKeyWordNum( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00634     for( i = 0; i < nKeyWordNum; ++i ){
00635         /* ｎ番目のセットのｍ番目のキーワードを返す */
00636         m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, i );
00637         out.WriteF( m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, i ) );
00638         out.WriteF( L"\n" );
00639     }
00640     out.Close();
00641
00642     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00643     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00644
00645 	::MYMESSAGEBOX_A(  hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00646         "ファイルへエクスポートしました。\n\n%ls", szPath
00647     );
00648
00649     return;
00650 }
00651
00652
00654 void CPropCommon::p7_Clean_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00655 {
00656     if( IDYES == ::MessageBoxA( hwndDlg, "現在の設定では強調キーワードとして表示できないキーワードを削除しますか？",
00657             GSTR_APPNAME_A, MB_YESNO | MB_ICONSTOP ) ){
00658         if( m_CKeyWordSetMgr.CleanKeyWords( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) ){
00659         }
00660         SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00661     }
00662 }
00663
00664 /* ダイアログデータの設定 p7 */
00665 void CPropCommon::SetData_p7( HWND hwndDlg )
00666 {
00667     int     i;
00668 //  LV_ITEM lvi;
00669     HWND    hwndWork;
00670 //  int     nIdx;
00671 //  char*   pszWork;
00672
00673
00674     /* セット名コンボボックスの値セット */
00675     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
00676 	::SendMessageAny( hwndWork, CB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
00677     if( 0 < m_CKeyWordSetMgr.m_nKeyWordSetNum ){
00678         for( i = 0; i < m_CKeyWordSetMgr.m_nKeyWordSetNum; ++i ){
00679             Combo_AddString( hwndWork, m_CKeyWordSetMgr.GetTypeName( i ) );
00680         }
00681         /* セット名コンボボックスのデフォルト選択 */
00682 		::SendMessageAny( hwndWork, CB_SETCURSEL, (WPARAM)m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, 0 );
00683
00684         /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00685         SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00686     }else{
00687         /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00688         SetData_p7_KeyWordSet( hwndDlg, -1 );
00689     }
00690
00691     return;
00692 }
00693
00694
00695 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00696 void CPropCommon::SetData_p7_KeyWordSet( HWND hwndDlg, int nIdx )
00697 {
00698     int     i;
00699     int     nNum;
00700     HWND    hwndList;
00701     LV_ITEM lvi;
00702
00703     ListView_DeleteAllItems( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ) );
00704     if( 0 <= nIdx ){
00705         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELSET ), TRUE );
00706         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_KEYWORDCASE ), TRUE );
00707         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ), TRUE );
00708         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADDKEYWORD ), TRUE );
00709         //  Jan. 29, 2005 genta キーワードセット切り替え直後はキーワードは未選択
00710         //  そのため有効にしてすぐにタイマーで無効になる．
00711         //  なのでここで無効にしておく．
00712         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00713         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00714         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_IMPORT ), TRUE );
00715         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EXPORT ), TRUE );
00716     }else{
00717         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, FALSE );
00718
00719         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELSET ), FALSE );
00720         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_KEYWORDCASE ), FALSE );
00721         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ), FALSE );
00722         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADDKEYWORD ), FALSE );
00723         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00724         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00725         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_IMPORT ), FALSE );
00726         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EXPORT ), FALSE );
00727         return;
00728     }
00729
00730     /* キーワードの英大文字小文字区別 */
00731 //  if( TRUE == m_CKeyWordSetMgr.m_ppcKeyWordSetArr[nIdx]->m_nKEYWORDCASE ){
00732 //  if( TRUE == m_CKeyWordSetMgr.m_cKeyWordSetArr[nIdx].m_nKEYWORDCASE ){
00733 //  if( TRUE == m_CKeyWordSetMgr.m_nKEYWORDCASEArr[nIdx] ){     //MIK 2000.12.01 case sense
00734     if( TRUE == m_CKeyWordSetMgr.GetKeyWordCase(nIdx) ){        //MIK 2000.12.01 case sense
00735         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, TRUE );
00736     }else{
00737         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, FALSE );
00738     }
00739
00740     /* ｎ番目のセットのキーワードの数を返す */
00741     nNum = m_CKeyWordSetMgr.GetKeyWordNum( nIdx );
00742     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00743
00744     // 2005.01.25 Moca/genta リスト追加中は再描画を抑制してすばやく表示
00745 	::SendMessageAny( hwndList, WM_SETREDRAW, FALSE, 0 );
00746
00747     for( i = 0; i < nNum; ++i ){
00748         /* ｎ番目のセットのｍ番目のキーワードを返す */
00749         const TCHAR* pszKeyWord = to_tchar(m_CKeyWordSetMgr.GetKeyWord( nIdx, i ));
00750
00751         lvi.mask = LVIF_TEXT | LVIF_PARAM;
00752         lvi.pszText = const_cast<TCHAR*>(pszKeyWord);
00753         lvi.iItem = i;
00754         lvi.iSubItem = 0;
00755         lvi.lParam  = i;
00756         ListView_InsertItem( hwndList, &lvi );
00757
00758     }
00759     m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = nIdx;
00760
00761     // 2005.01.25 Moca/genta リスト追加完了のため再描画許可
00762 	::SendMessageAny( hwndList, WM_SETREDRAW, TRUE, 0 );
00763
00764     //キーワード数を表示する。
00765     DispKeywordCount( hwndDlg );
00766
00767     return;
00768 }
00769
00770
00771
00772 /* ダイアログデータの取得 p7 */
00773 int CPropCommon::GetData_p7( HWND hwndDlg )
00774 {
00775 //  HWND    hwndResList;
00776 //  int     i;
00777 //  int     j;
00778 //  int     k;
00779
00780 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00781 //  m_nPageNum = ID_PAGENUM_KEYWORD;
00782
00783
00784     return TRUE;
00785 }
00786
00787 /* ダイアログデータの取得 p7 指定キーワードセットの取得 */
00788 void CPropCommon::GetData_p7_KeyWordSet( HWND hwndDlg, int nIdx )
00789 {
00790 }
00791
00792 //キーワード数を表示する。
00793 void CPropCommon::DispKeywordCount( HWND hwndDlg )
00794 {
00795     HWND    hwndList;
00796     int     n;
00797     TCHAR szCount[ 256 ];
00798
00799     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00800     n = ListView_GetItemCount( hwndList );
00801     if( n < 0 ) n = 0;
00802
00803     int     nAlloc;
00804     nAlloc = m_CKeyWordSetMgr.GetAllocSize( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00805     nAlloc -= m_CKeyWordSetMgr.GetKeyWordNum( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00806     nAlloc += m_CKeyWordSetMgr.GetFreeSize();
00807
00808     auto_sprintf( szCount, _T("(最大 %d 文字, 登録数 %d, 空き %d 個)"), MAX_KEYWORDLEN, n, nAlloc );
00809     ::SetWindowText( ::GetDlgItem( hwndDlg, IDC_STATIC_KEYWORD_COUNT ), szCount );
00810 }
00811
00812 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComMacro.cpp

sakura_core

CPropComMacro.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include <memory.h>
#include <stdlib.h>
#include "util/shell.h"
#include "util/file.h"
#include "util/string_ex2.h"
#include "util/module.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 の 49 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComMacro.cpp ソースファイル

sakura_core

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 "util/shell.h"
00041 #include "util/file.h"
00042 #include "util/string_ex2.h"
00043 #include "util/module.h"
00044
00046 //@@@ 2001.12.22 Start by MIK: Popup Help
00047 #if 1   //@@@ 2002.01.03 add MIK
00048 #include "sakura.hh"
00049 static const DWORD p_helpids[] = {  //11700
00050     IDC_MACRODIRREF,    HIDC_MACRODIRREF,   //マクロディレクトリ参照
00051     IDC_MACRO_REG,      HIDC_MACRO_REG,     //マクロ設定
00052     IDC_COMBO_MACROID,  HIDC_COMBO_MACROID, //ID
00053     IDC_MACROPATH,      HIDC_MACROPATH,     //File
00054     IDC_MACRONAME,      HIDC_MACRONAME,     //マクロ名
00055     IDC_MACROLIST,      HIDC_MACROLIST,     //マクロリスト
00056     IDC_MACRODIR,       HIDC_MACRODIR,      //マクロ一覧
00057     IDC_CHECK_RELOADWHENEXECUTE,    HIDC_CHECK_RELOADWHENEXECUTE,   //マクロを実行するたびにファイルを読み込みなおす // 2006.08.06 ryoji
00058 //  IDC_STATIC,         -1,
00059     0, 0
00060 };
00061 #else
00062 static const DWORD p_helpids[] = {  //11700
00063     IDC_MACRODIRREF,    11700,  //参照
00064     IDC_MACRO_REG,      11701,  //設定
00065     IDC_COMBO_MACROID,  11730,  //ID
00066     IDC_MACROPATH,      11731,  //パス
00067     IDC_MACRONAME,      11740,  //マクロ名
00068     IDC_MACROLIST,      11741,  //リスト
00069     IDC_MACRODIR,       11750,  //マクロ一覧
00070 //  IDC_STATIC,         -1,
00071     0, 0
00072 };
00073 #endif
00074 //@@@ 2001.12.22 End
00075
00082 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_MACRO(
00083     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00084 {
00085     return DlgProc(&CPropCommon::DispatchEvent_PROP_Macro, hwndDlg, uMsg, wParam, lParam );
00086 }
00087
00094 INT_PTR CPropCommon::DispatchEvent_PROP_Macro( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00095 {
00096     NMHDR*      pNMHDR;
00097     NM_UPDOWN*  pMNUD;
00098     int         idCtrl;
00099
00100     WORD        wNotifyCode;
00101     WORD        wID;
00102     HWND        hwndCtl;
00103
00104     switch( uMsg ){
00105
00106     case WM_INITDIALOG:
00107         /* ダイアログデータの設定 p1 */
00108         InitDialog_PROP_Macro( hwndDlg );
00109         SetData_PROP_Macro( hwndDlg );
00110         // Modified by KEITA for WIN64 2003.9.6
00111 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00112
00113         //  Oct. 5, 2002 genta エディット コントロールに入力できるテキストの長さを制限する
00114         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACRONAME ),  EM_LIMITTEXT, _countof( m_MacroTable[0].m_szName ) - 1, 0 );
00115         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACROPATH ),  EM_LIMITTEXT, _countof( m_MacroTable[0].m_szFile ) - 1, 0 );
00116         // 2003.06.23 Moca
00117         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACRODIR ),  EM_LIMITTEXT, _countof( m_szMACROFOLDER ) - 1, 0 );
00118
00119         return TRUE;
00120     case WM_NOTIFY:
00121         idCtrl = (int)wParam;
00122         pNMHDR = (NMHDR*)lParam;
00123         pMNUD  = (NM_UPDOWN*)lParam;
00124         switch( idCtrl ){
00125         case IDC_MACROLIST:
00126             switch( pNMHDR->code ){
00127             case LVN_ITEMCHANGED:
00128                 CheckListPosition_Macro( hwndDlg );
00129                 break;
00130             }
00131             break;
00132         default:
00133             switch( pNMHDR->code ){
00134             case PSN_HELP:
00135                 OnHelp( hwndDlg, IDD_PROP_MACRO );
00136                 return TRUE;
00137             case PSN_KILLACTIVE:
00138                 /* ダイアログデータの取得 p1 */
00139                 GetData_PROP_Macro( hwndDlg );
00140                 return TRUE;
00141 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00142             case PSN_SETACTIVE:
00143                 m_nPageNum = ID_PAGENUM_MACRO;
00144                 return TRUE;
00145             }
00146             break;
00147         }
00148         break;
00149
00150     case WM_COMMAND:
00151         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00152         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00153         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00154
00155         switch( wNotifyCode ){
00156         /* ボタン／チェックボックスがクリックされた */
00157         case BN_CLICKED:
00158             switch( wID ){
00159             case IDC_MACRODIRREF:   // マクロディレクトリ参照
00160                 SelectBaseDir_Macro( hwndDlg );
00161                 break;
00162             case IDC_MACRO_REG:     // マクロ設定
00163                 SetMacro2List_Macro( hwndDlg );
00164                 break;
00165             }
00166             break;
00167         case CBN_DROPDOWN:
00168             switch( wID ){
00169             case IDC_MACROPATH:
00170                 OnFileDropdown_Macro( hwndDlg );
00171                 break;
00172             }
00173             break;  /* CBN_DROPDOWN */
00174         // From Here 2003.06.23 Moca マクロフォルダの最後の\がなければ付ける
00175         case EN_KILLFOCUS:
00176             switch( wID ){
00177             case IDC_MACRODIR:
00178                 {
00179                     TCHAR szDir[_MAX_PATH];
00180 					::DlgItem_GetText( hwndDlg, IDC_MACRODIR, szDir, _MAX_PATH );
00181                     if( 1 == AddLastChar( szDir, _MAX_PATH, _T('\\') ) ){
00182 						::DlgItem_SetText( hwndDlg, IDC_MACRODIR, szDir );
00183                     }
00184                 }
00185                 break;
00186             }
00187             break;
00188         // To Here 2003.06.23 Moca
00189         }
00190
00191         break;  /* WM_COMMAND */
00192 //@@@ 2001.02.04 Start by MIK: Popup Help
00193     case WM_HELP:
00194         {
00195             HELPINFO *p = (HELPINFO *)lParam;
00196             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00197         }
00198         return TRUE;
00199         /*NOTREACHED*/
00200         //break;
00201 //@@@ 2001.02.04 End
00202
00203 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00204     //Context Menu
00205     case WM_CONTEXTMENU:
00206         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00207         return TRUE;
00208 //@@@ 2001.12.22 End
00209
00210     }
00211     return FALSE;
00212 }
00213
00214
00220 void CPropCommon::SetData_PROP_Macro( HWND hwndDlg )
00221 {
00222     int index;
00223     LVITEM sItem;
00224
00225     //  マクロデータ
00226     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00227
00228     for( index = 0; index < MAX_CUSTMACRO; ++index ){
00229         memset_raw( &sItem, 0, sizeof( sItem ));
00230         sItem.iItem = index;
00231         sItem.mask = LVIF_TEXT;
00232         sItem.iSubItem = 1;
00233         sItem.pszText = m_pShareData->m_MacroTable[index].m_szName;
00234         ListView_SetItem( hListView, &sItem );
00235
00236         memset_raw( &sItem, 0, sizeof( sItem ));
00237         sItem.iItem = index;
00238         sItem.mask = LVIF_TEXT;
00239         sItem.iSubItem = 2;
00240         sItem.pszText = m_pShareData->m_MacroTable[index].m_szFile;
00241         ListView_SetItem( hListView, &sItem );
00242
00243         memset_raw( &sItem, 0, sizeof( sItem ));
00244         sItem.iItem = index;
00245         sItem.mask = LVIF_TEXT;
00246         sItem.iSubItem = 3;
00247         sItem.pszText = m_pShareData->m_MacroTable[index].m_bReloadWhenExecute ? _T("on") : _T("off");
00248         ListView_SetItem( hListView, &sItem );
00249     }
00250
00251     //  マクロディレクトリ
00252 	::DlgItem_SetText( hwndDlg, IDC_MACRODIR, /*m_pShareData->*/m_szMACROFOLDER );
00253
00254     nLastPos_Macro = -1;
00255
00256     //  リストビューの行選択を可能にする．
00257     //  IE 3.x以降が入っている場合のみ動作する．
00258     //  これが無くても，番号部分しか選択できないだけで操作自体は可能．
00259     DWORD dwStyle;
00260     dwStyle = ListView_GetExtendedListViewStyle( hListView );
00261     dwStyle |= LVS_EX_FULLROWSELECT;
00262     ListView_SetExtendedListViewStyle( hListView, dwStyle );
00263
00264     return;
00265 }
00266
00273 int CPropCommon::GetData_PROP_Macro( HWND hwndDlg )
00274 {
00275 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00276 //  m_nPageNum = ID_PAGENUM_MACRO;
00277
00278     int index;
00279     LVITEM sItem;
00280
00281     //  マクロデータ
00282     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00283
00284     for( index = 0; index < MAX_CUSTMACRO; ++index ){
00285         memset_raw( &sItem, 0, sizeof( sItem ));
00286         sItem.iItem = index;
00287         sItem.mask = LVIF_TEXT;
00288         sItem.iSubItem = 1;
00289         sItem.cchTextMax = MACRONAME_MAX - 1;
00290 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00291         sItem.pszText = /*m_pShareData->*/m_MacroTable[index].m_szName;
00292         ListView_GetItem( hListView, &sItem );
00293
00294         memset_raw( &sItem, 0, sizeof( sItem ));
00295         sItem.iItem = index;
00296         sItem.mask = LVIF_TEXT;
00297         sItem.iSubItem = 2;
00298         sItem.cchTextMax = _MAX_PATH;
00299 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00300         sItem.pszText = /*m_pShareData->*/m_MacroTable[index].m_szFile;
00301         ListView_GetItem( hListView, &sItem );
00302
00303         memset_raw( &sItem, 0, sizeof( sItem ));
00304         sItem.iItem = index;
00305         sItem.mask = LVIF_TEXT;
00306         sItem.iSubItem = 3;
00307         TCHAR buf[MAX_PATH];
00308         sItem.pszText = buf;
00309         sItem.cchTextMax = MAX_PATH;
00310         ListView_GetItem( hListView, &sItem );
00311         if ( _tcscmp(buf, _T("on")) == 0){
00312             m_MacroTable[index].m_bReloadWhenExecute = TRUE;
00313         }
00314         else {
00315             m_MacroTable[index].m_bReloadWhenExecute = FALSE;
00316         }
00317     }
00318
00319     //  マクロディレクトリ
00320 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00321 	::DlgItem_GetText( hwndDlg, IDC_MACRODIR, m_szMACROFOLDER, _MAX_PATH );
00322     // 2003.06.23 Moca マクロフォルダの最後の\がなければ付ける
00323     AddLastChar( m_szMACROFOLDER, _MAX_PATH, _T('\\') );
00324
00325     return TRUE;
00326 }
00327
00328 void CPropCommon::InitDialog_PROP_Macro( HWND hwndDlg )
00329 {
00330     struct ColumnData {
00331         TCHAR *title;
00332         int width;
00333     } ColumnList[] = {
00334         { _T("番号"), 40 },
00335         { _T("マクロ名"), 180 },
00336         { _T("ファイル名"), 180 },
00337         { _T("実行時に読み込み"), 40 },
00338     };
00339
00340     //  ListViewの初期化
00341     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00342     if( hListView == NULL ){
00343         ::MessageBoxA( hwndDlg, "PropComMacro::InitDlg::NoListView", "バグ報告お願い", MB_OK );
00344         return; //  よくわからんけど失敗した
00345     }
00346
00347     LVCOLUMN sColumn;
00348     int pos;
00349
00350     for( pos = 0; pos < _countof( ColumnList ); ++pos ){
00351
00352         memset_raw( &sColumn, 0, sizeof( sColumn ));
00353         sColumn.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
00354         sColumn.pszText = ColumnList[pos].title;
00355         sColumn.cx = ColumnList[pos].width;
00356         sColumn.iSubItem = pos;
00357         sColumn.fmt = LVCFMT_LEFT;
00358
00359         if( ListView_InsertColumn( hListView, pos, &sColumn ) < 0 ){
00360             ::MessageBoxA( hwndDlg, "PropComMacro::InitDlg::ColumnRegistrationFail", "バグ報告お願い", MB_OK );
00361             return; //  よくわからんけど失敗した
00362         }
00363     }
00364
00365     //  メモリの確保
00366     //  必要な数だけ先に確保する．
00367     ListView_SetItemCount( hListView, MAX_CUSTMACRO );
00368
00369     //  Index部分の登録
00370     for( pos = 0; pos < MAX_CUSTMACRO ; ++pos ){
00371         LVITEM sItem;
00372         TCHAR buf[4];
00373         memset_raw( &sItem, 0, sizeof( sItem ));
00374         sItem.mask = LVIF_TEXT | LVIF_PARAM;
00375         sItem.iItem = pos;
00376         sItem.iSubItem = 0;
00377         _itot( pos, buf, 10 );
00378         sItem.pszText = buf;
00379         sItem.lParam = pos;
00380         ListView_InsertItem( hListView, &sItem );
00381     }
00382
00383     // 登録先指定 ComboBoxの初期化
00384     HWND hNumCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00385     for( pos = 0; pos < MAX_CUSTMACRO ; ++pos ){
00386         wchar_t buf[10];
00387         auto_sprintf( buf, L"%d", pos );
00388         int result = ::SendMessage( hNumCombo, CB_ADDSTRING, (WPARAM)0, (LPARAM)buf );
00389         if( result == CB_ERR ){
00390             ::MessageBoxA( hwndDlg, "PropComMacro::InitDlg::AddMacroId", "バグ報告お願い", MB_OK );
00391             return; //  よくわからんけど失敗した
00392         }
00393         else if( result == CB_ERRSPACE ){
00394             ::MessageBoxA( hwndDlg, "PropComMacro::InitDlg::AddMacroId/InsufficientSpace",
00395                 "バグ報告お願い", MB_OK );
00396             return; //  よくわからんけど失敗した
00397         }
00398     }
00399 	::SendMessageAny( hNumCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00400 }
00401
00402 void CPropCommon::SetMacro2List_Macro( HWND hwndDlg )
00403 {
00404     int index;
00405     LVITEM sItem;
00406
00407     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00408     HWND hNum = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00409
00410     //  設定先取得
00411     index = ::SendMessageAny( hNum, CB_GETCURSEL, 0, 0 );
00412     if( index == CB_ERR ){
00413         ::MessageBoxA( hwndDlg, "PropComMacro::SetMacro2List::GetCurSel",
00414             "バグ報告お願い", MB_OK );
00415         return; //  よくわからんけど失敗した
00416     }
00417
00418     // マクロ名
00419     memset_raw( &sItem, 0, sizeof( sItem ));
00420     sItem.iItem = index;
00421     sItem.mask = LVIF_TEXT;
00422     sItem.iSubItem = 1;
00423
00424     TCHAR buf[256];
00425 	::DlgItem_GetText( hwndDlg, IDC_MACRONAME, buf, MACRONAME_MAX );
00426     sItem.pszText = buf;
00427     ListView_SetItem( hListView, &sItem );
00428
00429     // ファイル名
00430     memset_raw( &sItem, 0, sizeof( sItem ));
00431     sItem.iItem = index;
00432     sItem.mask = LVIF_TEXT;
00433     sItem.iSubItem = 2;
00434
00435 	::DlgItem_GetText( hwndDlg, IDC_MACROPATH, buf, _MAX_PATH );
00436     sItem.pszText = buf;
00437     ListView_SetItem( hListView, &sItem );
00438
00439     // チェック
00440     memset_raw( &sItem, 0, sizeof( sItem ));
00441     sItem.iItem = index;
00442     sItem.mask = LVIF_TEXT;
00443     sItem.iSubItem = 3;
00444     sItem.pszText = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE ) ? _T("on") : _T("off");
00445     ListView_SetItem( hListView, &sItem );
00446 }
00447
00453 void CPropCommon::SelectBaseDir_Macro( HWND hwndDlg )
00454 {
00455
00456 // 2002/04/14 novice
00457 //  SelectDir()に分離された部分を削除
00458     TCHAR szDir[MAX_PATH + 1]; // 追加する\\用に1足した
00459
00460     /* 検索フォルダ */
00461 	::DlgItem_GetText( hwndDlg, IDC_MACRODIR, szDir, _MAX_PATH );
00462
00463     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00464     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00465     if( _IS_REL_PATH( szDir ) ){
00466         TCHAR folder[_MAX_PATH];
00467         _tcscpy( folder, szDir );
00468         GetInidirOrExedir( szDir, folder );
00469     }
00470
00471     if( SelectDir( hwndDlg, _T("Macroディレクトリの選択"), szDir, szDir ) ){
00472         //  末尾に\\マークを追加する．
00473         AddLastChar( szDir, _MAX_PATH, _T('\\') );
00474 		::DlgItem_SetText( hwndDlg, IDC_MACRODIR, szDir );
00475     }
00476 }
00477
00478
00485 void CPropCommon::OnFileDropdown_Macro( HWND hwndDlg )
00486 {
00487     HANDLE hFind;
00488     HWND hCombo = ::GetDlgItem( hwndDlg, IDC_MACROPATH );
00489
00490     TCHAR path[_MAX_PATH * 2 ];
00491 	::DlgItem_GetText( hwndDlg, IDC_MACRODIR, path, _MAX_PATH );
00492
00493     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00494     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00495     if( _IS_REL_PATH( path ) ){
00496         TCHAR folder[_MAX_PATH];
00497         _tcscpy( folder, path );
00498         GetInidirOrExedir( path, folder );
00499     }
00500     _tcscat( path, _T("*.*") ); //  2002/05/01 YAZAKI どんなファイルもどんと来い。
00501
00502     //  候補の初期化
00503 	::SendMessageAny( hCombo, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );
00504
00505     //  ファイルの検索
00506     WIN32_FIND_DATA wf;
00507     hFind = FindFirstFile(path, &wf);
00508
00509     if (hFind == INVALID_HANDLE_VALUE) {
00510         return;
00511     }
00512
00513     do {
00514         //  コンボボックスに設定
00515         //  でも.と..は勘弁。
00516         if (_tcscmp( wf.cFileName, _T(".") ) != 0 && _tcscmp( wf.cFileName, _T("..") ) != 0){
00517             int result = ::SendMessage( hCombo, CB_ADDSTRING, (WPARAM)0, (LPARAM)wf.cFileName );
00518             if( result == CB_ERR || result == CB_ERRSPACE )
00519                 break;
00520         }
00521     } while( FindNextFile( hFind, &wf ));
00522
00523     FindClose(hFind);
00524 }
00525
00526 void CPropCommon::CheckListPosition_Macro( HWND hwndDlg )
00527 {
00528     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00529     HWND hNum = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00530
00531     //  現在のFocus取得
00532     int current = ListView_GetNextItem( hListView, -1, LVNI_SELECTED);
00533
00534     if( current == -1 || current == nLastPos_Macro )
00535         return;
00536
00537     nLastPos_Macro = current;
00538
00539     //  初期値の設定
00540 	::SendMessageAny( hNum, CB_SETCURSEL, nLastPos_Macro, 0 );
00541
00542     TCHAR buf[MAX_PATH + MACRONAME_MAX];    // MAX_PATHとMACRONAME_MAXの両方より大きい値
00543     LVITEM sItem;
00544
00545     memset_raw( &sItem, 0, sizeof( sItem ));
00546     sItem.iItem = current;
00547     sItem.mask = LVIF_TEXT;
00548     sItem.iSubItem = 1;
00549     sItem.pszText = buf;
00550     sItem.cchTextMax = MACRONAME_MAX;
00551
00552     ListView_GetItem( hListView, &sItem );
00553 	::DlgItem_SetText( hwndDlg, IDC_MACRONAME, buf );
00554
00555     memset_raw( &sItem, 0, sizeof( sItem ));
00556     sItem.iItem = current;
00557     sItem.mask = LVIF_TEXT;
00558     sItem.iSubItem = 2;
00559     sItem.pszText = buf;
00560     sItem.cchTextMax = MAX_PATH;
00561
00562     ListView_GetItem( hListView, &sItem );
00563 	::DlgItem_SetText( hwndDlg, IDC_MACROPATH, buf );
00564
00565     memset_raw( &sItem, 0, sizeof( sItem ));
00566     sItem.iItem = current;
00567     sItem.mask = LVIF_TEXT;
00568     sItem.iSubItem = 3;
00569     sItem.pszText = buf;
00570     sItem.cchTextMax = MAX_PATH;
00571     ListView_GetItem( hListView, &sItem );
00572     if ( _tcscmp(buf, _T("on")) == 0){
00573         ::CheckDlgButton( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE, true );
00574     }
00575     else {
00576         ::CheckDlgButton( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE, false );
00577     }
00578 }
00579
00580
00581 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropCommon.cpp

sakura_core

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 "global.h"
#include "CDlgInput1.h"
#include "CDlgDebug.h"
#include "CSplitBoxWnd.h"
#include "CMenuDrawer.h"
#include "funccode.h"
#include "CEditApp.h"
#include "util/shell.h"
#include "sakura.hh"

ソースコードを見る。

構成

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 の 39 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropCommon.cpp ソースファイル

sakura_core

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 "global.h"
00028 #include "CDlgInput1.h"
00029 #include "CDlgDebug.h"
00030 #include "CSplitBoxWnd.h"
00031 #include "CMenuDrawer.h"
00032 #include "funccode.h"   //Stonee, 2001/05/18
00033 #include "CEditApp.h"
00034 #include "util/shell.h"
00035
00036 //@@@ 2001.02.04 Start by MIK: Popup Help
00037 #if 1   //@@@ 2002.01.03 add MIK
00038 #include "sakura.hh"
00039 static const DWORD p_helpids[] = {  //10900
00040     IDC_BUTTON_CLEAR_MRU_FILE,      HIDC_BUTTON_CLEAR_MRU_FILE,         //履歴をクリア（ファイル）
00041     IDC_BUTTON_CLEAR_MRU_FOLDER,    HIDC_BUTTON_CLEAR_MRU_FOLDER,       //履歴をクリア（フォルダ）
00042     IDC_CHECK_FREECARET,            HIDC_CHECK_FREECARET,               //フリーカーソル
00043 //DEL   IDC_CHECK_INDENT,               HIDC_CHECK_INDENT,                  //自動インデント ：タイプ別へ移動
00044 //DEL   IDC_CHECK_INDENT_WSPACE,        HIDC_CHECK_INDENT_WSPACE,           //全角空白もインデント ：タイプ別へ移動
00045     IDC_CHECK_USETRAYICON,          HIDC_CHECK_USETRAYICON,             //タスクトレイを使う
00046     IDC_CHECK_STAYTASKTRAY,         HIDC_CHECK_STAYTASKTRAY,            //タスクトレイに常駐
00047     IDC_CHECK_REPEATEDSCROLLSMOOTH, HIDC_CHECK_REPEATEDSCROLLSMOOTH,    //少し滑らかにする
00048     IDC_CHECK_CLOSEALLCONFIRM,      HIDC_CHECK_CLOSEALLCONFIRM,         //[すべて閉じる]で他に編集用のウィンドウがあれば確認する  // 2006.12.25 ryoji
00049     IDC_CHECK_EXITCONFIRM,          HIDC_CHECK_EXITCONFIRM,             //終了の確認
00050     IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, HIDC_CHECK_STOPS_WORD, //単語単位で移動するときに単語の両端に止まる
00051     IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, HIDC_CHECK_STOPS_PARAGRAPH, // 段落単位で移動するときに段落の両端に止まる
00052     IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, // マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない 2007.10.08 genta
00053     IDC_HOTKEY_TRAYMENU,            HIDC_HOTKEY_TRAYMENU,               //左クリックメニューのショートカットキー
00054     IDC_EDIT_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,    //スクロール行数
00055     IDC_EDIT_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,             //ファイル履歴の最大数
00056     IDC_EDIT_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,           //フォルダ履歴の最大数
00057     IDC_RADIO_CARETTYPE0,           HIDC_RADIO_CARETTYPE0,              //カーソル形状（Windows風）
00058     IDC_RADIO_CARETTYPE1,           HIDC_RADIO_CARETTYPE1,              //カーソル形状（MS-DOS風）
00059     IDC_SPIN_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,
00060     IDC_SPIN_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,
00061     IDC_SPIN_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,
00062 //  IDC_STATIC,                     -1,
00063     0, 0
00064 };
00065 #else
00066 static const DWORD p_helpids[] = {  //10900
00067     IDC_BUTTON_CLEAR_MRU_FILE,      10900,  //履歴をクリア（ファイル）
00068     IDC_BUTTON_CLEAR_MRU_FOLDER,    10901,  //履歴をクリア（フォルダ）
00069     IDC_CHECK_FREECARET,            10910,  //フリーカーソル
00070     IDC_CHECK_INDENT,               10911,  //自動インデント
00071     IDC_CHECK_INDENT_WSPACE,        10912,  //全角空白もインデント
00072     IDC_CHECK_USETRAYICON,          10913,  //タスクトレイを使う
00073     IDC_CHECK_STAYTASKTRAY,         10914,  //タスクトレイに常駐
00074     IDC_CHECK_REPEATEDSCROLLSMOOTH, 10915,  //少し滑らかにする
00075     IDC_CHECK_EXITCONFIRM,          10916,  //終了の確認
00076     IDC_HOTKEY_TRAYMENU,            10940,  //左クリックメニューのショートカットキー
00077     IDC_EDIT_REPEATEDSCROLLLINENUM, 10941,  //スクロール行数
00078     IDC_EDIT_MAX_MRU_FILE,          10942,  //ファイル履歴の最大数
00079     IDC_EDIT_MAX_MRU_FOLDER,        10943,  //フォルダ履歴の最大数
00080     IDC_RADIO_CARETTYPE0,           10960,  //カーソル形状（Windows風）
00081     IDC_RADIO_CARETTYPE1,           10961,  //カーソル形状（MS-DOS風）
00082     IDC_SPIN_REPEATEDSCROLLLINENUM, -1,
00083     IDC_SPIN_MAX_MRU_FILE,          -1,
00084     IDC_SPIN_MAX_MRU_FOLDER,        -1,
00085 //  IDC_STATIC,                     -1,
00086     0, 0
00087 };
00088 #endif
00089 //@@@ 2001.02.04 End
00090
00091
00092
00093
00094
00095
00096 int CPropCommon::SearchIntArr( int nKey, int* pnArr, int nArrNum )
00097 {
00098     int i;
00099     for( i = 0; i < nArrNum; ++i ){
00100         if( nKey == pnArr[i] ){
00101             return i;
00102         }
00103     }
00104     return -1;
00105 }
00106
00107 //  From Here Jun. 2, 2001 genta
00108 //  Dialog procedureの処理を共通化し、各ページのDialog Procedureでは
00109 //  真の処理メソッドを指定して共通関数を呼ぶだけにした．
00116 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GENERAL(
00117     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00118 {
00119     return DlgProc( &CPropCommon::DispatchEvent_p1, hwndDlg, uMsg, wParam, lParam );
00120 }
00121
00132 INT_PTR CPropCommon::DlgProc(
00133     INT_PTR (CPropCommon::*DispatchPage)( HWND, UINT, WPARAM, LPARAM ),
00134     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
00135 )
00136 {
00137     PROPSHEETPAGE*  pPsp;
00138     CPropCommon*    pCPropCommon;
00139     switch( uMsg ){
00140     case WM_INITDIALOG:
00141         pPsp = (PROPSHEETPAGE*)lParam;
00142         pCPropCommon = ( CPropCommon* )(pPsp->lParam);
00143         if( NULL != pCPropCommon ){
00144             return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, wParam, pPsp->lParam );
00145         }else{
00146             return FALSE;
00147         }
00148     default:
00149         // Modified by KEITA for WIN64 2003.9.6
00150         pCPropCommon = ( CPropCommon* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00151         if( NULL != pCPropCommon ){
00152             return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, wParam, lParam );
00153         }else{
00154             return FALSE;
00155         }
00156     }
00157 }
00158 //  To Here Jun. 2, 2001 genta
00159
00160 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00161 CPropCommon::CPropCommon()
00162 {
00163 //  int     i;
00164 //  long    lPathLen;
00165
00166     /* 共有データ構造体のアドレスを返す */
00167     m_pShareData = CShareData::getInstance()->GetShareData();
00168
00169     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00170     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00171     m_hwndThis  = NULL;     /* このダイアログのハンドル */
00172     m_nPageNum = 0;
00173
00174     /* ヘルプファイルのフルパスを返す */
00175     m_szHelpFile = CEditApp::Instance()->GetHelpFilePath();
00176
00177     return;
00178 }
00179
00180
00181
00182
00183
00184 CPropCommon::~CPropCommon()
00185 {
00186 }
00187
00188
00189
00190
00191
00192 /* 初期化 */
00193 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00194 void CPropCommon::Create( HINSTANCE hInstApp, HWND hwndParent, CImageListMgr* cIcons, CSMacroMgr* pMacro, CMenuDrawer* pMenuDrawer )
00195 {
00196     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00197     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00198     m_pcIcons = cIcons;
00199     m_pcSMacro = pMacro;
00200     m_cLookup.Init( m_hInstance, m_pcSMacro, &m_Common );   //  機能名・番号resolveクラス．
00201 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00202     m_pcMenuDrawer = pMenuDrawer;
00203
00204     return;
00205 }
00206
00207
00208
00209
00210
00211 /* 色選択ダイアログ */
00212 BOOL CPropCommon::SelectColor( HWND hwndParent, COLORREF* pColor )
00213 {
00214     int         i;
00215     CHOOSECOLOR cc;
00216     DWORD   dwCustColors[16] ;
00217     for( i = 0; i < 16; i++ ){
00218         dwCustColors[i] = (DWORD)RGB( 255, 255, 255 );
00219     }
00220     cc.lStructSize = sizeof_raw( cc );
00221     cc.hwndOwner = hwndParent;
00222     cc.hInstance = NULL;
00223     cc.rgbResult = *pColor;
00224     cc.lpCustColors = (LPDWORD) dwCustColors;
00225     cc.Flags = /*CC_PREVENTFULLOPEN |*/ CC_RGBINIT;
00226     cc.lCustData = NULL;
00227     cc.lpfnHook = NULL;
00228     cc.lpTemplateName = NULL;
00229     if( FALSE == ::ChooseColor( &cc ) ){
00230         return FALSE;
00231     }
00232     *pColor = cc.rgbResult;
00233     return TRUE;
00234 }
00235
00236
00237 // 2002.11.09 Moca 未使用
00238 #if 0
00239
00240 /* 色ボタンの描画 */
00241 void CPropCommon::DrawColorButton( DRAWITEMSTRUCT* pDis, COLORREF cColor )
00242 {
00243 #ifdef _DEBUG
00244     MYTRACE_A( "pDis->itemAction = " );
00245 #endif
00246     COLORREF    cBtnHiLight     = (COLORREF)::GetSysColor(COLOR_3DHILIGHT);
00247     COLORREF    cBtnShadow      = (COLORREF)::GetSysColor(COLOR_3DSHADOW);
00248     COLORREF    cBtnDkShadow    = (COLORREF)::GetSysColor(COLOR_3DDKSHADOW);
00249     COLORREF    cBtnFace        = (COLORREF)::GetSysColor(COLOR_3DFACE);
00250     COLORREF    cRim;
00251     HBRUSH      hBrush;
00252     HBRUSH      hBrushOld;
00253     HPEN        hPen;
00254     HPEN        hPenOld;
00255     RECT        rc;
00256     RECT        rcFocus;
00257
00258     /* ボタンの表面の色で塗りつぶす */
00259     hBrush = ::CreateSolidBrush( cBtnFace );
00260     ::FillRect( pDis->hDC, &(pDis->rcItem), hBrush );
00261     ::DeleteObject( hBrush );
00262
00263     /* 枠の描画 */
00264     rcFocus = rc = pDis->rcItem;
00265     rc.top += 4;
00266     rc.left += 4;
00267     rc.right -= 4;
00268     rc.bottom -= 4;
00269     rcFocus = rc;
00270 //  rc.right -= 11;
00271
00272     if( pDis->itemState & ODS_SELECTED ){
00273         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00274         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00275         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00276         ::LineTo( pDis->hDC, 0, 0 );
00277         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00278         ::SelectObject( pDis->hDC, hPenOld );
00279         ::DeleteObject( hPen );
00280
00281         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00282         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00283         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 3, NULL );
00284         ::LineTo( pDis->hDC, 1, 1 );
00285         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 1 );
00286         ::SelectObject( pDis->hDC, hPenOld );
00287         ::DeleteObject( hPen );
00288
00289         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00290         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00291         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00292         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00293         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00294         ::SelectObject( pDis->hDC, hPenOld );
00295         ::DeleteObject( hPen );
00296
00297         rc.top += 1;
00298         rc.left += 1;
00299         rc.right += 1;
00300         rc.bottom += 1;
00301
00302         rcFocus.top += 1;
00303         rcFocus.left += 1;
00304         rcFocus.right += 1;
00305         rcFocus.bottom += 1;
00306
00307     }else{
00308         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00309         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00310         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00311         ::LineTo( pDis->hDC, 0, 0 );
00312         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00313         ::SelectObject( pDis->hDC, hPenOld );
00314         ::DeleteObject( hPen );
00315
00316         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00317         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00318         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 2, NULL );
00319         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, pDis->rcItem.bottom - 2 );
00320         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 0 );
00321         ::SelectObject( pDis->hDC, hPenOld );
00322         ::DeleteObject( hPen );
00323
00324         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00325         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00326         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00327         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00328         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00329         ::SelectObject( pDis->hDC, hPenOld );
00330         ::DeleteObject( hPen );
00331     }
00332     /* 指定色で塗りつぶす */
00333     hBrush = ::CreateSolidBrush( cColor );
00334     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00335     cRim = cBtnShadow;
00336     hPen = ::CreatePen( PS_SOLID, 0, cRim );
00337     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00338     ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00339     ::SelectObject( pDis->hDC, hPenOld );
00340     ::SelectObject( pDis->hDC, hBrushOld );
00341     ::DeleteObject( hPen );
00342     ::DeleteObject( hBrush );
00343
00344
00345 //  /* 区切り縦棒 */
00346 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00347 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00348 //  ::MoveToEx( pDis->hDC, rc.right + 3, rc.top, NULL );
00349 //  ::LineTo( pDis->hDC, rc.right + 3, rc.bottom );
00350 //  ::SelectObject( pDis->hDC, hPenOld );
00351 //  ::DeleteObject( hPen );
00352 //
00353 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00354 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00355 //  ::MoveToEx( pDis->hDC, rc.right + 4, rc.top, NULL );
00356 //  ::LineTo( pDis->hDC, rc.right + 4, rc.bottom );
00357 //  ::SelectObject( pDis->hDC, hPenOld );
00358 //  ::DeleteObject( hPen );
00359 //
00360 //  /* ▼記号 */
00361 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00362 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00363 //  ::MoveToEx( pDis->hDC, rc.right + 6     , rc.top + 6, NULL );
00364 //  ::LineTo(   pDis->hDC, rc.right + 6 + 5 , rc.top + 6 );
00365 //  ::MoveToEx( pDis->hDC, rc.right + 7     , rc.top + 7, NULL );
00366 //  ::LineTo(   pDis->hDC, rc.right + 7 + 3 , rc.top + 7 );
00367 //  ::MoveToEx( pDis->hDC, rc.right + 8     , rc.top + 8, NULL );
00368 //  ::LineTo(   pDis->hDC, rc.right + 8 + 1 , rc.top + 8 );
00369 //  ::SelectObject( pDis->hDC, hPenOld );
00370 //  ::DeleteObject( hPen );
00371
00372     /* フォーカスの長方形 */
00373     if( pDis->itemState & ODS_FOCUS ){
00374         rcFocus.top -= 3;
00375         rcFocus.left -= 3;
00376         rcFocus.right += 2;
00377         rcFocus.bottom += 2;
00378         ::DrawFocusRect( pDis->hDC, &rcFocus );
00379     }
00380     return;
00381 }
00382
00383 #endif
00384
00385
00386
00387
00388 //  From Here Jun. 2, 2001 genta
00393 struct ComPropSheetInfo {
00394     const TCHAR* szTabname;
00395     unsigned int resId;
00396     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     int                 nIdx;
00413     int                 i;
00414
00415     //  From Here Jun. 2, 2001 genta
00416     //  Feb. 11, 2007 genta URLをTABと入れ換え    // 2007.02.13 順序変更（TABをWINの次に）
00418     static ComPropSheetInfo ComPropSheetInfoList[] = {
00419         { _T("全般"),                 IDD_PROP1P1,        DlgProc_PROP_GENERAL },
00420         { _T("ウィンドウ"),        IDD_PROP_WIN,       DlgProc_PROP_WIN },
00421         { _T("タブバー"),           IDD_PROP_TAB,       DlgProc_PROP_TAB },
00422         { _T("編集"),             IDD_PROP_EDIT,      DlgProc_PROP_EDIT },
00423         { _T("ファイル"),           IDD_PROP_FILE,      DlgProc_PROP_FILE },
00424         { _T("バックアップ"),     IDD_PROP_BACKUP,    DlgProc_PROP_BACKUP },
00425         { _T("書式"),             IDD_PROP_FORMAT,    DlgProc_PROP_FORMAT },
00426         { _T("検索"),             IDD_PROP_GREP,      DlgProc_PROP_GREP },    // 2006.08.23 ryoji タイトル変更（Grep -> 検索）
00427         { _T("キー割り当て"),     IDD_PROP_KEYBIND,   DlgProc_PROP_KEYBIND },
00428         { _T("カスタムメニュー"),   IDD_PROP_CUSTMENU,  DlgProc_PROP_CUSTMENU },
00429         { _T("ツールバー"),        IDD_PROP_TOOLBAR,   DlgProc_PROP_TOOLBAR },
00430         { _T("強調キーワード"),  IDD_PROP_KEYWORD,   DlgProc_PROP_KEYWORD },
00431         { _T("支援"),             IDD_PROP_HELPER,    DlgProc_PROP_HELPER },
00432         { _T("マクロ"),          IDD_PROP_MACRO,     DlgProc_PROP_MACRO },
00433         { _T("ファイル名表示"),  IDD_PROP_FNAME,     DlgProc_PROP_FILENAME},
00434     };
00435
00436     PROPSHEETPAGE       psp[32];
00437     for( nIdx = 0, i = 0; i < _countof(ComPropSheetInfoList) && nIdx < 32 ; i++ ){
00438         if( ComPropSheetInfoList[i].szTabname != NULL ){
00439             PROPSHEETPAGE *p = &psp[nIdx];
00440             memset_raw( p, 0, sizeof_raw( *p ) );
00441             p->dwSize      = sizeof_raw( *p );
00442             p->dwFlags     = PSP_USETITLE | PSP_HASHELP;
00443             p->hInstance   = m_hInstance;
00444             p->pszTemplate = MAKEINTRESOURCE( ComPropSheetInfoList[i].resId );
00445             p->pszIcon     = NULL;
00446             p->pfnDlgProc  = (DLGPROC)(ComPropSheetInfoList[i].DProc);
00447             p->pszTitle    = ComPropSheetInfoList[i].szTabname;
00448             p->lParam      = (LPARAM)this;
00449             p->pfnCallback = NULL;
00450             nIdx++;
00451         }
00452     }
00453     //  To Here Jun. 2, 2001 genta
00454
00455     PROPSHEETHEADER     psh;
00456     memset_raw( &psh, 0, sizeof_raw( psh ) );
00457
00458     //  Jun. 29, 2002 こおり
00459     //  Windows 95対策．Property SheetのサイズをWindows95が認識できる物に固定する．
00460     psh.dwSize = sizeof_old_PROPSHEETHEADER;
00461
00462     //  JEPROtest Sept. 30, 2000 共通設定の隠れ[適用]ボタンの正体はここ。行頭のコメントアウトを入れ替えてみればわかる
00463     psh.dwFlags    = PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE;
00464     psh.hwndParent = m_hwndParent;
00465     psh.hInstance  = m_hInstance;
00466     psh.pszIcon    = NULL;
00467     psh.pszCaption = _T("共通設定");
00468     psh.nPages     = nIdx;
00469
00470     //- 20020106 aroka # psh.nStartPage は unsigned なので負にならない
00471     if( -1 == nPageNum ){
00472         psh.nStartPage = m_nPageNum;
00473     }else
00474     if( 0 > nPageNum ){         //- 20020106 aroka
00475         psh.nStartPage = 0;
00476     }else{
00477         psh.nStartPage = nPageNum;
00478     }
00479     if( psh.nPages - 1 < psh.nStartPage ){
00480         psh.nStartPage = psh.nPages - 1;
00481     }
00482
00483     psh.ppsp = psp;
00484     psh.pfnCallback = NULL;
00485
00486 //<<<<<<< .mine
00487 //  nRet = ::PropertySheet( &psh );
00488 //=======
00489     nRet = MyPropertySheet( &psh ); // 2007.05.24 ryoji 独自拡張プロパティシート
00490 //>>>>>>> .r1121
00491     if( -1 == nRet ){
00492         TCHAR*  pszMsgBuf;
00493         ::FormatMessage(
00494             FORMAT_MESSAGE_ALLOCATE_BUFFER |
00495             FORMAT_MESSAGE_FROM_SYSTEM |
00496             FORMAT_MESSAGE_IGNORE_INSERTS,
00497             NULL,
00498             ::GetLastError(),
00499             MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),  // デフォルト言語
00500             (LPTSTR)&pszMsgBuf,
00501             0,
00502             NULL
00503         );
00504 		::MYMESSAGEBOX(
00505             NULL,
00506             MB_OK | MB_ICONINFORMATION | MB_TOPMOST,
00507             _T("作者に教えて欲しいエラー"),
00508             _T("CPropCommon::DoPropertySheet()内でエラーが出ました。\n")
00509             _T("psh.nStartPage=[%d]\n")
00510             _T("::PropertySheet()失敗\n")
00511             _T("\n")
00512             _T("%ls\n"),
00513             psh.nStartPage,
00514             pszMsgBuf
00515         );
00516         ::LocalFree( pszMsgBuf );
00517     }
00518
00519     return nRet;
00520 }
00521
00522
00523
00527 void CPropCommon::InitData( void )
00528 {
00529     int i;
00530     m_Common = m_pShareData->m_Common;
00531     m_nKeyNameArrNum = m_pShareData->m_nKeyNameArrNum;
00532     for( i = 0; i < _countof( m_pShareData->m_pKeyNameArr ); ++i ){
00533         m_pKeyNameArr[i] = m_pShareData->m_pKeyNameArr[i];
00534     }
00535     m_CKeyWordSetMgr = m_pShareData->m_CKeyWordSetMgr;
00536
00537     //2002/04/25 YAZAKI Types全体を保持する必要はない。
00538     for( i = 0; i < MAX_TYPES; ++i ){
00539         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00540             m_Types_nKeyWordSetIdx[i][j] = m_pShareData->m_Types[i].m_nKeyWordSetIdx[j];
00541         }
00542     }
00543     /* マクロ関係
00544     @@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00545     */
00546     for( i = 0; i < MAX_CUSTMACRO; ++i ){
00547         m_MacroTable[i] = m_pShareData->m_MacroTable[i];
00548     }
00549     auto_memcpy(
00550         m_szMACROFOLDER,
00551         m_pShareData->m_szMACROFOLDER,
00552         _countof2(m_pShareData->m_szMACROFOLDER)
00553     );
00554
00555     // ファイル名簡易表示関係
00556     memcpy_raw(
00557         m_szTransformFileNameFrom,
00558         m_pShareData->m_szTransformFileNameFrom,
00559         sizeof(m_pShareData->m_szTransformFileNameFrom)
00560     );
00561     memcpy_raw(
00562         m_szTransformFileNameTo,
00563         m_pShareData->m_szTransformFileNameTo,
00564         sizeof(m_pShareData->m_szTransformFileNameTo)
00565     );
00566     m_nTransformFileNameArrNum = m_pShareData->m_nTransformFileNameArrNum;
00567
00568 }
00569
00574 void CPropCommon::ApplyData( void )
00575 {
00576     int i;
00577
00578     for( i = 0; i < _countof( m_pShareData->m_pKeyNameArr ); ++i ){
00579         m_pShareData->m_pKeyNameArr[i] = m_pKeyNameArr[i];
00580     }
00581     m_pShareData->m_CKeyWordSetMgr = m_CKeyWordSetMgr;
00582
00583     m_pShareData->m_Common = m_Common;
00584
00585     for( i = 0; i < MAX_TYPES; ++i ){
00586         //2002/04/25 YAZAKI Types全体を保持する必要はない。
00587         /* 変更された設定値のコピー */
00588         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00589             m_pShareData->m_Types[i].m_nKeyWordSetIdx[j] = m_Types_nKeyWordSetIdx[i][j];
00590         }
00591     }
00592
00593     /* マクロ関係 */
00594     for( i = 0; i < MAX_CUSTMACRO; ++i ){
00595         m_pShareData->m_MacroTable[i] = m_MacroTable[i];
00596     }
00597     auto_memcpy( m_pShareData->m_szMACROFOLDER, m_szMACROFOLDER, _countof2( m_pShareData->m_szMACROFOLDER ) );
00598
00599     // ファイル名簡易表示関係
00600     // 念のため，書き換える前に 0 を設定しておく
00601     m_pShareData->m_nTransformFileNameArrNum = 0;
00602     memcpy_raw( m_pShareData->m_szTransformFileNameFrom, m_szTransformFileNameFrom,
00603         sizeof( m_pShareData->m_szTransformFileNameFrom ) );
00604     memcpy_raw( m_pShareData->m_szTransformFileNameTo, m_szTransformFileNameTo,
00605         sizeof( m_pShareData->m_szTransformFileNameTo ) );
00606
00607     m_pShareData->m_nTransformFileNameArrNum = m_nTransformFileNameArrNum;
00608
00609 }
00610
00611
00612
00613
00614 /* p1 メッセージ処理 */
00615 INT_PTR CPropCommon::DispatchEvent_p1(
00616     HWND    hwndDlg,    // handle to dialog box
00617     UINT    uMsg,       // message
00618     WPARAM  wParam,     // first message parameter
00619     LPARAM  lParam      // second message parameter
00620 )
00621 {
00622     WORD        wNotifyCode;
00623     WORD        wID;
00624 //  HWND        hwndCtl;
00625     NMHDR*      pNMHDR;
00626     NM_UPDOWN*  pMNUD;
00627     int         idCtrl;
00628     int         nVal;
00629 //  LPDRAWITEMSTRUCT pDis;
00630
00631     switch( uMsg ){
00632
00633     case WM_INITDIALOG:
00634         /* ダイアログデータの設定 p1 */
00635         SetData_p1( hwndDlg );
00636         // Modified by KEITA for WIN64 2003.9.6
00637 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00638
00639         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00640
00641         return TRUE;
00642     case WM_COMMAND:
00643         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00644         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00645 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00646         switch( wNotifyCode ){
00647         /* ボタン／チェックボックスがクリックされた */
00648         case BN_CLICKED:
00649             switch( wID ){
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                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
00659                 }
00660             // To Here 2001.12.03 hor
00661                 return TRUE;
00662
00663             case IDC_CHECK_STAYTASKTRAY:    /* タスクトレイに常駐 */
00664                 return TRUE;
00665
00666             case IDC_BUTTON_CLEAR_MRU_FILE:
00667                 /* ファイルの履歴をクリア */
00668                 if( IDCANCEL == ::MYMESSAGEBOX_A( hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME_A,
00669                     "最近使ったファイルの履歴を削除します。\nよろしいですか？\n" ) ){
00670                     return TRUE;
00671                 }
00672 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00673 //              m_pShareData->m_nMRUArrNum = 0;
00674                 {
00675                     CMRU cMRU;
00676                     cMRU.ClearAll();
00677                 }
00678 				::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00679                     "最近使ったファイルの履歴を削除しました。\n"
00680                 );
00681                 return TRUE;
00682             case IDC_BUTTON_CLEAR_MRU_FOLDER:
00683                 /* フォルダの履歴をクリア */
00684                 if( IDCANCEL == ::MYMESSAGEBOX_A( hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME_A,
00685                     "最近使ったフォルダの履歴を削除します。\nよろしいですか？\n" ) ){
00686                     return TRUE;
00687                 }
00688 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00689 //              m_pShareData->m_nOPENFOLDERArrNum = 0;
00690                 {
00691                     CMRUFolder cMRUFolder;  //  MRUリストの初期化。ラベル内だと問題あり？
00692                     cMRUFolder.ClearAll();
00693                 }
00694 				::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A,
00695                     "最近使ったフォルダの履歴を削除しました。\n"
00696                 );
00697                 return TRUE;
00698
00699             }
00700             break;  /* BN_CLICKED */
00701         }
00702         break;  /* WM_COMMAND */
00703     case WM_NOTIFY:
00704         idCtrl = (int)wParam;
00705         pNMHDR = (NMHDR*)lParam;
00706         pMNUD  = (NM_UPDOWN*)lParam;
00707         switch( idCtrl ){
00708         case IDC_SPIN_REPEATEDSCROLLLINENUM:
00709             /* キーリピート時のスクロール行数 */
00710 //          MYTRACE_A( "IDC_SPIN_REPEATEDSCROLLLINENUM\n" );
00711             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00712             if( pMNUD->iDelta < 0 ){
00713                 ++nVal;
00714             }else
00715             if( pMNUD->iDelta > 0 ){
00716                 --nVal;
00717             }
00718             if( nVal < 1 ){
00719                 nVal = 1;
00720             }
00721             if( nVal > 10 ){
00722                 nVal = 10;
00723             }
00724             ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, nVal, FALSE );
00725             return TRUE;
00726         case IDC_SPIN_MAX_MRU_FILE:
00727             /* ファイルの履歴MAX */
00728 //          MYTRACE_A( "IDC_SPIN_MAX_MRU_FILE\n" );
00729             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, NULL, FALSE );
00730             if( pMNUD->iDelta < 0 ){
00731                 ++nVal;
00732             }else
00733             if( pMNUD->iDelta > 0 ){
00734                 --nVal;
00735             }
00736             if( nVal < 0 ){
00737                 nVal = 0;
00738             }
00739             if( nVal > MAX_MRU ){
00740                 nVal = MAX_MRU;
00741             }
00742             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, nVal, FALSE );
00743             return TRUE;
00744         case IDC_SPIN_MAX_MRU_FOLDER:
00745             /* フォルダの履歴MAX */
00746 //          MYTRACE_A( "IDC_SPIN_MAX_MRU_FOLDER\n" );
00747             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, NULL, FALSE );
00748             if( pMNUD->iDelta < 0 ){
00749                 ++nVal;
00750             }else
00751             if( pMNUD->iDelta > 0 ){
00752                 --nVal;
00753             }
00754             if( nVal < 0 ){
00755                 nVal = 0;
00756             }
00757             if( nVal > MAX_OPENFOLDER ){
00758                 nVal = MAX_OPENFOLDER;
00759             }
00760             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, nVal, FALSE );
00761             return TRUE;
00762         default:
00763             switch( pNMHDR->code ){
00764             case PSN_HELP:
00765                 OnHelp( hwndDlg, IDD_PROP1P1 );
00766                 return TRUE;
00767             case PSN_KILLACTIVE:
00768 //              MYTRACE_A( "p1 PSN_KILLACTIVE\n" );
00769                 /* ダイアログデータの取得 p1 */
00770                 GetData_p1( hwndDlg );
00771                 return TRUE;
00772 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00773             case PSN_SETACTIVE:
00774                 m_nPageNum = ID_PAGENUM_ZENPAN; //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00775                 return TRUE;
00776             }
00777             break;
00778         }
00779
00780 //      MYTRACE_A( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00781 //      MYTRACE_A( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00782 //      MYTRACE_A( "pNMHDR->code    =%xh\n", pNMHDR->code );
00783 //      MYTRACE_A( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00784 //      MYTRACE_A( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00785         break;
00786
00787 //@@@ 2001.02.04 Start by MIK: Popup Help
00788     case WM_HELP:
00789         {
00790             HELPINFO *p = (HELPINFO *)lParam;
00791             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00792         }
00793         return TRUE;
00794         /*NOTREACHED*/
00795 //      break;
00796 //@@@ 2001.02.04 End
00797
00798 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00799     //Context Menu
00800     case WM_CONTEXTMENU:
00801         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00802         return TRUE;
00803 //@@@ 2001.12.22 End
00804
00805     }
00806     return FALSE;
00807 }
00808
00809
00810
00811
00812
00813 /* ダイアログデータの設定 p1 */
00814 void CPropCommon::SetData_p1( HWND hwndDlg )
00815 {
00816     BOOL    bRet;
00817
00818     /* カーソルのタイプ 0=win 1=dos  */
00819     if( 0 == m_Common.m_sGeneral.GetCaretType() ){
00820         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE0, TRUE );
00821         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE1, FALSE );
00822     }else{
00823         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE0, FALSE );
00824         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE1, TRUE );
00825     }
00826
00827
00828     /* フリーカーソルモード */
00829     ::CheckDlgButton( hwndDlg, IDC_CHECK_FREECARET, m_Common.m_sGeneral.m_bIsFreeCursorMode );
00830
00831     /* 単語単位で移動するときに、単語の両端で止まるか */
00832     ::CheckDlgButton( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchWord );
00833
00834     /* 段落単位で移動するときに、段落の両端で止まるか */
00835     ::CheckDlgButton( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph );
00836
00837     //  2007.10.08 genta マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない (2007.10.02 by nasukoji)
00838     ::CheckDlgButton( hwndDlg, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, m_Common.m_sGeneral.m_bNoCaretMoveByActivation );
00839
00840     /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */  // 2006.12.25 ryoji
00841     ::CheckDlgButton( hwndDlg, IDC_CHECK_CLOSEALLCONFIRM, m_Common.m_sGeneral.m_bCloseAllConfirm );
00842
00843     /* 終了時の確認をする */
00844     ::CheckDlgButton( hwndDlg, IDC_CHECK_EXITCONFIRM, m_Common.m_sGeneral.m_bExitConfirm );
00845
00846     /* キーリピート時のスクロール行数 */
00847     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, (Int)m_Common.m_sGeneral.m_nRepeatedScrollLineNum, FALSE );
00848
00849     /* キーリピート時のスクロールを滑らかにするか */
00850     ::CheckDlgButton( hwndDlg, IDC_CHECK_REPEATEDSCROLLSMOOTH, m_Common.m_sGeneral.m_nRepeatedScroll_Smooth );
00851
00852     /* ファイルの履歴MAX */
00853     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, m_Common.m_sGeneral.m_nMRUArrNum_MAX, FALSE );
00854
00855     /* フォルダの履歴MAX */
00856     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX, FALSE );
00857
00858     /* タスクトレイを使う */
00859     ::CheckDlgButton( hwndDlg, IDC_CHECK_USETRAYICON, m_Common.m_sGeneral.m_bUseTaskTray );
00860 // From Here 2001.12.03 hor
00861 //@@@ YAZAKI 2001.12.31 ここは制御する。
00862     if( m_Common.m_sGeneral.m_bUseTaskTray ){
00863         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), TRUE );
00864     }else{
00865         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
00866     }
00867 // To Here 2001.12.03 hor
00868     /* タスクトレイに常駐 */
00869     ::CheckDlgButton( hwndDlg, IDC_CHECK_STAYTASKTRAY, m_Common.m_sGeneral.m_bStayTaskTray );
00870
00871     /* タスクトレイ左クリックメニューのショートカット */
00872 	::SendMessageAny( ::GetDlgItem( hwndDlg, IDC_HOTKEY_TRAYMENU ), HKM_SETHOTKEY, MAKEWORD( m_Common.m_sGeneral.m_wTrayMenuHotKeyCode, m_Common.m_sGeneral.m_wTrayMenuHotKeyMods ), 0 );
00873
00874     return;
00875 }
00876
00877
00878
00879
00880
00881 /* ダイアログデータの取得 p1 */
00882 int CPropCommon::GetData_p1( HWND hwndDlg )
00883 {
00884     /* カーソルのタイプ 0=win 1=dos  */
00885     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_CARETTYPE0 ) ){
00886         m_Common.m_sGeneral.SetCaretType(0);
00887     }
00888     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_CARETTYPE1 ) ){
00889         m_Common.m_sGeneral.SetCaretType(1);
00890     }
00891
00892     /* フリーカーソルモード */
00893     m_Common.m_sGeneral.m_bIsFreeCursorMode = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_FREECARET );
00894
00895     /* 単語単位で移動するときに、単語の両端で止まるか */
00896     m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchWord = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD );
00897     //  2007.10.08 genta マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない (2007.10.02 by nasukoji)
00898     m_Common.m_sGeneral.m_bNoCaretMoveByActivation = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE );
00899
00900     /* 段落単位で移動するときに、段落の両端で止まるか */
00901     m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH );
00902
00903     /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */  // 2006.12.25 ryoji
00904     m_Common.m_sGeneral.m_bCloseAllConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CLOSEALLCONFIRM );
00905
00906     /* 終了時の確認をする */
00907     m_Common.m_sGeneral.m_bExitConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXITCONFIRM );
00908
00909     /* キーリピート時のスクロール行数 */
00910     m_Common.m_sGeneral.m_nRepeatedScrollLineNum = (CLayoutInt)::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00911     if( m_Common.m_sGeneral.m_nRepeatedScrollLineNum < CLayoutInt(1) ){
00912         m_Common.m_sGeneral.m_nRepeatedScrollLineNum = CLayoutInt(1);
00913     }
00914     if( m_Common.m_sGeneral.m_nRepeatedScrollLineNum > CLayoutInt(10) ){
00915         m_Common.m_sGeneral.m_nRepeatedScrollLineNum = CLayoutInt(10);
00916     }
00917
00918     /* キーリピート時のスクロールを滑らかにするか */
00919     m_Common.m_sGeneral.m_nRepeatedScroll_Smooth = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_REPEATEDSCROLLSMOOTH );
00920
00921     /* ファイルの履歴MAX */
00922     m_Common.m_sGeneral.m_nMRUArrNum_MAX = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, NULL, FALSE );
00923     if( m_Common.m_sGeneral.m_nMRUArrNum_MAX < 0 ){
00924         m_Common.m_sGeneral.m_nMRUArrNum_MAX = 0;
00925     }
00926     if( m_Common.m_sGeneral.m_nMRUArrNum_MAX > MAX_MRU ){
00927         m_Common.m_sGeneral.m_nMRUArrNum_MAX = MAX_MRU;
00928     }
00929
00930     {   //履歴の管理   //@@@ 2003.04.09 MIK
00931         CRecentFile cRecentFile;
00932         cRecentFile.UpdateView();
00933         cRecentFile.Terminate();
00934     }
00935
00936     /* フォルダの履歴MAX */
00937     m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, NULL, FALSE );
00938     if( m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX < 0 ){
00939         m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX = 0;
00940     }
00941     if( m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX > MAX_OPENFOLDER ){
00942         m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX = MAX_OPENFOLDER;
00943     }
00944
00945     {   //履歴の管理   //@@@ 2003.04.09 MIK
00946         CRecentFolder   cRecentFolder;
00947         cRecentFolder.UpdateView();
00948         cRecentFolder.Terminate();
00949     }
00950
00951     /* タスクトレイを使う */
00952     m_Common.m_sGeneral.m_bUseTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USETRAYICON );
00953 //@@@ YAZAKI 2001.12.31 m_bUseTaskTrayに引きづられるように。
00954     if( m_Common.m_sGeneral.m_bUseTaskTray ){
00955         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), TRUE );
00956     }else{
00957         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
00958     }
00959     /* タスクトレイに常駐 */
00960     m_Common.m_sGeneral.m_bStayTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STAYTASKTRAY );
00961
00962     /* タスクトレイ左クリックメニューのショートカット */
00963     LRESULT lResult;
00964     lResult = ::SendMessageAny( ::GetDlgItem( hwndDlg, IDC_HOTKEY_TRAYMENU ), HKM_GETHOTKEY, 0, 0 );
00965     m_Common.m_sGeneral.m_wTrayMenuHotKeyCode = LOBYTE( lResult );
00966     m_Common.m_sGeneral.m_wTrayMenuHotKeyMods = HIBYTE( lResult );
00967
00968     return TRUE;
00969 }
00970
00971
00972
00973 /* ヘルプ */
00974 //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
00975 void CPropCommon::OnHelp( HWND hwndParent, int nPageID )
00976 {
00977     int     nContextID;
00978     switch( nPageID ){
00979     case IDD_PROP1P1:
00980         nContextID = ::FuncID_To_HelpContextID(F_OPTION_GENERAL);
00981         break;
00982     case IDD_PROP_FORMAT:
00983         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FORMAT);
00984         break;
00985     case IDD_PROP_FILE:
00986         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FILE);
00987         break;
00988 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
00989 //  変更は少し後の行(Sept. 9, 2000)で行っている
00990 //  case IDD_PROP1P5:
00991 //      nContextID = 84;
00992 //      break;
00993     case IDD_PROP_TOOLBAR:
00994         nContextID = ::FuncID_To_HelpContextID(F_OPTION_TOOLBAR);
00995         break;
00996     case IDD_PROP_KEYWORD:
00997         nContextID = ::FuncID_To_HelpContextID(F_OPTION_KEYWORD);
00998         break;
00999     case IDD_PROP_CUSTMENU:
01000         nContextID = ::FuncID_To_HelpContextID(F_OPTION_CUSTMENU);
01001         break;
01002     case IDD_PROP_HELPER:
01003         nContextID = ::FuncID_To_HelpContextID(F_OPTION_HELPER);
01004         break;
01005
01006     // From Here Sept. 9, 2000 JEPRO 共通設定のヘルプボタンが効かなくなっていた部分を以下の追加によって修正
01007     case IDD_PROP_EDIT:
01008         nContextID = ::FuncID_To_HelpContextID(F_OPTION_EDIT);
01009         break;
01010     case IDD_PROP_BACKUP:
01011         nContextID = ::FuncID_To_HelpContextID(F_OPTION_BACKUP);
01012         break;
01013     case IDD_PROP_WIN:
01014         nContextID = ::FuncID_To_HelpContextID(F_OPTION_WINDOW);
01015         break;
01016     case IDD_PROP_TAB:
01017         nContextID = ::FuncID_To_HelpContextID(F_OPTION_TAB);
01018         break;
01019     case IDD_PROP_GREP:
01020         nContextID = ::FuncID_To_HelpContextID(F_OPTION_GREP);
01021         break;
01022     case IDD_PROP_KEYBIND:
01023         nContextID = ::FuncID_To_HelpContextID(F_OPTION_KEYBIND);
01024         break;
01025     // To Here Sept. 9, 2000
01026     case IDD_PROP_MACRO:    //@@@ 2002.01.02
01027         nContextID = ::FuncID_To_HelpContextID(F_OPTION_MACRO);
01028         break;
01029     case IDD_PROP_FNAME:    // 2002.12.09 Moca FNAME追加
01030         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FNAME);
01031         break;
01032
01033     default:
01034         nContextID = -1;
01035         break;
01036     }
01037     if( -1 != nContextID ){
01038         MyWinHelp( hwndParent, m_szHelpFile, HELP_CONTEXT, nContextID );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01039     }
01040     return;
01041 }
01042
01043
01044 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropCommon.h

sakura_core

CPropCommon.h

共通設定ダイアログボックスの処理 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "sakura_rc.h"
#include "CFuncLookup.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 の 37 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define ID_PAGENUM_CUSTMENU 9

CPropCommon.h の 41 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

#define ID_PAGENUM_EDIT 3

CPropCommon.h の 35 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT().

#define ID_PAGENUM_FILE 4

CPropCommon.h の 36 行で定義されています。

#define ID_PAGENUM_FILENAME 14

CPropCommon.h の 46 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define ID_PAGENUM_FORMAT 6

CPropCommon.h の 38 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9().

#define ID_PAGENUM_GREP 7

CPropCommon.h の 39 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP().

#define ID_PAGENUM_HELPER 12

CPropCommon.h の 44 行で定義されています。

参照元 CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), と CPropCommon::DispatchEvent_p10().

#define ID_PAGENUM_KEYBOARD 8

CPropCommon.h の 40 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define ID_PAGENUM_KEYWORD 11

CPropCommon.h の 43 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7().

#define ID_PAGENUM_MACRO 13

CPropCommon.h の 45 行で定義されています。

#define ID_PAGENUM_TAB 2

CPropCommon.h の 34 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB().

#define ID_PAGENUM_TOOLBAR 10

CPropCommon.h の 42 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define ID_PAGENUM_WIN 1

CPropCommon.h の 33 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define ID_PAGENUM_ZENPAN 0

CPropCommon.h の 32 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

Sakura-Editorに対してSat Nov 17 20:26:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropCommon.h ソースファイル

sakura_core

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 class CImageListMgr;
00029 class CSMacroMgr;
00030 class CMenuDrawer;// 2002/2/10 aroka to here
00031
00032 #define ID_PAGENUM_ZENPAN   0   //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更
00033 #define ID_PAGENUM_WIN      1   //Oct. 25, 2000 JEPRO  5→ 1 に変更
00034 #define ID_PAGENUM_TAB      2   //Feb. 11, 2007 genta URLと入れ換え    // 2007.02.13 順序変更（TABをWINの次に）
00035 #define ID_PAGENUM_EDIT     3
00036 #define ID_PAGENUM_FILE     4
00037 #define ID_PAGENUM_BACKUP   5
00038 #define ID_PAGENUM_FORMAT   6   //Oct. 25, 2000 JEPRO  1→ 5 に変更
00039 #define ID_PAGENUM_GREP     7
00040 #define ID_PAGENUM_KEYBOARD 8
00041 #define ID_PAGENUM_CUSTMENU 9   //Oct. 25, 2000 JEPRO 11→ 9 に変更
00042 #define ID_PAGENUM_TOOLBAR  10  //Oct. 25, 2000 JEPRO  9→10 に変更
00043 #define ID_PAGENUM_KEYWORD  11  //Oct. 25, 2000 JEPRO 10→11 に変更
00044 #define ID_PAGENUM_HELPER   12
00045 #define ID_PAGENUM_MACRO    13  //Oct. 25, 2000 JEPRO 10→11 に変更
00046 #define ID_PAGENUM_FILENAME 14  // Moca 追加
00047
00048 /*-----------------------------------------------------------------------
00049 クラスの宣言
00050 -----------------------------------------------------------------------*/
00059 class SAKURA_CORE_API CPropCommon
00060 {
00061 public:
00062     /*
00063     ||  Constructors
00064     */
00065     CPropCommon();
00066     ~CPropCommon();
00067     //  Sep. 29, 2001 genta マクロクラスを渡すように;
00068 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00069     void Create( HINSTANCE, HWND, CImageListMgr*, CSMacroMgr* , CMenuDrawer* ); /* 初期化 */
00070
00071     /*
00072     ||  Attributes & Operations
00073     */
00074     int DoPropertySheet( int/*, int*/ );    /* プロパティシートの作成 */
00075
00076     // 2002.12.11 Moca 追加
00077     void InitData( void );
00078     void ApplyData( void );
00079
00080     //  Jun. 2, 2001 genta
00081     //  ここにあったEvent Handlerはprotectedエリアに移動した．
00082
00083     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00084     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00085     HWND            m_hwndThis;     /* このダイアログのハンドル */
00086     int             m_nPageNum;
00087     DLLSHAREDATA*   m_pShareData;
00088     int             m_nSettingType;
00089 //  int             m_nActiveItem;
00090
00091     //  Oct. 16, 2000 genta
00092     CImageListMgr*  m_pcIcons;  //  Image List
00093
00094     //  Oct. 2, 2001 genta 外部マクロ追加に伴う，対応部分の別クラス化
00095     //  Oct. 15, 2001 genta Lookupはダイアログボックス内で別インスタンスを作るように
00096     //  (検索対象として，設定用common領域を指すようにするため．)
00097     CFuncLookup         m_cLookup;
00098     CSMacroMgr*         m_pcSMacro;
00099
00100     CMenuDrawer*        m_pcMenuDrawer;
00101     /*
00102     || ダイアログデータ
00103     */
00104     SFilePath       m_szHelpFile;
00105     CommonSetting   m_Common;
00106     short           m_nKeyNameArrNum;               /* キー割り当て表の有効データ数 */
00107     KEYDATA         m_pKeyNameArr[100];             /* キー割り当て表 */
00108
00109     CKeyWordSetMgr  m_CKeyWordSetMgr;
00110     //2002/04/25 YAZAKI Types全体を保持する必要はない。
00111     //Types         m_Types[MAX_TYPES];
00112     // 2005.01.13 MIK セット数増加
00113     int             m_Types_nKeyWordSetIdx[MAX_TYPES][MAX_KEYWORDSET_PER_TYPE];
00114     //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00115     MacroRec        m_MacroTable[MAX_CUSTMACRO];
00116     TCHAR           m_szMACROFOLDER[_MAX_PATH];     /* マクロ用フォルダ */
00117
00119     int     m_nTransformFileNameArrNum;
00120     TCHAR   m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00121     TCHAR   m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00122
00123 protected:
00124     /*
00125     ||  実装ヘルパ関数
00126     */
00127     void OnHelp( HWND, int );   /* ヘルプ */
00128     int SearchIntArr( int , int* , int );
00129 //  void DrawToolBarItemList( DRAWITEMSTRUCT* );    /* ツールバーボタンリストのアイテム描画 */
00130 //  void DrawColorButton( DRAWITEMSTRUCT* , COLORREF ); /* 色ボタンの描画 */ // 2002.11.09 Moca 未使用
00131     BOOL SelectColor( HWND , COLORREF* );   /* 色選択ダイアログ */
00132
00133     //  Jun. 2, 2001 genta
00134     //  Event Handler, Dialog Procedureの見直し
00135     //  Global関数だったDialog procedureをclassのstatic methodとして
00136     //  組み込んだ．
00137     //  ここから以下 Macroまで配置の見直しとstatic methodの追加
00138
00140     static INT_PTR DlgProc(
00141         INT_PTR (CPropCommon::*DispatchPage)( HWND, UINT, WPARAM, LPARAM ),
00142         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00143
00144     //==============================================================
00146     static INT_PTR CALLBACK DlgProc_PROP_GENERAL(
00147         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00148     INT_PTR DispatchEvent_p1( HWND, UINT, WPARAM, LPARAM );
00149     void SetData_p1( HWND );    /* ダイアログデータの設定 p1 */
00150     int  GetData_p1( HWND );    /* ダイアログデータの取得 p1 */
00151
00152     //==============================================================
00154     static INT_PTR CALLBACK DlgProc_PROP_FILE(
00155         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00157     INT_PTR DispatchEvent_p2( HWND, UINT, WPARAM, LPARAM );
00158     void SetData_p2( HWND );    /* ダイアログデータの設定 p2 */
00159     int  GetData_p2( HWND );    /* ダイアログデータの取得 p2 */
00160
00161     //==============================================================
00163     static INT_PTR CALLBACK DlgProc_PROP_KEYBIND(
00164         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00166     INT_PTR DispatchEvent_p5( HWND, UINT, WPARAM, LPARAM );
00167     void SetData_p5( HWND );    /* ダイアログデータの設定 p5 */
00168     int  GetData_p5( HWND );    /* ダイアログデータの取得 p5 */
00169     void p5_ChangeKeyList( HWND ); /* p5: キーリストをチェックボックスの状態に合わせて更新する*/
00170     void p5_Import_KeySetting( HWND );  /* p5:キー割り当て設定をインポートする */
00171     void p5_Export_KeySetting( HWND );  /* p5:キー割り当て設定をエクスポートする */
00172
00173     //==============================================================
00175     // 20050809 aroka _p6から_PROP_TOOLBARに名前変更
00176     static INT_PTR CALLBACK DlgProc_PROP_TOOLBAR(
00177         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00179     INT_PTR DispatchEvent_PROP_TOOLBAR( HWND, UINT, WPARAM, LPARAM );
00180     void SetData_PROP_TOOLBAR( HWND );  /* ツールバー ダイアログデータの設定 */
00181     int  GetData_PROP_TOOLBAR( HWND );  /* ツールバー ダイアログデータの取得 */
00182     void DrawToolBarItemList( DRAWITEMSTRUCT* );    /* ツールバーボタンリストのアイテム描画 */
00183
00184     //==============================================================
00186     static INT_PTR CALLBACK DlgProc_PROP_KEYWORD(
00187         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00189     INT_PTR DispatchEvent_p7( HWND, UINT, WPARAM, LPARAM );
00190     void SetData_p7( HWND );    /* ダイアログデータの設定 p7 */
00191     void SetData_p7_KeyWordSet( HWND , int );   /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00192     int  GetData_p7( HWND );    /* ダイアログデータの取得 p7 */
00193     void GetData_p7_KeyWordSet( HWND , int );   /* ダイアログデータの取得 p7 指定キーワードセットの取得 */
00194     void DispKeywordCount( HWND hwndDlg );
00195
00196     //==============================================================
00198     static INT_PTR CALLBACK DlgProc_PROP_CUSTMENU(
00199         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00201     INT_PTR DispatchEvent_p8( HWND, UINT, WPARAM, LPARAM );
00202     void SetData_p8( HWND );    /* ダイアログデータの設定 p8 */
00203     int  GetData_p8( HWND );    /* ダイアログデータの取得 p8 */
00204
00205     //==============================================================
00207     static INT_PTR CALLBACK DlgProc_PROP_FORMAT(
00208         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00210     INT_PTR DispatchEvent_p9( HWND, UINT, WPARAM, LPARAM );
00211     void SetData_p9( HWND );    /* ダイアログデータの設定 p9 */
00212     int  GetData_p9( HWND );    /* ダイアログデータの取得 p9 */
00213     void ChangeDateExample( HWND hwndDlg );
00214     void ChangeTimeExample( HWND hwndDlg );
00215
00216     //==============================================================
00218     static INT_PTR CALLBACK DlgProc_PROP_HELPER(
00219         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00221     INT_PTR DispatchEvent_p10( HWND, UINT, WPARAM, LPARAM );
00222     void SetData_p10( HWND );
00223     int  GetData_p10( HWND );
00224
00225     //==============================================================
00227     static INT_PTR CALLBACK DlgProc_PROP_BACKUP(
00228         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00230     INT_PTR DispatchEvent_PROP_BACKUP( HWND, UINT, WPARAM, LPARAM );
00231     void SetData_PROP_BACKUP( HWND );
00232     int GetData_PROP_BACKUP( HWND );
00233
00234     //==============================================================
00236     static INT_PTR CALLBACK DlgProc_PROP_WIN(
00237         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00239     INT_PTR DispatchEvent_PROP_WIN( HWND, UINT, WPARAM, LPARAM );
00240     void SetData_PROP_WIN( HWND );
00241     int GetData_PROP_WIN( HWND );
00242
00243     //==============================================================
00245     static INT_PTR CALLBACK DlgProc_PROP_TAB(
00246         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00248     INT_PTR DispatchEvent_PROP_TAB( HWND, UINT, WPARAM, LPARAM );
00249     void SetData_PROP_TAB( HWND );
00250     int GetData_PROP_TAB( HWND );
00251     void EnableTabPropInput(HWND hwndDlg);
00252
00253     //==============================================================
00255     static INT_PTR CALLBACK DlgProc_PROP_EDIT(
00256         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00258     INT_PTR DispatchEvent_PROP_EDIT( HWND, UINT, WPARAM, LPARAM );
00259     void SetData_PROP_EDIT( HWND );
00260     int GetData_PROP_EDIT( HWND );
00261
00262     //==============================================================
00264     static INT_PTR CALLBACK DlgProc_PROP_GREP(
00265         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00267     INT_PTR DispatchEvent_PROP_GREP( HWND, UINT, WPARAM, LPARAM );
00268     void SetData_PROP_GREP( HWND );
00269     int GetData_PROP_GREP( HWND );
00270     void SetRegexpVersion( HWND ); // 2007.08.12 genta バージョン表示
00271
00272     //  From Here Jun. 2, 2001 genta
00273     //==============================================================
00275     static INT_PTR CALLBACK DlgProc_PROP_MACRO(
00276         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00278     INT_PTR DispatchEvent_PROP_Macro( HWND, UINT, WPARAM, LPARAM );
00279     void SetData_PROP_Macro( HWND );
00280     int GetData_PROP_Macro( HWND );
00281     void InitDialog_PROP_Macro( HWND hwndDlg );
00282     //  To Here Jun. 2, 2001 genta
00283     void SetMacro2List_Macro( HWND hwndDlg );
00284     void SelectBaseDir_Macro( HWND hwndDlg );
00285     void OnFileDropdown_Macro( HWND hwndDlg );
00286     void CheckListPosition_Macro( HWND hwndDlg );
00287     static int CALLBACK DirCallback_Macro( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData );
00288
00289     //==============================================================
00291     static INT_PTR CALLBACK DlgProc_PROP_FILENAME(
00292         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00294     INT_PTR DispatchEvent_PROP_FILENAME( HWND, UINT, WPARAM, LPARAM );
00295     void SetData_PROP_FILENAME( HWND );
00296     int  GetData_PROP_FILENAME( HWND );
00297     static int SetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR, bool );
00298     static void GetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR );
00299     static int MoveListViewItem_FILENAME( HWND hListView, int, int );
00300
00301
00302
00303     int nLastPos_Macro;
00304     int m_nLastPos_FILENAME;
00305
00306
00307     void p7_Edit_List_KeyWord( HWND, HWND );    /* p7:リスト中で選択されているキーワードを編集する */
00308     void p7_Delete_List_KeyWord( HWND , HWND ); /* p7:リスト中で選択されているキーワードを削除する */
00309     void p7_Import_List_KeyWord( HWND , HWND ); /* p7:リスト中のキーワードをインポートする */
00310     void p7_Export_List_KeyWord( HWND , HWND ); /* p7:リスト中のキーワードをエクスポートする */
00311     void p7_Clean_List_KeyWord( HWND , HWND );
00312
00313     void p8_Import_CustMenuSetting( HWND ); /* p8:カスタムメニュー設定をインポートする */
00314     void p8_Export_CustMenuSetting( HWND ); /* p8:カスタムメニュー設定をエクスポートする */
00315
00316     //  Aug. 16, 2000 genta
00317     void EnableBackupInput(HWND hwndDlg);   //  バックアップ設定のON/OFF
00318     //  20051107 aroka
00319     void UpdateBackupFile(HWND hwndDlg);    //  バックアップファイルの詳細設定
00320
00321     //  Aug. 21, 2000 genta
00322     void EnableFilePropInput(HWND hwndDlg); //  ファイル設定のON/OFF
00323     //  Sept. 9, 2000 JEPRO     次行を追加
00324     void EnableWinPropInput( HWND hwndDlg) ;    //  ウィンドウ設定のON/OFF
00325     //  Sept. 10, 2000 JEPRO    次行を追加
00326     void CPropCommon::EnableFormatPropInput( HWND hwndDlg );    //  書式設定のON/OFF
00327 };
00328
00329
00330
00332 #endif /* _CPROP1_H_ */
00333
00334
00335 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComTab.cpp

sakura_core

CPropComTab.cpp

共通設定ダイアログボックス、「タブバー」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "util/shell.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 の 22 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComTab.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00020
00021 #include "sakura.hh"
00022 static const DWORD p_helpids[] = {
00023     IDC_CHECK_DispTabWnd,           HIDC_CHECK_DispTabWnd,          //タブウインドウ表示   //@@@ 2003.05.31 MIK
00024     IDC_CHECK_SameTabWidth,         HIDC_CHECK_SameTabWidth,        //等幅    // 2006.08.06 ryoji
00025     IDC_CHECK_DispTabIcon,          HIDC_CHECK_DispTabIcon,         //アイコン表示    // 2006.08.06 ryoji
00026     IDC_CHECK_SortTabList,          HIDC_CHECK_SortTabList,         //タブ一覧ソート // 2006.08.06 ryoji
00027     IDC_CHECK_DispTabWndMultiWin,   HIDC_CHECK_DispTabWndMultiWin,  //タブウインドウ表示   //@@@ 2003.05.31 MIK
00028     IDC_TABWND_CAPTION,             HIDC_TABWND_CAPTION,            //タブウインドウキャプション   //@@@ 2003.06.15 MIK
00029     IDC_CHECK_RetainEmptyWindow,    HIDC_CHECK_RetainEmptyWindow,   //最後のファイルを閉じたとき(無題)文書を残す    // 2007.02.13 ryoji
00030     IDC_CHECK_CloseOneWin,          HIDC_CHECK_CloseOneWin,         //ウィンドウの閉じるボタンは現在のファイルのみ閉じる   // 2007.02.13 ryoji
00031     IDC_CHECK_ChgWndByWheel,        HIDC_CHECK_ChgWndByWheel,       //マウスホイールでウィンドウ切り替え 2007.04.03 ryoji
00032     0, 0
00033 };
00034
00035 //  From Here Jun. 2, 2001 genta
00042 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TAB(
00043     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00044 {
00045     return DlgProc( &CPropCommon::DispatchEvent_PROP_TAB, hwndDlg, uMsg, wParam, lParam );
00046 }
00047 //  To Here Jun. 2, 2001 genta
00048
00049 /* メッセージ処理 */
00050 INT_PTR CPropCommon::DispatchEvent_PROP_TAB( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00051 {
00052     NMHDR*      pNMHDR;
00053     NM_UPDOWN*  pMNUD;
00054     int         idCtrl;
00055
00056     switch( uMsg ){
00057
00058     case WM_INITDIALOG:
00059         /* ダイアログデータの設定 p1 */
00060         SetData_PROP_TAB( hwndDlg );
00061         // Modified by KEITA for WIN64 2003.9.6
00062 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00063
00064         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00065
00066         return TRUE;
00067     case WM_NOTIFY:
00068         idCtrl = (int)wParam;
00069         pNMHDR = (NMHDR*)lParam;
00070         pMNUD  = (NM_UPDOWN*)lParam;
00071 //      switch( idCtrl ){
00072 //      default:
00073             switch( pNMHDR->code ){
00074             case PSN_HELP:
00075                 OnHelp( hwndDlg, IDD_PROP_TAB );
00076                 return TRUE;
00077             case PSN_KILLACTIVE:
00078                 /* ダイアログデータの取得 p1 */
00079                 GetData_PROP_TAB( hwndDlg );
00080                 return TRUE;
00081 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00082             case PSN_SETACTIVE:
00083                 m_nPageNum = ID_PAGENUM_TAB;
00084                 return TRUE;
00085             }
00086 //          break;  /* default */
00087 //      }
00088         break;  /* WM_NOTIFY */
00089
00090     case WM_COMMAND:
00091         {
00092             WORD wNotifyCode = HIWORD(wParam);  /* 通知コード */
00093             WORD wID = LOWORD(wParam);  /* 項目ID､ コントロールID､ またはアクセラレータID */
00094             if( wNotifyCode == BN_CLICKED &&
00095                 (wID == IDC_CHECK_DispTabWnd || wID == IDC_CHECK_DispTabWndMultiWin ) ){
00096
00097                 EnableTabPropInput( hwndDlg );
00098             }
00099         }
00100         break;
00101 //@@@ 2001.02.04 Start by MIK: Popup Help
00102     case WM_HELP:
00103         {
00104             HELPINFO *p = (HELPINFO *)lParam;
00105             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00106         }
00107         return TRUE;
00108         /*NOTREACHED*/
00109         //break;
00110 //@@@ 2001.02.04 End
00111
00112 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00113     //Context Menu
00114     case WM_CONTEXTMENU:
00115         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00116         return TRUE;
00117 //@@@ 2001.12.22 End
00118
00119     }
00120     return FALSE;
00121 }
00122
00123
00124 /* ダイアログデータの設定 */
00125 void CPropCommon::SetData_PROP_TAB( HWND hwndDlg )
00126 {
00127
00128     //  Feb. 11, 2007 genta「ウィンドウ」シートより移動
00129     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWnd, m_Common.m_sTabBar.m_bDispTabWnd );    //@@@ 2003.05.31 MIK
00130     ::CheckDlgButton( hwndDlg, IDC_CHECK_SameTabWidth, m_Common.m_sTabBar.m_bSameTabWidth );    //@@@ 2006.01.28 ryoji
00131     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabIcon, m_Common.m_sTabBar.m_bDispTabIcon );  //@@@ 2006.01.28 ryoji
00132     ::CheckDlgButton( hwndDlg, IDC_CHECK_SortTabList, m_Common.m_sTabBar.m_bSortTabList );          //@@@ 2006.03.23 fon
00133     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWndMultiWin, ! m_Common.m_sTabBar.m_bDispTabWndMultiWin ); //@@@ 2003.05.31 MIK
00134     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION ), EM_LIMITTEXT, _countof( m_Common.m_sTabBar.m_szTabWndCaption ) - 1, (LPARAM)0 );
00135 	::DlgItem_SetText( hwndDlg, IDC_TABWND_CAPTION, m_Common.m_sTabBar.m_szTabWndCaption );
00136
00137     //  Feb. 11, 2007 genta 新規作成
00138     ::CheckDlgButton( hwndDlg, IDC_CHECK_RetainEmptyWindow, m_Common.m_sTabBar.m_bTab_RetainEmptyWin );
00139     ::CheckDlgButton( hwndDlg, IDC_CHECK_CloseOneWin, m_Common.m_sTabBar.m_bTab_CloseOneWin );
00140     ::CheckDlgButton( hwndDlg, IDC_CHECK_ChgWndByWheel, m_Common.m_sTabBar.m_bChgWndByWheel );  // 2007.04.03 ryoji
00141
00142     EnableTabPropInput(hwndDlg);
00143     return;
00144 }
00145
00146 /* ダイアログデータの取得 */
00147 int CPropCommon::GetData_PROP_TAB( HWND hwndDlg )
00148 {
00149     //  Feb. 11, 2007 genta「ウィンドウ」シートより移動
00150     m_Common.m_sTabBar.m_bDispTabWnd = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWnd );
00151     m_Common.m_sTabBar.m_bSameTabWidth = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SameTabWidth );       // 2006.01.28 ryoji
00152     m_Common.m_sTabBar.m_bDispTabIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabIcon );     // 2006.01.28 ryoji
00153     m_Common.m_sTabBar.m_bSortTabList = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SortTabList );     // 2006.03.23 fon
00154     m_Common.m_sTabBar.m_bDispTabWndMultiWin =
00155         ( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWndMultiWin ) == BST_CHECKED ) ? FALSE : TRUE;
00156 	::DlgItem_GetText( hwndDlg, IDC_TABWND_CAPTION, m_Common.m_sTabBar.m_szTabWndCaption, _countof( m_Common.m_sTabBar.m_szTabWndCaption ) );
00157
00158     //  Feb. 11, 2007 genta 新規作成
00159     m_Common.m_sTabBar.m_bTab_RetainEmptyWin = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RetainEmptyWindow );
00160     m_Common.m_sTabBar.m_bTab_CloseOneWin = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CloseOneWin );
00161     m_Common.m_sTabBar.m_bChgWndByWheel = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ChgWndByWheel ); // 2007.04.03 ryoji
00162
00163     return TRUE;
00164 }
00165
00170 void CPropCommon::EnableTabPropInput(HWND hwndDlg)
00171 {
00172     if( !::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWnd ) )
00173     {
00174         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SameTabWidth       ), FALSE );
00175         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabIcon        ), FALSE );
00176         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SortTabList        ), FALSE );
00177         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION           ), FALSE );
00178         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabWndMultiWin ), FALSE );
00179         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow  ), FALSE );
00180         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin        ), FALSE );
00181         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_ChgWndByWheel      ), FALSE ); // 2007.04.03 ryoji
00182     }
00183     else
00184     {
00185         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SameTabWidth       ), TRUE );
00186         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabIcon        ), TRUE );
00187         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SortTabList        ), TRUE );
00188         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION           ), TRUE );
00189         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabWndMultiWin ), TRUE );
00190         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_ChgWndByWheel      ), TRUE );  // 2007.04.03 ryoji
00191         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWndMultiWin ) )
00192         {
00193             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow ), TRUE );
00194             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin       ), TRUE );
00195         }
00196         else {
00197             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow ), FALSE );
00198             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin       ), FALSE );
00199         }
00200     }
00201 }
00202 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComToolbar.cpp

sakura_core

CPropComToolbar.cpp

共通設定ダイアログボックス、「ツールバー」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "CMenuDrawer.h"
#include "CImageListMgr.h"
#include "debug.h"
#include "util/shell.h"
#include "sakura.hh"

CPropComToolbar.cppのインクルード依存関係図

ソースコードを見る。

関数

int | Listbox_INSERTDATA (HWND hWnd, int index, int value)
int | Listbox_ADDDATA (HWND hWnd, int value)

変数

static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「ツールバー」ページ

作者:
Norio Nakatani

CPropComToolbar.cpp で定義されています。

関数

int Listbox_ADDDATA | ( | HWND | hWnd,
 |  | 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

CPropComToolbar.cpp の 131 行で定義されています。

参照元 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 行で定義されています。

参照元 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 の 29 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComToolbar.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00024
00025
00026 //@@@ 2001.02.04 Start by MIK: Popup Help
00027 #if 1   //@@@ 2002.01.03 add MIK
00028 #include "sakura.hh"
00029 static const DWORD p_helpids[] = {  //11000
00030     IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE_TOOLBAR,             //ツールバーから機能削除
00031     IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR,    //セパレータ挿入
00032     IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT_TOOLBAR,             //ツールバーへ機能挿入
00033     IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD_TOOLBAR,                //ツールバーへ機能追加
00034     IDC_BUTTON_UP,                  HIDC_BUTTON_UP_TOOLBAR,                 //ツールバーの機能を上へ移動
00035     IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN_TOOLBAR,               //ツールバーの機能を下へ移動
00036     IDC_CHECK_TOOLBARISFLAT,        HIDC_CHECK_TOOLBARISFLAT,               //フラットなボタン
00037     IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND_TOOLBAR,            //機能の種別
00038     IDC_LIST_FUNC,                  HIDC_LIST_FUNC_TOOLBAR,                 //機能一覧
00039     IDC_LIST_RES,                   HIDC_LIST_RES_TOOLBAR,                  //ツールバー一覧
00040     IDC_BUTTON_INSERTWRAP,          HIDC_BUTTON_INSERTWRAP,                 //ツールバー折返 // 2006.08.06 ryoji
00041     IDC_LABEL_MENUFUNCKIND,         -1,
00042     IDC_LABEL_MENUFUNC,             -1,
00043     IDC_LABEL_TOOLBAR,              -1,
00044 //  IDC_STATIC,                     -1,
00045     0, 0
00046 };
00047 #else
00048 static const DWORD p_helpids[] = {  //11000
00049     IDC_BUTTON_DELETE,              11000,  //ツールバーから機能削除
00050     IDC_BUTTON_INSERTSEPARATOR,     11001,  //セパレータ挿入
00051     IDC_BUTTON_INSERT,              11002,  //ツールバーへ機能挿入
00052     IDC_BUTTON_ADD,                 11003,  //ツールバーへ機能追加
00053     IDC_BUTTON_UP,                  11004,  //ツールバーの機能を上へ移動
00054     IDC_BUTTON_DOWN,                11005,  //ツールバーの機能を下へ移動
00055     IDC_CHECK_TOOLBARISFLAT,        11010,  //フラットなボタン
00056     IDC_COMBO_FUNCKIND,             11030,  //機能の種別
00057     IDC_LIST_FUNC,                  11040,  //機能一覧
00058     IDC_LIST_RES,                   11041,  //ツールバー一覧
00059     IDC_LABEL_MENUFUNCKIND,         -1,
00060     IDC_LABEL_MENUFUNC,             -1,
00061     IDC_LABEL_TOOLBAR,              -1,
00062 //  IDC_STATIC,                     -1,
00063     0, 0
00064 };
00065 #endif
00066 //@@@ 2001.02.04 End
00067
00068 //  From Here Jun. 2, 2001 genta
00075 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TOOLBAR(
00076     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00077 {
00078     return DlgProc( &CPropCommon::DispatchEvent_PROP_TOOLBAR, hwndDlg, uMsg, wParam, lParam );
00079 }
00080 //  To Here Jun. 2, 2001 genta
00081
00082 //  From Here Apr. 13, 2002 genta
00097 int Listbox_INSERTDATA(
00098     HWND hWnd,
00099     int index,
00100     int value
00101 )
00102 {
00103     int nIndex1 = ::SendMessage( hWnd, LB_INSERTSTRING, index, 1 );
00104     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00105 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00106             _T("Toolbar Dialog: 要素の挿入に失敗しました。(%d:%d)"), index, nIndex1 );
00107         return nIndex1;
00108     }
00109     else if( ::SendMessageAny( hWnd, LB_SETITEMDATA, nIndex1, value ) == LB_ERR ){
00110 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00111             _T("Toolbar Dialog: INS: 値の設定に失敗しました。:%d"), nIndex1 );
00112         return LB_ERR;
00113     }
00114     return nIndex1;
00115 }
00116
00117 //  From Here Apr. 13, 2002 genta
00132 int Listbox_ADDDATA(
00133     HWND hWnd,
00134     int value
00135 )
00136 {
00137     int nIndex1 = ::SendMessage( hWnd, LB_ADDSTRING, 0, 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)"), nIndex1 );
00141         return nIndex1;
00142     }
00143     else if( ::SendMessageAny( 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 		::SendMessageCmd( 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_A( "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                 nIndex2 = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
00257
00258 				::SendMessageAny( hwndFuncList, LB_RESETCONTENT, 0, 0 );
00259
00260                 /* 機能一覧に文字列をセット (リストボックス) */
00261                 //  From Here Oct. 15, 2001 genta Lookupを使うように変更
00262                 nNum = m_cLookup.GetItemCount( nIndex2 );
00263                 for( i = 0; i < nNum; ++i ){
00264                     nIndex1 = m_cLookup.Pos2FuncCode( nIndex2, i );
00265                     int nIndex = m_pcMenuDrawer->FindIndexFromCommandId( nIndex1 );
00266
00267                     if( nIndex >= 0 ){
00268                         /* ツールバーボタンの情報をセット (リストボックス) */
00269                         lResult = ::Listbox_ADDDATA( hwndFuncList, (LPARAM)nIndex );
00270                         if( lResult == LB_ERR || lResult == LB_ERRSPACE ){
00271                             break;
00272                         }
00273                         lResult = ::SendMessageAny( hwndFuncList, LB_SETITEMHEIGHT , lResult, (LPARAM)MAKELPARAM(nListItemHeight, 0) );
00274                     }
00275
00276                 }
00277                 return TRUE;
00278             }
00279         }else{
00280             switch( wNotifyCode ){
00281             /* ボタン／チェックボックスがクリックされた */
00282             case BN_CLICKED:
00283                 switch( wID ){
00284                 case IDC_BUTTON_INSERTSEPARATOR:
00285                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00286                     if( LB_ERR == nIndex1 ){
00287 //                      break;
00288                         nIndex1 = 0;
00289                     }
00290                     //  From Here Apr. 13, 2002 genta
00291                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, 0 );
00292                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00293                         break;
00294                     }
00295                     //  To Here Apr. 13, 2002 genta
00296 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00297                     break;
00298
00299 // 2005/8/9 aroka 折返ボタンが押されたら、右のリストに「ツールバー折返」を追加する。
00300                 case IDC_BUTTON_INSERTWRAP:
00301                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00302                     if( LB_ERR == nIndex1 ){
00303 //                      break;
00304                         nIndex1 = 0;
00305                     }
00306                     //  From Here Apr. 13, 2002 genta
00307                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, MAX_TOOLBARBUTTONS );
00308                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00309                         break;
00310                     }
00311                     //  To Here Apr. 13, 2002 genta
00312 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00313                     break;
00314
00315                 case IDC_BUTTON_DELETE:
00316                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00317                     if( LB_ERR == nIndex1 ){
00318                         break;
00319                     }
00320                     i = ::SendMessageAny( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00321                     if( i == LB_ERR ){
00322                         break;
00323                     }
00324                     if( nIndex1 >= i ){
00325                         if( i == 0 ){
00326                             i = ::SendMessageAny( hwndResList, LB_SETCURSEL, 0, 0 );
00327                         }else{
00328                             i = ::SendMessageAny( hwndResList, LB_SETCURSEL, i - 1, 0 );
00329                         }
00330                     }else{
00331                         i = ::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00332                     }
00333                     break;
00334
00335                 case IDC_BUTTON_INSERT:
00336                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00337                     if( LB_ERR == nIndex1 ){
00338 //                      break;
00339                         nIndex1 = 0;
00340                     }
00341                     nIndex2 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00342                     if( LB_ERR == nIndex2 ){
00343                         break;
00344                     }
00345                     i = ::SendMessageAny( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
00346                     //  From Here Apr. 13, 2002 genta
00347                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
00348                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00349                         break;
00350                     }
00351                     //  To Here Apr. 13, 2002 genta
00352 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1 + 1, 0 );
00353                     break;
00354
00355
00356                 case IDC_BUTTON_ADD:
00357                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCOUNT, 0, 0 );
00358                     nIndex2 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00359                     if( LB_ERR == nIndex2 ){
00360                         break;
00361                     }
00362                     i = ::SendMessageAny( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
00363                     //  From Here Apr. 13, 2002 genta
00364                     //  ここでは i != 0 だとは思うけど、一応保険です。
00365                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
00366                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00367 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00368                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00369                         break;
00370                     }
00371                     //  To Here Apr. 13, 2002 genta
00372 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00373                     break;
00374
00375                 case IDC_BUTTON_UP:
00376                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00377                     if( LB_ERR == nIndex1 || 0 >= nIndex1 ){
00378                         break;
00379                     }
00380                     i = ::SendMessageAny( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
00381
00382                     j = ::SendMessageAny( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00383                     if( j == LB_ERR ){
00384                         break;
00385                     }
00386                     //  From Here Apr. 13, 2002 genta
00387                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 - 1, i );
00388                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00389 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00390                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00391                         break;
00392                     }
00393                     //  To Here Apr. 13, 2002 genta
00394 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00395                     break;
00396
00397                 case IDC_BUTTON_DOWN:
00398                     i = ::SendMessageAny( hwndResList, LB_GETCOUNT, 0, 0 );
00399                     nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00400                     if( LB_ERR == nIndex1 || nIndex1 + 1 >= i ){
00401                         break;
00402                     }
00403                     i = ::SendMessageAny( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
00404
00405                     j = ::SendMessageAny( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00406                     if( j == LB_ERR ){
00407                         break;
00408                     }
00409                     //  From Here Apr. 13, 2002 genta
00410                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 + 1, i );
00411                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00412 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00413                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00414                         break;
00415                     }
00416 					::SendMessageAny( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00417                     //  To Here Apr. 13, 2002 genta
00418                     break;
00419                 }
00420
00421                 break;
00422             }
00423         }
00424         break;
00425
00426     case WM_TIMER:
00427         nIndex1 = ::SendMessageAny( hwndResList, LB_GETCURSEL, 0, 0 );
00428         nIndex2 = ::SendMessageAny( hwndFuncList, LB_GETCURSEL, 0, 0 );
00429         i = ::SendMessageAny( hwndResList, LB_GETCOUNT, 0, 0 );
00430         if( LB_ERR == nIndex1 ){
00431             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), FALSE );
00432             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00433             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00434         }else{
00435             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), TRUE );
00436             if( nIndex1 <= 0 ){
00437                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00438             }else{
00439                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), TRUE );
00440             }
00441             if( nIndex1 + 1 >= i ){
00442                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00443             }else{
00444                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), TRUE );
00445             }
00446         }
00447         if( LB_ERR == nIndex1 || LB_ERR == nIndex2 ){
00448             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00449         }else{
00450             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), TRUE );
00451         }
00452         if( LB_ERR == nIndex2 ){
00453             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00454         }else{
00455             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), TRUE );
00456         }
00457         break;
00458
00459     case WM_DESTROY:
00460         ::KillTimer( hwndDlg, 1 );
00461         break;
00462
00463 //@@@ 2001.02.04 Start by MIK: Popup Help
00464     case WM_HELP:
00465         {
00466             HELPINFO *p = (HELPINFO *)lParam;
00467             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00468         }
00469         return TRUE;
00470         /*NOTREACHED*/
00471         //break;
00472 //@@@ 2001.02.04 End
00473
00474 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00475     //Context Menu
00476     case WM_CONTEXTMENU:
00477         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00478         return TRUE;
00479 //@@@ 2001.12.22 End
00480
00481     }
00482     return FALSE;
00483 }
00484
00485
00486
00487
00488 /* ダイアログデータの設定 PROP_TOOLBAR */
00489 void CPropCommon::SetData_PROP_TOOLBAR( HWND hwndDlg )
00490 {
00491     HWND        hwndCombo;
00492     HWND        hwndResList;
00493     HDC         hdc;
00494     int         i;
00495     int         nListItemHeight;
00496     LRESULT     lResult;
00497     TEXTMETRIC  tm;
00498
00499     /* 機能種別一覧に文字列をセット(コンボボックス) */
00500     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00501     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 15, 2001 genta
00502
00503     /* 種別の先頭の項目を選択(コンボボックス) */
00504 	::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00505 	::PostMessageCmd( hwndCombo, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
00506
00507     /* コントロールのハンドルを取得 */
00508     hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00509
00510     hdc = ::GetDC( hwndDlg );
00511     ::GetTextMetrics( hdc, &tm );
00512     ::ReleaseDC( hwndDlg, hdc );
00513
00514     nListItemHeight = 18; //Oct. 18, 2000 JEPRO 「ツールバー」タブでのツールバーアイテムの行間を少し狭くして表示行数を増やした(20→18 これ以上小さくしても効果はないようだ)
00515     if( nListItemHeight < tm.tmHeight ){
00516         nListItemHeight = tm.tmHeight;
00517     }
00518 //  nListItemHeight+=2;
00519
00520     /* ツールバーボタンの情報をセット(リストボックス)*/
00521     for( i = 0; i < m_Common.m_sToolBar.m_nToolBarButtonNum; ++i ){
00522         //  From Here Apr. 13, 2002 genta
00523         lResult = ::Listbox_ADDDATA( hwndResList, (LPARAM)m_Common.m_sToolBar.m_nToolBarButtonIdxArr[i] );
00524         if( lResult == LB_ERR || lResult == LB_ERRSPACE ){
00525             break;
00526         }
00527         //  To Here Apr. 13, 2002 genta
00528         lResult = ::SendMessageAny( hwndResList, LB_SETITEMHEIGHT , lResult, (LPARAM)MAKELPARAM(nListItemHeight, 0) );
00529     }
00530 //  /* ツールバーの先頭の項目を選択(リストボックス)*/
00531 	::SendMessageAny( hwndResList, LB_SETCURSEL, 0, 0 );   //Oct. 14, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00532
00533     /* フラットツールバーにする／しない  */
00534     ::CheckDlgButton( hwndDlg, IDC_CHECK_TOOLBARISFLAT, m_Common.m_sToolBar.m_bToolBarIsFlat );
00535     return;
00536 }
00537
00538
00539
00540 /* ダイアログデータの取得 PROP_TOOLBAR */
00541 int CPropCommon::GetData_PROP_TOOLBAR( HWND hwndDlg )
00542 {
00543     HWND    hwndResList;
00544     int     i;
00545     int     j;
00546     int     k;
00547
00548 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00549 //  m_nPageNum = ID_PAGENUM_TOOLBAR;
00550
00551
00552     hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00553
00554     /* ツールバーボタンの数 */
00555     m_Common.m_sToolBar.m_nToolBarButtonNum = ::SendMessageAny( hwndResList, LB_GETCOUNT, 0, 0 );
00556
00557     /* ツールバーボタンの情報を取得 */
00558     k = 0;
00559     for( i = 0; i < m_Common.m_sToolBar.m_nToolBarButtonNum; ++i ){
00560         j = ::SendMessageAny( hwndResList, LB_GETITEMDATA, i, 0 );
00561         if( LB_ERR != j ){
00562             m_Common.m_sToolBar.m_nToolBarButtonIdxArr[k] = j;
00563             k++;
00564         }
00565     }
00566     m_Common.m_sToolBar.m_nToolBarButtonNum = k;
00567
00568     /* フラットツールバーにする／しない  */
00569     m_Common.m_sToolBar.m_bToolBarIsFlat = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TOOLBARISFLAT );
00570
00571     return TRUE;
00572 }
00573
00574 /* ツールバーボタンリストのアイテム描画
00575     @date 2003.08.27 Moca システムカラーのブラシはCreateSolidBrushをやめGetSysColorBrushに
00576     @date 2005.08.09 aroka CPropCommon.cpp から移動
00577 */
00578 void CPropCommon::DrawToolBarItemList( DRAWITEMSTRUCT* pDis )
00579 {
00580     TBBUTTON    tbb;
00581     HBRUSH      hBrush;
00582     RECT        rc;
00583     RECT        rc0;
00584     RECT        rc1;
00585     RECT        rc2;
00586
00587
00588 //  hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
00589     hBrush = ::GetSysColorBrush( COLOR_WINDOW );
00590     ::FillRect( pDis->hDC, &pDis->rcItem, hBrush );
00591 //  ::DeleteObject( hBrush );
00592
00593     rc  = pDis->rcItem;
00594     rc0 = pDis->rcItem;
00595     rc0.left += 18;//20 //Oct. 18, 2000 JEPRO 行先頭のアイコンとそれに続くキャプションとの間を少し詰めた(20→18)
00596     rc1 = rc0;
00597     rc2 = rc0;
00598
00599     if( (int)pDis->itemID < 0 ){
00600     }else{
00601
00602 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00603 //      tbb = m_cShareData.m_tbMyButton[pDis->itemData];
00604 //      tbb = m_pcMenuDrawer->m_tbMyButton[pDis->itemData];
00605         tbb = m_pcMenuDrawer->getButton(pDis->itemData);
00606
00607         if( (0 != tbb.idCommand) && (F_MENU_NOT_USED_FIRST > tbb.idCommand) ){
00608             /* ビットマップの表示 灰色を透明描画 */
00609             m_pcIcons->Draw( tbb.iBitmap, pDis->hDC, rc.left + 2, rc.top + 2, ILD_NORMAL );
00610         }
00611
00612         WCHAR   szLabel[256];
00613         if( 0 == tbb.idCommand ){
00614             auto_strcpy( szLabel, LTEXT("───────────") ); // nLength 未使用 2003/01/09 Moca
00615         //  From Here Oct. 15, 2001 genta
00616         }else if( !m_cLookup.Funccode2Name( tbb.idCommand, szLabel, _countof( szLabel ) )){
00617             auto_sprintf( szLabel, LTEXT("%ls"), LTEXT("-- UNKNOWN --") );
00618         }
00619         //  To Here Oct. 15, 2001 genta
00620
00621         /* アイテムが選択されている */
00622         if( pDis->itemState & ODS_SELECTED ){
00623 //          hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_HIGHLIGHT ) );
00624             hBrush = ::GetSysColorBrush( COLOR_HIGHLIGHT );
00625             ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );
00626         }else{
00627 //          hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
00628             hBrush = ::GetSysColorBrush( COLOR_WINDOW );
00629             ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
00630         }
00631         rc1.left++;
00632         rc1.top++;
00633         rc1.right--;
00634         rc1.bottom--;
00635         ::FillRect( pDis->hDC, &rc1, hBrush );
00636 //      ::DeleteObject( hBrush );
00637
00638         ::SetBkMode( pDis->hDC, TRANSPARENT );
00639         TextOutW_AnyBuild( pDis->hDC, rc1.left + 4, rc1.top + 2, szLabel, wcslen( szLabel ) );
00640
00641     }
00642
00643     /* アイテムにフォーカスがある */
00644     if( pDis->itemState & ODS_FOCUS ){
00645         ::DrawFocusRect( pDis->hDC, &rc2 );
00646     }
00647     return;
00648 }
00649
00650
00651 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComWin.cpp

sakura_core

CPropComWin.cpp

共通設定ダイアログボックス、「ウィンドウ」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "global.h"
#include "CDlgWinSize.h"
#include "util/shell.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 の 29 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropComWin.cpp ソースファイル

sakura_core

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 #include "util/shell.h"
00026
00027 //@@@ 2001.02.04 Start by MIK: Popup Help
00028 #include "sakura.hh"
00029 static const DWORD p_helpids[] = {  //11200
00030     IDC_CHECK_DispFUNCKEYWND,       HIDC_CHECK_DispFUNCKEYWND,      //ファンクションキー表示
00031     IDC_CHECK_DispSTATUSBAR,        HIDC_CHECK_DispSTATUSBAR,       //ステータスバー表示
00032     IDC_CHECK_DispTOOLBAR,          HIDC_CHECK_DispTOOLBAR,         //ツールバー表示
00033     IDC_CHECK_bScrollBarHorz,       HIDC_CHECK_bScrollBarHorz,      //水平スクロールバー
00034     IDC_CHECK_bMenuIcon,            HIDC_CHECK_bMenuIcon,           //アイコン付きメニュー
00035     IDC_CHECK_SplitterWndVScroll,   HIDC_CHECK_SplitterWndVScroll,  //垂直スクロールの同期    //Jul. 05, 2001 JEPRO 追加
00036     IDC_CHECK_SplitterWndHScroll,   HIDC_CHECK_SplitterWndHScroll,  //水平スクロールの同期    //Jul. 05, 2001 JEPRO 追加
00037     IDC_EDIT_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,    //ルーラーの高さ
00038     IDC_EDIT_nRulerHeight,          HIDC_EDIT_nRulerHeight,         //ルーラーとテキストの間隔
00039     IDC_EDIT_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,    //行番号とテキストの隙間
00040     IDC_RADIO_FUNCKEYWND_PLACE1,    HIDC_RADIO_FUNCKEYWND_PLACE1,   //ファンクションキー表示位置
00041     IDC_RADIO_FUNCKEYWND_PLACE2,    HIDC_RADIO_FUNCKEYWND_PLACE2,   //ファンクションキー表示位置
00042     IDC_EDIT_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,  //ファンクションキーのグループボタン数
00043     IDC_SPIN_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,
00044     IDC_SPIN_nRulerHeight,          HIDC_EDIT_nRulerHeight,
00045     IDC_SPIN_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,
00046     IDC_SPIN_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,
00047     IDC_WINCAPTION_ACTIVE,          HIDC_WINCAPTION_ACTIVE,         //アクティブ時    //@@@ 2003.06.15 MIK
00048     IDC_WINCAPTION_INACTIVE,        HIDC_WINCAPTION_INACTIVE,       //非アクティブ時 //@@@ 2003.06.15 MIK
00049     IDC_BUTTON_WINSIZE,             HIDC_BUTTON_WINSIZE,            //位置と大きさの設定   // 2006.08.06 ryoji
00050     //  Feb. 11, 2007 genta TAB関連は「タブバー」シートへ移動
00051 //  IDC_STATIC,                     -1,
00052     0, 0
00053 };
00054 //@@@ 2001.02.04 End
00055
00056 //  From Here Jun. 2, 2001 genta
00063 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_WIN(
00064     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00065 {
00066     return DlgProc( &CPropCommon::DispatchEvent_PROP_WIN, hwndDlg, uMsg, wParam, lParam );
00067 }
00068 //  To Here Jun. 2, 2001 genta
00069
00070
00071 /* メッセージ処理 */
00072 INT_PTR CPropCommon::DispatchEvent_PROP_WIN(
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 //  WORD        wNotifyCode;
00080 //  WORD        wID;
00081 //  HWND        hwndCtl;
00082
00083 // From Here Sept. 9, 2000 JEPRO
00084     WORD        wNotifyCode;
00085     WORD        wID;
00086     HWND        hwndCtl;
00087 // To Here Sept. 9, 2000
00088
00089     NMHDR*      pNMHDR;
00090     NM_UPDOWN*  pMNUD;
00091     int         idCtrl;
00092 //  int         nVal;
00093     int         nVal;   //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
00094 //  LPDRAWITEMSTRUCT pDis;
00095
00096     switch( uMsg ){
00097
00098     case WM_INITDIALOG:
00099         /* ダイアログデータの設定 p1 */
00100         SetData_PROP_WIN( hwndDlg );
00101         // Modified by KEITA for WIN64 2003.9.6
00102 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00103
00104         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00105         /* ルーラー高さ */
00106         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_nRulerHeight ), EM_LIMITTEXT, (WPARAM)2, 0 );
00107         /* ルーラーとテキストの隙間 */
00108         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_nRulerBottomSpace ), EM_LIMITTEXT, (WPARAM)2, 0 );
00109
00110         return TRUE;
00111
00112     case WM_NOTIFY:
00113         idCtrl = (int)wParam;
00114         pNMHDR = (NMHDR*)lParam;
00115         pMNUD  = (NM_UPDOWN*)lParam;
00116         switch( idCtrl ){
00117         default:
00118             switch( pNMHDR->code ){
00119             case PSN_HELP:
00120                 OnHelp( hwndDlg, IDD_PROP_WIN );
00121                 return TRUE;
00122             case PSN_KILLACTIVE:
00123 //              MYTRACE_A( "p1 PSN_KILLACTIVE\n" );
00124                 /* ダイアログデータの取得 p1 */
00125                 GetData_PROP_WIN( hwndDlg );
00126                 return TRUE;
00127 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00128             case PSN_SETACTIVE:
00129                 m_nPageNum = ID_PAGENUM_WIN;
00130                 return TRUE;
00131             }
00132             break;
00133         case IDC_SPIN_nRulerHeight:
00134             /* ルーラ−の高さ */
00135             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, NULL, FALSE );
00136             if( pMNUD->iDelta < 0 ){
00137                 ++nVal;
00138             }else
00139             if( pMNUD->iDelta > 0 ){
00140                 --nVal;
00141             }
00142             if( nVal < IDC_SPIN_nRulerHeight_MIN ){
00143                 nVal = IDC_SPIN_nRulerHeight_MIN;
00144             }
00145             if( nVal > IDC_SPIN_nRulerHeight_MAX ){
00146                 nVal = IDC_SPIN_nRulerHeight_MAX;
00147             }
00148             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, nVal, FALSE );
00149             return TRUE;
00150         case IDC_SPIN_nRulerBottomSpace:
00151             /* ルーラーとテキストの隙間 */
00152             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, NULL, FALSE );
00153             if( pMNUD->iDelta < 0 ){
00154                 ++nVal;
00155             }else
00156             if( pMNUD->iDelta > 0 ){
00157                 --nVal;
00158             }
00159             if( nVal < 0 ){
00160                 nVal = 0;
00161             }
00162             if( nVal > 32 ){
00163                 nVal = 32;
00164             }
00165             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, nVal, FALSE );
00166             return TRUE;
00167         case IDC_SPIN_nLineNumberRightSpace:
00168             /* ルーラーとテキストの隙間 */
00169             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, NULL, FALSE );
00170             if( pMNUD->iDelta < 0 ){
00171                 ++nVal;
00172             }else
00173             if( pMNUD->iDelta > 0 ){
00174                 --nVal;
00175             }
00176             if( nVal < 0 ){
00177                 nVal = 0;
00178             }
00179             if( nVal > 32 ){
00180                 nVal = 32;
00181             }
00182             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, nVal, FALSE );
00183             return TRUE;
00184         case IDC_SPIN_FUNCKEYWND_GROUPNUM:
00185             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, NULL, FALSE );
00186             if( pMNUD->iDelta < 0 ){
00187                 ++nVal;
00188             }else
00189             if( pMNUD->iDelta > 0 ){
00190                 --nVal;
00191             }
00192             if( nVal < 1 ){
00193                 nVal = 1;
00194             }
00195             if( nVal > 12 ){
00196                 nVal = 12;
00197             }
00198             ::SetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, nVal, FALSE );
00199             return TRUE;
00200         }
00201         break;
00202 //****  To Here Sept. 21, 2000
00203 //  From Here Sept. 9, 2000 JEPRO
00204     case WM_COMMAND:
00205         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00206         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00207         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00208         switch( wNotifyCode ){
00209         /* ボタン／チェックボックスがクリックされた */
00210         case BN_CLICKED:
00211             switch( wID ){
00212             //  ファンクションキーを表示する時だけその位置指定をEnableに設定
00213             case IDC_CHECK_DispFUNCKEYWND:
00214                 EnableWinPropInput( hwndDlg );
00215                 break;
00216
00217             // From Here 2004.05.13 Moca 「位置と大きさの設定」ボタン
00218             //  ウィンドウ設定ダイアログにて起動時のウィンドウ状態指定
00219             case IDC_BUTTON_WINSIZE:
00220                 {
00221                     CDlgWinSize cDlgWinSize;
00222                     RECT rc;
00223                     rc.right  = m_Common.m_sWindow.m_nWinSizeCX;
00224                     rc.bottom = m_Common.m_sWindow.m_nWinSizeCY;
00225                     rc.top    = m_Common.m_sWindow.m_nWinPosX;
00226                     rc.left   = m_Common.m_sWindow.m_nWinPosY;
00227                     cDlgWinSize.DoModal( ::GetModuleHandle(NULL), hwndDlg,
00228                         m_Common.m_sWindow.m_nSaveWindowSize, m_Common.m_sWindow.m_nSaveWindowPos,
00229                         m_Common.m_sWindow.m_nWinSizeType, rc
00230                     );
00231                     m_Common.m_sWindow.m_nWinSizeCX = rc.right;
00232                     m_Common.m_sWindow.m_nWinSizeCY = rc.bottom;
00233                     m_Common.m_sWindow.m_nWinPosX = rc.top;
00234                     m_Common.m_sWindow.m_nWinPosY = rc.left;
00235                 }
00236                 break;
00237             // To Here 2004.05.13 Moca
00238             }
00239             break;
00240         }
00241         break;
00242 //  To Here Sept. 9, 2000
00243
00244 //@@@ 2001.02.04 Start by MIK: Popup Help
00245     case WM_HELP:
00246         {
00247             HELPINFO *p = (HELPINFO *)lParam;
00248             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00249         }
00250         return TRUE;
00251         /*NOTREACHED*/
00252         //break;
00253 //@@@ 2001.02.04 End
00254
00255 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00256     //Context Menu
00257     case WM_CONTEXTMENU:
00258         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00259         return TRUE;
00260 //@@@ 2001.12.22 End
00261
00262     }
00263     return FALSE;
00264 }
00265
00266 /* ダイアログデータの設定 */
00267 void CPropCommon::SetData_PROP_WIN( HWND hwndDlg )
00268 {
00269 //  BOOL    bRet;
00270
00271     /* 次回ウィンドウを開いたときツールバーを表示する */
00272     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTOOLBAR, m_Common.m_sWindow.m_bDispTOOLBAR );
00273
00274     /* 次回ウィンドウを開いたときファンクションキーを表示する */
00275     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispFUNCKEYWND, m_Common.m_sWindow.m_bDispFUNCKEYWND );
00276
00277     /* ファンクションキー表示位置／0:上 1:下 */
00278     if( 0 == m_Common.m_sWindow.m_nFUNCKEYWND_Place ){
00279         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, TRUE );
00280         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, FALSE );
00281     }else{
00282         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, FALSE );
00283         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, TRUE );
00284     }
00285     // 2002/11/04 Moca ファンクションキーのグループボタン数
00286     ::SetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum, FALSE );
00287
00288     //From Here@@@ 2003.06.13 MIK
00289     //  Feb. 12, 2007 genta TAB関連は「タブバー」シートへ移動
00290
00291     //To Here@@@ 2003.06.13 MIK
00292     //  Feb. 11, 2007 genta TAB関連は「タブバー」シートへ移動
00293
00294     /* 次回ウィンドウを開いたときステータスバーを表示する */
00295     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispSTATUSBAR, m_Common.m_sWindow.m_bDispSTATUSBAR );
00296
00297     /* ルーラー高さ */
00298     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, m_Common.m_sWindow.m_nRulerHeight, FALSE );
00299     /* ルーラーとテキストの隙間 */
00300     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, m_Common.m_sWindow.m_nRulerBottomSpace, FALSE );
00301     //  Sep. 18. 2002 genta 行番号とテキストの隙間
00302     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, m_Common.m_sWindow.m_nLineNumRightSpace, FALSE );
00303
00304     /* ルーラーのタイプ */
00305     if( 0 == m_Common.m_sWindow.m_nRulerType ){
00306         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, TRUE );
00307         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, FALSE );
00308     }else{
00309         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, FALSE );
00310         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, TRUE );
00311     }
00312
00313     /* 水平スクロールバー */
00314     ::CheckDlgButton( hwndDlg, IDC_CHECK_bScrollBarHorz, m_Common.m_sWindow.m_bScrollBarHorz );
00315
00316     /* アイコン付きメニュー */
00317     ::CheckDlgButton( hwndDlg, IDC_CHECK_bMenuIcon, m_Common.m_sWindow.m_bMenuIcon );
00318
00319     //  2001/06/20 Start by asa-o:  スクロールの同期
00320     ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndVScroll, m_Common.m_sWindow.m_bSplitterWndVScroll );
00321     ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndHScroll, m_Common.m_sWindow.m_bSplitterWndHScroll );
00322     //  2001/06/20 End
00323
00324     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00325     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_ACTIVE   ), EM_LIMITTEXT, _countof( m_Common.m_sWindow.m_szWindowCaptionActive   ) - 1, (LPARAM)0 );   //@@@ 2003.06.13 MIK
00326     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_INACTIVE ), EM_LIMITTEXT, _countof( m_Common.m_sWindow.m_szWindowCaptionInactive ) - 1, (LPARAM)0 );   //@@@ 2003.06.13 MIK
00327 	::DlgItem_SetText( hwndDlg, IDC_WINCAPTION_ACTIVE, m_Common.m_sWindow.m_szWindowCaptionActive );
00328 	::DlgItem_SetText( hwndDlg, IDC_WINCAPTION_INACTIVE, m_Common.m_sWindow.m_szWindowCaptionInactive );
00329
00330     //  Fronm Here Sept. 9, 2000 JEPRO
00331     //  ファンクションキーを表示する時だけその位置指定をEnableに設定
00332     EnableWinPropInput( hwndDlg );
00333     //  To Here Sept. 9, 2000
00334
00335     return;
00336 }
00337
00338
00339
00340
00341
00342 /* ダイアログデータの取得 */
00343 int CPropCommon::GetData_PROP_WIN( HWND hwndDlg )
00344 {
00345 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00346 //  m_nPageNum = ID_PAGENUM_WIN;
00347
00348     /* 次回ウィンドウを開いたときツールバーを表示する */
00349     m_Common.m_sWindow.m_bDispTOOLBAR = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTOOLBAR );
00350
00351     /* 次回ウィンドウを開いたときファンクションキーを表示する */
00352     m_Common.m_sWindow.m_bDispFUNCKEYWND = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispFUNCKEYWND );
00353
00354     /* ファンクションキー表示位置／0:上 1:下 */
00355     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ) ){
00356         m_Common.m_sWindow.m_nFUNCKEYWND_Place = 0;
00357     }
00358     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2) ){
00359         m_Common.m_sWindow.m_nFUNCKEYWND_Place = 1;
00360     }
00361
00362     // 2002/11/04 Moca ファンクションキーのグループボタン数
00363     m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum = ::GetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, NULL, FALSE );
00364     if( m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum < 1 ){
00365         m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum = 1;
00366     }
00367     if( m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum > 12 ){
00368         m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum = 12;
00369     }
00370
00371     //From Here@@@ 2003.06.13 MIK
00372     //  Feb. 12, 2007 genta TAB関連は「タブバー」シートへ移動
00373     //To Here@@@ 2003.06.13 MIK
00374
00375     /* 次回ウィンドウを開いたときステータスバーを表示する */
00376     m_Common.m_sWindow.m_bDispSTATUSBAR = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispSTATUSBAR );
00377
00378     /* ルーラーのタイプ */
00379     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_nRulerType_0 ) ){
00380         m_Common.m_sWindow.m_nRulerType = 0;
00381     }
00382     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_nRulerType_1 ) ){
00383         m_Common.m_sWindow.m_nRulerType = 1;
00384     }
00385
00386     /* ルーラー高さ */
00387     m_Common.m_sWindow.m_nRulerHeight = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, NULL, FALSE );
00388     if( m_Common.m_sWindow.m_nRulerHeight < IDC_SPIN_nRulerHeight_MIN ){
00389         m_Common.m_sWindow.m_nRulerHeight = IDC_SPIN_nRulerHeight_MIN;
00390     }
00391     if( m_Common.m_sWindow.m_nRulerHeight > IDC_SPIN_nRulerHeight_MAX ){
00392         m_Common.m_sWindow.m_nRulerHeight = IDC_SPIN_nRulerHeight_MAX;
00393     }
00394     /* ルーラーとテキストの隙間 */
00395     m_Common.m_sWindow.m_nRulerBottomSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, NULL, FALSE );
00396     if( m_Common.m_sWindow.m_nRulerBottomSpace < 0 ){
00397         m_Common.m_sWindow.m_nRulerBottomSpace = 0;
00398     }
00399     if( m_Common.m_sWindow.m_nRulerBottomSpace > 32 ){
00400         m_Common.m_sWindow.m_nRulerBottomSpace = 32;
00401     }
00402
00403     //  Sep. 18. 2002 genta 行番号とテキストの隙間
00404     m_Common.m_sWindow.m_nLineNumRightSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, NULL, FALSE );
00405     if( m_Common.m_sWindow.m_nLineNumRightSpace < 0 ){
00406         m_Common.m_sWindow.m_nLineNumRightSpace = 0;
00407     }
00408     if( m_Common.m_sWindow.m_nLineNumRightSpace > 32 ){
00409         m_Common.m_sWindow.m_nLineNumRightSpace = 32;
00410     }
00411
00412     /* 水平スクロールバー */
00413     m_Common.m_sWindow.m_bScrollBarHorz = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bScrollBarHorz );
00414
00415     /* アイコン付きメニュー */
00416     m_Common.m_sWindow.m_bMenuIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bMenuIcon );
00417
00418     //  2001/06/20 Start by asa-o:  スクロールの同期
00419     m_Common.m_sWindow.m_bSplitterWndVScroll = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SplitterWndVScroll );
00420     m_Common.m_sWindow.m_bSplitterWndHScroll = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SplitterWndHScroll );
00421     //  2001/06/20 End
00422
00423     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00424 	::DlgItem_GetText( hwndDlg, IDC_WINCAPTION_ACTIVE, m_Common.m_sWindow.m_szWindowCaptionActive,
00425         _countof( m_Common.m_sWindow.m_szWindowCaptionActive ) );
00426 	::DlgItem_GetText( hwndDlg, IDC_WINCAPTION_INACTIVE, m_Common.m_sWindow.m_szWindowCaptionInactive,
00427         _countof( m_Common.m_sWindow.m_szWindowCaptionInactive ) );
00428
00429     return TRUE;
00430 }
00431
00432
00433
00434
00435
00436 //  From Here Sept. 9, 2000 JEPRO
00437 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
00438 //  適切に設定する
00439 void CPropCommon::EnableWinPropInput( HWND hwndDlg )
00440 {
00441     //  ファクションキーを表示するかどうか
00442         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispFUNCKEYWND ) ){
00443         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_GROUP_FUNCKEYWND_POSITION ), TRUE );
00444         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ), TRUE );
00445         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2 ), TRUE );
00446     }else{
00447         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_GROUP_FUNCKEYWND_POSITION ), FALSE );
00448         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ), FALSE );
00449         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2 ), FALSE );
00450     }
00451 }
00452 //  To Here Sept. 9, 2000
00453
00454
00455 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypes.cpp

sakura_core

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 "global.h"
#include "CDataProfile.h"
#include "CShareData.h"
#include "funccode.h"
#include "CDlgSameColor.h"
#include "charcode.h"
#include "CEditApp.h"
#include "io/CTextStream.h"
#include "util/shell.h"
#include "util/file.h"
#include "util/module.h"
#include "sakura.hh"

ソースコードを見る。

構成

struct | TYPE_NAME

関数

wchar_t * | MakeRGBStr (DWORD dwRGB, wchar_t *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 []
TYPE_NAME SmartIndentArr []
TYPE_NAME ImeStateArr []
TYPE_NAME ImeSwitchArr []
TYPE_NAME IndentTypeArr []
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 で定義されています。

関数

LRESULT APIENTRY ColorList_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 1619 行で定義されています。

参照先 COLOR_ATTRIB_FORCE_DISP, COLOR_ATTRIB_NO_BACK, COLOR_ATTRIB_NO_BOLD, COLOR_ATTRIB_NO_UNDERLINE, COLORIDX_GYOU, FALSE, ColorAttributeData_t::fAttribute, g_ColorAttributeArr, IDC_BUTTON_BACKCOLOR, IDC_BUTTON_TEXTCOLOR, IDC_CHECK_FAT, IDC_CHECK_UNDERLINE, IDC_LIST_COLORS, ColorInfo::m_bDisp, ColorInfo::m_bFatFont, ColorInfo::m_bUnderLine, ColorInfo::m_colBACK, ColorInfo::m_colTEXT, m_wpColorListProc, NULL, CPropTypes::SelectColor(), SendMessageAny, SendMessageCmd, と TRUE.

参照元 CPropTypes::DispatchEvent_p3_new().

wchar_t* MakeRGBStr | ( | DWORD | dwRGB,
 |  | wchar_t * | pszText
 | ) |  |

CPropTypes.cpp の 111 行で定義されています。

参照先 auto_sprintf().

INT_PTR CALLBACK PropTypesP1Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 218 行で定義されています。

参照先 CPropTypes::DispatchEvent_p1(), DWLP_USER, FALSE, GetWindowLongPtr, と NULL.

参照元 CPropTypes::DoPropertySheet().

INT_PTR CALLBACK PropTypesP2Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CPropTypes.cpp の 248 行で定義されています。

参照先 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 の 284 行で定義されています。

参照先 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, L"標準設定" },
    { 1, L"全角" },
    { 2, L"全角ひらがな" },
    { 3, L"全角カタカナ" },
    { 4, L"無変換" }
}

CPropTypes.cpp の 70 行で定義されています。

TYPE_NAME ImeSwitchArr[]

初期値:

 {
    { 0, L"そのまま" },
    { 1, L"常にON" },
    { 2, L"常にOFF" },
}

CPropTypes.cpp の 78 行で定義されています。

TYPE_NAME IndentTypeArr[]

初期値:

 {
    { 0, L"なし" },
    { 1, L"tx2x" },
    { 2, L"論理行先頭" },
}
2行目以降のインデント方法

参照:
CLayoutMgr::SetLayoutInfo()
日付:
Oct. 1, 2002 genta

CPropTypes.cpp の 89 行で定義されています。

WNDPROC m_wpColorListProc

CPropTypes.cpp の 108 行で定義されています。

参照元 ColorList_SubclassProc(), と CPropTypes::DispatchEvent_p3_new().

int nCheckBoxID

CPropTypes.cpp の 100 行で定義されています。

int nEditID

CPropTypes.cpp の 99 行で定義されています。

int nTextID

CPropTypes.cpp の 101 行で定義されています。

TYPE_NAME OlmArr[]

初期値:

 {

    { OUTLINE_CPP,      L"C/C++" },
    { OUTLINE_PLSQL,    L"PL/SQL" },
    { OUTLINE_JAVA,     L"Java" },
    { OUTLINE_COBOL,    L"COBOL" },
    { OUTLINE_PERL,     L"Perl" },
    { OUTLINE_ASM,      L"アセンブラ" },
    { OUTLINE_VB,       L"Visual Basic" },
    { OUTLINE_PYTHON,   L"Python" },
    { OUTLINE_WZTXT,    L"WZ階層付テキスト" },
    { OUTLINE_HTML,     L"HTML" },
    { OUTLINE_TEX,      L"TeX" },
    { OUTLINE_TEXT,     L"テキスト" }
}

CPropTypes.cpp の 47 行で定義されています。

const DWORD p_helpids1[] [static]

CPropTypes.cpp の 124 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

const DWORD p_helpids2[] [static]

CPropTypes.cpp の 161 行で定義されています。

参照元 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 の 200 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

TYPE_NAME SmartIndentArr[]

初期値:

 {
    { SMARTINDENT_NONE, L"なし" },
    { SMARTINDENT_CPP,  L"C/C++" }
}

CPropTypes.cpp の 64 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypes.cpp ソースファイル

sakura_core

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 "global.h"
00030 #include "CDataProfile.h"
00031 #include "CShareData.h"
00032 #include "funccode.h"   //Stonee, 2001/05/18
00033 #include "CDlgSameColor.h"  // 2006.04.26 ryoji
00034 #include "charcode.h"
00035 #include "CEditApp.h"
00036 #include "io/CTextStream.h"
00037 #include "util/shell.h"
00038 #include "util/file.h"
00039 #include "util/module.h"
00040 using namespace std;
00041
00042 struct TYPE_NAME {
00043     int     nMethod;
00044     wchar_t*    pszName;
00045 };
00046
00047 TYPE_NAME OlmArr[] = {
00048 //  { OUTLINE_C,        L"C" },
00049     { OUTLINE_CPP,      L"C/C++" },
00050     { OUTLINE_PLSQL,    L"PL/SQL" },
00051     { OUTLINE_JAVA,     L"Java" },
00052     { OUTLINE_COBOL,    L"COBOL" },
00053     { OUTLINE_PERL,     L"Perl" },          //Sep. 8, 2000 genta
00054     { OUTLINE_ASM,      L"アセンブラ" },
00055     { OUTLINE_VB,       L"Visual Basic" },  // 2001/06/23 N.Nakatani
00056     { OUTLINE_PYTHON,   L"Python" },        //  2007.02.08 genta
00057     { OUTLINE_WZTXT,    L"WZ階層付テキスト" },   // 2003.05.20 zenryaku, 2003.06.23 Moca 名称変更
00058     { OUTLINE_HTML,     L"HTML" },          // 2003.05.20 zenryaku
00059     { OUTLINE_TEX,      L"TeX" },           // 2003.07.20 naoh
00060     { OUTLINE_TEXT,     L"テキスト" }       //Jul. 08, 2001 JEPRO 常に最後尾におく
00061 };
00062
00063
00064 TYPE_NAME SmartIndentArr[] = {
00065     { SMARTINDENT_NONE, L"なし" },
00066     { SMARTINDENT_CPP,  L"C/C++" }
00067 };
00068
00069 //  Nov. 20, 2000 genta
00070 TYPE_NAME ImeStateArr[] = {
00071     { 0, L"標準設定" },
00072     { 1, L"全角" },
00073     { 2, L"全角ひらがな" },
00074     { 3, L"全角カタカナ" },
00075     { 4, L"無変換" }
00076 };
00077
00078 TYPE_NAME ImeSwitchArr[] = {
00079     { 0, L"そのまま" },
00080     { 1, L"常にON" },
00081     { 2, L"常にOFF" },
00082 };
00083
00089 TYPE_NAME IndentTypeArr[] = {
00090     { 0, L"なし" },
00091     { 1, L"tx2x" },
00092     { 2, L"論理行先頭" },
00093 };
00094
00095
00096
00097 //  行コメントに関する情報
00098 struct {
00099     int nEditID;
00100     int nCheckBoxID;
00101     int nTextID;
00102 } const cLineComment[COMMENT_DELIMITER_NUM] = {
00103     { IDC_EDIT_LINECOMMENT  , IDC_CHECK_LCPOS , IDC_EDIT_LINECOMMENTPOS },
00104     { IDC_EDIT_LINECOMMENT2 , IDC_CHECK_LCPOS2, IDC_EDIT_LINECOMMENTPOS2},
00105     { IDC_EDIT_LINECOMMENT3 , IDC_CHECK_LCPOS3, IDC_EDIT_LINECOMMENTPOS3}
00106 };
00107
00108 WNDPROC m_wpColorListProc;
00109
00110
00111 wchar_t* MakeRGBStr( DWORD dwRGB, wchar_t* pszText )
00112 {
00113     auto_sprintf( pszText, L"RGB( %d, %d, %d )",
00114         GetRValue( dwRGB ),
00115         GetGValue( dwRGB ),
00116         GetBValue( dwRGB )
00117     );
00118     return pszText;
00119 }
00120
00121
00122 //@@@ 2001.02.04 Start by MIK: Popup Help
00123 #include "sakura.hh"
00124 static const DWORD p_helpids1[] = { //11300
00125     IDC_CHECK_WORDWRAP,             HIDC_CHECK_WORDWRAP,        //英文ワードラップ
00126     IDC_EDIT_TABSPACE,              HIDC_EDIT_TABSPACE,         //TAB幅 // Sep. 19, 2002 genta
00127     IDC_COMBO_IMESWITCH,            HIDC_COMBO_IMESWITCH,       //IMEのON/OFF状態
00128     IDC_COMBO_IMESTATE,             HIDC_COMBO_IMESTATE,        //IMEの入力モード
00129     IDC_COMBO_SMARTINDENT,          HIDC_COMBO_SMARTINDENT,     //スマートインデント
00130     IDC_COMBO_OUTLINES,             HIDC_COMBO_OUTLINES,        //アウトライン解析方法
00131     IDC_EDIT_TYPENAME,              HIDC_EDIT_TYPENAME,         //設定の名前
00132     IDC_EDIT_TYPEEXTS,              HIDC_EDIT_TYPEEXTS,         //ファイル拡張子
00133     IDC_EDIT_MAXLINELEN,            HIDC_EDIT_MAXLINELEN,       //折り返し桁数
00134     IDC_EDIT_CHARSPACE,             HIDC_EDIT_CHARSPACE,        //文字の間隔
00135     IDC_EDIT_LINESPACE,             HIDC_EDIT_LINESPACE,        //行の間隔
00136     IDC_EDIT_INDENTCHARS,           HIDC_EDIT_INDENTCHARS,      //その他のインデント対象文字
00137     IDC_EDIT_TABVIEWSTRING,         HIDC_EDIT_TABVIEWSTRING,    //TAB表示文字列
00138     IDC_CHECK_INS_SPACE,            HIDC_CHECK_INS_SPACE,       //スペースの挿入
00139     IDC_SPIN_MAXLINELEN,            HIDC_EDIT_MAXLINELEN,
00140     IDC_SPIN_CHARSPACE,             HIDC_EDIT_CHARSPACE,
00141     IDC_SPIN_LINESPACE,             HIDC_EDIT_LINESPACE,
00142     IDC_CHECK_KINSOKUHEAD,          HIDC_CHECK_KINSOKUHEAD,     //行頭禁則  //@@@ 2002.04.08 MIK
00143     IDC_CHECK_KINSOKUTAIL,          HIDC_CHECK_KINSOKUTAIL,     //行末禁則  //@@@ 2002.04.08 MIK
00144     IDC_CHECK_KINSOKURET,           HIDC_CHECK_KINSOKURET,      //改行文字をぶら下げる    //@@@ 2002.04.14 MIK
00145     IDC_CHECK_KINSOKUKUTO,          HIDC_CHECK_KINSOKUKUTO,     //句読点をぶら下げる   //@@@ 2002.04.17 MIK
00146     IDC_EDIT_KINSOKUHEAD,           HIDC_EDIT_KINSOKUHEAD,      //行頭禁則  //@@@ 2002.04.08 MIK
00147     IDC_EDIT_KINSOKUTAIL,           HIDC_EDIT_KINSOKUTAIL,      //行末禁則  //@@@ 2002.04.08 MIK
00148     IDC_CHECK_TAB_ARROW,            HIDC_CHECK_TAB_ARROW,       //矢印表示  // 2006.08.06 ryoji
00149     IDC_CHECK_INDENT,               HIDC_CHECK_INDENT,          //自動インデント // 2006.08.19 ryoji
00150     IDC_CHECK_INDENT_WSPACE,        HIDC_CHECK_INDENT_WSPACE,   //全角空白もインデント    // 2006.08.19 ryoji
00151     IDC_COMBO_INDENTLAYOUT,         HIDC_COMBO_INDENTLAYOUT,    //折り返し行インデント    // 2006.08.06 ryoji
00152     IDC_CHECK_RTRIM_PREVLINE,       HIDC_CHECK_RTRIM_PREVLINE,  //改行時に末尾の空白を削除  // 2006.08.06 ryoji
00153     IDC_RADIO_OUTLINEDEFAULT,       HIDC_RADIO_OUTLINEDEFAULT,  //標準ルール   // 2006.08.06 ryoji
00154     IDC_RADIO_OUTLINERULEFILE,      HIDC_RADIO_OUTLINERULEFILE, //ルールファイル // 2006.08.06 ryoji
00155     IDC_EDIT_OUTLINERULEFILE,       HIDC_EDIT_OUTLINERULEFILE,  //ルールファイル名  // 2006.08.06 ryoji
00156     IDC_BUTTON_RULEFILE_REF,        HIDC_BUTTON_RULEFILE_REF,   //ルールファイル参照   // 2006/09/09 novice
00157     IDC_CHECK_DOCICON,              HIDC_CHECK_DOCICON,         //文書アイコンを使う   // 2006.08.06 ryoji
00158 //  IDC_STATIC,                     -1,
00159     0, 0
00160 };
00161 static const DWORD p_helpids2[] = { //11400
00162     IDC_BUTTON_TEXTCOLOR,           HIDC_BUTTON_TEXTCOLOR,          //文字色
00163     IDC_BUTTON_BACKCOLOR,           HIDC_BUTTON_BACKCOLOR,          //背景色
00164     IDC_BUTTON_SAMETEXTCOLOR,       HIDC_BUTTON_SAMETEXTCOLOR,      //文字色統一
00165     IDC_BUTTON_SAMEBKCOLOR,         HIDC_BUTTON_SAMEBKCOLOR,        //背景色統一
00166     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_COLOR,       //インポート
00167     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_COLOR,       //エクスポート
00168     IDC_CHECK_DISP,                 HIDC_CHECK_DISP,                //色分け表示
00169     IDC_CHECK_FAT,                  HIDC_CHECK_FAT,                 //太字
00170     IDC_CHECK_UNDERLINE,            HIDC_CHECK_UNDERLINE,           //下線
00171     IDC_CHECK_LCPOS,                HIDC_CHECK_LCPOS,               //桁指定１
00172     IDC_CHECK_LCPOS2,               HIDC_CHECK_LCPOS2,              //桁指定２
00173     IDC_COMBO_SET,                  HIDC_COMBO_SET_COLOR,           //強調キーワード１セット名
00174     IDC_COMBO_SET2,                 HIDC_COMBO_SET2_COLOR,          //強調キーワード２セット名
00175     IDC_EDIT_BLOCKCOMMENT_FROM,     HIDC_EDIT_BLOCKCOMMENT_FROM,    //ブロックコメント１開始
00176     IDC_EDIT_BLOCKCOMMENT_TO,       HIDC_EDIT_BLOCKCOMMENT_TO,      //ブロックコメント１終了
00177     IDC_EDIT_LINECOMMENT,           HIDC_EDIT_LINECOMMENT,          //行コメント１
00178     IDC_EDIT_LINECOMMENT2,          HIDC_EDIT_LINECOMMENT2,         //行コメント２
00179     IDC_EDIT_LINECOMMENTPOS,        HIDC_EDIT_LINECOMMENTPOS,       //桁数１
00180     IDC_EDIT_LINECOMMENTPOS2,       HIDC_EDIT_LINECOMMENTPOS2,      //桁数２
00181     IDC_EDIT_LINETERMCHAR,          HIDC_EDIT_LINETERMCHAR,         //行番号区切り
00182     IDC_EDIT_BLOCKCOMMENT_FROM2,    HIDC_EDIT_BLOCKCOMMENT_FROM2,   //ブロックコメント２開始
00183     IDC_EDIT_BLOCKCOMMENT_TO2,      HIDC_EDIT_BLOCKCOMMENT_TO2,     //ブロックコメント２終了
00184     IDC_EDIT_LINECOMMENT3,          HIDC_EDIT_LINECOMMENT3,         //行コメント３
00185     IDC_LIST_COLORS,                HIDC_LIST_COLORS,               //色指定
00186     IDC_CHECK_LCPOS3,               HIDC_CHECK_LCPOS3,              //桁指定３
00187     IDC_EDIT_LINECOMMENTPOS3,       HIDC_EDIT_LINECOMMENTPOS3,      //桁数３
00188     IDC_RADIO_ESCAPETYPE_1,         HIDC_RADIO_ESCAPETYPE_1,        //文字列エスケープ（C言語風）
00189     IDC_RADIO_ESCAPETYPE_2,         HIDC_RADIO_ESCAPETYPE_2,        //文字列エスケープ（PL/SQL風）
00190     IDC_RADIO_LINENUM_LAYOUT,       HIDC_RADIO_LINENUM_LAYOUT,      //行番号の表示（折り返し単位）
00191     IDC_RADIO_LINENUM_CRLF,         HIDC_RADIO_LINENUM_CRLF,        //行番号の表示（改行単位）
00192     IDC_RADIO_LINETERMTYPE0,        HIDC_RADIO_LINETERMTYPE0,       //行番号区切り（なし）
00193     IDC_RADIO_LINETERMTYPE1,        HIDC_RADIO_LINETERMTYPE1,       //行番号区切り（縦線）
00194     IDC_RADIO_LINETERMTYPE2,        HIDC_RADIO_LINETERMTYPE2,       //行番号区切り（任意）
00195     IDC_BUTTON_KEYWORD_SELECT,      HIDC_BUTTON_KEYWORD_SELECT,     //強調キーワード2〜10   // 2006.08.06 ryoji
00196     IDC_EDIT_VERTLINE,              HIDC_EDIT_VERTLINE,             //縦線の桁指定    // 2006.08.06 ryoji
00197 //  IDC_STATIC,                     -1,
00198     0, 0
00199 };
00200 static const DWORD p_helpids3[] = { //11500
00201     IDC_BUTTON_HOKANFILE_REF,       HIDC_BUTTON_HOKANFILE_REF,          //入力補完 単語ファイル参照
00202     IDC_CHECK_HOKANLOHICASE,        HIDC_CHECK_HOKANLOHICASE,           //入力補完の英大文字小文字
00203     IDC_CHECK_HOKANBYFILE,          HIDC_CHECK_HOKANBYFILE,             //現在のファイルから入力補完
00204     IDC_EDIT_HOKANFILE,             HIDC_EDIT_HOKANFILE,                //単語ファイル名
00205     IDC_EDIT_TYPEEXTHELP,           HIDC_EDIT_TYPEEXTHELP,              //外部ヘルプファイル名    // 2006.08.06 ryoji
00206     IDC_BUTTON_TYPEOPENHELP,        HIDC_BUTTON_TYPEOPENHELP,           //外部ヘルプファイル参照 // 2006.08.06 ryoji
00207     IDC_EDIT_TYPEEXTHTMLHELP,       HIDC_EDIT_TYPEEXTHTMLHELP,          //外部HTMLヘルプファイル名    // 2006.08.06 ryoji
00208     IDC_BUTTON_TYPEOPENEXTHTMLHELP, HIDC_BUTTON_TYPEOPENEXTHTMLHELP,    //外部HTMLヘルプファイル参照 // 2006.08.06 ryoji
00209     IDC_CHECK_TYPEHTMLHELPISSINGLE, HIDC_CHECK_TYPEHTMLHELPISSINGLE,    //ビューアを複数起動しない  // 2006.08.06 ryoji
00210 //  IDC_STATIC,                     -1,
00211     0, 0
00212 };
00213 //To Here Jul. 05, 2001
00214
00215
00216
00217 /* p1 ダイアログプロシージャ */
00218 INT_PTR CALLBACK PropTypesP1Proc(
00219     HWND    hwndDlg,    // handle to dialog box
00220     UINT    uMsg,       // message
00221     WPARAM  wParam,     // first message parameter
00222     LPARAM  lParam      // second message parameter
00223 )
00224 {
00225     PROPSHEETPAGE*  pPsp;
00226     CPropTypes* pCPropTypes;
00227     switch( uMsg ){
00228     case WM_INITDIALOG:
00229         pPsp = (PROPSHEETPAGE*)lParam;
00230         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00231         if( NULL != pCPropTypes ){
00232             return pCPropTypes->DispatchEvent_p1( hwndDlg, uMsg, wParam, pPsp->lParam );
00233         }else{
00234             return FALSE;
00235         }
00236     default:
00237         // Modified by KEITA for WIN64 2003.9.6
00238         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00239         if( NULL != pCPropTypes ){
00240             return pCPropTypes->DispatchEvent_p1( hwndDlg, uMsg, wParam, lParam );
00241         }else{
00242             return FALSE;
00243         }
00244     }
00245 }
00246
00247 /* p2 ダイアログプロシージャ */
00248 INT_PTR CALLBACK PropTypesP2Proc(
00249     HWND    hwndDlg,    // handle to dialog box
00250     UINT    uMsg,       // message
00251     WPARAM  wParam,     // first message parameter
00252     LPARAM  lParam      // second message parameter
00253 )
00254 {
00255     PROPSHEETPAGE*  pPsp;
00256     CPropTypes* pCPropTypes;
00257     switch( uMsg ){
00258     case WM_INITDIALOG:
00259         pPsp = (PROPSHEETPAGE*)lParam;
00260         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00261         if( NULL != pCPropTypes ){
00262             return pCPropTypes->DispatchEvent_p2( hwndDlg, uMsg, wParam, pPsp->lParam );
00263         }else{
00264             return FALSE;
00265         }
00266     default:
00267         // Modified by KEITA for WIN64 2003.9.6
00268         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00269         if( NULL != pCPropTypes ){
00270             return pCPropTypes->DispatchEvent_p2( hwndDlg, uMsg, wParam, lParam );
00271         }else{
00272             return FALSE;
00273         }
00274     }
00275 }
00276
00277
00278
00279
00280
00281
00282
00283 /* p3 ダイアログプロシージャ */
00284 INT_PTR CALLBACK PropTypesP3_newProc(
00285     HWND    hwndDlg,    // handle to dialog box
00286     UINT    uMsg,       // message
00287     WPARAM  wParam,     // first message parameter
00288     LPARAM  lParam      // second message parameter
00289 )
00290 {
00291     PROPSHEETPAGE*  pPsp;
00292     CPropTypes*     pCPropTypes;
00293     switch( uMsg ){
00294     case WM_INITDIALOG:
00295         pPsp = (PROPSHEETPAGE*)lParam;
00296         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00297         if( NULL != pCPropTypes ){
00298             return pCPropTypes->DispatchEvent_p3_new( hwndDlg, uMsg, wParam, pPsp->lParam );
00299         }else{
00300             return FALSE;
00301         }
00302     default:
00303         // Modified by KEITA for WIN64 2003.9.6
00304         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00305         if( NULL != pCPropTypes ){
00306             return pCPropTypes->DispatchEvent_p3_new( hwndDlg, uMsg, wParam, lParam );
00307         }else{
00308             return FALSE;
00309         }
00310     }
00311 }
00312
00313
00314
00315
00316 CPropTypes::CPropTypes()
00317 {
00318     /* 共有データ構造体のアドレスを返す */
00319     m_pShareData = CShareData::getInstance()->GetShareData();
00320     // Mar. 31, 2003 genta メモリ削減のためポインタに変更
00321     m_pCKeyWordSetMgr = &(m_pShareData->m_CKeyWordSetMgr);
00322
00323     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00324     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00325     m_hwndThis  = NULL;     /* このダイアログのハンドル */
00326     m_nPageNum = 0;
00327
00328     // 2005.11.30 Moca カスタム色を設定・保持
00329     int i;
00330     for( i = 0; i < _countof(m_dwCustColors); i++ ){
00331         m_dwCustColors[i] = RGB( 255, 255, 255 );
00332     }
00333
00334     /* ヘルプファイルのフルパスを返す */
00335     m_szHelpFile = CEditApp::Instance()->GetHelpFilePath();
00336
00337     return;
00338 }
00339
00340
00341
00342
00343
00344 CPropTypes::~CPropTypes()
00345 {
00346 //  if( NULL != m_hbmpToolButtons ){
00347 //      /* ビットマップ破棄 */
00348 //      ::DeleteObject( m_hbmpToolButtons );
00349 //  }
00350     return;
00351 }
00352
00353
00354
00355
00356
00357 /* 初期化 */
00358 void CPropTypes::Create( HINSTANCE hInstApp, HWND hwndParent )
00359 {
00360     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00361     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00362     return;
00363 }
00364
00365
00366
00367
00368
00369 /* 色選択ダイアログ */
00370 BOOL CPropTypes::SelectColor( HWND hwndParent, COLORREF* pColor, DWORD* pCustColors )
00371 {
00372     CHOOSECOLOR     cc;
00373     cc.lStructSize = sizeof_raw( cc );
00374     cc.hwndOwner = hwndParent;
00375     cc.hInstance = NULL;
00376     cc.rgbResult = *pColor;
00377     cc.lpCustColors = pCustColors;
00378     cc.Flags = /*CC_PREVENTFULLOPEN |*/ CC_RGBINIT;
00379     cc.lCustData = NULL;
00380     cc.lpfnHook = NULL;
00381     cc.lpTemplateName = NULL;
00382     if( FALSE == ::ChooseColor( &cc ) ){
00383         return FALSE;
00384     }
00385     *pColor = cc.rgbResult;
00386     return TRUE;
00387 }
00388
00389
00390
00391
00392
00393 /* 色ボタンの描画 */
00394 void CPropTypes::DrawColorButton( DRAWITEMSTRUCT* pDis, COLORREF cColor )
00395 {
00396 //  MYTRACE_A( "pDis->itemAction = " );
00397
00398     COLORREF    cBtnHiLight     = (COLORREF)::GetSysColor(COLOR_3DHILIGHT);
00399     COLORREF    cBtnShadow      = (COLORREF)::GetSysColor(COLOR_3DSHADOW);
00400     COLORREF    cBtnDkShadow    = (COLORREF)::GetSysColor(COLOR_3DDKSHADOW);
00401     COLORREF    cBtnFace        = (COLORREF)::GetSysColor(COLOR_3DFACE);
00402     COLORREF    cRim;
00403     HBRUSH      hBrush;
00404     HBRUSH      hBrushOld;
00405     HPEN        hPen;
00406     HPEN        hPenOld;
00407     RECT        rc;
00408     RECT        rcFocus;
00409
00410     /* ボタンの表面の色で塗りつぶす */
00411     hBrush = ::CreateSolidBrush( cBtnFace );
00412     ::FillRect( pDis->hDC, &(pDis->rcItem), hBrush );
00413     ::DeleteObject( hBrush );
00414
00415     /* 枠の描画 */
00416     rcFocus = rc = pDis->rcItem;
00417     rc.top += 4;
00418     rc.left += 4;
00419     rc.right -= 4;
00420     rc.bottom -= 4;
00421     rcFocus = rc;
00422 //  rc.right -= 11;
00423
00424     if( pDis->itemState & ODS_SELECTED ){
00425         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00426         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00427         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00428         ::LineTo( pDis->hDC, 0, 0 );
00429         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00430         ::SelectObject( pDis->hDC, hPenOld );
00431         ::DeleteObject( hPen );
00432
00433         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00434         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00435         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 3, NULL );
00436         ::LineTo( pDis->hDC, 1, 1 );
00437         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 1 );
00438         ::SelectObject( pDis->hDC, hPenOld );
00439         ::DeleteObject( hPen );
00440
00441         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00442         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00443         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00444         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00445         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00446         ::SelectObject( pDis->hDC, hPenOld );
00447         ::DeleteObject( hPen );
00448
00449         rc.top += 1;
00450         rc.left += 1;
00451         rc.right += 1;
00452         rc.bottom += 1;
00453
00454         rcFocus.top += 1;
00455         rcFocus.left += 1;
00456         rcFocus.right += 1;
00457         rcFocus.bottom += 1;
00458
00459     }else{
00460         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00461         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00462         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00463         ::LineTo( pDis->hDC, 0, 0 );
00464         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00465         ::SelectObject( pDis->hDC, hPenOld );
00466         ::DeleteObject( hPen );
00467
00468         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00469         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00470         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 2, NULL );
00471         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, pDis->rcItem.bottom - 2 );
00472         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 0 );
00473         ::SelectObject( pDis->hDC, hPenOld );
00474         ::DeleteObject( hPen );
00475
00476         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00477         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00478         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00479         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00480         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00481         ::SelectObject( pDis->hDC, hPenOld );
00482         ::DeleteObject( hPen );
00483     }
00484     if( pDis->itemState & ODS_DISABLED ){
00485     }else{
00486         /* 指定色で塗りつぶす */
00487         hBrush = ::CreateSolidBrush( cColor );
00488         hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00489         cRim = cBtnShadow;
00490         hPen = ::CreatePen( PS_SOLID, 0, cRim );
00491         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00492         ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00493         ::SelectObject( pDis->hDC, hPenOld );
00494         ::SelectObject( pDis->hDC, hBrushOld );
00495         ::DeleteObject( hPen );
00496         ::DeleteObject( hBrush );
00497     }
00498
00499
00500 //  /* 区切りたて棒 */
00501 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00502 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00503 //  ::MoveToEx( pDis->hDC, rc.right + 3, rc.top, NULL );
00504 //  ::LineTo( pDis->hDC, rc.right + 3, rc.bottom );
00505 //  ::SelectObject( pDis->hDC, hPenOld );
00506 //  ::DeleteObject( hPen );
00507 //
00508 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00509 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00510 //  ::MoveToEx( pDis->hDC, rc.right + 4, rc.top, NULL );
00511 //  ::LineTo( pDis->hDC, rc.right + 4, rc.bottom );
00512 //  ::SelectObject( pDis->hDC, hPenOld );
00513 //  ::DeleteObject( hPen );
00514 //
00515 //  /* ▼記号 */
00516 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00517 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00518 //  ::MoveToEx( pDis->hDC, rc.right + 6     , rc.top + 6, NULL );
00519 //  ::LineTo(   pDis->hDC, rc.right + 6 + 5 , rc.top + 6 );
00520 //  ::MoveToEx( pDis->hDC, rc.right + 7     , rc.top + 7, NULL );
00521 //  ::LineTo(   pDis->hDC, rc.right + 7 + 3 , rc.top + 7 );
00522 //  ::MoveToEx( pDis->hDC, rc.right + 8     , rc.top + 8, NULL );
00523 //  ::LineTo(   pDis->hDC, rc.right + 8 + 1 , rc.top + 8 );
00524 //  ::SelectObject( pDis->hDC, hPenOld );
00525 //  ::DeleteObject( hPen );
00526
00527     /* フォーカスの長方形 */
00528     if( pDis->itemState & ODS_FOCUS ){
00529         rcFocus.top -= 3;
00530         rcFocus.left -= 3;
00531         rcFocus.right += 2;
00532         rcFocus.bottom += 2;
00533         ::DrawFocusRect( pDis->hDC, &rcFocus );
00534     }
00535     return;
00536 }
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547 //  キーワード：タイプ別設定タブ順序(プロパティシート)
00548 /* プロパティシートの作成 */
00549 int CPropTypes::DoPropertySheet( int nPageNum )
00550 {
00551     int                 nRet;
00552     PROPSHEETPAGE       psp[16];
00553     int                 nIdx;
00554
00555     m_nMaxLineKetas_org = m_Types.m_nMaxLineKetas;
00556
00557     // 2005.11.30 Moca カスタム色の先頭にテキスト色を設定しておく
00558     m_dwCustColors[0] = m_Types.m_ColorInfoArr[COLORIDX_TEXT].m_colTEXT;
00559     m_dwCustColors[1] = m_Types.m_ColorInfoArr[COLORIDX_TEXT].m_colBACK;
00560
00561     nIdx = 0;
00562     memset_raw( &psp[nIdx], 0, sizeof_raw( psp[nIdx] ) );
00563     psp[nIdx].dwSize      = sizeof_raw( psp[nIdx] );
00564     psp[nIdx].dwFlags     = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00565     psp[nIdx].hInstance   = m_hInstance;
00566     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROPTYPESP1 );
00567     psp[nIdx].pszIcon     = NULL;
00568     psp[nIdx].pfnDlgProc  = (DLGPROC)PropTypesP1Proc;
00569     psp[nIdx].pszTitle    = _T("スクリーン");
00570     psp[nIdx].lParam      = (LPARAM)this;
00571     psp[nIdx].pfnCallback = NULL;
00572     nIdx++;
00573
00574     memset_raw( &psp[nIdx], 0, sizeof_raw( psp[nIdx] ) );
00575     psp[nIdx].dwSize      = sizeof_raw( psp[nIdx] );
00576     psp[nIdx].dwFlags     = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00577     psp[nIdx].hInstance   = m_hInstance;
00578     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_COLOR );
00579     psp[nIdx].pszIcon     = NULL /*MAKEINTRESOURCE( IDI_BORDER) */;
00580     psp[nIdx].pfnDlgProc  = (DLGPROC)PropTypesP3_newProc;
00581     psp[nIdx].pszTitle    = _T("カラー");
00582     psp[nIdx].lParam      = (LPARAM)this;
00583     psp[nIdx].pfnCallback = NULL;
00584     nIdx++;
00585
00586     // 2001/06/14 Start by asa-o: タイプ別設定に支援タブ追加
00587     memset_raw( &psp[nIdx], 0, sizeof_raw( psp[nIdx] ) );
00588     psp[nIdx].dwSize      = sizeof_raw( psp[nIdx] );
00589     psp[nIdx].dwFlags     = PSP_USETITLE | PSP_HASHELP;
00590     psp[nIdx].hInstance   = m_hInstance;
00591     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROPTYPESP2 );
00592     psp[nIdx].pszIcon     = NULL;
00593     psp[nIdx].pfnDlgProc  = (DLGPROC)PropTypesP2Proc;
00594     psp[nIdx].pszTitle    = _T("支援");
00595     psp[nIdx].lParam      = (LPARAM)this;
00596     psp[nIdx].pfnCallback = NULL;
00597     nIdx++;
00598     // 2001/06/14 End
00599
00600     // 2001.11.17 add start MIK タイプ別設定に正規表現キーワードタブ追加
00601     memset_raw( &psp[nIdx], 0, sizeof_raw( psp[nIdx] ) );
00602     psp[nIdx].dwSize      = sizeof_raw( psp[nIdx] );
00603     psp[nIdx].dwFlags     = PSP_USETITLE | PSP_HASHELP;
00604     psp[nIdx].hInstance   = m_hInstance;
00605     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_REGEX );
00606     psp[nIdx].pszIcon     = NULL;
00607     psp[nIdx].pfnDlgProc  = (DLGPROC)PropTypesRegex;
00608     psp[nIdx].pszTitle    = _T("正規表現キーワード");
00609     psp[nIdx].lParam      = (LPARAM)this;
00610     psp[nIdx].pfnCallback = NULL;
00611     nIdx++;
00612     // 2001.11.17 add end MIK
00613
00614     // 2006.04.10 fon ADD-start タイプ別設定に「キーワードヘルプ」タブを追加
00615     memset_raw( &psp[nIdx], 0, sizeof_raw( psp[nIdx] ) );
00616     psp[nIdx].dwSize      = sizeof_raw( psp[nIdx] );
00617     psp[nIdx].dwFlags     = PSP_USETITLE | PSP_HASHELP;
00618     psp[nIdx].hInstance   = m_hInstance;
00619     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_KEYHELP );
00620     psp[nIdx].pszIcon     = NULL;
00621     psp[nIdx].pfnDlgProc  = (DLGPROC)PropTypesKeyHelp;
00622     psp[nIdx].pszTitle    = _T("キーワードヘルプ");
00623     psp[nIdx].lParam      = (LPARAM)this;
00624     psp[nIdx].pfnCallback = NULL;
00625     nIdx++;
00626     // 2006.04.10 fon ADD-end
00627
00628
00629     PROPSHEETHEADER     psh;
00630     memset_raw( &psh, 0, sizeof_raw( psh ) );
00631
00632     //  Jun. 29, 2002 こおり
00633     //  Windows 95対策．Property SheetのサイズをWindows95が認識できる物に固定する．
00634     psh.dwSize = sizeof_old_PROPSHEETHEADER;
00635
00636     // JEPROtest Sept. 30, 2000 タイプ別設定の隠れ[適用]ボタンの正体はここ。行頭のコメントアウトを入れ替えてみればわかる
00637     psh.dwFlags    = /*PSH_USEICONID |*/ PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE/* | PSH_HASHELP*/;
00638     psh.hwndParent = m_hwndParent;
00639     psh.hInstance  = m_hInstance;
00640     psh.pszIcon    = NULL;
00641     psh.pszCaption = _T("タイプ別設定");  // Sept. 8, 2000 jepro 単なる「設定」から変更
00642     psh.nPages     = nIdx;
00643
00644     //- 20020106 aroka # psh.nStartPage は unsigned なので負にならない
00645     if( -1 == nPageNum ){
00646         psh.nStartPage = m_nPageNum;
00647     }else
00648     if( 0 > nPageNum ){         //- 20020106 aroka
00649         psh.nStartPage = 0;
00650     }else{
00651         psh.nStartPage = nPageNum;
00652     }
00653     if( psh.nPages - 1 < psh.nStartPage ){
00654         psh.nStartPage = psh.nPages - 1;
00655     }
00656     psh.ppsp = psp;
00657     psh.pfnCallback = NULL;
00658
00659 //<<<<<<< .mine
00660 //  nRet = ::PropertySheet( &psh );
00661 //=======
00662 //  m_hbmpToolButtons = ::LoadBitmap( m_hInstance, MAKEINTRESOURCE( IDB_MYTOOL ) );
00663
00664     nRet = MyPropertySheet( &psh ); // 2007.05.24 ryoji 独自拡張プロパティシート
00665 //>>>>>>> .r1121
00666     if( -1 == nRet ){
00667         TCHAR*  pszMsgBuf;
00668         ::FormatMessage(
00669             FORMAT_MESSAGE_ALLOCATE_BUFFER |
00670             FORMAT_MESSAGE_FROM_SYSTEM |
00671             FORMAT_MESSAGE_IGNORE_INSERTS,
00672             NULL,
00673             ::GetLastError(),
00674             MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // デフォルト言語
00675             (LPTSTR)&pszMsgBuf,
00676             0,
00677             NULL
00678         );
00679 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, _T("作者に教えて欲しいエラー"),
00680             _T("CPropTypes::DoPropertySheet()内でエラーが出ました。\n")
00681             _T("psh.nStartPage=[%d]\n")
00682             _T("::PropertySheet()失敗。\n")
00683             _T("\n")
00684             _T("%ls\n"),
00685             psh.nStartPage,
00686             pszMsgBuf
00687         );
00688         ::LocalFree( pszMsgBuf );
00689     }
00690
00691 //  ::DeleteObject( m_hbmpToolButtons );
00692 //  m_hbmpToolButtons = NULL;
00693     return nRet;
00694 }
00695
00696
00697
00698
00699
00700 /* p1 メッセージ処理 */
00701 INT_PTR CPropTypes::DispatchEvent_p1(
00702     HWND        hwndDlg,    // handle to dialog box
00703     UINT        uMsg,       // message
00704     WPARAM      wParam,     // first message parameter
00705     LPARAM      lParam      // second message parameter
00706 )
00707 {
00708     WORD        wNotifyCode;
00709     WORD        wID;
00710 //  HWND        hwndCtl;
00711     NMHDR*      pNMHDR;
00712     NM_UPDOWN*  pMNUD;
00713     int         idCtrl;
00714     int         nVal;
00715 //  LPDRAWITEMSTRUCT pDis;
00716
00717     switch( uMsg ){
00718
00719     case WM_INITDIALOG:
00720         m_hwndThis = hwndDlg;
00721         /* ダイアログデータの設定 p1 */
00722         SetData_p1( hwndDlg );
00723         // Modified by KEITA for WIN64 2003.9.6
00724 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00725
00726         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00727         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPENAME ), EM_LIMITTEXT, (WPARAM)( _countof( m_Types.m_szTypeName ) - 1 ), 0 );
00728         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPEEXTS ), EM_LIMITTEXT, (WPARAM)( _countof( m_Types.m_szTypeExts ) - 1 ), 0 );
00729         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_INDENTCHARS ), EM_LIMITTEXT, (WPARAM)( _countof( m_Types.m_szIndentChars ) - 1 ), 0 );
00730 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
00731         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), EM_LIMITTEXT, (WPARAM)( _countof( m_Types.m_szTabViewString ) - 1 ), 0 );
00732 //#endif
00733         //  Oct. 5, 2002 genta 画面上でも入力制限
00734         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ),  EM_LIMITTEXT, (WPARAM)( _countof2( m_Types.m_szOutlineRuleFilename ) - 1 ), 0 );
00735
00736         if( 0 == m_Types.m_nIdx ){
00737             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPENAME ), FALSE );
00738             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPEEXTS ), FALSE );
00739         }
00740
00741         return TRUE;
00742     case WM_COMMAND:
00743         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00744         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00745 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00746         switch( wNotifyCode ){
00747         /* ボタン／チェックボックスがクリックされた */
00748         case BN_CLICKED:
00749             switch( wID ){
00750             /*  2002.04.01 YAZAKI オートインデントを削除（もともと不要）
00751                 アウトライン解析にルールファイル関連を追加
00752             */
00753             case IDC_RADIO_OUTLINEDEFAULT:  /* アウトライン解析→標準ルール */
00754                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), TRUE );
00755                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), FALSE );
00756                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), FALSE );
00757
00758 				::SendMessageAny( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), CB_SETCURSEL, 0, 0 );
00759
00760                 return TRUE;
00761             case IDC_RADIO_OUTLINERULEFILE: /* アウトライン解析→ルールファイル */
00762                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), FALSE );
00763                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), TRUE );
00764                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), TRUE );
00765                 return TRUE;
00766
00767             case IDC_BUTTON_RULEFILE_REF:   /* アウトライン解析→ルールファイルの「参照...」ボタン */
00768                 {
00769                     CDlgOpenFile    cDlgOpenFile;
00770                     TCHAR           szPath[_MAX_PATH + 1];
00771                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
00772                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00773                     if( _IS_REL_PATH( m_Types.m_szOutlineRuleFilename ) ){
00774                         GetInidirOrExedir( szPath, m_Types.m_szOutlineRuleFilename );
00775                     }else{
00776                         _tcscpy( szPath, m_Types.m_szOutlineRuleFilename );
00777                     }
00778                     /* ファイルオープンダイアログの初期化 */
00779                     cDlgOpenFile.Create(
00780                         m_hInstance,
00781                         hwndDlg,
00782                         _T("*.*"),
00783                         szPath
00784                     );
00785                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00786                         _tcscpy( m_Types.m_szOutlineRuleFilename, szPath );
00787 						::DlgItem_SetText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename );
00788                     }
00789                 }
00790                 return TRUE;
00791
00792             case IDC_CHECK_TAB_ARROW:
00793                 // Mar. 31, 2003 genta 矢印表示のON/OFFをTAB文字列設定に連動させる
00794                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TAB_ARROW ) ){
00795                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), FALSE );
00796                 }
00797                 else {
00798                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), TRUE );
00799                 }
00800                 return TRUE;
00801
00802             }
00803             break;  /* BN_CLICKED */
00804         }
00805         break;  /* WM_COMMAND */
00806     case WM_NOTIFY:
00807         idCtrl = (int)wParam;
00808         pNMHDR = (NMHDR*)lParam;
00809         pMNUD  = (NM_UPDOWN*)lParam;
00810         switch( idCtrl ){
00811         case IDC_SPIN_MAXLINELEN:
00812             /* 折り返し桁数 */
00813             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, NULL, FALSE );
00814             if( pMNUD->iDelta < 0 ){
00815                 ++nVal;
00816             }else
00817             if( pMNUD->iDelta > 0 ){
00818                 --nVal;
00819             }
00820             if( nVal < MINLINEKETAS ){
00821                 nVal = MINLINEKETAS;
00822             }
00823             if( nVal > MAXLINEKETAS ){
00824                 nVal = MAXLINEKETAS;
00825             }
00826             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, nVal, FALSE );
00827             return TRUE;
00828         case IDC_SPIN_CHARSPACE:
00829             /* 文字の隙間 */
00830 //          MYTRACE_A( "IDC_SPIN_CHARSPACE\n" );
00831             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, NULL, FALSE );
00832             if( pMNUD->iDelta < 0 ){
00833                 ++nVal;
00834             }else
00835             if( pMNUD->iDelta > 0 ){
00836                 --nVal;
00837             }
00838             if( nVal < 0 ){
00839                 nVal = 0;
00840             }
00841             if( nVal > COLUMNSPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
00842                 nVal = COLUMNSPACE_MAX;
00843             }
00844             ::SetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, nVal, FALSE );
00845             return TRUE;
00846         case IDC_SPIN_LINESPACE:
00847             /* 行の隙間 */
00848 //          MYTRACE_A( "IDC_SPIN_LINESPACE\n" );
00849             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, NULL, FALSE );
00850             if( pMNUD->iDelta < 0 ){
00851                 ++nVal;
00852             }else
00853             if( pMNUD->iDelta > 0 ){
00854                 --nVal;
00855             }
00856 //  From Here Oct. 8, 2000 JEPRO 行間も最小0まで設定できるように変更(昔に戻っただけ?)
00857 //          if( nVal < 1 ){
00858 //              nVal = 1;
00859 //          }
00860             if( nVal < 0 ){
00861                 nVal = 0;
00862             }
00863 //  To Here  Oct. 8, 2000
00864             if( nVal > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
00865                 nVal = LINESPACE_MAX;
00866             }
00867             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, nVal, FALSE );
00868             return TRUE;
00869         case IDC_SPIN_REPEATEDSCROLLLINENUM:
00870             /* キーリピート時のスクロール行数 */
00871 //          MYTRACE_A( "IDC_SPIN_REPEATEDSCROLLLINENUM\n" );
00872             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00873             if( pMNUD->iDelta < 0 ){
00874                 ++nVal;
00875             }else
00876             if( pMNUD->iDelta > 0 ){
00877                 --nVal;
00878             }
00879             if( nVal < 1 ){
00880                 nVal = 1;
00881             }
00882             if( nVal > 10 ){
00883                 nVal = 10;
00884             }
00885             ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, nVal, FALSE );
00886             return TRUE;
00887         case IDC_SPIN_TABSPACE:
00888             //  Sep. 22, 2002 genta
00889             /* TAB幅 */
00890 //          MYTRACE_A( "IDC_SPIN_CHARSPACE\n" );
00891             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, NULL, FALSE );
00892             if( pMNUD->iDelta < 0 ){
00893                 ++nVal;
00894             }else
00895             if( pMNUD->iDelta > 0 ){
00896                 --nVal;
00897             }
00898             if( nVal < 1 ){
00899                 nVal = 1;
00900             }
00901             if( nVal > 64 ){
00902                 nVal = 64;
00903             }
00904             ::SetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, nVal, FALSE );
00905             return TRUE;
00906
00907         default:
00908             switch( pNMHDR->code ){
00909             case PSN_HELP:
00910                 OnHelp( hwndDlg, IDD_PROPTYPESP1 );
00911                 return TRUE;
00912             case PSN_KILLACTIVE:
00913                 /* ダイアログデータの取得 p1 */
00914                 GetData_p1( hwndDlg );
00915
00916                 return TRUE;
00917 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00918             case PSN_SETACTIVE:
00919                 m_nPageNum = 0;
00920                 return TRUE;
00921             }
00922             break;
00923         }
00924
00925 //      MYTRACE_A( "pNMHDR->hwndFrom    =%xh\n",    pNMHDR->hwndFrom );
00926 //      MYTRACE_A( "pNMHDR->idFrom  =%xh\n",    pNMHDR->idFrom );
00927 //      MYTRACE_A( "pNMHDR->code        =%xh\n",    pNMHDR->code );
00928 //      MYTRACE_A( "pMNUD->iPos     =%d\n",     pMNUD->iPos );
00929 //      MYTRACE_A( "pMNUD->iDelta       =%d\n",     pMNUD->iDelta );
00930         break;
00931
00932 //@@@ 2001.02.04 Start by MIK: Popup Help
00933     case WM_HELP:
00934         {
00935             HELPINFO *p = (HELPINFO *)lParam;
00936             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids1 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00937         }
00938         return TRUE;
00939         /*NOTREACHED*/
00940 //      break;
00941 //@@@ 2001.02.04 End
00942
00943 //@@@ 2001.11.17 add start MIK
00944     //Context Menu
00945     case WM_CONTEXTMENU:
00946         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids1 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00947         return TRUE;
00948 //@@@ 2001.11.17 add end MIK
00949
00950     }
00951     return FALSE;
00952 }
00953
00954
00955
00956
00957
00958 /* ダイアログデータの設定 p1 */
00959 void CPropTypes::SetData_p1( HWND hwndDlg )
00960 {
00961     BOOL    bRet;
00962     static  int nTabArr[] = { 2, 3, 4, 6, 8 };
00963     static  int nTabArrNum = _countof( nTabArr );
00964     int         i;
00965
00966     /* タイプ属性：名称 */
00967 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPENAME, m_Types.m_szTypeName );
00968
00969     /* タイプ属性：拡張子リスト */
00970 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPEEXTS, m_Types.m_szTypeExts );
00971
00972     /* 折り返し文字数 */
00973     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, (Int)m_Types.m_nMaxLineKetas, FALSE );
00974
00975     /* 文字の隙間 */
00976     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, m_Types.m_nColmSpace, FALSE );
00977
00978     /* 行の隙間 */
00979     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, m_Types.m_nLineSpace, FALSE );
00980
00981     /* TAB幅 */
00982     //  Sep. 22, 2002 genta
00983     ::SetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, (Int)m_Types.m_nTabSpace, FALSE );
00984
00985     /* TAB表示文字列 */
00986 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TABVIEWSTRING, m_Types.m_szTabViewString );
00987
00988     //タブ矢印表示    //@@@ 2003.03.26 MIK
00989     ::CheckDlgButton( hwndDlg, IDC_CHECK_TAB_ARROW, m_Types.m_bTabArrow );
00990     // Mar. 31, 2003 genta 矢印表示のON/OFFをTAB文字列設定に連動させる
00991     if( m_Types.m_bTabArrow ){
00992         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), FALSE );
00993     }
00994     else {
00995         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), TRUE );
00996     }
00997 // From Here 2001.12.03 hor
00998     /* スペースの挿入 */
00999     ::CheckDlgButton( hwndDlg, IDC_CHECK_INS_SPACE, m_Types.m_bInsSpace );
01000 // To Here 2001.12.03 hor
01001
01002     /* その他のインデント対象文字 */
01003 	::DlgItem_SetText( hwndDlg, IDC_EDIT_INDENTCHARS, m_Types.m_szIndentChars );
01004
01005
01006     /* アウトライン解析方法
01007
01008         2002.04.01 YAZAKI ルールファイル関連追加
01009     */
01010     HWND    hwndCombo;
01011     int     nSelPos;
01012     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES );
01013 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
01014     nSelPos = 0;
01015     for( i = 0; i < _countof( OlmArr ); ++i ){
01016         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)OlmArr[i].pszName );
01017         if( OlmArr[i].nMethod == m_Types.m_nDefaultOutline ){   /* アウトライン解析方法 */
01018             nSelPos = i;
01019         }
01020     }
01021
01022     // 2003.06.23 Moca ルールファイル名は使わなくてもセットしておく
01023     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), TRUE );
01024 	::DlgItem_SetText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename );
01025
01026     if( m_Types.m_nDefaultOutline == OUTLINE_FILE ){
01027         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINEDEFAULT, FALSE );
01028         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINERULEFILE, TRUE );
01029
01030         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), FALSE );
01031         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), TRUE );
01032
01033     }else{
01034         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINEDEFAULT, TRUE );
01035         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINERULEFILE, FALSE );
01036
01037         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), TRUE );
01038         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), FALSE );
01039         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), FALSE );
01040
01041 		::SendMessageAny( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01042     }
01043
01044     /* インデント */
01045     ::CheckDlgButton( hwndDlg, IDC_CHECK_INDENT, m_Types.m_bAutoIndent );
01046
01047     /* 日本語空白もインデント */
01048     ::CheckDlgButton( hwndDlg, IDC_CHECK_INDENT_WSPACE, m_Types.m_bAutoIndent_ZENSPACE );
01049
01050     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
01051     ::CheckDlgButton( hwndDlg, IDC_CHECK_RTRIM_PREVLINE, m_Types.m_bRTrimPrevLine );
01052
01053     /* スマートインデント種別 */
01054 //  HWND    hwndCombo;
01055 //  int     nSelPos;
01056     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SMARTINDENT );
01057 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
01058     nSelPos = 0;
01059     for( i = 0; i < _countof( SmartIndentArr ); ++i ){
01060         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)SmartIndentArr[i].pszName );
01061         if( SmartIndentArr[i].nMethod == m_Types.m_nSmartIndent ){  /* スマートインデント種別 */
01062             nSelPos = i;
01063         }
01064     }
01065 	::SendMessageAny( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01066
01067     /* 折り返しは2行目以降を字下げ表示 */
01068     //  Oct. 1, 2002 genta コンボボックスに変更
01069     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_INDENTLAYOUT );
01070 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
01071     nSelPos = 0;
01072     for( i = 0; i < _countof( IndentTypeArr ); ++i ){
01073         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)IndentTypeArr[i].pszName );
01074         if( IndentTypeArr[i].nMethod == m_Types.m_nIndentLayout ){  /* 折り返しインデント種別 */
01075             nSelPos = i;
01076         }
01077     }
01078 	::SendMessageAny( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01079
01080     //  From Here Nov. 20, 2000 genta
01081     //  IME入力モード
01082     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESTATE );
01083 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
01084     int ime = m_Types.m_nImeState >> 2;
01085     nSelPos = 0;
01086     for( i = 0; i < _countof( ImeStateArr ); ++i ){
01087         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)ImeStateArr[i].pszName );
01088         if( ImeStateArr[i].nMethod == ime ){    /* IME状態 */
01089             nSelPos = i;
01090         }
01091     }
01092 	::SendMessageAny( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01093     //  IME ON/OFF制御
01094     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESWITCH );
01095 	::SendMessageAny( hwndCombo, CB_RESETCONTENT, 0, 0 );
01096     ime = m_Types.m_nImeState & 3;
01097     nSelPos = 0;
01098     for( i = 0; i < _countof( ImeSwitchArr ); ++i ){
01099         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)ImeSwitchArr[i].pszName );
01100         if( ImeSwitchArr[i].nMethod == ime ){   /* IME状態 */
01101             nSelPos = i;
01102         }
01103     }
01104 	::SendMessageAny( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01105     //  To Here Nov. 20, 2000 genta
01106
01107     /* 英文ワードラップをする */
01108     ::CheckDlgButton( hwndDlg, IDC_CHECK_WORDWRAP, m_Types.m_bWordWrap );
01109
01110     /* 禁則処理 */
01111     {   //@@@ 2002.04.08 MIK start
01112         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUHEAD, m_Types.m_bKinsokuHead ? TRUE : FALSE );
01113         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUTAIL, m_Types.m_bKinsokuTail ? TRUE : FALSE );
01114         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKURET,  m_Types.m_bKinsokuRet  ? TRUE : FALSE );  /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
01115         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUKUTO, m_Types.m_bKinsokuKuto ? TRUE : FALSE );  /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
01116         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), EM_LIMITTEXT, _countof(m_Types.m_szKinsokuHead) - 1, 0 );
01117         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), EM_LIMITTEXT, _countof(m_Types.m_szKinsokuTail) - 1, 0 );
01118 		::DlgItem_SetText( hwndDlg, IDC_EDIT_KINSOKUHEAD, m_Types.m_szKinsokuHead );
01119 		::DlgItem_SetText( hwndDlg, IDC_EDIT_KINSOKUTAIL, m_Types.m_szKinsokuTail );
01120     }   //@@@ 2002.04.08 MIK end
01121
01122     //  Sep. 10, 2002 genta
01123     ::CheckDlgButton( hwndDlg, IDC_CHECK_DOCICON, m_Types.m_bUseDocumentIcon  ? TRUE : FALSE );
01124
01125     return;
01126 }
01127
01128
01129
01130
01131
01132 /* ダイアログデータの取得 p1 */
01133 int CPropTypes::GetData_p1( HWND hwndDlg )
01134 {
01135 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01136     int  i;
01137 //#endif
01138
01139 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01140 //  m_nPageNum = 0;
01141     /* タイプ属性：名称 */
01142 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TYPENAME, m_Types.m_szTypeName, _countof( m_Types.m_szTypeName ) );
01143     /* タイプ属性：拡張子リスト */
01144 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TYPEEXTS, m_Types.m_szTypeExts, _countof( m_Types.m_szTypeExts ) );
01145
01146
01147     /* 折り返し桁数 */
01148     m_Types.m_nMaxLineKetas = CLayoutInt(::GetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, NULL, FALSE ));
01149     if( m_Types.m_nMaxLineKetas < CLayoutInt(MINLINEKETAS) ){
01150         m_Types.m_nMaxLineKetas = CLayoutInt(MINLINEKETAS);
01151     }
01152     if( m_Types.m_nMaxLineKetas > CLayoutInt(MAXLINEKETAS) ){
01153         m_Types.m_nMaxLineKetas = CLayoutInt(MAXLINEKETAS);
01154     }
01155
01156     /* 文字の隙間 */
01157     m_Types.m_nColmSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, NULL, FALSE );
01158     if( m_Types.m_nColmSpace < 0 ){
01159         m_Types.m_nColmSpace = 0;
01160     }
01161     if( m_Types.m_nColmSpace > COLUMNSPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01162         m_Types.m_nColmSpace = COLUMNSPACE_MAX;
01163     }
01164
01165     /* 行の隙間 */
01166     m_Types.m_nLineSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, NULL, FALSE );
01167 //  From Here Oct. 8, 2000 JEPRO 行間も最小0まで設定できるように変更(昔に戻っただけ?)
01168 //  if( m_Types.m_nLineSpace < 1 ){
01169 //      m_Types.m_nLineSpace = 1;
01170 //  }
01171     if( m_Types.m_nLineSpace < 0 ){
01172         m_Types.m_nLineSpace = 0;
01173     }
01174 //  To Here  Oct. 8, 2000
01175     if( m_Types.m_nLineSpace > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01176         m_Types.m_nLineSpace = LINESPACE_MAX;
01177     }
01178
01179     /* その他のインデント対象文字 */
01180 	::DlgItem_GetText( hwndDlg, IDC_EDIT_INDENTCHARS, m_Types.m_szIndentChars, _countof( m_Types.m_szIndentChars ) - 1 );
01181
01182     /* TAB幅 */
01183     m_Types.m_nTabSpace = CLayoutInt(::GetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, NULL, FALSE ));
01184     if( m_Types.m_nTabSpace < CLayoutInt(1) ){
01185         m_Types.m_nTabSpace = CLayoutInt(1);
01186     }
01187     if( m_Types.m_nTabSpace > CLayoutInt(64) ){
01188         m_Types.m_nTabSpace = CLayoutInt(64);
01189     }
01190
01191 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01192     /* TAB表示文字列 */
01193     WIN_CHAR szTab[8+1+1]; /* +1. happy */
01194 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TABVIEWSTRING, szTab, _countof( szTab ) - 1 );
01195     wcscpy( m_Types.m_szTabViewString, L"^       " );
01196     for( i = 0; i < 8; i++ ){
01197         if( !TCODE::isTabAvailableCode(szTab[i]) )break;
01198         m_Types.m_szTabViewString[i] = szTab[i];
01199     }
01200 //#endif
01201
01202     //タブ矢印表示    //@@@ 2003.03.26 MIK
01203     m_Types.m_bTabArrow = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TAB_ARROW );
01204 // 2001.12.03 hor
01205     /* スペースの挿入 */
01206     m_Types.m_bInsSpace = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INS_SPACE );
01207 // From Here 2001.12.03 hor
01208
01209     /* アウトライン解析方法
01210
01211         2002.04.01 YAZAKI ルールファイル関連追加
01212     */
01213     HWND    hwndCombo;
01214     int     nSelPos;
01215
01216     // 2003.06.23 Moca ルールを使っていなくてもファイル名を保持
01217 	::DlgItem_GetText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename, _countof2( m_Types.m_szOutlineRuleFilename ));
01218
01219     if ( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_OUTLINERULEFILE) ){
01220         m_Types.m_nDefaultOutline = OUTLINE_FILE;
01221     }
01222     else {
01223         hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES );
01224         nSelPos = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01225         m_Types.m_nDefaultOutline = OlmArr[nSelPos].nMethod;    /* アウトライン解析方法 */
01226     }
01227
01228     /* インデント */
01229     m_Types.m_bAutoIndent = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INDENT );
01230
01231     /* 日本語空白もインデント */
01232     m_Types.m_bAutoIndent_ZENSPACE = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INDENT_WSPACE );
01233
01234     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
01235     m_Types.m_bRTrimPrevLine = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RTRIM_PREVLINE );
01236
01237     /* スマートインデント種別 */
01238 //  HWND    hwndCombo;
01239 //  int     nSelPos;
01240     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SMARTINDENT );
01241     nSelPos = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01242     m_Types.m_nSmartIndent = SmartIndentArr[nSelPos].nMethod;   /* スマートインデント種別 */
01243
01244     /* 折り返しは2行目以降を字下げ表示 */
01245     //  Oct. 1, 2002 genta コンボボックスに変更
01246     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_INDENTLAYOUT );
01247     nSelPos = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01248     m_Types.m_nIndentLayout = IndentTypeArr[nSelPos].nMethod;   /* 折り返し部インデント種別 */
01249
01250     //  From Here Nov. 20, 2000 genta   IME状態
01251     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESTATE );
01252     nSelPos = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01253     m_Types.m_nImeState = ImeStateArr[nSelPos].nMethod << 2;    //  IME入力モード
01254
01255     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESWITCH );
01256     nSelPos = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01257     m_Types.m_nImeState |= ImeSwitchArr[nSelPos].nMethod;   //  IME ON/OFF
01258     //  To Here Nov. 20, 2000 genta
01259
01260     /* 英文ワードラップをする */
01261     m_Types.m_bWordWrap = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_WORDWRAP );
01262
01263     /* 禁則処理 */
01264     {   //@@@ 2002.04.08 MIK start
01265         m_Types.m_bKinsokuHead = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUHEAD ) ? TRUE : FALSE;
01266         m_Types.m_bKinsokuTail = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUTAIL ) ? TRUE : FALSE;
01267         m_Types.m_bKinsokuRet  = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKURET  ) ? TRUE : FALSE; /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
01268         m_Types.m_bKinsokuKuto = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUKUTO ) ? TRUE : FALSE; /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
01269 		::DlgItem_GetText( hwndDlg, IDC_EDIT_KINSOKUHEAD, m_Types.m_szKinsokuHead, _countof( m_Types.m_szKinsokuHead ) );
01270 		::DlgItem_GetText( hwndDlg, IDC_EDIT_KINSOKUTAIL, m_Types.m_szKinsokuTail, _countof( m_Types.m_szKinsokuTail ) );
01271     }   //@@@ 2002.04.08 MIK end
01272
01273     //  Sep. 10, 2002 genta
01274     m_Types.m_bUseDocumentIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DOCICON ) ? TRUE : FALSE;
01275
01276     return TRUE;
01277 }
01278
01279
01280
01281 // 2001/06/13 Start By asa-o: タイプ別設定の支援タブに関する処理
01282
01283 /* p2 メッセージ処理 */
01284 INT_PTR CPropTypes::DispatchEvent_p2(
01285     HWND        hwndDlg,    // handle to dialog box
01286     UINT        uMsg,       // message
01287     WPARAM      wParam,     // first message parameter
01288     LPARAM      lParam      // second message parameter
01289 )
01290 {
01291     WORD        wNotifyCode;
01292     WORD        wID;
01293     NMHDR*      pNMHDR;
01294
01295     switch( uMsg ){
01296     case WM_INITDIALOG:
01297         /* ダイアログデータの設定 p2 */
01298         SetData_p2( hwndDlg );
01299         // Modified by KEITA for WIN64 2003.9.6
01300 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01301
01302         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
01303         /* 入力補完 単語ファイル */
01304         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_HOKANFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
01305         /* キーワードヘルプ 辞書ファイル */
01306         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
01307
01308         return TRUE;
01309     case WM_COMMAND:
01310         wNotifyCode = HIWORD(wParam);   /* 通知コード */
01311         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
01312 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
01313         switch( wNotifyCode ){
01314         /* ボタン／チェックボックスがクリックされた */
01315         case BN_CLICKED:
01316             /* ダイアログデータの取得 p2 */
01317             GetData_p2( hwndDlg );
01318             switch( wID ){
01319             case IDC_BUTTON_HOKANFILE_REF:  /* 入力補完 単語ファイルの「参照...」ボタン */
01320                 {
01321                     CDlgOpenFile    cDlgOpenFile;
01322                     TCHAR           szPath[_MAX_PATH + 1];
01323                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01324                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
01325                     if( _IS_REL_PATH( m_Types.m_szHokanFile ) ){
01326                         GetInidirOrExedir( szPath, m_Types.m_szHokanFile );
01327                     }else{
01328                         _tcscpy( szPath, m_Types.m_szHokanFile );
01329                     }
01330                     /* ファイルオープンダイアログの初期化 */
01331                     cDlgOpenFile.Create(
01332                         m_hInstance,
01333                         hwndDlg,
01334                         _T("*.*"),
01335                         szPath
01336                     );
01337                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01338                         _tcscpy( m_Types.m_szHokanFile, szPath );
01339 						::DlgItem_SetText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile );
01340                     }
01341                 }
01342                 return TRUE;
01343             case IDC_BUTTON_TYPEOPENHELP:   /* 外部ヘルプ１の「参照...」ボタン */
01344                 {
01345                     CDlgOpenFile    cDlgOpenFile;
01346                     TCHAR           szPath[_MAX_PATH + 1];
01347                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01348                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
01349                     if( _IS_REL_PATH( m_Types.m_szExtHelp ) ){
01350                         GetInidirOrExedir( szPath, m_Types.m_szExtHelp, TRUE );
01351                     }else{
01352                         _tcscpy( szPath, m_Types.m_szExtHelp );
01353                     }
01354                     /* ファイルオープンダイアログの初期化 */
01355                     cDlgOpenFile.Create(
01356                         m_hInstance,
01357                         hwndDlg,
01358                         _T("*.hlp"),
01359                         szPath
01360                     );
01361                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01362                         _tcscpy( m_Types.m_szExtHelp, szPath );
01363 						::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp );
01364                     }
01365                 }
01366                 return TRUE;
01367             case IDC_BUTTON_TYPEOPENEXTHTMLHELP:    /* 外部HTMLヘルプの「参照...」ボタン */
01368                 {
01369                     CDlgOpenFile    cDlgOpenFile;
01370                     TCHAR           szPath[_MAX_PATH + 1];
01371                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01372                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
01373                     if( _IS_REL_PATH( m_Types.m_szExtHtmlHelp ) ){
01374                         GetInidirOrExedir( szPath, m_Types.m_szExtHtmlHelp, TRUE );
01375                     }else{
01376                         _tcscpy( szPath, m_Types.m_szExtHtmlHelp );
01377                     }
01378                     /* ファイルオープンダイアログの初期化 */
01379                     cDlgOpenFile.Create(
01380                         m_hInstance,
01381                         hwndDlg,
01382                         _T("*.chm;*.col"),
01383                         szPath
01384                     );
01385                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01386                         _tcscpy( m_Types.m_szExtHtmlHelp, szPath );
01387 						::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp );
01388                     }
01389                 }
01390                 return TRUE;
01391             }
01392             break;  /* BN_CLICKED */
01393         }
01394         break;  /* WM_COMMAND */
01395     case WM_NOTIFY:
01396 //      idCtrl = (int)wParam;
01397         pNMHDR = (NMHDR*)lParam;
01398 //      pMNUD  = (NM_UPDOWN*)lParam;
01399         switch( pNMHDR->code ){
01400         case PSN_HELP:  //Jul. 03, 2001 JEPRO 支援タブのヘルプを有効化
01401             OnHelp( hwndDlg, IDD_PROPTYPESP2 );
01402             return TRUE;
01403         case PSN_KILLACTIVE:
01404             /* ダイアログデータの取得 p2 */
01405             GetData_p2( hwndDlg );
01406             return TRUE;
01407 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01408         case PSN_SETACTIVE:
01409             m_nPageNum = 2;
01410             return TRUE;
01411         }
01412         break;
01413
01414 //From Here Jul. 05, 2001 JEPRO: Popup Help
01415     case WM_HELP:
01416         {
01417             HELPINFO *p = (HELPINFO *)lParam;
01418             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids3 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01419         }
01420         return TRUE;
01421         /*NOTREACHED*/
01422 //      break;
01423 //To Here  Jul. 05, 2001
01424
01425 //@@@ 2001.11.17 add start MIK
01426     //Context Menu
01427     case WM_CONTEXTMENU:
01428         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids3 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01429         return TRUE;
01430 //@@@ 2001.11.17 add end MIK
01431
01432     }
01433     return FALSE;
01434 }
01435
01436 /* ダイアログデータの設定 p2 */
01437 void CPropTypes::SetData_p2( HWND hwndDlg )
01438 {
01439     /* 入力補完 単語ファイル */
01440 	::DlgItem_SetText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile );
01441
01442 //  2001/06/19 asa-o
01443     /* 入力補完機能：英大文字小文字を同一視する */
01444     ::CheckDlgButton( hwndDlg, IDC_CHECK_HOKANLOHICASE, m_Types.m_bHokanLoHiCase );
01445
01446     // 2003.06.25 Moca ファイルからの補完機能
01447     ::CheckDlgButton( hwndDlg, IDC_CHECK_HOKANBYFILE, m_Types.m_bUseHokanByFile );
01448
01449     //@@@ 2002.2.2 YAZAKI
01450 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp );
01451 	::DlgItem_SetText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp );
01452     ::CheckDlgButton( hwndDlg, IDC_CHECK_TYPEHTMLHELPISSINGLE, m_Types.m_bHtmlHelpIsSingle );
01453     return;
01454 }
01455
01456 /* ダイアログデータの取得 p2 */
01457 int CPropTypes::GetData_p2( HWND hwndDlg )
01458 {
01459 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01460 //  m_nPageNum = 2;
01461
01462 //  2001/06/19  asa-o
01463     /* 入力補完機能：英大文字小文字を同一視する */
01464     m_Types.m_bHokanLoHiCase = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HOKANLOHICASE );
01465
01466     m_Types.m_bUseHokanByFile = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HOKANBYFILE );
01467
01468     /* 入力補完 単語ファイル */
01469 	::DlgItem_GetText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile, _countof2( m_Types.m_szHokanFile ));
01470
01471     //@@@ 2002.2.2 YAZAKI
01472 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp, _countof2( m_Types.m_szExtHelp ));
01473 	::DlgItem_GetText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp, _countof2( m_Types.m_szExtHtmlHelp ));
01474     m_Types.m_bHtmlHelpIsSingle = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TYPEHTMLHELPISSINGLE );
01475     return TRUE;
01476 }
01477
01478 // 2001/06/13 End
01479
01480
01481
01482
01483 /* 色の設定をインポート */
01484 void CPropTypes::p3_Import_Colors( HWND hwndDlg )
01485 {
01486     /* ファイルオープンダイアログの初期化 */
01487     TCHAR*          pszMRU        = NULL;
01488     TCHAR*          pszOPENFOLDER = NULL;
01489     CDlgOpenFile    cDlgOpenFile;
01490     cDlgOpenFile.Create2(
01491         m_hInstance,
01492         hwndDlg,
01493         _T("*.col"),
01494         m_pShareData->m_szIMPORTFOLDER, // インポート用フォルダ
01495         &pszMRU,
01496         &pszOPENFOLDER
01497     );
01498     TCHAR   szPath[_MAX_PATH + 1] = _T("");
01499     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01500         return;
01501     }
01502
01503     /* ファイルのフルパスを、フォルダとファイル名に分割 */
01504     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
01505 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
01506     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
01507
01508
01509     /* 色設定Ver1か */
01510     CTextInputStream in(szPath);
01511     if(!in){
01512         ErrorMessage(hwndDlg, _T("ファイルを開けませんでした。\n\n%ts"), szPath );
01513         return;
01514     }
01515
01516     /* ファイル先頭 */
01517     //ヘッダ読取
01518     wstring szHeader = in.ReadLineW().c_str();
01519     if(szHeader.length()>=2)szHeader=&szHeader.c_str()[2]; //コメントを抜く
01520     //比較
01521     if(wcscmp(szHeader.c_str(),LTEXT(STR_COLORDATA_HEAD3))==0){
01522         //OK
01523     }
01524     else{
01525         ErrorMessage_A( hwndDlg,
01526             "色設定ファイルの形式が違います。古い形式はサポートされなくなりました。\n%ts\n\n"    //Jan. 20, 2001 JEPRO 改行を1つ取った
01527             "色設定Ver3では CI[番号] から C[名前] に変更されました。\n"
01528             "上記ファイルの設定内容を利用したい場合は、以下の修正を行ってからインポートしてください。\n\n"
01529             "・UR1.2.24.0 (00/12/04) 以降で使っていた場合は\n"
01530             "  (1) 一行目を Ver3 と書き換え、CI をすべて C に縮める\n"
01531             "  (2) (1)の後、番号を( )内の文字列に変更:\n"
01532             "      00(TXT), 01(RUL), 02(UND), 03(LNO), 04(MOD), 05(TAB), 06(ZEN), 07(CTL), 08(EOL),\n"
01533             "      09(RAP), 10(EOF), 11(FND), 12(KW1), 13(KW), 14(CMT), 15(SQT), 16(WQT), 17(URL)\n\n"
01534             "・ur3β10 (00/09/28)〜UR1.2.23.0 (00/11/29) で使っていた場合は\n"
01535             "  (3) (1)の後、00-12 までは(2)と同じ  13(CMT), 14(SQT), 15(WQT), 16(URL)\n\n"
01536             "・ur3β9 (00/09/26) 以前で使っていた場合は\n"
01537             "  (4) (1)の後、(2)と同様:\n"
01538             "      00(TXT), 01(LNO), 02(EOL), 03(TAB), 04(ZEN), 05(EOF), 06(KW1), 07(CMT), 08(SQT),\n"
01539             "      09(WQT), 10(UND), 11(RAP), 12(CTL), 13(URL), 14(FND), 15(MOD), 16(RUL)\n\n"
01540             , szPath
01541         );
01542         in.Close();
01543         return;
01544     }
01545     in.Close();
01546
01547
01548     CDataProfile    cProfile;
01549     cProfile.SetReadingMode();
01550
01551     int             nColorInfoArrNum;                       /* キー割り当て表の有効データ数 */
01552     ColorInfo       ColorInfoArr[64];
01553
01554     /* 色設定Ver2 */
01555     nColorInfoArrNum = COLORIDX_LAST;
01556     if( !cProfile.ReadProfile( szPath ) ){
01557         /* 設定ファイルが存在しない */
01558 		::MYMESSAGEBOX_A( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
01559             "ファイルを開けませんでした。\n\n%ls", szPath
01560         );
01561         return;
01562     }
01563     /* 色設定 I/O */
01564     for( int i = 0; i < m_Types.m_nColorInfoArrNum; ++i ){
01565         ColorInfoArr[i] = m_Types.m_ColorInfoArr[i];
01566         _tcscpy( ColorInfoArr[i].m_szName, m_Types.m_ColorInfoArr[i].m_szName );
01567     }
01568     CShareData::IO_ColorSet( &cProfile, LTEXT(STR_COLORDATA_SECTION), ColorInfoArr );
01569
01570
01571 //complete:;
01572     /* データのコピー */
01573     m_Types.m_nColorInfoArrNum = nColorInfoArrNum;
01574     for( int i = 0; i < m_Types.m_nColorInfoArrNum; ++i ){
01575         m_Types.m_ColorInfoArr[i] =  ColorInfoArr[i];
01576         _tcscpy( m_Types.m_ColorInfoArr[i].m_szName, ColorInfoArr[i].m_szName );
01577     }
01578     /* ダイアログデータの設定 p5 */
01579     SetData_p3_new( hwndDlg );
01580     return;
01581 }
01582
01583
01584 /* 色の設定をエクスポート */
01585 void CPropTypes::p3_Export_Colors( HWND hwndDlg )
01586 {
01587     /* ファイルオープンダイアログの初期化 */
01588     CDlgOpenFile    cDlgOpenFile;
01589     TCHAR*          pszMRU                = NULL;
01590     TCHAR*          pszOPENFOLDER         = NULL;
01591     TCHAR           szPath[_MAX_PATH + 1] = _T("");
01592     cDlgOpenFile.Create2(
01593         m_hInstance,
01594         hwndDlg,
01595         _T("*.col"),
01596         m_pShareData->m_szIMPORTFOLDER, // インポート用フォルダ
01597         &pszMRU,
01598         &pszOPENFOLDER
01599     );
01600     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
01601         return;
01602     }
01603
01604     /* ファイルのフルパスをフォルダとファイル名に分割 */
01605     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
01606 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
01607     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
01608
01609     /* 色設定 I/O */
01610     CDataProfile    cProfile;
01611     cProfile.SetWritingMode();
01612     CShareData::IO_ColorSet( &cProfile, LTEXT(STR_COLORDATA_SECTION), m_Types.m_ColorInfoArr );
01613     cProfile.WriteProfile( szPath, LTEXT(STR_COLORDATA_HEAD3) );    //Jan. 15, 2001 Stonee
01614
01615     return;
01616 }
01617
01618
01619 LRESULT APIENTRY ColorList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01620 {
01621     int         xPos;
01622     int         yPos;
01623     int         nIndex;
01624     int         nItemNum;
01625     RECT        rcItem;
01626     int         i;
01627     POINT       poMouse;
01628     ColorInfo*  pColorInfo;
01629
01630     switch( uMsg ){
01631     case WM_RBUTTONDOWN:
01632     case WM_LBUTTONDBLCLK:
01633     case WM_LBUTTONUP:
01634 //      fwKeys = wParam;        // key flags
01635         xPos = LOWORD(lParam);  // horizontal position of cursor
01636         yPos = HIWORD(lParam);  // vertical position of cursor
01637
01638         poMouse.x = xPos;
01639         poMouse.y = yPos;
01640         nItemNum = ::SendMessageAny( hwnd, LB_GETCOUNT, 0, 0 );
01641         nIndex = -1;
01642         for( i = 0; i < nItemNum; ++i ){
01643 			::SendMessageAny( hwnd, LB_GETITEMRECT, i, (LPARAM)&rcItem );
01644             if( ::PtInRect( &rcItem, poMouse ) ){
01645 //              MYTRACE_A( "hit at i==%d\n", i );
01646 //              MYTRACE_A( "\n" );
01647                 nIndex = i;
01648                 break;
01649             }
01650         }
01651         break;
01652     }
01653     switch( uMsg ){
01654     case WM_RBUTTONDOWN:
01655
01656         if( -1 == nIndex ){
01657             break;
01658         }
01659 		::SendMessageAny( hwnd, LB_SETCURSEL, nIndex, 0 );
01660 		::SendMessageCmd( ::GetParent( hwnd ), WM_COMMAND, MAKELONG( IDC_LIST_COLORS, LBN_SELCHANGE ), (LPARAM)hwnd );
01661         pColorInfo = (ColorInfo*)::SendMessageAny( hwnd, LB_GETITEMDATA, nIndex, 0 );
01662         /* 下線 */
01663         if( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_UNDERLINE) ) // 2006.12.18 ryoji フラグ利用で簡素化
01664         {
01665             if( pColorInfo->m_bUnderLine ){ /* 下線で表示 */
01666                 pColorInfo->m_bUnderLine = FALSE;
01667                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_UNDERLINE, FALSE );
01668             }else{
01669                 pColorInfo->m_bUnderLine = TRUE;
01670                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_UNDERLINE, TRUE );
01671             }
01672             ::InvalidateRect( hwnd, &rcItem, TRUE );
01673         }
01674         break;
01675
01676     case WM_LBUTTONDBLCLK:
01677         if( -1 == nIndex ){
01678             break;
01679         }
01680         pColorInfo = (ColorInfo*)::SendMessageAny( hwnd, LB_GETITEMDATA, nIndex, 0 );
01681         /* 太字で表示 */
01682         if( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_BOLD) )  // 2006.12.18 ryoji フラグ利用で簡素化
01683         {
01684             if( pColorInfo->m_bFatFont ){   /* 太字で表示 */
01685                 pColorInfo->m_bFatFont = FALSE;
01686                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_FAT, FALSE );
01687             }else{
01688                 pColorInfo->m_bFatFont = TRUE;
01689                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_FAT, TRUE );
01690             }
01691             ::InvalidateRect( hwnd, &rcItem, TRUE );
01692         }
01693         break;
01694     case WM_LBUTTONUP:
01695         if( -1 == nIndex ){
01696             break;
01697         }
01698         pColorInfo = (ColorInfo*)::SendMessageAny( hwnd, LB_GETITEMDATA, nIndex, 0 );
01699         /* 色分け/表示 する */
01700         if( 2 <= xPos && xPos <= 16
01701             && ( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_FORCE_DISP) )  // 2006.12.18 ryoji フラグ利用で簡素化
01702             )
01703         {
01704             if( pColorInfo->m_bDisp ){  /* 色分け/表示する */
01705                 pColorInfo->m_bDisp = FALSE;
01706             }else{
01707                 pColorInfo->m_bDisp = TRUE;
01708             }
01709             if( COLORIDX_GYOU == nIndex ){
01710                 pColorInfo = (ColorInfo*)::SendMessageAny( hwnd, LB_GETITEMDATA, nIndex, 0 );
01711
01712             }
01713
01714             ::InvalidateRect( hwnd, &rcItem, TRUE );
01715         }else
01716         /* 前景色見本 矩形 */
01717         if( rcItem.right - 27 <= xPos && xPos <= rcItem.right - 27 + 12 ){
01718             /* 色選択ダイアログ */
01719             // 2005.11.30 Moca カスタム色保持
01720             DWORD* pColors = (DWORD*)::GetProp( hwnd, _T("ptrCustomColors") );
01721             if( CPropTypes::SelectColor( hwnd, &pColorInfo->m_colTEXT, pColors ) ){
01722                 ::InvalidateRect( hwnd, &rcItem, TRUE );
01723                 ::InvalidateRect( ::GetDlgItem( ::GetParent( hwnd ), IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
01724             }
01725         }else
01726         /* 前景色見本 矩形 */
01727         if( rcItem.right - 13 <= xPos && xPos <= rcItem.right - 13 + 12
01728             && ( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_BACK) ) // 2006.12.18 ryoji フラグ利用で簡素化
01729             )
01730         {
01731             /* 色選択ダイアログ */
01732             // 2005.11.30 Moca カスタム色保持
01733             DWORD* pColors = (DWORD*)::GetProp( hwnd, _T("ptrCustomColors") );
01734             if( CPropTypes::SelectColor( hwnd, &pColorInfo->m_colBACK, pColors ) ){
01735                 ::InvalidateRect( hwnd, &rcItem, TRUE );
01736                 ::InvalidateRect( ::GetDlgItem( ::GetParent( hwnd ), IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
01737             }
01738         }
01739         break;
01740     // 2005.11.30 Moca カスタム色保持
01741     case WM_DESTROY:
01742         if( ::GetProp( hwnd, _T("ptrCustomColors") ) ){
01743             ::RemoveProp( hwnd, _T("ptrCustomColors") );
01744         }
01745         break;
01746     }
01747 //  return CallWindowProc( (int (__stdcall *)(void))(WNDPROC)m_wpColorListProc, hwnd, uMsg, wParam, lParam );
01748     return CallWindowProc( (WNDPROC)m_wpColorListProc, hwnd, uMsg, wParam, lParam );
01749 }
01750
01751
01752
01753
01754
01755 /* p3 メッセージ処理 */
01756 INT_PTR CPropTypes::DispatchEvent_p3_new(
01757     HWND                hwndDlg,    // handle to dialog box
01758     UINT                uMsg,       // message
01759     WPARAM              wParam,     // first message parameter
01760     LPARAM              lParam      // second message parameter
01761 )
01762 {
01763     WORD                wNotifyCode;
01764     WORD                wID;
01765     HWND                hwndCtl;
01766     NMHDR*              pNMHDR;
01767     NM_UPDOWN*          pMNUD;
01768     int                 idCtrl;
01769     int                 nVal;
01770     int                 nIndex;
01771     static HWND         hwndListColor;
01772     LPDRAWITEMSTRUCT    pDis;
01773
01774     switch( uMsg ){
01775     case WM_INITDIALOG:
01776         // Modified by KEITA for WIN64 2003.9.6
01777 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01778
01779         hwndListColor = ::GetDlgItem( hwndDlg, IDC_LIST_COLORS );
01780
01781         /* ダイアログデータの設定 p3 */
01782         SetData_p3_new( hwndDlg );
01783
01784         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
01785         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), EM_LIMITTEXT, (WPARAM)1, 0 );
01786
01787
01788         /* 色リストをフック */
01789         // Modified by KEITA for WIN64 2003.9.6
01790         m_wpColorListProc = (WNDPROC) ::SetWindowLongPtr( hwndListColor, GWLP_WNDPROC, (LONG_PTR)ColorList_SubclassProc );
01791         // 2005.11.30 Moca カスタム色を保持
01792         ::SetProp( hwndListColor, _T("ptrCustomColors"), m_dwCustColors );
01793
01794         return TRUE;
01795
01796     case WM_COMMAND:
01797         wNotifyCode = HIWORD( wParam ); /* 通知コード */
01798         wID         = LOWORD( wParam ); /* 項目ID､ コントロールID､ またはアクセラレータID */
01799         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
01800         if( hwndListColor == hwndCtl ){
01801             switch( wNotifyCode ){
01802             case LBN_SELCHANGE:
01803                 nIndex = ::SendMessageAny( hwndListColor, LB_GETCURSEL, 0, 0 );
01804                 m_nCurrentColorType = nIndex;       /* 現在選択されている色タイプ */
01805
01806                 {
01807                     // 各種コントロールの有効／無効を切り替える // 2006.12.18 ryoji フラグ利用で簡素化
01808                     unsigned int fAttribute = g_ColorAttributeArr[nIndex].fAttribute;
01809                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DISP ),            (0 == (fAttribute & COLOR_ATTRIB_FORCE_DISP))? TRUE: FALSE );
01810                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_FAT ),             (0 == (fAttribute & COLOR_ATTRIB_NO_BOLD))? TRUE: FALSE );
01811                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_UNDERLINE ),       (0 == (fAttribute & COLOR_ATTRIB_NO_UNDERLINE))? TRUE: FALSE );
01812                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMETEXTCOLOR ),  TRUE );
01813                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_STATIC_HAIKEI ),         (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
01814                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ),      (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
01815                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMEBKCOLOR ),    (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
01816
01817                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DISP ),                (0 == (fAttribute & COLOR_ATTRIB_FORCE_DISP))? SW_SHOW: SW_HIDE );
01818                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_FAT ),             (0 == (fAttribute & COLOR_ATTRIB_NO_BOLD))? SW_SHOW: SW_HIDE );
01819                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_UNDERLINE ),           (0 == (fAttribute & COLOR_ATTRIB_NO_UNDERLINE))? SW_SHOW: SW_HIDE );
01820                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMETEXTCOLOR ),  TRUE );
01821                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_STATIC_HAIKEI ),         (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
01822                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ),      (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
01823                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMEBKCOLOR ),        (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
01824                 }
01825
01826                 /* 色分け/表示 をする */
01827                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp ){
01828                     ::CheckDlgButton( hwndDlg, IDC_CHECK_DISP, TRUE );
01829                 }else{
01830                     ::CheckDlgButton( hwndDlg, IDC_CHECK_DISP, FALSE );
01831                 }
01832                 /* 太字で表示 */
01833                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont ){
01834                     ::CheckDlgButton( hwndDlg, IDC_CHECK_FAT, TRUE );
01835                 }else{
01836                     ::CheckDlgButton( hwndDlg, IDC_CHECK_FAT, FALSE );
01837                 }
01838                 /* 下線を表示 */
01839                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine ){
01840                     ::CheckDlgButton( hwndDlg, IDC_CHECK_UNDERLINE, TRUE );
01841                 }else{
01842                     ::CheckDlgButton( hwndDlg, IDC_CHECK_UNDERLINE, FALSE );
01843                 }
01844
01845
01846                 ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
01847                 ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
01848                 return TRUE;
01849             }
01850         }
01851         switch( wNotifyCode ){
01852         /* ボタン／チェックボックスがクリックされた */
01853         case BN_CLICKED:
01854             switch( wID ){
01855             case IDC_BUTTON_SAMETEXTCOLOR: /* 文字色統一 */
01856                 {
01857                     // 2006.04.26 ryoji 文字色／背景色統一ダイアログを使う
01858                     CDlgSameColor cDlgSameColor;
01859                     COLORREF cr = m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT;
01860                     cDlgSameColor.DoModal( ::GetModuleHandle(NULL), hwndDlg, wID, &m_Types, cr );
01861                 }
01862                 ::InvalidateRect( hwndListColor, NULL, TRUE );
01863                 return TRUE;
01864
01865             case IDC_BUTTON_SAMEBKCOLOR:    /* 背景色統一 */
01866                 {
01867                     // 2006.04.26 ryoji 文字色／背景色統一ダイアログを使う
01868                     CDlgSameColor cDlgSameColor;
01869                     COLORREF cr = m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK;
01870                     cDlgSameColor.DoModal( ::GetModuleHandle(NULL), hwndDlg, wID, &m_Types, cr );
01871                 }
01872                 ::InvalidateRect( hwndListColor, NULL, TRUE );
01873                 return TRUE;
01874
01875             case IDC_BUTTON_TEXTCOLOR:  /* テキスト色 */
01876                 /* 色選択ダイアログ */
01877                 if( SelectColor( hwndDlg, &m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT, m_dwCustColors ) ){
01878                     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
01879                 }
01880                 /* 現在選択されている色タイプ */
01881 				::SendMessageAny( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
01882                 return TRUE;
01883             case IDC_BUTTON_BACKCOLOR:  /* 背景色 */
01884                 /* 色選択ダイアログ */
01885                 if( SelectColor( hwndDlg, &m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK, m_dwCustColors ) ){
01886                     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
01887                 }
01888                 /* 現在選択されている色タイプ */
01889 				::SendMessageAny( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
01890                 return TRUE;
01891             case IDC_CHECK_DISP:    /* 色分け/表示 をする */
01892                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DISP ) ){
01893                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp = TRUE;
01894                 }else{
01895                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp = FALSE;
01896                 }
01897                 /* 現在選択されている色タイプ */
01898 				::SendMessageAny( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
01899                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
01900                 return TRUE;
01901             case IDC_CHECK_FAT: /* 太字か */
01902                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_FAT ) ){
01903                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont = TRUE;
01904                 }else{
01905                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont = FALSE;
01906                 }
01907                 /* 現在選択されている色タイプ */
01908 				::SendMessageAny( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
01909                 return TRUE;
01910             case IDC_CHECK_UNDERLINE:   /* 下線を表示 */
01911                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_UNDERLINE ) ){
01912                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine = TRUE;
01913                 }else{
01914                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine = FALSE;
01915                 }
01916                 /* 現在選択されている色タイプ */
01917 				::SendMessageAny( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
01918                 return TRUE;
01919
01920             case IDC_BUTTON_IMPORT: /* 色の設定をインポート */
01921                 p3_Import_Colors( hwndDlg );
01922                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
01923                 return TRUE;
01924
01925             case IDC_BUTTON_EXPORT: /* 色の設定をエクスポート */
01926                 p3_Export_Colors( hwndDlg );
01927                 return TRUE;
01928
01929             //  From Here Sept. 10, 2000 JEPRO
01930             //  行番号区切りを任意の半角文字にするときだけ指定文字入力をEnableに設定
01931             case IDC_RADIO_LINETERMTYPE0: /* 行番号区切り 0=なし 1=縦線 2=任意 */
01932             case IDC_RADIO_LINETERMTYPE1:
01933             case IDC_RADIO_LINETERMTYPE2:
01934             //  From Here Jun. 6, 2001 genta
01935             //  行コメント開始桁指定のON/OFF
01936             case IDC_CHECK_LCPOS:
01937             case IDC_CHECK_LCPOS2:
01938             case IDC_CHECK_LCPOS3:
01939             //  To Here Jun. 6, 2001 genta
01940                 EnableTypesPropInput( hwndDlg );
01941                 return TRUE;
01942             //  To Here Sept. 10, 2000
01943
01944             //強調キーワードの選択
01945             case IDC_BUTTON_KEYWORD_SELECT:
01946                 {
01947                     CDlgKeywordSelect cDlgKeywordSelect;
01948                     //強調キーワード1を取得する。
01949                     HWND hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
01950                     int nIdx = ::SendMessageAny( hwndCombo, CB_GETCURSEL, 0, 0 );
01951                     if( CB_ERR == nIdx || 0 == nIdx ){
01952                         m_nSet[ 0 ] = -1;
01953                     }else{
01954                         m_nSet[ 0 ] = nIdx - 1;
01955                     }
01956                     cDlgKeywordSelect.DoModal( ::GetModuleHandle(NULL), hwndDlg, m_nSet );
01957                     RearrangeKeywordSet( hwndDlg ); //  Jan. 23, 2005 genta キーワードセット再配置
01958                     //強調キーワード1を反映する。
01959                     if( -1 == m_nSet[ 0 ] ){
01960 						::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)0, 0 );
01961                     }else{
01962 						::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)m_nSet[ 0 ] + 1, 0 );
01963                     }
01964                 }
01965                 break;
01966             }
01967             break;  /* BN_CLICKED */
01968         }
01969         break;  /* WM_COMMAND */
01970     case WM_NOTIFY:
01971         idCtrl = (int)wParam;
01972         pNMHDR = (NMHDR*)lParam;
01973         pMNUD  = (NM_UPDOWN*)lParam;
01974         switch( idCtrl ){
01975         //  From Here May 21, 2001 genta activate spin control
01976         case IDC_SPIN_LCColNum:
01977             /* 行コメント桁位置 */
01978             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS, NULL, FALSE );
01979             if( pMNUD->iDelta < 0 ){
01980                 ++nVal;
01981             }else
01982             if( pMNUD->iDelta > 0 ){
01983                 --nVal;
01984             }
01985             if( nVal < 1 ){
01986                 nVal = 1;
01987             }
01988             if( nVal > 1000 ){
01989                 nVal = 1000;
01990             }
01991             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS, nVal, FALSE );
01992             return TRUE;
01993         case IDC_SPIN_LCColNum2:
01994             /* 行コメント桁位置 */
01995             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS2, NULL, FALSE );
01996             if( pMNUD->iDelta < 0 ){
01997                 ++nVal;
01998             }else
01999             if( pMNUD->iDelta > 0 ){
02000                 --nVal;
02001             }
02002             if( nVal < 1 ){
02003                 nVal = 1;
02004             }
02005             if( nVal > 1000 ){
02006                 nVal = 1000;
02007             }
02008             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS2, nVal, FALSE );
02009             return TRUE;
02010         //  To Here May 21, 2001 genta activate spin control
02011
02012         //  From Here Jun. 01, 2001 JEPRO 3つ目を追加
02013         case IDC_SPIN_LCColNum3:
02014             /* 行コメント桁位置 */
02015             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS3, NULL, FALSE );
02016             if( pMNUD->iDelta < 0 ){
02017                 ++nVal;
02018             }else
02019             if( pMNUD->iDelta > 0 ){
02020                 --nVal;
02021             }
02022             if( nVal < 1 ){
02023                 nVal = 1;
02024             }
02025             if( nVal > 1000 ){
02026                 nVal = 1000;
02027             }
02028             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS3, nVal, FALSE );
02029             return TRUE;
02030         //  To Here Jun. 01, 2001
02031         default:
02032             switch( pNMHDR->code ){
02033             case PSN_HELP:
02034 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
02035 //              OnHelp( hwndDlg, IDD_PROP1P3 );
02036                 OnHelp( hwndDlg, IDD_PROP_COLOR );
02037                 return TRUE;
02038             case PSN_KILLACTIVE:
02039 //              MYTRACE_A( "p3 PSN_KILLACTIVE\n" );
02040                 /* ダイアログデータの取得 p3 */
02041                 GetData_p3_new( hwndDlg );
02042                 return TRUE;
02043 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
02044             case PSN_SETACTIVE:
02045                 m_nPageNum = 1;
02046                 return TRUE;
02047             }
02048             break;  /* default */
02049         }
02050         break;  /* WM_NOTIFY */
02051     case WM_DRAWITEM:
02052         idCtrl = (UINT) wParam;             /* コントロールのID */
02053         pDis = (LPDRAWITEMSTRUCT) lParam;   /* 項目描画情報 */
02054         switch( idCtrl ){
02055
02056         case IDC_BUTTON_TEXTCOLOR:  /* テキスト色 */
02057             DrawColorButton( pDis, m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT );
02058             return TRUE;
02059         case IDC_BUTTON_BACKCOLOR:  /* 背景色 */
02060             DrawColorButton( pDis, m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK );
02061             return TRUE;
02062         case IDC_LIST_COLORS:       /* 色種別リスト */
02063             DrawColorListItem( pDis );
02064             return TRUE;
02065         }
02066         break;
02067
02068 //@@@ 2001.02.04 Start by MIK: Popup Help
02069     case WM_HELP:
02070         {
02071             HELPINFO *p = (HELPINFO *)lParam;
02072             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids2 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
02073         }
02074         return TRUE;
02075         /*NOTREACHED*/
02076 //      break;
02077 //@@@ 2001.02.04 End
02078
02079 //@@@ 2001.11.17 add start MIK
02080     //Context Menu
02081     case WM_CONTEXTMENU:
02082         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids2 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
02083         return TRUE;
02084 //@@@ 2001.11.17 add end MIK
02085
02086     }
02087     return FALSE;
02088 }
02089
02090
02091
02092
02093
02094 /* ダイアログデータの設定 p3 */
02095 void CPropTypes::SetData_p3_new( HWND hwndDlg )
02096 {
02097
02098     HWND    hwndWork;
02099     int     i;
02100     int     nItem;
02101
02102     m_nCurrentColorType = 0;    /* 現在選択されている色タイプ */
02103
02104     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */   //@@@ 2002.09.22 YAZAKI
02105     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT )        , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );
02106     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT2 )       , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );
02107     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT3 )       , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );  //Jun. 01, 2001 JEPRO 追加
02108     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM )  , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02109     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO )    , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02110 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
02111     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2 ), EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02112     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2 )   , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02113 //#endif
02114
02115 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM , m_Types.m_cBlockComment.getBlockCommentFrom(0) ); /* ブロックコメントデリミタ(From) */
02116 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO       , m_Types.m_cBlockComment.getBlockCommentTo(0) );   /* ブロックコメントデリミタ(To) */
02117 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
02118 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2    , m_Types.m_cBlockComment.getBlockCommentFrom(1) ); /* ブロックコメントデリミタ2(From) */
02119 	::DlgItem_SetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2  , m_Types.m_cBlockComment.getBlockCommentTo(1) );   /* ブロックコメントデリミタ2(To) */
02120 //#endif
02121
02122     /* 行コメントデリミタ @@@ 2002.09.22 YAZAKI*/
02123     //  From Here May 12, 2001 genta
02124     //  行コメントの開始桁位置設定
02125     //  May 21, 2001 genta 桁位置を1から数えるように
02126     for ( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
02127         //  テキスト
02128 		::DlgItem_SetText( hwndDlg, cLineComment[i].nEditID, m_Types.m_cLineComment.getLineComment(i) );
02129
02130         //  桁数チェックと、数値
02131         int nPos = m_Types.m_cLineComment.getLineCommentPos(i);
02132         if( nPos >= 0 ){
02133             ::CheckDlgButton( hwndDlg, cLineComment[i].nCheckBoxID, TRUE );
02134             ::SetDlgItemInt( hwndDlg, cLineComment[i].nTextID, nPos + 1, FALSE );
02135         }
02136         else {
02137             ::CheckDlgButton( hwndDlg, cLineComment[i].nCheckBoxID, FALSE );
02138             ::SetDlgItemInt( hwndDlg, cLineComment[i].nTextID, (~nPos) + 1, FALSE );
02139         }
02140     }
02141
02142     if( 0 == m_Types.m_nStringType ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
02143         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_1, TRUE );
02144         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_2, FALSE );
02145     }else{
02146         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_1, FALSE );
02147         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_2, TRUE );
02148     }
02149
02150     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
02151     if( !m_Types.m_bLineNumIsCRLF ){
02152         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_LAYOUT, TRUE );
02153         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_CRLF, FALSE );
02154     }else{
02155         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_LAYOUT, FALSE );
02156         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_CRLF, TRUE );
02157     }
02158
02159
02160     /* セット名コンボボックスの値セット */
02161     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
02162 	::SendMessageAny( hwndWork, CB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
02163     /* 一行目は空白 */
02164     Combo_AddString( hwndWork, L" " );
02165     //  Mar. 31, 2003 genta KeyWordSetMgrをポインタに
02166     if( 0 < m_pCKeyWordSetMgr->m_nKeyWordSetNum ){
02167         for( i = 0; i < m_pCKeyWordSetMgr->m_nKeyWordSetNum; ++i ){
02168             Combo_AddString( hwndWork, m_pCKeyWordSetMgr->GetTypeName( i ) );
02169         }
02170         if( -1 == m_Types.m_nKeyWordSetIdx[0] ){
02171             /* セット名コンボボックスのデフォルト選択 */
02172 			::SendMessageAny( hwndWork, CB_SETCURSEL, (WPARAM)0, 0 );
02173         }else{
02174             /* セット名コンボボックスのデフォルト選択 */
02175 			::SendMessageAny( hwndWork, CB_SETCURSEL, (WPARAM)m_Types.m_nKeyWordSetIdx[0] + 1, 0 );
02176         }
02177     }
02178
02179     //強調キーワード1〜10の設定
02180     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
02181         m_nSet[ i ] = m_Types.m_nKeyWordSetIdx[i];
02182     }
02183
02184     /* 色をつける文字種類のリスト */
02185     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_COLORS );
02186 	::SendMessageAny( hwndWork, LB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
02187     for( i = 0; i < COLORIDX_LAST; ++i ){
02188         nItem = ::List_AddString( hwndWork, m_Types.m_ColorInfoArr[i].m_szName );
02189 		::SendMessageAny( hwndWork, LB_SETITEMDATA, nItem, (LPARAM)&m_Types.m_ColorInfoArr[i] );
02190     }
02191     /* 現在選択されている色タイプ */
02192 	::SendMessageAny( hwndWork, LB_SETCURSEL, m_nCurrentColorType, 0 );
02193 	::SendMessageCmd( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_COLORS, LBN_SELCHANGE ), (LPARAM)hwndWork );
02194
02195     /* 行番号区切り  0=なし 1=縦線 2=任意 */
02196     if( 0 == m_Types.m_nLineTermType ){
02197         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, TRUE );
02198         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, FALSE );
02199         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, FALSE );
02200     }else
02201     if( 1 == m_Types.m_nLineTermType ){
02202         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, FALSE );
02203         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, TRUE );
02204         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, FALSE );
02205     }else
02206     if( 2 == m_Types.m_nLineTermType ){
02207         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, FALSE );
02208         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, FALSE );
02209         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, TRUE );
02210     }
02211
02212     /* 行番号区切り文字 */
02213     wchar_t szLineTermChar[2];
02214     auto_sprintf( szLineTermChar, L"%lc", m_Types.m_cLineTermChar );
02215 	::DlgItem_SetText( hwndDlg, IDC_EDIT_LINETERMCHAR, szLineTermChar );
02216
02217     //  From Here Sept. 10, 2000 JEPRO
02218     //  行番号区切りを任意の半角文字にするときだけ指定文字入力をEnableに設定
02219     EnableTypesPropInput( hwndDlg );
02220     //  To Here Sept. 10, 2000
02221
02222
02223     // from here 2005.11.30 Moca 指定位置縦線の設定
02224     WCHAR szVertLine[MAX_VERTLINES * 15] = L"";
02225     int offset = 0;
02226     for( i = 0; i < MAX_VERTLINES && m_Types.m_nVertLineIdx[i] != 0; i++ ){
02227         CLayoutInt nXCol = m_Types.m_nVertLineIdx[i];
02228         CLayoutInt nXColEnd = nXCol;
02229         CLayoutInt nXColAdd = CLayoutInt(1);
02230         if( nXCol < 0 ){
02231             if( i < MAX_VERTLINES - 2 ){
02232                 nXCol = -nXCol;
02233                 nXColEnd = m_Types.m_nVertLineIdx[++i];
02234                 nXColAdd = m_Types.m_nVertLineIdx[++i];
02235                 if( nXColEnd < nXCol || nXColAdd <= 0 ){
02236                     continue;
02237                 }
02238                 if(offset){
02239                     szVertLine[offset] = ',';
02240                     szVertLine[offset+1] = '\0';
02241                     offset += 1;
02242                 }
02243                 offset += auto_sprintf( &szVertLine[offset], L"%d(%d,%d)", nXColAdd, nXCol, nXColEnd );
02244             }
02245         }
02246         else{
02247             if(offset){
02248                 szVertLine[offset] = ',';
02249                 szVertLine[offset+1] = '\0';
02250                 offset += 1;
02251             }
02252             offset += auto_sprintf( &szVertLine[offset], L"%d", nXCol );
02253         }
02254     }
02255     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_VERTLINE ), EM_LIMITTEXT, (WPARAM)(MAX_VERTLINES * 15), 0 );
02256 	::DlgItem_SetText( hwndDlg, IDC_EDIT_VERTLINE, szVertLine );
02257     // to here 2005.11.30 Moca 指定位置縦線の設定
02258     return;
02259 }
02260
02261
02262
02263
02264
02265 /* ダイアログデータの取得 p3 */
02266 int CPropTypes::GetData_p3_new( HWND hwndDlg )
02267 {
02268     int     nIdx;
02269     HWND    hwndWork;
02270
02271 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
02272 //  m_nPageNum = 1;
02273
02274     //  From Here May 12, 2001 genta
02275     //  コメントの開始桁位置の取得
02276     //  May 21, 2001 genta 桁位置を1から数えるように
02277     wchar_t buffer[COMMENT_DELIMITER_BUFFERSIZE];   //@@@ 2002.09.22 YAZAKI LineCommentを取得するためのバッファ
02278     int pos;
02279     UINT en;
02280     BOOL bTranslated;
02281
02282     int i;
02283     for( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
02284         en = ::IsDlgButtonChecked( hwndDlg, cLineComment[i].nCheckBoxID );
02285         pos = ::GetDlgItemInt( hwndDlg, cLineComment[i].nTextID, &bTranslated, FALSE );
02286         if( bTranslated != TRUE ){
02287             en = 0;
02288             pos = 0;
02289         }
02290         //  pos == 0のときは無効扱い
02291         if( pos == 0 )  en = 0;
02292         else            --pos;
02293         //  無効のときは1の補数で格納
02294
02295 		::DlgItem_GetText( hwndDlg, cLineComment[i].nEditID       , buffer    , COMMENT_DELIMITER_BUFFERSIZE );       /* 行コメントデリミタ */
02296         m_Types.m_cLineComment.CopyTo( i, buffer, en ? pos : ~pos );
02297     }
02298
02299     wchar_t szFromBuffer[BLOCKCOMMENT_BUFFERSIZE];  //@@@ 2002.09.22 YAZAKI
02300     wchar_t szToBuffer[BLOCKCOMMENT_BUFFERSIZE];    //@@@ 2002.09.22 YAZAKI
02301
02302 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM , szFromBuffer  , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(From) */
02303 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO       , szToBuffer    , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(To) */
02304     m_Types.m_cBlockComment.CopyTo( 0, szFromBuffer, szToBuffer );
02305
02306 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2    , szFromBuffer  , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(From) */
02307 	::DlgItem_GetText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2  , szToBuffer    , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(To) */
02308     m_Types.m_cBlockComment.CopyTo( 1, szFromBuffer, szToBuffer );
02309
02310     /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
02311     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_ESCAPETYPE_1 ) ){
02312         m_Types.m_nStringType = 0;
02313     }else{
02314         m_Types.m_nStringType = 1;
02315     }
02316     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
02317     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINENUM_LAYOUT ) ){
02318         m_Types.m_bLineNumIsCRLF = FALSE;
02319     }else{
02320         m_Types.m_bLineNumIsCRLF = TRUE;
02321     }
02322
02323     /* セット名コンボボックスの値セット */
02324     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
02325     nIdx = ::SendMessageAny( hwndWork, CB_GETCURSEL, 0, 0 );
02326     if( CB_ERR == nIdx ||
02327         0 == nIdx ){
02328         m_Types.m_nKeyWordSetIdx[0] = -1;
02329     }else{
02330         m_Types.m_nKeyWordSetIdx[0] = nIdx - 1;
02331
02332     }
02333
02334     //強調キーワード2〜10の取得(1は別)
02335     for( nIdx = 1; nIdx < MAX_KEYWORDSET_PER_TYPE; nIdx++ ){
02336         m_Types.m_nKeyWordSetIdx[nIdx] = m_nSet[nIdx];
02337     }
02338
02339     /* 行番号区切り  0=なし 1=縦線 2=任意 */
02340     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE0 ) ){
02341         m_Types.m_nLineTermType = 0;
02342     }else
02343     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE1 ) ){
02344         m_Types.m_nLineTermType = 1;
02345     }else
02346     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE2 ) ){
02347         m_Types.m_nLineTermType = 2;
02348     }
02349
02350
02351     /* 行番号区切り文字 */
02352     wchar_t szLineTermChar[2];
02353 	::DlgItem_GetText( hwndDlg, IDC_EDIT_LINETERMCHAR, szLineTermChar, 2 );
02354     m_Types.m_cLineTermChar = szLineTermChar[0];
02355
02356
02357     // from here 2005.11.30 Moca 指定位置縦線の設定
02358     WCHAR szVertLine[MAX_VERTLINES * 15];
02359 	::DlgItem_GetText( hwndDlg, IDC_EDIT_VERTLINE, szVertLine, MAX_VERTLINES * 15 );
02360
02361     int offset = 0;
02362     i = 0;
02363     while( i < MAX_VERTLINES ){
02364         int value = 0;
02365         for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02366             value = szVertLine[offset] - '0' + value * 10;
02367         }
02368         if( value <= 0 ){
02369             break;
02370         }
02371         if( szVertLine[offset] == '(' ){
02372             offset++;
02373             int valueBegin = 0;
02374             int valueEnd = 0;
02375             for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02376                 valueBegin = szVertLine[offset] - '0' + valueBegin * 10;
02377             }
02378             if( valueBegin <= 0 ){
02379                 break;
02380             }
02381             if( szVertLine[offset] == ',' ){
02382                 offset++;
02383             }else if( szVertLine[offset] != ')' ){
02384                 break;
02385             }
02386             for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02387                 valueEnd = szVertLine[offset] - '0' + valueEnd * 10;
02388             }
02389             if( valueEnd <= 0 ){
02390                 valueEnd = MAXLINEKETAS;
02391             }
02392             if( szVertLine[offset] != ')' ){
02393                 break;
02394             }
02395             offset++;
02396             if(i + 2 < MAX_VERTLINES){
02397                 m_Types.m_nVertLineIdx[i++] = CLayoutInt(-valueBegin);
02398                 m_Types.m_nVertLineIdx[i++] = CLayoutInt(valueEnd);
02399                 m_Types.m_nVertLineIdx[i++] = CLayoutInt(value);
02400             }
02401             else{
02402                 break;
02403             }
02404         }
02405         else{
02406             m_Types.m_nVertLineIdx[i++] = CLayoutInt(value);
02407         }
02408         if( szVertLine[offset] != ',' ){
02409             break;
02410         }
02411         offset++;
02412     }
02413     if( i < MAX_VERTLINES ){
02414         m_Types.m_nVertLineIdx[i] = CLayoutInt(0);
02415     }
02416     // to here 2005.11.30 Moca 指定位置縦線の設定
02417     return TRUE;
02418 }
02419
02420
02421
02422
02423
02424 /* 色種別リスト オーナー描画 */
02425 void CPropTypes::DrawColorListItem( DRAWITEMSTRUCT* pDis )
02426 {
02427     HBRUSH      hBrush;
02428     HBRUSH      hBrushOld;
02429     HPEN        hPen;
02430     HPEN        hPenOld;
02431     ColorInfo*  pColorInfo;
02432 //  RECT        rc0,rc1,rc2;
02433     RECT        rc1;
02434     COLORREF    cRim = (COLORREF)::GetSysColor( COLOR_3DSHADOW );
02435
02436     if( pDis == NULL || pDis->itemData == NULL ) return;
02437
02438 //  rc0 = pDis->rcItem;
02439     rc1 = pDis->rcItem;
02440 //  rc2 = pDis->rcItem;
02441
02442     /* アイテムデータの取得 */
02443     pColorInfo = (ColorInfo*)pDis->itemData;
02444
02445     /* アイテム矩形塗りつぶし */
02446     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
02447     ::FillRect( pDis->hDC, &pDis->rcItem, hBrush );
02448     ::DeleteObject( hBrush );
02449
02450
02451     /* アイテムが選択されている */
02452     if( pDis->itemState & ODS_SELECTED ){
02453         hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_HIGHLIGHT ) );
02454         ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );
02455     }else{
02456         hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
02457         ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
02458     }
02459
02460 //  /* 選択ハイライト矩形 */
02461 //  ::FillRect( pDis->hDC, &rc1, hBrush );
02462 //  ::DeleteObject( hBrush );
02463 //  /* テキスト */
02464 //  ::SetBkMode( pDis->hDC, TRANSPARENT );
02465 //  ::TextOutW_AnyBuild( pDis->hDC, rc1.left, rc1.top, pColorInfo->m_szName, wcslen( pColorInfo->m_szName ) );
02466 //  if( pColorInfo->m_bFatFont ){   /* 太字か */
02467 //      ::TextOutW_AnyBuild( pDis->hDC, rc1.left + 1, rc1.top, pColorInfo->m_szName, wcslen( pColorInfo->m_szName ) );
02468 //  }
02469 //  return;
02470
02471
02472     rc1.left+= (2 + 16);
02473     rc1.top += 2;
02474     rc1.right -= ( 2 + 27 );
02475     rc1.bottom -= 2;
02476     /* 選択ハイライト矩形 */
02477     ::FillRect( pDis->hDC, &rc1, hBrush );
02478     ::DeleteObject( hBrush );
02479     /* テキスト */
02480     ::SetBkMode( pDis->hDC, TRANSPARENT );
02481     ::TextOut( pDis->hDC, rc1.left, rc1.top, pColorInfo->m_szName, _tcslen( pColorInfo->m_szName ) );
02482     if( pColorInfo->m_bFatFont ){   /* 太字か */
02483         ::TextOut( pDis->hDC, rc1.left + 1, rc1.top, pColorInfo->m_szName, _tcslen( pColorInfo->m_szName ) );
02484     }
02485     if( pColorInfo->m_bUnderLine ){ /* 下線か */
02486         SIZE    sz;
02487         ::GetTextExtentPoint32( pDis->hDC, pColorInfo->m_szName, _tcslen( pColorInfo->m_szName ), &sz );
02488         ::MoveToEx( pDis->hDC, rc1.left,        rc1.bottom - 2, NULL );
02489         ::LineTo( pDis->hDC, rc1.left + sz.cx,  rc1.bottom - 2 );
02490         ::MoveToEx( pDis->hDC, rc1.left,        rc1.bottom - 1, NULL );
02491         ::LineTo( pDis->hDC, rc1.left + sz.cx,  rc1.bottom - 1 );
02492     }
02493
02494     /* アイテムにフォーカスがある */   // 2006.05.01 ryoji 描画条件の不正を修正
02495     if( pDis->itemState & ODS_FOCUS ){
02496         ::DrawFocusRect( pDis->hDC, &pDis->rcItem );
02497     }
02498
02499     /* 「色分け/表示する」のチェック */
02500     rc1 = pDis->rcItem;
02501     rc1.left += 2;
02502     rc1.top += 3;
02503     rc1.right = rc1.left + 12;
02504     rc1.bottom = rc1.top + 12;
02505     if( pColorInfo->m_bDisp ){  /* 色分け/表示する */
02506         // 2006.04.26 ryoji テキスト色を使う（「ハイコントラスト黒」のような設定でも見えるように）
02507         hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_WINDOWTEXT ) );
02508         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02509
02510         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02511         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02512         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02513         rc1.top -= 1;
02514         rc1.bottom -= 1;
02515         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02516         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02517         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02518         rc1.top -= 1;
02519         rc1.bottom -= 1;
02520         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02521         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02522         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02523
02524         ::SelectObject( pDis->hDC, hPenOld );
02525         ::DeleteObject( hPen );
02526     }
02527 //  return;
02528
02529
02530     // 2002/11/02 Moca 比較方法変更
02531 //  if( 0 != strcmp( "カーソル行アンダーライン", pColorInfo->m_szName ) )
02532     if ( 0 == (g_ColorAttributeArr[pColorInfo->m_nColorIdx].fAttribute & COLOR_ATTRIB_NO_BACK) )    // 2006.12.18 ryoji フラグ利用で簡素化
02533     {
02534         /* 背景色 見本矩形 */
02535         rc1 = pDis->rcItem;
02536         rc1.left = rc1.right - 13;
02537         rc1.top += 2;
02538         rc1.right = rc1.left + 12;
02539         rc1.bottom -= 2;
02540
02541         hBrush = ::CreateSolidBrush( pColorInfo->m_colBACK );
02542         hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
02543         hPen = ::CreatePen( PS_SOLID, 1, cRim );
02544         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02545         ::RoundRect( pDis->hDC, rc1.left, rc1.top, rc1.right, rc1.bottom , 3, 3 );
02546         ::SelectObject( pDis->hDC, hPenOld );
02547         ::SelectObject( pDis->hDC, hBrushOld );
02548         ::DeleteObject( hPen );
02549         ::DeleteObject( hBrush );
02550     }
02551
02552
02553     /* 前景色 見本矩形 */
02554     rc1 = pDis->rcItem;
02555     rc1.left = rc1.right - 27;
02556     rc1.top += 2;
02557     rc1.right = rc1.left + 12;
02558     rc1.bottom -= 2;
02559     hBrush = ::CreateSolidBrush( pColorInfo->m_colTEXT );
02560     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
02561     hPen = ::CreatePen( PS_SOLID, 1, cRim );
02562     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02563     ::RoundRect( pDis->hDC, rc1.left, rc1.top, rc1.right, rc1.bottom , 3, 3 );
02564     ::SelectObject( pDis->hDC, hPenOld );
02565     ::SelectObject( pDis->hDC, hBrushOld );
02566     ::DeleteObject( hPen );
02567     ::DeleteObject( hBrush );
02568
02569
02570
02571
02572
02573 //  ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
02574 //  ::SetBkColor( pDis->hDC, ::GetSysColor( COLOR_WINDOW ) );
02575 //  ::TextOutW_AnyBuild( pDis->hDC, pDis->rcItem.left + 3, pDis->rcItem.top + 3, pColorInfo->m_szName, wcslen( pColorInfo->m_szName ) );
02576
02577 //  ::SetTextColor( pDis->hDC, pColorInfo->m_colTEXT );
02578 //  ::SetBkColor( pDis->hDC, pColorInfo->m_colBACK );
02579 //  ::TextOutW_AnyBuild( pDis->hDC, pDis->rcItem.left + 3 + 128, pDis->rcItem.top + 3, gpColorInfo->m_szName, wcslen( pColorInfo->m_szName ) );
02580     return;
02581 }
02582
02583
02584 /* ヘルプ */
02585 //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
02586 void CPropTypes::OnHelp( HWND hwndParent, int nPageID )
02587 {
02588     int     nContextID;
02589     switch( nPageID ){
02590     case IDD_PROPTYPESP1:
02591         nContextID = ::FuncID_To_HelpContextID(F_TYPE_SCREEN);
02592         break;
02593 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
02594 //  case IDD_PROP1P3:
02595     case IDD_PROP_COLOR:
02596         nContextID = ::FuncID_To_HelpContextID(F_TYPE_COLOR);
02597         break;
02598 //  Jul. 03, 2001 JEPRO 支援タブのヘルプを有効化
02599         case IDD_PROPTYPESP2:
02600         nContextID = ::FuncID_To_HelpContextID(F_TYPE_HELPER);
02601         break;
02602 //@@@ 2001.11.17 add start MIK
02603     case IDD_PROP_REGEX:
02604         nContextID = ::FuncID_To_HelpContextID(F_TYPE_REGEX_KEYWORD);
02605         break;
02606 //@@@ 2001.11.17 add end MIK
02607     case IDD_PROP_KEYHELP:
02608         nContextID = ::FuncID_To_HelpContextID(F_TYPE_KEYHELP);
02609         break;
02610     default:
02611         nContextID = -1;
02612         break;
02613     }
02614     if( -1 != nContextID ){
02615         MyWinHelp( hwndParent, m_szHelpFile, HELP_CONTEXT, nContextID );    // 2006.10.10 ryoji MyWinHelpに変更に変更
02616     }
02617     return;
02618 }
02619
02620
02621
02622
02623
02624 //  From Here Sept. 10, 2000 JEPRO
02625 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
02626 //  適切に設定する
02627 void CPropTypes::EnableTypesPropInput( HWND hwndDlg )
02628 {
02629     //  行番号区切りを任意の半角文字にするかどうか
02630     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE2 ) ){
02631         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LINETERMCHAR ), TRUE );
02632         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), TRUE );
02633     }else{
02634         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LINETERMCHAR ), FALSE );
02635         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), FALSE );
02636     }
02637
02638     //  From Here Jun. 6, 2001 genta
02639     //  行コメント開始桁位置入力ボックスのEnable/Disable設定
02640     //  1つ目
02641     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS ) ){
02642         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS ), TRUE );
02643         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS ), TRUE );
02644         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum ), TRUE );
02645     }else{
02646         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS ), FALSE );
02647         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS ), FALSE );
02648         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum ), FALSE );
02649     }
02650     //  2つ目
02651     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS2 ) ){
02652         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS2 ), TRUE );
02653         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS2 ), TRUE );
02654         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum2 ), TRUE );
02655     }else{
02656         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS2 ), FALSE );
02657         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS2 ), FALSE );
02658         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum2 ), FALSE );
02659     }
02660     //  3つ目
02661     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS3 ) ){
02662         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS3 ), TRUE );
02663         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS3 ), TRUE );
02664         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum3 ), TRUE );
02665     }else{
02666         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS3 ), FALSE );
02667         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS3 ), FALSE );
02668         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum3 ), FALSE );
02669     }
02670     //  To Here Jun. 6, 2001 genta
02671 }
02672 //  To Here Sept. 10, 2000
02673
02689 void CPropTypes::RearrangeKeywordSet( HWND hwndDlg )
02690 {
02691     int i, j;
02692     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
02693         if( m_nSet[ i ] != -1 )
02694             continue;
02695
02696         //  未設定の場合
02697         for( j = i; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
02698             if( m_nSet[ j ] != -1 ){
02699                 //  後ろに設定済み項目があった場合
02700                 m_nSet[ i ] = m_nSet[ j ];
02701                 m_nSet[ j ] = -1;
02702
02703                 //  色設定を入れ替える
02704                 //  構造体ごと入れ替えると名前が変わってしまうので注意
02705                 ColorInfo colT;
02706                 ColorInfo &col1 = m_Types.m_ColorInfoArr[ COLORIDX_KEYWORD1 + i ];
02707                 ColorInfo &col2   = m_Types.m_ColorInfoArr[ COLORIDX_KEYWORD1 + j ];
02708
02709                 colT.m_bDisp        = col1.m_bDisp;
02710                 colT.m_bFatFont     = col1.m_bFatFont;
02711                 colT.m_bUnderLine   = col1.m_bUnderLine;
02712                 colT.m_colTEXT      = col1.m_colTEXT;
02713                 colT.m_colBACK      = col1.m_colBACK;
02714
02715                 col1.m_bDisp        = col2.m_bDisp;
02716                 col1.m_bFatFont     = col2.m_bFatFont;
02717                 col1.m_bUnderLine   = col2.m_bUnderLine;
02718                 col1.m_colTEXT      = col2.m_colTEXT;
02719                 col1.m_colBACK      = col2.m_colBACK;
02720
02721                 col2.m_bDisp        = colT.m_bDisp;
02722                 col2.m_bFatFont     = colT.m_bFatFont;
02723                 col2.m_bUnderLine   = colT.m_bUnderLine;
02724                 col2.m_colTEXT      = colT.m_colTEXT;
02725                 col2.m_colBACK      = colT.m_colBACK;
02726
02727                 break;
02728             }
02729         }
02730         if( j == MAX_KEYWORDSET_PER_TYPE ){
02731             //  後ろには設定済み項目がなかった
02732             break;
02733         }
02734     }
02735
02736     //  リストボックス及び色設定ボタンを再描画
02737     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
02738     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
02739     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_LIST_COLORS ), NULL, TRUE );
02740 }
02741
02742
02743 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypes.h

sakura_core

CPropTypes.h

タイプ別設定ダイアログボックス [詳細]

#include <windows.h>
#include "CShareData.h"

CPropTypes.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CPropTypes
タイプ別設定ダイアログボックス [詳細]

マクロ定義

#define | STR_COLORDATA_HEAD3 " �e�L�X�g�G�f�B�^�F�ݒ� Ver3"
#define | STR_COLORDATA_SECTION "SakuraColor"

説明

タイプ別設定ダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/08 新規作成

CPropTypes.h で定義されています。

マクロ定義

#define STR_COLORDATA_HEAD3 " �e�L�X�g�G�f�B�^�F�ݒ� Ver3"

CPropTypes.h の 33 行で定義されています。

参照元 CPropTypes::p3_Export_Colors(), と CPropTypes::p3_Import_Colors().

#define STR_COLORDATA_SECTION "SakuraColor"

CPropTypes.h の 35 行で定義されています。

参照元 CPropTypes::p3_Export_Colors(), と CPropTypes::p3_Import_Colors().

Sakura-Editorに対してSat Nov 17 20:26:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypes.h ソースファイル

sakura_core

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 -----------------------------------------------------------------------*/
00031 //#define STR_COLORDATA_HEAD2   " テキストエディタ色設定 Ver2"
00032 //#define STR_COLORDATA_HEAD21  " テキストエディタ色設定 Ver2.1" //Nov. 2, 2000 JEPRO 変更 [注]. 0.3.9.0:ur3β10以降、設定項目の番号を入れ替えたため
00033 #define STR_COLORDATA_HEAD3 " テキストエディタ色設定 Ver3"       //Jan. 15, 2001 Stonee  色設定Ver3ドラフト(設定ファイルのキーを連番→文字列に)  //Feb. 11, 2001 JEPRO 有効にした
00034 //#define STR_COLORDATA_HEAD4       " テキストエディタ色設定 Ver4"       //2007.10.02 kobake UNICODE化に際してカラーファイル仕様も変更
00035 #define STR_COLORDATA_SECTION   "SakuraColor"
00036
00037
00038 /*-----------------------------------------------------------------------
00039 クラスの宣言
00040 -----------------------------------------------------------------------*/
00046 class SAKURA_CORE_API CPropTypes
00047 {
00048 public:
00049     /*
00050     ||  Constructors
00051     */
00052     CPropTypes();
00053     ~CPropTypes();
00054     void Create( HINSTANCE, HWND ); /* 初期化 */
00055
00056     /*
00057     ||  Attributes & Operations
00058     */
00059     int DoPropertySheet( int ); /* プロパティシートの作成 */
00060     INT_PTR DispatchEvent_p1( HWND, UINT, WPARAM, LPARAM ); /* p1 メッセージ処理 */
00061     INT_PTR DispatchEvent_p2( HWND, UINT, WPARAM, LPARAM ); /* p2 メッセージ処理 支援タブ */ // 2001/06/14 asa-o
00062     INT_PTR DispatchEvent_p3( HWND, UINT, WPARAM, LPARAM ); /* p3 メッセージ処理 */
00063     INT_PTR DispatchEvent_p3_new( HWND, UINT, WPARAM, LPARAM ); /* p3 メッセージ処理 */
00064     static BOOL SelectColor( HWND , COLORREF*, DWORD* );    /* 色選択ダイアログ */
00065     INT_PTR DispatchEvent_Regex( HWND, UINT, WPARAM, LPARAM );  /* メッセージ処理 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00066     INT_PTR DispatchEvent_KeyHelp( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 キーワード辞書選択 */ //@@@ 2006.04.10 fon
00067
00068 private:
00069     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00070     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00071     HWND        m_hwndThis;     /* このダイアログのハンドル */
00072     int         m_nPageNum;
00073
00074     /*
00075     || ダイアログデータ
00076     */
00077     SFilePath       m_szHelpFile;
00078     CLayoutInt      m_nMaxLineKetas_org;                    /* 折り返し桁数 */
00079     Types           m_Types;
00080     CKeyWordSetMgr* m_pCKeyWordSetMgr;  // Mar. 31, 2003 genta メモリ削減のためポインタに
00081     int             m_nCurrentColorType;        /* 現在選択されている色タイプ */
00082     DLLSHAREDATA*   m_pShareData;
00083     int     m_nSet[ MAX_KEYWORDSET_PER_TYPE ];  //  2005.01.13 MIK keyword set index
00084
00085     // フォントDialogカスタムパレット
00086     DWORD           m_dwCustColors[16];
00087
00088 protected:
00089     /*
00090     ||  実装ヘルパ関数
00091     */
00092     void OnHelp( HWND , int );  /* ヘルプ */
00093     //void DrawToolBarItemList( DRAWITEMSTRUCT* );  /* ツールバーボタンリストのアイテム描画 */// 20050809 aroka 未使用
00094     void DrawColorButton( DRAWITEMSTRUCT* , COLORREF ); /* 色ボタンの描画 */
00095     void SetData_p1( HWND );    /* ダイアログデータの設定 p1 */
00096     int  GetData_p1( HWND );    /* ダイアログデータの取得 p1 */
00097
00098     // 2001/06/14 asa-o
00099     void SetData_p2( HWND );    /* ダイアログデータの設定 p2 支援タブ */
00100     int  GetData_p2( HWND );    /* ダイアログデータの取得 p2 支援タブ */
00101
00102     void SetData_p3( HWND );    /* ダイアログデータの設定 p3 */
00103     int  GetData_p3( HWND );    /* ダイアログデータの取得 p3 */
00104     void SetData_p3_new( HWND );    /* ダイアログデータの設定 p3 */
00105     int  GetData_p3_new( HWND );    /* ダイアログデータの取得 p3 */
00106     void p3_Import_Colors( HWND );  /* 色の設定をインポート */
00107     void p3_Export_Colors( HWND );  /* 色の設定をエクスポート */
00108     void DrawColorListItem( DRAWITEMSTRUCT*);   /* 色種別リスト オーナー描画 */
00109
00110     //  Sept. 10, 2000 JEPRO 次行を追加
00111     void EnableTypesPropInput( HWND hwndDlg );  //  タイプ別設定のカラー設定のON/OFF
00112
00113     void SetData_Regex( HWND ); /* ダイアログデータの設定 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00114     int  GetData_Regex( HWND ); /* ダイアログデータの取得 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00115     BOOL Import_Regex( HWND );  //@@@ 2001.11.17 add MIK
00116     BOOL Export_Regex( HWND );  //@@@ 2001.11.17 add MIK
00117     static INT_PTR CALLBACK PropTypesRegex( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );    //@@@ 2001.11.17 add MIK
00118     BOOL RegexKakomiCheck(const wchar_t *s);    //@@@ 2001.11.17 add MIK
00119
00120     void RearrangeKeywordSet( HWND );   // Jan. 23, 2005 genta キーワードセット再配置
00121
00122     // 2006.04.10 fon
00123     void SetData_KeyHelp( HWND );   /* ダイアログデータの設定 キーワード辞書選択 */
00124     int  GetData_KeyHelp( HWND );   /* ダイアログデータの取得 キーワード辞書選択 */
00125     BOOL Import_KeyHelp( HWND );    //@@@ 2006.04.10 fon
00126     BOOL Export_KeyHelp( HWND );    //@@@ 2006.04.10 fon
00127     static INT_PTR CALLBACK PropTypesKeyHelp( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00128
00129 public:
00130     //  Jan. 23, 2005 genta
00131     //  タイプ別設定データの設定・取得
00132     void SetTypeData( const Types& t ){ m_Types = t; }
00133     void GetTypeData( Types& t ) const { t = m_Types; }
00134 };
00135
00136
00137
00139 #endif /* _CPROPTYPES_H_ */
00140
00141
00142 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypesKeyHelp.cpp

sakura_core

CPropTypesKeyHelp.cpp

#include "stdafx.h"
#include "global.h"
#include "sakura_rc.h"
#include "CPropTypes.h"
#include "debug.h"
#include "CDlgOpenFile.h"
#include <stdio.h>
#include "charcode.h"
#include "sakura.hh"
#include "CharPointer.h"
#include "io/CTextStream.h"
#include "util/shell.h"
#include "util/file.h"
#include "util/module.h"

CPropTypesKeyHelp.cppのインクルード依存関係図

ソースコードを見る。

関数

static TCHAR * | strcnv (TCHAR *str)
static TCHAR * | GetFileName (const TCHAR *fullpath)

変数

static const DWORD | p_helpids []

説明

タイプ別設定キーワードヘルプページ

作者:
fon
日付:
2006/04/10 新規作成

CPropTypesKeyHelp.cpp で定義されています。

関数

static TCHAR * GetFileName ( const TCHAR * fullpath ) [static]

フルパスからファイル名を返す

日付:
2006.04.10 fon 新規作成

2006.09.14 genta ディレクトリがない場合に最初の1文字が切れないように

CPropTypesKeyHelp.cpp の 896 行で定義されています。

参照元 CViewCommander::Command_COPYFILENAME(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagJumpByTagsFileKeyword(), CViewCommander::Command_TagsMake(), CPropTypes::DispatchEvent_KeyHelp(), と CPropTypes::SetData_KeyHelp().

static TCHAR * strcnv ( TCHAR * str ) [static]

辞書の説明のフォーマット揃え

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 874 行で定義されています。

参照先 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 の 48 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypesKeyHelp.cpp ソースファイル

sakura_core

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 <stdio.h>  //@@@ 2001.11.17 add MIK
00039 #include "charcode.h"
00040 #include "sakura.hh"
00041 #include "CharPointer.h"
00042 #include "io/CTextStream.h"
00043 #include "util/shell.h"
00044 #include "util/file.h"
00045 #include "util/module.h"
00046 using namespace std;
00047
00048 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00049     IDC_CHECK_KEYHELP,              HIDC_CHECK_KEYHELP,             //キーワードヘルプ機能を使う
00050 //  IDC_FRAME_KEYHELP,              HIDC_LIST_KEYHELP,              //辞書ファイル一覧(&L)
00051     IDC_LIST_KEYHELP,               HIDC_LIST_KEYHELP,              //SysListView32
00052     IDC_BUTTON_KEYHELP_UPD,         HIDC_BUTTON_KEYHELP_UPD,        //更新(&E)
00053 //  IDC_LABEL_KEYHELP_KEYWORD,      HIDC_EDIT_KEYHELP,              //辞書ファイル
00054     IDC_EDIT_KEYHELP,               HIDC_EDIT_KEYHELP,              //EDITTEXT
00055     IDC_BUTTON_KEYHELP_REF,         HIDC_BUTTON_KEYHELP_REF,        //参照(&O)...
00056     IDC_BUTTON_KEYHELP_TOP,         HIDC_BUTTON_KEYHELP_TOP,        //先頭(&T)
00057     IDC_BUTTON_KEYHELP_UP,          HIDC_BUTTON_KEYHELP_UP,         //上へ(&U)
00058     IDC_BUTTON_KEYHELP_DOWN,        HIDC_BUTTON_KEYHELP_DOWN,       //下へ(&G)
00059     IDC_BUTTON_KEYHELP_LAST,        HIDC_BUTTON_KEYHELP_LAST,       //最終(&B)
00060     IDC_BUTTON_KEYHELP_INS,         HIDC_BUTTON_KEYHELP_INS,        //挿入(&S)
00061     IDC_BUTTON_KEYHELP_DEL,         HIDC_BUTTON_KEYHELP_DEL,        //削除(&D)
00062     IDC_CHECK_KEYHELP_ALLSEARCH,    HIDC_CHECK_KEYHELP_ALLSEARCH,   //全辞書検索する(&A)
00063     IDC_CHECK_KEYHELP_KEYDISP,      HIDC_CHECK_KEYHELP_KEYDISP,     //キーワードも表示する(&W)
00064     IDC_CHECK_KEYHELP_PREFIX,       HIDC_CHECK_KEYHELP_PREFIX,      //前方一致検索(&P)
00065     IDC_BUTTON_KEYHELP_IMPORT,      HIDC_BUTTON_KEYHELP_IMPORT,     //インポート
00066     IDC_BUTTON_KEYHELP_EXPORT,      HIDC_BUTTON_KEYHELP_EXPORT,     //エクスポート
00067     0, 0
00068 };
00069
00070 static TCHAR* strcnv(TCHAR *str);
00071 static TCHAR* GetFileName(const TCHAR *fullpath);
00072
00077 INT_PTR CALLBACK CPropTypes::PropTypesKeyHelp(
00078     HWND    hwndDlg,    // handle to dialog box
00079     UINT    uMsg,       // message
00080     WPARAM  wParam,     // first message parameter
00081     LPARAM  lParam      // second message parameter
00082 )
00083 {
00084     PROPSHEETPAGE*  pPsp;
00085     CPropTypes* pCPropTypes;
00086     switch( uMsg ){
00087     case WM_INITDIALOG:
00088         pPsp = (PROPSHEETPAGE*)lParam;
00089         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00090         if( NULL != pCPropTypes ){
00091             return pCPropTypes->DispatchEvent_KeyHelp( hwndDlg, uMsg, wParam, pPsp->lParam );
00092         }break;
00093     default:
00094         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00095         if( NULL != pCPropTypes ){
00096             return pCPropTypes->DispatchEvent_KeyHelp( hwndDlg, uMsg, wParam, lParam );
00097         }break;
00098     }
00099     return FALSE;
00100 }
00101
00106 INT_PTR CPropTypes::DispatchEvent_KeyHelp(
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, hwndList;
00116     int     idCtrl;
00117     NMHDR*  pNMHDR;
00118     int     nIndex, nIndex2;
00119     LV_ITEM lvi;
00120     LV_COLUMN   col;
00121     RECT        rc;
00122     static int  nPrevIndex = -1;    //更新時におかしくなるバグ修正 @@@ 2003.03.26 MIK
00123
00124     BOOL    bUse;                       /* 辞書を 使用する/しない */
00125     TCHAR   szAbout[DICT_ABOUT_LEN];    /* 辞書の説明(辞書ファイルの1行目から生成) */
00126     TCHAR   szPath[_MAX_PATH];          /* ファイルパス */
00127     DWORD   dwStyle;
00128
00129     hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00130
00131     switch( uMsg ){
00132     case WM_INITDIALOG:
00133 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00134         /* カラム追加 */
00135         ::GetWindowRect( hwndList, &rc );
00136         /* リストにチェックボックスを追加 */
00137         dwStyle = ListView_GetExtendedListViewStyle(hwndList);
00138         dwStyle |= LVS_EX_CHECKBOXES /*| LVS_EX_FULLROWSELECT*/ | LVS_EX_GRIDLINES;
00139         ListView_SetExtendedListViewStyle(hwndList, dwStyle);
00140
00141         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00142         col.fmt      = LVCFMT_LEFT;
00143         col.cx       = (rc.right - rc.left) * 25 / 100;
00144         col.pszText  = _T("   辞書ファイル"); /* 指定辞書ファイルの使用可否 */
00145         col.iSubItem = 0;
00146         ListView_InsertColumn( hwndList, 0, &col );
00147         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00148         col.fmt      = LVCFMT_LEFT;
00149         col.cx       = (rc.right - rc.left) * 55 / 100;
00150         col.pszText  = _T("辞書の説明");       /* 指定辞書の１行目を取得 */
00151         col.iSubItem = 1;
00152         ListView_InsertColumn( hwndList, 1, &col );
00153         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00154         col.fmt      = LVCFMT_LEFT;
00155         col.cx       = (rc.right - rc.left) * 18 / 100;
00156         col.pszText  = _T("パス");                /* 指定辞書ファイルパス */
00157         col.iSubItem = 2;
00158         ListView_InsertColumn( hwndList, 2, &col );
00159         nPrevIndex = -1;    //@@@ 2003.05.12 MIK
00160         SetData_KeyHelp( hwndDlg ); /* ダイアログデータの設定 辞書ファイル一覧 */
00161
00162         /* リストがあれば先頭をフォーカスする */
00163         if(ListView_GetItemCount(hwndList) > 0){
00164             ListView_SetItemState( hwndList, 0, LVIS_SELECTED /*| LVIS_FOCUSED*/, LVIS_SELECTED /*| LVIS_FOCUSED*/ );
00165         }
00166         /* リストがなければ初期値として用途を表示 */
00167         else{
00168 			::DlgItem_SetText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, _T("辞書ファイルの１行目の文字列") );
00169 			::DlgItem_SetText( hwndDlg, IDC_EDIT_KEYHELP, _T("キーワード辞書ファイル パス") );
00170         }
00171
00172         /* 初期状態を設定 */
00173         SendMessageCmd(hwndDlg, WM_COMMAND, (WPARAM)MAKELONG(IDC_CHECK_KEYHELP,BN_CLICKED), 0 );
00174
00175         return TRUE;
00176
00177     case WM_COMMAND:
00178         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00179         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00180         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00181
00182         switch( wNotifyCode ){
00183         /* ボタン／チェックボックスがクリックされた */
00184         case BN_CLICKED:
00185
00186             switch( wID ){
00187             case IDC_CHECK_KEYHELP: /* キーワードヘルプ機能を使う */
00188                 if( FALSE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP ) ){
00189                     //EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP ), FALSE );          //キーワードヘルプ機能を使う(&K)
00190                     EnableWindow( GetDlgItem( hwndDlg, IDC_FRAME_KEYHELP ), FALSE );            //辞書ファイル一覧(&L)
00191                     EnableWindow( GetDlgItem( hwndDlg, IDC_LIST_KEYHELP ), FALSE );             //SysListView32
00192                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_TITLE ), FALSE );      //<辞書の説明>
00193                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_ABOUT ), FALSE );      //辞書ファイルの概要
00194                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UPD ), FALSE );       //更新(&E)
00195                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_KEYWORD ), FALSE );    //辞書ファイル
00196                     EnableWindow( GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), FALSE );             //EDITTEXT
00197                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_REF ), FALSE );       //参照(&O)...
00198                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_PRIOR ), FALSE );      //↑優先度(高)
00199                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_TOP ), FALSE );       //先頭(&T)
00200                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UP ), FALSE );        //上へ(&U)
00201                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DOWN ), FALSE );      //下へ(&G)
00202                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_LAST ), FALSE );      //最終(&B)
00203                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_INS ), FALSE );       //挿入(&S)
00204                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DEL ), FALSE );       //削除(&D)
00205                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ), FALSE );  //全辞書検索する(&A)
00206                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ), FALSE );    //キーワードも表示する(&W)
00207                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ), FALSE );     //前方一致検索(&P)
00208                 }else{
00209                     //EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP ), TRUE );           //キーワードヘルプ機能を使う(&K)
00210                     EnableWindow( GetDlgItem( hwndDlg, IDC_FRAME_KEYHELP ), TRUE );             //辞書ファイル一覧(&L)
00211                     EnableWindow( GetDlgItem( hwndDlg, IDC_LIST_KEYHELP ), TRUE );              //SysListView32
00212                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_TITLE ), TRUE );       //<辞書の説明>
00213                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_ABOUT ), TRUE );       //辞書ファイルの概要
00214                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UPD ), TRUE );        //更新(&E)
00215                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_KEYWORD ), TRUE );     //辞書ファイル
00216                     EnableWindow( GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), TRUE );              //EDITTEXT
00217                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_REF ), TRUE );        //参照(&O)...
00218                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_PRIOR ), TRUE );       //↑優先度(高)
00219                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_TOP ), TRUE );        //先頭(&T)
00220                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UP ), TRUE );         //上へ(&U)
00221                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DOWN ), TRUE );       //下へ(&G)
00222                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_LAST ), TRUE );       //最終(&B)
00223                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_INS ), TRUE );        //挿入(&S)
00224                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DEL ), TRUE );        //削除(&D)
00225                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ), TRUE );   //全辞書検索する(&A)
00226                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ), TRUE );     //キーワードも表示する(&W)
00227                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ), TRUE );      //前方一致検索(&P)
00228                 }
00229                 m_Types.m_nKeyHelpNum = ListView_GetItemCount( hwndList );
00230                 return TRUE;
00231
00232             /* 挿入・更新イベントを纏めて処理 */
00233             case IDC_BUTTON_KEYHELP_INS:    /* 挿入 */
00234             case IDC_BUTTON_KEYHELP_UPD:    /* 更新 */
00235                 nIndex2 = ListView_GetItemCount(hwndList);
00236                 /* 選択中のキーを探す。 */
00237                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00238
00239                 if(wID == IDC_BUTTON_KEYHELP_INS){  /* 挿入 */
00240                     if( nIndex2 >= MAX_KEYHELP_FILE ){
00241 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("これ以上登録できません。"));
00242                         return FALSE;
00243                     }if( -1 == nIndex ){
00244                         /* 選択中でなければ最後にする。 */
00245                         nIndex = nIndex2;
00246                         if(nIndex == 0)
00247                             nPrevIndex = 0;
00248                     }
00249                 }else{                              /* 更新 */
00250                     if( -1 == nIndex ){
00251 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("更新する辞書をリストから選択してください。"));
00252                         return FALSE;
00253                     }
00254                 }
00255                 /* 更新するキー情報を取得する。 */
00256                 auto_memset(szPath, 0, _countof(szPath));
00257 				::DlgItem_GetText( hwndDlg, IDC_EDIT_KEYHELP, szPath, _countof(szPath) );
00258                 if( szPath[0] == _T('\0') ) return FALSE;
00259                 /* 重複検査 */
00260                 nIndex2 = ListView_GetItemCount(hwndList);
00261                 TCHAR szPath2[_MAX_PATH];
00262                 int i;
00263                 for(i = 0; i < nIndex2; i++){
00264                     auto_memset(szPath2, 0, _countof(szPath2));
00265                     ListView_GetItemText(hwndList, i, 2, szPath2, _countof(szPath2));
00266                     if( _tcscmp(szPath, szPath2) == 0 ){
00267                         if( (wID ==IDC_BUTTON_KEYHELP_UPD) && (i == nIndex) ){  /* 更新時、変わっていなかったら何もしない */
00268                         }else{
00269 							::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("既に登録済みの辞書です。"));
00270                             return FALSE;
00271                         }
00272                     }
00273                 }
00274
00275                 /* 指定したパスに辞書があるかチェックする */
00276                 {
00277                     CTextInputStream_AbsIni in(szPath);
00278                     if(!in){
00279 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("ファイルを開けませんでした。\n\n%ts"), szPath );
00280                         return FALSE;
00281                     }
00282                     // 開けたなら1行目を取得してから閉じる -> szAbout
00283                     std::wstring line=in.ReadLineW();
00284                     _wcstotcs(szAbout,line.c_str(),_countof(szAbout));
00285                     in.Close();
00286                 }
00287                 strcnv(szAbout);
00288
00289                 /* ついでに辞書の説明を更新 */
00290 				::DlgItem_SetText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, szAbout ); /* 辞書ファイルの概要 */
00291
00292                 /* 更新のときは行削除する。 */
00293                 if(wID == IDC_BUTTON_KEYHELP_UPD){  /* 更新 */
00294                     ListView_DeleteItem( hwndList, nIndex );
00295                 }
00296
00297                 /* ON/OFF ファイル名 */
00298                 lvi.mask     = LVIF_TEXT;
00299                 lvi.iItem    = nIndex;
00300                 lvi.iSubItem = 0;
00301                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00302                 ListView_InsertItem( hwndList, &lvi );
00303                 /* 辞書の説明 */
00304                 lvi.mask     = LVIF_TEXT;
00305                 lvi.iItem    = nIndex;
00306                 lvi.iSubItem = 1;
00307                 lvi.pszText  = szAbout;
00308                 ListView_SetItem( hwndList, &lvi );
00309                 /* 辞書ファイルパス */
00310                 lvi.mask     = LVIF_TEXT;
00311                 lvi.iItem    = nIndex;
00312                 lvi.iSubItem = 2;
00313                 lvi.pszText  = szPath;
00314                 ListView_SetItem( hwndList, &lvi );
00315
00316                 /* デフォルトでチェックON */
00317                 ListView_SetCheckState(hwndList, nIndex, TRUE);
00318
00319                 /* 更新したキーを選択する。 */
00320                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00321                 GetData_KeyHelp( hwndDlg );
00322                 return TRUE;
00323
00324             case IDC_BUTTON_KEYHELP_DEL:    /* 削除 */
00325                 /* 選択中のキー番号を探す。 */
00326                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00327                 if( -1 == nIndex ) return FALSE;
00328                 /* 削除する。 */
00329                 ListView_DeleteItem( hwndList, nIndex );
00330                 /* リストがなくなったら初期値として用途を表示 */
00331                 if(ListView_GetItemCount(hwndList) == 0){
00332 					::DlgItem_SetText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, _T("辞書ファイルの１行目の文字列") );
00333 					::DlgItem_SetText( hwndDlg, IDC_EDIT_KEYHELP, _T("キーワード辞書ファイル パス") );
00334                 }/* リストの最後を削除した場合は、削除後のリストの最後を選択する。 */
00335                 else if(nIndex > ListView_GetItemCount(hwndList)-1){
00336                     ListView_SetItemState( hwndList, ListView_GetItemCount(hwndList)-1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00337                 }/* 同じ位置のキーを選択状態にする。 */
00338                 else{
00339                     ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00340                 }
00341                 GetData_KeyHelp( hwndDlg );
00342                 return TRUE;
00343
00344             case IDC_BUTTON_KEYHELP_TOP:    /* 先頭 */
00345                 /* 選択中のキーを探す。 */
00346                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00347                 if( -1 == nIndex ) return FALSE;
00348                 if( 0 == nIndex ) return TRUE;  /* すでに先頭にある。 */
00349                 nIndex2 = 0;
00350                 bUse = ListView_GetCheckState(hwndList, nIndex);
00351                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, _countof(szAbout));
00352                 ListView_GetItemText(hwndList, nIndex, 2, szPath, _countof(szPath));
00353                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00354                 /* ON-OFF */
00355                 lvi.mask     = LVIF_TEXT;
00356                 lvi.iItem    = nIndex2;
00357                 lvi.iSubItem = 0;
00358                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00359                 ListView_InsertItem( hwndList, &lvi );
00360                 /* 辞書の説明 */
00361                 lvi.mask     = LVIF_TEXT;
00362                 lvi.iItem    = nIndex2;
00363                 lvi.iSubItem = 1;
00364                 lvi.pszText  = szAbout;
00365                 ListView_SetItem( hwndList, &lvi );
00366                 /* 辞書ファイルパス */
00367                 lvi.mask     = LVIF_TEXT;
00368                 lvi.iItem    = nIndex2;
00369                 lvi.iSubItem = 2;
00370                 lvi.pszText  = szPath;
00371                 ListView_SetItem( hwndList, &lvi );
00372                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00373                 /* 移動したキーを選択状態にする。 */
00374                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00375                 GetData_KeyHelp( hwndDlg );
00376                 return TRUE;
00377
00378             case IDC_BUTTON_KEYHELP_LAST:   /* 最終 */
00379                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00380                 if( -1 == nIndex ) return FALSE;
00381                 nIndex2 = ListView_GetItemCount(hwndList);
00382                 if( nIndex2 - 1 == nIndex ) return TRUE;    /* すでに最終にある。 */
00383                 bUse = ListView_GetCheckState(hwndList, nIndex);
00384                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, _countof(szAbout));
00385                 ListView_GetItemText(hwndList, nIndex, 2, szPath, _countof(szPath));
00386                 /* キーを追加する。 */
00387                 /* ON-OFF */
00388                 lvi.mask     = LVIF_TEXT;
00389                 lvi.iItem    = nIndex2;
00390                 lvi.iSubItem = 0;
00391                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00392                 ListView_InsertItem( hwndList, &lvi );
00393                 /* 辞書の説明 */
00394                 lvi.mask     = LVIF_TEXT;
00395                 lvi.iItem    = nIndex2;
00396                 lvi.iSubItem = 1;
00397                 lvi.pszText  = szAbout;
00398                 ListView_SetItem( hwndList, &lvi );
00399                 /* 辞書ファイルパス */
00400                 lvi.mask     = LVIF_TEXT;
00401                 lvi.iItem    = nIndex2;
00402                 lvi.iSubItem = 2;
00403                 lvi.pszText  = szPath;
00404                 ListView_SetItem( hwndList, &lvi );
00405                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00406                 /* 移動したキーを選択状態にする。 */
00407                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00408                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00409                 GetData_KeyHelp( hwndDlg );
00410                 return TRUE;
00411
00412             case IDC_BUTTON_KEYHELP_UP: /* 上へ */
00413                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00414                 if( -1 == nIndex ) return FALSE;
00415                 if( 0 == nIndex ) return TRUE;  /* すでに先頭にある。 */
00416                 nIndex2 = ListView_GetItemCount(hwndList);
00417                 if( nIndex2 <= 1 ) return TRUE;
00418                 nIndex2 = nIndex - 1;
00419                 bUse = ListView_GetCheckState(hwndList, nIndex);
00420                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, _countof(szAbout));
00421                 ListView_GetItemText(hwndList, nIndex, 2, szPath, _countof(szPath));
00422                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00423                 /* キーを追加する。 */
00424                 /* ON-OFF */
00425                 lvi.mask     = LVIF_TEXT;
00426                 lvi.iItem    = nIndex2;
00427                 lvi.iSubItem = 0;
00428                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00429                 ListView_InsertItem( hwndList, &lvi );
00430                 /* 辞書の説明 */
00431                 lvi.mask     = LVIF_TEXT;
00432                 lvi.iItem    = nIndex2;
00433                 lvi.iSubItem = 1;
00434                 lvi.pszText  = szAbout;
00435                 ListView_SetItem( hwndList, &lvi );
00436                 /* 辞書ファイルパス */
00437                 lvi.mask     = LVIF_TEXT;
00438                 lvi.iItem    = nIndex2;
00439                 lvi.iSubItem = 2;
00440                 lvi.pszText  = szPath;
00441                 ListView_SetItem( hwndList, &lvi );
00442                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00443                 /* 移動したキーを選択状態にする。 */
00444                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00445                 GetData_KeyHelp( hwndDlg );
00446                 return TRUE;
00447
00448             case IDC_BUTTON_KEYHELP_DOWN:   /* 下へ */
00449                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00450                 if( -1 == nIndex ) return FALSE;
00451                 nIndex2 = ListView_GetItemCount(hwndList);
00452                 if( nIndex2 - 1 == nIndex ) return TRUE;    /* すでに最終にある。 */
00453                 if( nIndex2 <= 1 ) return TRUE;
00454                 nIndex2 = nIndex + 2;
00455                 bUse = ListView_GetCheckState(hwndList, nIndex);
00456                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, _countof(szAbout));
00457                 ListView_GetItemText(hwndList, nIndex, 2, szPath, _countof(szPath));
00458                 /* キーを追加する。 */
00459                 /* ON-OFF */
00460                 lvi.mask     = LVIF_TEXT;
00461                 lvi.iItem    = nIndex2;
00462                 lvi.iSubItem = 0;
00463                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00464                 ListView_InsertItem( hwndList, &lvi );
00465                 /* 辞書の説明 */
00466                 lvi.mask     = LVIF_TEXT;
00467                 lvi.iItem    = nIndex2;
00468                 lvi.iSubItem = 1;
00469                 lvi.pszText  = szAbout;
00470                 ListView_SetItem( hwndList, &lvi );
00471                 /* 辞書ファイルパス */
00472                 lvi.mask     = LVIF_TEXT;
00473                 lvi.iItem    = nIndex2;
00474                 lvi.iSubItem = 2;
00475                 lvi.pszText  = szPath;
00476                 ListView_SetItem( hwndList, &lvi );
00477                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00478                 /* 移動したキーを選択状態にする。 */
00479                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00480                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00481                 GetData_KeyHelp( hwndDlg );
00482                 return TRUE;
00483
00484             case IDC_BUTTON_KEYHELP_REF:    /* キーワードヘルプ 辞書ファイルの「参照...」ボタン */
00485                 {
00486                     CDlgOpenFile    cDlgOpenFile;
00487                     /* ファイルオープンダイアログの初期化 */
00488                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00489                     TCHAR szWk[_MAX_PATH];
00490 					::DlgItem_GetText( hwndDlg, IDC_EDIT_KEYHELP, szWk, _MAX_PATH );
00491                     if( _IS_REL_PATH( szWk ) ){
00492                         GetInidirOrExedir( szPath, szWk );
00493                     }else{
00494                         ::lstrcpy( szPath, szWk );
00495                     }
00496                     cDlgOpenFile.Create( m_hInstance, hwndDlg, _T("*.khp"), szPath );
00497                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00498 						::DlgItem_SetText( hwndDlg, IDC_EDIT_KEYHELP, szPath );
00499                     }
00500                 }
00501                 return TRUE;
00502
00503             case IDC_BUTTON_KEYHELP_IMPORT: /* インポート */
00504                 Import_KeyHelp(hwndDlg);
00505                 m_Types.m_nKeyHelpNum = ListView_GetItemCount( hwndList );
00506                 return TRUE;
00507
00508             case IDC_BUTTON_KEYHELP_EXPORT: /* エクスポート */
00509                 Export_KeyHelp(hwndDlg);
00510                 return TRUE;
00511             }
00512             break;
00513         }
00514         break;
00515
00516     case WM_NOTIFY:
00517         idCtrl = (int)wParam;
00518         pNMHDR = (NMHDR*)lParam;
00519
00520         switch( pNMHDR->code ){
00521         case PSN_HELP:
00522             OnHelp( hwndDlg, IDD_PROP_KEYHELP );
00523             return TRUE;
00524
00525         case PSN_KILLACTIVE:
00526             /* ダイアログデータの取得 辞書ファイルリスト */
00527             GetData_KeyHelp( hwndDlg );
00528             return TRUE;
00529
00530         case PSN_SETACTIVE:
00531             m_nPageNum = 4; //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00532             return TRUE;
00533
00534         case LVN_ITEMCHANGED:   /*リストの項目が変更された際の処理*/
00535             if( pNMHDR->hwndFrom == hwndList ){
00536                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00537                 if( -1 == nIndex ){ //削除、範囲外でクリック時反映されないバグ修正    //@@@ 2003.06.17 MIK
00538                     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_FOCUSED );
00539                     return FALSE;
00540                 }
00541                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, _countof(szAbout));
00542                 ListView_GetItemText(hwndList, nIndex, 2, szPath, _countof(szPath));
00543 				::DlgItem_SetText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, szAbout ); /* 辞書の説明 */
00544 				::DlgItem_SetText( hwndDlg, IDC_EDIT_KEYHELP, szPath );         /* ファイルパス */
00545                 nPrevIndex = nIndex;
00546             }
00547             break;
00548         }
00549         break;
00550
00551     case WM_HELP:
00552         {   HELPINFO *p = (HELPINFO *)lParam;
00553             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00554         }return TRUE;
00555
00556     case WM_CONTEXTMENU:    /* Context Menu */
00557         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00558         return TRUE;
00559     }
00560     return FALSE;
00561 }
00562
00563
00568 void CPropTypes::SetData_KeyHelp( HWND hwndDlg )
00569 {
00570     HWND    hwndWork;
00571     int     i;
00572     LV_ITEM lvi;
00573     DWORD   dwStyle;
00574
00575     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00576     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), EM_LIMITTEXT, _countof2( m_Types.m_KeyHelpArr[0].m_szPath ) - 1, (LPARAM)0 );
00577     /* 使用する・使用しない */
00578     if( m_Types.m_bUseKeyWordHelp == TRUE )
00579         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP, BST_CHECKED );
00580     else
00581         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP, BST_UNCHECKED );
00582     if( m_Types.m_bUseKeyHelpAllSearch == TRUE )
00583         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH, BST_CHECKED );
00584     else
00585         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH, BST_UNCHECKED );
00586     if( m_Types.m_bUseKeyHelpKeyDisp == TRUE )
00587         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP, BST_CHECKED );
00588     else
00589         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP, BST_UNCHECKED );
00590     if( m_Types.m_bUseKeyHelpPrefix == TRUE )
00591         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_PREFIX, BST_CHECKED );
00592     else
00593         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_PREFIX, BST_UNCHECKED );
00594     /* リスト */
00595     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00596     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00597     /* 行選択 */
00598     dwStyle = (DWORD)::SendMessageAny( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00599     dwStyle |= LVS_EX_FULLROWSELECT;
00600 	::SendMessageAny( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle );
00601     /* データ表示 */
00602     for(i = 0; i < MAX_KEYHELP_FILE; i++){
00603         if( m_Types.m_KeyHelpArr[i].m_szPath[0] == '\0' ) break;
00604         /* ON-OFF */
00605         lvi.mask     = LVIF_TEXT;
00606         lvi.iItem    = i;
00607         lvi.iSubItem = 0;
00608         lvi.pszText = GetFileName(m_Types.m_KeyHelpArr[i].m_szPath);
00609         ListView_InsertItem( hwndWork, &lvi );
00610         /* 辞書の説明 */
00611         lvi.mask     = LVIF_TEXT;
00612         lvi.iItem    = i;
00613         lvi.iSubItem = 1;
00614         lvi.pszText  = m_Types.m_KeyHelpArr[i].m_szAbout;
00615         ListView_SetItem( hwndWork, &lvi );
00616         /* 辞書ファイルパス */
00617         lvi.mask     = LVIF_TEXT;
00618         lvi.iItem    = i;
00619         lvi.iSubItem = 2;
00620         lvi.pszText  = m_Types.m_KeyHelpArr[i].m_szPath;
00621         ListView_SetItem( hwndWork, &lvi );
00622         /* ON/OFFを取得してチェックボックスにセット（とりあえず応急処置） */
00623         if(1 == m_Types.m_KeyHelpArr[i].m_nUse){    // ON
00624             ListView_SetCheckState(hwndWork, i, TRUE);
00625         }else{
00626             ListView_SetCheckState(hwndWork, i, FALSE);
00627         }
00628     }
00629     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00630     return;
00631 }
00632
00637 int CPropTypes::GetData_KeyHelp( HWND hwndDlg )
00638 {
00639     HWND    hwndList;
00640     int nIndex, i;
00641     int     nUse;                       /* 辞書ON(1)/OFF(0) */
00642     TCHAR   szAbout[DICT_ABOUT_LEN];    /* 辞書の説明(辞書ファイルの1行目から生成) */
00643     TCHAR   szPath[_MAX_PATH];          /* ファイルパス */
00644 //  m_nPageNum = 4; //自分のページ番号
00645
00646     /* 使用する・使用しない */
00647     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP ) )
00648         m_Types.m_bUseKeyWordHelp = TRUE;
00649     else
00650         m_Types.m_bUseKeyWordHelp = FALSE;
00651     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ) )
00652         m_Types.m_bUseKeyHelpAllSearch = TRUE;
00653     else
00654         m_Types.m_bUseKeyHelpAllSearch = FALSE;
00655     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ) )
00656         m_Types.m_bUseKeyHelpKeyDisp = TRUE;
00657     else
00658         m_Types.m_bUseKeyHelpKeyDisp = FALSE;
00659     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ) )
00660         m_Types.m_bUseKeyHelpPrefix = TRUE;
00661     else
00662         m_Types.m_bUseKeyHelpPrefix = FALSE;
00663     /* リストに登録されている情報を配列に取り込む */
00664     hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00665     nIndex = ListView_GetItemCount( hwndList );
00666     for(i = 0; i < MAX_KEYHELP_FILE; i++){
00667         if( i < nIndex ){
00668             nUse    = 0;    /* OFF */
00669             szAbout[0]  = _T('\0');
00670             szPath[0]   = _T('\0');
00671             /* チェックボックス状態を取得してnUseにセット */
00672             if(ListView_GetCheckState(hwndList, i))
00673                 nUse = 1;
00674             ListView_GetItemText( hwndList, i, 1, szAbout, _countof(szAbout) );
00675             ListView_GetItemText( hwndList, i, 2, szPath, _countof(szPath) );
00676             m_Types.m_KeyHelpArr[i].m_nUse = nUse;
00677             _tcscpy(m_Types.m_KeyHelpArr[i].m_szAbout, szAbout);
00678             _tcscpy(m_Types.m_KeyHelpArr[i].m_szPath, szPath);
00679         }else{  /* 未登録部分はクリアする */
00680             m_Types.m_KeyHelpArr[i].m_szPath[0] = _T('\0');
00681         }
00682     }
00683     /* 辞書の冊数を取得 */
00684     m_Types.m_nKeyHelpNum = nIndex;
00685     return TRUE;
00686 }
00687
00692 BOOL CPropTypes::Import_KeyHelp(HWND hwndDlg)
00693 {
00694     CDlgOpenFile    cDlgOpenFile;
00695     TCHAR           szPath[_MAX_PATH + 1]=_T("");
00696     /* ファイルオープンダイアログの初期化 */
00697     cDlgOpenFile.Create(
00698         m_hInstance,
00699         hwndDlg,
00700         _T("*.txt"),
00701         m_pShareData->m_szIMPORTFOLDER  // インポート用フォルダ
00702     );
00703     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) )
00704         return FALSE;
00705
00706     /* ファイルのフルパスを、フォルダとファイル名に分割 */  /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00707 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00708     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00709
00710     CTextInputStream in(szPath);
00711     if(!in){
00712         ErrorMessage( hwndDlg, _T("ファイルを開けませんでした。\n\n%ts"), szPath );
00713         return FALSE;
00714     }
00715
00716     /* LIST内のデータ全削除 */
00717     HWND hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00718     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00719     GetData_KeyHelp(hwndDlg);
00720
00721     int invalid_record = 0; // 不正な行
00722     /* データ取得 */
00723     int i=0;
00724     while(in && i<MAX_KEYHELP_FILE){
00725         wstring buff=in.ReadLineW();
00726
00727         // 2007.02.03 genta コメントみたいな行は黙ってスキップ
00728         // 2007.10.08 kobake 空行もスキップ
00729         if( buff[0] == LTEXT('\0') ||
00730             buff[0] == LTEXT('\n') ||
00731             buff[0] == LTEXT('#') ||
00732             buff[0] == LTEXT(';') ||
00733             ( buff[0] == LTEXT('/') && buff[1] == LTEXT('/') )){
00734                 //  2007.02.03 genta 処理を継続
00735                 continue;
00736             }
00737
00738         //KDct[99]=ON/OFF,DictAbout,KeyHelpPath
00739         if( buff.length() < 10 ||
00740             auto_memcmp(buff.c_str(), LTEXT("KDct["), 5) != 0 ||
00741             auto_memcmp(&buff[7], LTEXT("]="), 2) != 0 ||
00742             0 ){
00743             //  2007.02.03 genta 処理を継続
00744             ++invalid_record;
00745             continue;
00746         }
00747
00748         WCHAR *p1, *p2, *p3;
00749         p1 = &buff[9];
00750         p3 = p1;                    //結果確認用に初期化
00751         if( NULL != (p2=wcsstr(p1,LTEXT(","))) ){
00752             *p2 = LTEXT('\0');
00753             p2 += 1;                //カンマの次が、次の要素
00754             if( NULL != (p3=wcsstr(p2,LTEXT(","))) ){
00755                 *p3 = LTEXT('\0');
00756                 p3 += 1;            //カンマの次が、次の要素
00757             }
00758         }/* 結果の確認 */
00759         if( (p3==NULL) ||           //カンマが1個足りない
00760             (p3==p1) ||             //カンマが2個足りない
00761             //  2007.02.03 genta ファイル名にカンマがあるかもしれない
00762             0 //(NULL!=wcsstr(p3,","))  //カンマが多すぎる
00763         ){
00764             //  2007.02.03 genta 処理を継続
00765             ++invalid_record;
00766             continue;
00767         }
00768         /* valueのチェック */
00769         //ON/OFF
00770         //  2007.02.03 genta 1でなければ1にする
00771         unsigned int b_enable_flag = (unsigned int)_wtoi(p1);
00772         if( b_enable_flag > 1){
00773             b_enable_flag = 1;
00774         }
00775         //Path
00776         FILE* fp2;
00777         if( (fp2=_tfopen_absini(to_tchar(p3),_T("r"))) == NULL ){   // 2007.02.03 genta 相対パスはsakura.exe基準で開く    // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00778             // 2007.02.03 genta 辞書が見つからない場合の措置．警告を出すが取り込む
00779             p2 = L"【辞書ファイルが見つかりません】";
00780             b_enable_flag = 0;
00781         }
00782         else
00783             fclose(fp2);
00784
00785         //About
00786         if(wcslen(p2)>DICT_ABOUT_LEN){
00787 			::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP,
00788                 GSTR_APPNAME,
00789                 _T("辞書の説明は%d文字以内にしてください。\n"),
00790                 DICT_ABOUT_LEN
00791             );
00792             ++invalid_record;
00793             continue;
00794         }
00795
00796         //良さそうなら
00797         m_Types.m_KeyHelpArr[i].m_nUse = b_enable_flag; // 2007.02.03 genta
00798         _tcscpy(m_Types.m_KeyHelpArr[i].m_szAbout, to_tchar(p2));
00799         _tcscpy(m_Types.m_KeyHelpArr[i].m_szPath, to_tchar(p3));
00800         i++;
00801     }
00802     in.Close();
00803
00804     /*データのセット*/
00805     SetData_KeyHelp(hwndDlg);
00806     // 2007.02.03 genta 失敗したら警告する
00807     if( invalid_record > 0 ){
00808 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONWARNING, GSTR_APPNAME,
00809         _T("一部のデータが読み込めませんでした\n不正な行数: %d"),
00810         invalid_record );
00811     }
00812     return TRUE;
00813 }
00814
00815
00820 BOOL CPropTypes::Export_KeyHelp(HWND hwndDlg)
00821 {
00822     /* ファイルオープンダイアログの初期化 */
00823     CDlgOpenFile    cDlgOpenFile;
00824     TCHAR           szXPath[_MAX_PATH + 1]=_T("");
00825     cDlgOpenFile.Create(
00826         m_hInstance,
00827         hwndDlg,
00828         _T("*.txt"),
00829         m_pShareData->m_szIMPORTFOLDER  // インポート用フォルダ
00830     );
00831     if( !cDlgOpenFile.DoModal_GetSaveFileName( szXPath ) ){
00832         return FALSE;
00833     }
00834
00835     /* ファイルのフルパスを、フォルダとファイル名に分割 */  /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00836 	::SplitPath_FolderAndFile( szXPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00837     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00838
00839     CTextOutputStream out(szXPath);
00840     if(!out){
00841         ErrorMessage( hwndDlg, _T("ファイルを開けませんでした。\n\n%ts"), szXPath );
00842         return FALSE;
00843     }
00844
00845     out.WriteF( L"// キーワード辞書設定 Ver1\n" );
00846
00847     GetData_KeyHelp(hwndDlg);
00848     HWND hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00849     int j = ListView_GetItemCount(hwndList);
00850
00851     for(int i = 0; i < j; i++){
00852         out.WriteF(
00853             L"KDct[%02d]=%d,%ts,%ts\n",
00854             i,
00855             m_Types.m_KeyHelpArr[i].m_nUse,
00856             m_Types.m_KeyHelpArr[i].m_szAbout,
00857             m_Types.m_KeyHelpArr[i].m_szPath
00858         );
00859     }
00860     out.Close();
00861
00862 	::MYMESSAGEBOX(    hwndDlg, MB_OK | MB_ICONINFORMATION,
00863         GSTR_APPNAME,
00864         _T("ファイルへエクスポートしました。\n\n%ts"), szXPath
00865     );
00866     return TRUE;
00867 }
00868
00869
00874 static TCHAR* strcnv(TCHAR *str)
00875 {
00876     TCHAR* p=str;
00877     /* 改行コードの削除 */
00878     if( NULL != (p=_tcschr(p,_T('\n'))) )
00879         *p=_T('\0');
00880     p=str;
00881     if( NULL != (p=_tcschr(p,_T('\r'))) )
00882         *p=_T('\0');
00883     /* カンマの置換 */
00884     p=str;
00885     for(; (p=_tcschr(p,_T(','))) != NULL; ){
00886         *p=_T('.');
00887     }
00888     return str;
00889 }
00890
00896 static TCHAR* GetFileName(const TCHAR* fullpath)
00897 {
00898     const TCHAR* pszName = fullpath;
00899     CharPointerT p = fullpath;
00900     while( *p != _T('\0')  ){
00901         if( *p == _T('\\') ){
00902             pszName = p + 1;
00903             p++;
00904         }else{
00905             p++;
00906         }
00907     }
00908     return const_cast<TCHAR*>(pszName);
00909 }
00910
00911 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypesRegex.cpp

sakura_core

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 "global.h"
#include "CProfile.h"
#include "CShareData.h"
#include "funccode.h"
#include <stdio.h>
#include "CRegexKeyword.h"
#include "io/CTextStream.h"
#include "util/shell.h"
#include "util/file.h"
#include "sakura.hh"

ソースコードを見る。

変数

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 の 39 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CPropTypesRegex.cpp ソースファイル

sakura_core

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 "global.h"
00027 #include "CProfile.h"
00028 #include "CShareData.h"
00029 #include "funccode.h"   //Stonee, 2001/05/18
00030 #include <stdio.h>  //@@@ 2001.11.17 add MIK
00031 #include "CRegexKeyword.h"  //@@@ 2001.11.17 add MIK
00032 #include "io/CTextStream.h"
00033 #include "util/shell.h"
00034 #include "util/file.h"
00035 using namespace std;
00036
00037
00038 #include "sakura.hh"
00039 static const DWORD p_helpids[] = {  //11600
00040     IDC_BUTTON_REGEX_IMPORT,    HIDC_BUTTON_REGEX_IMPORT,   //インポート
00041     IDC_BUTTON_REGEX_EXPORT,    HIDC_BUTTON_REGEX_EXPORT,   //エクスポート
00042     IDC_BUTTON_REGEX_INS,       HIDC_BUTTON_REGEX_INS,      //挿入
00043     IDC_BUTTON_REGEX_ADD,       HIDC_BUTTON_REGEX_ADD,      //追加
00044     IDC_BUTTON_REGEX_UPD,       HIDC_BUTTON_REGEX_UPD,      //更新
00045     IDC_BUTTON_REGEX_DEL,       HIDC_BUTTON_REGEX_DEL,      //削除
00046     IDC_BUTTON_REGEX_TOP,       HIDC_BUTTON_REGEX_TOP,      //先頭
00047     IDC_BUTTON_REGEX_LAST,      HIDC_BUTTON_REGEX_LAST,     //最終
00048     IDC_BUTTON_REGEX_UP,        HIDC_BUTTON_REGEX_UP,       //上へ
00049     IDC_BUTTON_REGEX_DOWN,      HIDC_BUTTON_REGEX_DOWN,     //下へ
00050     IDC_CHECK_REGEX,            HIDC_CHECK_REGEX,           //正規表現キーワードを使用する
00051     IDC_COMBO_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,     //色
00052     IDC_EDIT_REGEX,             HIDC_EDIT_REGEX,            //正規表現キーワード
00053     IDC_LIST_REGEX,             HIDC_LIST_REGEX,            //リスト
00054     IDC_LABEL_REGEX_KEYWORD,    HIDC_EDIT_REGEX,
00055     IDC_LABEL_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,
00056     IDC_FRAME_REGEX,            HIDC_LIST_REGEX,
00057     IDC_LABEL_REGEX_VERSION,    HIDC_LABEL_REGEX_VERSION,   //バージョン
00058 //  IDC_STATIC,                     -1,
00059     0, 0
00060 };
00061
00062
00063 /* 正規表現キーワード ダイアログプロシージャ */
00064 INT_PTR CALLBACK CPropTypes::PropTypesRegex(
00065     HWND    hwndDlg,    // handle to dialog box
00066     UINT    uMsg,       // message
00067     WPARAM  wParam,     // first message parameter
00068     LPARAM  lParam      // second message parameter
00069 )
00070 {
00071     PROPSHEETPAGE*  pPsp;
00072     CPropTypes* pCPropTypes;
00073     switch( uMsg ){
00074     case WM_INITDIALOG:
00075         pPsp = (PROPSHEETPAGE*)lParam;
00076         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00077         if( NULL != pCPropTypes ){
00078             return pCPropTypes->DispatchEvent_Regex( hwndDlg, uMsg, wParam, pPsp->lParam );
00079         }
00080         break;
00081     default:
00082         // Modified by KEITA for WIN64 2003.9.6
00083         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00084         if( NULL != pCPropTypes ){
00085             return pCPropTypes->DispatchEvent_Regex( hwndDlg, uMsg, wParam, lParam );
00086         }
00087         break;
00088     }
00089     return FALSE;
00090 }
00091
00092 BOOL CPropTypes::Import_Regex(HWND hwndDlg)
00093 {
00094     /* ファイルオープンダイアログの初期化 */
00095     CDlgOpenFile    cDlgOpenFile;
00096     TCHAR           szPath[_MAX_PATH + 1]=_T("");
00097     cDlgOpenFile.Create(
00098         m_hInstance,
00099         hwndDlg,
00100         _T("*.rkw"),                    // [R]egex [K]ey[W]ord
00101         m_pShareData->m_szIMPORTFOLDER  // インポート用フォルダ
00102     );
00103     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00104         return FALSE;
00105     }
00106
00107     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00108     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00109 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00110     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00111
00112
00113     CTextInputStream in(szPath);
00114     if(!in){
00115     /*
00116     FILE        *fp;
00117     if( (fp = _tfopen(szPath, _T("r"))) == NULL )
00118     {
00119     */
00120         ErrorMessage( hwndDlg, _T("ファイルを開けませんでした。\n\n%ts"), szPath );
00121         return FALSE;
00122     }
00123
00124     RegexKeywordInfo    pRegexKey[MAX_REGEX_KEYWORD];
00125     TCHAR               buff[1024];
00126     int                 i, j, k;
00127     j = 0;
00128     while(in)
00129     {
00130         //1行読み込み
00131         wstring line=in.ReadLineW();
00132         _wcstotcs(buff,line.c_str(),_countof(buff));
00133
00134         if(j >= MAX_REGEX_KEYWORD) break;
00135
00136         //RxKey[999]=ColorName,RegexKeyword
00137         if( auto_strlen(buff) < 12 ) continue;
00138         if( auto_memcmp(buff, _T("RxKey["), 6) != 0 ) continue;
00139         if( auto_memcmp(&buff[9], _T("]="), 2) != 0 ) continue;
00140         TCHAR   *p;
00141         p = auto_strstr(&buff[11], _T(","));
00142         if( p )
00143         {
00144             *p = _T('\0');
00145             p++;
00146             if( p[0] && RegexKakomiCheck(to_wchar(p)) ) //囲みがある
00147             {
00148                 //色指定名に対応する番号を探す
00149                 k = GetColorIndexByName( &buff[11] );   //@@@ 2002.04.30
00150                 if( k != -1 )   /* 3文字カラー名からインデックス番号に変換 */
00151                 {
00152                     pRegexKey[j].m_nColorIndex = k;
00153                     _tcstowcs(pRegexKey[j].m_szKeyword, p, _countof(pRegexKey[j].m_szKeyword));
00154                     j++;
00155                 }
00156                 else
00157                 {   /* 日本語名からインデックス番号に変換する */
00158                     for(k = 0; k < COLORIDX_LAST; k++)
00159                     {
00160                         if( auto_strcmp(m_Types.m_ColorInfoArr[k].m_szName, &buff[11]) == 0 )
00161                         {
00162                             pRegexKey[j].m_nColorIndex = k;
00163                             _tcstowcs(pRegexKey[j].m_szKeyword, p, _countof(pRegexKey[j].m_szKeyword));
00164                             j++;
00165                             break;
00166                         }
00167                     }
00168                 }
00169             }
00170         }
00171     }
00172
00173     in.Close();
00174
00175     HWND    hwndWork;
00176     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00177     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00178     for(i = 0; i < j; i++)
00179     {
00180         LV_ITEM lvi;
00181         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00182         lvi.pszText  = const_cast<TCHAR*>(to_tchar(pRegexKey[i].m_szKeyword));
00183         lvi.iItem    = i;
00184         lvi.iSubItem = 0;
00185         lvi.lParam   = 0;
00186         ListView_InsertItem( hwndWork, &lvi );
00187
00188         lvi.mask     = LVIF_TEXT;
00189         lvi.iItem    = i;
00190         lvi.iSubItem = 1;
00191         lvi.pszText  = m_Types.m_ColorInfoArr[pRegexKey[i].m_nColorIndex].m_szName;
00192         ListView_SetItem( hwndWork, &lvi );
00193     }
00194     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00195
00196     return TRUE;
00197 }
00198
00199 BOOL CPropTypes::Export_Regex(HWND hwndDlg)
00200 {
00201
00202
00203     /* ファイルオープンダイアログの初期化 */
00204     CDlgOpenFile    cDlgOpenFile;
00205     TCHAR           szPath[_MAX_PATH + 1]=_T("");
00206     cDlgOpenFile.Create(
00207         m_hInstance,
00208         hwndDlg,
00209         _T("*.rkw"),                    // [R]egex [K]ey[W]ord
00210         m_pShareData->m_szIMPORTFOLDER  // インポート用フォルダ
00211     );
00212     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00213         return FALSE;
00214     }
00215     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00216     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00217 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00218     _tcscat( m_pShareData->m_szIMPORTFOLDER, _T("\\") );
00219
00220     CTextOutputStream out(szPath);
00221     if(!out){
00222         ErrorMessage( hwndDlg, _T("ファイルを開けませんでした。\n\n%ts"), szPath );
00223         return FALSE;
00224     }
00225
00226     out.WriteF(L"// 正規表現キーワード Ver1\n");
00227
00228     HWND    hwndList;
00229     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00230     int j = ListView_GetItemCount(hwndList);
00231     for(int i = 0; i < j; i++)
00232     {
00233         TCHAR   szKeyWord[256];
00234         auto_memset(szKeyWord, 0, _countof(szKeyWord));
00235         ListView_GetItemText(hwndList, i, 0, szKeyWord, _countof(szKeyWord));
00236
00237         TCHAR   szColorIndex[256];
00238         auto_memset(szColorIndex, 0, _countof(szColorIndex));
00239         ListView_GetItemText(hwndList, i, 1, szColorIndex, _countof(szColorIndex));
00240
00241         const TCHAR* p = szColorIndex;
00242         for(int k = 0; k < COLORIDX_LAST; k++)
00243         {
00244             if( _tcscmp( m_Types.m_ColorInfoArr[k].m_szName, szColorIndex ) == 0 )
00245             {
00246                 p = GetColorNameByIndex(k);
00247                 break;
00248             }
00249         }
00250         out.WriteF( L"RxKey[%03d]=%ts,%ts\n", i, p, szKeyWord);
00251     }
00252
00253     out.Close();
00254
00255 	::MYMESSAGEBOX(    hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00256         _T("ファイルへエクスポートしました。\n\n%ls"), szPath
00257     );
00258
00259     return TRUE;
00260 }
00261
00262 /* 正規表現キーワード メッセージ処理 */
00263 INT_PTR CPropTypes::DispatchEvent_Regex(
00264     HWND        hwndDlg,    // handle to dialog box
00265     UINT        uMsg,       // message
00266     WPARAM      wParam,     // first message parameter
00267     LPARAM      lParam      // second message parameter
00268 )
00269 {
00270     WORD    wNotifyCode;
00271     WORD    wID;
00272     HWND    hwndCtl, hwndList;
00273     int idCtrl;
00274     NMHDR*  pNMHDR;
00275     int nIndex, nIndex2, i, j, nRet;
00276     LV_ITEM lvi;
00277     LV_COLUMN   col;
00278     RECT        rc;
00279     static int nPrevIndex = -1; //更新時におかしくなるバグ修正 @@@ 2003.03.26 MIK
00280
00281
00282     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00283
00284     TCHAR   szKeyWord[256];
00285     TCHAR   szColorIndex[256];
00286
00287     switch( uMsg ){
00288     case WM_INITDIALOG:
00289         // Modified by KEITA for WIN64 2003.9.6
00290 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00291
00292         /* カラム追加 */
00293         //ListView_DeleteColumn( hwndList, 1 );
00294         //ListView_DeleteColumn( hwndList, 0 );
00295         ::GetWindowRect( hwndList, &rc );
00296         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00297         col.fmt      = LVCFMT_LEFT;
00298         col.cx       = (rc.right - rc.left) * 54 / 100;
00299         col.pszText  = _T("キーワード");
00300         col.iSubItem = 0;
00301         ListView_InsertColumn( hwndList, 0, &col );
00302         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00303         col.fmt      = LVCFMT_LEFT;
00304         col.cx       = (rc.right - rc.left) * 38 / 100;
00305         col.pszText  = _T("色指定");
00306         col.iSubItem = 1;
00307         ListView_InsertColumn( hwndList, 1, &col );
00308
00309         nPrevIndex = -1;    //@@@ 2003.05.12 MIK
00310         SetData_Regex( hwndDlg );   /* ダイアログデータの設定 正規表現キーワード */
00311         if( CheckRegexpVersion( hwndDlg, IDC_LABEL_REGEX_VERSION, false ) == false )    //@@@ 2001.11.17 add MIK
00312         {
00313 			::DlgItem_SetText( hwndDlg, IDC_LABEL_REGEX_VERSION, _T("正規表現キーワードは使えません。") );
00314             //ライブラリがなくて、使用しないになっている場合は、無効にする。
00315             if( ! IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00316             {
00317                 //Disableにする。
00318                 EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00319             }
00320             else
00321             {
00322                 //使用するになってるんだけどDisableにする。もうユーザは変更できない。
00323                 EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00324             }
00325         }
00326         return TRUE;
00327
00328     case WM_COMMAND:
00329         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00330         wID = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00331         hwndCtl = (HWND) lParam;    /* コントロールのハンドル */
00332         switch( wNotifyCode ){
00333         /* ボタン／チェックボックスがクリックされた */
00334         case BN_CLICKED:
00335             switch( wID ){
00336             case IDC_CHECK_REGEX:   /* 正規表現キーワードを使う */
00337                 if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00338                 {
00339                     if( CheckRegexpVersion( NULL, 0, false ) == false )
00340                     {
00341                         nRet = ::MYMESSAGEBOX(
00342                                 hwndDlg,
00343                                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00344                                 GSTR_APPNAME,
00345                                 _T("正規表現ライブラリが見つかりません。\n\n正規表現キーワードは機能しませんが、それでも有効にしますか？"),
00346                                 _T("正規表現キーワードを使用する") );
00347                         if( nRet != IDYES )
00348                         {
00349                             CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_UNCHECKED );
00350                             //Disableにする。
00351                             EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00352                             return TRUE;
00353                         }
00354                     }
00355                 }
00356                 else
00357                 {
00358                     if( CheckRegexpVersion( NULL, 0, false ) == false )
00359                     {
00360                         //Disableにする。
00361                         EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00362                     }
00363                 }
00364                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile
00365                 return TRUE;
00366
00367             case IDC_BUTTON_REGEX_INS:  /* 挿入 */
00368                 //挿入するキー情報を取得する。
00369                 auto_memset(szKeyWord, 0, _countof(szKeyWord));
00370 				::DlgItem_GetText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, _countof(szKeyWord) );
00371                 if( szKeyWord[0] == L'\0' ) return FALSE;
00372                 //同じキーがないか調べる。
00373                 nIndex2 = ListView_GetItemCount(hwndList);
00374                 if( nIndex2 >= MAX_REGEX_KEYWORD )
00375                 {
00376 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("これ以上登録できません。"));
00377                     return FALSE;
00378                 }
00379                 for(i = 0; i < nIndex2; i++)
00380                 {
00381                     auto_memset(szColorIndex, 0, _countof(szColorIndex));
00382                     ListView_GetItemText(hwndList, i, 0, szColorIndex, _countof(szColorIndex));
00383                     if( _tcscmp(szKeyWord, szColorIndex) == 0 )
00384                     {
00385 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("同じキーワードで登録済みです。"));
00386                         return FALSE;
00387                     }
00388                 }
00389                 //選択中のキーを探す。
00390                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00391                 if( -1 == nIndex )
00392                 {
00393                     //選択中でなければ最後にする。
00394                     nIndex = nIndex2;
00395                 }
00396                 //書式をチェックする。
00397                 if( !RegexKakomiCheck(to_wchar(szKeyWord)) )    //囲みをチェックする。
00398                 {
00399                     nRet = ::MYMESSAGEBOX(
00400                             hwndDlg,
00401                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00402                             GSTR_APPNAME,
00403                             _T("正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。"),
00404                             _T("正規表現キーワード") );
00405                     return FALSE;
00406                 }
00407                 if( !CheckRegexpSyntax( to_wchar(szKeyWord), hwndDlg, false ) )
00408                 {
00409                     nRet = ::MYMESSAGEBOX(
00410                             hwndDlg,
00411                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00412                             GSTR_APPNAME,
00413                             _T("書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？"),
00414                             _T("正規表現キーワード") );
00415                     if( nRet != IDYES ) return FALSE;
00416                 }
00417                 //挿入するキー情報を取得する。
00418                 auto_memset(szColorIndex, 0, _countof(szColorIndex));
00419 				::DlgItem_GetText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, _countof(szColorIndex) );
00420                 //キー情報を挿入する。
00421                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00422                 lvi.pszText  = szKeyWord;
00423                 lvi.iItem    = nIndex;
00424                 lvi.iSubItem = 0;
00425                 lvi.lParam   = 0;
00426                 ListView_InsertItem( hwndList, &lvi );
00427                 lvi.mask     = LVIF_TEXT;
00428                 lvi.iItem    = nIndex;
00429                 lvi.iSubItem = 1;
00430                 lvi.pszText  = szColorIndex;
00431                 ListView_SetItem( hwndList, &lvi );
00432                 //挿入したキーを選択する。
00433                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00434                 GetData_Regex( hwndDlg );
00435                 return TRUE;
00436
00437             case IDC_BUTTON_REGEX_ADD:  /* 追加 */
00438                 //最後のキー番号を取得する。
00439                 nIndex = ListView_GetItemCount( hwndList );
00440                 //追加するキー情報を取得する。
00441                 auto_memset(szKeyWord, 0, _countof(szKeyWord));
00442 				::DlgItem_GetText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, _countof(szKeyWord) );
00443                 if( szKeyWord[0] == L'\0' ) return FALSE;
00444                 nIndex2 = ListView_GetItemCount(hwndList);
00445                 if( nIndex2 >= MAX_REGEX_KEYWORD )
00446                 {
00447 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("これ以上登録できません。"));
00448                     return FALSE;
00449                 }
00450                 for(i = 0; i < nIndex2; i++)
00451                 {
00452                     auto_memset(szColorIndex, 0, _countof(szColorIndex));
00453                     ListView_GetItemText(hwndList, i, 0, szColorIndex, _countof(szColorIndex));
00454                     if( _tcscmp(szKeyWord, szColorIndex) == 0 )
00455                     {
00456 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("同じキーワードで登録済みです。"));
00457                         return FALSE;
00458                     }
00459                 }
00460                 //書式をチェックする。
00461                 if( !RegexKakomiCheck(to_wchar(szKeyWord)) )    //囲みをチェックする。
00462                 {
00463                     nRet = ::MYMESSAGEBOX(
00464                             hwndDlg,
00465                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00466                             GSTR_APPNAME,
00467                             _T("正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。"),
00468                             _T("正規表現キーワード") );
00469                     return FALSE;
00470                 }
00471                 if( !CheckRegexpSyntax( to_wchar(szKeyWord), hwndDlg, false ) )
00472                 {
00473                     nRet = ::MYMESSAGEBOX(
00474                             hwndDlg,
00475                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00476                             GSTR_APPNAME,
00477                             _T("書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？"),
00478                             _T("正規表現キーワード") );
00479                     if( nRet != IDYES ) return FALSE;
00480                 }
00481                 //追加するキー情報を取得する。
00482                 auto_memset(szColorIndex, 0, _countof(szColorIndex));
00483 				::DlgItem_GetText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, _countof(szColorIndex) );
00484                 //キーを追加する。
00485                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00486                 lvi.pszText  = szKeyWord;
00487                 lvi.iItem    = nIndex;
00488                 lvi.iSubItem = 0;
00489                 lvi.lParam   = 0;
00490                 ListView_InsertItem( hwndList, &lvi );
00491                 lvi.mask     = LVIF_TEXT;
00492                 lvi.iItem    = nIndex;
00493                 lvi.iSubItem = 1;
00494                 lvi.pszText  = szColorIndex;
00495                 ListView_SetItem( hwndList, &lvi );
00496                 //追加したキーを選択する。
00497                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00498                 GetData_Regex( hwndDlg );
00499                 return TRUE;
00500
00501             case IDC_BUTTON_REGEX_UPD:  /* 更新 */
00502                 //選択中のキーを探す。
00503                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00504                 if( -1 == nIndex )
00505                 {
00506 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("キーワードが選択されていません。"));
00507                     return FALSE;
00508                 }
00509                 //更新するキー情報を取得する。
00510                 auto_memset(szKeyWord, 0, _countof(szKeyWord));
00511 				::DlgItem_GetText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, _countof(szKeyWord) );
00512                 if( szKeyWord[0] == L'\0' ) return FALSE;
00513                 nIndex2 = ListView_GetItemCount(hwndList);
00514                 for(i = 0; i < nIndex2; i++)
00515                 {
00516                     if( i != nIndex )
00517                     {
00518                         auto_memset(szColorIndex, 0, _countof(szColorIndex));
00519                         ListView_GetItemText(hwndList, i, 0, szColorIndex, _countof(szColorIndex));
00520                         if( _tcscmp(szKeyWord, szColorIndex) == 0 )
00521                         {
00522 							::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, _T("同じキーワードで登録済みです。"));
00523                             return FALSE;
00524                         }
00525                     }
00526                 }
00527                 //書式をチェックする。
00528                 if( !RegexKakomiCheck(to_wchar(szKeyWord)) )    //囲みをチェックする。
00529                 {
00530                     nRet = ::MYMESSAGEBOX(
00531                             hwndDlg,
00532                             MB_OK | MB_ICONSTOP | MB_TOPMOST | MB_DEFBUTTON2,
00533                             GSTR_APPNAME,
00534                             _T("正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。"),
00535                             _T("正規表現キーワード") );
00536                     return FALSE;
00537                 }
00538                 if( !CheckRegexpSyntax( to_wchar(szKeyWord), hwndDlg, false ) )
00539                 {
00540                     nRet = ::MYMESSAGEBOX(
00541                             hwndDlg,
00542                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00543                             GSTR_APPNAME,
00544                             _T("書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？"),
00545                             _T("正規表現キーワード") );
00546                     if( nRet != IDYES ) return FALSE;
00547                 }
00548                 //追加するキー情報を取得する。
00549                 auto_memset(szColorIndex, 0, _countof(szColorIndex));
00550 				::DlgItem_GetText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, _countof(szColorIndex) );
00551                 //キーを更新する。
00552                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00553                 lvi.pszText  = szKeyWord;
00554                 lvi.iItem    = nIndex;
00555                 lvi.iSubItem = 0;
00556                 lvi.lParam   = 0;
00557                 ListView_SetItem( hwndList, &lvi );
00558
00559                 lvi.mask     = LVIF_TEXT;
00560                 lvi.iItem    = nIndex;
00561                 lvi.iSubItem = 1;
00562                 lvi.pszText  = szColorIndex;
00563                 ListView_SetItem( hwndList, &lvi );
00564
00565                 //更新したキーを選択する。
00566                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00567                 GetData_Regex( hwndDlg );
00568                 return TRUE;
00569
00570             case IDC_BUTTON_REGEX_DEL:  /* 削除 */
00571                 //選択中のキー番号を探す。
00572                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00573                 if( -1 == nIndex ) return FALSE;
00574                 //削除する。
00575                 ListView_DeleteItem( hwndList, nIndex );
00576                 //同じ位置のキーを選択状態にする。
00577                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00578                 GetData_Regex( hwndDlg );
00579                 return TRUE;
00580
00581             case IDC_BUTTON_REGEX_TOP:  /* 先頭 */
00582                 //選択中のキーを探す。
00583                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00584                 if( -1 == nIndex ) return FALSE;
00585                 if( 0 == nIndex ) return TRUE;  //すでに先頭にある。
00586                 nIndex2 = 0;
00587                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, _countof(szKeyWord));
00588                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, _countof(szColorIndex));
00589                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00590                 //キーを追加する。
00591                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00592                 lvi.pszText  = szKeyWord;
00593                 lvi.iItem    = nIndex2;
00594                 lvi.iSubItem = 0;
00595                 lvi.lParam   = 0;
00596                 ListView_InsertItem( hwndList, &lvi );
00597                 lvi.mask     = LVIF_TEXT;
00598                 lvi.iItem    = nIndex2;
00599                 lvi.iSubItem = 1;
00600                 lvi.pszText  = szColorIndex;
00601                 ListView_SetItem( hwndList, &lvi );
00602                 //移動したキーを選択状態にする。
00603                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00604                 GetData_Regex( hwndDlg );
00605                 return TRUE;
00606
00607             case IDC_BUTTON_REGEX_LAST: /* 最終 */
00608                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00609                 if( -1 == nIndex ) return FALSE;
00610                 nIndex2 = ListView_GetItemCount(hwndList);
00611                 if( nIndex2 - 1 == nIndex ) return TRUE;    //すでに最終にある。
00612                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, _countof(szKeyWord));
00613                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, _countof(szColorIndex));
00614                 //キーを追加する。
00615                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00616                 lvi.pszText  = szKeyWord;
00617                 lvi.iItem    = nIndex2;
00618                 lvi.iSubItem = 0;
00619                 lvi.lParam   = 0;
00620                 ListView_InsertItem( hwndList, &lvi );
00621                 lvi.mask     = LVIF_TEXT;
00622                 lvi.iItem    = nIndex2;
00623                 lvi.iSubItem = 1;
00624                 lvi.pszText  = szColorIndex;
00625                 ListView_SetItem( hwndList, &lvi );
00626                 //移動したキーを選択状態にする。
00627                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00628                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00629                 GetData_Regex( hwndDlg );
00630                 return TRUE;
00631
00632             case IDC_BUTTON_REGEX_UP:   /* 上へ */
00633                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00634                 if( -1 == nIndex ) return FALSE;
00635                 if( 0 == nIndex ) return TRUE;  //すでに先頭にある。
00636                 nIndex2 = ListView_GetItemCount(hwndList);
00637                 if( nIndex2 <= 1 ) return TRUE;
00638                 nIndex2 = nIndex - 1;
00639                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, _countof(szKeyWord));
00640                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, _countof(szColorIndex));
00641                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00642                 //キーを追加する。
00643                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00644                 lvi.pszText  = szKeyWord;
00645                 lvi.iItem    = nIndex2;
00646                 lvi.iSubItem = 0;
00647                 lvi.lParam   = 0;
00648                 ListView_InsertItem( hwndList, &lvi );
00649                 lvi.mask     = LVIF_TEXT;
00650                 lvi.iItem    = nIndex2;
00651                 lvi.iSubItem = 1;
00652                 lvi.pszText  = szColorIndex;
00653                 ListView_SetItem( hwndList, &lvi );
00654                 //移動したキーを選択状態にする。
00655                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00656                 GetData_Regex( hwndDlg );
00657                 return TRUE;
00658
00659             case IDC_BUTTON_REGEX_DOWN: /* 下へ */
00660                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00661                 if( -1 == nIndex ) return FALSE;
00662                 nIndex2 = ListView_GetItemCount(hwndList);
00663                 if( nIndex2 - 1 == nIndex ) return TRUE;    //すでに最終にある。
00664                 if( nIndex2 <= 1 ) return TRUE;
00665                 nIndex2 = nIndex + 2;
00666                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, _countof(szKeyWord));
00667                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, _countof(szColorIndex));
00668                 //キーを追加する。
00669                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00670                 lvi.pszText  = szKeyWord;
00671                 lvi.iItem    = nIndex2;
00672                 lvi.iSubItem = 0;
00673                 lvi.lParam   = 0;
00674                 ListView_InsertItem( hwndList, &lvi );
00675                 lvi.mask     = LVIF_TEXT;
00676                 lvi.iItem    = nIndex2;
00677                 lvi.iSubItem = 1;
00678                 lvi.pszText  = szColorIndex;
00679                 ListView_SetItem( hwndList, &lvi );
00680                 //移動したキーを選択状態にする。
00681                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00682                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00683                 GetData_Regex( hwndDlg );
00684                 return TRUE;
00685
00686             case IDC_BUTTON_REGEX_IMPORT:   /* インポート */
00687                 Import_Regex(hwndDlg);
00688                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
00689                 return TRUE;
00690
00691             case IDC_BUTTON_REGEX_EXPORT:   /* エクスポート */
00692                 Export_Regex(hwndDlg);
00693                 return TRUE;
00694             }
00695             break;
00696         }
00697         break;
00698
00699     case WM_NOTIFY:
00700         idCtrl = (int)wParam;
00701         pNMHDR = (NMHDR*)lParam;
00702         switch( pNMHDR->code ){
00703         case PSN_HELP:
00704             OnHelp( hwndDlg, IDD_PROP_REGEX );
00705             return TRUE;
00706         case PSN_KILLACTIVE:
00707             /* ダイアログデータの取得 正規表現キーワード */
00708             GetData_Regex( hwndDlg );
00709             return TRUE;
00710 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00711         case PSN_SETACTIVE:
00712             m_nPageNum = 3;
00713             return TRUE;
00714         case LVN_ITEMCHANGED:
00715             if( pNMHDR->hwndFrom == hwndList )
00716             {
00717                 HWND    hwndCombo;
00718                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00719                 if( -1 == nIndex )  //削除、範囲外でクリック時反映されないバグ修正    //@@@ 2003.06.17 MIK
00720                 {
00721                     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_FOCUSED );
00722                 }
00723                 if( -1 == nIndex )
00724                 {
00725                     /* 初期値を設定する */
00726 					::DlgItem_SetText( hwndDlg, IDC_EDIT_REGEX, _T("//k") );   /* 正規表現 */
00727                     hwndCombo = GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00728                     for( i = 0, j = 0; i < COLORIDX_LAST; i++ )
00729                     {
00730                         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00731                         {
00732                             if( m_Types.m_ColorInfoArr[i].m_nColorIdx == COLORIDX_REGEX1 )
00733                             {
00734 								::SendMessageAny( hwndCombo, CB_SETCURSEL, (WPARAM)j, (LPARAM)0 );  /* コンボボックスのデフォルト選択 */
00735                                 break;
00736                             }
00737                             j++;
00738                         }
00739                     }
00740                     return FALSE;
00741                 }
00742                 if( nPrevIndex != nIndex )  //@@@ 2003.03.26 MIK
00743                 {   //更新時にListViewのSubItemを正しく取得できないので、その対策
00744                     ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, _countof(szKeyWord));
00745                     ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, _countof(szColorIndex));
00746 					::DlgItem_SetText( hwndDlg, IDC_EDIT_REGEX, szKeyWord );   /* 正規表現 */
00747                     hwndCombo = GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00748                     for(i = 0, j = 0; i < COLORIDX_LAST; i++)
00749                     {
00750                         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00751                         {
00752                             if(_tcscmp(m_Types.m_ColorInfoArr[i].m_szName, szColorIndex) == 0)
00753                             {
00754 								::SendMessageAny(hwndCombo, CB_SETCURSEL, j, 0);
00755                                 break;
00756                             }
00757                             j++;
00758                         }
00759                     }
00760                 }
00761                 nPrevIndex = nIndex;
00762             }
00763             break;
00764         }
00765         break;
00766
00767     case WM_HELP:
00768         {
00769             HELPINFO *p = (HELPINFO *)lParam;
00770             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00771         }
00772         return TRUE;
00773         /*NOTREACHED*/
00774         //break;
00775
00776     //Context Menu
00777     case WM_CONTEXTMENU:
00778         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00779         return TRUE;
00780
00781     }
00782     return FALSE;
00783 }
00784
00785 /* ダイアログデータの設定 正規表現キーワード */
00786 void CPropTypes::SetData_Regex( HWND hwndDlg )
00787 {
00788     HWND        hwndWork;
00789     int         i, j;
00790     LV_ITEM     lvi;
00791     DWORD       dwStyle;
00792
00793     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00794     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_REGEX ), EM_LIMITTEXT, _countof( m_Types.m_RegexKeywordArr[0].m_szKeyword ) - 1, (LPARAM)0 );
00795 	::DlgItem_SetText( hwndDlg, IDC_EDIT_REGEX, _T("//k") );   /* 正規表現 */
00796
00797     /* 色種類のリスト */
00798     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00799 	::SendMessageAny( hwndWork, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );  /* コンボボックスを空にする */
00800     for( i = 0; i < COLORIDX_LAST; i++ )
00801     {
00802         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00803         {
00804             j = ::SendMessage( hwndWork, CB_ADDSTRING, (WPARAM)0, (LPARAM)m_Types.m_ColorInfoArr[i].m_szName );
00805             if( m_Types.m_ColorInfoArr[i].m_nColorIdx == COLORIDX_REGEX1 )
00806 				::SendMessageAny( hwndWork, CB_SETCURSEL, (WPARAM)j, (LPARAM)0 );   /* コンボボックスのデフォルト選択 */
00807         }
00808     }
00809
00810     if( m_Types.m_bUseRegexKeyword )
00811         CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_CHECKED );
00812     else
00813         CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_UNCHECKED );
00814
00815     /* リスト */
00816     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00817     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00818
00819     /* 行選択 */
00820     dwStyle = (DWORD)::SendMessageAny( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00821     dwStyle |= LVS_EX_FULLROWSELECT;
00822 	::SendMessageAny( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle );
00823
00824     /* データ表示 */
00825     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00826     {
00827         if( m_Types.m_RegexKeywordArr[i].m_szKeyword[0] == L'\0' ) break;
00828
00829         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00830         lvi.pszText  = const_cast<TCHAR*>(to_tchar(m_Types.m_RegexKeywordArr[i].m_szKeyword));
00831         lvi.iItem    = i;
00832         lvi.iSubItem = 0;
00833         lvi.lParam   = 0; //m_Types.m_RegexKeywordArr[i].m_nColorIndex;
00834         ListView_InsertItem( hwndWork, &lvi );
00835         lvi.mask     = LVIF_TEXT;
00836         lvi.iItem    = i;
00837         lvi.iSubItem = 1;
00838         lvi.pszText  = m_Types.m_ColorInfoArr[m_Types.m_RegexKeywordArr[i].m_nColorIndex].m_szName;
00839         ListView_SetItem( hwndWork, &lvi );
00840     }
00841     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00842
00843     return;
00844 }
00845
00846 /* ダイアログデータの取得 正規表現キーワード */
00847 int CPropTypes::GetData_Regex( HWND hwndDlg )
00848 {
00849     HWND    hwndList;
00850     int nIndex, i, j;
00851     TCHAR   szKeyWord[256], szColorIndex[256];
00852
00853 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00854 //  //自分のページ番号
00855 //  m_nPageNum = 3;
00856
00857     //使用する・使用しない
00858     if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00859         m_Types.m_bUseRegexKeyword = TRUE;
00860     else
00861         m_Types.m_bUseRegexKeyword = FALSE;
00862
00863     //リストに登録されている情報を配列に取り込む
00864     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00865     nIndex = ListView_GetItemCount(hwndList);
00866     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00867     {
00868         if( i < nIndex )
00869         {
00870             szKeyWord[0]    = _T('\0');
00871             szColorIndex[0] = _T('\0');
00872             ListView_GetItemText(hwndList, i, 0, szKeyWord,    _countof(szKeyWord)   );
00873             ListView_GetItemText(hwndList, i, 1, szColorIndex, _countof(szColorIndex));
00874             _tcstowcs(m_Types.m_RegexKeywordArr[i].m_szKeyword, szKeyWord, _countof(m_Types.m_RegexKeywordArr[i].m_szKeyword));
00875             //色指定文字列を番号に変換する
00876             m_Types.m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
00877             for(j = 0; j < COLORIDX_LAST; j++)
00878             {
00879                 if(_tcscmp(m_Types.m_ColorInfoArr[j].m_szName, szColorIndex) == 0)
00880                 {
00881                     m_Types.m_RegexKeywordArr[i].m_nColorIndex = j;
00882                     break;
00883                 }
00884             }
00885         }
00886         else    //未登録部分はクリアする
00887         {
00888             m_Types.m_RegexKeywordArr[i].m_szKeyword[0] = L'\0';
00889             m_Types.m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
00890         }
00891     }
00892
00893     //タイプ設定の変更があった
00894     m_Types.m_nRegexKeyMagicNumber++;
00895 //  m_Types.m_nRegexKeyMagicNumber = 0; //Not Compiled.
00896
00897     return TRUE;
00898 }
00899
00900 BOOL CPropTypes::RegexKakomiCheck(const wchar_t *s)
00901 {
00902     const wchar_t   *p;
00903     int length, i;
00904     static const wchar_t *kakomi[7 * 2] = {
00905         L"/",  L"/k",
00906         L"m/", L"/k",
00907         L"m#", L"#k",
00908         L"/",  L"/ki",
00909         L"m/", L"/ki",
00910         L"m#", L"#ki",
00911         NULL, NULL,
00912     };
00913
00914     length = wcslen(s);
00915
00916     for(i = 0; kakomi[i] != NULL; i += 2)
00917     {
00918         //文字長を確かめる
00919         if( length > (int)wcslen(kakomi[i]) + (int)wcslen(kakomi[i+1]) )
00920         {
00921             //始まりを確かめる
00922             if( wcsncmp(kakomi[i], s, wcslen(kakomi[i])) == 0 )
00923             {
00924                 //終わりを確かめる
00925                 p = &s[length - wcslen(kakomi[i+1])];
00926                 if( wcscmp(p, kakomi[i+1]) == 0 )
00927                 {
00928                     //正常
00929                     return TRUE;
00930                 }
00931             }
00932         }
00933     }
00934
00935     return FALSE;
00936 }
00937
00938 //@@@ 2001.11.17 add end MIK
00939 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecent.cpp

sakura_core

CRecent.cpp

最近使ったリスト [詳細]

#include "stdafx.h"
#include "CRecent.h"
#include "CShareData.h"

CRecent.cppのインクルード依存関係図

ソースコードを見る。

説明

最近使ったリスト

お気に入りを含む最近使ったリストを管理する。

作者:
MIK
日付:
Apr. 05, 2003

Apr. 03, 2005

CRecent.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecent.cpp ソースファイル

sakura_core

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 #include "stdafx.h"
00038 #include "CRecent.h"
00039 #include "CShareData.h"
00040
00041 DLLSHAREDATA* CRecent::GetShareData()
00042 {
00043     return CShareData::getInstance()->GetShareData();
00044 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecent.h

sakura_core

CRecent.h

最近使ったリスト [詳細]

#include "global.h"
#include "CRecentImp.h"

CRecent.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecent

説明

最近使ったリスト

お気に入りを含む最近使ったリストを管理する。

作者:
MIK
日付:
Apr. 05, 2003

Apr. 03, 2005

Oct. 19, 2007 kobake 型チェックが働くように、再設計

CRecent.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecent.h ソースファイル

sakura_core

CRecent.h

説明を見る。
00001 #pragma once
00002
00014 /*
00015     Copyright (C) 2003, MIK
00016     Copyright (C) 2005, MIK
00017
00018     This software is provided 'as-is', without any express or implied
00019     warranty. In no event will the authors be held liable for any damages
00020     arising from the use of this software.
00021
00022     Permission is granted to anyone to use this software for any purpose,
00023     including commercial applications, and to alter it and redistribute it
00024     freely, subject to the following restrictions:
00025
00026         1. The origin of this software must not be misrepresented;
00027            you must not claim that you wrote the original software.
00028            If you use this software in a product, an acknowledgment
00029            in the product documentation would be appreciated but is
00030            not required.
00031
00032         2. Altered source versions must be plainly marked as such,
00033            and must not be misrepresented as being the original software.
00034
00035         3. This notice may not be removed or altered from any source
00036            distribution.
00037 */
00038
00039
00040
00041 #include "global.h"
00042
00043
00044
00045 struct DLLSHAREDATA;
00046
00047 class CRecent{
00048 public:
00049     virtual ~CRecent(){}
00050
00051     //インスタンス管理
00052     virtual void    Terminate() = 0;
00053
00054     //アイテム
00055     virtual const TCHAR*    GetItemText( int nIndex ) const = 0;
00056     virtual int             GetItemCount() const = 0;
00057     virtual void            DeleteAllItem() = 0;
00058     virtual bool            DeleteItem( int nIndex ) = 0;
00059     int FindItemByText(const TCHAR* pszText) const
00060     {
00061         int n = GetItemCount();
00062         for(int i=0;i<n;i++){
00063             if(_tcscmp(GetItemText(i),pszText)==0)return i;
00064         }
00065         return -1;
00066     }
00067
00068     //お気に入り
00069     virtual bool    SetFavorite( int nIndex, bool bFavorite = true ) = 0;
00070     virtual bool    IsFavorite(int nIndex) const = 0;
00071
00072     //その他
00073     virtual int     GetViewCount() const = 0;
00074     virtual bool    UpdateView() = 0;
00075
00076     // 共有メモリアクセス
00077     DLLSHAREDATA*   GetShareData();
00078 };
00079
00080 #include "CRecentImp.h"
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentCmd.cpp

sakura_core

CRecentCmd.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentCmd.h"
#include <string.h>
#include "my_icmp.h"

CRecentCmd.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentCmd.cpp ソースファイル

sakura_core

CRecentCmd.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentCmd.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentCmd::CRecentCmd()
00014 {
00015     Create(
00016         &GetShareData()->m_aCommands[0],
00017         &GetShareData()->m_aCommands._GetSizeRef(),
00018         NULL /*GetShareData()->m_bCmdArrFavorite*/,
00019         MAX_CMDARR,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentCmd::GetItemText( int nIndex ) const
00034 {
00035     return *GetItem(nIndex);
00036 }
00037
00038 int CRecentCmd::CompareItem( const CCmdString* p1, LPCTSTR p2 ) const
00039 {
00040     return _tcscmp(*p1,p2);
00041 }
00042
00043 void CRecentCmd::CopyItem( CCmdString* dst, LPCTSTR src ) const
00044 {
00045     _tcscpy(*dst,src);
00046 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentCmd.h

sakura_core

CRecentCmd.h

#include "CRecentImp.h"
#include "StaticType.h"
#include "config/maxdata.h"

CRecentCmd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentCmd
コマンドの履歴を管理 (RECENT_FOR_CMD) [詳細]

型定義

typedef StaticString< TCHAR,
MAX_CMDLEN > 		CCmdString

型定義

typedef StaticString<TCHAR, MAX_CMDLEN> CCmdString

CRecentCmd.h の 7 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentCmd.h ソースファイル

sakura_core

CRecentCmd.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005 #include "config/maxdata.h" //MAX_CMDLEN
00006
00007 typedef StaticString<TCHAR, MAX_CMDLEN> CCmdString;
00008
00010 class CRecentCmd : public CRecentImp<CCmdString, LPCTSTR>{
00011 public:
00012     //生成
00013     CRecentCmd();
00014
00015     //オーバーライド
00016     int             CompareItem( const CCmdString* p1, LPCTSTR p2 ) const;
00017     void            CopyItem( CCmdString* dst, LPCTSTR src ) const;
00018     const TCHAR*    GetItemText( int nIndex ) const;
00019 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentEditNode.cpp

sakura_core

CRecentEditNode.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentEditNode.h"
#include <string.h>
#include "my_icmp.h"

CRecentEditNode.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentEditNode.cpp ソースファイル

sakura_core

CRecentEditNode.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentEditNode.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentEditNode::CRecentEditNode()
00014 {
00015     Create(
00016         GetShareData()->m_pEditArr,
00017         &GetShareData()->m_nEditArrNum,
00018         NULL,
00019         MAX_EDITWINDOWS,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentEditNode::GetItemText( int nIndex ) const
00034 {
00035     return _T("WIN"); //※テキスト情報は無い (GetWindowTextしてあげても良いけど、この関数は実行されないので、意味は無い)
00036 }
00037
00038 int CRecentEditNode::CompareItem( const EditNode* p1, const EditNode* p2 ) const
00039 {
00040     return p1->m_hWnd - p2->m_hWnd;
00041 }
00042
00043 void CRecentEditNode::CopyItem( EditNode* dst, const EditNode* src ) const
00044 {
00045     *dst = *src;
00046 }
00047
00048 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00049 //                   固有インターフェース                      //
00050 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00051
00052 int CRecentEditNode::FindItemByHwnd(HWND hwnd) const
00053 {
00054     int n = GetItemCount();
00055     for(int i=0;i<n;i++){
00056         if(GetItem(i)->m_hWnd == hwnd)return i;
00057     }
00058     return -1;
00059 }
00060
00061 void CRecentEditNode::DeleteItemByHwnd(HWND hwnd)
00062 {
00063     int n = FindItemByHwnd(hwnd);
00064     if(n!=-1){
00065         DeleteItem(n);
00066     }
00067     else{
00068         DBPRINT_A("DeleteItemByHwnd失敗\n");
00069     }
00070 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentEditNode.h

sakura_core

CRecentEditNode.h

#include "CRecentImp.h"
#include "CShareData.h"

CRecentEditNode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentEditNode
EditNode(ウィンドウリスト)の履歴を管理 (RECENT_FOR_EDITNODE) [詳細]

Sakura-Editorに対してSat Nov 17 20:26:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentEditNode.h ソースファイル

sakura_core

CRecentEditNode.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "CShareData.h" //EditNode
00005
00007 class CRecentEditNode : public CRecentImp<EditNode>{
00008 public:
00009     //生成
00010     CRecentEditNode();
00011
00012     //オーバーライド
00013     int             CompareItem( const EditNode* p1, const EditNode* p2 ) const;
00014     void            CopyItem( EditNode* dst, const EditNode* src ) const;
00015     const TCHAR*    GetItemText( int nIndex ) const;
00016
00017     //固有インターフェース
00018     int FindItemByHwnd(HWND hwnd) const;
00019     void DeleteItemByHwnd(HWND hwnd);
00020 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFile.cpp

sakura_core

CRecentFile.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentFile.h"
#include <string.h>
#include "my_icmp.h"

CRecentFile.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFile.cpp ソースファイル

sakura_core

CRecentFile.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentFile.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 /*
00010     アイテムの比較要素を取得する。
00011
00012     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00013 */
00014 const TCHAR* CRecentFile::GetItemText( int nIndex ) const
00015 {
00016     return GetItem(nIndex)->m_szPath;
00017 }
00018
00019
00020
00021
00022 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00023 //                           生成                              //
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025
00026 CRecentFile::CRecentFile()
00027 {
00028     Create(
00029         GetShareData()->m_fiMRUArr,
00030         &GetShareData()->m_nMRUArrNum,
00031         GetShareData()->m_bMRUArrFavorite,
00032         MAX_MRU,
00033         &(GetShareData()->m_Common.m_sGeneral.m_nMRUArrNum_MAX)
00034     );
00035 }
00036
00037
00038
00039 int CRecentFile::CompareItem( const FileInfo* p1, const FileInfo* p2 ) const
00040 {
00041     return _tcsicmp(p1->m_szPath, p2->m_szPath);
00042 }
00043
00044 void CRecentFile::CopyItem( FileInfo* dst, const FileInfo* src ) const
00045 {
00046     memcpy_raw(dst,src,sizeof(*dst));
00047 }
00048
00049 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00050 //                   固有インターフェース                      //
00051 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00052
00053 int CRecentFile::FindItemByPath(const TCHAR* pszPath) const
00054 {
00055     int n = GetItemCount();
00056     for(int i=0;i<n;i++){
00057         if(_tcsicmp(GetItem(i)->m_szPath,pszPath)==0)return i;
00058     }
00059     return -1;
00060 }
00061
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFile.h

sakura_core

CRecentFile.h

#include "CRecentImp.h"
#include "FileInfo.h"

CRecentFile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentFile
FileInfoの履歴を管理 (RECENT_FOR_FILE) [詳細]

Sakura-Editorに対してSat Nov 17 20:26:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFile.h ソースファイル

sakura_core

CRecentFile.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "FileInfo.h" //FileInfo
00005
00007 class CRecentFile : public CRecentImp<FileInfo>{
00008 public:
00009     //生成
00010     CRecentFile();
00011
00012     //オーバーライド
00013     int             CompareItem( const FileInfo* p1, const FileInfo* p2 ) const;
00014     void            CopyItem( FileInfo* dst, const FileInfo* src ) const;
00015     const TCHAR*    GetItemText( int nIndex ) const;
00016
00017     //固有インターフェース
00018     int FindItemByPath(const TCHAR* pszPath) const;
00019 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFolder.cpp

sakura_core

CRecentFolder.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentFolder.h"
#include <string.h>
#include "my_icmp.h"

CRecentFolder.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFolder.cpp ソースファイル

sakura_core

CRecentFolder.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentFolder.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009
00010
00011
00012 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00013 //                           生成                              //
00014 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00015
00016 CRecentFolder::CRecentFolder()
00017 {
00018     Create(
00019         &GetShareData()->m_szOPENFOLDERArr[0],
00020         &GetShareData()->m_nOPENFOLDERArrNum,
00021         GetShareData()->m_bOPENFOLDERArrFavorite,
00022         MAX_OPENFOLDER,
00023         &(GetShareData()->m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX)
00024     );
00025 }
00026
00027 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00028 //                      オーバーライド                         //
00029 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00030
00031 /*
00032     アイテムの比較要素を取得する。
00033
00034     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00035 */
00036 const TCHAR* CRecentFolder::GetItemText( int nIndex ) const
00037 {
00038     return *GetItem(nIndex);
00039 }
00040
00041 int CRecentFolder::CompareItem( const CPathString* p1, LPCTSTR p2 ) const
00042 {
00043     return _tcsicmp(*p1,p2);
00044 }
00045
00046 void CRecentFolder::CopyItem( CPathString* dst, LPCTSTR src ) const
00047 {
00048     _tcscpy(*dst,src);
00049 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFolder.h

sakura_core

CRecentFolder.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentFolder.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentFolder
フォルダの履歴を管理 (RECENT_FOR_FOLDER) [詳細]

型定義

typedef StaticString< TCHAR,
_MAX_PATH > 		CPathString

型定義

typedef StaticString<TCHAR, _MAX_PATH> CPathString

CRecentFolder.h の 8 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentFolder.h ソースファイル

sakura_core

CRecentFolder.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 //StaticVector< StaticString<TCHAR, _MAX_PATH>, MAX_GREPFOLDER, const TCHAR*>
00007
00008 typedef StaticString<TCHAR, _MAX_PATH> CPathString;
00009
00011 class CRecentFolder : public CRecentImp<CPathString, LPCTSTR>{
00012 public:
00013     //生成
00014     CRecentFolder();
00015
00016     //オーバーライド
00017     int             CompareItem( const CPathString* p1, LPCTSTR p2 ) const;
00018     void            CopyItem( CPathString* dst, LPCTSTR src ) const;
00019     const TCHAR*    GetItemText( int nIndex ) const;
00020 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFile.cpp

sakura_core

CRecentGrepFile.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentGrepFile.h"
#include <string.h>
#include "my_icmp.h"

CRecentGrepFile.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFile.cpp ソースファイル

sakura_core

CRecentGrepFile.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentGrepFile.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentGrepFile::CRecentGrepFile()
00014 {
00015     Create(
00016         &GetShareData()->m_aGrepFiles[0],
00017         &GetShareData()->m_aGrepFiles._GetSizeRef(),
00018         NULL,
00019         MAX_GREPFILE,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentGrepFile::GetItemText( int nIndex ) const
00034 {
00035     return *GetItem(nIndex);
00036 }
00037
00038 int CRecentGrepFile::CompareItem( const CGrepFileString* p1, LPCTSTR p2 ) const
00039 {
00040     return _tcsicmp(*p1,p2);
00041 }
00042
00043 void CRecentGrepFile::CopyItem( CGrepFileString* dst, LPCTSTR src ) const
00044 {
00045     _tcscpy(*dst,src);
00046 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFile.h

sakura_core

CRecentGrepFile.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentGrepFile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentGrepFile
GREPファイルの履歴を管理 (RECENT_FOR_GREP_FILE) [詳細]

型定義

typedef StaticString< TCHAR,
_MAX_PATH > 		CGrepFileString

型定義

typedef StaticString<TCHAR, _MAX_PATH> CGrepFileString

CRecentGrepFile.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFile.h ソースファイル

sakura_core

CRecentGrepFile.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 typedef StaticString<TCHAR, _MAX_PATH> CGrepFileString;
00007
00009 class CRecentGrepFile : public CRecentImp<CGrepFileString, LPCTSTR>{
00010 public:
00011     //生成
00012     CRecentGrepFile();
00013
00014     //オーバーライド
00015     int             CompareItem( const CGrepFileString* p1, LPCTSTR p2 ) const;
00016     void            CopyItem( CGrepFileString* dst, LPCTSTR src ) const;
00017     const TCHAR*    GetItemText( int nIndex ) const;
00018 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFolder.cpp

sakura_core

CRecentGrepFolder.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentGrepFolder.h"
#include <string.h>
#include "my_icmp.h"

CRecentGrepFolder.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFolder.cpp ソースファイル

sakura_core

CRecentGrepFolder.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentGrepFolder.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentGrepFolder::CRecentGrepFolder()
00014 {
00015     Create(
00016         &GetShareData()->m_aGrepFolders[0],
00017         &GetShareData()->m_aGrepFolders._GetSizeRef(),
00018         NULL,
00019         MAX_GREPFOLDER,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentGrepFolder::GetItemText( int nIndex ) const
00034 {
00035     return *GetItem(nIndex);
00036 }
00037
00038 int CRecentGrepFolder::CompareItem( const CGrepFolderString* p1, LPCTSTR p2 ) const
00039 {
00040     return _tcsicmp(*p1,p2);
00041 }
00042
00043 void CRecentGrepFolder::CopyItem( CGrepFolderString* dst, LPCTSTR src ) const
00044 {
00045     _tcscpy(*dst,src);
00046 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFolder.h

sakura_core

CRecentGrepFolder.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentGrepFolder.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentGrepFolder
GREPフォルダの履歴を管理 (RECENT_FOR_GREP_FOLDER) [詳細]

型定義

typedef StaticString< TCHAR,
_MAX_PATH > 		CGrepFolderString

型定義

typedef StaticString<TCHAR, _MAX_PATH> CGrepFolderString

CRecentGrepFolder.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentGrepFolder.h ソースファイル

sakura_core

CRecentGrepFolder.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 typedef StaticString<TCHAR, _MAX_PATH> CGrepFolderString;
00007
00009 class CRecentGrepFolder : public CRecentImp<CGrepFolderString, LPCTSTR>{
00010 public:
00011     //生成
00012     CRecentGrepFolder();
00013
00014     //オーバーライド
00015     int             CompareItem( const CGrepFolderString* p1, LPCTSTR p2 ) const;
00016     void            CopyItem( CGrepFolderString* dst, LPCTSTR src ) const;
00017     const TCHAR*    GetItemText( int nIndex ) const;
00018 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentImp.cpp

sakura_core

CRecentImp.cpp

#include "stdafx.h"
#include "CRecentImp.h"
#include "CShareData.h"
#include "CRecent.h"

CRecentImp.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:39 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentImp.cpp ソースファイル

sakura_core

CRecentImp.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CRecentImp.h"
00003 #include "CShareData.h"
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                           生成                              //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008
00009 /*
00010     初期生成処理
00011
00012     @note
00013     nCmpType = strcmp, stricmp のときに nCmpSize = 0 を指定すると、AppendItem
00014     でのデータが文字列であると認識して strcpy をする。
00015     他の場合は memcpy で nItemSize 分をコピーする。
00016
00017     pnViewCount = NULL にすると、擬似的に nViewCount == nArrayCount になる。
00018 */
00019 template <class T, class S>
00020 bool CRecentImp<T, S>::Create(
00021     DataType*       pszItemArray,
00022     int*            pnItemCount,
00023     bool*           pbItemFavorite,
00024     int             nArrayCount,
00025     int*            pnViewCount
00026 )
00027 {
00028     Terminate();
00029
00030     //パラメータチェック
00031     if( NULL == pszItemArray ) return false;
00032     if( NULL == pnItemCount ) return false;
00033     if( nArrayCount <= 0 ) return false;
00034     if( pnViewCount && (*pnViewCount < 0 || nArrayCount < *pnViewCount) ) return false;
00035
00036     //各パラメータ格納
00037     m_puUserItemData        = pszItemArray;
00038     m_pnUserItemCount       = pnItemCount;
00039     m_pbUserItemFavorite    = pbItemFavorite;
00040     m_nArrayCount           = nArrayCount;
00041     m_pnUserViewCount       = pnViewCount;
00042     m_bCreate = true;
00043
00044     //個別に操作されていたときのための対応
00045     UpdateView();
00046
00047     return true;
00048 }
00049
00050 /*
00051     終了処理
00052 */
00053 template <class T, class S>
00054 void CRecentImp<T, S>::Terminate()
00055 {
00056     m_bCreate = false;
00057
00058     m_puUserItemData     = NULL;
00059     m_pnUserItemCount    = NULL;
00060     m_pnUserViewCount    = NULL;
00061     m_pbUserItemFavorite = NULL;
00062
00063     m_nArrayCount  = 0;
00064 }
00065
00066
00067 /*
00068     初期化済みか調べる。
00069 */
00070 template <class T, class S>
00071 bool CRecentImp<T, S>::IsAvailable() const
00072 {
00073     if(!m_bCreate)return false;
00074
00075     //データ破壊時のリカバリをやってみたりする
00076     const_cast<CRecentImp*>(this)->_Recovery();
00077
00078     return true;
00079 }
00080
00082 template <class T, class S>
00083 void CRecentImp<T, S>::_Recovery()
00084 {
00085     if( *m_pnUserItemCount < 0             ) *m_pnUserItemCount = 0;
00086     if( *m_pnUserItemCount > m_nArrayCount ) *m_pnUserItemCount = m_nArrayCount;
00087
00088     if( m_pnUserViewCount )
00089     {
00090         if( *m_pnUserViewCount < 0             ) *m_pnUserViewCount = 0;
00091         if( *m_pnUserViewCount > m_nArrayCount ) *m_pnUserViewCount = m_nArrayCount;
00092     }
00093 }
00094
00095
00096
00097
00098 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00099 //                        お気に入り                           //
00100 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00101
00102 /*
00103     お気に入り状態を設定する。
00104
00105     true    設定
00106     false   解除
00107 */
00108 template <class T, class S>
00109 bool CRecentImp<T, S>::SetFavorite( int nIndex, bool bFavorite )
00110 {
00111     if( ! IsAvailable() ) return false;
00112     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00113     if( NULL == m_pbUserItemFavorite ) return false;
00114
00115     m_pbUserItemFavorite[nIndex] = bFavorite;
00116
00117     return true;
00118 }
00119
00120 /*
00121     すべてのお気に入り状態を解除する。
00122 */
00123 template <class T, class S>
00124 void CRecentImp<T, S>::ResetAllFavorite()
00125 {
00126     if( ! IsAvailable() ) return;
00127
00128     for( int i = 0; i < *m_pnUserItemCount; i++ )
00129     {
00130         SetFavorite( i, false );
00131     }
00132 }
00133
00134 /*
00135     お気に入り状態かどうか調べる。
00136
00137     true    お気に入り
00138     false   通常
00139 */
00140 template <class T, class S>
00141 bool CRecentImp<T, S>::IsFavorite( int nIndex ) const
00142 {
00143     if( ! IsAvailable() ) return false;
00144     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00145     if( NULL == m_pbUserItemFavorite ) return false;
00146
00147     return m_pbUserItemFavorite[nIndex];
00148 }
00149
00150
00151
00152 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00153 //                       アイテム制御                          //
00154 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00155
00156 /*
00157     アイテムを先頭に追加する。
00158
00159     @note   すでに登録済みの場合は先頭に移動する。
00160     @note   いっぱいのときは最古のアイテムを削除する。
00161     @note   お気に入りは削除されない。
00162 */
00163 template <class T, class S>
00164 bool CRecentImp<T, S>::AppendItem( ReceiveType pItemData )
00165 {
00166     int     i;
00167
00168     if( !IsAvailable() ) return false;
00169     if( !pItemData ) return false;
00170
00171     //登録済みか調べる。
00172     int nIndex = FindItem( pItemData );
00173     if( nIndex >= 0 )
00174     {
00175         CopyItem( GetItemPointer(nIndex), pItemData );
00176
00177         //先頭に持ってくる。
00178         MoveItem( nIndex, 0 );
00179         goto reconfigure;
00180     }
00181
00182     //いっぱいのときは最古の通常アイテムを削除する。
00183     if( m_nArrayCount <= *m_pnUserItemCount )
00184     {
00185         nIndex = GetOldestItem( *m_pnUserItemCount - 1, false );
00186         if( -1 == nIndex )
00187         {
00188             return false;
00189         }
00190
00191         DeleteItem( nIndex );
00192     }
00193
00194     for( i = *m_pnUserItemCount; i > 0; i-- )
00195     {
00196         CopyItem( i - 1, i );
00197     }
00198
00199     CopyItem( GetItemPointer(0), pItemData );
00200
00201     //(void)SetFavorite( 0, true );
00202     //内部処理しないとだめ。
00203     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[0] = false;
00204
00205     *m_pnUserItemCount += 1;
00206
00207
00208 reconfigure:
00209     //お気に入りを表示内に移動する。
00210     if( m_pnUserViewCount )
00211     {
00212         ChangeViewCount( *m_pnUserViewCount );
00213     }
00214     return true;
00215 }
00216
00217
00218 /*
00219     アイテムをゼロクリアする。
00220 */
00221 template <class T, class S>
00222 void CRecentImp<T, S>::ZeroItem( int nIndex )
00223 {
00224     if( ! IsAvailable() ) return;
00225     if( nIndex < 0 || nIndex >= m_nArrayCount ) return;
00226
00227     memset_raw( GetItemPointer( nIndex ), 0, sizeof(DataType) );
00228
00229     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[nIndex] = false;
00230
00231     return;
00232 }
00233
00234 /*
00235     アイテムを削除する。
00236 */
00237 template <class T, class S>
00238 bool CRecentImp<T, S>::DeleteItem( int nIndex )
00239 {
00240     if( ! IsAvailable() ) return false;
00241     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00242
00243     ZeroItem( nIndex );
00244
00245     //以降のアイテムを前に詰める。
00246     int i;
00247     for( i = nIndex; i < *m_pnUserItemCount - 1; i++ )
00248     {
00249         CopyItem( i + 1, i );
00250     }
00251     ZeroItem( i );
00252
00253     *m_pnUserItemCount -= 1;
00254
00255     return true;
00256 }
00257
00258 /*
00259     すべてのアイテムを削除する。
00260
00261     @note   ゼロクリアを可能とするため、すべてが対象になる。
00262 */
00263 template <class T, class S>
00264 void CRecentImp<T, S>::DeleteAllItem()
00265 {
00266     int i;
00267
00268     if( ! IsAvailable() ) return;
00269
00270     for( i = 0; i < m_nArrayCount; i++ )
00271     {
00272         ZeroItem( i );
00273     }
00274
00275     *m_pnUserItemCount = 0;
00276
00277     return;
00278 }
00279
00280 /*
00281     アイテムを移動する。
00282 */
00283 template <class T, class S>
00284 bool CRecentImp<T, S>::MoveItem( int nSrcIndex, int nDstIndex )
00285 {
00286     int i;
00287     bool    bFavorite;
00288
00289     if( ! IsAvailable() ) return false;
00290     if( nSrcIndex < 0 || nSrcIndex >= *m_pnUserItemCount ) return false;
00291     if( nDstIndex < 0 || nDstIndex >= *m_pnUserItemCount ) return false;
00292
00293     if( nSrcIndex == nDstIndex ) return true;
00294
00295     DataType pri;
00296
00297     //移動する情報を退避
00298     memcpy_raw( &pri, GetItemPointer( nSrcIndex ), sizeof(pri) );
00299     bFavorite = IsFavorite( nSrcIndex );
00300
00301     if( nSrcIndex < nDstIndex )
00302     {
00303         for( i = nSrcIndex; i < nDstIndex; i++ )
00304         {
00305             CopyItem( i + 1, i );
00306         }
00307     }
00308     else
00309     {
00310         for( i = nSrcIndex; i > nDstIndex; i-- )
00311         {
00312             CopyItem( i - 1, i );
00313         }
00314     }
00315
00316     //新しい位置に格納
00317     memcpy_raw( GetItemPointer( nDstIndex ), &pri, sizeof(pri) );
00318     SetFavorite( nDstIndex, bFavorite );
00319
00320
00321     return true;
00322 }
00323
00324 template <class T, class S>
00325 bool CRecentImp<T, S>::CopyItem( int nSrcIndex, int nDstIndex )
00326 {
00327     if( ! IsAvailable() ) return false;
00328     if( nSrcIndex < 0 || nSrcIndex >= m_nArrayCount ) return false;
00329     if( nDstIndex < 0 || nDstIndex >= m_nArrayCount ) return false;
00330
00331     if( nSrcIndex == nDstIndex ) return true;
00332
00333     memcpy_raw( GetItemPointer( nDstIndex ), GetItemPointer( nSrcIndex ), sizeof(DataType) );
00334
00335     //(void)SetFavorite( nDstIndex, IsFavorite( nSrcIndex ) );
00336     //内部処理しないとだめ。
00337     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[nDstIndex] = m_pbUserItemFavorite[nSrcIndex];
00338
00339     return true;
00340 }
00341
00342
00343
00344 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00345 //                       アイテム取得                          //
00346 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00347
00348 template <class T, class S>
00349 const T* CRecentImp<T, S>::GetItem( int nIndex ) const
00350 {
00351     if(!IsAvailable() || nIndex<0 || nIndex>=*m_pnUserItemCount)return NULL;
00352     return &m_puUserItemData[nIndex];
00353 }
00354
00355 template <class T, class S>
00356 const T* CRecentImp<T, S>::GetItemPointer(int nIndex) const
00357 {
00358     if(!IsAvailable() || nIndex<0 || nIndex>=m_nArrayCount)return NULL;
00359     return &m_puUserItemData[nIndex];
00360 }
00361
00362 /*
00363     アイテムを検索する。
00364 */
00365 template <class T, class S>
00366 int CRecentImp<T, S>::FindItem( ReceiveType pItemData ) const
00367 {
00368     if( !IsAvailable() ) return -1;
00369     if( !pItemData ) return -1;
00370
00371     for( int i = 0; i < *m_pnUserItemCount; i++ )
00372     {
00373         if( CompareItem(GetItemPointer(i), pItemData) == 0 )return i;
00374     }
00375
00376     return -1;
00377 }
00378
00379 /*
00380     アイテムリストからもっとも古い｛お気に入り・通常｝のアイテムを探す。
00381
00382     bFavorite=true  お気に入りの中から探す
00383     bFavorite=false 通常の中から探す
00384 */
00385 template <class T, class S>
00386 int CRecentImp<T, S>::GetOldestItem( int nIndex, bool bFavorite )
00387 {
00388     if( ! IsAvailable() ) return -1;
00389     if( nIndex >= *m_pnUserItemCount ) nIndex = *m_pnUserItemCount - 1;
00390
00391     for( int i = nIndex; i >= 0; i-- )
00392     {
00393         if( IsFavorite( i ) == bFavorite ) return i;
00394     }
00395
00396     return -1;
00397 }
00398
00399
00400
00401
00402 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00403 //                          その他                             //
00404 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00405
00406 /*
00407     管理されているアイテムのうちの表示個数を変更する。
00408
00409     @note   お気に入りは可能な限り表示内に移動させる。
00410 */
00411 template <class T, class S>
00412 bool CRecentImp<T, S>::ChangeViewCount( int nViewCount )
00413 {
00414     int i;
00415     int nIndex;
00416
00417     //範囲外ならエラー
00418     if( ! IsAvailable() ) return false;
00419     if( nViewCount < 0 || nViewCount > m_nArrayCount ) return false;
00420
00421     //表示個数を更新する。
00422     if( m_pnUserViewCount )
00423     {
00424         *m_pnUserViewCount = nViewCount;
00425     }
00426
00427     //範囲内にすべて収まっているので何もしなくてよい。
00428     if( nViewCount >= *m_pnUserItemCount ) return true;
00429
00430     //最も古いお気に入りを探す。
00431     i = GetOldestItem( *m_pnUserItemCount - 1, true );
00432     if( -1 == i ) return true;  //ないので何もしないで終了
00433
00434     //表示外アイテムを表示内に移動する。
00435     for( ; i >= nViewCount; i-- )
00436     {
00437         if( IsFavorite( i ) )
00438         {
00439             //カレント位置から上に通常アイテムを探す
00440             nIndex = GetOldestItem( i - 1, false );
00441             if( -1 == nIndex ) break;   //もう1個もない
00442
00443             //見つかったアイテムをカレント位置に移動する
00444             MoveItem( nIndex, i );
00445         }
00446     }
00447
00448     return true;
00449 }
00450
00451 /*
00452     リストを更新する。
00453 */
00454 template <class T, class S>
00455 bool CRecentImp<T, S>::UpdateView()
00456 {
00457     int nViewCount;
00458
00459     //範囲外ならエラー
00460     if( ! IsAvailable() ) return false;
00461
00462     if( m_pnUserViewCount ) nViewCount = *m_pnUserViewCount;
00463     else                    nViewCount = m_nArrayCount;
00464
00465     return ChangeViewCount( nViewCount );
00466 }
00467
00468
00469
00470
00471 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00472 //                      インスタンス化                         //
00473 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00474 #include "CRecent.h"
00475 template class CRecentImp<CCmdString, LPCTSTR>;
00476 template class CRecentImp<EditNode>;
00477 template class CRecentImp<FileInfo>;
00478 template class CRecentImp<CPathString, LPCTSTR>;
00479 template class CRecentImp<CGrepFileString, LPCTSTR>;
00480 template class CRecentImp<CGrepFolderString, LPCTSTR>;
00481 template class CRecentImp<CReplaceString, LPCWSTR>;
00482 template class CRecentImp<CSearchString, LPCWSTR>;
00483 template class CRecentImp<CTagjumpKeywordString, LPCWSTR>;
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentImp.h

sakura_core

CRecentImp.h

#include "CRecent.h"
#include "CRecentFile.h"
#include "CRecentFolder.h"
#include "CRecentSearch.h"
#include "CRecentReplace.h"
#include "CRecentGrepFile.h"
#include "CRecentGrepFolder.h"
#include "CRecentCmd.h"
#include "CRecentEditNode.h"
#include "CRecentTagjumpKeyword.h"

CRecentImp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentImp< DATA_TYPE, RECEIVE_TYPE >

Sakura-Editorに対してSat Nov 17 20:26:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentImp.h ソースファイル

sakura_core

CRecentImp.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecent.h"
00004
00005
00006 template < class DATA_TYPE, class RECEIVE_TYPE = const DATA_TYPE* >
00007 class CRecentImp : public CRecent{
00008 private:
00009     typedef CRecentImp<DATA_TYPE,RECEIVE_TYPE>  Me;
00010     typedef DATA_TYPE                           DataType;
00011     typedef RECEIVE_TYPE                        ReceiveType;
00012
00013 public:
00014     CRecentImp(){ Terminate(); }
00015     virtual ~CRecentImp(){ Terminate(); }
00016
00017 protected:
00018     //生成
00019     bool Create(
00020         DataType*       pszItemArray,
00021         int*            pnItemCount,
00022         bool*           pbItemFavorite,
00023         int             nArrayCount,
00024         int*            pnViewCount
00025     );
00026 public:
00027     void Terminate();
00028     bool IsAvailable() const;
00029     void _Recovery();
00030
00031     //更新
00032     bool ChangeViewCount( int nViewCount ); //表示数の変更
00033     bool UpdateView();
00034
00035     //プロパティ取得系
00036     int GetArrayCount() const { return m_nArrayCount; } //最大要素数
00037     int GetItemCount() const { return ( IsAvailable() ? *m_pnUserItemCount : 0); }  //登録アイテム数
00038     int GetViewCount() const { return ( IsAvailable() ? (m_pnUserViewCount ? *m_pnUserViewCount : m_nArrayCount) : 0); }    //表示数
00039
00040     //お気に入り制御系
00041     bool SetFavorite( int nIndex, bool bFavorite = true);   //お気に入りに設定
00042     bool ResetFavorite( int nIndex ) { return SetFavorite( nIndex, false ); }   //お気に入りを解除
00043     void ResetAllFavorite();            //お気に入りをすべて解除
00044     bool IsFavorite( int nIndex ) const;            //お気に入りか調べる
00045
00046     //アイテム制御
00047     bool AppendItem( ReceiveType pItemData );   //アイテムを先頭に追加
00048     bool DeleteItem( int nIndex );              //アイテムをクリア
00049     bool DeleteItem( ReceiveType pItemData )
00050     {
00051         return DeleteItem( FindItem( pItemData ) );
00052     }
00053     void DeleteAllItem();                   //アイテムをすべてクリア
00054
00055     //アイテム取得
00056     const DataType* GetItem( int nIndex ) const;
00057     DataType* GetItem( int nIndex ){ return const_cast<DataType*>(static_cast<const Me*>(this)->GetItem(nIndex)); }
00058     int FindItem( ReceiveType pItemData ) const;
00059     bool MoveItem( int nSrcIndex, int nDstIndex );  //アイテムを移動
00060
00061
00062     //オーバーライド用インターフェース
00063     virtual int  CompareItem( const DataType* p1, ReceiveType p2 ) const = 0;
00064     virtual void CopyItem( DataType* dst, ReceiveType src ) const = 0;
00065
00066
00067     //実装補助
00068 private:
00069     const DataType* GetItemPointer(int nIndex) const;
00070     DataType* GetItemPointer(int nIndex){ return const_cast<DataType*>(static_cast<const Me*>(this)->GetItemPointer(nIndex)); }
00071     void   ZeroItem( int nIndex );  //アイテムをゼロクリアする
00072     int    GetOldestItem( int nIndex, bool bFavorite ); //最古のアイテムを探す
00073     bool   CopyItem( int nSrcIndex, int nDstIndex );
00074
00075 protected:
00076     //内部フラグ
00077     bool        m_bCreate;
00078
00079     //外部参照
00080     DataType*   m_puUserItemData;
00081     int*        m_pnUserItemCount;
00082     bool*       m_pbUserItemFavorite;
00083     int         m_nArrayCount;
00084     int*        m_pnUserViewCount;
00085 };
00086
00087
00088
00089 #include "CRecentFile.h"
00090 #include "CRecentFolder.h"
00091 #include "CRecentSearch.h"
00092 #include "CRecentReplace.h"
00093 #include "CRecentGrepFile.h"
00094 #include "CRecentGrepFolder.h"
00095 #include "CRecentCmd.h"
00096 #include "CRecentEditNode.h"
00097 #include "CRecentTagjumpKeyword.h"
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentReplace.cpp

sakura_core

CRecentReplace.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentReplace.h"
#include <string.h>
#include "my_icmp.h"

CRecentReplace.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:40 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentReplace.cpp ソースファイル

sakura_core

CRecentReplace.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentReplace.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentReplace::CRecentReplace()
00014 {
00015     Create(
00016         &GetShareData()->m_aReplaceKeys[0],
00017         &GetShareData()->m_aReplaceKeys._GetSizeRef(),
00018         NULL /*GetShareData()->m_bREPLACEKEYArrFavorite*/,
00019         MAX_REPLACEKEY,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentReplace::GetItemText( int nIndex ) const
00034 {
00035     return to_tchar(*GetItem(nIndex));
00036 }
00037
00038 int CRecentReplace::CompareItem( const CReplaceString* p1, LPCWSTR p2 ) const
00039 {
00040     return wcscmp(*p1,p2);
00041 }
00042
00043 void CRecentReplace::CopyItem( CReplaceString* dst, LPCWSTR src ) const
00044 {
00045     wcscpy(*dst,src);
00046 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentReplace.h

sakura_core

CRecentReplace.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentReplace.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentReplace
置換の履歴を管理 (RECENT_FOR_REPLACE) [詳細]

型定義

typedef StaticString< WCHAR,
_MAX_PATH > 		CReplaceString

型定義

typedef StaticString<WCHAR, _MAX_PATH> CReplaceString

CRecentReplace.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentReplace.h ソースファイル

sakura_core

CRecentReplace.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 typedef StaticString<WCHAR, _MAX_PATH> CReplaceString;
00007
00009 class CRecentReplace : public CRecentImp<CReplaceString, LPCWSTR>{
00010 public:
00011     //生成
00012     CRecentReplace();
00013
00014     //オーバーライド
00015     int             CompareItem( const CReplaceString* p1, LPCWSTR p2 ) const;
00016     void            CopyItem( CReplaceString* dst, LPCWSTR src ) const;
00017     const TCHAR*    GetItemText( int nIndex ) const;
00018 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentSearch.cpp

sakura_core

CRecentSearch.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentSearch.h"
#include <string.h>
#include "my_icmp.h"

CRecentSearch.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentSearch.cpp ソースファイル

sakura_core

CRecentSearch.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentSearch.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009
00010
00011
00012 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00013 //                           生成                              //
00014 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00015
00016 CRecentSearch::CRecentSearch()
00017 {
00018     Create(
00019         &GetShareData()->m_aSearchKeys[0],
00020         &GetShareData()->m_aSearchKeys._GetSizeRef(),
00021         NULL /*GetShareData()->m_bSEARCHKEYArrFavorite*/,
00022         MAX_SEARCHKEY,
00023         NULL
00024     );
00025 }
00026
00027 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00028 //                      オーバーライド                         //
00029 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00030
00031 /*
00032     アイテムの比較要素を取得する。
00033
00034     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00035 */
00036 const TCHAR* CRecentSearch::GetItemText( int nIndex ) const
00037 {
00038     return to_tchar(*GetItem(nIndex));
00039 }
00040
00041 int CRecentSearch::CompareItem( const CSearchString* p1, LPCWSTR p2 ) const
00042 {
00043     return wcscmp(*p1,p2);
00044 }
00045
00046 void CRecentSearch::CopyItem( CSearchString* dst, LPCWSTR src ) const
00047 {
00048     wcscpy(*dst,src);
00049 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentSearch.h

sakura_core

CRecentSearch.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentSearch.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentSearch
検索の履歴を管理 (RECENT_FOR_SEARCH) [詳細]

型定義

typedef StaticString< WCHAR,
_MAX_PATH > 		CSearchString

型定義

typedef StaticString<WCHAR, _MAX_PATH> CSearchString

CRecentSearch.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:41 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentSearch.h ソースファイル

sakura_core

CRecentSearch.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 typedef StaticString<WCHAR, _MAX_PATH> CSearchString;
00007
00009 class CRecentSearch : public CRecentImp<CSearchString, LPCWSTR>{
00010 public:
00011     //生成
00012     CRecentSearch();
00013
00014     //オーバーライド
00015     int             CompareItem( const CSearchString* p1, LPCWSTR p2 ) const;
00016     void            CopyItem( CSearchString* dst, LPCWSTR src ) const;
00017     const TCHAR*    GetItemText( int nIndex ) const;
00018 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentTagjumpKeyword.cpp

sakura_core

CRecentTagjumpKeyword.cpp

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecentTagjumpKeyword.h"
#include <string.h>
#include "my_icmp.h"

CRecentTagjumpKeyword.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentTagjumpKeyword.cpp ソースファイル

sakura_core

CRecentTagjumpKeyword.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "global.h"
00003 #include "CShareData.h"
00004 #include "CRecentTagjumpKeyword.h"
00005 #include <string.h>
00006 #include "my_icmp.h"
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           生成                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00013 CRecentTagjumpKeyword::CRecentTagjumpKeyword()
00014 {
00015     Create(
00016         &GetShareData()->m_aTagJumpKeywords[0],
00017         &GetShareData()->m_aTagJumpKeywords._GetSizeRef(),
00018         NULL /*GetShareData()->m_bTagJumpKeywordArrFavorite*/,
00019         MAX_TAGJUMP_KEYWORD,
00020         NULL
00021     );
00022 }
00023
00024 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00025 //                      オーバーライド                         //
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027
00028 /*
00029     アイテムの比較要素を取得する。
00030
00031     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00032 */
00033 const TCHAR* CRecentTagjumpKeyword::GetItemText( int nIndex ) const
00034 {
00035     return to_tchar(*GetItem(nIndex));
00036 }
00037
00038 int CRecentTagjumpKeyword::CompareItem( const CTagjumpKeywordString* p1, LPCWSTR p2 ) const
00039 {
00040     return wcscmp(*p1,p2);
00041 }
00042
00043 void CRecentTagjumpKeyword::CopyItem( CTagjumpKeywordString* dst, LPCWSTR src ) const
00044 {
00045     wcscpy(*dst,src);
00046 }
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentTagjumpKeyword.h

sakura_core

CRecentTagjumpKeyword.h

#include "CRecentImp.h"
#include "StaticType.h"

CRecentTagjumpKeyword.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecentTagjumpKeyword
タグジャンプキーワードの履歴を管理 (RECENT_FOR_TAGJUMP_KEYWORD) [詳細]

型定義

typedef StaticString< WCHAR,
_MAX_PATH > 		CTagjumpKeywordString

型定義

typedef StaticString<WCHAR, _MAX_PATH> CTagjumpKeywordString

CRecentTagjumpKeyword.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecentTagjumpKeyword.h ソースファイル

sakura_core

CRecentTagjumpKeyword.h

説明を見る。
00001 #pragma once
00002
00003 #include "CRecentImp.h"
00004 #include "StaticType.h"
00005
00006 typedef StaticString<WCHAR, _MAX_PATH> CTagjumpKeywordString;
00007
00009 class CRecentTagjumpKeyword : public CRecentImp<CTagjumpKeywordString, LPCWSTR>{
00010 public:
00011     //生成
00012     CRecentTagjumpKeyword();
00013
00014     //オーバーライド
00015     int             CompareItem( const CTagjumpKeywordString* p1, LPCWSTR p2 ) const;
00016     void            CopyItem( CTagjumpKeywordString* dst, LPCWSTR src ) const;
00017     const TCHAR*    GetItemText( int nIndex ) const;
00018 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecycledBuffer.cpp

sakura_core » mem

CRecycledBuffer.cpp

#include "stdafx.h"
#include "CRecycledBuffer.h"

CRecycledBuffer.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:42 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecycledBuffer.cpp ソースファイル

sakura_core » mem

CRecycledBuffer.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CRecycledBuffer.h"
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecycledBuffer.h

sakura_core » mem

CRecycledBuffer.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CRecycledBuffer
class | CRecycledBufferDynamic

Sakura-Editorに対してSat Nov 17 20:26:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRecycledBuffer.h ソースファイル

sakura_core » mem

CRecycledBuffer.h

説明を見る。
00001 #pragma once
00002
00003 //一時的なメモリブロックをローテーションして使いまわすためのモノ
00004 //Getで取得したメモリブロックは、「ある程度の期間」上書きされないことが保障される。
00005 //その「期間」とは、Getを呼んでから再度CHAIN_COUNT回、Getを呼び出すまでの間である。
00006 //取得したメモリブロックはCRecycledBufferの管理下にあるため、解放してはいけない。
00007 class CRecycledBuffer{
00008 //コンフィグ
00009 private:
00010     static const int BLOCK_SIZE  = 1024; //ブロックサイズ。バイト単位。
00011     static const int CHAIN_COUNT = 64;   //再利用可能なブロック数。
00012
00013 //コンストラクタ・デストラクタ
00014 public:
00015     CRecycledBuffer()
00016     {
00017         m_current=0;
00018     }
00019
00020 //インターフェース
00021 public:
00023     template <class T>
00024     T* GetBuffer(
00025         size_t* nCount
00026     )
00027     {
00028         if(nCount)*nCount=BLOCK_SIZE/sizeof(T);
00029         m_current = (m_current+1) % CHAIN_COUNT;
00030         return reinterpret_cast<T*>(m_buf[m_current]);
00031     }
00032
00034     template <class T>
00035     size_t GetMaxCount() const
00036     {
00037         return BLOCK_SIZE/sizeof(T);
00038     }
00039
00040
00041 //メンバ変数
00042 private:
00043     BYTE m_buf[CHAIN_COUNT][BLOCK_SIZE];
00044     int  m_current;
00045 };
00046
00047
00048
00049 class CRecycledBufferDynamic{
00050 //コンフィグ
00051 private:
00052     static const int CHAIN_COUNT = 64;   //再利用可能なブロック数。
00053
00054 //コンストラクタ・デストラクタ
00055 public:
00056     CRecycledBufferDynamic()
00057     {
00058         m_current=0;
00059         for(int i=0;i<_countof(m_buf);i++){
00060             m_buf[i]=NULL;
00061         }
00062     }
00063     ~CRecycledBufferDynamic()
00064     {
00065         for(int i=0;i<_countof(m_buf);i++){
00066             if(m_buf[i])delete[] m_buf[i];
00067         }
00068     }
00069
00070 //インターフェース
00071 public:
00073     template <class T>
00074     T* GetBuffer(
00075         size_t nCount
00076     )
00077     {
00078         m_current = (m_current+1) % CHAIN_COUNT;
00079
00080         //メモリ確保
00081         if(m_buf[m_current])delete[] m_buf[m_current];
00082         m_buf[m_current]=new BYTE[nCount*sizeof(T)];
00083
00084         return reinterpret_cast<T*>(m_buf[m_current]);
00085     }
00086
00087 //メンバ変数
00088 private:
00089     BYTE* m_buf[CHAIN_COUNT];
00090     int   m_current;
00091 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRegexKeyword.cpp

sakura_core

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::RegexKeyInit(), と CRegexKeyword::~CRegexKeyword().

Sakura-Editorに対してSat Nov 17 20:26:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRegexKeyword.cpp ソースファイル

sakura_core

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: %ls  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 wchar_t dummy[2] = L"\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( wcsncmp( RK_HEAD_STR1, rp->m_szKeyword, RK_HEAD_STR1_LEN ) == 0
00228                  || wcsncmp( RK_HEAD_STR2, rp->m_szKeyword, RK_HEAD_STR2_LEN ) == 0
00229                  || wcsncmp( RK_HEAD_STR3, rp->m_szKeyword, RK_HEAD_STR3_LEN ) == 0
00230                 )
00231                 {
00232                     m_sInfo[i].nHead = 1;
00233                 }
00234                 else
00235                 {
00236                     m_sInfo[i].nHead = 0;
00237                 }
00238
00239                 if( COLORIDX_REGEX1  <= rp->m_nColorIndex
00240                  && COLORIDX_REGEX10 >= rp->m_nColorIndex )
00241                 {
00242                     //色指定でチェックが入ってなければ検索しなくてもよい
00243                     if( m_pTypes->m_ColorInfoArr[rp->m_nColorIndex].m_bDisp )
00244                     {
00245                         m_sInfo[i].nFlag = RK_EMPTY;
00246                     }
00247                     else
00248                     {
00249                         //正規表現では色指定のチェックを見る。
00250                         m_sInfo[i].nFlag = RK_NOMATCH;
00251                     }
00252                 }
00253                 else
00254                 {
00255                     //正規表現以外では、色指定チェックは見ない。
00256                     //例えば、半角数値は正規表現を使い、基本機能を使わないという指定もあり得るため
00257                     m_sInfo[i].nFlag = RK_EMPTY;
00258                 }
00259             }
00260             else
00261             {
00262                 //コンパイルエラーなので検索対象からはずす
00263                 m_sInfo[i].nFlag = RK_NOMATCH;
00264             }
00265         }
00266         else
00267         {
00268             //書式エラーなので検索対象からはずす
00269             m_sInfo[i].nFlag = RK_NOMATCH;
00270         }
00271
00272     }
00273
00274     m_nCompiledMagicNumber = m_pTypes->m_nRegexKeyMagicNumber;  //Compiled.
00275
00276     return TRUE;
00277 }
00278
00280
00290 BOOL CRegexKeyword::RegexKeyLineStart( void )
00291 {
00292     int i;
00293
00294     MYDBGMSG("RegexKeyLineStart")
00295
00296     //動作に必要なチェックをする。
00297     if( ( m_bUseRegexKeyword == FALSE )
00298      || ( ! IsAvailable() )
00299      || ( m_pTypes == NULL ) )
00300     {
00301         return FALSE;
00302     }
00303
00304 #if 0   //RegexKeySetTypesで設定されているはずなので廃止
00305     //情報不一致ならマスタから取得してコンパイルする。
00306     if( m_nCompiledMagicNumber != m_pTypes->m_nRegexKeyMagicNumber
00307      || m_nTypeIndex           != m_pTypes->m_nIdx )
00308     {
00309         RegexKeyCompile();
00310     }
00311 #endif
00312
00313     //検索開始のためにオフセット情報等をクリアする。
00314     for(i = 0; i < m_nRegexKeyCount; i++)
00315     {
00316         m_sInfo[i].nOffset = -1;
00317         //m_sInfo[i].nMatch  = RK_EMPTY;
00318         m_sInfo[i].nMatch  = m_sInfo[i].nFlag;
00319         m_sInfo[i].nStatus = RK_EMPTY;
00320     }
00321
00322     return TRUE;
00323 }
00324
00326
00341 BOOL CRegexKeyword::RegexIsKeyword( const wchar_t *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor )
00342 {
00343     int i, matched;
00344
00345     MYDBGMSG("RegexIsKeyword")
00346
00347     //動作に必要なチェックをする。
00348     if( ( m_bUseRegexKeyword == FALSE )
00349      || ( ! IsAvailable() )
00350 #ifdef USE_PARENT
00351      || ( m_pTypes == NULL )
00352 #endif
00353      /* || ( pLine == NULL ) */ )
00354     {
00355         return FALSE;
00356     }
00357
00358     for(i = 0; i < m_nRegexKeyCount; i++)
00359     {
00360         if( m_sInfo[i].nMatch != RK_NOMATCH )  /* この行にキーワードがないと分かっていない */
00361         {
00362             if( m_sInfo[i].nOffset == nPos )  /* 以前検索した結果に一致する */
00363             {
00364                 *nMatchLen   = m_sInfo[i].nLength;
00365 #ifdef USE_PARENT
00366                 *nMatchColor = m_pTypes->m_RegexKeywordArr[i].m_nColorIndex;
00367 #else
00368                 *nMatchColor = m_sInfo[i].sRegexKey.m_nColorIndex;
00369 #endif
00370                 return TRUE;  /* マッチした */
00371             }
00372
00373             /* 以前の結果はもう古いので再検索する */
00374             if( m_sInfo[i].nOffset < nPos )
00375             {
00376 #ifdef USE_PARENT
00377                 matched = BMatch(m_pTypes->m_RegexKeywordArr[i].m_szKeyword, pLine+nPos, pLine+nLineLen,
00378                     &m_sInfo[i].pBregexp, m_szMsg);
00379 #else
00380                 matched = BMatch(m_sInfo[i].sRegexKey.m_szKeyword, pLine+nPos, pLine+nLineLen,
00381                     &m_sInfo[i].pBregexp, m_szMsg);
00382 #endif
00383                 if( matched )
00384                 {
00385                     m_sInfo[i].nOffset = m_sInfo[i].pBregexp->startp[0] - pLine;
00386                     m_sInfo[i].nLength = m_sInfo[i].pBregexp->endp[0] - m_sInfo[i].pBregexp->startp[0];
00387                     m_sInfo[i].nMatch  = RK_MATCH;
00388
00389                     /* 指定の開始位置でマッチした */
00390                     if( m_sInfo[i].nOffset == nPos )
00391                     {
00392                         if( m_sInfo[i].nHead != 1 || nPos == 0 )
00393                         {
00394                             *nMatchLen   = m_sInfo[i].nLength;
00395 #ifdef USE_PARENT
00396                             *nMatchColor = m_pTypes->m_RegexKeywordArr[i].m_nColorIndex;
00397 #else
00398                             *nMatchColor = m_sInfo[i].sRegexKey.m_nColorIndex;
00399 #endif
00400                             return TRUE;  /* マッチした */
00401                         }
00402                     }
00403
00404                     /* 行先頭を要求する正規表現では次回から無視する */
00405                     if( m_sInfo[i].nHead == 1 )
00406                     {
00407                         m_sInfo[i].nMatch = RK_NOMATCH;
00408                     }
00409                 }
00410                 else
00411                 {
00412                     /* この行にこのキーワードはない */
00413                     m_sInfo[i].nMatch = RK_NOMATCH;
00414                 }
00415             }
00416         }
00417     }  /* for */
00418
00419     return FALSE;
00420 }
00421
00422 BOOL CRegexKeyword::RegexKeyCheckSyntax(const wchar_t *s)
00423 {
00424     const wchar_t   *p;
00425     int length, i;
00426     static const wchar_t *kakomi[7 * 2] = {
00427         L"/",  L"/k",
00428         L"m/", L"/k",
00429         L"m#", L"#k",
00430         L"/",  L"/ki",
00431         L"m/", L"/ki",
00432         L"m#", L"#ki",
00433         NULL, NULL,
00434     };
00435
00436     length = wcslen(s);
00437
00438     for(i = 0; kakomi[i] != NULL; i += 2)
00439     {
00440         //文字長を確かめる
00441         if( length > (int)wcslen(kakomi[i]) + (int)wcslen(kakomi[i+1]) )
00442         {
00443             //始まりを確かめる
00444             if( wcsncmp(kakomi[i], s, wcslen(kakomi[i])) == 0 )
00445             {
00446                 //終わりを確かめる
00447                 p = &s[length - wcslen(kakomi[i+1])];
00448                 if( wcscmp(p, kakomi[i+1]) == 0 )
00449                 {
00450                     //正常
00451                     return TRUE;
00452                 }
00453             }
00454         }
00455     }
00456
00457     return FALSE;
00458 }
00459
00460 //@@@ 2001.11.17 add end MIK
00461
00462 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRegexKeyword.h

sakura_core

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 L"/^"
#define | RK_HEAD_STR1_LEN 2
#define | RK_HEAD_STR2 L"m#^"
#define | RK_HEAD_STR2_LEN 3
#define | RK_HEAD_STR3 L"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 struct 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 行で定義されています。

#define RK_ERROR 9

CRegexKeyword.h の 39 行で定義されています。

#define RK_HEAD_STR1 L"/^"

CRegexKeyword.h の 47 行で定義されています。

#define RK_HEAD_STR1_LEN 2

CRegexKeyword.h の 48 行で定義されています。

#define RK_HEAD_STR2 L"m#^"

CRegexKeyword.h の 49 行で定義されています。

#define RK_HEAD_STR2_LEN 3

CRegexKeyword.h の 50 行で定義されています。

#define RK_HEAD_STR3 L"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 行で定義されています。

#define RK_OPEN 2

CRegexKeyword.h の 37 行で定義されています。

#define RK_SIZE 100

CRegexKeyword.h の 44 行で定義されています。

#define USE_PARENT

CRegexKeyword.h の 30 行で定義されています。

型定義

typedef struct RegexInfo_t REGEX_INFO

Sakura-Editorに対してSat Nov 17 20:26:43 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRegexKeyword.h ソースファイル

sakura_core

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      L"/^"   //BREGEXP
00048 #define RK_HEAD_STR1_LEN  2
00049 #define RK_HEAD_STR2      L"m#^"  //BREGEXP
00050 #define RK_HEAD_STR2_LEN  3
00051 #define RK_HEAD_STR3      L"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_W   *pBregexp;  //BREGEXP_W構造体
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 wchar_t *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor );
00098     BOOL RegexKeySetTypes( Types *pTypesPtr );
00100     BOOL RegexKeyCheckSyntax( const wchar_t *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     wchar_t     m_szMsg[256];
00119 };
00120
00121 #endif  //_REGEX_KEYWORD_H_
00122
00123 //@@@ 2001.11.17 add end MIK
00124
00125 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRuler.cpp

sakura_core

CRuler.cpp

#include "stdafx.h"
#include "CRuler.h"
#include "CTextArea.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CTypeSupport.h"

CRuler.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRuler.cpp ソースファイル

sakura_core

CRuler.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CRuler.h"
00003 #include "CTextArea.h"
00004 #include "CEditView.h"
00005 #include "CEditDoc.h"
00006 #include "CTypeSupport.h"
00007
00008 CRuler::CRuler(const CEditView* pEditView, const CEditDoc* pEditDoc)
00009 : m_pEditView(pEditView)
00010 , m_pEditDoc(pEditDoc)
00011 {
00012     m_nOldRulerDrawX = 0;   // 前回描画したルーラーのキャレット位置 2002.02.25 Add By KK
00013     m_nOldRulerWidth = 0;   // 前回描画したルーラーのキャレット幅   2002.02.25 Add By KK
00014 }
00015
00016 CRuler::~CRuler()
00017 {
00018 }
00019
00020 //2007.08.26 kobake UNICODE用にX位置を変更
00021 void CRuler::_DrawRulerCaret( HDC hdc, int nCaretDrawPosX, int nCaretWidth )
00022 {
00023     //描画領域 -> hRgn
00024     RECT rc;
00025     rc.left = nCaretDrawPosX; //m_pEditView->GetTextArea().GetAreaLeft() + ( cCaretPosTmp.GetX() - m_pEditView->GetTextArea().GetViewLeftCol() ) * m_pEditView->GetTextMetrics().GetHankakuDx() + 1;
00026     rc.right = rc.left + m_pEditView->GetTextMetrics().GetHankakuDx() - 1;
00027     rc.top = 0;
00028     rc.bottom = m_pEditView->GetTextArea().GetAreaTop() - m_pEditView->GetTextArea().GetTopYohaku() - 1;
00029     HRGN hRgn = ::CreateRectRgnIndirect( &rc );
00030
00031     //ブラシ作成 -> hBrush
00032     HBRUSH hBrush;
00033     if( 0 == nCaretWidth ){
00034         hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00035     }else{
00036         hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00037     }
00038
00039     //領域を描画 (色を反転させる)
00040     int    nROP_Old  = ::SetROP2( hdc, R2_NOTXORPEN );
00041     HBRUSH hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00042     ::SelectObject( hdc, hBrush );
00043     ::PaintRgn( hdc, hRgn );
00044     ::SelectObject( hdc, hBrushOld );
00045     ::SetROP2( hdc, nROP_Old );
00046
00047     //描画オブジェクト破棄
00048     ::DeleteObject( hRgn );
00049     ::DeleteObject( hBrush );
00050 }
00051
00057 void CRuler::DrawRulerCaret( HDC hdc )
00058 {
00059     if( m_pEditView->GetTextArea().GetViewLeftCol() <= m_pEditView->GetCaret().GetCaretLayoutPos().GetX()
00060      && m_pEditView->GetTextArea().GetRightCol() + 2 >= m_pEditView->GetCaret().GetCaretLayoutPos().GetX()
00061     ){
00062         if (m_pEditView->GetRuler().m_nOldRulerDrawX == m_pEditView->GetCaret().CalcCaretDrawPos(m_pEditView->GetCaret().GetCaretLayoutPos()).x
00063             && m_pEditView->GetCaret().GetCaretSize().cx == m_pEditView->GetRuler().m_nOldRulerWidth) {
00064             //前描画した位置画同じ かつ ルーラーのキャレット幅が同じ
00065             return;
00066         }
00067
00068         //元位置をクリア m_nOldRulerWidth
00069         this->_DrawRulerCaret( hdc, m_nOldRulerDrawX, m_nOldRulerWidth );
00070
00071         //新しい位置で描画   2007.08.26 kobake UNICODE用にX位置を変更
00072         this->_DrawRulerCaret(
00073             hdc,
00074             m_pEditView->GetCaret().CalcCaretDrawPos(m_pEditView->GetCaret().GetCaretLayoutPos()).x,
00075             m_pEditView->GetCaret().GetCaretSize().cx
00076         );
00077     }
00078 }
00079
00081 void CRuler::DrawRulerBg(HDC hdc)
00082 {
00083     //必要なインターフェース
00084     CommonSetting* pCommon=&m_pEditView->m_pShareData->m_Common;
00085
00086     //サポート
00087     CTypeSupport cRulerType(m_pEditView,COLORIDX_RULER);
00088
00089     // フォント設定 (ルーラー上の数字用)
00090     LOGFONT lf;
00091     HFONT       hFont;
00092     HFONT       hFontOld;
00093     memset_raw( &lf, 0, sizeof(lf) );
00094     lf.lfHeight         = 1 - pCommon->m_sWindow.m_nRulerHeight;    //  2002/05/13 ai
00095     lf.lfWidth          = 5;
00096     lf.lfEscapement     = 0;
00097     lf.lfOrientation    = 0;
00098     lf.lfWeight         = 400;
00099     lf.lfItalic         = 0;
00100     lf.lfUnderline      = 0;
00101     lf.lfStrikeOut      = 0;
00102     lf.lfCharSet        = 0;
00103     lf.lfOutPrecision   = 3;
00104     lf.lfClipPrecision  = 2;
00105     lf.lfQuality        = 1;
00106     lf.lfPitchAndFamily = 34;
00107     _tcscpy( lf.lfFaceName, _T("Arial") );
00108     hFont = ::CreateFontIndirect( &lf );
00109     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00110     ::SetBkMode( hdc, TRANSPARENT );
00111
00112     //背景塗りつぶし
00113     RECT rc;
00114     rc.left = 0;
00115     rc.top = 0;
00116     rc.right = m_pEditView->GetTextArea().GetAreaRight();
00117     rc.bottom = m_pEditView->GetTextArea().GetAreaTop() - m_pEditView->GetTextArea().GetTopYohaku();
00118     cRulerType.FillBack(hdc,rc);
00119
00120     //ルーラー色設定
00121     cRulerType.SetSolidPen(hdc,0);
00122     cRulerType.SetTextColor(hdc);
00123
00124
00125     //描画開始位置
00126     int nX = m_pEditView->GetTextArea().GetAreaLeft();
00127     int nY = m_pEditView->GetTextArea().GetRulerHeight() - 2;
00128
00129
00130     // 下線 (ルーラーと本文の境界)
00131     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00132     //  2005.11.10 Moca 1dot足りない
00133     CLayoutInt  nMaxLineKetas = m_pEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00134     int nToX = m_pEditView->GetTextArea().GetAreaLeft() + (Int)(nMaxLineKetas - m_pEditView->GetTextArea().GetViewLeftCol()) * m_pEditView->GetTextMetrics().GetHankakuDx() + 1;
00135     if( nToX > m_pEditView->GetTextArea().GetAreaRight() ){
00136         nToX = m_pEditView->GetTextArea().GetAreaRight();
00137     }
00138     ::MoveToEx( hdc, m_pEditView->GetTextArea().GetAreaLeft(), nY + 1, NULL );
00139     ::LineTo( hdc, nToX, nY + 1 );
00140
00141
00142     //目盛を描画
00143     CLayoutInt i = m_pEditView->GetTextArea().GetViewLeftCol();
00144     while(i <= m_pEditView->GetTextArea().GetRightCol() + 1 && i <= nMaxLineKetas)
00145     {
00146         //ルーラー終端の区切り(大)
00147         if( i == nMaxLineKetas ){
00148             ::MoveToEx( hdc, nX, nY, NULL );
00149             ::LineTo( hdc, nX, 0 );
00150         }
00151         //10目盛おきの区切り(大)と数字
00152         else if( 0 == i % 10 ){
00153             wchar_t szColm[32];
00154             ::MoveToEx( hdc, nX, nY, NULL );
00155             ::LineTo( hdc, nX, 0 );
00156             _itow( ((Int)i) / 10, szColm, 10 );
00157 			::TextOutW_AnyBuild( hdc, nX + 2 + 0, -1 + 0, szColm, wcslen( szColm ) );
00158         }
00159         //5目盛おきの区切り(中)
00160         else if( 0 == i % 5 ){
00161             ::MoveToEx( hdc, nX, nY, NULL );
00162             ::LineTo( hdc, nX, nY - 6 );
00163         }
00164         //毎目盛の区切り(小)
00165         else{
00166             ::MoveToEx( hdc, nX, nY, NULL );
00167             ::LineTo( hdc, nX, nY - 3 );
00168         }
00169
00170         nX += m_pEditView->GetTextMetrics().GetHankakuDx();
00171         i++;
00172     }
00173
00174     //色戻す
00175     cRulerType.RewindColors(hdc);
00176     cRulerType.RewindPen(hdc);
00177
00178     //フォント戻す
00179     ::SelectObject( hdc, hFontOld );
00180     ::DeleteObject( hFont );
00181 }
00182
00187 void CRuler::DispRuler( HDC hdc )
00188 {
00189     //必要なインターフェース
00190     const CommonSetting* pCommon=&m_pEditView->m_pShareData->m_Common;
00191
00192     //サポート
00193     CTypeSupport cRulerType(m_pEditView,COLORIDX_RULER);
00194
00195     if( !m_pEditView->GetDrawSwitch() ){
00196         return;
00197     }
00198     if( !cRulerType.IsDisp() ){
00199         return;
00200     }
00201
00202     // 2002.02.25 Add By KK ルーラー全体を描き直す必要がない場合は、ルーラ上のキャレットのみ描きなおす
00203     if ( !m_bRedrawRuler ) {
00204         DrawRulerCaret( hdc );
00205     }
00206     else {
00207         // 背景描画
00208         DrawRulerBg(hdc);
00209
00210         // キャレット描画
00211         if( m_pEditView->GetTextArea().GetViewLeftCol() <= m_pEditView->GetCaret().GetCaretLayoutPos().GetX()
00212          && m_pEditView->GetTextArea().GetRightCol() + 2 >= m_pEditView->GetCaret().GetCaretLayoutPos().GetX()
00213         ){
00214             _DrawRulerCaret(hdc,m_pEditView->GetCaret().CalcCaretDrawPos(m_pEditView->GetCaret().GetCaretLayoutPos()).x,m_pEditView->GetCaret().GetCaretSize().cx);
00215         }
00216
00217         m_bRedrawRuler = false; //m_bRedrawRuler = true で指定されるまで、ルーラのキャレットのみを再描画 2002.02.25 Add By KK
00218     }
00219
00220     //描画したルーラーのキャレット位置・幅を保存 2002.02.25 Add By KK
00221     m_nOldRulerDrawX = m_pEditView->GetCaret().CalcCaretDrawPos(m_pEditView->GetCaret().GetCaretLayoutPos()).x;
00222     m_nOldRulerWidth = m_pEditView->GetCaret().GetCaretSize().cx ;
00223 }
00224
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRuler.h

sakura_core

CRuler.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRuler

Sakura-Editorに対してSat Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRuler.h ソースファイル

sakura_core

CRuler.h

説明を見る。
00001 #pragma once
00002
00003 class CTextArea;
00004 class CEditView;
00005 class CEditDoc;
00006 class CTextMetrics;
00007
00008 class CRuler{
00009 public:
00010     CRuler(const CEditView* pEditView, const CEditDoc* pEditDoc);
00011     virtual ~CRuler();
00012
00013     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00014     //                     インターフェース                        //
00015     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00016
00018     void DispRuler( HDC );
00019
00021     void DrawRulerBg(HDC hdc);
00022
00024     void DrawRulerCaret( HDC hdc );
00025
00026 public:
00027     void SetRedrawFlag(){ m_bRedrawRuler = true; }
00028
00029 private:
00030     void _DrawRulerCaret( HDC hdc, int nCaretDrawX, int nCaretWidth );
00031
00032     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00033     //                       メンバ変数群                          //
00034     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00035 private:
00036     //参照
00037     const CEditView*    m_pEditView;
00038     const CEditDoc*     m_pEditDoc;
00039
00040     //状態
00041     bool    m_bRedrawRuler;     // ルーラー全体を描き直す時 = true      2002.02.25 Add By KK
00042     int     m_nOldRulerDrawX;   // 前回描画したルーラーのキャレット位置 2002.02.25 Add By KK  2007.08.26 kobake 名前変更
00043     int     m_nOldRulerWidth;   // 前回描画したルーラーのキャレット幅   2002.02.25 Add By KK  2007.08.26 kobake 名前変更
00044 };
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRunningTimer.cpp

sakura_core

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 Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRunningTimer.cpp ソースファイル

sakura_core

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_A( "%3d:\"%hs\" : 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_A( "%3d:\"%hs\", %d㍉秒 : %hs\n", m_nDeapth, m_szText, GetTickCount() - m_nStartTime, msg );
00064 }
00065 #endif
00066
00067 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRunningTimer.h

sakura_core

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 行で定義されています。

参照元 _tWinMain(), CEditDoc::CEditDoc(), CViewCommander::Command_REDO(), CViewCommander::Command_UNDO(), CImageListMgr::Create(), CEditWnd::Create(), CEditDoc::Create(), CControlTray::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().

#define MY_TRACETIME | ( | c,
 |  | m | )

CRunningTimer.h の 87 行で定義されています。

参照元 _tWinMain(), CEditWnd::Create(), CEditDoc::Create(), CNormalProcess::Initialize(), と CControlProcess::Initialize().

Sakura-Editorに対してSat Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CRunningTimer.h ソースファイル

sakura_core

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 Nov 17 20:24:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData.cpp

sakura_core

CShareData.cpp

プロセス間共有データへのアクセス [詳細]

#include "stdafx.h"
#include "CShareData.h"
#include "CControlTray.h"
#include "mymessage.h"
#include "debug.h"
#include "global.h"
#include "CRunningTimer.h"
#include "my_icmp.h"
#include "my_tchar.h"
#include "charcode.h"
#include <tchar.h>
#include "util/module.h"
#include "util/string_ex2.h"
#include "util/window.h"
#include "util/file.h"
#include "util/os.h"
#include "CNormalProcess.h"

ソースコードを見る。

構成

struct | ARRHEAD
struct | EditNodeEx

マクロ定義

#define | _USE_META_ALIAS
#define | PopulateKeyword(name, case_sensitive, ary)

関数

static int __cdecl | cmpGetOpenedWindowArr (const void *e1, const void *e2)
DLLSHAREDATA & GetDllShareData ()
どこからでもアクセスできる、共有データアクセサ。2007.10.30 kobake

変数

const unsigned int | uShareDataVersion = 82
共有メモリのバージョン
static BOOL | s_bSort
static BOOL | s_bGSort
static const wchar_t *const | ppszKeyWordsCPP []
static const wchar_t *const | ppszKeyWordsHTML []
static const wchar_t *const | ppszKeyWordsPLSQL []
static const wchar_t *const | ppszKeyWordsCOBOL []
static const wchar_t * | ppszKeyWordsJAVA []
static const wchar_t *const | ppszKeyWordsCORBA_IDL []
static const wchar_t *const | ppszKeyWordsAWK []
static const wchar_t * | ppszKeyWordsBAT []
static const wchar_t * | ppszKeyWordsPASCAL []
static const wchar_t * | ppszKeyWordsTEX []
static const wchar_t * | ppszKeyWordsTEX2 []
static const wchar_t * | ppszKeyWordsPERL []
static const wchar_t * | ppszKeyWordsPERL2 []
static const wchar_t * | ppszKeyWordsVB []
static const wchar_t * | ppszKeyWordsVB2 []
static const wchar_t * | 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, _countof(ary), (ary) );

参照元 CShareData::InitKeyword().

関数

static int __cdecl cmpGetOpenedWindowArr | ( | const void * | e1,
 |  | const void * | e2 |
 | ) |  |  | [static]

CShareData.cpp の 1396 行で定義されています。

参照先 s_bGSort, と s_bSort.

参照元 CShareData::GetOpenedWindowArrCore().

DLLSHAREDATA& GetDllShareData ( )

どこからでもアクセスできる、共有データアクセサ。2007.10.30 kobake

CShareData.cpp の 5503 行で定義されています。

参照先 CProcess::GetDllShareData(), と TSingleInstance< CNormalProcess >::Instance().

参照元 CMainToolBar::AcceptSharedSearchKey(), CMainToolBar::CreateToolBar(), CMainStatusBar::DestroyStatusBar(), と CMainToolBar::OnToolbarTimer().

変数

const wchar_t* const ppszKeyWordsAWK[] [static]

CShareData.cpp の 2914 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsBAT[] [static]

CShareData.cpp の 3003 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* const ppszKeyWordsCOBOL[] [static]

CShareData.cpp の 2717 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* const ppszKeyWordsCORBA_IDL[] [static]

CShareData.cpp の 2874 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* const ppszKeyWordsCPP[] [static]

CShareData.cpp の 2287 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* const ppszKeyWordsHTML[] [static]

CShareData.cpp の 2378 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsJAVA[] [static]

CShareData.cpp の 2822 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsPASCAL[] [static]

CShareData.cpp の 3078 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsPERL[] [static]

CShareData.cpp の 3807 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsPERL2[] [static]

CShareData.cpp の 4041 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* const ppszKeyWordsPLSQL[] [static]

CShareData.cpp の 2633 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsRTF[] [static]

CShareData.cpp の 4472 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsTEX[] [static]

CShareData.cpp の 3151 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsTEX2[] [static]

CShareData.cpp の 3685 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsVB[] [static]

CShareData.cpp の 4148 行で定義されています。

参照元 CShareData::InitKeyword().

const wchar_t* ppszKeyWordsVB2[] [static]

CShareData.cpp の 4273 行で定義されています。

参照元 CShareData::InitKeyword().

BOOL s_bGSort [static]

CShareData.cpp の 1389 行で定義されています。

参照元 cmpGetOpenedWindowArr(), と CShareData::GetOpenedWindowArrCore().

BOOL s_bSort [static]

CShareData.cpp の 1388 行で定義されています。

参照元 cmpGetOpenedWindowArr(), と CShareData::GetOpenedWindowArrCore().

const unsigned int uShareDataVersion = 82

共有メモリのバージョン

共有メモリのバージョン番号。共有メモリの形式を変更したときはここを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

Version 82: ラインモード貼り付けを可能にする 2007.10.08 ryoji

CShareData.cpp の 246 行で定義されています。

参照元 CShareData::Init().

Sakura-Editorに対してSat Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData.cpp ソースファイル

sakura_core

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 "CShareData.h"
00024 #include "CControlTray.h"
00025 #include "mymessage.h"
00026 #include "debug.h"
00027 #include "global.h"
00028 #include "CRunningTimer.h"
00029 #include "my_icmp.h" // 2002/11/30 Moca 追加
00030 #include "my_tchar.h" // 2003/01/06 Moca
00031 #include "charcode.h"  // 2006/06/28 rastiv
00032 #include <tchar.h>
00033 #include "util/module.h"
00034 #include "util/string_ex2.h"
00035 #include "util/window.h"
00036 #include "util/file.h"
00037 #include "util/os.h"
00038
00039 struct ARRHEAD {
00040     int     nLength;
00041     int     nItemNum;
00042 };
00043
00045
00246 const unsigned int uShareDataVersion = 82;
00247
00248 /*
00249 ||  Singleton風
00250 */
00251 CShareData* CShareData::_instance = NULL;
00252
00274 CMutex CShareData::g_cEditArrMutex( FALSE, GSTR_MUTEX_SAKURA_EDITARR );
00275
00276 CShareData* CShareData::getInstance()
00277 {
00278     return _instance;
00279 }
00280
00285 CShareData::~CShareData()
00286 {
00287     if( NULL != m_pShareData ){
00288         /* プロセスのアドレス空間から､ すでにマップされているファイル ビューをアンマップします */
00289         ::UnmapViewOfFile( m_pShareData );
00290         m_pShareData = NULL;
00291     }
00292     return;
00293 }
00294
00295
00297
00307 bool CShareData::Init( void )
00308 {
00309     MY_RUNNINGTIMER(cRunningTimer,"CShareData::Init" );
00310
00311 //  MessageBoxA(NULL,"share","init",MB_OK);
00312
00313     if (CShareData::_instance == NULL)  //  Singleton風
00314         CShareData::_instance = this;
00315
00316     m_hwndTraceOutSource = NULL;    // 2006.06.26 ryoji
00317
00318     /* ファイルマッピングオブジェクト */
00319     m_hFileMap = ::CreateFileMapping(
00320         INVALID_HANDLE_VALUE,   //  Sep. 6, 2003 wmlhq
00321         NULL,
00322         PAGE_READWRITE | SEC_COMMIT,
00323         0,
00324         sizeof( DLLSHAREDATA ),
00325         GSTR_CSHAREDATA
00326     );
00327     if( NULL == m_hFileMap ){
00328         ::MessageBoxA(
00329             NULL,
00330             "CreateFileMapping()に失敗しました",
00331             "予期せぬエラー",
00332             MB_OK | MB_APPLMODAL | MB_ICONSTOP
00333         );
00334         return false;
00335     }
00336     if( GetLastError() != ERROR_ALREADY_EXISTS ){
00337         /* オブジェクトが存在していなかった場合 */
00338         /* ファイルのビューを､ 呼び出し側プロセスのアドレス空間にマップします */
00339         m_pShareData = (DLLSHAREDATA*)::MapViewOfFile(
00340             m_hFileMap,
00341             FILE_MAP_ALL_ACCESS,
00342             0,
00343             0,
00344             0
00345         );
00346
00347         // 2007.05.19 ryoji 実行ファイルフォルダ->設定ファイルフォルダに変更
00348         TCHAR   szIniFolder[_MAX_PATH];
00349         m_pShareData->m_IniFolder.m_bInit = false;
00350         GetInidir( szIniFolder );
00351         AddLastChar( szIniFolder, _MAX_PATH, _T('\\') );
00352
00353         m_pShareData->m_vStructureVersion = uShareDataVersion;
00354         _tcscpy(m_pShareData->m_szKeyMacroFileName, _T(""));    /* キーワードマクロのファイル名 */ //@@@ 2002.1.24 YAZAKI
00355         m_pShareData->m_bRecordingKeyMacro = FALSE;     /* キーボードマクロの記録中 */
00356         m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
00357
00358         // 2004.05.13 Moca リソースから製品バージョンの取得
00359         GetAppVersionInfo( NULL, VS_VERSION_INFO,
00360             &m_pShareData->m_dwProductVersionMS, &m_pShareData->m_dwProductVersionLS );
00361         m_pShareData->m_hwndTray = NULL;
00362         m_pShareData->m_hAccel = NULL;
00363         m_pShareData->m_hwndDebug = NULL;
00364         m_pShareData->m_nSequences = 0;                 /* ウィンドウ連番 */
00365         m_pShareData->m_nGroupSequences = 0;            /* タブグループ連番 */  // 2007.06.20 ryoji
00366         m_pShareData->m_nEditArrNum = 0;
00367
00368         m_pShareData->m_bEditWndChanging = FALSE;   // 編集ウィンドウ切替中   // 2007.04.03 ryoji
00369
00370         m_pShareData->m_Common.m_sGeneral.m_nMRUArrNum_MAX = 15;    /* ファイルの履歴MAX */  //Oct. 14, 2000 JEPRO 少し増やした(10→15)
00371 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00372         CMRU cMRU;
00373         cMRU.ClearAll();
00374         m_pShareData->m_Common.m_sGeneral.m_nOPENFOLDERArrNum_MAX = 15; /* フォルダの履歴MAX */  //Oct. 14, 2000 JEPRO 少し増やした(10→15)
00375 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00376         CMRUFolder cMRUFolder;
00377         cMRUFolder.ClearAll();
00378
00379         m_pShareData->m_aSearchKeys.clear();
00380         m_pShareData->m_aReplaceKeys.clear();
00381         m_pShareData->m_aGrepFiles.clear();
00382         m_pShareData->m_aGrepFiles.push_back(_T("*.*"));
00383         m_pShareData->m_aGrepFolders.clear();
00384
00385         _tcscpy( m_pShareData->m_szMACROFOLDER, szIniFolder );  /* マクロ用フォルダ */
00386         _tcscpy( m_pShareData->m_szIMPORTFOLDER, szIniFolder ); /* 設定インポート用フォルダ */
00387
00388         for( int i = 0; i < MAX_TRANSFORM_FILENAME; ++i ){
00389             _tcscpy( m_pShareData->m_szTransformFileNameFrom[i], _T("") );
00390             _tcscpy( m_pShareData->m_szTransformFileNameTo[i], _T("") );
00391         }
00392         _tcscpy( m_pShareData->m_szTransformFileNameFrom[0], _T("%DeskTop%\\") );
00393         _tcscpy( m_pShareData->m_szTransformFileNameTo[0],   _T("デスクトップ\\") );
00394         _tcscpy( m_pShareData->m_szTransformFileNameFrom[1], _T("%Personal%\\") );
00395         _tcscpy( m_pShareData->m_szTransformFileNameTo[1],   _T("マイドキュメント\\") );
00396         _tcscpy( m_pShareData->m_szTransformFileNameFrom[2], _T("%Cache%\\Content.IE5\\") );
00397         _tcscpy( m_pShareData->m_szTransformFileNameTo[2],   _T("IEキャッシュ\\") );
00398         _tcscpy( m_pShareData->m_szTransformFileNameFrom[3], _T("%TEMP%\\") );
00399         _tcscpy( m_pShareData->m_szTransformFileNameTo[3],   _T("TEMP\\") );
00400         _tcscpy( m_pShareData->m_szTransformFileNameFrom[4], _T("%Common DeskTop%\\") );
00401         _tcscpy( m_pShareData->m_szTransformFileNameTo[4],   _T("共有デスクトップ\\") );
00402         _tcscpy( m_pShareData->m_szTransformFileNameFrom[5], _T("%Common Documents%\\") );
00403         _tcscpy( m_pShareData->m_szTransformFileNameTo[5],   _T("共有ドキュメント\\") );
00404         _tcscpy( m_pShareData->m_szTransformFileNameFrom[6], _T("%AppData%\\") );   // 2007.05.19 ryoji 追加
00405         _tcscpy( m_pShareData->m_szTransformFileNameTo[6],   _T("アプリデータ\\") );  // 2007.05.19 ryoji 追加
00406         m_pShareData->m_nTransformFileNameArrNum = 7;
00407
00408         /* m_PrintSettingArr[0]を設定して、残りの1〜7にコピーする。
00409             必要になるまで遅らせるために、CPrintに、CShareDataを操作する権限を与える。
00410             YAZAKI.
00411         */
00412         {
00413             /*
00414                 2006.08.16 Moca 初期化単位を PRINTSETTINGに変更。CShareDataには依存しない。
00415             */
00416             TCHAR szSettingName[64];
00417             int i = 0;
00418             auto_sprintf( szSettingName, _T("印刷設定 %d"), i + 1 );
00419             CPrint::SettingInitialize( m_pShareData->m_PrintSettingArr[0], szSettingName ); //  初期化命令。
00420         }
00421         for( int i = 1; i < MAX_PRINTSETTINGARR; ++i ){
00422             m_pShareData->m_PrintSettingArr[i] = m_pShareData->m_PrintSettingArr[0];
00423             auto_sprintf( m_pShareData->m_PrintSettingArr[i].m_szPrintSettingName, _T("印刷設定 %d"), i + 1 );  /* 印刷設定の名前 */
00424         }
00425
00426         //  Jan. 30, 2005 genta 関数として独立
00427         InitKeyAssign( m_pShareData );
00428
00429 //  From Here Sept. 19, 2000 JEPRO コメントアウトになっていた初めのブロックを復活しその下をコメントアウト
00430 //  MS ゴシック標準スタイル10ptに設定
00431 //      /* LOGFONTの初期化 */
00432         memset_raw( &m_pShareData->m_Common.m_sView.m_lf, 0, sizeof( m_pShareData->m_Common.m_sView.m_lf ) );
00433         m_pShareData->m_Common.m_sView.m_lf.lfHeight            = -13;
00434         m_pShareData->m_Common.m_sView.m_lf.lfWidth             = 0;
00435         m_pShareData->m_Common.m_sView.m_lf.lfEscapement        = 0;
00436         m_pShareData->m_Common.m_sView.m_lf.lfOrientation       = 0;
00437         m_pShareData->m_Common.m_sView.m_lf.lfWeight            = 400;
00438         m_pShareData->m_Common.m_sView.m_lf.lfItalic            = 0x0;
00439         m_pShareData->m_Common.m_sView.m_lf.lfUnderline         = 0x0;
00440         m_pShareData->m_Common.m_sView.m_lf.lfStrikeOut         = 0x0;
00441         m_pShareData->m_Common.m_sView.m_lf.lfCharSet           = 0x80;
00442         m_pShareData->m_Common.m_sView.m_lf.lfOutPrecision      = 0x3;
00443         m_pShareData->m_Common.m_sView.m_lf.lfClipPrecision     = 0x2;
00444         m_pShareData->m_Common.m_sView.m_lf.lfQuality           = 0x1;
00445         m_pShareData->m_Common.m_sView.m_lf.lfPitchAndFamily    = 0x31;
00446         _tcscpy( m_pShareData->m_Common.m_sView.m_lf.lfFaceName, _T("ＭＳ ゴシック") );
00447
00448         // キーワードヘルプのフォント ai 02/05/21 Add S
00449         ::SystemParametersInfo(
00450             SPI_GETICONTITLELOGFONT,                // system parameter to query or set
00451             sizeof(LOGFONT),                        // depends on action to be taken
00452             (PVOID)&m_pShareData->m_Common.m_sHelper.m_lf_kh,   // depends on action to be taken
00453             NULL                                    // user profile update flag
00454         );
00455         // ai 02/05/21 Add E
00456
00457 //  To Here Sept. 19,2000
00458
00459         m_pShareData->m_Common.m_sView.m_bFontIs_FIXED_PITCH = TRUE;                /* 現在のフォントは固定幅フォントである */
00460
00461 //      m_pShareData->m_Common.m_bUseCaretKeyWord = FALSE;      /* キャレット位置の単語を辞書検索-機能OFF */   // 2006.03.24 fon sakura起動ごとFALSEとし、初期化しない
00462
00463
00464         /* バックアップ */
00465         m_pShareData->m_Common.m_sBackup.m_bBackUp = FALSE;             /* バックアップの作成 */
00466         m_pShareData->m_Common.m_sBackup.m_bBackUpDialog = TRUE;            /* バックアップの作成前に確認 */
00467         m_pShareData->m_Common.m_sBackup.m_bBackUpFolder = FALSE;           /* 指定フォルダにバックアップを作成する */
00468         m_pShareData->m_Common.m_sBackup.m_szBackUpFolder[0] = L'\0';       /* バックアップを作成するフォルダ */
00469         m_pShareData->m_Common.m_sBackup.m_nBackUpType = 2;             /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00470         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt1 = BKUP_YEAR | BKUP_MONTH | BKUP_DAY;
00471                                                                 /* バックアップファイル名：日付 */
00472         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt2 = ('b' << 16 ) + 10;
00473                                                                 /* バックアップファイル名：連番の数と先頭文字 */
00474         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt3 = 5;            /* バックアップファイル名：Option3 */
00475         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt4 = 0;            /* バックアップファイル名：Option4 */
00476         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt5 = 0;            /* バックアップファイル名：Option5 */
00477         m_pShareData->m_Common.m_sBackup.m_nBackUpType_Opt6 = 0;            /* バックアップファイル名：Option6 */
00478         m_pShareData->m_Common.m_sBackup.m_bBackUpDustBox = FALSE;      /* バックアップファイルをごみ箱に放り込む */ //@@@ 2001.12.11 add MIK
00479         m_pShareData->m_Common.m_sBackup.m_bBackUpPathAdvanced = FALSE;     /* 20051107 aroka バックアップ先フォルダを詳細設定する */
00480         m_pShareData->m_Common.m_sBackup.m_szBackUpPathAdvanced[0] = _T('\0');  /* 20051107 aroka バックアップを作成するフォルダの詳細設定 */
00481
00482         m_pShareData->m_Common.m_sFile.m_nFileShareMode = SHAREMODE_DENY_WRITE;/* ファイルの排他制御モード */
00483
00484         m_pShareData->m_Common.m_sGeneral.m_nCaretType = 0;             /* カーソルのタイプ 0=win 1=dos */
00485         m_pShareData->m_Common.m_sGeneral.m_bIsINSMode = TRUE;              /* 挿入／上書きモード */
00486         m_pShareData->m_Common.m_sGeneral.m_bIsFreeCursorMode = FALSE;      /* フリーカーソルモードか */ //Oct. 29, 2000 JEPRO 「なし」に変更
00487
00488         m_pShareData->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchWord = FALSE;   /* 単語単位で移動するときに、単語の両端で止まるか */
00489         m_pShareData->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph = FALSE;  /* 単語単位で移動するときに、単語の両端で止まるか */
00490
00491         //  Oct. 27, 2000 genta
00492         m_pShareData->m_Common.m_sFile.m_bRestoreCurPosition = TRUE;    //  カーソル位置復元
00493
00494         m_pShareData->m_Common.m_sFile.m_bRestoreBookmarks = TRUE;      // 2002.01.16 hor ブックマーク復元
00495
00496         m_pShareData->m_Common.m_sSearch.m_sSearchOption.Reset();           // 検索オプション
00497         m_pShareData->m_Common.m_sSearch.m_bConsecutiveAll = 0;         // 「すべて置換」は置換の繰返し   // 2007.01.16 ryoji
00498         m_pShareData->m_Common.m_sSearch.m_bSelectedArea = FALSE;           // 選択範囲内置換
00499         m_pShareData->m_Common.m_sHelper.m_szExtHelp[0] = L'\0';            // 外部ヘルプ１
00500         m_pShareData->m_Common.m_sHelper.m_szExtHtmlHelp[0] = L'\0';        // 外部HTMLヘルプ
00501
00502         m_pShareData->m_Common.m_sHelper.m_szMigemoDll[0] = L'\0';          /* migemo dll */
00503         m_pShareData->m_Common.m_sHelper.m_szMigemoDict[0] = L'\0';     /* migemo dict */
00504
00505         m_pShareData->m_Common.m_sSearch.m_bNOTIFYNOTFOUND = TRUE;      /* 検索／置換  見つからないときメッセージを表示 */
00506
00507         m_pShareData->m_Common.m_sGeneral.m_bCloseAllConfirm = FALSE;       /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */  // 2006.12.25 ryoji
00508         m_pShareData->m_Common.m_sGeneral.m_bExitConfirm = FALSE;           /* 終了時の確認をする */
00509         m_pShareData->m_Common.m_sGeneral.m_nRepeatedScrollLineNum = CLayoutInt(3); /* キーリピート時のスクロール行数 */
00510         m_pShareData->m_Common.m_sGeneral.m_nRepeatedScroll_Smooth = FALSE;/* キーリピート時のスクロールを滑らかにするか */
00511
00512         m_pShareData->m_Common.m_sEdit.m_bAddCRLFWhenCopy = FALSE;          /* 折り返し行に改行を付けてコピー */
00513         m_pShareData->m_Common.m_sSearch.m_bGrepSubFolder = TRUE;           /* Grep: サブフォルダも検索 */
00514         m_pShareData->m_Common.m_sSearch.m_bGrepOutputLine = TRUE;          /* Grep: 行を出力するか該当部分だけ出力するか */
00515         m_pShareData->m_Common.m_sSearch.m_nGrepOutputStyle = 1;            /* Grep: 出力形式 */
00516         m_pShareData->m_Common.m_sSearch.m_bGrepDefaultFolder=FALSE;        /* Grep: フォルダの初期値をカレントフォルダにする */
00517         m_pShareData->m_Common.m_sSearch.m_nGrepCharSet = CODE_AUTODETECT;  /* Grep: 文字コードセット */
00518         m_pShareData->m_Common.m_sSearch.m_bGrepRealTimeView = FALSE;       /* 2003.06.28 Moca Grep結果のリアルタイム表示 */
00519         m_pShareData->m_Common.m_sSearch.m_bCaretTextForSearch = TRUE;      /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00520         m_pShareData->m_Common.m_sSearch.m_szRegexpLib[0] =_T('\0');        /* 2007.08.12 genta 正規表現DLL */
00521         m_pShareData->m_Common.m_sSearch.m_bGTJW_RETURN = TRUE;             /* エンターキーでタグジャンプ */
00522         m_pShareData->m_Common.m_sSearch.m_bGTJW_LDBLCLK = TRUE;            /* ダブルクリックでタグジャンプ */
00523
00524 //キーワード：ツールバー順序
00525         //  Jan. 30, 2005 genta 関数として独立
00526         InitToolButtons( m_pShareData );
00527
00528         m_pShareData->m_Common.m_sWindow.m_bDispTOOLBAR = TRUE;         /* 次回ウィンドウを開いたときツールバーを表示する */
00529         m_pShareData->m_Common.m_sWindow.m_bDispSTATUSBAR = TRUE;           /* 次回ウィンドウを開いたときステータスバーを表示する */
00530         m_pShareData->m_Common.m_sWindow.m_bDispFUNCKEYWND = FALSE;     /* 次回ウィンドウを開いたときファンクションキーを表示する */
00531         m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place = 1;           /* ファンクションキー表示位置／0:上 1:下 */
00532         m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum = 4;            // 2002/11/04 Moca ファンクションキーのグループボタン数
00533
00534         m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd = FALSE;         //タブウインドウ表示   //@@@ 2003.05.31 MIK
00535         m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin = FALSE; //タブウインドウ表示   //@@@ 2003.05.31 MIK
00536         wcscpy( m_pShareData->m_Common.m_sTabBar.m_szTabWndCaption,
00537     L"${w?【Grep】$h$:【アウトプット】$:$f$}${U?(更新)$}${R?(読みとり専用)$:(上書き禁止)$}${M?【キーマクロの記録中】$}" );    //@@@ 2003.06.13 MIK
00538         m_pShareData->m_Common.m_sTabBar.m_bSameTabWidth = FALSE;           //タブを等幅にする          //@@@ 2006.01.28 ryoji
00539         m_pShareData->m_Common.m_sTabBar.m_bDispTabIcon = FALSE;            //タブにアイコンを表示する  //@@@ 2006.01.28 ryoji
00540         m_pShareData->m_Common.m_sTabBar.m_bSortTabList = TRUE;         //タブ一覧をソートする        //@@@ 2006.05.10 ryoji
00541         m_pShareData->m_Common.m_sTabBar.m_bTab_RetainEmptyWin = TRUE;  // 最後のファイルが閉じられたとき(無題)を残す   // 2007.02.11 genta
00542         m_pShareData->m_Common.m_sTabBar.m_bTab_CloseOneWin = FALSE;    // タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる // 2007.02.11 genta
00543         m_pShareData->m_Common.m_sTabBar.m_bTab_ListFull = FALSE;           //タブ一覧をフルパス表示する   //@@@ 2007.02.28 ryoji
00544         m_pShareData->m_Common.m_sTabBar.m_bChgWndByWheel = FALSE;      //マウスホイールでウィンドウ切替 //@@@ 2006.03.26 ryoji
00545
00546         m_pShareData->m_Common.m_sWindow.m_bSplitterWndHScroll = TRUE;  // 2001/06/20 asa-o 分割ウィンドウの水平スクロールの同期をとる
00547         m_pShareData->m_Common.m_sWindow.m_bSplitterWndVScroll = TRUE;  // 2001/06/20 asa-o 分割ウィンドウの垂直スクロールの同期をとる
00548
00549         /* カスタムメニュー情報 */
00550         auto_sprintf( m_pShareData->m_Common.m_sCustomMenu.m_szCustMenuNameArr[0], LTEXT("右クリックメニュー") );
00551         for( int i = 1; i < MAX_CUSTOM_MENU; ++i ){
00552             auto_sprintf( m_pShareData->m_Common.m_sCustomMenu.m_szCustMenuNameArr[i], LTEXT("メニュー%d"), i );
00553             m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[i] = 0;
00554             for( int j = 0; j < MAX_CUSTOM_MENU_ITEMS; ++j ){
00555                 m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[i][j] = 0;
00556                 m_pShareData->m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr [i][j] = '\0';
00557             }
00558         }
00559         auto_sprintf( m_pShareData->m_Common.m_sCustomMenu.m_szCustMenuNameArr[CUSTMENU_INDEX_FOR_TABWND], LTEXT("タブメニュー") );   //@@@ 2003.06.13 MIK
00560
00561
00562         /* 見出し記号 */
00563         wcscpy( m_pShareData->m_Common.m_sFormat.m_szMidashiKigou, L"１２３４５６７８９０（(［[「『【■□▲△▼▽◆◇○◎●§・※☆★第①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ一二三四五六七八九十壱弐参伍" );
00564         /* 引用符 */
00565         wcscpy( m_pShareData->m_Common.m_sFormat.m_szInyouKigou, L"> " );       /* 引用符 */
00566         m_pShareData->m_Common.m_sHelper.m_bUseHokan = FALSE;                   /* 入力補完機能を使用する */
00567
00568         // 2001/06/14 asa-o 補完とキーワードヘルプはタイプ別に移動したので削除
00569         //  2004.05.13 Moca ウィンドウサイズ固定指定追加に伴う指定方法変更
00570         m_pShareData->m_Common.m_sWindow.m_nSaveWindowSize = WINSIZEMODE_SAVE;  // ウィンドウサイズ継承
00571         m_pShareData->m_Common.m_sWindow.m_nWinSizeType = SIZE_RESTORED;
00572         m_pShareData->m_Common.m_sWindow.m_nWinSizeCX = CW_USEDEFAULT;
00573         m_pShareData->m_Common.m_sWindow.m_nWinSizeCY = 0;
00574
00575         //  2004.05.13 Moca ウィンドウ位置
00576         m_pShareData->m_Common.m_sWindow.m_nSaveWindowPos = WINSIZEMODE_DEF;        // ウィンドウ位置固定・継承
00577         m_pShareData->m_Common.m_sWindow.m_nWinPosX = CW_USEDEFAULT;
00578         m_pShareData->m_Common.m_sWindow.m_nWinPosY = 0;
00579
00580         m_pShareData->m_Common.m_sGeneral.m_bUseTaskTray = TRUE;                /* タスクトレイのアイコンを使う */
00581         m_pShareData->m_Common.m_sGeneral.m_bStayTaskTray = TRUE;               /* タスクトレイのアイコンを常駐 */
00582         m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyCode = L'Z';     /* タスクトレイ左クリックメニュー キー */
00583         m_pShareData->m_Common.m_sGeneral.m_wTrayMenuHotKeyMods = HOTKEYF_ALT | HOTKEYF_CONTROL;    /* タスクトレイ左クリックメニュー キー */
00584         m_pShareData->m_Common.m_sEdit.m_bUseOLE_DragDrop = TRUE;           /* OLEによるドラッグ & ドロップを使う */
00585         m_pShareData->m_Common.m_sEdit.m_bUseOLE_DropSource = TRUE;         /* OLEによるドラッグ元にするか */
00586         m_pShareData->m_Common.m_sGeneral.m_bDispExitingDialog = FALSE;     /* 終了ダイアログを表示する */
00587         m_pShareData->m_Common.m_sFile.m_bEnableUnmodifiedOverwrite = FALSE;/* 無変更でも上書きするか */
00588         m_pShareData->m_Common.m_sEdit.m_bSelectClickedURL = TRUE;          /* URLがクリックされたら選択するか */
00589         m_pShareData->m_Common.m_sSearch.m_bGrepExitConfirm = FALSE;            /* Grepモードで保存確認するか */
00590 //      m_pShareData->m_Common.m_bRulerDisp = TRUE;                 /* ルーラー表示 */
00591         m_pShareData->m_Common.m_sWindow.m_nRulerHeight = 13;                   /* ルーラーの高さ */
00592         m_pShareData->m_Common.m_sWindow.m_nRulerBottomSpace = 0;               /* ルーラーとテキストの隙間 */
00593         m_pShareData->m_Common.m_sWindow.m_nRulerType = 0;                  /* ルーラーのタイプ */
00594         //  Sep. 18, 2002 genta
00595         m_pShareData->m_Common.m_sWindow.m_nLineNumRightSpace = 0;          /* 行番号の右の隙間 */
00596         m_pShareData->m_Common.m_sWindow.m_nVertLineOffset = -1;            // 2005.11.10 Moca 指定桁縦線
00597         m_pShareData->m_Common.m_sEdit.m_bCopyAndDisablSelection = FALSE;   /* コピーしたら選択解除 */
00598         m_pShareData->m_Common.m_sEdit.m_bEnableLineModePaste = TRUE;       /* ラインモード貼り付けを可能にする */  // 2007.10.08 ryoji
00599         m_pShareData->m_Common.m_sHelper.m_bHtmlHelpIsSingle = TRUE;        /* HtmlHelpビューアはひとつ */
00600         m_pShareData->m_Common.m_sCompare.m_bCompareAndTileHorz = TRUE;     /* 文書比較後、左右に並べて表示 */
00601
00602         /* 1999.11.15 */
00603         m_pShareData->m_Common.m_sFile.m_bDropFileAndClose = FALSE;         /* ファイルをドロップしたときは閉じて開く */
00604         m_pShareData->m_Common.m_sFile.m_nDropFileNumMax = 8;               /* 一度にドロップ可能なファイル数 */
00605         m_pShareData->m_Common.m_sFile.m_bCheckFileTimeStamp = TRUE;        /* 更新の監視 */
00606         m_pShareData->m_Common.m_sEdit.m_bNotOverWriteCRLF = TRUE;          /* 改行は上書きしない */
00607         ::SetRect( &m_pShareData->m_Common.m_sOthers.m_rcOpenDialog, 0, 0, 0, 0 );  /* 「開く」ダイアログのサイズと位置 */
00608         m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgFind = TRUE;            /* 検索ダイアログを自動的に閉じる */
00609         m_pShareData->m_Common.m_sSearch.m_bSearchAll        = FALSE;           /* 検索／置換／ブックマーク  先頭（末尾）から再検索 2002.01.26 hor */
00610         m_pShareData->m_Common.m_sWindow.m_bScrollBarHorz = TRUE;               /* 水平スクロールバーを使う */
00611         m_pShareData->m_Common.m_sOutline.m_bAutoCloseDlgFuncList = FALSE;      /* アウトライン ダイアログを自動的に閉じる */    //Nov. 18, 2000 JEPRO TRUE→FALSE に変更
00612         m_pShareData->m_Common.m_sSearch.m_bAutoCloseDlgReplace = TRUE;     /* 置換 ダイアログを自動的に閉じる */
00613         m_pShareData->m_Common.m_sEdit.m_bAutoColmnPaste = TRUE;            /* 矩形コピーのテキストは常に矩形貼り付け */
00614         m_pShareData->m_Common.m_sGeneral.m_bNoCaretMoveByActivation = FALSE;   /* マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji (add by genta) */
00615
00616         m_pShareData->m_Common.m_sHelper.m_bHokanKey_RETURN = TRUE;         /* VK_RETURN 補完決定キーが有効/無効 */
00617         m_pShareData->m_Common.m_sHelper.m_bHokanKey_TAB        = FALSE;        /* VK_TAB   補完決定キーが有効/無効 */
00618         m_pShareData->m_Common.m_sHelper.m_bHokanKey_RIGHT  = TRUE;         /* VK_RIGHT 補完決定キーが有効/無効 */
00619         m_pShareData->m_Common.m_sHelper.m_bHokanKey_SPACE  = FALSE;        /* VK_SPACE 補完決定キーが有効/無効 */
00620
00621         m_pShareData->m_Common.m_sOutline.m_bMarkUpBlankLineEnable  =   FALSE;  //アウトラインダイアログでブックマークの空行を無視          2002.02.08 aroka,hor
00622         m_pShareData->m_Common.m_sOutline.m_bFunclistSetFocusOnJump =   FALSE;  //アウトラインダイアログでジャンプしたらフォーカスを移す 2002.02.08 hor
00623
00624         /*
00625             書式指定子の意味はWindows SDKのGetDateFormat(), GetTimeFormat()を参照のこと
00626         */
00627
00628         m_pShareData->m_Common.m_sFormat.m_nDateFormatType = 0; //日付書式のタイプ
00629         _tcscpy( m_pShareData->m_Common.m_sFormat.m_szDateFormat, _T("yyyy\'年\'M\'月\'d\'日(\'dddd\')\'") );    //日付書式
00630         m_pShareData->m_Common.m_sFormat.m_nTimeFormatType = 0; //時刻書式のタイプ
00631         _tcscpy( m_pShareData->m_Common.m_sFormat.m_szTimeFormat, _T("tthh\'時\'mm\'分\'ss\'秒\'")  );           //時刻書式
00632
00633         m_pShareData->m_Common.m_sWindow.m_bMenuIcon = TRUE;        /* メニューにアイコンを表示する */
00634
00635         //  Nov. 12, 2000 genta
00636         m_pShareData->m_Common.m_sFile.m_bAutoMIMEdecode = FALSE;   //ファイル読み込み時にMIMEのデコードを行うか //Jul. 13, 2001 JEPRO
00637
00638         //  Oct. 03, 2004 genta 前回と異なる文字コードの時に問い合わせを行うか
00639         m_pShareData->m_Common.m_sFile.m_bQueryIfCodeChange = TRUE;
00640
00641         //  Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00642         m_pShareData->m_Common.m_sFile.m_bAlertIfFileNotExist = FALSE;
00643
00644         // ファイル保存ダイアログのフィルタ設定   // 2006.11.16 ryoji
00645         m_pShareData->m_Common.m_sFile.m_bNoFilterSaveNew = TRUE;   // 新規から保存時は全ファイル表示
00646         m_pShareData->m_Common.m_sFile.m_bNoFilterSaveFile = TRUE;  // 新規以外から保存時は全ファイル表示
00647
00648         m_pShareData->m_aCommands.clear();
00649
00650         InitKeyword( m_pShareData );
00651         InitTypeConfig( m_pShareData );
00652         InitPopupMenu( m_pShareData );
00653
00654         //  Apr. 05, 2003 genta ウィンドウキャプションの初期値
00655         //  Aug. 16, 2003 genta $N(ファイル名省略表示)をデフォルトに変更
00656         _tcscpy( m_pShareData->m_Common.m_sWindow.m_szWindowCaptionActive,
00657             _T("${w?$h$:アウトプット$:${I?$f$:$N$}$}${U?(更新)$} -")
00658             _T(" $A $V ${R?(読みとり専用)$:（上書き禁止）$}${M?  【キーマクロの記録中】$}") );
00659         _tcscpy( m_pShareData->m_Common.m_sWindow.m_szWindowCaptionInactive,
00660             _T("${w?$h$:アウトプット$:$f$}${U?(更新)$} -")
00661             _T(" $A $V ${R?(読みとり専用)$:（上書き禁止）$}${M?  【キーマクロの記録中】$}") );
00662
00663         //  From Here Sep. 14, 2001 genta
00664         //  Macro登録の初期化
00665         MacroRec *mptr = m_pShareData->m_MacroTable;
00666         for( int i = 0; i < MAX_CUSTMACRO; ++i, ++mptr ){
00667             mptr->m_szName[0] = L'\0';
00668             mptr->m_szFile[0] = L'\0';
00669             mptr->m_bReloadWhenExecute = FALSE;
00670         }
00671         //  To Here Sep. 14, 2001 genta
00672
00673         // 2004/06/21 novice タグジャンプ機能追加
00674         m_pShareData->m_TagJumpNum = 0;
00675         // 2004.06.22 Moca タグジャンプの先頭
00676         m_pShareData->m_TagJumpTop = 0;
00677 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00678 //      m_pShareData->m_bGetStdout = TRUE;  /* 外部コマンド実行の「標準出力を得る」 */
00679         m_pShareData->m_nExecFlgOpt = 1;    /* 外部コマンド実行の「標準出力を得る」 */    // 2006.12.03 maru オプションの拡張のため
00680         m_pShareData->m_bLineNumIsCRLF = TRUE;  /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
00681
00682         m_pShareData->m_nDiffFlgOpt = 0;    /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
00683
00684         m_pShareData->m_nTagsOpt = 0;   /* CTAGS */ //@@@ 2003.05.12 MIK
00685         _tcscpy( m_pShareData->m_szTagsCmdLine, _T("") );   /* CTAGS */ //@@@ 2003.05.12 MIK
00686         //From Here 2005.04.03 MIK キーワード指定タグジャンプのHistory保管
00687         m_pShareData->m_aTagJumpKeywords.clear();
00688         /*
00689         m_pShareData->m_aTagJumpKeywords.size() = 0;
00690         for( int i = 0; i < MAX_TAGJUMP_KEYWORD; ++i ){
00691             wcscpy( m_pShareData->m_aTagJumpKeywords[i], L"" );
00692             //m_pShareData->m_bTagJumpKeywordArrFavorite[i] = false;    //お気に入り
00693         }
00694         */
00695         m_pShareData->m_bTagJumpICase = FALSE;
00696         m_pShareData->m_bTagJumpAnyWhere = FALSE;
00697         //To Here 2005.04.03 MIK
00698
00699     }else{
00700         /* オブジェクトがすでに存在する場合 */
00701         /* ファイルのビューを､ 呼び出し側プロセスのアドレス空間にマップします */
00702         m_pShareData = (DLLSHAREDATA*)::MapViewOfFile(
00703             m_hFileMap,
00704             FILE_MAP_ALL_ACCESS,
00705             0,
00706             0,
00707             0
00708         );
00709         //  From Here Oct. 27, 2000 genta
00710         if( m_pShareData->m_vStructureVersion != uShareDataVersion ){
00711             //  この共有データ領域は使えない．
00712             //  ハンドルを解放する
00713             ::UnmapViewOfFile( m_pShareData );
00714             m_pShareData = NULL;
00715             return false;
00716         }
00717         //  To Here Oct. 27, 2000 genta
00718     }
00719     return true;
00720 }
00721
00722
00723
00724
00725 /* KEYDATA配列にデータをセット */
00726 void CShareData::SetKeyNameArrVal(
00727     DLLSHAREDATA*   pShareData,
00728     int             nIdx,
00729     short           nKeyCode,
00730     TCHAR*          pszKeyName,
00731     EFunctionCode   nFuncCode_0,
00732     EFunctionCode   nFuncCode_1,
00733     EFunctionCode   nFuncCode_2,
00734     EFunctionCode   nFuncCode_3,
00735     EFunctionCode   nFuncCode_4,
00736     EFunctionCode   nFuncCode_5,
00737     EFunctionCode   nFuncCode_6,
00738     EFunctionCode   nFuncCode_7
00739 )
00740 {
00741     pShareData->m_pKeyNameArr[nIdx].m_nKeyCode = nKeyCode;
00742     _tcscpy( pShareData->m_pKeyNameArr[nIdx].m_szKeyName, pszKeyName );
00743     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[0] = nFuncCode_0;
00744     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[1] = nFuncCode_1;
00745     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[2] = nFuncCode_2;
00746     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[3] = nFuncCode_3;
00747     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[4] = nFuncCode_4;
00748     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[5] = nFuncCode_5;
00749     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[6] = nFuncCode_6;
00750     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[7] = nFuncCode_7;
00751     return;
00752 }
00753
00754
00755
00763 int CShareData::GetDocumentType( const TCHAR* pszFilePath )
00764 {
00765     TCHAR   szExt[_MAX_EXT];
00766
00767     if( NULL != pszFilePath && 0 < (int)_tcslen( pszFilePath ) ){
00768         _tsplitpath( pszFilePath, NULL, NULL, NULL, szExt );
00769         if( szExt[0] == _T('.') )
00770             return GetDocumentTypeExt( szExt + 1 );
00771         else
00772             return GetDocumentTypeExt( szExt );
00773     }
00774     return 0;
00775 }
00776
00777
00787 int CShareData::GetDocumentTypeExt( const TCHAR* pszExt )
00788 {
00789     const TCHAR pszSeps[] = _T(" ;,");  // separator
00790
00791     int     i;
00792     TCHAR*  pszToken;
00793     TCHAR   szText[256];
00794
00795     for( i = 0; i < MAX_TYPES; ++i ){
00796         _tcscpy( szText, m_pShareData->m_Types[i].m_szTypeExts );
00797         pszToken = _tcstok( szText, pszSeps );
00798         while( NULL != pszToken ){
00799             if( 0 == _tcsicmp( pszExt, pszToken ) ){
00800                 return i;   //  番号
00801             }
00802             pszToken = _tcstok( NULL, pszSeps );
00803         }
00804     }
00805     return 0;   //  ハズレ
00806 }
00807
00808
00809
00810
00811
00820 BOOL CShareData::AddEditWndList( HWND hWnd, int nGroup/* = 0*/ )
00821 {
00822     DBPRINT_A("AddEditWndList %08X",hWnd);
00823
00824     int     nSubCommand = TWNT_ADD;
00825     int     nIndex;
00826     EditNode    sMyEditNode;
00827     EditNode    *p;
00828
00829     memset_raw( &sMyEditNode, 0, sizeof( sMyEditNode ) );
00830     sMyEditNode.m_hWnd = hWnd;
00831
00832     {   // 2007.07.07 genta Lock領域
00833     LockGuard<CMutex> guard( g_cEditArrMutex );
00834
00835     CRecentEditNode cRecentEditNode;
00836
00837     //登録済みか？
00838     nIndex = cRecentEditNode.FindItemByHwnd( hWnd );
00839     if( -1 != nIndex )
00840     {
00841         //もうこれ以上登録できないか？
00842         if( cRecentEditNode.GetItemCount() >= cRecentEditNode.GetArrayCount() )
00843         {
00844             cRecentEditNode.Terminate();
00845             return FALSE;
00846         }
00847         nSubCommand = TWNT_ORDER;
00848
00849         //以前の情報をコピーする。
00850         p = cRecentEditNode.GetItem( nIndex );
00851         if( p )
00852         {
00853             memcpy_raw( &sMyEditNode, p, sizeof( sMyEditNode ) );
00854         }
00855     }
00856
00857     /* ウィンドウ連番 */
00858
00859     if( 0 == ::GetWindowLongPtr( hWnd, sizeof(LONG_PTR) ) )
00860     {
00861         m_pShareData->m_nSequences++;
00862 		::SetWindowLongPtr( hWnd, sizeof(LONG_PTR) , (LONG_PTR)m_pShareData->m_nSequences );
00863
00864         //連番を更新する。
00865         sMyEditNode.m_nIndex = m_pShareData->m_nSequences;
00866
00867         /* タブグループ連番 */
00868         if( nGroup > 0 )
00869         {
00870             sMyEditNode.m_nGroup = nGroup;  // 指定のグループ
00871         }
00872         else
00873         {
00874             p = cRecentEditNode.GetItem( 0 );
00875             if( NULL == p )
00876                 sMyEditNode.m_nGroup = ++m_pShareData->m_nGroupSequences;   // 新規グループ
00877             else
00878                 sMyEditNode.m_nGroup = p->m_nGroup; // 最近アクティブのグループ
00879         }
00880
00881         sMyEditNode.m_showCmdRestore = ::IsZoomed(hWnd)? SW_SHOWMAXIMIZED: SW_SHOWNORMAL;
00882         sMyEditNode.m_bClosing = FALSE;
00883     }
00884
00885     //追加または先頭に移動する。
00886     cRecentEditNode.AppendItem( &sMyEditNode );
00887     cRecentEditNode.Terminate();
00888     }   // 2007.07.07 genta Lock領域終わり
00889
00890     //ウインドウ登録メッセージをブロードキャストする。
00891     PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)nSubCommand, (LPARAM)hWnd, hWnd, GetGroupId( hWnd ) );
00892
00893     return TRUE;
00894 }
00895
00896
00897
00898
00899
00905 void CShareData::DeleteEditWndList( HWND hWnd )
00906 {
00907     int nGroup = GetGroupId( hWnd );
00908
00909     //ウインドウをリストから削除する。
00910     {   // 2007.07.07 genta Lock領域
00911         LockGuard<CMutex> guard( g_cEditArrMutex );
00912
00913         CRecentEditNode cRecentEditNode;
00914 DBPRINT_A("cnt %d",cRecentEditNode.GetItemCount());
00915 DBPRINT_A("DeleteItemByHwnd %08X",hWnd);
00916         cRecentEditNode.DeleteItemByHwnd( hWnd );
00917 DBPRINT_A("/cnt %d",cRecentEditNode.GetItemCount());
00918         cRecentEditNode.Terminate();
00919     }
00920
00921     //ウインドウ削除メッセージをブロードキャストする。
00922     PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)TWNT_DEL, (LPARAM)hWnd, hWnd, nGroup );
00923
00924     return;
00925 }
00926
00931 void CShareData::ResetGroupId( void )
00932 {
00933     int nGroup;
00934     int i;
00935
00936     nGroup = ++m_pShareData->m_nGroupSequences;
00937     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
00938     {
00939         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
00940         {
00941             m_pShareData->m_pEditArr[i].m_nGroup = nGroup;
00942         }
00943     }
00944 }
00945
00953 EditNode* CShareData::GetEditNode( HWND hWnd )
00954 {
00955     int i;
00956
00957     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
00958     {
00959         if( hWnd == m_pShareData->m_pEditArr[i].m_hWnd )
00960         {
00961             if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
00962                 return &m_pShareData->m_pEditArr[i];
00963         }
00964     }
00965
00966     return NULL;
00967 }
00968
00973 int CShareData::GetGroupId( HWND hWnd )
00974 {
00975     EditNode* pEditNode;
00976     pEditNode = GetEditNode( hWnd );
00977     return (pEditNode != NULL)? pEditNode->m_nGroup: -1;
00978 }
00979
00989 bool CShareData::IsSameGroup( HWND hWnd1, HWND hWnd2 )
00990 {
00991     int nGroup1;
00992     int nGroup2;
00993
00994     if( hWnd1 == hWnd2 )
00995         return true;
00996
00997     nGroup1 = GetGroupId( hWnd1 );
00998     if( nGroup1 < 0 )
00999         return false;
01000
01001     nGroup2 = GetGroupId( hWnd2 );
01002     if( nGroup2 < 0 )
01003         return false;
01004
01005     return ( nGroup1 == nGroup2 );
01006 }
01007
01012 EditNode* CShareData::GetEditNodeAt( int nGroup, int nIndex )
01013 {
01014     int i;
01015     int iIndex;
01016
01017     iIndex = 0;
01018     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01019     {
01020         if( nGroup == 0 || nGroup == m_pShareData->m_pEditArr[i].m_nGroup )
01021         {
01022             if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
01023             {
01024                 if( iIndex == nIndex )
01025                     return &m_pShareData->m_pEditArr[i];
01026                 iIndex++;
01027             }
01028         }
01029     }
01030
01031     return NULL;
01032 }
01033
01038 EditNode* CShareData::GetTopEditNode( HWND hWnd )
01039 {
01040     int nGroup;
01041
01042     nGroup = GetGroupId( hWnd );
01043     return GetEditNodeAt( nGroup, 0 );
01044 }
01045
01053 HWND CShareData::GetTopEditWnd( HWND hWnd )
01054 {
01055     EditNode* p = GetTopEditNode( hWnd );
01056
01057     return ( p != NULL )? p->m_hWnd: NULL;
01058 }
01059
01060 /* 共有データのロード */
01061 BOOL CShareData::LoadShareData( void )
01062 {
01063     return ShareData_IO_2( true );
01064 }
01065
01066
01067
01068
01069 /* 共有データの保存 */
01070 void CShareData::SaveShareData( void )
01071 {
01072     ShareData_IO_2( false );
01073     return;
01074 }
01075
01076
01077
01078
01087 BOOL CShareData::RequestCloseAllEditor( BOOL bExit, int nGroup )
01088 {
01089     EditNode*   pWndArr;
01090     int     i;
01091     int     n;
01092
01093     n = GetOpenedWindowArr( &pWndArr, FALSE );
01094     if( 0 == n ){
01095         return TRUE;
01096     }
01097
01098     for( i = 0; i < n; ++i ){
01099         if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01100             if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01101                 /* アクティブにする */
01102                 ActivateFrameWindow( pWndArr[i].m_hWnd );
01103                 /* トレイからエディタへの終了要求 */
01104                 if( !::SendMessageAny( pWndArr[i].m_hWnd, MYWM_CLOSE, bExit, 0 ) ){ // 2007.02.13 ryoji bExitを引き継ぐ
01105                     delete []pWndArr;
01106                     return FALSE;
01107                 }
01108             }
01109         }
01110     }
01111
01112     delete []pWndArr;
01113     return TRUE;
01114 }
01115
01116
01117
01126 BOOL CShareData::IsPathOpened( const TCHAR* pszPath, HWND* phwndOwner )
01127 {
01128     int         i;
01129     FileInfo*   pfi;
01130     *phwndOwner = NULL;
01131
01132     /* 現在の編集ウィンドウの数を調べる */
01133     if( 0 ==  GetEditorWindowsNum( 0 ) ){
01134         return FALSE;
01135     }
01136
01137     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01138         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01139             /* トレイからエディタへの編集ファイル名要求通知 */
01140 			::SendMessageAny( m_pShareData->m_pEditArr[i].m_hWnd, MYWM_GETFILEINFO, 1, 0 );
01141             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01142             /* 同一パスのファイルが既に開かれているか */
01143             if( 0 == _tcsicmp( pfi->m_szPath, pszPath ) ){
01144                 *phwndOwner = m_pShareData->m_pEditArr[i].m_hWnd;
01145                 return TRUE;
01146             }
01147         }
01148     }
01149     return FALSE;
01150 }
01151
01170 BOOL CShareData::IsPathOpened( const TCHAR* pszPath, HWND* phwndOwner, ECodeType nCharCode ){
01171
01172     if( IsPathOpened( pszPath, phwndOwner ) ){
01173         FileInfo*       pfi;
01174         CMRU            cMRU;
01175 		::SendMessageAny( *phwndOwner, MYWM_GETFILEINFO, 0, 0 );
01176         pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01177
01178         if(nCharCode != CODE_AUTODETECT){
01179             const TCHAR*    pszCodeNameCur = NULL;
01180             const TCHAR*    pszCodeNameNew = NULL;
01181             if(IsValidCodeType(nCharCode)){
01182                 pszCodeNameNew = gm_pszCodeNameArr_Normal[nCharCode];
01183             }
01184             if(IsValidCodeType(pfi->m_nCharCode)){
01185                 pszCodeNameCur = gm_pszCodeNameArr_Normal[pfi->m_nCharCode];
01186             }
01187
01188             if(NULL != pszCodeNameCur && NULL != pszCodeNameNew){
01189                 if(nCharCode != pfi->m_nCharCode){
01190 					::MYMESSAGEBOX_A( *phwndOwner, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME_A,
01191                         "%ts\n\n\n既に開いているファイルを違う文字コードで開く場合は、\n"
01192                         "ファイルメニューから「開き直す」を使用してください。\n"
01193                         "\n"
01194                         "現在の文字コードセット=[%ts]\n"
01195                         "新しい文字コードセット=[%ts]",
01196                         pszPath,
01197                         pszCodeNameCur,
01198                         pszCodeNameNew
01199                     );
01200                 }
01201             }
01202             else{
01203 				::MYMESSAGEBOX_A( *phwndOwner, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME_A,
01204                     "%ts\n\n多重オープンの確認で不明な文字コードが指定されました。\n"
01205                     "\n"
01206                     "現在の文字コードセット=%d [%ts]\n新しい文字コードセット=%d [%ts]",
01207                     pszPath,
01208                     pfi->m_nCharCode,
01209                     NULL==pszCodeNameCur?_T("不明"):pszCodeNameCur,
01210                     nCharCode,
01211                     NULL==pszCodeNameNew?_T("不明"):pszCodeNameNew
01212                 );
01213             }
01214         }
01215
01216         /* 開いているウィンドウをアクティブにする */
01217         /* アクティブにする */
01218         ActivateFrameWindow( *phwndOwner );
01219
01220         /* MRUリストへの登録 */
01221         cMRU.Add( pfi );
01222         return TRUE;
01223     }
01224     else {
01225         return FALSE;
01226     }
01227
01228 }
01229
01230
01231
01232
01239 int CShareData::GetEditorWindowsNum( int nGroup )
01240 {
01241     int     i;
01242     int     j;
01243
01244     j = 0;
01245     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01246         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01247             if( nGroup != 0 && nGroup != GetGroupId( m_pShareData->m_pEditArr[i].m_hWnd ) )
01248                 continue;
01249             j++;
01250         }
01251     }
01252     return j;
01253
01254 }
01255
01256
01257
01265 BOOL CShareData::PostMessageToAllEditors(
01266     UINT        uMsg,
01267     WPARAM      wParam,
01268     LPARAM      lParam,
01269     HWND        hWndLast,
01270     int         nGroup/* = 0*/
01271  )
01272 {
01273     EditNode*   pWndArr;
01274     int     i;
01275     int     n;
01276
01277     n = GetOpenedWindowArr( &pWndArr, FALSE );
01278     if( 0 == n ){
01279         return TRUE;
01280     }
01281
01282     // hWndLast以外へのメッセージ
01283     for( i = 0; i < n; ++i ){
01284         //  Jan. 24, 2005 genta hWndLast == NULLのときにメッセージが送られるように
01285         if( hWndLast == NULL || hWndLast != pWndArr[i].m_hWnd ){
01286             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01287                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01288                     /* メッセージをポスト */
01289                     ::PostMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01290                 }
01291             }
01292         }
01293     }
01294
01295     // hWndLastへのメッセージ
01296     for( i = 0; i < n; ++i ){
01297         if( hWndLast == pWndArr[i].m_hWnd ){
01298             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01299                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01300                     /* メッセージをポスト */
01301                     ::PostMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01302                 }
01303             }
01304         }
01305     }
01306
01307     delete []pWndArr;
01308     return TRUE;
01309 }
01310
01311
01319 BOOL CShareData::SendMessageToAllEditors(
01320     UINT        uMsg,       /* ポストするメッセージ */
01321     WPARAM      wParam,     /* 第1メッセージ パラメータ */
01322     LPARAM      lParam,     /* 第2メッセージ パラメータ */
01323     HWND        hWndLast,   /* 最後に送りたいウィンドウ */
01324     int         nGroup/* = 0*/
01325  )
01326 {
01327     EditNode*   pWndArr;
01328     int     i;
01329     int     n;
01330
01331     n = GetOpenedWindowArr( &pWndArr, FALSE );
01332     if( 0 == n ){
01333         return TRUE;
01334     }
01335
01336     // hWndLast以外へのメッセージ
01337     for( i = 0; i < n; ++i ){
01338         //  Jan. 24, 2005 genta hWndLast == NULLのときにメッセージが送られるように
01339         if( hWndLast == NULL || hWndLast != pWndArr[i].m_hWnd ){
01340             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01341                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01342                     /* メッセージを送る */
01343                     ::SendMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01344                 }
01345             }
01346         }
01347     }
01348
01349     // hWndLastへのメッセージ
01350     for( i = 0; i < n; ++i ){
01351         if( hWndLast == pWndArr[i].m_hWnd ){
01352             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01353                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01354                     /* メッセージを送る */
01355                     ::SendMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01356                 }
01357             }
01358         }
01359     }
01360
01361     delete []pWndArr;
01362     return TRUE;
01363 }
01364
01365
01366 /* 指定ウィンドウが、編集ウィンドウのフレームウィンドウかどうか調べる */
01367 BOOL CShareData::IsEditWnd( HWND hWnd )
01368 {
01369     TCHAR   szClassName[64];
01370     if( hWnd == NULL ){ // 2007.06.20 ryoji 条件追加
01371         return FALSE;
01372     }
01373     if( !::IsWindow( hWnd ) ){
01374         return FALSE;
01375     }
01376     if( 0 == ::GetClassName( hWnd, szClassName, _countof(szClassName) - 1 ) ){
01377         return FALSE;
01378     }
01379     if(0 == _tcscmp( GSTR_EDITWINDOWNAME, szClassName ) ){
01380         return TRUE;
01381     }else{
01382         return FALSE;
01383     }
01384
01385 }
01386
01387 // GetOpenedWindowArr用静的変数／構造体
01388 static BOOL s_bSort;    // ソート指定
01389 static BOOL s_bGSort;   // グループ指定
01390 struct EditNodeEx{  // 拡張構造体
01391     EditNode* p;    // 編集ウィンドウ配列要素へのポインタ
01392     int nGroupMru;  // グループ単位のMRU番号
01393 };
01394
01395 // GetOpenedWindowArr用ソート関数
01396 static int __cdecl cmpGetOpenedWindowArr(const void *e1, const void *e2)
01397 {
01398     // 異なるグループのときはグループ比較する
01399     int nGroup1;
01400     int nGroup2;
01401
01402     if( s_bGSort )
01403     {
01404         // オリジナルのグループ番号のほうを見る
01405         nGroup1 = ((EditNodeEx*)e1)->p->m_nGroup;
01406         nGroup2 = ((EditNodeEx*)e2)->p->m_nGroup;
01407     }
01408     else
01409     {
01410         // グループのMRU番号のほうを見る
01411         nGroup1 = ((EditNodeEx*)e1)->nGroupMru;
01412         nGroup2 = ((EditNodeEx*)e2)->nGroupMru;
01413     }
01414     if( nGroup1 != nGroup2 )
01415     {
01416         return nGroup1 - nGroup2;   // グループ比較
01417     }
01418
01419     // グループ比較が行われなかったときはウィンドウ比較する
01420     if( s_bSort )
01421         return ( ((EditNodeEx*)e1)->p->m_nIndex - ((EditNodeEx*)e2)->p->m_nIndex ); // ウィンドウ番号比較
01422     return ( ((EditNodeEx*)e1)->p - ((EditNodeEx*)e2)->p ); // ウィンドウMRU比較（ソートしない）
01423 }
01424
01449 int CShareData::GetOpenedWindowArr( EditNode** ppEditNode, BOOL bSort, BOOL bGSort/* = FALSE */ )
01450 {
01451     int nRet;
01452
01453     LockGuard<CMutex> guard( g_cEditArrMutex );
01454     nRet = GetOpenedWindowArrCore( ppEditNode, bSort, bGSort );
01455
01456     return nRet;
01457 }
01458
01459 // GetOpenedWindowArr関数コア処理部
01460 int CShareData::GetOpenedWindowArrCore( EditNode** ppEditNode, BOOL bSort, BOOL bGSort/* = FALSE */ )
01461 {
01462     //編集ウインドウ数を取得する。
01463     EditNodeEx *pNode;  // ソート処理用の拡張リスト
01464     int     nRowNum;    //編集ウインドウ数
01465     int     i;
01466
01467     //編集ウインドウ数を取得する。
01468     *ppEditNode = NULL;
01469     if( m_pShareData->m_nEditArrNum <= 0 )
01470         return 0;
01471
01472     //編集ウインドウリスト格納領域を作成する。
01473     *ppEditNode = new EditNode[ m_pShareData->m_nEditArrNum ];
01474     if( NULL == *ppEditNode )
01475         return 0;
01476
01477     // 拡張リストを作成する
01478     pNode = new EditNodeEx[ m_pShareData->m_nEditArrNum ];
01479     if( NULL == pNode )
01480     {
01481         delete [](*ppEditNode);
01482         *ppEditNode = NULL;
01483         return 0;
01484     }
01485
01486     // 拡張リストの各要素に編集ウィンドウリストの各要素へのポインタを格納する
01487     nRowNum = 0;
01488     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01489     {
01490         if( IsEditWnd( m_pShareData->m_pEditArr[ i ].m_hWnd ) )
01491         {
01492             pNode[ nRowNum ].p = &m_pShareData->m_pEditArr[ i ];    // ポインタ格納
01493             pNode[ nRowNum ].nGroupMru = -1;    // グループ単位のMRU番号初期化
01494             nRowNum++;
01495         }
01496     }
01497     if( nRowNum <= 0 )
01498     {
01499         delete []pNode;
01500         delete [](*ppEditNode);
01501         *ppEditNode = NULL;
01502         return 0;
01503     }
01504
01505     // 拡張リスト上でグループ単位のMRU番号をつける
01506     if( !bGSort )
01507     {
01508         int iGroupMru = 0;  // グループ単位のMRU番号
01509         int nGroup = -1;
01510         for( i = 0; i < nRowNum; i++ )
01511         {
01512             if( pNode[ i ].nGroupMru == -1 && nGroup != pNode[ i ].p->m_nGroup )
01513             {
01514                 nGroup = pNode[ i ].p->m_nGroup;
01515                 iGroupMru++;
01516                 pNode[ i ].nGroupMru = iGroupMru;   // MRU番号付与
01517
01518                 // 同一グループのウィンドウに同じMRU番号をつける
01519                 int j;
01520                 for( j = i + 1; j < nRowNum; j++ )
01521                 {
01522                     if( pNode[ j ].p->m_nGroup == nGroup )
01523                         pNode[ j ].nGroupMru = iGroupMru;
01524                 }
01525             }
01526         }
01527     }
01528
01529     // 拡張リストをソートする
01530     // Note. グループが１個だけの場合は従来（bGSort 引数無し）と同じ結果が得られる
01531     //       （グループ化する設定でなければグループは１個）
01532     s_bSort = bSort;
01533     s_bGSort = bGSort;
01534     qsort( pNode, nRowNum, sizeof(EditNodeEx), cmpGetOpenedWindowArr );
01535
01536     // 拡張リストのソート結果をもとに編集ウインドウリスト格納領域に結果を格納する
01537     for( i = 0; i < nRowNum; i++ )
01538     {
01539         (*ppEditNode)[i] = *pNode[i].p;
01540
01541         //インデックスを付ける。
01542         //このインデックスは m_pEditArr の配列番号です。
01543         (*ppEditNode)[i].m_nIndex = pNode[i].p - m_pShareData->m_pEditArr;  // ポインタ減算＝配列番号
01544     }
01545
01546     delete []pNode;
01547
01548     return nRowNum;
01549 }
01550
01559 bool CShareData::ReorderTab( HWND hwndSrc, HWND hwndDst )
01560 {
01561     EditNode    *p = NULL;
01562     int         nCount;
01563     int         i;
01564
01565     int nSrcTab = -1;
01566     int nDstTab = -1;
01567     LockGuard<CMutex> guard( g_cEditArrMutex );
01568     nCount = GetOpenedWindowArrCore( &p, TRUE );    // ロックは自分でやっているので直接コア部呼び出し
01569     for( i = 0; i < nCount; i++ )
01570     {
01571         if( hwndSrc == p[i].m_hWnd )
01572             nSrcTab = i;
01573         if( hwndDst == p[i].m_hWnd )
01574             nDstTab = i;
01575     }
01576
01577     if( 0 > nSrcTab || 0 > nDstTab || nSrcTab == nDstTab )
01578     {
01579         if( p ) delete []p;
01580         return false;
01581     }
01582
01583     // タブの順序を入れ替えるためにウィンドウのインデックスを入れ替える
01584     int nArr0, nArr1;
01585     int nIndex;
01586
01587     nArr0 = p[ nDstTab ].m_nIndex;
01588     nIndex = m_pShareData->m_pEditArr[ nArr0 ].m_nIndex;
01589     if( nSrcTab < nDstTab )
01590     {
01591         // タブ左方向ローテート
01592         for( i = nDstTab - 1; i >= nSrcTab; i-- )
01593         {
01594             nArr1 = p[ i ].m_nIndex;
01595             m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = m_pShareData->m_pEditArr[ nArr1 ].m_nIndex;
01596             nArr0 = nArr1;
01597         }
01598     }
01599     else
01600     {
01601         // タブ右方向ローテート
01602         for( i = nDstTab + 1; i <= nSrcTab; i++ )
01603         {
01604             nArr1 = p[ i ].m_nIndex;
01605             m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = m_pShareData->m_pEditArr[ nArr1 ].m_nIndex;
01606             nArr0 = nArr1;
01607         }
01608     }
01609     m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = nIndex;
01610
01611     if( p ) delete []p;
01612     return true;
01613 }
01614
01627 HWND CShareData::SeparateGroup( HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[] )
01628 {
01629     LockGuard<CMutex> guard( g_cEditArrMutex );
01630
01631     EditNode* pSrcEditNode = GetEditNode( hwndSrc );
01632     EditNode* pDstEditNode = GetEditNode( hwndDst );
01633     int nSrcGroup = pSrcEditNode->m_nGroup;
01634     int nDstGroup;
01635     if( pDstEditNode == NULL )
01636     {
01637         hwndDst = NULL;
01638         nDstGroup = ++m_pShareData->m_nGroupSequences;  // 新規グループ
01639     }
01640     else
01641     {
01642         nDstGroup = pDstEditNode->m_nGroup; // 既存グループ
01643     }
01644
01645     pSrcEditNode->m_nGroup = nDstGroup;
01646     pSrcEditNode->m_nIndex = ++m_pShareData->m_nSequences;  // タブ並びの最後（起動順の最後）にもっていく
01647
01648     // 非表示のタブを既存グループに移動するときは非表示のままにするので
01649     // 内部情報も先頭にはならないよう、必要なら先頭ウィンドウと位置を交換する。
01650     if( !bSrcIsTop && pDstEditNode != NULL )
01651     {
01652         if( pSrcEditNode < pDstEditNode )
01653         {
01654             EditNode en = *pDstEditNode;
01655             *pDstEditNode = *pSrcEditNode;
01656             *pSrcEditNode = en;
01657         }
01658     }
01659
01660     notifygroups[0] = nSrcGroup;
01661     notifygroups[1] = nDstGroup;
01662
01663     return hwndDst;
01664 }
01665
01672 void CShareData::TraceOut( LPCTSTR lpFmt, ... )
01673 {
01674
01675     if( NULL == m_pShareData->m_hwndDebug
01676     || !IsEditWnd( m_pShareData->m_hwndDebug )
01677     ){
01678         // 2007.06.26 ryoji
01679         // アウトプットウィンドウを作成元と同じグループに作成するために m_hwndTraceOutSource を使っています
01680         // （m_hwndTraceOutSource は CEditWnd::Create() で予め設定）
01681         // ちょっと不恰好だけど、TraceOut() の引数にいちいち起動元を指定するのも．．．
01682         CControlTray::OpenNewEditor( NULL, m_hwndTraceOutSource, _T("-DEBUGMODE"), CODE_SJIS, FALSE, true );
01683         //  2001/06/23 N.Nakatani 窓が出るまでウエイトをかけるように修正
01684         //アウトプットウインドウが出来るまで5秒ぐらい待つ。
01685         //  Jun. 25, 2001 genta OpenNewEditorの同期機能を利用するように変更
01686
01687         /* 開いているウィンドウをアクティブにする */
01688         /* アクティブにする */
01689         ActivateFrameWindow( m_pShareData->m_hwndDebug );
01690     }
01691     va_list argList;
01692     va_start( argList, lpFmt );
01693     auto_vsprintf( m_pShareData->GetWorkBuffer<EDIT_CHAR>(), to_wchar(lpFmt), argList );
01694     va_end( argList );
01695     ::SendMessage( m_pShareData->m_hwndDebug, MYWM_ADDSTRING, 0, 0 );
01696     return;
01697 }
01698
01699
01700 /*
01701     CShareData::CheckMRUandOPENFOLDERList
01702     MRUとOPENFOLDERリストの存在チェックなど
01703     存在しないファイルやフォルダはMRUやOPENFOLDERリストから削除する
01704
01705     @note 現在は使われていないようだ。
01706     @par History
01707     2001.12.26 削除した。（YAZAKI）
01708
01709 */
01727 int CShareData::GetMacroFilename( int idx, TCHAR *pszPath, int nBufLen )
01728 {
01729     if( -1 != idx && !m_pShareData->m_MacroTable[idx].IsEnabled() )
01730         return 0;
01731     TCHAR *ptr;
01732     TCHAR *pszFile;
01733
01734     if( -1 == idx ){
01735         pszFile = _T("RecKey.mac");
01736     }else{
01737         pszFile = m_pShareData->m_MacroTable[idx].m_szFile;
01738     }
01739     if( pszFile[0] == _T('\0') ){   //  ファイル名が無い
01740         if( pszPath != NULL ){
01741             pszPath[0] = _T('\0');
01742         }
01743         return 0;
01744     }
01745     ptr = pszFile;
01746     int nLen = _tcslen( ptr ); // Jul. 21, 2003 genta wcslen対象が誤っていたためマクロ実行ができない
01747
01748     if( !_IS_REL_PATH( pszFile )    // 絶対パス
01749         || m_pShareData->m_szMACROFOLDER[0] == _T('\0') ){  //  フォルダ指定なし
01750         if( pszPath == NULL || nBufLen <= nLen ){
01751             return -nLen;
01752         }
01753         _tcscpy( pszPath, pszFile );
01754         return nLen;
01755     }
01756     else {  //  フォルダ指定あり
01757         //  相対パス→絶対パス
01758         int nFolderSep = AddLastChar( m_pShareData->m_szMACROFOLDER, _countof2(m_pShareData->m_szMACROFOLDER), _T('\\') );
01759         int nAllLen;
01760         TCHAR *pszDir;
01761
01762          // 2003.06.24 Moca フォルダも相対パスなら実行ファイルからのパス
01763         // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
01764         if( _IS_REL_PATH( m_pShareData->m_szMACROFOLDER ) ){
01765             TCHAR szDir[_MAX_PATH + _countof2( m_pShareData->m_szMACROFOLDER )];
01766             GetInidirOrExedir( szDir, m_pShareData->m_szMACROFOLDER );
01767             pszDir = szDir;
01768         }else{
01769             pszDir = m_pShareData->m_szMACROFOLDER;
01770         }
01771
01772         int nDirLen = _tcslen( pszDir );
01773         nAllLen = nDirLen + nLen + ( -1 == nFolderSep ? 1 : 0 );
01774         if( pszPath == NULL || nBufLen <= nAllLen ){
01775             return -nAllLen;
01776         }
01777
01778         _tcscpy( pszPath, pszDir );
01779         ptr = pszPath + nDirLen;
01780         if( -1 == nFolderSep ){
01781             *ptr++ = _T('\\');
01782         }
01783         _tcscpy( ptr, pszFile );
01784         return nAllLen;
01785     }
01786
01787 }
01788
01793 bool CShareData::BeReloadWhenExecuteMacro( int idx )
01794 {
01795     if( !m_pShareData->m_MacroTable[idx].IsEnabled() )
01796         return false;
01797
01798     return ( m_pShareData->m_MacroTable[idx].m_bReloadWhenExecute == TRUE );
01799 }
01800
01804 void CShareData::AddToSearchKeyArr( const wchar_t* pszSearchKey )
01805 {
01806     CRecentSearch   cRecentSearchKey;
01807     cRecentSearchKey.AppendItem( pszSearchKey );
01808     cRecentSearchKey.Terminate();
01809 }
01810
01814 void CShareData::AddToReplaceKeyArr( const wchar_t* pszReplaceKey )
01815 {
01816     CRecentReplace  cRecentReplaceKey;
01817     cRecentReplaceKey.AppendItem( pszReplaceKey );
01818     cRecentReplaceKey.Terminate();
01819
01820     return;
01821 }
01822
01826 void CShareData::AddToGrepFileArr( const TCHAR* pszGrepFile )
01827 {
01828     CRecentGrepFile cRecentGrepFile;
01829     cRecentGrepFile.AppendItem( pszGrepFile );
01830     cRecentGrepFile.Terminate();
01831 }
01832
01836 void CShareData::AddToGrepFolderArr( const TCHAR* pszGrepFolder )
01837 {
01838     CRecentGrepFolder   cRecentGrepFolder;
01839     cRecentGrepFolder.AppendItem( pszGrepFolder );
01840     cRecentGrepFolder.Terminate();
01841 }
01842
01845 bool CShareData::ExtWinHelpIsSet( int nTypeNo )
01846 {
01847     if (m_pShareData->m_Common.m_sHelper.m_szExtHelp[0] != L'\0'){
01848         return true;    //  共通設定に設定されている
01849     }
01850     if (nTypeNo < 0 || MAX_TYPES <= nTypeNo ){
01851         return false;   //  共通設定に設定されていない＆nTypeNoが範囲外。
01852     }
01853     if (m_pShareData->m_Types[nTypeNo].m_szExtHelp[0] != L'\0'){
01854         return true;    //  タイプ別設定に設定されている。
01855     }
01856     return false;
01857 }
01858
01863 const TCHAR* CShareData::GetExtWinHelp( int nTypeNo )
01864 {
01865     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHelp[0] != _T('\0')){
01866         return m_pShareData->m_Types[nTypeNo].m_szExtHelp;
01867     }
01868
01869     return m_pShareData->m_Common.m_sHelper.m_szExtHelp;
01870 }
01871
01874 bool CShareData::ExtHTMLHelpIsSet( int nTypeNo )
01875 {
01876     if (m_pShareData->m_Common.m_sHelper.m_szExtHtmlHelp[0] != L'\0'){
01877         return true;    //  共通設定に設定されている
01878     }
01879     if (nTypeNo < 0 || MAX_TYPES <= nTypeNo ){
01880         return false;   //  共通設定に設定されていない＆nTypeNoが範囲外。
01881     }
01882     if (m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != L'\0'){
01883         return true;    //  タイプ別設定に設定されている。
01884     }
01885     return false;
01886 }
01887
01892 const TCHAR* CShareData::GetExtHTMLHelp( int nTypeNo )
01893 {
01894     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != _T('\0')){
01895         return m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp;
01896     }
01897
01898     return m_pShareData->m_Common.m_sHelper.m_szExtHtmlHelp;
01899 }
01900
01903 bool CShareData::HTMLHelpIsSingle( int nTypeNo )
01904 {
01905     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != L'\0'){
01906         return (m_pShareData->m_Types[nTypeNo].m_bHtmlHelpIsSingle != FALSE);
01907     }
01908
01909     return (m_pShareData->m_Common.m_sHelper.m_bHtmlHelpIsSingle != FALSE);
01910 }
01911
01921 const TCHAR* CShareData::MyGetDateFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen )
01922 {
01923     return MyGetDateFormat(
01924         systime,
01925         pszDest,
01926         nDestLen,
01927         m_pShareData->m_Common.m_sFormat.m_nDateFormatType,
01928         m_pShareData->m_Common.m_sFormat.m_szDateFormat
01929     );
01930 }
01931
01932 const TCHAR* CShareData::MyGetDateFormat(
01933     const SYSTEMTIME&       systime,
01934     TCHAR*      pszDest,
01935     int             nDestLen,
01936     int             nDateFormatType,
01937     const TCHAR*    szDateFormat
01938 )
01939 {
01940     const TCHAR* pszForm;
01941     DWORD dwFlags;
01942     if( 0 == nDateFormatType ){
01943         dwFlags = DATE_LONGDATE;
01944         pszForm = NULL;
01945     }else{
01946         dwFlags = 0;
01947         pszForm = szDateFormat;
01948     }
01949     ::GetDateFormat( LOCALE_USER_DEFAULT, dwFlags, &systime, pszForm, pszDest, nDestLen );
01950     return pszDest;
01951 }
01952
01953
01954
01955 /* 時刻をフォーマット */
01956 const TCHAR* CShareData::MyGetTimeFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen )
01957 {
01958     return MyGetTimeFormat(
01959         systime,
01960         pszDest,
01961         nDestLen,
01962         m_pShareData->m_Common.m_sFormat.m_nTimeFormatType,
01963         m_pShareData->m_Common.m_sFormat.m_szTimeFormat
01964     );
01965 }
01966
01967 /* 時刻をフォーマット */
01968 const TCHAR* CShareData::MyGetTimeFormat(
01969     const SYSTEMTIME&   systime,
01970     TCHAR*          pszDest,
01971     int                 nDestLen,
01972     int                 nTimeFormatType,
01973     const TCHAR*        szTimeFormat
01974 )
01975 {
01976     const TCHAR* pszForm;
01977     DWORD dwFlags;
01978     if( 0 == nTimeFormatType ){
01979         dwFlags = 0;
01980         pszForm = NULL;
01981     }else{
01982         dwFlags = 0;
01983         pszForm = szTimeFormat;
01984     }
01985     ::GetTimeFormat( LOCALE_USER_DEFAULT, dwFlags, &systime, pszForm, pszDest, nDestLen );
01986     return pszDest;
01987 }
01988
01989
01990
01998 LPTSTR CShareData::GetTransformFileNameFast( LPCTSTR pszSrc, LPTSTR pszDest, int nDestLen )
01999 {
02000     int i;
02001     TCHAR szBuf[_MAX_PATH + 1];
02002
02003     if( -1 == m_nTransformFileNameCount ){
02004         TransformFileName_MakeCache();
02005     }
02006
02007     if( 0 < m_nTransformFileNameCount ){
02008         GetFilePathFormat( pszSrc, pszDest, nDestLen,
02009             m_szTransformFileNameFromExp[0],
02010             m_pShareData->m_szTransformFileNameTo[m_nTransformFileNameOrgId[0]]
02011         );
02012         for( i = 1; i < m_nTransformFileNameCount; i++ ){
02013             _tcscpy( szBuf, pszDest );
02014             GetFilePathFormat( szBuf, pszDest, nDestLen,
02015                 m_szTransformFileNameFromExp[i],
02016                 m_pShareData->m_szTransformFileNameTo[m_nTransformFileNameOrgId[i]] );
02017         }
02018     }else{
02019         // 変換する必要がない コピーだけする
02020         _tcsncpy( pszDest, pszSrc, nDestLen - 1 );
02021         pszDest[nDestLen - 1] = '\0';
02022     }
02023     return pszDest;
02024 }
02025
02031 int CShareData::TransformFileName_MakeCache( void ){
02032     int i;
02033     int nCount = 0;
02034     for( i = 0; i < m_pShareData->m_nTransformFileNameArrNum; i++ ){
02035         if( L'\0' != m_pShareData->m_szTransformFileNameFrom[i][0] ){
02036             if( ExpandMetaToFolder( m_pShareData->m_szTransformFileNameFrom[i],
02037              m_szTransformFileNameFromExp[nCount], _MAX_PATH ) ){
02038                 // m_szTransformFileNameToとm_szTransformFileNameFromExpの番号がずれることがあるので記録しておく
02039                 m_nTransformFileNameOrgId[nCount] = i;
02040                 nCount++;
02041             }
02042         }
02043     }
02044     m_nTransformFileNameCount = nCount;
02045     return nCount;
02046 }
02047
02048
02053 LPCTSTR CShareData::GetFilePathFormat( LPCTSTR pszSrc, LPTSTR pszDest, int nDestLen, LPCTSTR pszFrom, LPCTSTR pszTo )
02054 {
02055     int i, j;
02056     int nSrcLen;
02057     int nFromLen, nToLen;
02058     int nCopy;
02059
02060     nSrcLen  = _tcslen( pszSrc );
02061     nFromLen = _tcslen( pszFrom );
02062     nToLen   = _tcslen( pszTo );
02063
02064     nDestLen--;
02065
02066     for( i = 0, j = 0; i < nSrcLen && j < nDestLen; i++ ){
02067 #if defined(_MBCS)
02068         if( 0 == strnicmp( &pszSrc[i], pszFrom, nFromLen ) )
02069 #else
02070         if( 0 == _tcsncicmp( &pszSrc[i], pszFrom, nFromLen ) )
02071 #endif
02072         {
02073             nCopy = __min( nToLen, nDestLen - j );
02074             memcpy( &pszDest[j], pszTo, nCopy * sizeof( TCHAR ) );
02075             j += nCopy;
02076             i += nFromLen - 1;
02077         }else{
02078 #if defined(_MBCS)
02079 // SJIS 専用処理
02080             if( _IS_SJIS_1( (unsigned char)pszSrc[i] ) && i + 1 < nSrcLen && _IS_SJIS_2( (unsigned char)pszSrc[i + 1] ) ){
02081                 if( j + 1 < nDestLen ){
02082                     pszDest[j] = pszSrc[i];
02083                     j++;
02084                     i++;
02085                 }else{
02086                     // SJISの先行バイトだけコピーされるのを防ぐ
02087                     break;// goto end_of_func;
02088                 }
02089             }
02090 #endif
02091             pszDest[j] = pszSrc[i];
02092             j++;
02093         }
02094     }
02095 // end_of_func:;
02096     pszDest[j] = '\0';
02097     return pszDest;
02098 }
02099
02100
02110 bool CShareData::ExpandMetaToFolder( LPCTSTR pszSrc, LPTSTR pszDes, int nDesLen )
02111 {
02112     LPCTSTR ps;
02113     LPTSTR  pd, pd_end;
02114
02115 #define _USE_META_ALIAS
02116 #ifdef _USE_META_ALIAS
02117     struct MetaAlias{
02118         LPTSTR szAlias;
02119         int nLenth;
02120         LPTSTR szOrig;
02121     };
02122     static const MetaAlias AliasList[] = {
02123         {  _T("COMDESKTOP"), 10, _T("Common Desktop") },
02124         {  _T("COMMUSIC"), 8, _T("CommonMusic") },
02125         {  _T("COMVIDEO"), 8, _T("CommonVideo") },
02126         {  _T("MYMUSIC"),  7, _T("My Music") },
02127         {  _T("MYVIDEO"),  7, _T("Video") },
02128         {  _T("COMPICT"),  7, _T("CommonPictures") },
02129         {  _T("MYPICT"),   6, _T("My Pictures") },
02130         {  _T("COMDOC"),   6, _T("Common Documents") },
02131         {  _T("MYDOC"),    5, _T("Personal") },
02132         { NULL, 0 , NULL }
02133     };
02134 #endif
02135
02136     pd_end = pszDes + ( nDesLen - 1 );
02137     for( ps = pszSrc, pd = pszDes; _T('\0') != *ps; ps++ ){
02138         if( pd_end <= pd ){
02139             if( pd_end == pd ){
02140                 *pd = _T('\0');
02141             }
02142             return false;
02143         }
02144
02145         if( _T('%') != *ps ){
02146             *pd = *ps;
02147             pd++;
02148             continue;
02149         }
02150
02151         // %% は %
02152         if( _T('%') == ps[1] ){
02153             *pd = _T('%');
02154             pd++;
02155             ps++;
02156             continue;
02157         }
02158
02159         if( _T('\0') != ps[1] ){
02160             TCHAR szMeta[_MAX_PATH];
02161             TCHAR szPath[_MAX_PATH + 1];
02162             int   nMetaLen;
02163             int   nPathLen;
02164             bool  bFolderPath;
02165             LPCTSTR  pStr;
02166             ps++;
02167             // %SAKURA%
02168             if( 0 == my_tcsnicmp( _T("SAKURA%"), ps, 7 ) ){
02169                 // exeのあるフォルダ
02170                 GetExedir( szPath );
02171                 nMetaLen = 6;
02172             }
02173             // %SAKURADATA% // 2007.06.06 ryoji
02174             else if( 0 == my_tcsnicmp( _T("SAKURADATA%"), ps, 11 ) ){
02175                 // iniのあるフォルダ
02176                 GetInidir( szPath );
02177                 nMetaLen = 10;
02178             }
02179             // メタ文字列っぽい
02180             else if( NULL != (pStr = _tcschr( ps, _T('%') ) )){
02181                 nMetaLen = pStr - ps;
02182                 if( nMetaLen < _MAX_PATH ){
02183                     _tmemcpy( szMeta, ps, nMetaLen );
02184                     szMeta[nMetaLen] = _T('\0');
02185                 }
02186                 else{
02187                     *pd = _T('\0');
02188                     return false;
02189                 }
02190 #ifdef _USE_META_ALIAS
02191                 // メタ文字列がエイリアス名なら書き換える
02192                 const MetaAlias* pAlias;
02193                 for( pAlias = &AliasList[0]; nMetaLen < pAlias->nLenth; pAlias++ )
02194                     ; // 読み飛ばす
02195                 for( ; nMetaLen == pAlias->nLenth; pAlias++ ){
02196                     if( 0 == my_tcsicmp( pAlias->szAlias, szMeta ) ){
02197                         _tcscpy( szMeta, pAlias->szOrig );
02198                         break;
02199                     }
02200                 }
02201 #endif
02202                 // 直接レジストリで調べる
02203                 szPath[0] = _T('\0');
02204                 bFolderPath = ReadRegistry( HKEY_CURRENT_USER,
02205                     _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"),
02206                     szMeta, szPath, _countof( szPath ) );
02207                 if( false == bFolderPath || _T('\0') == szPath[0] ){
02208                     bFolderPath = ReadRegistry( HKEY_LOCAL_MACHINE,
02209                         _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"),
02210                         szMeta, szPath, _countof( szPath ) );
02211                 }
02212                 if( false == bFolderPath || _T('\0') == szPath[0] ){
02213                     pStr = _tgetenv( szMeta );
02214                     // 環境変数
02215                     if( NULL != pStr ){
02216                         nPathLen = _tcslen( pStr );
02217                         if( nPathLen < _MAX_PATH ){
02218                             _tcscpy( szPath, pStr );
02219                         }else{
02220                             *pd = _T('\0');
02221                             return false;
02222                         }
02223                     }
02224                     // 未定義のメタ文字列は 入力された%...%を，そのまま文字として処理する
02225                     else if(  pd + ( nMetaLen + 2 ) < pd_end ){
02226                         *pd = _T('%');
02227                         _tmemcpy( &pd[1], ps, nMetaLen );
02228                         pd[nMetaLen + 1] = _T('%');
02229                         pd += nMetaLen + 2;
02230                         ps += nMetaLen;
02231                         continue;
02232                     }else{
02233                         *pd = _T('\0');
02234                         return false;
02235                     }
02236                 }
02237             }else{
02238                 // %...%の終わりの%がない とりあえず，%をコピー
02239                 *pd = _T('%');
02240                 pd++;
02241                 ps--; // 先にps++してしまったので戻す
02242                 continue;
02243             }
02244
02245             // ロングファイル名にする
02246             nPathLen = _tcslen( szPath );
02247             LPTSTR pStr2 = szPath;
02248             if( nPathLen < _MAX_PATH && 0 != nPathLen ){
02249                 if( FALSE != GetLongFileName( szPath, szMeta ) ){
02250                     pStr2 = szMeta;
02251                 }
02252             }
02253
02254             // 最後のフォルダ区切り記号を削除する
02255             // [A:\]などのルートであっても削除
02256             for(nPathLen = 0; pStr2[nPathLen] != _T('\0'); nPathLen++ ){
02257 #ifdef _MBCS
02258                 if( _IS_SJIS_1( (unsigned char)pStr2[nPathLen] ) && _IS_SJIS_2( (unsigned char)pStr2[nPathLen + 1] ) ){
02259                     // SJIS読み飛ばし
02260                     nPathLen++; // 2003/01/17 sui
02261                 }else
02262 #endif
02263                 if( _T('\\') == pStr2[nPathLen] && _T('\0') == pStr2[nPathLen + 1] ){
02264                     pStr2[nPathLen] = _T('\0');
02265                     break;
02266                 }
02267             }
02268
02269             if( pd + nPathLen < pd_end && 0 != nPathLen ){
02270                 _tmemcpy( pd, pStr2, nPathLen );
02271                 pd += nPathLen;
02272                 ps += nMetaLen;
02273             }else{
02274                 *pd = _T('\0');
02275                 return false;
02276             }
02277         }else{
02278             // 最後の文字が%だった
02279             *pd = *ps;
02280             pd++;
02281         }
02282     }
02283     *pd = _T('\0');
02284     return true;
02285 }
02286
02287 static const wchar_t* const ppszKeyWordsCPP[] = {
02288     L"#define",
02289     L"#elif",
02290     L"#else",
02291     L"#endif",
02292     L"#error",
02293     L"#if",
02294     L"#ifdef",
02295     L"#ifndef",
02296     L"#include",
02297     L"#line",
02298     L"#pragma",
02299     L"#undef",
02300     L"__FILE__",
02301     L"__declspec",
02302     L"asm",
02303     L"auto",
02304     L"bool",
02305     L"break",
02306     L"case",
02307     L"catch",
02308     L"char",
02309     L"class",
02310     L"const",
02311     L"const_cast",
02312     L"continue",
02313     L"default",
02314     L"define",
02315     L"defined",
02316     L"delete",
02317     L"do",
02318     L"double",
02319     L"dynamic_cast",
02320     L"elif",
02321     L"else",
02322     L"endif",
02323     L"enum",
02324     L"error",
02325     L"explicit",
02326     L"export",
02327     L"extern",
02328     L"false",
02329     L"float",
02330     L"for",
02331     L"friend",
02332     L"goto",
02333     L"if",
02334     L"ifdef",
02335     L"ifndef",
02336     L"include",
02337     L"inline",
02338     L"int",
02339     L"line",
02340     L"long",
02341     L"mutable",
02342     L"namespace",
02343     L"new",
02344     L"operator",
02345     L"pragma",
02346     L"private",
02347     L"protected",
02348     L"public",
02349     L"register",
02350     L"reinterpret_cast",
02351     L"return",
02352     L"short",
02353     L"signed",
02354     L"sizeof",
02355     L"static",
02356     L"static_cast",
02357     L"struct",
02358     L"switch",
02359     L"template",
02360     L"this",
02361     L"throw",
02362     L"true",
02363     L"try",
02364     L"typedef",
02365     L"typeid",
02366     L"typename",
02367     L"undef",
02368     L"union",
02369     L"unsigned",
02370     L"using",
02371     L"virtual",
02372     L"void",
02373     L"volatile",
02374     L"wchar_t",
02375     L"while"
02376 };
02377
02378 static const wchar_t* const ppszKeyWordsHTML[] = {
02379     L"_blank",
02380     L"_parent",
02381     L"_self",
02382     L"_top",
02383     L"A",
02384     L"ABBR",
02385     L"ABOVE",
02386     L"absbottom",
02387     L"absmiddle",
02388     L"ACCESSKEY",
02389     L"ACRONYM",
02390     L"ACTION",
02391     L"ADDRESS",
02392     L"ALIGN",
02393     L"all",
02394     L"APPLET",
02395     L"AREA",
02396     L"AUTOPLAY",
02397     L"AUTOSTART",
02398     L"B",
02399     L"BACKGROUND",
02400     L"BASE",
02401     L"BASEFONT",
02402     L"baseline",
02403     L"BEHAVIOR",
02404     L"BELOW",
02405     L"BGCOLOR",
02406     L"BGSOUND",
02407     L"BIG",
02408     L"BLINK",
02409     L"BLOCKQUOTE",
02410     L"BODY",
02411     L"BORDER",
02412     L"BORDERCOLOR",
02413     L"BORDERCOLORDARK",
02414     L"BORDERCOLORLIGHT",
02415     L"BOTTOM",
02416     L"box",
02417     L"BR",
02418     L"BUTTON",
02419     L"CAPTION",
02420     L"CELLPADDING",
02421     L"CELLSPACING",
02422     L"CENTER",
02423     L"CHALLENGE",
02424     L"char",
02425     L"checkbox",
02426     L"CHECKED",
02427     L"CITE",
02428     L"CLEAR",
02429     L"CLIP",
02430     L"CODE",
02431     L"CODEBASE",
02432     L"CODETYPE",
02433     L"COL",
02434     L"COLGROUP",
02435     L"COLOR",
02436     L"COLS",
02437     L"COLSPAN",
02438     L"COMMENT",
02439     L"CONTROLS",
02440     L"DATA",
02441     L"DD",
02442     L"DECLARE",
02443     L"DEFER",
02444     L"DEL",
02445     L"DELAY",
02446     L"DFN",
02447     L"DIR",
02448     L"DIRECTION",
02449     L"DISABLED",
02450     L"DIV",
02451     L"DL",
02452     L"DOCTYPE",
02453     L"DT",
02454     L"EM",
02455     L"EMBED",
02456     L"ENCTYPE",
02457     L"FACE",
02458     L"FIELDSET",
02459     L"file",
02460     L"FONT",
02461     L"FOR",
02462     L"FORM",
02463     L"FRAME",
02464     L"FRAMEBORDER",
02465     L"FRAMESET",
02466     L"GET",
02467     L"groups",
02468     L"GROUPS",
02469     L"GUTTER",
02470     L"H1",
02471     L"H2",
02472     L"H3",
02473     L"H4",
02474     L"H5",
02475     L"H6",
02476     L"H7",
02477     L"HEAD",
02478     L"HEIGHT",
02479     L"HIDDEN",
02480     L"Hn",
02481     L"HR",
02482     L"HREF",
02483     L"hsides",
02484     L"HSPACE",
02485     L"HTML",
02486     L"I",
02487     L"ID",
02488     L"IFRAME",
02489     L"ILAYER",
02490     L"image",
02491     L"IMG",
02492     L"INDEX",
02493     L"inherit",
02494     L"INPUT",
02495     L"INS",
02496     L"ISINDEX",
02497     L"JavaScript",
02498     L"justify",
02499     L"KBD",
02500     L"KEYGEN",
02501     L"LABEL",
02502     L"LANGUAGE",
02503     L"LAYER",
02504     L"LEFT",
02505     L"LEGEND",
02506     L"lhs",
02507     L"LI",
02508     L"LINK",
02509     L"LISTING",
02510     L"LOOP",
02511     L"MAP",
02512     L"MARQUEE",
02513     L"MAXLENGTH",
02514     L"MENU",
02515     L"META",
02516     L"METHOD",
02517     L"METHODS",
02518     L"MIDDLE",
02519     L"MULTICOL",
02520     L"MULTIPLE",
02521     L"NAME",
02522     L"NEXT",
02523     L"NEXTID",
02524     L"NOBR",
02525     L"NOEMBED",
02526     L"NOFRAMES",
02527     L"NOLAYER",
02528     L"none",
02529     L"NOSAVE",
02530     L"NOSCRIPT",
02531     L"NOTAB",
02532     L"NOWRAP",
02533     L"OBJECT",
02534     L"OL",
02535     L"onBlur",
02536     L"onChange",
02537     L"onClick",
02538     L"onFocus",
02539     L"onLoad",
02540     L"onMouseOut",
02541     L"onMouseOver",
02542     L"onReset",
02543     L"onSelect",
02544     L"onSubmit",
02545     L"OPTION",
02546     L"P",
02547     L"PAGEX",
02548     L"PAGEY",
02549     L"PALETTE",
02550     L"PANEL",
02551     L"PARAM",
02552     L"PARENT",
02553     L"password",
02554     L"PLAINTEXT",
02555     L"PLUGINSPAGE",
02556     L"POST",
02557     L"PRE",
02558     L"PREVIOUS",
02559     L"Q",
02560     L"radio",
02561     L"REL",
02562     L"REPEAT",
02563     L"reset",
02564     L"REV",
02565     L"rhs",
02566     L"RIGHT",
02567     L"rows",
02568     L"ROWSPAN",
02569     L"RULES",
02570     L"S",
02571     L"SAMP",
02572     L"SAVE",
02573     L"SCRIPT",
02574     L"SCROLLAMOUNT",
02575     L"SCROLLDELAY",
02576     L"SELECT",
02577     L"SELECTED",
02578     L"SERVER",
02579     L"SHAPES",
02580     L"show",
02581     L"SIZE",
02582     L"SMALL",
02583     L"SONG",
02584     L"SPACER",
02585     L"SPAN",
02586     L"SRC",
02587     L"STANDBY",
02588     L"STRIKE",
02589     L"STRONG",
02590     L"STYLE",
02591     L"SUB",
02592     L"submit",
02593     L"SUMMARY",
02594     L"SUP",
02595     L"TABINDEX",
02596     L"TABLE",
02597     L"TARGET",
02598     L"TBODY",
02599     L"TD",
02600     L"TEXT",
02601     L"TEXTAREA",
02602     L"textbottom",
02603     L"TEXTFOCUS",
02604     L"textmiddle",
02605     L"texttop",
02606     L"TFOOT",
02607     L"TH",
02608     L"THEAD",
02609     L"TITLE",
02610     L"TOP",
02611     L"TR",
02612     L"TT",
02613     L"TXTCOLOR",
02614     L"TYPE",
02615     L"U",
02616     L"UL",
02617     L"URN",
02618     L"USEMAP",
02619     L"VALIGN",
02620     L"VALUE",
02621     L"VALUETYPE",
02622     L"VAR",
02623     L"VISIBILITY",
02624     L"void",
02625     L"vsides",
02626     L"VSPACE",
02627     L"WBR",
02628     L"WIDTH",
02629     L"WRAP",
02630     L"XMP"
02631 };
02632
02633 static const wchar_t* const ppszKeyWordsPLSQL[] = {
02634     L"AND",
02635     L"AS",
02636     L"BEGIN",
02637     L"BINARY_INTEGER",
02638     L"BODY",
02639     L"BOOLEAN",
02640     L"BY",
02641     L"CHAR",
02642     L"CHR",
02643     L"COMMIT",
02644     L"COUNT",
02645     L"CREATE",
02646     L"CURSOR",
02647     L"DATE",
02648     L"DECLARE",
02649     L"DEFAULT",
02650     L"DELETE",
02651     L"ELSE",
02652     L"ELSIF",
02653     L"END",
02654     L"ERRORS",
02655     L"EXCEPTION",
02656     L"FALSE",
02657     L"FOR",
02658     L"FROM",
02659     L"FUNCTION",
02660     L"GOTO",
02661     L"HTP",
02662     L"IDENT_ARR",
02663     L"IF",
02664     L"IN",
02665     L"INDEX",
02666     L"INTEGER",
02667     L"IS",
02668     L"LOOP",
02669     L"NOT",
02670     L"NO_DATA_FOUND",
02671     L"NULL",
02672     L"NUMBER",
02673     L"OF",
02674     L"OR",
02675     L"ORDER",
02676     L"OUT",
02677     L"OWA_UTIL",
02678     L"PACKAGE",
02679     L"PRAGMA",
02680     L"PRN",
02681     L"PROCEDURE",
02682     L"REPLACE",
02683     L"RESTRICT_REFERENCES",
02684     L"RETURN",
02685     L"ROWTYPE",
02686     L"SELECT",
02687     L"SHOW",
02688     L"SUBSTR",
02689     L"TABLE",
02690     L"THEN",
02691     L"TRUE",
02692     L"TYPE",
02693     L"UPDATE",
02694     L"VARCHAR",
02695     L"VARCHAR2",
02696     L"WHEN",
02697     L"WHERE",
02698     L"WHILE",
02699     L"WNDS",
02700     L"WNPS",
02701     L"RAISE",
02702     L"INSERT",
02703     L"INTO",
02704     L"VALUES",
02705     L"SET",
02706     L"SYSDATE",
02707     L"RTRIM",
02708     L"LTRIM",
02709     L"TO_CHAR",
02710     L"DUP_VAL_ON_INDEX",
02711     L"ROLLBACK",
02712     L"OTHERS",
02713     L"SQLCODE"
02714 };
02715
02716 //Jul. 10, 2001 JEPRO 追加
02717 static const wchar_t* const ppszKeyWordsCOBOL[] = {
02718     L"ACCEPT",
02719     L"ADD",
02720     L"ADVANCING",
02721     L"AFTER",
02722     L"ALL",
02723     L"AND",
02724     L"ARGUMENT",
02725     L"ASSIGN",
02726     L"AUTHOR",
02727     L"BEFORE",
02728     L"BLOCK",
02729     L"BY",
02730     L"CALL",
02731     L"CHARACTERS",
02732     L"CLOSE",
02733     L"COMP",
02734     L"COMPILED",
02735     L"COMPUTE",
02736     L"COMPUTER",
02737     L"CONFIGURATION",
02738     L"CONSOLE",
02739     L"CONTAINS",
02740     L"CONTINUE",
02741     L"CONTROL",
02742     L"COPY",
02743     L"DATA",
02744     L"DELETE",
02745     L"DISPLAY",
02746     L"DIVIDE",
02747     L"DIVISION",
02748     L"ELSE",
02749     L"END",
02750     L"ENVIRONMENT",
02751     L"EVALUATE",
02752     L"EXAMINE",
02753     L"EXIT",
02754     L"EXTERNAL",
02755     L"FD",
02756     L"FILE",
02757     L"FILLER",
02758     L"FROM",
02759     L"GIVING",
02760     L"GO",
02761     L"GOBACK",
02762     L"HIGH-VALUE",
02763     L"IDENTIFICATION"
02764     L"IF",
02765     L"INITIALIZE",
02766     L"INPUT",
02767     L"INTO",
02768     L"IS",
02769     L"LABEL",
02770     L"LINKAGE",
02771     L"LOW-VALUE",
02772     L"MODE",
02773     L"MOVE",
02774     L"NOT",
02775     L"OBJECT",
02776     L"OCCURS",
02777     L"OF",
02778     L"ON",
02779     L"OPEN",
02780     L"OR",
02781     L"OTHER",
02782     L"OUTPUT",
02783     L"PERFORM",
02784     L"PIC",
02785     L"PROCEDURE",
02786     L"PROGRAM",
02787     L"READ",
02788     L"RECORD",
02789     L"RECORDING",
02790     L"REDEFINES",
02791     L"REMAINDER",
02792     L"REMARKS",
02793     L"REPLACING",
02794     L"REWRITE",
02795     L"ROLLBACK",
02796     L"SECTION",
02797     L"SELECT",
02798     L"SOURCE",
02799     L"SPACE",
02800     L"STANDARD",
02801     L"STOP",
02802     L"STORAGE",
02803     L"SYSOUT",
02804     L"TEST",
02805     L"THEN",
02806     L"TO",
02807     L"TODAY",
02808     L"TRANSFORM",
02809     L"UNTIL",
02810     L"UPON",
02811     L"USING",
02812     L"VALUE",
02813     L"VARYING",
02814     L"WHEN",
02815     L"WITH",
02816     L"WORKING",
02817     L"WRITE",
02818     L"WRITTEN",
02819     L"ZERO"
02820 };
02821
02822 static const wchar_t*   ppszKeyWordsJAVA[] = {
02823     L"abstract",
02824     L"assert",  // Mar. 8, 2003 genta
02825     L"boolean",
02826     L"break",
02827     L"byte",
02828     L"case",
02829     L"catch",
02830     L"char",
02831     L"class",
02832     L"const",
02833     L"continue",
02834     L"default",
02835     L"do",
02836     L"double",
02837     L"else",
02838     L"extends",
02839     L"final",
02840     L"finally",
02841     L"float",
02842     L"for",
02843     L"goto",
02844     L"if",
02845     L"implements",
02846     L"import",
02847     L"instanceof",
02848     L"int",
02849     L"interface",
02850     L"long",
02851     L"native",
02852     L"new",
02853     L"package",
02854     L"private",
02855     L"protected",
02856     L"public",
02857     L"return",
02858     L"short",
02859     L"static",
02860     L"strictfp",    // Mar. 8, 2003 genta
02861     L"super",
02862     L"switch",
02863     L"synchronized",
02864     L"this",
02865     L"throw",
02866     L"throws",
02867     L"transient",
02868     L"try",
02869     L"void",
02870     L"volatile",
02871     L"while"
02872 };
02873
02874 static const wchar_t* const ppszKeyWordsCORBA_IDL[] = {
02875     L"any",
02876     L"attribute",
02877     L"boolean",
02878     L"case",
02879     L"char",
02880     L"const",
02881     L"context",
02882     L"default",
02883     L"double",
02884     L"enum",
02885     L"exception",
02886     L"FALSE",
02887     L"fixed",
02888     L"float",
02889     L"in",
02890     L"inout",
02891     L"interface",
02892     L"long",
02893     L"module",
02894     L"Object",
02895     L"octet",
02896     L"oneway",
02897     L"out",
02898     L"raises",
02899     L"readonly",
02900     L"sequence",
02901     L"short",
02902     L"string",
02903     L"struct",
02904     L"switch",
02905     L"TRUE",
02906     L"typedef",
02907     L"unsigned",
02908     L"union",
02909     L"void",
02910     L"wchar_t",
02911     L"wstring"
02912 };
02913
02914 static const wchar_t* const ppszKeyWordsAWK[] = {
02915     L"BEGIN",
02916     L"END",
02917     L"next",
02918     L"exit",
02919     L"func",
02920     L"function",
02921     L"return",
02922     L"if",
02923     L"else",
02924     L"for",
02925     L"in",
02926     L"do",
02927     L"while",
02928     L"break",
02929     L"continue",
02930     L"$0",
02931     L"$1",
02932     L"$2",
02933     L"$3",
02934     L"$4",
02935     L"$5",
02936     L"$6",
02937     L"$7",
02938     L"$8",
02939     L"$9",
02940     L"$10",
02941     L"$11",
02942     L"$12",
02943     L"$13",
02944     L"$14",
02945     L"$15",
02946     L"$16",
02947     L"$17",
02948     L"$18",
02949     L"$19",
02950     L"$20",
02951     L"FS",
02952     L"OFS",
02953     L"NF",
02954     L"RS",
02955     L"ORS",
02956     L"NR",
02957     L"FNR",
02958     L"ARGV",
02959     L"ARGC",
02960     L"ARGIND",
02961     L"FILENAME",
02962     L"ENVIRON",
02963     L"ERRNO",
02964     L"OFMT",
02965     L"CONVFMT",
02966     L"FIELDWIDTHS",
02967     L"IGNORECASE",
02968     L"RLENGTH",
02969     L"RSTART",
02970     L"SUBSEP",
02971     L"delete",
02972     L"index",
02973     L"jindex",
02974     L"length",
02975     L"jlength",
02976     L"substr",
02977     L"jsubstr",
02978     L"match",
02979     L"split",
02980     L"sub",
02981     L"gsub",
02982     L"sprintf",
02983     L"tolower",
02984     L"toupper",
02985     L"print",
02986     L"printf",
02987     L"getline",
02988     L"system",
02989     L"close",
02990     L"sin",
02991     L"cos",
02992     L"atan2",
02993     L"exp",
02994     L"log",
02995     L"int",
02996     L"sqrt",
02997     L"srand",
02998     L"rand",
02999     L"strftime",
03000     L"systime"
03001 };
03002
03003 static const wchar_t*   ppszKeyWordsBAT[] = {
03004     L"PATH",
03005     L"PROMPT",
03006     L"TEMP",
03007     L"TMP",
03008     L"TZ",
03009     L"CONFIG",
03010     L"COMSPEC",
03011     L"DIRCMD",
03012     L"COPYCMD",
03013     L"winbootdir",
03014     L"windir",
03015     L"DIR",
03016     L"CALL",
03017     L"CHCP",
03018     L"RENAME",
03019     L"REN",
03020     L"ERASE",
03021     L"DEL",
03022     L"TYPE",
03023     L"REM",
03024     L"COPY",
03025     L"PAUSE",
03026     L"DATE",
03027     L"TIME",
03028     L"VER",
03029     L"VOL",
03030     L"CD",
03031     L"CHDIR",
03032     L"MD",
03033     L"MKDIR",
03034     L"RD",
03035     L"RMDIR",
03036     L"BREAK",
03037     L"VERIFY",
03038     L"SET",
03039     L"EXIT",
03040     L"CTTY",
03041     L"ECHO",
03042     L"@ECHO",   //Oct. 31, 2000 JEPRO '@' を強調可能にしたので追加
03043     L"LOCK",
03044     L"UNLOCK",
03045     L"GOTO",
03046     L"SHIFT",
03047     L"IF",
03048     L"FOR",
03049     L"DO",  //Nov. 2, 2000 JEPRO 追加
03050     L"IN",  //Nov. 2, 2000 JEPRO 追加
03051     L"ELSE",    //Nov. 2, 2000 JEPRO 追加 Win2000で使える
03052     L"CLS",
03053     L"TRUENAME",
03054     L"LOADHIGH",
03055     L"LH",
03056     L"LFNFOR",
03057     L"ON",
03058     L"OFF",
03059     L"NOT",
03060     L"ERRORLEVEL",
03061     L"EXIST",
03062     L"NUL",
03063     L"CON",
03064     L"AUX",
03065     L"COM1",
03066     L"COM2",
03067     L"COM3",
03068     L"COM4",
03069     L"PRN",
03070     L"LPT1",
03071     L"LPT2",
03072     L"LPT3",
03073     L"CLOCK",
03074     L"CLOCK$",
03075     L"CONFIG$"
03076 };
03077
03078 static const wchar_t*   ppszKeyWordsPASCAL[] = {
03079     L"and",
03080     L"exports",
03081     L"mod",
03082     L"shr",
03083     L"array",
03084     L"file",
03085     L"nil",
03086     L"string",
03087     L"as",
03088     L"finalization",
03089     L"not",
03090     L"stringresource",
03091     L"asm",
03092     L"finally",
03093     L"object",
03094     L"then",
03095     L"begin",
03096     L"for",
03097     L"of",
03098     L"case",
03099     L"function",
03100     L"or",
03101     L"to",
03102     L"class",
03103     L"goto",
03104     L"out",
03105     L"try",
03106     L"const",
03107     L"if",
03108     L"packed",
03109     L"type",
03110     L"constructor",
03111     L"implementation",
03112     L"procedure",
03113     L"unit",
03114     L"destructor",
03115     L"in",
03116     L"program",
03117     L"until",
03118     L"dispinterface",
03119     L"inherited",
03120     L"property",
03121     L"uses",
03122     L"div",
03123     L"initialization",
03124     L"raise",
03125     L"var",
03126     L"do",
03127     L"inline",
03128     L"record",
03129     L"while",
03130     L"downto",
03131     L"interface",
03132     L"repeat",
03133     L"with",
03134     L"else",
03135     L"is",
03136     L"resourcestring",
03137     L"xor",
03138     L"end",
03139     L"label",
03140     L"set",
03141     L"except",
03142     L"library",
03143     L"shl",
03144     L"private",
03145     L"public",
03146     L"published",
03147     L"protected",
03148     L"override"
03149 };
03150
03151 static const wchar_t*   ppszKeyWordsTEX[] = {
03152 //Nov. 20, 2000 JEPRO   大幅追加 & 若干修正・削除 --ほとんどコマンドのみ
03153     L"error",
03154     L"Warning",
03155 //          "center",
03156 //          "document",
03157 //          "enumerate",
03158 //          "eqnarray",
03159 //          "figure",
03160 //          "itemize",
03161 //          "minipage",
03162 //          "tabbing",
03163 //          "table",
03164 //          "tabular",
03165 //          "\\!",
03166 //          "\\#",
03167 //          "\\%",
03168 //          "\\&",
03169 //          "\\(",
03170 //          "\\)",
03171 //          "\\+",
03172 //          "\\,",
03173 //          "\\-",
03174 //          "\\:",
03175 //          "\\;",
03176 //          "\<",
03177 //          "\\=",
03178 //          "\>",
03179     L"\\aa",
03180     L"\\AA",
03181     L"\\acute",
03182     L"\\addcontentsline",
03183     L"\\addtocounter",
03184     L"\\addtolength",
03185     L"\\ae",
03186     L"\\AE",
03187     L"\\aleph",
03188     L"\\alpha",
03189     L"\\alph",
03190     L"\\Alph",
03191     L"\\and",
03192     L"\\angle",
03193     L"\\appendix",
03194     L"\\approx",
03195     L"\\arabic",
03196     L"\\arccos",
03197     L"\\arctan",
03198     L"\\arg",
03199     L"\\arrayrulewidth",
03200     L"\\arraystretch",
03201     L"\\ast",
03202     L"\\atop",
03203     L"\\author",
03204     L"\\b",
03205     L"\\backslash",
03206     L"\\bar",
03207     L"\\baselineskip",
03208     L"\\baselinestretch",
03209     L"\\begin",
03210     L"\\beta",
03211     L"\\bf",
03212     L"\\bibitem",
03213     L"\\bibliography",
03214     L"\\bibliographystyle",
03215     L"\\big",
03216     L"\\Big",
03217     L"\\bigcap",
03218     L"\\bigcirc",
03219     L"\\bigcup",
03220     L"\\bigg",
03221     L"\\Bigg",
03222     L"\\Biggl",
03223     L"\\Biggm",
03224     L"\\biggl",
03225     L"\\biggm",
03226     L"\\biggr",
03227     L"\\Biggr",
03228     L"\\bigl",
03229     L"\\bigm",
03230     L"\\Bigm",
03231     L"\\Bigl",
03232     L"\\bigodot",
03233     L"\\bigoplus",
03234     L"\\bigotimes",
03235     L"\\bigr",
03236     L"\\Bigr",
03237     L"\\bigskip",
03238     L"\\bigtriangledown",
03239     L"\\bigtriangleup",
03240     L"\\boldmath",
03241     L"\\bot",
03242     L"\\Box",
03243     L"\\brace",
03244     L"\\breve",
03245     L"\\bullet",
03246     L"\\bye",
03247     L"\\c",
03248     L"\\cal",
03249     L"\\cap",
03250     L"\\caption",
03251     L"\\cc",
03252     L"\\cdot",
03253     L"\\cdots",
03254     L"\\centering",
03255     L"\\chapter",
03256     L"\\check",
03257     L"\\chi",
03258     L"\\choose",
03259     L"\\circ",
03260     L"\\circle",
03261     L"\\cite",
03262     L"\\clearpage",
03263     L"\\cline",
03264     L"\\closing",
03265     L"\\clubsuit",
03266     L"\\colon",
03267     L"\\columnsep",
03268     L"\\columnseprule",
03269     L"\\cong",
03270     L"\\cot",
03271     L"\\coth",
03272     L"\\cr",
03273     L"\\cup",
03274     L"\\d",
03275     L"\\dag",
03276     L"\\dagger",
03277     L"\\date",
03278     L"\\dashbox",
03279     L"\\ddag",
03280     L"\\ddot",
03281     L"\\ddots",
03282     L"\\def",
03283     L"\\deg",
03284     L"\\delta",
03285     L"\\Delta",
03286     L"\\det",
03287     L"\\diamond",
03288     L"\\diamondsuit",
03289     L"\\dim",
03290     L"\\displaystyle",
03291     L"\\documentclass",
03292     L"\\documentstyle",
03293     L"\\dot",
03294     L"\\doteq",
03295     L"\\dotfill",
03296     L"\\Downarrow",
03297     L"\\downarrow",
03298     L"\\ell",
03299     L"\\em",
03300     L"\\emptyset",
03301     L"\\encl",
03302     L"\\end",
03303     L"\\enspace",
03304     L"\\enskip",
03305     L"\\epsilon",
03306     L"\\eqno",
03307     L"\\equiv",
03308     L"\\evensidemargin",
03309     L"\\eta",
03310     L"\\exists",
03311     L"\\exp",
03312     L"\\fbox",
03313     L"\\fboxrule",
03314     L"\\flat",
03315     L"\\footnote",
03316     L"\\footnotesize",
03317     L"\\forall",
03318     L"\\frac",
03319     L"\\frame",
03320     L"\\framebox",
03321     L"\\gamma",
03322     L"\\Gamma",
03323     L"\\gcd",
03324     L"\\ge",
03325     L"\\geq",
03326     L"\\gets",
03327     L"\\gg",
03328     L"\\grave",
03329     L"\\gt",
03330     L"\\H",
03331     L"\\hat",
03332     L"\\hbar",
03333     L"\\hbox",
03334     L"\\headsep",
03335     L"\\heartsuit",
03336     L"\\hfil",
03337     L"\\hfill",
03338     L"\\hline",
03339     L"\\hom",
03340     L"\\hrulefill",
03341     L"\\hskip",
03342     L"\\hspace",
03343     L"\\hspace*",
03344     L"\\huge",
03345     L"\\Huge",
03346     L"\\i",
03347     L"\\Im",
03348     L"\\imath",
03349     L"\\in",
03350     L"\\include",
03351     L"\\includegraphics",
03352     L"\\includeonly",
03353     L"\\indent",
03354     L"\\index",
03355     L"\\inf",
03356     L"\\infty",
03357     L"\\input",
03358     L"\\int",
03359     L"\\iota",
03360     L"\\it",
03361     L"\\item",
03362     L"\\itemsep",
03363     L"\\j",
03364     L"\\jmath",
03365     L"\\kappa",
03366     L"\\ker",
03367     L"\\kern",
03368     L"\\kill",
03369     L"\\l",
03370     L"\\L",
03371     L"\\label",
03372     L"\\lambda",
03373     L"\\Lambda",
03374     L"\\land",
03375     L"\\langle",
03376     L"\\large",
03377     L"\\Large",
03378     L"\\LARGE",
03379     L"\\LaTeX",
03380     L"\\LaTeXe",
03381     L"\\lceil",
03382     L"\\ldots",
03383     L"\\le",
03384     L"\\leftarrow",
03385     L"\\Leftarrow",
03386     L"\\lefteqn",
03387     L"\\leftharpoondown",
03388     L"\\leftharpoonup",
03389     L"\\leftmargin",
03390     L"\\leftrightarrow",
03391     L"\\Leftrightarrow",
03392     L"\\leq",
03393     L"\\leqno",
03394     L"\\lfloor",
03395     L"\\lg",
03396     L"\\lim",
03397     L"\\liminf",
03398     L"\\limsup",
03399     L"\\line",
03400     L"\\linebreak",
03401     L"\\linewidth",
03402     L"\\listoffigures",
03403     L"\\listoftables",
03404     L"\\ll",
03405     L"\\llap",
03406     L"\\ln",
03407     L"\\lnot",
03408     L"\\log",
03409     L"\\longleftarrow",
03410     L"\\Longleftarrow",
03411     L"\\longleftrightarrow",
03412     L"\\Longleftrightarrow",
03413     L"\\longrightarrow",
03414     L"\\Longrightarrow",
03415     L"\\lor",
03416     L"\\lower",
03417     L"\\magstep",
03418     L"\\makeatletter",
03419     L"\\makeatother",
03420     L"\\makebox",
03421     L"\\makeindex",
03422     L"\\maketitle",
03423     L"\\makelabels",
03424     L"\\mathop",
03425     L"\\mapsto",
03426     L"\\markboth",
03427     L"\\markright",
03428     L"\\mathstrut",
03429     L"\\max",
03430     L"\\mbox",
03431     L"\\mc",
03432     L"\\medskip",
03433     L"\\mid",
03434     L"\\min",
03435     L"\\mit",
03436     L"\\mp",
03437     L"\\mu",
03438     L"\\multicolumn",
03439     L"\\multispan",
03440     L"\\multiput",
03441     L"\\nabla",
03442     L"\\natural",
03443     L"\\ne",
03444     L"\\neg",
03445     L"\\nearrow",
03446     L"\\nwarrow",
03447     L"\\neq",
03448     L"\\newblock",
03449     L"\\newcommand",
03450     L"\\newenvironment",
03451     L"\\newfont",
03452     L"\\newlength",
03453     L"\\newline",
03454     L"\\newpage",
03455     L"\\newtheorem",
03456     L"\\ni",
03457     L"\\noalign",
03458     L"\\noindent",
03459     L"\\nolimits",
03460     L"\\nolinebreak",
03461     L"\\nonumber",
03462     L"\\nopagebreak",
03463     L"\\normalsize",
03464     L"\\not",
03465     L"\\notice",
03466     L"\\notin",
03467     L"\\nu",
03468     L"\\o",
03469     L"\\O",
03470     L"\\oddsidemargin",
03471     L"\\odot",
03472     L"\\oe",
03473     L"\\OE",
03474     L"\\oint",
03475     L"\\Omega",
03476     L"\\omega",
03477     L"\\ominus",
03478     L"\\oplus",
03479     L"\\opening",
03480     L"\\otimes",
03481     L"\\owns",
03482     L"\\overleftarrow",
03483     L"\\overline",
03484     L"\\overrightarrow",
03485     L"\\overvrace",
03486     L"\\oval",
03487     L"\\P",
03488     L"\\pagebreak",
03489     L"\\pagenumbering",
03490     L"\\pageref",
03491     L"\\pagestyle",
03492     L"\\par",
03493     L"\\parallel",
03494     L"\\paragraph",
03495     L"\\parbox",
03496     L"\\parindent",
03497     L"\\parskip",
03498     L"\\partial",
03499     L"\\perp",
03500     L"\\phi",
03501     L"\\Phi",
03502     L"\\pi",
03503     L"\\Pi",
03504     L"\\pm",
03505     L"\\Pr",
03506     L"\\prime",
03507     L"\\printindex",
03508     L"\\prod",
03509     L"\\propto",
03510     L"\\ps",
03511     L"\\psi",
03512     L"\\Psi",
03513     L"\\put",
03514     L"\\qquad",
03515     L"\\quad",
03516     L"\\raisebox",
03517     L"\\rangle",
03518     L"\\rceil",
03519     L"\\Re",
03520     L"\\ref",
03521     L"\\renewcommand",
03522     L"\\renewenvironment",
03523     L"\\rfloor",
03524     L"\\rho",
03525     L"\\right",
03526     L"\\rightarrow",
03527     L"\\Rightarrow",
03528     L"\\rightharpoondown",
03529     L"\\rightharpoonup",
03530     L"\\rightleftharpoonup",
03531     L"\\rightmargin",
03532     L"\\rm",
03533     L"\\rule",
03534     L"\\roman",
03535     L"\\Roman",
03536     L"\\S",
03537     L"\\samepage",
03538     L"\\sb",
03539     L"\\sc",
03540     L"\\scriptsize",
03541     L"\\scriptscriptstyle",
03542     L"\\scriptstyle",
03543     L"\\searrow",
03544     L"\\sec",
03545     L"\\section",
03546     L"\\setcounter",
03547     L"\\setlength",
03548     L"\\settowidth",
03549     L"\\setminus",
03550     L"\\sf",
03551     L"\\sharp",
03552     L"\\sigma",
03553     L"\\Sigma",
03554     L"\\signature",
03555     L"\\sim",
03556     L"\\simeq",
03557     L"\\sin",
03558     L"\\sinh",
03559     L"\\sl",
03560     L"\\sloppy",
03561     L"\\small",
03562     L"\\smash",
03563     L"\\smallskip",
03564     L"\\sp",
03565     L"\\spadesuit",
03566     L"\\special",
03567     L"\\sqrt",
03568     L"\\ss",
03569     L"\\star",
03570     L"\\stackrel",
03571     L"\\strut",
03572     L"\\subparagraph",
03573     L"\\subsection",
03574     L"\\subset",
03575     L"\\subseteq",
03576     L"\\subsubsection",
03577     L"\\sum",
03578     L"\\sup",
03579     L"\\supset",
03580     L"\\supseteq",
03581     L"\\swarrow",
03582     L"\\t",
03583     L"\\tableofcontents",
03584     L"\\tan",
03585     L"\\tanh",
03586     L"\\tau",
03587     L"\\TeX",
03588     L"\\textbf",
03589     L"\\textgreater",
03590     L"\\textgt",
03591     L"\\textheight",
03592     L"\\textit",
03593     L"\\textless",
03594     L"\\textmc",
03595     L"\\textrm",
03596     L"\\textsc",
03597     L"\\textsf",
03598     L"\\textsl",
03599     L"\\textstyle",
03600     L"\\texttt",
03601     L"\\textwidth",
03602     L"\\thanks",
03603     L"\\thebibliography",
03604     L"\\theequation",
03605     L"\\thepage",
03606     L"\\thesection",
03607     L"\\theta",
03608     L"\\Theta",
03609     L"\\thicklines",
03610     L"\\thinlines",
03611     L"\\thinspace",
03612     L"\\thisepage",
03613     L"\\thisepagestyle",
03614     L"\\tie",
03615     L"\\tilde",
03616     L"\\times",
03617     L"\\tiny",
03618     L"\\title",
03619     L"\\titlepage",
03620     L"\\to",
03621     L"\\toaddress",
03622     L"\\topmargin",
03623     L"\\triangle",
03624     L"\\tt",
03625     L"\\twocolumn",
03626     L"\\u",
03627     L"\\underline",
03628     L"\\undervrace",
03629     L"\\unitlength",
03630     L"\\Uparrow",
03631     L"\\uparrow",
03632     L"\\updownarrow",
03633     L"\\Updownarrow",
03634     L"\\uplus",
03635     L"\\upsilon",
03636     L"\\Upsilon",
03637     L"\\usepackage",
03638     L"\\v",
03639     L"\\varepsilon",
03640     L"\\varphi",
03641     L"\\varpi",
03642     L"\\varrho",
03643     L"\\varsigma",
03644     L"\\vartheta",
03645     L"\\vbox",
03646     L"\\vcenter",
03647     L"\\vec",
03648     L"\\vector",
03649     L"\\vee",
03650     L"\\verb",
03651     L"\\verb*",
03652     L"\\verbatim",
03653     L"\\vert",
03654     L"\\Vert",
03655     L"\\vfil",
03656     L"\\vfill",
03657     L"\\vrule",
03658     L"\\vskip",
03659     L"\\vspace",
03660     L"\\vspace*",
03661     L"\\wedge",
03662     L"\\widehat",
03663     L"\\widetilde",
03664     L"\\wp",
03665     L"\\wr",
03666     L"\\wrapfigure",
03667     L"\\xi",
03668     L"\\Xi",
03669     L"\\zeta"//,
03670 //          "\\[",
03671 //          "\\\"",
03672 //          "\\\'",
03673 //          "\\\\",
03674 //          "\\]",
03675 //          "\\^",
03676 //          "\\_",
03677 //          "\\`",
03678 //          "\\{",
03679 //          "\\|",
03680 //          "\\}",
03681 //          "\\~",
03682 };
03683
03684 //Jan. 19, 2001 JEPRO   TeX のキーワード2として新規追加 & 一部復活 --環境コマンドとオプション名が中心
03685 static const wchar_t*   ppszKeyWordsTEX2[] = {
03686     //  環境コマンド
03687     //Jan. 19, 2001 JEPRO 本当は{}付きでキーワードにしたかったが単語として認識してくれないので止めた
03688     L"abstract",
03689     L"array"
03690     L"center",
03691     L"description",
03692     L"document",
03693     L"displaymath",
03694     L"em",
03695     L"enumerate",
03696     L"eqnarray",
03697     L"eqnarray*",
03698     L"equation",
03699     L"figure",
03700     L"figure*",
03701     L"floatingfigure",
03702     L"flushleft",
03703     L"flushright",
03704     L"itemize",
03705     L"letter",
03706     L"list",
03707     L"math",
03708     L"minipage",
03709     L"multicols",
03710     L"namelist",
03711     L"picture",
03712     L"quotation",
03713     L"quote",
03714     L"sloppypar",
03715     L"subeqnarray",
03716     L"subeqnarray*",
03717     L"subequations",
03718     L"subfigure",
03719     L"tabbing",
03720     L"table",
03721     L"table*",
03722     L"tabular",
03723     L"tabular*",
03724     L"tatepage",
03725     L"thebibliography",
03726     L"theindex",
03727     L"titlepage",
03728     L"trivlist",
03729     L"verbatim",
03730     L"verbatim*",
03731     L"verse",
03732     L"wrapfigure",
03733     //  スタイルオプション
03734     L"a4",
03735     L"a4j",
03736     L"a5",
03737     L"a5j",
03738     L"Alph",
03739     L"alph",
03740     L"annote",
03741     L"arabic",
03742     L"b4",
03743     L"b4j",
03744     L"b5",
03745     L"b5j",
03746     L"bezier",
03747     L"booktitle",
03748     L"boxedminipage",
03749     L"boxit",
03750 //      "bp",
03751 //      "cm",
03752     L"dbltopnumber",
03753 //      "dd",
03754     L"eclepsf",
03755     L"eepic",
03756     L"enumi",
03757     L"enumii",
03758     L"enumiii",
03759     L"enumiv",
03760     L"epic",
03761     L"epsbox",
03762     L"epsf",
03763     L"fancybox",
03764     L"fancyheadings",
03765     L"fleqn",
03766     L"footnote",
03767     L"howpublished",
03768     L"jabbrv",
03769     L"jalpha",
03770 //      "article",
03771     L"jarticle",
03772     L"jsarticle",
03773 //      "book",
03774     L"jbook",
03775     L"jsbook",
03776 //      "letter",
03777     L"jletter",
03778 //      "plain",
03779     L"jplain",
03780 //      "report",
03781     L"jreport",
03782     L"jtwocolumn",
03783     L"junsrt",
03784     L"leqno",
03785     L"makeidx",
03786     L"markboth",
03787     L"markright",
03788 //      "mm",
03789     L"multicol",
03790     L"myheadings",
03791     L"openbib",
03792 //      "pc",
03793 //      "pt",
03794     L"secnumdepth",
03795 //      "sp",
03796     L"titlepage",
03797     L"tjarticle",
03798     L"topnumber",
03799     L"totalnumber",
03800     L"twocolumn",
03801     L"twoside",
03802     L"yomi"//,
03803 //      "zh",
03804 //      "zw"
03805 };
03806
03807 static const wchar_t*   ppszKeyWordsPERL[] = {
03808     //Jul. 10, 2001 JEPRO   変数を第２強調キーワードとして分離した
03809     L"break",
03810     L"continue",
03811     L"do",
03812     L"elsif",
03813     L"else",
03814     L"for",
03815     L"foreach",
03816     L"goto",
03817     L"if",
03818     L"last",
03819     L"next",
03820     L"return",
03821     L"sub",
03822     L"undef",
03823     L"unless",
03824     L"until",
03825     L"while",
03826     L"abs",
03827     L"accept",
03828     L"alarm",
03829     L"atan2",
03830     L"bind",
03831     L"binmode",
03832     L"bless",
03833     L"caller",
03834     L"chdir",
03835     L"chmod",
03836     L"chomp",
03837     L"chop",
03838     L"chown",
03839     L"chr",
03840     L"chroot",
03841     L"close",
03842     L"closedir",
03843     L"connect",
03844     L"continue",
03845     L"cos",
03846     L"crypt",
03847     L"dbmclose",
03848     L"dbmopen",
03849     L"defined",
03850     L"delete",
03851     L"die",
03852     L"do",
03853     L"dump",
03854     L"each",
03855     L"eof",
03856     L"eval",
03857     L"exec",
03858     L"exists",
03859     L"exit",
03860     L"exp",
03861     L"fcntl",
03862     L"fileno",
03863     L"flock",
03864     L"fork",
03865     L"format",
03866     L"formline",
03867     L"getc",
03868     L"getlogin",
03869     L"getpeername",
03870     L"getpgrp",
03871     L"getppid",
03872     L"getpriority",
03873     L"getpwnam",
03874     L"getgrnam",
03875     L"gethostbyname",
03876     L"getnetbyname",
03877     L"getprotobyname",
03878     L"getpwuid",
03879     L"getgrgid",
03880     L"getservbyname",
03881     L"gethostbyaddr",
03882     L"getnetbyaddr",
03883     L"getprotobynumber",
03884     L"getservbyport",
03885     L"getpwent",
03886     L"getgrent",
03887     L"gethostent",
03888     L"getnetent",
03889     L"getprotoent",
03890     L"getservent",
03891     L"setpwent",
03892     L"setgrent",
03893     L"sethostent",
03894     L"setnetent",
03895     L"setprotoent",
03896     L"setservent",
03897     L"endpwent",
03898     L"endgrent",
03899     L"endhostent",
03900     L"endnetent",
03901     L"endprotoent",
03902     L"endservent",
03903     L"getsockname",
03904     L"getsockopt",
03905     L"glob",
03906     L"gmtime",
03907     L"goto",
03908     L"grep",
03909     L"hex",
03910     L"import",
03911     L"index",
03912     L"int",
03913     L"ioctl",
03914     L"join",
03915     L"keys",
03916     L"kill",
03917     L"last",
03918     L"lc",
03919     L"lcfirst",
03920     L"length",
03921     L"link",
03922     L"listen",
03923     L"local",
03924     L"localtime",
03925     L"log",
03926     L"lstat",
03927 //          "//m",
03928     L"map",
03929     L"mkdir",
03930     L"msgctl",
03931     L"msgget",
03932     L"msgsnd",
03933     L"msgrcv",
03934     L"my",
03935     L"next",
03936     L"no",
03937     L"oct",
03938     L"open",
03939     L"opendir",
03940     L"ord",
03941     L"our", // 2006.04.20 genta
03942     L"pack",
03943     L"package",
03944     L"pipe",
03945     L"pop",
03946     L"pos",
03947     L"print",
03948     L"printf",
03949     L"prototype",
03950     L"push",
03951 //          "//q",
03952     L"qq",
03953     L"qr",
03954     L"qx",
03955     L"qw",
03956     L"quotemeta",
03957     L"rand",
03958     L"read",
03959     L"readdir",
03960     L"readline",
03961     L"readlink",
03962     L"readpipe",
03963     L"recv",
03964     L"redo",
03965     L"ref",
03966     L"rename",
03967     L"require",
03968     L"reset",
03969     L"return",
03970     L"reverse",
03971     L"rewinddir",
03972     L"rindex",
03973     L"rmdir",
03974 //          "//s",
03975     L"scalar",
03976     L"seek",
03977     L"seekdir",
03978     L"select",
03979     L"semctl",
03980     L"semget",
03981     L"semop",
03982     L"send",
03983     L"setpgrp",
03984     L"setpriority",
03985     L"setsockopt",
03986     L"shift",
03987     L"shmctl",
03988     L"shmget",
03989     L"shmread",
03990     L"shmwrite",
03991     L"shutdown",
03992     L"sin",
03993     L"sleep",
03994     L"socket",
03995     L"socketpair",
03996     L"sort",
03997     L"splice",
03998     L"split",
03999     L"sprintf",
04000     L"sqrt",
04001     L"srand",
04002     L"stat",
04003     L"study",
04004     L"sub",
04005     L"substr",
04006     L"symlink",
04007     L"syscall",
04008     L"sysopen",
04009     L"sysread",
04010     L"sysseek",
04011     L"system",
04012     L"syswrite",
04013     L"tell",
04014     L"telldir",
04015     L"tie",
04016     L"tied",
04017     L"time",
04018     L"times",
04019     L"tr",
04020     L"truncate",
04021     L"uc",
04022     L"ucfirst",
04023     L"umask",
04024     L"undef",
04025     L"unlink",
04026     L"unpack",
04027     L"untie",
04028     L"unshift",
04029     L"use",
04030     L"utime",
04031     L"values",
04032     L"vec",
04033     L"wait",
04034     L"waitpid",
04035     L"wantarray",
04036     L"warn",
04037     L"write"
04038 };
04039
04040 //Jul. 10, 2001 JEPRO   変数を第２強調キーワードとして分離した
04041 static const wchar_t*   ppszKeyWordsPERL2[] = {
04042     L"$ARGV",
04043     L"$_",
04044     L"$1",
04045     L"$2",
04046     L"$3",
04047     L"$4",
04048     L"$5",
04049     L"$6",
04050     L"$7",
04051     L"$8",
04052     L"$9",
04053     L"$0",
04054     L"$MATCH",
04055     L"$&",
04056     L"$PREMATCH",
04057     L"$`",
04058     L"$POSTMATCH",
04059     L"$'",
04060     L"$LAST_PAREN_MATCH",
04061     L"$+",
04062     L"$MULTILINE_MATCHING",
04063     L"$*",
04064     L"$INPUT_LINE_NUMBER",
04065     L"$NR",
04066     L"$.",
04067     L"$INPUT_RECORD_SEPARATOR",
04068     L"$RS",
04069     L"$/",
04070     L"$OUTPUT_AUTOFLUSH",
04071     L"$|",
04072     L"$OUTPUT_FIELD_SEPARATOR",
04073     L"$OFS",
04074     L"$,",
04075     L"$OUTPUT_RECORD_SEPARATOR",
04076     L"$ORS",
04077     L"$\\",
04078     L"$LIST_SEPARATOR",
04079     L"$\"",
04080     L"$SUBSCRIPT_SEPARATOR",
04081     L"$SUBSEP",
04082     L"$;",
04083     L"$OFMT",
04084     L"$#",
04085     L"$FORMAT_PAGE_NUMBER",
04086     L"$%",
04087     L"$FORMAT_LINES_PER_PAGE",
04088     L"$=",
04089     L"$FORMAT_LINES_LEFT",
04090     L"$-",
04091     L"$FORMAT_NAME",
04092     L"$~",
04093     L"$FORMAT_TOP_NAME",
04094     L"$^",
04095     L"$FORMAT_LINE_BREAK_CHARACTERS",
04096     L"$:",
04097     L"$FORMAT_FORMFEED",
04098     L"$^L",
04099     L"$ACCUMULATOR",
04100     L"$^A",
04101     L"$CHILD_ERROR",
04102     L"$?",
04103     L"$OS_ERROR",
04104     L"$ERRNO",
04105     L"$!",
04106     L"$EVAL_ERROR",
04107     L"$@",
04108     L"$PROCESS_ID",
04109     L"$PID",
04110     L"$$",
04111     L"$REAL_USER_ID",
04112     L"$UID",
04113     L"$<",
04114     L"$EFFECTIVE_USER_ID",
04115     L"$EUID",
04116     L"$>",
04117     L"$REAL_GROUP_ID",
04118     L"$GID",
04119     L"$(",
04120     L"$EFFECTIVE_GROUP_ID",
04121     L"$EGID",
04122     L"$)",
04123     L"$PROGRAM_NAME",
04124     L"$0",
04125     L"$[",
04126     L"$PERL_VERSION",
04127     L"$]",
04128     L"$DEBUGGING",
04129     L"$^D",
04130     L"$SYSTEM_FD_MAX",
04131     L"$^F",
04132     L"$INPLACE_EDIT",
04133     L"$^I",
04134     L"$PERLDB",
04135     L"$^P",
04136     L"$BASETIME",
04137     L"$^T",
04138     L"$WARNING",
04139     L"$^W",
04140     L"$EXECUTABLE_NAME",
04141     L"$^X",
04142     L"$ARGV",
04143     L"$ENV",
04144     L"$SIG"
04145 };
04146
04147 //Jul. 10, 2001 JEPRO 追加
04148 static const wchar_t*   ppszKeyWordsVB[] = {
04149     L"And",
04150     L"As",
04151     L"Attribute",
04152     L"Begin",
04153     L"BeginProperty",
04154     L"Boolean",
04155     L"ByVal",
04156     L"Byte",
04157     L"Call",
04158     L"Case",
04159     L"Const",
04160     L"Currency",
04161     L"Date",
04162     L"Declare",
04163     L"Dim",
04164     L"Do",
04165     L"Double",
04166     L"Each",
04167     L"Else",
04168     L"ElseIf",
04169     L"Empty",
04170     L"End",
04171     L"EndProperty",
04172     L"Error",
04173     L"Eqv",
04174     L"Exit",
04175     L"False",
04176     L"For",
04177     L"Friend",
04178     L"Function",
04179     L"Get",
04180     L"GoTo",
04181     L"If",
04182     L"Imp",
04183     L"Integer",
04184     L"Is",
04185     L"Let",
04186     L"Like",
04187     L"Long",
04188     L"Loop",
04189     L"Me",
04190     L"Mod",
04191     L"New",
04192     L"Next",
04193     L"Not",
04194     L"Null",
04195     L"Object",
04196     L"On",
04197     L"Option",
04198     L"Or",
04199     L"Private",
04200     L"Property",
04201     L"Public",
04202     L"RSet",
04203     L"ReDim",
04204     L"Rem",
04205     L"Resume",
04206     L"Select",
04207     L"Set",
04208     L"Single",
04209     L"Static",
04210     L"Step",
04211     L"Stop",
04212     L"String",
04213     L"Sub",
04214     L"Then",
04215     L"To",
04216     L"True",
04217     L"Type",
04218     L"Wend",
04219     L"While",
04220     L"With",
04221     L"Xor",
04222     L"#If",
04223     L"#Else",
04224     L"#End",
04225     L"#Const",
04226     L"AddressOf",
04227     L"Alias",
04228     L"Append",
04229     L"Array",
04230     L"ByRef",
04231     L"Explicit",
04232     L"Global",
04233     L"In",
04234     L"Lib",
04235     L"Nothing",
04236     L"Optional",
04237     L"Output",
04238     L"Terminate",
04239     L"Until",
04240     //=========================================================
04241     // 以下はVB.NET(VB7)での廃止が決定しているキーワードです
04242     //=========================================================
04243     L"DefBool",
04244     L"DefByte",
04245     L"DefCur",
04246     L"DefDate",
04247     L"DefDbl",
04248     L"DefInt",
04249     L"DefLng",
04250     L"DefObj",
04251     L"DefSng",
04252     L"DefStr",
04253     L"DefVar",
04254     L"LSet",
04255     L"GoSub",
04256     L"Return",
04257     L"Variant",
04258     //          "Option Base
04259     //          "As Any
04260     //=========================================================
04261     // 以下はVB.NET用キーワードです
04262     //=========================================================
04263     //BitAnd
04264     //BitOr
04265     //BitNot
04266     //BitXor
04267     //Delegate
04268     //Short
04269     //Structure
04270 };
04271
04272 //Jul. 10, 2001 JEPRO 追加
04273 static const wchar_t*   ppszKeyWordsVB2[] = {
04274     L"AppActivate",
04275     L"Beep",
04276     L"BeginTrans",
04277     L"ChDir",
04278     L"ChDrive",
04279     L"Close",
04280     L"CommitTrans",
04281     L"CompactDatabase",
04282     L"Date",
04283     L"DeleteSetting",
04284     L"Erase",
04285     L"FileCopy",
04286     L"FreeLocks",
04287     L"Input",
04288     L"Kill",
04289     L"Load",
04290     L"Lock",
04291     L"Mid",
04292     L"MidB",
04293     L"MkDir",
04294     L"Name",
04295     L"Open",
04296     L"Print",
04297     L"Put",
04298     L"Randomize",
04299     L"RegisterDatabase",
04300     L"RepairDatabase",
04301     L"Reset",
04302     L"RmDir",
04303     L"Rollback",
04304     L"SavePicture",
04305     L"SaveSetting",
04306     L"Seek",
04307     L"SendKeys",
04308     L"SetAttr",
04309     L"SetDataAccessOption",
04310     L"SetDefaultWorkspace",
04311     L"Time",
04312     L"Unload",
04313     L"Unlock",
04314     L"Width",
04315     L"Write",
04316     L"Array",
04317     L"Asc",
04318     L"AscB",
04319     L"Atn",
04320     L"CBool",
04321     L"CByte",
04322     L"CCur",
04323     L"CDate",
04324     L"CDbl",
04325     L"CInt",
04326     L"CLng",
04327     L"CSng",
04328     L"CStr",
04329     L"CVErr",
04330     L"CVar",
04331     L"Choose",
04332     L"Chr",
04333     L"ChrB",
04334     L"Command",
04335     L"Cos",
04336     L"CreateDatabase",
04337     L"CreateObject",
04338     L"CurDir",
04339     L"DDB",
04340     L"Date",
04341     L"DateAdd",
04342     L"DateDiff",
04343     L"DatePart",
04344     L"DateSerial",
04345     L"DateValue",
04346     L"Day",
04347     L"Dir",
04348     L"DoEvents",
04349     L"EOF",
04350     L"Environ",
04351     L"Error",
04352     L"Exp",
04353     L"FV",
04354     L"FileAttr",
04355     L"FileDateTime",
04356     L"FileLen",
04357     L"Fix",
04358     L"Format",
04359     L"FreeFile",
04360     L"GetAllSettings",
04361     L"GetAttr",
04362     L"GetObject",
04363     L"GetSetting",
04364     L"Hex",
04365     L"Hour",
04366     L"IIf",
04367     L"IMEStatus",
04368     L"IPmt",
04369     L"IRR",
04370     L"InStr",
04371     L"Input",
04372     L"Int",
04373     L"IsArray",
04374     L"IsDate",
04375     L"IsEmpty",
04376     L"IsError",
04377     L"IsMissing",
04378     L"IsNull",
04379     L"IsNumeric",
04380     L"IsObject",
04381     L"LBound",
04382     L"LCase",
04383     L"LOF",
04384     L"LTrim",
04385     L"Left",
04386     L"LeftB",
04387     L"Len",
04388     L"LoadPicture",
04389     L"Loc",
04390     L"Log",
04391     L"MIRR",
04392     L"Mid",
04393     L"MidB",
04394     L"Minute",
04395     L"Month",
04396     L"MsgBox",
04397     L"NPV",
04398     L"NPer",
04399     L"Now",
04400     L"Oct",
04401     L"OpenDatabase",
04402     L"PPmt",
04403     L"PV",
04404     L"Partition",
04405     L"Pmt",
04406     L"QBColor",
04407     L"RGB",
04408     L"RTrim",
04409     L"Rate",
04410     L"ReadProperty",
04411     L"Right",
04412     L"RightB",
04413     L"Rnd",
04414     L"SLN",
04415     L"SYD",
04416     L"Second",
04417     L"Seek",
04418     L"Sgn",
04419     L"Shell",
04420     L"Sin",
04421     L"Space",
04422     L"Spc",
04423     L"Sqr",
04424     L"Str",
04425     L"StrComp",
04426     L"StrConv",
04427     L"Switch",
04428     L"Tab",
04429     L"Tan",
04430     L"Time",
04431     L"TimeSerial",
04432     L"TimeValue",
04433     L"Timer",
04434     L"Trim",
04435     L"TypeName",
04436     L"UBound",
04437     L"UCase",
04438     L"Val",
04439     L"VarType",
04440     L"Weekday",
04441     L"Year",
04442     L"Hide",
04443     L"Line",
04444     L"Refresh",
04445     L"Show",
04446     //=========================================================
04447     // 以下はVB.NET(VB7)での廃止が決定しているキーワードです
04448     //=========================================================
04449     //$付き関数各種
04450     L"Dir$",
04451     L"LCase$",
04452     L"Left$",
04453     L"LeftB$",
04454     L"Mid$",
04455     L"MidB$",
04456     L"RightB$",
04457     L"Right$",
04458     L"Space$",
04459     L"Str$",
04460     L"String$",
04461     L"Trim$",
04462     L"UCase$",
04463     //VB5,6の隠し関数
04464     L"VarPtr",
04465     L"StrPtr",
04466     L"ObjPtr",
04467     L"VarPrtArray",
04468     L"VarPtrStringArray"
04469 };
04470
04471 //Jul. 10, 2001 JEPRO 追加
04472 static const wchar_t*   ppszKeyWordsRTF[] = {
04473     L"\\ansi",
04474     L"\\b",
04475     L"\\bin",
04476     L"\\box",
04477     L"\\brdrb",
04478     L"\\brdrbar",
04479     L"\\brdrdb",
04480     L"\\brdrdot",
04481     L"\\brdrl",
04482     L"\\brdrr",
04483     L"\\brdrs",
04484     L"\\brdrsh",
04485     L"\\brdrt",
04486     L"\\brdrth",
04487     L"\\cell",
04488     L"\\cellx",
04489     L"\\cf",
04490     L"\\chftn",
04491     L"\\clmgf",
04492     L"\\clmrg",
04493     L"\\colortbl",
04494     L"\\deff",
04495     L"\\f",
04496     L"\\fi",
04497     L"\\field",
04498     L"\\fldrslt",
04499     L"\\fonttbl",
04500     L"\\footnote",
04501     L"\\fs",
04502     L"\\i"
04503     L"\\intbl",
04504     L"\\keep",
04505     L"\\keepn",
04506     L"\\li",
04507     L"\\line",
04508     L"\\mac",
04509     L"\\page",
04510     L"\\par",
04511     L"\\pard",
04512     L"\\pc",
04513     L"\\pich",
04514     L"\\pichgoal",
04515     L"\\picscalex",
04516     L"\\picscaley",
04517     L"\\pict",
04518     L"\\picw",
04519     L"\\picwgoal",
04520     L"\\plain",
04521     L"\\qc",
04522     L"\\ql",
04523     L"\\qr",
04524     L"\\ri",
04525     L"\\row",
04526     L"\\rtf",
04527     L"\\sa",
04528     L"\\sb",
04529     L"\\scaps",
04530     L"\\sect",
04531     L"\\sl",
04532     L"\\strike",
04533     L"\\tab",
04534     L"\\tqc",
04535     L"\\tqr",
04536     L"\\trgaph",
04537     L"\\trleft",
04538     L"\\trowd",
04539     L"\\trqc",
04540     L"\\trql",
04541     L"\\tx",
04542     L"\\ul",
04543     L"\\uldb",
04544     L"\\v",
04545     L"\\wbitmap",
04546     L"\\wbmbitspixel",
04547     L"\\wbmplanes",
04548     L"\\wbmwidthbytes",
04549     L"\\wmetafile",
04550     L"bmc",
04551     L"bml",
04552     L"bmr",
04553     L"emc",
04554     L"eml",
04555     L"emr"
04556 };
04557
04565 void CShareData::InitKeyword(DLLSHAREDATA* pShareData)
04566 {
04567     /* 強調キーワードのテストデータ */
04568     pShareData->m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = 0;
04569
04570     int nSetCount = -1;
04571
04572 #define PopulateKeyword(name,case_sensitive,ary) \
04573     pShareData->m_CKeyWordSetMgr.AddKeyWordSet( (name), (case_sensitive) ); \
04574     pShareData->m_CKeyWordSetMgr.SetKeyWordArr( ++nSetCount, _countof(ary), (ary) );
04575
04576     PopulateKeyword( L"C/C++", TRUE, ppszKeyWordsCPP );         /* セット 0の追加 */
04577     PopulateKeyword( L"HTML", FALSE, ppszKeyWordsHTML );            /* セット 1の追加 */
04578     PopulateKeyword( L"PL/SQL", FALSE, ppszKeyWordsPLSQL );     /* セット 2の追加 */
04579     PopulateKeyword( L"COBOL", TRUE ,ppszKeyWordsCOBOL );       /* セット 3の追加 */
04580     PopulateKeyword( L"Java", TRUE, ppszKeyWordsJAVA );         /* セット 4の追加 */
04581     PopulateKeyword( L"CORBA IDL", TRUE, ppszKeyWordsCORBA_IDL );/* セット 5の追加 */
04582     PopulateKeyword( L"AWK", TRUE, ppszKeyWordsAWK );           /* セット 6の追加 */
04583     PopulateKeyword( L"MS-DOS batch", FALSE, ppszKeyWordsBAT ); /* セット 7の追加 */  //Oct. 31, 2000 JEPRO 'バッチファイル'→'batch' に短縮
04584     PopulateKeyword( L"Pascal", FALSE, ppszKeyWordsPASCAL );        /* セット 8の追加 */  //Nov. 5, 2000 JEPRO 大・小文字の区別を'しない'に変更
04585     PopulateKeyword( L"TeX", TRUE, ppszKeyWordsTEX );           /* セット 9の追加 */  //Sept. 2, 2000 jepro Tex →TeX に修正 Bool値は大・小文字の区別
04586     PopulateKeyword( L"TeX2", TRUE, ppszKeyWordsTEX2 );         /* セット10の追加 */  //Jan. 19, 2001 JEPRO 追加
04587     PopulateKeyword( L"Perl", TRUE, ppszKeyWordsPERL );         /* セット11の追加 */
04588     PopulateKeyword( L"Perl2", TRUE, ppszKeyWordsPERL2 );       /* セット12の追加 */  //Jul. 10, 2001 JEPRO Perlから変数を分離・独立
04589     PopulateKeyword( L"Visual Basic", FALSE, ppszKeyWordsVB );  /* セット13の追加 */  //Jul. 10, 2001 JEPRO
04590     PopulateKeyword( L"Visual Basic2", FALSE, ppszKeyWordsVB2 );    /* セット14の追加 */  //Jul. 10, 2001 JEPRO
04591     PopulateKeyword( L"リッチテキスト", TRUE, ppszKeyWordsRTF ); /* セット15の追加 */  //Jul. 10, 2001 JEPRO
04592
04593 #undef PopulateKeyword
04594 }
04595
04602 void CShareData::InitKeyAssign(DLLSHAREDATA* pShareData)
04603 {
04604     /********************/
04605     /* 共通設定の規定値 */
04606     /********************/
04607     struct KEYDATAINIT {
04608         short           nKeyCode;
04609         TCHAR*          pszKeyName;
04610         EFunctionCode   nFuncCode_0;
04611         EFunctionCode   nFuncCode_1;
04612         EFunctionCode   nFuncCode_2;
04613         EFunctionCode   nFuncCode_3;
04614         EFunctionCode   nFuncCode_4;
04615         EFunctionCode   nFuncCode_5;
04616         EFunctionCode   nFuncCode_6;
04617         EFunctionCode   nFuncCode_7;
04618     };
04619     static KEYDATAINIT  KeyDataInit[] = {
04620     //Sept. 1, 2000 Jepro note: key binding
04621     //Feb. 17, 2001 jepro note 2: 順番は2進で下位3ビット[Alt][Ctrl][Shift]の組合せの順(それに2を加えた値)
04622     //      0,      1,       2(000), 3(001),4(010), 5(011),     6(100), 7(101),     8(110),     9(111)
04623     //      keycode, keyname, なし, Shitf+, Ctrl+, Shift+Ctrl+, Alt+, Shit+Alt+, Ctrl+Alt+, Shift+Ctrl+Alt+
04624     //
04625         /* マウスボタン */
04626         { 0, _T("ダブルクリック"),       F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD,   F_SELECTWORD }, //Feb. 19, 2001 JEPRO Altと右クリックの組合せは効かないので右クリックメニューのキー割り当てをはずした
04627         { 0, _T("右クリック"),         F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_0,            F_0,            F_0,            F_0 },
04628         { 0, _T("中クリック"),         F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0 }, // novice 2004/10/11 マウス中ボタン対応
04629         { 0, _T("左サイドクリック"),    F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0 }, // novice 2004/10/10 マウスサイドボタン対応
04630         { 0, _T("右サイドクリック"),    F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0,            F_0 },
04631
04632         /* ファンクションキー */
04633     //  From Here Sept. 14, 2000 JEPRO
04634     //  VK_F1,_T("F1"), F_EXTHTMLHELP, F_0, F_EXTHELP1, 0, 0, 0, 0, 0,
04635     //  Shift+F1 に「コマンド一覧」, Alt+F1 に「ヘルプ目次」, Shift+Alt+F1 に「キーワード検索」を追加 //Nov. 25, 2000 JEPRO 殺していたのを修正・復活
04636     //Dec. 25, 2000 JEPRO Shift+Ctrl+F1 に「バージョン情報」を追加
04637     //  { VK_F1,_T("F1"), F_EXTHTMLHELP, F_MENU_ALLFUNC, F_EXTHELP1, F_0, F_0, F_0, F_0, F_0 },
04638         { VK_F1,_T("F1"), F_EXTHTMLHELP, F_MENU_ALLFUNC, F_EXTHELP1, F_ABOUT, F_HELP_CONTENTS, F_HELP_SEARCH, F_0, F_0 },
04639     //  To Here Sept. 14, 2000
04640     // From Here 2001.12.03 hor F2にブックマーク関連を割当
04641     //  { VK_F2,_T("F2"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04642         { VK_F2,_T("F2"), F_BOOKMARK_NEXT, F_BOOKMARK_PREV, F_BOOKMARK_SET, F_BOOKMARK_RESET, F_BOOKMARK_VIEW, F_0, F_0, F_0 },
04643     // To Here 2001.12.03 hor
04644         //Sept. 21, 2000 JEPRO  Ctrl+F3 に「検索マークのクリア」を追加
04645         //Aug. 12, 2002 ai  Ctrl+Shift+F3 に「検索開始位置へ戻る」を追加
04646         { VK_F3,_T("F3"), F_SEARCH_NEXT, F_SEARCH_PREV, F_SEARCH_CLEARMARK, F_JUMP_SRCHSTARTPOS, F_0, F_0, F_0, F_0 },
04647         //Oct. 7, 2000 JEPRO    Alt+F4 に「ウィンドウを閉じる」, Shift+Alt+F4 に「すべてのウィンドウを閉じる」を追加
04648         //  Ctrl+F4に割り当てられていた「縦横に分割」を「閉じて(無題)」に変更し Shift+Ctrl+F4 に「閉じて開く」を追加
04649         //Jan. 14, 2001 Ctrl+Alt+F4 に「テキストエディタの全終了」を追加
04650         //Jun. 2001「サクラエディタの全終了」に改称
04651         //2006.10.21 ryoji Alt+F4 には何も割り当てない（デフォルトのシステムコマンド「閉じる」が実行されるように）
04652         //2007.02.13 ryoji Shift+Ctrl+F4をF_WIN_CLOSEALLからF_EXITALLEDITORSに変更
04653         //2007.02.22 ryoji Ctrl+F4 への割り当てを削除（デフォルトのコマンドを実行）
04654         { VK_F4,_T("F4"), F_SPLIT_V, F_SPLIT_H, F_0, F_FILECLOSE_OPEN, F_0, F_EXITALLEDITORS, F_EXITALL, F_0 },
04655     //  From Here Sept. 20, 2000 JEPRO Ctrl+F5 に「外部コマンド実行」を追加  なおマクロ名はCMMAND からCOMMAND に変更済み
04656     //  { VK_F5,_T("F5"), F_PLSQL_COMPILE_ON_SQLPLUS, F_0, F_EXECCOMMAND_DIALOG, F_0, F_0, F_0, F_0, F_0 },
04657     //  To Here Sept. 20, 2000
04658         //Oct. 28, 2000 F5 は「再描画」に変更  //Jan. 14, 2001 Alt+F5 に「uudecodeして保存」, Ctrl+ Alt+F5 に「TAB→空白」を追加
04659         //  May 28, 2001 genta  S-C-A-F5にSPACE-to-TABを追加
04660         { VK_F5,_T("F5"), F_REDRAW, F_0, F_EXECCOMMAND_DIALOG, F_0, F_UUDECODE, F_0, F_TABTOSPACE, F_SPACETOTAB },
04661         //Jan. 14, 2001 JEPRO   Ctrl+F6 に「小文字」, Alt+F6 に「Base64デコードして保存」を追加
04662         { VK_F6,_T("F6"), F_BEGIN_SEL, F_BEGIN_BOX, F_TOLOWER, F_0, F_BASE64DECODE, F_0, F_0, F_0 },
04663         //Jan. 14, 2001 JEPRO   Ctrl+F7 に「大文字」, Alt+F7 に「UTF-7→SJISコード変換」, Shift+Alt+F7 に「SJIS→UTF-7コード変換」, Ctrl+Alt+F7 に「UTF-7で開き直す」を追加
04664         { VK_F7,_T("F7"), F_CUT, F_0, F_TOUPPER, F_0, F_CODECNV_UTF72SJIS, F_CODECNV_SJIS2UTF7, F_FILE_REOPEN_UTF7, F_0 },
04665         //Nov. 9, 2000 JEPRO    Shift+F8 に「CRLF改行でコピー」を追加
04666         //Jan. 14, 2001 JEPRO   Ctrl+F8 に「全角→半角」, Alt+F8 に「UTF-8→SJISコード変換」, Shift+Alt+F8 に「SJIS→UTF-8コード変換」, Ctrl+Alt+F8 に「UTF-8で開き直す」を追加
04667         { VK_F8,_T("F8"), F_COPY, F_COPY_CRLF, F_TOHANKAKU, F_0, F_CODECNV_UTF82SJIS, F_CODECNV_SJIS2UTF8, F_FILE_REOPEN_UTF8, F_0 },
04668         //Jan. 14, 2001 JEPRO   Ctrl+F9 に「半角＋全ひら→全角・カタカナ」, Alt+F9 に「Unicode→SJISコード変換」, Ctrl+Alt+F9 に「Unicodeで開き直す」を追加
04669         { VK_F9,_T("F9"), F_PASTE, F_PASTEBOX, F_TOZENKAKUKATA, F_0, F_CODECNV_UNICODE2SJIS, F_0, F_FILE_REOPEN_UNICODE, F_0 },
04670         //Oct. 28, 2000 JEPRO F10 に「SQL*Plusで実行」を追加(F5からの移動)
04671         //Jan. 14, 2001 JEPRO   Ctrl+F10 に「半角＋全カタ→全角・ひらがな」, Alt+F10 に「EUC→SJISコード変換」, Shift+Alt+F10 に「SJIS→EUCコード変換」, Ctrl+Alt+F10 に「EUCで開き直す」を追加
04672         { VK_F10,_T("F10"), F_PLSQL_COMPILE_ON_SQLPLUS, F_DUPLICATELINE, F_TOZENKAKUHIRA, F_0, F_CODECNV_EUC2SJIS, F_CODECNV_SJIS2EUC, F_FILE_REOPEN_EUC, F_0 },
04673         //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で開き直す」を追加
04674         { VK_F11,_T("F11"), F_OUTLINE, F_ACTIVATE_SQLPLUS, F_HANKATATOZENKAKUKATA, F_0, F_CODECNV_EMAIL, F_CODECNV_SJIS2JIS, F_FILE_REOPEN_JIS, F_0 },
04675         //Jan. 14, 2001 JEPRO   Ctrl+F12 に「半角カタカナ→全角ひらがな」, Alt+F12 に「自動判別→SJISコード変換」, Ctrl+Alt+F11 に「SJISで開き直す」を追加
04676         { VK_F12,_T("F12"), F_TAGJUMP, F_TAGJUMPBACK, F_HANKATATOZENKAKUHIRA, F_0, F_CODECNV_AUTO2SJIS, F_0, F_FILE_REOPEN_SJIS, F_0 },
04677         { VK_F13,_T("F13"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04678         { VK_F14,_T("F14"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04679         { VK_F15,_T("F15"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04680         { VK_F16,_T("F16"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04681         { VK_F17,_T("F17"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04682         { VK_F18,_T("F18"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04683         { VK_F19,_T("F19"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04684         { VK_F20,_T("F20"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04685         { VK_F21,_T("F21"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04686         { VK_F22,_T("F22"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04687         { VK_F23,_T("F23"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04688         { VK_F24,_T("F24"), F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04689         /* 特殊キー */
04690         { VK_TAB,_T("Tab"),F_INDENT_TAB, F_UNINDENT_TAB, F_NEXTWINDOW, F_PREVWINDOW, F_0, F_0, F_0, F_0 },
04691         //Sept. 1, 2000 JEPRO   Alt+Enter に「ファイルのプロパティ」を追加  //Oct. 15, 2000 JEPRO Ctrl+Enter に「ファイル内容比較」を追加
04692             { VK_RETURN,_T("Enter"),F_0, F_0, F_COMPARE, F_0, F_PROPERTY_FILE, F_0, F_0, F_0 },
04693         { VK_ESCAPE,_T("Esc"),F_CANCEL_MODE, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04694 //          { VK_BACK,_T("BackSpace"),F_DELETE_BACK, F_0, F_WordDeleteToStart, F_0, F_0, F_0, F_0, F_0 },
04695         //Oct. 7, 2000 JEPRO 長いので名称を簡略形に変更(BackSpace→BkSp)
04696         { VK_BACK,_T("BkSp"),F_DELETE_BACK, F_0, F_WordDeleteToStart, F_0, F_0, F_0, F_0, F_0 },
04697 //          { VK_INSERT,_T("Insert"),F_CHGMOD_INS, F_PASTE, F_COPY, F_0, F_0, F_0, F_0, F_0 },
04698         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(Insert→Ins)
04699         { VK_INSERT,_T("Ins"),F_CHGMOD_INS, F_PASTE, F_COPY, F_0, F_0, F_0, F_0, F_0 },
04700 //          { VK_DELETE,_T("Delete"),F_DELETE, F_0, F_WordDeleteToEnd, F_0, F_0, F_0, F_0, F_0 },
04701         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(Delete→Del)
04702         //Jun. 26, 2001 JEPRO   Shift+Del に「切り取り」を追加
04703         { VK_DELETE,_T("Del"),F_DELETE, F_CUT, F_WordDeleteToEnd, F_0, F_0, F_0, F_0, F_0 },
04704         { VK_HOME,_T("Home"),F_GOLINETOP, F_GOLINETOP_SEL, F_GOFILETOP, F_GOFILETOP_SEL, F_0, F_0, F_0, F_0 },
04705         { VK_END,_T("End(Help)"),F_GOLINEEND, F_GOLINEEND_SEL, F_GOFILEEND, F_GOFILEEND_SEL, F_0, F_0, F_0, F_0 },
04706         { VK_LEFT,_T("←"),F_LEFT, F_LEFT_SEL/*F_GOLINETOP*/, F_WORDLEFT, F_WORDLEFT_SEL, F_BEGIN_BOX, F_0, F_0, F_0 },
04707         //Oct. 7, 2000 JEPRO    Shift+Ctrl+Alt+↑に「縦方向に最大化」を追加
04708 //          { VK_UP,_T("↑"),F_UP, F_UP_SEL, F_UP2, F_UP2_SEL, F_BEGIN_BOX, F_0, F_0, F_MAXIMIZE_V },
04709         //Jun. 27, 2001 JEPRO
04710         //  Ctrl+↑に割り当てられていた「カーソル上移動(２行ごと)」を「テキストを１行下へスクロール」に変更
04711         { VK_UP,_T("↑"),F_UP, F_UP_SEL, F_WndScrollDown, F_UP2_SEL, F_BEGIN_BOX, F_0, F_0, F_MAXIMIZE_V },
04712         //2001.02.10 by MIK Shift+Ctrl+Alt+→に「横方向に最大化」を追加
04713         { VK_RIGHT,_T("→"),F_RIGHT, F_RIGHT_SEL/*F_GOLINEEND*/, F_WORDRIGHT, F_WORDRIGHT_SEL, F_BEGIN_BOX, F_0, F_0, F_MAXIMIZE_H },
04714         //Sept. 14, 2000 JEPRO
04715         //  Ctrl+↓に割り当てられていた「右クリックメニュー」を「カーソル下移動(２行ごと)」に変更
04716         //  それに付随してさらに「右クリックメニュー」をCtrl＋Alt＋↓に変更
04717 //          { VK_DOWN,_T("↓"),F_DOWN, F_DOWN_SEL, F_DOWN2, F_DOWN2_SEL, F_BEGIN_BOX, F_0, F_MENU_RBUTTON, F_MINIMIZE_ALL },
04718         //Jun. 27, 2001 JEPRO
04719         //  Ctrl+↓に割り当てられていた「カーソル下移動(２行ごと)」を「テキストを１行上へスクロール」に変更
04720         { VK_DOWN,_T("↓"),F_DOWN, F_DOWN_SEL, F_WndScrollUp, F_DOWN2_SEL, F_BEGIN_BOX, F_0, F_MENU_RBUTTON, F_MINIMIZE_ALL },
04721 //          { VK_PRIOR,_T("RollDown(PageUp)"),F_ROLLDOWN, F_ROLLDOWN_SEL, F_0, F_0, F_0, F_0, F_0, F_0 },
04722 //          { VK_NEXT,_T("RollUp(PageDown)"),F_ROLLUP, F_ROLLUP_SEL, F_0, F_0, F_0, F_0, F_0, F_0 },
04723         //Oct. 15, 2000 JEPRO Ctrl+PgUp, Shift+Ctrl+PgDn にそれぞれ「１ページダウン」, 「(選択)１ページダウン」を追加
04724         //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に交換(RollUp→PgDn) //Oct. 10, 2000 JEPRO 名称変更
04725         //2001.12.03 hor 1Page/HalfPage 入替え
04726         { VK_NEXT,_T("PgDn(RollUp)"), F_1PageDown, F_1PageDown_Sel,F_HalfPageDown, F_HalfPageDown_Sel, F_0, F_0, F_0, F_0 },
04727         //Oct. 15, 2000 JEPRO Ctrl+PgUp, Shift+Ctrl+PgDn にそれぞれ「１ページアップ」, 「(選択)１ページアップ」を追加
04728         //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に交換(RollDown→PgUp) //Oct. 10, 2000 JEPRO 名称変更
04729         //2001.12.03 hor 1Page/HalfPage 入替え
04730         { VK_PRIOR,_T("PgUp(RollDn)"), F_1PageUp, F_1PageUp_Sel,F_HalfPageUp, F_HalfPageUp_Sel, F_0, F_0, F_0, F_0 },
04731 //          { VK_SPACE,_T("SpaceBar"),F_INDENT_SPACE, F_UNINDENT_SPACE, F_HOKAN, F_0, F_0, F_0, F_0, F_0 },
04732         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(SpaceBar→Space)
04733         { VK_SPACE,_T("Space"),F_INDENT_SPACE, F_UNINDENT_SPACE, F_HOKAN, F_0, F_0, F_0, F_0, F_0 },
04734         /* 数字 */
04735         //Oct. 7, 2000 JEPRO    Ctrl+0 を「タイプ別設定一覧」→「未定義」に変更
04736         //Jan. 13, 2001 JEPRO   Alt+0 に「カスタムメニュー10」, Shift+Alt+0 に「カスタムメニュー20」を追加
04737         { '0', _T("0"),F_0, F_0, F_0, F_0, F_CUSTMENU_10, F_CUSTMENU_20, F_0, F_0 },
04738         //Oct. 7, 2000 JEPRO    Ctrl+1 を「タイプ別設定」→「ツールバーの表示」に変更
04739         //Jan. 13, 2001 JEPRO   Alt+1 に「カスタムメニュー1」, Shift+Alt+1 に「カスタムメニュー11」を追加
04740         //Jan. 19, 2001 JEPRO   Shift+Ctrl+1 に「カスタムメニュー21」を追加
04741         { '1', _T("1"),F_0, F_0, F_SHOWTOOLBAR, F_CUSTMENU_21, F_CUSTMENU_1, F_CUSTMENU_11, F_0, F_0 },
04742         //Oct. 7, 2000 JEPRO    Ctrl+2 を「共通設定」→「ファンクションキーの表示」に変更
04743         //Jan. 13, 2001 JEPRO   Alt+2 を「アウトプット」→「カスタムメニュー2」に変更し「アウトプット」は Alt+O に移動, Shift+Alt+2 に「カスタムメニュー12」を追加
04744         //Jan. 19, 2001 JEPRO   Shift+Ctrl+2 に「カスタムメニュー22」を追加
04745         { '2', _T("2"),F_0, F_0, F_SHOWFUNCKEY, F_CUSTMENU_22, F_CUSTMENU_2/*F_WIN_OUTPUT*/, F_CUSTMENU_12, F_0, F_0 },
04746         //Oct. 7, 2000 JEPRO    Ctrl+3 を「フォント設定」→「ステータスバーの表示」に変更
04747         //Jan. 13, 2001 JEPRO   Alt+3 に「カスタムメニュー3」, Shift+Alt+3 に「カスタムメニュー13」を追加
04748         //Jan. 19, 2001 JEPRO   Shift+Ctrl+3 に「カスタムメニュー23」を追加
04749         { '3', _T("3"),F_0, F_0, F_SHOWSTATUSBAR, F_CUSTMENU_23, F_CUSTMENU_3, F_CUSTMENU_13, F_0, F_0 },
04750         //Oct. 7, 2000 JEPRO    Ctrl+4 を「ツールバーの表示」→「タイプ別設定一覧」に変更
04751         //Jan. 13, 2001 JEPRO   Alt+4 に「カスタムメニュー4」, Shift+Alt+4 に「カスタムメニュー14」を追加
04752         //Jan. 19, 2001 JEPRO   Shift+Ctrl+4 に「カスタムメニュー24」を追加
04753         { '4', _T("4"),F_0, F_0, F_TYPE_LIST, F_CUSTMENU_24, F_CUSTMENU_4, F_CUSTMENU_14, F_0, F_0 },
04754         //Oct. 7, 2000 JEPRO    Ctrl+5 を「ファンクションキーの表示」→「タイプ別設定」に変更
04755         //Jan. 13, 2001 JEPRO   Alt+5 に「カスタムメニュー5」, Shift+Alt+5 に「カスタムメニュー15」を追加
04756         { '5', _T("5"),F_0, F_0, F_OPTION_TYPE, F_0, F_CUSTMENU_5, F_CUSTMENU_15, F_0, F_0 },
04757         //Oct. 7, 2000 JEPRO    Ctrl+6 を「ステータスバーの表示」→「共通設定」に変更
04758         //Jan. 13, 2001 JEPRO   Alt+6 に「カスタムメニュー6」, Shift+Alt+6 に「カスタムメニュー16」を追加
04759         { '6', _T("6"),F_0, F_0, F_OPTION, F_0, F_CUSTMENU_6, F_CUSTMENU_16, F_0, F_0 },
04760         //Oct. 7, 2000 JEPRO    Ctrl+7 に「フォント設定」を追加
04761         //Jan. 13, 2001 JEPRO   Alt+7 に「カスタムメニュー7」, Shift+Alt+7 に「カスタムメニュー17」を追加
04762         { '7', _T("7"),F_0, F_0, F_FONT, F_0, F_CUSTMENU_7, F_CUSTMENU_17, F_0, F_0 },
04763         //Jan. 13, 2001 JEPRO   Alt+8 に「カスタムメニュー8」, Shift+Alt+8 に「カスタムメニュー18」を追加
04764         { '8', _T("8"),F_0, F_0, F_0, F_0, F_CUSTMENU_8, F_CUSTMENU_18, F_0, F_0 },
04765         //Jan. 13, 2001 JEPRO   Alt+9 に「カスタムメニュー9」, Shift+Alt+9 に「カスタムメニュー19」を追加
04766         { '9', _T("9"),F_0, F_0, F_0, F_0, F_CUSTMENU_9, F_CUSTMENU_19, F_0, F_0 },
04767         /* アルファベット */
04768         //2001.12.06 hor Alt+A を「SORT_ASC」に割当
04769         { 'A', _T("A"),F_0, F_0, F_SELECTALL, F_0, F_SORT_ASC, F_0, F_0, F_0 },
04770         //Jan. 13, 2001 JEPRO   Ctrl+B に「ブラウズ」を追加
04771         { 'B', _T("B"),F_0, F_0, F_BROWSE, F_0, F_0, F_0, F_0, F_0 },
04772         //Jan. 16, 2001 JEPRO   SHift+Ctrl+C に「.hと同名の.c(なければ.cpp)を開く」を追加
04773         //Feb. 07, 2001 JEPRO   SHift+Ctrl+C を「.hと同名の.c(なければ.cpp)を開く」→「同名のC/C++ヘッダ(ソース)を開く」に変更
04774         { 'C', _T("C"),F_0, F_0, F_COPY, F_OPEN_HfromtoC, F_0, F_0, F_0, F_0 },
04775         //Jan. 16, 2001 JEPRO   Ctrl+D に「単語切り取り」, Shift+Ctrl+D に「単語削除」を追加
04776         //2001.12.06 hor Alt+D を「SORT_DESC」に割当
04777         { 'D', _T("D"),F_0, F_0, F_WordCut, F_WordDelete, F_SORT_DESC, F_0, F_0, F_0 },
04778         //Oct. 7, 2000 JEPRO    Ctrl+Alt+E に「重ねて表示」を追加
04779         //Jan. 16, 2001 JEPRO   Ctrl+E に「行切り取り(折り返し単位)」, Shift+Ctrl+E に「行削除(折り返し単位)」を追加
04780         { 'E', _T("E"),F_0, F_0, F_CUT_LINE, F_DELETE_LINE, F_0, F_0, F_CASCADE, F_0 },
04781         { 'F', _T("F"),F_0, F_0, F_SEARCH_DIALOG, F_0, F_0, F_0, F_0, F_0 },
04782         { 'G', _T("G"),F_0, F_0, F_GREP_DIALOG, F_0, F_0, F_0, F_0, F_0 },
04783         //Oct. 07, 2000 JEPRO   Ctrl+Alt+H に「上下に並べて表示」を追加
04784         //Jan. 16, 2001 JEPRO   Ctrl+H を「カーソル前を削除」→「カーソル行をウィンドウ中央へ」に変更し Shift+Ctrl+H に「.cまたは.cppと同名の.hを開く」を追加
04785         //Feb. 07, 2001 JEPRO   SHift+Ctrl+H を「.cまたは.cppと同名の.hを開く」→「同名のC/C++ヘッダ(ソース)を開く」に変更
04786         { 'H', _T("H"),F_0, F_0, F_CURLINECENTER, F_OPEN_HfromtoC, F_0, F_0, F_TILE_V, F_0 },
04787         //Jan. 21, 2001 JEPRO   Ctrl+I に「行の二重化」を追加
04788         { 'I', _T("I"),F_0, F_0, F_DUPLICATELINE, F_0, F_0, F_0, F_0, F_0 },
04789         { 'J', _T("J"),F_0, F_0, F_JUMP_DIALOG, F_0, F_0, F_0, F_0, F_0 },
04790         //Jan. 16, 2001 JEPRO   Ctrl+K に「行末まで切り取り(改行単位)」, Shift+Ctrl+E に「行末まで削除(改行単位)」を追加
04791         { 'K', _T("K"),F_0, F_0, F_LineCutToEnd, F_LineDeleteToEnd, F_0, F_0, F_0, F_0 },
04792         //Jan. 14, 2001 JEPRO   Ctrl+Alt+L に「小文字」, Shift+Ctrl+Alt+L に「大文字」を追加
04793         //Jan. 16, 2001 Ctrl+L を「カーソル行をウィンドウ中央へ」→「キーマクロの読み込み」に変更し「カーソル行をウィンドウ中央へ」は Ctrl+H に移動
04794         //2001.12.03 hor Alt+L を「LTRIM」に割当
04795         { 'L', _T("L"),F_0, F_0, F_LOADKEYMACRO, F_EXECKEYMACRO, F_LTRIM, F_0, F_TOLOWER, F_TOUPPER },
04796         //Jan. 16, 2001 JEPRO   Ctrl+M に「キーマクロの保存」を追加
04797         //2001.12.06 hor Alt+M を「MERGE」に割当
04798         { 'M', _T("M"),F_0, F_0, F_SAVEKEYMACRO, F_RECKEYMACRO, F_MERGE, F_0, F_0, F_0 },
04799         //Oct. 20, 2000 JEPRO   Alt+N に「移動履歴: 次へ」を追加
04800         { 'N', _T("N"),F_0, F_0, F_FILENEW, F_0, F_JUMPHIST_NEXT, F_0, F_0, F_0 },
04801         //Jan. 13, 2001 JEPRO   Alt+O に「アウトプット」を追加
04802         { 'O', _T("O"),F_0, F_0, F_FILEOPEN, F_0, F_0, F_0, F_0, F_0 },
04803         //Oct. 7, 2000 JEPRO    Ctrl+P に「印刷」, Shift+Ctrl+P に「印刷プレビュー」, Ctrl+Alt+P に「ページ設定」を追加
04804         //Oct. 20, 2000 JEPRO   Alt+P に「移動履歴: 前へ」を追加
04805         { 'P', _T("P"),F_0, F_0, F_PRINT, F_PRINT_PREVIEW, F_JUMPHIST_PREV, F_0, F_PRINT_PAGESETUP, F_0 },
04806         //Jan. 24, 2001 JEPRO   Ctrl+Q に「キー割り当て一覧をコピー」を追加
04807         { 'Q', _T("Q"),F_0, F_0, F_CREATEKEYBINDLIST, F_0, F_0, F_0, F_0, F_0 },
04808         //2001.12.03 hor Alt+R を「RTRIM」に割当
04809         { 'R', _T("R"),F_0, F_0, F_REPLACE_DIALOG, F_0, F_RTRIM, F_0, F_0, F_0 },
04810         //Oct. 7, 2000 JEPRO    Shift+Ctrl+S に「名前を付けて保存」を追加
04811         { 'S', _T("S"),F_0, F_0, F_FILESAVE, F_FILESAVEAS_DIALOG, F_0, F_0, F_0, F_0 },
04812         //Oct. 7, 2000 JEPRO    Ctrl+Alt+T に「左右に並べて表示」を追加
04813         //Jan. 21, 2001 JEPRO   Ctrl+T に「タグジャンプ」, Shift+Ctrl+T に「タグジャンプバック」を追加
04814         { 'T', _T("T"),F_0, F_0, F_TAGJUMP, F_TAGJUMPBACK, F_0, F_0, F_TILE_H, F_0 },
04815         //Oct. 7, 2000 JEPRO    Ctrl+Alt+U に「現在のウィンドウ幅で折り返し」を追加
04816         //Jan. 16, 2001 JEPRO   Ctrl+U に「行頭まで切り取り(改行単位)」, Shift+Ctrl+U に「行頭まで削除(改行単位)」を追加
04817         { 'U', _T("U"),F_0, F_0, F_LineCutToStart, F_LineDeleteToStart, F_0, F_0, F_WRAPWINDOWWIDTH, F_0 },
04818         { 'V', _T("V"),F_0, F_0, F_PASTE, F_0, F_0, F_0, F_0, F_0 },
04819         { 'W', _T("W"),F_0, F_0, F_SELECTWORD, F_0, F_0, F_0, F_0, F_0 },
04820         //Jan. 13, 2001 JEPRO   Alt+X を「カスタムメニュー1」→「未定義」に変更し「カスタムメニュー1」は Alt+1 に移動
04821         { 'X', _T("X"),F_0, F_0, F_CUT, F_0, F_0, F_0, F_0, F_0 },
04822         { 'Y', _T("Y"),F_0, F_0, F_REDO, F_0, F_0, F_0, F_0, F_0 },
04823         { 'Z', _T("Z"),F_0, F_0, F_UNDO, F_0, F_0, F_0, F_0, F_0 },
04824         /* 記号 */
04825         //Oct. 7, 2000 JEPRO    Shift+Ctrl+- に「上下に分割」を追加
04826         // 2002.02.08 hor Ctrl+-にファイル名をコピーを追加
04827         { 0x00bd, _T("-"),F_0, F_0, F_COPYFNAME, F_SPLIT_V, F_0, F_0, F_0, F_0 },
04828         { 0x00de, _T("^(英語')"),F_0, F_0, F_COPYTAG, F_0, F_0, F_0, F_0, F_0 },
04829         //Oct. 7, 2000 JEPRO    Shift+Ctrl+\ に「左右に分割」を追加
04830         { 0x00dc, _T("\\"),F_0, F_0, F_COPYPATH, F_SPLIT_H, F_0, F_0, F_0, F_0 },
04831         //Sept. 20, 2000 JEPRO  Ctrl+@ に「ファイル内容比較」を追加  //Oct. 15, 2000 JEPRO「選択範囲内全行コピー」に変更
04832         { 0x00c0, _T("@(英語`)"),F_0, F_0, F_COPYLINES, F_0, F_0, F_0, F_0, F_0 },
04833         //  Aug. 16, 2000 genta
04834         //  反対向きの括弧にも括弧検索を追加
04835         { 0x00db, _T("["),F_0, F_0, F_BRACKETPAIR, F_0, F_0, F_0, F_0, F_0 },
04836         //Oct. 7, 2000 JEPRO    Shift+Ctrl+; に「縦横に分割」を追加  //Jan. 16, 2001 Alt+; に「日付挿入」を追加
04837         { 0x00bb, _T(";"),F_0, F_0, F_0, F_SPLIT_VH, F_INS_DATE, F_0, F_0, F_0 },
04838         //Sept. 14, 2000 JEPRO  Ctrl+: に「選択範囲内全行行番号付きコピー」を追加  //Jan. 16, 2001 Alt+: に「時刻挿入」を追加
04839         { 0x00ba, _T(":"),F_0, F_0, F_COPYLINESWITHLINENUMBER, F_0, F_INS_TIME, F_0, F_0, F_0 },
04840         { 0x00dd, _T("]"),F_0, F_0, F_BRACKETPAIR, F_0, F_0, F_0, F_0, F_0 },
04841         { 0x00bc, _T(","),F_0, F_0, F_0, F_0, F_0, F_0, F_0, F_0 },
04842         //Sept. 14, 2000 JEPRO  Ctrl+. に「選択範囲内全行引用符付きコピー」を追加
04843         { 0x00be, _T("."),F_0, F_0, F_COPYLINESASPASSAGE, F_0, F_0, F_0, F_0, F_0 },
04844         { 0x00bf, _T("/"),F_0, F_0, F_HOKAN, F_0, F_0, F_0, F_0, F_0 },
04845         //  Nov. 15, 2000 genta PC/ATキーボードに合わせてキーコードを変更
04846         //  PC98救済のため，従来のキーコードに対応する項目を追加．
04847         { 0x00e2, _T("_"),F_0, F_0, F_UNDO, F_0, F_0, F_0, F_0, F_0 },
04848         { 0x00df, _T("_(PC-98)"),F_0, F_0, F_UNDO, F_0, F_0, F_0, F_0, F_0 },
04849         //Oct. 7, 2000 JEPRO    長くて表示しきれない所がでてきてしまうのでアプリケーションキー→アプリキーに短縮
04850         { VK_APPS, _T("アプリキー"),F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON }
04851     };
04852     int nKeyDataInitNum = _countof( KeyDataInit );
04853     for( int i = 0; i < nKeyDataInitNum; ++i ){
04854         SetKeyNameArrVal(
04855             pShareData,
04856             i,
04857             KeyDataInit[i].nKeyCode,
04858             KeyDataInit[i].pszKeyName,
04859             KeyDataInit[i].nFuncCode_0,
04860             KeyDataInit[i].nFuncCode_1,
04861             KeyDataInit[i].nFuncCode_2,
04862             KeyDataInit[i].nFuncCode_3,
04863             KeyDataInit[i].nFuncCode_4,
04864             KeyDataInit[i].nFuncCode_5,
04865             KeyDataInit[i].nFuncCode_6,
04866             KeyDataInit[i].nFuncCode_7
04867          );
04868     }
04869     pShareData->m_nKeyNameArrNum = nKeyDataInitNum;
04870 }
04871
04880 void CShareData::InitToolButtons(DLLSHAREDATA* pShareData)
04881 {
04882         /* ツールバーボタン構造体 */
04883 //Sept. 16, 2000 JEPRO
04884 //  CShareData_new2.cppでできるだけ系ごとに集まるようにアイコンの順番を大幅に入れ替えたのに伴い以下の初期設定値を変更
04885     static const int DEFAULT_TOOL_BUTTONS[] = {
04886         1,  //新規作成
04887         25,     //ファイルを開く(DropDown)
04888         3,      //上書き保存       //Sept. 16, 2000 JEPRO 3→11に変更  //Oct. 25, 2000 11→3
04889         4,      //名前を付けて保存  //Sept. 19, 2000 JEPRO 追加
04890         0,
04891
04892         33, //元に戻す(Undo)    //Sept. 16, 2000 JEPRO 7→19に変更  //Oct. 25, 2000 19→33
04893         34, //やり直し(Redo)    //Sept. 16, 2000 JEPRO 8→20に変更  //Oct. 25, 2000 20→34
04894         0,
04895
04896         87, //移動履歴: 前へ  //Dec. 24, 2000 JEPRO 追加
04897         88, //移動履歴: 次へ  //Dec. 24, 2000 JEPRO 追加
04898         0,
04899
04900         225,    //検索        //Sept. 16, 2000 JEPRO 9→22に変更  //Oct. 25, 2000 22→225
04901         226,    //次を検索  //Sept. 16, 2000 JEPRO 16→23に変更 //Oct. 25, 2000 23→226
04902         227,    //前を検索  //Sept. 16, 2000 JEPRO 17→24に変更 //Oct. 25, 2000 24→227
04903         228,    //置換        // Oct. 7, 2000 JEPRO 追加
04904         229,    //検索マークのクリア   //Sept. 16, 2000 JEPRO 41→25に変更(Oct. 7, 2000 25→26)   //Oct. 25, 2000 25→229
04905         230,    //Grep      //Sept. 16, 2000 JEPRO 14→31に変更 //Oct. 25, 2000 31→230
04906         232,    //アウトライン解析  //Dec. 24, 2000 JEPRO 追加
04907         0,
04908
04909         264,    //タイプ別設定一覧  //Sept. 16, 2000 JEPRO 追加
04910         265,    //タイプ別設定        //Sept. 16, 2000 JEPRO 18→36に変更 //Oct. 25, 2000 36→265
04911         266,    //共通設定          //Sept. 16, 2000 JEPRO 10→37に変更 説明を「設定プロパティシート」から変更   //Oct. 25, 2000 37→266
04912         0,      //Oct. 8, 2000 jepro 次行のために追加
04913         346,    //コマンド一覧    //Oct. 8, 2000 JEPRO 追加
04914     };
04915
04916     //  ツールバーアイコン数の最大値を超えないためのおまじない
04917     //  最大値を超えて定義しようとするとここでコンパイルエラーになります．
04918     char dummy[ _countof(DEFAULT_TOOL_BUTTONS) < MAX_TOOLBARBUTTONS ? 1:0 ];
04919     dummy[0]=0;
04920
04921     memcpy_raw(
04922         pShareData->m_Common.m_sToolBar.m_nToolBarButtonIdxArr,
04923         DEFAULT_TOOL_BUTTONS,
04924         sizeof(DEFAULT_TOOL_BUTTONS)
04925     );
04926
04927     /* ツールバーボタンの数 */
04928     pShareData->m_Common.m_sToolBar.m_nToolBarButtonNum = _countof(DEFAULT_TOOL_BUTTONS);
04929     pShareData->m_Common.m_sToolBar.m_bToolBarIsFlat = !IsVisualStyle();            /* フラットツールバーにする／しない */  // 2006.06.23 ryoji ビジュアルスタイルでは初期値をノーマルにする
04930
04931 }
04932
04939 void CShareData::InitTypeConfig(DLLSHAREDATA* pShareData)
04940 {
04941
04942 //キーワード：デフォルトカラー設定
04943 /************************/
04944 /* タイプ別設定の規定値 */
04945 /************************/
04946     int nIdx = 0;
04947     int i;
04948     pShareData->m_Types[nIdx].m_nMaxLineKetas = CLayoutInt(MAXLINEKETAS);   /* 折り返し桁数 */
04949     pShareData->m_Types[nIdx].m_nColmSpace = 0;                 /* 文字と文字の隙間 */
04950     pShareData->m_Types[nIdx].m_nLineSpace = 1;                 /* 行間のすきま */
04951     pShareData->m_Types[nIdx].m_nTabSpace = CLayoutInt(4);                  /* TABの文字数 */
04952     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
04953         pShareData->m_Types[nIdx].m_nKeyWordSetIdx[i] = -1;
04954     }
04955 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
04956     wcscpy( pShareData->m_Types[nIdx].m_szTabViewString, _EDITL("^       ") );  /* TAB表示文字列 */
04957 //#endif
04958     pShareData->m_Types[nIdx].m_bTabArrow = FALSE;              /* タブ矢印表示 */    // 2001.12.03 hor
04959     pShareData->m_Types[nIdx].m_bInsSpace = FALSE;              /* スペースの挿入 */ // 2001.12.03 hor
04960
04961     //@@@ 2002.09.22 YAZAKI 以下、m_cLineCommentとm_cBlockCommentを使うように修正
04962     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(0, L"", -1);    /* 行コメントデリミタ */
04963     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(1, L"", -1);    /* 行コメントデリミタ2 */
04964     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(2, L"", -1);    /* 行コメントデリミタ3 */  //Jun. 01, 2001 JEPRO 追加
04965     pShareData->m_Types[nIdx].m_cBlockComment.CopyTo(0, L"", L"");  /* ブロックコメントデリミタ */
04966     pShareData->m_Types[nIdx].m_cBlockComment.CopyTo(1, L"", L"");  /* ブロックコメントデリミタ2 */
04967
04968     pShareData->m_Types[nIdx].m_nStringType = 0;                    /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
04969     wcscpy( pShareData->m_Types[nIdx].m_szIndentChars, L"" );       /* その他のインデント対象文字 */
04970
04971     pShareData->m_Types[nIdx].m_nColorInfoArrNum = COLORIDX_LAST;
04972
04973     // 2001/06/14 Start by asa-o
04974     _tcscpy( pShareData->m_Types[nIdx].m_szHokanFile, _T("") );     /* 入力補完 単語ファイル */
04975     // 2001/06/14 End
04976
04977     // 2001/06/19 asa-o
04978     pShareData->m_Types[nIdx].m_bHokanLoHiCase = FALSE;         /* 入力補完機能：英大文字小文字を同一視する */
04979
04980     //  2003.06.23 Moca ファイル内からの入力補完機能
04981     pShareData->m_Types[nIdx].m_bUseHokanByFile = FALSE;
04983     //@@@2002.2.4 YAZAKI
04984     pShareData->m_Types[nIdx].m_szExtHelp[0] = L'\0';
04985     pShareData->m_Types[nIdx].m_szExtHtmlHelp[0] = L'\0';
04986     pShareData->m_Types[nIdx].m_bHtmlHelpIsSingle = TRUE;
04987
04988     pShareData->m_Types[nIdx].m_bAutoIndent = TRUE;         /* オートインデント */
04989     pShareData->m_Types[nIdx].m_bAutoIndent_ZENSPACE = TRUE;    /* 日本語空白もインデント */
04990     pShareData->m_Types[nIdx].m_bRTrimPrevLine = FALSE;         /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
04991
04992     pShareData->m_Types[nIdx].m_nIndentLayout = 0;  /* 折り返しは2行目以降を字下げ表示 */
04993
04994     static ColorInfoIni ColorInfo_DEFAULT[] = {
04995     //  Nov. 9, 2000 Jepro note: color setting (詳細は CshareData.h を参照のこと)
04996     //  0,                          1(Disp),     2(FatFont),3(UnderLIne) , 4(colTEXT),  5(colBACK),
04997     //  szName(項目名),              色分け／表示, 太字,     下線,     文字色,      背景色,
04998     //
04999     //Oct. 8, 2000 JEPRO 背景色を真っ白RGB(255,255,255)→(255,251,240)に変更(眩しさを押さえた)
05000         _T("テキスト"),                     TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 251, 240 ),
05001         _T("ルーラー"),                     TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 239, 239, 239 ),
05002         _T("カーソル"),                     TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 251, 240 ), // 2006.12.07 ryoji
05003         _T("カーソル(IME ON)"),             TRUE , FALSE, FALSE, RGB( 255, 0, 0 )       , RGB( 255, 251, 240 ), // 2006.12.07 ryoji
05004         _T("カーソル行アンダーライン"),     TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05005         _T("行番号"),                            TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 239, 239, 239 ),
05006         _T("行番号(変更行)"),                 TRUE , TRUE , FALSE, RGB( 0, 0, 255 )       , RGB( 239, 239, 239 ),
05007         _T("TAB記号"),                            TRUE , FALSE, FALSE, RGB( 128, 128, 128 )   , RGB( 255, 251, 240 ), //Jan. 19, 2001 JEPRO RGB(192,192,192)より濃いグレーに変更
05008         _T("半角空白")      ,                   FALSE , FALSE, FALSE , RGB( 192, 192, 192 ) , RGB( 255, 251, 240 ), //2002.04.28 Add by KK
05009         _T("日本語空白"),                      TRUE , FALSE, FALSE, RGB( 192, 192, 192 )   , RGB( 255, 251, 240 ),
05010         _T("コントロールコード"),              TRUE , FALSE, FALSE, RGB( 255, 255, 0 )     , RGB( 255, 251, 240 ),
05011         _T("改行記号"),                     TRUE , FALSE, FALSE, RGB( 0, 128, 255 )     , RGB( 255, 251, 240 ),
05012         _T("折り返し記号"),                   TRUE , FALSE, FALSE, RGB( 255, 0, 255 )     , RGB( 255, 251, 240 ),
05013         _T("指定桁縦線"),                      FALSE, FALSE, FALSE, RGB( 192, 192, 192 )   , RGB( 255, 251, 240 ), //2005.11.08 Moca
05014         _T("EOF記号"),                            TRUE , FALSE, FALSE, RGB( 0, 255, 255 )     , RGB( 0, 0, 0 ),
05015 //#ifdef COMPILE_COLOR_DIGIT
05016         _T("半角数値"),                     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 標準は色なしに
05017 //#endif
05018         _T("検索文字列"),                      TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 255, 0 ),
05019         _T("強調キーワード1"),                   TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05020         _T("強調キーワード2"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ), //Dec. 4, 2000 MIK added    //Jan. 19, 2001 JEPRO キーワード1とは違う色に変更
05021         _T("強調キーワード3"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ), //Dec. 4, 2000 MIK added    //Jan. 19, 2001 JEPRO キーワード1とは違う色に変更
05022         _T("強調キーワード4"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05023         _T("強調キーワード5"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05024         _T("強調キーワード6"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05025         _T("強調キーワード7"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05026         _T("強調キーワード8"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05027         _T("強調キーワード9"),                   TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05028         _T("強調キーワード10"),              TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05029         _T("コメント"),                     TRUE , FALSE, FALSE, RGB( 0, 128, 0 )       , RGB( 255, 251, 240 ),
05030     //Sept. 4, 2000 JEPRO シングルクォーテーション文字列に色を割り当てるが色分け表示はしない
05031     //Oct. 17, 2000 JEPRO 色分け表示するように変更(最初のFALSE→TRUE)
05032     //"シングルクォーテーション文字列", FALSE, FALSE, FALSE, RGB( 0, 0, 0 ), RGB( 255, 255, 255 ),
05033         _T("シングルクォーテーション文字列"),    TRUE , FALSE, FALSE, RGB( 64, 128, 128 )    , RGB( 255, 251, 240 ),
05034         _T("ダブルクォーテーション文字列"),   TRUE , FALSE, FALSE, RGB( 128, 0, 64 )      , RGB( 255, 251, 240 ),
05035         _T("URL"),                              TRUE , FALSE, TRUE , RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05036         _T("正規表現キーワード1"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05037         _T("正規表現キーワード2"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05038         _T("正規表現キーワード3"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05039         _T("正規表現キーワード4"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05040         _T("正規表現キーワード5"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05041         _T("正規表現キーワード6"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05042         _T("正規表現キーワード7"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05043         _T("正規表現キーワード8"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05044         _T("正規表現キーワード9"),             FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05045         _T("正規表現キーワード10"),            FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05046         _T("DIFF差分表示(追加)"),             FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05047         _T("DIFF差分表示(変更)"),             FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05048         _T("DIFF差分表示(削除)"),             FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05049         _T("対括弧の強調表示"),             FALSE , TRUE,  FALSE, RGB( 128, 0, 0 )      , RGB( 255, 251, 240 ), // 02/09/18 ai
05050         _T("ブックマーク"),                   TRUE  , FALSE, FALSE, RGB( 255, 251, 240 )  , RGB( 0, 128, 192 ),   // 02/10/16 ai
05051     };
05052 //  To Here Sept. 18, 2000
05053
05054
05055     for( i = 0; i < COLORIDX_LAST; ++i ){
05056         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_nColorIdx     = i;
05057         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bDisp         = ColorInfo_DEFAULT[i].m_bDisp;
05058         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bFatFont      = ColorInfo_DEFAULT[i].m_bFatFont;
05059         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bUnderLine        = ColorInfo_DEFAULT[i].m_bUnderLine;
05060         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_colTEXT           = ColorInfo_DEFAULT[i].m_colTEXT;
05061         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_colBACK           = ColorInfo_DEFAULT[i].m_colBACK;
05062         _tcscpy( pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_szName, ColorInfo_DEFAULT[i].m_pszName );
05063     }
05064     pShareData->m_Types[nIdx].m_bLineNumIsCRLF = TRUE;              /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
05065     pShareData->m_Types[nIdx].m_nLineTermType = 1;                  /* 行番号区切り 0=なし 1=縦線 2=任意 */
05066     pShareData->m_Types[nIdx].m_cLineTermChar = L':';                   /* 行番号区切り文字 */
05067     pShareData->m_Types[nIdx].m_bWordWrap = FALSE;                  /* 英文ワードラップをする */
05068     pShareData->m_Types[nIdx].m_nCurrentPrintSetting = 0;               /* 現在選択している印刷設定 */
05069     pShareData->m_Types[nIdx].m_nDefaultOutline = OUTLINE_TEXT;     /* アウトライン解析方法 */
05070     pShareData->m_Types[nIdx].m_nSmartIndent = SMARTINDENT_NONE;        /* スマートインデント種別 */
05071     pShareData->m_Types[nIdx].m_nImeState = IME_CMODE_NOCONVERSION; /* IME入力 */
05072
05073     pShareData->m_Types[nIdx].m_szOutlineRuleFilename[0] = L'\0';   //Dec. 4, 2000 MIK
05074     pShareData->m_Types[nIdx].m_bKinsokuHead = FALSE;               /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05075     pShareData->m_Types[nIdx].m_bKinsokuTail = FALSE;               /* 行末禁則 */  //@@@ 2002.04.08 MIK
05076     pShareData->m_Types[nIdx].m_bKinsokuRet  = FALSE;               /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
05077     pShareData->m_Types[nIdx].m_bKinsokuKuto = FALSE;               /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
05078     wcscpy( pShareData->m_Types[nIdx].m_szKinsokuHead, L"" );       /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05079     wcscpy( pShareData->m_Types[nIdx].m_szKinsokuTail, L"" );       /* 行末禁則 */  //@@@ 2002.04.08 MIK
05080
05081     pShareData->m_Types[nIdx].m_bUseDocumentIcon = FALSE;           /* 文書に関連づけられたアイコンを使う */
05082
05083 //@@@ 2001.11.17 add start MIK
05084     for(i = 0; i < 100; i++)
05085     {
05086         pShareData->m_Types[nIdx].m_RegexKeywordArr[i].m_szKeyword[0] = L'\0';
05087         pShareData->m_Types[nIdx].m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
05088     }
05089     pShareData->m_Types[nIdx].m_bUseRegexKeyword = FALSE;
05090 //      pShareData->m_Types[nIdx].m_nRegexKeyMagicNumber = 1;
05091 //@@@ 2001.11.17 add end MIK
05092
05093 //@@@ 2006.04.10 fon ADD-start
05094     for(i = 0; i < MAX_KEYHELP_FILE; i++){
05095         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_nUse = 0;
05096         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_szAbout[0] = _T('\0');
05097         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_szPath[0] = _T('\0');
05098     }
05099     pShareData->m_Types[nIdx].m_bUseKeyWordHelp = FALSE;    /* 辞書選択機能の使用可否 */
05100     pShareData->m_Types[nIdx].m_nKeyHelpNum = 0;            /* 登録辞書数 */
05101     pShareData->m_Types[nIdx].m_bUseKeyHelpAllSearch = FALSE;   /* ヒットした次の辞書も検索(&A) */
05102     pShareData->m_Types[nIdx].m_bUseKeyHelpKeyDisp = FALSE;     /* 1行目にキーワードも表示する(&W) */
05103     pShareData->m_Types[nIdx].m_bUseKeyHelpPrefix = FALSE;      /* 選択範囲で前方一致検索(&P) */
05104 //@@@ 2006.04.10 fon ADD-end
05105
05106     // 2005.11.08 Moca 指定位置縦線の設定
05107     for( i = 0; i < MAX_VERTLINES; i++ ){
05108         pShareData->m_Types[nIdx].m_nVertLineIdx[i] = CLayoutInt(0);
05109     }
05110
05111     static TCHAR* pszTypeNameArr[] = {
05112         _T("基本"),
05113         _T("テキスト"),
05114         _T("C/C++"),
05115         _T("HTML"),
05116         _T("PL/SQL"),
05117         _T("COBOL"),
05118         _T("Java"),
05119         _T("アセンブラ"),
05120         _T("AWK"),
05121         _T("MS-DOSバッチファイル"),
05122         _T("Pascal"),
05123         _T("TeX"),              //Oct. 31, 2000 JEPRO TeX  ユーザに贈る
05124         _T("Perl"),             //Jul. 08, 2001 JEPRO Perl ユーザに贈る
05125         _T("Visual Basic"),     //JUl. 10, 2001 JEPRO VB   ユーザに贈る
05126         _T("リッチテキスト"),    //JUl. 10, 2001 JEPRO WinHelp作るのにいるケンね
05127         _T("設定ファイル"),       //Nov. 9, 2000 JEPRO Windows標準のini, inf, cnfファイルとsakuraキーワード設定ファイル.kwd, 色設定ファイル.col も読めるようにする
05128         _T("設定17"),         //From Here Jul. 12, 2001 JEPRO タイプ別設定の設定数を16→20に増やした
05129         _T("設定18"),
05130         _T("設定19"),
05131         _T("設定20")          //To Here Jul. 12, 2001
05132     };
05133     static TCHAR* pszTypeExts[] = {
05134         _T(""),
05135         //Nov. 15, 2000 JEPRO PostScriptファイルも読めるようにする
05136         //Jan. 12, 2001 JEPRO readme.1st も読めるようにする
05137         //Feb. 12, 2001 JEPRO .err エラーメッセージ
05138         //Nov.  6, 2002 genta docはMS Wordに譲ってここからは外す（関連づけ防止のため）
05139         //Nov.  6, 2002 genta log を追加
05140         _T("txt,log,1st,err,ps"),
05141         //  Jan. 24, 2004 genta 関連づけ上好ましくないのでdsw,dsp,dep,makははずす
05142         _T("c,cpp,cxx,cc,cp,c++,h,hpp,hxx,hh,hp,h++,rc,hm"),    //Oct. 31, 2000 JEPRO VC++の生成するテキストファイルも読めるようにする
05143             //Feb. 7, 2001 JEPRO .cc/cp/c++/.hpp/hxx/hh/hp/h++を追加 //Mar. 15, 2001 JEPRO .hmを追加
05144         _T("html,htm,shtml,plg"),   //Oct. 31, 2000 JEPRO VC++の生成するテキストファイルも読み込めるようにする
05145         _T("sql,plsql"),
05146         _T("cbl,cpy,pco,cob"),  //Jun. 04, 2001 JEPRO KENCH氏の助言に従い追加
05147         _T("java,jav"),
05148         _T("asm"),
05149         _T("awk"),
05150         _T("bat"),
05151         _T("dpr,pas"),
05152         _T("tex,ltx,sty,bib,log,blg,aux,bbl,toc,lof,lot,idx,ind,glo"),      //Oct. 31, 2000 JEPRO TeX ユーザに贈る    //Mar. 10, 2001 JEPRO 追加
05153         _T("cgi,pl,pm"),            //Jul. 08, 2001 JEPRO 追加
05154         _T("bas,frm,cls,ctl,pag,dob,dsr,vb"),   //Jul. 09, 2001 JEPRO 追加 //Dec. 16, 2002 MIK追加 // Feb. 19, 2006 genta .vb追加
05155         _T("rtf"),                  //Jul. 10, 2001 JEPRO 追加
05156         _T("ini,inf,cnf,kwd,col"),  //Nov. 9, 2000 JEPRO Windows標準のini, inf, cnfファイルとsakuraキーワード設定ファイル.kwd, 色設定ファイル.col も読めるようにする
05157         _T(""),                     //From Here Jul. 12, 2001 JEPRO タイプ別設定の設定数を16→20に増やした
05158         _T(""),
05159         _T(""),
05160         _T("")                      //To Here Jul. 12, 2001
05161     };
05162
05163     pShareData->m_Types[0].m_nIdx = 0;
05164     _tcscpy( pShareData->m_Types[0].m_szTypeName, pszTypeNameArr[0] );              /* タイプ属性：名称 */
05165     _tcscpy( pShareData->m_Types[0].m_szTypeExts, pszTypeExts[0] );             /* タイプ属性：拡張子リスト */
05166     for( nIdx = 1; nIdx < MAX_TYPES; ++nIdx ){
05167         pShareData->m_Types[nIdx] = pShareData->m_Types[0];
05168         pShareData->m_Types[nIdx].m_nIdx = nIdx;
05169
05170         //  From Here 2005.02.20 りんご 配列数が設定数より小さいケースの考慮
05171         const TCHAR* pszTypeName;
05172         const TCHAR* pszTypeExt;
05173         if(nIdx < _countof(pszTypeNameArr))
05174             pszTypeName = pszTypeNameArr[nIdx];
05175         else
05176             pszTypeName = _T("未定義");
05177         if(nIdx < _countof(pszTypeExts))
05178             pszTypeExt = pszTypeExts[nIdx];
05179         else
05180             pszTypeExt = _T("");
05181         _tcscpy( m_pShareData->m_Types[nIdx].m_szTypeName, pszTypeName );
05182         _tcscpy( m_pShareData->m_Types[nIdx].m_szTypeExts, pszTypeExt );
05183         //  To Here 2005.02.20 りんご
05184     }
05185
05186
05187     /* 基本 */
05188     pShareData->m_Types[0].m_nMaxLineKetas = CLayoutInt(MAXLINEKETAS);          /* 折り返し桁数 */
05189 //      pShareData->m_Types[0].m_nDefaultOutline = OUTLINE_UNKNOWN; /* アウトライン解析方法 */    //Jul. 08, 2001 JEPRO 使わないように変更
05190     pShareData->m_Types[0].m_nDefaultOutline = OUTLINE_TEXT;        /* アウトライン解析方法 */
05191     //Oct. 17, 2000 JEPRO   シングルクォーテーション文字列を色分け表示しない
05192     pShareData->m_Types[0].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05193     //Sept. 4, 2000 JEPRO   ダブルクォーテーション文字列を色分け表示しない
05194     pShareData->m_Types[0].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05195
05196
05197 //      nIdx = 0;
05198     /* テキスト */
05199     //From Here Sept. 20, 2000 JEPRO テキストの規定値を80→120に変更(不具合一覧.txtがある程度読みやすい桁数)
05200     pShareData->m_Types[1].m_nMaxLineKetas = CLayoutInt(120);                   /* 折り返し桁数 */
05201     //To Here Sept. 20, 2000
05202     pShareData->m_Types[1].m_nDefaultOutline = OUTLINE_TEXT;        /* アウトライン解析方法 */
05203     //Oct. 17, 2000 JEPRO   シングルクォーテーション文字列を色分け表示しない
05204     pShareData->m_Types[1].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05205     //Sept. 4, 2000 JEPRO   ダブルクォーテーション文字列を色分け表示しない
05206     pShareData->m_Types[1].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05207     pShareData->m_Types[1].m_bKinsokuHead = FALSE;              /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05208     pShareData->m_Types[1].m_bKinsokuTail = FALSE;              /* 行末禁則 */  //@@@ 2002.04.08 MIK
05209     pShareData->m_Types[1].m_bKinsokuRet  = FALSE;              /* 改行文字をぶら下げる */    //@@@ 2002.04.13 MIK
05210     pShareData->m_Types[1].m_bKinsokuKuto = FALSE;              /* 句読点をぶら下げる */   //@@@ 2002.04.17 MIK
05211     wcscpy( pShareData->m_Types[1].m_szKinsokuHead, L"!%),.:;?]}¢°’”‰′″℃、。々〉》」』】〕゛゜ゝゞ・ヽヾ！％），．：；？］｝｡｣､･ﾞﾟ¢" );        /* 行頭禁則 */  //@@@ 2002.04.13 MIK
05212     wcscpy( pShareData->m_Types[1].m_szKinsokuTail, L"$([{£\\‘“〈《「『【〔＄（［｛｢£￥" );      /* 行末禁則 */  //@@@ 2002.04.08 MIK
05213
05214
05215     // nIdx = 1;
05216     /* C/C++ */
05217     pShareData->m_Types[2].m_cLineComment.CopyTo( 0, L"//", -1 );           /* 行コメントデリミタ */
05218     pShareData->m_Types[2].m_cBlockComment.CopyTo( 0, L"/*", L"*/" );       /* ブロックコメントデリミタ */
05219     pShareData->m_Types[2].m_cBlockComment.CopyTo( 1, L"#if 0", L"#endif" );    /* ブロックコメントデリミタ2 */ //Jul. 11, 2001 JEPRO
05220     pShareData->m_Types[2].m_nKeyWordSetIdx[0] = 0;                     /* キーワードセット */
05221     pShareData->m_Types[2].m_nDefaultOutline = OUTLINE_CPP;         /* アウトライン解析方法 */
05222     pShareData->m_Types[2].m_nSmartIndent = SMARTINDENT_CPP;            /* スマートインデント種別 */
05223     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05224     pShareData->m_Types[2].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05225     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05226     pShareData->m_Types[2].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp    = TRUE;
05227     //  2003.06.23 Moca ファイル内からの入力補完機能
05228     pShareData->m_Types[2].m_bUseHokanByFile = TRUE;
05230     /* HTML */
05231     pShareData->m_Types[3].m_cBlockComment.CopyTo( 0, L"<!--", L"-->" );    /* ブロックコメントデリミタ */
05232     pShareData->m_Types[3].m_nStringType = 0;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05233     pShareData->m_Types[3].m_nKeyWordSetIdx[0] = 1;                     /* キーワードセット */
05234     // Feb. 2, 2005 genta 苦情が多いのでシングルクォートの色分けはHTMLでは行わない
05235     pShareData->m_Types[3].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05236
05237     // nIdx = 3;
05238     /* PL/SQL */
05239     pShareData->m_Types[4].m_cLineComment.CopyTo( 0, L"--", -1 );       /* 行コメントデリミタ */
05240     pShareData->m_Types[4].m_cBlockComment.CopyTo( 0, L"/*", L"*/" );   /* ブロックコメントデリミタ */
05241     pShareData->m_Types[4].m_nStringType = 1;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05242     wcscpy( pShareData->m_Types[4].m_szIndentChars, L"|★" );          /* その他のインデント対象文字 */
05243     pShareData->m_Types[4].m_nKeyWordSetIdx[0] = 2;                     /* キーワードセット */
05244     pShareData->m_Types[4].m_nDefaultOutline = OUTLINE_PLSQL;           /* アウトライン解析方法 */
05245
05246     /* COBOL */
05247     pShareData->m_Types[5].m_cLineComment.CopyTo( 0, L"*", 6 ); //Jun. 02, 2001 JEPRO 修正
05248     pShareData->m_Types[5].m_cLineComment.CopyTo( 1, L"D", 6 ); //Jun. 04, 2001 JEPRO 追加
05249     pShareData->m_Types[5].m_nStringType = 1;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05250     wcscpy( pShareData->m_Types[5].m_szIndentChars, L"*" );         /* その他のインデント対象文字 */
05251     pShareData->m_Types[5].m_nKeyWordSetIdx[0] = 3;                     /* キーワードセット */      //Jul. 10, 2001 JEPRO
05252     pShareData->m_Types[5].m_nDefaultOutline = OUTLINE_COBOL;           /* アウトライン解析方法 */
05253
05254     // 2005.11.08 Moca 指定桁縦線
05255     pShareData->m_Types[5].m_ColorInfoArr[COLORIDX_VERTLINE].m_bDisp = TRUE;
05256     pShareData->m_Types[5].m_nVertLineIdx[0] = CLayoutInt(7);
05257     pShareData->m_Types[5].m_nVertLineIdx[1] = CLayoutInt(8);
05258     pShareData->m_Types[5].m_nVertLineIdx[2] = CLayoutInt(12);
05259     pShareData->m_Types[5].m_nVertLineIdx[3] = CLayoutInt(73);
05260
05261
05262     /* Java */
05263     pShareData->m_Types[6].m_cLineComment.CopyTo( 0, L"//", -1 );       /* 行コメントデリミタ */
05264     pShareData->m_Types[6].m_cBlockComment.CopyTo( 0, L"/*", L"*/" );   /* ブロックコメントデリミタ */
05265     pShareData->m_Types[6].m_nKeyWordSetIdx[0] = 4;                     /* キーワードセット */
05266     pShareData->m_Types[6].m_nDefaultOutline = OUTLINE_JAVA;            /* アウトライン解析方法 */
05267     pShareData->m_Types[6].m_nSmartIndent = SMARTINDENT_CPP;            /* スマートインデント種別 */
05268     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05269     pShareData->m_Types[6].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05270     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05271     pShareData->m_Types[6].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp    = TRUE;
05272
05273     /* アセンブラ */
05274     //  2004.05.01 MIK/genta
05275     pShareData->m_Types[7].m_cLineComment.CopyTo( 0, L";", -1 );        /* 行コメントデリミタ */
05276     pShareData->m_Types[7].m_nDefaultOutline = OUTLINE_ASM;         /* アウトライン解析方法 */
05277     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05278     pShareData->m_Types[7].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05279
05280     /* awk */
05281     pShareData->m_Types[8].m_cLineComment.CopyTo( 0, L"#", -1 );        /* 行コメントデリミタ */
05282     pShareData->m_Types[8].m_nDefaultOutline = OUTLINE_TEXT;            /* アウトライン解析方法 */
05283     pShareData->m_Types[8].m_nKeyWordSetIdx[0] = 6;                     /* キーワードセット */
05284
05285     /* MS-DOSバッチファイル */
05286     pShareData->m_Types[9].m_cLineComment.CopyTo( 0, L"REM ", -1 ); /* 行コメントデリミタ */
05287     pShareData->m_Types[9].m_nDefaultOutline = OUTLINE_TEXT;            /* アウトライン解析方法 */
05288     pShareData->m_Types[9].m_nKeyWordSetIdx[0] = 7;                     /* キーワードセット */
05289
05290     /* Pascal */
05291     pShareData->m_Types[10].m_cLineComment.CopyTo( 0, L"//", -1 );      /* 行コメントデリミタ */       //Nov. 5, 2000 JEPRO 追加
05292     pShareData->m_Types[10].m_cBlockComment.CopyTo( 0, L"{", L"}" );    /* ブロックコメントデリミタ */  //Nov. 5, 2000 JEPRO 追加
05293     pShareData->m_Types[10].m_cBlockComment.CopyTo( 1, L"(*", L"*)" );  /* ブロックコメントデリミタ2 */ //@@@ 2001.03.10 by MIK
05294     pShareData->m_Types[10].m_nStringType = 1;                      /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */  //Nov. 5, 2000 JEPRO 追加
05295     pShareData->m_Types[10].m_nKeyWordSetIdx[0] = 8;                        /* キーワードセット */
05296     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05297     pShareData->m_Types[10].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  //@@@ 2001.11.11 upd MIK
05298
05299     //From Here Oct. 31, 2000 JEPRO
05300     /* TeX */
05301     pShareData->m_Types[11].m_cLineComment.CopyTo( 0, L"%", -1 );       /* 行コメントデリミタ */
05302     pShareData->m_Types[11].m_nDefaultOutline = OUTLINE_TEX;            /* アウトライン解析方法 */
05303     pShareData->m_Types[11].m_nKeyWordSetIdx[0]  = 9;                   /* キーワードセット */
05304     pShareData->m_Types[11].m_nKeyWordSetIdx[1] = 10;                   /* キーワードセット2 */ //Jan. 19, 2001 JEPRO
05305     //シングルクォーテーション文字列を色分け表示しない
05306     pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05307     //ダブルクォーテーション文字列を色分け表示しない
05308     pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05309     //URLにアンダーラインを引かない(やっぱりやめた)
05310 //      pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_URL].m_bDisp = FALSE;
05311     //To Here Oct. 31, 2000
05312
05313     //From Here Jul. 08, 2001 JEPRO
05314     /* Perl */
05315     pShareData->m_Types[12].m_cLineComment.CopyTo( 0, L"#", -1 );       /* 行コメントデリミタ */
05316     pShareData->m_Types[12].m_nDefaultOutline = OUTLINE_PERL;           /* アウトライン解析方法 */
05317     pShareData->m_Types[12].m_nKeyWordSetIdx[0]  = 11;                  /* キーワードセット */
05318     pShareData->m_Types[12].m_nKeyWordSetIdx[1] = 12;                   /* キーワードセット2 */
05319     pShareData->m_Types[12].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05320     //To Here Jul. 08, 2001
05321     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05322     pShareData->m_Types[12].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp   = TRUE;
05323
05324     //From Here Jul. 10, 2001 JEPRO
05325     /* Visual Basic */
05326     pShareData->m_Types[13].m_cLineComment.CopyTo( 0, L"'", -1 );       /* 行コメントデリミタ */
05327     pShareData->m_Types[13].m_nDefaultOutline = OUTLINE_VB;         /* アウトライン解析方法 */
05328     pShareData->m_Types[13].m_nKeyWordSetIdx[0]  = 13;                  /* キーワードセット */
05329     pShareData->m_Types[13].m_nKeyWordSetIdx[1] = 14;                   /* キーワードセット2 */
05330     pShareData->m_Types[13].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05331     pShareData->m_Types[13].m_nStringType = 1;                          /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05332     //シングルクォーテーション文字列を色分け表示しない
05333     pShareData->m_Types[13].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05334
05335     /* リッチテキスト */
05336     pShareData->m_Types[14].m_nDefaultOutline = OUTLINE_TEXT;           /* アウトライン解析方法 */
05337     pShareData->m_Types[14].m_nKeyWordSetIdx[0]  = 15;                  /* キーワードセット */
05338     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05339     pShareData->m_Types[14].m_nStringType = 0;                          /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05340     //シングルクォーテーション文字列を色分け表示しない
05341     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05342     //ダブルクォーテーション文字列を色分け表示しない
05343     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05344     //URLにアンダーラインを引かない
05345     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_URL].m_bDisp = FALSE;
05346     //To Here Jul. 10, 2001
05347
05348     //From Here Nov. 9, 2000 JEPRO
05349     /* 設定ファイル */
05350     pShareData->m_Types[15].m_cLineComment.CopyTo( 0, L"//", -1 );      /* 行コメントデリミタ */
05351     pShareData->m_Types[15].m_cLineComment.CopyTo( 1, L";", -1 );       /* 行コメントデリミタ2 */
05352     pShareData->m_Types[15].m_nDefaultOutline = OUTLINE_TEXT;           /* アウトライン解析方法 */
05353     //シングルクォーテーション文字列を色分け表示しない
05354     pShareData->m_Types[15].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05355     //ダブルクォーテーション文字列を色分け表示しない
05356     pShareData->m_Types[15].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05357     //To Here Nov. 9, 2000
05358 }
05359
05366 void CShareData::InitPopupMenu(DLLSHAREDATA* pShareData)
05367 {
05368     /* カスタムメニュー 規定値 */
05369
05370     CommonSetting_CustomMenu& rMenu = m_pShareData->m_Common.m_sCustomMenu;
05371
05372     /* 右クリックメニュー */
05373     int n = 0;
05374     rMenu.m_nCustMenuItemFuncArr[0][n] = F_UNDO;
05375     rMenu.m_nCustMenuItemKeyArr [0][n] = 'U';
05376     n++;
05377     rMenu.m_nCustMenuItemFuncArr[0][n] = F_REDO;
05378     rMenu.m_nCustMenuItemKeyArr [0][n] = 'R';
05379     n++;
05380     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;
05381     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05382     n++;
05383     rMenu.m_nCustMenuItemFuncArr[0][n] = F_CUT;
05384     rMenu.m_nCustMenuItemKeyArr [0][n] = 'T';
05385     n++;
05386     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPY;
05387     rMenu.m_nCustMenuItemKeyArr [0][n] = 'C';
05388     n++;
05389     rMenu.m_nCustMenuItemFuncArr[0][n] = F_PASTE;
05390     rMenu.m_nCustMenuItemKeyArr [0][n] = 'P';
05391     n++;
05392     rMenu.m_nCustMenuItemFuncArr[0][n] = F_DELETE;
05393     rMenu.m_nCustMenuItemKeyArr [0][n] = 'D';
05394     n++;
05395     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;
05396     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05397     n++;
05398     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPY_CRLF;   //Nov. 9, 2000 JEPRO 「CRLF改行でコピー」を追加
05399     rMenu.m_nCustMenuItemKeyArr [0][n] = 'L';
05400     n++;
05401     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPY_ADDCRLF;
05402     rMenu.m_nCustMenuItemKeyArr [0][n] = 'H';
05403     n++;
05404     rMenu.m_nCustMenuItemFuncArr[0][n] = F_PASTEBOX;    //Nov. 9, 2000 JEPRO 「矩形貼り付け」を復活
05405     rMenu.m_nCustMenuItemKeyArr [0][n] = 'X';
05406     n++;
05407     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;
05408     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05409     n++;
05410     rMenu.m_nCustMenuItemFuncArr[0][n] = F_SELECTALL;
05411     rMenu.m_nCustMenuItemKeyArr [0][n] = 'A';
05412     n++;
05413
05414     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;     //Oct. 3, 2000 JEPRO 以下に「タグジャンプ」と「タグジャンプバック」を追加
05415     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05416     n++;
05417     rMenu.m_nCustMenuItemFuncArr[0][n] = F_TAGJUMP;
05418     rMenu.m_nCustMenuItemKeyArr [0][n] = 'G';       //Nov. 9, 2000 JEPRO 「コピー」とバッティングしていたアクセスキーを変更(T→G)
05419     n++;
05420     rMenu.m_nCustMenuItemFuncArr[0][n] = F_TAGJUMPBACK;
05421     rMenu.m_nCustMenuItemKeyArr [0][n] = 'B';
05422     n++;
05423     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;     //Oct. 15, 2000 JEPRO 以下に「選択範囲内全行コピー」と「引用符付きコピー」を追加
05424     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05425     n++;
05426     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPYLINES;
05427     rMenu.m_nCustMenuItemKeyArr [0][n] = '@';
05428     n++;
05429     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPYLINESASPASSAGE;
05430     rMenu.m_nCustMenuItemKeyArr [0][n] = '.';
05431     n++;
05432     rMenu.m_nCustMenuItemFuncArr[0][n] = 0;
05433     rMenu.m_nCustMenuItemKeyArr [0][n] = '\0';
05434     n++;
05435     rMenu.m_nCustMenuItemFuncArr[0][n] = F_COPYPATH;
05436     rMenu.m_nCustMenuItemKeyArr [0][n] = '\\';
05437     n++;
05438     rMenu.m_nCustMenuItemFuncArr[0][n] = F_PROPERTY_FILE;
05439     rMenu.m_nCustMenuItemKeyArr [0][n] = 'F';       //Nov. 9, 2000 JEPRO 「やり直し」とバッティングしていたアクセスキーを変更(R→F)
05440     n++;
05441     rMenu.m_nCustMenuItemNumArr[0] = n;
05442
05443     /* カスタムメニュー１ */
05444     rMenu.m_nCustMenuItemNumArr[1] = 7;
05445     rMenu.m_nCustMenuItemFuncArr[1][0] = F_FILEOPEN;
05446     rMenu.m_nCustMenuItemKeyArr [1][0] = 'O';       //Sept. 14, 2000 JEPRO できるだけ標準設定値に合わせるように変更 (F→O)
05447     rMenu.m_nCustMenuItemFuncArr[1][1] = F_FILESAVE;
05448     rMenu.m_nCustMenuItemKeyArr [1][1] = 'S';
05449     rMenu.m_nCustMenuItemFuncArr[1][2] = F_NEXTWINDOW;
05450     rMenu.m_nCustMenuItemKeyArr [1][2] = 'N';       //Sept. 14, 2000 JEPRO できるだけ標準設定値に合わせるように変更 (O→N)
05451     rMenu.m_nCustMenuItemFuncArr[1][3] = F_TOLOWER;
05452     rMenu.m_nCustMenuItemKeyArr [1][3] = 'L';
05453     rMenu.m_nCustMenuItemFuncArr[1][4] = F_TOUPPER;
05454     rMenu.m_nCustMenuItemKeyArr [1][4] = 'U';
05455     rMenu.m_nCustMenuItemFuncArr[1][5] = 0;
05456     rMenu.m_nCustMenuItemKeyArr [1][5] = '\0';
05457     rMenu.m_nCustMenuItemFuncArr[1][6] = F_WINCLOSE;
05458     rMenu.m_nCustMenuItemKeyArr [1][6] = 'C';
05459
05460     /* タブメニュー */    //@@@ 2003.06.14 MIK
05461     n = 0;
05462     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILESAVE;
05463     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'S';
05464     n++;
05465     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILESAVEAS_DIALOG;
05466     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'A';
05467     n++;
05468     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILECLOSE;
05469     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'R';   // 2007.06.26 ryoji B -> R
05470     n++;
05471     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILECLOSE_OPEN;
05472     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'L';
05473     n++;
05474     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_WINCLOSE;
05475     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'C';
05476     n++;
05477     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILE_REOPEN;
05478     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'W';
05479     n++;
05480     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = 0;
05481     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '\0';
05482     n++;
05483     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_MOVERIGHT;
05484     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '0';
05485     n++;
05486     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_MOVELEFT;
05487     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '1';
05488     n++;
05489     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_SEPARATE;
05490     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'E';
05491     n++;
05492     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_JOINTNEXT;
05493     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'X';
05494     n++;
05495     rMenu.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_JOINTPREV;
05496     rMenu.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'V';
05497     n++;
05498     rMenu.m_nCustMenuItemNumArr[CUSTMENU_INDEX_FOR_TABWND] = n;
05499 }
05500
05501
05502 #include "CNormalProcess.h"
05503 DLLSHAREDATA& GetDllShareData()
05504 {
05505     return CNormalProcess::Instance()->GetDllShareData();
05506 }
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData.h

sakura_core

CShareData.h

プロセス間共有データへのアクセス [詳細]

#include <windows.h>
#include <commctrl.h>
#include "CKeyBind.h"
#include "CKeyWordSetMgr.h"
#include "CPrint.h"
#include "CDataProfile.h"
#include "basis/SakuraBasis.h"
#include "config/maxdata.h"
#include "CMRU.h"
#include "CMRUFolder.h"
#include "funccode.h"
#include "CMemory.h"
#include "CMutex.h"
#include "CLineComment.h"
#include "CBlockComment.h"
#include "FileInfo.h"
#include "share/CommonSetting.h"
#include "StaticType.h"

ソースコードを見る。

構成

struct | EditNode
struct | GrepInfo
struct | PRINTSETTING
struct | ColorInfo
色設定 [詳細]
struct | ColorInfoIni
色設定(保存用) [詳細]
struct | RegexKeywordInfo
struct | KeyHelpInfo
struct | Types
タイプ別設定 [詳細]
struct | MacroRec
マクロ情報 [詳細]
struct | TagJump
タグジャンプ情報 [詳細]
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 | eWINSIZEMODE { WINSIZEMODE_DEF = 0, WINSIZEMODE_SAVE = 1, WINSIZEMODE_SET = 2 }
ウィンドウサイズ・位置の制御方法 [詳細]

関数

DLLSHAREDATA & GetDllShareData ()
どこからでもアクセスできる、共有データアクセサ。2007.10.30 kobake

変数

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

説明

プロセス間共有データへのアクセス

作者:
Norio Nakatani
日付:
1998/05/26 新規作成

CShareData.h で定義されています。

マクロ定義

#define FOOTER_MAX HEADER_MAX

CShareData.h の 87 行で定義されています。

#define HEADER_MAX 100

CShareData.h の 86 行で定義されています。

参照元 CDlgPrintSetting::GetData().

#define POS_CENTER 1

CShareData.h の 84 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), と CDlgPrintSetting::OnChangeSettingType().

#define POS_LEFT 0

印刷設定

CShareData.h の 83 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), と CDlgPrintSetting::OnChangeSettingType().

#define POS_RIGHT 2

CShareData.h の 85 行で定義されています。

参照元 CPrintPreview::DrawFooter(), CPrintPreview::DrawHeader(), と CDlgPrintSetting::OnChangeSettingType().

列挙型

enum eWINSIZEMODE

ウィンドウサイズ・位置の制御方法

列挙型の値:
WINSIZEMODE_DEF | 指定なし
WINSIZEMODE_SAVE | 継承(保存)
WINSIZEMODE_SET | 直接指定(固定)

CShareData.h の 271 行で定義されています。

関数

DLLSHAREDATA& GetDllShareData ( )

どこからでもアクセスできる、共有データアクセサ。2007.10.30 kobake

CShareData.cpp の 5503 行で定義されています。

参照先 CProcess::GetDllShareData(), と TSingleInstance< CNormalProcess >::Instance().

参照元 CMainToolBar::AcceptSharedSearchKey(), CMainToolBar::CreateToolBar(), CMainStatusBar::DestroyStatusBar(), と CMainToolBar::OnToolbarTimer().

変数

const int BKUP_DAY = 8

CShareData.h の 262 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), と CShareData::Init().

const int BKUP_HOUR = 4

CShareData.h の 263 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), と CPropCommon::GetData_PROP_BACKUP().

const int BKUP_MIN = 2

CShareData.h の 264 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), と CPropCommon::GetData_PROP_BACKUP().

const int BKUP_MONTH = 16

CShareData.h の 261 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), と CShareData::Init().

const int BKUP_SEC = 1

CShareData.h の 265 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), と CPropCommon::GetData_PROP_BACKUP().

const int BKUP_YEAR = 32

CShareData.h の 260 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CPropCommon::GetData_PROP_BACKUP(), と CShareData::Init().

const int DICT_ABOUT_LEN = 50

辞書の説明の最大長 -1

CShareData.h の 149 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), と CPropTypes::Import_KeyHelp().

Sakura-Editorに対してSat Nov 17 20:26:44 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData.h ソースファイル

sakura_core

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 "CDataProfile.h"
00033 #include "basis/SakuraBasis.h"
00034 #include "config/maxdata.h"
00035
00036
00037 struct EditNode {
00038     int             m_nIndex;
00039     int             m_nGroup;                                               //@@@ 2007.06.20 ryoji
00040     HWND            m_hWnd;
00041     WIN_CHAR        m_szTabCaption[_MAX_PATH];      //@@@ 2003.05.31 MIK
00042     SFilePath       m_szFilePath;           //@@@ 2006.01.28 ryoji
00043     BOOL            m_bIsGrep;                                      //@@@ 2006.01.28 ryoji
00044     UINT            m_showCmdRestore;               //@@@ 2007.06.20 ryoji
00045     BOOL            m_bClosing;                     //@@@ 2007.06.20 ryoji
00046
00047     HWND GetHwnd() const{ return m_hWnd; }
00048 };
00049
00050
00051 //@@@ 2001.12.26 YAZAKI CMRU, CMRUFolder
00052 #include "CMRU.h"
00053 #include "CMRUFolder.h"
00054
00055 //20020129 aroka
00056 #include "funccode.h"
00057 #include "CMemory.h"
00058
00059 #include "CMutex.h" // 2007.07.07 genta
00060
00061 #include "CLineComment.h"   //@@@ 2002.09.22 YAZAKI
00062 #include "CBlockComment.h"  //@@@ 2002.09.22 YAZAKI
00063
00064 #include "FileInfo.h"
00065
00066
00070 struct GrepInfo {
00071     CNativeW        cmGrepKey;
00072     CNativeT        cmGrepFile;
00073     CNativeT        cmGrepFolder;
00074     SSearchOption   sGrepSearchOption;
00075     bool            bGrepSubFolder;
00076     bool            bGrepOutputLine;
00077     int             nGrepOutputStyle;
00078     ECodeType       nGrepCharSet;
00079 };
00080
00081
00083 #define POS_LEFT    0
00084 #define POS_CENTER  1
00085 #define POS_RIGHT   2
00086 #define HEADER_MAX  100
00087 #define FOOTER_MAX  HEADER_MAX
00088 struct PRINTSETTING {
00089     TCHAR           m_szPrintSettingName[32 + 1];
00090     TCHAR           m_szPrintFontFaceHan[LF_FACESIZE];
00091     TCHAR           m_szPrintFontFaceZen[LF_FACESIZE];
00092     int             m_nPrintFontWidth;
00093     int             m_nPrintFontHeight;
00094     int             m_nPrintDansuu;
00095     int             m_nPrintDanSpace;
00096     int             m_nPrintLineSpacing;
00097     int             m_nPrintMarginTY;
00098     int             m_nPrintMarginBY;
00099     int             m_nPrintMarginLX;
00100     int             m_nPrintMarginRX;
00101     int             m_nPrintPaperOrientation;
00102     int             m_nPrintPaperSize;
00103     BOOL            m_bPrintWordWrap;
00104     BOOL            m_bPrintKinsokuHead;                    //@@@ 2002.04.09 MIK
00105     BOOL            m_bPrintKinsokuTail;                    //@@@ 2002.04.09 MIK
00106     BOOL            m_bPrintKinsokuRet;                     //@@@ 2002.04.13 MIK
00107     BOOL            m_bPrintKinsokuKuto;                    //@@@ 2002.04.17 MIK
00108     BOOL            m_bPrintLineNumber;
00111     MYDEVMODE       m_mdmDevMode;
00112     BOOL            m_bHeaderUse[3];                    /* ヘッダが使われているか？ */
00113     EDIT_CHAR       m_szHeaderForm[3][HEADER_MAX];      /* 0:左寄せヘッダ。1:中央寄せヘッダ。2:右寄せヘッダ。*/
00114     BOOL            m_bFooterUse[3];                    /* フッタが使われているか？ */
00115     EDIT_CHAR       m_szFooterForm[3][FOOTER_MAX];      /* 0:左寄せフッタ。1:中央寄せフッタ。2:右寄せフッタ。*/
00116 };
00117
00118
00120 struct ColorInfo {
00121     int         m_nColorIdx;
00122     BOOL        m_bDisp;            /* 色分け/表示 をする */
00123     BOOL        m_bFatFont;         /* 太字か */
00124     BOOL        m_bUnderLine;       /* アンダーラインか */
00125     COLORREF    m_colTEXT;          /* 前景色(文字色) */
00126     COLORREF    m_colBACK;          /* 背景色 */
00127     TCHAR       m_szName[32];       /* 名前 */
00128     wchar_t     m_cReserved[60];
00129 };
00130
00132 struct ColorInfoIni {
00133     const TCHAR*    m_pszName;          /* 色名 */
00134     BOOL        m_bDisp;            /* 色分け/表示 をする */
00135     BOOL        m_bFatFont;         /* 太字か */
00136     BOOL        m_bUnderLine;       /* アンダーラインか */
00137     COLORREF    m_colTEXT;          /* 前景色(文字色) */
00138     COLORREF    m_colBACK;          /* 背景色 */
00139 };
00140
00141 //@@@ 2001.11.17 add start MIK
00142 struct RegexKeywordInfo {
00143     wchar_t m_szKeyword[100];   //正規表現キーワード
00144     int m_nColorIndex;      //色指定番号
00145 };
00146 //@@@ 2001.11.17 add end MIK
00147
00148 //@@@ 2006.04.10 fon ADD-start
00149 const int DICT_ABOUT_LEN = 50;
00150 struct KeyHelpInfo {
00151     int         m_nUse;
00152     TCHAR       m_szAbout[DICT_ABOUT_LEN];
00153     SFilePath   m_szPath;
00154 };
00155 //@@@ 2006.04.10 fon ADD-end
00156
00158 struct Types {
00159     //2007.09.07 変数名変更: m_nMaxLineSize→m_nMaxLineKetas
00160     int                 m_nIdx;
00161     TCHAR               m_szTypeName[64];
00162     TCHAR               m_szTypeExts[64];
00163     CLayoutInt          m_nMaxLineKetas;
00164     int                 m_nColmSpace;
00165     int                 m_nLineSpace;
00166     CLayoutInt          m_nTabSpace;
00167     int                 m_bTabArrow;                        //@@@ 2003.03.26 MIK
00168     EDIT_CHAR           m_szTabViewString[17];              // 2003.1.26 aroka サイズ拡張
00169     int                 m_bInsSpace;                    /* スペースの挿入 */ // 2001.12.03 hor
00170     // 2005.01.13 MIK 配列化
00171     int                 m_nKeyWordSetIdx[MAX_KEYWORDSET_PER_TYPE];
00173     CLineComment        m_cLineComment;                             //@@@ 2002.09.22 YAZAKI
00174     CBlockComment       m_cBlockComment;                    //@@@ 2002.09.22 YAZAKI
00175
00176     int                 m_nStringType;
00177     wchar_t             m_szIndentChars[64];
00179     int                 m_nColorInfoArrNum;
00180     ColorInfo           m_ColorInfoArr[64];
00182     int                 m_bLineNumIsCRLF;
00183     int                 m_nLineTermType;
00184     wchar_t             m_cLineTermChar;
00185     CLayoutInt          m_nVertLineIdx[MAX_VERTLINES];
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     wchar_t             m_szKinsokuHead[200];               //@@@ 2002.04.08 MIK
00193     wchar_t             m_szKinsokuTail[200];               //@@@ 2002.04.08 MIK
00194
00195     int                 m_nCurrentPrintSetting;
00197     int                 m_nDefaultOutline;
00198     SFilePath           m_szOutlineRuleFilename;
00200     int                 m_nSmartIndent;
00201     int                 m_nImeState;    //  Nov. 20, 2000 genta 初期IME状態
00202
00203     //  2001/06/14 asa-o 補完のタイプ別設定
00204     SFilePath           m_szHokanFile;
00205     //  2003.06.23 Moca ファイル内からの入力補完機能
00206     int                 m_bUseHokanByFile;
00207     //  2001/06/19 asa-o
00208     int                 m_bHokanLoHiCase;
00210     SFilePath           m_szExtHelp;                    /* 外部ヘルプ１ */
00211     SFilePath           m_szExtHtmlHelp;                /* 外部HTMLヘルプ */
00212     BOOL                m_bHtmlHelpIsSingle;            /* HtmlHelpビューアはひとつ */
00213
00214
00215 //@@@ 2001.11.17 add start MIK
00216     BOOL    m_bUseRegexKeyword; /* 正規表現キーワードを使うか*/
00217     int m_nRegexKeyMagicNumber; /* 正規表現キーワード更新マジックナンバー */
00218     struct RegexKeywordInfo m_RegexKeywordArr[MAX_REGEX_KEYWORD];   /* 正規表現キーワード */
00219 //@@@ 2001.11.17 add end MIK
00220
00221 //@@@ 2006.04.10 fon ADD-start
00222     BOOL                m_bUseKeyWordHelp;          /* キーワード辞書セレクト機能を使うか */
00223     int                 m_nKeyHelpNum;                  /* キーワード辞書の冊数 */
00224     struct  KeyHelpInfo m_KeyHelpArr[MAX_KEYHELP_FILE]; /* キーワード辞書ファイル */
00225     BOOL                m_bUseKeyHelpAllSearch;         /* ヒットした次の辞書も検索(&A) */
00226     BOOL                m_bUseKeyHelpKeyDisp;           /* 1行目にキーワードも表示する(&W) */
00227     BOOL                m_bUseKeyHelpPrefix;            /* 選択範囲で前方一致検索(&P) */
00228 //@@@ 2006.04.10 fon ADD-end
00229
00230     //  2002/04/30 YAZAKI Commonから移動。
00231     BOOL                m_bAutoIndent;                  /* オートインデント */
00232     BOOL                m_bAutoIndent_ZENSPACE;         /* 日本語空白もインデント */
00233     BOOL                m_bRTrimPrevLine;               /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
00234     int                 m_nIndentLayout;                /* 折り返しは2行目以降を字下げ表示 */
00235
00236     //  Sep. 10, 2002 genta
00237     int                 m_bUseDocumentIcon;
00239 }; /* Types */
00240
00242 struct MacroRec {
00243     TCHAR   m_szName[MACRONAME_MAX];    //<! 表示名
00244     TCHAR   m_szFile[_MAX_PATH+1];  //<! ファイル名(ディレクトリを含まない)
00245     BOOL    m_bReloadWhenExecute;   //  実行時に読み込みなおすか（デフォルトon）
00246
00247     bool IsEnabled() const { return m_szFile[0] != '\0'; }
00248 };
00249 //  To Here Sep. 14, 2001 genta
00250
00251 // 2004/06/21 novice タグジャンプ機能追加
00253 struct TagJump {
00254     HWND        hwndReferer;                //<! 参照元ウィンドウ
00255     CLogicPoint point;                      //<! ライン, カラム
00256 };
00257
00258 //  Aug. 15, 2000 genta
00259 //  Backup Flags
00260 const int BKUP_YEAR     = 32;
00261 const int BKUP_MONTH    = 16;
00262 const int BKUP_DAY      = 8;
00263 const int BKUP_HOUR     = 4;
00264 const int BKUP_MIN      = 2;
00265 const int BKUP_SEC      = 1;
00266
00267
00268
00269 //  2004.05.13 Moca
00271 enum eWINSIZEMODE{
00272     WINSIZEMODE_DEF = 0,
00273     WINSIZEMODE_SAVE = 1,
00274     WINSIZEMODE_SET = 2
00275 };
00276
00277 //2007.09.28 kobake Common構造体を
00278 #include "share/CommonSetting.h"
00279
00280
00282 struct IniFolder {
00283     bool m_bInit;                           // 初期化済フラグ
00284     bool m_bReadPrivate;                    // マルチユーザ用iniからの読み出しフラグ
00285     bool m_bWritePrivate;                   // マルチユーザ用iniへの書き込みフラグ
00286     TCHAR m_szIniFile[_MAX_PATH];           // EXE基準のiniファイルパス
00287     TCHAR m_szPrivateIniFile[_MAX_PATH];    // マルチユーザ用のiniファイルパス
00288 };  /* iniフォルダ設定 */
00289
00290
00291 #include "StaticType.h"
00292
00294 //2007.09.23 kobake m_nSEARCHKEYArrNum,      m_szSEARCHKEYArr      を m_aSearchKeys      にまとめました
00295 //2007.09.23 kobake m_nREPLACEKEYArrNum,     m_szREPLACEKEYArr     を m_aReplaceKeys     にまとめました
00296 //2007.09.23 kobake m_nGREPFILEArrNum,       m_szGREPFILEArr       を m_aGrepFiles       にまとめました
00297 //2007.09.23 kobake m_nGREPFOLDERArrNum,     m_szGREPFOLDERArr     を m_aGrepFolders     にまとめました
00298 //2007.09.23 kobake m_szCmdArr,              m_nCmdArrNum          を m_aCommands        にまとめました
00299 //2007.09.23 kobake m_nTagJumpKeywordArrNum, m_szTagJumpKeywordArr を m_aTagJumpKeywords にまとめました
00300 struct DLLSHAREDATA {
00301     //  Oct. 27, 2000 genta
00303     /*  データ構造の異なるバージョンの同時起動を防ぐため
00304         必ず先頭になくてはならない．
00305     */
00306     unsigned int        m_vStructureVersion;
00307
00308     /* 共通作業域(保存しない) */
00309     //2007.09.16 kobake char型だと、常に文字列であるという誤解を招くので、BYTE型に変更。変数名も変更。
00310     //           UNICODE版では、余分に領域を使うことが予想されるため、ANSI版の2倍確保。
00311 private:
00312     BYTE                m_pWork[32000*sizeof(TCHAR)];
00313 public:
00314     template <class T>
00315     T* GetWorkBuffer(){ return reinterpret_cast<T*>(m_pWork); }
00316
00317     template <class T>
00318     size_t GetWorkBufferCount(){ return sizeof(m_pWork)/sizeof(T); }
00319
00320 public:
00321     FileInfo            m_FileInfo_MYWM_GETFILEINFO;
00322
00323     DWORD               m_dwProductVersionMS;
00324     DWORD               m_dwProductVersionLS;
00325     HWND                m_hwndTray;
00326     HWND                m_hwndDebug;
00327     HACCEL              m_hAccel;
00328     LONG                m_nSequences;   /* ウィンドウ連番 */
00329     LONG                m_nGroupSequences;  // タブグループ連番 // 2007.06.20 ryoji
00330     /**** 共通作業域(保存する) ****/
00331     int                 m_nEditArrNum;  //short->intに修正   //@@@ 2003.05.31 MIK
00332     EditNode            m_pEditArr[MAX_EDITWINDOWS];    //最大値修正   @@@ 2003.05.31 MIK
00333
00334     //From Here 2003.05.31 MIK
00335     //WINDOWPLACEMENT       m_TabWndWndpl;                  //タブウインドウ時のウインドウ情報
00336     //To Here 2003.05.31 MIK
00337     BOOL                m_bEditWndChanging;             // 編集ウィンドウ切替中   // 2007.04.03 ryoji
00338
00339 //@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUを経由してください。
00340     int                 m_nMRUArrNum;
00341     FileInfo            m_fiMRUArr[MAX_MRU];
00342     bool                m_bMRUArrFavorite[MAX_MRU]; //お気に入り   //@@@ 2003.04.08 MIK
00343
00344 //@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUFolderを経由してください。
00345     int                     m_nOPENFOLDERArrNum;
00346     StaticString<TCHAR,_MAX_PATH>   m_szOPENFOLDERArr[MAX_OPENFOLDER];
00347     bool                    m_bOPENFOLDERArrFavorite[MAX_OPENFOLDER];   //お気に入り   //@@@ 2003.04.08 MIK
00348
00349     int                 m_nTransformFileNameArrNum;
00350     TCHAR               m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00351     TCHAR               m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]; //お気に入り   //@@@ 2003.04.08 MIK
00352
00353     StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_SEARCHKEY,  const WCHAR*> m_aSearchKeys;
00354     StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_REPLACEKEY, const WCHAR*> m_aReplaceKeys;
00355     StaticVector< StaticString<TCHAR, _MAX_PATH>, MAX_GREPFILE,   const TCHAR*> m_aGrepFiles;
00356     StaticVector< StaticString<TCHAR, _MAX_PATH>, MAX_GREPFOLDER, const TCHAR*> m_aGrepFolders;
00357
00358     SFilePath           m_szMACROFOLDER;        /* マクロ用フォルダ */
00359     SFilePath           m_szIMPORTFOLDER;   // 設定インポート用フォルダ
00360
00361     //  Sep. 14, 2001 genta
00362     MacroRec            m_MacroTable[MAX_CUSTMACRO];
00363
00364     // 2004/06/21 タグジャンプ機能追加
00365     int                 m_TagJumpNum;
00366     int                 m_TagJumpTop;
00367     TagJump             m_TagJump[MAX_TAGJUMPNUM];
00368
00369
00370     StaticVector< StaticString<TCHAR, MAX_CMDLEN>, MAX_CMDARR > m_aCommands;
00371
00372     /**** iniフォルダ設定 ****/
00373     IniFolder           m_IniFolder;
00374
00375     /**** 共通設定 ****/
00376     CommonSetting       m_Common;
00377
00378     /* キー割り当て */
00379     int                 m_nKeyNameArrNum;           /* キー割り当て表の有効データ数 */
00380     KEYDATA             m_pKeyNameArr[100];         /* キー割り当て表 */
00381
00382     /**** 印刷ページ設定 ****/
00383     PRINTSETTING        m_PrintSettingArr[MAX_PRINTSETTINGARR];
00384
00385     /* 強調キーワード設定 */
00386     CKeyWordSetMgr      m_CKeyWordSetMgr;                   /* 強調キーワード */
00387     char                m_szKeyWordSetDir[MAX_PATH];        /* 強調キーワードファイルのディレクトリ */
00388
00389     /* **** タイプ別設定 **** */
00390     Types               m_Types[MAX_TYPES];
00391
00392     /*  @@@ 2002.1.24 YAZAKI
00393         キーボードマクロは、記録終了した時点でファイル「m_szKeyMacroFileName」に書き出すことにする。
00394         m_bRecordingKeyMacroがTRUEのときは、キーボードマクロの記録中なので、m_szKeyMacroFileNameにアクセスしてはならない。
00395     */
00396     BOOL                m_bRecordingKeyMacro;       /* キーボードマクロの記録中 */
00397     HWND                m_hwndRecordingKeyMacro;    /* キーボードマクロを記録中のウィンドウ */
00398     TCHAR               m_szKeyMacroFileName[MAX_PATH]; /* キーボードマクロのファイル名 */
00399
00400 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00401     /* **** その他のダイアログ **** */
00402 //  BOOL                m_bGetStdout;       /* 外部コマンド実行の「標準出力を得る」 */
00403     int                 m_nExecFlgOpt;      /* 外部コマンド実行オプション */   //  2006.12.03 maru オプションの拡張のため
00404     BOOL                m_bLineNumIsCRLF;   /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
00405
00406     int                 m_nDiffFlgOpt;      /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
00407
00408     TCHAR               m_szTagsCmdLine[_MAX_PATH]; /* TAGSコマンドラインオプション */  //@@@ 2003.05.12 MIK
00409     int                 m_nTagsOpt;         /* TAGSオプション(チェック) */ //@@@ 2003.05.12 MIK
00410
00411     //From Here 2005.04.03 MIK キーワード指定タグジャンプ
00412     StaticVector< StaticString<WCHAR, _MAX_PATH>, MAX_TAGJUMP_KEYWORD >     m_aTagJumpKeywords;
00413
00414     BOOL                m_bTagJumpICase;
00415     BOOL                m_bTagJumpAnyWhere;
00416     //To Here 2005.04.03 MIK
00417 };
00418
00419
00420
00435 class SAKURA_CORE_API CShareData
00436 {
00437 public:
00438     /*
00439     ||  Singleton風
00440     */
00441     static CShareData* getInstance();
00442
00443 protected:
00444     static CShareData* _instance;
00445     static CMutex g_cEditArrMutex;
00446
00447 public:
00448     /*
00449     ||  Constructors
00450     */
00451     CShareData();
00452     ~CShareData();
00453
00454     /*
00455     ||  Attributes & Operations
00456     */
00457     bool Init(void);    /* CShareDataクラスの初期化処理 */
00458     DLLSHAREDATA* GetShareData(){ return m_pShareData; }        /* 共有データ構造体のアドレスを返す */
00459     int GetDocumentType( const TCHAR* pszFilePath );            /* ファイルパスを渡して、ドキュメントタイプ（数値）を取得する */
00460     int GetDocumentTypeExt( const TCHAR* pszExt );              /* 拡張子を渡して、ドキュメントタイプ（数値）を取得する */
00461
00462     BOOL AddEditWndList( HWND, int nGroup = 0 );                /* 編集ウィンドウの登録 */    // 2007.06.26 ryoji nGroup引数追加
00463     void DeleteEditWndList( HWND );                             /* 編集ウィンドウリストからの削除 */
00464
00465     void ResetGroupId( void );                                  /* グループをIDリセットする */
00466     EditNode* GetEditNode( HWND hWnd );                         /* 編集ウィンドウ情報を取得する */
00467     int GetGroupId( HWND hWnd );                                /* グループIDを取得する */
00468     bool IsSameGroup( HWND hWnd1, HWND hWnd2 );                 /* 同一グループかどうかを調べる */
00469     bool ReorderTab( HWND hSrcTab, HWND hDstTab );              /* タブ移動に伴うウィンドウの並び替え 2007.07.07 genta */
00470     HWND SeparateGroup( HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[] );/* タブ分離に伴うウィンドウ処理 2007.07.07 genta */
00471     EditNode* GetEditNodeAt( int nGroup, int nIndex );          /* 指定位置の編集ウィンドウ情報を取得する */
00472     EditNode* GetTopEditNode( HWND hWnd );                      /* 先頭の編集ウィンドウ情報を取得する */
00473     HWND GetTopEditWnd( HWND hWnd );                            /* 先頭の編集ウィンドウを取得する */
00474     bool IsTopEditWnd( HWND hWnd ){ return (GetTopEditWnd( hWnd ) == hWnd); }   /* 先頭の編集ウィンドウかどうかを調べる */
00475
00476     BOOL RequestCloseAllEditor( BOOL bExit, int nGroup );       /* 全編集ウィンドウへ終了要求を出す */  // 2007.02.13 ryoji 「編集の全終了」を示す引数(bExit)を追加 // 2007.06.20 ryoji nGroup引数追加
00477     BOOL IsPathOpened( const TCHAR* pszPath, HWND* phwndOwner ); /* 指定ファイルが開かれているか調べる */
00478     BOOL IsPathOpened( const TCHAR* pszPath, HWND* phwndOwner, ECodeType nCharCode );/* 指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認 */  // 2007.03.16
00479     int GetEditorWindowsNum( int nGroup );                      /* 現在の編集ウィンドウの数を調べる */  // 2007.06.20 ryoji nGroup引数追加
00480     BOOL PostMessageToAllEditors( UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup = 0 ); /* 全編集ウィンドウへメッセージをポストする */  // 2007.06.20 ryoji nGroup引数追加
00481     BOOL SendMessageToAllEditors( UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup = 0 ); /* 全編集ウィンドウへメッセージを送るする */ // 2007.06.20 ryoji nGroup引数追加
00482     int GetOpenedWindowArr( EditNode** , BOOL, BOOL bGSort = FALSE );               /* 現在開いている編集ウィンドウの配列を返す */
00483     static BOOL IsEditWnd( HWND );                              /* 指定ウィンドウが、編集ウィンドウのフレームウィンドウかどうか調べる */
00484     static void SetKeyNameArrVal(
00485         DLLSHAREDATA*, int, short, TCHAR*,
00486         EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode,
00487         EFunctionCode, EFunctionCode, EFunctionCode, EFunctionCode );                                   /* KEYDATA配列にデータをセット */
00488 //  static void SetKeyNameArrVal( DLLSHAREDATA*, int, short, char* );   /* KEYDATA配列にデータをセット */ // 20050818 aroka 未使用なので削除
00489     static LONG MY_RegSetVal(
00490         HKEY hKey,              // handle of key to set value for
00491         LPCTSTR lpValueName,    // address of value to set
00492         CONST BYTE *lpData,     // address of value data
00493         DWORD cbData            // size of value data
00494     );
00495     static LONG MY_RegQuerVal(
00496         HKEY hKey,              // handle of key to set value for
00497         LPCTSTR lpValueName,    // address of value to set
00498         BYTE *lpData,           // address of value data
00499         DWORD cbData            // size of value data
00500     );
00501     void TraceOut( LPCTSTR lpFmt, ...); /* デバッグモニタに出力 */
00502     void SetTraceOutSource( HWND hwnd ){ m_hwndTraceOutSource = hwnd; } /* TraceOut起動元ウィンドウの設定 */
00503     BOOL LoadShareData( void ); /* 共有データのロード */
00504     void SaveShareData( void ); /* 共有データの保存 */
00505     static void GetIniFileNameDirect( LPTSTR pszPrivateIniFile, LPTSTR pszIniFile );    /* 構成設定ファイルからiniファイル名を取得する */   // 2007.09.04 ryoji
00506     void GetIniFileName( LPTSTR pszIniFileName, BOOL bRead = FALSE );   /* iniファイル名の取得 */   // 2007.05.19 ryoji
00507     BOOL IsPrivateSettings( void ){ return m_pShareData->m_IniFolder.m_bWritePrivate; }         /* iniファイルの保存先がユーザ別設定フォルダかどうか */  // 2007.05.25 ryoji
00508     BOOL ShareData_IO_2( bool );    /* 共有データの保存 */
00509     static void IO_ColorSet( CDataProfile* , const WCHAR* , ColorInfo* );   /* 色設定 I/O */ // Feb. 12, 2006 D.S.Koba
00510
00511 //  int         m_nStdToolBarButtons; 2004.03.30 Moca 未使用
00512
00513     //@@@ 2002.2.2 YAZAKI
00514     //  Jun. 14, 2003 genta 引数追加．書式変更
00515     int     GetMacroFilename( int idx, TCHAR* pszPath, int nBufLen ); // idxで指定したマクロファイル名（フルパス）を取得する
00516     bool        BeReloadWhenExecuteMacro( int idx );    //  idxで指定したマクロは、実行するたびにファイルを読み込む設定か？
00517     void        AddToSearchKeyArr( const wchar_t* pszSearchKey );   //  m_aSearchKeysにpszSearchKeyを追加する
00518     void        AddToReplaceKeyArr( const wchar_t* pszReplaceKey ); //  m_aReplaceKeysにpszReplaceKeyを追加する
00519     void        AddToGrepFileArr( const TCHAR* pszGrepFile );       //  m_aGrepFilesにpszGrepFileを追加する
00520     void        AddToGrepFolderArr( const TCHAR* pszGrepFolder );   //  m_aGrepFolders.size()にpszGrepFolderを追加する
00521
00522     //@@@ 2002.2.3 YAZAKI
00523     bool        ExtWinHelpIsSet( int nType = -1 );  //  タイプがnTypeのときに、外部ヘルプが設定されているか。
00524     const TCHAR*    GetExtWinHelp( int nType = -1 );    //  タイプがnTypeのときの、外部ヘルプファイル名を取得。
00525     bool        ExtHTMLHelpIsSet( int nType = -1 ); //  タイプがnTypeのときに、外部HTMLヘルプが設定されているか。
00526     const TCHAR*    GetExtHTMLHelp( int nType = -1 );   //  タイプがnTypeのときの、外部HTMLヘルプファイル名を取得。
00527     bool        HTMLHelpIsSingle( int nType = -1 ); //  タイプがnTypeのときの、外部HTMLヘルプ「ビューアを複数起動しない」がONかを取得。
00528
00529     //@@@ 2002.2.9 YAZAKI
00530     const TCHAR* MyGetDateFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen );
00531     const TCHAR* MyGetTimeFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen );
00532     const TCHAR* MyGetDateFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen, int nDateFormatType, const TCHAR* szDateFormat );
00533     const TCHAR* MyGetTimeFormat( const SYSTEMTIME& systime, TCHAR* pszDest, int nDestLen, int nTimeFormatType, const TCHAR* szTimeFormat );
00534
00535     // 2002.11.24 Moca Add
00536 //  LPTSTR GetTransformFileList( LPCTSTR*, LPTSTR*, int );
00537 //  LPTSTR GetTransformFileName( LPCTSTR, LPTSTR, int );
00538     LPTSTR GetTransformFileNameFast( LPCTSTR, LPTSTR, int );
00539     int TransformFileName_MakeCache( void );
00540     static LPCTSTR GetFilePathFormat( LPCTSTR, LPTSTR, int, LPCTSTR, LPCTSTR );
00541     static bool ExpandMetaToFolder( LPCTSTR, LPTSTR, int );
00542
00543     // 2004/06/21 novice タグジャンプ機能追加
00544     void PushTagJump(const TagJump *);
00545     bool PopTagJump(TagJump *);
00546
00547 protected:
00548     /*
00549     ||  実装ヘルパ関数
00550     */
00551     HANDLE          m_hFileMap;
00552     DLLSHAREDATA*   m_pShareData;
00553     HWND            m_hwndTraceOutSource;   // TraceOutA()起動元ウィンドウ（いちいち起動元を指定しなくてすむように）
00554
00555 //  long GetModuleDir(char* , long );   /* この実行ファイルのあるディレクトリを返します */
00556     /* MRUとOPENFOLDERリストの存在チェックなど
00557     存在しないファイルやフォルダはMRUやOPENFOLDERリストから削除する
00558      */
00559 //@@@ 2002.01.03 YAZAKI CMRU、CMRUFolderに移動した。
00560 //  void CheckMRUandOPENFOLDERList( void );
00561
00562     // ファイル名簡易表示用キャッシュ
00563     int m_nTransformFileNameCount; // 有効数
00564     TCHAR m_szTransformFileNameFromExp[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00565     int m_nTransformFileNameOrgId[MAX_TRANSFORM_FILENAME];
00566
00567     //  Jan. 30, 2005 genta 初期化関数の分割
00568     void InitKeyword(DLLSHAREDATA*);
00569     void InitKeyAssign(DLLSHAREDATA*);
00570     void InitToolButtons(DLLSHAREDATA*);
00571     void InitTypeConfig(DLLSHAREDATA*);
00572     void InitPopupMenu(DLLSHAREDATA*);
00573
00574     // Feb. 12, 2006 D.S.Koba
00575     void ShareData_IO_Mru( CDataProfile& );
00576     void ShareData_IO_Keys( CDataProfile& );
00577     void ShareData_IO_Grep( CDataProfile& );
00578     void ShareData_IO_Folders( CDataProfile& );
00579     void ShareData_IO_Cmd( CDataProfile& );
00580     void ShareData_IO_Nickname( CDataProfile& );
00581     void ShareData_IO_Common( CDataProfile& );
00582     void ShareData_IO_Toolbar( CDataProfile& );
00583     void ShareData_IO_CustMenu( CDataProfile& );
00584     void ShareData_IO_Font( CDataProfile& );
00585     void ShareData_IO_KeyBind( CDataProfile& );
00586     void ShareData_IO_Print( CDataProfile& );
00587     void ShareData_IO_Types( CDataProfile& );
00588     void ShareData_IO_KeyWords( CDataProfile& );
00589     void ShareData_IO_Macro( CDataProfile& );
00590     void ShareData_IO_Other( CDataProfile& );
00591
00592     int GetOpenedWindowArrCore( EditNode** , BOOL, BOOL bGSort = FALSE );           /* 現在開いている編集ウィンドウの配列を返す（コア処理部） */
00593 };
00594
00595
00596
00598 DLLSHAREDATA& GetDllShareData();
00599
00601 #endif /* _CSHAREDATA_H_ */
00602
00603
00604 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData_new.cpp

sakura_core

CShareData_new.cpp

プロセス間共有データのファイルへ／からの入出力 [詳細]

#include "stdafx.h"
#include <imagehlp.h>
#include <stdio.h>
#include "CShareData.h"
#include "mymessage.h"
#include "debug.h"
#include "global.h"
#include "CRunningTimer.h"
#include "CDataProfile.h"
#include "COsVersionInfo.h"
#include "CCommandLine.h"
#include "CPropTypes.h"
#include "util/shell.h"
#include <shlobj.h>

CShareData_new.cppのインクルード依存関係図

ソースコードを見る。

説明

プロセス間共有データのファイルへ／からの入出力

作者:
Norio Nakatani
日付:
2005.04.07 D.S.Koba 各セクションの入出力を関数として分離

CShareData_new.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShareData_new.cpp ソースファイル

sakura_core

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 "CShareData.h"
00027 #include "mymessage.h"
00028 #include "debug.h"
00029 #include "global.h"
00030 #include "CRunningTimer.h"
00031 #include "CDataProfile.h"
00032 #include "COsVersionInfo.h"
00033 #include "CCommandLine.h"
00034 #include "CPropTypes.h" //STR_COLORDATA_HEAD3
00035 #include "util/shell.h"
00036 #include <shlobj.h>
00037
00038
00039 //  CShareData_new2.cppと統合
00040 CShareData::CShareData()
00041 {
00042 //  m_pszAppName = GSTR_CSHAREDATA;
00043     m_hFileMap   = NULL;
00044     m_pShareData = NULL;
00045 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動
00046     m_nTransformFileNameCount = -1;
00047     return;
00048 }
00049
00050 // レジストリは使わない。
00051 // 未使用の２関数を削除 2002/2/3 aroka
00052
00053
00065 void CShareData::GetIniFileNameDirect( LPTSTR pszPrivateIniFile, LPTSTR pszIniFile )
00066 {
00067     TCHAR szPath[_MAX_PATH];
00068     TCHAR szDrive[_MAX_DRIVE];
00069     TCHAR szDir[_MAX_DIR];
00070     TCHAR szFname[_MAX_FNAME];
00071     TCHAR szExt[_MAX_EXT];
00072
00073     ::GetModuleFileName(
00074         ::GetModuleHandle( NULL ),
00075         szPath, _countof(szPath)
00076     );
00077     _tsplitpath( szPath, szDrive, szDir, szFname, szExt );
00078
00079     auto_snprintf( pszIniFile, _MAX_PATH - 1, _T("%ts%ts%ts%ts"), szDrive, szDir, szFname, _T(".ini") );
00080     pszIniFile[_MAX_PATH - 1] = _T('\0');
00081
00082     // マルチユーザ用のiniファイルパス
00083     //      exeと同じフォルダに置かれたマルチユーザ構成設定ファイル（sakura.exe.ini）の内容
00084     //      に従ってマルチユーザ用のiniファイルパスを決める
00085     pszPrivateIniFile[0] = _T('\0');
00086     if( COsVersionInfo().IsWin2000_or_later() ){
00087         auto_snprintf( szPath, _MAX_PATH - 1, _T("%ts%ts%ts%ts"), szDrive, szDir, szFname, _T(".exe.ini") );
00088         szPath[_MAX_PATH - 1] = _T('\0');
00089         int nEnable = ::GetPrivateProfileInt(_T("Settings"), _T("MultiUser"), 0, szPath );
00090         if( nEnable ){
00091             int nFolder = ::GetPrivateProfileInt(_T("Settings"), _T("UserRootFolder"), 0, szPath );
00092             switch( nFolder ){
00093             case 1:
00094                 nFolder = CSIDL_PROFILE;            // ユーザのルートフォルダ
00095                 break;
00096             case 2:
00097                 nFolder = CSIDL_PERSONAL;           // ユーザのドキュメントフォルダ
00098                 break;
00099             case 3:
00100                 nFolder = CSIDL_DESKTOPDIRECTORY;   // ユーザのデスクトップフォルダ
00101                 break;
00102             default:
00103                 nFolder = CSIDL_APPDATA;            // ユーザのアプリケーションデータフォルダ
00104                 break;
00105             }
00106             ::GetPrivateProfileString(_T("Settings"), _T("UserSubFolder"), _T("sakura"), szDir, _MAX_DIR, szPath );
00107             if( szDir[0] == _T('\0') )
00108                 ::lstrcpy( szDir, _T("sakura") );
00109             if( GetSpecialFolderPath( nFolder, szPath ) ){
00110                 auto_snprintf( pszPrivateIniFile, _MAX_PATH - 1, _T("%ts\\%ts\\%ts%ts"), szPath, szDir, szFname, _T(".ini") );
00111                 pszPrivateIniFile[_MAX_PATH - 1] = _T('\0');
00112             }
00113         }
00114     }
00115     return;
00116 }
00117
00130 void CShareData::GetIniFileName( LPTSTR pszIniFileName, BOOL bRead/*=FALSE*/ )
00131 {
00132     if( !m_pShareData->m_IniFolder.m_bInit ){
00133         m_pShareData->m_IniFolder.m_bInit = true;           // 初期化済フラグ
00134         m_pShareData->m_IniFolder.m_bReadPrivate = false;   // マルチユーザ用iniからの読み出しフラグ
00135         m_pShareData->m_IniFolder.m_bWritePrivate = false;  // マルチユーザ用iniへの書き込みフラグ
00136
00137         GetIniFileNameDirect( m_pShareData->m_IniFolder.m_szPrivateIniFile, m_pShareData->m_IniFolder.m_szIniFile );
00138         if( m_pShareData->m_IniFolder.m_szPrivateIniFile[0] != _T('\0') ){
00139             m_pShareData->m_IniFolder.m_bReadPrivate = true;
00140             m_pShareData->m_IniFolder.m_bWritePrivate = true;
00141             if( CCommandLine::Instance()->IsNoWindow() && CCommandLine::Instance()->IsWriteQuit() )
00142                 m_pShareData->m_IniFolder.m_bWritePrivate = false;
00143
00144             // マルチユーザ用のiniフォルダを作成しておく
00145             if( m_pShareData->m_IniFolder.m_bWritePrivate ){
00146                 TCHAR szPath[_MAX_PATH];
00147                 TCHAR szDrive[_MAX_DRIVE];
00148                 TCHAR szDir[_MAX_DIR];
00149                 _tsplitpath( m_pShareData->m_IniFolder.m_szPrivateIniFile, szDrive, szDir, NULL, NULL );
00150                 auto_snprintf( szPath, _MAX_PATH - 1, _T("%ts\\%ts"), szDrive, szDir );
00151                 szPath[_MAX_PATH - 1] = _T('\0');
00152                 MakeSureDirectoryPathExistsT( szPath );
00153             }
00154         }
00155     }
00156
00157     bool bPrivate = bRead? m_pShareData->m_IniFolder.m_bReadPrivate: m_pShareData->m_IniFolder.m_bWritePrivate;
00158     ::lstrcpy( pszIniFileName, bPrivate? m_pShareData->m_IniFolder.m_szPrivateIniFile: m_pShareData->m_IniFolder.m_szIniFile );
00159 }
00160
00169 BOOL CShareData::ShareData_IO_2( bool bRead )
00170 {
00171     MY_RUNNINGTIMER( cRunningTimer, "CShareData::ShareData_IO_2" );
00172
00173     CDataProfile    cProfile;
00174
00175     // Feb. 12, 2006 D.S.Koba
00176     if( bRead ){
00177         cProfile.SetReadingMode();
00178     } else {
00179         cProfile.SetWritingMode();
00180     }
00181
00182     TCHAR   szIniFileName[_MAX_PATH + 1];
00183     GetIniFileName( szIniFileName, bRead ); // 2007.05.19 ryoji iniファイル名を取得する
00184
00185 //  MYTRACE_A( "Iniファイル処理-1 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00186
00187
00188     if( bRead ){
00189         if( !cProfile.ReadProfile( szIniFileName ) ){
00190             /* 設定ファイルが存在しない */
00191             return FALSE;
00192         }
00193     }
00194 //  MYTRACE_A( "Iniファイル処理 0 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00195
00196     // Feb. 12, 2006 D.S.Koba
00197     ShareData_IO_Mru( cProfile );
00198     ShareData_IO_Keys( cProfile );
00199     ShareData_IO_Grep( cProfile );
00200     ShareData_IO_Folders( cProfile );
00201     ShareData_IO_Cmd( cProfile );
00202     ShareData_IO_Nickname( cProfile );
00203     ShareData_IO_Common( cProfile );
00204     ShareData_IO_Toolbar( cProfile );
00205     ShareData_IO_CustMenu( cProfile );
00206     ShareData_IO_Font( cProfile );
00207     ShareData_IO_KeyBind( cProfile );
00208     ShareData_IO_Print( cProfile );
00209     ShareData_IO_Types( cProfile );
00210     ShareData_IO_KeyWords( cProfile );
00211     ShareData_IO_Macro( cProfile );
00212     ShareData_IO_Other( cProfile );
00213
00214     if( !bRead ){
00215         cProfile.WriteProfile( szIniFileName, LTEXT(" sakura.ini テキストエディタ設定ファイル") );
00216     }
00217
00218 //  MYTRACE_A( "Iniファイル処理 8 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00219 //  MYTRACE_A( "Iniファイル処理 所要時間(ミリ秒) = %d\n", cRunningTimerStart.Read() );
00220
00221     return TRUE;
00222 }
00223
00230 void CShareData::ShareData_IO_Mru( CDataProfile& cProfile )
00231 {
00232     const WCHAR* pszSecName = LTEXT("MRU");
00233     int         i;
00234     int         nSize;
00235     FileInfo*   pfiWork;
00236     WCHAR       szKeyName[64];
00237
00238     cProfile.IOProfileData( pszSecName, LTEXT("_MRU_Counts"), m_pShareData->m_nMRUArrNum );
00239     nSize = m_pShareData->m_nMRUArrNum;
00240     for( i = 0; i < nSize; ++i ){
00241         pfiWork = &m_pShareData->m_fiMRUArr[i];
00242         auto_sprintf( szKeyName, LTEXT("MRU[%02d].nViewTopLine"), i );
00243         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nViewTopLine );
00244         auto_sprintf( szKeyName, LTEXT("MRU[%02d].nViewLeftCol"), i );
00245         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nViewLeftCol );
00246         auto_sprintf( szKeyName, LTEXT("MRU[%02d].nX"), i );
00247         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_ptCursor.x );
00248         auto_sprintf( szKeyName, LTEXT("MRU[%02d].nY"), i );
00249         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_ptCursor.y );
00250         auto_sprintf( szKeyName, LTEXT("MRU[%02d].nCharCode"), i );
00251         cProfile.IOProfileData_WrapInt( pszSecName, szKeyName, pfiWork->m_nCharCode );
00252         auto_sprintf( szKeyName, LTEXT("MRU[%02d].szPath"), i );
00253         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(pfiWork->m_szPath) );
00254         auto_sprintf( szKeyName, LTEXT("MRU[%02d].szMark"), i );
00255         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(pfiWork->m_szMarkLines) );
00256         //お気に入り   //@@@ 2003.04.08 MIK
00257         auto_sprintf( szKeyName, LTEXT("MRU[%02d].bFavorite"), i );
00258         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_bMRUArrFavorite[i] );
00259     }
00260     //@@@ 2001.12.26 YAZAKI 残りのm_fiMRUArrを初期化。
00261     if ( cProfile.IsReadingMode() ){
00262         FileInfo    fiInit;
00263         //  残りをfiInitで初期化しておく。
00264         fiInit.m_nCharCode = CODE_DEFAULT;
00265         fiInit.m_nViewLeftCol = CLayoutInt(0);
00266         fiInit.m_nViewTopLine = CLayoutInt(0);
00267         fiInit.m_ptCursor.Set(CLogicInt(0), CLogicInt(0));
00268         _tcscpy( fiInit.m_szPath, _T("") );
00269         wcscpy( fiInit.m_szMarkLines, L"" );    // 2002.01.16 hor
00270         for( ; i < MAX_MRU; ++i){
00271             m_pShareData->m_fiMRUArr[i] = fiInit;
00272             m_pShareData->m_bMRUArrFavorite[i] = false; //お気に入り   //@@@ 2003.04.08 MIK
00273         }
00274     }
00275
00276     cProfile.IOProfileData( pszSecName, LTEXT("_MRUFOLDER_Counts"), m_pShareData->m_nOPENFOLDERArrNum );
00277     nSize = m_pShareData->m_nOPENFOLDERArrNum;
00278     for( i = 0; i < nSize; ++i ){
00279         auto_sprintf( szKeyName, LTEXT("MRUFOLDER[%02d]"), i );
00280         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_szOPENFOLDERArr[i] );
00281         //お気に入り   //@@@ 2003.04.08 MIK
00282         wcscat( szKeyName, LTEXT(".bFavorite") );
00283         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_bOPENFOLDERArrFavorite[i] );
00284     }
00285     //読み込み時は残りを初期化
00286     if ( cProfile.IsReadingMode() ){
00287         for (; i< MAX_OPENFOLDER; ++i){
00288             // 2005.04.05 D.S.Koba
00289             m_pShareData->m_szOPENFOLDERArr[i][0] = L'\0';
00290             m_pShareData->m_bOPENFOLDERArrFavorite[i] = false;  //お気に入り   //@@@ 2003.04.08 MIK
00291         }
00292     }
00293 }
00294
00301 void CShareData::ShareData_IO_Keys( CDataProfile& cProfile )
00302 {
00303     const WCHAR* pszSecName = LTEXT("Keys");
00304     int     i;
00305     int     nSize;
00306     WCHAR   szKeyName[64];
00307
00308     cProfile.IOProfileData( pszSecName, LTEXT("_SEARCHKEY_Counts"), m_pShareData->m_aSearchKeys._GetSizeRef() );
00309     nSize = m_pShareData->m_aSearchKeys.size();
00310     for( i = 0; i < nSize; ++i ){
00311         auto_sprintf( szKeyName, LTEXT("SEARCHKEY[%02d]"), i );
00312         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aSearchKeys[i] );
00313     }
00314     //読み込み時は残りを初期化
00315     if( cProfile.IsReadingMode() ){
00316         for(; i < MAX_SEARCHKEY; ++i){
00317             m_pShareData->m_aSearchKeys[i][0] = L'\0';
00318         }
00319     }
00320
00321     cProfile.IOProfileData( pszSecName, LTEXT("_REPLACEKEY_Counts"), m_pShareData->m_aReplaceKeys._GetSizeRef() );
00322     nSize = m_pShareData->m_aReplaceKeys.size();
00323     for( i = 0; i < nSize; ++i ){
00324         auto_sprintf( szKeyName, LTEXT("REPLACEKEY[%02d]"), i );
00325         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aReplaceKeys[i] );
00326     }
00327     //読み込み時は残りを初期化
00328     if( cProfile.IsReadingMode() ){
00329         for(; i < MAX_REPLACEKEY; ++i){
00330             m_pShareData->m_aReplaceKeys[i][0] = L'\0';
00331         }
00332     }
00333 }
00334
00341 void CShareData::ShareData_IO_Grep( CDataProfile& cProfile )
00342 {
00343     const WCHAR* pszSecName = LTEXT("Grep");
00344     int     i;
00345     int     nSize;
00346     WCHAR   szKeyName[64];
00347
00348     cProfile.IOProfileData( pszSecName, LTEXT("_GREPFILE_Counts"), m_pShareData->m_aGrepFiles._GetSizeRef() );
00349     nSize = m_pShareData->m_aGrepFiles.size();
00350     for( i = 0; i < nSize; ++i ){
00351         auto_sprintf( szKeyName, LTEXT("GREPFILE[%02d]"), i );
00352         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aGrepFiles[i] );
00353     }
00354     //読み込み時は残りを初期化
00355     if( cProfile.IsReadingMode() ){
00356         for(; i < MAX_GREPFILE; ++i){
00357             m_pShareData->m_aGrepFiles[i][0] = L'\0';
00358         }
00359     }
00360
00361     cProfile.IOProfileData( pszSecName, LTEXT("_GREPFOLDER_Counts"), m_pShareData->m_aGrepFolders._GetSizeRef() );
00362     nSize = m_pShareData->m_aGrepFolders.size();
00363     for( i = 0; i < nSize; ++i ){
00364         auto_sprintf( szKeyName, LTEXT("GREPFOLDER[%02d]"), i );
00365         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aGrepFolders[i] );
00366     }
00367     //読み込み時は残りを初期化
00368     if( cProfile.IsReadingMode() ){
00369         for(; i < MAX_GREPFOLDER; ++i){
00370             m_pShareData->m_aGrepFolders[i][0] = L'\0';
00371         }
00372     }
00373 }
00374
00381 void CShareData::ShareData_IO_Folders( CDataProfile& cProfile )
00382 {
00383     const WCHAR* pszSecName = LTEXT("Folders");
00384     /* マクロ用フォルダ */
00385     cProfile.IOProfileData( pszSecName, LTEXT("szMACROFOLDER"), m_pShareData->m_szMACROFOLDER );
00386     /* 設定インポート用フォルダ */
00387     cProfile.IOProfileData( pszSecName, LTEXT("szIMPORTFOLDER"), m_pShareData->m_szIMPORTFOLDER );
00388 }
00389
00396 void CShareData::ShareData_IO_Cmd( CDataProfile& cProfile )
00397 {
00398     const WCHAR* pszSecName = LTEXT("Cmd");
00399     int     i;
00400     WCHAR   szKeyName[64];
00401
00402     cProfile.IOProfileData( pszSecName, LTEXT("nCmdArrNum"), m_pShareData->m_aCommands._GetSizeRef() );
00403     int nSize = m_pShareData->m_aCommands.size();
00404     for( i = 0; i < nSize; ++i ){
00405         auto_sprintf( szKeyName, LTEXT("szCmdArr[%02d]"), i );
00406         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aCommands[i] );
00407     }
00408     //読み込み時は残りを初期化
00409     if( cProfile.IsReadingMode() ){
00410         for(; i < MAX_CMDARR; ++i){
00411             m_pShareData->m_aCommands[i][0] = L'\0';
00412         }
00413     }
00414 }
00415
00422 void CShareData::ShareData_IO_Nickname( CDataProfile& cProfile )
00423 {
00424     const WCHAR* pszSecName = LTEXT("Nickname");
00425     int     i;
00426     WCHAR   szKeyName[64];
00427
00428     cProfile.IOProfileData( pszSecName, LTEXT("ArrNum"), m_pShareData->m_nTransformFileNameArrNum );
00429     int nSize = m_pShareData->m_nTransformFileNameArrNum;
00430     for( i = 0; i < nSize; ++i ){
00431         auto_sprintf( szKeyName, LTEXT("From%02d"), i );
00432         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(m_pShareData->m_szTransformFileNameFrom[i]) );
00433         auto_sprintf( szKeyName, LTEXT("To%02d"), i );
00434         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(m_pShareData->m_szTransformFileNameTo[i]) );
00435     }
00436     // 読み込み時，残りをNULLで再初期化
00437     if( cProfile.IsReadingMode() ){
00438         for( ; i < MAX_TRANSFORM_FILENAME; i++ ){
00439             m_pShareData->m_szTransformFileNameFrom[i][0] = L'\0';
00440             m_pShareData->m_szTransformFileNameTo[i][0]   = L'\0';
00441         }
00442     }
00443 }
00444
00451 void CShareData::ShareData_IO_Common( CDataProfile& cProfile )
00452 {
00453     const WCHAR* pszSecName = LTEXT("Common");
00454     // 2005.04.07 D.S.Koba
00455     CommonSetting& common = m_pShareData->m_Common;
00456
00457     cProfile.IOProfileData( pszSecName, LTEXT("nCaretType")             , common.m_sGeneral.m_nCaretType );
00458     //  Oct. 2, 2005 genta
00459     //  初期値を挿入モードに固定するため，設定の読み書きをやめる
00460     //cProfile.IOProfileData( pszSecName, LTEXT("bIsINSMode")               , common.m_bIsINSMode );
00461     cProfile.IOProfileData( pszSecName, LTEXT("bIsFreeCursorMode")      , common.m_sGeneral.m_bIsFreeCursorMode );
00462
00463     cProfile.IOProfileData( pszSecName, LTEXT("bStopsBothEndsWhenSearchWord")   , common.m_sGeneral.m_bStopsBothEndsWhenSearchWord );
00464     cProfile.IOProfileData( pszSecName, LTEXT("bStopsBothEndsWhenSearchParagraph")  , common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph );
00465     //  Oct. 27, 2000 genta
00466     cProfile.IOProfileData( pszSecName, LTEXT("m_bRestoreCurPosition")  , common.m_sFile.m_bRestoreCurPosition );
00467     // 2002.01.16 hor
00468     cProfile.IOProfileData( pszSecName, LTEXT("m_bRestoreBookmarks")    , common.m_sFile.m_bRestoreBookmarks );
00469     cProfile.IOProfileData( pszSecName, LTEXT("bAddCRLFWhenCopy")       , common.m_sEdit.m_bAddCRLFWhenCopy );
00470     cProfile.IOProfileData( pszSecName, LTEXT("nRepeatedScrollLineNum") , common.m_sGeneral.m_nRepeatedScrollLineNum );
00471     cProfile.IOProfileData( pszSecName, LTEXT("nRepeatedScroll_Smooth") , common.m_sGeneral.m_nRepeatedScroll_Smooth );
00472     cProfile.IOProfileData( pszSecName, LTEXT("bCloseAllConfirm")       , common.m_sGeneral.m_bCloseAllConfirm );   /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */  // 2006.12.25 ryoji
00473     cProfile.IOProfileData( pszSecName, LTEXT("bExitConfirm")           , common.m_sGeneral.m_bExitConfirm );
00474     cProfile.IOProfileData( pszSecName, LTEXT("bSearchRegularExp")  , common.m_sSearch.m_sSearchOption.bRegularExp );
00475     cProfile.IOProfileData( pszSecName, LTEXT("bSearchLoHiCase")        , common.m_sSearch.m_sSearchOption.bLoHiCase );
00476     cProfile.IOProfileData( pszSecName, LTEXT("bSearchWordOnly")        , common.m_sSearch.m_sSearchOption.bWordOnly );
00477     cProfile.IOProfileData( pszSecName, LTEXT("bSearchConsecutiveAll")      , common.m_sSearch.m_bConsecutiveAll ); // 2007.01.16 ryoji
00478     cProfile.IOProfileData( pszSecName, LTEXT("bSearchNOTIFYNOTFOUND")  , common.m_sSearch.m_bNOTIFYNOTFOUND );
00479     // 2002.01.26 hor
00480     cProfile.IOProfileData( pszSecName, LTEXT("bSearchAll")             , common.m_sSearch.m_bSearchAll );
00481     cProfile.IOProfileData( pszSecName, LTEXT("bSearchSelectedArea")    , common.m_sSearch.m_bSelectedArea );
00482     cProfile.IOProfileData( pszSecName, LTEXT("bGrepSubFolder")         , common.m_sSearch.m_bGrepSubFolder );
00483     cProfile.IOProfileData( pszSecName, LTEXT("bGrepOutputLine")        , common.m_sSearch.m_bGrepOutputLine );
00484     cProfile.IOProfileData( pszSecName, LTEXT("nGrepOutputStyle")       , common.m_sSearch.m_nGrepOutputStyle );
00485     cProfile.IOProfileData( pszSecName, LTEXT("bGrepDefaultFolder")     , common.m_sSearch.m_bGrepDefaultFolder );
00486     // 2002/09/21 Moca 追加
00487     cProfile.IOProfileData_WrapInt( pszSecName, LTEXT("nGrepCharSet")   , common.m_sSearch.m_nGrepCharSet );
00488     cProfile.IOProfileData( pszSecName, LTEXT("bGrepRealTime")          , common.m_sSearch.m_bGrepRealTimeView ); // 2003.06.16 Moca
00489     cProfile.IOProfileData( pszSecName, LTEXT("bCaretTextForSearch")    , common.m_sSearch.m_bCaretTextForSearch ); // 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする
00490
00491     /* 正規表現DLL 2007.08.12 genta */
00492     cProfile.IOProfileData( pszSecName, LTEXT("szRegexpLib")            , MakeStringBufferT(common.m_sSearch.m_szRegexpLib) );
00493     cProfile.IOProfileData( pszSecName, LTEXT("bGTJW_RETURN")           , common.m_sSearch.m_bGTJW_RETURN );
00494     cProfile.IOProfileData( pszSecName, LTEXT("bGTJW_LDBLCLK")          , common.m_sSearch.m_bGTJW_LDBLCLK );
00495     cProfile.IOProfileData( pszSecName, LTEXT("bBackUp")                , common.m_sBackup.m_bBackUp );
00496     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpDialog")          , common.m_sBackup.m_bBackUpDialog );
00497     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpFolder")          , common.m_sBackup.m_bBackUpFolder );
00498
00499     if( !cProfile.IsReadingMode() ){
00500         int nDummy;
00501         int nCharChars;
00502         nDummy = _tcslen( common.m_sBackup.m_szBackUpFolder );
00503         /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
00504         nCharChars = &common.m_sBackup.m_szBackUpFolder[nDummy]
00505             - CNativeT::GetCharPrev( common.m_sBackup.m_szBackUpFolder, nDummy, &common.m_sBackup.m_szBackUpFolder[nDummy] );
00506         if( 1 == nCharChars && common.m_sBackup.m_szBackUpFolder[nDummy - 1] == '\\' ){
00507         }else{
00508             _tcscat( common.m_sBackup.m_szBackUpFolder, _T("\\") );
00509         }
00510     }
00511     cProfile.IOProfileData( pszSecName, LTEXT("szBackUpFolder"), common.m_sBackup.m_szBackUpFolder );
00512     if( cProfile.IsReadingMode() ){
00513         int nDummy;
00514         int nCharChars;
00515         nDummy = _tcslen( common.m_sBackup.m_szBackUpFolder );
00516         /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
00517         nCharChars = &common.m_sBackup.m_szBackUpFolder[nDummy]
00518             - CNativeT::GetCharPrev( common.m_sBackup.m_szBackUpFolder, nDummy, &common.m_sBackup.m_szBackUpFolder[nDummy] );
00519         if( 1 == nCharChars && common.m_sBackup.m_szBackUpFolder[nDummy - 1] == '\\' ){
00520         }else{
00521             _tcscat( common.m_sBackup.m_szBackUpFolder, _T("\\") );
00522         }
00523     }
00524
00525
00526     cProfile.IOProfileData( pszSecName, LTEXT("nBackUpType")            , common.m_sBackup.m_nBackUpType );
00527     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpType2_Opt1")      , common.m_sBackup.m_nBackUpType_Opt1 );
00528     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpType2_Opt2")      , common.m_sBackup.m_nBackUpType_Opt2 );
00529     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpType2_Opt3")      , common.m_sBackup.m_nBackUpType_Opt3 );
00530     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpType2_Opt4")      , common.m_sBackup.m_nBackUpType_Opt4 );
00531     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpDustBox")         , common.m_sBackup.m_bBackUpDustBox );  //@@@ 2001.12.11 add MIK
00532     cProfile.IOProfileData( pszSecName, LTEXT("bBackUpPathAdvanced")    , common.m_sBackup.m_bBackUpPathAdvanced ); /* 20051107 aroka */
00533     cProfile.IOProfileData( pszSecName, LTEXT("szBackUpPathAdvanced")   , common.m_sBackup.m_szBackUpPathAdvanced );    /* 20051107 aroka */
00534     cProfile.IOProfileData_WrapInt( pszSecName, LTEXT("nFileShareMode")         , common.m_sFile.m_nFileShareMode );
00535     cProfile.IOProfileData( pszSecName, LTEXT("szExtHelp"), MakeStringBufferT(common.m_sHelper.m_szExtHelp) );
00536     cProfile.IOProfileData( pszSecName, LTEXT("szExtHtmlHelp"), MakeStringBufferT(common.m_sHelper.m_szExtHtmlHelp) );
00537
00538     cProfile.IOProfileData( pszSecName, LTEXT("szMigemoDll"), MakeStringBufferT(common.m_sHelper.m_szMigemoDll) );
00539     cProfile.IOProfileData( pszSecName, LTEXT("szMigemoDict"), MakeStringBufferT(common.m_sHelper.m_szMigemoDict) );
00540
00541     // ai 02/05/23 Add S
00542     {// Keword Help Font
00543         const TCHAR*    pszForm = _T("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d");
00544         TCHAR       szKeyData[1024];
00545         if( cProfile.IsReadingMode() ){
00546             if( cProfile.IOProfileData( pszSecName, LTEXT("khlf"), MakeStringBufferT(szKeyData) ) ){
00547                 _stscanf( szKeyData, pszForm,
00548                     &common.m_sHelper.m_lf_kh.lfHeight,
00549                     &common.m_sHelper.m_lf_kh.lfWidth,
00550                     &common.m_sHelper.m_lf_kh.lfEscapement,
00551                     &common.m_sHelper.m_lf_kh.lfOrientation,
00552                     &common.m_sHelper.m_lf_kh.lfWeight,
00553                     &common.m_sHelper.m_lf_kh.lfItalic,
00554                     &common.m_sHelper.m_lf_kh.lfUnderline,
00555                     &common.m_sHelper.m_lf_kh.lfStrikeOut,
00556                     &common.m_sHelper.m_lf_kh.lfCharSet,
00557                     &common.m_sHelper.m_lf_kh.lfOutPrecision,
00558                     &common.m_sHelper.m_lf_kh.lfClipPrecision,
00559                     &common.m_sHelper.m_lf_kh.lfQuality,
00560                     &common.m_sHelper.m_lf_kh.lfPitchAndFamily
00561                 );
00562             }
00563         }else{
00564             auto_sprintf( szKeyData, pszForm,
00565                 common.m_sHelper.m_lf_kh.lfHeight,
00566                 common.m_sHelper.m_lf_kh.lfWidth,
00567                 common.m_sHelper.m_lf_kh.lfEscapement,
00568                 common.m_sHelper.m_lf_kh.lfOrientation,
00569                 common.m_sHelper.m_lf_kh.lfWeight,
00570                 common.m_sHelper.m_lf_kh.lfItalic,
00571                 common.m_sHelper.m_lf_kh.lfUnderline,
00572                 common.m_sHelper.m_lf_kh.lfStrikeOut,
00573                 common.m_sHelper.m_lf_kh.lfCharSet,
00574                 common.m_sHelper.m_lf_kh.lfOutPrecision,
00575                 common.m_sHelper.m_lf_kh.lfClipPrecision,
00576                 common.m_sHelper.m_lf_kh.lfQuality,
00577                 common.m_sHelper.m_lf_kh.lfPitchAndFamily
00578             );
00579             cProfile.IOProfileData( pszSecName, LTEXT("khlf"), MakeStringBufferT(szKeyData) );
00580         }
00581
00582         cProfile.IOProfileData( pszSecName, LTEXT("khlfFaceName")       , MakeStringBufferT(common.m_sHelper.m_lf_kh.lfFaceName) );
00583
00584     }// Keword Help Font
00585
00586
00587     cProfile.IOProfileData( pszSecName, LTEXT("nMRUArrNum_MAX")         , common.m_sGeneral.m_nMRUArrNum_MAX );
00588     cProfile.IOProfileData( pszSecName, LTEXT("nOPENFOLDERArrNum_MAX")  , common.m_sGeneral.m_nOPENFOLDERArrNum_MAX );
00589     cProfile.IOProfileData( pszSecName, LTEXT("bDispTOOLBAR")           , common.m_sWindow.m_bDispTOOLBAR );
00590     cProfile.IOProfileData( pszSecName, LTEXT("bDispSTATUSBAR")         , common.m_sWindow.m_bDispSTATUSBAR );
00591     cProfile.IOProfileData( pszSecName, LTEXT("bDispFUNCKEYWND")        , common.m_sWindow.m_bDispFUNCKEYWND );
00592     cProfile.IOProfileData( pszSecName, LTEXT("nFUNCKEYWND_Place")      , common.m_sWindow.m_nFUNCKEYWND_Place );
00593     cProfile.IOProfileData( pszSecName, LTEXT("nFUNCKEYWND_GroupNum")   , common.m_sWindow.m_nFUNCKEYWND_GroupNum );        // 2002/11/04 Moca ファンクションキーのグループボタン数
00594
00595     cProfile.IOProfileData( pszSecName, LTEXT("bDispTabWnd")            , common.m_sTabBar.m_bDispTabWnd ); //タブウインドウ //@@@ 2003.05.31 MIK
00596     cProfile.IOProfileData( pszSecName, LTEXT("bDispTabWndMultiWin")    , common.m_sTabBar.m_bDispTabWndMultiWin ); //タブウインドウ //@@@ 2003.05.31 MIK
00597     cProfile.IOProfileData( pszSecName, LTEXT("szTabWndCaption")        , MakeStringBufferW(common.m_sTabBar.m_szTabWndCaption) );  //@@@ 2003.06.13 MIK
00598     cProfile.IOProfileData( pszSecName, LTEXT("bSameTabWidth")          , common.m_sTabBar.m_bSameTabWidth );   // 2006.01.28 ryoji タブを等幅にする
00599     cProfile.IOProfileData( pszSecName, LTEXT("bDispTabIcon")           , common.m_sTabBar.m_bDispTabIcon );    // 2006.01.28 ryoji タブにアイコンを表示する
00600     cProfile.IOProfileData( pszSecName, LTEXT("bSortTabList")           , common.m_sTabBar.m_bSortTabList );    // 2006.05.10 ryoji タブ一覧をソートする
00601     cProfile.IOProfileData( pszSecName, LTEXT("bTab_RetainEmptyWin")    , common.m_sTabBar.m_bTab_RetainEmptyWin ); // 最後のファイルが閉じられたとき(無題)を残す   // 2007.02.11 genta
00602     cProfile.IOProfileData( pszSecName, LTEXT("bTab_CloseOneWin")   , common.m_sTabBar.m_bTab_CloseOneWin );    // タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる // 2007.02.11 genta
00603     cProfile.IOProfileData( pszSecName, LTEXT("bTab_ListFull")          , common.m_sTabBar.m_bTab_ListFull );   // タブ一覧をフルパス表示する  // 2007.02.28 ryoji
00604     cProfile.IOProfileData( pszSecName, LTEXT("bChgWndByWheel")     , common.m_sTabBar.m_bChgWndByWheel );  // 2006.03.26 ryoji マウスホイールでウィンドウ切り替え
00605
00606     // 2001/06/20 asa-o 分割ウィンドウのスクロールの同期をとる
00607     cProfile.IOProfileData( pszSecName, LTEXT("bSplitterWndHScroll")    , common.m_sWindow.m_bSplitterWndHScroll );
00608     cProfile.IOProfileData( pszSecName, LTEXT("bSplitterWndVScroll")    , common.m_sWindow.m_bSplitterWndVScroll );
00609
00610     cProfile.IOProfileData( pszSecName, LTEXT("szMidashiKigou")     , MakeStringBufferW(common.m_sFormat.m_szMidashiKigou) );
00611     cProfile.IOProfileData( pszSecName, LTEXT("szInyouKigou")           , MakeStringBufferW(common.m_sFormat.m_szInyouKigou) );
00612
00613     // 2001/06/14 asa-o 補完とキーワードヘルプはタイプ別に移動したので削除：３行
00614     cProfile.IOProfileData( pszSecName, LTEXT("bUseHokan")              , common.m_sHelper.m_bUseHokan );
00615     // 2002/09/21 Moca bGrepKanjiCode_AutoDetect は bGrepCharSetに統合したので削除
00616     // 2001/06/19 asa-o タイプ別に移動したので削除：1行
00617     cProfile.IOProfileData( pszSecName, LTEXT("bSaveWindowSize")        , common.m_sWindow.m_nSaveWindowSize );
00618     cProfile.IOProfileData( pszSecName, LTEXT("nWinSizeType")           , common.m_sWindow.m_nWinSizeType );
00619     cProfile.IOProfileData( pszSecName, LTEXT("nWinSizeCX")             , common.m_sWindow.m_nWinSizeCX );
00620     cProfile.IOProfileData( pszSecName, LTEXT("nWinSizeCY")             , common.m_sWindow.m_nWinSizeCY );
00621     // 2004.03.30 Moca *nWinPos*を追加
00622     cProfile.IOProfileData( pszSecName, LTEXT("nSaveWindowPos")         , common.m_sWindow.m_nSaveWindowPos );
00623     cProfile.IOProfileData( pszSecName, LTEXT("nWinPosX")               , common.m_sWindow.m_nWinPosX );
00624     cProfile.IOProfileData( pszSecName, LTEXT("nWinPosY")               , common.m_sWindow.m_nWinPosY );
00625     cProfile.IOProfileData( pszSecName, LTEXT("bTaskTrayUse")           , common.m_sGeneral.m_bUseTaskTray );
00626     cProfile.IOProfileData( pszSecName, LTEXT("bTaskTrayStay")          , common.m_sGeneral.m_bStayTaskTray );
00627
00628     cProfile.IOProfileData( pszSecName, LTEXT("wTrayMenuHotKeyCode")        , common.m_sGeneral.m_wTrayMenuHotKeyCode );
00629     cProfile.IOProfileData( pszSecName, LTEXT("wTrayMenuHotKeyMods")        , common.m_sGeneral.m_wTrayMenuHotKeyMods );
00630     cProfile.IOProfileData( pszSecName, LTEXT("bUseOLE_DragDrop")           , common.m_sEdit.m_bUseOLE_DragDrop );
00631     cProfile.IOProfileData( pszSecName, LTEXT("bUseOLE_DropSource")         , common.m_sEdit.m_bUseOLE_DropSource );
00632     cProfile.IOProfileData( pszSecName, LTEXT("bDispExitingDialog")         , common.m_sGeneral.m_bDispExitingDialog );
00633     cProfile.IOProfileData( pszSecName, LTEXT("bEnableUnmodifiedOverwrite") , common.m_sFile.m_bEnableUnmodifiedOverwrite );
00634     cProfile.IOProfileData( pszSecName, LTEXT("bSelectClickedURL")          , common.m_sEdit.m_bSelectClickedURL );
00635     cProfile.IOProfileData( pszSecName, LTEXT("bGrepExitConfirm")           , common.m_sSearch.m_bGrepExitConfirm );/* Grepモードで保存確認するか */
00636 //  cProfile.IOProfileData( pszSecName, LTEXT("bRulerDisp")                 , common.m_bRulerDisp );/* ルーラー表示 */
00637     cProfile.IOProfileData( pszSecName, LTEXT("nRulerHeight")               , common.m_sWindow.m_nRulerHeight );/* ルーラー高さ */
00638     cProfile.IOProfileData( pszSecName, LTEXT("nRulerBottomSpace")          , common.m_sWindow.m_nRulerBottomSpace );/* ルーラーとテキストの隙間 */
00639     cProfile.IOProfileData( pszSecName, LTEXT("nRulerType")                 , common.m_sWindow.m_nRulerType );/* ルーラーのタイプ */
00640     //  Sep. 18, 2002 genta 追加
00641     cProfile.IOProfileData( pszSecName, LTEXT("nLineNumberRightSpace")      , common.m_sWindow.m_nLineNumRightSpace );/* 行番号の右側の隙間 */
00642     cProfile.IOProfileData( pszSecName, LTEXT("nVertLineOffset")            , common.m_sWindow.m_nVertLineOffset ); // 2005.11.10 Moca
00643     cProfile.IOProfileData( pszSecName, LTEXT("bCopyAndDisablSelection")    , common.m_sEdit.m_bCopyAndDisablSelection );/* コピーしたら選択解除 */
00644     cProfile.IOProfileData( pszSecName, LTEXT("bEnableLineModePaste")       , common.m_sEdit.m_bEnableLineModePaste );/* ラインモード貼り付けを可能にする */    // 2007.10.08 ryoji
00645     cProfile.IOProfileData( pszSecName, LTEXT("bHtmlHelpIsSingle")          , common.m_sHelper.m_bHtmlHelpIsSingle );/* HtmlHelpビューアはひとつ */
00646     cProfile.IOProfileData( pszSecName, LTEXT("bCompareAndTileHorz")        , common.m_sCompare.m_bCompareAndTileHorz );/* 文書比較後、左右に並べて表示 */    //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00647     cProfile.IOProfileData( pszSecName, LTEXT("bDropFileAndClose")          , common.m_sFile.m_bDropFileAndClose );/* ファイルをドロップしたときは閉じて開く */
00648     cProfile.IOProfileData( pszSecName, LTEXT("nDropFileNumMax")            , common.m_sFile.m_nDropFileNumMax );/* 一度にドロップ可能なファイル数 */
00649     cProfile.IOProfileData( pszSecName, LTEXT("bCheckFileTimeStamp")        , common.m_sFile.m_bCheckFileTimeStamp );/* 更新の監視 */
00650     cProfile.IOProfileData( pszSecName, LTEXT("bNotOverWriteCRLF")          , common.m_sEdit.m_bNotOverWriteCRLF );/* 改行は上書きしない */
00651     cProfile.IOProfileData( pszSecName, LTEXT("bAutoCloseDlgFind")          , common.m_sSearch.m_bAutoCloseDlgFind );/* 検索ダイアログを自動的に閉じる */
00652     cProfile.IOProfileData( pszSecName, LTEXT("bAutoCloseDlgFuncList")      , common.m_sOutline.m_bAutoCloseDlgFuncList );/* アウトライン ダイアログを自動的に閉じる */
00653     cProfile.IOProfileData( pszSecName, LTEXT("bAutoCloseDlgReplace")       , common.m_sSearch.m_bAutoCloseDlgReplace );/* 置換 ダイアログを自動的に閉じる */
00654     cProfile.IOProfileData( pszSecName, LTEXT("bAutoColmnPaste")            , common.m_sEdit.m_bAutoColmnPaste );/* 矩形コピーのテキストは常に矩形貼り付け */
00655     cProfile.IOProfileData( pszSecName, LTEXT("NoCaretMoveByActivation")    , common.m_sGeneral.m_bNoCaretMoveByActivation );/* マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji (add by genta) */
00656     cProfile.IOProfileData( pszSecName, LTEXT("bScrollBarHorz")             , common.m_sWindow.m_bScrollBarHorz );/* 水平スクロールバーを使う */
00657
00658     cProfile.IOProfileData( pszSecName, LTEXT("bHokanKey_RETURN")           , common.m_sHelper.m_bHokanKey_RETURN );/* VK_RETURN 補完決定キーが有効/無効 */
00659     cProfile.IOProfileData( pszSecName, LTEXT("bHokanKey_TAB")              , common.m_sHelper.m_bHokanKey_TAB );/* VK_TAB    補完決定キーが有効/無効 */
00660     cProfile.IOProfileData( pszSecName, LTEXT("bHokanKey_RIGHT")            , common.m_sHelper.m_bHokanKey_RIGHT );/* VK_RIGHT  補完決定キーが有効/無効 */
00661     cProfile.IOProfileData( pszSecName, LTEXT("bHokanKey_SPACE")            , common.m_sHelper.m_bHokanKey_SPACE );/* VK_SPACE  補完決定キーが有効/無効 */
00662
00663     cProfile.IOProfileData( pszSecName, LTEXT("nDateFormatType")            , common.m_sFormat.m_nDateFormatType );/* 日付書式のタイプ */
00664     cProfile.IOProfileData( pszSecName, LTEXT("szDateFormat")               , MakeStringBufferT(common.m_sFormat.m_szDateFormat) );//日付書式
00665     cProfile.IOProfileData( pszSecName, LTEXT("nTimeFormatType")            , common.m_sFormat.m_nTimeFormatType );/* 時刻書式のタイプ */
00666     cProfile.IOProfileData( pszSecName, LTEXT("szTimeFormat")               , MakeStringBufferT(common.m_sFormat.m_szTimeFormat) );//時刻書式
00667
00668     cProfile.IOProfileData( pszSecName, LTEXT("bMenuIcon")                  , common.m_sWindow.m_bMenuIcon );//メニューにアイコンを表示する
00669     cProfile.IOProfileData( pszSecName, LTEXT("bAutoMIMEdecode")            , common.m_sFile.m_bAutoMIMEdecode );//ファイル読み込み時にMIMEのdecodeを行うか
00670     cProfile.IOProfileData( pszSecName, LTEXT("bQueryIfCodeChange")         , common.m_sFile.m_bQueryIfCodeChange );//  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うか
00671     cProfile.IOProfileData( pszSecName, LTEXT("bAlertIfFileNotExist")       , common.m_sFile.m_bAlertIfFileNotExist );// Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00672
00673     cProfile.IOProfileData( pszSecName, LTEXT("bNoFilterSaveNew")           , common.m_sFile.m_bNoFilterSaveNew );  // 新規から保存時は全ファイル表示    // 2006.11.16 ryoji
00674     cProfile.IOProfileData( pszSecName, LTEXT("bNoFilterSaveFile")          , common.m_sFile.m_bNoFilterSaveFile ); // 新規以外から保存時は全ファイル表示  // 2006.11.16 ryoji
00675
00676     /* 「開く」ダイアログのサイズと位置 */
00677     const WCHAR* pszKeyName = LTEXT("rcOpenDialog");
00678     const WCHAR* pszForm = LTEXT("%d,%d,%d,%d");
00679     WCHAR       szKeyData[1024];
00680     if( cProfile.IsReadingMode() ){
00681         if( cProfile.IOProfileData( pszSecName, pszKeyName, MakeStringBufferW(szKeyData)) ){
00682             swscanf( szKeyData, pszForm,
00683                 &common.m_sOthers.m_rcOpenDialog.left,
00684                 &common.m_sOthers.m_rcOpenDialog.top,
00685                 &common.m_sOthers.m_rcOpenDialog.right,
00686                 &common.m_sOthers.m_rcOpenDialog.bottom
00687             );
00688         }
00689     }else{
00690         auto_sprintf( szKeyData, pszForm,
00691             common.m_sOthers.m_rcOpenDialog.left,
00692             common.m_sOthers.m_rcOpenDialog.top,
00693             common.m_sOthers.m_rcOpenDialog.right,
00694             common.m_sOthers.m_rcOpenDialog.bottom
00695         );
00696         cProfile.IOProfileData( pszSecName, pszKeyName, MakeStringBufferW(szKeyData) );
00697     }
00698
00699     //2002.02.08 aroka,hor
00700     cProfile.IOProfileData( pszSecName, LTEXT("bMarkUpBlankLineEnable") , common.m_sOutline.m_bMarkUpBlankLineEnable );
00701     cProfile.IOProfileData( pszSecName, LTEXT("bFunclistSetFocusOnJump")    , common.m_sOutline.m_bFunclistSetFocusOnJump );
00702
00703     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00704     cProfile.IOProfileData( pszSecName, LTEXT("szWinCaptionActive") , MakeStringBufferT(common.m_sWindow.m_szWindowCaptionActive) );
00705     cProfile.IOProfileData( pszSecName, LTEXT("szWinCaptionInactive"), MakeStringBufferT(common.m_sWindow.m_szWindowCaptionInactive) );
00706
00707     // アウトライン/トピックリスト の位置とサイズを記憶  20060201 aroka
00708     cProfile.IOProfileData( pszSecName, LTEXT("bRememberOutlineWindowPos"), common.m_sOutline.m_bRememberOutlineWindowPos);
00709     if( common.m_sOutline.m_bRememberOutlineWindowPos ){
00710         cProfile.IOProfileData( pszSecName, LTEXT("widthOutlineWindow") , common.m_sOutline.m_widthOutlineWindow);
00711         cProfile.IOProfileData( pszSecName, LTEXT("heightOutlineWindow"), common.m_sOutline.m_heightOutlineWindow);
00712         cProfile.IOProfileData( pszSecName, LTEXT("xOutlineWindowPos")  , common.m_sOutline.m_xOutlineWindowPos);
00713         cProfile.IOProfileData( pszSecName, LTEXT("yOutlineWindowPos")  , common.m_sOutline.m_yOutlineWindowPos);
00714     }
00715
00716 }
00717
00725 void CShareData::ShareData_IO_Toolbar( CDataProfile& cProfile )
00726 {
00727     const WCHAR* pszSecName = LTEXT("Toolbar");
00728     int     i;
00729     WCHAR   szKeyName[64];
00730     CommonSetting_ToolBar& toolbar = m_pShareData->m_Common.m_sToolBar;
00731
00732     cProfile.IOProfileData( pszSecName, LTEXT("nToolBarButtonNum"), toolbar.m_nToolBarButtonNum );
00733     cProfile.IOProfileData( pszSecName, LTEXT("bToolBarIsFlat"), toolbar.m_bToolBarIsFlat );
00734     int nSize = toolbar.m_nToolBarButtonNum;
00735     for( i = 0; i < nSize; ++i ){
00736         auto_sprintf( szKeyName, LTEXT("nTBB[%03d]"), i );
00737         cProfile.IOProfileData( pszSecName, szKeyName, toolbar.m_nToolBarButtonIdxArr[i] );
00738     }
00739     //読み込み時は残りを初期化
00740     if( cProfile.IsReadingMode() ){
00741         for(; i< MAX_TOOLBARBUTTONS; ++i){
00742             toolbar.m_nToolBarButtonIdxArr[i] = 0;
00743         }
00744     }
00745 }
00746
00753 void CShareData::ShareData_IO_CustMenu( CDataProfile& cProfile )
00754 {
00755     const WCHAR* pszSecName = LTEXT("CustMenu");
00756     int     i, j;
00757     WCHAR   szKeyName[64];
00758     CommonSetting_CustomMenu& menu = m_pShareData->m_Common.m_sCustomMenu;
00759
00760     for( i = 0; i < MAX_CUSTOM_MENU; ++i ){
00761         auto_sprintf( szKeyName, LTEXT("szCMN[%02d]"), i );
00762         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(menu.m_szCustMenuNameArr[i]) );    //  Oct. 15, 2001 genta 最大長指定
00763         auto_sprintf( szKeyName, LTEXT("nCMIN[%02d]"), i );
00764         cProfile.IOProfileData( pszSecName, szKeyName, menu.m_nCustMenuItemNumArr[i] );
00765         int nSize = menu.m_nCustMenuItemNumArr[i];
00766         for( j = 0; j < nSize; ++j ){
00767             auto_sprintf( szKeyName, LTEXT("nCMIF[%02d][%02d]"), i, j );
00768             cProfile.IOProfileData( pszSecName, szKeyName, menu.m_nCustMenuItemFuncArr[i][j] );
00769             auto_sprintf( szKeyName, LTEXT("nCMIK[%02d][%02d]"), i, j );
00770             cProfile.IOProfileData( pszSecName, szKeyName, menu.m_nCustMenuItemKeyArr[i][j] );
00771         }
00772     }
00773 }
00774
00781 void CShareData::ShareData_IO_Font( CDataProfile& cProfile )
00782 {
00783     const WCHAR* pszSecName = LTEXT("Font");
00784     const WCHAR* pszForm = LTEXT("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d");
00785     WCHAR       szKeyData[1024];
00786     CommonSetting_View& view = m_pShareData->m_Common.m_sView;
00787     if( cProfile.IsReadingMode() ){
00788         if( cProfile.IOProfileData( pszSecName, LTEXT("lf"), MakeStringBufferW(szKeyData) ) ){
00789             swscanf( szKeyData, pszForm,
00790                 &view.m_lf.lfHeight,
00791                 &view.m_lf.lfWidth,
00792                 &view.m_lf.lfEscapement,
00793                 &view.m_lf.lfOrientation,
00794                 &view.m_lf.lfWeight,
00795                 &view.m_lf.lfItalic,
00796                 &view.m_lf.lfUnderline,
00797                 &view.m_lf.lfStrikeOut,
00798                 &view.m_lf.lfCharSet,
00799                 &view.m_lf.lfOutPrecision,
00800                 &view.m_lf.lfClipPrecision,
00801                 &view.m_lf.lfQuality,
00802                 &view.m_lf.lfPitchAndFamily
00803             );
00804         }
00805     }else{
00806         auto_sprintf( szKeyData, pszForm,
00807             view.m_lf.lfHeight,
00808             view.m_lf.lfWidth,
00809             view.m_lf.lfEscapement,
00810             view.m_lf.lfOrientation,
00811             view.m_lf.lfWeight,
00812             view.m_lf.lfItalic,
00813             view.m_lf.lfUnderline,
00814             view.m_lf.lfStrikeOut,
00815             view.m_lf.lfCharSet,
00816             view.m_lf.lfOutPrecision,
00817             view.m_lf.lfClipPrecision,
00818             view.m_lf.lfQuality,
00819             view.m_lf.lfPitchAndFamily
00820         );
00821         cProfile.IOProfileData( pszSecName, LTEXT("lf"), MakeStringBufferW(szKeyData) );
00822     }
00823
00824     cProfile.IOProfileData( pszSecName, LTEXT("lfFaceName"), MakeStringBufferT(view.m_lf.lfFaceName) );
00825
00826     cProfile.IOProfileData( pszSecName, LTEXT("bFontIs_FIXED_PITCH"), view.m_bFontIs_FIXED_PITCH );
00827 }
00828
00835 void CShareData::ShareData_IO_KeyBind( CDataProfile& cProfile )
00836 {
00837     const WCHAR* pszSecName = LTEXT("KeyBind");
00838     int     i;
00839     WCHAR   szKeyName[64];
00840     WCHAR   szKeyData[1024];
00841     int     nSize = m_pShareData->m_nKeyNameArrNum;
00842     for( i = 0; i < nSize; ++i ){
00843         // 2005.04.07 D.S.Koba
00844         KEYDATA& keydata = m_pShareData->m_pKeyNameArr[i];
00845         _tcstowcs( szKeyName, keydata.m_szKeyName, _countof(szKeyName) );
00846
00847         if( cProfile.IsReadingMode() ){
00848             if( cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) ) ){
00849                 swscanf( szKeyData, LTEXT("%d,%d,%d,%d,%d,%d,%d,%d"),
00850                     &keydata.m_nFuncCodeArr[0],
00851                     &keydata.m_nFuncCodeArr[1],
00852                     &keydata.m_nFuncCodeArr[2],
00853                     &keydata.m_nFuncCodeArr[3],
00854                     &keydata.m_nFuncCodeArr[4],
00855                     &keydata.m_nFuncCodeArr[5],
00856                     &keydata.m_nFuncCodeArr[6],
00857                     &keydata.m_nFuncCodeArr[7]
00858                  );
00859             }
00860         }else{
00861             auto_sprintf( szKeyData, LTEXT("%d,%d,%d,%d,%d,%d,%d,%d"),
00862                 keydata.m_nFuncCodeArr[0],
00863                 keydata.m_nFuncCodeArr[1],
00864                 keydata.m_nFuncCodeArr[2],
00865                 keydata.m_nFuncCodeArr[3],
00866                 keydata.m_nFuncCodeArr[4],
00867                 keydata.m_nFuncCodeArr[5],
00868                 keydata.m_nFuncCodeArr[6],
00869                 keydata.m_nFuncCodeArr[7]
00870             );
00871             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
00872         }
00873     }
00874 }
00875
00882 void CShareData::ShareData_IO_Print( CDataProfile& cProfile )
00883 {
00884     const WCHAR* pszSecName = LTEXT("Print");
00885     int     i, j;
00886     WCHAR   szKeyName[64];
00887     WCHAR   szKeyData[1024];
00888     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00889         // 2005.04.07 D.S.Koba
00890         PRINTSETTING& printsetting = m_pShareData->m_PrintSettingArr[i];
00891         auto_sprintf( szKeyName, LTEXT("PS[%02d].nInts"), i );
00892         static const WCHAR* pszForm = LTEXT("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d");
00893         if( cProfile.IsReadingMode() ){
00894             if( cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) ) ){
00895                 swscanf( szKeyData, pszForm,
00896                     &printsetting.m_nPrintFontWidth     ,
00897                     &printsetting.m_nPrintFontHeight        ,
00898                     &printsetting.m_nPrintDansuu            ,
00899                     &printsetting.m_nPrintDanSpace      ,
00900                     &printsetting.m_nPrintLineSpacing       ,
00901                     &printsetting.m_nPrintMarginTY      ,
00902                     &printsetting.m_nPrintMarginBY      ,
00903                     &printsetting.m_nPrintMarginLX      ,
00904                     &printsetting.m_nPrintMarginRX      ,
00905                     &printsetting.m_nPrintPaperOrientation,
00906                     &printsetting.m_nPrintPaperSize     ,
00907                     &printsetting.m_bPrintWordWrap      ,
00908                     &printsetting.m_bPrintLineNumber        ,
00909                     &printsetting.m_bHeaderUse[0]           ,
00910                     &printsetting.m_bHeaderUse[1]           ,
00911                     &printsetting.m_bHeaderUse[2]           ,
00912                     &printsetting.m_bFooterUse[0]           ,
00913                     &printsetting.m_bFooterUse[1]           ,
00914                     &printsetting.m_bFooterUse[2]
00915                  );
00916             }
00917         }else{
00918             auto_sprintf( szKeyData, pszForm,
00919                 printsetting.m_nPrintFontWidth      ,
00920                 printsetting.m_nPrintFontHeight     ,
00921                 printsetting.m_nPrintDansuu         ,
00922                 printsetting.m_nPrintDanSpace           ,
00923                 printsetting.m_nPrintLineSpacing        ,
00924                 printsetting.m_nPrintMarginTY           ,
00925                 printsetting.m_nPrintMarginBY           ,
00926                 printsetting.m_nPrintMarginLX           ,
00927                 printsetting.m_nPrintMarginRX           ,
00928                 printsetting.m_nPrintPaperOrientation   ,
00929                 printsetting.m_nPrintPaperSize      ,
00930                 printsetting.m_bPrintWordWrap           ,
00931                 printsetting.m_bPrintLineNumber     ,
00932                 printsetting.m_bHeaderUse[0]            ,
00933                 printsetting.m_bHeaderUse[1]            ,
00934                 printsetting.m_bHeaderUse[2]            ,
00935                 printsetting.m_bFooterUse[0]            ,
00936                 printsetting.m_bFooterUse[1]            ,
00937                 printsetting.m_bFooterUse[2]
00938             );
00939             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
00940         }
00941
00942         auto_sprintf( szKeyName, LTEXT("PS[%02d].szSName")  , i );
00943         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_szPrintSettingName) );
00944         auto_sprintf( szKeyName, LTEXT("PS[%02d].szFF") , i );
00945         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_szPrintFontFaceHan) );
00946         auto_sprintf( szKeyName, LTEXT("PS[%02d].szFFZ")    , i );
00947         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_szPrintFontFaceZen) );
00948         for( j = 0; j < 3; ++j ){
00949             auto_sprintf( szKeyName, LTEXT("PS[%02d].szHF[%d]") , i, j );
00950             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(printsetting.m_szHeaderForm[j]) );
00951             auto_sprintf( szKeyName, LTEXT("PS[%02d].szFTF[%d]"), i, j );
00952             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(printsetting.m_szFooterForm[j]) );
00953         }
00954         auto_sprintf( szKeyName, LTEXT("PS[%02d].szDriver"), i );
00955         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_mdmDevMode.m_szPrinterDriverName) );
00956         auto_sprintf( szKeyName, LTEXT("PS[%02d].szDevice"), i );
00957         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_mdmDevMode.m_szPrinterDeviceName) );
00958         auto_sprintf( szKeyName, LTEXT("PS[%02d].szOutput"), i );
00959         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(printsetting.m_mdmDevMode.m_szPrinterOutputName) );
00960
00961         // 2002.02.16 hor とりあえず旧設定を変換しとく
00962         if(0==wcscmp(printsetting.m_szHeaderForm[0],_EDITL("&f")) &&
00963            0==wcscmp(printsetting.m_szFooterForm[0],_EDITL("&C- &P -"))
00964         ){
00965             _tcscpy( printsetting.m_szHeaderForm[0], _EDITL("$f") );
00966             _tcscpy( printsetting.m_szFooterForm[0], _EDITL("") );
00967             _tcscpy( printsetting.m_szFooterForm[1], _EDITL("- $p -") );
00968         }
00969
00970         //禁則    //@@@ 2002.04.09 MIK
00971         auto_sprintf( szKeyName, LTEXT("PS[%02d].bKinsokuHead"), i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuHead );
00972         auto_sprintf( szKeyName, LTEXT("PS[%02d].bKinsokuTail"), i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuTail );
00973         auto_sprintf( szKeyName, LTEXT("PS[%02d].bKinsokuRet"),  i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuRet ); //@@@ 2002.04.13 MIK
00974         auto_sprintf( szKeyName, LTEXT("PS[%02d].bKinsokuKuto"), i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuKuto );    //@@@ 2002.04.17 MIK
00975     }
00976 }
00977
00984 void CShareData::ShareData_IO_Types( CDataProfile& cProfile )
00985 {
00986     const WCHAR* pszSecName;
00987     int     i, j;
00988     WCHAR   szKey[256];
00989     WCHAR   szKeyName[64];
00990     WCHAR   szKeyData[1024];
00991
00992     for( i = 0; i < MAX_TYPES; ++i ){
00993         // 2005.04.07 D.S.Koba
00994         Types& types = m_pShareData->m_Types[i];
00995         auto_sprintf( szKey, LTEXT("Types(%d)"), i );
00996         pszSecName = szKey;
00997         static const WCHAR* pszForm = LTEXT("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d");    //MIK
00998         auto_strcpy( szKeyName, LTEXT("nInts") );
00999         if( cProfile.IsReadingMode() ){
01000             if( cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) ) ){
01001                 swscanf( szKeyData, pszForm,
01002                     &types.m_nIdx,
01003                     &types.m_nMaxLineKetas,
01004                     &types.m_nColmSpace,
01005                     &types.m_nTabSpace,
01006                     &types.m_nKeyWordSetIdx[0],
01007                     &types.m_nKeyWordSetIdx[1], //MIK
01008                     &types.m_nStringType,
01009                     &types.m_bLineNumIsCRLF,
01010                     &types.m_nLineTermType,
01011                     &types.m_bWordWrap,
01012                     &types.m_nCurrentPrintSetting
01013                  );
01014             }
01015             // 折り返し幅の最小値は10。少なくとも４ないとハングアップする。 // 20050818 aroka
01016             if( types.m_nMaxLineKetas < CLayoutInt(MINLINEKETAS) ){
01017                 types.m_nMaxLineKetas = CLayoutInt(MINLINEKETAS);
01018             }
01019         }else{
01020             auto_sprintf( szKeyData, pszForm,
01021                 types.m_nIdx,
01022                 types.m_nMaxLineKetas,
01023                 types.m_nColmSpace,
01024                 types.m_nTabSpace,
01025                 types.m_nKeyWordSetIdx[0],
01026                 types.m_nKeyWordSetIdx[1],  //MIK
01027                 types.m_nStringType,
01028                 types.m_bLineNumIsCRLF,
01029                 types.m_nLineTermType,
01030                 types.m_bWordWrap,
01031                 types.m_nCurrentPrintSetting
01032             );
01033             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
01034         }
01035         // 2005.01.13 MIK Keywordset 3-10
01036         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect3"),  types.m_nKeyWordSetIdx[2] );
01037         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect4"),  types.m_nKeyWordSetIdx[3] );
01038         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect5"),  types.m_nKeyWordSetIdx[4] );
01039         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect6"),  types.m_nKeyWordSetIdx[5] );
01040         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect7"),  types.m_nKeyWordSetIdx[6] );
01041         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect8"),  types.m_nKeyWordSetIdx[7] );
01042         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect9"),  types.m_nKeyWordSetIdx[8] );
01043         cProfile.IOProfileData( pszSecName, LTEXT("nKeywordSelect10"), types.m_nKeyWordSetIdx[9] );
01044
01045         /* 行間のすきま */
01046         if( !cProfile.IsReadingMode() ){
01047             if( types.m_nLineSpace < /* 1 */ 0 ){
01048                 types.m_nLineSpace = /* 1 */ 0;
01049             }
01050             if( types.m_nLineSpace > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01051                 types.m_nLineSpace = LINESPACE_MAX;
01052             }
01053         }
01054         cProfile.IOProfileData( pszSecName, LTEXT("nLineSpace"), types.m_nLineSpace );
01055         if( cProfile.IsReadingMode() ){
01056             if( types.m_nLineSpace < /* 1 */ 0 ){
01057                 types.m_nLineSpace = /* 1 */ 0;
01058             }
01059             if( types.m_nLineSpace > 16 ){
01060                 types.m_nLineSpace = 16;
01061             }
01062         }
01063
01064
01065         cProfile.IOProfileData( pszSecName, LTEXT("szTypeName"), MakeStringBufferT(types.m_szTypeName) );
01066         cProfile.IOProfileData( pszSecName, LTEXT("szTypeExts"), MakeStringBufferT(types.m_szTypeExts) );
01067 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01068         cProfile.IOProfileData( pszSecName, LTEXT("szTabViewString"), MakeStringBufferW(types.m_szTabViewString) );
01069 //#endif
01070         cProfile.IOProfileData( pszSecName, LTEXT("bTabArrow")          , types.m_bTabArrow );  //@@@ 2003.03.26 MIK
01071         cProfile.IOProfileData( pszSecName, LTEXT("bInsSpace")          , types.m_bInsSpace );  // 2001.12.03 hor
01072
01073         // From Here Sep. 28, 2002 genta / YAZAKI
01074         if( cProfile.IsReadingMode() ){
01075             //  Block Comment
01076             wchar_t buffer[2][ BLOCKCOMMENT_BUFFERSIZE ];
01077             //  2004.10.02 Moca 対になるコメント設定がともに読み込まれたときだけ有効な設定と見なす．
01078             //  ブロックコメントの始まりと終わり．行コメントの記号と桁位置
01079             bool bRet1, bRet2;
01080             buffer[0][0] = buffer[1][0] = L'\0';
01081             bRet1 = cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentFrom"), MakeStringBufferW(buffer[0]) );
01082             bRet2 = cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentTo"), MakeStringBufferW(buffer[1]) );
01083             if( bRet1 && bRet2 ) types.m_cBlockComment.CopyTo( 0, buffer[0], buffer[1] );
01084
01085             //@@@ 2001.03.10 by MIK
01086             buffer[0][0] = buffer[1][0] = L'\0';
01087             bRet1 = cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentFrom2"), MakeStringBufferW(buffer[0]) );
01088             bRet2 = cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentTo2")  , MakeStringBufferW(buffer[1]) );
01089             if( bRet1 && bRet2 ) types.m_cBlockComment.CopyTo( 1, buffer[0], buffer[1] );
01090
01091             //  Line Comment
01092             wchar_t lbuf[ COMMENT_DELIMITER_BUFFERSIZE ];
01093             int  pos;
01094
01095             lbuf[0] = L'\0'; pos = -1;
01096             bRet1 = cProfile.IOProfileData( pszSecName, LTEXT("szLineComment")      , MakeStringBufferW(lbuf) );
01097             bRet2 = cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn") , pos );
01098             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 0, lbuf, pos );
01099
01100             lbuf[0] = L'\0'; pos = -1;
01101             bRet1 = cProfile.IOProfileData( pszSecName, LTEXT("szLineComment2")     , MakeStringBufferW(lbuf) );
01102             bRet2 = cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn2"), pos );
01103             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 1, lbuf, pos );
01104
01105             lbuf[0] = L'\0'; pos = -1;
01106             bRet1 = cProfile.IOProfileData( pszSecName, LTEXT("szLineComment3")     , MakeStringBufferW(lbuf) );    //Jun. 01, 2001 JEPRO 追加
01107             bRet2 = cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn3"), pos );    //Jun. 01, 2001 JEPRO 追加
01108             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 2, lbuf, pos );
01109         }
01110         else { // write
01111             //  Block Comment
01112             cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentFrom") ,
01113                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cBlockComment.getBlockCommentFrom(0))) );
01114             cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentTo")   ,
01115                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cBlockComment.getBlockCommentTo(0))) );
01116
01117             //@@@ 2001.03.10 by MIK
01118             cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentFrom2"),
01119                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cBlockComment.getBlockCommentFrom(1))) );
01120             cProfile.IOProfileData( pszSecName, LTEXT("szBlockCommentTo2")  ,
01121                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cBlockComment.getBlockCommentTo(1))) );
01122
01123             //  Line Comment
01124             cProfile.IOProfileData( pszSecName, LTEXT("szLineComment")      ,
01125                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cLineComment.getLineComment(0))) );
01126             cProfile.IOProfileData( pszSecName, LTEXT("szLineComment2")     ,
01127                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cLineComment.getLineComment(1))) );
01128             cProfile.IOProfileData( pszSecName, LTEXT("szLineComment3")     ,
01129                 MakeStringBufferW0(const_cast<wchar_t*>(types.m_cLineComment.getLineComment(2))) ); //Jun. 01, 2001 JEPRO 追加
01130
01131             //  From here May 12, 2001 genta
01132             int pos;
01133             pos = types.m_cLineComment.getLineCommentPos( 0 );
01134             cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn") , pos );
01135             pos = types.m_cLineComment.getLineCommentPos( 1 );
01136             cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn2"), pos );
01137             pos = types.m_cLineComment.getLineCommentPos( 2 );
01138             cProfile.IOProfileData( pszSecName, LTEXT("nLineCommentColumn3"), pos );    //Jun. 01, 2001 JEPRO 追加
01139             //  To here May 12, 2001 genta
01140
01141         }
01142         // To Here Sep. 28, 2002 genta / YAZAKI
01143
01144         cProfile.IOProfileData( pszSecName, LTEXT("szIndentChars")      , MakeStringBufferW(types.m_szIndentChars) );
01145         cProfile.IOProfileData( pszSecName, LTEXT("cLineTermChar")      , types.m_cLineTermChar );
01146
01147         cProfile.IOProfileData( pszSecName, LTEXT("nDefaultOutline")    , types.m_nDefaultOutline );/* アウトライン解析方法 */
01148         cProfile.IOProfileData( pszSecName, LTEXT("szOutlineRuleFilename")  , types.m_szOutlineRuleFilename );/* アウトライン解析ルールファイル */
01149         cProfile.IOProfileData( pszSecName, LTEXT("nSmartIndent")       , types.m_nSmartIndent );/* スマートインデント種別 */
01150         //  Nov. 20, 2000 genta
01151         cProfile.IOProfileData( pszSecName, LTEXT("nImeState")          , types.m_nImeState );  //  IME制御
01152
01153         //  2001/06/14 Start By asa-o: タイプ別の補完ファイル
01154         //  Oct. 5, 2002 genta _countof()で誤ってポインタのサイズを取得していたのを修正
01155         cProfile.IOProfileData( pszSecName, LTEXT("szHokanFile")        , types.m_szHokanFile );        //  補完ファイル
01156         //  2001/06/14 End
01157
01158         //  2001/06/19 asa-o
01159         cProfile.IOProfileData( pszSecName, LTEXT("bHokanLoHiCase")     , types.m_bHokanLoHiCase );
01160
01161         //  2003.06.23 Moca ファイル内からの入力補完機能
01162         cProfile.IOProfileData( pszSecName, LTEXT("bUseHokanByFile")        , types.m_bUseHokanByFile );
01163
01164         //@@@ 2002.2.4 YAZAKI
01165         cProfile.IOProfileData( pszSecName, LTEXT("szExtHelp")          , types.m_szExtHelp );
01166
01167         cProfile.IOProfileData( pszSecName, LTEXT("szExtHtmlHelp")      , types.m_szExtHtmlHelp );
01168         cProfile.IOProfileData( pszSecName, LTEXT("bHtmlHelpIsSingle")  , types.m_bHokanLoHiCase );
01169
01170         cProfile.IOProfileData( pszSecName, LTEXT("bAutoIndent")            , types.m_bAutoIndent );
01171         cProfile.IOProfileData( pszSecName, LTEXT("bAutoIndent_ZENSPACE")   , types.m_bAutoIndent_ZENSPACE );
01172         cProfile.IOProfileData( pszSecName, LTEXT("bRTrimPrevLine")         , types.m_bRTrimPrevLine );         // 2005.10.08 ryoji
01173         cProfile.IOProfileData( pszSecName, LTEXT("nIndentLayout")          , types.m_nIndentLayout );
01174
01175         /* 色設定 I/O */
01176         IO_ColorSet( &cProfile, pszSecName, types.m_ColorInfoArr  );
01177
01178         // 2005.11.08 Moca 指定桁縦線
01179         for(j = 0; j < MAX_VERTLINES; j++ ){
01180             auto_sprintf( szKeyName, LTEXT("nVertLineIdx%d"), j + 1 );
01181             cProfile.IOProfileData( pszSecName, szKeyName, types.m_nVertLineIdx[j] );
01182             if( types.m_nVertLineIdx[j] == 0 ){
01183                 break;
01184             }
01185         }
01186
01187 //@@@ 2001.11.17 add start MIK
01188         {   //正規表現キーワード
01189             WCHAR   *p;
01190             cProfile.IOProfileData( pszSecName, LTEXT("bUseRegexKeyword"), types.m_bUseRegexKeyword );/* 正規表現キーワード使用するか？ */
01191             for(j = 0; j < 100; j++)
01192             {
01193                 auto_sprintf( szKeyName, LTEXT("RxKey[%03d]"), j );
01194                 if( cProfile.IsReadingMode() )
01195                 {
01196                     types.m_RegexKeywordArr[j].m_szKeyword[0] = L'\0';
01197                     types.m_RegexKeywordArr[j].m_nColorIndex = COLORIDX_REGEX1;
01198                     if( cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData)) )
01199                     {
01200                         p = wcschr(szKeyData, LTEXT(','));
01201                         if( p )
01202                         {
01203                             *p = LTEXT('\0');
01204                             types.m_RegexKeywordArr[j].m_nColorIndex = GetColorIndexByName(to_tchar(szKeyData));    //@@@ 2002.04.30
01205                             if( types.m_RegexKeywordArr[j].m_nColorIndex == -1 )    //名前でない
01206                                 types.m_RegexKeywordArr[j].m_nColorIndex = _wtoi(szKeyData);
01207                             p++;
01208                             wcscpy(types.m_RegexKeywordArr[j].m_szKeyword, p);
01209                             if( types.m_RegexKeywordArr[j].m_nColorIndex < 0
01210                              || types.m_RegexKeywordArr[j].m_nColorIndex >= COLORIDX_LAST )
01211                             {
01212                                 types.m_RegexKeywordArr[j].m_nColorIndex = COLORIDX_REGEX1;
01213                             }
01214                         }
01215                     }
01216                 }
01217                 // 2002.02.08 hor 未定義値を無視
01218                 else if(wcslen(types.m_RegexKeywordArr[j].m_szKeyword))
01219                 {
01220                     auto_sprintf( szKeyData, LTEXT("%ls,%ls"),
01221                         GetColorNameByIndex( types.m_RegexKeywordArr[j].m_nColorIndex ),
01222                         types.m_RegexKeywordArr[j].m_szKeyword);
01223                     cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
01224                 }
01225             }
01226         }
01227 //@@@ 2001.11.17 add end MIK
01228
01229         /* 禁則 */
01230         cProfile.IOProfileData( pszSecName, LTEXT("bKinsokuHead")   , types.m_bKinsokuHead );
01231         cProfile.IOProfileData( pszSecName, LTEXT("bKinsokuTail")   , types.m_bKinsokuTail );
01232         cProfile.IOProfileData( pszSecName, LTEXT("bKinsokuRet")    , types.m_bKinsokuRet );    //@@@ 2002.04.13 MIK
01233         cProfile.IOProfileData( pszSecName, LTEXT("bKinsokuKuto")   , types.m_bKinsokuKuto );   //@@@ 2002.04.17 MIK
01234         cProfile.IOProfileData( pszSecName, LTEXT("szKinsokuHead")  , MakeStringBufferW(types.m_szKinsokuHead) );
01235         cProfile.IOProfileData( pszSecName, LTEXT("szKinsokuTail")  , MakeStringBufferW(types.m_szKinsokuTail) );
01236         cProfile.IOProfileData( pszSecName, LTEXT("bUseDocumentIcon")   , types.m_bUseDocumentIcon );   // Sep. 19 ,2002 genta 変数名誤り修正
01237
01238 //@@@ 2006.04.10 fon ADD-start
01239         {   /* キーワード辞書 */
01240             static const WCHAR* pszForm = LTEXT("%d,%ls,%ls");
01241             WCHAR   *pH, *pT;   /* <pH>keyword<pT> */
01242             cProfile.IOProfileData( pszSecName, LTEXT("bUseKeyWordHelp"), types.m_bUseKeyWordHelp );    /* キーワード辞書選択を使用するか？ */
01243 //          cProfile.IOProfileData( pszSecName, LTEXT("nKeyHelpNum"), types.m_nKeyHelpNum );                /* 登録辞書数 */
01244             cProfile.IOProfileData( pszSecName, LTEXT("bUseKeyHelpAllSearch"), types.m_bUseKeyHelpAllSearch );  /* ヒットした次の辞書も検索(&A) */
01245             cProfile.IOProfileData( pszSecName, LTEXT("bUseKeyHelpKeyDisp"), types.m_bUseKeyHelpKeyDisp );      /* 1行目にキーワードも表示する(&W) */
01246             cProfile.IOProfileData( pszSecName, LTEXT("bUseKeyHelpPrefix"), types.m_bUseKeyHelpPrefix );        /* 選択範囲で前方一致検索(&P) */
01247             for(j = 0; j < MAX_KEYHELP_FILE; j++){
01248                 auto_sprintf( szKeyName, LTEXT("KDct[%02d]"), j );
01249                 /* 読み出し */
01250                 if( cProfile.IsReadingMode() ){
01251                     types.m_KeyHelpArr[j].m_nUse = 0;
01252                     types.m_KeyHelpArr[j].m_szAbout[0] = _T('\0');
01253                     types.m_KeyHelpArr[j].m_szPath[0] = _T('\0');
01254                     if( cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData)) ){
01255                         pH = szKeyData;
01256                         if( NULL != (pT=wcschr(pH, L',')) ){
01257                             *pT = L'\0';
01258                             types.m_KeyHelpArr[j].m_nUse = _wtoi( pH );
01259                             pH = pT+1;
01260                             if( NULL != (pT=wcschr(pH, L',')) ){
01261                                 *pT = L'\0';
01262                                 _wcstotcs( types.m_KeyHelpArr[j].m_szAbout, pH, _countof(types.m_KeyHelpArr[j].m_szAbout) );
01263                                 pH = pT+1;
01264                                 if( NULL != (*pH) ){
01265                                     _wcstotcs( types.m_KeyHelpArr[j].m_szPath, pH, _countof2(types.m_KeyHelpArr[j].m_szPath) );
01266                                     types.m_nKeyHelpNum = j+1;  // iniに保存せずに、読み出せたファイル分を辞書数とする
01267                                 }
01268                             }
01269                         }
01270                     }
01271                 }/* 書き込み */
01272                 else{
01273                     if(_tcslen(types.m_KeyHelpArr[j].m_szPath)){
01274                         auto_sprintf( szKeyData, pszForm,
01275                             types.m_KeyHelpArr[j].m_nUse,
01276                             types.m_KeyHelpArr[j].m_szAbout,
01277                             types.m_KeyHelpArr[j].m_szPath
01278                         );
01279                         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
01280                     }
01281                 }
01282             }
01283             /* 旧バージョンiniファイルの読み出しサポート */
01284             if( cProfile.IsReadingMode() ){
01285                 cProfile.IOProfileData( pszSecName, LTEXT("szKeyWordHelpFile"), types.m_KeyHelpArr[0].m_szPath );
01286             }
01287         }
01288 //@@@ 2006.04.10 fon ADD-end
01289
01290     }/* for */
01291 }
01292
01300 void CShareData::ShareData_IO_KeyWords( CDataProfile& cProfile )
01301 {
01302     const WCHAR*        pszSecName = LTEXT("KeyWords");
01303     int             i, j;
01304     WCHAR           szKeyName[64];
01305     WCHAR           szKeyData[1024];
01306     CKeyWordSetMgr* pCKeyWordSetMgr = &m_pShareData->m_CKeyWordSetMgr;
01307     int             nKeyWordSetNum = pCKeyWordSetMgr->m_nKeyWordSetNum;
01308
01309     cProfile.IOProfileData( pszSecName, LTEXT("nCurrentKeyWordSetIdx")  , pCKeyWordSetMgr->m_nCurrentKeyWordSetIdx );
01310     bool bIOSuccess = cProfile.IOProfileData( pszSecName, LTEXT("nKeyWordSetNum"), nKeyWordSetNum );
01311     if( cProfile.IsReadingMode() ){
01312         // nKeyWordSetNum が読み込めていれば、すべての情報がそろっていると仮定して処理を進める
01313         if( bIOSuccess ){
01314             // 2004.11.25 Moca キーワードセットの情報は、直接書き換えないで関数を利用する
01315             // 初期設定されているため、先に削除しないと固定メモリの確保に失敗する可能性がある
01316             int  nMemLen = MAX_KEYWORDNUM * ( MAX_KEYWORDLEN + 1 ) + 1;
01317             wchar_t *pszMem = new wchar_t[nMemLen];
01318             pCKeyWordSetMgr->ResetAllKeyWordSet();
01319             for( i = 0; i < nKeyWordSetNum; ++i ){
01320                 int nKEYWORDCASE = 0;
01321                 int nKeyWordNum = 0;
01322                 auto_sprintf( szKeyName, LTEXT("szSN[%02d]"), i );
01323                 cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
01324                 auto_sprintf( szKeyName, LTEXT("nCASE[%02d]"), i );
01325                 cProfile.IOProfileData( pszSecName, szKeyName, nKEYWORDCASE );
01326                 auto_sprintf( szKeyName, LTEXT("nKWN[%02d]"), i );
01327                 cProfile.IOProfileData( pszSecName, szKeyName, nKeyWordNum );
01328                 pCKeyWordSetMgr->AddKeyWordSet( szKeyData, nKEYWORDCASE, nKeyWordNum );
01329                 auto_sprintf( szKeyName, LTEXT("szKW[%02d]"), i );
01330                 if( cProfile.IOProfileData( pszSecName, szKeyName, StringBufferW(pszMem,nMemLen)) ){
01331                     pCKeyWordSetMgr->SetKeyWordArr( i, nKeyWordNum, pszMem );
01332                 }
01333             }
01334             delete [] pszMem;
01335         }
01336     }else{
01337         int nSize = pCKeyWordSetMgr->m_nKeyWordSetNum;
01338         for( i = 0; i < nSize; ++i ){
01339             auto_sprintf( szKeyName, LTEXT("szSN[%02d]"), i );
01340             cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferW(pCKeyWordSetMgr->m_szSetNameArr[i]) );
01341             auto_sprintf( szKeyName, LTEXT("nCASE[%02d]"), i );
01342             cProfile.IOProfileData( pszSecName, szKeyName, pCKeyWordSetMgr->m_nKEYWORDCASEArr[i] );
01343             auto_sprintf( szKeyName, LTEXT("nKWN[%02d]"), i );
01344             cProfile.IOProfileData( pszSecName, szKeyName, pCKeyWordSetMgr->m_nKeyWordNumArr[i] );
01345
01346             int nMemLen = 0;
01347             for( j = 0; j < pCKeyWordSetMgr->m_nKeyWordNumArr[i]; ++j ){
01348                 nMemLen += wcslen( pCKeyWordSetMgr->GetKeyWord( i, j ) );
01349                 nMemLen ++;
01350             }
01351             nMemLen ++;
01352             auto_sprintf( szKeyName, LTEXT("szKW[%02d].Size"), i );
01353             cProfile.IOProfileData( pszSecName, szKeyName, nMemLen );
01354             wchar_t* pszMem = new wchar_t[nMemLen + 1]; //  May 25, 2003 genta 区切りをTABに変更したので，最後の\0の分を追加
01355             wchar_t* pMem = pszMem;
01356             for( j = 0; j < pCKeyWordSetMgr->m_nKeyWordNumArr[i]; ++j ){
01357                 //  May 25, 2003 genta 区切りをTABに変更
01358                 int kwlen = wcslen( pCKeyWordSetMgr->GetKeyWord( i, j ) );
01359                 auto_memcpy( pMem, pCKeyWordSetMgr->GetKeyWord( i, j ), kwlen );
01360                 pMem += kwlen;
01361                 *pMem++ = L'\t';
01362             }
01363             *pMem = L'\0';
01364             auto_sprintf( szKeyName, LTEXT("szKW[%02d]"), i );
01365             cProfile.IOProfileData( pszSecName, szKeyName, StringBufferW(pszMem,nMemLen) );
01366             delete [] pszMem;
01367         }
01368     }
01369 }
01370
01377 void CShareData::ShareData_IO_Macro( CDataProfile& cProfile )
01378 {
01379     const WCHAR* pszSecName = LTEXT("Macro");
01380     int     i;
01381     WCHAR   szKeyName[64];
01382     for( i = 0; i < MAX_CUSTMACRO; ++i ){
01383         MacroRec& macrorec = m_pShareData->m_MacroTable[i];
01384         //  Oct. 4, 2001 genta あまり意味がなさそうなので削除：3行
01385         // 2002.02.08 hor 未定義値を無視
01386         if( !cProfile.IsReadingMode() && !_tcslen(macrorec.m_szName) && !_tcslen(macrorec.m_szFile) ) continue;
01387         auto_sprintf( szKeyName, LTEXT("Name[%03d]"), i );
01388         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(macrorec.m_szName) );
01389         auto_sprintf( szKeyName, LTEXT("File[%03d]"), i );
01390         cProfile.IOProfileData( pszSecName, szKeyName, MakeStringBufferT(macrorec.m_szFile) );
01391         auto_sprintf( szKeyName, LTEXT("ReloadWhenExecute[%03d]"), i );
01392         cProfile.IOProfileData( pszSecName, szKeyName, macrorec.m_bReloadWhenExecute );
01393     }
01394 }
01395
01402 void CShareData::ShareData_IO_Other( CDataProfile& cProfile )
01403 {
01404     const WCHAR* pszSecName = LTEXT("Other");   //セクションを1個作成した。2003.05.12 MIK
01405     int     i;
01406     WCHAR   szKeyName[64];
01407
01408     /* **** その他のダイアログ **** */
01409     /* 外部コマンド実行の「標準出力を得る」 */
01410     if(!cProfile.IOProfileData( pszSecName, LTEXT("nExecFlgOpt")    , m_pShareData->m_nExecFlgOpt ) ){ //   2006.12.03 maru オプション拡張
01411         cProfile.IOProfileData( pszSecName, LTEXT("bGetStdout")     , m_pShareData->m_nExecFlgOpt );
01412     }
01413
01414     /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
01415     cProfile.IOProfileData( pszSecName, LTEXT("bLineNumIsCRLF") , m_pShareData->m_bLineNumIsCRLF );
01416
01417     /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
01418     cProfile.IOProfileData( pszSecName, LTEXT("nDiffFlgOpt")    , m_pShareData->m_nDiffFlgOpt );
01419
01420     /* CTAGS */ //@@@ 2003.05.12 MIK
01421     cProfile.IOProfileData( pszSecName, LTEXT("nTagsOpt")       , m_pShareData->m_nTagsOpt );
01422     cProfile.IOProfileData( pszSecName, LTEXT("szTagsCmdLine")  , MakeStringBufferT(m_pShareData->m_szTagsCmdLine) );
01423
01424     //From Here 2005.04.03 MIK キーワード指定タグジャンプ
01425     cProfile.IOProfileData( pszSecName, LTEXT("_TagJumpKeyword_Counts"), m_pShareData->m_aTagJumpKeywords._GetSizeRef() );
01426     for( i = 0; i < m_pShareData->m_aTagJumpKeywords.size(); ++i ){
01427         auto_sprintf( szKeyName, LTEXT("TagJumpKeyword[%02d]"), i );
01428         if( i >= m_pShareData->m_aTagJumpKeywords.size() ){
01429             wcscpy( m_pShareData->m_aTagJumpKeywords[i], LTEXT("") );
01430         }
01431         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_aTagJumpKeywords[i] );
01432     }
01433     cProfile.IOProfileData( pszSecName, LTEXT("m_bTagJumpICase")        , m_pShareData->m_bTagJumpICase );
01434     cProfile.IOProfileData( pszSecName, LTEXT("m_bTagJumpAnyWhere")     , m_pShareData->m_bTagJumpAnyWhere );
01435     //From Here 2005.04.03 MIK キーワード指定タグジャンプの
01436
01437     //  MIK バージョン情報（書き込みのみ）
01438     if( ! cProfile.IsReadingMode() ){
01439         TCHAR   iniVer[256];
01440         auto_sprintf( iniVer, _T("%d.%d.%d.%d"),
01441                     HIWORD( m_pShareData->m_dwProductVersionMS ),
01442                     LOWORD( m_pShareData->m_dwProductVersionMS ),
01443                     HIWORD( m_pShareData->m_dwProductVersionLS ),
01444                     LOWORD( m_pShareData->m_dwProductVersionLS ) );
01445         cProfile.IOProfileData( pszSecName, LTEXT("szVersion"), MakeStringBufferT(iniVer) );
01446     }
01447 }
01448
01459 void CShareData::IO_ColorSet( CDataProfile* pcProfile, const WCHAR* pszSecName, ColorInfo* pColorInfoArr )
01460 {
01461     WCHAR   szKeyName[256];
01462     WCHAR   szKeyData[1024];
01463     int     j;
01464     for( j = 0; j < COLORIDX_LAST; ++j ){
01465         static const WCHAR* pszForm = LTEXT("%d,%d,%06x,%06x,%d");
01466         auto_sprintf( szKeyName, LTEXT("C[%ts]"), g_ColorAttributeArr[j].szName );  //Stonee, 2001/01/12, 2001/01/15
01467         if( pcProfile->IsReadingMode() ){
01468             if( pcProfile->IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) ) ){
01469                 pColorInfoArr[j].m_bUnderLine = FALSE;
01470                 swscanf( szKeyData, pszForm,
01471                     &pColorInfoArr[j].m_bDisp,
01472                     &pColorInfoArr[j].m_bFatFont,
01473                     &pColorInfoArr[j].m_colTEXT,
01474                     &pColorInfoArr[j].m_colBACK,
01475                     &pColorInfoArr[j].m_bUnderLine
01476                  );
01477             }else{
01478                 // 2006.12.07 ryoji
01479                 // sakura Ver1.5.13.1 以前のiniファイルを読んだときにキャレットがテキスト背景色と同じになると
01480                 // ちょっと困るのでキャレット色が読めないときはキャレット色をテキスト色と同じにする
01481                 if( COLORIDX_CARET == j )
01482                     pColorInfoArr[j].m_colTEXT = pColorInfoArr[COLORIDX_TEXT].m_colTEXT;
01483             }
01484             // 2006.12.18 ryoji
01485             // 矛盾設定があれば修復する
01486             unsigned int fAttribute = g_ColorAttributeArr[j].fAttribute;
01487             if( 0 != (fAttribute & COLOR_ATTRIB_FORCE_DISP) )
01488                 pColorInfoArr[j].m_bDisp = TRUE;
01489             if( 0 != (fAttribute & COLOR_ATTRIB_NO_BOLD) )
01490                 pColorInfoArr[j].m_bFatFont = FALSE;
01491             if( 0 != (fAttribute & COLOR_ATTRIB_NO_UNDERLINE) )
01492                 pColorInfoArr[j].m_bUnderLine = FALSE;
01493         }else{
01494             auto_sprintf( szKeyData, pszForm,
01495                 pColorInfoArr[j].m_bDisp,
01496                 pColorInfoArr[j].m_bFatFont,
01497                 pColorInfoArr[j].m_colTEXT,
01498                 pColorInfoArr[j].m_colBACK,
01499                 pColorInfoArr[j].m_bUnderLine
01500             );
01501             pcProfile->IOProfileData( pszSecName, szKeyName, MakeStringBufferW(szKeyData) );
01502         }
01503     }
01504     return;
01505 }
01506
01507
01520 void CShareData::PushTagJump(const TagJump *pTagJump)
01521 {
01522     int i = m_pShareData->m_TagJumpTop + 1;
01523     if( MAX_TAGJUMPNUM <= i ){
01524         i = 0;
01525     }
01526     if( m_pShareData->m_TagJumpNum < MAX_TAGJUMPNUM ){
01527         m_pShareData->m_TagJumpNum++;
01528     }
01529     m_pShareData->m_TagJump[i] = *pTagJump;
01530     m_pShareData->m_TagJumpTop = i;
01531 }
01532
01533
01546 bool CShareData::PopTagJump(TagJump *pTagJump)
01547 {
01548     if( 0 < m_pShareData->m_TagJumpNum ){
01549         *pTagJump = m_pShareData->m_TagJump[m_pShareData->m_TagJumpTop--];
01550         if( m_pShareData->m_TagJumpTop < 0 ){
01551             m_pShareData->m_TagJumpTop = MAX_TAGJUMPNUM - 1;
01552         }
01553         m_pShareData->m_TagJumpNum--;
01554         return true;
01555     }
01556     return false;
01557 }
01558
01559
01560 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShiftJis.cpp

sakura_core » charset

CShiftJis.cpp

#include "stdafx.h"
#include "CShiftJis.h"
#include "charcode.h"

CShiftJis.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShiftJis.cpp ソースファイル

sakura_core » charset

CShiftJis.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CShiftJis.h"
00003 #include "charcode.h"
00004
00006
00019 int CShiftJis::GetSizeOfChar( const char* pData, int nDataLen, int nIdx )
00020 {
00021     if( nIdx >= nDataLen ){
00022         return 0;
00023     }else if( nIdx == (nDataLen - 1) ){
00024         return 1;
00025     }
00026
00027     if( _IS_SJIS_1( reinterpret_cast<const unsigned char*>(pData)[nIdx] )
00028             && _IS_SJIS_2( reinterpret_cast<const unsigned char*>(pData)[nIdx+1] ) ){
00029         return 2;
00030     }
00031     return 1;
00032 }
00033
00034
00035 /* コード変換 SJIS→Unicode */
00036 EConvertResult CShiftJis::SJISToUnicode( CMemory* pMem )
00037 {
00038     //ソース取得
00039     int nSrcLen;
00040     const char* pSrc = (const char*)pMem->GetRawPtr(&nSrcLen);
00041
00042     //変換先バッファサイズ
00043     int nDstLen = MultiByteToWideChar(
00044         CP_ACP,
00045         0,
00046         pSrc,
00047         nSrcLen,
00048         NULL,
00049         0
00050     );
00051
00052     //変換先バッファ確保
00053     wchar_t* pDst = new wchar_t[nDstLen+1];
00054
00055     //変換
00056     nDstLen = MultiByteToWideChar(
00057         CP_ACP,
00058         0,
00059         pSrc,
00060         nSrcLen,
00061         pDst,
00062         nDstLen
00063     );
00064     pDst[nDstLen]=L'\0';
00065
00066     //pMemを更新
00067     pMem->SetRawData( pDst, nDstLen * sizeof(wchar_t) );
00068
00069     //後始末
00070     delete[] pDst;
00071
00072     return RESULT_COMPLETE; //SJIS→UNICODEでデータは失わない (解釈の仕方は人によるが、ここではデータ損失無しと定める)
00073 }
00074
00075
00076 /* コード変換 Unicode→SJIS */
00077 EConvertResult CShiftJis::UnicodeToSJIS( CMemory* pMem )
00078 {
00079     //ソース取得
00080     int nSrcLen;
00081     const wchar_t* pSrc=(const wchar_t*)pMem->GetRawPtr(&nSrcLen);
00082     nSrcLen/=sizeof(wchar_t); //文字単位に変換
00083
00084     //変換先バッファサイズ
00085     int nDstLen = WideCharToMultiByte(
00086         CP_ACP,
00087         0,
00088         pSrc,
00089         nSrcLen,
00090         NULL,
00091         0,
00092         NULL,
00093         NULL
00094     );
00095
00096     //変換先バッファ確保
00097     char* pDst = new char[nDstLen+1];
00098
00099     //変換
00100     BOOL bLost = FALSE;
00101     nDstLen = WideCharToMultiByte(
00102         CP_ACP,
00103         0,
00104         pSrc,
00105         nSrcLen,
00106         pDst,
00107         nDstLen,
00108         NULL,
00109         &bLost
00110     );
00111     pDst[nDstLen] = '\0';
00112
00113     //pMemを更新
00114     pMem->SetRawData( pDst, nDstLen );
00115
00116     //後始末
00117     delete[] pDst;
00118
00119     //結果
00120     if(bLost){
00121         return RESULT_LOSESOME;
00122     }
00123     else{
00124         return RESULT_COMPLETE;
00125     }
00126 }
00127
00128
00129
00130
00131
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShiftJis.h

sakura_core » charset

CShiftJis.h

#include "CCodeBase.h"

CShiftJis.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CShiftJis

Sakura-Editorに対してSat Nov 17 20:26:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CShiftJis.h ソースファイル

sakura_core » charset

CShiftJis.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CShiftJis : public CCodeBase{
00006 public:
00007
00008 public:
00009     //CCodeBaseインターフェース
00010     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return SJISToUnicode(pDst->_GetMemory()); }
00011     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToSJIS(pDst); }
00012
00013 public:
00014     //実装
00015     static EConvertResult SJISToUnicode(CMemory* pMem);     // SJIS      → Unicodeコード変換
00016     static EConvertResult UnicodeToSJIS(CMemory* pMem);     // Unicode   → SJISコード変換
00017     // 2005-09-02 D.S.Koba
00018     // 2007.08.14 kobake CMemoryからCShiftJisへ移動
00019     static int GetSizeOfChar( const char* pData, int nDataLen, int nIdx );
00020
00021 protected:
00022     static int MemSJISToUnicode( char**, const char*, int );    /* ASCII&SJIS文字列をUnicode に変換 */
00023 };
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSMacroMgr.cpp

sakura_core

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 Nov 17 20:26:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSMacroMgr.cpp ソースファイル

sakura_core

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     //ID                    関数名                           引数                                      戻り値の型 m_pszData
00037     {F_GETFILENAME,         LTEXT("GetFilename"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL }, //ファイル名を返す
00038     {F_GETSELECTED,         LTEXT("GetSelectedString"),     {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL }, //選択部分
00039     {F_EXPANDPARAMETER,     LTEXT("ExpandParameter"),       {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL }, //特殊文字の展開
00040     {F_GETLINESTR,          LTEXT("GetLineStr"),            {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL }, // 指定論理行の取得 2003.06.01 Moca
00041     {F_GETLINECOUNT,        LTEXT("GetLineCount"),          {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 全論理行数の取得 2003.06.01 Moca
00042     {F_CHGTABWIDTH,         LTEXT("ChangeTabWidth"),        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, //タブサイズ変更 2004.03.16 zenryaku
00043     {F_ISTEXTSELECTED,      LTEXT("IsTextSelected"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, //テキストが選択されているか 2005.7.30 maru
00044     {F_GETSELLINEFROM,      LTEXT("GetSelectLineFrom"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 選択開始行の取得 2005.7.30 maru
00045     {F_GETSELCOLMFROM,      LTEXT("GetSelectColmFrom"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 選択開始桁の取得 2005.7.30 maru
00046     {F_GETSELLINETO,        LTEXT("GetSelectLineTo"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 選択終了行の取得 2005.7.30 maru
00047     {F_GETSELCOLMTO,        LTEXT("GetSelectColmTo"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 選択終了桁の取得 2005.7.30 maru
00048     {F_ISINSMODE,           LTEXT("IsInsMode"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 挿入／上書きモードの取得 2005.7.30 maru
00049     {F_GETCHARCODE,         LTEXT("GetCharCode"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 文字コード取得 2005.07.31 maru
00050     {F_GETLINECODE,         LTEXT("GetLineCode"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // 改行コード取得 2005.08.05 maru
00051     {F_ISPOSSIBLEUNDO,      LTEXT("IsPossibleUndo"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_I4,      NULL }, // Undo可能か調べる 2005.08.05 maru
00052     {F_ISPOSSIBLEREDO,      LTEXT("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     {F_INVALID, 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,                     LTEXT("FileNew"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //新規作成
00067     {F_FILEOPEN,                    LTEXT("FileOpen"),              {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //開く
00068     {F_FILESAVE,                    LTEXT("FileSave"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上書き保存
00069     {F_FILESAVEALL,                 LTEXT("FileSaveAll"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上書き保存
00070     {F_FILESAVEAS,                  LTEXT("FileSaveAs"),            {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //名前を付けて保存
00071     {F_FILECLOSE,                   LTEXT("FileClose"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00072     {F_FILECLOSE_OPEN,              LTEXT("FileCloseOpen"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //閉じて開く
00073     {F_FILE_REOPEN,                 LTEXT("FileReopen"),            {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SJISで開き直す    //Dec. 4, 2002 genta
00074     {F_FILE_REOPEN_SJIS,            LTEXT("FileReopenSJIS"),        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SJISで開き直す
00075     {F_FILE_REOPEN_JIS,             LTEXT("FileReopenJIS"),         {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //JISで開き直す
00076     {F_FILE_REOPEN_EUC,             LTEXT("FileReopenEUC"),         {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //EUCで開き直す
00077     {F_FILE_REOPEN_UNICODE,         LTEXT("FileReopenUNICODE"),     {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Unicodeで開き直す
00078     {F_FILE_REOPEN_UNICODEBE,       LTEXT("FileReopenUNICODEBE"),   {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UnicodeBEで開き直す
00079     {F_FILE_REOPEN_UTF8,            LTEXT("FileReopenUTF8"),        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UTF-8で開き直す
00080     {F_FILE_REOPEN_UTF7,            LTEXT("FileReopenUTF7"),        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UTF-7で開き直す
00081     {F_PRINT,                       LTEXT("Print"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷
00082 //  {F_PRINT_DIALOG,                LTEXT("PrintDialog"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷ダイアログ
00083     {F_PRINT_PREVIEW,               LTEXT("PrintPreview"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷プレビュー
00084     {F_PRINT_PAGESETUP,             LTEXT("PrintPageSetup"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷ページ設定  //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00085     {F_OPEN_HfromtoC,               LTEXT("OpenHfromtoC"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //同名のC/C++ヘッダ(ソース)を開く    //Feb. 7, 2001 JEPRO 追加
00086     {F_OPEN_HHPP,                   LTEXT("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,                   LTEXT("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,            LTEXT("ActivateSQLPLUS"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* Oracle SQL*Plusをアクティブ表示 */
00089     {F_PLSQL_COMPILE_ON_SQLPLUS,    LTEXT("ExecSQLPLUS"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* Oracle SQL*Plusで実行 */
00090     {F_BROWSE,                      LTEXT("Browse"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブラウズ
00091     {F_READONLY,                    LTEXT("ReadOnly"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //読み取り専用
00092     {F_PROPERTY_FILE,               LTEXT("PropertyFile"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルのプロパティ
00093     {F_EXITALLEDITORS,              LTEXT("ExitAllEditors"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //編集の全終了 // 2007.02.13 ryoji 追加
00094     {F_EXITALL,                     LTEXT("ExitAll"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //サクラエディタの全終了  //Dec. 27, 2000 JEPRO 追加
00095     {F_PUTFILE,                     LTEXT("PutFile"),               {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, // 作業中ファイルの一時出力 2006.12.10 maru
00096     {F_INSFILE,                     LTEXT("InsFile"),               {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, // キャレット位置にファイル挿入 2006.12.10 maru
00097
00098     /* 編集系 */
00099     {F_WCHAR,               LTEXT("Char"),                  {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //文字入力
00100     {F_IME_CHAR,            LTEXT("CharIme"),               {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //全角文字入力
00101     {F_UNDO,                LTEXT("Undo"),                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //元に戻す(Undo)
00102     {F_REDO,                LTEXT("Redo"),                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //やり直し(Redo)
00103     {F_DELETE,              LTEXT("Delete"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //削除
00104     {F_DELETE_BACK,         LTEXT("DeleteBack"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル前を削除
00105     {F_WordDeleteToStart,   LTEXT("WordDeleteToStart"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の左端まで削除
00106     {F_WordDeleteToEnd,     LTEXT("WordDeleteToEnd"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の右端まで削除
00107     {F_WordCut,             LTEXT("WordCut"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語切り取り
00108     {F_WordDelete,          LTEXT("WordDelete"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語削除
00109     {F_LineCutToStart,      LTEXT("LineCutToStart"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭まで切り取り(改行単位)
00110     {F_LineCutToEnd,        LTEXT("LineCutToEnd"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末まで切り取り(改行単位)
00111     {F_LineDeleteToStart,   LTEXT("LineDeleteToStart"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭まで削除(改行単位)
00112     {F_LineDeleteToEnd,     LTEXT("LineDeleteToEnd"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末まで削除(改行単位)
00113     {F_CUT_LINE,            LTEXT("CutLine"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行切り取り(折り返し単位)
00114     {F_DELETE_LINE,         LTEXT("DeleteLine"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行削除(折り返し単位)
00115     {F_DUPLICATELINE,       LTEXT("DuplicateLine"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行の二重化(折り返し単位)
00116     {F_INDENT_TAB,          LTEXT("IndentTab"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //TABインデント
00117     {F_UNINDENT_TAB,        LTEXT("UnindentTab"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //逆TABインデント
00118     {F_INDENT_SPACE,        LTEXT("IndentSpace"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SPACEインデント
00119     {F_UNINDENT_SPACE,      LTEXT("UnindentSpace"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //逆SPACEインデント
00120 //  {F_WORDSREFERENCE,      LTEXT("WordReference"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語リファレンス
00121     {F_LTRIM,               LTEXT("LTrim"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左(先頭)の空白を削除 2001.12.03 hor
00122     {F_RTRIM,               LTEXT("RTrim"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //右(末尾)の空白を削除 2001.12.03 hor
00123     {F_SORT_ASC,            LTEXT("SortAsc"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行の昇順ソート 2001.12.06 hor
00124     {F_SORT_DESC,           LTEXT("SortDesc"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行の降順ソート 2001.12.06 hor
00125     {F_MERGE,               LTEXT("Merge"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行のマージ 2001.12.06 hor
00126
00127     /* カーソル移動系 */
00128     {F_UP,                  LTEXT("Up"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル上移動
00129     {F_DOWN,                LTEXT("Down"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル下移動
00130     {F_LEFT,                LTEXT("Left"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル左移動
00131     {F_RIGHT,               LTEXT("Right"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル右移動
00132     {F_UP2,                 LTEXT("Up2"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル上移動(２行ごと)
00133     {F_DOWN2,               LTEXT("Down2"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル下移動(２行ごと)
00134     {F_WORDLEFT,            LTEXT("WordLeft"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の左端に移動
00135     {F_WORDRIGHT,           LTEXT("WordRight"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の右端に移動
00136     {F_GOLINETOP,           LTEXT("GoLineTop"),         {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭に移動(折り返し単位)
00137     {F_GOLINEEND,           LTEXT("GoLineEnd"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末に移動(折り返し単位)
00138     {F_HalfPageUp,          LTEXT("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,        LTEXT("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,             LTEXT("1PageUp"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //１ページアップ  //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00141     {F_1PageDown,           LTEXT("1PageDown"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //１ページダウン  //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00142     {F_GOFILETOP,           LTEXT("GoFileTop"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルの先頭に移動
00143     {F_GOFILEEND,           LTEXT("GoFileEnd"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルの最後に移動
00144     {F_CURLINECENTER,       LTEXT("CurLineCenter"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル行をウィンドウ中央へ
00145     {F_JUMPHIST_PREV,       LTEXT("MoveHistPrev"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //移動履歴: 前へ
00146     {F_JUMPHIST_NEXT,       LTEXT("MoveHistNext"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //移動履歴: 次へ
00147     {F_JUMPHIST_SET,        LTEXT("MoveHistSet"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //現在位置を移動履歴に登録
00148     {F_WndScrollDown,       LTEXT("F_WndScrollDown"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //テキストを１行下へスクロール // 2001/06/20 asa-o
00149     {F_WndScrollUp,         LTEXT("F_WndScrollUp"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //テキストを１行上へスクロール // 2001/06/20 asa-o
00150     {F_GONEXTPARAGRAPH,     LTEXT("GoNextParagraph"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次の段落へ移動
00151     {F_GOPREVPARAGRAPH,     LTEXT("GoPrevParagraph"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前の段落へ移動
00152
00153     /* 選択系 */ //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので「選択系」として独立化(サブメニュー化は構造上できないので)
00154     {F_SELECTWORD,          LTEXT("SelectWord"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //現在位置の単語選択
00155     {F_SELECTALL,           LTEXT("SelectAll"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべて選択
00156     {F_BEGIN_SEL,           LTEXT("BeginSelect"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //範囲選択開始 Mar. 5, 2001 genta 名称修正
00157     {F_UP_SEL,              LTEXT("Up_Sel"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル上移動
00158     {F_DOWN_SEL,            LTEXT("Down_Sel"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル下移動
00159     {F_LEFT_SEL,            LTEXT("Left_Sel"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル左移動
00160     {F_RIGHT_SEL,           LTEXT("Right_Sel"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル右移動
00161     {F_UP2_SEL,             LTEXT("Up2_Sel"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル上移動(２行ごと)
00162     {F_DOWN2_SEL,           LTEXT("Down2_Sel"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル下移動(２行ごと)
00163     {F_WORDLEFT_SEL,        LTEXT("WordLeft_Sel"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)単語の左端に移動
00164     {F_WORDRIGHT_SEL,       LTEXT("WordRight_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)単語の右端に移動
00165     {F_GOLINETOP_SEL,       LTEXT("GoLineTop_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)行頭に移動(折り返し単位)
00166     {F_GOLINEEND_SEL,       LTEXT("GoLineEnd_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)行末に移動(折り返し単位)
00167     {F_HalfPageUp_Sel,      LTEXT("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,    LTEXT("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,         LTEXT("1PageUp_Sel"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00170     {F_1PageDown_Sel,       LTEXT("1PageDown_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00171     {F_GOFILETOP_SEL,       LTEXT("GoFileTop_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)ファイルの先頭に移動
00172     {F_GOFILEEND_SEL,       LTEXT("GoFileEnd_Sel"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)ファイルの最後に移動
00173     {F_GONEXTPARAGRAPH_SEL, LTEXT("GoNextParagraph_Sel"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次の段落へ移動
00174     {F_GOPREVPARAGRAPH_SEL, LTEXT("GoPrevParagraph_Sel"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前の段落へ移動
00175
00176     /* 矩形選択系 */   //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00177     {F_BEGIN_BOX,           LTEXT("BeginBoxSelect"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //矩形範囲選択開始
00178
00179     /* クリップボード系 */
00180     {F_CUT,                     LTEXT("Cut"),                       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //切り取り(選択範囲をクリップボードにコピーして削除)
00181     {F_COPY,                    LTEXT("Copy"),                      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //コピー(選択範囲をクリップボードにコピー)
00182     {F_PASTE,                   LTEXT("Paste"),                     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //貼り付け(クリップボードから貼り付け)
00183     {F_COPY_ADDCRLF,            LTEXT("CopyAddCRLF"),               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //折り返し位置に改行をつけてコピー
00184     {F_COPY_CRLF,               LTEXT("CopyCRLF"),                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //CRLF改行でコピー(選択範囲を改行コード=CRLFでコピー)
00185     {F_PASTEBOX,                LTEXT("PasteBox"),                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //矩形貼り付け(クリップボードから矩形貼り付け)
00186     {F_INSTEXT_W,               LTEXT("InsText"),                   {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // テキストを貼り付け
00187     {F_ADDTAIL_W,               LTEXT("AddTail"),                   {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 最後にテキストを追加
00188     {F_COPYLINES,               LTEXT("CopyLines"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行コピー
00189     {F_COPYLINESASPASSAGE,      LTEXT("CopyLinesAsPassage"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行引用符付きコピー
00190     {F_COPYLINESWITHLINENUMBER, LTEXT("CopyLinesWithLineNumber"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行行番号付きコピー
00191     {F_COPYPATH,                LTEXT("CopyPath"),                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイルのパス名をクリップボードにコピー
00192     {F_COPYFNAME,               LTEXT("CopyFilename"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイル名をクリップボードにコピー // 2002/2/3 aroka
00193     {F_COPYTAG,                 LTEXT("CopyTag"),                   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイルのパス名とカーソル位置をコピー    //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00194     {F_CREATEKEYBINDLIST,       LTEXT("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,                LTEXT("InsertDate"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 日付挿入
00198     {F_INS_TIME,                LTEXT("InsertTime"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 時刻挿入
00199     {F_CTRL_CODE_DIALOG,        LTEXT("CtrlCodeDialog"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //コントロールコードの入力(ダイアログ)  //@@@ 2002.06.02 MIK
00200
00201     /* 変換系 */
00202     {F_TOLOWER,                 LTEXT("ToLower"),                   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //小文字
00203     {F_TOUPPER,                 LTEXT("ToUpper"),                   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //大文字
00204     {F_TOHANKAKU,               LTEXT("ToHankaku"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角→半角 */
00205     {F_TOHANKATA,               LTEXT("ToHankata"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
00206     {F_TOZENEI,                 LTEXT("ToZenEi"),                   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角英数→全角英数 */            //July. 30, 2001 Misaka
00207     {F_TOHANEI,                 LTEXT("ToHanEi"),                   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角英数→半角英数 */
00208     {F_TOZENKAKUKATA,           LTEXT("ToZenKata"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角＋全ひら→全角・カタカナ */ //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00209     {F_TOZENKAKUHIRA,           LTEXT("ToZenHira"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角＋全カタ→全角・ひらがな */ //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00210     {F_HANKATATOZENKAKUKATA,    LTEXT("HanKataToZenKata"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角カタカナ→全角カタカナ */
00211     {F_HANKATATOZENKAKUHIRA,    LTEXT("HanKataToZenHira"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角カタカナ→全角ひらがな */
00212     {F_TABTOSPACE,              LTEXT("TABToSPACE"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* TAB→空白 */
00213     {F_SPACETOTAB,              LTEXT("SPACEToTAB"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 空白→TAB */ //---- Stonee, 2001/05/27
00214     {F_CODECNV_AUTO2SJIS,       LTEXT("AutoToSJIS"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 自動判別→SJISコード変換 */
00215     {F_CODECNV_EMAIL,           LTEXT("JIStoSJIS"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //E-Mail(JIS→SJIS)コード変換
00216     {F_CODECNV_EUC2SJIS,        LTEXT("EUCtoSJIS"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //EUC→SJISコード変換
00217     {F_CODECNV_UNICODE2SJIS,    LTEXT("CodeCnvUNICODEtoSJIS"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Unicode→SJISコード変換
00218     {F_CODECNV_UNICODEBE2SJIS,  LTEXT("CodeCnvUNICODEBEtoSJIS"),    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // UnicodeBE→SJISコード変換
00219     {F_CODECNV_UTF82SJIS,       LTEXT("UTF8toSJIS"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* UTF-8→SJISコード変換 */
00220     {F_CODECNV_UTF72SJIS,       LTEXT("UTF7toSJIS"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* UTF-7→SJISコード変換 */
00221     {F_CODECNV_SJIS2JIS,        LTEXT("SJIStoJIS"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→JISコード変換 */
00222     {F_CODECNV_SJIS2EUC,        LTEXT("SJIStoEUC"),                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→EUCコード変換 */
00223     {F_CODECNV_SJIS2UTF8,       LTEXT("SJIStoUTF8"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→UTF-8コード変換 */
00224     {F_CODECNV_SJIS2UTF7,       LTEXT("SJIStoUTF7"),                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→UTF-7コード変換 */
00225     {F_BASE64DECODE,            LTEXT("Base64Decode"),              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Base64デコードして保存
00226     {F_UUDECODE,                LTEXT("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,           LTEXT("SearchDialog"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索(単語検索ダイアログ)
00231     {F_SEARCH_NEXT,             LTEXT("SearchNext"),        {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次を検索
00232     {F_SEARCH_PREV,             LTEXT("SearchPrev"),        {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前を検索
00233     {F_REPLACE_DIALOG,          LTEXT("ReplaceDialog"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //置換(置換ダイアログ)
00234     {F_REPLACE,                 LTEXT("Replace"),           {VT_BSTR,  VT_BSTR,  VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //置換(実行)
00235     {F_REPLACE_ALL,             LTEXT("ReplaceAll"),        {VT_BSTR,  VT_BSTR,  VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //すべて置換(実行)
00236     {F_SEARCH_CLEARMARK,        LTEXT("SearchClearMark"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索マークのクリア
00237     {F_JUMP_SRCHSTARTPOS,       LTEXT("SearchStartPos"),    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索開始位置へ戻る            // 02/06/26 ai
00238     {F_GREP,                    LTEXT("Grep"),              {VT_BSTR,  VT_BSTR,  VT_BSTR,  VT_I4   },   VT_EMPTY,   NULL}, //Grep
00239     {F_JUMP,                    LTEXT("Jump"),              {VT_I4,    VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //指定行ヘジャンプ
00240     {F_OUTLINE,                 LTEXT("Outline"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //アウトライン解析
00241     {F_TAGJUMP,                 LTEXT("TagJump"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグジャンプ機能
00242     {F_TAGJUMPBACK,             LTEXT("TagJumpBack"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグジャンプバック機能
00243     {F_TAGS_MAKE,               LTEXT("TagMake"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグファイルの作成    //@@@ 2003.04.13 MIK
00244     {F_DIRECT_TAGJUMP,          LTEXT("DirectTagJump"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ダイレクトタグジャンプ機能    //@@@ 2003.04.15 MIK
00245     {F_TAGJUMP_KEYWORD,         LTEXT("KeywordTagJump"),    {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //キーワードを指定してダイレクトタグジャンプ機能 //@@@ 2005.03.31 MIK
00246     {F_COMPARE,                 LTEXT("Compare"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイル内容比較
00247     {F_DIFF_DIALOG,             LTEXT("DiffDialog"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(ダイアログ)  //@@@ 2002.05.25 MIK
00248     {F_DIFF,                    LTEXT("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,               LTEXT("DiffNext"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(次へ)           //@@@ 2002.05.25 MIK
00250     {F_DIFF_PREV,               LTEXT("DiffPrev"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(前へ)           //@@@ 2002.05.25 MIK
00251     {F_DIFF_RESET,              LTEXT("DiffReset"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(全解除)        //@@@ 2002.05.25 MIK
00252     {F_BRACKETPAIR,             LTEXT("BracketPair"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //対括弧の検索
00253 // From Here 2001.12.03 hor
00254     {F_BOOKMARK_SET,            LTEXT("BookmarkSet"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマーク設定・解除
00255     {F_BOOKMARK_NEXT,           LTEXT("BookmarkNext"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のブックマークへ
00256     {F_BOOKMARK_PREV,           LTEXT("BookmarkPrev"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のブックマークへ
00257     {F_BOOKMARK_RESET,          LTEXT("BookmarkReset"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマークの全解除
00258     {F_BOOKMARK_VIEW,           LTEXT("BookmarkView"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマークの一覧
00259 // To Here 2001.12.03 hor
00260     {F_BOOKMARK_PATTERN,        LTEXT("BookmarkPattern"),   {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 2002.01.16 hor 指定パターンに一致する行をマーク
00261
00262     /* モード切り替え系 */
00263     {F_CHGMOD_INS,              LTEXT("ChgmodINS"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //挿入／上書きモード切り替え
00264     {F_CHGMOD_EOL,              LTEXT("ChgmodEOL"),         {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //入力改行コード指定 2003.06.23 Moca
00265     {F_CANCEL_MODE,             LTEXT("CancelMode"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //各種モードの取り消し
00266
00267     /* 設定系 */
00268     {F_SHOWTOOLBAR,             LTEXT("ShowToolbar"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ツールバーの表示 */
00269     {F_SHOWFUNCKEY,             LTEXT("ShowFunckey"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ファンクションキーの表示 */
00270     {F_SHOWTAB,                 LTEXT("ShowTab"),           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タブの表示 */    //@@@ 2003.06.10 MIK
00271     {F_SHOWSTATUSBAR,           LTEXT("ShowStatusbar"),     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ステータスバーの表示 */
00272     {F_TYPE_LIST,               LTEXT("TypeList"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タイプ別設定一覧 */
00273     {F_OPTION_TYPE,             LTEXT("OptionType"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タイプ別設定 */
00274     {F_OPTION,                  LTEXT("OptionCommon"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 共通設定 */
00275     {F_FONT,                    LTEXT("SelectFont"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* フォント設定 */
00276     {F_WRAPWINDOWWIDTH,         LTEXT("WrapWindowWidth"),   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 現在のウィンドウ幅で折り返し */ //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00277     {F_FAVORITE,                LTEXT("OptionFavorite"),    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 履歴の管理 */    //@@@ 2003.04.08 MIK
00278     {F_SET_QUOTESTRING,         LTEXT("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,             LTEXT("ExecCommand"),       {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部コマンド実行 */
00283
00284     /* カスタムメニュー */
00285     {F_MENU_RBUTTON,            LTEXT("RMenu"),             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 右クリックメニュー */
00286     {F_CUSTMENU_1,              LTEXT("CustMenu1"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー1 */
00287     {F_CUSTMENU_2,              LTEXT("CustMenu2"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー2 */
00288     {F_CUSTMENU_3,              LTEXT("CustMenu3"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー3 */
00289     {F_CUSTMENU_4,              LTEXT("CustMenu4"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー4 */
00290     {F_CUSTMENU_5,              LTEXT("CustMenu5"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー5 */
00291     {F_CUSTMENU_6,              LTEXT("CustMenu6"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー6 */
00292     {F_CUSTMENU_7,              LTEXT("CustMenu7"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー7 */
00293     {F_CUSTMENU_8,              LTEXT("CustMenu8"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー8 */
00294     {F_CUSTMENU_9,              LTEXT("CustMenu9"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー9 */
00295     {F_CUSTMENU_10,             LTEXT("CustMenu10"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー10 */
00296     {F_CUSTMENU_11,             LTEXT("CustMenu11"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー11 */
00297     {F_CUSTMENU_12,             LTEXT("CustMenu12"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー12 */
00298     {F_CUSTMENU_13,             LTEXT("CustMenu13"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー13 */
00299     {F_CUSTMENU_14,             LTEXT("CustMenu14"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー14 */
00300     {F_CUSTMENU_15,             LTEXT("CustMenu15"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー15 */
00301     {F_CUSTMENU_16,             LTEXT("CustMenu16"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー16 */
00302     {F_CUSTMENU_17,             LTEXT("CustMenu17"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー17 */
00303     {F_CUSTMENU_18,             LTEXT("CustMenu18"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー18 */
00304     {F_CUSTMENU_19,             LTEXT("CustMenu19"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー19 */
00305     {F_CUSTMENU_20,             LTEXT("CustMenu20"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー20 */
00306     {F_CUSTMENU_21,             LTEXT("CustMenu21"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー21 */
00307     {F_CUSTMENU_22,             LTEXT("CustMenu22"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー22 */
00308     {F_CUSTMENU_23,             LTEXT("CustMenu23"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー23 */
00309     {F_CUSTMENU_24,             LTEXT("CustMenu24"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー24 */
00310
00311     /* ウィンドウ系 */
00312     {F_SPLIT_V,                 LTEXT("SplitWinV"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上下に分割    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00313     {F_SPLIT_H,                 LTEXT("SplitWinH"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左右に分割    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00314     {F_SPLIT_VH,                LTEXT("SplitWinVH"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //縦横に分割    //Sept. 17, 2000 jepro 説明に「に」を追加
00315     {F_WINCLOSE,                LTEXT("WinClose"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ウィンドウを閉じる
00316     {F_WIN_CLOSEALL,            LTEXT("WinCloseAll"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべてのウィンドウを閉じる    //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00317     {F_CASCADE,                 LTEXT("CascadeWin"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //重ねて表示
00318     {F_TILE_V,                  LTEXT("TileWinV"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上下に並べて表示
00319     {F_TILE_H,                  LTEXT("TileWinH"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左右に並べて表示
00320     {F_NEXTWINDOW,              LTEXT("NextWindow"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のウィンドウ
00321     {F_PREVWINDOW,              LTEXT("PrevWindow"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のウィンドウ
00322     {F_WINLIST,                 LTEXT("WindowList"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ウィンドウ一覧ポップアップ表示  // 2006.03.23 fon
00323     {F_MAXIMIZE_V,              LTEXT("MaximizeV"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //縦方向に最大化
00324     {F_MAXIMIZE_H,              LTEXT("MaximizeH"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //横方向に最大化 //2001.02.10 by MIK
00325     {F_MINIMIZE_ALL,            LTEXT("MinimizeAll"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべて最小化 //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00326     {F_REDRAW,                  LTEXT("ReDraw"),            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //再描画
00327     {F_WIN_OUTPUT,              LTEXT("ActivateWinOutput"), {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //アウトプットウィンドウ表示
00328     {F_TRACEOUT,                LTEXT("TraceOut"),          {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //マクロ用アウトプットウィンドウに出力 2006.04.26 maru
00329     {F_TOPMOST,                 LTEXT("WindowTopMost"),     {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_EMPTY,   NULL}, //常に手前に表示
00330     {F_GROUPCLOSE,              LTEXT("GroupClose"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //グループを閉じる   // 2007.06.20 ryoji
00331     {F_NEXTGROUP,               LTEXT("NextGroup"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のグループ // 2007.06.20 ryoji
00332     {F_PREVGROUP,               LTEXT("PrevGroup"),         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のグループ // 2007.06.20 ryoji
00333     {F_TAB_MOVERIGHT,           LTEXT("TabMoveRight"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タブを右に移動  // 2007.06.20 ryoji
00334     {F_TAB_MOVELEFT,            LTEXT("TabMoveLeft"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タブを左に移動  // 2007.06.20 ryoji
00335     {F_TAB_SEPARATE,            LTEXT("TabSeparate"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //新規グループ // 2007.06.20 ryoji
00336     {F_TAB_JOINTNEXT,           LTEXT("TabJointNext"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のグループに移動    // 2007.06.20 ryoji
00337     {F_TAB_JOINTPREV,           LTEXT("TabJointPrev"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のグループに移動    // 2007.06.20 ryoji
00338
00339     /* 支援 */
00340     {F_HOKAN,                   LTEXT("Complete"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 入力補完 */   //Oct. 15, 2000 JEPRO 入ってなかったので英名を付けて入れてみた
00341     {F_HELP_CONTENTS,           LTEXT("HelpContents"),      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ヘルプ目次 */            //Nov. 25, 2000 JEPRO 追加
00342     {F_HELP_SEARCH,             LTEXT("HelpSearch"),        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ヘルプキーワード検索 */ //Nov. 25, 2000 JEPRO 追加
00343     {F_MENU_ALLFUNC,            LTEXT("CommandList"),       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* コマンド一覧 */
00344     {F_EXTHELP1,                LTEXT("ExtHelp1"),          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部ヘルプ１ */
00345     //  Jul. 5, 2002 genta 引数追加
00346     {F_EXTHTMLHELP,             LTEXT("ExtHtmlHelp"),       {VT_BSTR,  VT_BSTR,  VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部HTMLヘルプ */
00347     {F_ABOUT,                   LTEXT("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     {F_INVALID, NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY,   NULL}
00354 };
00355 //int   CSMacroMgr::m_nMacroFuncInfoArrNum = _countof( CSMacroMgr::m_MacroFuncInfoArr );
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
00411 int CSMacroMgr::Append(
00412     int             idx,
00413     EFunctionCode   nFuncID,
00414     LPARAM          lParam1,
00415     CEditView*      pcEditView
00416 )
00417 {
00418     assert( idx == STAND_KEYMACRO );
00419     if (idx == STAND_KEYMACRO){
00420         CKeyMacroMgr* pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00421         if( pKeyMacro == NULL ){
00422             //  1. 実体がまだ無い場合
00423             //  2. CKeyMacroMgr以外の物が入っていた場合
00424             //  いずれにしても再生成する．
00425             delete m_pKeyMacro;
00426             m_pKeyMacro = new CKeyMacroMgr;
00427             pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00428         }
00429         pKeyMacro->Append( nFuncID, lParam1, pcEditView );
00430     }
00431     return TRUE;
00432 }
00433
00434
00444 BOOL CSMacroMgr::Exec( int idx , HINSTANCE hInstance, CEditView* pcEditView )
00445 {
00446     if( idx == STAND_KEYMACRO ){
00447         //  Jun. 16, 2002 genta
00448         //  キーマクロ以外のサポートによりNULLの可能性が出てきたので判定追加
00449         if( m_pKeyMacro != NULL ){
00450             //  Sep. 15, 2005 FILE
00451             SetCurrentIdx( idx );
00452             m_pKeyMacro->ExecKeyMacro( pcEditView );
00453             //  Sep. 15, 2005 FILE
00454             SetCurrentIdx( INVALID_MACRO_IDX );
00455             return TRUE;
00456         }
00457         else {
00458             return FALSE;
00459         }
00460     }
00461     if( idx < 0 || MAX_CUSTMACRO <= idx )   //  範囲チェック
00462         return FALSE;
00463
00464     /* 読み込み前か、毎回読み込む設定の場合は、ファイルを読み込みなおす */
00465     //  Apr. 29, 2002 genta
00466     if( m_cSavedKeyMacro[idx] == NULL || CShareData::getInstance()->BeReloadWhenExecuteMacro( idx )){
00467         //  CShareDataから、マクロファイル名を取得
00468         //  Jun. 08, 2003 Moca 呼び出し側でパス名を用意
00469         //  Jun. 16, 2003 genta 書式をちょっと変更
00470         TCHAR ptr[_MAX_PATH * 2];
00471         int n = CShareData::getInstance()->GetMacroFilename( idx, ptr, _countof(ptr) );
00472         if ( n <= 0 ){
00473             return FALSE;
00474         }
00475
00476         if( !Load( idx, hInstance, ptr ) )
00477             return FALSE;
00478     }
00479
00480     //  Sep. 15, 2005 FILE
00481     SetCurrentIdx( idx );
00482     m_cSavedKeyMacro[idx]->ExecKeyMacro(pcEditView);
00483     //  Sep. 15, 2005 FILE
00484     SetCurrentIdx( INVALID_MACRO_IDX );
00485
00486     pcEditView->Redraw();   //  必要？
00487     return TRUE;
00488 }
00489
00500 BOOL CSMacroMgr::Load( int idx, HINSTANCE hInstance, const TCHAR* pszPath )
00501 {
00502     CMacroManagerBase** ppMacro = Idx2Ptr( idx );
00503
00504     if( ppMacro == NULL ){
00505 #ifdef _DEBUG
00506     MYTRACE_A( "CSMacroMgr::Load() Out of range: idx=%d Path=%ls\n", idx, pszPath);
00507 #endif
00508     }
00509     //  バッファクリア
00510     delete *ppMacro;
00511     *ppMacro = NULL;
00512
00513     const TCHAR *ext = _tcsrchr( pszPath, _T('.'));
00514     //  Feb. 02, 2004 genta .が無い場合にext==NULLとなるのでNULLチェック追加
00515     if( ext != NULL ){
00516         const TCHAR *chk = _tcsrchr( ext, _T('\\') );
00517         if( chk != NULL ){  //  .のあとに\があったらそれは拡張子の区切りではない
00518                             //  \が漢字の2バイト目の場合も拡張子ではない。
00519             ext = NULL;
00520         }
00521     }
00522     if(ext != NULL){
00523         ++ext;
00524     }
00525     *ppMacro = CMacroFactory::Instance()->Create(ext);
00526     if( *ppMacro == NULL )
00527         return FALSE;
00528     //  From Here Jun. 16, 2002 genta
00529     //  読み込みエラー時はインスタンス削除
00530     if( (*ppMacro)->LoadKeyMacro(hInstance, pszPath )){
00531         return TRUE;
00532     }
00533     else {
00534         delete *ppMacro;
00535         *ppMacro = NULL;
00536     }
00537     //  To Here Jun. 16, 2002 genta
00538     return FALSE;
00539 }
00540
00548 void CSMacroMgr::UnloadAll(void)
00549 {
00550     for ( int idx = 0; idx < MAX_CUSTMACRO; idx++ ){
00551         delete m_cSavedKeyMacro[idx];
00552         m_cSavedKeyMacro[idx] = NULL;
00553     }
00554
00555 }
00556
00565 BOOL CSMacroMgr::Save( int idx, HINSTANCE hInstance, const TCHAR* pszPath )
00566 {
00567     assert( idx == STAND_KEYMACRO );
00568     if ( idx == STAND_KEYMACRO ){
00569         CKeyMacroMgr* pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00570         if( pKeyMacro != NULL ){
00571             return pKeyMacro->SaveKeyMacro(hInstance, pszPath );
00572         }
00573         //  Jun. 27, 2002 genta
00574         //  空マクロの場合は正常終了と見なす．
00575         if( m_pKeyMacro == NULL ){
00576             return TRUE;
00577         }
00578
00579     }
00580 //  else if ( 0 <= idx && idx < MAX_CUSTMACRO ){
00581 //      return m_cSavedKeyMacro[idx]->SaveKeyMacro(hInstance, pszPath );
00582 //  }
00583     return FALSE;
00584 }
00585
00586 /*
00587     指定されたマクロをクリアする
00588
00589     @param idx [in] マクロ番号(0-), STAND_KEYMACROは標準キーマクロバッファを表す．
00590 */
00591 void CSMacroMgr::Clear( int idx )
00592 {
00593     CMacroManagerBase **ppMacro = Idx2Ptr( idx );
00594     if( ppMacro != NULL ){
00595         delete *ppMacro;
00596         *ppMacro = NULL;
00597     }
00598 }
00599
00600 /*
00601 ||  Attributes & Operations
00602 */
00603 /*
00604     指定されたIDに対応するMacroInfo構造体へのポインタを返す．
00605     該当するIDに対応する構造体がなければNULLを返す．
00606
00607     @param nFuncID [in] 機能番号
00608     @return 構造体へのポインタ．見つからなければNULL
00609
00610     @date 2002.06.16 genta
00611     @data 2003.02.24 m_MacroFuncInfoNotCommandArrも検索対象にする
00612 */
00613 const MacroFuncInfo* CSMacroMgr::GetFuncInfoByID( int nFuncID )
00614 {
00615     int i;
00616     //  Jun. 27, 2002 genta
00617     //  番人をコード0として拾ってしまうので，配列サイズによる判定をやめた．
00618     for( i = 0; m_MacroFuncInfoArr[i].m_pszFuncName != NULL; ++i ){
00619         if( m_MacroFuncInfoArr[i].m_nFuncID == nFuncID ){
00620             return &m_MacroFuncInfoArr[i];
00621         }
00622     }
00623     for( i = 0; m_MacroFuncInfoNotCommandArr[i].m_pszFuncName != NULL; ++i ){
00624         if( m_MacroFuncInfoNotCommandArr[i].m_nFuncID == nFuncID ){
00625             return &m_MacroFuncInfoNotCommandArr[i];
00626         }
00627     }
00628     return NULL;
00629 }
00630
00643 WCHAR* CSMacroMgr::GetFuncInfoByID(
00644     HINSTANCE   hInstance,
00645     int         nFuncID,
00646     WCHAR*      pszFuncName,
00647     WCHAR*      pszFuncNameJapanese
00648 )
00649 {
00650     const MacroFuncInfo* MacroInfo = GetFuncInfoByID( nFuncID );
00651     if( MacroInfo != NULL ){
00652         if( pszFuncName != NULL ){
00653             auto_strcpy( pszFuncName, MacroInfo->m_pszFuncName );
00654             WCHAR *p = pszFuncName;
00655             while (*p){
00656                 if (*p == LTEXT('(')){
00657                     *p = LTEXT('\0');
00658                     break;
00659                 }
00660                 *p++;
00661             }
00662         }
00663         //  Jun. 16, 2002 genta NULLのときは何もしない．
00664         if( pszFuncNameJapanese != NULL ){
00665             ApiWrap::LoadStringW_AnyBuild( hInstance, nFuncID, pszFuncNameJapanese, 255 );
00666         }
00667         return pszFuncName;
00668     }
00669     return NULL;
00670 }
00671
00683 EFunctionCode CSMacroMgr::GetFuncInfoByName(
00684     HINSTANCE       hInstance,
00685     const WCHAR*    pszFuncName,
00686     WCHAR*          pszFuncNameJapanese
00687 )
00688 {
00689     //  Jun. 16, 2002 genta
00690     const WCHAR* normalizedFuncName;
00691
00692     //  S_で始まっているか
00693     if( pszFuncName == NULL ){
00694         return F_INVALID;
00695     }
00696     if( pszFuncName[0] == LTEXT('S') && pszFuncName[1] == LTEXT('_') ){
00697         normalizedFuncName = pszFuncName + 2;
00698     }
00699     else {
00700         normalizedFuncName = pszFuncName;
00701     }
00702
00703     for( int i = 0; m_MacroFuncInfoArr[i].m_pszFuncName != NULL; ++i ){
00704         if( 0 == auto_strcmp( normalizedFuncName, m_MacroFuncInfoArr[i].m_pszFuncName )){
00705             EFunctionCode nFuncID = m_MacroFuncInfoArr[i].m_nFuncID;
00706             if( pszFuncNameJapanese != NULL ){
00707 				::LoadStringW_AnyBuild( hInstance, nFuncID, pszFuncNameJapanese, 255 );
00708             }
00709             return nFuncID;
00710         }
00711     }
00712     return F_INVALID;
00713 }
00714
00715 /* キーマクロに記録可能な機能かどうかを調べる */
00716 BOOL CSMacroMgr::CanFuncIsKeyMacro( int nFuncID )
00717 {
00718     switch( nFuncID ){
00719     /* ファイル操作系 */
00720 //  case F_FILENEW                  ://新規作成
00721 //  case F_FILEOPEN                 ://開く
00722 //  case F_FILESAVE                 ://上書き保存
00723 //  case F_FILESAVEAS_DIALOG        ://名前を付けて保存
00724 //  case F_FILECLOSE                ://閉じて(無題)    //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00725 //  case F_FILECLOSE_OPEN           ://閉じて開く
00726     case F_FILE_REOPEN              ://開き直す //Dec. 4, 2002 genta
00727     case F_FILE_REOPEN_SJIS         ://SJISで開き直す
00728     case F_FILE_REOPEN_JIS          ://JISで開き直す
00729     case F_FILE_REOPEN_EUC          ://EUCで開き直す
00730     case F_FILE_REOPEN_UNICODE      ://Unicodeで開き直す
00731     case F_FILE_REOPEN_UNICODEBE    ://UnicodeBEで開き直す
00732     case F_FILE_REOPEN_UTF8         ://UTF-8で開き直す
00733     case F_FILE_REOPEN_UTF7         ://UTF-7で開き直す
00734 //  case F_PRINT                    ://印刷
00735 //  case F_PRINT_DIALOG             ://印刷ダイアログ
00736 //  case F_PRINT_PREVIEW            ://印刷プレビュー
00737 //  case F_PRINT_PAGESETUP          ://印刷ページ設定    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00738 //  case F_OPEN_HfromtoC:           ://同名のC/C++ヘッダ(ソース)を開く  //Feb. 9, 2001 JEPRO 追加
00739 //  case F_OPEN_HHPP                ://同名のC/C++ヘッダファイルを開く //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00740 //  case F_OPEN_CCPP                ://同名のC/C++ソースファイルを開く //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00741 //  case F_ACTIVATE_SQLPLUS         :/* Oracle SQL*Plusをアクティブ表示 */
00742 //  case F_PLSQL_COMPILE_ON_SQLPLUS :/* Oracle SQL*Plusで実行 */ //Sept. 17, 2000 jepro 説明の「コンパイル」を「実行」に統一
00744 //  case F_PROPERTY_FILE            ://ファイルのプロパティ
00745 //  case F_EXITALLEDITORS           ://編集の全終了   // 2007.02.13 ryoji 追加
00746 //  case F_EXITALL                  ://サクラエディタの全終了    //Dec. 27, 2000 JEPRO 追加
00747 //  case F_PUTFILE                  ://作業中ファイルの一時出力 2006.12.10 maru
00748 //  case F_INSFILE                  ://キャレット位置にファイル挿入   2006.12.10 maru
00749
00750
00751     /* 編集系 */
00752     case F_WCHAR                    ://文字入力
00753     case F_IME_CHAR                 ://全角文字入力
00754     case F_UNDO                     ://元に戻す(Undo)
00755     case F_REDO                     ://やり直し(Redo)
00756     case F_DELETE                   ://削除
00757     case F_DELETE_BACK              ://カーソル前を削除
00758     case F_WordDeleteToStart        ://単語の左端まで削除
00759     case F_WordDeleteToEnd          ://単語の右端まで削除
00760     case F_WordCut                  ://単語切り取り
00761     case F_WordDelete               ://単語削除
00762     case F_LineCutToStart           ://行頭まで切り取り(改行単位)
00763     case F_LineCutToEnd             ://行末まで切り取り(改行単位)
00764     case F_LineDeleteToStart        ://行頭まで削除(改行単位)
00765     case F_LineDeleteToEnd          ://行末まで削除(改行単位)
00766     case F_CUT_LINE                 ://行切り取り(折り返し単位)
00767     case F_DELETE_LINE              ://行削除(折り返し単位)
00768     case F_DUPLICATELINE            ://行の二重化(折り返し単位)
00769     case F_INDENT_TAB               ://TABインデント
00770     case F_UNINDENT_TAB             ://逆TABインデント
00771     case F_INDENT_SPACE             ://SPACEインデント
00772     case F_UNINDENT_SPACE           ://逆SPACEインデント
00773     case F_LTRIM                    :// 2001.12.03 hor
00774     case F_RTRIM                    :// 2001.12.03 hor
00775     case F_SORT_ASC                 :// 2001.12.06 hor
00776     case F_SORT_DESC                :// 2001.12.06 hor
00777     case F_MERGE                    :// 2001.12.06 hor
00778
00779     /* カーソル移動系 */
00780     case F_UP                       ://カーソル上移動
00781     case F_DOWN                     ://カーソル下移動
00782     case F_LEFT                     ://カーソル左移動
00783     case F_RIGHT                    ://カーソル右移動
00784 //  case F_ROLLDOWN                 ://スクロールダウン
00785 //  case F_ROLLUP                   ://スクロールアップ
00786 //  case F_HalfPageUp               ://半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00787 //  case F_HalfPageDown             ://半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00788 //  case F_1PageUp                  ://１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00789 //  case F_1PageDown                ://１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00790     case F_UP2                      ://カーソル上移動(２行ごと)
00791     case F_DOWN2                    ://カーソル下移動(２行ごと)
00792     case F_GOLINETOP                ://行頭に移動(折り返し単位)
00793     case F_GOLINEEND                ://行末に移動(折り返し単位)
00794     case F_GOFILETOP                ://ファイルの先頭に移動
00795     case F_GOFILEEND                ://ファイルの最後に移動
00796     case F_WORDLEFT                 ://単語の左端に移動
00797     case F_WORDRIGHT                ://単語の右端に移動
00798 //  case F_CURLINECENTER            ://カーソル行をウィンドウ中央へ
00799     case F_JUMPHIST_PREV            ://移動履歴: 前へ
00800     case F_JUMPHIST_NEXT            ://移動履歴: 次へ
00801     case F_JUMPHIST_SET             ://現在位置を移動履歴に登録
00802
00803     /* 選択系 */ //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので独立化して(選択)を移動(サブメニュー化は構造上できないので)
00804     case F_SELECTWORD               ://現在位置の単語選択
00805     case F_SELECTALL                ://すべて選択
00806     case F_BEGIN_SEL                ://範囲選択開始
00807     case F_UP_SEL                   ://(範囲選択)カーソル上移動
00808     case F_DOWN_SEL                 ://(範囲選択)カーソル下移動
00809     case F_LEFT_SEL                 ://(範囲選択)カーソル左移動
00810     case F_RIGHT_SEL                ://(範囲選択)カーソル右移動
00811     case F_UP2_SEL                  ://(範囲選択)カーソル上移動(２行ごと)
00812     case F_DOWN2_SEL                ://(範囲選択)カーソル下移動(２行ごと)
00813     case F_WORDLEFT_SEL             ://(範囲選択)単語の左端に移動
00814     case F_WORDRIGHT_SEL            ://(範囲選択)単語の右端に移動
00815     case F_GOLINETOP_SEL            ://(範囲選択)行頭に移動(折り返し単位)
00816     case F_GOLINEEND_SEL            ://(範囲選択)行末に移動(折り返し単位)
00817 //  case F_ROLLDOWN_SEL             ://(範囲選択)スクロールダウン
00818 //  case F_ROLLUP_SEL               ://(範囲選択)スクロールアップ
00819 //  case F_HalfPageUp_Sel           ://(範囲選択)半ページアップ  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00820 //  case F_HalfPageDown_Sel         ://(範囲選択)半ページダウン  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00821 //  case F_1PageUp_Sel              ://(範囲選択)１ページアップ  //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00822 //  case F_1PageDown_Sel            ://(範囲選択)１ページダウン  //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00823     case F_GOFILETOP_SEL            ://(範囲選択)ファイルの先頭に移動
00824     case F_GOFILEEND_SEL            ://(範囲選択)ファイルの最後に移動
00825
00826     /* 矩形選択系 */   //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00827 //  case F_BOXSELALL                //矩形ですべて選択
00828     case F_BEGIN_BOX                ://矩形範囲選択開始
00829 /*
00830     case F_UP_BOX                   ://(矩形選択)カーソル上移動
00831     case F_DOWN_BOX                 ://(矩形選択)カーソル下移動
00832     case F_LEFT_BOX                 ://(矩形選択)カーソル左移動
00833     case F_RIGHT_BOX                ://(矩形選択)カーソル右移動
00834     case F_UP2_BOX                  ://(矩形選択)カーソル上移動(２行ごと)
00835     case F_DOWN2_BOX                ://(矩形選択)カーソル下移動(２行ごと)
00836     case F_WORDLEFT_BOX             ://(矩形選択)単語の左端に移動
00837     case F_WORDRIGHT_BOX            ://(矩形選択)単語の右端に移動
00838     case F_GOLINETOP_BOX            ://(矩形選択)行頭に移動(折り返し単位)
00839     case F_GOLINEEND_BOX            ://(矩形選択)行末に移動(折り返し単位)
00840     case F_HalfPageUp_Box           ://(矩形選択)半ページアップ
00841     case F_HalfPageDown_Box         ://(矩形選択)半ページダウン
00842     case F_1PageUp_Box              ://(矩形選択)１ページアップ
00843     case F_1PageDown_Box            ://(矩形選択)１ページダウン
00844     case F_GOFILETOP_BOX            ://(矩形選択)ファイルの先頭に移動
00845     case F_GOFILEEND_BOX            ://(矩形選択)ファイルの最後に移動
00846 */
00847     /* クリップボード系 */
00848     case F_CUT                      ://切り取り(選択範囲をクリップボードにコピーして削除)
00849     case F_COPY                     ://コピー(選択範囲をクリップボードにコピー)
00850     case F_COPY_ADDCRLF             ://折り返し位置に改行をつけてコピー
00851     case F_COPY_CRLF                ://CRLF改行でコピー(選択範囲を改行コード=CRLFでコピー)
00852     case F_PASTE                    ://貼り付け(クリップボードから貼り付け)
00853     case F_PASTEBOX                 ://矩形貼り付け(クリップボードから矩形貼り付け)
00854     case F_INSTEXT_W                    ://テキストを貼り付け
00855 //  case F_ADDTAIL_W                    ://最後にテキストを追加
00856     case F_COPYLINES                ://選択範囲内全行コピー
00857     case F_COPYLINESASPASSAGE       ://選択範囲内全行引用符付きコピー
00858     case F_COPYLINESWITHLINENUMBER  ://選択範囲内全行行番号付きコピー
00859     case F_COPYPATH                 ://このファイルのパス名をクリップボードにコピー
00860     case F_COPYTAG                  ://このファイルのパス名とカーソル位置をコピー  //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00861     case F_COPYFNAME                ://このファイル名をクリップボードにコピー // 2002/2/3 aroka
00862     case F_CREATEKEYBINDLIST        ://キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 追加   //Dec. 25, 2000 復活
00863
00864     /* 挿入系 */
00865     case F_INS_DATE                 :// 日付挿入
00866     case F_INS_TIME                 :// 時刻挿入
00867 //  case F_CTRL_CODE_DIALOG         ://コントロールコードの入力(ダイアログ)    //@@@ 2002.06.02 MIK
00868
00869     /* 変換系 */
00870     case F_TOLOWER                  ://小文字
00871     case F_TOUPPER                  ://大文字
00872     case F_TOHANKAKU                :/* 全角→半角 */
00873     case F_TOHANKATA                :/* 全角カタカナ→半角カタカナ */  //Aug. 29, 2002 ai
00874     case F_TOZENEI                  :/* 半角英数→全角英数 */          //July. 30, 2001 Misaka
00875     case F_TOHANEI                  :/* 全角英数→半角英数 */
00876     case F_TOZENKAKUKATA            :/* 半角＋全ひら→全角・カタカナ */   //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00877     case F_TOZENKAKUHIRA            :/* 半角＋全カタ→全角・ひらがな */   //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00878     case F_HANKATATOZENKAKUKATA     :/* 半角カタカナ→全角カタカナ */
00879     case F_HANKATATOZENKAKUHIRA     :/* 半角カタカナ→全角ひらがな */
00880     case F_TABTOSPACE               :/* TAB→空白 */
00881     case F_SPACETOTAB               :/* 空白→TAB */  //---- Stonee, 2001/05/27
00882     case F_CODECNV_AUTO2SJIS        :/* 自動判別→SJISコード変換 */
00883     case F_CODECNV_EMAIL            ://E-Mail(JIS→SJIS)コード変換
00884     case F_CODECNV_EUC2SJIS         ://EUC→SJISコード変換
00885     case F_CODECNV_UNICODE2SJIS     ://Unicode→SJISコード変換
00886     case F_CODECNV_UNICODEBE2SJIS   ://UnicodeBE→SJISコード変換
00887     case F_CODECNV_UTF82SJIS        :/* UTF-8→SJISコード変換 */
00888     case F_CODECNV_UTF72SJIS        :/* UTF-7→SJISコード変換 */
00889     case F_CODECNV_SJIS2JIS         :/* SJIS→JISコード変換 */
00890     case F_CODECNV_SJIS2EUC         :/* SJIS→EUCコード変換 */
00891     case F_CODECNV_SJIS2UTF8        :/* SJIS→UTF-8コード変換 */
00892     case F_CODECNV_SJIS2UTF7        :/* SJIS→UTF-7コード変換 */
00893 //  case F_BASE64DECODE             ://Base64デコードして保存
00894 //  case F_UUDECODE                 ://uudecodeして保存 //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00895
00896     /* 検索系 */
00897 //  case F_SEARCH_DIALOG            ://検索(単語検索ダイアログ)
00898     case F_SEARCH_NEXT              ://次を検索
00899     case F_SEARCH_PREV              ://前を検索
00900     case F_REPLACE                  ://置換(実行)
00901     case F_REPLACE_ALL              ://すべて置換(実行)
00902     case F_SEARCH_CLEARMARK         ://検索マークのクリア
00903     case F_JUMP_SRCHSTARTPOS        ://検索開始位置へ戻る      // 02/06/26 ai
00904     case F_GREP                     ://Grep
00905 //  case F_JUMP_DIALOG              ://指定行ヘジャンプ
00906     case F_JUMP                     ://指定行へジャンプ @@@ 2002.2.2 YAZAKI
00907 //  case F_OUTLINE                  ://アウトライン解析
00908     case F_TAGJUMP                  ://タグジャンプ機能
00909     case F_TAGJUMPBACK              ://タグジャンプバック機能
00910 //  case F_TAGS_MAKE                ://タグファイルの作成  //@@@ 2003.04.13 MIK
00911 //  case F_COMPARE                  ://ファイル内容比較
00912 //  case F_DIFF_DIALOG              ://DIFF差分表示(ダイアログ)    //@@@ 2002.05.25 MIK
00913 //  case F_DIFF                     ://DIFF差分表示             //@@@ 2002.05.25 MIK
00914 //  case F_DIFF_NEXT                ://DIFF差分表示(次へ)     //@@@ 2002.05.25 MIK
00915 //  case F_DIFF_PREV                ://DIFF差分表示(前へ)     //@@@ 2002.05.25 MIK
00916 //  case F_DIFF_RESET               ://DIFF差分表示(全解除)      //@@@ 2002.05.25 MIK
00917     case F_BRACKETPAIR              ://対括弧の検索
00918 // From Here 2001.12.03 hor
00919     case F_BOOKMARK_SET             ://ブックマーク設定・解除
00920     case F_BOOKMARK_NEXT            ://次のブックマークへ
00921     case F_BOOKMARK_PREV            ://前のブックマークへ
00922     case F_BOOKMARK_RESET           ://ブックマークの全解除
00923 //  case F_BOOKMARK_VIEW            ://ブックマークの一覧
00924 // To Here 2001.12.03 hor
00925     case F_BOOKMARK_PATTERN         ://検索しして該当行をマーク // 2002.02.08 hor
00926
00927     /* モード切り替え系 */
00928     case F_CHGMOD_INS               ://挿入／上書きモード切り替え
00929     case F_CHGMOD_EOL               ://入力改行コード指定  2003.06.23 Moca
00930
00931     case F_CANCEL_MODE              ://各種モードの取り消し
00932
00933     /* 設定系 */
00934 //  case F_SHOWTOOLBAR              :/* ツールバーの表示 */
00935 //  case F_SHOWFUNCKEY              :/* ファンクションキーの表示 */
00936 //  case F_SHOWTAB                  :/* タブの表示 */
00937 //  case F_SHOWSTATUSBAR            :/* ステータスバーの表示 */
00938 //  case F_TYPE_LIST                :/* タイプ別設定一覧 */
00939 //  case F_OPTION_TYPE              :/* タイプ別設定 */
00940 //  case F_OPTION                   :/* 共通設定 */
00941 //  case F_FONT                     :/* フォント設定 */
00942 //  case F_WRAPWINDOWWIDTH          :/* 現在のウィンドウ幅で折り返し */   //Oct. 15, 2000 JEPRO
00943 //  case F_FAVORITE                 :/* 履歴の管理 */  //@@@ 2003.04.08 MIK
00944
00945     case F_EXECCOMMAND              :/* 外部コマンド実行 */ //@@@2002.2.2 YAZAKI 追加
00946
00947     /* カスタムメニュー */
00948 //  case F_MENU_RBUTTON             :/* 右クリックメニュー */
00949 //  case F_CUSTMENU_1               :/* カスタムメニュー1 */
00950 //  case F_CUSTMENU_2               :/* カスタムメニュー2 */
00951 //  case F_CUSTMENU_3               :/* カスタムメニュー3 */
00952 //  case F_CUSTMENU_4               :/* カスタムメニュー4 */
00953 //  case F_CUSTMENU_5               :/* カスタムメニュー5 */
00954 //  case F_CUSTMENU_6               :/* カスタムメニュー6 */
00955 //  case F_CUSTMENU_7               :/* カスタムメニュー7 */
00956 //  case F_CUSTMENU_8               :/* カスタムメニュー8 */
00957 //  case F_CUSTMENU_9               :/* カスタムメニュー9 */
00958 //  case F_CUSTMENU_10              :/* カスタムメニュー10 */
00959 //  case F_CUSTMENU_11              :/* カスタムメニュー11 */
00960 //  case F_CUSTMENU_12              :/* カスタムメニュー12 */
00961 //  case F_CUSTMENU_13              :/* カスタムメニュー13 */
00962 //  case F_CUSTMENU_14              :/* カスタムメニュー14 */
00963 //  case F_CUSTMENU_15              :/* カスタムメニュー15 */
00964 //  case F_CUSTMENU_16              :/* カスタムメニュー16 */
00965 //  case F_CUSTMENU_17              :/* カスタムメニュー17 */
00966 //  case F_CUSTMENU_18              :/* カスタムメニュー18 */
00967 //  case F_CUSTMENU_19              :/* カスタムメニュー19 */
00968 //  case F_CUSTMENU_20              :/* カスタムメニュー20 */
00969 //  case F_CUSTMENU_21              :/* カスタムメニュー21 */
00970 //  case F_CUSTMENU_22              :/* カスタムメニュー22 */
00971 //  case F_CUSTMENU_23              :/* カスタムメニュー23 */
00972 //  case F_CUSTMENU_24              :/* カスタムメニュー24 */
00973
00974     /* ウィンドウ系 */
00975 //  case F_SPLIT_V                  ://上下に分割  //Sept. 16, 2000 jepro 説明を「縦」から「上下に」に変更
00976 //  case F_SPLIT_H                  ://左右に分割  //Sept. 16, 2000 jepro 説明を「横」から「左右に」に変更
00977 //  case F_SPLIT_VH                 ://縦横に分割  //Sept. 17, 2000 jepro 説明に「に」を追加
00978 //  case F_WINCLOSE                 ://ウィンドウを閉じる
00979 //  case F_WIN_CLOSEALL             ://すべてのウィンドウを閉じる  //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00980 //  case F_NEXTWINDOW               ://次のウィンドウ
00981 //  case F_PREVWINDOW               ://前のウィンドウ
00982 //  case F_CASCADE                  ://重ねて表示
00983 //  case F_TILE_V                   ://上下に並べて表示
00984 //  case F_TILE_H                   ://左右に並べて表示
00985 //  case F_MAXIMIZE_V               ://縦方向に最大化
00986 //  case F_MINIMIZE_ALL             ://すべて最小化   //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00987     case F_REDRAW                   ://再描画
00988     case F_WIN_OUTPUT               ://アウトプットウィンドウ表示
00989 //  case F_TRACEOUT                 ://マクロ用アウトプットウィンドウに表示   2006.04.26 maru
00990     case F_TOPMOST                  ://常に手前に表示
00991 //  case F_GROUPCLOSE               ://グループを閉じる // 2007.06.20 ryoji
00992 //  case F_NEXTGROUP                ://次のグループ   // 2007.06.20 ryoji
00993 //  case F_PREVGROUP                ://前のグループ   // 2007.06.20 ryoji
00994 //  case F_TAB_MOVERIGHT            ://タブを右に移動    // 2007.06.20 ryoji
00995 //  case F_TAB_MOVELEFT             ://タブを左に移動    // 2007.06.20 ryoji
00996 //  case F_TAB_SEPARATE             ://新規グループ   // 2007.06.20 ryoji
00997 //  case F_TAB_JOINTNEXT            ://次のグループに移動  // 2007.06.20 ryoji
00998 //  case F_TAB_JOINTPREV            ://前のグループに移動  // 2007.06.20 ryoji
00999
01000     /* 支援 */
01001 //  case F_HOKAN                    :/* 入力補完 */             //Oct. 15, 2000 JEPRO 入ってなかったので入れてみた
01002 //  case F_HELP_CONTENTS            :/* ヘルプ目次 */          //Dec. 25, 2000 JEPRO 追加
01003 //  case F_HELP_SEARCH              :/* ヘルプキーワード検索 */   //Dec. 25, 2000 JEPRO 追加
01004 //  case F_MENU_ALLFUNC             :/* コマンド一覧 */
01005 //  case F_EXTHELP1                 :/* 外部ヘルプ１ */
01006 //  case F_EXTHTMLHELP              :/* 外部HTMLヘルプ */
01007 //  case F_ABOUT                    :/* バージョン情報 */        //Dec. 25, 2000 JEPRO 追加
01008
01009     /* その他 */
01010 //  case F_SENDMAIL                 :/* メール送信 */
01011         return TRUE;
01012     }
01013     return FALSE;
01014
01015 }
01016
01023 CMacroManagerBase** CSMacroMgr::Idx2Ptr(int idx)
01024 {
01025     //  Jun. 16, 2002 genta
01026     //  キーマクロ以外のマクロを読み込めるように
01027     if ( idx == STAND_KEYMACRO ){
01028         return &m_pKeyMacro;
01029     }
01030     else if ( 0 <= idx && idx < MAX_CUSTMACRO ){
01031         return &m_cSavedKeyMacro[idx];
01032     }
01033
01034 #ifdef _DEBUG
01035     MYTRACE_A( "CSMacroMgr::Idx2Ptr() Out of range: idx=%d\n", idx);
01036 #endif
01037
01038     return NULL;
01039 }
01040
01047 BOOL CSMacroMgr::IsSaveOk(void)
01048 {
01049     return dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro ) == NULL ? FALSE : TRUE;
01050 }
01051 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSMacroMgr.h

sakura_core

CSMacroMgr.h

キーボードマクロ(直接実行用) [詳細]

#include <windows.h>
#include <wtypes.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 の 47 行で定義されています。

#define STAND_KEYMACRO -1

CSMacroMgr.h の 46 行で定義されています。

参照元 CSMacroMgr::Append(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CSMacroMgr::Exec(), CViewCommander::HandleCommand(), CSMacroMgr::Idx2Ptr(), と CSMacroMgr::Save().

変数

const int INVALID_MACRO_IDX = -2

無効なマクロのインデックス番号

日付:
Sep. 15, 2005 FILE

CSMacroMgr.h の 49 行で定義されています。

参照元 CSMacroMgr::CSMacroMgr(), と CSMacroMgr::Exec().

Sakura-Editorに対してSat Nov 17 20:26:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSMacroMgr.h ソースファイル

sakura_core

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 #include <wtypes.h> //VARTYPE
00038
00039 #include "CKeyMacroMgr.h"
00040 #include "CShareData.h"
00041
00042 //using namespace std;
00043
00044 class CEditView;
00045
00046 #define STAND_KEYMACRO  -1  //  標準マクロ（保存ができる）
00047 #define SAVED_KEYMACRO  0   //  保存されたマクロ
00048
00049 const int INVALID_MACRO_IDX = -2;
00050
00051 //  関数名はCSMacroMgrが持つ
00052 struct MacroFuncInfo {
00053     EFunctionCode   m_nFuncID;
00054     const WCHAR*    m_pszFuncName;
00055     VARTYPE         m_varArguments[4];
00056     VARTYPE         m_varResult;
00057     wchar_t*        m_pszData;
00058 };
00059
00060 /*-----------------------------------------------------------------------
00061 クラスの宣言
00062
00063 @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00064 -----------------------------------------------------------------------*/
00065 class CSMacroMgr
00066 {
00067     //  データの型宣言
00068     CMacroManagerBase* m_cSavedKeyMacro[MAX_CUSTMACRO]; //  キーマクロをカスタムメニューの数だけ管理
00069     //  Jun. 16, 2002 genta
00070     //  キーマクロに標準マクロ以外のマクロを読み込めるように
00071     CMacroManagerBase* m_pKeyMacro; //  標準の（保存ができる）キーマクロも管理
00072
00073 public:
00074
00075     /*
00076     ||  Constructors
00077     */
00078     CSMacroMgr();
00079     ~CSMacroMgr();
00080
00081     /*
00082     ||  Attributes & Operations
00083     */
00084     void Clear( int idx );
00085     void ClearAll( void );  /* キーマクロのバッファをクリアする */
00086
00088     BOOL Exec( int idx, HINSTANCE hInstance, CEditView* pcEditView );
00089
00091     bool IsEnabled(int idx) const {
00092         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00093         m_pShareData->m_MacroTable[idx].IsEnabled() : false;
00094     }
00095
00097     const TCHAR* GetTitle(int idx) const
00098     {
00099         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00100             ( m_pShareData->m_MacroTable[idx].m_szName[0] == _T('\0') ?
00101                 m_pShareData->m_MacroTable[idx].m_szFile :
00102                 m_pShareData->m_MacroTable[idx].m_szName)
00103             : NULL;
00104     }
00105
00107     const TCHAR* GetName(int idx) const
00108     {
00109         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00110         m_pShareData->m_MacroTable[idx].m_szName : NULL;
00111     }
00112
00117     const TCHAR* GetFile(int idx) const
00118     {
00119         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00120         m_pShareData->m_MacroTable[idx].m_szFile : NULL;
00121     }
00122
00124     BOOL Load( int idx, HINSTANCE hInstance, const TCHAR* pszPath );
00125     BOOL Save( int idx, HINSTANCE hInstance, const TCHAR* pszPath );
00126     void UnloadAll(void);
00127
00129     int Append( int idx, EFunctionCode nFuncID, LPARAM lParam1, CEditView* pcEditView );
00130
00131     /*
00132     ||  Attributes & Operations
00133     */
00134     static WCHAR* GetFuncInfoByID( HINSTANCE , int , WCHAR* , WCHAR* ); /* 機能ID→関数名，機能名日本語 */
00135     static EFunctionCode GetFuncInfoByName( HINSTANCE , const WCHAR* , WCHAR* );    /* 関数名→機能ID，機能名日本語 */
00136     static BOOL CanFuncIsKeyMacro( int );   /* キーマクロに記録可能な機能かどうかを調べる */
00137
00138     //  Jun. 16, 2002 genta
00139     static const MacroFuncInfo* GetFuncInfoByID( int );
00140
00141     BOOL IsSaveOk(void);
00142
00143     //  Sep. 15, 2005 FILE  実行中マクロのインデックス番号操作 (INVALID_MACRO_IDX:無効)
00144     int GetCurrentIdx( void ) const {
00145         return m_CurrentIdx;
00146     }
00147     void SetCurrentIdx( int idx ) {
00148         m_CurrentIdx = idx;
00149     }
00150
00151 private:
00152     DLLSHAREDATA*   m_pShareData;
00153     CMacroManagerBase** Idx2Ptr(int idx);
00154
00158     int m_CurrentIdx;
00159
00160 public:
00161     static MacroFuncInfo    m_MacroFuncInfoArr[];
00162     static MacroFuncInfo    m_MacroFuncInfoNotCommandArr[];
00163 };
00164
00165
00166
00168 #endif /* _CSMacroMGR_H_ */
00169
00170
00171 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSortedTagJumpList.cpp

sakura_core

CSortedTagJumpList.cpp

タグジャンプリスト [詳細]

#include "stdafx.h"
#include "CSortedTagJumpList.h"
#include "my_icmp.h"

CSortedTagJumpList.cppのインクルード依存関係図

ソースコードを見る。

説明

タグジャンプリスト

作者:
MIK
日付:
2005.3.31

CSortedTagJumpList.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSortedTagJumpList.cpp ソースファイル

sakura_core

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 Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSortedTagJumpList.h

sakura_core

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 Nov 17 20:26:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSortedTagJumpList.h ソースファイル

sakura_core

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 Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitBoxWnd.cpp

sakura_core

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 Nov 17 20:26:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitBoxWnd.cpp ソースファイル

sakura_core

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 : CWnd(_T("::CSplitBoxWnd"))
00022 {
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     if( bVertical ){
00044         m_pszClassName = _T("VSplitBoxWnd");
00045         hCursor = ::LoadCursor( NULL, IDC_SIZENS );
00046     }
00047     else{
00048         m_pszClassName = _T("HSplitBoxWnd");
00049         hCursor = ::LoadCursor( NULL, IDC_SIZEWE );
00050     }
00051     RegisterWC(
00052         hInstance,
00053         NULL,   // Handle to the class icon.
00054         NULL,   // Handle to a small icon
00055         hCursor,// Handle to the class cursor.
00056         (HBRUSH)(COLOR_3DFACE + 1),// Handle to the class background brush.
00057         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.
00058         m_pszClassName// Pointer to a null-terminated string or is an atom.
00059     );
00060
00061     m_bVertical = bVertical;
00062     /* システムマトリックスの取得 */
00063     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00064     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00065
00066     /* 親ウィンドウのクライアント領域のサイズを取得 */
00067     ::GetClientRect( GetParentHwnd(), &rc );
00068
00069     /* 基底クラスメンバ呼び出し */
00070     return CWnd::Create(
00071         /* 初期化 */
00072         hInstance,
00073         hwndParent,
00074         0, // extended window style
00075         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00076         m_pszClassName, // pointer to window name
00077         WS_CHILD | WS_VISIBLE, // window style
00078         bVertical ? ( rc.right - nCxVScroll ):( 0 ), // horizontal position of window
00079         bVertical ? ( 0 ):( rc.bottom - nCyHScroll ), // vertical position of window
00080         bVertical ? ( nCxVScroll ):( 7 ), // window width
00081         bVertical ? ( 7 ):( nCyHScroll ), // window height
00082         NULL // handle to menu, or child-window identifier
00083     );
00084 }
00085
00086
00087
00088
00089 /* 描画処理 */
00090 void CSplitBoxWnd::Draw3dRect( HDC hdc, int x, int y, int cx, int cy,
00091     COLORREF clrTopLeft, COLORREF clrBottomRight )
00092 {
00093     HBRUSH  hBrush;
00094     RECT    rc;
00095     hBrush = ::CreateSolidBrush( clrTopLeft );
00096     ::SetRect( &rc, x, y, x + cx - 1, y + 1 );
00097     ::FillRect( hdc, &rc, hBrush );
00098     ::SetRect( &rc, x, y, x + 1, y + cy - 1 );
00099     ::FillRect( hdc, &rc, hBrush );
00100     ::DeleteObject( hBrush );
00101
00102     hBrush = ::CreateSolidBrush( clrBottomRight );
00103     ::SetRect( &rc, x + cx - 1, y, x + cx, y + cy );
00104     ::FillRect( hdc, &rc, hBrush );
00105     ::SetRect( &rc, x, y + cy - 1, x + cx, y + cy );
00106     ::FillRect( hdc, &rc, hBrush );
00107     ::DeleteObject( hBrush );
00108     return;
00109 }
00110
00111
00112
00113
00114 void CSplitBoxWnd::FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr )
00115 {
00116     RECT    rc;
00117     ::SetBkColor( hdc, clr );
00118     ::SetRect( &rc, x, y, x + cx, y + cy );
00119 	::ExtTextOutW_AnyBuild( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
00120     return;
00121 }
00122
00123
00124
00125
00126 // WM_PAINT
00127 LRESULT CSplitBoxWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00128 {
00129     HDC         hdc;
00130     PAINTSTRUCT ps;
00131     int         nCyHScroll;
00132     int         nCxVScroll;
00133     int         nVSplitHeight;  /* 垂直分割ボックスの高さ */
00134     int         nHSplitWidth;   /* 水平分割ボックスの幅 */
00135
00136     hdc = ::BeginPaint( hwnd, &ps );
00137
00138     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00139     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00140
00141     nVSplitHeight = 7;  /* 垂直分割ボックスの高さ */
00142     nHSplitWidth = 7;   /* 水平分割ボックスの幅 */
00143
00144     if( m_bVertical ){
00145         /* 垂直分割ボックスの描画 */
00146         Draw3dRect( hdc, 0, 0, nCxVScroll, nVSplitHeight,
00147             ::GetSysColor( COLOR_3DLIGHT ), ::GetSysColor( COLOR_3DDKSHADOW )
00148          );
00149         Draw3dRect( hdc, 1, 1, nCxVScroll - 2, nVSplitHeight - 2,
00150             ::GetSysColor( COLOR_3DHILIGHT ), ::GetSysColor( COLOR_3DSHADOW )
00151          );
00152     }else{
00153         /* 水平分割ボックスの描画 */
00154         Draw3dRect( hdc, 0, 0, nHSplitWidth, nCyHScroll,
00155             ::GetSysColor( COLOR_3DLIGHT ), ::GetSysColor( COLOR_3DDKSHADOW )
00156          );
00157
00158         Draw3dRect( hdc, 1, 1, nHSplitWidth - 2, nCyHScroll - 2,
00159             ::GetSysColor( COLOR_3DHILIGHT ), ::GetSysColor( COLOR_3DSHADOW )
00160          );
00161     }
00162
00163     ::EndPaint(hwnd, &ps);
00164     return 0L;
00165 }
00166
00167
00168
00169
00170 //WM_LBUTTONDOWN
00171 LRESULT CSplitBoxWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00172 {
00173     HDC         hdc;
00174     RECT        rc;
00175     RECT        rc2;
00176     int         nCyHScroll;
00177     HBRUSH      hBrush;
00178     HBRUSH      hBrushOld;
00179     ::SetCapture( hwnd );
00180     if( m_bVertical ){
00181         m_nDragPosY = 1;
00182
00183         hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00184         ::SetBkColor( hdc, RGB(0, 0, 0) );
00185         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00186         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00187
00188         ::SetROP2( hdc, R2_XORPEN );
00189         ::SetBkMode( hdc, TRANSPARENT );
00190         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00191         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00192         rc.bottom -= nCyHScroll;
00193
00194         rc2.left = -1;
00195         rc2.top = m_nDragPosY;
00196         rc2.right = rc.right;
00197         rc2.bottom = rc2.top + 6;
00198         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00199
00200         ::SelectObject( hdc, hBrushOld );
00201         ::DeleteObject( hBrush );
00202         ::ReleaseDC( ::GetParent( GetParentHwnd() ), hdc );
00203     }else{
00204         m_nDragPosX = 1;
00205
00206         hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00207         ::SetBkColor( hdc, RGB(0, 0, 0) );
00208         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00209         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00210
00211         ::SetROP2( hdc, R2_XORPEN );
00212         ::SetBkMode( hdc, TRANSPARENT );
00213         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00214
00215         rc2.left = m_nDragPosX;
00216         rc2.top = 0;
00217         rc2.right = rc2.left + 6;
00218         rc2.bottom = rc.bottom;
00219         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00220
00221         ::SelectObject( hdc, hBrushOld );
00222         ::DeleteObject( hBrush );
00223         ::ReleaseDC( ::GetParent( GetParentHwnd() ), hdc );
00224
00225     }
00226     return 0L;
00227 }
00228
00229
00230
00231 //WM_MOUSEMOVE
00232 LRESULT CSplitBoxWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00233 {
00234     HDC         hdc;
00235     int         xPos;
00236     int         yPos;
00237     RECT        rc;
00238     RECT        rc2;
00239     int         nCyHScroll;
00240     int         nCxVScroll;
00241     POINT       po;
00242     POINT       po_top;
00243     HBRUSH      hBrush;
00244     HBRUSH      hBrushOld;
00245     if( hwnd != ::GetCapture() ){
00246         return 0L;
00247     }
00248     if( m_bVertical ){
00249         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00250         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00251         rc.bottom -= nCyHScroll;
00252
00253         ::GetCursorPos( &po );
00254
00255         po_top.x = 0;
00256         po_top.y = 0;
00257         ::ClientToScreen( ::GetParent( GetParentHwnd() ), &po_top );
00258         if( po.y < po_top.y ){
00259             po.y = po_top.y;
00260         }
00261
00262         po_top.x = 0;
00263         po_top.y = rc.bottom;
00264         ::ClientToScreen( ::GetParent( GetParentHwnd() ), &po_top );
00265         if( po.y > po_top.y - 6 ){
00266             po.y = po_top.y - 6;
00267         }
00268
00269         ::ScreenToClient( ::GetParent( GetParentHwnd() ), &po );
00270         xPos = po.x;
00271         yPos = po.y;
00272
00273         if( yPos != m_nDragPosY ){
00274 //          MYTRACE_A( "xPos=%d yPos=%d\n", xPos, yPos );
00275
00276             hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00277             ::SetBkColor( hdc, RGB(0, 0, 0) );
00278             hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00279             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00280
00281             ::SetROP2( hdc, R2_XORPEN );
00282             ::SetBkMode( hdc, TRANSPARENT );
00283             rc2.left = -1;
00284             rc2.top = m_nDragPosY;
00285             rc2.right = rc.right;
00286             rc2.bottom = rc2.top + 6;
00287             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00288
00289             m_nDragPosY =  po.y;
00290
00291             rc2.left = -1;
00292             rc2.top = m_nDragPosY;
00293             rc2.right = rc.right;
00294             rc2.bottom = rc2.top + 6;
00295             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00296
00297             ::SelectObject( hdc, hBrushOld );
00298             ::DeleteObject( hBrush );
00299             ::ReleaseDC( ::GetParent( GetParentHwnd() ), hdc );
00300
00301         }
00302     }else{
00303         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00304         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00305         rc.right -= nCxVScroll;
00306
00307         ::GetCursorPos( &po );
00308
00309         po_top.x = 0;
00310         po_top.y = 0;
00311         ::ClientToScreen( ::GetParent( GetParentHwnd() ), &po_top );
00312         if( po.x < po_top.x ){
00313             po.x = po_top.x;
00314         }
00315
00316         po_top.x = rc.right;
00317         po_top.y = 0;
00318         ::ClientToScreen( ::GetParent( GetParentHwnd() ), &po_top );
00319         if( po.x > po_top.x - 6 ){
00320             po.x = po_top.x - 6;
00321         }
00322
00323         ::ScreenToClient( ::GetParent( GetParentHwnd() ), &po );
00324         xPos = po.x;
00325         yPos = po.y;
00326
00327         if( xPos != m_nDragPosX ){
00328 //          MYTRACE_A( "xPos=%d yPos=%d\n", xPos, yPos );
00329
00330             hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00331             ::SetBkColor( hdc, RGB(0, 0, 0) );
00332             hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00333             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00334
00335             ::SetROP2( hdc, R2_XORPEN );
00336             ::SetBkMode( hdc, TRANSPARENT );
00337
00338             rc2.left = m_nDragPosX;
00339             rc2.top = 0;
00340             rc2.right = rc2.left + 6;
00341             rc2.bottom = rc.bottom;
00342             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00343
00344             m_nDragPosX =  po.x;
00345
00346             rc2.left = m_nDragPosX;
00347             rc2.top = 0;
00348             rc2.right = rc2.left + 6;
00349             rc2.bottom = rc.bottom;
00350             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00351
00352             ::SelectObject( hdc, hBrushOld );
00353             ::DeleteObject( hBrush );
00354             ::ReleaseDC( ::GetParent( GetParentHwnd() ), hdc );
00355         }
00356     }
00357     return 0L;
00358 }
00359
00360
00361
00362
00363 //WM_LBUTTONUP
00364 LRESULT CSplitBoxWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00365 {
00366     HDC         hdc;
00367     RECT        rc;
00368     RECT        rc2;
00369     int         nCyHScroll;
00370     int         nCxVScroll;
00371     HBRUSH      hBrush;
00372     HBRUSH      hBrushOld;
00373     if( hwnd != ::GetCapture() ){
00374         return 0L;
00375     }
00376     if( m_bVertical ){
00377         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00378         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00379         rc.bottom -= nCyHScroll;
00380
00381         hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00382         ::SetBkColor( hdc, RGB(0, 0, 0) );
00383         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00384         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00385
00386         ::SetROP2( hdc, R2_XORPEN );
00387         ::SetBkMode( hdc, TRANSPARENT );
00388         rc2.left = -1;
00389         rc2.top = m_nDragPosY;
00390         rc2.right = rc.right;
00391         rc2.bottom = rc2.top + 6;
00392         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00393
00394         ::SelectObject( hdc, hBrushOld );
00395         ::DeleteObject( hBrush );
00396         ::ReleaseDC( ::GetParent( GetParentHwnd() ), hdc );
00397
00398         /* 親ウィンドウに、メッセージをポストする */
00399 		::PostMessageAny( GetParentHwnd(), MYWM_DOSPLIT, (WPARAM)0, (LPARAM)m_nDragPosY );
00400
00401     }else{
00402         ::GetClientRect( ::GetParent( GetParentHwnd() ), &rc );
00403         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00404         rc.right -= nCxVScroll;
00405
00406         hdc = ::GetDC( ::GetParent( GetParentHwnd() ) );
00407         ::SetBkColor( hdc, RGB(0, 0, 0) );
00408         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00409         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00410
00411         ::SetROP2( hdc, R2_XORPEN );
00412         ::SetBkMode( hdc, TRANSPARENT );
00413
00414         rc2.left = m_nDragPosX;
00415         rc2.top = 0;
00416         rc2.right = rc2.left + 6;
00417         rc2.bottom = rc.bottom;
00418         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00419
00420         ::SelectObject( hdc, hBrushOld );
00421         ::DeleteObject( hBrush );
00422         ::ReleaseDC( GetParentHwnd(), hdc );
00423
00424         /* 親ウィンドウに、メッセージをポストする */
00425 		::PostMessageAny( GetParentHwnd(), MYWM_DOSPLIT, (WPARAM)m_nDragPosX, (LPARAM)0 );
00426     }
00427     ::ReleaseCapture();
00428     return 0L;
00429 }
00430
00431
00432
00433
00434 //WM_LBUTTONDBLCLK
00435 LRESULT CSplitBoxWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00436 {
00437     RECT        rc;
00438     int         nCyHScroll;
00439     if( m_bVertical ){
00440         ::GetClientRect( GetParentHwnd(), &rc );
00441         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00442         rc.bottom -= nCyHScroll;
00443
00444         /* 親ウィンドウに、メッセージをポストする */
00445 		::PostMessageAny( GetParentHwnd(), MYWM_DOSPLIT, (WPARAM)0, (LPARAM)(rc.bottom / 2) );
00446     }
00447     else{
00448         ::GetClientRect( GetParentHwnd(), &rc );
00449         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00450         rc.bottom -= nCyHScroll;
00451
00452         /* 親ウィンドウに、メッセージをポストする */
00453 		::PostMessageAny( GetParentHwnd(), MYWM_DOSPLIT, (WPARAM)(rc.right / 2), (LPARAM)0 );
00454     }
00455     return 0L;
00456 }
00457
00458
00459 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitBoxWnd.h

sakura_core

CSplitBoxWnd.h

分割ボックスウィンドウクラス [詳細]

#include "CWnd.h"

CSplitBoxWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CSplitBoxWnd
分割ボックスウィンドウクラス [詳細]

説明

分割ボックスウィンドウクラス

作者:
Norio Nakatani

CSplitBoxWnd.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitBoxWnd.h ソースファイル

sakura_core

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 TCHAR*    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 Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitterWnd.cpp

sakura_core

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 Nov 17 20:26:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitterWnd.cpp ソースファイル

sakura_core

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 : CWnd(_T("::CSplitterWnd"))
00029 , m_pszClassName(_T("SplitterWndClass"))    /* クラス名 */
00030 , m_nActivePane(0)                  /* アクティブなペイン 0-3 */
00031 , m_nAllSplitRows(1)                    /* 分割行数 */
00032 , m_nAllSplitCols(1)                    /* 分割桁数 */
00033 , m_nVSplitPos(0)                   /* 垂直分割位置 */
00034 , m_nHSplitPos(0)                   /* 水平分割位置 */
00035 , m_bDragging(0)                        /* 分割バーをドラッグ中か */
00036 , m_nDragPosX(0)                        /* ドラッグ位置Ｘ */
00037 , m_nDragPosY(0)                        /* ドラッグ位置Ｙ */
00038 , m_pCEditWnd(NULL)
00039 {
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_pCEditWnd = pCEditWnd;
00066
00067     /* ウィンドウクラス作成 */
00068     ATOM atWork;
00069     atWork = RegisterWC(
00070         hInstance,
00071         NULL,// Handle to the class icon.
00072         NULL,   //Handle to a small icon
00073         NULL,// Handle to the class cursor.
00074         (HBRUSH)NULL,// Handle to the class background brush.
00075         NULL/*MAKEINTRESOURCE( MYDOCUMENT )*/,// Pointer to a null-terminated
00076                 //character string that specifies the resource name of the class menu,
00077                 //as the name appears in the resource file.
00078         m_pszClassName// Pointer to a null-terminated string or is an atom.
00079     );
00080     if( 0 == atWork ){
00081 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00082             _T("SplitterWndクラスの登録に失敗しました。")
00083         );
00084     }
00085
00086     /* 基底クラスメンバ呼び出し */
00087     return CWnd::Create(
00088         hInstance,
00089         hwndParent,
00090         0, // extended window style
00091         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00092         m_pszClassName, // pointer to window name
00093         WS_CHILD | WS_VISIBLE, // window style
00094         CW_USEDEFAULT, // horizontal position of window
00095         0, // vertical position of window
00096         CW_USEDEFAULT, // window width
00097         0, // window height
00098         NULL // handle to menu, or child-window identifier
00099     );
00100 }
00101
00102
00103
00104
00105
00106 /* 子ウィンドウの設定 */
00107 void CSplitterWnd::SetChildWndArr( HWND* pcEditViewArr )
00108 {
00109     for( int v=0; v < MAXCOUNTOFVIEW; v++ ){
00110         m_ChildWndArr[v] = pcEditViewArr[v];                /* 子ウィンドウ配列 */
00111     }
00112
00113     // 2002/05/11 YAZAKI 不要な処理と思われる
00114     /* ウィンドウの分割 */
00115 //  DoSplit( m_nHSplitPos, m_nVSplitPos );
00116 //  DoSplit( 0, 0 );
00117     return;
00118 }
00119
00120
00121
00122
00123 /* 分割フレーム描画 */
00124 void CSplitterWnd::DrawFrame( HDC hdc, RECT* prc )
00125 {
00126     CSplitBoxWnd::Draw3dRect( hdc, prc->left, prc->top, prc->right, prc->bottom,
00127         ::GetSysColor( COLOR_3DSHADOW ),
00128         ::GetSysColor( COLOR_3DHILIGHT )
00129     );
00130     CSplitBoxWnd::Draw3dRect( hdc, prc->left + 1, prc->top + 1, prc->right - 2, prc->bottom - 2,
00131         RGB( 0, 0, 0 ),
00132         ::GetSysColor( COLOR_3DFACE )
00133     );
00134     return;
00135 }
00136
00137
00138
00139
00140 /* 分割トラッカーの表示 */
00141 void CSplitterWnd::DrawSplitter( int xPos, int yPos, int bEraseOld )
00142 {
00143     HDC         hdc;
00144     HBRUSH      hBrush;
00145     HBRUSH      hBrushOld;
00146     RECT        rc;
00147     RECT        rc2;
00148     int         nTrackerWidth = 6;
00149
00150     hdc = ::GetDC( GetHwnd() );
00151     hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00152     hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00153     ::SetROP2( hdc, R2_XORPEN );
00154     ::SetBkMode( hdc, TRANSPARENT );
00155     ::GetClientRect( GetHwnd(), &rc );
00156
00157     if( bEraseOld ){
00158         if( m_bDragging & 1 ){  /* 分割バーをドラッグ中か */
00159             rc2.left = -1;
00160             rc2.top = m_nDragPosY;
00161             rc2.right = rc.right;
00162             rc2.bottom = rc2.top + nTrackerWidth;
00163             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00164         }
00165         if( m_bDragging & 2 ){  /* 分割バーをドラッグ中か */
00166             rc2.left = m_nDragPosX;
00167             rc2.top = 0;
00168             rc2.right = rc2.left + nTrackerWidth;
00169             rc2.bottom = rc.bottom;
00170             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00171         }
00172     }
00173
00174     m_nDragPosX = xPos;
00175     m_nDragPosY = yPos;
00176     if( m_bDragging & 1 ){  /* 分割バーをドラッグ中か */
00177         rc2.left = -1;
00178         rc2.top = m_nDragPosY;
00179         rc2.right = rc.right;
00180         rc2.bottom = rc2.top + nTrackerWidth;
00181         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00182     }
00183     if( m_bDragging & 2 ){  /* 分割バーをドラッグ中か */
00184         rc2.left = m_nDragPosX;
00185         rc2.top = 0;
00186         rc2.right = rc2.left + nTrackerWidth;
00187         rc2.bottom = rc.bottom;
00188         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00189     }
00190
00191     ::SelectObject( hdc, hBrushOld );
00192     ::DeleteObject( hBrush );
00193     ::ReleaseDC( GetHwnd(), hdc );
00194     return;
00195 }
00196
00197
00198
00199
00200 /* 分割バーへのヒットテスト */
00201 int CSplitterWnd::HitTestSplitter( int xPos, int yPos )
00202 {
00203     int         nFrameWidth = 3;
00204     int         nMargin = 2;
00205
00206     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00207         return 0;
00208     }else
00209     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00210         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin ){
00211             return 1;
00212         }else{
00213             return 0;
00214         }
00215     }else
00216     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00217         if( m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00218             return 2;
00219         }else{
00220             return 0;
00221         }
00222     }else{
00223         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin &&
00224             m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00225             return 3;
00226         }else
00227         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin ){
00228             return 1;
00229         }else
00230         if( m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00231             return 2;
00232         }else{
00233             return 0;
00234         }
00235     }
00236 }
00237
00238 /* ウィンドウの分割 */
00239 void CSplitterWnd::DoSplit( int nHorizontal, int nVertical )
00240 {
00241     int                 nActivePane;
00242     int                 nLimit = 32;
00243     RECT                rc;
00244     int                 nAllSplitRowsOld = m_nAllSplitRows; /* 分割行数 */
00245     int                 nAllSplitColsOld = m_nAllSplitCols; /* 分割桁数 */
00246     CEditView*          pcViewArr[MAXCOUNTOFVIEW];
00247 //  int                 i;
00248     BOOL                bVUp;
00249     BOOL                bHUp;
00250     BOOL                bSizeBox;
00251     CEditWnd*           pCEditWnd = (CEditWnd*)m_pCEditWnd;
00252     bVUp = FALSE;
00253     bHUp = FALSE;
00254
00255     if( -1 == nHorizontal && -1 == nVertical ){
00256         nVertical = m_nVSplitPos;       /* 垂直分割位置 */
00257         nHorizontal = m_nHSplitPos;     /* 水平分割位置 */
00258     }
00259     /*
00260     || ファンクションキーを下に表示している場合はサイズボックスを表示しない
00261     || ステータスパーを表示している場合はサイズボックスを表示しない
00262     */
00263     if( NULL == pCEditWnd
00264      ||( NULL != pCEditWnd->m_CFuncKeyWnd.GetHwnd()
00265       && 1 == m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place  /* ファンクションキー表示位置／0:上 1:下 */
00266       )
00267     ){
00268         bSizeBox = FALSE;
00269     }else{
00270         bSizeBox = TRUE;
00271         /* ステータスパーを表示している場合はサイズボックスを表示しない */
00272         if( NULL != pCEditWnd->m_cStatusBar.GetStatusHwnd() ){
00273             bSizeBox = FALSE;
00274         }
00275     }
00276     /* メインウィンドウが最大化されている場合はサイズボックスを表示しない */
00277     WINDOWPLACEMENT wp;
00278     wp.length = sizeof( wp );
00279     ::GetWindowPlacement( GetParentHwnd(), &wp );
00280     if( SW_SHOWMAXIMIZED == wp.showCmd ){
00281         bSizeBox = FALSE;
00282     }
00283
00284     int v;
00285     for( v=0; v < MAXCOUNTOFVIEW; v++ ){
00286         pcViewArr[v] = ( CEditView* )::GetWindowLongPtr( m_ChildWndArr[v], 0 );
00287     }
00288     ::GetClientRect( GetHwnd(), &rc );
00289     if( nHorizontal < nLimit ){
00290         if( nHorizontal > 0 ){
00291             bHUp = TRUE;
00292         }
00293         nHorizontal = 0;
00294     }
00295     if( nHorizontal > rc.right - nLimit * 2 ){
00296         nHorizontal = 0;
00297     }
00298     if( nVertical < nLimit ){
00299         if( nVertical > 0 ){
00300             bVUp = TRUE;
00301         }
00302         nVertical = 0;
00303     }
00304     if( nVertical > rc.bottom - nLimit * 2 ){
00305         nVertical = 0;
00306     }
00307     m_nVSplitPos = nVertical;       /* 垂直分割位置 */
00308     m_nHSplitPos = nHorizontal;     /* 水平分割位置 */
00309
00310     if( nVertical == 0 && nHorizontal == 0 ){
00311         m_nAllSplitRows = 1;    /* 分割行数 */
00312         m_nAllSplitCols = 1;    /* 分割桁数 */
00313         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00314         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_HIDE );
00315         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_HIDE );
00316         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00317
00318         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( TRUE, TRUE, bSizeBox );     /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00319 //      if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00320 //      if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00321 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00322
00323         OnSize( 0, 0, 0, 0 );
00324
00325         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00326         }else
00327         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00328             if( bVUp ){
00329                 /* ペインの表示状態を他のビューにコピー */
00330                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00331                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00332                 }
00333             }else{
00334                 /* ペインの表示状態を他のビューにコピー */
00335                 if( m_nActivePane != 0 &&
00336                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00337                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00338                 }
00339             }
00340         }else
00341         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00342             if( bHUp ){
00343                 /* ペインの表示状態を他のビューにコピー */
00344                 if( NULL != pcViewArr[1] && NULL != pcViewArr[0] ){
00345                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00346                 }
00347             }else{
00348                 /* ペインの表示状態を他のビューにコピー */
00349                 if( m_nActivePane != 0 &&
00350                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00351                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00352                 }
00353             }
00354         }else{
00355             if( !bVUp && !bHUp ){
00356                 /* ペインの表示状態を他のビューにコピー */
00357                 if( m_nActivePane != 0 &&
00358                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00359                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00360                 }
00361             }else
00362             if( bVUp && !bHUp ){
00363                 /* ペインの表示状態を他のビューにコピー */
00364                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00365                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00366                 }
00367             }else
00368             if( !bVUp && bHUp ){
00369                 /* ペインの表示状態を他のビューにコピー */
00370                 if( NULL != pcViewArr[1] && NULL != pcViewArr[0] ){
00371                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00372                 }
00373             }else{
00374                 /* ペインの表示状態を他のビューにコピー */
00375                 if( NULL != pcViewArr[3] && NULL != pcViewArr[0] ){
00376                     pcViewArr[3]->CopyViewStatus( pcViewArr[0] );
00377                 }
00378             }
00379         }
00380         nActivePane = 0;
00381     }else
00382     if( nVertical > 0 &&  nHorizontal == 0 ){
00383         m_nAllSplitRows = 2;    /* 分割行数 */
00384         m_nAllSplitCols = 1;    /* 分割桁数 */
00385
00386         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00387         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_HIDE );
00388         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_SHOW );
00389         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00390         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00391 //      if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00392         if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, TRUE, bSizeBox );    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00393 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00394
00395         OnSize( 0, 0, 0, 0 );
00396
00397         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00398             /* 上下に分割したとき */
00399             /* ペインの表示状態を他のビューにコピー */
00400             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00401                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00402             }
00403             // YAZAKI
00404             pcViewArr[2]->GetTextArea().SetViewTopLine( pcViewArr[0]->GetTextArea().GetViewTopLine() + pcViewArr[0]->GetTextArea().m_nViewRowNum );
00405         }
00406         else if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00407         }
00408         else if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00409         }
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]->GetTextArea().GetViewTopLine() < pcViewArr[2]->GetCaret().GetCaretLayoutPos().y ){
00448                     nActivePane = 2;
00449                 }
00450                 else{
00451                     nActivePane = 0;
00452                 }
00453             }
00454         }
00455         else{
00456             nActivePane = 2;
00457         }
00458     }
00459     else if( nVertical == 0 &&  nHorizontal > 0 ){
00460         m_nAllSplitRows = 1;    /* 分割行数 */
00461         m_nAllSplitCols = 2;    /* 分割桁数 */
00462
00463         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00464         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_SHOW );
00465         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_HIDE );
00466         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00467         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00468         if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( TRUE, FALSE, bSizeBox );    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00469 //      if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00470 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00471
00472         OnSize( 0, 0, 0, 0 );
00473
00474         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00475             /* ペインの表示状態を他のビューにコピー */
00476             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00477                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00478             }
00479         }else
00480         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00481         }else
00482         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00483         }else{
00484             if( bVUp ){
00485                 /* ペインの表示状態を他のビューにコピー */
00486                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00487                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00488                 }
00489                 /* ペインの表示状態を他のビューにコピー */
00490                 if( NULL != pcViewArr[3] && NULL != pcViewArr[1] ){
00491                     pcViewArr[3]->CopyViewStatus( pcViewArr[1] );
00492                 }
00493             }else{
00494                 /* ペインの表示状態を他のビューにコピー */
00495                 if( m_nActivePane != 0 &&
00496                     m_nActivePane != 1 &&
00497                     NULL != pcViewArr[0] &&
00498                     NULL != pcViewArr[1] &&
00499                     NULL != pcViewArr[2] &&
00500                     NULL != pcViewArr[3]
00501                 ){
00502                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00503                     pcViewArr[3]->CopyViewStatus( pcViewArr[1] );
00504                 }
00505             }
00506         }
00507         if( m_nActivePane == 0 || m_nActivePane == 2 ){
00508             nActivePane = 0;
00509         }else{
00510             nActivePane = 1;
00511         }
00512     }else{
00513         m_nAllSplitRows = 2;    /* 分割行数 */
00514         m_nAllSplitCols = 2;    /* 分割桁数 */
00515         if( m_ChildWndArr[0] != NULL ){ ::ShowWindow( m_ChildWndArr[0], SW_SHOW );}
00516         if( m_ChildWndArr[1] != NULL ){ ::ShowWindow( m_ChildWndArr[1], SW_SHOW );}
00517         if( m_ChildWndArr[2] != NULL ){ ::ShowWindow( m_ChildWndArr[2], SW_SHOW );}
00518         if( m_ChildWndArr[3] != NULL ){ ::ShowWindow( m_ChildWndArr[3], SW_SHOW );}
00519         if( NULL != pcViewArr[0] ){ pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00520         if( NULL != pcViewArr[1] ){ pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00521         if( NULL != pcViewArr[2] ){ pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00522         if( NULL != pcViewArr[3] ){ pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, bSizeBox );} /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00523
00524         OnSize( 0, 0, 0, 0 );
00525
00526         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00527             /* ペインの表示状態を他のビューにコピー */
00528             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00529                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00530             }
00531             /* ペインの表示状態を他のビューにコピー */
00532             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00533                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00534             }
00535             /* ペインの表示状態を他のビューにコピー */
00536             if( NULL != pcViewArr[0] && NULL != pcViewArr[3] ){
00537                 pcViewArr[0]->CopyViewStatus( pcViewArr[3] );
00538             }
00539         }else
00540         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00541             /* ペインの表示状態を他のビューにコピー */
00542             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00543                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00544             }
00545             /* ペインの表示状態を他のビューにコピー */
00546             if( NULL != pcViewArr[2] && NULL != pcViewArr[3] ){
00547                 pcViewArr[2]->CopyViewStatus( pcViewArr[3] );
00548             }
00549         }else
00550         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00551             /* ペインの表示状態を他のビューにコピー */
00552             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00553                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00554             }
00555             /* ペインの表示状態を他のビューにコピー */
00556             if( NULL != pcViewArr[1] && NULL != pcViewArr[3] ){
00557                 pcViewArr[1]->CopyViewStatus( pcViewArr[3] );
00558             }
00559         }else{
00560         }
00561         nActivePane = m_nActivePane;
00562     }
00563     OnSize( 0, 0, 0, 0 );
00564
00565     /* アクティブになったことをペインに通知 */
00566     if( m_ChildWndArr[nActivePane] != NULL ){
00567 		::PostMessageAny( m_ChildWndArr[nActivePane], MYWM_SETACTIVEPANE, 0, 0 );
00568     }
00569
00570     return;
00571 }
00572
00573 /* アクティブペインの設定 */
00574 void CSplitterWnd::SetActivePane( int nIndex )
00575 {
00576     m_nActivePane = nIndex;
00577     return;
00578 }
00579
00580
00581 /* 縦分割ＯＮ／ＯＦＦ */
00582 void CSplitterWnd::VSplitOnOff( void )
00583 {
00584     RECT        rc;
00585     ::GetClientRect( GetHwnd(), &rc );
00586
00587     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00588         DoSplit( 0, rc.bottom / 2 );
00589     }else
00590     if( m_nAllSplitRows == 1 && m_nAllSplitCols > 1 ){
00591         DoSplit( m_nHSplitPos, rc.bottom / 2 );
00592     }else
00593     if( m_nAllSplitRows > 1 && m_nAllSplitCols == 1 ){
00594         DoSplit( 0, 0 );
00595     }else{
00596         DoSplit( m_nHSplitPos, 0 );
00597     }
00598     return;
00599 }
00600
00601
00602
00603 /* 横分割ＯＮ／ＯＦＦ */
00604 void CSplitterWnd::HSplitOnOff( void )
00605 {
00606     RECT        rc;
00607     ::GetClientRect( GetHwnd(), &rc );
00608
00609     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00610         DoSplit( rc.right / 2, 0 );
00611     }else
00612     if( m_nAllSplitRows == 1 && m_nAllSplitCols > 1 ){
00613         DoSplit( 0, 0 );
00614     }else
00615     if( m_nAllSplitRows > 1 && m_nAllSplitCols == 1 ){
00616         DoSplit( rc.right / 2 , m_nVSplitPos );
00617     }else{
00618         DoSplit( 0, m_nVSplitPos );
00619     }
00620     return;
00621 }
00622
00623
00624
00625 /* 縦横分割ＯＮ／ＯＦＦ */
00626 void CSplitterWnd::VHSplitOnOff( void )
00627 {
00628     int     nX;
00629     int     nY;
00630     RECT    rc;
00631     ::GetClientRect( GetHwnd(), &rc );
00632
00633     if( m_nAllSplitRows > 1 && m_nAllSplitCols > 1 ){
00634         nX = 0;
00635         nY = 0;
00636     }else{
00637         if( m_nAllSplitRows == 1){
00638             nY = rc.bottom / 2;
00639         }else{
00640             nY = m_nVSplitPos;
00641         }
00642         if( m_nAllSplitCols == 1 ){
00643             nX = rc.right / 2;
00644         }else{
00645             nX = m_nHSplitPos;
00646         }
00647     }
00648     DoSplit( nX, nY );
00649
00650     return;
00651 }
00652
00653
00654 /* 前のペインを返す */
00655 int CSplitterWnd::GetPrevPane( void )
00656 {
00657     int     nPane;
00658     nPane = -1;
00659     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00660         nPane = -1;
00661     }else
00662     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00663         switch( m_nActivePane ){
00664         case 0:
00665             nPane = -1;
00666             break;
00667         case 2:
00668             nPane = 0;
00669             break;
00670         }
00671     }else
00672     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00673         switch( m_nActivePane ){
00674         case 0:
00675             nPane = -1;
00676             break;
00677         case 1:
00678             nPane = 0;
00679             break;
00680         }
00681     }else{
00682         switch( m_nActivePane ){
00683         case 0:
00684             nPane = -1;
00685             break;
00686         case 1:
00687             nPane = 0;
00688             break;
00689         case 2:
00690             nPane = 1;
00691             break;
00692         case 3:
00693             nPane = 2;
00694             break;
00695         }
00696     }
00697     return nPane;
00698 }
00699
00700
00701
00702
00703 /* 次のペインを返す */
00704 int CSplitterWnd::GetNextPane( void )
00705 {
00706     int     nPane;
00707     nPane = -1;
00708     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00709         nPane = -1;
00710     }else
00711     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00712         switch( m_nActivePane ){
00713         case 0:
00714             nPane = 2;
00715             break;
00716         case 2:
00717             nPane = -1;
00718             break;
00719         }
00720     }else
00721     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00722         switch( m_nActivePane ){
00723         case 0:
00724             nPane = 1;
00725             break;
00726         case 1:
00727             nPane = -1;
00728             break;
00729         }
00730     }else{
00731         switch( m_nActivePane ){
00732         case 0:
00733             nPane = 1;
00734             break;
00735         case 1:
00736             nPane = 2;
00737             break;
00738         case 2:
00739             nPane = 3;
00740             break;
00741         case 3:
00742             nPane = -1;
00743             break;
00744         }
00745     }
00746     return nPane;
00747 }
00748
00749
00750 /* 最初のペインを返す */
00751 int CSplitterWnd::GetFirstPane( void )
00752 {
00753     return 0;
00754 }
00755
00756
00757
00758 /* 最後のペインを返す */
00759 int CSplitterWnd::GetLastPane( void )
00760 {
00761     int     nPane;
00762     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00763         nPane = 0;
00764     }else
00765     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00766         nPane = 1;
00767     }else
00768     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00769         nPane = 2;
00770     }else{
00771         nPane = 3;
00772     }
00773     return nPane;
00774 }
00775
00776
00777
00778
00779 /* 描画処理 */
00780 LRESULT CSplitterWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00781 {
00782     HDC         hdc;
00783     PAINTSTRUCT ps;
00784     RECT        rc;
00785     RECT        rcFrame;
00786     int         nFrameWidth = 3;
00787     HBRUSH      hBrush;
00788     hdc = ::BeginPaint( hwnd, &ps );
00789     ::GetClientRect( GetHwnd(), &rc );
00790     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00791     if( m_nAllSplitRows > 1 ){
00792         ::SetRect( &rcFrame, rc.left, m_nVSplitPos, rc.right, m_nVSplitPos + nFrameWidth );
00793         ::FillRect( hdc, &rcFrame, hBrush );
00794     }
00795     if( m_nAllSplitCols > 1 ){
00796         ::SetRect( &rcFrame, m_nHSplitPos, rc.top, m_nHSplitPos + nFrameWidth, rc.bottom );
00797         ::FillRect( hdc, &rcFrame, hBrush );
00798     }
00799     ::DeleteObject( hBrush );
00800     ::EndPaint(hwnd, &ps);
00801     return 0L;
00802 }
00803
00804
00805
00806
00807 /* ウィンドウサイズの変更処理 */
00808 LRESULT CSplitterWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00809 {
00810     CEditWnd*   pCEditWnd = (CEditWnd*)m_pCEditWnd;
00811     CEditView*  pcViewArr[MAXCOUNTOFVIEW];
00812     int                 i;
00813     RECT        rcClient;
00814     int         nFrameWidth = 3;
00815     BOOL        bSizeBox;
00816     for( i = 0; i < MAXCOUNTOFVIEW; ++i ){
00817         pcViewArr[i] = ( CEditView* )::GetWindowLongPtr( m_ChildWndArr[i], 0 );
00818     }
00819
00820     /*
00821     || ファンクションキーを下に表示している場合はサイズボックスを表示しない
00822     || ステータスパーを表示している場合はサイズボックスを表示しない
00823     */
00824     if( NULL == pCEditWnd
00825      ||( NULL != pCEditWnd->m_CFuncKeyWnd.GetHwnd()
00826       && 1 == m_pShareData->m_Common.m_sWindow.m_nFUNCKEYWND_Place  /* ファンクションキー表示位置／0:上 1:下 */
00827       )
00828     ){
00829         bSizeBox = FALSE;
00830     }else{
00831         bSizeBox = TRUE;
00832         /* ステータスパーを表示している場合はサイズボックスを表示しない */
00833         if( NULL != pCEditWnd->m_cStatusBar.GetStatusHwnd() ){
00834             bSizeBox = FALSE;
00835         }
00836     }
00837     /* メインウィンドウが最大化されている場合はサイズボックスを表示しない */
00838     WINDOWPLACEMENT wp;
00839     wp.length = sizeof( wp );
00840     ::GetWindowPlacement( GetParentHwnd(), &wp );
00841     if( SW_SHOWMAXIMIZED == wp.showCmd ){
00842         bSizeBox = FALSE;
00843     }
00844
00845     ::GetClientRect( GetHwnd(), &rcClient );
00846
00847     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00848         if( m_ChildWndArr[0] != NULL ){
00849             ::MoveWindow( m_ChildWndArr[0], 0, 0, rcClient.right,  rcClient.bottom, TRUE );     /* 子ウィンドウ配列 */
00850
00851             pcViewArr[0]->SplitBoxOnOff( TRUE, TRUE, bSizeBox );        /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00852         }
00853     }else
00854     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00855         if( m_ChildWndArr[0] != NULL ){
00856             ::MoveWindow( m_ChildWndArr[0], 0, 0, rcClient.right,  m_nVSplitPos, TRUE );        /* 子ウィンドウ配列 */
00857             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00858         }
00859         if( m_ChildWndArr[2] != NULL ){
00860             ::MoveWindow( m_ChildWndArr[2], 0, m_nVSplitPos + nFrameWidth, rcClient.right, rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );            /* 子ウィンドウ配列 */
00861             pcViewArr[2]->SplitBoxOnOff( FALSE, TRUE, bSizeBox );   /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00862         }
00863     }else
00864     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00865         if( m_ChildWndArr[0] != NULL ){
00866             ::MoveWindow( m_ChildWndArr[0], 0, 0, m_nHSplitPos, rcClient.bottom, TRUE );            /* 子ウィンドウ配列 */
00867             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00868         }
00869         if( m_ChildWndArr[1] != NULL ){
00870             ::MoveWindow( m_ChildWndArr[1], m_nHSplitPos + nFrameWidth, 0, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  rcClient.bottom, TRUE );           /* 子ウィンドウ配列 */
00871             pcViewArr[1]->SplitBoxOnOff( TRUE, FALSE, bSizeBox );   /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00872         }
00873     }else{
00874         if( m_ChildWndArr[0] != NULL ){
00875             ::MoveWindow( m_ChildWndArr[0], 0, 0, m_nHSplitPos,  m_nVSplitPos, TRUE );          /* 子ウィンドウ配列 */
00876             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00877         }
00878         if( m_ChildWndArr[1] != NULL ){
00879             ::MoveWindow( m_ChildWndArr[1], m_nHSplitPos + nFrameWidth, 0, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  m_nVSplitPos, TRUE );          /* 子ウィンドウ配列 */
00880             pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00881         }
00882         if( m_ChildWndArr[2] != NULL ){
00883             ::MoveWindow( m_ChildWndArr[2], 0, m_nVSplitPos + nFrameWidth , m_nHSplitPos,  rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );            /* 子ウィンドウ配列 */
00884             pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00885         }
00886         if( m_ChildWndArr[3] != NULL ){
00887             ::MoveWindow( m_ChildWndArr[3], m_nHSplitPos + nFrameWidth, m_nVSplitPos + nFrameWidth, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );         /* 子ウィンドウ配列 */
00888             pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, bSizeBox );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00889         }
00890     }
00891     //デスクトップがちらつくのでだめ!
00892     //::InvalidateRect( GetHwnd(), NULL, TRUE );    //再描画してね。 //@@@ 2003.06.11 MIK
00893     return 0L;
00894 }
00895
00896
00897
00898 /* マウス移動時の処理 */
00899 LRESULT CSplitterWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00900 {
00901
00902     int     nHit;
00903     HCURSOR hcurOld;    /* もとのマウスカーソル */
00904     RECT    rc;
00905     int     xPos;
00906     int     yPos;
00907
00908     xPos = (int)(short)LOWORD(lParam);
00909     yPos = (int)(short)HIWORD(lParam);
00910
00911     nHit = HitTestSplitter( xPos, yPos );
00912     switch( nHit ){
00913     case 1:
00914         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZENS ) );
00915         break;
00916     case 2:
00917         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZEWE ) );
00918         break;
00919     case 3:
00920         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZEALL ) );
00921         break;
00922     }
00923     if( 0 != m_bDragging ){     /* 分割バーをドラッグ中か */
00924         ::GetClientRect( GetHwnd(), &rc );
00925         if( xPos < 1 ){
00926             xPos = 1;
00927         }
00928         if( xPos > rc.right - 6 ){
00929             xPos = rc.right - 6;
00930         }
00931         if( yPos < 1 ){
00932             yPos = 1;
00933         }
00934         if( yPos > rc.bottom - 6 ){
00935             yPos = rc.bottom - 6;
00936         }
00937         /* 分割トラッカーの表示 */
00938         DrawSplitter( xPos, yPos, TRUE );
00939 //      MYTRACE_A( "xPos=%d yPos=%d \n", xPos, yPos );
00940     }
00941     return 0L;
00942 }
00943
00944
00945
00946 /* マウス左ボタン押下時の処理 */
00947 LRESULT CSplitterWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00948 {
00949     int     nHit;
00950     int     xPos;
00951     int     yPos;
00952
00953     xPos = (int)(short)LOWORD(lParam);
00954     yPos = (int)(short)HIWORD(lParam);
00955
00956     ::SetFocus( GetParentHwnd() );
00957     /* 分割バーへのヒットテスト */
00958     nHit = HitTestSplitter( xPos, yPos );
00959     if( 0 != nHit ){
00960         m_bDragging = nHit; /* 分割バーをドラッグ中か */
00961         ::SetCapture( GetHwnd() );
00962     }
00963     /* 分割トラッカーの表示 */
00964     DrawSplitter( xPos, yPos, FALSE );
00965
00966     return 0L;
00967 }
00968
00969
00970
00971
00972 /* マウス左ボタン解放時の処理 */
00973 LRESULT CSplitterWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00974 {
00975
00976     int bDraggingOld;
00977     int nX;
00978     int nY;
00979
00980     if( m_bDragging ){
00981         /* 分割トラッカーの表示 */
00982         DrawSplitter( m_nDragPosX, m_nDragPosY, FALSE );
00983         bDraggingOld = m_bDragging;
00984         m_bDragging = 0;
00985         ::ReleaseCapture();
00986         if( NULL != m_hcurOld ){
00987             ::SetCursor( m_hcurOld );
00988         }
00989         /* ウィンドウの分割 */
00990         if( m_nAllSplitRows == 1 ){
00991             nY = 0;
00992         }else{
00993             nY = m_nDragPosY;
00994         }
00995         if( m_nAllSplitCols == 1 ){
00996             nX = 0;
00997         }else{
00998             nX = m_nDragPosX;
00999         }
01000         if( bDraggingOld == 1 ){
01001             DoSplit( m_nHSplitPos, nY );
01002         }else
01003         if( bDraggingOld == 2 ){
01004             DoSplit( nX, m_nVSplitPos );
01005         }else
01006         if( bDraggingOld == 3 ){
01007             DoSplit( nX, nY );
01008         }
01009     }
01010     return 0L;
01011 }
01012
01013
01014
01015
01016 /* マウス左ボタンダブルクリック時の処理 */
01017 LRESULT CSplitterWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01018 {
01019     int nX;
01020     int nY;
01021     int nHit;
01022     int xPos;
01023     int yPos;
01024
01025     xPos = (int)(short)LOWORD(lParam);
01026     yPos = (int)(short)HIWORD(lParam);
01027
01028     nHit = HitTestSplitter( xPos, yPos );
01029     if( nHit == 1 ){
01030         if( m_nAllSplitCols == 1 ){
01031             nX = 0;
01032         }else{
01033             nX = m_nHSplitPos;
01034         }
01035         DoSplit( nX , 0 );
01036     }else
01037     if( nHit == 2 ){
01038         if( m_nAllSplitRows == 1 ){
01039             nY = 0;
01040         }else{
01041             nY = m_nVSplitPos;
01042         }
01043         DoSplit( 0 , nY );
01044     }else
01045     if( nHit == 3 ){
01046         DoSplit( 0 , 0 );
01047     }
01048     OnMouseMove( GetHwnd(), 0, 0, MAKELONG( xPos, yPos ) );
01049     return 0L;
01050 }
01051
01052
01053
01054
01055 /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
01056 LRESULT CSplitterWnd::DispatchEvent_WM_APP( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01057 {
01058     int nPosX;
01059     int nPosY;
01060     switch( uMsg ){
01061     case MYWM_DOSPLIT:
01062         nPosX = (int)wParam;
01063         nPosY = (int)lParam;
01064 //      MYTRACE_A( "MYWM_DOSPLIT nPosX=%d nPosY=%d\n", nPosX, nPosY );
01065
01066         /* ウィンドウの分割 */
01067         if( 0 != m_nHSplitPos ){
01068             nPosX = m_nHSplitPos;
01069         }
01070         if( 0 != m_nVSplitPos ){
01071             nPosY = m_nVSplitPos;
01072         }
01073         DoSplit( nPosX , nPosY );
01074         break;
01075     case MYWM_SETACTIVEPANE:
01076         SetActivePane( (int)wParam );
01077         break;
01078     }
01079     return 0L;
01080 }
01081
01082
01083 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitterWnd.h

sakura_core

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 Nov 17 20:26:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CSplitterWnd.h ソースファイル

sakura_core

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     TCHAR*          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 Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStream.cpp

sakura_core » io

CStream.cpp

#include "stdafx.h"
#include "CStream.h"

CStream.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStream.cpp ソースファイル

sakura_core » io

CStream.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CStream.h"
00003
00004 //コンストラクタ・デストラクタ
00005 CStream::CStream(const TCHAR* tszPath, const TCHAR* tszMode)
00006 {
00007     m_fp = NULL;
00008     Open(tszPath,tszMode);
00009 }
00010
00011 CStream::CStream()
00012 {
00013     m_fp = NULL;
00014 }
00015
00016 CStream::~CStream()
00017 {
00018     Close();
00019 }
00020
00021 //操作
00022 void CStream::Open(const TCHAR* tszPath, const TCHAR* tszMode)
00023 {
00024     Close(); //既に開いていたら、一度閉じる
00025     m_fp = _tfopen(tszPath,tszMode);
00026 }
00027
00028 void CStream::Close()
00029 {
00030     if(m_fp){
00031         fclose(m_fp);
00032         m_fp=NULL;
00033     }
00034 }
00035
00036 void CStream::SeekSet(
00037     long offset
00038 )
00039 {
00040     fseek(m_fp,offset,SEEK_SET);
00041 }
00042
00043 void CStream::SeekEnd(
00044     long offset
00045 )
00046 {
00047     fseek(m_fp,offset,SEEK_END);
00048 }
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStream.h

sakura_core » io

CStream.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CStream

Sakura-Editorに対してSat Nov 17 20:26:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStream.h ソースファイル

sakura_core » io

CStream.h

説明を見る。
00001 #pragma once
00002
00003 //ストリーム基底クラス
00004 class CStream{
00005 public:
00006     //コンストラクタ・デストラクタ
00007     CStream(const TCHAR* tszPath, const TCHAR* tszMode);
00008     CStream();
00009     virtual ~CStream();
00010
00011     //演算子
00012     operator bool() const{ return Good(); }
00013
00014     //操作
00015     void Open(const TCHAR* tszPath, const TCHAR* tszMode);
00016     void Close();
00017     void SeekSet(
00018         long offset
00019     );
00020     void SeekEnd(
00021         long offset
00022     );
00023
00024     //状態
00025     virtual bool Good() const{ return m_fp!=NULL && !Eof(); }
00026     bool Eof() const{ return m_fp==NULL || feof(m_fp); }
00027 protected:
00028     FILE* m_fp;
00029 };
00030
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictInteger.cpp

sakura_core » basis

CStrictInteger.cpp

#include "stdafx.h"
#include "CStrictInteger.h"

CStrictInteger.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictInteger.cpp ソースファイル

sakura_core » basis

CStrictInteger.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CStrictInteger.h"
00003
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictInteger.h

sakura_core » basis

CStrictInteger.h

厳格っぷりをカスタマイズ可能な整数クラス Integer class, which is static-type-checked strict and flexible at compile. [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >
暗黙の変換を許さない、整数クラス [詳細]
class | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CDummy
ゴミクラス [詳細]
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< ALLOW >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< true >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AddsubInteger< false >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< ALLOW >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< true >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CmpInteger< false >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< ALLOW >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< true >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::CastInteger< false >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< ALLOW >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< true >
struct | CStrictInteger< STRICT_ID, ALLOW_CMP_INT, ALLOW_ADDSUB_INT, ALLOW_CAST_INT, ALLOW_ASSIGNOP_INT >::AssignInteger< false >

マクロ定義

#define | STRICTINT_OTHER_TYPE_AS_INT(TYPE)
#define | STRICTINT_LEFT_INT_CMP(TYPE)

説明

厳格っぷりをカスタマイズ可能な整数クラス Integer class, which is static-type-checked strict and flexible at compile.

作者:
kobake
日付:
2007.10.16

CStrictInteger.h で定義されています。

マクロ定義

#define STRICTINT_LEFT_INT_CMP ( TYPE )

値:

template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator <  (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs> lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator <= (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs>=lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator >  (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs< lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator >= (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs<=lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator == (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs==lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator != (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs!=lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator + (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return  rhs+lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator - (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return -rhs+lhs; } \
    template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator * (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return  rhs*lhs; }

CStrictInteger.h の 225 行で定義されています。

#define STRICTINT_OTHER_TYPE_AS_INT ( TYPE )

値:

Me& operator += (TYPE rhs)          { return operator += ((int)rhs); } \
    Me& operator -= (TYPE rhs)          { return operator -= ((int)rhs); } \
    Me operator + (TYPE rhs)    const   { return operator +  ((int)rhs); } \
    Me operator - (TYPE rhs)    const   { return operator -  ((int)rhs); } \
    bool operator <  (TYPE rhs) const   { return operator <  ((int)rhs); } \
    bool operator <= (TYPE rhs) const   { return operator <= ((int)rhs); } \
    bool operator >  (TYPE rhs) const   { return operator >  ((int)rhs); } \
    bool operator >= (TYPE rhs) const   { return operator >= ((int)rhs); } \
    bool operator == (TYPE rhs) const   { return operator == ((int)rhs); } \
    bool operator != (TYPE rhs) const   { return operator != ((int)rhs); }

CStrictInteger.h の 35 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictInteger.h ソースファイル

sakura_core » basis

CStrictInteger.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 2007, kobake
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 #pragma once
00033
00034 //int以外の整数型もintにキャストして扱う
00035 #define STRICTINT_OTHER_TYPE_AS_INT(TYPE) \
00036     Me& operator += (TYPE rhs)          { return operator += ((int)rhs); } \
00037     Me& operator -= (TYPE rhs)          { return operator -= ((int)rhs); } \
00038     Me operator + (TYPE rhs)    const   { return operator +  ((int)rhs); } \
00039     Me operator - (TYPE rhs)    const   { return operator -  ((int)rhs); } \
00040     bool operator <  (TYPE rhs) const   { return operator <  ((int)rhs); } \
00041     bool operator <= (TYPE rhs) const   { return operator <= ((int)rhs); } \
00042     bool operator >  (TYPE rhs) const   { return operator >  ((int)rhs); } \
00043     bool operator >= (TYPE rhs) const   { return operator >= ((int)rhs); } \
00044     bool operator == (TYPE rhs) const   { return operator == ((int)rhs); } \
00045     bool operator != (TYPE rhs) const   { return operator != ((int)rhs); }
00046
00047
00049 template <
00050     int STRICT_ID,
00051     bool ALLOW_CMP_INT,
00052     bool ALLOW_ADDSUB_INT,
00053     bool ALLOW_CAST_INT,
00054     bool ALLOW_ASSIGNOP_INT
00055 >
00056 class CStrictInteger{
00057 private:
00058     typedef CStrictInteger<
00059         STRICT_ID,
00060         ALLOW_CMP_INT,
00061         ALLOW_ADDSUB_INT,
00062         ALLOW_CAST_INT,
00063         ALLOW_ASSIGNOP_INT
00064     > Me;
00065     static const int NOT_STRICT_ID = (1-STRICT_ID);
00066
00067 private:
00069     class CDummy{
00070     public:
00071         CDummy();
00072         CDummy(int);
00073     };
00074 public:
00075     //コンストラクタ・デストラクタ
00076     CStrictInteger(){ m_value=0; }
00077     CStrictInteger(const Me& rhs){ m_value=rhs.m_value; }
00078
00079     //intからの変換は、「明示的に指定したときのみ」可能
00080     explicit CStrictInteger(int value){ m_value=value; }
00081
00082     //算術演算子 (加算、減算は同クラス同士でしか許さない)
00083     Me& operator += (const Me& rhs) { m_value += rhs.m_value; return *this; }
00084     Me& operator -= (const Me& rhs) { m_value -= rhs.m_value; return *this; }
00085     Me& operator *= (int n)         { m_value *= n; return *this; }
00086     Me& operator /= (int n)         { m_value /= n; return *this; }
00087     Me& operator %= (int n)         { m_value %= n; return *this; }
00088     Me& operator %= (const Me& rhs) { m_value %= rhs.m_value; return *this; }
00089
00090     //算術演算子２ (加算、減算は同クラス同士でしか許さない)
00091     Me operator + (const Me& rhs)   const{ Me ret=*this; return ret+=rhs; }
00092     Me operator - (const Me& rhs)   const{ Me ret=*this; return ret-=rhs; }
00093     Me operator * (int n)           const{ Me ret=*this; return ret*=n; }
00094     Me operator / (int n)           const{ Me ret=*this; return ret/=n; }
00095     Me operator % (int n)           const{ Me ret=*this; return ret%=n; }
00096     Me operator % (const Me& rhs)   const{ Me ret=*this; return ret%=rhs; }
00097
00098     //算術演算子３
00099     int operator ++ ()   { return ++m_value; }  //++c;
00100     int operator ++ (int){ return m_value++; }  //c++;
00101     int operator -- ()   { return --m_value; }  //--c;
00102     int operator -- (int){ return m_value--; }  //c--;
00103
00104     //算術演算子４
00105     Me operator - () const{ return Me(-m_value); }
00106
00107     //代入演算子
00108     Me& operator = (const Me& rhs){ m_value=rhs.m_value; return *this; }
00109
00110     //比較演算子
00111     bool operator <  (const Me& rhs) const{ return m_value <  rhs.m_value; }
00112     bool operator <= (const Me& rhs) const{ return m_value <= rhs.m_value; }
00113     bool operator >  (const Me& rhs) const{ return m_value >  rhs.m_value; }
00114     bool operator >= (const Me& rhs) const{ return m_value >= rhs.m_value; }
00115     bool operator == (const Me& rhs) const{ return m_value == rhs.m_value; }
00116     bool operator != (const Me& rhs) const{ return m_value != rhs.m_value; }
00117
00118     //関数
00119     int GetValue() const{ return m_value; }
00120     void SetValue(int n){ m_value=n; }
00121
00122     //Int(CLaxInt)への変換は常に許す
00123     operator Int() const{ return Int(m_value); }
00124
00125     //int以外の整数型もintにキャストして扱う
00126     STRICTINT_OTHER_TYPE_AS_INT(short)
00127     STRICTINT_OTHER_TYPE_AS_INT(size_t)
00128     STRICTINT_OTHER_TYPE_AS_INT(LONG)
00129
00130     // -- -- -- -- 別種のCStrictIntegerとの演算は絶対許さん(やりたきゃintでも介してください) -- -- -- -- //
00131 private:
00132     template <bool B0,bool B1,bool B2,bool B3> Me&  operator += (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&){ DAMEDAYO; }
00133     template <bool B0,bool B1,bool B2,bool B3> Me&  operator -= (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&){ DAMEDAYO; }
00134     template <bool B0,bool B1,bool B2,bool B3> Me   operator +  (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00135     template <bool B0,bool B1,bool B2,bool B3> Me   operator -  (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00136     template <bool B0,bool B1,bool B2,bool B3> Me&  operator =  (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&){ DAMEDAYO; }
00137     template <bool B0,bool B1,bool B2,bool B3> bool operator <  (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00138     template <bool B0,bool B1,bool B2,bool B3> bool operator <= (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00139     template <bool B0,bool B1,bool B2,bool B3> bool operator >  (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00140     template <bool B0,bool B1,bool B2,bool B3> bool operator >= (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00141     template <bool B0,bool B1,bool B2,bool B3> bool operator == (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00142     template <bool B0,bool B1,bool B2,bool B3> bool operator != (const CStrictInteger<NOT_STRICT_ID,B0,B1,B2,B3>&) const{ DAMEDAYO; }
00143
00144
00145     // -- -- -- -- ALLOW_ADDSUB_INTがtrueの場合は、intとの加減算を許す -- -- -- -- //
00146 private:
00147     template <bool ALLOW> struct AddsubInteger{};
00148     template<> struct AddsubInteger<true>{ typedef int Type; };
00149     template<> struct AddsubInteger<false>{ typedef CDummy Type; };
00150     typedef typename AddsubInteger< ALLOW_ADDSUB_INT>::Type AddsubIntegerType;
00151     typedef typename AddsubInteger<!ALLOW_ADDSUB_INT>::Type NotAddsubIntegerType;
00152 public:
00153     Me& operator += (AddsubIntegerType rhs) { m_value += rhs; return *this; }
00154     Me& operator -= (AddsubIntegerType rhs) { m_value -= rhs; return *this; }
00155     Me  operator +  (AddsubIntegerType rhs) const{ Me ret=*this; return ret+=rhs; }
00156     Me  operator -  (AddsubIntegerType rhs) const{ Me ret=*this; return ret-=rhs; }
00157 private:
00158     //※ALLOW_ADDSUB_INTがfalseの場合は、privateメンバを置くことにより、「明示的に」加減算を禁止する。
00159     Me& operator += (NotAddsubIntegerType rhs);
00160     Me& operator -= (NotAddsubIntegerType rhs);
00161     Me  operator +  (NotAddsubIntegerType rhs) const;
00162     Me  operator -  (NotAddsubIntegerType rhs) const;
00163
00164
00165     // -- -- -- -- ALLOW_CMP_INTがtrueの場合は、intとの比較を許す -- -- -- -- //
00166 private:
00167     template <bool ALLOW> struct CmpInteger{};
00168     template<> struct CmpInteger<true>{ typedef int Type; };
00169     template<> struct CmpInteger<false>{ typedef CDummy Type; };
00170     typedef typename CmpInteger< ALLOW_CMP_INT>::Type CmpIntegerType;
00171     typedef typename CmpInteger<!ALLOW_CMP_INT>::Type NotCmpIntegerType;
00172 public:
00173     bool operator <  (CmpIntegerType rhs) const{ return m_value <  rhs; }
00174     bool operator <= (CmpIntegerType rhs) const{ return m_value <= rhs; }
00175     bool operator >  (CmpIntegerType rhs) const{ return m_value >  rhs; }
00176     bool operator >= (CmpIntegerType rhs) const{ return m_value >= rhs; }
00177     bool operator == (CmpIntegerType rhs) const{ return m_value == rhs; }
00178     bool operator != (CmpIntegerType rhs) const{ return m_value != rhs; }
00179 private:
00180     //※ALLOW_CMP_INTがfalseの場合は、privateメンバを置くことにより、「明示的に」比較を禁止する。
00181     bool operator <  (NotCmpIntegerType rhs) const;
00182     bool operator <= (NotCmpIntegerType rhs) const;
00183     bool operator >  (NotCmpIntegerType rhs) const;
00184     bool operator >= (NotCmpIntegerType rhs) const;
00185     bool operator == (NotCmpIntegerType rhs) const;
00186     bool operator != (NotCmpIntegerType rhs) const;
00187
00188
00189     // -- -- -- -- ALLOW_CAST_INTがtrueの場合は、intへの暗黙の変換を許す -- -- -- -- //
00190 private:
00191     template <bool ALLOW> struct CastInteger{};
00192     template<> struct CastInteger<true>{ typedef int Type; };
00193     template<> struct CastInteger<false>{ typedef CDummy Type; };
00194     typedef typename CastInteger< ALLOW_CAST_INT>::Type CastIntegerType;
00195     typedef typename CastInteger<!ALLOW_CAST_INT>::Type NotCastIntegerType;
00196 public:
00197     operator CastIntegerType() const{ return m_value; }
00198 private:
00199     //※ALLOW_CAST_INTがfalseの場合は、privateメンバを置くことにより、「明示的に」暗黙変換を禁止する。
00200     operator NotCastIntegerType() const{ DAMEDAYO; }
00201
00202
00203     // -- -- -- -- ALLOW_ASSIGNOP_INTがtrueの場合は、intの代入を許す -- -- -- -- //
00204 private:
00205     template <bool ALLOW> struct AssignInteger{};
00206     template<> struct AssignInteger<true>{ typedef int Type; };
00207     template<> struct AssignInteger<false>{ typedef CDummy Type; };
00208     typedef typename AssignInteger< ALLOW_ASSIGNOP_INT>::Type AssignIntegerType;
00209     typedef typename AssignInteger<!ALLOW_ASSIGNOP_INT>::Type NotAssignIntegerType;
00210 public:
00211     Me& operator = (const AssignIntegerType& rhs){ m_value = rhs; return *this; }
00212 private:
00213     //※ALLOW_ASSIGNOP_INTがfalseの場合は、privateメンバを置くことにより、「明示的に」代入を禁止する。
00214     Me& operator = (const NotAssignIntegerType&);
00215
00216
00217     // -- -- -- -- メンバ変数 -- -- -- -- //
00218 private:
00219     int m_value;
00220 };
00221
00222
00223
00224 //左辺がint等の場合の演算子
00225 #define STRICTINT_LEFT_INT_CMP(TYPE) \
00226     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator <  (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs> lhs; } \
00227     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator <= (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs>=lhs; } \
00228     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator >  (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs< lhs; } \
00229     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator >= (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs<=lhs; } \
00230     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator == (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs==lhs; } \
00231     template <int N,bool B0,bool B1,bool B2,bool B3> inline bool operator != (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return rhs!=lhs; } \
00232     template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator + (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return  rhs+lhs; } \
00233     template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator - (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return -rhs+lhs; } \
00234     template <int N,bool B0,bool B1,bool B2,bool B3> inline CStrictInteger<N,B0,B1,B2,B3> operator * (TYPE lhs, const CStrictInteger<N,B0,B1,B2,B3>& rhs){ return  rhs*lhs; }
00235 STRICTINT_LEFT_INT_CMP(int)
00236 STRICTINT_LEFT_INT_CMP(short)
00237 STRICTINT_LEFT_INT_CMP(size_t)
00238 STRICTINT_LEFT_INT_CMP(LONG)
00239
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictPoint.cpp

sakura_core » basis

CStrictPoint.cpp

#include "stdafx.h"
#include "CStrictPoint.h"

CStrictPoint.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictPoint.cpp ソースファイル

sakura_core » basis

CStrictPoint.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CStrictPoint.h"
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictPoint.h

sakura_core » basis

CStrictPoint.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >

Sakura-Editorに対してSat Nov 17 20:26:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictPoint.h ソースファイル

sakura_core » basis

CStrictPoint.h

説明を見る。
00001 #pragma once
00002
00003
00004 //単位が明示的に区別されたポイント型。※POINTは継承しないことにした
00005 /*
00006 template <int TYPE> class CStrictPoint : public CMyPoint{
00007 public:
00008     CStrictPoint() : CMyPoint() { }
00009     CStrictPoint(int _x,int _y) : CMyPoint(_x,_y) { }
00010     CStrictPoint(const CStrictPoint& rhs) : CMyPoint(rhs) { }
00011
00012     //※POINTからの変換は、「明示的に指定されたときのみ」許可する。
00013     explicit CStrictPoint(const POINT& rhs) : CMyPoint(rhs) { }
00014 };
00015 */
00016 template <class SUPER, class INT_TYPE, class SUPER_INT_TYPE = INT_TYPE> class CStrictPoint : public SUPER{
00017 private:
00018     typedef CStrictPoint<SUPER, INT_TYPE> Me;
00019 public:
00020     typedef INT_TYPE       IntType;
00021     typedef SUPER_INT_TYPE SuperIntType;
00022 public:
00023     //コンストラクタ・デストラクタ
00024     CStrictPoint(){ x=SuperIntType(0); y=SuperIntType(0); }
00025     CStrictPoint(int _x,int _y){ x=SuperIntType(_x); y=SuperIntType(_y); }
00026 #ifdef USE_STRICT_INT
00027     CStrictPoint(IntType _x,IntType _y){ x=SuperIntType(_x); y=SuperIntType(_y); }
00028 #endif
00029     CStrictPoint(const SUPER& rhs){ x=rhs.x; y=rhs.y; }
00030
00031     //他の型からも、「明示的に指定すれば」変換が可能
00032     template <class SRC>
00033     explicit CStrictPoint(const SRC& rhs){ x=(SuperIntType)rhs.x; y=(SuperIntType)rhs.y; }
00034
00035     //算術演算子
00036     CStrictPoint& operator += (const SUPER& rhs){ x+=rhs.x; y+=rhs.y; return *this; }
00037     CStrictPoint& operator -= (const SUPER& rhs){ x-=rhs.x; y-=rhs.y; return *this; }
00038     CStrictPoint& operator *= (int n){ x*=n; y*=n; return *this; }
00039     CStrictPoint& operator /= (int n){ x/=n; y/=n; return *this; }
00040
00041     //算術演算子２
00042     CStrictPoint operator + (const SUPER& rhs) const{ CStrictPoint tmp=*this; tmp+=rhs; return tmp; }
00043     CStrictPoint operator - (const SUPER& rhs) const{ CStrictPoint tmp=*this; tmp-=rhs; return tmp; }
00044     CStrictPoint operator * (int n) const{ CStrictPoint tmp=*this; tmp*=n; return tmp; }
00045     CStrictPoint operator / (int n) const{ CStrictPoint tmp=*this; tmp/=n; return tmp; }
00046
00047     //代入演算子
00048     CStrictPoint& operator = (const SUPER& rhs){ x=rhs.x; y=rhs.y; return *this; }
00049
00050     //比較演算子
00051     bool operator == (const SUPER& rhs) const{ return x==rhs.x && y==rhs.y; }
00052     bool operator != (const SUPER& rhs) const{ return !this->operator==(rhs); }
00053
00054     //設定
00055     void Clear(){ x=SuperIntType(0); y=SuperIntType(0); }
00056     void Set(INT_TYPE _x, INT_TYPE _y){ x=SuperIntType(_x); y=SuperIntType(_y); }
00057     void Set(const SUPER& pt){ x=pt.x; y=pt.y; }
00058     void SetX(INT_TYPE _x){ x=SuperIntType(_x); }
00059     void SetY(INT_TYPE _y){ y=SuperIntType(_y); }
00060     void Offset(int _x,int _y){ x+=_x; y+=_y; }
00061     void Offset(const SUPER& pt){ x+=pt.x; y+=pt.y; }
00062
00063     //取得
00064     SuperIntType GetX() const{ return x; }
00065     SuperIntType GetY() const{ return y; }
00066     SUPER Get() const{ return *this; }
00067     INT_TYPE GetX2() const{ return INT_TYPE(x); }
00068     INT_TYPE GetY2() const{ return INT_TYPE(y); }
00069
00071     bool HasNegative() const
00072     {
00073         return x<0 || y<0;
00074     }
00075
00077     bool BothNatural() const
00078     {
00079         return x>=0 && y>=0;
00080     }
00081
00082     //特殊
00083     POINT GetPOINT() const
00084     {
00085         POINT pt={(Int)x,(Int)y};
00086         return pt;
00087     }
00088 };
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRange.cpp

sakura_core » basis

CStrictRange.cpp

#include "stdafx.h"
#include "CStrictRange.h"

CStrictRange.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRange.cpp ソースファイル

sakura_core » basis

CStrictRange.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CStrictRange.h"
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRange.h

sakura_core » basis

CStrictRange.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRangeBase< PointType >

Sakura-Editorに対してSat Nov 17 20:26:50 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRange.h ソースファイル

sakura_core » basis

CStrictRange.h

説明を見る。
00001 #pragma once
00002
00003 template <class PointType>
00004 class CRangeBase{
00005 public:
00006     typedef typename PointType::IntType IntType;
00007 public:
00008     //コンストラクタ
00009     CRangeBase()
00010     {
00011     }
00012     CRangeBase(const CRangeBase& rhs)
00013     {
00014         operator=(rhs);
00015     }
00016     CRangeBase(const PointType& _ptFrom,const PointType& _ptTo)
00017     {
00018         m_ptFrom=_ptFrom;
00019         m_ptTo=_ptTo;
00020     }
00021
00022     //代入
00023     CRangeBase& operator = (const CRangeBase& rhs)
00024     {
00025         m_ptFrom=rhs.m_ptFrom;
00026         m_ptTo=rhs.m_ptTo;
00027         return *this;
00028     }
00029
00030     //比較
00031     bool operator == (const CRangeBase& rhs) const
00032     {
00033         return m_ptFrom == rhs.m_ptFrom && m_ptTo == rhs.m_ptTo;
00034     }
00035     bool operator != (const CRangeBase& rhs) const
00036     {
00037         return !operator==(rhs);
00038     }
00039
00040     //判定
00042     bool IsOne() const
00043     {
00044         return m_ptFrom==m_ptTo;
00045     }
00046     bool IsLineOne() const
00047     {
00048         return m_ptFrom.y==m_ptTo.y;
00049     }
00050     bool IsValid() const
00051     {
00052         return m_ptFrom.BothNatural() && m_ptTo.BothNatural();
00053     }
00054
00055     //取得
00056     PointType GetFrom() const
00057     {
00058         return m_ptFrom;
00059     }
00060     PointType GetTo() const
00061     {
00062         return m_ptTo;
00063     }
00064
00065     //特殊
00066     PointType* GetFromPointer()
00067     {
00068         return &m_ptFrom;
00069     }
00070     PointType* GetToPointer()
00071     {
00072         return &m_ptTo;
00073     }
00074
00075
00076     //設定
00077     void Clear(int n)
00078     {
00079         m_ptFrom.Set(IntType(n),IntType(n));
00080         m_ptTo.Set(IntType(n),IntType(n));
00081     }
00082     void Set(const PointType& pt)
00083     {
00084         m_ptFrom=pt;
00085         m_ptTo  =pt;
00086     }
00087     void SetFrom(const PointType& pt)
00088     {
00089         m_ptFrom = pt;
00090     }
00091     void SetTo(const PointType& pt)
00092     {
00093         m_ptTo = pt;
00094     }
00095
00096     void SetFromX(int nX)
00097     {
00098         m_ptFrom.x = nX;
00099     }
00100     /*
00101     void SetFromY(int nY)
00102     {
00103         m_ptFrom.y = nY;
00104     }
00105     */
00106     void SetFromY(IntType nY)
00107     {
00108         m_ptFrom.y = nY;
00109     }
00110
00111     void SetToX(IntType nX)
00112     {
00113         m_ptTo.x = nX;
00114     }
00115     /*
00116     void SetToY(int nY)
00117     {
00118         m_ptTo.y = nY;
00119     }
00120     */
00121     void SetToY(IntType nY)
00122     {
00123         m_ptTo.y = nY;
00124     }
00125
00126     //特殊設定
00127     void SetLine(IntType nY)                    { m_ptFrom.y = nY;     m_ptTo.y = nY;   }
00128     void SetXs(IntType nXFrom, IntType nXTo)    { m_ptFrom.x = nXFrom; m_ptTo.x = nXTo; }
00129 private:
00130     PointType m_ptFrom;
00131     PointType m_ptTo;
00132 };
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRect.cpp

sakura_core » basis

CStrictRect.cpp

#include "stdafx.h"
#include "CStrictRect.h"

CStrictRect.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRect.cpp ソースファイル

sakura_core » basis

CStrictRect.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CStrictRect.h"
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRect.h

sakura_core » basis

CStrictRect.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CStrictRect< INT_TYPE, POINT_TYPE >

Sakura-Editorに対してSat Nov 17 20:26:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CStrictRect.h ソースファイル

sakura_core » basis

CStrictRect.h

説明を見る。
00001 #pragma once
00002
00003 template <class INT_TYPE, class POINT_TYPE> class CStrictRect{
00004 private:
00005     typedef CStrictRect<INT_TYPE, POINT_TYPE> Me;
00006 public:
00007     typedef INT_TYPE    IntType;
00008     typedef POINT_TYPE  PointType;
00009 public:
00010     //メンバ変数は公開
00011     IntType left;
00012     IntType top;
00013     IntType right;
00014     IntType bottom;
00015
00016 public:
00018     PointType UpperLeft() const
00019     {
00020         return PointType(left,top);
00021     }
00023     PointType LowerRight() const
00024     {
00025         return PointType(right,bottom);
00026     }
00027
00029     bool PtInRect(const PointType& pt) const
00030     {
00031         return pt.x>=left && pt.x<right && pt.y>=top && pt.y<bottom;
00032     }
00033 };
Sakura-Editorに対してSat Nov 17 20:24:45 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTabWnd.cpp

sakura_core

CTabWnd.cpp

タブウィンドウ [詳細]

#include "stdafx.h"
#include <windows.h>
#include "CTabWnd.h"
#include "debug.h"
#include "CEditWnd.h"
#include "global.h"
#include "mymessage.h"
#include "charcode.h"
#include "my_tchar.h"
#include "util/os.h"
#include "util/window.h"
#include "util/module.h"
#include "util/string_ex2.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 の 72 行で定義されています。

参照元 CTabWnd::ImageList_Duplicate(), CTabWnd::OnDrawItem(), と CTabWnd::OnMeasureItem().

#define CY_SMICON 16

CTabWnd.cpp の 73 行で定義されています。

参照元 CTabWnd::ImageList_Duplicate(), と CTabWnd::OnDrawItem().

#define MAX_TABITEM_WIDTH 200

CTabWnd.cpp の 70 行で定義されています。

参照元 CTabWnd::LayoutTab(), と CTabWnd::Open().

#define MIN_TABITEM_WIDTH 60

CTabWnd.cpp の 71 行で定義されています。

参照元 CTabWnd::LayoutTab().

#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000

CTabWnd.cpp の 52 行で定義されています。

参照元 CTabWnd::ForceActiveWindow().

#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001

CTabWnd.cpp の 55 行で定義されています。

参照元 CTabWnd::ForceActiveWindow().

#define TAB_ITEM_HEIGHT (TAB_WINDOW_HEIGHT - 5)

CTabWnd.cpp の 69 行で定義されています。

参照元 CTabWnd::LayoutTab(), と CTabWnd::Open().

#define TAB_MARGIN_LEFT 1

CTabWnd.cpp の 67 行で定義されています。

参照元 CTabWnd::OnPaint(), CTabWnd::OnSize(), と CTabWnd::Open().

#define TAB_MARGIN_RIGHT 47

CTabWnd.cpp の 68 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect(), CTabWnd::GetListBtnRect(), と CTabWnd::OnSize().

#define TAB_MARGIN_TOP 3

CTabWnd.cpp の 66 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect(), CTabWnd::GetListBtnRect(), CTabWnd::OnPaint(), CTabWnd::OnSize(), と CTabWnd::Open().

#define TAB_WINDOW_HEIGHT 24

CTabWnd.cpp の 65 行で定義されています。

参照元 CTabWnd::OnSize(), と CTabWnd::Open().

#define WM_THEMECHANGED 0x031A

CTabWnd.cpp の 61 行で定義されています。

関数

static int compTABMENU_DATA | ( | const void * | arg1,
 |  | const void * | arg2 |
 | ) |  |  | [static]

タブ一覧メニュー用データの qsort() コールバック処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 87 行で定義されています。

参照元 CTabWnd::TabListMenu().

LRESULT CALLBACK TabWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CTabWnd.cpp の 101 行で定義されています。

参照先 GetWindowLongPtr, gm_pOldWndProc, GWLP_USERDATA, と CTabWnd::TabWndDispatchEvent().

参照元 CTabWnd::Open().

変数

WNDPROC gm_pOldWndProc = NULL

CTabWnd.cpp の 98 行で定義されています。

参照元 CTabWnd::Close(), CTabWnd::CTabWnd(), CTabWnd::Open(), と TabWndProc().

const RECT rcBtnBase = { 0, 0, 16, 16 } [static]

CTabWnd.cpp の 74 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect(), と CTabWnd::GetListBtnRect().

Sakura-Editorに対してSat Nov 17 20:26:51 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTabWnd.cpp ソースファイル

sakura_core

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 "charcode.h"
00044 #include "my_tchar.h"   //Unicode対応 Moca
00045 #include "util/os.h"
00046 #include "util/window.h"
00047 #include "util/module.h"
00048 #include "util/string_ex2.h"
00049
00050 //#if(WINVER >= 0x0500)
00051 #ifndef SPI_GETFOREGROUNDLOCKTIMEOUT
00052 #define SPI_GETFOREGROUNDLOCKTIMEOUT        0x2000
00053 #endif
00054 #ifndef SPI_SETFOREGROUNDLOCKTIMEOUT
00055 #define SPI_SETFOREGROUNDLOCKTIMEOUT        0x2001
00056 #endif
00057 //#endif
00058
00059 // 2007.04.01 ryoji WM_THEMECHANGED
00060 #ifndef WM_THEMECHANGED
00061 #define WM_THEMECHANGED     0x031A
00062 #endif
00063
00064 // 2006.01.30 ryoji タブのサイズ／位置に関する定義
00065 #define TAB_WINDOW_HEIGHT   24
00066 #define TAB_MARGIN_TOP      3
00067 #define TAB_MARGIN_LEFT     1
00068 #define TAB_MARGIN_RIGHT    47
00069 #define TAB_ITEM_HEIGHT     (TAB_WINDOW_HEIGHT - 5)
00070 #define MAX_TABITEM_WIDTH   200
00071 #define MIN_TABITEM_WIDTH   60
00072 #define CX_SMICON           16
00073 #define CY_SMICON           16
00074 static const RECT rcBtnBase = { 0, 0, 16, 16 };
00075
00076 // 2006.02.01 ryoji タブ一覧メニュー用データ
00077 typedef struct {
00078     HWND    hwnd;
00079     int     iItem;
00080     int     iImage;
00081     TCHAR   szText[_MAX_PATH];
00082 } TABMENU_DATA;
00083
00087 static int compTABMENU_DATA( const void *arg1, const void *arg2 )
00088 {
00089     int ret;
00090
00091     ret = ::_tcscmp( ((TABMENU_DATA*)arg1)->szText, ((TABMENU_DATA*)arg2)->szText );
00092     if( 0 == ret )
00093         ret = ((TABMENU_DATA*)arg1)->iItem - ((TABMENU_DATA*)arg2)->iItem;
00094     return ret;
00095 }
00096
00097
00098 WNDPROC gm_pOldWndProc = NULL;
00099
00100 /* TabWndウィンドウメッセージのコールバック関数 */
00101 LRESULT CALLBACK TabWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00102 {
00103     CTabWnd *pcTabWnd;
00104
00105     // Modified by KEITA for WIN64 2003.9.6
00106     pcTabWnd = (CTabWnd*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00107
00108     if( pcTabWnd )
00109     {
00110         //return
00111         if( 0L == pcTabWnd->TabWndDispatchEvent( hwnd, uMsg, wParam, lParam ) )
00112             return 0L;
00113     }
00114
00115     if( gm_pOldWndProc )
00116         return ::CallWindowProc( (WNDPROC)gm_pOldWndProc, hwnd, uMsg, wParam, lParam );
00117     else
00118         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00119 }
00120
00121 /* メッセージ配送 */
00122 LRESULT CTabWnd::TabWndDispatchEvent( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00123 {
00124     // 2005.09.01 ryoji タブ部のメッセージ処理を個別に関数化し、タブ順序変更の処理を追加
00125     switch( uMsg )
00126     {
00127     case WM_LBUTTONDOWN:
00128         return OnTabLButtonDown( wParam, lParam );
00129
00130     case WM_LBUTTONUP:
00131         return OnTabLButtonUp( wParam, lParam );
00132
00133     case WM_MOUSEMOVE:
00134         return OnTabMouseMove( wParam, lParam );
00135
00136     case WM_CAPTURECHANGED:
00137         return OnTabCaptureChanged( wParam, lParam );
00138
00139     case WM_RBUTTONDOWN:
00140         return OnTabRButtonDown( wParam, lParam );
00141
00142     case WM_RBUTTONUP:
00143         return OnTabRButtonUp( wParam, lParam );
00144
00145     case WM_MBUTTONDOWN:
00146         return OnTabMButtonDown( wParam, lParam );
00147
00148     case WM_MBUTTONUP:
00149         return OnTabMButtonUp( wParam, lParam );
00150
00151     case WM_NOTIFY:
00152         return OnTabNotify( wParam, lParam );
00153
00154     case WM_HSCROLL:
00155         ::InvalidateRect( GetHwnd(), NULL, TRUE );  // アクティブタブの位置が変わるのでトップバンドを更新する    // 2006.03.27 ryoji
00156         break;
00157
00158     case WM_THEMECHANGED:
00159         m_bVisualStyle = ::IsVisualStyle();
00160         break;
00161
00162     //default:
00163     }
00164
00165     return 1L;  //デフォルトのディスパッチにまわす
00166 }
00167
00169 LRESULT CTabWnd::OnTabLButtonDown( WPARAM wParam, LPARAM lParam )
00170 {
00171     // ボタンが押された位置を確認する
00172     TCHITTESTINFO hitinfo;
00173     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00174     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00175     int nSrcTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00176     if( 0 > nSrcTab )
00177         return 1L;
00178
00179     m_eDragState = DRAG_CHECK;  // ドラッグのチェックを開始
00180
00181     // ドラッグ元タブを記憶する
00182     m_nSrcTab = nSrcTab;
00183     ::GetCursorPos( &m_ptSrcCursor );
00184
00185     ::SetCapture( m_hwndTab );
00186
00187     return 0L;
00188 }
00189
00191 LRESULT CTabWnd::OnTabLButtonUp( WPARAM wParam, LPARAM lParam )
00192 {
00193     TCHITTESTINFO   hitinfo;
00194     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00195     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00196     int nDstTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00197     int nSelfTab = FindTabIndexByHWND( GetParentHwnd() );
00198
00199     switch( m_eDragState )
00200     {
00201     case DRAG_CHECK:
00202         if ( m_nSrcTab == nDstTab && m_nSrcTab != nSelfTab )
00203         {
00204             //指定のウインドウをアクティブに
00205             TCITEM  tcitem;
00206             tcitem.mask   = TCIF_PARAM;
00207             tcitem.lParam = 0;
00208             TabCtrl_GetItem( m_hwndTab, nDstTab, &tcitem );
00209
00210             ShowHideWindow( (HWND)tcitem.lParam, TRUE );
00211         }
00212         break;
00213
00214     case DRAG_DRAG:
00215         if ( 0 <= nDstTab ) // タブの上でドロップ
00216         {
00217             // タブの順序変更処理
00218             ReorderTab( m_nSrcTab, nDstTab );
00219         }
00220         else
00221         {
00222             // タブの分離処理
00223             if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
00224                 if( !::IsZoomed( GetParentHwnd() ) )
00225                 {
00226                     HWND hwndAncestor;
00227                     POINT ptCursor;
00228
00229                     ::GetCursorPos( &ptCursor );
00230                     hwndAncestor = MyGetAncestor( ::WindowFromPoint( ptCursor ), GA_ROOT );
00231                     if( hwndAncestor != GetParentHwnd() )   // 自画面の外でドロップ
00232                     {
00233                         // タブ移動
00234                         TCITEM  tcitem;
00235                         tcitem.mask   = TCIF_PARAM;
00236                         tcitem.lParam = 0;
00237                         TabCtrl_GetItem( m_hwndTab, m_nSrcTab, &tcitem );
00238                         HWND hwndSrc = (HWND)tcitem.lParam;
00239                         HWND hwndDst = CShareData::getInstance()->IsEditWnd( hwndAncestor )? hwndAncestor: NULL;
00240
00241                         SeparateGroup( hwndSrc, hwndDst, m_ptSrcCursor, ptCursor );
00242                     }
00243                 }
00244             }
00245         }
00246         break;
00247
00248     default:
00249         break;
00250     }
00251
00252     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00253
00254     return 0L;
00255 }
00256
00258 LRESULT CTabWnd::OnTabMouseMove( WPARAM wParam, LPARAM lParam )
00259 {
00260     TCHITTESTINFO   hitinfo;
00261     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00262     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00263     int nDstTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00264
00265     switch( m_eDragState )
00266     {
00267     case DRAG_CHECK:
00268         // 元のタブから離れたらドラッグ開始
00269         if( m_nSrcTab == nDstTab )
00270             break;
00271         m_eDragState = DRAG_DRAG;
00272         // ここに来たらドラッグ開始なので break しないでそのまま DRAG_DRAG 処理に入る
00273
00274     case DRAG_DRAG:
00275         // ドラッグ中のマウスカーソルを表示する
00276         HINSTANCE hInstance;
00277         LPCTSTR lpCursorName;
00278         lpCursorName = IDC_NO;  // 禁止カーソル
00279         if ( 0 <= nDstTab ) // タブの上にカーソルがある
00280         {
00281             if( m_nSrcTab > nDstTab )
00282                 lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_LEFT);    // 左へ移動カーソル
00283             else if( m_nSrcTab < nDstTab )
00284                 lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_RIGHT);   // 右へ移動カーソル
00285         }
00286         else
00287         {
00288             if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
00289             {
00290                 if( !::IsZoomed( GetParentHwnd() ) )
00291                 {
00292                     HWND hwndAncestor;
00293                     POINT ptCursor;
00294
00295                     ::GetCursorPos( &ptCursor );
00296                     hwndAncestor = MyGetAncestor( ::WindowFromPoint( ptCursor ), GA_ROOT );
00297                     if( hwndAncestor != GetParentHwnd() )   // 自画面の外にカーソルがある
00298                     {
00299                         if( CShareData::getInstance()->IsEditWnd( hwndAncestor ) )
00300                             lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_JOIN);    // 結合カーソル
00301                         else
00302                             lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_SEPARATE);    // 分離カーソル
00303                     }
00304                 }
00305             }
00306         }
00307         hInstance = (lpCursorName == IDC_NO)? NULL: ::GetModuleHandle( NULL );
00308         ::SetCursor( ::LoadCursor( hInstance, lpCursorName ) );
00309         break;
00310
00311     default:
00312         return 1L;
00313     }
00314
00315     return 0L;
00316 }
00317
00319 LRESULT CTabWnd::OnTabCaptureChanged( WPARAM wParam, LPARAM lParam )
00320 {
00321     if( m_eDragState != DRAG_NONE )
00322         m_eDragState = DRAG_NONE;
00323
00324     return 0L;
00325 }
00326
00328 LRESULT CTabWnd::OnTabRButtonDown( WPARAM wParam, LPARAM lParam )
00329 {
00330     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00331
00332     return 0L;  // 2006.01.28 ryoji OnTabMButtonDown にあわせて 0 を返すように変更
00333 }
00334
00336 LRESULT CTabWnd::OnTabRButtonUp( WPARAM wParam, LPARAM lParam )
00337 {
00338     // 2006.01.28 ryoji タブのカスタムメニュー表示コマンドを実行する(関数化)
00339     return ExecTabCommand( F_CUSTMENU_BASE + CUSTMENU_INDEX_FOR_TABWND, MAKEPOINTS(lParam) );
00340 }
00341
00345 LRESULT CTabWnd::OnTabMButtonDown( WPARAM wParam, LPARAM lParam )
00346 {
00347     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00348
00349     return 0L;  // フォーカスがタブに移らないよう、ここでは 0 を返す
00350 }
00351
00355 LRESULT CTabWnd::OnTabMButtonUp( WPARAM wParam, LPARAM lParam )
00356 {
00357     // ウィンドウを閉じるコマンドを実行する
00358     return ExecTabCommand( F_WINCLOSE, MAKEPOINTS(lParam) );
00359 }
00360
00367 LRESULT CTabWnd::OnTabNotify( WPARAM wParam, LPARAM lParam )
00368 {
00369     NMTTDISPINFO* lpnmtdi;
00370     lpnmtdi = (NMTTDISPINFO*)lParam;
00371     if( lpnmtdi->hdr.hwndFrom == m_hwndToolTip )
00372     {
00373         switch( lpnmtdi->hdr.code )
00374         {
00375         //case TTN_NEEDTEXT:
00376         case TTN_GETDISPINFO:
00377             {
00378                 TCITEM  tcitem;
00379
00380                 tcitem.mask   = TCIF_PARAM;
00381                 tcitem.lParam = (LPARAM)NULL;
00382
00383                 if( TabCtrl_GetItem( m_hwndTab, lpnmtdi->hdr.idFrom, &tcitem ) )
00384                 {
00385                     EditNode* pEditNode;
00386                     pEditNode = CShareData::getInstance()->GetEditNode( (HWND)tcitem.lParam );
00387
00388                     GetTabName( pEditNode, TRUE, FALSE, lpnmtdi->szText, _countof(lpnmtdi->szText) );
00389                     lpnmtdi->hinst=NULL;
00390
00391                     return 0L;
00392                 }
00393             }
00394         }
00395     }
00396
00397     return 1L;
00398 }
00399
00409 BOOL CTabWnd::ReorderTab( int nSrcTab, int nDstTab )
00410 {
00411     TCITEM      tcitem;
00412     HWND        hwndSrc;    // 移動元ウィンドウ
00413     HWND        hwndDst;    // 移動先ウィンドウ
00414
00415     if( 0 > nSrcTab || 0 > nDstTab || nSrcTab == nDstTab )
00416         return FALSE;
00417
00418     // 移動元タブ、移動先タブのウィンドウを取得する
00419     tcitem.mask   = TCIF_PARAM;
00420     tcitem.lParam = 0;
00421     TabCtrl_GetItem( m_hwndTab, nSrcTab, &tcitem );
00422     hwndSrc = (HWND)tcitem.lParam;
00423
00424     tcitem.mask   = TCIF_PARAM;
00425     tcitem.lParam = 0;
00426     TabCtrl_GetItem( m_hwndTab, nDstTab, &tcitem );
00427     hwndDst = (HWND)tcitem.lParam;
00428
00429     //  2007.07.07 genta CShareData::ReorderTabとして独立
00430     if( ! CShareData::getInstance()->ReorderTab( hwndSrc, hwndDst ) ){
00431         return FALSE;
00432     }
00433
00434     // 再表示メッセージをブロードキャストする。
00435     int nGroup = CShareData::getInstance()->GetGroupId( GetParentHwnd() );
00436     CShareData::getInstance()->PostMessageToAllEditors(
00437         MYWM_TAB_WINDOW_NOTIFY,
00438         (WPARAM)TWNT_REFRESH,
00439         (LPARAM)FALSE,
00440         GetParentHwnd(),
00441         nGroup
00442     );
00443
00444     return TRUE;
00445 }
00446
00451 BOOL CTabWnd::SeparateGroup( HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop )
00452 {
00453     HWND hWnd = GetParentHwnd();
00454     if( hWnd != ::GetForegroundWindow() )
00455         return FALSE;
00456     // 最大化時は切り離さない（最大化時の処理コードも残してあるが動作不安定のため、無理しないでおく）
00457     // Note. マルチモニタで別モニタに切り離すとき、
00458     //       両モニタの画面がアクティブになってしまうことがある
00459     //       この場合エディタ内部状態もおかしくなっており、
00460     //       結合しなおして別タブ選択すると離れてしまったりする（Win XPだけ？）
00461     if( ::IsZoomed( hWnd ) )
00462         return FALSE;
00463     if( hWnd != CShareData::getInstance()->GetTopEditWnd( hwndSrc ) )
00464         return FALSE;
00465     if( hwndDst != NULL && hwndDst != CShareData::getInstance()->GetTopEditWnd( hwndDst ) )
00466         return FALSE;
00467     if( hwndSrc == hwndDst )
00468         return TRUE;
00469
00470     EditNode* pSrcEditNode = CShareData::getInstance()->GetEditNode( hwndSrc );
00471     EditNode* pDstEditNode = CShareData::getInstance()->GetEditNode( hwndDst );
00472
00473     // グループ変更するウィンドウが先頭ウィンドウなら次のウィンドウを可視にする（手前には出さない）
00474     // そうでなければ新規グループになる場合に別ウィンドウよりは手前に表示されるよう不可視のまま先頭ウィンドウのすぐ後ろにもってきておく
00475     HWND hwndTop = CShareData::getInstance()->GetTopEditWnd( hwndSrc );
00476     bool bSrcIsTop = ( hwndSrc == hwndTop );
00477     if( bSrcIsTop )
00478     {
00479         EditNode* pNextEditNode = CShareData::getInstance()->GetEditNodeAt( pSrcEditNode->m_nGroup, 1 );
00480         if( pNextEditNode != NULL )
00481         {
00482             DWORD_PTR dwResult;
00483             ::SendMessageTimeout( pNextEditNode->m_hWnd, MYWM_TAB_WINDOW_NOTIFY, TWNT_WNDPL_ADJUST, (LPARAM)NULL,
00484                                     SMTO_ABORTIFHUNG | SMTO_BLOCK, 10000, &dwResult );
00485         }
00486     }
00487     else if( pDstEditNode == NULL )
00488     {
00489         ::SetWindowPos( hwndSrc, hwndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00490     }
00491
00492     //  2007.07.07 genta 内部的なグループ移動の操作をCShareDataへ移動
00493     int notifygroups[2];
00494     hwndDst = CShareData::getInstance()->SeparateGroup( hwndSrc, hwndDst, bSrcIsTop, notifygroups );
00495
00496     WINDOWPLACEMENT wp;
00497     RECT rcDstWork;
00498     GetMonitorWorkRect( ptDrop, &rcDstWork );
00499     wp.length = sizeof(wp);
00500     if( hwndDst == NULL )
00501     {   // 新規グループのウィンドウ処理
00502         // ウィンドウを移動先に表示する
00503         ::GetWindowPlacement( hwndTop, &wp );
00504         if( wp.showCmd != SW_SHOWMAXIMIZED )
00505         {
00506             // 移動元の先頭ウィンドウのサイズで画面内を相対移動する
00507             wp.rcNormalPosition.left += (ptDrop.x - ptDrag.x);
00508             wp.rcNormalPosition.right += (ptDrop.x - ptDrag.x);
00509             wp.rcNormalPosition.top += (ptDrop.y - ptDrag.y);
00510             wp.rcNormalPosition.bottom += (ptDrop.y - ptDrag.y);
00511
00512             // 上端がモニタ画面から出てしまわないように位置調整
00513             if( wp.rcNormalPosition.top < rcDstWork.top )
00514             {
00515                 wp.rcNormalPosition.bottom += ( rcDstWork.top - wp.rcNormalPosition.top );
00516                 wp.rcNormalPosition.top = rcDstWork.top;
00517             }
00518         }
00519         else
00520         {
00521             // 移動先モニタに最大表示する
00522             // （元に戻すサイズはモニタが異なる場合もモニタ内相対位置を維持するように移動しておく）
00523             RECT rcSrcWork;
00524             GetMonitorWorkRect( ptDrag, &rcSrcWork );
00525             wp.rcNormalPosition.left += (rcDstWork.left - rcSrcWork.left);
00526             wp.rcNormalPosition.right += (rcDstWork.left - rcSrcWork.left);
00527             wp.rcNormalPosition.top += (rcDstWork.top - rcSrcWork.top);
00528             wp.rcNormalPosition.bottom += (rcDstWork.top - rcSrcWork.top);
00529
00530             // 元に戻すサイズがモニタ画面から出てしまわないように位置調整
00531             if( wp.rcNormalPosition.right > rcDstWork.right )
00532             {
00533                 wp.rcNormalPosition.left -= (wp.rcNormalPosition.right - rcDstWork.right);
00534                 wp.rcNormalPosition.right -= (wp.rcNormalPosition.right - rcDstWork.right);
00535             }
00536             if( wp.rcNormalPosition.bottom > rcDstWork.bottom )
00537             {
00538                 wp.rcNormalPosition.top -= (wp.rcNormalPosition.bottom - rcDstWork.bottom);
00539                 wp.rcNormalPosition.bottom -= (wp.rcNormalPosition.bottom - rcDstWork.bottom);
00540             }
00541             if( wp.rcNormalPosition.left < rcDstWork.left )
00542             {
00543                 wp.rcNormalPosition.right += (rcDstWork.left - wp.rcNormalPosition.left);
00544                 wp.rcNormalPosition.left += (rcDstWork.left - wp.rcNormalPosition.left);
00545             }
00546             if( wp.rcNormalPosition.top < rcDstWork.top )
00547             {
00548                 wp.rcNormalPosition.bottom += (rcDstWork.top - wp.rcNormalPosition.top);
00549                 wp.rcNormalPosition.top += (rcDstWork.top - wp.rcNormalPosition.top);
00550             }
00551             if( ::IsZoomed( hwndSrc ) )
00552             {
00553                 // もともと最大化されていた場合は一旦通常サイズで表示しないと新しいサイズが記憶されない
00554                 wp.showCmd = SW_SHOWNOACTIVATE;
00555                 ::SetWindowPlacement( hwndSrc, &wp );
00556                 wp.showCmd = SW_SHOWMAXIMIZED;
00557             }
00558         }
00559
00560         if( wp.showCmd != SW_SHOWMAXIMIZED )
00561             wp.showCmd = SW_SHOWNOACTIVATE; // 移動ウィンドウがアクティブでないときはそのままなるべくアクティブ化しない
00562         ::SetWindowPlacement( hwndSrc, &wp );
00563     }
00564     else
00565     {   // 既存グループのウィンドウ処理
00566         // 移動先の WS_EX_TOPMOST 状態を引き継ぐ
00567         HWND hWndInsertAfter = (::GetWindowLongPtr( hwndDst, GWL_EXSTYLE ) & WS_EX_TOPMOST)? HWND_TOPMOST: HWND_NOTOPMOST;
00568         ::SetWindowPos( hwndSrc, hWndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00569         if( bSrcIsTop )
00570         {
00571             // ウィンドウを移動先に表示する（先頭ウィンドウが既存グループに移動した）
00572             ::GetWindowPlacement( hwndDst, &wp );
00573             if( ::IsZoomed( hwndSrc ) && wp.showCmd == SW_SHOWMAXIMIZED )
00574             {
00575                 wp.showCmd = SW_SHOWNOACTIVATE;
00576                 ::SetWindowPlacement( hwndSrc, &wp );
00577                 wp.showCmd = SW_SHOWMAXIMIZED;
00578             }
00579             ::SetWindowPlacement( hwndSrc, &wp );
00580             ::ShowWindow( hwndDst, SW_HIDE );   // 移動先の以前の先頭ウィンドウを消す
00581         }
00582     }
00583
00584     // 再表示メッセージをブロードキャストする。
00585     //  2007.07.07 genta 2回ループに
00586     for( int group = 0; group < _countof( notifygroups ); group++ ){
00587         CShareData::getInstance()->PostMessageToAllEditors(
00588             MYWM_TAB_WINDOW_NOTIFY,
00589             (WPARAM)TWNT_REFRESH,
00590             (LPARAM)bSrcIsTop,
00591             NULL,
00592             notifygroups[group]
00593         );
00594     }
00595
00596     return TRUE;
00597 }
00598
00602 LRESULT CTabWnd::ExecTabCommand( int nId, POINTS pts )
00603 {
00604     // マウス位置(pt)のタブを取得する
00605     TCHITTESTINFO   hitinfo;
00606     hitinfo.pt.x = pts.x;
00607     hitinfo.pt.y = pts.y;
00608     int nTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00609     if( nTab < 0 )
00610         return 1L;
00611
00612     // 対象ウィンドウを取得する
00613     TCITEM  tcitem;
00614     tcitem.mask   = TCIF_PARAM;
00615     tcitem.lParam = 0;
00616     if( !TabCtrl_GetItem( m_hwndTab, nTab, &tcitem ) )
00617         return 1L;
00618     HWND hWnd = (HWND)tcitem.lParam;
00619
00620     // 対象ウインドウをアクティブにする。
00621     ShowHideWindow( hWnd, TRUE );
00622
00623     // コマンドを対象ウインドウに送る。
00624 	::PostMessageCmd( hWnd, WM_COMMAND, MAKEWPARAM( nId, 0 ), (LPARAM)NULL );
00625
00626     return 0L;
00627 }
00628
00629
00630 CTabWnd::CTabWnd()
00631 : CWnd(_T("::CTabWnd"))
00632 , m_bVisualStyle( FALSE )       // 2007.04.01 ryoji
00633 , m_eDragState( DRAG_NONE )
00634 , m_bHovering( FALSE )  //  2006.02.01 ryoji
00635 , m_bListBtnHilighted( FALSE )  //  2006.02.01 ryoji
00636 , m_bCloseBtnHilighted( FALSE ) //  2006.10.21 ryoji
00637 , m_eCaptureSrc( CAPT_NONE )    //  2006.11.30 ryoji
00638 {
00639     m_pszClassName = _T("CTabWnd");
00640     /* 共有データ構造体のアドレスを返す */
00641     m_pShareData = CShareData::getInstance()->GetShareData();
00642
00643     m_hwndTab    = NULL;
00644     m_hFont      = NULL;
00645     gm_pOldWndProc = NULL;
00646     m_hwndToolTip = NULL;
00647     m_hIml = NULL;
00648
00649     // 2006.02.17 ryoji ImageList_Duplicate() のアドレスを取得する
00650     // （IE4.0 未満の環境でも動作可能なように動的ロード）
00651     HINSTANCE hinst = ::GetModuleHandle(TEXT("comctl32"));
00652     *(FARPROC*)&m_RealImageList_Duplicate = ::GetProcAddress(hinst, "ImageList_Duplicate");
00653
00654     return;
00655 }
00656
00657 CTabWnd::~CTabWnd()
00658 {
00659     return;
00660 }
00661
00662 /* ウィンドウ オープン */
00663 HWND CTabWnd::Open( HINSTANCE hInstance, HWND hwndParent )
00664 {
00665     /* 初期化 */
00666     m_hwndTab    = NULL;
00667     m_hFont      = NULL;
00668     gm_pOldWndProc = NULL;
00669     m_hwndToolTip = NULL;
00670     m_bVisualStyle = ::IsVisualStyle(); // 2007.04.01 ryoji
00671     m_eDragState = DRAG_NONE;   //  2005.09.29 ryoji
00672     m_bHovering = FALSE;            // 2006.02.01 ryoji
00673     m_bListBtnHilighted = FALSE;    // 2006.02.01 ryoji
00674     m_bCloseBtnHilighted = FALSE;   // 2006.10.21 ryoji
00675     m_eCaptureSrc = CAPT_NONE;  // 2006.11.30 ryoji
00676
00677     /* ウィンドウクラス作成 */
00678     RegisterWC(
00679         hInstance,
00680         NULL,                               // Handle to the class icon.
00681         NULL,                               //Handle to a small icon
00682         ::LoadCursor( NULL, IDC_ARROW ),    // Handle to the class cursor.
00683         // 2006.01.30 ryoji 背景は WM_PAINT で描画するほうがちらつかない（と思う）
00684         //(HBRUSH)(COLOR_3DFACE + 1),           // Handle to the class background brush.
00685         NULL,                               // Handle to the class background brush.
00686         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.
00687         m_pszClassName                      // Pointer to a null-terminated string or is an atom.
00688     );
00689
00690     /* 基底クラスメンバ呼び出し */
00691     CWnd::Create(
00692         hInstance,
00693         hwndParent,
00694         0,                                  // extended window style
00695         m_pszClassName,                     // Pointer to a null-terminated string or is an atom.
00696         m_pszClassName,                     // pointer to window name
00697         WS_CHILD/* | WS_VISIBLE*/,          // window style // 2007.03.08 ryoji WS_VISIBLE 除去
00698         // 2006.01.30 ryoji 初期配置見直し
00699         // ※タブ非表示 -> 表示切替で編集ウィンドウにゴミが表示されることがあるので初期幅はゼロに
00700         CW_USEDEFAULT,                      // horizontal position of window
00701         0,                                  // vertical position of window
00702         0,                                  // window width
00703         TAB_WINDOW_HEIGHT,                  // window height
00704         NULL                                // handle to menu, or child-window identifier
00705     );
00706
00707     //タブウインドウを作成する。
00708     m_hwndTab = ::CreateWindow(
00709         WC_TABCONTROL,
00710         _T(""),
00711         //  2004.05.22 MIK 消えるTAB対策でWS_CLIPSIBLINGS追加
00712         WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,
00713         // 2006.01.30 ryoji 初期配置見直し
00714         TAB_MARGIN_LEFT,
00715         TAB_MARGIN_TOP,
00716         0,
00717         TAB_WINDOW_HEIGHT,
00718         GetHwnd(),
00719         (HMENU)NULL,
00720         GetAppInstance(),
00721         (LPVOID)NULL
00722         );
00723     if( m_hwndTab )
00724     {
00725         // Modified by KEITA for WIN64 2003.9.6
00726 		::SetWindowLongPtr( m_hwndTab, GWLP_USERDATA, (LONG_PTR) this );
00727         gm_pOldWndProc = (WNDPROC)::SetWindowLongPtr( m_hwndTab, GWLP_WNDPROC, (LONG_PTR) TabWndProc );
00728
00729         //スタイルを変更する。
00730         UINT lngStyle;
00731         lngStyle = (UINT)::GetWindowLongPtr( m_hwndTab, GWL_STYLE );
00732         //  Feb. 14, 2004 MIK マルチライン化の変更混入戻し
00733         lngStyle &= ~(TCS_BUTTONS | TCS_MULTILINE);
00734         lngStyle |= TCS_TABS | TCS_SINGLELINE | TCS_FOCUSNEVER | TCS_FIXEDWIDTH | TCS_FORCELABELLEFT;   // 2006.01.28 ryoji
00735         //lngStyle &= ~(TCS_BUTTONS | TCS_SINGLELINE);  //2004.01.31
00736         //lngStyle |= TCS_TABS | TCS_MULTILINE;
00737 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lngStyle );
00738         TabCtrl_SetItemSize( m_hwndTab, MAX_TABITEM_WIDTH, TAB_ITEM_HEIGHT );   // 2006.01.28 ryoji
00739
00740         /* 表示用フォント */
00741         /* LOGFONTの初期化 */
00742         LOGFONT lf;
00743         ::ZeroMemory( &lf, sizeof(lf) );
00744         lf.lfHeight         = -12;
00745         lf.lfWidth          = 0;
00746         lf.lfEscapement     = 0;
00747         lf.lfOrientation    = 0;
00748         lf.lfWeight         = 400;
00749         lf.lfItalic         = 0x0;
00750         lf.lfUnderline      = 0x0;
00751         lf.lfStrikeOut      = 0x0;
00752         lf.lfCharSet        = 0x80;
00753         lf.lfOutPrecision   = 0x3;
00754         lf.lfClipPrecision  = 0x2;
00755         lf.lfQuality        = 0x1;
00756         lf.lfPitchAndFamily = 0x31;
00757         _tcscpy( lf.lfFaceName, _T("ＭＳ Ｐゴシック") );
00758         m_hFont = ::CreateFontIndirect( &lf );
00759
00760         /* フォント変更 */
00761 		::SendMessageAny( m_hwndTab, WM_SETFONT, (WPARAM)m_hFont, MAKELPARAM(TRUE, 0) );
00762
00763         //ツールチップを作成する。
00764         //  2005.08.11 ryoji 「重ねて表示」のZ-orderがおかしくなるのでTOPMOST指定を解除
00765         m_hwndToolTip = ::CreateWindowEx(
00766             0,
00767             TOOLTIPS_CLASS,
00768             NULL,
00769             WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
00770             CW_USEDEFAULT,
00771             CW_USEDEFAULT,
00772             CW_USEDEFAULT,
00773             CW_USEDEFAULT,
00774             GetHwnd(), //m_hwndTab,
00775             NULL,
00776             GetAppInstance(),
00777             NULL
00778             );
00779
00780         // ツールチップをマルチライン可能にする（SHRT_MAX: Win95でINT_MAXだと表示されない）    // 2007.03.03 ryoji
00781         ::SendMessage( m_hwndToolTip, TTM_SETMAXTIPWIDTH, 0, (LPARAM)SHRT_MAX );
00782
00783         // タブバーにツールチップを追加する
00784         TOOLINFO    ti;
00785         ti.cbSize      = sizeof( ti );
00786         ti.uFlags      = TTF_SUBCLASS | TTF_IDISHWND;   // TTF_IDISHWND: uId は HWND で rect は無視（HWND 全体）
00787         ti.hwnd        = GetHwnd();
00788         ti.hinst       = GetAppInstance();
00789         ti.uId         = (UINT)GetHwnd();
00790         ti.lpszText    = NULL;
00791         ti.rect.left   = 0;
00792         ti.rect.top    = 0;
00793         ti.rect.right  = 0;
00794         ti.rect.bottom = 0;
00795         ::SendMessage( m_hwndToolTip, TTM_ADDTOOL, 0, (LPARAM)&ti );
00796
00797         // タブバー内のタブコントロールにツールチップを追加する
00798         TabCtrl_SetToolTips( m_hwndTab, m_hwndToolTip );
00799
00800         // 2006.02.22 ryoji イメージリストを初期化する
00801         InitImageList();
00802
00803         Refresh();  // タブ非表示から表示に切り替わったときに各ウィンドウの情報をタブ登録する必要がある
00804     }
00805
00806     return GetHwnd();
00807 }
00808
00809 /* ウィンドウ クローズ */
00810 void CTabWnd::Close( void )
00811 {
00812     if( GetHwnd() )
00813     {
00814         if( gm_pOldWndProc )
00815         {
00816             // Modified by KEITA for WIN64 2003.9.6
00817 			::SetWindowLongPtr( m_hwndTab, GWLP_WNDPROC, (LONG_PTR)gm_pOldWndProc );
00818             gm_pOldWndProc = NULL;
00819         }
00820
00821         // Modified by KEITA for WIN64 2003.9.6
00822 		::SetWindowLongPtr( m_hwndTab, GWLP_USERDATA, (LONG_PTR)NULL );
00823
00824         if( m_hwndToolTip )
00825         {
00826 			::DestroyWindow( m_hwndToolTip );
00827             m_hwndToolTip = NULL;
00828         }
00829
00830         this->DestroyWindow();
00831     }
00832 }
00833
00834 //WM_SIZE処理
00835 LRESULT CTabWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00836 {
00837     RECT    rcParent;
00838
00839     if( NULL == GetHwnd() || NULL == m_hwndTab ) return 0L;
00840
00841     ::GetWindowRect( GetHwnd(), &rcParent );
00842
00843     ::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
00844
00845     LayoutTab();    // 2006.01.28 ryoji タブのレイアウト調整処理
00846
00847     ::InvalidateRect( GetHwnd(), NULL, FALSE ); //  2006.02.01 ryoji
00848
00849     return 0L;
00850 }
00851
00852 //WM_DSESTROY処理
00853 LRESULT CTabWnd::OnDestroy( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00854 {
00855     //タブコントロールを削除
00856     if( m_hwndTab )
00857     {
00858 		::DestroyWindow( m_hwndTab );
00859         m_hwndTab = NULL;
00860     }
00861
00862     //表示用フォント
00863     if( m_hFont )
00864     {
00865         ::DeleteObject( m_hFont );
00866         m_hFont = NULL;
00867     }
00868
00869     // 2006.01.28 ryoji イメージリストを削除
00870     if( NULL != m_hIml )
00871     {
00872         ImageList_Destroy( m_hIml );
00873         m_hIml = NULL;
00874     }
00875
00876     ::KillTimer( hwnd, 1 ); //  2006.02.01 ryoji
00877
00878     _SetHwnd(NULL);
00879
00880     return 0L;
00881 }
00882
00886 LRESULT CTabWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00887 {
00888     // 新規作成コマンドを実行する
00889 	::SendMessageCmd( GetParentHwnd(), WM_COMMAND, MAKEWPARAM( F_FILENEW, 0 ), (LPARAM)NULL );
00890     return 0L;
00891 }
00892
00896 LRESULT CTabWnd::OnCaptureChanged( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00897 {
00898     if( m_eCaptureSrc != CAPT_NONE )
00899         m_eCaptureSrc = CAPT_NONE;
00900
00901     return 0L;
00902 }
00903
00909 LRESULT CTabWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00910 {
00911     POINT pt;
00912     RECT rc;
00913     RECT rcBtn;
00914
00915     pt.x = LOWORD(lParam);
00916     pt.y = HIWORD(lParam);
00917     ::GetClientRect( GetHwnd(), &rc );
00918
00919     // タブ一覧ボタン上ならタブ一覧メニュー（タブ名）を表示する
00920     GetListBtnRect( &rc, &rcBtn );
00921     if( ::PtInRect( &rcBtn, pt ) )
00922     {
00923         pt.x = rcBtn.left;
00924         pt.y = rcBtn.bottom;
00925         ::ClientToScreen( GetHwnd(), &pt );
00926         TabListMenu( pt, FALSE, FALSE, FALSE ); // タブ一覧メニュー（タブ名）
00927     }
00928     else
00929     {
00930         // 閉じるボタン上ならキャプチャー開始
00931         GetCloseBtnRect( &rc, &rcBtn );
00932         if( ::PtInRect( &rcBtn, pt ) )
00933         {
00934             m_eCaptureSrc = CAPT_CLOSE; // キャプチャー元は閉じるボタン
00935             ::SetCapture( GetHwnd() );
00936         }
00937     }
00938
00939     return 0L;
00940 }
00941
00945 LRESULT CTabWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00946 {
00947     POINT pt;
00948     RECT rc;
00949     RECT rcBtn;
00950
00951     pt.x = LOWORD(lParam);
00952     pt.y = HIWORD(lParam);
00953     ::GetClientRect( GetHwnd(), &rc );
00954
00955     if( ::GetCapture() == GetHwnd() )   // 自ウィンドウがマウスキャプチャーしている?
00956     {
00957         if( m_eCaptureSrc == CAPT_CLOSE )   // キャプチャー元は閉じるボタン?
00958         {
00959             // 閉じるボタン上ならタブを閉じる
00960             GetCloseBtnRect( &rc, &rcBtn );
00961             if( ::PtInRect( &rcBtn, pt ) )
00962             {
00963                 int nId;
00964                 if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
00965                 {
00966                     if( !m_pShareData->m_Common.m_sTabBar.m_bTab_CloseOneWin )
00967                     {
00968                         nId = F_WINCLOSE;   // 閉じる（タイトルバーの閉じるボタンは編集の全終了）
00969                     }
00970                     else
00971                     {
00972                         nId = F_GROUPCLOSE; // グループを閉じる
00973                     }
00974                 }
00975                 else
00976                 {
00977                     nId = F_EXITALLEDITORS; // 編集の全終了（タイトルバーの閉じるボタンは１個だけ閉じる）
00978                 }
00979 				::PostMessageAny( GetParentHwnd(), WM_COMMAND, MAKEWPARAM( nId, 0 ), (LPARAM)NULL );
00980             }
00981         }
00982
00983         // キャプチャー解除
00984         m_eCaptureSrc = CAPT_NONE;
00985         ::ReleaseCapture();
00986     }
00987
00988     return 0L;
00989 }
00990
00995 LRESULT CTabWnd::OnRButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00996 {
00997     POINT pt;
00998     RECT rc;
00999     RECT rcBtn;
01000
01001     pt.x = LOWORD(lParam);
01002     pt.y = HIWORD(lParam);
01003     ::GetClientRect( GetHwnd(), &rc );
01004
01005     // タブ一覧ボタン上ならタブ一覧メニュー（フルパス）を表示する  // 2006.11.30 ryoji
01006     GetListBtnRect( &rc, &rcBtn );
01007     if( ::PtInRect( &rcBtn, pt ) )
01008     {
01009         pt.x = rcBtn.left;
01010         pt.y = rcBtn.bottom;
01011         ::ClientToScreen( GetHwnd(), &pt );
01012         TabListMenu( pt, FALSE, TRUE, FALSE );  // タブ一覧メニュー（フルパス）
01013     }
01014
01015     return 0L;
01016 }
01017
01021 LRESULT CTabWnd::OnMeasureItem( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01022 {
01023     MEASUREITEMSTRUCT* lpmis = (MEASUREITEMSTRUCT*)lParam;
01024     if( lpmis->CtlType == ODT_MENU )
01025     {
01026         TABMENU_DATA* pData = (TABMENU_DATA*)lpmis->itemData;
01027
01028         HDC hdc = ::GetDC( hwnd );
01029         HFONT hfnt = CreateMenuFont();
01030         HFONT hfntOld = (HFONT)::SelectObject( hdc, hfnt );
01031         SIZE size;
01032
01033         ::GetTextExtentPoint32( hdc, pData->szText, ::_tcslen(pData->szText), &size );
01034
01035         lpmis->itemHeight = ::GetSystemMetrics( SM_CYMENU );
01036         lpmis->itemWidth = size.cx + CX_SMICON + 8;
01037
01038         ::SelectObject( hdc, hfntOld );
01039         ::DeleteObject( hfnt );
01040         ::ReleaseDC( hwnd, hdc );
01041     }
01042
01043     return 0L;
01044 }
01045
01049 LRESULT CTabWnd::OnDrawItem( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01050 {
01051     DRAWITEMSTRUCT* lpdis = (DRAWITEMSTRUCT*)lParam;
01052     if( lpdis->CtlType == ODT_MENU )
01053     {
01054         // タブ一覧メニューを描画する
01055         TABMENU_DATA* pData = (TABMENU_DATA*)lpdis->itemData;
01056
01057         HDC hdc = lpdis->hDC;
01058         RECT rcItem = lpdis->rcItem;
01059
01060         // 状態に従ってテキストと背景色を決める
01061         COLORREF clrText;
01062         COLORREF clrBk;
01063         if (lpdis->itemState & ODS_SELECTED)
01064         {
01065             clrText = ::GetSysColor( COLOR_HIGHLIGHTTEXT );
01066             clrBk = COLOR_HIGHLIGHT;
01067         }
01068         else
01069         {
01070             clrText = ::GetSysColor( COLOR_MENUTEXT );
01071             clrBk = COLOR_MENU;
01072         }
01073
01074         // 背景描画
01075         ::FillRect( hdc, &rcItem, (HBRUSH)(clrBk + 1) );
01076
01077         // アイコン描画
01078         if( NULL != m_hIml && 0 <= pData->iImage )
01079         {
01080             int top = rcItem.top + ( rcItem.bottom - rcItem.top - CY_SMICON ) / 2;
01081             ImageList_Draw( m_hIml, pData->iImage, lpdis->hDC, rcItem.left + 2, top, ILD_TRANSPARENT );
01082         }
01083
01084         // テキスト描画
01085         COLORREF clrTextOld = ::SetTextColor( hdc, clrText );
01086         int iBkModeOld = ::SetBkMode( hdc, TRANSPARENT );
01087         HFONT hfnt = CreateMenuFont();
01088         HFONT hfntOld = (HFONT)::SelectObject( hdc, hfnt );
01089         RECT rcText = rcItem;
01090         rcText.left += (CX_SMICON + 8);
01091
01092         ::DrawText( hdc, pData->szText, -1, &rcText, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
01093
01094         ::SetTextColor( hdc, clrTextOld );
01095         ::SetBkMode( hdc, iBkModeOld );
01096         ::SelectObject( hdc, hfntOld );
01097         ::DeleteObject( hfnt );
01098
01099         // チェック状態なら外枠描画
01100         if( lpdis->itemState & ODS_CHECKED )
01101         {
01102             HPEN hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_HIGHLIGHT ) );
01103             HBRUSH hbr = (HBRUSH)::GetStockObject( NULL_BRUSH );
01104             HPEN hpenOld = (HPEN)::SelectObject( hdc, hpen );
01105             HBRUSH hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
01106
01107             ::Rectangle( hdc, rcItem.left, rcItem.top, rcItem.right, rcItem.bottom );
01108
01109             ::SelectObject( hdc, hpenOld );
01110             ::SelectObject( hdc, hbrOld );
01111             ::DeleteObject( hpen );
01112         }
01113     }
01114
01115     return 0L;
01116 }
01117
01122 LRESULT CTabWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01123 {
01124     // カーソルがウィンドウ内に入ったらタイマー起動
01125     // ウィンドウ外に出たらタイマー削除
01126     POINT pt;
01127     RECT rc;
01128     BOOL bHovering;
01129
01130     pt.x = LOWORD( lParam );
01131     pt.y = HIWORD( lParam );
01132     ::GetClientRect( hwnd, &rc );
01133     bHovering = ::PtInRect( &rc, pt );
01134     if( bHovering != m_bHovering )
01135     {
01136         m_bHovering = bHovering;
01137         if( m_bHovering )
01138             ::SetTimer( hwnd, 1, 200, NULL );
01139         else
01140             ::KillTimer( hwnd, 1 );
01141     }
01142
01143     // カーソルがボタン上を出入りするときに再描画
01144     RECT rcBtn;
01145     LPTSTR pszTip = (LPTSTR)-1L;
01146
01147     GetListBtnRect( &rc, &rcBtn );
01148     bHovering = ::PtInRect( &rcBtn, pt );
01149     if( bHovering != m_bListBtnHilighted )
01150     {
01151         m_bListBtnHilighted = bHovering;
01152         ::InvalidateRect( hwnd, &rcBtn, FALSE );
01153
01154         // ツールチップ用の文字列作成  // 2007.03.05 ryoji
01155         pszTip = NULL;  // ボタンの外に出るときは消す
01156         if( m_bListBtnHilighted )   // ボタンに入ってきた?
01157         {
01158             pszTip = m_szTextTip1;
01159             _tcscpy( m_szTextTip1, _T("左クリック: タブ名一覧\n右クリック: パス名一覧") );
01160         }
01161     }
01162
01163     GetCloseBtnRect( &rc, &rcBtn );
01164     bHovering = ::PtInRect( &rcBtn, pt );
01165     if( bHovering != m_bCloseBtnHilighted )
01166     {
01167         m_bCloseBtnHilighted = bHovering;
01168         ::InvalidateRect( hwnd, &rcBtn, FALSE );
01169
01170         // ツールチップ用の文字列作成  // 2007.03.05 ryoji
01171         pszTip = NULL;  // ボタンの外に出るときは消す
01172         if( m_bCloseBtnHilighted )  // ボタンに入ってきた?
01173         {
01174             pszTip = m_szTextTip1;
01175             if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01176             {
01177                 if( !m_pShareData->m_Common.m_sTabBar.m_bTab_CloseOneWin )
01178                 {
01179                     _tcscpy( m_szTextTip1, _T("タブを閉じる") );
01180                 }
01181                 else
01182                 {
01183                     ::LoadString( GetAppInstance(), F_GROUPCLOSE, m_szTextTip1, _countof(m_szTextTip1) );
01184                     m_szTextTip1[_countof(m_szTextTip1) - 1] = _T('\0');
01185                 }
01186             }
01187             else
01188             {
01189                 ::LoadString( GetAppInstance(), F_EXITALLEDITORS, m_szTextTip1, _countof(m_szTextTip1) );
01190                 m_szTextTip1[_countof(m_szTextTip1) - 1] = _T('\0');
01191             }
01192         }
01193     }
01194
01195     // ツールチップ更新 // 2007.03.05 ryoji
01196     if( pszTip != (LPTSTR)-1L ) // ボタンへの出入りがあった?
01197     {
01198         TOOLINFO ti;
01199         ::ZeroMemory( &ti, sizeof(ti) );
01200         ti.cbSize       = sizeof(ti);
01201         ti.hwnd         = GetHwnd();
01202         ti.hinst        = GetAppInstance();
01203         ti.uId          = (UINT)GetHwnd();
01204         ti.lpszText     = pszTip;
01205         ::SendMessage( m_hwndToolTip, TTM_UPDATETIPTEXT, (WPARAM)0, (LPARAM)&ti );
01206     }
01207
01208     return 0L;
01209 }
01210
01214 LRESULT CTabWnd::OnTimer( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01215 {
01216     if( wParam == 1 )
01217     {
01218         // カーソルがウィンドウ外にある場合にも WM_MOUSEMOVE を送る
01219         POINT pt;
01220         RECT rc;
01221
01222         ::GetCursorPos( &pt );
01223         ::ScreenToClient( hwnd, &pt );
01224         ::GetClientRect( hwnd, &rc );
01225         if( !::PtInRect( &rc, pt ) )
01226             ::SendMessageAny( hwnd, WM_MOUSEMOVE, 0, MAKELONG( pt.x, pt.y ) );
01227     }
01228
01229     return 0L;
01230 }
01231
01240 LRESULT CTabWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01241 {
01242     HDC hdc;
01243     PAINTSTRUCT ps;
01244     RECT rc;
01245
01246     hdc = ::BeginPaint( hwnd, &ps );
01247
01248     // 背景を描画する
01249     ::GetClientRect( hwnd, &rc );
01250     ::FillRect( hdc, &rc, (HBRUSH)(COLOR_3DFACE + 1) );
01251
01252     // ボタンを描画する
01253     DrawListBtn( hdc, &rc );
01254     DrawCloseBtn( hdc, &rc );   // 2006.10.21 ryoji 追加
01255
01256     // 上側に境界線を描画する
01257     ::DrawEdge(hdc, &rc, EDGE_ETCHED, BF_TOP);
01258
01259     // Windowsクラシックスタイルの場合はアクティブタブの上部にトップバンドを描画する // 2006.03.27 ryoji
01260     if( !m_bVisualStyle )
01261     {
01262         int nCurSel = TabCtrl_GetCurSel( m_hwndTab );
01263         if( nCurSel >= 0 )
01264         {
01265             POINT pt;
01266             RECT rcCurSel;
01267
01268             TabCtrl_GetItemRect( m_hwndTab, nCurSel, &rcCurSel );
01269             pt.x = rcCurSel.left;
01270             pt.y = 0;
01271             ::ClientToScreen( m_hwndTab, &pt );
01272             ::ScreenToClient( GetHwnd(), &pt );
01273             rcCurSel.right = pt.x + (rcCurSel.right - rcCurSel.left) - 1;
01274             rcCurSel.left = pt.x + 1;
01275             rcCurSel.top = rc.top + TAB_MARGIN_TOP - 2;
01276             rcCurSel.bottom = rc.top + TAB_MARGIN_TOP;
01277
01278             if( rcCurSel.left < rc.left + TAB_MARGIN_LEFT )
01279                 rcCurSel.left = rc.left + TAB_MARGIN_LEFT;  // 左端限界値
01280
01281             HWND hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );   // タブ内の Up-Down コントロール
01282             if( hwndUpDown && ::IsWindowVisible( hwndUpDown ) )
01283             {
01284                 POINT ptREnd;
01285                 RECT rcUpDown;
01286
01287                 ::GetWindowRect( hwndUpDown, &rcUpDown );
01288                 ptREnd.x = rcUpDown.left;
01289                 ptREnd.y = 0;
01290                 ::ScreenToClient( GetHwnd(), &ptREnd );
01291                 if( rcCurSel.right > ptREnd.x )
01292                     rcCurSel.right = ptREnd.x;  // 右端限界値
01293             }
01294
01295             if( rcCurSel.left < rcCurSel.right )
01296             {
01297                 HBRUSH hBr = ::CreateSolidBrush( RGB( 255, 128, 0 ) );
01298                 ::FillRect( hdc, &rcCurSel, hBr );
01299                 ::DeleteObject( hBr );
01300             }
01301         }
01302     }
01303
01304     ::EndPaint( hwnd, &ps );
01305
01306     return 0L;
01307 }
01308
01313 LRESULT CTabWnd::OnNotify( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01314 {
01315     // 2005.09.01 ryoji ウィンドウ切り替えは OnTabLButtonUp() に移動
01316     return 0L;
01317 }
01318
01319 void CTabWnd::TabWindowNotify( WPARAM wParam, LPARAM lParam )
01320 {
01321     if( NULL == m_hwndTab ) return;
01322
01323     bool    bFlag = false;  //前回何もタブがなかったか？
01324     int     nCount;
01325     int     nIndex;
01326     HWND    hwndUpDown;
01327     DWORD nScrollPos;
01328
01329     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
01330
01331     nCount = TabCtrl_GetItemCount( m_hwndTab );
01332     if( nCount <= 0 )
01333     {
01334         bFlag = true;
01335         //最初のときはすでに存在するウインドウの情報も登録する必要がある。
01336         // 起動時、CTabWnd::Open()内のRefresh()ではまだグループ入り前のため既に別ウィンドウがあってもタブは空
01337         if( wParam == TWNT_ADD )
01338             Refresh();  // 続けてTWNT_ADD処理で自分以外のウィンドウを隠す
01339     }
01340
01341     switch( wParam )
01342     {
01343     case TWNT_ADD:  //ウインドウ登録
01344         nIndex = FindTabIndexByHWND( (HWND)lParam );
01345         if( -1 == nIndex )
01346         {
01347             TCITEM  tcitem;
01348             TCHAR   szName[1024];
01349
01350             _tcscpy( szName, _T("(無題)") );
01351
01352             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01353             tcitem.pszText = szName;
01354             tcitem.lParam  = (LPARAM)lParam;
01355
01356             // 2006.01.28 ryoji タブにアイコンイメージを追加する
01357             tcitem.mask |= TCIF_IMAGE;
01358             tcitem.iImage = GetImageIndex( NULL );
01359
01360             TabCtrl_InsertItem( m_hwndTab, nCount, &tcitem );
01361             nIndex = nCount;
01362         }
01363
01364         if( CShareData::getInstance()->IsTopEditWnd( GetParentHwnd() ) )
01365         {
01366             //自分ならアクティブに
01367             if( !::IsWindowVisible( GetParentHwnd() ) )
01368             {
01369                 ShowHideWindow( GetParentHwnd(), TRUE );
01370                 //ここに来たということはすでにアクティブ
01371                 //コマンド実行時のアウトプットで問題があるのでアクティブにする
01372             }
01373
01374             TabCtrl_SetCurSel( m_hwndTab, nIndex );
01375
01376             // 自分以外を隠す
01377             HideOtherWindows( GetParentHwnd() );
01378         }
01379         break;
01380
01381     case TWNT_DEL:  //ウインドウ削除
01382         nIndex = FindTabIndexByHWND( (HWND)lParam );
01383         if( -1 != nIndex )
01384         {
01385             if( CShareData::getInstance()->IsTopEditWnd( GetParentHwnd() ) )
01386             {
01387                 if( !::IsWindowVisible( GetParentHwnd() ) )
01388                 {
01389                     ShowHideWindow( GetParentHwnd(), TRUE );
01390                     ForceActiveWindow( GetParentHwnd() );
01391                 }
01392             }
01393             TabCtrl_DeleteItem( m_hwndTab, nIndex );
01394
01395             // 2005.09.01 ryoji スクロール位置調整
01396             // （右端のほうのタブアイテムを削除したとき、スクロール可能なのに右に余白ができることへの対策）
01397             hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );    // タブ内の Up-Down コントロール
01398             if( hwndUpDown != NULL && ::IsWindowVisible( hwndUpDown ) ) // 2007.09.24 ryoji hwndUpDown可視の条件追加
01399             {
01400                 nScrollPos = LOWORD( ::SendMessageAny( hwndUpDown, UDM_GETPOS, (WPARAM)0, (LPARAM)0 ) );
01401
01402                 // 現在位置 nScrollPos と画面表示とを一致させる
01403 				::SendMessageAny( m_hwndTab, WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, LOWORD( nScrollPos ) ), (LPARAM)NULL );   // 設定位置にタブをスクロール
01404             }
01405         }
01406         break;
01407
01408     case TWNT_ORDER:    //ウインドウ順序変更
01409         nIndex = FindTabIndexByHWND( (HWND)lParam );
01410         if( -1 != nIndex )
01411         {
01412             if( CShareData::getInstance()->IsTopEditWnd( GetParentHwnd() ) )
01413             {
01414                 //自分ならアクティブに
01415                 if( !::IsWindowVisible( GetParentHwnd() ) )
01416                 {
01417                     ShowHideWindow( GetParentHwnd(), TRUE );
01418                 }
01419                 //ここに来たということはすでにアクティブ
01420
01421                 // 自タブアイテムを強制的に可視位置にするために、
01422                 // 自タブアイテム選択前に一時的に画面左端のタブアイテムを選択する
01423                 hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );    // タブ内の Up-Down コントロール
01424                 nScrollPos = ( hwndUpDown != NULL && ::IsWindowVisible( hwndUpDown ) )? LOWORD( ::SendMessage( hwndUpDown, UDM_GETPOS, (WPARAM)0, (LPARAM)0 ) ): 0; // 2007.09.24 ryoji hwndUpDown可視の条件追加
01425                 TabCtrl_SetCurSel( m_hwndTab, nScrollPos );
01426                 TabCtrl_SetCurSel( m_hwndTab, nIndex );
01427
01428                 // 自分以外を隠す
01429                 // （連続切替時に TWNT_ORDER が大量発生・交錯して？画面がすべて消えてしまったりするのを防ぐ）
01430                 HideOtherWindows( GetParentHwnd() );
01431             }
01432         }
01433         else
01434         {
01435             //指定のウインドウがないので再表示
01436             if( !CShareData::getInstance()->IsSameGroup( GetParentHwnd(), (HWND)lParam ) )
01437                 Refresh();
01438         }
01439         break;
01440
01441     case TWNT_FILE: //ファイル名変更
01442         nIndex = FindTabIndexByHWND( (HWND)lParam );
01443         if( -1 != nIndex )
01444         {
01445             TCITEM  tcitem;
01446             CRecentEditNode cRecentEditNode;
01447             TCHAR   szName[1024];
01448             //  Jun. 19, 2004 genta
01449             EditNode    *p;
01450             p = CShareData::getInstance()->GetEditNode( (HWND)lParam );
01451             GetTabName( p, FALSE, TRUE, szName, _countof(szName) );
01452
01453             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01454             tcitem.pszText = szName;
01455             tcitem.lParam  = lParam;
01456
01457             // 2006.01.28 ryoji タブのアイコンイメージを変更する
01458             tcitem.mask |= TCIF_IMAGE;
01459             tcitem.iImage = GetImageIndex( p );
01460
01461             TabCtrl_SetItem( m_hwndTab, nIndex, &tcitem );
01462         }
01463         else
01464         {
01465             //指定のウインドウがないので再表示
01466             if( !CShareData::getInstance()->IsSameGroup( GetParentHwnd(), (HWND)lParam ) )
01467                 Refresh();
01468         }
01469         break;
01470
01471     case TWNT_REFRESH:  //再表示
01472         Refresh( (BOOL)lParam );
01473         break;
01474
01475     //Start 2004.07.14 Kazika 追加
01476     //タブモード有効になった場合、まとめられる側のウィンドウは隠れる
01477     case TWNT_MODE_ENABLE:
01478         Refresh();
01479         if( CShareData::getInstance()->IsTopEditWnd( GetParentHwnd() ) )
01480         {
01481             if( !::IsWindowVisible( GetParentHwnd() ) )
01482             {
01483                 //表示状態とする(フォアグラウンドにはしない)
01484                 TabWnd_ActivateFrameWindow( GetParentHwnd(), false );
01485             }
01486             // 自分以外を隠す
01487             HideOtherWindows( GetParentHwnd() );
01488         }
01489         break;
01490     //End 2004.07.14 Kazika
01491
01492     //Start 2004.08.27 Kazika 追加
01493     //タブモード無効になった場合、隠れていたウィンドウは表示状態となる
01494     case TWNT_MODE_DISABLE:
01495         Refresh();
01496         if( !::IsWindowVisible( GetParentHwnd() ) )
01497         {
01498             //表示状態とする(フォアグラウンドにはしない)
01499             TabWnd_ActivateFrameWindow( GetParentHwnd(), false );
01500         }
01501         break;
01502     //End 2004.08.27 Kazika
01503
01504     case TWNT_WNDPL_ADJUST: // ウィンドウ位置合わせ   // 2007.04.03 ryoji
01505         AdjustWindowPlacement();
01506         return;
01507
01508     default:
01509         break;
01510     }
01511
01512     //タブの表示・非表示を切りかえる。
01513     nCount = TabCtrl_GetItemCount( m_hwndTab );
01514     if( nCount <= 0 )
01515     {
01516         ::ShowWindow( m_hwndTab, SW_HIDE );
01517     }
01518     else
01519     {
01520         if( bFlag ) ::ShowWindow( m_hwndTab, SW_SHOW );
01521     }
01522
01523     LayoutTab();    // 2006.01.28 ryoji タブのレイアウト調整処理
01524
01525     //更新
01526     ::InvalidateRect( m_hwndTab, NULL, TRUE );
01527     ::InvalidateRect( GetHwnd(), NULL, TRUE );      // 2006.10.21 ryoji タブ内ボタン再描画のために追加
01528
01529     return;
01530 }
01531
01533 int CTabWnd::FindTabIndexByHWND( HWND hWnd )
01534 {
01535     int     i;
01536     int     nCount;
01537     TCITEM  tcitem;
01538
01539     if( NULL == m_hwndTab ) return -1;
01540
01541     nCount = TabCtrl_GetItemCount( m_hwndTab );
01542     for( i = 0; i < nCount; i++ )
01543     {
01544         tcitem.mask   = TCIF_PARAM;
01545         tcitem.lParam = (LPARAM)0;
01546         TabCtrl_GetItem( m_hwndTab, i, &tcitem );
01547
01548         if( (HWND)tcitem.lParam == hWnd ) return i;
01549     }
01550
01551     return -1;
01552 }
01553
01560 void CTabWnd::Refresh( BOOL bEnsureVisible/* = TRUE*/, BOOL bRebuild/* = FALSE*/ )
01561 {
01562     TCITEM      tcitem;
01563     EditNode    *pEditNode;
01564     int         nCount;
01565     int         nGroup;
01566     int         nTab;
01567     int         nSel;
01568     int         nCurTab;
01569     int         nCurSel;
01570     int         i;
01571     int         j;
01572
01573     if( NULL == m_hwndTab ) return;
01574
01575     pEditNode = NULL;
01576     nCount = CShareData::getInstance()->GetOpenedWindowArr( &pEditNode, TRUE );
01577
01578     // 自ウィンドウのグループ番号を調べる
01579     for( i = 0; i < nCount; i++ )
01580     {
01581         if( pEditNode[i].m_hWnd == GetParentHwnd() ){
01582             nGroup = pEditNode[i].m_nGroup;
01583             break;
01584         }
01585     }
01586
01587     if( i >= nCount )
01588     {
01589         // 見つからなかったので全タブを削除
01590         TabCtrl_DeleteAllItems( m_hwndTab );
01591     }
01592     else
01593     {
01594 		::SendMessageAny( m_hwndTab, WM_SETREDRAW, (WPARAM)FALSE, (LPARAM)0 );    // 2005.09.01 ryoji 再描画禁止
01595
01596         if( bRebuild )
01597             TabCtrl_DeleteAllItems( m_hwndTab );    // 作成しなおす
01598
01599         // 作成するタブ数と選択状態にするタブ位置（自ウィンドウの位置）を調べる
01600         for( i = 0, j = 0; i < nCount; i++ )
01601         {
01602             if( pEditNode[i].m_nGroup != nGroup )
01603                 continue;
01604             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
01605                 continue;
01606             if( pEditNode[i].m_hWnd == GetParentHwnd() )
01607                 nSel = j;   // 選択状態にするタブ位置
01608             j++;
01609         }
01610         nTab = j;   // 作成するタブ数
01611
01612         // タブが無ければ１つ作成して選択状態にする（自ウィンドウのタブ用）
01613         TCHAR       szName[2048];
01614         _tcscpy( szName, _T("") );
01615         tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01616         tcitem.pszText = szName;
01617         tcitem.lParam  = (LPARAM)GetParentHwnd();
01618         if( TabCtrl_GetItemCount( m_hwndTab ) == 0 )
01619         {
01620             TabCtrl_InsertItem( m_hwndTab, 0, &tcitem );
01621             TabCtrl_SetCurSel( m_hwndTab, 0 );
01622         }
01623
01624         // 選択タブよりも前の過不足を調整する
01625         // （選択タブの直前位置への追加／削除を繰り返すことでスクロール発生を低減）
01626         nCurSel = TabCtrl_GetCurSel( m_hwndTab );   // 現在の選択タブ位置
01627         if( nCurSel > nSel )
01628         {
01629             for( i = 0; i < nCurSel - nSel; i++ )
01630                 TabCtrl_DeleteItem( m_hwndTab, nCurSel - 1 - i );   // 余分を削除
01631         }
01632         else
01633         {
01634             for( i = 0; i < nSel - nCurSel; i++ )
01635                 TabCtrl_InsertItem( m_hwndTab, nCurSel + i, &tcitem );  // 不足を追加
01636         }
01637
01638         // 選択タブよりも後の過不足を調整する
01639         nCurTab = TabCtrl_GetItemCount( m_hwndTab );    // 現在のタブ数
01640         if( nCurTab > nTab )
01641         {
01642             for( i = 0; i < nCurTab - nTab; i++ )
01643                 TabCtrl_DeleteItem( m_hwndTab, nSel + 1 );  // 余分を削除
01644         }
01645         else
01646         {
01647             for( i = 0; i < nTab - nCurTab; i++ )
01648                 TabCtrl_InsertItem( m_hwndTab, nSel + 1, &tcitem ); // 不足を追加
01649         }
01650
01651         // 作成したタブに各ウィンドウ情報を設定する
01652         for( i = 0, j = 0; i < nCount; i++ )
01653         {
01654             if( pEditNode[i].m_nGroup != nGroup )
01655                 continue;
01656             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
01657                 continue;
01658
01659             GetTabName( &pEditNode[i], FALSE, TRUE, szName, _countof(szName) );
01660
01661             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01662             tcitem.pszText = szName;
01663             tcitem.lParam  = (LPARAM)pEditNode[i].m_hWnd;
01664
01665             // 2006.01.28 ryoji タブにアイコンを追加する
01666             tcitem.mask |= TCIF_IMAGE;
01667             tcitem.iImage = GetImageIndex( &pEditNode[i] );
01668
01669             TabCtrl_SetItem( m_hwndTab, j, &tcitem );
01670             j++;
01671         }
01672
01673 		::SendMessageAny( m_hwndTab, WM_SETREDRAW, (WPARAM)TRUE, (LPARAM)0 ); // 2005.09.01 ryoji 再描画許可
01674
01675         // 選択タブを可視位置にする
01676         if( bEnsureVisible )
01677         {
01678             // TabCtrl_SetCurSel() を使うと等幅タブのときに選択タブが左端のほうに寄ってしまう
01679 //          TabCtrl_SetCurSel( m_hwndTab, 0 );
01680 //          TabCtrl_SetCurSel( m_hwndTab, nSel );
01681 			::PostMessageAny( m_hwndTab, TCM_SETCURSEL, 0, 0 );
01682 			::PostMessageAny( m_hwndTab, TCM_SETCURSEL, nSel, 0 );
01683         }
01684     }
01685
01686     if( pEditNode ) delete[]pEditNode;
01687
01688     return;
01689 }
01690
01691
01697 void CTabWnd::AdjustWindowPlacement( void )
01698 {
01699     // タブまとめ表示の場合は編集ウィンドウの表示位置を復元する
01700     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01701     {
01702         HWND hwnd = GetParentHwnd();    // 自身の編集ウィンドウ
01703         WINDOWPLACEMENT wp;
01704         if( !::IsWindowVisible( hwnd ) )    // 可視化するときだけ引き継ぐ
01705         {
01706             // なるべく画面を手前に出さずに可視化する
01707             // Note. 非アクティブスレッドから実行するのであればアクティブ化指定でも手前には出ない
01708             // Note. SW_xxxxx の中には「アクティブ化無しの最大化」指定は存在しない
01709             // Note. 不可視の状態からいきなり手前に出てしまうと次のような現象が起きる
01710             //  ・画面描画される際、クライアント領域全体が一時的に真っ白になる（Vista Aero）
01711             //  ・最大化切替（SW_SHOWMAXIMIZED）の際、以前に通常表示だった画面のステータスバーやファンクションキーが一時的に通常サイズで表示される
01712
01713             // ウィンドウを背後に配置する
01714             // Note. WS_EX_TOPMOST については hwndInsertAfter ウィンドウの状態が引き継がれる
01715             EditNode* pEditNode;
01716             pEditNode = CShareData::getInstance()->GetTopEditNode( hwnd );
01717             if( pEditNode == NULL )
01718             {
01719                 ::ShowWindow( hwnd, SW_SHOWNA );
01720                 return;
01721             }
01722             HWND hwndInsertAfter = pEditNode->m_hWnd;
01723             wp.length = sizeof( wp );
01724             ::GetWindowPlacement( hwndInsertAfter, &wp );
01725             if( wp.showCmd == SW_SHOWMINIMIZED )
01726                 wp.showCmd = pEditNode->m_showCmdRestore;
01727             ::SetWindowPos( hwnd, hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
01728
01729             if( wp.showCmd == SW_SHOWMAXIMIZED && ::IsZoomed( hwnd ) )
01730             {
01731                 WINDOWPLACEMENT wpCur;
01732                 wpCur.length = sizeof( wpCur );
01733                 ::GetWindowPlacement( hwnd, &wpCur );
01734                 if( !::EqualRect( &wp.rcNormalPosition, &wpCur.rcNormalPosition ) )
01735                 {
01736                     // ウィンドウの通常サイズが目的のサイズと違っているときは一旦通常サイズで表示してから最大化する
01737                     // Note. マルチモニタで以前に別モニタで最大化されていた画面は一旦通常サイズに戻しておかないと元の別モニタ側に表示されてしまう
01738                     wp.showCmd = SW_SHOWNOACTIVATE;
01739                     ::SetWindowPlacement( hwnd, &wp );  // 通常サイズ表示
01740                     wp.showCmd = SW_SHOWMAXIMIZED;
01741                 }
01742                 else
01743                 {
01744                     wp.showCmd = SW_SHOWNA;
01745                 }
01746             }
01747             else if( wp.showCmd != SW_SHOWMAXIMIZED )
01748             {
01749                 wp.showCmd = SW_SHOWNOACTIVATE;
01750             }
01751             ::SetWindowPlacement( hwnd, &wp );  // 位置を復元する
01752             ::UpdateWindow( hwnd ); // 強制描画
01753         }
01754     }
01755 }
01756
01757 void CTabWnd::ShowHideWindow( HWND hwnd, BOOL bDisp )
01758 {
01759     if( NULL == hwnd ) return;
01760
01761     if( bDisp )
01762     {
01763         if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01764         {
01765             if( m_pShareData->m_bEditWndChanging )
01766                 return; // 切替の最中(busy)は要求を無視する
01767             m_pShareData->m_bEditWndChanging = TRUE;    // 編集ウィンドウ切替中ON 2007.04.03 ryoji
01768
01769             // 対象ウィンドウのスレッドに位置合わせを依頼する    // 2007.04.03 ryoji
01770             DWORD_PTR dwResult;
01771             ::SendMessageTimeout( hwnd, MYWM_TAB_WINDOW_NOTIFY, TWNT_WNDPL_ADJUST, (LPARAM)NULL,
01772                 SMTO_ABORTIFHUNG | SMTO_BLOCK, 10000, &dwResult );
01773         }
01774
01775         TabWnd_ActivateFrameWindow( hwnd );
01776
01777         m_pShareData->m_bEditWndChanging = FALSE;   // 編集ウィンドウ切替中OFF    2007.04.03 ryoji
01778     }
01779     else
01780     {
01781         if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01782         {
01783             ::ShowWindow( hwnd, SW_HIDE );
01784         }
01785     }
01786
01787     return;
01788 }
01789
01797 void CTabWnd::HideOtherWindows( HWND hwndExclude )
01798 {
01799     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
01800     {
01801         HWND hwnd;
01802         int i;
01803         for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01804         {
01805             hwnd = m_pShareData->m_pEditArr[i].m_hWnd;
01806             if( CShareData::getInstance()->IsEditWnd( hwnd ) )
01807             {
01808                 if( !CShareData::getInstance()->IsSameGroup( hwndExclude, hwnd ) )
01809                     continue;
01810                 if( hwnd != hwndExclude && ::IsWindowVisible( hwnd ) )
01811                 {
01812                     ::ShowWindow( hwnd, SW_HIDE );
01813                 }
01814             }
01815         }
01816     }
01817 }
01818
01820 void CTabWnd::ForceActiveWindow( HWND hwnd )
01821 {
01822     int     nId1;
01823     int     nId2;
01824     DWORD   dwTime;
01825
01826     nId2 = ::GetWindowThreadProcessId( ::GetForegroundWindow(), NULL );
01827     nId1 = ::GetWindowThreadProcessId( hwnd, NULL );
01828
01829     ::AttachThreadInput( nId1, nId2, TRUE );
01830
01831     ::SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &dwTime, 0 );
01832     ::SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, 0 );
01833
01834     //ウィンドウをフォアグラウンドにする
01835     ::SetForegroundWindow( hwnd );
01836     ::BringWindowToTop( hwnd );
01837
01838     ::SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)dwTime, 0 );
01839
01840     ::AttachThreadInput( nId1, nId2, FALSE );
01841 }
01842
01852 void CTabWnd::TabWnd_ActivateFrameWindow( HWND hwnd, bool bForeground )
01853 {
01854     if ( bForeground )
01855     {
01856         // 2005.11.05 ryoji 対象ウィンドウのプロセスが既にフォアグラウンドなら切替え済みなので何もしないでおく
01857         DWORD dwPid1, dwPid2;
01858         ::GetWindowThreadProcessId( hwnd, &dwPid1 );
01859         ::GetWindowThreadProcessId( ::GetForegroundWindow(), &dwPid2 );
01860         if( dwPid1 == dwPid2 ){
01861             return;
01862         }
01863
01864         if( ::IsIconic( hwnd ) )
01865         {
01866             ::ShowWindow( hwnd, SW_RESTORE );   // Nov. 7. 2003 MIK アイコン時は元のサイズに戻す
01867             return;
01868         }
01869         else if( ::IsZoomed( hwnd ) )
01870         {
01871             ::ShowWindow( hwnd, SW_MAXIMIZE );
01872         }
01873         else
01874         {
01875             ::ShowWindow( hwnd, SW_SHOW );
01876         }
01877
01878         ::SetForegroundWindow( hwnd );
01879         ::BringWindowToTop( hwnd );
01880     }
01881     else
01882     {
01883         // 2005.09.01 ryoji ::ShowWindow( hwnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos に変更
01884         ::SetWindowPos( hwnd, NULL,0,0,0,0,
01885                         SWP_SHOWWINDOW | SWP_NOACTIVATE
01886                         | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01887     }
01888
01889     return;
01890 }
01891
01895 void CTabWnd::LayoutTab( void )
01896 {
01897     // アイコンの表示を切り替える
01898     HIMAGELIST hImg = TabCtrl_GetImageList( m_hwndTab );
01899     if( NULL == hImg && m_pShareData->m_Common.m_sTabBar.m_bDispTabIcon )
01900     {
01901         if( NULL != InitImageList() )
01902             Refresh( TRUE, TRUE );
01903     }
01904     else if( NULL != hImg && !m_pShareData->m_Common.m_sTabBar.m_bDispTabIcon )
01905     {
01906         InitImageList();
01907     }
01908
01909     // タブのアイテム幅の等幅を切り替える
01910     UINT lStyle;
01911     lStyle = (UINT)::GetWindowLongPtr( m_hwndTab, GWL_STYLE );
01912     if( (lStyle & TCS_FIXEDWIDTH) && !m_pShareData->m_Common.m_sTabBar.m_bSameTabWidth )
01913     {
01914         lStyle &= ~(TCS_FIXEDWIDTH | TCS_FORCELABELLEFT);
01915 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lStyle );
01916         return;
01917     }
01918     else if( !(lStyle & TCS_FIXEDWIDTH) && m_pShareData->m_Common.m_sTabBar.m_bSameTabWidth )
01919     {
01920         lStyle |= TCS_FIXEDWIDTH | TCS_FORCELABELLEFT;
01921 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lStyle );
01922     }
01923
01924     if( !m_pShareData->m_Common.m_sTabBar.m_bSameTabWidth )
01925         return; // アイテム幅の調整は不要
01926
01927     // タブのアイテム幅を調整する
01928     RECT rcTab;
01929     int nCount;
01930     int cx;
01931
01932     ::GetClientRect( m_hwndTab, &rcTab );
01933     nCount = TabCtrl_GetItemCount( m_hwndTab );
01934     if( 0 < nCount )
01935     {
01936         cx = (rcTab.right - rcTab.left - 8) / nCount;
01937         if( MAX_TABITEM_WIDTH < cx )
01938             cx = MAX_TABITEM_WIDTH;
01939         else if( MIN_TABITEM_WIDTH > cx )
01940             cx = MIN_TABITEM_WIDTH;
01941         TabCtrl_SetItemSize( m_hwndTab, cx, TAB_ITEM_HEIGHT );
01942     }
01943 }
01944
01948 HIMAGELIST CTabWnd::InitImageList( void )
01949 {
01950     SHFILEINFO sfi;
01951     HIMAGELIST hImlSys;
01952     HIMAGELIST hImlNew;
01953
01954     hImlNew = NULL;
01955     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabIcon )
01956     {
01957         // システムイメージリストを取得する
01958         // 注：複製後に差し替えて利用するアイコンには事前にアクセスしておかないとイメージが入らない
01959         //     ここでは「フォルダを閉じたアイコン」、「フォルダを開いたアイコン」を差し替え用として利用
01960         //     WinNT4.0 では SHGetFileInfo() の第一引数に同名を指定すると同じインデックスを返してくることがある？
01961
01962         hImlSys = (HIMAGELIST)::SHGetFileInfo(
01963             _T(".0"),
01964             FILE_ATTRIBUTE_DIRECTORY,
01965             &sfi,
01966             sizeof(sfi),
01967             SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES
01968         );
01969         if( NULL == hImlSys )
01970             goto l_end;
01971         m_iIconApp = sfi.iIcon;
01972
01973         hImlSys = (HIMAGELIST)::SHGetFileInfo(
01974             _T(".1"),
01975             FILE_ATTRIBUTE_DIRECTORY,
01976             &sfi,
01977             sizeof(sfi),
01978             SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES | SHGFI_OPENICON
01979         );
01980         if( NULL == hImlSys )
01981             goto l_end;
01982         m_iIconGrep = sfi.iIcon;
01983
01984         // システムイメージリストを複製する
01985         hImlNew = ImageList_Duplicate( hImlSys );
01986         if( NULL == hImlNew )
01987             goto l_end;
01988         ImageList_SetBkColor( hImlNew, CLR_NONE );
01989
01990         // イメージリストにアプリケーションアイコンと Grepアイコンを登録する
01991         // （利用しないアイコンと差し替える）
01992         m_hIconApp = GetAppIcon( GetAppInstance(), ICON_DEFAULT_APP, FN_APP_ICON, true );
01993         ImageList_ReplaceIcon( hImlNew, m_iIconApp, m_hIconApp );
01994         m_hIconGrep = GetAppIcon( GetAppInstance(), ICON_DEFAULT_GREP, FN_GREP_ICON, true );
01995         ImageList_ReplaceIcon( hImlNew, m_iIconGrep, m_hIconGrep );
01996     }
01997
01998 l_end:
01999     // タブに新しいアイコンイメージを設定する
02000     TabCtrl_SetImageList( m_hwndTab, hImlNew );
02001
02002     // 新しいイメージリストを記憶する
02003     if( NULL != m_hIml )
02004         ImageList_Destroy( m_hIml );
02005     m_hIml = hImlNew;
02006
02007     return m_hIml;  // 新しいイメージリストを返す
02008 }
02009
02013 int CTabWnd::GetImageIndex( EditNode* pNode )
02014 {
02015     SHFILEINFO sfi;
02016     HIMAGELIST hImlSys;
02017     HIMAGELIST hImlNew;
02018
02019     if( NULL == m_hIml )
02020         return -1;  // イメージリストを使っていない
02021
02022     if( pNode )
02023     {
02024         if( pNode->m_szFilePath[0] )
02025         {
02026             // 拡張子を取り出す
02027             TCHAR szExt[_MAX_EXT];
02028             _tsplitpath( pNode->m_szFilePath, NULL, NULL, NULL, szExt );
02029
02030             // 拡張子に関連付けられたアイコンイメージのインデックスを取得する
02031             hImlSys = (HIMAGELIST)::SHGetFileInfo( szExt, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES );
02032             if( NULL == hImlSys )
02033                 return -1;
02034             if( ImageList_GetImageCount( m_hIml ) > sfi.iIcon )
02035                 return sfi.iIcon;   // インデックスを返す
02036
02037             // システムイメージリストを複製する
02038             hImlNew = ImageList_Duplicate( hImlSys );
02039             if( NULL == hImlNew )
02040                 return -1;
02041             ImageList_SetBkColor( hImlNew, CLR_NONE );
02042
02043             // イメージリストにアプリケーションアイコンと Grepアイコンを登録する
02044             // （利用しないアイコンと差し替える）
02045             ImageList_ReplaceIcon( hImlNew, m_iIconApp, m_hIconApp );
02046             ImageList_ReplaceIcon( hImlNew, m_iIconGrep, m_hIconGrep );
02047
02048             // タブにアイコンイメージを設定する
02049             if( m_pShareData->m_Common.m_sTabBar.m_bDispTabIcon )
02050                 TabCtrl_SetImageList( m_hwndTab, hImlNew );
02051
02052             // 新しいイメージリストを記憶する
02053             ImageList_Destroy( m_hIml );
02054             m_hIml = hImlNew;
02055
02056             return sfi.iIcon;   // インデックスを返す
02057         }
02058         else if( pNode->m_bIsGrep )
02059             return m_iIconGrep; // grepアイコンのインデックスを返す
02060     }
02061
02062     return m_iIconApp;  // アプリケーションアイコンのインデックスを返す
02063 }
02064
02068 HIMAGELIST CTabWnd::ImageList_Duplicate( HIMAGELIST himl )
02069 {
02070     // 本物の ImageList_Duplicate() があればそれを呼び出す
02071     HIMAGELIST hImlNew;
02072     if( m_RealImageList_Duplicate )
02073     {
02074         hImlNew = m_RealImageList_Duplicate( himl );
02075         if( NULL != hImlNew )
02076             return hImlNew;
02077         m_RealImageList_Duplicate = NULL;   // 2006.06.20 ryoji 失敗時は代替処理に切り替え
02078     }
02079
02080     // 本物の ImageList_Duplicate() の代替処理
02081     // 新しいイメージリストを作成してアイコン単位でコピーする
02082     //（この場合、多色アイコンは綺麗には表示されないかもしれない）
02083     hImlNew = ImageList_Create( CX_SMICON, CY_SMICON, ILC_COLOR32 | ILC_MASK, 4, 4 );
02084     if( hImlNew )
02085     {
02086         ImageList_SetBkColor( hImlNew, CLR_NONE );
02087         int nCount = ImageList_GetImageCount( himl );
02088         int i;
02089         for( i = 0; i < nCount; i++ )
02090         {
02091             HICON hIcon = ImageList_GetIcon( himl, i, ILD_TRANSPARENT );
02092             if( NULL == hIcon )
02093             {
02094                 ImageList_Destroy( hImlNew );
02095                 return NULL;
02096             }
02097             int iIcon = ImageList_AddIcon( hImlNew, hIcon );
02098             ::DestroyIcon( hIcon );
02099             if( 0 > iIcon )
02100             {
02101                 ImageList_Destroy( hImlNew );
02102                 return NULL;
02103             }
02104         }
02105     }
02106     return hImlNew;
02107 }
02108
02112 void CTabWnd::DrawBtnBkgnd( HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted )
02113 {
02114     HPEN hpen, hpenOld;
02115     HBRUSH hbr, hbrOld;
02116
02117     if( bBtnHilighted )
02118     {
02119         hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_HIGHLIGHT ) );
02120         hbr = (HBRUSH)::GetSysColorBrush( COLOR_MENU );
02121         hpenOld = (HPEN)::SelectObject( hdc, hpen );
02122         hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02123         ::Rectangle( hdc, lprcBtn->left, lprcBtn->top, lprcBtn->right, lprcBtn->bottom );
02124         ::SelectObject( hdc, hpenOld );
02125         ::SelectObject( hdc, hbrOld );
02126         ::DeleteObject( hpen );
02127     }
02128 }
02129
02134 void CTabWnd::DrawListBtn( HDC hdc, const LPRECT lprcClient )
02135 {
02136     const POINT ptBase[4] = { {4, 8}, {7, 11}, {8, 11}, {11, 8} };  // 描画イメージ形状
02137     POINT pt[4];
02138     int i;
02139     HPEN hpen, hpenOld;
02140     HBRUSH hbr, hbrOld;
02141
02142     RECT rcBtn;
02143     GetListBtnRect( lprcClient, &rcBtn );
02144     DrawBtnBkgnd( hdc, &rcBtn, m_bListBtnHilighted );   // 2006.10.21 ryoji
02145
02146     int nIndex = m_bListBtnHilighted? COLOR_MENUTEXT: COLOR_BTNTEXT;
02147     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( nIndex ) );
02148     hbr = (HBRUSH)::GetSysColorBrush( nIndex );
02149     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02150     hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02151     for( i = 0; i < _countof(ptBase); i++ )
02152     {
02153         pt[i].x = ptBase[i].x + rcBtn.left;
02154         pt[i].y = ptBase[i].y + rcBtn.top;
02155     }
02156     ::Polygon( hdc, pt, _countof(pt) );
02157     ::SelectObject( hdc, hpenOld );
02158     ::SelectObject( hdc, hbrOld );
02159     ::DeleteObject( hpen );
02160 }
02161
02165 void CTabWnd::DrawCloseBtn( HDC hdc, const LPRECT lprcClient )
02166 {
02167     const POINT ptBase1[6][2] = // [x]描画イメージ形状（直線6本）
02168     {
02169         {{4, 5}, {12, 13}},
02170         {{4, 4}, {13, 13}},
02171         {{5, 4}, {13, 12}},
02172         {{11, 4}, {3, 12}},
02173         {{12, 4}, {3, 13}},
02174         {{12, 5}, {4, 13}}
02175     };
02176     const POINT ptBase2[10][2] = // [xx]描画イメージ形状（矩形10個）
02177     {
02178         {{3, 4}, {5, 6}},
02179         {{6, 4}, {8, 6}},
02180         {{4, 6}, {7, 10}},
02181         {{3, 10}, {5, 12}},
02182         {{6, 10}, {8, 12}},
02183         {{9, 4}, {11, 6}},
02184         {{12, 4}, {14, 6}},
02185         {{10, 6}, {13, 10}},
02186         {{9, 10}, {11, 12}},
02187         {{12, 10}, {14, 12}}
02188     };
02189
02190     POINT pt[2];
02191     int i;
02192     HPEN hpen, hpenOld;
02193     HBRUSH hbr, hbrOld;
02194
02195     RECT rcBtn;
02196     GetCloseBtnRect( lprcClient, &rcBtn );
02197
02198     // ボタンの左側にセパレータを描画する  // 2007.02.27 ryoji
02199     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DSHADOW ) );
02200     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02201     ::MoveToEx( hdc, rcBtn.left - 4, rcBtn.top + 1, NULL );
02202     ::LineTo( hdc, rcBtn.left - 4, rcBtn.bottom - 1 );
02203     ::SelectObject( hdc, hpenOld );
02204     ::DeleteObject( hpen );
02205
02206     DrawBtnBkgnd( hdc, &rcBtn, m_bCloseBtnHilighted );
02207
02208     int nIndex = m_bCloseBtnHilighted? COLOR_MENUTEXT: COLOR_BTNTEXT;
02209     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( nIndex ) );
02210     hbr = (HBRUSH)::GetSysColorBrush( nIndex );
02211     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02212     hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02213     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd &&
02214         !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin &&
02215         !m_pShareData->m_Common.m_sTabBar.m_bTab_CloseOneWin            // 2007.02.13 ryoji 条件追加（ウィンドウの閉じるボタンは全部閉じる）
02216         )
02217     {
02218         // [x]を描画（直線6本）
02219         for( i = 0; i < _countof(ptBase1); i++ )
02220         {
02221             pt[0].x = ptBase1[i][0].x + rcBtn.left;
02222             pt[0].y = ptBase1[i][0].y + rcBtn.top;
02223             pt[1].x = ptBase1[i][1].x + rcBtn.left;
02224             pt[1].y = ptBase1[i][1].y + rcBtn.top;
02225             ::MoveToEx( hdc, pt[0].x, pt[0].y, NULL );
02226             ::LineTo( hdc, pt[1].x, pt[1].y );
02227         }
02228     }
02229     else
02230     {
02231          // [xx]を描画（矩形10個）
02232         for( i = 0; i < _countof(ptBase2); i++ )
02233         {
02234             pt[0].x = ptBase2[i][0].x + rcBtn.left;
02235             pt[0].y = ptBase2[i][0].y + rcBtn.top;
02236             pt[1].x = ptBase2[i][1].x + rcBtn.left;
02237             pt[1].y = ptBase2[i][1].y + rcBtn.top;
02238             ::Rectangle( hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y );
02239         }
02240     }
02241     ::SelectObject( hdc, hpenOld );
02242     ::SelectObject( hdc, hbrOld );
02243     ::DeleteObject( hpen );
02244 }
02245
02249 void CTabWnd::GetListBtnRect( const LPRECT lprcClient, LPRECT lprc )
02250 {
02251     *lprc = rcBtnBase;
02252     ::OffsetRect(lprc, lprcClient->right - TAB_MARGIN_RIGHT + 4, lprcClient->top + TAB_MARGIN_TOP + 2 );
02253 }
02254
02258 void CTabWnd::GetCloseBtnRect( const LPRECT lprcClient, LPRECT lprc )
02259 {
02260     *lprc = rcBtnBase;
02261     ::OffsetRect(lprc, lprcClient->right - TAB_MARGIN_RIGHT + 4 + (rcBtnBase.right - rcBtnBase.left) + 7, lprcClient->top + TAB_MARGIN_TOP + 2 );
02262 }
02263
02264
02275 void CTabWnd::GetTabName( EditNode* pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen )
02276 {
02277     LPTSTR pszText = new TCHAR[nLen];
02278
02279     if( pEditNode == NULL )
02280     {
02281         ::lstrcpyn( pszText, _T("(無題)"), nLen );
02282     }
02283     else if( !bFull || pEditNode->m_szFilePath[0] == '\0' )
02284     {
02285         if( pEditNode->m_szTabCaption[0] )
02286         {
02287             ::lstrcpyn( pszText, pEditNode->m_szTabCaption, nLen );
02288         }
02289         else
02290         {
02291             ::lstrcpyn( pszText, _T("(無題)"), nLen );
02292         }
02293     }
02294     else
02295     {
02296         // フルパス名を簡易名に変換する
02297         CShareData::getInstance()->GetTransformFileNameFast( pEditNode->m_szFilePath, pszText, nLen );
02298     }
02299
02300     if( bDupamp )
02301     {
02302         // &を&&に置き換える
02303         LPTSTR pszText_amp = new TCHAR[nLen * 2];
02304         dupamp( pszText, pszText_amp );
02305         ::lstrcpyn( pszName, pszText_amp, nLen );
02306         delete []pszText_amp;
02307     }
02308     else
02309     {
02310         ::lstrcpyn( pszName, pszText, nLen );
02311     }
02312
02313     delete []pszText;
02314 }
02315
02316
02317
02331 LRESULT CTabWnd::TabListMenu( POINT pt, BOOL bSel/* = TRUE*/, BOOL bFull/* = FALSE*/, BOOL bOtherGroup/* = TRUE*/ )
02332 {
02333     bool bRepeat;
02334
02335     if( bSel )
02336         bFull = m_pShareData->m_Common.m_sTabBar.m_bTab_ListFull;
02337
02338     do
02339     {
02340         EditNode* pEditNode;
02341         int i;
02342         int nGroup;
02343         int nSelfTab;
02344         int nTab;
02345         int nCount;
02346
02347         // タブメニュー用の情報を取得する
02348         nCount = CShareData::getInstance()->GetOpenedWindowArr( &pEditNode, TRUE );
02349         if( 0 >= nCount )
02350             return 0L;
02351
02352         TABMENU_DATA* pData = new TABMENU_DATA[nCount]; // タブメニュー用の情報
02353
02354         // 自ウィンドウのグループ番号を調べる
02355         for( i = 0; i < nCount; i++ )
02356         {
02357             if( pEditNode[i].m_hWnd == GetParentHwnd() )
02358             {
02359                 nGroup = pEditNode[i].m_nGroup;
02360                 break;
02361             }
02362         }
02363
02364         // 自グループのウィンドウ一覧情報を作成する
02365         nSelfTab = 0;
02366         if( i < nCount )
02367         {
02368             for( i = 0; i < nCount; i++ )
02369             {
02370                 if( pEditNode[i].m_nGroup != nGroup )
02371                     continue;
02372                 if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
02373                     continue;
02374                 GetTabName( &pEditNode[i], bFull, TRUE, pData[nSelfTab].szText, _countof(pData[0].szText) );
02375                 pData[nSelfTab].hwnd = pEditNode[i].m_hWnd;
02376                 pData[nSelfTab].iItem = i;
02377                 pData[nSelfTab].iImage = GetImageIndex( &pEditNode[i] );
02378                 nSelfTab++;
02379             }
02380             // 表示文字でソートする
02381             if( nSelfTab > 0 && m_pShareData->m_Common.m_sTabBar.m_bSortTabList )   // 2006.03.23 fon 変更
02382                 qsort( pData, nSelfTab, sizeof(pData[0]), compTABMENU_DATA );
02383         }
02384
02385         // 他グループのウィンドウ一覧情報を作成する
02386         nTab = nSelfTab;
02387         for( i = 0; i < nCount; i++ )
02388         {
02389             if( pEditNode[i].m_nGroup == nGroup )
02390                 continue;
02391             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
02392                 continue;
02393             GetTabName( &pEditNode[i], bFull, TRUE, pData[nTab].szText, _countof(pData[0].szText) );
02394             pData[nTab].hwnd = pEditNode[i].m_hWnd;
02395             pData[nTab].iItem = i;
02396             pData[nTab].iImage = GetImageIndex( &pEditNode[i] );
02397             nTab++;
02398         }
02399         // 表示文字でソートする
02400         if( nTab > nSelfTab && m_pShareData->m_Common.m_sTabBar.m_bSortTabList )
02401             qsort( pData + nSelfTab, nTab - nSelfTab, sizeof(pData[0]), compTABMENU_DATA );
02402
02403         delete []pEditNode;
02404
02405         // メニューを作成する
02406         // 2007.02.28 ryoji 表示切替をメニューに追加
02407         int iMenuSel = -1;
02408         UINT uFlags = MF_BYPOSITION | (m_hIml? MF_OWNERDRAW: MF_STRING);
02409         HMENU hMenu = ::CreatePopupMenu();
02410         for( i = 0; i < nSelfTab; i++ )
02411         {
02412             ::InsertMenu( hMenu, i, uFlags, IDM_SELWINDOW + i, m_hIml? (LPCTSTR)&pData[i]: pData[i].szText );
02413             if( pData[i].hwnd == GetParentHwnd() )
02414                 iMenuSel = i;
02415         }
02416
02417         // 自ウィンドウに対応するメニューをチェック状態にする
02418         if( iMenuSel >= 0 )
02419         {
02420             ::CheckMenuRadioItem( hMenu, 0, nSelfTab - 1, iMenuSel, MF_BYPOSITION );
02421         }
02422
02423         // 他グループのウィンドウ一覧を追加する
02424         if( nTab > nSelfTab )
02425         {
02426             if( bOtherGroup )
02427             {
02428                 for( i = nSelfTab; i < nTab; i++ )
02429                 {
02430                     ::InsertMenu( hMenu, i, uFlags, IDM_SELWINDOW + i, m_hIml? (LPCTSTR)&pData[i]: pData[i].szText );
02431                 }
02432             }
02433             else
02434             {
02435                 ::InsertMenu( hMenu, nSelfTab, MF_BYPOSITION, 101, _T("すべて表示(&A)") );
02436             }
02437             ::InsertMenu( hMenu, nSelfTab, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  // セパレータ
02438         }
02439
02440         // 表示切替メニューを追加する
02441         if( bSel )
02442         {
02443             ::InsertMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, 100, bFull? _T("タブ名一覧に切替える(&W)"): _T("パス名一覧に切替える(&W)") );
02444             ::InsertMenu( hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); // セパレータ
02445         }
02446
02447         // メニューを表示する
02448         // 2006.04.21 ryoji マルチモニタ対応の修正
02449         RECT rcWork;
02450         GetMonitorWorkRect( pt, &rcWork );  // モニタのワークエリア
02451         int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
02452                                     ( pt.x > rcWork.left )? pt.x: rcWork.left,
02453                                     ( pt.y < rcWork.bottom )? pt.y: rcWork.bottom,
02454                                     0, GetHwnd(), NULL);
02455         ::DestroyMenu( hMenu );
02456
02457         // メニュー選択されたタブのウインドウをアクティブにする
02458         bRepeat = false;
02459         if( 100 == nId )    // 表示切替
02460         {
02461             bFull = !bFull;
02462             bRepeat = true;
02463         }
02464         else if( 101 == nId )
02465         {
02466             bOtherGroup = !bOtherGroup;
02467             bRepeat = true;
02468         }
02469         else if( IDM_SELWINDOW <= nId && nId < IDM_SELWINDOW + nTab )
02470         {
02471             ActivateFrameWindow( pData[nId - IDM_SELWINDOW].hwnd );
02472         }
02473
02474         delete []pData;
02475
02476     } while( bRepeat );
02477
02478     if( bSel )
02479         m_pShareData->m_Common.m_sTabBar.m_bTab_ListFull = bFull;
02480
02481     return 0L;
02482 }
02483
02484
02488 HWND CTabWnd::GetNextGroupWnd( void )
02489 {
02490     HWND hwndRet = NULL;
02491
02492     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
02493     {
02494         EditNode* pWndArr;
02495         int i;
02496         int j;
02497         int n;
02498
02499         n = CShareData::getInstance()->GetOpenedWindowArr( &pWndArr, FALSE, TRUE ); // グループ番号順ソート
02500         if( 0 == n )
02501             return NULL;
02502         for( i = 0; i < n; i++ )
02503         {
02504             if( pWndArr[i].m_hWnd == GetParentHwnd() )
02505                 break;
02506         }
02507         if( i < n )
02508         {
02509             for( j = i + 1; j < n; j++ )
02510             {
02511                 if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02512                 {
02513                     hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02514                     break;
02515                 }
02516             }
02517             if( j >= n )
02518             {
02519                 for( j = 0; j < i; j++ )
02520                 {
02521                     if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02522                     {
02523                         hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02524                         break;
02525                     }
02526                 }
02527             }
02528         }
02529         delete []pWndArr;
02530     }
02531
02532     return hwndRet;
02533 }
02534
02538 HWND CTabWnd::GetPrevGroupWnd( void )
02539 {
02540     HWND hwndRet = NULL;
02541     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
02542     {
02543         EditNode* pWndArr;
02544         int i;
02545         int j;
02546         int n;
02547
02548         n = CShareData::getInstance()->GetOpenedWindowArr( &pWndArr, FALSE, TRUE ); // グループ番号順ソート
02549         if( 0 == n )
02550             return NULL;
02551         for( i = 0; i < n; i++ )
02552         {
02553             if( pWndArr[i].m_hWnd == GetParentHwnd() )
02554                 break;
02555         }
02556         if( i < n )
02557         {
02558             for( j = i - 1; j >= 0; j-- )
02559             {
02560                 if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02561                 {
02562                     hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02563                     break;
02564                 }
02565             }
02566             if( j < 0 )
02567             {
02568                 for( j = n - 1; j > i; j-- )
02569                 {
02570                     if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02571                     {
02572                         hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02573                         break;
02574                     }
02575                 }
02576             }
02577         }
02578         delete []pWndArr;
02579     }
02580
02581     return hwndRet;
02582 }
02583
02587 void CTabWnd::NextGroup( void )
02588 {
02589     HWND hWnd = GetNextGroupWnd();
02590     if( hWnd )
02591     {
02592         ActivateFrameWindow( hWnd );
02593     }
02594 }
02595
02599 void CTabWnd::PrevGroup( void )
02600 {
02601     HWND hWnd = GetPrevGroupWnd();
02602     if( hWnd )
02603     {
02604         ActivateFrameWindow( hWnd );
02605     }
02606 }
02607
02611 void CTabWnd::MoveRight( void )
02612 {
02613     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd )
02614     {
02615         int nIndex = FindTabIndexByHWND( GetParentHwnd() );
02616         if( -1 != nIndex )
02617         {
02618             int nCount = TabCtrl_GetItemCount( m_hwndTab );
02619             if( nCount - 1 > nIndex )
02620             {
02621                 ReorderTab( nIndex, nIndex + 1 );
02622             }
02623         }
02624     }
02625 }
02626
02630 void CTabWnd::MoveLeft( void )
02631 {
02632     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd )
02633     {
02634         int nIndex = FindTabIndexByHWND( GetParentHwnd() );
02635         if( -1 != nIndex )
02636         {
02637             if( 0 < nIndex )
02638             {
02639                 ReorderTab( nIndex, nIndex - 1 );
02640             }
02641         }
02642     }
02643 }
02644
02648 void CTabWnd::Separate( void )
02649 {
02650     if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !m_pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
02651     {
02652         RECT rc;
02653         POINT ptSrc;
02654         POINT ptDst;
02655         RECT rcWork;
02656         int cy;
02657
02658         ::GetWindowRect( GetParentHwnd(), &rc );
02659         ptSrc.x = rc.left;
02660         ptSrc.y = rc.top;
02661         cy = ::GetSystemMetrics( SM_CYCAPTION );
02662         rc.left += cy;
02663         rc.right += cy;
02664         rc.top += cy;
02665         rc.bottom += cy;
02666         GetMonitorWorkRect( GetParentHwnd(), &rcWork );
02667         if( rc.bottom > rcWork.bottom ){
02668             rc.top -= (rc.bottom - rcWork.bottom);
02669             rc.bottom = rcWork.bottom;
02670         }
02671         if( rc.right > rcWork.right ){
02672             rc.left -= (rc.right - rcWork.right);
02673             rc.right = rcWork.right;
02674         }
02675         if( rc.top < rcWork.top ){
02676             rc.bottom += (rcWork.top - rc.top);
02677             rc.top = rcWork.top;
02678         }
02679         if( rc.left < rcWork.left ){
02680             rc.right += (rcWork.left - rc.left);
02681             rc.left = rcWork.left;
02682         }
02683         ptDst.x = rc.left;
02684         ptDst.y = rc.top;
02685
02686         SeparateGroup( GetParentHwnd(), NULL, ptSrc, ptDst );
02687     }
02688 }
02689
02693 void CTabWnd::JoinNext( void )
02694 {
02695     HWND hWnd = GetNextGroupWnd();
02696     if( hWnd )
02697     {
02698         POINT ptSrc;
02699         POINT ptDst;
02700         ptSrc.x = ptSrc.y = ptDst.x = ptDst.y = 0;
02701         SeparateGroup( GetParentHwnd(), hWnd, ptSrc, ptDst );
02702     }
02703 }
02704
02708 void CTabWnd::JoinPrev( void )
02709 {
02710     HWND hWnd = GetPrevGroupWnd();
02711     if( hWnd )
02712     {
02713         POINT ptSrc;
02714         POINT ptDst;
02715         ptSrc.x = ptSrc.y = ptDst.x = ptDst.y = 0;
02716         SeparateGroup( GetParentHwnd(), hWnd, ptSrc, ptDst );
02717     }
02718 }
02719
02720 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTabWnd.h

sakura_core

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 Nov 17 20:26:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTabWnd.h ソースファイル

sakura_core

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 protected:
00075     /*
00076     || 実装ヘルパ系
00077     */
00078     int FindTabIndexByHWND( HWND hWnd );
00079     void AdjustWindowPlacement( void );                             // 2007.04.03 ryoji
00080     void ShowHideWindow( HWND hwnd, BOOL bDisp );
00081     void HideOtherWindows( HWND hwndExclude );                      // 2007.05.17 ryoji
00082     void ForceActiveWindow( HWND hwnd );
00083     void TabWnd_ActivateFrameWindow( HWND hwnd, bool bForce = true );   //2004.08.27 Kazika 引数追加
00084     HWND GetNextGroupWnd( void );   /* 次のグループの先頭ウィンドウを探す */   // 2007.06.20 ryoji
00085     HWND GetPrevGroupWnd( void );   /* 前のグループの先頭ウィンドウを探す */   // 2007.06.20 ryoji
00086     void GetTabName( EditNode* pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen ); /* タブ名取得処理 */ // 2007.06.28 ryoji 新規作成
00087
00088     /* 仮想関数 */
00089     virtual void AfterCreateWindow( void ){}        // 2007.03.13 ryoji 可視化しない
00090
00091     /* 仮想関数 メッセージ処理 */
00092     virtual LRESULT OnSize( HWND, UINT, WPARAM, LPARAM );
00093     virtual LRESULT OnDestroy( HWND, UINT, WPARAM, LPARAM );
00094     virtual LRESULT OnNotify( HWND, UINT, WPARAM, LPARAM );
00095     virtual LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );
00096     virtual LRESULT OnCaptureChanged( HWND, UINT, WPARAM, LPARAM );
00097     virtual LRESULT OnLButtonDown( HWND, UINT, WPARAM, LPARAM );
00098     virtual LRESULT OnLButtonUp( HWND, UINT, WPARAM, LPARAM );
00099     virtual LRESULT OnRButtonDown( HWND, UINT, WPARAM, LPARAM );
00100     virtual LRESULT OnLButtonDblClk( HWND, UINT, WPARAM, LPARAM );
00101     virtual LRESULT OnMouseMove( HWND, UINT, WPARAM, LPARAM );
00102     virtual LRESULT OnTimer( HWND, UINT, WPARAM, LPARAM );
00103     virtual LRESULT OnMeasureItem( HWND, UINT, WPARAM, LPARAM );
00104     virtual LRESULT OnDrawItem( HWND, UINT, WPARAM, LPARAM );
00106     // 2005.09.01 ryoji ドラッグアンドドロップでタブの順序変更を可能に
00107     /* サブクラス化した Tab でのメッセージ処理 */
00108     LRESULT OnTabLButtonDown( WPARAM wParam, LPARAM lParam );
00109     LRESULT OnTabLButtonUp( WPARAM wParam, LPARAM lParam );
00110     LRESULT OnTabMouseMove( WPARAM wParam, LPARAM lParam );
00111     LRESULT OnTabCaptureChanged( WPARAM wParam, LPARAM lParam );
00112     LRESULT OnTabRButtonDown( WPARAM wParam, LPARAM lParam );
00113     LRESULT OnTabRButtonUp( WPARAM wParam, LPARAM lParam );
00114     LRESULT OnTabMButtonDown( WPARAM wParam, LPARAM lParam );
00115     LRESULT OnTabMButtonUp( WPARAM wParam, LPARAM lParam );
00116     LRESULT OnTabNotify( WPARAM wParam, LPARAM lParam );
00118     //実装補助インターフェース
00119     void BreakDrag( void ) { if( ::GetCapture() == m_hwndTab ) ::ReleaseCapture(); m_eDragState = DRAG_NONE; }
00120     BOOL ReorderTab( int nSrcTab, int nDstTab );
00121     BOOL SeparateGroup( HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop );       // 2007.06.20 ryoji
00122     LRESULT ExecTabCommand( int nId, POINTS pts );
00123     void LayoutTab( void );
00125     HIMAGELIST InitImageList( void );
00126     int GetImageIndex( EditNode* pNode );
00127     HIMAGELIST ImageList_Duplicate( HIMAGELIST himl );
00129     // 2006.02.01 ryoji タブ一覧を追加
00130     void DrawBtnBkgnd( HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted );     // 2006.10.21 ryoji
00131     void DrawListBtn( HDC hdc, const LPRECT lprcClient );
00132     void DrawCloseBtn( HDC hdc, const LPRECT lprcClient );                  // 2006.10.21 ryoji
00133     void GetListBtnRect( const LPRECT lprcClient, LPRECT lprc );
00134     void GetCloseBtnRect( const LPRECT lprcClient, LPRECT lprc );       // 2006.10.21 ryoji
00135
00136     HFONT CreateMenuFont( void )
00137     {
00138         // メニュー用フォント作成
00139         NONCLIENTMETRICS    ncm;
00140         ncm.cbSize = sizeof( ncm );
00141         ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(ncm), (PVOID)&ncm, 0 );
00142         return ::CreateFontIndirect( &ncm.lfMenuFont );
00143     }
00144
00145 protected:
00146     enum DragState { DRAG_NONE, DRAG_CHECK, DRAG_DRAG };
00147     enum CaptureSrc { CAPT_NONE, CAPT_CLOSE };
00148
00149     typedef HIMAGELIST (WINAPI *FN_ImageList_Duplicate)(HIMAGELIST himl);
00150
00151     /*
00152     || メンバ変数
00153     */
00154 public:
00155     LPCTSTR         m_pszClassName;
00156     DLLSHAREDATA*   m_pShareData;
00157     HFONT           m_hFont;
00158     HWND            m_hwndTab;
00159     HWND            m_hwndToolTip;
00160     TCHAR           m_szTextTip1[1024];
00161
00162 private:
00163     DragState   m_eDragState;
00164     int         m_nSrcTab;
00165     POINT       m_ptSrcCursor;
00166
00167     // 2006.01.28 ryoji タブへのアイコン表示を可能に
00168     FN_ImageList_Duplicate  m_RealImageList_Duplicate;
00169
00170     HIMAGELIST  m_hIml;
00171     HICON       m_hIconApp;
00172     HICON       m_hIconGrep;
00173     int         m_iIconApp;
00174     int         m_iIconGrep;
00175
00176     BOOL        m_bVisualStyle;
00177     BOOL        m_bHovering;
00178     BOOL        m_bListBtnHilighted;
00179     BOOL        m_bCloseBtnHilighted;
00180     CaptureSrc  m_eCaptureSrc;
00181 };
00182
00183 #endif /* _CTABWND_H_ */
00184
00185 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextArea.cpp

sakura_core

CTextArea.cpp

#include "stdafx.h"
#include "CTextArea.h"
#include "CShareData.h"
#include "CViewFont.h"
#include "CEditView.h"
#include "CEditDoc.h"

CTextArea.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextArea.cpp ソースファイル

sakura_core

CTextArea.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CTextArea.h"
00003 #include "CShareData.h"
00004 #include "CViewFont.h"
00005 #include "CEditView.h"
00006 #include "CEditDoc.h"
00007
00008 CTextArea::CTextArea(CEditView* pEditView)
00009 : m_pEditView(pEditView)
00010 {
00011     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();
00012
00013     m_nViewAlignLeft = 0;       /* 表示域の左端座標 */
00014     m_nViewAlignLeftCols = 0;   /* 行番号域の桁数 */
00015     m_nViewCx = 0;              /* 表示域の幅 */
00016     m_nViewCy = 0;              /* 表示域の高さ */
00017     m_nViewColNum = CLayoutInt(0);          /* 表示域の桁数 */
00018     m_nViewRowNum = CLayoutInt(0);          /* 表示域の行数 */
00019     m_nViewTopLine = CLayoutInt(0);         /* 表示域の一番上の行 */
00020     m_nViewLeftCol = CLayoutInt(0);         /* 表示域の一番左の桁 */
00021     SetTopYohaku( pShareData->m_Common.m_sWindow.m_nRulerBottomSpace );     /* ルーラーとテキストの隙間 */
00022     m_nViewAlignTop = GetTopYohaku();       /* 表示域の上端座標 */
00023 }
00024
00025 CTextArea::~CTextArea()
00026 {
00027 }
00028
00029 void CTextArea::CopyTextAreaStatus(CTextArea* pDst) const
00030 {
00031     pDst->SetAreaLeft               ( this->GetAreaLeft() );        // 表示域の左端座標
00032     pDst->m_nViewAlignLeftCols      = this->m_nViewAlignLeftCols;   // 行番号域の桁数
00033     pDst->SetAreaTop                (this->GetAreaTop());           // 表示域の上端座標
00034 //  pDst->m_nViewCx                 = m_nViewCx;                    // 表示域の幅
00035 //  pDst->m_nViewCy                 = m_nViewCy;                    // 表示域の高さ
00036 //  pDst->m_nViewColNum             = this->m_nViewColNum;          // 表示域の桁数
00037 //  pDst->m_nViewRowNum             = this->m_nViewRowNum;          // 表示域の行数
00038     pDst->SetViewTopLine            ( this->GetViewTopLine() );     // 表示域の一番上の行(0開始)
00039     pDst->SetViewLeftCol            ( this->GetViewLeftCol() );     // 表示域の一番左の桁(0開始)
00040 }
00041
00042
00044 void CTextArea::UpdateAreaMetrics(HDC hdc)
00045 {
00046     CEditView* pView=m_pEditView;
00047
00048
00049     //表示域の再計算
00050     m_nViewColNum = CLayoutInt(m_nViewCx / pView->GetTextMetrics().GetHankakuDx()); // 表示域の桁数
00051     m_nViewRowNum = CLayoutInt(m_nViewCy / pView->GetTextMetrics().GetHankakuDy());     // 表示域の行数
00052
00053     // 文字間隔
00054     pView->GetTextMetrics().SetHankakuDx( pView->GetTextMetrics().GetHankakuWidth() + pView->m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
00055
00056     // 行間隔
00057     pView->GetTextMetrics().SetHankakuDy( pView->GetTextMetrics().GetHankakuHeight() + pView->m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );
00058 }
00059
00060
00061 bool CTextArea::GenerateClipRect(RECT* rc,const DispPos& sPos,int nHankakuNum) const
00062 {
00063     const CEditView* pView=m_pEditView;
00064
00065     rc->left   = sPos.GetDrawPos().x;
00066     rc->right  = sPos.GetDrawPos().x + pView->GetTextMetrics().GetHankakuDx() * nHankakuNum;
00067     rc->top    = sPos.GetDrawPos().y;
00068     rc->bottom = sPos.GetDrawPos().y + pView->GetTextMetrics().GetHankakuDy();
00069
00070     //左はみ出し調整
00071     if( rc->left < GetAreaLeft() ){
00072         rc->left = GetAreaLeft();
00073     }
00074
00075     if(rc->left >= rc->right)return false; //左と右があべこべ
00076     if(rc->left >= GetAreaRight())return false; //画面外(右)
00077     if(rc->right <= GetAreaLeft())return false; //画面外(左)
00078
00079     //$ 元動作踏襲：画面上下のはみ出し判定は省略
00080
00081     return true;
00082 }
00083
00085 bool CTextArea::GenerateClipRectRight(RECT* rc,const DispPos& sPos) const
00086 {
00087     const CEditView* pView=m_pEditView;
00088
00089     rc->left   = sPos.GetDrawPos().x;
00090     rc->right  = GetAreaRight();
00091     rc->top    = sPos.GetDrawPos().y;
00092     rc->bottom = sPos.GetDrawPos().y + pView->GetTextMetrics().GetHankakuDy();
00093
00094     //左はみ出し調整
00095     if( rc->left < GetAreaLeft() ){
00096         rc->left = GetAreaLeft();
00097     }
00098
00099     if(rc->left >= rc->right)return false; //左と右があべこべ
00100     if(rc->left >= GetAreaRight())return false; //画面外(右)
00101     if(rc->right <= GetAreaLeft())return false; //画面外(左)
00102
00103     //$ 元動作踏襲：画面上下のはみ出し判定は省略
00104
00105     return true;
00106 }
00107
00108 bool CTextArea::GenerateClipRectLine(RECT* rc,const DispPos& sPos) const
00109 {
00110     rc->left   = 0;
00111     rc->right  = GetAreaRight();
00112     rc->top    = sPos.GetDrawPos().y;
00113     rc->bottom = sPos.GetDrawPos().y + m_pEditView->GetTextMetrics().GetHankakuDy();
00114     return true;
00115 }
00116
00117
00118 /*
00119 行番号表示に必要な幅を設定。幅が変更された場合はTRUEを返す
00120 */
00121 bool CTextArea::DetectWidthOfLineNumberArea( bool bRedraw )
00122 {
00123     const CEditView* pView=m_pEditView;
00124     CEditView* pView2=m_pEditView;
00125
00126     int             nViewAlignLeftNew;
00127
00128     if( pView->m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_GYOU].m_bDisp ){
00129         /* 行番号表示に必要な桁数を計算 */
00130         int i = DetectWidthOfLineNumberArea_calculate();
00131         nViewAlignLeftNew = pView->GetTextMetrics().GetHankakuDx() * (i + 1);   /* 表示域の左端座標 */
00132         m_nViewAlignLeftCols = i + 1;
00133     }
00134     else{
00135         nViewAlignLeftNew = 8;
00136         m_nViewAlignLeftCols = 0;
00137     }
00138
00139     //  Sep 18, 2002 genta
00140     nViewAlignLeftNew += pView->m_pShareData->m_Common.m_sWindow.m_nLineNumRightSpace;
00141     if( nViewAlignLeftNew != GetAreaLeft() ){
00142         CMyRect         rc;
00143         SetAreaLeft(nViewAlignLeftNew);
00144         ::GetClientRect( pView->m_hWnd, &rc );
00145         int nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL ); // 垂直スクロールバーの横幅
00146         m_nViewCx = rc.Width() - nCxVScroll - GetAreaLeft(); // 表示域の幅
00147
00148         if( bRedraw ){
00149             /* 再描画 */
00150             pView2->GetCaret().m_cUnderLine.Lock();
00151             pView2->Call_OnPaint(PAINT_LINENUMBER | PAINT_RULER | PAINT_BODY, TRUE); /* メモリＤＣを使用してちらつきのない再描画 */
00152             pView2->GetCaret().m_cUnderLine.UnLock();
00153             pView2->GetCaret().ShowEditCaret();
00154             /*
00155             PAINTSTRUCT     ps;
00156             HDC hdc = ::GetDC( pView->m_hWnd );
00157             ps.rcPaint.left   = 0;
00158             ps.rcPaint.right  = GetAreaRight();
00159             ps.rcPaint.top    = 0;
00160             ps.rcPaint.bottom = GetAreaBottom();
00161             pView2->GetCaret().m_cUnderLine.Lock();
00162             pView2->OnPaint( hdc, &ps, TRUE );
00163             GetCaret().m_cUnderLine.UnLock();
00164             pView2->GetCaret().ShowEditCaret();
00165             ::ReleaseDC( m_hWnd, hdc );
00166             */
00167         }
00168         pView2->GetRuler().SetRedrawFlag();
00169         return true;
00170     }else{
00171         return false;
00172     }
00173 }
00174
00175
00176 /* 行番号表示に必要な桁数を計算 */
00177 int CTextArea::DetectWidthOfLineNumberArea_calculate() const
00178 {
00179     const CEditView* pView=m_pEditView;
00180
00181     int nAllLines; //$$ 単位混在
00182
00183     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00184     if( pView->m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF ){
00185         nAllLines = pView->m_pcEditDoc->m_cDocLineMgr.GetLineCount();
00186     }
00187     else{
00188         nAllLines = (Int)pView->m_pcEditDoc->m_cLayoutMgr.GetLineCount();
00189     }
00190
00191     if( 0 < nAllLines ){
00192         int nWork = 100;
00193         int i;
00194         for( i = 3; i < 12; ++i ){
00195             if( nWork > nAllLines ){    // Oct. 18, 2003 genta 式を整理
00196                 break;
00197             }
00198             nWork *= 10;
00199         }
00200         return i;
00201     }else{
00202         //  2003.09.11 wmlhq 行番号が1桁のときと幅を合わせる
00203         return 3;
00204     }
00205 }
00206
00207 void CTextArea::TextArea_OnSize(
00208     const CMySize& sizeClient,
00209     int nCxVScroll,
00210     int nCyHScroll
00211 )
00212 {
00213     const CEditView* pView = m_pEditView;
00214
00215     m_nViewCx = sizeClient.cx - nCxVScroll - GetAreaLeft(); // 表示域の幅
00216     m_nViewCy = sizeClient.cy - nCyHScroll - GetAreaTop();  // 表示域の高さ
00217     m_nViewColNum = CLayoutInt(m_nViewCx / pView->GetTextMetrics().GetHankakuDx()); // 表示域の桁数
00218     m_nViewRowNum = CLayoutInt(m_nViewCy / pView->GetTextMetrics().GetHankakuDy()); // 表示域の行数
00219 }
00220
00221
00222
00223 int CTextArea::GetDocumentLeftClientPointX() const
00224 {
00225     return GetAreaLeft() - (Int)GetViewLeftCol() * m_pEditView->GetTextMetrics().GetHankakuDx();
00226 }
00227
00229 void CTextArea::ClientToLayout(CMyPoint ptClient, CLayoutPoint* pptLayout) const
00230 {
00231     const CEditView* pView=m_pEditView;
00232     pptLayout->Set(
00233         GetViewLeftCol() + CLayoutInt( (ptClient.x - GetAreaLeft()) / pView->GetTextMetrics().GetHankakuDx() ),
00234         GetViewTopLine() + CLayoutInt( (ptClient.y - GetAreaTop()) / pView->GetTextMetrics().GetHankakuDy() )
00235     );
00236 }
00237
00238
00239 void CTextArea::GenerateTopRect   (RECT* rc, CLayoutInt nLineCount) const
00240 {
00241     rc->left   = m_nViewAlignLeft;
00242     rc->right  = m_nViewAlignLeft + m_nViewCx;
00243     rc->top    = m_nViewAlignTop;
00244     rc->bottom = m_nViewAlignTop + (Int)nLineCount * m_pEditView->GetTextMetrics().GetHankakuDy();
00245 }
00246
00247 void CTextArea::GenerateBottomRect(RECT* rc, CLayoutInt nLineCount) const
00248 {
00249     rc->left   = m_nViewAlignLeft;
00250     rc->right  = m_nViewAlignLeft + m_nViewCx;
00251     rc->top    = m_nViewAlignTop  + m_nViewCy - (Int)nLineCount * m_pEditView->GetTextMetrics().GetHankakuDy();
00252     rc->bottom = m_nViewAlignTop  + m_nViewCy;
00253 }
00254
00255 void CTextArea::GenerateLeftRect  (RECT* rc, CLayoutInt nColCount ) const
00256 {
00257     rc->left   = m_nViewAlignLeft;
00258     rc->right  = m_nViewAlignLeft + (Int)nColCount * m_pEditView->GetTextMetrics().GetHankakuDx();
00259     rc->top    = m_nViewAlignTop;
00260     rc->bottom = m_nViewAlignTop + m_nViewCy;
00261 }
00262
00263 void CTextArea::GenerateRightRect (RECT* rc, CLayoutInt nColCount ) const
00264 {
00265     rc->left   = m_nViewAlignLeft + m_nViewCx + (Int)nColCount * m_pEditView->GetTextMetrics().GetHankakuDx();
00266     rc->right  = m_nViewAlignLeft + m_nViewCx;
00267     rc->top    = m_nViewAlignTop;
00268     rc->bottom = m_nViewAlignTop  + m_nViewCy;
00269 }
00270
00271 void CTextArea::GenerateLineNumberRect(RECT* rc) const
00272 {
00273     rc->left   = 0;
00274     rc->right  = m_nViewAlignLeft;
00275     rc->top    = 0;
00276     rc->bottom = m_nViewAlignTop + m_nViewCy;
00277 }
00278
00279 void CTextArea::GenerateTextAreaRect(RECT* rc) const
00280 {
00281     rc->left   = 0;
00282     rc->right  = m_nViewAlignLeft + m_nViewCx;
00283     rc->top    = m_nViewAlignTop;
00284     rc->bottom = m_nViewAlignTop + m_nViewCy;
00285 }
00286
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextArea.h

sakura_core

CTextArea.h

#include "DispPos.h"

CTextArea.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTextArea

Sakura-Editorに対してSat Nov 17 20:26:52 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextArea.h ソースファイル

sakura_core

CTextArea.h

説明を見る。
00001 #pragma once
00002
00003 class CViewFont;
00004 class CEditView;
00005 #include "DispPos.h"
00006
00007 class CTextArea{
00008 public:
00009     CTextArea(CEditView* pEditView);
00010     virtual ~CTextArea();
00011     void CopyTextAreaStatus(CTextArea* pDst) const;
00012
00013     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00014     //                     ビュー情報を取得                        //
00015     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00016
00018     CLayoutInt GetViewTopLine() const
00019     {
00020         return m_nViewTopLine;
00021     }
00022     void SetViewTopLine(CLayoutInt nLine)
00023     {
00024         m_nViewTopLine=nLine;
00025     }
00026
00028     CLayoutInt GetViewLeftCol() const
00029     {
00030         return m_nViewLeftCol;
00031     }
00032     void SetViewLeftCol(CLayoutInt nLeftCol)
00033     {
00034         m_nViewLeftCol=nLeftCol;
00035     }
00036
00038     CLayoutInt GetRightCol() const
00039     {
00040         return m_nViewLeftCol + m_nViewColNum;
00041     }
00042
00044     CLayoutInt GetBottomLine() const
00045     {
00046         return m_nViewTopLine + m_nViewRowNum;
00047     }
00048
00049     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00050     //                   領域を取得(ピクセル)                      //
00051     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00052     int GetAreaLeft() const
00053     {
00054         return m_nViewAlignLeft;
00055     }
00056     int GetAreaTop() const
00057     {
00058         return m_nViewAlignTop;
00059     }
00060     int GetAreaRight() const
00061     {
00062         return m_nViewAlignLeft + m_nViewCx;
00063     }
00064     int GetAreaBottom() const
00065     {
00066         return m_nViewAlignTop + m_nViewCy;
00067     }
00068
00069     int GetAreaWidth() const
00070     {
00071         return m_nViewCx;
00072     }
00073     int GetAreaHeight() const
00074     {
00075         return m_nViewCy;
00076     }
00077
00078     int GetTopYohaku() const
00079     {
00080         return m_nTopYohaku;
00081     }
00082     void SetTopYohaku(int nPixel)
00083     {
00084         m_nTopYohaku=nPixel;
00085     }
00086
00088     void TextArea_OnSize(
00089         const CMySize& sizeClient,
00090         int nCxVScroll,
00091         int nCyHScroll
00092     );
00093
00095     bool DetectWidthOfLineNumberArea( bool bRedraw );
00096
00098     int  DetectWidthOfLineNumberArea_calculate() const;
00099
00100     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00101     //                        その他取得                           //
00102     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00103     int GetRulerHeight() const
00104     {
00105         return m_nViewAlignTop - GetTopYohaku();
00106     }
00108     int GetDocumentLeftClientPointX() const;
00109
00110     //計算
00112     void ClientToLayout(CMyPoint ptClient, CLayoutPoint* pptLayout) const;
00113
00114     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00115     //                           設定                              //
00116     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00117     void UpdateAreaMetrics(HDC hdc);
00118     void SetAreaLeft(int nAreaLeft)
00119     {
00120         m_nViewAlignLeft = nAreaLeft;
00121     }
00122     void SetAreaTop(int nAreaTop)
00123     {
00124         m_nViewAlignTop = nAreaTop;
00125     }
00126     void OffsetViewTopLine(CLayoutInt nOff)
00127     {
00128         m_nViewTopLine += nOff;
00129     }
00130
00131
00132     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00133     //                         サポート                            //
00134     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00136     //$ Generateなんていう大げさな名前じゃなくて、Get〜で良い気がしてきた
00137     bool GenerateClipRect(RECT* rc,const DispPos& sPos,int nHankakuNum) const;
00138     bool GenerateClipRectRight(RECT* rc,const DispPos& sPos) const;
00139     bool GenerateClipRectLine(RECT* rc,const DispPos& sPos) const;
00140
00141     void GenerateTopRect   (RECT* rc, CLayoutInt nLineCount) const;
00142     void GenerateBottomRect(RECT* rc, CLayoutInt nLineCount) const;
00143     void GenerateLeftRect  (RECT* rc, CLayoutInt nColCount ) const;
00144     void GenerateRightRect (RECT* rc, CLayoutInt nColCount ) const;
00145
00146     void GenerateLineNumberRect(RECT* rc) const;
00147
00148     void GenerateTextAreaRect(RECT* rc) const;
00149
00150 private:
00151     //参照
00152     CEditView*  m_pEditView;
00153
00154 public:
00155     /* 画面情報 */
00156     //ピクセル
00157 private:
00158     int     m_nViewAlignLeft;       /* 表示域の左端座標 */
00159     int     m_nViewAlignTop;        /* 表示域の上端座標 */
00160 private:
00161     int     m_nTopYohaku;
00162 private:
00163     int     m_nViewCx;              /* 表示域の幅 */
00164     int     m_nViewCy;              /* 表示域の高さ */
00165
00166     //テキスト
00167 private:
00168     CLayoutInt  m_nViewTopLine;         /* 表示域の一番上の行(0開始) */
00169 public:
00170     CLayoutInt  m_nViewRowNum;          /* 表示域の行数 */
00171
00172 private:
00173     CLayoutInt  m_nViewLeftCol;         /* 表示域の一番左の桁(0開始) */
00174 public:
00175     CLayoutInt  m_nViewColNum;          /* 表示域の桁数 */
00176
00177     //その他
00178     int     m_nViewAlignLeftCols;   /* 行番号域の桁数 */
00179 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextDrawer.cpp

sakura_core

CTextDrawer.cpp

#include "stdafx.h"
#include "CTextDrawer.h"
#include <vector>
#include "CTextMetrics.h"
#include "CTextArea.h"
#include "CViewFont.h"
#include "CEol.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CTypeSupport.h"
#include "charcode.h"
#include "CLayout.h"

CTextDrawer.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextDrawer.cpp ソースファイル

sakura_core

CTextDrawer.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CTextDrawer.h"
00003 #include <vector>
00004 #include "CTextMetrics.h"
00005 #include "CTextArea.h"
00006 #include "CViewFont.h"
00007 #include "CEol.h"
00008 #include "CEditView.h"
00009 #include "CEditDoc.h"
00010 #include "CTypeSupport.h"
00011 #include "charcode.h"
00012 #include "CLayout.h"
00013
00014 const CTextArea* CTextDrawer::GetTextArea() const
00015 {
00016     return &m_pEditView->GetTextArea();
00017 }
00018
00019 using namespace std;
00020
00021 int CTextDrawer::_GetColorIdx(int nColorIdx,bool bSearchStringMode) const
00022 {
00023     if(bSearchStringMode)return COLORIDX_SEARCH;                        //検索ヒット色
00024     if(CTypeSupport(m_pEditView,nColorIdx).IsDisp())return nColorIdx; //特殊色
00025     return 0;                                                           //通常色
00026 }
00027
00028
00029 /*
00030 テキスト表示
00031 @@@ 2002.09.22 YAZAKI    const unsigned char* pDataを、const char* pDataに変更
00032 @@@ 2007.08.25 kobake 戻り値を void に変更。引数 x, y を DispPos に変更
00033 */
00034 void CTextDrawer::DispText( HDC hdc, DispPos* pDispPos, const wchar_t* pData, int nLength ) const
00035 {
00036     if( 0 >= nLength ){
00037         return;
00038     }
00039     int x=pDispPos->GetDrawPos().x;
00040     int y=pDispPos->GetDrawPos().y;
00041
00042     //必要なインターフェースを取得
00043     const CTextMetrics* pMetrics=&m_pEditView->GetTextMetrics();
00044     const CTextArea* pArea=GetTextArea();
00045
00046     //
00047     int nDy = m_pEditView->GetTextMetrics().GetHankakuDy();
00048     int nDx = m_pEditView->GetTextMetrics().GetHankakuDx();
00049
00050     //文字間隔配列を生成
00051     vector<int> vDxArray;
00052     const int* pDxArray=pMetrics->GenerateDxArray(&vDxArray,pData,nLength,this->m_pEditView->GetTextMetrics().GetHankakuDx());
00053
00054     //文字列のピクセル幅
00055     int nTextWidth=pMetrics->CalcTextWidth(pData,nLength,pDxArray);
00056
00057     //テキストの描画範囲の矩形を求める -> rcClip
00058     CMyRect rcClip;
00059     rcClip.left   = x;
00060     rcClip.right  = x + nTextWidth;
00061     rcClip.top    = y;
00062     rcClip.bottom = y + nDy;
00063     if( rcClip.left < pArea->GetAreaLeft() ){
00064         rcClip.left = pArea->GetAreaLeft();
00065     }
00066
00067     if( rcClip.left < rcClip.right
00068      && rcClip.left < pArea->GetAreaRight() && rcClip.right > pArea->GetAreaLeft()
00069      && rcClip.top >= pArea->GetAreaTop()
00070     ){
00071
00072         //@@@   From Here 2002.01.30 YAZAKI ExtTextOutW_AnyBuildの制限回避
00073         if( rcClip.Width() > pArea->GetAreaWidth() ){
00074             rcClip.right = rcClip.left + pArea->GetAreaWidth();
00075         }
00076
00077         // ウィンドウの左にあふれた文字数 -> nBefore
00078         // 2007.09.08 kobake注 「ウィンドウの左」ではなく「クリップの左」を元に計算したほうが描画領域を節約できるが、
00079         //                        バグが出るのが怖いのでとりあえずこのまま。
00080         int nBeforeLogic = 0;
00081         CLayoutInt nBeforeLayout = CLayoutInt(0);
00082         if ( x < 0 ){
00083             int nLeftLayout = ( 0 - x ) / nDx - 1;
00084             while (nBeforeLayout < nLeftLayout){
00085                 nBeforeLayout += CNativeW::GetKetaOfChar( pData, nLength, nBeforeLogic );
00086                 nBeforeLogic  += CNativeW::GetSizeOfChar( pData, nLength, nBeforeLogic );
00087             }
00088         }
00089
00090         /*
00091         // ウィンドウの右にあふれた文字数 -> nAfter
00092         int nAfterLayout = 0;
00093         if ( rcClip.right < x + nTextWidth ){
00094             //  -1してごまかす（うしろはいいよね？）
00095             nAfterLayout = (x + nTextWidth - rcClip.right) / nDx - 1;
00096         }
00097         */
00098
00099         // 描画開始位置
00100         int nDrawX = x + (Int)nBeforeLayout * nDx;
00101
00102         // 実際の描画文字列ポインタ
00103         const wchar_t* pDrawData          = &pData[nBeforeLogic];
00104         int            nDrawDataMaxLength = nLength - nBeforeLogic;
00105
00106         // 実際の文字間隔配列
00107         const int* pDrawDxArray = &pDxArray[nBeforeLogic];
00108
00109         // 描画する文字列長を求める -> nDrawLength
00110         int nRequiredWidth = rcClip.right - nDrawX; //埋めるべきピクセル幅
00111         if(nRequiredWidth <= 0)goto end;
00112         int nWorkWidth = 0;
00113         int nDrawLength = 0;
00114         while(nWorkWidth < nRequiredWidth)
00115         {
00116             if(nDrawLength >= nDrawDataMaxLength)break;
00117             nWorkWidth += pDrawDxArray[nDrawLength++];
00118         }
00119
00120         //描画
00121 		::ExtTextOutW_AnyBuild(
00122             hdc,
00123             nDrawX,                 //X
00124             y,                      //Y
00125             ExtTextOutOption(),
00126             &rcClip,
00127             pDrawData,              //文字列
00128             nDrawLength,            //文字列長
00129             pDrawDxArray            //文字間隔の入った配列
00130         );
00131     }
00132
00133 end:
00134     //描画位置を進める
00135     pDispPos->ForwardDrawCol(nTextWidth / nDx);
00136 }
00137
00138 void CTextDrawer::DispText( HDC hdc, int x, int y, const wchar_t* pData, int nLength ) const
00139 {
00140     DispPos sPos(m_pEditView->GetTextMetrics().GetHankakuDx(),m_pEditView->GetTextMetrics().GetHankakuDy());
00141     sPos.InitDrawPos(CMyPoint(x,y));
00142     DispText(hdc,&sPos,pData,nLength);
00143 }
00144
00145
00153 void CTextDrawer::DispEOF(
00154     HDC              hdc,
00155     DispPos*         pDispPos
00156 ) const
00157 {
00158     // 描画に使う色情報
00159     CTypeSupport cEofType(m_pEditView,COLORIDX_EOF);
00160
00161     //必要なインターフェースを取得
00162     const CTextMetrics* pMetrics=&m_pEditView->GetTextMetrics();
00163     const CTextArea* pArea=GetTextArea();
00164
00165     //定数
00166     const wchar_t   szEof[] = L"[EOF]";
00167     const int       nEofLen = _countof(szEof) - 1;
00168
00169     //クリッピング領域を計算
00170     RECT rcClip;
00171     if(pArea->GenerateClipRect(&rcClip,*pDispPos,nEofLen))
00172     {
00173         //色設定
00174         cEofType.SetColors(hdc);
00175         cEofType.SetFont(hdc);
00176
00177         //描画
00178 		::ExtTextOutW_AnyBuild(
00179             hdc,
00180             pDispPos->GetDrawPos().x,
00181             pDispPos->GetDrawPos().y,
00182             ExtTextOutOption(),
00183             &rcClip,
00184             szEof,
00185             nEofLen,
00186             pMetrics->GetDxArray_AllHankaku()
00187         );
00188     }
00189
00190     //描画位置を進める
00191     pDispPos->ForwardDrawCol(nEofLen);
00192 }
00193
00194
00195
00196 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00197 //                         改行描画                            //
00198 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00199
00200 //  May 23, 2000 genta
00211 void CTextDrawer::_DrawEOL(
00212     HDC      hdc,
00213     int      nPosX,
00214     int      nPosY,
00215     int      nWidth,
00216     int      nHeight,
00217     CEOL     cEol,
00218     bool     bBold,
00219     COLORREF pColor
00220 ) const
00221 {
00222     int sx, sy; //  矢印の先頭
00223     HANDLE  hPen;
00224     HPEN    hPenOld;
00225     hPen = ::CreatePen( PS_SOLID, 1, pColor );
00226     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00227
00228     switch( cEol.GetType() ){
00229     case EOL_CRLF:  //  下左矢印
00230         sx = nPosX;
00231         sy = nPosY + ( nHeight / 2);
00232         ::MoveToEx( hdc, sx + nWidth, sy - nHeight / 4, NULL ); //  上へ
00233         ::LineTo(   hdc, sx + nWidth, sy );         //  下へ
00234         ::LineTo(   hdc, sx, sy );                  //  先頭へ
00235         ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
00236         ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
00237         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
00238         if ( bBold ) {
00239             ::MoveToEx( hdc, sx + nWidth + 1, sy - nHeight / 4, NULL ); //  上へ（右へずらす）
00240             ++sy;
00241             ::LineTo( hdc, sx + nWidth + 1, sy );   //  右へ（右にひとつずれている）
00242             ::LineTo(   hdc, sx, sy );                  //  先頭へ
00243             ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
00244             ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
00245             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
00246         }
00247 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
00248 //      ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
00249 //      ::MoveToEx( hdc, sx, sy, NULL );
00250 //      ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy - ( nHeight * 5 / 20 ) );
00251 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL);
00252 //      ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy - ( nHeight * 5 / 20 ) );
00253 //      if( bBold ){
00254 //          ++sx;
00255 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
00256 //          ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
00257 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
00258 //          ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), nPosY + ( nHeight * 15/ 20) - ( nHeight * 5 / 20 ) );
00259 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL);
00260 //          ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), nPosY + ( nHeight * 15/ 20) - ( nHeight * 5 / 20 ) );
00261 //      }
00262         break;
00263     case EOL_CR:    //  左向き矢印 // 2007.08.17 ryoji EOL_LF -> EOL_CR
00264         sx = nPosX;
00265         sy = nPosY + ( nHeight / 2 );
00266         ::MoveToEx( hdc, sx + nWidth, sy, NULL );   //  右へ
00267         ::LineTo(   hdc, sx, sy );                  //  先頭へ
00268         ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
00269         ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
00270         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
00271         if ( bBold ) {
00272             ++sy;
00273             ::MoveToEx( hdc, sx + nWidth, sy, NULL );   //  右へ
00274             ::LineTo(   hdc, sx, sy );                  //  先頭へ
00275             ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
00276             ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
00277             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
00278         }
00279 //      ::MoveToEx( hdc, nPosX, sy, NULL );
00280 //      ::LineTo(   hdc, nPosX + nWidth, sy );
00281 //      ::MoveToEx( hdc, sx, sy, NULL );
00282 //      ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );
00283 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
00284 //      ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4);
00285 //      if( bBold ){
00286 //          ++sy;
00287 //          ::MoveToEx( hdc, nPosX, sy, NULL );
00288 //          ::LineTo(   hdc, nPosX + nWidth, sy );
00289 //          ::MoveToEx( hdc, sx, sy, NULL );
00290 //          ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );
00291 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
00292 //          ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4);
00293 //      }
00294         break;
00295     case EOL_LF:    //  下向き矢印 // 2007.08.17 ryoji EOL_CR -> EOL_LF
00296         sx = nPosX + ( nWidth / 2 );
00297         sy = nPosY + ( nHeight * 3 / 4 );
00298         ::MoveToEx( hdc, sx, nPosY + nHeight / 4 + 1, NULL );   //  上へ
00299         ::LineTo(   hdc, sx, sy );                              //  上から下へ
00300         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
00301         ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
00302         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
00303         if( bBold ){
00304             ++sx;
00305             ::MoveToEx( hdc, sx, nPosY + nHeight / 4 + 1, NULL );
00306             ::LineTo(   hdc, sx, sy );                              //  上から下へ
00307             ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
00308             ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
00309             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
00310         }
00311 //#if 1
00312 //      sx = nPosX + nWidth;
00313 //      sy = nPosY + ( nHeight / 2 );
00314 //      ::MoveToEx( hdc, nPosX, sy, NULL );
00315 //      ::LineTo(   hdc, nPosX + nWidth, sy );
00316 //      ::MoveToEx( hdc, sx, sy, NULL );
00317 //      ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );
00318 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
00319 //      ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4);
00320 //      if( bBold ){
00321 //          ++sy;
00322 //          ::MoveToEx( hdc, nPosX, sy, NULL );
00323 //          ::LineTo(   hdc, nPosX + nWidth, sy );
00324 //          ::MoveToEx( hdc, sx, sy, NULL );
00325 //          ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );
00326 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
00327 //          ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4);
00328 //      }
00329 //#else
00330 //      sx = nPosX;
00331 //      ::MoveToEx( hdc, sx + nWidth - 3, nPosY + nHeight * 1 / 4, NULL );
00332 //      ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4);
00333 //      ::LineTo(   hdc, sx, nPosY + nHeight * 3 / 4 );
00334 //      ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4 - nHeight / 4);
00335 //      if( bBold ){
00336 //          ++sx;
00337 //          ::MoveToEx( hdc, sx + nWidth - 3, nPosY + nHeight * 1 / 4, NULL );
00338 //          ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4);
00339 //          ::LineTo(   hdc, sx, nPosY + nHeight * 3 / 4 );
00340 //          ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4 - nHeight / 4);
00341 //      }
00342 //#endif
00343         break;
00344     case EOL_LFCR:
00345         sx = nPosX + ( nWidth / 2 );
00346         sy = nPosY + ( nHeight * 3 / 4 );
00347         ::MoveToEx( hdc, sx + nWidth / 2, nPosY + nHeight / 4 + 1, NULL );  //  右上へ
00348         ::LineTo(   hdc, sx, nPosY + nHeight / 4 + 1 );         //  右から左へ
00349         ::LineTo(   hdc, sx, sy );                              //  上から下へ
00350         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
00351         ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
00352         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
00353         if( bBold ){
00354             ::MoveToEx( hdc, sx + nWidth / 2, nPosY + nHeight / 4 + 2, NULL );  //  右上へ
00355             ++sx;
00356             ::LineTo(   hdc, sx, nPosY + nHeight / 4 + 2 );         //  右から左へ
00357             ::LineTo(   hdc, sx, sy );                              //  上から下へ
00358             ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
00359             ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
00360             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
00361         }
00362 //      sx = nPosX + ( nWidth / 2 );
00363 //      sy = nPosY + ( nHeight * 1 / 4 );
00364 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
00365 //      ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
00366 //      ::MoveToEx( hdc, sx, sy, NULL );
00367 //      ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
00368 //      ::MoveToEx( hdc, sx, sy, NULL);
00369 //      ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
00370 //      if( bBold ){
00371 //          ++sx;
00372 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
00373 //          ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
00374 //          ::MoveToEx( hdc, sx, sy, NULL );
00375 //          ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
00376 //          ::MoveToEx( hdc, sx, sy, NULL);
00377 //          ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
00378 //      }
00379         break;
00380     }
00381     ::SelectObject( hdc, hPenOld );
00382     ::DeleteObject( hPen );
00383 }
00384
00385
00386 //2007.08.30 kobake 追加
00387 void CTextDrawer::DispEOL(HDC hdc, DispPos* pDispPos, CEOL cEol, bool bSearchStringMode) const
00388 {
00389     const CEditView* pView=m_pEditView;
00390
00391     RECT rcClip2;
00392     if(pView->GetTextArea().GenerateClipRect(&rcClip2,*pDispPos,2)){
00393
00394         // 色決定
00395         CTypeSupport cSupport(pView,_GetColorIdx(COLORIDX_CRLF,bSearchStringMode));
00396         cSupport.SetFont(hdc);
00397         cSupport.SetColors(hdc);
00398
00399         // 2003.08.17 ryoji 改行文字が欠けないように
00400 		::ExtTextOutW_AnyBuild(
00401             hdc,
00402             pDispPos->GetDrawPos().x,
00403             pDispPos->GetDrawPos().y,
00404             ExtTextOutOption(),
00405             &rcClip2,
00406             L"  ",
00407             2,
00408             pView->GetTextMetrics().GetDxArray_AllHankaku()
00409         );
00410
00411         // 改行記号の表示
00412         if( CTypeSupport(pView,COLORIDX_CRLF).IsDisp() ){
00413             int nPosX = pDispPos->GetDrawPos().x;
00414             int nPosY = pDispPos->GetDrawPos().y;
00415
00416             // From Here 2003.08.17 ryoji 改行文字が欠けないように
00417
00418             // リージョン作成、選択。
00419             HRGN hRgn;
00420             hRgn = ::CreateRectRgnIndirect(&rcClip2);
00421             ::SelectClipRgn(hdc, hRgn);
00422
00423             //@@@ 2001.12.21 YAZAKI
00424             _DrawEOL(
00425                 hdc,
00426                 nPosX + 1,
00427                 nPosY,
00428                 pView->GetTextMetrics().GetHankakuWidth(),
00429                 pView->GetTextMetrics().GetHankakuHeight(),
00430                 cEol,
00431                 cSupport.IsFatFont(),
00432                 cSupport.GetTextColor()
00433             );
00434
00435             // リージョン破棄
00436             ::SelectClipRgn(hdc, NULL);
00437             ::DeleteObject(hRgn);
00438
00439             // To Here 2003.08.17 ryoji 改行文字が欠けないように
00440         }
00441     }
00442
00443     //描画位置を進める
00444     pDispPos->ForwardDrawCol(1);
00445 }
00446
00447 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00448 //                         タブ描画                            //
00449 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00450
00451 void CTextDrawer::DispTab( HDC hdc, DispPos* pDispPos, int nColorIdx ) const
00452 {
00453     DispPos& sPos=*pDispPos;
00454     const CEditView* pView=m_pEditView;
00455
00456     //定数
00457     static const wchar_t* pszSPACES = L"        ";
00458
00459     //必要なインターフェース
00460     const CTextMetrics* pMetrics=&m_pEditView->GetTextMetrics();
00461     const CTextArea* pArea=GetTextArea();
00462     Types* TypeDataPtr = &pView->m_pcEditDoc->GetDocumentAttribute();
00463
00464     int nLineHeight = pMetrics->GetHankakuDy();
00465     int nCharWidth = pMetrics->GetHankakuDx();
00466
00467
00468     CTypeSupport cTabType(pView,COLORIDX_TAB);
00469
00470     //  Sep. 22, 2002 genta 共通式のくくりだし
00471     //  Sep. 23, 2002 genta LayoutMgrの値を使う
00472     int tabDispWidth = (Int)pView->m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace( sPos.GetDrawCol() );
00473
00474     // タブ記号を表示する
00475     RECT rcClip2;
00476     rcClip2.left = sPos.GetDrawPos().x;
00477     rcClip2.right = rcClip2.left + nCharWidth * tabDispWidth;
00478     if( rcClip2.left < pArea->GetAreaLeft() ){
00479         rcClip2.left = pArea->GetAreaLeft();
00480     }
00481     if( rcClip2.left < rcClip2.right &&
00482         rcClip2.left < pArea->GetAreaRight() && rcClip2.right > pArea->GetAreaLeft() ){
00483
00484         rcClip2.top = sPos.GetDrawPos().y;
00485         rcClip2.bottom = sPos.GetDrawPos().y + nLineHeight;
00486         // TABを表示するか？
00487         if( cTabType.IsDisp() && 0 == TypeDataPtr->m_bTabArrow ){   //タブ通常表示    //@@@ 2003.03.26 MIK
00488
00489             // サポートクラス
00490             CTypeSupport cSupport(pView,nColorIdx);
00491
00492             // フォントを選ぶ
00493             cSupport.SetFont(hdc);
00494             cSupport.SetColors(hdc);
00495
00496             //@@@ 2001.03.16 by MIK
00497 			::ExtTextOutW_AnyBuild(
00498                 hdc,
00499                 sPos.GetDrawPos().x,
00500                 sPos.GetDrawPos().y,
00501                 ExtTextOutOption(),
00502                 &rcClip2,
00503                 TypeDataPtr->m_szTabViewString,
00504                 tabDispWidth <= 8 ? tabDispWidth : 8, // Sep. 22, 2002 genta
00505                 pMetrics->GetDxArray_AllHankaku()
00506             );
00507         }else{
00508             CTypeSupport cSearchType(pView,COLORIDX_SEARCH);
00509             if( nColorIdx == COLORIDX_SEARCH ){
00510                 cSearchType.SetBkColor(hdc);
00511             }
00512 			::ExtTextOutW_AnyBuild(
00513                 hdc, sPos.GetDrawPos().x,
00514                 sPos.GetDrawPos().y,
00515                 ExtTextOutOption(),
00516                 &rcClip2,
00517                 pszSPACES,
00518                 tabDispWidth <= 8 ? tabDispWidth : 8, // Sep. 22, 2002 genta
00519                 pMetrics->GetDxArray_AllHankaku()
00520             );
00521             cSearchType.RewindColors(hdc);
00522
00523             //タブ矢印表示    //@@@ 2003.03.26 MIK
00524             if( cTabType.IsDisp()
00525              && 0 != TypeDataPtr->m_bTabArrow
00526              && rcClip2.left <= sPos.GetDrawPos().x ) // Apr. 1, 2003 MIK 行番号と重なる
00527             {
00528                 _DrawTabArrow(
00529                     hdc,
00530                     sPos.GetDrawPos().x,
00531                     sPos.GetDrawPos().y,
00532                     pMetrics->GetHankakuWidth(),
00533                     pMetrics->GetHankakuHeight(),
00534                     cTabType.IsFatFont(),
00535                     cTabType.GetTextColor()
00536                 );
00537             }
00538         }
00539     }
00540
00541     //Xを進める
00542     sPos.ForwardDrawCol(tabDispWidth);
00543 }
00544
00545 /*
00546     タブ矢印描画関数
00547 */
00548 void CTextDrawer::_DrawTabArrow(
00549     HDC hdc,
00550     int nPosX,   //ピクセルX
00551     int nPosY,   //ピクセルY
00552     int nWidth,  //ピクセルW
00553     int nHeight, //ピクセルH
00554     int bBold,
00555     COLORREF pColor
00556 ) const
00557 {
00558     HPEN hPen    = ::CreatePen( PS_SOLID, 1, pColor );
00559     HPEN hPenOld = (HPEN)::SelectObject( hdc, hPen );
00560
00561     nWidth--;
00562
00563     //  矢印の先頭
00564     int sx = nPosX + nWidth;
00565     int sy = nPosY + ( nHeight / 2 );
00566
00567     ::MoveToEx( hdc, sx - nWidth, sy, NULL );               //  左へ
00568     ::LineTo(   hdc, sx, sy );                              //  最後へ
00569     ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4 );  //  最後から下へ
00570     ::MoveToEx( hdc, sx, sy, NULL);                         //  最後へ戻り
00571     ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );  //  最後から上へ
00572     if ( bBold ) {
00573         ++sy;
00574         ::MoveToEx( hdc, sx - nWidth, sy, NULL );               //  左へ
00575         ::LineTo(   hdc, sx, sy );                              //  最後へ
00576         ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4 );  //  最後から下へ
00577         ::MoveToEx( hdc, sx, sy, NULL);                         //  最後へ戻り
00578         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );  //  最後から上へ
00579     }
00580
00581     ::SelectObject( hdc, hPenOld );
00582     ::DeleteObject( hPen );
00583 }
00584
00585 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00586 //                       スペース描画                          //
00587 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00588
00589 void CTextDrawer::DispZenkakuSpace( HDC hdc, DispPos* pDispPos, bool bSearchStringMode ) const
00590 {
00591     //クリッピング矩形を計算。画面外なら描画しない
00592     RECT rcClip2;
00593     if(GetTextArea()->GenerateClipRect(&rcClip2,*pDispPos,2))
00594     {
00595         // 色決定
00596         CTypeSupport cSupport(m_pEditView,_GetColorIdx(COLORIDX_ZENSPACE,bSearchStringMode));
00597         cSupport.SetFont(hdc);
00598         cSupport.SetColors(hdc);
00599
00600         //描画文字列
00601         const wchar_t* szZenSpace =
00602             CTypeSupport(m_pEditView,COLORIDX_ZENSPACE).IsDisp()?L"□":L"　";
00603
00604         //描画
00605 		::ExtTextOutW_AnyBuild(
00606             hdc,
00607             pDispPos->GetDrawPos().x,
00608             pDispPos->GetDrawPos().y,
00609             ExtTextOutOption(),
00610             &rcClip2,
00611             szZenSpace,
00612             wcslen(szZenSpace),
00613             m_pEditView->GetTextMetrics().GetDxArray_AllZenkaku()
00614         );
00615     }
00616
00617     //位置進める
00618     pDispPos->ForwardDrawCol(2);
00619 }
00620
00621 void CTextDrawer::DispHankakuSpace( HDC hdc, DispPos* pDispPos, bool bSearchStringMode) const
00622 {
00623     //クリッピング矩形を計算。画面外なら描画しない
00624     CMyRect rcClip;
00625     if(m_pEditView->GetTextArea().GenerateClipRect(&rcClip,*pDispPos,1))
00626     {
00627         // 色決定
00628         CTypeSupport cSupport(m_pEditView,_GetColorIdx(COLORIDX_SPACE,bSearchStringMode));
00629         cSupport.SetFont(hdc);
00630         cSupport.SetColors(hdc);
00631
00632         //小文字"o"の下半分を出力
00633         CMyRect rcClipBottom=rcClip;
00634         rcClipBottom.top=rcClip.top+rcClip.Height()/2;
00635 		::ExtTextOutW_AnyBuild(
00636             hdc,
00637             pDispPos->GetDrawPos().x,
00638             pDispPos->GetDrawPos().y,
00639             ExtTextOutOption(),
00640             &rcClipBottom,
00641             L"o",
00642             1,
00643             m_pEditView->GetTextMetrics().GetDxArray_AllHankaku()
00644         );
00645
00646         //上半分は普通の空白で出力（"o"の上半分を消す）
00647         CMyRect rcClipTop=rcClip;
00648         rcClipTop.bottom=rcClip.top+rcClip.Height()/2;
00649 		::ExtTextOutW_AnyBuild(
00650             hdc,
00651             pDispPos->GetDrawPos().x,
00652             pDispPos->GetDrawPos().y,
00653             ExtTextOutOption(),
00654             &rcClipTop,
00655             L" ",
00656             1,
00657             m_pEditView->GetTextMetrics().GetDxArray_AllHankaku()
00658         );
00659     }
00660
00661     //位置進める
00662     pDispPos->ForwardDrawCol(1);
00663 }
00664
00665 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00666 //                       折り返し描画                          //
00667 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00668
00669 void CTextDrawer::DispWrap(HDC hdc, DispPos* pDispPos) const
00670 {
00671     const CEditView* pView=m_pEditView;
00672
00673     RECT rcClip2;
00674     if(pView->GetTextArea().GenerateClipRect(&rcClip2,*pDispPos,1))
00675     {
00676         //サポートクラス
00677         CTypeSupport cWrapType(pView,COLORIDX_WRAP);
00678
00679         //描画文字列と色の決定
00680         const wchar_t* szText;
00681         if( cWrapType.IsDisp() )
00682         {
00683             szText = L"<";
00684             cWrapType.SetFont(hdc);
00685             cWrapType.SetColors(hdc);
00686         }
00687         else
00688         {
00689             szText = L" ";
00690         }
00691
00692         //描画
00693 		::ExtTextOutW_AnyBuild(
00694             hdc,
00695             pDispPos->GetDrawPos().x,
00696             pDispPos->GetDrawPos().y,
00697             ExtTextOutOption(),
00698             &rcClip2,
00699             szText,
00700             wcslen(szText),
00701             pView->GetTextMetrics().GetDxArray_AllHankaku()
00702         );
00703     }
00704 }
00705
00706 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00707 //                      空(から)行描画                         //
00708 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00709
00711 bool CTextDrawer::DispEmptyLine(HDC hdc, DispPos* pDispPos) const
00712 {
00713     bool bEof=false;
00714
00715     const CEditView* pView=m_pEditView;
00716     CTypeSupport cEofType(pView,COLORIDX_EOF);
00717     CTypeSupport cTextType(pView,COLORIDX_TEXT);
00718
00719     const CLayoutInt nWrapKetas = pView->m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00720
00721     int nYPrev = pDispPos->GetDrawPos().y;
00722
00723     if( m_pEditView->IsBkBitmap() ){
00724     }else{
00725         // 背景描画
00726         RECT rcClip;
00727         pView->GetTextArea().GenerateClipRectLine(&rcClip,*pDispPos);
00728         cTextType.FillBack(hdc,rcClip);
00729     }
00730
00731     // EOF記号の表示
00732     CLayoutInt nCount = pView->m_pcEditDoc->m_cLayoutMgr.GetLineCount();
00733
00734     // ドキュメントが空(nCount==0)。そして1行目(pDispPos->GetLayoutLineRef() == 0)。表示域も1行目(m_nViewTopLine==0)
00735     if( nCount == 0 && pView->GetTextArea().GetViewTopLine() == 0 && pDispPos->GetLayoutLineRef() == 0 ){
00736         // EOF記号の表示
00737         if( cEofType.IsDisp() ){
00738             DispEOF(hdc,pDispPos);
00739         }
00740
00741         //描画Y位置進める
00742         pDispPos->ForwardDrawLine(1);
00743         bEof = true;
00744     }
00745     else{
00746         //最終行の次の行
00747         if( nCount > 0 && pDispPos->GetLayoutLineRef() == nCount ){
00748             //最終行の取得
00749             const wchar_t*  pLine;
00750             CLogicInt       nLineLen;
00751             const CLayout*  pcLayout;
00752             pLine = pView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCount - CLayoutInt(1), &nLineLen, &pcLayout );
00753
00754             //最終行の桁数
00755             CLayoutInt nLineCols = pView->LineIndexToColmn( pcLayout, nLineLen );
00756
00757             if( WCODE::isLineDelimiter(pLine[nLineLen-1]) || nLineCols >= nWrapKetas ){
00758                 // EOF記号の表示
00759                 if( cEofType.IsDisp() ){
00760                     DispEOF(hdc,pDispPos);
00761                 }
00762
00763                 //描画Y位置進める
00764                 pDispPos->ForwardDrawLine(1);
00765                 bEof = true;
00766             }
00767         }
00768     }
00769
00770     // 2006.04.29 Moca 選択処理のため縦線処理を追加
00771     DispVerticalLines( hdc, nYPrev, nYPrev + pView->GetTextMetrics().GetHankakuDy(),  CLayoutInt(0), CLayoutInt(-1) );
00772
00773     return bEof;
00774 }
00775
00776
00777
00778 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00779 //                        指定桁縦線                           //
00780 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00781
00788 void CTextDrawer::DispVerticalLines(
00789     HDC         hdc,
00790     int         nTop,
00791     int         nBottom,
00792     CLayoutInt  nLeftCol,
00793     CLayoutInt  nRightCol
00794 ) const
00795 {
00796     const CEditView* pView=m_pEditView;
00797
00798     const Types&    typeData = pView->m_pcEditDoc->GetDocumentAttribute();
00799
00800     CTypeSupport cVertType(pView,COLORIDX_VERTLINE);
00801     CTypeSupport cTextType(pView,COLORIDX_TEXT);
00802
00803     if(!cVertType.IsDisp())return;
00804
00805     nLeftCol = t_max( pView->GetTextArea().GetViewLeftCol(), nLeftCol );
00806
00807     const CLayoutInt nWrapKetas  = pView->m_pcEditDoc->m_cLayoutMgr.GetMaxLineKetas();
00808     const int nCharDx  = pView->GetTextMetrics().GetHankakuDx();
00809     if( nRightCol < 0 ){
00810         nRightCol = nWrapKetas;
00811     }
00812     const int nPosXOffset = pView->m_pShareData->m_Common.m_sWindow.m_nVertLineOffset + pView->GetTextArea().GetAreaLeft();
00813     const int nPosXLeft   = max( pView->GetTextArea().GetAreaLeft() + (Int)(nLeftCol  - pView->GetTextArea().GetViewLeftCol()) * nCharDx, pView->GetTextArea().GetAreaLeft() );
00814     const int nPosXRight  = min( pView->GetTextArea().GetAreaLeft() + (Int)(nRightCol - pView->GetTextArea().GetViewLeftCol()) * nCharDx, pView->GetTextArea().GetAreaRight() );
00815     const int nLineHeight = pView->GetTextMetrics().GetHankakuDy();
00816     bool bOddLine = ((((nLineHeight % 2) ? (Int)pView->GetTextArea().GetViewTopLine() : 0) + pView->GetTextArea().GetAreaTop() + nTop) % 2 == 1);
00817
00818     // 太線
00819     const bool bBold = cVertType.IsFatFont();
00820     // ドット線(下線属性を転用/テスト用)
00821     const bool bDot = cVertType.HasUnderLine();
00822     const bool bExorPen = ( cVertType.GetTextColor() == cTextType.GetBackColor() );
00823     HPEN hPen;
00824     int nROP_Old = 0;
00825     if( bExorPen ){
00826         hPen = ::CreatePen( PS_SOLID, 0, cVertType.GetBackColor() );
00827         nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
00828     }else{
00829         hPen = ::CreatePen( PS_SOLID, 0, cVertType.GetTextColor() );
00830     }
00831     HPEN hPenOld = (HPEN)::SelectObject( hdc, hPen );
00832
00833     int k;
00834     for( k = 0; k < MAX_VERTLINES && typeData.m_nVertLineIdx[k] != 0; k++ ){
00835         // nXColは1開始。GetTextArea().GetViewLeftCol()は0開始なので注意。
00836         CLayoutInt nXCol = typeData.m_nVertLineIdx[k];
00837         CLayoutInt nXColEnd = nXCol;
00838         CLayoutInt nXColAdd = CLayoutInt(1);
00839         // nXColがマイナスだと繰り返し。k+1を終了値、k+2をステップ幅として利用する
00840         if( nXCol < 0 ){
00841             if( k < MAX_VERTLINES - 2 ){
00842                 nXCol = -nXCol;
00843                 nXColEnd = typeData.m_nVertLineIdx[++k];
00844                 nXColAdd = typeData.m_nVertLineIdx[++k];
00845                 if( nXColEnd < nXCol || nXColAdd <= 0 ){
00846                     continue;
00847                 }
00848                 // 作画範囲の始めまでスキップ
00849                 if( nXCol < pView->GetTextArea().GetViewLeftCol() ){
00850                     nXCol = pView->GetTextArea().GetViewLeftCol() + nXColAdd - (pView->GetTextArea().GetViewLeftCol() - nXCol) % nXColAdd;
00851                 }
00852             }else{
00853                 k += 2;
00854                 continue;
00855             }
00856         }
00857         for(; nXCol <= nXColEnd; nXCol += nXColAdd ){
00858             if( nWrapKetas < nXCol ){
00859                 break;
00860             }
00861             int nPosX = nPosXOffset + (Int)( nXCol - 1 - pView->GetTextArea().GetViewLeftCol() ) * nCharDx;
00862             // 2006.04.30 Moca 線の引く範囲・方法を変更
00863             // 太線の場合、半分だけ作画する可能性がある。
00864             int nPosXBold = nPosX;
00865             if( bBold ){
00866                 nPosXBold -= 1;
00867             }
00868             if( nPosXRight <= nPosXBold ){
00869                 break;
00870             }
00871             if( nPosXLeft <= nPosX ){
00872                 if( bDot ){
00873                     // 点線で作画。1ドットの線を作成
00874                     int y = nTop;
00875                     // スクロールしても線が切れないように座標を調整
00876                     if( bOddLine ){
00877                         y++;
00878                     }
00879                     for( ; y < nBottom; y += 2 ){
00880                         if( nPosX < nPosXRight ){
00881                             ::MoveToEx( hdc, nPosX, y, NULL );
00882                             ::LineTo( hdc, nPosX, y + 1 );
00883                         }
00884                         if( bBold && nPosXLeft <= nPosXBold ){
00885                             ::MoveToEx( hdc, nPosXBold, y, NULL );
00886                             ::LineTo( hdc, nPosXBold, y + 1 );
00887                         }
00888                     }
00889                 }else{
00890                     if( nPosX < nPosXRight ){
00891                         ::MoveToEx( hdc, nPosX, nTop, NULL );
00892                         ::LineTo( hdc, nPosX, nBottom );
00893                     }
00894                     if( bBold && nPosXLeft <= nPosXBold ){
00895                         ::MoveToEx( hdc, nPosXBold, nTop, NULL );
00896                         ::LineTo( hdc, nPosXBold, nBottom );
00897                     }
00898                 }
00899             }
00900         }
00901     }
00902     if( bExorPen ){
00903         ::SetROP2( hdc, nROP_Old );
00904     }
00905     ::SelectObject( hdc, hPenOld );
00906     ::DeleteObject( hPen );
00907 }
00908
00909
00910
00911 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00912 //                          行番号                             //
00913 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00914
00915 void CTextDrawer::DispLineNumber(
00916     HDC                     hdc,
00917     const CLayout*          pcLayout,
00918     int                     nLineNum,
00919     int                     y
00920 ) const
00921 {
00922     const CEditView* pView=m_pEditView;
00923     const Types* pTypes=&pView->m_pcEditDoc->GetDocumentAttribute();
00924
00925     int             nLineHeight = pView->GetTextMetrics().GetHankakuDy();
00926     int             nCharWidth = pView->GetTextMetrics().GetHankakuDx();
00927     const CDocLine* pCDocLine;
00928     //  Sep. 23, 2002 genta 共通式のくくりだし
00929     int             nLineNumAreaWidth = pView->GetTextArea().m_nViewAlignLeftCols * nCharWidth;
00930
00931     CTypeSupport cTextType(pView,COLORIDX_TEXT);
00932
00933
00934     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00935     //                     nColorIndexを決定                       //
00936     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00937     int nColorIndex = COLORIDX_GYOU;    /* 行番号 */
00938     if( NULL != pcLayout ){
00939         pCDocLine = pcLayout->m_pCDocLine;
00940
00941         if( pView->m_pcEditDoc->IsModified()    /* ドキュメントが無変更の状態か */
00942          && pCDocLine->IsModifyed() ){      /* 変更フラグ */
00943             if( CTypeSupport(pView,COLORIDX_GYOU_MOD).IsDisp() )    // 2006.12.12 ryoji
00944                 nColorIndex = COLORIDX_GYOU_MOD;    /* 行番号（変更行） */
00945         }
00946     }
00947
00948     int type = pCDocLine->IsDiffMarked();
00949     {
00950         //DIFF差分マーク表示 //@@@ 2002.05.25 MIK
00951         if( type )
00952         {
00953             switch( type )
00954             {
00955             case MARK_DIFF_APPEND:  //追加
00956                 if( CTypeSupport(pView,COLORIDX_DIFF_APPEND).IsDisp() )
00957                     nColorIndex = COLORIDX_DIFF_APPEND;
00958                 break;
00959             case MARK_DIFF_CHANGE:  //変更
00960                 if( CTypeSupport(pView,COLORIDX_DIFF_CHANGE).IsDisp() )
00961                     nColorIndex = COLORIDX_DIFF_CHANGE;
00962                 break;
00963             case MARK_DIFF_DELETE:  //削除
00964             case MARK_DIFF_DEL_EX:  //削除
00965                 if( CTypeSupport(pView,COLORIDX_DIFF_DELETE).IsDisp() )
00966                     nColorIndex = COLORIDX_DIFF_DELETE;
00967                 break;
00968             }
00969         }
00970     }
00971
00972     // 02/10/16 ai
00973     // ブックマークの表示
00974     if(pCDocLine->IsBookMarked()){
00975         if( CTypeSupport(pView,COLORIDX_MARK).IsDisp() ) {
00976             nColorIndex = COLORIDX_MARK;
00977         }
00978     }
00979
00980     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00981     //             決定されたnColorIndexを使って描画               //
00982     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00983
00984     CTypeSupport cColorType(pView,nColorIndex);
00985     CTypeSupport cMarkType(pView,COLORIDX_MARK);
00986
00987     if( CTypeSupport(pView,COLORIDX_GYOU).IsDisp() ){ /* 行番号表示／非表示 */
00988         wchar_t szLineNum[18];
00989
00990         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00991         if( pTypes->m_bLineNumIsCRLF ){
00992             /* 論理行番号表示モード */
00993             if( NULL == pcLayout || 0 != pcLayout->GetLogicOffset() ){
00994                 wcscpy( szLineNum, L" " );
00995             }else{
00996                 _itow( pcLayout->GetLogicLineNo() + 1, szLineNum, 10 ); /* 対応する論理行番号 */
00997             }
00998         }else{
00999             /* 物理行（レイアウト行）番号表示モード */
01000             _itow( nLineNum + 1, szLineNum, 10 );
01001         }
01002
01003         int nLineCols = wcslen( szLineNum );
01004
01005         //色、フォント
01006         cTextType.SetBkColor(hdc);    //背景色：テキストの背景色 // Sep. 23, 2002 余白をテキストの背景色にする
01007         cColorType.SetTextColor(hdc); //テキスト：行番号の色
01008         cColorType.SetFont(hdc);      //フォント：行番号のフォント
01009
01010         // 余白を埋める
01011         RECT    rcClip;
01012         rcClip.left   = nLineNumAreaWidth;
01013         rcClip.right  = pView->GetTextArea().GetAreaLeft();
01014         rcClip.top    = y;
01015         rcClip.bottom = y + nLineHeight;
01016 		::ExtTextOutW_AnyBuild(
01017             hdc,
01018             rcClip.left,
01019             y,
01020             ExtTextOutOption(),
01021             &rcClip,
01022             L" ",
01023             1,
01024             pView->GetTextMetrics().GetDxArray_AllHankaku()
01025         );
01026
01027         //  Sep. 23, 2002 余白をテキストの背景色にするため，背景色の設定を移動
01028         SetBkColor( hdc, cColorType.GetBackColor() );       /* 行番号背景の色 */
01029
01030         int drawNumTop = (pView->GetTextArea().m_nViewAlignLeftCols - nLineCols - 1) * ( nCharWidth );
01031
01032         /* 行番号区切り 0=なし 1=縦線 2=任意 */
01033         if( 2 == pTypes->m_nLineTermType ){
01034             //  Sep. 22, 2002 genta
01035             szLineNum[ nLineCols ] = pTypes->m_cLineTermChar;
01036             szLineNum[ ++nLineCols ] = '\0';
01037         }
01038         rcClip.left = 0;
01039
01040         //  Sep. 23, 2002 genta
01041         rcClip.right = nLineNumAreaWidth;
01042         rcClip.top = y;
01043         rcClip.bottom = y + nLineHeight;
01044 		::ExtTextOutW_AnyBuild( hdc,
01045             drawNumTop,
01046             y,
01047             ExtTextOutOption(),
01048             &rcClip,
01049             szLineNum,
01050             nLineCols,
01051             pView->GetTextMetrics().GetDxArray_AllHankaku()
01052         );
01053
01054         /* 行番号区切り 0=なし 1=縦線 2=任意 */
01055         if( 1 == pTypes->m_nLineTermType ){
01056             cColorType.SetSolidPen(hdc,0);
01057             ::MoveToEx( hdc, nLineNumAreaWidth - 2, y, NULL );
01058             ::LineTo( hdc, nLineNumAreaWidth - 2, y + nLineHeight );
01059             cColorType.RewindPen(hdc);
01060         }
01061         cColorType.RewindColors(hdc);
01062         cTextType.RewindColors(hdc);
01063         cColorType.RewindFont(hdc);
01064     }
01065     else{
01066         RECT    rcClip;
01067         // 行番号エリアの背景描画
01068         rcClip.left   = 0;
01069         rcClip.right  = pView->GetTextArea().GetAreaLeft() - pView->m_pShareData->m_Common.m_sWindow.m_nLineNumRightSpace; //   Sep. 23 ,2002 genta 余白はテキスト色のまま残す
01070         rcClip.top    = y;
01071         rcClip.bottom = y + nLineHeight;
01072         cColorType.FillBack(hdc,rcClip);
01073
01074         // Mar. 5, 2003, Moca
01075         // 行番号とテキストの隙間の描画
01076         rcClip.left   = rcClip.right;
01077         rcClip.right  = pView->GetTextArea().GetAreaLeft();
01078         rcClip.top    = y;
01079         rcClip.bottom = y + nLineHeight;
01080         cTextType.FillBack(hdc,rcClip);
01081     }
01082
01083     // 2001.12.03 hor
01084     /* とりあえずブックマークに縦線 */
01085     if(pCDocLine->IsBookMarked() && !cMarkType.IsDisp() )
01086     {
01087         cColorType.SetSolidPen(hdc,2);
01088         ::MoveToEx( hdc, 1, y, NULL );
01089         ::LineTo( hdc, 1, y + nLineHeight );
01090         cColorType.RewindPen(hdc);
01091     }
01092
01093     if( type )  //DIFF差分マーク表示 //@@@ 2002.05.25 MIK
01094     {
01095         int cy = y + nLineHeight / 2;
01096
01097         cColorType.SetSolidPen(hdc,1);
01098
01099         switch( type )
01100         {
01101         case MARK_DIFF_APPEND:  //追加
01102             ::MoveToEx( hdc, 3, cy, NULL );
01103             ::LineTo  ( hdc, 6, cy );
01104             ::MoveToEx( hdc, 4, cy - 2, NULL );
01105             ::LineTo  ( hdc, 4, cy + 3 );
01106             break;
01107
01108         case MARK_DIFF_CHANGE:  //変更
01109             ::MoveToEx( hdc, 3, cy - 4, NULL );
01110             ::LineTo  ( hdc, 3, cy );
01111             ::MoveToEx( hdc, 3, cy + 2, NULL );
01112             ::LineTo  ( hdc, 3, cy + 3 );
01113             break;
01114
01115         case MARK_DIFF_DELETE:  //削除
01116             cy -= 3;
01117             ::MoveToEx( hdc, 3, cy, NULL );
01118             ::LineTo  ( hdc, 5, cy );
01119             ::LineTo  ( hdc, 3, cy + 2 );
01120             ::LineTo  ( hdc, 3, cy );
01121             ::LineTo  ( hdc, 7, cy + 4 );
01122             break;
01123
01124         case MARK_DIFF_DEL_EX:  //削除(EOF)
01125             cy += 3;
01126             ::MoveToEx( hdc, 3, cy, NULL );
01127             ::LineTo  ( hdc, 5, cy );
01128             ::LineTo  ( hdc, 3, cy - 2 );
01129             ::LineTo  ( hdc, 3, cy );
01130             ::LineTo  ( hdc, 7, cy - 4 );
01131             break;
01132         }
01133
01134         cColorType.RewindPen(hdc);
01135     }
01136
01137     return;
01138 }
01139
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextDrawer.h

sakura_core

CTextDrawer.h

#include "CShareData.h"
#include "DispPos.h"

CTextDrawer.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTextDrawer

Sakura-Editorに対してSat Nov 17 20:26:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextDrawer.h ソースファイル

sakura_core

CTextDrawer.h

説明を見る。
00001 #pragma once
00002
00003 #include "CShareData.h" //ColorInfo
00004 class CTextMetrics;
00005 class CTextArea;
00006 class CViewFont;
00007 class CEOL;
00008 class CEditView;
00009 class CLayout;
00010 #include "DispPos.h"
00011
00012 class CTextDrawer{
00013 public:
00014     CTextDrawer(const CEditView* pEditView) : m_pEditView(pEditView) { }
00015     virtual ~CTextDrawer(){}
00016
00017     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00018     //                         外部依存                            //
00019     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00020     //領域のインスタンスを求める
00021     const CTextArea* GetTextArea() const;
00022
00023     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00024     //                     インターフェース                        //
00025     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00026
00027     //2007.08.25 kobake 戻り値を void に変更。引数 x, y を DispPos に変更
00028     //実際には pX と nX が更新される。
00029     void DispText( HDC hdc, DispPos* pDispPos, const wchar_t* pData, int nLength ) const; // テキスト表示 (新しい版)
00030     void DispText( HDC hdc, int x, int y, const wchar_t* pData, int nLength ) const;      // テキスト表示 (古い版)
00031
00032     //2007.08.25 kobake 戻り値を void に変更。引数 x, y を DispPos に変更
00033     //2007.08.25 kobake 引数から nCharWidth, nLineHeight を削除
00034     //実際には pX と nX が更新される。
00035     //  EOF描画関数 //  2004.05.29 genta
00036     //2007.08.28 kobake 引数 fuOptions を削除
00037     void DispEOF( HDC hdc, DispPos* pDispPos) const;
00038
00039     //May 23, 2000 genta
00040     //画面描画補助関数
00041     //@@@ 2001.12.21 YAZAKI 改行記号の書きかたが変だったので修正
00042     void _DrawEOL(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight,
00043         CEOL cEol, bool bBold, COLORREF pColor ) const;
00044     //2007.08.30 kobake 追加
00045     void DispEOL(HDC hdc, DispPos* pDispPos, CEOL cEol, bool bSearchStringMode) const;
00046
00047     // -- -- タブ描画 -- -- //
00048     //2007.08.28 kobake 追加
00049     void DispTab( HDC hdc, DispPos* pDispPos, int nColorIdx ) const;
00050     //タブ矢印描画関数  //@@@ 2003.03.26 MIK
00051     void _DrawTabArrow( HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor ) const;
00052
00053     // -- -- スペース描画 -- -- //
00054     void DispZenkakuSpace( HDC hdc, DispPos* pDispPos, bool bSearchStringMode) const;
00055     void DispHankakuSpace( HDC hdc, DispPos* pDispPos, bool bSearchStringMode) const;
00056
00057     // -- -- 折り返し描画 -- -- //
00058     void DispWrap(HDC hdc, DispPos* pDispPos) const;
00059
00060     // -- -- 空(から)行描画 -- -- //
00061     bool DispEmptyLine(HDC hdc, DispPos* pDispPos) const;
00062
00063     // -- -- 指定桁縦線描画 -- -- //
00065     void DispVerticalLines( HDC hdc, int nTop, int nBottom, CLayoutInt nLeftCol, CLayoutInt nRightCol ) const;
00066
00067     // -- -- 行番号 -- -- //
00068     void DispLineNumber( HDC hdc, const CLayout* pcLayout, int nLineNum, int y ) const;     // 行番号表示
00069
00070 protected:
00071     // -- -- 実装補助 -- -- //
00072     int _GetColorIdx(int nColorIdx,bool bSearchStringMode) const;
00073
00074
00075 private:
00076     const CEditView* m_pEditView;
00077 };
00078
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextMetrics.cpp

sakura_core

CTextMetrics.cpp

#include "stdafx.h"
#include "CTextMetrics.h"
#include "charcode.h"
#include <vector>

CTextMetrics.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:53 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextMetrics.cpp ソースファイル

sakura_core

CTextMetrics.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CTextMetrics.h"
00003 #include "charcode.h"
00004 #include <vector>
00005 using namespace std;
00006
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008 //               コンストラクタ・デストラクタ                  //
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010
00011 CTextMetrics::CTextMetrics()
00012 {
00013     //$ 適当な仮値で初期化。実際には使う側でSet〜を呼ぶので、これらの仮値が参照されることは無い。
00014     SetHankakuWidth(10);
00015     SetHankakuHeight(18);
00016     SetHankakuDx(12);
00017     SetHankakuDy(24);
00018 }
00019
00020 CTextMetrics::~CTextMetrics()
00021 {
00022 }
00023
00024 void CTextMetrics::CopyTextMetricsStatus(CTextMetrics* pDst) const
00025 {
00026     pDst->SetHankakuWidth           (GetHankakuWidth());        /* 半角文字の幅 */
00027     pDst->SetHankakuHeight          (GetHankakuHeight());       /* 文字の高さ */
00028 }
00029
00030 /*
00031     文字の大きさを調べる
00032
00033     ※ビルド種により、微妙にサイズが変わるようでした。
00034     　サイズを合わせるため、適当な文字で調整。
00035 */
00036 void CTextMetrics::Update(HFONT hFont)
00037 {
00038     HDC hdc = GetDC(NULL);
00039     {
00040         HFONT hFontOld = (HFONT)::SelectObject( hdc, hFont );
00041         SIZE  sz;
00042 #ifdef _UNICODE
00043         ::GetTextExtentPoint32( hdc, L"xx", 2, &sz );
00044 #else
00045         ::GetTextExtentPoint32( hdc, "大", 2, &sz );
00046 #endif
00047         this->SetHankakuHeight(sz.cy);
00048         this->SetHankakuWidth(sz.cx / 2);
00049         ::SelectObject( hdc, hFontOld );
00050     }
00051     ReleaseDC(NULL,hdc);
00052 }
00053
00054
00055 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00056 //                           設定                              //
00057 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00058
00059 void CTextMetrics::SetHankakuWidth(int nHankakuWidth)
00060 {
00061     m_nCharWidth=nHankakuWidth;
00062 }
00063
00065 void CTextMetrics::SetHankakuHeight(int nHankakuHeight)
00066 {
00067     m_nCharHeight=nHankakuHeight;
00068 }
00069
00070
00072 void CTextMetrics::SetHankakuDx(int nDxBasis)
00073 {
00074     m_nDxBasis=nDxBasis;
00075     for(int i=0;i<_countof(m_anHankakuDx);i++)m_anHankakuDx[i]=GetHankakuDx();
00076     for(int i=0;i<_countof(m_anZenkakuDx);i++)m_anZenkakuDx[i]=GetZenkakuDx();
00077 }
00078 void CTextMetrics::SetHankakuDy(int nDyBasis)
00079 {
00080     m_nDyBasis=nDyBasis;
00081 }
00082
00083 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00084 //                           取得                              //
00085 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086
00088 const int* CTextMetrics::GenerateDxArray(
00089     std::vector<int>* vResultArray,
00090     const wchar_t* pText,
00091     int nLength,
00092     int nHankakuDx
00093 )
00094 {
00095     using namespace WCODE;
00096
00097     vResultArray->resize(nLength);
00098     if(!pText || nLength<=0)return NULL;
00099
00100     int* p=&(*vResultArray)[0];
00101     const wchar_t* q=pText;
00102     for(int i=0;i<nLength;i++){
00103         if(isHankaku(*q)){
00104             *p = nHankakuDx;
00105         }
00106         else{
00107             *p = nHankakuDx*2;
00108         }
00109         p++;
00110         q++;
00111     }
00112
00113     if(vResultArray->size())
00114         return &(*vResultArray)[0];
00115     else
00116         return NULL;
00117 }
00118
00120 int CTextMetrics::CalcTextWidth(
00121     const wchar_t* pText,
00122     int nLength,
00123     const int* pnDx
00124 )
00125 {
00126     //ANSI時代の動作 ※pnDxにはすべて同じ値が入っていた
00127     //return pnDx[0] * nLength;
00128
00129     //UNICODE時代の動作
00130     int w=0;
00131     for(int i=0;i<nLength;i++){
00132         w+=pnDx[i];
00133     }
00134     return w;
00135 }
00136
00138 int CTextMetrics::CalcTextWidth2(
00139     const wchar_t* pText,
00140     int nLength,
00141     int nHankakuDx
00142 )
00143 {
00144     //文字間隔配列を生成
00145     vector<int> vDxArray;
00146     const int* pDxArray = CTextMetrics::GenerateDxArray(
00147         &vDxArray,
00148         pText,
00149         nLength,
00150         nHankakuDx
00151     );
00152
00153     //ピクセル幅を計算
00154     return CalcTextWidth(pText, nLength, pDxArray);
00155 }
00156
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextMetrics.h

sakura_core

CTextMetrics.h

#include <vector>

CTextMetrics.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTextMetrics

Sakura-Editorに対してSat Nov 17 20:26:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextMetrics.h ソースファイル

sakura_core

CTextMetrics.h

説明を見る。
00001 //2007.08.25 kobake 追加
00002
00003 #pragma once
00004
00005 #include <vector>
00006
00007 class CTextMetrics{
00008 public:
00009     //コンストラクタ・デストラクタ
00010     CTextMetrics();
00011     virtual ~CTextMetrics();
00012     void CopyTextMetricsStatus(CTextMetrics* pDst) const;
00013     void Update(HFONT hFont);
00014
00015     //設定
00016     void SetHankakuWidth(int nHankakuWidth);
00017     void SetHankakuHeight(int nHankakuHeight);
00018     void SetHankakuDx(int nHankakuDx);
00019     void SetHankakuDy(int nHankakuDy);
00020
00021     //取得
00022     int GetHankakuWidth() const{ return m_nCharWidth; }
00023     int GetHankakuHeight() const{ return m_nCharHeight; }
00024     int GetHankakuDx() const{ return m_nDxBasis; }
00025     int GetZenkakuDx() const{ return m_nDxBasis*2; }
00026     int GetHankakuDy() const{ return m_nDyBasis; }
00027
00028     //文字間隔配列を取得
00029     const int* GetDxArray_AllHankaku() const{ return m_anHankakuDx; }
00030     const int* GetDxArray_AllZenkaku() const{ return m_anZenkakuDx; }
00031
00033     static const int* GenerateDxArray(
00034         std::vector<int>* vResultArray,
00035         const wchar_t* pText,
00036         int nLength,
00037         int nHankakuDx
00038     );
00039
00041     static int CalcTextWidth(
00042         const wchar_t* pText,
00043         int nLength,
00044         const int* pnDx
00045     );
00046
00048     static int CalcTextWidth2(
00049         const wchar_t* pText,
00050         int nLength,
00051         int nHankakuDx
00052     );
00053
00054 private:
00055 //  HDC m_hdc; //!< 計算に用いるデバイスコンテキスト
00056     int m_nCharWidth;
00057     int m_nCharHeight;
00058     int m_nDxBasis;
00059     int m_nDyBasis;
00060     int m_anHankakuDx[64];
00061     int m_anZenkakuDx[64];
00062 };
00063
00064
00065
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextStream.cpp

sakura_core » io

CTextStream.cpp

#include "stdafx.h"
#include "CTextStream.h"
#include <vector>
#include "charset/CCodeMediator.h"
#include "util/file.h"
#include "util/module.h"

CTextStream.cppのインクルード依存関係図

ソースコードを見る。

関数

const char * | strchr2 (const char *str, char c1, char c2)
c1 か c2 、先に見つかったほうのアドレスを返す

変数

static const BYTE | UTF8_BOM [] = {0xEF,0xBB,0xBF}

関数

const char* strchr2 | ( | const char * | str,
 |  | char | c1,
 |  | char | c2
 | ) |  |

c1 か c2 、先に見つかったほうのアドレスを返す

CTextStream.cpp の 10 行で定義されています。

参照先 NULL.

変数

const BYTE UTF8_BOM[] = {0xEF,0xBB,0xBF} [static]

CTextStream.cpp の 21 行で定義されています。

参照元 CTextOutputStream::CTextOutputStream(), と CTextInputStream::Open().

Sakura-Editorに対してSat Nov 17 20:26:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextStream.cpp ソースファイル

sakura_core » io

CTextStream.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CTextStream.h"
00003 #include <vector>
00004 using namespace std;
00005 #include "charset/CCodeMediator.h"
00006 #include "util/file.h"
00007 #include "util/module.h"
00008
00010 const char* strchr2(const char* str, char c1, char c2)
00011 {
00012     const char* p=str;
00013     //※whileを先行すると、c1,c2が'\0'のときにNULLを返してしまうので、do〜whileとした。
00014     do{
00015         if(*p==c1 || *p==c2)return p;
00016     }while(*p++);
00017     return NULL;
00018 }
00019
00020 //定数
00021 static const BYTE UTF8_BOM[]={0xEF,0xBB,0xBF};
00022
00023
00024
00025
00026 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00027 //                     CTextInputStream                        //
00028 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00029
00030 CTextInputStream::CTextInputStream(const TCHAR* tszPath)
00031 : CStream()
00032 {
00033     m_bIsUtf8=false;
00034     Open(tszPath);
00035 }
00036
00037 CTextInputStream::CTextInputStream()
00038 : CStream()
00039 {
00040     m_bIsUtf8=false;
00041 }
00042
00043 CTextInputStream::~CTextInputStream()
00044 {
00045 }
00046
00047 void CTextInputStream::Open(const TCHAR* tszPath)
00048 {
00049     CStream::Open(tszPath,_T("rb"));
00050
00051     if(Good()){
00052         //BOM確認 -> m_bIsUtf8
00053         BYTE buf[3];
00054         fread(&buf,1,sizeof(UTF8_BOM),m_fp);
00055         m_bIsUtf8 = (memcmp(buf,UTF8_BOM,sizeof(UTF8_BOM))==0);
00056
00057         //UTF-8じゃなければ、ファイルポインタを元に戻す
00058         if(!m_bIsUtf8){
00059             fseek(m_fp,0,SEEK_SET);
00060         }
00061     }
00062     else{
00063         m_bIsUtf8 = false;
00064     }
00065 }
00066
00067 wstring CTextInputStream::ReadLineW()
00068 {
00069     //$$ 非効率だけど今のところは許して。。
00070     CMemory line;
00071     while(1){
00072         int c=getc(m_fp);
00073         if(c==EOF)break; //EOFで終了
00074         if(c=='\r'){ c=getc(m_fp); if(c!='\n')ungetc(c,m_fp); break; } //"\r" または "\r\n" で終了
00075         if(c=='\n')break; //"\n" で終了
00076         line.AppendRawData(&c,sizeof(char));
00077     }
00078
00079     //UTF-8 → UNICODE
00080     if(m_bIsUtf8){
00081         CNativeW cUnicode;
00082         CUtf8::UTF8ToUnicode(&line,&cUnicode);
00083         return cUnicode.GetStringPtr();
00084     }
00085     //Shift_JIS → UNICODE
00086     else{
00087         CShiftJis::SJISToUnicode(&line);
00088         return (const wchar_t*)line.GetRawPtr();
00089     }
00090 }
00091
00092
00093
00094
00095
00096 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00097 //                     CTextOutputStream                       //
00098 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00099
00100 CTextOutputStream::CTextOutputStream(const TCHAR* tszPath)
00101 : CStream(tszPath,_T("wb"))
00102 {
00103     if(Good()){
00104         //BOM付加
00105         fwrite(UTF8_BOM,1,sizeof(UTF8_BOM),m_fp);
00106     }
00107 }
00108
00109 CTextOutputStream::~CTextOutputStream()
00110 {
00111 }
00112
00113 void CTextOutputStream::WriteString(const wchar_t* szData)
00114 {
00115     int nDataLen = wcslen(szData);
00116
00117     //UTF-8に変換 -> out
00118     int nUtfLen = WideCharToMultiByte(
00119         CP_UTF8,
00120         0,
00121         szData,
00122         nDataLen,
00123         NULL,
00124         0,
00125         NULL,
00126         NULL
00127     );
00128     char* pUtf = new char[nUtfLen+1];
00129     nUtfLen = WideCharToMultiByte(
00130         CP_UTF8,
00131         0,
00132         szData,
00133         nDataLen,
00134         pUtf,
00135         nUtfLen,
00136         NULL,
00137         NULL
00138     );
00139     pUtf[nUtfLen]='\0';
00140
00141     //カキコ。"\n"は"\r\n"に変換しながら出力。ただし、"\r\n"は"\r\r\n"に変換しない。
00142     const char* p=pUtf;
00143     const char* end=pUtf+nUtfLen;
00144     while(1){
00145         //\nを検出。ただし\r\nは除外。
00146         const char* lf=strchr(p,'\n');
00147         while(lf && (lf-1)>=p && *(lf-1)=='\r')lf=strchr(lf+1,'\n');
00148
00149         if(lf){
00150             //\nまで出力
00151             fwrite(p,sizeof(char),lf-p,m_fp);
00152             p=lf+1;
00153
00154             //\nを\r\nとして出力
00155             fwrite("\r\n",sizeof(char),2,m_fp);
00156         }
00157         else{
00158             //ぜんぶ出力
00159             fwrite(p,sizeof(char),end-p,m_fp);
00160             break;
00161         }
00162     }
00163
00164     //後始末
00165     delete[] pUtf;
00166 }
00167
00168 void CTextOutputStream::WriteF(const wchar_t* format, ...)
00169 {
00170     //テキスト整形 -> buf
00171     static wchar_t buf[16*1024]; //$$ 確保しすぎかも？
00172     va_list v;
00173     va_start(v,format);
00174     auto_vsprintf_s(buf,_countof(buf),format,v);
00175     va_end(v);
00176
00177     //出力
00178     WriteString(buf);
00179 }
00180
00181
00182
00183 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00184 //                  CTextInputStream_AbsIni                    //
00185 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00186
00187 CTextInputStream_AbsIni::CTextInputStream_AbsIni(const TCHAR* fname, bool bOrExedir )
00188 : CTextInputStream()
00189 {
00190     if( _IS_REL_PATH( fname ) ){
00191         TCHAR path[_MAX_PATH];
00192         if( bOrExedir )
00193             GetInidirOrExedir( path, fname );
00194         else
00195             GetInidir( path, fname );
00196         Open(path);
00197     }
00198     Open(fname);
00199 }
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextStream.h

sakura_core » io

CTextStream.h

#include <string>
#include "CStream.h"

CTextStream.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CTextInputStream
class | CTextOutputStream
class | CTextInputStream_AbsIni

Sakura-Editorに対してSat Nov 17 20:26:54 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTextStream.h ソースファイル

sakura_core » io

CTextStream.h

説明を見る。
00001 //2007.09.24 kobake 作成
00002 //設定ファイル等のテキスト入出力を行うためのクラス群。
00003 //.ini や .mac の入出力を扱うときに使うと良いです。
00004 //※「編集テキスト」を扱うためではなく、あくまでも、.iniや.macのような「設定ファイル」を扱う目的のクラス群です。
00005 //
00006 //今のところはShiftJISで入出力を行うが、
00007 //将来はUTF-8等にすることにより、UNICODEデータの欠落が起こらないようにしたい。
00008
00009 #pragma once
00010
00011 #include <string>
00012
00013 #include "CStream.h"
00014
00015 //テキスト入力ストリーム
00016 class CTextInputStream : public CStream{
00017 public:
00018     //コンストラクタ・デストラクタ
00019     CTextInputStream(const TCHAR* tszPath);
00020     CTextInputStream();
00021     virtual ~CTextInputStream();
00022
00023     //操作
00024     void Open(const TCHAR* tszPath);
00025     std::wstring ReadLineW();
00026
00027 private:
00028     bool m_bIsUtf8;
00029 };
00030
00031 //テキスト出力ストリーム
00032 class CTextOutputStream : public CStream{
00033 public:
00034     //コンストラクタ・デストラクタ
00035     CTextOutputStream(const TCHAR* tszPath);
00036     virtual ~CTextOutputStream();
00037
00038     //文字列書込。改行を入れたい場合は、文字列内に'\n'を含めること。(クラス側で適切な改行コードに変換して出力します)
00039     void WriteString(const wchar_t* szData);
00040     void WriteF(const wchar_t* format, ...);
00041
00042     //数値書込。(クラス側で適当に整形して出力します)
00043     void WriteInt(int n);
00044 };
00045
00046
00047
00048 //テキスト入力ストリーム。相対パスの場合はINIファイルのパスからの相対パスとして開く。
00049 class CTextInputStream_AbsIni : public CTextInputStream{
00050 public:
00051     CTextInputStream_AbsIni(const TCHAR* tszPath, bool bOrExedir = true);
00052 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTipWnd.cpp

sakura_core

CTipWnd.cpp

ツールチップ [詳細]

#include "stdafx.h"
#include "CTipWnd.h"
#include "CShareData.h"

CTipWnd.cppのインクルード依存関係図

ソースコードを見る。

説明

ツールチップ

作者:
Norio Nakatani
日付:
1998/10/30 新規作成

CTipWnd.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTipWnd.cpp ソースファイル

sakura_core

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 : CWnd(_T("::CTipWnd"))
00026 {
00027     m_pszClassName = _T("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     ATOM atWork;
00051     atWork = RegisterWC(
00052         hInstance,
00053         /* WNDCLASS用 */
00054         NULL,// Handle to the class icon.
00055         NULL,   //Handle to a small icon
00056         ::LoadCursor( NULL, IDC_ARROW ),// Handle to the class cursor.
00057         (HBRUSH)/*NULL*/(COLOR_INFOBK + 1),// Handle to the class background brush.
00058         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.
00059         m_pszClassName// Pointer to a null-terminated string or is an atom.
00060     );
00061
00062     /* 基底クラスメンバ呼び出し */
00063     // 2006.01.09 ryoji 初期状態を不可視にする
00064     //  実質的には見えないCTipWndが最前面にあると判断されてしまう場合があるため
00065     CWnd::Create(
00066         hInstance,
00067         hwndParent,
00068         WS_EX_TOOLWINDOW, // extended window style  // 2002/2/3 GAE
00069         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00070         m_pszClassName, // pointer to window name
00071         WS_POPUP | WS_CLIPCHILDREN | WS_BORDER, // window style
00072         CW_USEDEFAULT, // horizontal position of window
00073         0, // vertical position of window
00074         CW_USEDEFAULT, // window width
00075         0, // window height
00076         NULL // handle to menu, or child-window identifier
00077     );
00078
00079     if( NULL != m_hFont ){
00080         ::DeleteObject( m_hFont );
00081         m_hFont = NULL;
00082     }
00083
00084     m_hFont = ::CreateFontIndirect( &(CShareData::getInstance()->GetShareData()->m_Common.m_sHelper.m_lf_kh) );
00085     return;
00086 }
00087
00095 void CTipWnd::AfterCreateWindow( void )
00096 {
00097 }
00098
00099 /* Tipを表示 */
00100 void CTipWnd::Show( int nX, int nY, const TCHAR* szText, RECT* pRect )
00101 {
00102     HDC     hdc;
00103     RECT    rc;
00104
00105     if( NULL != szText ){
00106         m_cInfo.SetString( szText );
00107     }
00108     const TCHAR* pszInfo = m_cInfo.GetStringPtr();
00109
00110     hdc = ::GetDC( GetHwnd() );
00111
00112     // サイズを計算済み 2001/06/19 asa-o
00113     if(pRect != NULL)
00114     {
00115         rc = *pRect;
00116     }
00117     else
00118     {
00119         /* ウィンドウのサイズを決める */
00120         ComputeWindowSize( hdc, m_hFont, pszInfo, &rc );
00121     }
00122
00123     ::ReleaseDC( GetHwnd(), hdc );
00124
00125     ::MoveWindow( GetHwnd(), nX, nY, rc.right + 8, rc.bottom + 8/*nHeight*/, TRUE );
00126     ::ShowWindow( GetHwnd(), SW_SHOWNA );
00127     return;
00128
00129 }
00130
00131 /* ウィンドウのサイズを決める */
00132 void CTipWnd::ComputeWindowSize(
00133     HDC             hdc,
00134     HFONT           hFont,
00135     const TCHAR*    pszText,
00136     RECT*           pRect
00137 )
00138 {
00139     int     nTextLength;
00140     int     nCurMaxWidth;
00141     int     nCurHeight;
00142     int     nBgn;
00143     RECT    rc;
00144     HFONT   hFontOld;
00145     int     i;
00146     int     nCharChars;
00147
00148     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00149
00150     nCurMaxWidth = 0;
00151     nCurHeight = 0;
00152     nTextLength = _tcslen( pszText );
00153     nBgn = 0;
00154     for( i = 0; i <= nTextLength; ++i ){
00155         // 2005-09-02 D.S.Koba GetSizeOfChar
00156         nCharChars = CNativeT::GetSizeOfChar( pszText, nTextLength, i );
00157         if( ( 1 == nCharChars && _T('\\') == pszText[i] && _T('n') == pszText[i + 1]) || _T('\0') == pszText[i] ){
00158             if( 0 < i - nBgn ){
00159                 TCHAR*  pszWork = new TCHAR[i - nBgn + 1];
00160                 auto_memcpy( pszWork, &pszText[nBgn], i - nBgn );
00161                 pszWork[i - nBgn] = _T('\0');
00162
00163                 rc.left = 0;
00164                 rc.top = 0;
00165                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00166                 rc.bottom = 0;
00167                 ::DrawText( hdc, pszWork, _tcslen(pszWork), &rc,
00168                     DT_CALCRECT | DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00169                 );
00170                 delete [] pszWork;
00171                 if( nCurMaxWidth < rc.right ){
00172                     nCurMaxWidth = rc.right;
00173                 }
00174             }else{
00175                 ::DrawText( hdc, _T(" "), 1, &rc,
00176                     DT_CALCRECT | DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00177                 );
00178             }
00179             nCurHeight += rc.bottom;
00180
00181             nBgn = i + 2;
00182         }
00183         if( 2 == nCharChars ){
00184             ++i;
00185         }
00186     }
00187
00188     pRect->left = 0;
00189     pRect->top = 0;
00190     pRect->right = nCurMaxWidth + 4;
00191     pRect->bottom = nCurHeight + 2;
00192
00193     ::SelectObject( hdc, hFontOld );
00194
00195     return;
00196
00197
00198 }
00199
00200
00201 /* ウィンドウのテキストを表示 */
00202 void CTipWnd::DrawTipText(
00203     HDC             hdc,
00204     HFONT           hFont,
00205     const TCHAR*    pszText
00206 )
00207 {
00208     int         nTextLength;
00209     int         nCurMaxWidth;
00210     int         nCurHeight;
00211     int         nBgn;
00212     RECT        rc;
00213     HFONT       hFontOld;
00214     int         i;
00215     int         nBkMode_Old;
00216     COLORREF    colText_Old;
00217     int         nCharChars;
00218
00219     nBkMode_Old = ::SetBkMode( hdc, TRANSPARENT );
00220     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00221     colText_Old = ::SetTextColor( hdc, ::GetSysColor( COLOR_INFOTEXT ) );
00222
00223     nCurMaxWidth = 0;
00224     nCurHeight = 0;
00225     nTextLength = _tcslen( pszText );
00226     nBgn = 0;
00227     for( i = 0; i <= nTextLength; ++i ){
00228 //      nCharChars = &pszText[i] - CMemory::MemCharPrev( pszText, nTextLength, &pszText[i] );
00229         // 2005-09-02 D.S.Koba GetSizeOfChar
00230         nCharChars = CNativeT::GetSizeOfChar( pszText, nTextLength, i );
00231         if( ( 1 == nCharChars && _T('\\') == pszText[i] && _T('n') == pszText[i + 1]) || _T('\0') == pszText[i] ){
00232             if( 0 < i - nBgn ){
00233                 TCHAR*  pszWork;
00234                 pszWork = new TCHAR[i - nBgn + 1];
00235                 auto_memcpy( pszWork, &pszText[nBgn], i - nBgn );
00236                 pszWork[i - nBgn] = _T('\0');
00237
00238                 rc.left = 4;
00239                 rc.top = 4 + nCurHeight;
00240                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00241                 rc.bottom = rc.top + 200;
00242                 nCurHeight += ::DrawText( hdc, pszWork, _tcslen(pszWork), &rc,
00243                     DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00244                 );
00245                 delete [] pszWork;
00246                 if( nCurMaxWidth < rc.right ){
00247                     nCurMaxWidth = rc.right;
00248                 }
00249             }else{
00250                 rc.left = 4;
00251                 rc.top = 4 + nCurHeight;
00252                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00253                 rc.bottom = rc.top + 200;
00254                 nCurHeight += ::DrawText( hdc, _T(" "), 1, &rc,
00255                     DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00256                 );
00257             }
00258
00259             nBgn = i + 2;
00260         }
00261         if( 2 == nCharChars ){
00262             ++i;
00263         }
00264     }
00265
00266
00267     ::SetTextColor( hdc, colText_Old );
00268     ::SelectObject( hdc, hFontOld );
00269     ::SetBkMode( hdc, nBkMode_Old );
00270
00271     return;
00272
00273
00274 }
00275
00276
00277
00278 /* Tipを消す */
00279 void CTipWnd::Hide( void )
00280 {
00281     ::ShowWindow( GetHwnd(), SW_HIDE );
00282 //  ::DestroyWindow( GetHwnd() );
00283     return;
00284 }
00285
00286
00287
00288
00289 /* 描画処理 */
00290 LRESULT CTipWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l_Param )
00291 {
00292     PAINTSTRUCT ps;
00293     RECT        rc;
00294     HDC         hdc = ::BeginPaint( hwnd, &ps );
00295     ::GetClientRect( hwnd, &rc );
00296
00297     /* ウィンドウのテキストを表示 */
00298     DrawTipText( hdc, m_hFont, m_cInfo.GetStringPtr() );
00299
00300     ::EndPaint( hwnd, &ps );
00301     return 0L;
00302 }
00303
00304
00305 // 2001/06/19 Start by asa-o: ウィンドウのサイズを得る
00306 void CTipWnd::GetWindowSize(LPRECT pRect)
00307 {
00308     const TCHAR*    pszText;
00309
00310     HDC     hdc = ::GetDC( GetHwnd() );
00311
00312     pszText = m_cInfo.GetStringPtr();
00313
00314     // ウィンドウのサイズを得る
00315     ComputeWindowSize( hdc, m_hFont, pszText , pRect );
00316
00317     ReleaseDC(GetHwnd(), hdc); //2007.10.10 kobake ReleaseDCが抜けていたのを修正
00318 }
00319
00320 // 2001/06/19 End
00321
00322
00323 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTipWnd.h

sakura_core

CTipWnd.h

ツールチップ [詳細]

#include "CWnd.h"
#include "CMemory.h"

CTipWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTipWnd

説明

ツールチップ

作者:
Norio Nakatani
日付:
1998/10/30 新規作成

CTipWnd.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:26:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTipWnd.h ソースファイル

sakura_core

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, const TCHAR*, 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     TCHAR*      m_pszClassName; /* Mutex作成用・ウィンドウクラス名 */
00053     HFONT       m_hFont;
00054
00055 public:
00056     CNativeW    m_cKey;         /* キーの内容データ */
00057     BOOL        m_KeyWasHit;    /* キーがヒットしたか */
00058     int         m_nSearchLine;  /* 辞書のヒット行 */ // 2006.04.10 fon
00059     int         m_nSearchDict;  /* ヒット辞書番号 */ // 2006.04.10 fon
00060
00061     CNativeT    m_cInfo;        /* Tipの内容データ */
00062
00063 protected:
00064     /*
00065     ||  実装ヘルパ関数
00066     */
00067     void ComputeWindowSize( HDC, HFONT, const TCHAR*, RECT* );  /* ウィンドウのサイズを決める */
00068     void DrawTipText( HDC, HFONT, const TCHAR* );   /* ウィンドウのテキストを表示 */
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 Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTypeSupport.cpp

sakura_core

CTypeSupport.cpp

#include "stdafx.h"
#include "CTypeSupport.h"

CTypeSupport.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:55 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTypeSupport.cpp ソースファイル

sakura_core

CTypeSupport.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CTypeSupport.h"
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTypeSupport.h

sakura_core

CTypeSupport.h

#include "CEditView.h"
#include "CShareData.h"
#include "CEditDoc.h"

CTypeSupport.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTypeSupport
タイプサポートクラス [詳細]

Sakura-Editorに対してSat Nov 17 20:26:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CTypeSupport.h ソースファイル

sakura_core

CTypeSupport.h

説明を見る。
00001 #pragma once
00002
00003 #include "CEditView.h"
00004 #include "CShareData.h"
00005 #include "CEditDoc.h"
00006
00007 //2007.08.28 kobake 追加
00009 class CTypeSupport{
00010 private:
00011     static const COLORREF INVALID_COLOR=0xFFFFFFFF; //無効な色定数
00012
00013 public:
00014     CTypeSupport(const CEditView* pEditView,int nColorIdx)
00015     : m_pFontset(&pEditView->GetFontset())
00016     , m_nColorIdx(nColorIdx)
00017     {
00018         m_pTypes = &pEditView->m_pcEditDoc->GetDocumentAttribute();
00019
00020         m_hdc=NULL;
00021         m_hfntOld=NULL;
00022         m_hpnNew=NULL;
00023         m_hpnOld=NULL;
00024         m_clrOldBack=INVALID_COLOR;
00025         m_clrOldText=INVALID_COLOR;
00026     }
00027     virtual ~CTypeSupport()
00028     {
00029         if(m_hdc){
00030             //フォントを元に戻す
00031             RewindFont(m_hdc);
00032             //ペンを元に戻す
00033             RewindPen(m_hdc);
00034             //色を元に戻す
00035             RewindColors(m_hdc);
00036         }
00037     }
00038
00039
00040     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00041     //                           取得                              //
00042     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00044     COLORREF GetTextColor() const
00045     {
00046         return m_pTypes->m_ColorInfoArr[m_nColorIdx].m_colTEXT;
00047     }
00048
00050     COLORREF GetBackColor() const
00051     {
00052         return m_pTypes->m_ColorInfoArr[m_nColorIdx].m_colBACK;
00053     }
00054
00056     bool IsDisp() const
00057     {
00058         return m_pTypes->m_ColorInfoArr[m_nColorIdx].m_bDisp!=FALSE;
00059     }
00060
00062     bool IsFatFont() const
00063     {
00064         return m_pTypes->m_ColorInfoArr[m_nColorIdx].m_bFatFont!=FALSE;
00065     }
00066
00068     bool HasUnderLine() const
00069     {
00070         return m_pTypes->m_ColorInfoArr[m_nColorIdx].m_bUnderLine!=FALSE;
00071     }
00072
00073     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00074     //                           描画                              //
00075     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00076     void FillBack(HDC hdc,const RECT& rc)
00077     {
00078         HBRUSH hBrush = ::CreateSolidBrush( m_pTypes->m_ColorInfoArr[m_nColorIdx].m_colBACK );
00079         ::FillRect( hdc, &rc, hBrush );
00080         ::DeleteObject( hBrush );
00081     }
00082
00083     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00084     //                           設定                              //
00085     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086     void SetFont(HDC hdc)
00087     {
00088         m_hdc=hdc;
00089
00090         HFONT hfntOld = (HFONT)::SelectObject( hdc,
00091             m_pFontset->ChooseFontHandle(
00092                 m_pTypes->m_ColorInfoArr[m_nColorIdx].m_bFatFont,
00093                 m_pTypes->m_ColorInfoArr[m_nColorIdx].m_bUnderLine
00094             )
00095         );
00096
00097         if(m_hfntOld==NULL)
00098             m_hfntOld=hfntOld;
00099     }
00100     void RewindFont(HDC hdc)
00101     {
00102         //元に戻す
00103         if(m_hfntOld){
00104             SelectObject(m_hdc,m_hfntOld);
00105             m_hfntOld=NULL;
00106         }
00107     }
00108
00109     void SetSolidPen(HDC hdc,int nPenWidth)
00110     {
00111         m_hdc=hdc;
00112
00113         //作成する
00114         HPEN hpnNew = ::CreatePen( PS_SOLID, 0, this->GetTextColor() );
00115
00116         //選択する
00117         HPEN hpnOld = (HPEN)::SelectObject( hdc, hpnNew );
00118         if(m_hpnOld==NULL)
00119             m_hpnOld=hpnOld;
00120
00121         //差し替える
00122         if(m_hpnNew)DeleteObject(m_hpnNew);
00123         m_hpnNew=hpnNew;
00124     }
00125     void RewindPen(HDC hdc)
00126     {
00127         //元に戻す
00128         if(m_hpnOld){
00129             SelectObject(m_hdc,m_hpnOld);
00130             m_hpnOld=NULL;
00131         }
00132
00133         //破棄する
00134         if(m_hpnNew){
00135             DeleteObject(m_hpnNew);
00136             m_hpnNew=NULL;
00137         }
00138     }
00139
00140     void SetBkColor(HDC hdc)
00141     {
00142         m_hdc=hdc;
00143
00144         COLORREF clrOldBack = ::SetBkColor  ( hdc, m_pTypes->m_ColorInfoArr[m_nColorIdx].m_colBACK );
00145         if(m_clrOldBack==INVALID_COLOR)m_clrOldBack=clrOldBack;
00146     }
00147     void SetTextColor(HDC hdc)
00148     {
00149         m_hdc=hdc;
00150
00151         COLORREF clrOldText = ::SetTextColor( hdc, m_pTypes->m_ColorInfoArr[m_nColorIdx].m_colTEXT );
00152         if(m_clrOldText==INVALID_COLOR)m_clrOldText=clrOldText;
00153     }
00154     void SetColors(HDC hdc)
00155     {
00156         this->SetBkColor(hdc);
00157         this->SetTextColor(hdc);
00158     }
00159     void RewindColors(HDC hdc)
00160     {
00161         if(m_clrOldBack!=INVALID_COLOR){
00162 			::SetBkColor(hdc,m_clrOldBack);
00163             m_clrOldBack=INVALID_COLOR;
00164         }
00165         if(m_clrOldText!=INVALID_COLOR){
00166 			::SetTextColor(hdc,m_clrOldText);
00167             m_clrOldText=INVALID_COLOR;
00168         }
00169     }
00170
00171
00172 private:
00173     const CViewFont* m_pFontset;
00174     const Types*     m_pTypes;
00175     int              m_nColorIdx;
00176
00177     HDC       m_hdc;        //設定を変更したHDC
00178     HFONT     m_hfntOld;    //SetFont     以前に選択されていたフォント
00179     HPEN      m_hpnNew;     //SetSolidPen で作成されたフォント
00180     HPEN      m_hpnOld;     //SetSolidPen 以前に選択されていたペン
00181     COLORREF  m_clrOldBack; //SetBkColor  以前に設定されていた色
00182     COLORREF  m_clrOldText; //SetTextColor以前に設定されていた色
00183 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicode.cpp

sakura_core » charset

CUnicode.cpp

#include "stdafx.h"
#include "CUnicode.h"

CUnicode.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicode.cpp ソースファイル

sakura_core » charset

CUnicode.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CUnicode.h"
00003
00004 EConvertResult CUnicode::UnicodeToUnicode( CMemory* pMem )
00005 {
00006     //何もしない
00007     return RESULT_COMPLETE;
00008 }
00009
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicode.h

sakura_core » charset

CUnicode.h

#include "CCodeBase.h"

CUnicode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CUnicode

Sakura-Editorに対してSat Nov 17 20:26:56 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicode.h ソースファイル

sakura_core » charset

CUnicode.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CUnicode : public CCodeBase{
00006 public:
00007     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return UnicodeToUnicode(pDst->_GetMemory()); }
00008     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToUnicode(pDst); }
00009
00010 public:
00011     //実装
00012     static EConvertResult UnicodeToUnicode(CMemory* pMem);  // Unicode   → Unicode (何もしない)
00013 };
00014
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicodeBe.cpp

sakura_core » charset

CUnicodeBe.cpp

#include "stdafx.h"
#include "CUnicodeBe.h"

CUnicodeBe.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicodeBe.cpp ソースファイル

sakura_core » charset

CUnicodeBe.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CUnicodeBe.h"
00003
00005 // 2007.08.13 kobake 作成
00006 EConvertResult CUnicodeBe::UnicodeBEToUnicode( CMemory* pMem )
00007 {
00008     pMem->SwapHLByte();
00009     return RESULT_COMPLETE;
00010 }
00011
00012 EConvertResult CUnicodeBe::UnicodeToUnicodeBE( CMemory* pMem )
00013 {
00014     pMem->SwapHLByte();
00015     return RESULT_COMPLETE;
00016 }
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicodeBe.h

sakura_core » charset

CUnicodeBe.h

#include "CCodeBase.h"

CUnicodeBe.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CUnicodeBe

Sakura-Editorに対してSat Nov 17 20:26:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUnicodeBe.h ソースファイル

sakura_core » charset

CUnicodeBe.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CUnicodeBe : public CCodeBase{
00006 public:
00007     //CCodeBaseインターフェース
00008     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return UnicodeBEToUnicode(pDst->_GetMemory()); }
00009     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToUnicodeBE(pDst); }
00010
00011 public:
00012     //実装
00013     static EConvertResult UnicodeBEToUnicode(CMemory* pMem);    // UnicodeBE → Unicodeコード変換 //2007.08.13 kobake 追加
00014     static EConvertResult UnicodeToUnicodeBE(CMemory* pMem);    // Unicode   → UnicodeBEコード変換
00015 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf7.cpp

sakura_core » charset

CUtf7.cpp

#include "stdafx.h"
#include "CUtf7.h"
#include "charcode.h"

CUtf7.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:57 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf7.cpp ソースファイル

sakura_core » charset

CUtf7.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CUtf7.h"
00003 #include "charcode.h"
00004
00006 // 2007.08.13 kobake 作成
00007 EConvertResult CUtf7::UTF7ToUnicode( CMemory* pMem )
00008 {
00009     //データ取得
00010     int nDataLen;
00011     const char* pData=(char*)pMem->GetRawPtr(&nDataLen);
00012
00013     //必要なバッファサイズを調べる
00014     size_t dstlen=MultiByteToWideChar(
00015         CP_UTF7,
00016         0,
00017         pData,
00018         nDataLen,
00019         NULL,
00020         0
00021     );
00022
00023     //バッファ確保
00024     std::vector<wchar_t> dst(dstlen+1);
00025
00026     //変換
00027     int ret=MultiByteToWideChar(
00028         CP_UTF7,
00029         0,
00030         pData,
00031         nDataLen,
00032         &dst[0],
00033         dstlen
00034     );
00035     dst[dstlen]=L'\0';
00036
00037     //設定
00038     const void* p=&dst[0];
00039     pMem->SetRawData(p,dstlen*sizeof(wchar_t));
00040
00041     return RESULT_COMPLETE;
00042 }
00043
00044
00048 EConvertResult CUtf7::UnicodeToUTF7( CMemory* pMem )
00049 {
00050     //データ取得
00051     int nDataLen;
00052     const wchar_t* pData=(wchar_t*)pMem->GetRawPtr(&nDataLen);
00053     nDataLen/=sizeof(wchar_t);
00054
00055     //出力先
00056     wchar_t*        pUniBuf;
00057     int             nUniBufLen = nDataLen / sizeof(wchar_t);
00058     pUniBuf = new wchar_t[nUniBufLen + 1];
00059
00060     int             i;
00061     int             j;
00062     unsigned char*  pDes;
00063     int             k;
00064     BOOL            bBASE64;
00065     int             nBgn;
00066     char*           pszBase64Buf;
00067     int             nBase64BufLen;
00068     char*           pszWork;
00069     char            cWork;
00070
00071 //  setlocale( LC_ALL, "Japanese" ); // wctomb を使わなくなったためコメントアウト
00072     k = 0;
00073     bBASE64 = FALSE;
00074     nBgn = 0;
00075 //  memset( pUniBuf, 0, (nUniBufLen + 1) * sizeof( wchar_t ) );
00076     memcpy( pUniBuf, pData, nUniBufLen * sizeof( wchar_t ) );
00077     pUniBuf[nUniBufLen] = L'\0';
00078     for( i = 0; i < nUniBufLen; ++i ){
00079         j = IsUTF7Direct( pUniBuf[i]);
00080         if( !bBASE64 ){
00081             if( 1 == j ){
00082                 k++;
00083             }else
00084             if( L'+' == pUniBuf[i] ){
00085                 k += 2;
00086             }else{
00087                 bBASE64 = TRUE;
00088                 nBgn = i;
00089             }
00090         }else{
00091             if( 1 == j ){
00092                 /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
00093                 pszWork = (char*)(char*)&pUniBuf[nBgn];
00094                 for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
00095                     cWork = pszWork[j + 1];
00096                     pszWork[j + 1] = pszWork[j];
00097                     pszWork[j] = cWork;
00098                 }
00099                 /* Base64エンコード */
00100                 pszBase64Buf = NULL;
00101                 nBase64BufLen = 0;
00102                 nBase64BufLen = MemBASE64_Encode(
00103                     (char*)&pUniBuf[nBgn],          // エンコード対象データ
00104                     (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
00105                     &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
00106                     -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00107                     FALSE   // パディングするか
00108                 );
00110                 k++;
00111                 k += nBase64BufLen;
00112                 k++;
00114                 delete [] pszBase64Buf;
00115                 pszBase64Buf = NULL;
00116                 nBase64BufLen = 0;
00117                 bBASE64 = FALSE;
00118                 i--;
00119             }else{
00120             }
00121         }
00122     }
00123     if( bBASE64 && 0 < (i - nBgn) ){
00124         /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
00125         pszWork = (char*)(char*)&pUniBuf[nBgn];
00126         for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
00127             cWork = pszWork[j + 1];
00128             pszWork[j + 1] = pszWork[j];
00129             pszWork[j] = cWork;
00130         }
00131         /* Base64エンコード */
00132         pszBase64Buf = NULL;
00133         nBase64BufLen = 0;
00134         nBase64BufLen = MemBASE64_Encode(
00135             (char*)&pUniBuf[nBgn],          // エンコード対象データ
00136             (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
00137             &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
00138             -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00139             FALSE   // パディングするか
00140         );
00142         k++;
00143         k += nBase64BufLen;
00144         k++;
00146         delete [] pszBase64Buf;
00147         pszBase64Buf = NULL;
00148         nBase64BufLen = 0;
00149         bBASE64 = FALSE;
00150     }
00151     delete [] pUniBuf;
00152
00153     pDes = new unsigned char[k + 1];
00154     memset( pDes, 0, k + 1 );
00155     k = 0;
00156     bBASE64 = FALSE;
00157     nBgn = 0;
00158     pUniBuf = (wchar_t*)pData;
00159     for( i = 0; i < nUniBufLen; ++i ){
00160         j = IsUTF7Direct( pUniBuf[i] );
00161         if( !bBASE64 ){
00162             if( 1 == j ){
00163                 pDes[k] = (unsigned char)(pUniBuf[i] & 0x007f);
00164                 k++;
00165             }else
00166             if( L'+' == pUniBuf[i] ){
00167                 pDes[k    ] = '+';
00168                 pDes[k + 1] = '-';
00169                 k += 2;
00170             }else{
00171                 bBASE64 = TRUE;
00172                 nBgn = i;
00173             }
00174         }else{
00175             if( 1 == j ){
00176                 /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
00177                 pszWork = (char*)(char*)&pUniBuf[nBgn];
00178                 for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
00179                     cWork = pszWork[j + 1];
00180                     pszWork[j + 1] = pszWork[j];
00181                     pszWork[j] = cWork;
00182                 }
00183                 char*   pszBase64Buf;
00184                 int     nBase64BufLen;
00185                 /* Base64エンコード */
00186                 nBase64BufLen = MemBASE64_Encode(
00187                     (char*)&pUniBuf[nBgn],          // エンコード対象データ
00188                     (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
00189                     &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
00190                     -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00191                     FALSE   // パディングするか
00192                 );
00194                 pDes[k] = '+';
00195                 k++;
00196                 memcpy( &pDes[k], pszBase64Buf, nBase64BufLen );
00197                 k += nBase64BufLen;
00198                 pDes[k] = '-';
00199                 k++;
00201                 delete [] pszBase64Buf;
00202                 bBASE64 = FALSE;
00203                 i--;
00204             }else{
00205             }
00206         }
00207     }
00208     if( bBASE64 && 0 < (i - nBgn) ){
00209         /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
00210         pszWork = (char*)(char*)&pUniBuf[nBgn];
00211         for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
00212             cWork = pszWork[j + 1];
00213             pszWork[j + 1] = pszWork[j];
00214             pszWork[j] = cWork;
00215         }
00216         /* Base64エンコード */
00217         pszBase64Buf = NULL;
00218         nBase64BufLen = 0;
00219         nBase64BufLen = MemBASE64_Encode(
00220             (char*)&pUniBuf[nBgn],          // エンコード対象データ
00221             (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
00222             &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
00223             -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00224             FALSE   // パディングするか
00225         );
00227         pDes[k] = '+';
00228         k++;
00229         memcpy( &pDes[k], pszBase64Buf, nBase64BufLen );
00230         k += nBase64BufLen;
00231         pDes[k] = '-';
00232         k++;
00234         delete [] pszBase64Buf;
00235         pszBase64Buf = NULL;
00236         nBase64BufLen = 0;
00237         bBASE64 = FALSE;
00238     }
00239     pMem->SetRawData( pDes, k );
00240     delete [] pDes;
00241
00242     return RESULT_COMPLETE;
00243 }
00244
00245
00258 int CUtf7::IsUTF7Direct( wchar_t wc )
00259 {
00260     int nret = 0;
00261     if( (wc & 0xff00) == 0 ){
00262         nret = Charcode::IsUtf7SetDChar( (unsigned char)wc );
00263     }
00264     return nret;
00265 }
00266
00267
00268
00269 /*
00270 * Base64エンコード
00271 *
00272 *   符号化したデータは、新たに確保したメモリに格納されます
00273 *   終了時に、そのメモリハンドルを指定されたアドレスに格納します
00274 *   符号化されたデータ列は、一応NULL終端文字列になっています
00275 *
00276 */
00277 int CUtf7::MemBASE64_Encode(
00278     const char* pszSrc      ,   // エンコード対象データ
00279     int         nSrcLen     ,   // エンコード対象データ長
00280     char**      ppszDes     ,   // 結果データ格納メモリポインタのアドレス
00281     int         nWrap       ,   // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00282     int         bPadding        // パディングするか
00283 )
00284 {
00285     int         i, j, k, m, n;
00286     long        nDesIdx;
00287 //  char*       pszDes;
00288     long        nDataDes;
00289     long        nDataSrc;
00290     long        nLineLen;
00291     char        cw;
00292     const char  szBASE64CODE[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
00293     int         nBASE64CODE_Num = _countof( szBASE64CODE );
00294     int         nDesLen;
00295
00296     // 符号化後の長さを算出（ヘッダー・フッターを除く）
00297     //=?ISO-2022-JP?B? GyRC QXc/ Lkgi JE4/ NiRq Siwk MRso Qg== ?=
00298     nDesLen = ((nSrcLen / 3) + ((nSrcLen % 3)? 1:0)) * 4;
00299     if( -1 != nWrap ){
00300         nDesLen += 2 * ( nDesLen / nWrap + ((nDesLen % nWrap)? 1:0 ));
00301     }
00302
00303     (*ppszDes) = new char[nDesLen + 1];
00304     memset( (*ppszDes), 0, nDesLen + 1 );
00305
00306     nDesIdx = 0;
00307     nLineLen = 0;
00308     for( i = 0; i < nSrcLen; i += 3 ){
00309         memcpy( &nDataDes, "====", 4 );
00310         nDataSrc = 0;
00311         if( nSrcLen - i < 3 ){
00312             k = (nSrcLen % 3) * 8 / 6 + 1;
00313             for( m = 0; m < nSrcLen % 3; m++ ){
00314                 ((char*)&nDataSrc)[3 - m] = pszSrc[i + m];
00315             }
00316         }else{
00317             k = 4;
00318             for( m = 0; m < 3; m++ ){
00319                 ((char*)&nDataSrc)[3 - m] = pszSrc[i + m];
00320             }
00321         }
00322         for( j = 0; j < k; j++ ){
00323             cw = (char)((nDataSrc >> (6 * (3 - j) + 8)) & 0x0000003f);
00324             ((char*)&nDataDes)[j] = szBASE64CODE[(int)cw];
00325         }
00326         if( bPadding ){     // パディングするか
00327             k = 4;
00328         }else{
00329             nDesLen -= (4 - k);
00330         }
00331         for( n = 0; n < k; n++ ){
00332             // 自動折り返しの処理
00333             if( nWrap != -1 && nLineLen == nWrap ){
00334                 (*ppszDes)[nDesIdx + 0] = ACODE::CR;
00335                 (*ppszDes)[nDesIdx + 1] = ACODE::LF;
00336                 nDesIdx += 2;
00337                 nLineLen = 0;
00338             }
00339             (*ppszDes)[nDesIdx] = ((char*)&nDataDes)[n];
00340             nDesIdx++;
00341             nLineLen++;
00342         }
00343     }
00344 //  GlobalUnlock( *phgDes );
00345     return nDesLen;
00346 }
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf7.h

sakura_core » charset

CUtf7.h

#include "CCodeBase.h"

CUtf7.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CUtf7

Sakura-Editorに対してSat Nov 17 20:26:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf7.h ソースファイル

sakura_core » charset

CUtf7.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CUtf7 : public CCodeBase{
00006 public:
00007     //CCodeBaseインターフェース
00008     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ *pDst->_GetMemory()=*pSrc; return UTF7ToUnicode(pDst->_GetMemory()); }
00009     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ *pDst=*pSrc->_GetMemory(); return UnicodeToUTF7(pDst); }
00010
00011 public:
00012     //実装
00013     static EConvertResult UTF7ToUnicode(CMemory* pMem);     // UTF-7     → Unicodeコード変換 //2007.08.13 kobake 追加
00014     static EConvertResult UnicodeToUTF7(CMemory* pMem);     // Unicode   → UTF-7コード変換
00015     static int IsUTF7Direct( wchar_t ); /* Unicode文字がUTF7で直接エンコードできるか */ // 2002.10.25 Moca
00016     static int MemBASE64_Encode( const char*, int, char**, int, int );/* Base64エンコード */
00017 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf8.cpp

sakura_core » charset

CUtf8.cpp

#include "stdafx.h"
#include "CUtf8.h"

CUtf8.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf8.cpp ソースファイル

sakura_core » charset

CUtf8.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CUtf8.h"
00003
00005 // 2007.08.13 kobake 作成
00006 EConvertResult CUtf8::UTF8ToUnicode( const CMemory* pSrcMem, CNativeW* pDstMem )
00007 {
00008     //データ取得
00009     int nSrcLen;
00010     const char* pData = (char*)pSrcMem->GetRawPtr(&nSrcLen);
00011
00012     //必要なバッファサイズを調べる
00013     size_t nDstLen=MultiByteToWideChar(
00014         CP_UTF8,
00015         0,
00016         pData,
00017         nSrcLen,
00018         NULL,
00019         0
00020     );
00021
00022     //バッファ確保
00023     pDstMem->Clear();
00024     pDstMem->AllocStringBuffer(nDstLen+1);
00025     wchar_t* pDst = pDstMem->GetStringPtr();
00026
00027     //変換
00028     nDstLen=MultiByteToWideChar(
00029         CP_UTF8,
00030         0,
00031         pData,
00032         nSrcLen,
00033         pDst,
00034         nDstLen
00035     );
00036     pDst[nDstLen]=L'\0';
00037
00038     //CNativeW更新
00039     pDstMem->_SetStringLength(nDstLen);
00040
00041     return RESULT_COMPLETE; //大丈夫だと思う
00042 }
00043
00044
00046 EConvertResult CUtf8::UnicodeToUTF8( const CNativeW* pSrcMem, CMemory* pDstMem )
00047 {
00048     //データ取得
00049     int nSrcLen;
00050     const wchar_t* pSrc = pSrcMem->GetStringPtr(&nSrcLen);
00051
00052     //必要なバッファサイズを調べる
00053     size_t nDstLen=WideCharToMultiByte(
00054         CP_UTF8,
00055         0,
00056         pSrc,
00057         nSrcLen,
00058         NULL,
00059         0,
00060         NULL,
00061         NULL
00062     );
00063
00064     //バッファ確保
00065     pDstMem->Clean();
00066     pDstMem->AllocBuffer( (nDstLen+1) * sizeof(char) );
00067     char* pDst = reinterpret_cast<char*>(pDstMem->GetRawPtr());
00068
00069     //変換
00070     nDstLen=WideCharToMultiByte(
00071         CP_UTF8,
00072         0,
00073         pSrc,
00074         nSrcLen,
00075         pDst,
00076         nDstLen,
00077         NULL,
00078         NULL
00079     );
00080     pDst[nDstLen]='\0';
00081
00082     //CMemory更新
00083     pDstMem->_SetRawLength(nDstLen);
00084
00085     return RESULT_COMPLETE; //大丈夫だと思う
00086 }
00087
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf8.h

sakura_core » charset

CUtf8.h

#include "CCodeBase.h"

CUtf8.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CUtf8

Sakura-Editorに対してSat Nov 17 20:26:58 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUtf8.h ソースファイル

sakura_core » charset

CUtf8.h

説明を見る。
00001 #pragma once
00002
00003 #include "CCodeBase.h"
00004
00005 class CUtf8 : public CCodeBase{
00006 public:
00007     //CCodeBaseインターフェース
00008     EConvertResult CodeToUnicode(const CMemory* pSrc, CNativeW* pDst){ return UTF8ToUnicode(pSrc,pDst); }
00009     EConvertResult UnicodeToCode(const CNativeW* pSrc, CMemory* pDst){ return UnicodeToUTF8(pSrc,pDst); }
00010
00011
00012 public:
00013     //実装
00014     static EConvertResult UTF8ToUnicode(const CMemory* pSrcMem, CNativeW* pDstMem);     // UTF-8     → Unicodeコード変換 //2007.08.13 kobake 追加
00015     static EConvertResult UnicodeToUTF8(const CNativeW* pSrcMem, CMemory* pDstMem);     // Unicode   → UTF-8コード変換
00016 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUxTheme.cpp

sakura_core

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 Nov 17 20:26:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUxTheme.cpp ソースファイル

sakura_core

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( TCHAR* 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 Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUxTheme.h

sakura_core

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 Nov 17 20:26:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CUxTheme.h ソースファイル

sakura_core

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( TCHAR* 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 Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCalc.cpp

sakura_core

CViewCalc.cpp

#include "stdafx.h"
#include "CViewCalc.h"
#include "CMemoryIterator.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CLayout.h"

CViewCalc.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:26:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCalc.cpp ソースファイル

sakura_core

CViewCalc.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewCalc.h"
00003 #include "CMemoryIterator.h"
00004 #include "CEditView.h"
00005 #include "CEditDoc.h"
00006 #include "CLayout.h"
00007
00008 //外部依存
00009 CLayoutInt CViewCalc::GetTabSpace() const
00010 {
00011     return m_pOwner->m_pcEditDoc->m_cLayoutMgr.GetTabSpace();
00012 }
00013
00014
00015 /* 指定された桁に対応する行のデータ内の位置を調べる Ver1
00016
00017     @@@ 2002.09.28 YAZAKI CDocLine版
00018 */
00019 CLogicInt CViewCalc::LineColmnToIndex( const CDocLine* pcDocLine, CLayoutInt nColumn ) const
00020 {
00021     CLogicInt i2 = CLogicInt(0);
00022     CMemoryIterator it( pcDocLine, GetTabSpace() );
00023     while( !it.end() ){
00024         it.scanNext();
00025         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
00026             break;
00027         }
00028         it.addDelta();
00029     }
00030     i2 += it.getIndex();
00031     return i2;
00032 }
00033
00034
00035 /* 指定された桁に対応する行のデータ内の位置を調べる Ver1
00036
00037     @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
00038 */
00039 CLogicInt CViewCalc::LineColmnToIndex( const CLayout* pcLayout, CLayoutInt nColumn ) const
00040 {
00041     CLogicInt i2 = CLogicInt(0);
00042     CMemoryIterator it( pcLayout, GetTabSpace() );
00043     while( !it.end() ){
00044         it.scanNext();
00045         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
00046             break;
00047         }
00048         it.addDelta();
00049     }
00050     i2 += it.getIndex();
00051     return i2;
00052 }
00053
00054
00055
00056 /* 指定された桁に対応する行のデータ内の位置を調べる Ver0 */
00057 /* 指定された桁より、行が短い場合はpnLineAllColLenに行全体の表示桁数を返す */
00058 /* それ以外の場合はpnLineAllColLenに０をセットする
00059
00060     @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
00061 */
00062 CLogicInt CViewCalc::LineColmnToIndex2( const CLayout* pcLayout, CLayoutInt nColumn, CLayoutInt* pnLineAllColLen ) const
00063 {
00064     *pnLineAllColLen = CLayoutInt(0);
00065
00066     CLogicInt i2 = CLogicInt(0);
00067     CLayoutInt nPosX2 = CLayoutInt(0);
00068     CMemoryIterator it( pcLayout, GetTabSpace() );
00069     while( !it.end() ){
00070         it.scanNext();
00071         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
00072             break;
00073         }
00074         it.addDelta();
00075     }
00076     i2 += it.getIndex();
00077     if( i2 >= pcLayout->GetLength() ){
00078         nPosX2 += it.getColumn();
00079         *pnLineAllColLen = nPosX2;
00080     }
00081     return i2;
00082 }
00083
00084
00085
00086
00087
00088 /*
00089 ||  指定された行のデータ内の位置に対応する桁の位置を調べる
00090 ||
00091 ||  @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
00092 */
00093 CLayoutInt CViewCalc::LineIndexToColmn( const CLayout* pcLayout, CLogicInt nIndex ) const
00094 {
00095     //  以下、iterator版
00096     CLayoutInt nPosX2 = CLayoutInt(0);
00097     CMemoryIterator it( pcLayout, GetTabSpace() );
00098     while( !it.end() ){
00099         it.scanNext();
00100         if ( it.getIndex() + it.getIndexDelta() > nIndex ){
00101             break;
00102         }
00103         it.addDelta();
00104     }
00105     nPosX2 += it.getColumn();
00106     return nPosX2;
00107 }
00108
00109
00110 /*
00111 ||  指定された行のデータ内の位置に対応する桁の位置を調べる
00112 ||
00113 ||  @@@ 2002.09.28 YAZAKI CDocLine版
00114 */
00115 CLayoutInt CViewCalc::LineIndexToColmn( const CDocLine* pcDocLine, CLogicInt nIndex ) const
00116 {
00117     CLayoutInt nPosX2 = CLayoutInt(0);
00118     CMemoryIterator it( pcDocLine, GetTabSpace() );
00119     while( !it.end() ){
00120         it.scanNext();
00121         if ( it.getIndex() + it.getIndexDelta() > nIndex ){
00122             break;
00123         }
00124         it.addDelta();
00125     }
00126     nPosX2 += it.getColumn();
00127     return nPosX2;
00128 }
00129
00130
00131
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCalc.h

sakura_core

CViewCalc.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CViewCalc

Sakura-Editorに対してSat Nov 17 20:26:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCalc.h ソースファイル

sakura_core

CViewCalc.h

説明を見る。
00001 /*
00002     X値の単位変換関数群。
00003 */
00004
00005 #pragma once
00006
00007 class CLayout;
00008 class CDocLine;
00009 class CEditView;
00010
00011 class CViewCalc{
00012 protected:
00013     //外部依存
00014     CLayoutInt GetTabSpace() const;
00015
00016 public:
00017     CViewCalc(const CEditView* pOwner) : m_pOwner(pOwner) { }
00018     virtual ~CViewCalc(){}
00019
00020     //単位変換: レイアウト→ロジック
00021     CLogicInt  LineColmnToIndex ( const CLayout*  pcLayout,  CLayoutInt nColumn ) const;        /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */     // @@@ 2002.09.28 YAZAKI
00022     CLogicInt  LineColmnToIndex ( const CDocLine* pcDocLine, CLayoutInt nColumn ) const;        /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */     // @@@ 2002.09.28 YAZAKI
00023     CLogicInt  LineColmnToIndex2( const CLayout*  pcLayout,  CLayoutInt nColumn, CLayoutInt* pnLineAllColLen ) const;   /* 指定された桁に対応する行のデータ内の位置を調べる Ver0 */     // @@@ 2002.09.28 YAZAKI
00024
00025     //単位変換: ロジック→レイアウト
00026     CLayoutInt LineIndexToColmn ( const CLayout*  pcLayout,  CLogicInt nIndex ) const;      // 指定された行のデータ内の位置に対応する桁の位置を調べる    // @@@ 2002.09.28 YAZAKI
00027     CLayoutInt LineIndexToColmn ( const CDocLine* pcLayout,  CLogicInt nIndex ) const;      // 指定された行のデータ内の位置に対応する桁の位置を調べる    // @@@ 2002.09.28 YAZAKI
00028
00029 private:
00030     const CEditView* m_pOwner;
00031 };
Sakura-Editorに対してSat Nov 17 20:24:46 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander.cpp

sakura_core

CViewCommander.cpp

CEditViewクラスのコマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "CViewCommander.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 "CControlTray.h"
#include "CWaitCursor.h"
#include "CSplitterWnd.h"
#include "CSMacroMgr.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"
#include "convert/CConvert_Base64Decode.h"
#include "convert/CConvert_UuDecode.h"
#include "io/CBinaryStream.h"
#include "CEditApp.h"
#include "util/window.h"
#include "util/file.h"
#include "util/module.h"
#include "util/shell.h"
#include "util/string_ex2.h"
#include "util/os.h"
#include "CFileWrite.h"
#include "charset/CCodeFactory.h"
#include "CFileLoad.h"

ソースコードを見る。

マクロ定義

#define CTAGS_COMMAND _T("ctags.exe")

説明

CEditViewクラスのコマンド処理系関数群

作者:
Norio Nakatani
日付:
1998/07/17 作成

CViewCommander.cpp で定義されています。

マクロ定義

#define CTAGS_COMMAND _T("ctags.exe")

参照元 CViewCommander::Command_TagsMake().

Sakura-Editorに対してSat Nov 17 20:26:59 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander.cpp ソースファイル

sakura_core

CViewCommander.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 // 2007.10.25 kobake CViewCommanderクラスに分離
00022
00023 #include "stdafx.h"
00024 #include "CViewCommander.h"
00025
00026 #include <stdlib.h>
00027 #include <io.h>
00028 #include <mbstring.h>
00029 #include "sakura_rc.h"
00030 #include "CEditView.h"
00031 #include "debug.h"
00032 #include "funccode.h"
00033 #include "CRunningTimer.h"
00034 #include "charcode.h"
00035 #include "CControlTray.h"
00036 #include "CWaitCursor.h"
00037 #include "CSplitterWnd.h"
00038 //@@@ 2002.2.2 YAZAKI マクロはCSMacroMgrに統一
00039 #include "CSMacroMgr.h"
00040 #include "CDlgTypeList.h"
00041 #include "CDlgProperty.h"
00042 #include "CDlgCompare.h"
00043 #include "global.h"
00044 #include <htmlhelp.h>
00045 #include "CRunningtimer.h"
00046 #include "CDlgExec.h"
00047 #include "CDlgAbout.h"  //Dec. 24, 2000 JEPRO 追加
00048 #include "COpe.h"
00049 #include "COpeBlk.h"
00050 #include "CLayout.h"
00051 #include "CEditWnd.h"
00052 #include "CFuncInfoArr.h"
00053 #include "CMarkMgr.h"
00054 #include "CDocLine.h"
00055 #include "CSMacroMgr.h"
00056 #include "mymessage.h"
00057 #include "CDlgCancel.h"// 2002/2/8 hor
00058 #include "CPrintPreview.h"
00059 #include "CMemoryIterator.h"    // @@@ 2002.09.28 YAZAKI
00060 #include "CDlgCancel.h"
00061 #include "CDlgTagJumpList.h"
00062 #include "CDlgTagsMake.h"   //@@@ 2003.05.12 MIK
00063 #include "COsVersionInfo.h"
00064 #include "my_icmp.h"
00065 #include "convert/CConvert_Base64Decode.h"
00066 #include "convert/CConvert_UuDecode.h"
00067 #include "io/CBinaryStream.h"
00068 #include "CEditApp.h"
00069 #include "util/window.h"
00070 #include "util/file.h"
00071 #include "util/module.h"
00072 #include "util/shell.h"
00073 #include "util/string_ex2.h"
00074 #include "util/os.h"
00075 #include "CEditView.h"
00076 #include "CEditWnd.h"
00077 #include "CFileWrite.h"
00078 #include "charset/CCodeFactory.h"
00079 #include "CFileLoad.h"
00080
00081 //外部依存
00082 CEditDoc* CViewCommander::GetDocument()
00083 {
00084     return m_pCommanderView->m_pcEditDoc;
00085 }
00086 CEditWnd* CViewCommander::GetEditWindow()
00087 {
00088     return m_pCommanderView->m_pcEditWnd;
00089 }
00090 DLLSHAREDATA* CViewCommander::GetShareData()
00091 {
00092     return m_pCommanderView->m_pShareData;
00093 }
00094 HWND CViewCommander::GetMainWindow()
00095 {
00096     return ::GetParent( m_pCommanderView->m_hwndParent );
00097 }
00098 HINSTANCE CViewCommander::GetInstance()
00099 {
00100     return m_pCommanderView->m_hInstance;
00101 }
00102 COpeBlk* CViewCommander::GetOpeBlk()
00103 {
00104     return m_pCommanderView->m_pcOpeBlk;
00105 }
00106 void CViewCommander::ClearOpeBlk()
00107 {
00108     delete m_pCommanderView->m_pcOpeBlk;
00109     m_pCommanderView->m_pcOpeBlk=NULL;
00110 }
00111 void CViewCommander::SetOpeBlk(COpeBlk* p)
00112 {
00113     m_pCommanderView->m_pcOpeBlk = p;
00114 }
00115 CLayoutRange& CViewCommander::GetSelect()
00116 {
00117     return m_pCommanderView->GetSelectionInfo().m_sSelect;
00118 }
00119 CCaret& CViewCommander::GetCaret()
00120 {
00121     return m_pCommanderView->GetCaret();
00122 }
00123
00124
00125
00126 /* コマンドコードによる処理振り分け */
00127 BOOL CViewCommander::HandleCommand(
00128     EFunctionCode   nCommand,
00129     bool            bRedraw,
00130     LPARAM          lparam1,
00131     LPARAM          lparam2,
00132     LPARAM          lparam3,
00133     LPARAM          lparam4
00134 )
00135 {
00136     BOOL    bRet = TRUE;
00137     bool    bRepeat = false;
00138     int     nFuncID;
00139
00140     //  May. 19, 2006 genta 上位16bitに送信元の識別子が入るように変更したので
00141     //  下位16ビットのみを取り出す
00142     int nCommandFrom = HIWORD( nCommand );
00143     nCommand = (EFunctionCode)LOWORD( nCommand );
00144
00145
00146     // -------------------------------------
00147     //  Jan. 10, 2005 genta
00148     //  Call message translators
00149     // -------------------------------------
00150     m_pCommanderView->TranslateCommand_grep( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 );
00151     m_pCommanderView->TranslateCommand_isearch( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 );
00152
00153     //  Aug, 14. 2000 genta
00154     if( GetDocument()->IsModificationForbidden( nCommand ) ){
00155         return TRUE;
00156     }
00157
00158     ++GetDocument()->m_nCommandExecNum;     /* コマンド実行回数 */
00159 //  if( nCommand != F_COPY ){
00160         /* 辞書Tipを消す */
00161         m_pCommanderView->m_cTipWnd.Hide();
00162         m_pCommanderView->m_dwTipTimer = ::GetTickCount();  /* 辞書Tip起動タイマー */
00163 //  }
00164     /* 印刷プレビューモードか */
00165 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00166     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
00167     if( pCEditWnd->m_pPrintPreview && F_PRINT_PREVIEW != nCommand ){
00168         ::MessageBeep( MB_ICONHAND );
00169         return -1;
00170     }
00171     /* キーリピート状態 */
00172     if( m_bPrevCommand == nCommand ){
00173         bRepeat = TRUE;
00174     }
00175     m_bPrevCommand = nCommand;
00176     if( GetShareData()->m_bRecordingKeyMacro &&                                 /* キーボードマクロの記録中 */
00177         GetShareData()->m_hwndRecordingKeyMacro == GetMainWindow()  /* キーボードマクロを記録中のウィンドウ */
00178     ){
00179         /* キーリピート状態をなくする */
00180         bRepeat = FALSE;
00181         /* キーマクロに記録可能な機能かどうかを調べる */
00182         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00183         if( CSMacroMgr::CanFuncIsKeyMacro( nCommand ) ){
00184             /* キーマクロのバッファにデータ追加 */
00185             //@@@ 2002.1.24 m_CKeyMacroMgrをCEditDocへ移動
00186             GetDocument()->m_pcSMacroMgr->Append( STAND_KEYMACRO, nCommand, lparam1, m_pCommanderView );
00187         }
00188     }
00189     /* キーボードマクロの実行中 */
00190     if( m_pCommanderView->m_bExecutingKeyMacro ){
00191         /* キーリピート状態をなくする */
00192         bRepeat = FALSE;
00193     }
00194
00195     //  From Here Sep. 29, 2001 genta マクロの実行機能追加
00196     if( F_USERMACRO_0 <= nCommand && nCommand < F_USERMACRO_0 + MAX_CUSTMACRO ){
00197         m_pCommanderView->m_bExecutingKeyMacro = true;
00198         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一（インターフェースの変更）
00199         if( !GetDocument()->m_pcSMacroMgr->Exec( nCommand - F_USERMACRO_0, GetInstance(), m_pCommanderView )){
00200             InfoMessage(
00201                 this->m_pCommanderView->m_hwndParent,
00202                 _T("マクロ %d (%ls) の実行に失敗しました。"),
00203                 nCommand - F_USERMACRO_0,
00204                 GetDocument()->m_pcSMacroMgr->GetFile( nCommand - F_USERMACRO_0 )
00205             );
00206         }
00207         m_pCommanderView->m_bExecutingKeyMacro = false;
00208         return TRUE;
00209     }
00210     //  To Here Sep. 29, 2001 genta マクロの実行機能追加
00211
00212     // -------------------------------------
00213     //  Jan. 10, 2005 genta
00214     //  Call mode basis message handler
00215     // -------------------------------------
00216     m_pCommanderView->PreprocessCommand_hokan(nCommand);
00217     if( m_pCommanderView->ProcessCommand_isearch( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 ))
00218         return TRUE;
00219
00220     // -------------------------------------
00221     //  Jan. 10, 2005 genta コメント
00222     //  ここより前ではUndoバッファの準備ができていないので
00223     //  文書の操作を行ってはいけない
00224     //@@@ 2002.2.2 YAZAKI HandleCommand内でHandleCommandを呼び出せない問題に対処（何か副作用がある？）
00225     if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00226
00227     }
00228     else {
00229         SetOpeBlk(new COpeBlk);
00230     }
00231
00232     //  Jan. 10, 2005 genta コメント
00233     //  ここより後ではswitchの後ろでUndoを正しく登録するため，
00234     //  途中で処理の打ち切りを行ってはいけない
00235     // -------------------------------------
00236
00237     switch( nCommand ){
00238     case F_WCHAR:   /* 文字入力 */
00239         {
00240             /* コントロールコード入力禁止 */
00241             if(WCODE::isControlCode((wchar_t)lparam1)){
00242                 ::MessageBeep( MB_ICONHAND );
00243             }else{
00244                 Command_WCHAR( (wchar_t)lparam1 );
00245             }
00246         }
00247         break;
00248
00249     /* ファイル操作系 */
00250     case F_FILENEW:     Command_FILENEW();break;            /* 新規作成 */
00251     //  Oct. 2, 2001 genta マクロ用機能拡張
00252     case F_FILEOPEN:            Command_FILEOPEN((const WCHAR*)lparam1);break;          /* ファイルを開く */
00253     case F_FILEOPEN_DROPDOWN:   Command_FILEOPEN((const WCHAR*)lparam1);break;          /* ファイルを開く(ドロップダウン) */  //@@@ 2002.06.15 MIK
00254     case F_FILESAVE:            bRet = Command_FILESAVE();break;    /* 上書き保存 */
00255     case F_FILESAVEAS_DIALOG:   bRet = Command_FILESAVEAS_DIALOG();break;   /* 名前を付けて保存 */
00256     case F_FILESAVEAS:          bRet = Command_FILESAVEAS((const WCHAR*)lparam1);break; /* 名前を付けて保存 */
00257     case F_FILESAVEALL:         bRet = Command_FILESAVEALL();break; /* 全ての編集ウィンドウで上書き保存 */ // Jan. 23, 2005 genta
00258     case F_FILESAVE_QUIET:      bRet = Command_FILESAVE(false,false); break;    /* 静かに上書き保存 */ // Jan. 24, 2005 genta
00259     case F_FILESAVECLOSE:
00260         //  Feb. 28, 2004 genta 保存＆閉じる
00261         //  保存が不要なら単に閉じる
00262         if( Command_FILESAVE( false, true )){
00263             Command_WINCLOSE();
00264         }
00265         break;
00266     case F_FILECLOSE:                                       //閉じて(無題) //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00267         Command_FILECLOSE();
00268         break;
00269     case F_FILECLOSE_OPEN:  /* 閉じて開く */
00270         Command_FILECLOSE_OPEN();
00271         break;
00272     case F_FILE_REOPEN:             Command_FILE_REOPEN( GetDocument()->m_nCharCode, lparam1!=0 );break;//  Dec. 4, 2002 genta
00273     case F_FILE_REOPEN_SJIS:        Command_FILE_REOPEN( CODE_SJIS, lparam1!=0 );break;     //SJISで開き直す
00274     case F_FILE_REOPEN_JIS:         Command_FILE_REOPEN( CODE_JIS, lparam1!=0 );break;      //JISで開き直す
00275     case F_FILE_REOPEN_EUC:         Command_FILE_REOPEN( CODE_EUC, lparam1!=0 );break;      //EUCで開き直す
00276     case F_FILE_REOPEN_UNICODE:     Command_FILE_REOPEN( CODE_UNICODE, lparam1!=0 );break;  //Unicodeで開き直す
00277     case F_FILE_REOPEN_UNICODEBE:   Command_FILE_REOPEN( CODE_UNICODEBE, lparam1!=0 );break;    //UnicodeBEで開き直す
00278     case F_FILE_REOPEN_UTF8:        Command_FILE_REOPEN( CODE_UTF8, lparam1!=0 );break;     //UTF-8で開き直す
00279     case F_FILE_REOPEN_UTF7:        Command_FILE_REOPEN( CODE_UTF7, lparam1!=0 );break;     //UTF-7で開き直す
00280     case F_PRINT:               Command_PRINT();break;                  /* 印刷 */
00281     case F_PRINT_PREVIEW:       Command_PRINT_PREVIEW();break;          /* 印刷プレビュー */
00282     case F_PRINT_PAGESETUP:     Command_PRINT_PAGESETUP();break;        /* 印刷ページ設定 */ //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00283     case F_OPEN_HfromtoC:       bRet = Command_OPEN_HfromtoC( (BOOL)lparam1 );break;    /* 同名のC/C++ヘッダ(ソース)を開く */   //Feb. 7, 2001 JEPRO 追加
00284     case F_OPEN_HHPP:           bRet = Command_OPEN_HHPP( (BOOL)lparam1, TRUE );break;      /* 同名のC/C++ヘッダファイルを開く */  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00285     case F_OPEN_CCPP:           bRet = Command_OPEN_CCPP( (BOOL)lparam1, TRUE );break;      /* 同名のC/C++ソースファイルを開く */  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00286     case F_ACTIVATE_SQLPLUS:    Command_ACTIVATE_SQLPLUS();break;       /* Oracle SQL*Plusをアクティブ表示 */
00287     case F_PLSQL_COMPILE_ON_SQLPLUS:                                    /* Oracle SQL*Plusで実行 */
00288         Command_PLSQL_COMPILE_ON_SQLPLUS();
00289         break;
00290     case F_BROWSE:              Command_BROWSE();break;             /* ブラウズ */
00291     case F_READONLY:            Command_READONLY();break;           /* 読み取り専用 */
00292     case F_PROPERTY_FILE:       Command_PROPERTY_FILE();break;      /* ファイルのプロパティ */
00293     case F_EXITALLEDITORS:      Command_EXITALLEDITORS();break;     /* 編集の全終了 */    // 2007.02.13 ryoji 追加
00294     case F_EXITALL:             Command_EXITALL();break;            /* サクラエディタの全終了 */ //Dec. 26, 2000 JEPRO 追加
00295     case F_PUTFILE:             Command_PUTFILE((LPCWSTR)lparam1, (ECodeType)lparam2, (int)lparam3);break;  /* 作業中ファイルの一時出力 */ //maru 2006.12.10
00296     case F_INSFILE:             Command_INSFILE((LPCWSTR)lparam1, (ECodeType)lparam2, (int)lparam3);break;  /* キャレット位置にファイル挿入 */ //maru 2006.12.10
00297
00298     /* 編集系 */
00299     case F_UNDO:                Command_UNDO();break;               /* 元に戻す(Undo) */
00300     case F_REDO:                Command_REDO();break;               /* やり直し(Redo) */
00301     case F_DELETE:              Command_DELETE(); break;            //削除
00302     case F_DELETE_BACK:         Command_DELETE_BACK(); break;       //カーソル前を削除
00303     case F_WordDeleteToStart:   Command_WordDeleteToStart(); break; //単語の左端まで削除
00304     case F_WordDeleteToEnd:     Command_WordDeleteToEnd(); break;   //単語の右端まで削除
00305     case F_WordDelete:          Command_WordDelete(); break;        //単語削除
00306     case F_WordCut:             Command_WordCut(); break;           //単語切り取り
00307     case F_LineCutToStart:      Command_LineCutToStart(); break;    //行頭まで切り取り(改行単位)
00308     case F_LineCutToEnd:        Command_LineCutToEnd(); break;      //行末まで切り取り(改行単位)
00309     case F_LineDeleteToStart:   Command_LineDeleteToStart(); break; //行頭まで削除(改行単位)
00310     case F_LineDeleteToEnd:     Command_LineDeleteToEnd(); break;   //行末まで削除(改行単位)
00311     case F_CUT_LINE:            Command_CUT_LINE();break;           //行切り取り(折り返し単位)
00312     case F_DELETE_LINE:         Command_DELETE_LINE();break;        //行削除(折り返し単位)
00313     case F_DUPLICATELINE:       Command_DUPLICATELINE();break;      //行の二重化(折り返し単位)
00314     case F_INDENT_TAB:          Command_INDENT_TAB();break;         //TABインデント
00315     case F_UNINDENT_TAB:        Command_UNINDENT( WCODE::TAB );break;       //逆TABインデント
00316     case F_INDENT_SPACE:                                            //SPACEインデント
00317         /* テキストが２行以上にまたがって選択されているか */
00318         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() && !GetSelect().IsLineOne() ){
00319             Command_INDENT( WCODE::SPACE );
00320         }
00321         else{
00322             /* wchar_t1個分の文字入力 */
00323             Command_WCHAR( L' ' );
00324         }
00325         break;
00326     case F_UNINDENT_SPACE:          Command_UNINDENT( WCODE::SPACE );break; //逆SPACEインデント
00327 //  case F_WORDSREFERENCE:          Command_WORDSREFERENCE();break;     /* 単語リファレンス */
00328     case F_LTRIM:                   Command_TRIM(TRUE);break;           // 2001.12.03 hor
00329     case F_RTRIM:                   Command_TRIM(FALSE);break;          // 2001.12.03 hor
00330     case F_SORT_ASC:                Command_SORT(TRUE);break;           // 2001.12.06 hor
00331     case F_SORT_DESC:               Command_SORT(FALSE);break;          // 2001.12.06 hor
00332     case F_MERGE:                   Command_MERGE();break;              // 2001.12.06 hor
00333     case F_RECONVERT:               Command_Reconvert();break;          /* メニューからの再変換対応 minfu 2002.04.09 */
00334
00335     /* カーソル移動系 */
00336     case F_IME_CHAR:        Command_IME_CHAR( (WORD)lparam1 ); break;                   //全角文字入力
00337     case F_UP:              Command_UP( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, bRepeat ); break;                //カーソル上移動
00338     case F_DOWN:            Command_DOWN( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, bRepeat ); break;          //カーソル下移動
00339     case F_LEFT:            Command_LEFT( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, bRepeat ); break;          //カーソル左移動
00340     case F_RIGHT:           Command_RIGHT( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, FALSE, bRepeat ); break;  //カーソル右移動
00341     case F_UP2:             Command_UP2( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;                        //カーソル上移動(２行づつ)
00342     case F_DOWN2:           Command_DOWN2( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;                  //カーソル下移動(２行づつ)
00343     case F_WORDLEFT:        Command_WORDLEFT( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;               /* 単語の左端に移動 */
00344     case F_WORDRIGHT:       Command_WORDRIGHT( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;              /* 単語の右端に移動 */
00345     //  0ct. 29, 2001 genta マクロ向け機能拡張
00346     case F_GOLINETOP:       Command_GOLINETOP( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, lparam1  ); break;        //行頭に移動(折り返し単位)
00347     case F_GOLINEEND:       Command_GOLINEEND( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, FALSE ); break;       //行末に移動(折り返し単位)
00348 //  case F_ROLLDOWN:        Command_ROLLDOWN( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;               //スクロールダウン
00349 //  case F_ROLLUP:          Command_ROLLUP( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;                 //スクロールアップ
00350     case F_HalfPageUp:      Command_HalfPageUp( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;             //半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00351     case F_HalfPageDown:    Command_HalfPageDown( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;           //半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00352     case F_1PageUp:         Command_1PageUp( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;                    //１ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00353     case F_1PageDown:       Command_1PageDown( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;              //１ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00354     case F_GOFILETOP:       Command_GOFILETOP( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;              //ファイルの先頭に移動
00355     case F_GOFILEEND:       Command_GOFILEEND( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;              //ファイルの最後に移動
00356     case F_CURLINECENTER:   Command_CURLINECENTER(); break;                             /* カーソル行をウィンドウ中央へ */
00357     case F_JUMPHIST_PREV:   Command_JUMPHIST_PREV(); break;                             //移動履歴: 前へ
00358     case F_JUMPHIST_NEXT:   Command_JUMPHIST_NEXT(); break;                             //移動履歴: 次へ
00359     case F_JUMPHIST_SET:    Command_JUMPHIST_SET(); break;                              //現在位置を移動履歴に登録
00360     case F_WndScrollDown:   Command_WndScrollDown(); break;                             //テキストを１行下へスクロール    // 2001/06/20 asa-o
00361     case F_WndScrollUp:     Command_WndScrollUp(); break;                               //テキストを１行上へスクロール    // 2001/06/20 asa-o
00362     case F_GONEXTPARAGRAPH: Command_GONEXTPARAGRAPH( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;            //次の段落へ進む
00363     case F_GOPREVPARAGRAPH: Command_GOPREVPARAGRAPH( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ); break;            //前の段落へ戻る
00364
00365     /* 選択系 */
00366     case F_SELECTWORD:      Command_SELECTWORD( );break;                    //現在位置の単語選択
00367     case F_SELECTALL:       Command_SELECTALL();break;                      //すべて選択
00368     case F_BEGIN_SEL:       Command_BEGIN_SELECT();break;                   /* 範囲選択開始 */
00369     case F_UP_SEL:          Command_UP( TRUE, bRepeat, lparam1 ); break;    //(範囲選択)カーソル上移動
00370     case F_DOWN_SEL:        Command_DOWN( TRUE, bRepeat ); break;           //(範囲選択)カーソル下移動
00371     case F_LEFT_SEL:        Command_LEFT( TRUE, bRepeat ); break;           //(範囲選択)カーソル左移動
00372     case F_RIGHT_SEL:       Command_RIGHT( TRUE, FALSE, bRepeat ); break;   //(範囲選択)カーソル右移動
00373     case F_UP2_SEL:         Command_UP2( TRUE ); break;                     //(範囲選択)カーソル上移動(２行ごと)
00374     case F_DOWN2_SEL:       Command_DOWN2( TRUE );break;                    //(範囲選択)カーソル下移動(２行ごと)
00375     case F_WORDLEFT_SEL:    Command_WORDLEFT( TRUE );break;                 //(範囲選択)単語の左端に移動
00376     case F_WORDRIGHT_SEL:   Command_WORDRIGHT( TRUE );break;                //(範囲選択)単語の右端に移動
00377     case F_GOLINETOP_SEL:   Command_GOLINETOP( TRUE, 0 );break;             //(範囲選択)行頭に移動(折り返し単位)
00378     case F_GOLINEEND_SEL:   Command_GOLINEEND( TRUE, FALSE );break;         //(範囲選択)行末に移動(折り返し単位)
00379 //  case F_ROLLDOWN_SEL:    Command_ROLLDOWN( TRUE ); break;                //(範囲選択)スクロールダウン
00380 //  case F_ROLLUP_SEL:      Command_ROLLUP( TRUE ); break;                  //(範囲選択)スクロールアップ
00381     case F_HalfPageUp_Sel:  Command_HalfPageUp( TRUE ); break;              //(範囲選択)半ページアップ
00382     case F_HalfPageDown_Sel:Command_HalfPageDown( TRUE ); break;            //(範囲選択)半ページダウン
00383     case F_1PageUp_Sel:     Command_1PageUp( TRUE ); break;                 //(範囲選択)１ページアップ
00384     case F_1PageDown_Sel:   Command_1PageDown( TRUE ); break;               //(範囲選択)１ページダウン
00385     case F_GOFILETOP_SEL:   Command_GOFILETOP( TRUE );break;                //(範囲選択)ファイルの先頭に移動
00386     case F_GOFILEEND_SEL:   Command_GOFILEEND( TRUE );break;                //(範囲選択)ファイルの最後に移動
00387     case F_GONEXTPARAGRAPH_SEL: Command_GONEXTPARAGRAPH( TRUE ); break;         //次の段落へ進む
00388     case F_GOPREVPARAGRAPH_SEL: Command_GOPREVPARAGRAPH( TRUE ); break;         //前の段落へ戻る
00389
00390     /* 矩形選択系 */
00391 //  case F_BOXSELALL:       Command_BOXSELECTALL();break;       //矩形ですべて選択
00392     case F_BEGIN_BOX:       Command_BEGIN_BOXSELECT();break;    /* 矩形範囲選択開始 */
00393 //  case F_UP_BOX:          Command_UP_BOX( bRepeat ); break;           //(矩形選択)カーソル上移動
00394 //  case F_DOWN_BOX:        Command_DOWN( TRUE, bRepeat ); break;       //(矩形選択)カーソル下移動
00395 //  case F_LEFT_BOX:        Command_LEFT( TRUE, bRepeat ); break;       //(矩形選択)カーソル左移動
00396 //  case F_RIGHT_BOX:       Command_RIGHT( TRUE, FALSE, bRepeat ); break;//(矩形選択)カーソル右移動
00397 //  case F_UP2_BOX:         Command_UP2( TRUE ); break;                 //(矩形選択)カーソル上移動(２行ごと)
00398 //  case F_DOWN2_BOX:       Command_DOWN2( TRUE );break;                //(矩形選択)カーソル下移動(２行ごと)
00399 //  case F_WORDLEFT_BOX:    Command_WORDLEFT( TRUE );break;             //(矩形選択)単語の左端に移動
00400 //  case F_WORDRIGHT_BOX:   Command_WORDRIGHT( TRUE );break;            //(矩形選択)単語の右端に移動
00401 //  case F_GOLINETOP_BOX:   Command_GOLINETOP( TRUE, FALSE );break;     //(矩形選択)行頭に移動(折り返し単位)
00402 //  case F_GOLINEEND_BOX:   Command_GOLINEEND( TRUE, FALSE );break;     //(矩形選択)行末に移動(折り返し単位)
00403 //  case F_HalfPageUp_Box:  Command_HalfPageUp( TRUE ); break;          //(矩形選択)半ページアップ
00404 //  case F_HalfPageDown_Box:Command_HalfPageDown( TRUE ); break;        //(矩形選択)半ページダウン
00405 //  case F_1PageUp_Box:     Command_1PageUp( TRUE ); break;             //(矩形選択)１ページアップ
00406 //  case F_1PageDown_Box:   Command_1PageDown( TRUE ); break;           //(矩形選択)１ページダウン
00407 //  case F_GOFILETOP_Box:   Command_GOFILETOP( TRUE );break;            //(矩形選択)ファイルの先頭に移動
00408 //  case F_GOFILEEND_Box:   Command_GOFILEEND( TRUE );break;            //(矩形選択)ファイルの最後に移動
00409
00410     /* クリップボード系 */
00411     case F_CUT:                     Command_CUT();break;                    //切り取り(選択範囲をクリップボードにコピーして削除)
00412     case F_COPY:                    Command_COPY( false, GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy );break;           //コピー(選択範囲をクリップボードにコピー)
00413     case F_COPY_ADDCRLF:            Command_COPY( false, true );break;      //折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
00414     case F_COPY_CRLF:               Command_COPY( false, GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy, EOL_CRLF );break; //CRLF改行でコピー(選択範囲をクリップボードにコピー)
00415     case F_PASTE:                   Command_PASTE();break;                  //貼り付け(クリップボードから貼り付け)
00416     case F_PASTEBOX:                Command_PASTEBOX();break;               //矩形貼り付け(クリップボードから矩形貼り付け)
00417     case F_INSTEXT_W:               Command_INSTEXT( bRedraw, (const wchar_t*)lparam1, CLogicInt(-1), lparam2!=0 );break;/* テキストを貼り付け */ // 2004.05.14 Moca 長さを示す引数追加(-1は\0終端まで)
00418     case F_ADDTAIL_W:               Command_ADDTAIL( (const wchar_t*)lparam1, (int)lparam2 );break; /* 最後にテキストを追加 */
00419     case F_COPYFNAME:               Command_COPYFILENAME();break;           //このファイル名をクリップボードにコピー / /2002/2/3 aroka
00420     case F_COPYPATH:                Command_COPYPATH();break;               //このファイルのパス名をクリップボードにコピー
00421     case F_COPYTAG:                 Command_COPYTAG();break;                //このファイルのパス名とカーソル位置をコピー   //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00422     case F_COPYLINES:               Command_COPYLINES();break;              //選択範囲内全行コピー
00423     case F_COPYLINESASPASSAGE:      Command_COPYLINESASPASSAGE();break;     //選択範囲内全行引用符付きコピー
00424     case F_COPYLINESWITHLINENUMBER: Command_COPYLINESWITHLINENUMBER();break;//選択範囲内全行行番号付きコピー
00425     case F_CREATEKEYBINDLIST:       Command_CREATEKEYBINDLIST();break;      //キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 追加 //Dec. 25, 2000 復活
00426
00427     /* 挿入系 */
00428     case F_INS_DATE:                Command_INS_DATE();break;   //日付挿入
00429     case F_INS_TIME:                Command_INS_TIME();break;   //時刻挿入
00430     case F_CTRL_CODE_DIALOG:        Command_CtrlCode_Dialog();break;    /* コントロールコードの入力(ダイアログ) */ //@@@ 2002.06.02 MIK
00431
00432     /* 変換 */
00433     case F_TOLOWER:                 Command_TOLOWER();break;                /* 小文字 */
00434     case F_TOUPPER:                 Command_TOUPPER();break;                /* 大文字 */
00435     case F_TOHANKAKU:               Command_TOHANKAKU();break;              /* 全角→半角 */
00436     case F_TOHANKATA:               Command_TOHANKATA();break;              /* 全角カタカナ→半角カタカナ */   //Aug. 29, 2002 ai
00437     case F_TOZENEI:                 Command_TOZENEI();break;                /* 全角→半角 */                   //July. 30, 2001 Misaka
00438     case F_TOHANEI:                 Command_TOHANEI();break;                /* 半角→全角 */
00439     case F_TOZENKAKUKATA:           Command_TOZENKAKUKATA();break;          /* 半角＋全ひら→全角・カタカナ */    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00440     case F_TOZENKAKUHIRA:           Command_TOZENKAKUHIRA();break;          /* 半角＋全カタ→全角・ひらがな */    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00441     case F_HANKATATOZENKAKUKATA:    Command_HANKATATOZENKAKUKATA();break;   /* 半角カタカナ→全角カタカナ */
00442     case F_HANKATATOZENKAKUHIRA:    Command_HANKATATOZENKAKUHIRA();break;   /* 半角カタカナ→全角ひらがな */
00443     case F_TABTOSPACE:              Command_TABTOSPACE();break;             /* TAB→空白 */
00444     case F_SPACETOTAB:              Command_SPACETOTAB();break;             /* 空白→TAB */  //---- Stonee, 2001/05/27
00445     case F_CODECNV_AUTO2SJIS:       Command_CODECNV_AUTO2SJIS();break;      /* 自動判別→SJISコード変換 */
00446     case F_CODECNV_EMAIL:           Command_CODECNV_EMAIL();break;          /* E-Mail(JIS→SJIS)コード変換 */
00447     case F_CODECNV_EUC2SJIS:        Command_CODECNV_EUC2SJIS();break;       /* EUC→SJISコード変換 */
00448     case F_CODECNV_UNICODE2SJIS:    Command_CODECNV_UNICODE2SJIS();break;   /* Unicode→SJISコード変換 */
00449     case F_CODECNV_UNICODEBE2SJIS:  Command_CODECNV_UNICODEBE2SJIS();break; /* UnicodeBE→SJISコード変換 */
00450     case F_CODECNV_UTF82SJIS:       Command_CODECNV_UTF82SJIS();break;      /* UTF-8→SJISコード変換 */
00451     case F_CODECNV_UTF72SJIS:       Command_CODECNV_UTF72SJIS();break;      /* UTF-7→SJISコード変換 */
00452     case F_CODECNV_SJIS2JIS:        Command_CODECNV_SJIS2JIS();break;       /* SJIS→JISコード変換 */
00453     case F_CODECNV_SJIS2EUC:        Command_CODECNV_SJIS2EUC();break;       /* SJIS→EUCコード変換 */
00454     case F_CODECNV_SJIS2UTF8:       Command_CODECNV_SJIS2UTF8();break;      /* SJIS→UTF-8コード変換 */
00455     case F_CODECNV_SJIS2UTF7:       Command_CODECNV_SJIS2UTF7();break;      /* SJIS→UTF-7コード変換 */
00456     case F_BASE64DECODE:            Command_BASE64DECODE();break;           /* Base64デコードして保存 */
00457     case F_UUDECODE:                Command_UUDECODE();break;               /* uudecodeして保存 */  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00458
00459     /* 検索系 */
00460     case F_SEARCH_DIALOG:       Command_SEARCH_DIALOG();break;                                              //検索(単語検索ダイアログ)
00461     case F_SEARCH_BOX:          Command_SEARCH_BOX();break;     // Jan. 13, 2003 MIK                    //検索(ボックス)  // 2006.06.04 yukihane Command_SEARCH_BOX()
00462     case F_SEARCH_NEXT:         Command_SEARCH_NEXT( true, bRedraw, (HWND)lparam1, (const WCHAR*)lparam2 );break;   //次を検索
00463     case F_SEARCH_PREV:         Command_SEARCH_PREV( bRedraw, (HWND)lparam1 );break;                        //前を検索
00464     case F_REPLACE_DIALOG:  //置換(置換ダイアログ)
00465         /* 再帰処理対策 */
00466         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00467             ClearOpeBlk();
00468         }
00469         Command_REPLACE_DIALOG();   //@@@ 2002.2.2 YAZAKI ダイアログ呼び出しと、実行を分離
00470         break;
00471     case F_REPLACE:             Command_REPLACE( (HWND)lparam1 );break;         //置換実行 @@@ 2002.2.2 YAZAKI
00472     case F_REPLACE_ALL:         Command_REPLACE_ALL();break;        //すべて置換実行(通常) 2002.2.8 hor 2006.04.02 かろと
00473     case F_SEARCH_CLEARMARK:    Command_SEARCH_CLEARMARK();break;   //検索マークのクリア
00474     case F_GREP_DIALOG: //Grepダイアログの表示
00475         /* 再帰処理対策 */
00476         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00477             ClearOpeBlk();
00478         }
00479         Command_GREP_DIALOG();
00480         break;
00481     case F_GREP:            Command_GREP();break;                           //Grep
00482     case F_JUMP_DIALOG:     Command_JUMP_DIALOG();break;                    //指定行ヘジャンプダイアログの表示
00483     case F_JUMP:            Command_JUMP();break;                           //指定行ヘジャンプ
00484     case F_OUTLINE:         bRet = Command_FUNCLIST( (int)lparam1 );break;  //アウトライン解析
00485     case F_OUTLINE_TOGGLE:  bRet = Command_FUNCLIST( SHOW_TOGGLE );break;   //アウトライン解析(toggle) // 20060201 aroka
00486     case F_TAGJUMP:         Command_TAGJUMP(lparam1 != 0);break;            /* タグジャンプ機能 */ //   Apr. 03, 2003 genta 引数追加
00487     case F_TAGJUMP_CLOSE:   Command_TAGJUMP(true);break;                    /* タグジャンプ(元ウィンドウClose) */// Apr. 03, 2003 genta
00488     case F_TAGJUMPBACK:     Command_TAGJUMPBACK();break;                    /* タグジャンプバック機能 */
00489     case F_TAGS_MAKE:       Command_TagsMake();break;                       //タグファイルの作成   //@@@ 2003.04.13 MIK
00490     case F_DIRECT_TAGJUMP:  Command_TagJumpByTagsFile();break;              /* ダイレクトタグジャンプ機能 */   //@@@ 2003.04.15 MIK
00491     case F_TAGJUMP_KEYWORD: Command_TagJumpByTagsFileKeyword( (const wchar_t*)lparam1 );break;  /* @@ 2005.03.31 MIK キーワードを指定してダイレクトタグジャンプ機能 */
00492     case F_COMPARE:         Command_COMPARE();break;                        /* ファイル内容比較 */
00493     case F_DIFF_DIALOG:     Command_Diff_Dialog();break;                    /* DIFF差分表示(ダイアログ) */ //@@@ 2002.05.25 MIK
00494     case F_DIFF:            Command_Diff( (const WCHAR*)lparam1, (int)lparam2 );break;      /* DIFF差分表示 */  //@@@ 2002.05.25 MIK    // 2005.10.03 maru
00495     case F_DIFF_NEXT:       Command_Diff_Next();break;                      /* DIFF差分表示(次へ) */      //@@@ 2002.05.25 MIK
00496     case F_DIFF_PREV:       Command_Diff_Prev();break;                      /* DIFF差分表示(前へ) */      //@@@ 2002.05.25 MIK
00497     case F_DIFF_RESET:      Command_Diff_Reset();break;                     /* DIFF差分表示(全解除) */       //@@@ 2002.05.25 MIK
00498     case F_BRACKETPAIR:     Command_BRACKETPAIR();  break;                  //対括弧の検索
00499 // From Here 2001.12.03 hor
00500     case F_BOOKMARK_SET:    Command_BOOKMARK_SET();break;                   /* ブックマーク設定・解除 */
00501     case F_BOOKMARK_NEXT:   Command_BOOKMARK_NEXT();break;                  /* 次のブックマークへ */
00502     case F_BOOKMARK_PREV:   Command_BOOKMARK_PREV();break;                  /* 前のブックマークへ */
00503     case F_BOOKMARK_RESET:  Command_BOOKMARK_RESET();break;                 /* ブックマークの全解除 */
00504     case F_BOOKMARK_VIEW:   bRet = Command_FUNCLIST( (BOOL)lparam1 ,OUTLINE_BOOKMARK );break;   //アウトライン解析
00505 // To Here 2001.12.03 hor
00506     case F_BOOKMARK_PATTERN:Command_BOOKMARK_PATTERN();break;               // 2002.01.16 hor 指定パターンに一致する行をマーク
00507     case F_JUMP_SRCHSTARTPOS:   Command_JUMP_SRCHSTARTPOS();break;          // 検索開始位置へ戻る 02/06/26 ai
00508
00509     /* モード切り替え系 */
00510     case F_CHGMOD_INS:      Command_CHGMOD_INS();break;     //挿入／上書きモード切り替え
00511     // From Here 2003.06.23 Moca
00512     // F_CHGMOD_EOL_xxx はマクロに記録されないが、F_CHGMOD_EOLはマクロに記録されるので、マクロ関数を統合できるという手はず
00513     case F_CHGMOD_EOL_CRLF: HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_CRLF, 0, 0, 0 );break;    //入力する改行コードをCRLFに設定
00514     case F_CHGMOD_EOL_LF:   HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_LF, 0, 0, 0 );break;  //入力する改行コードをLFに設定
00515     case F_CHGMOD_EOL_CR:   HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_CR, 0, 0, 0 );break;  //入力する改行コードをCRに設定
00516     // 2006.09.03 Moca F_CHGMOD_EOLで break 忘れの修正
00517     case F_CHGMOD_EOL:      Command_CHGMOD_EOL( (enumEOLType)lparam1 );break;   //入力する改行コードを設定
00518     // To Here 2003.06.23 Moca
00519     case F_CANCEL_MODE:     Command_CANCEL_MODE();break;    //各種モードの取り消し
00520
00521     /* 設定系 */
00522     case F_SHOWTOOLBAR:     Command_SHOWTOOLBAR();break;    /* ツールバーの表示/非表示 */
00523     case F_SHOWFUNCKEY:     Command_SHOWFUNCKEY();break;    /* ファンクションキーの表示/非表示 */
00524     case F_SHOWTAB:         Command_SHOWTAB();break;        /* タブの表示/非表示 */ //@@@ 2003.06.10 MIK
00525     case F_SHOWSTATUSBAR:   Command_SHOWSTATUSBAR();break;  /* ステータスバーの表示/非表示 */
00526     case F_TYPE_LIST:       Command_TYPE_LIST();break;      /* タイプ別設定一覧 */
00527     case F_OPTION_TYPE:     Command_OPTION_TYPE();break;    /* タイプ別設定 */
00528     case F_OPTION:          Command_OPTION();break;         /* 共通設定 */
00529     case F_FONT:            Command_FONT();break;           /* フォント設定 */
00530     case F_WRAPWINDOWWIDTH: Command_WRAPWINDOWWIDTH();break;/* 現在のウィンドウ幅で折り返し */    //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00531     case F_FAVORITE:        Command_Favorite();break;       //履歴の管理   //@@@ 2003.04.08 MIK
00532     //  Jan. 29, 2005 genta 引用符の設定
00533     case F_SET_QUOTESTRING: Command_SET_QUOTESTRING((const WCHAR*)lparam1); break;
00534
00535     /* マクロ系 */
00536     case F_RECKEYMACRO:     Command_RECKEYMACRO();break;    /* キーマクロの記録開始／終了 */
00537     case F_SAVEKEYMACRO:    Command_SAVEKEYMACRO();break;   /* キーマクロの保存 */
00538     case F_LOADKEYMACRO:    Command_LOADKEYMACRO();break;   /* キーマクロの読み込み */
00539     case F_EXECKEYMACRO:                                    /* キーマクロの実行 */
00540         /* 再帰処理対策 */
00541         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00542             ClearOpeBlk();
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 != GetOpeBlk() ){  /* 操作ブロック */
00550             ClearOpeBlk();
00551         }
00552         //Command_EXECCOMMAND_DIALOG((const char*)lparam1); /* 外部コマンド実行 */
00553         Command_EXECCOMMAND_DIALOG();   /* 外部コマンド実行 */  //  引数つかってないみたいなので
00554         break;
00555     //  To Here Sept. 20, 2000
00556     case F_EXECCOMMAND:
00557         //Command_EXECCOMMAND((const char*)lparam1);
00558         Command_EXECCOMMAND((LPCWSTR)lparam1, (int)lparam2);    //  2006.12.03 maru 引数の拡張のため
00559         break;
00560
00561     /* カスタムメニュー */
00562     case F_MENU_RBUTTON:    /* 右クリックメニュー */
00563         /* 再帰処理対策 */
00564         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00565             ClearOpeBlk();
00566         }
00567         Command_MENU_RBUTTON();
00568         break;
00569     case F_CUSTMENU_1:  /* カスタムメニュー1 */
00570     case F_CUSTMENU_2:  /* カスタムメニュー2 */
00571     case F_CUSTMENU_3:  /* カスタムメニュー3 */
00572     case F_CUSTMENU_4:  /* カスタムメニュー4 */
00573     case F_CUSTMENU_5:  /* カスタムメニュー5 */
00574     case F_CUSTMENU_6:  /* カスタムメニュー6 */
00575     case F_CUSTMENU_7:  /* カスタムメニュー7 */
00576     case F_CUSTMENU_8:  /* カスタムメニュー8 */
00577     case F_CUSTMENU_9:  /* カスタムメニュー9 */
00578     case F_CUSTMENU_10: /* カスタムメニュー10 */
00579     case F_CUSTMENU_11: /* カスタムメニュー11 */
00580     case F_CUSTMENU_12: /* カスタムメニュー12 */
00581     case F_CUSTMENU_13: /* カスタムメニュー13 */
00582     case F_CUSTMENU_14: /* カスタムメニュー14 */
00583     case F_CUSTMENU_15: /* カスタムメニュー15 */
00584     case F_CUSTMENU_16: /* カスタムメニュー16 */
00585     case F_CUSTMENU_17: /* カスタムメニュー17 */
00586     case F_CUSTMENU_18: /* カスタムメニュー18 */
00587     case F_CUSTMENU_19: /* カスタムメニュー19 */
00588     case F_CUSTMENU_20: /* カスタムメニュー20 */
00589     case F_CUSTMENU_21: /* カスタムメニュー21 */
00590     case F_CUSTMENU_22: /* カスタムメニュー22 */
00591     case F_CUSTMENU_23: /* カスタムメニュー23 */
00592     case F_CUSTMENU_24: /* カスタムメニュー24 */
00593         /* 再帰処理対策 */
00594         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00595             ClearOpeBlk();
00596         }
00597         nFuncID = Command_CUSTMENU( nCommand - F_CUSTMENU_1 + 1 );
00598         if( 0 != nFuncID ){
00599             /* コマンドコードによる処理振り分け */
00600 //          HandleCommand( nFuncID, TRUE, 0, 0, 0, 0 );
00601 			::PostMessageCmd( GetMainWindow(), WM_COMMAND, MAKELONG( nFuncID, 0 ), (LPARAM)NULL );
00602         }
00603         break;
00604
00605     /* ウィンドウ系 */
00606     case F_SPLIT_V:         Command_SPLIT_V();break;    /* 上下に分割 */   //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00607     case F_SPLIT_H:         Command_SPLIT_H();break;    /* 左右に分割 */   //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00608     case F_SPLIT_VH:        Command_SPLIT_VH();break;   /* 縦横に分割 */   //Sept. 17, 2000 jepro 説明に「に」を追加
00609     case F_WINCLOSE:        Command_WINCLOSE();break;   //ウィンドウを閉じる
00610     case F_WIN_CLOSEALL:    /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」を左記のように変更
00611         //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00612         Command_FILECLOSEALL();
00613         break;
00614     case F_BIND_WINDOW:     Command_BIND_WINDOW();break;    //結合して表示 2004.07.14 Kazika 新規追加
00615     case F_CASCADE:         Command_CASCADE();break;        //重ねて表示
00616     case F_TILE_V:          Command_TILE_V();break;         //上下に並べて表示
00617     case F_TILE_H:          Command_TILE_H();break;         //左右に並べて表示
00618     case F_MAXIMIZE_V:      Command_MAXIMIZE_V();break;     //縦方向に最大化
00619     case F_MAXIMIZE_H:      Command_MAXIMIZE_H();break;     //横方向に最大化 //2001.02.10 by MIK
00620     case F_MINIMIZE_ALL:    Command_MINIMIZE_ALL();break;   /* すべて最小化 */    //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00621     case F_REDRAW:          Command_REDRAW();break;         /* 再描画 */
00622     case F_WIN_OUTPUT:      Command_WIN_OUTPUT();break;     //アウトプットウィンドウ表示
00623     case F_TRACEOUT:        Command_TRACEOUT((const wchar_t*)lparam1, (int)lparam2);break;      //マクロ用アウトプットウィンドウに表示 maru 2006.04.26
00624     case F_TOPMOST:         Command_WINTOPMOST( lparam1 );break;    //常に手前に表示 Moca
00625     case F_WINLIST:         Command_WINLIST( nCommandFrom );break;      /* ウィンドウ一覧ポップアップ表示処理 */   // 2006.03.23 fon // 2006.05.19 genta 引数追加
00626     case F_GROUPCLOSE:      Command_GROUPCLOSE();break;     /* グループを閉じる */      // 2007.06.20 ryoji 追加
00627     case F_NEXTGROUP:       Command_NEXTGROUP();break;      /* 次のグループ */            // 2007.06.20 ryoji 追加
00628     case F_PREVGROUP:       Command_PREVGROUP();break;      /* 前のグループ */            // 2007.06.20 ryoji 追加
00629     case F_TAB_MOVERIGHT:   Command_TAB_MOVERIGHT();break;  /* タブを右に移動 */     // 2007.06.20 ryoji 追加
00630     case F_TAB_MOVELEFT:    Command_TAB_MOVELEFT();break;   /* タブを左に移動 */     // 2007.06.20 ryoji 追加
00631     case F_TAB_SEPARATE:    Command_TAB_SEPARATE();break;   /* 新規グループ */            // 2007.06.20 ryoji 追加
00632     case F_TAB_JOINTNEXT:   Command_TAB_JOINTNEXT();break;  /* 次のグループに移動 */   // 2007.06.20 ryoji 追加
00633     case F_TAB_JOINTPREV:   Command_TAB_JOINTPREV();break;  /* 前のグループに移動 */   // 2007.06.20 ryoji 追加
00634
00635     /* 支援 */
00636     case F_HOKAN:           Command_HOKAN();break;          //入力補完
00637     case F_HELP_CONTENTS:   Command_HELP_CONTENTS();break;  /* ヘルプ目次 */               //Nov. 25, 2000 JEPRO 追加
00638     case F_HELP_SEARCH:     Command_HELP_SEARCH();break;    /* ヘルプトキーワード検索 */ //Nov. 25, 2000 JEPRO 追加
00639     case F_TOGGLE_KEY_SEARCH:   Command_ToggleKeySearch();break;    /* キャレット位置の単語を辞書検索する機能ON-OFF */   // 2006.03.24 fon
00640     case F_MENU_ALLFUNC:                                    /* コマンド一覧 */
00641         /* 再帰処理対策 */
00642         if( NULL != GetOpeBlk() ){  /* 操作ブロック */
00643             ClearOpeBlk();
00644         }
00645         Command_MENU_ALLFUNC();break;
00646     case F_EXTHELP1:    Command_EXTHELP1();break;       /* 外部ヘルプ１ */
00647     case F_EXTHTMLHELP: /* 外部HTMLヘルプ */
00648         //  Jul. 5, 2002 genta
00649         Command_EXTHTMLHELP( (const WCHAR*)lparam1, (const WCHAR*)lparam2 );
00650         break;
00651     case F_ABOUT:   Command_ABOUT();break;              /* バージョン情報 */ //Dec. 24, 2000 JEPRO 追加
00652
00653     /* その他 */
00654 //  case F_SENDMAIL:    Command_SENDMAIL();break;       /* メール送信 */
00655
00656     }
00657
00658     /* アンドゥバッファの処理 */
00659     if( NULL != GetOpeBlk() ){
00660         if( 0 < GetOpeBlk()->GetNum() ){    /* 操作の数を返す */
00661             /* 操作の追加 */
00662             GetDocument()->m_cOpeBuf.AppendOpeBlk( GetOpeBlk() );
00663
00664             GetEditWindow()->RedrawInactivePane();  //  他のペインの表示
00665         }else{
00666             delete GetOpeBlk();
00667         }
00668         SetOpeBlk(NULL);
00669     }
00670
00671     return bRet;
00672 }
00673
00674
00675
00677
00679 int CViewCommander::Command_UP( bool bSelect, bool bRepeat, int lines )
00680 {
00681     //  From Here Oct. 24, 2001 genta
00682     if( lines != 0 ){
00683         GetCaret().Cursor_UPDOWN( CLayoutInt(lines), FALSE );
00684         return 1;
00685     }
00686     //  To Here Oct. 24, 2001 genta
00687
00688
00689     int     nRepeat = 0;
00690
00691     /* キーリピート時のスクロールを滑らかにするか */
00692     if( !GetShareData()->m_Common.m_sGeneral.m_nRepeatedScroll_Smooth ){
00693         CLayoutInt i;
00694         if( !bRepeat ){
00695             i = CLayoutInt(-1);
00696         }else{
00697             i = -1 * GetShareData()->m_Common.m_sGeneral.m_nRepeatedScrollLineNum;  /* キーリピート時のスクロール行数 */
00698         }
00699         GetCaret().Cursor_UPDOWN( i, bSelect );
00700         nRepeat = -1 * (Int)i;
00701     }
00702     else{
00703         ++nRepeat;
00704         if( GetCaret().Cursor_UPDOWN( CLayoutInt(-1), bSelect )!=0 && bRepeat ){
00705             for( int i = 0; i < GetShareData()->m_Common.m_sGeneral.m_nRepeatedScrollLineNum - 1; ++i ){        /* キーリピート時のスクロール行数 */
00706                 ::UpdateWindow( m_pCommanderView->GetHwnd() );  //  YAZAKI
00707                 GetCaret().Cursor_UPDOWN( CLayoutInt(-1), bSelect );
00708                 ++nRepeat;
00709             }
00710         }
00711     }
00712     return nRepeat;
00713 }
00714
00715
00716
00717
00718 /* カーソル下移動 */
00719 int CViewCommander::Command_DOWN( bool bSelect, bool bRepeat )
00720 {
00721     int     nRepeat;
00722     nRepeat = 0;
00723     /* キーリピート時のスクロールを滑らかにするか */
00724     if( !GetShareData()->m_Common.m_sGeneral.m_nRepeatedScroll_Smooth ){
00725         CLayoutInt i;
00726         if( !bRepeat ){
00727             i = CLayoutInt(1);
00728         }else{
00729             i = GetShareData()->m_Common.m_sGeneral.m_nRepeatedScrollLineNum;   /* キーリピート時のスクロール行数 */
00730         }
00731         GetCaret().Cursor_UPDOWN( i, bSelect );
00732         nRepeat = (Int)i;
00733     }else{
00734         ++nRepeat;
00735         if( GetCaret().Cursor_UPDOWN(CLayoutInt(1),bSelect)!=0 && bRepeat ){
00736             for( int i = 0; i < GetShareData()->m_Common.m_sGeneral.m_nRepeatedScrollLineNum - 1; ++i ){    /* キーリピート時のスクロール行数 */
00737                 //  ここで再描画。
00738                 ::UpdateWindow( m_pCommanderView->GetHwnd() );  //  YAZAKI
00739                 GetCaret().Cursor_UPDOWN( CLayoutInt(1), bSelect );
00740                 ++nRepeat;
00741             }
00742         }
00743     }
00744     return nRepeat;
00745 }
00746
00747
00748
00749
00757 int CViewCommander::Command_LEFT( bool bSelect, bool bRepeat )
00758 {
00759     int     nRepCount;
00760     int     nRepeat;
00761     int     nRes;
00762     if( bRepeat ){
00763         nRepeat = 2;
00764     }else{
00765         nRepeat = 1;
00766     }
00767     for( nRepCount = 0; nRepCount < nRepeat; ++nRepCount ){
00768         CLayoutPoint ptPos(CLayoutInt(0), GetCaret().GetCaretLayoutPos().GetY2());
00769         const CLayout*  pcLayout;
00770         if( bSelect ){
00771             if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
00772                 /* 現在のカーソル位置から選択を開始する */
00773                 m_pCommanderView->GetSelectionInfo().BeginSelectArea();
00774             }
00775         }else{
00776             if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
00777                 /* 矩形範囲選択中か */
00778                 if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
00779                     /* 2点を対角とする矩形を求める */
00780                     CLayoutRange rcSel;
00781                     TwoPointToRange(
00782                         &rcSel,
00783                         GetSelect().GetFrom(),  // 範囲選択開始
00784                         GetSelect().GetTo()     // 範囲選択終了
00785                     );
00786                     /* 現在の選択範囲を非選択状態に戻す */
00787                     m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00788                     /* カーソルを選択開始位置に移動 */
00789                     GetCaret().MoveCursor( rcSel.GetFrom(), TRUE );
00790                     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
00791                 }
00792                 else{
00793                     ptPos = GetSelect().GetFrom();
00794                     /* 現在の選択範囲を非選択状態に戻す */
00795                     m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00796                     /* カーソルを選択開始位置に移動 */
00797                     GetCaret().MoveCursor( ptPos, TRUE );
00798                     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
00799                 }
00800                 nRes = 1;
00801                 goto end_of_func;
00802             }
00803         }
00804         /* 現在行のデータを取得 */
00805         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
00806         /* カーソルが左端にある */
00807         if( GetCaret().GetCaretLayoutPos().GetX2() == (pcLayout ? pcLayout->GetIndent() : CLayoutInt(0))){
00808             if( GetCaret().GetCaretLayoutPos().GetY2() > 0 ){
00809                 pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() - CLayoutInt(1) );
00810                 CMemoryIterator it( pcLayout, GetDocument()->m_cLayoutMgr.GetTabSpace() );
00811                 while( !it.end() ){
00812                     it.scanNext();
00813                     if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00814                         ptPos.x += it.getColumnDelta();
00815                         break;
00816                     }
00817                     it.addDelta();
00818                 }
00819                 ptPos.x += it.getColumn() - it.getColumnDelta();
00820                 ptPos.y --;
00821             }else{
00822                 nRes = 0;
00823                 goto end_of_func;
00824             }
00825         }
00826         //  2004.03.28 Moca EOFだけの行以降の途中にカーソルがあると落ちるバグ修正
00827         else if( pcLayout ){
00828             CMemoryIterator it( pcLayout, GetDocument()->m_cLayoutMgr.GetTabSpace() );
00829             while( !it.end() ){
00830                 it.scanNext();
00831                 if ( it.getColumn() + it.getColumnDelta() > GetCaret().GetCaretLayoutPos().GetX2() - 1 ){
00832                     ptPos.x += it.getColumnDelta();
00833                     break;
00834                 }
00835                 it.addDelta();
00836             }
00837             ptPos.x += it.getColumn() - it.getColumnDelta();
00838             //  Oct. 18, 2002 YAZAKI
00839             if( it.getIndex() >= pcLayout->GetLengthWithEOL() ){
00840                 ptPos.x = GetCaret().GetCaretLayoutPos().GetX2() - CLayoutInt(1);
00841             }
00842         }
00843         GetCaret().MoveCursor( ptPos, TRUE );
00844         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
00845         if( bSelect ){
00846             /*  現在のカーソル位置によって選択範囲を変更．
00847
00848                 2004.04.02 Moca
00849                 キャレット位置が不正だった場合にMoveCursorの移動結果が
00850                 引数で与えた座標とは異なることがあるため，
00851                 ptPosの代わりに実際の移動結果を使うように．
00852             */
00853             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
00854         }
00855         nRes = 1;
00856         goto end_of_func;
00857 end_of_func:;
00858     }
00859     return nRes;
00860 }
00861
00862
00863
00864
00865 /* カーソル右移動 */
00866 void CViewCommander::Command_RIGHT( bool bSelect, bool bIgnoreCurrentSelection, bool bRepeat )
00867 {
00868     int nRepeat; //押した回数
00869     if( bRepeat ){
00870         nRepeat = 2;
00871     }else{
00872         nRepeat = 1;
00873     }
00874     for( int nRepCount = 0; nRepCount < nRepeat; ++nRepCount ){
00875         CLayoutPoint ptPos;
00876         ptPos.y = GetCaret().GetCaretLayoutPos().GetY2();
00877         const CLayout*  pcLayout;
00878
00879         // 2003.06.28 Moca [EOF]のみの行にカーソルがあるときに右を押しても選択を解除できない問題に
00880         // 対応するため、現在行のデータを取得を移動
00881         if( !bIgnoreCurrentSelection ){
00882             if( bSelect ){
00883                 if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
00884                     /* 現在のカーソル位置から選択を開始する */
00885                     m_pCommanderView->GetSelectionInfo().BeginSelectArea();
00886                 }
00887             }
00888             else{
00889                 if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
00890                     /* 矩形範囲選択中か */
00891                     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
00892                         /* 2点を対角とする矩形を求める */
00893                         CLayoutRange rcSel;
00894                         TwoPointToRange(
00895                             &rcSel,
00896                             GetSelect().GetFrom(),  // 範囲選択開始
00897                             GetSelect().GetTo()     // 範囲選択終了
00898                         );
00899
00900                         /* 現在の選択範囲を非選択状態に戻す */
00901                         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00902
00903                         /* カーソルを選択終了位置に移動 */
00904                         GetCaret().MoveCursor( rcSel.GetFrom(), TRUE );
00905                         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
00906                     }
00907                     else{
00908                         ptPos = GetSelect().GetTo();
00909
00910                         /* 現在の選択範囲を非選択状態に戻す */
00911                         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00912                         if( ptPos.y >= GetDocument()->m_cLayoutMgr.GetLineCount() ){
00913                             /* ファイルの最後に移動 */
00914                             Command_GOFILEEND(FALSE);
00915                         }
00916                         else{
00917                             /* カーソルを選択終了位置に移動 */
00918                             GetCaret().MoveCursor( ptPos, TRUE );
00919                             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
00920                         }
00921                     }
00922                     goto end_of_func;
00923                 }
00924             }
00925         }
00926 //      2003.06.28 Moca [EOF]のみの行にカーソルがあるときに右を押しても選択を解除できない問題に対応
00927
00928         /* 現在行のデータを取得 */
00929         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
00930         //  2004.04.02 EOF以降にカーソルがあったときに右を押しても何も起きなかったのを、EOFに移動するように
00931         if( pcLayout )
00932         {
00933             int nIndex = 0;
00934             CMemoryIterator it( pcLayout, GetDocument()->m_cLayoutMgr.GetTabSpace() );
00935             while( !it.end() ){
00936                 it.scanNext();
00937                 if ( it.getColumn() + it.getColumnDelta() > GetCaret().GetCaretLayoutPos().GetX2() + it.getColumnDelta() ){
00938                     break;
00939                 }
00940                 if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00941                     nIndex += it.getIndexDelta();
00942                     break;
00943                 }
00944                 it.addDelta();
00945             }
00946             ptPos.x = it.getColumn(); //新しいキャレット位置
00947             nIndex += it.getIndex();
00948             if( nIndex >= pcLayout->GetLengthWithEOL() ){
00949                 /* フリーカーソルモードか */
00950                 if( (
00951                     GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode
00952                  || m_pCommanderView->GetSelectionInfo().IsTextSelected() && m_pCommanderView->GetSelectionInfo().IsBoxSelecting()  /* 矩形範囲選択中 */
00953                     )
00954                  &&
00955                     /* 改行で終わっているか */
00956                     ( EOL_NONE != pcLayout->m_cEol )
00957                 ){
00958                     /*-- フリーカーソルモードの場合 --*/
00959                     if( ptPos.x <= GetCaret().GetCaretLayoutPos().GetX2() ){
00960                         /* 最終行か */
00961                         if( GetCaret().GetCaretLayoutPos().GetY2() + 1 == GetDocument()->m_cLayoutMgr.GetLineCount() ){
00962                             /* 改行で終わっているか */
00963                             if( EOL_NONE != pcLayout->m_cEol.GetType() ){
00964                                 ptPos.x = GetCaret().GetCaretLayoutPos().GetX2() + 1;
00965                             }else{
00966                                 ptPos.x = GetCaret().GetCaretLayoutPos().GetX2();
00967                             }
00968                         }else{
00969                             ptPos.x = GetCaret().GetCaretLayoutPos().GetX2() + 1;
00970                         }
00971                     }else{
00972                         ptPos.x = ptPos.x;
00973                     }
00974                 }
00975                 else{
00976                     /*-- フリーカーソルモードではない場合 --*/
00977                     /* 最終行か */
00978                     if( GetCaret().GetCaretLayoutPos().GetY2() + 1 == GetDocument()->m_cLayoutMgr.GetLineCount() ){
00979                         /* 改行で終わっているか */
00980                         if( EOL_NONE != pcLayout->m_cEol.GetType() ){
00981                             ptPos.x = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : CLayoutInt(0);
00982                             ++ptPos.y;
00983                         }
00984                         else{
00985                         }
00986                     }
00987                     else{
00988                         ptPos.x = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : CLayoutInt(0);
00989                         ++ptPos.y;
00990                     }
00991                 }
00992             }
00993             //  キャレット位置が折り返し位置より右側だった場合の処理
00994             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00995             if( ptPos.x >= GetDocument()->m_cLayoutMgr.GetMaxLineKetas() ){
00996                 if( GetDocument()->GetDocumentAttribute().m_bKinsokuRet
00997                  || GetDocument()->GetDocumentAttribute().m_bKinsokuKuto )  //@@@ 2002.04.16 MIK
00998                 {
00999                     if( GetDocument()->m_cLayoutMgr.IsEndOfLine( ptPos ) )  //@@@ 2002.04.18
01000                     {
01001                         ptPos.x = CLayoutInt(0);
01002                         ++ptPos.y;
01003                     }
01004                 }
01005                 else
01006                 {
01007                     ptPos.x = CLayoutInt(0);
01008                     ++ptPos.y;
01009                 }
01010             }
01011         }else{
01012             // pcLayoutがNULLの場合はptPos.x=0に調整
01013             ptPos.x = CLayoutInt(0);
01014         }
01015         GetCaret().MoveCursor( ptPos, TRUE );
01016         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01017         if( bSelect ){
01018             /* 現在のカーソル位置によって選択範囲を変更 */
01019             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( GetCaret().GetCaretLayoutPos() );
01020         }
01021
01022 end_of_func:;
01023     }
01024     return;
01025 }
01026
01027
01028
01029
01030 //  From Here Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL/UP/DOWN→PAGE/DOWN/UP)するために以下をコメントアウト
01032 //void CViewCommander::Command_ROLLUP( bool bSelect )
01033 //{
01034 //  GetCaret().Cursor_UPDOWN( ( m_pCommanderView->GetTextArea().m_nViewRowNum / 2 ), bSelect );
01035 //  return;
01036 //}
01037 //
01038 //
01039 //
01040 //
01042 //void CViewCommander::Command_ROLLDOWN( bool bSelect )
01043 //{
01044 //  GetCaret().Cursor_UPDOWN( - ( m_pCommanderView->GetTextArea().m_nViewRowNum / 2 ), bSelect );
01045 //  return;
01046 //}
01047 //  To Here Oct. 6, 2000
01048
01049
01050
01051
01052 /* 半ページアップ */ //Oct. 6, 2000 JEPRO added (実は従来のスクロールダウンそのもの)
01053 void CViewCommander::Command_HalfPageUp( bool bSelect )
01054 {
01055     GetCaret().Cursor_UPDOWN( - ( m_pCommanderView->GetTextArea().m_nViewRowNum / 2 ), bSelect );
01056     return;
01057 }
01058
01059
01060
01061
01062 /* 半ページダウン */ //Oct. 6, 2000 JEPRO added (実は従来のスクロールアップそのもの)
01063 void CViewCommander::Command_HalfPageDown( bool bSelect )
01064 {
01065     GetCaret().Cursor_UPDOWN( ( m_pCommanderView->GetTextArea().m_nViewRowNum / 2 ), bSelect );
01066     return;
01067 }
01068
01069
01070
01071     //Oct. 10, 2000 JEPRO added
01078 void CViewCommander::Command_1PageUp( bool bSelect )
01079 {
01080 //  GetCaret().Cursor_UPDOWN( - m_pCommanderView->GetTextArea().m_nViewRowNum, bSelect );
01081
01082 // 2001.12.03 hor
01083 //      メモ帳ライクに、画面に対するカーソル位置はそのままで１ページアップ
01084     if(m_pCommanderView->GetTextArea().GetViewTopLine()>=m_pCommanderView->GetTextArea().m_nViewRowNum-1){
01085         m_pCommanderView->SetDrawSwitch(false);
01086         CLayoutInt nViewTopLine=GetCaret().GetCaretLayoutPos().GetY2()-m_pCommanderView->GetTextArea().GetViewTopLine();
01087         GetCaret().Cursor_UPDOWN( -m_pCommanderView->GetTextArea().m_nViewRowNum+1, bSelect );
01088         //  Sep. 11, 2004 genta 同期スクロール処理のため
01089         //  m_pCommanderView->RedrawAllではなくScrollAtを使うように
01090         m_pCommanderView->SyncScrollV( m_pCommanderView->ScrollAtV( GetCaret().GetCaretLayoutPos().GetY2()-nViewTopLine ));
01091         m_pCommanderView->SetDrawSwitch(true);
01092         m_pCommanderView->RedrawAll();
01093
01094     }else{
01095         GetCaret().Cursor_UPDOWN( -m_pCommanderView->GetTextArea().m_nViewRowNum+1, bSelect );
01096     }
01097     return;
01098 }
01099
01100
01101
01102
01109 void CViewCommander::Command_1PageDown( bool bSelect )
01110 {
01111 //  GetCaret().Cursor_UPDOWN( m_pCommanderView->GetTextArea().m_nViewRowNum, bSelect );
01112
01113 // 2001.12.03 hor
01114 //      メモ帳ライクに、画面に対するカーソル位置はそのままで１ページダウン
01115     if(m_pCommanderView->GetTextArea().GetViewTopLine()+m_pCommanderView->GetTextArea().m_nViewRowNum <= GetDocument()->m_cLayoutMgr.GetLineCount() ){ //- m_pCommanderView->GetTextArea().m_nViewRowNum){
01116         m_pCommanderView->SetDrawSwitch(false);
01117         CLayoutInt nViewTopLine=GetCaret().GetCaretLayoutPos().GetY2()-m_pCommanderView->GetTextArea().GetViewTopLine();
01118         GetCaret().Cursor_UPDOWN( m_pCommanderView->GetTextArea().m_nViewRowNum-1, bSelect );
01119         //  Sep. 11, 2004 genta 同期スクロール処理のため
01120         //  m_pCommanderView->RedrawAllではなくScrollAtを使うように
01121         m_pCommanderView->SyncScrollV( m_pCommanderView->ScrollAtV( GetCaret().GetCaretLayoutPos().GetY2()-nViewTopLine ));
01122         m_pCommanderView->SetDrawSwitch(true);
01123         m_pCommanderView->RedrawAll();
01124     }else{
01125         GetCaret().Cursor_UPDOWN( m_pCommanderView->GetTextArea().m_nViewRowNum , bSelect );
01126         Command_DOWN( bSelect, TRUE );
01127     }
01128
01129     return;
01130 }
01131
01132
01133
01134
01135 /* カーソル上移動(２行づつ) */
01136 void CViewCommander::Command_UP2( bool bSelect )
01137 {
01138     GetCaret().Cursor_UPDOWN( CLayoutInt(-2), bSelect );
01139     return;
01140 }
01141
01142
01143
01144
01145 /* カーソル下移動(２行づつ) */
01146 void CViewCommander::Command_DOWN2( bool bSelect )
01147 {
01148     GetCaret().Cursor_UPDOWN( CLayoutInt(2), bSelect );
01149     return;
01150 }
01151
01152
01153
01154
01162 void CViewCommander::Command_GOLINETOP(
01163     bool    bSelect,
01164     int     lparam
01170 )
01171 {
01172     using namespace WCODE;
01173
01174     bool            bLineTopOnly = false;
01175     const CLayout*  pcLayout;
01176
01177     if( lparam & 1 ){
01178         bLineTopOnly = true;
01179     }
01180
01181     if( lparam & 4 ){
01182         bSelect = true;
01183     }
01184
01185     CLayoutPoint ptCaretPos;
01186
01187     if ( lparam & 8 ){
01188         /* 改行単位指定の場合は、物理行頭位置から目的論理位置を求める */
01189         GetDocument()->m_cLayoutMgr.LogicToLayout(
01190             CLogicPoint(0,GetCaret().GetCaretLogicPos().y),
01191             &ptCaretPos
01192         );
01193     }else{
01194         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
01195         ptCaretPos.x = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
01196         ptCaretPos.y = GetCaret().GetCaretLayoutPos().GetY2();
01197     }
01198     if( !bLineTopOnly ){
01199         /* 目的行のデータを取得 */
01200         /* 改行単位指定で、先頭から空白が1折り返し行以上続いている場合は次の行データを取得 */
01201         CLayoutInt nPosY_Layout;
01202         CLogicInt  nPosX_Logic;
01203         /*
01204         CLayoutPoint ptPos;
01205         */
01206         nPosY_Layout = ptCaretPos.y - 1;
01207         const wchar_t*  pLine;
01208         CLogicInt       nLineLen;
01209         const CLayout*  pcLayout;
01210         BOOL            bZenSpace;
01211
01212         bZenSpace = GetDocument()->GetDocumentAttribute().m_bAutoIndent_ZENSPACE;
01213
01214         do {
01215             ++nPosY_Layout;
01216             pLine = GetDocument()->m_cLayoutMgr.GetLineStr( nPosY_Layout, &nLineLen, &pcLayout );
01217             if( NULL == pLine ){
01218                 return;
01219             }
01220             for( nPosX_Logic = 0; nPosX_Logic < nLineLen; ++nPosX_Logic ){
01221                 if(WCODE::isIndentChar(pLine[nPosX_Logic],bZenSpace!=0))continue;
01222
01223                 if(WCODE::isLineDelimiter(pLine[nPosX_Logic]) ){
01224                     nPosX_Logic = 0;    // 空白またはタブおよび改行だけの行だった
01225                 }
01226                 break;
01227             }
01228         }
01229         while (( lparam & 8 ) && (nPosX_Logic >= nLineLen) && (GetDocument()->m_cLayoutMgr.GetLineCount() - 1 > nPosY_Layout) );
01230
01231         if( nPosX_Logic >= nLineLen ){
01232             /* 折り返し単位の行頭を探して物理行末まで到達した
01233             または、最終行のため改行コードに遭遇せずに行末に到達した */
01234             nPosX_Logic = 0;
01235         }
01236
01237         if(0 == nPosX_Logic) nPosY_Layout = ptCaretPos.y;   /* 物理行の移動なし */
01238
01239         // 指定された行のデータ内の位置に対応する桁の位置を調べる
01240         CLayoutInt nPosX_Layout = m_pCommanderView->LineIndexToColmn( pcLayout, nPosX_Logic );
01241         CLayoutPoint ptPos(nPosX_Layout, nPosY_Layout);
01242         if( GetCaret().GetCaretLayoutPos() != ptPos ){
01243             ptCaretPos = ptPos;
01244         }
01245     }
01246
01247     //  2006.07.09 genta 新規関数にまとめた
01248     m_pCommanderView->MoveCursorSelecting( ptCaretPos, bSelect );
01249 }
01250
01251
01252
01253
01254 /* 行末に移動(折り返し単位) */
01255 void CViewCommander::Command_GOLINEEND( bool bSelect, int bIgnoreCurrentSelection )
01256 {
01257     CLayoutInt      nPosX = CLayoutInt(0);
01258     const CLayout*  pcLayout;
01259     if( !bIgnoreCurrentSelection ){
01260         if( bSelect ){
01261             if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
01262                 /* 現在のカーソル位置から選択を開始する */
01263                 m_pCommanderView->GetSelectionInfo().BeginSelectArea();
01264             }
01265         }else{
01266             if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01267                 /* 現在の選択範囲を非選択状態に戻す */
01268                 m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
01269             }
01270         }
01271     }
01272     /* 現在行のデータを取得 */
01273     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
01274     CMemoryIterator it( pcLayout, GetDocument()->m_cLayoutMgr.GetTabSpace() );
01275     while( !it.end() ){
01276         it.scanNext();
01277         if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
01278             nPosX += it.getColumnDelta();
01279             break;
01280         }
01281         it.addDelta();
01282     }
01283     nPosX += it.getColumn() - it.getColumnDelta();
01284     if( it.getIndex() >= (pcLayout ? pcLayout->GetLengthWithEOL() : 0) ){
01285         if( GetCaret().GetCaretLayoutPos().GetY2() + 1 == GetDocument()->m_cLayoutMgr.GetLineCount() ){
01286             /* 改行で終わっているか */
01287             if( EOL_NONE != pcLayout->m_cEol ){
01288             }else{
01289                 nPosX += it.getColumnDelta();
01290             }
01291         }
01292     }
01293
01294     GetCaret().MoveCursor( CLayoutPoint(nPosX, GetCaret().GetCaretLayoutPos().GetY2()), TRUE );
01295     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01296     if( bSelect ){
01297         /* 現在のカーソル位置によって選択範囲を変更 */
01298         m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( CLayoutPoint(nPosX, GetCaret().GetCaretLayoutPos().GetY2()) );
01299     }
01300     return;
01301 }
01302
01303
01304
01305
01306 /* ファイルの先頭に移動 */
01307 void CViewCommander::Command_GOFILETOP( bool bSelect )
01308 {
01309     /* 先頭へカーソルを移動 */
01310     //  Sep. 8, 2000 genta
01311     m_pCommanderView->AddCurrentLineToHistory();
01312
01313     //  2006.07.09 genta 新規関数にまとめた
01314     CLayoutPoint pt(
01315         !m_pCommanderView->GetSelectionInfo().IsBoxSelecting()? CLayoutInt(0): GetCaret().GetCaretLayoutPos().GetX2(),
01316         CLayoutInt(0)
01317     );
01318     m_pCommanderView->MoveCursorSelecting( pt, bSelect );   //  通常は、(0, 0)へ移動。ボックス選択中は、(GetCaret().GetCaretLayoutPos().GetX2(), 0)へ移動
01319 }
01320
01321
01322
01323
01324 /* ファイルの最後に移動 */
01325 void CViewCommander::Command_GOFILEEND( bool bSelect )
01326 {
01327 // 2001.12.13 hor BOX選択中にファイルの最後にジャンプすると[EOF]の行が反転したままになるの修正
01328     if( !bSelect && m_pCommanderView->GetSelectionInfo().IsTextSelected() ) m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE ); // 2001.12.21 hor Add
01329     m_pCommanderView->AddCurrentLineToHistory();
01330     GetCaret().Cursor_UPDOWN( GetDocument()->m_cLayoutMgr.GetLineCount() , bSelect );
01331     Command_DOWN( bSelect, TRUE );
01332     if ( !m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){                          // 2002/04/18 YAZAKI
01333         /*  2004.04.19 fotomo
01334             改行のない最終行で選択肢ながら文書末へ移動した場合に
01335             選択範囲が正しくない場合がある問題に対応
01336         */
01337         Command_GOLINEEND( bSelect, FALSE );                // 2001.12.21 hor Add
01338     }
01339     GetCaret().MoveCursor( GetCaret().GetCaretLayoutPos(), TRUE );  // 2001.12.21 hor Add
01340     // 2002.02.16 hor 矩形選択中を除き直前のカーソル位置をリセット
01341     if( !(m_pCommanderView->GetSelectionInfo().IsTextSelected() && m_pCommanderView->GetSelectionInfo().IsBoxSelecting()) ) GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01342 }
01343
01344
01345
01346
01347 /* 単語の左端に移動 */
01348 void CViewCommander::Command_WORDLEFT( bool bSelect )
01349 {
01350     CLogicInt       nIdx;
01351     BOOL            bIsFreeCursorModeOld;
01352     if( bSelect ){
01353         if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
01354             /* 現在のカーソル位置から選択を開始する */
01355             m_pCommanderView->GetSelectionInfo().BeginSelectArea();
01356         }
01357     }else{
01358         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){        /* テキストが選択されているか */
01359             /* 現在の選択範囲を非選択状態に戻す */
01360             m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
01361         }
01362     }
01363
01364     const CLayout* pcLayout;
01365     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
01366     if( NULL == pcLayout ){
01367         bIsFreeCursorModeOld = GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode; /* フリーカーソルモードか */
01368         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = FALSE;
01369         /* カーソル左移動 */
01370         Command_LEFT( bSelect, FALSE );
01371         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = bIsFreeCursorModeOld; /* フリーカーソルモードか */
01372         return;
01373     }
01374
01375     /* 指定された桁に対応する行のデータ内の位置を調べる */
01376     nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
01377
01378     /* 現在位置の左の単語の先頭位置を調べる */
01379     CLayoutPoint ptLayoutNew;
01380     int nResult=GetDocument()->m_cLayoutMgr.PrevWord(
01381         GetCaret().GetCaretLayoutPos().GetY2(),
01382         nIdx,
01383         &ptLayoutNew,
01384         GetShareData()->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchWord
01385     );
01386     if( nResult ){
01387         /* 行が変わった */
01388         if( ptLayoutNew.y != GetCaret().GetCaretLayoutPos().GetY2() ){
01389             pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( ptLayoutNew.GetY2() );
01390             if( NULL == pcLayout ){
01391                 return;
01392             }
01393         }
01394
01395         // 指定された行のデータ内の位置に対応する桁の位置を調べる
01396         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
01397         /*
01398         ptLayoutNew.x = m_pCommanderView->LineIndexToColmn( pcLayout, ptLayoutNew.x );
01399         */
01400
01401         /* カーソル移動 */
01402         GetCaret().MoveCursor( ptLayoutNew, TRUE );
01403         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01404         if( bSelect ){
01405             /* 現在のカーソル位置によって選択範囲を変更 */
01406             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( ptLayoutNew );
01407         }
01408     }else{
01409         bIsFreeCursorModeOld = GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode; /* フリーカーソルモードか */
01410         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = FALSE;
01411         /* カーソル左移動 */
01412         Command_LEFT( bSelect, FALSE );
01413         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = bIsFreeCursorModeOld; /* フリーカーソルモードか */
01414     }
01415     return;
01416 }
01417
01418
01419
01420
01421 /* 単語の右端に移動 */
01422 void CViewCommander::Command_WORDRIGHT( bool bSelect )
01423 {
01424     CLogicInt   nIdx;
01425     CLayoutInt  nCurLine;
01426     int         bTryAgain;
01427     BOOL        bIsFreeCursorModeOld;
01428     if( bSelect ){
01429         if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
01430             /* 現在のカーソル位置から選択を開始する */
01431             m_pCommanderView->GetSelectionInfo().BeginSelectArea();
01432         }
01433     }else{
01434         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01435             /* 現在の選択範囲を非選択状態に戻す */
01436             m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
01437         }
01438     }
01439     bTryAgain = FALSE;
01440 try_again:;
01441     nCurLine = GetCaret().GetCaretLayoutPos().GetY2();
01442     const CLayout* pcLayout;
01443     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( nCurLine );
01444     if( NULL == pcLayout ){
01445         return;
01446     }
01447     if( bTryAgain ){
01448         const wchar_t*  pLine = pcLayout->GetPtr();
01449         if( pLine[0] != L' ' && pLine[0] != WCODE::TAB ){
01450             return;
01451         }
01452     }
01453     /* 指定された桁に対応する行のデータ内の位置を調べる */
01454     nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
01455
01456     /* 現在位置の右の単語の先頭位置を調べる */
01457     CLayoutPoint ptLayoutNew;
01458     int nResult = GetDocument()->m_cLayoutMgr.NextWord(
01459         nCurLine,
01460         nIdx,
01461         &ptLayoutNew,
01462         GetShareData()->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchWord
01463     );
01464     if( nResult ){
01465         /* 行が変わった */
01466         if( ptLayoutNew.y != nCurLine ){
01467             pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( ptLayoutNew.GetY2() );
01468             if( NULL == pcLayout ){
01469                 return;
01470             }
01471         }
01472         // 指定された行のデータ内の位置に対応する桁の位置を調べる
01473         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
01474         /*
01475         ptLayoutNew.x = m_pCommanderView->LineIndexToColmn( pcLayout, ptLayoutNew.x );
01476         */
01477         // カーソル移動
01478         GetCaret().MoveCursor( ptLayoutNew, TRUE );
01479         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
01480         if( bSelect ){
01481             /* 現在のカーソル位置によって選択範囲を変更 */
01482             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( ptLayoutNew );
01483         }
01484     }else{
01485         bIsFreeCursorModeOld = GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode; /* フリーカーソルモードか */
01486         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = FALSE;
01487         /* カーソル右移動 */
01488         Command_RIGHT( bSelect, FALSE, FALSE );
01489         GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode = bIsFreeCursorModeOld; /* フリーカーソルモードか */
01490         if( FALSE == bTryAgain ){
01491             bTryAgain = TRUE;
01492             goto try_again;
01493         }
01494     }
01495     return;
01496 }
01497
01498
01499
01501 void CViewCommander::Command_COPY(
01502     bool        bIgnoreLockAndDisable,
01503     bool        bAddCRLFWhenCopy,
01504     enumEOLType neweol
01505 )
01506 {
01507     CNativeW    cmemBuf;
01508     bool        bBeginBoxSelect = false;
01509
01510     /* クリップボードに入れるべきテキストデータを、cmemBufに格納する */
01511     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01512         /* 非選択時は、カーソル行をコピーする */
01513         m_pCommanderView->CopyCurLine(
01514             bAddCRLFWhenCopy,
01515             neweol,
01516             GetShareData()->m_Common.m_sEdit.m_bEnableLineModePaste
01517         );
01518     }
01519     else{
01520         /* テキストが選択されているときは、選択範囲のデータを取得 */
01521
01522         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
01523             bBeginBoxSelect = TRUE;
01524         }
01525         /* 選択範囲のデータを取得 */
01526         /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
01527         if( !m_pCommanderView->GetSelectedData( &cmemBuf, FALSE, NULL, FALSE, bAddCRLFWhenCopy, neweol ) ){
01528             ::MessageBeep( MB_ICONHAND );
01529             return;
01530         }
01531
01532         /* クリップボードにデータcmemBufの内容を設定 */
01533         if( !m_pCommanderView->MySetClipboardData( cmemBuf.GetStringPtr(), cmemBuf.GetStringLength(), bBeginBoxSelect, FALSE ) ){
01534             ::MessageBeep( MB_ICONHAND );
01535             return;
01536         }
01537     }
01538
01539     /* 選択範囲の後片付け */
01540     if( !bIgnoreLockAndDisable ){
01541         /* 選択状態のロック */
01542         if( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
01543             m_pCommanderView->GetSelectionInfo().m_bSelectingLock = FALSE;
01544         }
01545     }
01546     if( GetShareData()->m_Common.m_sEdit.m_bCopyAndDisablSelection ){   /* コピーしたら選択解除 */
01547         /* テキストが選択されているか */
01548         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01549             /* 現在の選択範囲を非選択状態に戻す */
01550             m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
01551         }
01552     }
01553     return;
01554 }
01555
01556
01557
01558
01559 /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01560 void CViewCommander::Command_CUT( void )
01561 {
01562     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
01563         ::MessageBeep( MB_ICONHAND );
01564         return;
01565     }
01566
01567     CNativeW    cmemBuf;
01568     bool    bBeginBoxSelect;
01569     /* 範囲選択がされていない */
01570     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01571         /* 非選択時は、カーソル行を切り取り */
01572         //行切り取り(折り返し単位)
01573         Command_CUT_LINE();
01574         return;
01575     }
01576     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
01577         bBeginBoxSelect = true;
01578     }else{
01579         bBeginBoxSelect = false;
01580     }
01581     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
01582     //m_pCommanderView->SetParentCaption(); /* 親ウィンドウのタイトルを更新 */
01583
01584
01585     /* 選択範囲のデータを取得 */
01586     /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
01587     if( FALSE == m_pCommanderView->GetSelectedData( &cmemBuf, FALSE, NULL, FALSE, GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
01588         ::MessageBeep( MB_ICONHAND );
01589         return;
01590     }
01591     /* クリップボードにデータを設定 */
01592     if( FALSE == m_pCommanderView->MySetClipboardData( cmemBuf.GetStringPtr(), cmemBuf.GetStringLength(), bBeginBoxSelect ) ){
01593         ::MessageBeep( MB_ICONHAND );
01594         return;
01595     }
01596
01597     /* カーソル位置または選択エリアを削除 */
01598     m_pCommanderView->DeleteData( TRUE );
01599     return;
01600 }
01601
01602
01603
01604
01605 //カーソル位置または選択エリアを削除
01606 void CViewCommander::Command_DELETE( void )
01607 {
01608     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){      /* マウスによる範囲選択中 */
01609         ::MessageBeep( MB_ICONHAND );
01610         return;
01611     }
01612
01613     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
01614         m_pCommanderView->DeleteData( TRUE );
01615         return;
01616     }
01617     m_pCommanderView->DeleteData( TRUE );
01618     return;
01619 }
01620
01621
01622
01623
01624 //カーソル前を削除
01625 void CViewCommander::Command_DELETE_BACK( void )
01626 {
01627     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
01628         ::MessageBeep( MB_ICONHAND );
01629         return;
01630     }
01631
01632     BOOL        bBool;
01633
01634     CLayoutPoint sPos;
01635
01636     //  May 29, 2004 genta 実際に削除された文字がないときはフラグをたてないように
01637     //GetDocument()->SetModified(true,true);    //  Jan. 22, 2002 genta
01638     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){                /* テキストが選択されているか */
01639         m_pCommanderView->DeleteData( TRUE );
01640         GetDocument()->SetModified(true,true);  //  May 29, 2004 genta
01641     }
01642     else{
01643         sPos = GetCaret().GetCaretLayoutPos();
01644         bBool = Command_LEFT( FALSE, FALSE );
01645         if( bBool ){
01646             if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
01647                 COpe*   pcOpe = new COpe(OPE_MOVECARET);
01648                 GetDocument()->m_cLayoutMgr.LayoutToLogic(
01649                     sPos,
01650                     &pcOpe->m_ptCaretPos_PHY_Before
01651                 );
01652
01653                 pcOpe->m_ptCaretPos_PHY_After = GetCaret().GetCaretLogicPos();  // 操作後のキャレット位置
01654                 /* 操作の追加 */
01655                 GetOpeBlk()->AppendOpe( pcOpe );
01656             }
01657             m_pCommanderView->DeleteData( TRUE );
01658             GetDocument()->SetModified(true,true);  //  May 29, 2004 genta
01659         }
01660     }
01661     m_pCommanderView->PostprocessCommand_hokan();   //  Jan. 10, 2005 genta 関数化
01662     return;
01663 }
01664
01665
01666
01667
01668 //単語の右端まで削除
01669 void CViewCommander::Command_WordDeleteToEnd( void )
01670 {
01671     COpe*   pcOpe = NULL;
01672     CMemory cmemData;
01673
01674     /* 矩形選択状態では実行不能((★★もろ手抜き★★)) */
01675     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01676         /* 矩形範囲選択中か */
01677         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
01678             ::MessageBeep( MB_ICONHAND );
01679             return;
01680         }
01681     }
01682     /* 単語の右端に移動 */
01683     CViewCommander::Command_WORDRIGHT( TRUE );
01684     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01685         ::MessageBeep( MB_ICONHAND );
01686         return;
01687     }
01688     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
01689         pcOpe = new COpe(OPE_MOVECARET);
01690         GetDocument()->m_cLayoutMgr.LayoutToLogic(
01691             GetSelect().GetFrom(),
01692             &pcOpe->m_ptCaretPos_PHY_Before
01693         );
01694
01695         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
01696         /*
01697         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; // 操作後のキャレット位置Ｘ
01698         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; // 操作後のキャレット位置Ｙ
01699         */
01700         /* 操作の追加 */
01701         GetOpeBlk()->AppendOpe( pcOpe );
01702     }
01703     /* 削除 */
01704     m_pCommanderView->DeleteData( TRUE );
01705     return;
01706 }
01707
01708
01709
01710
01711 //単語の左端まで削除
01712 void CViewCommander::Command_WordDeleteToStart( void )
01713 {
01714     /* 矩形選択状態では実行不能(★★もろ手抜き★★) */
01715     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01716         /* 矩形範囲選択中か */
01717         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
01718             ::MessageBeep( MB_ICONHAND );
01719             return;
01720         }
01721     }
01722
01723     // 単語の左端に移動
01724     CViewCommander::Command_WORDLEFT( TRUE );
01725     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01726         ::MessageBeep( MB_ICONHAND );
01727         return;
01728     }
01729
01730     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
01731         //$$ 動作上は問題が無いらしいですが。
01732         //   ここの COpe だけ、意味付け(EOpeCode指定)がされていないので、
01733         //   せめて何らかの名前付けをしてあげないと、意図が読み取れません。
01734         COpe*   pcOpe = new COpe;
01735         GetDocument()->m_cLayoutMgr.LayoutToLogic(
01736             GetSelect().GetTo(),
01737             &pcOpe->m_ptCaretPos_PHY_Before
01738         );
01739         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
01740
01741         // 操作の追加
01742         GetOpeBlk()->AppendOpe( pcOpe );
01743     }
01744
01745     // 削除
01746     m_pCommanderView->DeleteData( TRUE );
01747 }
01748
01749
01750
01751
01752 //単語切り取り
01753 void CViewCommander::Command_WordCut( void )
01754 {
01755     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01756         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01757         Command_CUT();
01758         return;
01759     }
01760     //現在位置の単語選択
01761     Command_SELECTWORD();
01762     /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01763     if ( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01764         //  単語選択で選択できなかったら、次の文字を選ぶことに挑戦。
01765         Command_RIGHT( TRUE, FALSE, FALSE );
01766     }
01767     Command_CUT();
01768     return;
01769 }
01770
01771
01772
01773
01774 //単語削除
01775 void CViewCommander::Command_WordDelete( void )
01776 {
01777     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
01778         /* 削除 */
01779         m_pCommanderView->DeleteData( TRUE );
01780         return;
01781     }
01782     //現在位置の単語選択
01783     Command_SELECTWORD();
01784     /* 削除 */
01785     m_pCommanderView->DeleteData( TRUE );
01786     return;
01787 }
01788
01789
01790
01791
01792 //行頭まで切り取り(改行単位)
01793 void CViewCommander::Command_LineCutToStart( void )
01794 {
01795     CLayout*    pCLayout;
01796     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01797         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01798         Command_CUT();
01799         return;
01800     }
01801     pCLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );   /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01802     if( NULL == pCLayout ){
01803         ::MessageBeep( MB_ICONHAND );
01804         return;
01805     }
01806
01807     CLayoutPoint ptPos;
01808     GetDocument()->m_cLayoutMgr.LogicToLayout( CLogicPoint(0, pCLayout->GetLogicLineNo()), &ptPos );
01809     if( GetCaret().GetCaretLayoutPos() == ptPos ){
01810         ::MessageBeep( MB_ICONHAND );
01811         return;
01812     }
01813
01814     /* 選択範囲の変更 */
01815     //  2005.06.24 Moca
01816     CLayoutRange sRange(ptPos,GetCaret().GetCaretLayoutPos());
01817     m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
01818
01819     /*切り取り(選択範囲をクリップボードにコピーして削除) */
01820     Command_CUT();
01821 }
01822
01823
01824
01825
01826 //行末まで切り取り(改行単位)
01827 void CViewCommander::Command_LineCutToEnd( void )
01828 {
01829     CLayout*    pCLayout;
01830     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01831         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01832         Command_CUT();
01833         return;
01834     }
01835     pCLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );   /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01836     if( NULL == pCLayout ){
01837         ::MessageBeep( MB_ICONHAND );
01838         return;
01839     }
01840
01841     CLayoutPoint ptPos;
01842
01843     if( EOL_NONE == pCLayout->m_pCDocLine->m_cEol ){    /* 改行コードの種類 */
01844         GetDocument()->m_cLayoutMgr.LogicToLayout(
01845             CLogicPoint(
01846                 pCLayout->m_pCDocLine->m_cLine.GetStringLength(),
01847                 pCLayout->GetLogicLineNo()
01848             ),
01849             &ptPos
01850         );
01851     }
01852     else{
01853         GetDocument()->m_cLayoutMgr.LogicToLayout(
01854             CLogicPoint(
01855                 pCLayout->m_pCDocLine->m_cLine.GetStringLength() - pCLayout->m_pCDocLine->m_cEol.GetLen(),
01856                 pCLayout->GetLogicLineNo()
01857             ),
01858             &ptPos
01859         );
01860     }
01861
01862     if( GetCaret().GetCaretLayoutPos().GetY2() == ptPos.y && GetCaret().GetCaretLayoutPos().GetX2() >= ptPos.x ){
01863         ::MessageBeep( MB_ICONHAND );
01864         return;
01865     }
01866
01867     /* 選択範囲の変更 */
01868     //  2005.06.24 Moca
01869     CLayoutRange sRange(GetCaret().GetCaretLayoutPos(),ptPos);
01870     m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
01871
01872     /*切り取り(選択範囲をクリップボードにコピーして削除) */
01873     Command_CUT();
01874 }
01875
01876
01877
01878
01879 //行頭まで削除(改行単位)
01880 void CViewCommander::Command_LineDeleteToStart( void )
01881 {
01882     CLayout*    pCLayout;
01883     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01884         m_pCommanderView->DeleteData( TRUE );
01885         return;
01886     }
01887     pCLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );   /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01888     if( NULL == pCLayout ){
01889         ::MessageBeep( MB_ICONHAND );
01890         return;
01891     }
01892
01893     CLayoutPoint ptPos;
01894
01895     GetDocument()->m_cLayoutMgr.LogicToLayout( CLogicPoint(0, pCLayout->GetLogicLineNo()), &ptPos );
01896     if( GetCaret().GetCaretLayoutPos() == ptPos ){
01897         ::MessageBeep( MB_ICONHAND );
01898         return;
01899     }
01900
01901     /* 選択範囲の変更 */
01902     //  2005.06.24 Moca
01903     CLayoutRange sRange(ptPos,GetCaret().GetCaretLayoutPos());
01904     m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
01905
01906     /* 選択領域削除 */
01907     m_pCommanderView->DeleteData( TRUE );
01908 }
01909
01910
01911
01912
01913 //行末まで削除(改行単位)
01914 void CViewCommander::Command_LineDeleteToEnd( void )
01915 {
01916     CLayout*    pCLayout;
01917     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01918         m_pCommanderView->DeleteData( TRUE );
01919         return;
01920     }
01921     pCLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );   /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01922     if( NULL == pCLayout ){
01923         ::MessageBeep( MB_ICONHAND );
01924         return;
01925     }
01926
01927     CLayoutPoint ptPos;
01928
01929     if( EOL_NONE == pCLayout->m_pCDocLine->m_cEol ){    /* 改行コードの種類 */
01930         GetDocument()->m_cLayoutMgr.LogicToLayout(
01931             CLogicPoint(
01932                 pCLayout->m_pCDocLine->m_cLine.GetStringLength(),
01933                 pCLayout->GetLogicLineNo()
01934             ),
01935             &ptPos
01936         );
01937     }else{
01938         GetDocument()->m_cLayoutMgr.LogicToLayout(
01939             CLogicPoint(
01940                 pCLayout->m_pCDocLine->m_cLine.GetStringLength() - pCLayout->m_pCDocLine->m_cEol.GetLen(),
01941                 pCLayout->GetLogicLineNo()
01942             ),
01943             &ptPos
01944         );
01945     }
01946
01947     if( GetCaret().GetCaretLayoutPos().GetY2() == ptPos.y && GetCaret().GetCaretLayoutPos().GetX2() >= ptPos.x ){
01948         ::MessageBeep( MB_ICONHAND );
01949         return;
01950     }
01951
01952     /* 選択範囲の変更 */
01953     //  2005.06.24 Moca
01954     CLayoutRange sRange( GetCaret().GetCaretLayoutPos(), ptPos );
01955     m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
01956
01957     /* 選択領域削除 */
01958     m_pCommanderView->DeleteData( TRUE );
01959 }
01960
01961
01962
01963
01964 //行切り取り(折り返し単位)
01965 void CViewCommander::Command_CUT_LINE( void )
01966 {
01967     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
01968         ::MessageBeep( MB_ICONHAND );
01969         return;
01970     }
01971
01972     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
01973         ::MessageBeep( MB_ICONHAND );
01974         return;
01975     }
01976
01977     const CLayout* pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().y );
01978     if( NULL == pcLayout ){
01979         ::MessageBeep( MB_ICONHAND );
01980         return;
01981     }
01982
01983     // 2007.10.04 ryoji 処理簡素化
01984     m_pCommanderView->CopyCurLine(
01985         GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy,
01986         EOL_UNKNOWN,
01987         GetShareData()->m_Common.m_sEdit.m_bEnableLineModePaste
01988     );
01989     Command_DELETE_LINE();
01990     return;
01991 }
01992
01993
01994
01995
01996 /* 行削除(折り返し単位) */
01997 void CViewCommander::Command_DELETE_LINE( void )
01998 {
01999     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
02000         ::MessageBeep( MB_ICONHAND );
02001         return;
02002     }
02003
02004     COpe*           pcOpe = NULL;
02005     const CLayout*  pcLayout;
02006     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
02007         ::MessageBeep( MB_ICONHAND );
02008         return;
02009     }
02010     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
02011     if( NULL == pcLayout ){
02012         ::MessageBeep( MB_ICONHAND );
02013         return;
02014     }
02015     GetSelect().SetFrom(CLayoutPoint(CLayoutInt(0),GetCaret().GetCaretLayoutPos().GetY2()    ));    //範囲選択開始位置
02016     GetSelect().SetTo  (CLayoutPoint(CLayoutInt(0),GetCaret().GetCaretLayoutPos().GetY2() + 1));    //範囲選択終了位置
02017
02018     CLayoutPoint ptCaretPos_OLD = GetCaret().GetCaretLayoutPos();
02019
02020     Command_DELETE();
02021     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
02022     if( NULL != pcLayout ){
02023         // 2003-04-30 かろと
02024         // 行削除した後、フリーカーソルでないのにカーソル位置が行端より右になる不具合対応
02025         // フリーカーソルモードでない場合は、カーソル位置を調整する
02026         if( !GetShareData()->m_Common.m_sGeneral.m_bIsFreeCursorMode ) {
02027             CLogicInt nIndex;
02028
02029             CLayoutInt tmp;
02030             nIndex = m_pCommanderView->LineColmnToIndex2( pcLayout, ptCaretPos_OLD.GetX2(), &tmp );
02031             ptCaretPos_OLD.x=tmp;
02032
02033             if (ptCaretPos_OLD.x > 0) {
02034                 ptCaretPos_OLD.x--;
02035             } else {
02036                 ptCaretPos_OLD.x = m_pCommanderView->LineIndexToColmn( pcLayout, nIndex );
02037             }
02038         }
02039         /* 操作前の位置へカーソルを移動 */
02040         GetCaret().MoveCursor( ptCaretPos_OLD, TRUE );
02041         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02042         if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
02043             pcOpe = new COpe(OPE_MOVECARET);
02044             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
02045             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before;
02046             /* 操作の追加 */
02047             GetOpeBlk()->AppendOpe( pcOpe );
02048         }
02049     }
02050     return;
02051 }
02052
02053
02054
02055
02056 /* すべて選択 */
02057 void CViewCommander::Command_SELECTALL( void )
02058 {
02059     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
02060         /* 現在の選択範囲を非選択状態に戻す */
02061         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
02062     }
02063
02064     /* 先頭へカーソルを移動 */
02065     //  Sep. 8, 2000 genta
02066     m_pCommanderView->AddCurrentLineToHistory();
02067     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02068
02069     //  Jul. 29, 2006 genta 選択位置の末尾を正確に取得する
02070     //  マクロから取得した場合に正しい範囲が取得できないため
02071     //int nX, nY;
02072     CLayoutRange sRange;
02073     sRange.SetFrom(CLayoutPoint(0,0));
02074     GetDocument()->m_cLayoutMgr.GetEndLayoutPos(sRange.GetToPointer());
02075     m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
02076
02077     /* 選択領域描画 */
02078     m_pCommanderView->GetSelectionInfo().DrawSelectArea();
02079 }
02080
02081
02082
02083
02084 /* 現在位置の単語選択 */
02085 bool CViewCommander::Command_SELECTWORD( void )
02086 {
02087     CLayoutRange sRange;
02088     CLogicInt   nIdx;
02089     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
02090         /* 現在の選択範囲を非選択状態に戻す */
02091         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
02092     }
02093     const CLayout*  pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
02094     if( NULL == pcLayout ){
02095         return false;   //  単語選択に失敗
02096     }
02097     /* 指定された桁に対応する行のデータ内の位置を調べる */
02098     nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
02099
02100     /* 現在位置の単語の範囲を調べる */
02101     if( GetDocument()->m_cLayoutMgr.WhereCurrentWord(   GetCaret().GetCaretLayoutPos().GetY2(), nIdx, &sRange, NULL, NULL ) ){
02102
02103         // 指定された行のデータ内の位置に対応する桁の位置を調べる
02104         // 2007.10.15 kobake 既にレイアウト単位なので変換は不要
02105         /*
02106         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( sRange.GetFrom().GetY2() );
02107         sRange.SetFromX( m_pCommanderView->LineIndexToColmn( pcLayout, sRange.GetFrom().x ) );
02108         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( sRange.GetTo().GetY2() );
02109         sRange.SetToX( m_pCommanderView->LineIndexToColmn( pcLayout, sRange.GetTo().x ) );
02110         */
02111
02112         /* 選択範囲の変更 */
02113         //  2005.06.24 Moca
02114         m_pCommanderView->GetSelectionInfo().SetSelectArea( sRange );
02115
02116         /* 単語の先頭にカーソルを移動 */
02117         GetCaret().MoveCursor( sRange.GetTo(), TRUE );
02118         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02119
02120         /* 選択領域描画 */
02121         m_pCommanderView->GetSelectionInfo().DrawSelectArea();
02122         return true;    //  単語選択に成功。
02123     }
02124     else {
02125         return false;   //  単語選択に失敗
02126     }
02127 }
02128
02129
02130
02131
02135 void CViewCommander::Command_PASTE( void )
02136 {
02137     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
02138         ::MessageBeep( MB_ICONHAND );
02139         return;
02140     }
02141
02142     //砂時計
02143     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
02144
02145     BOOL        bBox;
02146     int         i;
02147
02148     // クリップボードからデータを取得 -> cmemClip, bColmnSelect
02149     CNativeW    cmemClip;
02150     BOOL        bColmnSelect;
02151     BOOL        bLineSelect = FALSE;
02152     if( !m_pCommanderView->MyGetClipboardData( cmemClip, &bColmnSelect, GetShareData()->m_Common.m_sEdit.m_bEnableLineModePaste? &bLineSelect: NULL ) ){
02153         ::MessageBeep( MB_ICONHAND );
02154         return;
02155     }
02156
02157     // 矩形コピーのテキストは常に矩形貼り付け
02158     if( GetShareData()->m_Common.m_sEdit.m_bAutoColmnPaste ){
02159         // 矩形コピーのデータなら矩形貼り付け
02160         if( bColmnSelect ){
02161             Command_PASTEBOX();
02162             return;
02163         }
02164     }
02165
02166     // クリップボードデータ取得 -> pszText, nTextLen
02167     CLogicInt       nTextLen;
02168     const wchar_t*  pszText = cmemClip.GetStringPtr( &nTextLen );
02169
02170     // 2007.10.04 ryoji
02171     // 行コピー（MSDEVLineSelect形式）のテキストで末尾が改行になっていなければ改行を追加する
02172     // ※レイアウト折り返しの行コピーだった場合は末尾が改行になっていない
02173     if( bLineSelect ){
02174         // ※CRやLFは2バイト文字の2バイト目として扱われることはないので末尾だけで判定（CMemory::GetSizeOfChar()参照）
02175         if( pszText[nTextLen - 1] != WCODE::CR && pszText[nTextLen - 1] != WCODE::LF ){
02176             cmemClip.AppendString(GetDocument()->GetNewLineCode().GetUnicodeValue());
02177             pszText = cmemClip.GetStringPtr( &nTextLen );
02178         }
02179     }
02180
02181     // テキストが選択されているか
02182     bBox = FALSE;
02183     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02184         // 矩形範囲選択中か
02185         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
02186             bBox = TRUE;
02187         }
02188         else{
02189             //  Jun. 23, 2000 genta
02190             //  同一行の行末以降のみが選択されている場合には選択無しと見なす
02191             CLogicInt       len;
02192             int pos;
02193             const wchar_t   *line;
02194             const CLayout* pcLayout;
02195             line = GetDocument()->m_cLayoutMgr.GetLineStr( GetSelect().GetFrom().GetY2(), &len, &pcLayout );
02196
02197             pos = ( line == NULL ) ? 0 : m_pCommanderView->LineColmnToIndex( pcLayout, GetSelect().GetFrom().GetX2() );
02198
02199             //  開始位置が行末より後ろで、終了位置が同一行
02200             if( pos >= len && GetSelect().IsLineOne()){
02201                 GetCaret().SetCaretLayoutPos(CLayoutPoint(GetSelect().GetFrom().x, GetCaret().GetCaretLayoutPos().y)); //キャレットX変更
02202                 m_pCommanderView->GetSelectionInfo().DisableSelectArea(false);
02203             }
02204             else{
02205                 // データ置換 削除&挿入にも使える
02206                 // 行コピーの貼り付けでは選択範囲は削除（後で行頭に貼り付ける）   // 2007.10.04 ryoji
02207                 m_pCommanderView->ReplaceData_CEditView(
02208                     GetSelect(),                // 選択範囲
02209                     NULL,                   // 削除されたデータのコピー(NULL可能)
02210                     /*
02211                     pszText,                // 挿入するデータ
02212                     nTextLen,               // 挿入するデータの長さ
02213                     */
02214                     bLineSelect? L"": pszText,  // 挿入するデータ
02215                     bLineSelect? CLogicInt(0): nTextLen,    // 挿入するデータの長さ
02216                     true
02217                 );
02218 #ifdef _DEBUG
02219                 gm_ProfileOutput = FALSE;
02220 #endif
02221                 if( !bLineSelect )  // 2007.10.04 ryoji
02222                     return;
02223             }
02224         }
02225     }
02226     if( bBox ){
02227         //改行までを抜き出す pszText -> szPaste
02228         for( i = 0; i < nTextLen; i++  ){
02229             if( pszText[i] == WCODE::CR || pszText[i] == WCODE::LF ){
02230                 break;
02231             }
02232         }
02233         wchar_t szPaste[1024];
02234         wmemcpy( szPaste, pszText, i );
02235         szPaste[i] = L'\0';
02236
02237         //szPasteを挿入
02238         Command_INDENT( szPaste, CLogicInt(i) );
02239     }
02240     else{
02241         GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
02242
02243         CLogicInt nPosX_PHY_Delta;
02244         if( bLineSelect ){  // 2007.10.04 ryoji
02245             /* 挿入ポイント（折り返し単位行頭）にカーソルを移動 */
02246             CLogicPoint ptCaretBefore = GetCaret().GetCaretLogicPos();  // 操作前のキャレット位置
02247             Command_GOLINETOP( FALSE, 1 );                              // 行頭に移動(折り返し単位)
02248             CLogicPoint ptCaretAfter = GetCaret().GetCaretLogicPos();   // 操作後のキャレット位置
02249
02250             // 挿入ポイントと元の位置との差分文字数
02251             nPosX_PHY_Delta = ptCaretBefore.x - ptCaretAfter.x;
02252
02253             //UNDO用記録
02254             if( !m_pCommanderView->m_bDoing_UndoRedo ){
02255                 COpe* pcOpe = new COpe(OPE_MOVECARET);          /* 操作種別 */
02256                 pcOpe->m_ptCaretPos_PHY_Before = ptCaretBefore; /* 操作前のキャレット位置 */
02257                 pcOpe->m_ptCaretPos_PHY_After  = ptCaretAfter ; /* 操作後のキャレット位置 */
02258                 GetOpeBlk()->AppendOpe( pcOpe );
02259             }
02260         }
02261
02262         // 現在位置にデータを挿入
02263         CLayoutPoint ptLayoutNew; //挿入された部分の次の位置
02264         m_pCommanderView->InsertData_CEditView(
02265             GetCaret().GetCaretLayoutPos(),
02266             pszText,
02267             nTextLen,
02268             &ptLayoutNew,
02269             true
02270         );
02271
02272         //      ::GlobalUnlock(hglb);
02273         // 挿入データの最後へカーソルを移動
02274         GetCaret().MoveCursor( ptLayoutNew, TRUE );
02275         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02276
02277         if( bLineSelect ){  // 2007.10.04 ryoji
02278             /* 元の位置へカーソルを移動 */
02279             CLogicPoint ptCaretBefore = GetCaret().GetCaretLogicPos();  //操作前のキャレット位置
02280             CLayoutPoint ptLayout;
02281             GetDocument()->m_cLayoutMgr.LogicToLayout(
02282                 ptCaretBefore + CLogicPoint(nPosX_PHY_Delta, CLogicInt(0)),
02283                 &ptLayout
02284             );
02285             GetCaret().MoveCursor( ptLayout, true );                    //カーソル移動
02286             CLogicPoint ptCaretAfter = GetCaret().GetCaretLogicPos();   //操作後のキャレット位置
02287
02288             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().x;
02289
02290             //UNDO用記録
02291             if( !m_pCommanderView->m_bDoing_UndoRedo ){
02292                 COpe* pcOpe = new COpe(OPE_MOVECARET);          /* 操作種別 */
02293                 pcOpe->m_ptCaretPos_PHY_Before = ptCaretBefore; /* 操作前のキャレット位置Ｘ */
02294                 pcOpe->m_ptCaretPos_PHY_After  = ptCaretAfter;  /* 操作後のキャレット位置Ｘ */
02295                 GetOpeBlk()->AppendOpe( pcOpe );
02296             }
02297         }
02298     }
02299     return;
02300
02301 }
02302
02303
02307 void CViewCommander::Command_INSTEXT(
02308     bool            bRedraw,
02309     const wchar_t*  pszText,
02310     CLogicInt       nTextLen,
02311     bool            bNoWaitCursor
02312 )
02313 {
02314     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
02315         ::MessageBeep( MB_ICONHAND );
02316         return;
02317     }
02318
02319     CWaitCursor*    pcWaitCursor;
02320
02321     GetDocument()->SetModified(true,bRedraw);   //  Jan. 22, 2002 genta
02322     if( bNoWaitCursor ){
02323         pcWaitCursor = NULL;
02324     }else{
02325         pcWaitCursor = new CWaitCursor( m_pCommanderView->GetHwnd() );
02326     }
02327
02328     if( nTextLen < 0 ){
02329         nTextLen = CLogicInt(wcslen( pszText ));
02330     }
02331
02332     /* テキストが選択されているか */
02333     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02334         /* 矩形範囲選択中か */
02335         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
02336             // i = strcspn(pszText, CRLF);
02337             // 2004.05.14 Moca strcspnでは'\0'が扱えないので
02338             CLogicInt i;
02339             for( i = CLogicInt(0); i < nTextLen; i++ ){
02340                 if( pszText[i] == WCODE::CR
02341                  || pszText[i] == WCODE::LF ){
02342                     break;
02343                 }
02344             }
02345             Command_INDENT( pszText, i );
02346         }
02347         else{
02348             /* データ置換 削除&挿入にも使える */
02349             m_pCommanderView->ReplaceData_CEditView(
02350                 GetSelect(),            //選択範囲
02351                 NULL,               // 削除されたデータのコピー(NULL可能)
02352                 pszText,            // 挿入するデータ
02353                 nTextLen,           // 挿入するデータの長さ
02354                 bRedraw
02355             );
02356 #ifdef _DEBUG
02357                 gm_ProfileOutput = FALSE;
02358 #endif
02359         }
02360     }
02361     else
02362     {
02363         GetDocument()->SetModified(true,true);  /* 変更フラグ */
02364
02365         //  Jun. 13, 2004 genta 不要なチェック？
02366         if( nTextLen < 0 ){
02367 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONWARNING, GSTR_APPNAME,
02368                 _T("バグじゃないの？ @Command_INSTEXT") );
02369             nTextLen = CLogicInt(wcslen( pszText ));
02370         }
02371
02372         /* 現在位置にデータを挿入 */
02373         CLayoutPoint ptLayoutNew;   // 挿入された部分の次の位置
02374         m_pCommanderView->InsertData_CEditView( GetCaret().GetCaretLayoutPos(), pszText, nTextLen, &ptLayoutNew, true );
02375
02376         /* 挿入データの最後へカーソルを移動 */
02377         GetCaret().MoveCursor( ptLayoutNew, bRedraw );
02378         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02379     }
02380
02381     if( NULL != pcWaitCursor ){
02382         delete pcWaitCursor;
02383     }
02384     return;
02385 }
02386
02387 //<< 2002/03/28 Azumaiya
02388 // メモリデータを矩形貼り付け用のデータと解釈して処理する。
02389 //  なお、この関数は Command_PASTEBOX(void) と、
02390 // 2769 : GetDocument()->SetModified(true,true);    //  Jan. 22, 2002 genta
02391 // から、
02392 // 3057 : m_pCommanderView->SetDrawSwitch(true);    // 2002.01.25 hor
02393 // 間まで、一緒です。
02394 //  ですが、コメントを削ったり、#if 0 のところを削ったりしていますので、Command_PASTEBOX(void) は
02395 // 残すようにしました(下にこの関数を使った使ったバージョンをコメントで書いておきました)。
02396 //  なお、以下にあげるように Command_PASTEBOX(void) と違うところがあるので注意してください。
02397 // > 呼び出し側が責任を持って、
02398 // ・マウスによる範囲選択中である。
02399 // ・現在のフォントは固定幅フォントである。
02400 // の 2 点をチェックする。
02401 // > 再描画を行わない
02402 // です。
02403 //  なお、これらを呼び出し側に期待するわけは、「すべて置換」のような何回も連続で呼び出す
02404 // ときに、最初に一回チェックすればよいものを何回もチェックするのは無駄と判断したためです。
02405 // @note 2004.06.30 現在、すべて置換では使用していない
02406 void CViewCommander::Command_PASTEBOX( const wchar_t *szPaste, int nPasteSize )
02407 {
02408     /* これらの動作は残しておきたいのだが、呼び出し側で責任を持ってやってもらうことに変更。
02409     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() )   // マウスによる範囲選択中
02410     {
02411         ::MessageBeep( MB_ICONHAND );
02412         return;
02413     }
02414     if( FALSE == GetShareData()->m_Common.m_bFontIs_FIXED_PITCH )   // 現在のフォントは固定幅フォントである
02415     {
02416         return;
02417     }
02418     */
02419
02420     int             nBgn;
02421     int             nPos;
02422     CLayoutInt      nCount;
02423     CLayoutPoint    ptLayoutNew;    //挿入された部分の次の位置
02424     BOOL            bAddLastCR;
02425     CLayoutInt      nInsPosX;
02426
02427     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
02428
02429     m_pCommanderView->SetDrawSwitch(false); // 2002.01.25 hor
02430
02431     // とりあえず選択範囲を削除
02432     // 2004.06.30 Moca m_pCommanderView->GetSelectionInfo().IsTextSelected()がないと未選択時、一文字消えてしまう
02433     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02434         m_pCommanderView->DeleteData( FALSE/*TRUE 2002.01.25 hor*/ );
02435     }
02436
02437     CLayoutPoint ptCurOld = GetCaret().GetCaretLayoutPos();
02438
02439     nCount = CLayoutInt(0);
02440
02441     // Jul. 10, 2005 genta 貼り付けデータの最後にCR/LFが無い場合の対策
02442     //  データの最後まで処理 i.e. nBgnがnPasteSizeを超えたら終了
02443     //for( nPos = 0; nPos < nPasteSize; )
02444     for( nBgn = nPos = 0; nBgn < nPasteSize; )
02445     {
02446         // Jul. 10, 2005 genta 貼り付けデータの最後にCR/LFが無いと
02447         //  最終行のPaste処理が動かないので，
02448         //  データの末尾に来た場合は強制的に処理するようにする
02449         if( szPaste[nPos] == WCODE::CR || szPaste[nPos] == WCODE::LF || nPos == nPasteSize )
02450         {
02451             /* 現在位置にデータを挿入 */
02452             if( nPos - nBgn > 0 ){
02453                 m_pCommanderView->InsertData_CEditView(
02454                     ptCurOld + CLayoutPoint(CLayoutInt(0), nCount),
02455                     &szPaste[nBgn],
02456                     nPos - nBgn,
02457                     &ptLayoutNew,
02458                     false
02459                 );
02460             }
02461
02462             /* この行の挿入位置へカーソルを移動 */
02463             GetCaret().MoveCursor( ptCurOld + CLayoutPoint(CLayoutInt(0), nCount), false );
02464             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02465             /* カーソル行が最後の行かつ行末に改行が無く、挿入すべきデータがまだある場合 */
02466             bAddLastCR = FALSE;
02467             const CLayout*  pcLayout;
02468             CLogicInt       nLineLen = CLogicInt(0);
02469             const wchar_t*  pLine;
02470             pLine = GetDocument()->m_cLayoutMgr.GetLineStr( GetCaret().GetCaretLayoutPos().GetY2(), &nLineLen, &pcLayout );
02471
02472             if( NULL != pLine && 1 <= nLineLen )
02473             {
02474                 if( pLine[nLineLen - 1] == WCODE::CR || pLine[nLineLen - 1] == WCODE::LF )
02475                 {
02476                 }
02477                 else
02478                 {
02479                     bAddLastCR = TRUE;
02480                 }
02481             }
02482             else
02483             { // 2001/10/02 novice
02484                 bAddLastCR = TRUE;
02485             }
02486
02487             if( bAddLastCR )
02488             {
02489 //              MYTRACE_A( " カーソル行が最後の行かつ行末に改行が無く、\n挿入すべきデータがまだある場合は行末に改行を挿入。\n" );
02490                 nInsPosX = m_pCommanderView->LineIndexToColmn( pcLayout, nLineLen );
02491
02492                 m_pCommanderView->InsertData_CEditView(
02493                     CLayoutPoint(nInsPosX, GetCaret().GetCaretLayoutPos().GetY2()),
02494                     GetDocument()->GetNewLineCode().GetUnicodeValue(),
02495                     GetDocument()->GetNewLineCode().GetLen(),
02496                     &ptLayoutNew,
02497                     false
02498                 );
02499             }
02500
02501             if(
02502                 (nPos + 1 < nPasteSize ) &&
02503                 (
02504 // 2004.06.30 Moca WORD*では非x86で境界不整列の可能性あり
02505                  ( szPaste[nPos] == L'\n' && szPaste[nPos + 1] == L'\r') ||
02506                  ( szPaste[nPos] == L'\r' && szPaste[nPos + 1] == L'\n')
02507 //               ((WORD *)(szPaste + nPos))[0] == MAKEWORD('\n', L'\r') ||
02508 //               ((WORD *)(szPaste + nPos))[0] == MAKEWORD('\r', L'\n')
02509                 )
02510               )
02511             {
02512                 nBgn = nPos + 2;
02513             }
02514             else
02515             {
02516                 nBgn = nPos + 1;
02517             }
02518
02519             nPos = nBgn;
02520             ++nCount;
02521         }
02522         else
02523         {
02524             ++nPos;
02525         }
02526     }
02527
02528     /* 挿入データの先頭位置へカーソルを移動 */
02529     GetCaret().MoveCursor( ptCurOld, TRUE );
02530     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02531
02532     if( !m_pCommanderView->m_bDoing_UndoRedo )  /* アンドゥ・リドゥの実行中か */
02533     {
02534         COpe*       pcOpe = new COpe(OPE_MOVECARET);
02535         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos(); // 操作前のキャレット位置
02536         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
02537         /* 操作の追加 */
02538         GetOpeBlk()->AppendOpe( pcOpe );
02539     }
02540
02541     m_pCommanderView->SetDrawSwitch(true);  // 2002.01.25 hor
02542     return;
02543 }
02544
02545 // 一応、Command_PASTEBOX(char *, int) を使った Command_PASTEBOX(void) を書いておきます。
02546 /* 矩形貼り付け(クリップボードから矩形貼り付け) */
02547 // 2004.06.29 Moca 未使用だったものを有効にする
02548 //  オリジナルのCommand_PASTEBOX(void)はばっさり削除 (genta)
02549 void CViewCommander::Command_PASTEBOX( void )
02550 {
02551     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() )   // マウスによる範囲選択中
02552     {
02553         ::MessageBeep( MB_ICONHAND );
02554         return;
02555     }
02556
02557
02558     if( !GetShareData()->m_Common.m_sView.m_bFontIs_FIXED_PITCH )   // 現在のフォントは固定幅フォントである
02559     {
02560         return;
02561     }
02562
02563     // クリップボードからデータを取得
02564     CNativeW    cmemClip;
02565     if( FALSE == m_pCommanderView->MyGetClipboardData( cmemClip, NULL ) ){
02566         ::MessageBeep( MB_ICONHAND );
02567         return;
02568     }
02569     // 2004.07.13 Moca \0コピー対策
02570     int nstrlen;
02571     const wchar_t *lptstr = cmemClip.GetStringPtr( &nstrlen );
02572
02573     Command_PASTEBOX(lptstr, nstrlen);
02574     m_pCommanderView->AdjustScrollBars(); // 2007.07.22 ryoji
02575     m_pCommanderView->Redraw();         // 2002.01.25 hor
02576     return;
02577 }
02578
02579 //>> 2002/03/29 Azumaiya
02580
02581 /* wchar_t1個分の文字を入力 */
02582 void CViewCommander::Command_WCHAR( wchar_t wcChar )
02583 {
02584     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
02585         ::MessageBeep( MB_ICONHAND );
02586         return;
02587     }
02588
02589
02590     CLogicInt       nPos;
02591     CLogicInt       nCharChars;
02592     CLogicInt       nIdxTo;
02593     CLayoutInt      nPosX;
02594     const CLayout*  pcLayout;
02595
02596     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
02597
02598     /* 現在位置にデータを挿入 */
02599     nPosX = CLayoutInt(-1);
02600     CNativeW cmemDataW2;
02601     cmemDataW2 = wcChar;
02602     if( WCODE::isLineDelimiter(wcChar) ){
02603         /* 現在、Enterなどで挿入する改行コードの種類を取得 */
02604         // enumEOLType nWorkEOL;
02605         CEOL cWork = GetDocument()->GetNewLineCode();
02606         cmemDataW2.SetString( cWork.GetUnicodeValue(), cWork.GetLen() );
02607
02608         /* テキストが選択されているか */
02609         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02610             m_pCommanderView->DeleteData( TRUE );
02611         }
02612         if( GetDocument()->GetDocumentAttribute().m_bAutoIndent ){  /* オートインデント */
02613             const CLayout* pCLayout;
02614             const wchar_t*  pLine;
02615             CLogicInt       nLineLen;
02616             pLine = GetDocument()->m_cLayoutMgr.GetLineStr( GetCaret().GetCaretLayoutPos().GetY2(), &nLineLen, &pCLayout );
02617             if( NULL != pCLayout ){
02618                 const CDocLine* pcDocLine;
02619                 pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( pCLayout->GetLogicLineNo() );
02620                 pLine = GetDocument()->m_cDocLineMgr.GetLineStr( pCLayout->GetLogicLineNo(), &nLineLen );
02621                 if( NULL != pLine ){
02622                     /*
02623                       カーソル位置変換
02624                       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02625                       →
02626                       物理位置(行頭からのバイト数、折り返し無し行位置)
02627                     */
02628                     CLogicPoint ptXY;
02629                     GetDocument()->m_cLayoutMgr.LayoutToLogic(
02630                         GetCaret().GetCaretLayoutPos(),
02631                         &ptXY
02632                     );
02633
02634                     /* 指定された桁に対応する行のデータ内の位置を調べる */
02635                     nIdxTo = m_pCommanderView->LineColmnToIndex( pcDocLine, GetCaret().GetCaretLayoutPos().GetX2() );
02636                     for( nPos = CLogicInt(0); nPos < nLineLen && nPos < ptXY.GetX2(); ){
02637                         // 2005-09-02 D.S.Koba GetSizeOfChar
02638                         nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nPos );
02639
02640                         /* その他のインデント文字 */
02641                         if( 0 < nCharChars
02642                          && 0 < (int)wcslen( GetDocument()->GetDocumentAttribute().m_szIndentChars )
02643                         ){
02644                             wchar_t szCurrent[10];
02645                             wmemcpy( szCurrent, &pLine[nPos], nCharChars );
02646                             szCurrent[nCharChars] = L'\0';
02647                             /* その他のインデント対象文字 */
02648                             if( NULL != wcsstr(
02649                                 GetDocument()->GetDocumentAttribute().m_szIndentChars,
02650                                 szCurrent
02651                             ) ){
02652                                 goto end_of_for;
02653                             }
02654                         }
02655
02656                         bool bZenSpace=GetDocument()->GetDocumentAttribute().m_bAutoIndent_ZENSPACE!=0;
02657                         if(nCharChars==1 && WCODE::isIndentChar(pLine[nPos],bZenSpace))
02658                         {
02659                             //下へ進む
02660                         }
02661                         else break;
02662
02663 end_of_for:;
02664                         nPos += nCharChars;
02665                     }
02666                     if( nPos > 0 ){
02667                         nPosX = m_pCommanderView->LineIndexToColmn( pcDocLine, nPos );
02668                     }
02669
02670                     //インデント取得
02671                     CNativeW cmemIndent;
02672                     cmemIndent.SetString( pLine, nPos );
02673
02674                     //インデント付加
02675                     cmemDataW2.AppendNativeData(cmemIndent);
02676                 }
02677             }
02678         }
02679     }else{
02680         /* テキストが選択されているか */
02681         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02682             /* 矩形範囲選択中か */
02683             if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
02684                 Command_INDENT( wcChar );
02685                 return;
02686             }else{
02687                 m_pCommanderView->DeleteData( TRUE );
02688             }
02689         }else{
02690             if( ! m_pCommanderView->IsInsMode() /* Oct. 2, 2005 genta */ ){
02691                 BOOL bDelete = TRUE;
02692                 if( GetShareData()->m_Common.m_sEdit.m_bNotOverWriteCRLF ){ /* 改行は上書きしない */
02693                     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
02694                     if( NULL != pcLayout ){
02695                         /* 指定された桁に対応する行のデータ内の位置を調べる */
02696                         nIdxTo = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
02697                         if( nIdxTo == pcLayout->GetLengthWithoutEOL() ){
02698
02699                             /* 現在位置が改行ならば削除しない */
02700                             bDelete = FALSE;
02701                         }
02702                     }
02703                 }
02704                 if( bDelete ){
02705                     /* 上書きモードなので、現在位置の文字を１文字消去 */
02706                     m_pCommanderView->DeleteData( FALSE );
02707                 }
02708             }
02709         }
02710     }
02711
02712     //UNICODEに変換する
02713     CNativeW cmemUnicode;
02714     cmemUnicode.SetNativeData(cmemDataW2);
02715
02716     //本文に挿入する
02717     CLayoutPoint ptLayoutNew;
02718     m_pCommanderView->InsertData_CEditView(
02719         GetCaret().GetCaretLayoutPos(),
02720         cmemUnicode.GetStringPtr(),
02721         cmemUnicode.GetStringLength(),
02722         &ptLayoutNew,
02723         true
02724     );
02725
02726     /* 挿入データの最後へカーソルを移動 */
02727     GetCaret().MoveCursor( ptLayoutNew, TRUE );
02728     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02729
02730     /* スマートインデント */
02731     if( SMARTINDENT_CPP == GetDocument()->GetDocumentAttribute().m_nSmartIndent ){  /* スマートインデント種別 */
02732         /* C/C++スマートインデント処理 */
02733         m_pCommanderView->SmartIndent_CPP( wcChar );
02734     }
02735
02736     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
02737     if( WCODE::CR == wcChar && GetDocument()->GetDocumentAttribute().m_bRTrimPrevLine ){    /* 改行時に末尾の空白を削除 */
02738         /* 前の行にある末尾の空白を削除する */
02739         m_pCommanderView->RTrimPrevLine();
02740     }
02741
02742     m_pCommanderView->PostprocessCommand_hokan();   //  Jan. 10, 2005 genta 関数化
02743     return;
02744 }
02745
02746
02747
02748
02761 void CViewCommander::Command_IME_CHAR( WORD wChar )
02762 {
02763     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
02764         ::MessageBeep( MB_ICONHAND );
02765         return;
02766     }
02767
02768     CLogicInt       nIdxTo;
02769     CMemory         cmemData;
02770
02771     //  Oct. 6 ,2002 genta 上下逆転
02772     if( 0 == (wChar & 0xff00) ){
02773         Command_WCHAR( wChar & 0xff );
02774         return;
02775     }
02776     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
02777
02778     // Oct. 6 ,2002 genta バッファに格納する
02779     // Aug. 15, 2007 kobake WCHARバッファに変換する
02780     wchar_t szWord[2]={wChar,0};
02781     CLogicInt nWord=CLogicInt(1);
02782
02783     /* テキストが選択されているか */
02784     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
02785         /* 矩形範囲選択中か */
02786         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
02787             Command_INDENT( szWord, nWord );    //  Oct. 6 ,2002 genta
02788             return;
02789         }else{
02790             m_pCommanderView->DeleteData( TRUE );
02791         }
02792     }
02793     else{
02794         if( ! m_pCommanderView->IsInsMode() /* Oct. 2, 2005 genta */ ){
02795             BOOL bDelete = TRUE;
02796             if( GetShareData()->m_Common.m_sEdit.m_bNotOverWriteCRLF ){ /* 改行は上書きしない */
02797                 const CLayout* pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
02798                 if( NULL != pcLayout ){
02799                     /* 指定された桁に対応する行のデータ内の位置を調べる */
02800                     nIdxTo = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
02801                     if( nIdxTo == pcLayout->GetLengthWithoutEOL() ){
02802                         /* 現在位置が改行ならば削除しない */
02803                         bDelete = FALSE;
02804                     }
02805                 }
02806             }
02807             if( bDelete ){
02808                 /* 上書きモードなので、現在位置の文字を１文字消去 */
02809                 m_pCommanderView->DeleteData( FALSE );
02810             }
02811         }
02812     }
02813
02814     //  Oct. 6 ,2002 genta
02815     CLayoutPoint ptLayoutNew;
02816     m_pCommanderView->InsertData_CEditView( GetCaret().GetCaretLayoutPos(), szWord, nWord, &ptLayoutNew, true );
02817
02818     /* 挿入データの最後へカーソルを移動 */
02819     GetCaret().MoveCursor( ptLayoutNew, TRUE );
02820     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02821
02822     m_pCommanderView->PostprocessCommand_hokan();   //  Jan. 10, 2005 genta 関数化
02823 }
02824
02825
02826
02827
02832 void CViewCommander::Command_CHGMOD_INS( void )
02833 {
02834     /* 挿入モードか？ */
02835     if( m_pCommanderView->IsInsMode() ){
02836         m_pCommanderView->SetInsMode( false );
02837     }else{
02838         m_pCommanderView->SetInsMode( true );
02839     }
02840     /* キャレットの表示・更新 */
02841     GetCaret().ShowEditCaret();
02842     /* キャレットの行桁位置を表示する */
02843     GetCaret().DrawCaretPosInfo();
02844     return;
02845 }
02846
02847
02853 void CViewCommander::Command_SEARCH_BOX( void )
02854 {
02855     const CEditWnd* pCEditWnd = GetDocument()->m_pcEditWnd;
02856     pCEditWnd->m_cToolbar.SetFocusSearchBox();
02857 }
02858
02859 /* 検索(単語検索ダイアログ) */
02860 void CViewCommander::Command_SEARCH_DIALOG( void )
02861 {
02862 //  int         nRet;
02863
02864     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
02865     CNativeW        cmemCurText;
02866     m_pCommanderView->GetCurrentTextForSearchDlg( cmemCurText );    // 2006.08.23 ryoji ダイアログ専用関数に変更
02867
02868     /* 検索文字列を初期化 */
02869     wcscpy( GetEditWindow()->m_cDlgFind.m_szText, cmemCurText.GetStringPtr() );
02870
02871     /* 検索ダイアログの表示 */
02872     if( NULL == GetEditWindow()->m_cDlgFind.GetHwnd() ){
02873         GetEditWindow()->m_cDlgFind.DoModeless( GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)&GetEditWindow()->GetActiveView() );
02874     }else{
02875         /* アクティブにする */
02876         ActivateFrameWindow( GetEditWindow()->m_cDlgFind.GetHwnd() );
02877 		::DlgItem_SetText( GetEditWindow()->m_cDlgFind.GetHwnd(), IDC_COMBO_TEXT, cmemCurText.GetStringT() );
02878     }
02879     return;
02880 }
02881
02882
02883
02884 /* 前を検索 */
02885 void CViewCommander::Command_SEARCH_PREV( bool bReDraw, HWND hwndParent )
02886 {
02887     bool        bSelecting;
02888     bool        bSelectingLock_Old;
02889     bool        bFound = false;
02890     bool        bRedo = false;          //  hor
02891     CLayoutInt  nLineNumOld;
02892     CLogicInt   nIdxOld;
02893     const CLayout* pcLayout = NULL;
02894     CLayoutInt nLineNum;
02895     CLogicInt nIdx;
02896
02897     CLayoutRange sRangeA;
02898     sRangeA.Set(GetCaret().GetCaretLayoutPos());
02899
02900     CLayoutRange sSelectBgn_Old;
02901     CLayoutRange sSelect_Old;
02902
02903     //  bFlag1 = FALSE;
02904     bSelecting = FALSE;
02905     if( L'\0' == GetShareData()->m_aSearchKeys[0][0] ){
02906         goto end_of_func;
02907     }
02908     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
02909         sSelectBgn_Old = m_pCommanderView->GetSelectionInfo().m_sSelectBgn; //範囲選択(原点)
02910         sSelect_Old = GetSelect();
02911
02912         bSelectingLock_Old = m_pCommanderView->GetSelectionInfo().m_bSelectingLock;
02913
02914         /* 矩形範囲選択中か */
02915         if( !m_pCommanderView->GetSelectionInfo().IsBoxSelecting() && TRUE == m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){  /* 選択状態のロック */
02916             bSelecting = TRUE;
02917         }
02918         else{
02919             /* 現在の選択範囲を非選択状態に戻す */
02920             m_pCommanderView->GetSelectionInfo().DisableSelectArea( bReDraw );
02921         }
02922     }
02923
02924     nLineNum = GetCaret().GetCaretLayoutPos().GetY2();
02925     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( nLineNum );
02926
02927
02928     if( NULL == pcLayout ){
02929         // pcLayoutはNULLとなるのは、[EOF]から前検索した場合
02930         // １行前に移動する処理
02931         nLineNum--;
02932         if( nLineNum < 0 ){
02933             goto end_of_func;
02934         }
02935         pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( nLineNum );
02936         if( NULL == pcLayout ){
02937             goto end_of_func;
02938         }
02939         // カーソル左移動はやめて nIdxは行の長さとしないと[EOF]から改行を前検索した時に最後の改行を検索できない 2003.05.04 かろと
02940         CLayout* pCLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( nLineNum );
02941         nIdx = CLogicInt(pCLayout->m_pCDocLine->m_cLine.GetStringLength() + 1);     // 行末のヌル文字(\0)にマッチさせるために+1 2003.05.16 かろと
02942     } else {
02943         /* 指定された桁に対応する行のデータ内の位置を調べる */
02944         nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() );
02945     }
02946     // 2002.01.16 hor
02947     // 共通部分のくくりだし
02948     if(!m_pCommanderView->ChangeCurRegexp())return;
02949
02950     bRedo       =   TRUE;       //  hor
02951     nLineNumOld =   nLineNum;   //  hor
02952     nIdxOld     =   nIdx;       //  hor
02953 re_do:;                         //  hor
02954     /* 現在位置より前の位置を検索する */
02955     if( GetDocument()->m_cLayoutMgr.SearchWord(
02956         nLineNum,                               // 検索開始レイアウト行
02957         nIdx,                                   // 検索開始データ位置
02958         m_pCommanderView->m_szCurSrchKey,                           // 検索条件
02959         SEARCH_BACKWARD,                        // 0==前方検索 1==後方検索
02960         m_pCommanderView->m_sCurSearchOption,                       // 検索オプション
02961         &sRangeA,                               // マッチレイアウト範囲
02962         &m_pCommanderView->m_CurRegexp                          // 正規表現コンパイルデータ
02963     ) ){
02964         if( bSelecting ){
02965             /* 現在のカーソル位置によって選択範囲を変更 */
02966             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRangeA.GetFrom() );
02967             m_pCommanderView->GetSelectionInfo().m_bSelectingLock = bSelectingLock_Old; /* 選択状態のロック */
02968         }else{
02969             /* 選択範囲の変更 */
02970             //  2005.06.24 Moca
02971             m_pCommanderView->GetSelectionInfo().SetSelectArea( sRangeA );
02972
02973             if( bReDraw ){
02974                 /* 選択領域描画 */
02975                 m_pCommanderView->GetSelectionInfo().DrawSelectArea();
02976             }
02977         }
02978         /* カーソル移動 */
02979         //  Sep. 8, 2000 genta
02980         m_pCommanderView->AddCurrentLineToHistory();
02981         GetCaret().MoveCursor( sRangeA.GetFrom(), bReDraw );
02982         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
02983         bFound = TRUE;
02984     }else{
02985         /* フォーカス移動時の再描画 */
02986 //      m_pCommanderView->RedrawAll();  hor コメント化
02987         if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
02988             /* 現在の選択範囲を非選択状態に戻す */
02989             m_pCommanderView->GetSelectionInfo().DisableSelectArea( bReDraw );
02990         }
02991         if( bSelecting ){
02992             m_pCommanderView->GetSelectionInfo().m_bSelectingLock = bSelectingLock_Old; /* 選択状態のロック */
02993             /* 選択範囲の変更 */
02994             m_pCommanderView->GetSelectionInfo().m_sSelectBgn = sSelectBgn_Old;
02995             GetSelect() = sSelect_Old;
02996
02997             /* カーソル移動 */
02998             GetCaret().MoveCursor( sRangeA.GetFrom(), bReDraw );
02999             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03000             /* 選択領域描画 */
03001             m_pCommanderView->GetSelectionInfo().DrawSelectArea();
03002         }
03003     }
03004 end_of_func:;
03005 // From Here 2002.01.26 hor 先頭（末尾）から再検索
03006     if(GetShareData()->m_Common.m_sSearch.m_bSearchAll){
03007         if(!bFound  &&  // 見つからなかった
03008             bRedo       // 最初の検索
03009         ){
03010             nLineNum=GetDocument()->m_cLayoutMgr.GetLineCount()-CLayoutInt(1);
03011             nIdx=CLogicInt(MAXLINEKETAS);
03012             bRedo=FALSE;
03013             goto re_do; // 末尾から再検索
03014         }
03015     }
03016     if(bFound){
03017         if((nLineNumOld < nLineNum)||(nLineNumOld == nLineNum && nIdxOld < nIdx))
03018             m_pCommanderView->SendStatusMessage(_T("▲末尾から再検索しました"));
03019     }else{
03020         m_pCommanderView->SendStatusMessage(_T("△見つかりませんでした"));
03021 //  if( FALSE == bFound ){
03022 // To Here 2002.01.26 hor
03023         ::MessageBeep( MB_ICONHAND );
03024         if( bReDraw &&
03025             GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND    /* 検索／置換  見つからないときメッセージを表示 */
03026         ){
03027             if( NULL == hwndParent ){
03028                 hwndParent = m_pCommanderView->GetHwnd();
03029             }
03030             InfoMessage(
03031                 hwndParent,
03032                 _T("前方(↑) に文字列 '%ls' が１つも見つかりません。"),  //Jan. 25, 2001 jepro メッセージを若干変更
03033                 m_pCommanderView->m_szCurSrchKey
03034             );
03035         }
03036     }
03037     return;
03038 }
03039
03040
03041
03042
03048 void CViewCommander::Command_SEARCH_NEXT(
03049     bool            bChangeCurRegexp,
03050     bool            bRedraw,
03051     HWND            hwndParent,
03052     const WCHAR*    pszNotFoundMessage
03053 )
03054 {
03055     bool        bSelecting;
03056     bool        bFlag1;
03057     bool        bSelectingLock_Old;
03058     bool        bFound = false;
03059     const CLayout* pcLayout;
03060     bool b0Match = false;
03061     const wchar_t *pLine;
03062     CLogicInt nIdx;
03063     CLogicInt   nLineLen;
03064     CLayoutInt  nLineNum;
03065
03066     CLayoutRange sRangeA;
03067     sRangeA.Set(GetCaret().GetCaretLayoutPos());
03068
03069     CLayoutRange sSelectBgn_Old;
03070     CLayoutRange sSelect_Old;
03071     CLayoutInt  nLineNumOld;
03072
03073     bSelecting = FALSE;
03074     //  2004.05.30 Moca bChangeCurRegexpに応じて対象文字列を変える
03075     if( bChangeCurRegexp  && L'\0' == GetShareData()->m_aSearchKeys[0][0]
03076      || !bChangeCurRegexp && L'\0' == m_pCommanderView->m_szCurSrchKey[0] ){
03077         goto end_of_func;
03078     }
03079
03080     // 検索開始位置を調整
03081     bFlag1 = FALSE;
03082     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
03083         /* 矩形範囲選択中でない & 選択状態のロック */
03084         if( !m_pCommanderView->GetSelectionInfo().IsBoxSelecting() && m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
03085             bSelecting = TRUE;
03086             bSelectingLock_Old = m_pCommanderView->GetSelectionInfo().m_bSelectingLock;
03087
03088             sSelectBgn_Old = m_pCommanderView->GetSelectionInfo().m_sSelectBgn; //範囲選択(原点)
03089             sSelect_Old = GetSelect();
03090
03091             if( PointCompare(m_pCommanderView->GetSelectionInfo().m_sSelectBgn.GetFrom(),GetCaret().GetCaretLayoutPos()) >= 0 ){
03092                 // カーソル移動
03093                 GetCaret().SetCaretLayoutPos(GetSelect().GetFrom());
03094                 if (GetSelect().IsOne()) {
03095                     // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03096                     b0Match = true;
03097                 }
03098                 bFlag1 = TRUE;
03099             }
03100             else{
03101                 // カーソル移動
03102                 GetCaret().SetCaretLayoutPos(GetSelect().GetTo());
03103                 if (GetSelect().IsOne()) {
03104                     // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03105                     b0Match = true;
03106                 }
03107             }
03108         }
03109         else{
03110             /* カーソル移動 */
03111             GetCaret().SetCaretLayoutPos(GetSelect().GetTo());
03112             if (GetSelect().IsOne()) {
03113                 // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03114                 b0Match = true;
03115             }
03116
03117             /* 現在の選択範囲を非選択状態に戻す */
03118             m_pCommanderView->GetSelectionInfo().DisableSelectArea( bRedraw );
03119         }
03120     }
03121     nLineNum = GetCaret().GetCaretLayoutPos().GetY2();
03122     nLineLen = CLogicInt(0); // 2004.03.17 Moca NULL == pLineのとき、nLineLenが未設定になり落ちるバグ対策
03123     pLine = GetDocument()->m_cLayoutMgr.GetLineStr(nLineNum, &nLineLen, &pcLayout);
03124
03125     /* 指定された桁に対応する行のデータ内の位置を調べる */
03126 // 2002.02.08 hor EOFのみの行からも次検索しても再検索可能に (2/2)
03127     nIdx = pcLayout ? m_pCommanderView->LineColmnToIndex( pcLayout, GetCaret().GetCaretLayoutPos().GetX2() ) : CLogicInt(0);
03128     if( b0Match ) {
03129         // 現在、長さ０でマッチしている場合は物理行で１文字進める(無限マッチ対策)
03130         if( nIdx < nLineLen ) {
03131             // 2005-09-02 D.S.Koba GetSizeOfChar
03132             nIdx += CLogicInt(CNativeW::GetSizeOfChar(pLine, nLineLen, nIdx) == 2 ? 2 : 1);
03133         } else {
03134             // 念のため行末は別処理
03135             ++nIdx;
03136         }
03137     }
03138
03139     // 2002.01.16 hor
03140     // 共通部分のくくりだし
03141     // 2004.05.30 Moca CEditViewの現在設定されている検索パターンを使えるように
03142     if(bChangeCurRegexp && !m_pCommanderView->ChangeCurRegexp())return;
03143
03144     bool bRedo          = TRUE;     //  hor
03145     nLineNumOld = nLineNum; //  hor
03146     int  nIdxOld        = nIdx;     //  hor
03147
03148 re_do:;
03149      /* 現在位置より後ろの位置を検索する */
03150     // 2004.05.30 Moca 引数をGetShareData()からメンバ変数に変更。他のプロセス/スレッドに書き換えられてしまわないように。
03151     int nSearchResult=GetDocument()->m_cLayoutMgr.SearchWord(
03152         nLineNum,                       // 検索開始レイアウト行
03153         nIdx,                           // 検索開始データ位置
03154         m_pCommanderView->m_szCurSrchKey,                   // 検索条件
03155         SEARCH_FORWARD,                 // 0==前方検索 1==後方検索
03156         m_pCommanderView->m_sCurSearchOption,               // 検索オプション
03157         &sRangeA,                       // マッチレイアウト範囲
03158         &m_pCommanderView->m_CurRegexp                  // 正規表現コンパイルデータ
03159     );
03160     if( nSearchResult ){
03161         // 指定された行のデータ内の位置に対応する桁の位置を調べる
03162         if( bFlag1 && sRangeA.GetFrom()==GetCaret().GetCaretLayoutPos() ){
03163             CLogicRange sRange_Logic;
03164             GetDocument()->m_cLayoutMgr.LayoutToLogic(sRangeA,&sRange_Logic);
03165
03166             nLineNum = sRangeA.GetTo().GetY2();
03167             nIdx     = sRange_Logic.GetTo().GetX2();
03168             goto re_do;
03169         }
03170
03171         if( bSelecting ){
03172             /* 現在のカーソル位置によって選択範囲を変更 */
03173             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( sRangeA.GetTo() );
03174             m_pCommanderView->GetSelectionInfo().m_bSelectingLock = bSelectingLock_Old; /* 選択状態のロック */
03175         }
03176         else{
03177             /* 選択範囲の変更 */
03178             //  2005.06.24 Moca
03179             m_pCommanderView->GetSelectionInfo().SetSelectArea( sRangeA );
03180
03181             if( bRedraw ){
03182                 /* 選択領域描画 */
03183                 m_pCommanderView->GetSelectionInfo().DrawSelectArea();
03184             }
03185         }
03186
03187         /* カーソル移動 */
03188         //  Sep. 8, 2000 genta
03189         if ( m_pCommanderView->GetDrawSwitch() ) m_pCommanderView->AddCurrentLineToHistory();   // 2002.02.16 hor すべて置換のときは不要
03190         GetCaret().MoveCursor( sRangeA.GetFrom(), bRedraw );
03191         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03192         bFound = TRUE;
03193     }
03194     else{
03195         if( bSelecting ){
03196             m_pCommanderView->GetSelectionInfo().m_bSelectingLock = bSelectingLock_Old; /* 選択状態のロック */
03197
03198             /* 選択範囲の変更 */
03199             m_pCommanderView->GetSelectionInfo().m_sSelectBgn = sSelectBgn_Old; //範囲選択(原点)
03200             GetSelect().SetFrom(sSelect_Old.GetFrom());
03201             GetSelect().SetTo(sRangeA.GetFrom());
03202
03203             /* カーソル移動 */
03204             GetCaret().MoveCursor( sRangeA.GetFrom(), bRedraw );
03205             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03206
03207             if( bRedraw ){
03208                 /* 選択領域描画 */
03209                 m_pCommanderView->GetSelectionInfo().DrawSelectArea();
03210             }
03211         }
03212     }
03213
03214 end_of_func:;
03215 // From Here 2002.01.26 hor 先頭（末尾）から再検索
03216     if(GetShareData()->m_Common.m_sSearch.m_bSearchAll){
03217         if(!bFound  &&      // 見つからなかった
03218             bRedo   &&      // 最初の検索
03219             m_pCommanderView->GetDrawSwitch()   // 全て置換の実行中じゃない
03220         ){
03221             nLineNum=CLayoutInt(0);
03222             nIdx=CLogicInt(0);
03223             bRedo=FALSE;
03224             goto re_do;     // 先頭から再検索
03225         }
03226     }
03227
03228     if(bFound){
03229         if((nLineNumOld > nLineNum)||(nLineNumOld == nLineNum && nIdxOld > nIdx))
03230             m_pCommanderView->SendStatusMessage(_T("▼先頭から再検索しました"));
03231     }
03232     else{
03233         GetCaret().ShowEditCaret(); // 2002/04/18 YAZAKI
03234         GetCaret().DrawCaretPosInfo();  // 2002/04/18 YAZAKI
03235         m_pCommanderView->SendStatusMessage(_T("▽見つかりませんでした"));
03236 // To Here 2002.01.26 hor
03237
03238         /* 検索／置換  見つからないときメッセージを表示 */
03239         ::MessageBeep( MB_ICONHAND );
03240         if( bRedraw && GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND ){
03241             if( NULL == hwndParent ){
03242                 hwndParent = m_pCommanderView->GetHwnd();
03243             }
03244             if( NULL == pszNotFoundMessage ){
03245                 InfoMessage(
03246                     hwndParent,
03247                     _T("後方(↓) に文字列 '%ls' が１つも見つかりません。"),
03248                     m_pCommanderView->m_szCurSrchKey
03249                 );
03250             }
03251             else{
03252                 InfoMessage(hwndParent, _T("%ls"),pszNotFoundMessage);
03253             }
03254         }
03255     }
03256 }
03257
03258
03259
03260
03261 /* 各種モードの取り消し */
03262 void CViewCommander::Command_CANCEL_MODE( void )
03263 {
03264     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
03265         /* 現在の選択範囲を非選択状態に戻す */
03266         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
03267     }
03268     m_pCommanderView->GetSelectionInfo().m_bSelectingLock = FALSE;  /* 選択状態のロック */
03269     return;
03270 }
03271
03272
03273
03274
03275 /* 範囲選択開始 */
03276 void CViewCommander::Command_BEGIN_SELECT( void )
03277 {
03278     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
03279         /* 現在のカーソル位置から選択を開始する */
03280         m_pCommanderView->GetSelectionInfo().BeginSelectArea();
03281     }
03282
03283     //  ロックの解除切り替え
03284     if ( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ) {
03285         m_pCommanderView->GetSelectionInfo().m_bSelectingLock = FALSE;  /* 選択状態のロック解除 */
03286     }
03287     else {
03288         m_pCommanderView->GetSelectionInfo().m_bSelectingLock = TRUE;   /* 選択状態のロック */
03289     }
03290     return;
03291 }
03292
03293
03294
03295
03296 /* 矩形範囲選択開始 */
03297 void CViewCommander::Command_BEGIN_BOXSELECT( void )
03298 {
03299     if( !GetShareData()->m_Common.m_sView.m_bFontIs_FIXED_PITCH ){  /* 現在のフォントは固定幅フォントである */
03300         return;
03301     }
03302
03303 //@@@ 2002.01.03 YAZAKI 範囲選択中にShift+F6を実行すると選択範囲がクリアされない問題に対処
03304     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
03305         /* 現在の選択範囲を非選択状態に戻す */
03306         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
03307     }
03308
03309     /* 現在のカーソル位置から選択を開始する */
03310     m_pCommanderView->GetSelectionInfo().BeginSelectArea();
03311
03312     m_pCommanderView->GetSelectionInfo().m_bSelectingLock = true;   /* 選択状態のロック */
03313     m_pCommanderView->GetSelectionInfo().SetBoxSelect(true);    /* 矩形範囲選択中 */
03314     return;
03315 }
03316
03317
03318
03319
03320 /* 新規作成 */
03321 void CViewCommander::Command_FILENEW( void )
03322 {
03323     /* 新たな編集ウィンドウを起動 */
03324     CControlTray::OpenNewEditor( GetInstance(), m_pCommanderView->GetHwnd(), NULL, CODE_DEFAULT, FALSE );
03325     return;
03326 }
03327
03328
03329
03335 void CViewCommander::Command_FILEOPEN( const WCHAR *filename, ECodeType nCharCode, BOOL bReadOnly )
03336 {
03337     GetDocument()->OpenFile( to_tchar(filename), nCharCode, bReadOnly!=FALSE );
03338 }
03339
03340
03341
03342
03343 /* 閉じて(無題) */ //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
03344 void CViewCommander::Command_FILECLOSE( void )
03345 {
03346     GetDocument()->FileClose();
03347 }
03348
03349
03350
03351
03357 void CViewCommander::Command_FILECLOSE_OPEN( LPCWSTR filename, ECodeType nCharCode, BOOL bReadOnly )
03358 {
03359     GetDocument()->FileCloseOpen( to_tchar(filename), nCharCode, bReadOnly!=FALSE );
03360 }
03361
03362
03363
03364
03375 BOOL CViewCommander::Command_FILESAVE( bool warnbeep, bool askname )
03376 {
03377     return  GetDocument()->FileSave( warnbeep, askname );
03378 }
03379
03380 /* 名前を付けて保存ダイアログ */
03381 BOOL CViewCommander::Command_FILESAVEAS_DIALOG()
03382 {
03383     return  GetDocument()->FileSaveAs_Dialog();
03384 }
03385
03386
03387 /* 名前を付けて保存
03388     filenameで保存。NULLは厳禁。
03389 */
03390 BOOL CViewCommander::Command_FILESAVEAS( const WCHAR* filename )
03391 {
03392     return  GetDocument()->FileSaveAs( to_tchar(filename) );
03393 }
03394
03404 BOOL CViewCommander::Command_FILESAVEALL( void )
03405 {
03406     CShareData::getInstance()->SendMessageToAllEditors(
03407         WM_COMMAND,
03408         MAKELONG( F_FILESAVE_QUIET, 0 ),
03409         0,
03410         NULL
03411     );
03412     return TRUE;
03413 }
03414
03415
03419 void CViewCommander::Command_COPYFILENAME( void )
03420 {
03421     if( GetDocument()->IsFilePathAvailable() ){
03422         /* クリップボードにデータを設定 */
03423         const WCHAR* pszFile = to_wchar(GetDocument()->GetFileName());
03424         m_pCommanderView->MySetClipboardData( pszFile , wcslen( pszFile ), FALSE );
03425     }else{
03426         ::MessageBeep( MB_ICONHAND );
03427     }
03428     return;
03429 }
03430
03431
03432
03433
03434 /* 現在編集中のファイルのパス名をクリップボードにコピー */
03435 void CViewCommander::Command_COPYPATH( void )
03436 {
03437     if( GetDocument()->IsFilePathAvailable() ){
03438         /* クリップボードにデータを設定 */
03439         const TCHAR* szPath = GetDocument()->GetFilePath();
03440         m_pCommanderView->MySetClipboardData( szPath, _tcslen(szPath), FALSE );
03441
03442     }else{
03443         ::MessageBeep( MB_ICONHAND );
03444     }
03445     return;
03446
03447 }
03448
03449
03450
03451
03452 //  May 9, 2000 genta
03453 /* 現在編集中のファイルのパス名とカーソル位置をクリップボードにコピー */
03454 void CViewCommander::Command_COPYTAG( void )
03455 {
03456     if( GetDocument()->IsFilePathAvailable() ){
03457         wchar_t buf[ MAX_PATH + 20 ];
03458
03459         CLogicPoint ptColLine;
03460
03461         //  論理行番号を得る
03462         GetDocument()->m_cLayoutMgr.LayoutToLogic( GetCaret().GetCaretLayoutPos(), &ptColLine );
03463
03464         /* クリップボードにデータを設定 */
03465         auto_sprintf( buf, L"%ls (%d,%d): ", GetDocument()->GetFilePath(), ptColLine.y+1, ptColLine.x+1 );
03466         m_pCommanderView->MySetClipboardData( buf, wcslen( buf ), FALSE );
03467     }else{
03468         ::MessageBeep( MB_ICONHAND );
03469     }
03470     return;
03471
03472 }
03473
03477 void CViewCommander::Command_JUMP_DIALOG( void )
03478 {
03479     if( !GetEditWindow()->m_cDlgJump.DoModal(
03480         GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)GetDocument()
03481     ) ){
03482         return;
03483     }
03484 }
03485
03486
03487
03488 /* 指定行ヘジャンプ */
03489 void CViewCommander::Command_JUMP( void )
03490 {
03491     const wchar_t*  pLine;
03492     int         nMode;
03493     int         bValidLine;
03494     int         nCurrentLine;
03495     int         nCommentBegin;
03496
03497     if( 0 == GetDocument()->m_cLayoutMgr.GetLineCount() ){
03498         ::MessageBeep( MB_ICONHAND );
03499         return;
03500     }
03501
03502     /* 行番号 */
03503     int nLineNum; //$$ 単位混在
03504     nLineNum = GetEditWindow()->m_cDlgJump.m_nLineNum;
03505
03506     if( !GetEditWindow()->m_cDlgJump.m_bPLSQL ){    /* PL/SQLソースの有効行か */
03507         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
03508         if( GetShareData()->m_bLineNumIsCRLF ){
03509             if( CLogicInt(0) >= nLineNum ){
03510                 nLineNum = CLogicInt(1);
03511             }
03512             /*
03513               カーソル位置変換
03514               ロジック位置(行頭からのバイト数、折り返し無し行位置)
03515               →
03516               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03517             */
03518             CLayoutPoint ptPosXY;
03519             GetDocument()->m_cLayoutMgr.LogicToLayout(
03520                 CLogicPoint(0, nLineNum - 1),
03521                 &ptPosXY
03522             );
03523             nLineNum = (Int)ptPosXY.y + 1;
03524         }
03525         else{
03526             if( 0 >= nLineNum ){
03527                 nLineNum = 1;
03528             }
03529             if( nLineNum > GetDocument()->m_cLayoutMgr.GetLineCount() ){
03530                 nLineNum = (Int)GetDocument()->m_cLayoutMgr.GetLineCount();
03531             }
03532         }
03533         //  Sep. 8, 2000 genta
03534         m_pCommanderView->AddCurrentLineToHistory();
03535         //  2006.07.09 genta 選択状態を解除しないように
03536         m_pCommanderView->MoveCursorSelecting( CLayoutPoint(0, nLineNum - 1), m_pCommanderView->GetSelectionInfo().m_bSelectingLock, _CARETMARGINRATE / 3 );
03537         return;
03538     }
03539     if( 0 >= nLineNum ){
03540         nLineNum = 1;
03541     }
03542     nMode = 0;
03543     nCurrentLine = GetEditWindow()->m_cDlgJump.m_nPLSQL_E2 - 1;
03544
03545     int nLineCount; //$$ 単位混在
03546     nLineCount = GetEditWindow()->m_cDlgJump.m_nPLSQL_E1 - 1;
03547
03548     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
03549     if( !GetDocument()->GetDocumentAttribute().m_bLineNumIsCRLF ){ //レイアウト単位
03550         /*
03551           カーソル位置変換
03552           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03553           →
03554           物理位置(行頭からのバイト数、折り返し無し行位置)
03555         */
03556         CLogicPoint ptPosXY;
03557         GetDocument()->m_cLayoutMgr.LayoutToLogic(
03558             CLayoutPoint(0,nLineCount),
03559             &ptPosXY
03560         );
03561         nLineCount = ptPosXY.y;
03562     }
03563
03564     for( ; nLineCount <  GetDocument()->m_cDocLineMgr.GetLineCount(); ++nLineCount ){
03565         CLogicInt   nLineLen;
03566         CLogicInt   nBgn = CLogicInt(0);
03567         CLogicInt   i;
03568         pLine = GetDocument()->m_cDocLineMgr.GetLineStr( CLogicInt(nLineCount), &nLineLen );
03569         bValidLine = FALSE;
03570         for( i = CLogicInt(0); i < nLineLen; ++i ){
03571             if( L' ' != pLine[i] &&
03572                 WCODE::TAB != pLine[i]
03573             ){
03574                 break;
03575             }
03576         }
03577         nBgn = i;
03578         for( i = nBgn; i < nLineLen; ++i ){
03579             /* シングルクォーテーション文字列読み込み中 */
03580             if( 20 == nMode ){
03581                 bValidLine = TRUE;
03582                 if( L'\'' == pLine[i] ){
03583                     if( i > 0 && L'\\' == pLine[i - 1] ){
03584                     }else{
03585                         nMode = 0;
03586                         continue;
03587                     }
03588                 }else{
03589                 }
03590             }else
03591             /* ダブルクォーテーション文字列読み込み中 */
03592             if( 21 == nMode ){
03593                 bValidLine = TRUE;
03594                 if( L'"' == pLine[i] ){
03595                     if( i > 0 && L'\\' == pLine[i - 1] ){
03596                     }else{
03597                         nMode = 0;
03598                         continue;
03599                     }
03600                 }else{
03601                 }
03602             }else
03603             /* コメント読み込み中 */
03604             if( 8 == nMode ){
03605                 if( i < nLineLen - 1 && L'*' == pLine[i] &&  L'/' == pLine[i + 1] ){
03606                     if( /*nCommentBegin != nLineCount &&*/ nCommentBegin != 0){
03607                         bValidLine = TRUE;
03608                     }
03609                     ++i;
03610                     nMode = 0;
03611                     continue;
03612                 }else{
03613                 }
03614             }else
03615             /* ノーマルモード */
03616             if( 0 == nMode ){
03617                 /* 空白やタブ記号等を飛ばす */
03618                 if( L'\t' == pLine[i] ||
03619                     L' ' == pLine[i] ||
03620                     WCODE::CR == pLine[i] ||
03621                     WCODE::LF == pLine[i]
03622                 ){
03623                     continue;
03624                 }else
03625                 if( i < nLineLen - 1 && L'-' == pLine[i] &&  L'-' == pLine[i + 1] ){
03626                     bValidLine = TRUE;
03627                     break;
03628                 }else
03629                 if( i < nLineLen - 1 && L'/' == pLine[i] &&  L'*' == pLine[i + 1] ){
03630                     ++i;
03631                     nMode = 8;
03632                     nCommentBegin = nLineCount;
03633                     continue;
03634                 }else
03635                 if( L'\'' == pLine[i] ){
03636                     nMode = 20;
03637                     continue;
03638                 }else
03639                 if( L'"' == pLine[i] ){
03640                     nMode = 21;
03641                     continue;
03642                 }else{
03643                     bValidLine = TRUE;
03644                 }
03645             }
03646         }
03647         /* コメント読み込み中 */
03648         if( 8 == nMode ){
03649             if( nCommentBegin != 0){
03650                 bValidLine = TRUE;
03651             }
03652             /* コメントブロック内の改行だけの行 */
03653             if( WCODE::CR == pLine[nBgn] ||
03654                 WCODE::LF == pLine[nBgn] ){
03655                 bValidLine = FALSE;
03656             }
03657         }
03658         if( bValidLine ){
03659             ++nCurrentLine;
03660             if( nCurrentLine >= nLineNum ){
03661                 break;
03662             }
03663         }
03664     }
03665     /*
03666       カーソル位置変換
03667       物理位置(行頭からのバイト数、折り返し無し行位置)
03668       →
03669       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03670     */
03671     CLayoutPoint ptPos;
03672     GetDocument()->m_cLayoutMgr.LogicToLayout(
03673         CLogicPoint(0, nLineCount),
03674         &ptPos
03675     );
03676     //  Sep. 8, 2000 genta
03677     m_pCommanderView->AddCurrentLineToHistory();
03678     //  2006.07.09 genta 選択状態を解除しないように
03679     m_pCommanderView->MoveCursorSelecting( ptPos, m_pCommanderView->GetSelectionInfo().m_bSelectingLock, _CARETMARGINRATE / 3 );
03680 }
03681
03682
03683
03684
03685 /* フォント設定 */
03686 void CViewCommander::Command_FONT( void )
03687 {
03688     HWND    hwndFrame;
03689     hwndFrame = GetMainWindow();
03690
03691     /* フォント設定ダイアログ */
03692     LOGFONT cLogfont = GetShareData()->m_Common.m_sView.m_lf;
03693     if( GetDocument()->SelectFont( &cLogfont )  ){
03694         GetShareData()->m_Common.m_sView.m_lf = cLogfont;
03695
03696 //      /* 変更フラグ フォント */
03697 //      GetShareData()->m_bFontModify = TRUE;
03698
03699         if( GetShareData()->m_Common.m_sView.m_lf.lfPitchAndFamily & FIXED_PITCH  ){
03700             GetShareData()->m_Common.m_sView.m_bFontIs_FIXED_PITCH = TRUE;  /* 現在のフォントは固定幅フォントである */
03701         }else{
03702             GetShareData()->m_Common.m_sView.m_bFontIs_FIXED_PITCH = FALSE; /* 現在のフォントは固定幅フォントである */
03703         }
03704         /* 設定変更を反映させる */
03705         /* 全編集ウィンドウへメッセージをポストする */
03706         CShareData::getInstance()->PostMessageToAllEditors(
03707 //      m_cShareData.SendMessageToAllEditors(
03708             MYWM_CHANGESETTING,
03709             (WPARAM)0, (LPARAM)hwndFrame, hwndFrame
03710         );
03711
03712         /* キャレットの表示 */
03713 //      ::HideCaret( GetHwnd() );
03714 //      ::ShowCaret( GetHwnd() );
03715
03716 //      /* アクティブにする */
03717 //      /* アクティブにする */
03718 //      ActivateFrameWindow( hwndFrame );
03719     }
03720     return;
03721 }
03722
03723
03724
03725
03726 /* 共通設定 */
03727 void CViewCommander::Command_OPTION( void )
03728 {
03729     /* 設定プロパティシート テスト用 */
03730     GetDocument()->OpenPropertySheet( -1/*, -1*/ );
03731
03732     return;
03733 }
03734
03735
03736
03737
03738 /* タイプ別設定 */
03739 void CViewCommander::Command_OPTION_TYPE( void )
03740 {
03741     GetDocument()->OpenPropertySheetTypes( -1, GetDocument()->GetDocumentType() );
03742
03743     return;
03744 }
03745
03746
03747
03748
03749 /* タイプ別設定一覧 */
03750 void CViewCommander::Command_TYPE_LIST( void )
03751 {
03752     CDlgTypeList    cDlgTypeList;
03753     int             nSettingType;
03754 //  cDlgTypeList.Create( GetInstance(), GetHwnd() );
03755     nSettingType = GetDocument()->GetDocumentType();
03756     if( cDlgTypeList.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), &nSettingType ) ){
03757         //  Nov. 29, 2000 genta
03758         //  一時的な設定適用機能を無理矢理追加
03759         if( nSettingType & PROP_TEMPCHANGE_FLAG ){
03760             GetDocument()->SetDocumentType( nSettingType & ~PROP_TEMPCHANGE_FLAG, true );
03761             GetDocument()->LockDocumentType();
03762             /* 設定変更を反映させる */
03763             GetDocument()->OnChangeSetting();
03764         }
03765         else{
03766             /* タイプ別設定 */
03767             GetDocument()->OpenPropertySheetTypes( -1, nSettingType );
03768         }
03769     }
03770     return;
03771 }
03772
03773
03774
03775
03776 /* 行の二重化(折り返し単位) */
03777 void CViewCommander::Command_DUPLICATELINE( void )
03778 {
03779     int             bCRLF;
03780     int             bAddCRLF;
03781     CNativeW        cmemBuf;
03782     const CLayout*  pcLayout;
03783
03784     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){    /* テキストが選択されているか */
03785         /* 現在の選択範囲を非選択状態に戻す */
03786         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
03787     }
03788
03789     pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( GetCaret().GetCaretLayoutPos().GetY2() );
03790     if( NULL == pcLayout ){
03791         ::MessageBeep( MB_ICONHAND );
03792         return;
03793     }
03794
03795     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
03796         COpe*   pcOpe = new COpe(OPE_MOVECARET);
03797         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();             // 操作前のキャレット位置
03798         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
03799         /* 操作の追加 */
03800         GetOpeBlk()->AppendOpe( pcOpe );
03801     }
03802
03803     CLayoutPoint ptCaretPosOld = GetCaret().GetCaretLayoutPos() + CLayoutPoint(0,1);
03804
03805     //行頭に移動(折り返し単位)
03806     Command_GOLINETOP( m_pCommanderView->GetSelectionInfo().m_bSelectingLock, 0x1 /* カーソル位置に関係なく行頭に移動 */ );
03807
03808     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
03809         COpe*   pcOpe = new COpe(OPE_MOVECARET);
03810         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
03811         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
03812         /* 操作の追加 */
03813         GetOpeBlk()->AppendOpe( pcOpe );
03814     }
03815
03816
03817
03818     /* 二重化したい行を調べる
03819     ||  ・改行で終わっている
03820     ||  ・改行で終わっていない
03821     ||  ・最終行である
03822     ||  →折り返しでない
03823     ||  ・最終行でない
03824     ||  →折り返しである
03825     */
03826     bCRLF = ( EOL_NONE == pcLayout->m_cEol ) ? FALSE : TRUE;
03827
03828     bAddCRLF = FALSE;
03829     if( !bCRLF ){
03830         if( GetCaret().GetCaretLayoutPos().GetY2() == GetDocument()->m_cLayoutMgr.GetLineCount() - 1 ){
03831             bAddCRLF = TRUE;
03832         }
03833     }
03834
03835     cmemBuf.SetString( pcLayout->GetPtr(), pcLayout->GetLengthWithoutEOL() + pcLayout->m_cEol.GetLen() );   //  ※pcLayout->GetLengthWithEOL()は、EOLの長さを必ず1にするので使えない。
03836     if( bAddCRLF ){
03837         /* 現在、Enterなどで挿入する改行コードの種類を取得 */
03838         CEOL cWork = GetDocument()->GetNewLineCode();
03839         cmemBuf.AppendString( cWork.GetUnicodeValue(), cWork.GetLen() );
03840     }
03841
03842     /* 現在位置にデータを挿入 */
03843     CLayoutPoint ptLayoutNew;
03844     m_pCommanderView->InsertData_CEditView(
03845         GetCaret().GetCaretLayoutPos(),
03846         cmemBuf.GetStringPtr(),
03847         cmemBuf.GetStringLength(),
03848         &ptLayoutNew,
03849         true
03850     );
03851
03852     /* カーソルを移動 */
03853     GetCaret().MoveCursor( ptCaretPosOld, TRUE );
03854     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
03855
03856
03857     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
03858         COpe*   pcOpe = new COpe(OPE_MOVECARET);
03859         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();             // 操作前のキャレット位置
03860         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
03861         /* 操作の追加 */
03862         GetOpeBlk()->AppendOpe( pcOpe );
03863     }
03864     return;
03865 }
03866
03867
03868
03869
03870 /* 小文字 */
03871 void CViewCommander::Command_TOLOWER( void )
03872 {
03873     /* 選択エリアのテキストを指定方法で変換 */
03874     m_pCommanderView->ConvSelectedArea( F_TOLOWER );
03875     return;
03876 }
03877
03878
03879
03880
03881 /* 大文字 */
03882 void CViewCommander::Command_TOUPPER( void )
03883 {
03884     /* 選択エリアのテキストを指定方法で変換 */
03885     m_pCommanderView->ConvSelectedArea( F_TOUPPER );
03886     return;
03887 }
03888
03889
03890
03891
03892 /* 全角→半角 */
03893 void CViewCommander::Command_TOHANKAKU( void )
03894 {
03895     /* 選択エリアのテキストを指定方法で変換 */
03896     m_pCommanderView->ConvSelectedArea( F_TOHANKAKU );
03897     return;
03898 }
03899
03900
03901 /* 全角カタカナ→半角カタカナ */       //Aug. 29, 2002 ai
03902 void CViewCommander::Command_TOHANKATA( void )
03903 {
03904     /* 選択エリアのテキストを指定方法で変換 */
03905     m_pCommanderView->ConvSelectedArea( F_TOHANKATA );
03906     return;
03907 }
03908
03909             //July. 30, 2001 Misaka
03911 void CViewCommander::Command_TOZENEI( void )
03912 {
03913     /* 選択エリアのテキストを指定方法で変換 */
03914     m_pCommanderView->ConvSelectedArea( F_TOZENEI );
03915     return;
03916 }
03917
03919 void CViewCommander::Command_TOHANEI( void )
03920 {
03921     /* 選択エリアのテキストを指定方法で変換 */
03922     m_pCommanderView->ConvSelectedArea( F_TOHANEI );
03923     return;
03924 }
03925
03926
03927 /* 半角＋全ひら→全角・カタカナ */    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
03928 void CViewCommander::Command_TOZENKAKUKATA( void )
03929 {
03930     /* 選択エリアのテキストを指定方法で変換 */
03931     m_pCommanderView->ConvSelectedArea( F_TOZENKAKUKATA );
03932     return;
03933 }
03934
03935
03936
03937
03938 /* 半角＋全カタ→全角・ひらがな */    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
03939 void CViewCommander::Command_TOZENKAKUHIRA( void )
03940 {
03941     /* 選択エリアのテキストを指定方法で変換 */
03942     m_pCommanderView->ConvSelectedArea( F_TOZENKAKUHIRA );
03943     return;
03944 }
03945
03946
03947
03948
03949 /* 半角カタカナ→全角カタカナ */
03950 void CViewCommander::Command_HANKATATOZENKAKUKATA( void )
03951 {
03952     /* 選択エリアのテキストを指定方法で変換 */
03953     m_pCommanderView->ConvSelectedArea( F_HANKATATOZENKAKUKATA );
03954     return;
03955 }
03956
03957
03958
03959
03960 /* 半角カタカナ→全角ひらがな */
03961 void CViewCommander::Command_HANKATATOZENKAKUHIRA( void )
03962 {
03963     /* 選択エリアのテキストを指定方法で変換 */
03964     m_pCommanderView->ConvSelectedArea( F_HANKATATOZENKAKUHIRA );
03965     return;
03966 }
03967
03968
03969
03970
03971 /* TAB→空白 */
03972 void CViewCommander::Command_TABTOSPACE( void )
03973 {
03974     /* 選択エリアのテキストを指定方法で変換 */
03975     m_pCommanderView->ConvSelectedArea( F_TABTOSPACE );
03976     return;
03977 }
03978
03979 /* 空白→TAB */ //---- Stonee, 2001/05/27
03980 void CViewCommander::Command_SPACETOTAB( void )
03981 {
03982     /* 選択エリアのテキストを指定方法で変換 */
03983     m_pCommanderView->ConvSelectedArea( F_SPACETOTAB );
03984     return;
03985 }
03986
03987
03988
03989 //#define F_HANKATATOZENKAKUKATA    30557   /* 半角カタカナ→全角カタカナ */
03990 //#define F_HANKATATOZENKAKUHIRA    30558   /* 半角カタカナ→全角ひらがな */
03991
03992
03993
03994
03995 /* E-Mail(JIS→SJIS)コード変換 */
03996 void CViewCommander::Command_CODECNV_EMAIL( void )
03997 {
03998     /* 選択エリアのテキストを指定方法で変換 */
03999     m_pCommanderView->ConvSelectedArea( F_CODECNV_EMAIL );
04000     return;
04001 }
04002
04003
04004
04005
04006 /* EUC→SJISコード変換 */
04007 void CViewCommander::Command_CODECNV_EUC2SJIS( void )
04008 {
04009     /* 選択エリアのテキストを指定方法で変換 */
04010     m_pCommanderView->ConvSelectedArea( F_CODECNV_EUC2SJIS );
04011     return;
04012 }
04013
04014
04015
04016
04017 /* Unicode→SJISコード変換 */
04018 void CViewCommander::Command_CODECNV_UNICODE2SJIS( void )
04019 {
04020     /* 選択エリアのテキストを指定方法で変換 */
04021     m_pCommanderView->ConvSelectedArea( F_CODECNV_UNICODE2SJIS );
04022     return;
04023 }
04024
04025
04026
04027
04028 /* UnicodeBE→SJISコード変換 */
04029 void CViewCommander::Command_CODECNV_UNICODEBE2SJIS( void )
04030 {
04031     /* 選択エリアのテキストを指定方法で変換 */
04032     m_pCommanderView->ConvSelectedArea( F_CODECNV_UNICODEBE2SJIS );
04033     return;
04034 }
04035
04036
04037
04038
04039 /* SJIS→JISコード変換 */
04040 void CViewCommander::Command_CODECNV_SJIS2JIS( void )
04041 {
04042     /* 選択エリアのテキストを指定方法で変換 */
04043     m_pCommanderView->ConvSelectedArea( F_CODECNV_SJIS2JIS );
04044     return;
04045 }
04046
04047
04048
04049
04050 /* SJIS→EUCコード変換 */
04051 void CViewCommander::Command_CODECNV_SJIS2EUC( void )
04052 {
04053     /* 選択エリアのテキストを指定方法で変換 */
04054     m_pCommanderView->ConvSelectedArea( F_CODECNV_SJIS2EUC );
04055     return;
04056 }
04057
04058
04059
04060
04061 /* UTF-8→SJISコード変換 */
04062 void CViewCommander::Command_CODECNV_UTF82SJIS( void )
04063 {
04064     /* 選択エリアのテキストを指定方法で変換 */
04065     m_pCommanderView->ConvSelectedArea( F_CODECNV_UTF82SJIS );
04066     return;
04067 }
04068
04069
04070
04071
04072 /* UTF-7→SJISコード変換 */
04073 void CViewCommander::Command_CODECNV_UTF72SJIS( void )
04074 {
04075     /* 選択エリアのテキストを指定方法で変換 */
04076     m_pCommanderView->ConvSelectedArea( F_CODECNV_UTF72SJIS );
04077     return;
04078 }
04079
04080
04081
04082
04083 /* SJIS→UTF-7コード変換 */
04084 void CViewCommander::Command_CODECNV_SJIS2UTF7( void )
04085 {
04086     /* 選択エリアのテキストを指定方法で変換 */
04087     m_pCommanderView->ConvSelectedArea( F_CODECNV_SJIS2UTF7 );
04088     return;
04089 }
04090
04091
04092
04093
04094 /* SJIS→UTF-8コード変換 */
04095 void CViewCommander::Command_CODECNV_SJIS2UTF8( void )
04096 {
04097     /* 選択エリアのテキストを指定方法で変換 */
04098     m_pCommanderView->ConvSelectedArea( F_CODECNV_SJIS2UTF8 );
04099     return;
04100 }
04101
04102
04103
04104
04105 /* 自動判別→SJISコード変換 */
04106 void CViewCommander::Command_CODECNV_AUTO2SJIS( void )
04107 {
04108     /* 選択エリアのテキストを指定方法で変換 */
04109     m_pCommanderView->ConvSelectedArea( F_CODECNV_AUTO2SJIS );
04110     return;
04111 }
04112
04113
04114
04115
04120 // トグル用のフラグに変更 20060201 aroka
04121 BOOL CViewCommander::Command_FUNCLIST(
04122     int nAction,
04123     int nOutlineType
04124 )
04125 {
04126 //  if( bCheckOnly ){
04127 //      return TRUE;
04128 //  }
04129
04130     static CFuncInfoArr cFuncInfoArr;
04131 //  int     nLine;
04132 //  int     nListType;
04133
04134     //  2001.12.03 hor & 2002.3.13 YAZAKI
04135     if( nOutlineType == OUTLINE_DEFAULT ){
04136         /* タイプ別に設定されたアウトライン解析方法 */
04137         nOutlineType = GetDocument()->GetDocumentAttribute().m_nDefaultOutline;
04138     }
04139
04140     if( NULL != GetEditWindow()->m_cDlgFuncList.GetHwnd() && nAction != SHOW_RELOAD ){
04141         switch(nAction ){
04142         case SHOW_NORMAL: // アクティブにする
04143             //  開いているものと種別が同じならActiveにするだけ．異なれば再解析
04144             if( GetEditWindow()->m_cDlgFuncList.CheckListType( nOutlineType )){
04145                 ActivateFrameWindow( GetEditWindow()->m_cDlgFuncList.GetHwnd() );
04146                 return TRUE;
04147             }
04148             break;
04149         case SHOW_TOGGLE: // 閉じる
04150             //  開いているものと種別が同じなら閉じる．異なれば再解析
04151             if( GetEditWindow()->m_cDlgFuncList.CheckListType( nOutlineType )){
04152 				::SendMessageAny( GetEditWindow()->m_cDlgFuncList.GetHwnd(), WM_CLOSE, 0, 0 );
04153                 return TRUE;
04154             }
04155             break;
04156         default:
04157             break;
04158         }
04159     }
04160
04161     /* 解析結果データを空にする */
04162     cFuncInfoArr.Empty();
04163
04164     switch( nOutlineType ){
04165 //  case OUTLINE_C:         GetDocument()->MakeFuncList_C( &cFuncInfoArr );break;
04166     case OUTLINE_CPP:
04167         GetDocument()->MakeFuncList_C( &cFuncInfoArr );
04168         /* C言語標準保護委員会勧告特別処理実装箇所(嘘) */
04169         if( CheckEXT( GetDocument()->GetFilePath(), _T("c") ) ){
04170             nOutlineType = OUTLINE_C;   /* これでC関数一覧リストビューになる */
04171         }
04172         break;
04173     case OUTLINE_PLSQL:     GetDocument()->MakeFuncList_PLSQL( &cFuncInfoArr );break;
04174     case OUTLINE_JAVA:      GetDocument()->MakeFuncList_Java( &cFuncInfoArr );break;
04175     case OUTLINE_COBOL:     GetDocument()->MakeTopicList_cobol( &cFuncInfoArr );break;
04176     case OUTLINE_ASM:       GetDocument()->MakeTopicList_asm( &cFuncInfoArr );break;
04177     case OUTLINE_PERL:      GetDocument()->MakeFuncList_Perl( &cFuncInfoArr );break;    //  Sep. 8, 2000 genta
04178     case OUTLINE_VB:        GetDocument()->MakeFuncList_VisualBasic( &cFuncInfoArr );break; //  June 23, 2001 N.Nakatani
04179     case OUTLINE_WZTXT:     GetDocument()->MakeTopicList_wztxt(&cFuncInfoArr);break;        // 2003.05.20 zenryaku 階層付テキスト アウトライン解析
04180     case OUTLINE_HTML:      GetDocument()->MakeTopicList_html(&cFuncInfoArr);break;     // 2003.05.20 zenryaku HTML アウトライン解析
04181     case OUTLINE_TEX:       GetDocument()->MakeTopicList_tex(&cFuncInfoArr);break;      // 2003.07.20 naoh TeX アウトライン解析
04182     case OUTLINE_BOOKMARK:  GetDocument()->MakeFuncList_BookMark( &cFuncInfoArr );break;    //  2001.12.03 hor
04183     case OUTLINE_FILE:      GetDocument()->MakeFuncList_RuleFile( &cFuncInfoArr );break;    //  2002.04.01 YAZAKI アウトライン解析にルールファイルを導入
04184 //  case OUTLINE_UNKNOWN:   //Jul. 08, 2001 JEPRO 使わないように変更
04185     case OUTLINE_PYTHON:    GetDocument()->MakeFuncList_python(&cFuncInfoArr);break;        // 2007.02.08 genta
04186     case OUTLINE_TEXT:
04187         //  fall though
04188         //  ここには何も入れてはいけない 2007.02.28 genta 注意書き
04189     default:
04190         GetDocument()->MakeTopicList_txt( &cFuncInfoArr );
04191         break;
04192     }
04193
04194     /* 解析対象ファイル名 */
04195     _tcscpy( cFuncInfoArr.m_szFilePath, GetDocument()->GetFilePath() );
04196
04197     /* アウトライン ダイアログの表示 */
04198     if( NULL == GetEditWindow()->m_cDlgFuncList.GetHwnd() ){
04199         GetEditWindow()->m_cDlgFuncList.DoModeless(
04200             GetInstance(),
04201             m_pCommanderView->GetHwnd(),
04202             (LPARAM)m_pCommanderView,
04203             &cFuncInfoArr,
04204             GetCaret().GetCaretLayoutPos().GetY2() + CLayoutInt(1),
04205             nOutlineType,
04206             GetDocument()->GetDocumentAttribute().m_bLineNumIsCRLF  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
04207         );
04208     }else{
04209         /* アクティブにする */
04210         GetEditWindow()->m_cDlgFuncList.Redraw( nOutlineType, &cFuncInfoArr, GetCaret().GetCaretLayoutPos().GetY2() + 1 );
04211         ActivateFrameWindow( GetEditWindow()->m_cDlgFuncList.GetHwnd() );
04212     }
04213
04214     return TRUE;
04215 }
04216
04217
04218
04219
04220 /* 上下に分割 */   //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
04221 void CViewCommander::Command_SPLIT_V( void )
04222 {
04223     GetEditWindow()->m_cSplitterWnd.VSplitOnOff();
04224     return;
04225 }
04226
04227
04228
04229
04230 /* 左右に分割 */   //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
04231 void CViewCommander::Command_SPLIT_H( void )
04232 {
04233     GetEditWindow()->m_cSplitterWnd.HSplitOnOff();
04234     return;
04235 }
04236
04237
04238
04239
04240 /* 縦横に分割 */   //Sept. 17, 2000 jepro 説明に「に」を追加
04241 void CViewCommander::Command_SPLIT_VH( void )
04242 {
04243     GetEditWindow()->m_cSplitterWnd.VHSplitOnOff();
04244     return;
04245 }
04246
04247
04248
04249
04250 //From Here Nov. 25, 2000 JEPRO
04251 /* ヘルプ目次 */
04252 void CViewCommander::Command_HELP_CONTENTS( void )
04253 {
04254     ShowWinHelpContents( m_pCommanderView->GetHwnd(), CEditApp::Instance()->GetHelpFilePath() );    //  目次を表示する
04255     return;
04256 }
04257
04258
04259
04260
04261 /* ヘルプキーワード検索 */
04262 void CViewCommander::Command_HELP_SEARCH( void )
04263 {
04264     MyWinHelp( m_pCommanderView->GetHwnd(), CEditApp::Instance()->GetHelpFilePath(), HELP_KEY, (ULONG_PTR)_T("") ); // 2006.10.10 ryoji MyWinHelpに変更に変更
04265     return;
04266 }
04267 //To Here Nov. 25, 2000
04268
04269
04270
04271
04276 void CViewCommander::Command_ToggleKeySearch( void )
04277 {   /* 共通設定ダイアログの設定をキー割り当てでも切り替えられるように */
04278     if( GetShareData()->m_Common.m_sSearch.m_bUseCaretKeyWord ){
04279         GetShareData()->m_Common.m_sSearch.m_bUseCaretKeyWord = FALSE;
04280     }else{
04281         GetShareData()->m_Common.m_sSearch.m_bUseCaretKeyWord = TRUE;
04282     }
04283 }
04284
04285
04286
04287
04288 /* コマンド一覧 */
04289 void CViewCommander::Command_MENU_ALLFUNC( void )
04290 {
04291
04292     UINT    uFlags;
04293     POINT   po;
04294     HMENU   hMenu;
04295     HMENU   hMenuPopUp;
04296     int     i;
04297     int     j;
04298     int     nId;
04299
04300 //  From Here Sept. 15, 2000 JEPRO
04301 //  サブメニュー、特に「その他」のコマンドに対してステータスバーに表示されるキーアサイン情報が
04302 //  メニューで隠れないように右にずらした
04303 //  (本当はこの「コマンド一覧」メニューをダイアログに変更しバーをつまんで自由に移動できるようにしたい)
04304 //  po.x = 0;
04305     po.x = 540;
04306 //  To Here Sept. 15, 2000 (Oct. 7, 2000 300→500; Nov. 3, 2000 500→540)
04307     po.y = 0;
04308     ::ClientToScreen( m_pCommanderView->GetHwnd(), &po );
04309
04310     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
04311     pCEditWnd->GetMenuDrawer().ResetContents();
04312
04313     //  Oct. 3, 2001 genta
04314     CFuncLookup& FuncLookup = GetDocument()->m_cFuncLookup;
04315
04316     hMenu = ::CreatePopupMenu();
04317 //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更したことで1番(カーソル移動系)が前にシフトされた(この変更によって i=1→i=0 と変更)
04318     //  Oct. 3, 2001 genta
04319     for( i = 0; i < FuncLookup.GetCategoryCount(); i++ ){
04320         hMenuPopUp = ::CreatePopupMenu();
04321         for( j = 0; j < FuncLookup.GetItemCount(i); j++ ){
04322             //  Oct. 3, 2001 genta
04323             int code = FuncLookup.Pos2FuncCode( i, j );
04324             if( code != 0 ){
04325                 WCHAR   szLabel[300];
04326                 FuncLookup.Pos2FuncName( i, j, szLabel, 256 );
04327                 uFlags = MF_BYPOSITION | MF_STRING | MF_ENABLED;
04328                 //  Oct. 3, 2001 genta
04329                 pCEditWnd->GetMenuDrawer().MyAppendMenu( hMenuPopUp, uFlags, code, szLabel );
04330             }
04331         }
04332         //  Oct. 3, 2001 genta
04333         pCEditWnd->GetMenuDrawer().MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , FuncLookup.Category2Name(i) );
04334 //      pCEditWnd->GetMenuDrawer().MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , nsFuncCode::ppszFuncKind[i] );
04335     }
04336
04337     nId = ::TrackPopupMenu(
04338         hMenu,
04339         TPM_TOPALIGN
04340         | TPM_LEFTALIGN
04341         | TPM_RETURNCMD
04342         | TPM_LEFTBUTTON
04343         ,
04344         po.x,
04345         po.y,
04346         0,
04347         GetMainWindow()/*GetHwnd()*/,
04348         NULL
04349     );
04350     ::DestroyMenu( hMenu );
04351     if( 0 != nId ){
04352         /* コマンドコードによる処理振り分け */
04353 //      HandleCommand( nFuncID, TRUE, 0, 0, 0, 0 );
04354 		::PostMessageCmd( GetMainWindow(), WM_COMMAND, MAKELONG( nId, 0 ), (LPARAM)NULL );
04355     }
04356     return;
04357 }
04358
04359
04360
04361
04362 /* 外部ヘルプ１ */
04363 void CViewCommander::Command_EXTHELP1( void )
04364 {
04365 retry:;
04366     if( CShareData::getInstance()->ExtWinHelpIsSet( GetDocument()->GetDocumentType() ) == false){
04367 //  if( 0 == wcslen( GetShareData()->m_Common.m_szExtHelp1 ) ){
04368         ::MessageBeep( MB_ICONHAND );
04369 //From Here Sept. 15, 2000 JEPRO
04370 //      [Esc]キーと[x]ボタンでも中止できるように変更
04371         if( IDYES == ::MYMESSAGEBOX_A( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME_A,
04372 //To Here Sept. 15, 2000
04373             "外部ヘルプ１が設定されていません。\n今すぐ設定しますか?"
04374         ) ){
04375             /* 共通設定 プロパティシート */
04376             if( !GetDocument()->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHELP1*/ ) ){
04377                 return;
04378             }
04379             goto retry;
04380         }
04381         //  Jun. 15, 2000 genta
04382         else{
04383             return;
04384         }
04385     }
04386
04387     CNativeW        cmemCurText;
04388     const TCHAR*    helpfile = CShareData::getInstance()->GetExtWinHelp( GetDocument()->GetDocumentType() );
04389
04390     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
04391     m_pCommanderView->GetCurrentTextForSearch( cmemCurText );
04392     if( _IS_REL_PATH( helpfile ) ){
04393         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
04394         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
04395         TCHAR path[_MAX_PATH];
04396         GetInidirOrExedir( path, helpfile );
04397         ::WinHelp( m_pCommanderView->m_hwndParent, path, HELP_KEY, (ULONG_PTR)cmemCurText.GetStringPtr() );
04398         return;
04399     }
04400     ::WinHelp( m_pCommanderView->m_hwndParent, helpfile , HELP_KEY, (ULONG_PTR)cmemCurText.GetStringPtr() );
04401     return;
04402 }
04403
04404
04405
04406
04414 void CViewCommander::Command_EXTHTMLHELP( const WCHAR* _helpfile, const WCHAR* kwd )
04415 {
04416     const TCHAR* helpfile = to_tchar(_helpfile);
04417
04418     HWND        hwndHtmlHelp;
04419     int         nLen;
04420
04421     DBPRINT_A("helpfile=%ls\n",helpfile);
04422
04423     //  From Here Jul. 5, 2002 genta
04424     const TCHAR *filename = NULL;
04425     if ( helpfile == NULL || helpfile[0] == _T('\0') ){
04426         while( !CShareData::getInstance()->ExtHTMLHelpIsSet( GetDocument()->GetDocumentType()) ){
04427             ::MessageBeep( MB_ICONHAND );
04428     //  From Here Sept. 15, 2000 JEPRO
04429     //      [Esc]キーと[x]ボタンでも中止できるように変更
04430             if( IDYES != ::MYMESSAGEBOX_A( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME_A,
04431     //  To Here Sept. 15, 2000
04432                 "外部HTMLヘルプが設定されていません。\n今すぐ設定しますか?"
04433             ) ){
04434                 return;
04435             }
04436             /* 共通設定 プロパティシート */
04437             if( !GetDocument()->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHTMLHELP*/ ) ){
04438                 return;
04439             }
04440         }
04441         filename = CShareData::getInstance()->GetExtHTMLHelp( GetDocument()->GetDocumentType() );
04442     }
04443     else {
04444         filename = helpfile;
04445     }
04446     //  To Here Jul. 5, 2002 genta
04447
04448     //  Jul. 5, 2002 genta
04449     //  キーワードの外部指定を可能に
04450     CNativeW    cmemCurText;
04451     if( kwd != NULL && kwd[0] != _T('\0') ){
04452         cmemCurText.SetString( kwd );
04453     }
04454     else {
04455         /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
04456         m_pCommanderView->GetCurrentTextForSearch( cmemCurText );
04457     }
04458
04459     /* HtmlHelpビューアはひとつ */
04460     if( CShareData::getInstance()->HTMLHelpIsSingle( GetDocument()->GetDocumentType() ) ){
04461         // タスクトレイのプロセスにHtmlHelpを起動させる
04462         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
04463         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
04464         TCHAR* pWork=GetShareData()->GetWorkBuffer<TCHAR>();
04465         if( _IS_REL_PATH( filename ) ){
04466             GetInidirOrExedir( pWork, filename );
04467         }else{
04468             _tcscpy( pWork, filename ); //  Jul. 5, 2002 genta
04469         }
04470         nLen = _tcslen( pWork );
04471         _tcscpy( &pWork[nLen + 1], cmemCurText.GetStringT() );
04472         hwndHtmlHelp = (HWND)::SendMessageAny(
04473             GetShareData()->m_hwndTray,
04474             MYWM_HTMLHELP,
04475             (WPARAM)GetMainWindow(),
04476             0
04477         );
04478     }
04479     else{
04480         /* 自分でHtmlHelpを起動させる */
04481         HH_AKLINK   link;
04482         link.cbStruct = sizeof( link ) ;
04483         link.fReserved = FALSE ;
04484         link.pszKeywords = cmemCurText.GetStringT();
04485         link.pszUrl = NULL;
04486         link.pszMsgText = NULL;
04487         link.pszMsgTitle = NULL;
04488         link.pszWindow = NULL;
04489         link.fIndexOnFail = TRUE;
04490
04491         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
04492         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
04493         if( _IS_REL_PATH( filename ) ){
04494             TCHAR path[_MAX_PATH];
04495             GetInidirOrExedir( path, filename );
04496             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
04497             hwndHtmlHelp = OpenHtmlHelp(
04498                 NULL/*GetShareData()->m_hwndTray*/,
04499                 path, //    Jul. 5, 2002 genta
04500                 HH_KEYWORD_LOOKUP,
04501                 (DWORD_PTR)&link
04502             );
04503         }else{
04504             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
04505             hwndHtmlHelp = OpenHtmlHelp(
04506                 NULL/*GetShareData()->m_hwndTray*/,
04507                 filename, //    Jul. 5, 2002 genta
04508                 HH_KEYWORD_LOOKUP,
04509                 (DWORD_PTR)&link
04510             );
04511         }
04512     }
04513
04514     //  Jul. 6, 2001 genta hwndHtmlHelpのチェックを追加
04515     if( hwndHtmlHelp != NULL ){
04516         ::BringWindowToTop( hwndHtmlHelp );
04517     }
04518
04519     return;
04520 }
04521
04522
04523
04524
04525 //From Here Dec. 25, 2000 JEPRO
04526 /* バージョン情報 */
04527 void CViewCommander::Command_ABOUT( void )
04528 {
04529     CDlgAbout cDlgAbout;
04530     cDlgAbout.DoModal( GetInstance(), m_pCommanderView->GetHwnd() );
04531     return;
04532 }
04533 //To Here Dec. 25, 2000
04534
04535
04536
04537
04538 /* 右クリックメニュー */
04539 void CViewCommander::Command_MENU_RBUTTON( void )
04540 {
04541     int         nId;
04542     int         nLength;
04543 //  HGLOBAL     hgClip;
04544 //  char*       pszClip;
04545     int         i;
04546     /* ポップアップメニュー(右クリック) */
04547     nId = m_pCommanderView->CreatePopUpMenu_R();
04548     if( 0 == nId ){
04549         return;
04550     }
04551     switch( nId ){
04552     case IDM_COPYDICINFO:
04553         const TCHAR*    pszStr;
04554         pszStr = m_pCommanderView->m_cTipWnd.m_cInfo.GetStringPtr( &nLength );
04555
04556         TCHAR*      pszWork;
04557         pszWork = new TCHAR[nLength + 1];
04558         auto_memcpy( pszWork, pszStr, nLength );
04559         pszWork[nLength] = _T('\0');
04560
04561         // 見た目と同じように、\n を CR+LFへ変換する
04562         for( i = 0; i < nLength ; ++i){
04563             if( pszWork[i] == _T('\\') && pszWork[i + 1] == _T('n')){
04564                 pszWork[i] =     WCODE::CR;
04565                 pszWork[i + 1] = WCODE::LF;
04566             }
04567         }
04568         /* クリップボードにデータを設定 */
04569         m_pCommanderView->MySetClipboardData( pszWork, nLength, FALSE );
04570         delete[] pszWork;
04571
04572         break;
04573
04574     case IDM_JUMPDICT:
04575         /* キーワード辞書ファイルを開く */
04576         if(GetDocument()->GetDocumentAttribute().m_bUseKeyWordHelp){        /* キーワード辞書セレクトを使用する */  // 2006.04.10 fon
04577             //  Feb. 17, 2007 genta 相対パスを実行ファイル基準で開くように
04578             m_pCommanderView->TagJumpSub(
04579                 GetShareData()->m_Types[GetDocument()->GetDocumentType()].m_KeyHelpArr[m_pCommanderView->m_cTipWnd.m_nSearchDict].m_szPath,
04580                 CMyPoint(1, m_pCommanderView->m_cTipWnd.m_nSearchLine),
04581                 0,
04582                 true
04583             );
04584         }
04585         break;
04586
04587     default:
04588         /* コマンドコードによる処理振り分け */
04589 //      HandleCommand( nId, TRUE, 0, 0, 0, 0 );
04590 		::PostMessageCmd( GetMainWindow(), WM_COMMAND, MAKELONG( nId, 0 ),  (LPARAM)NULL );
04591         break;
04592     }
04593     return;
04594 }
04595
04596
04597
04598
04599
04600 //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* );
04601
04602
04603
04604
04605
04606
04607
04608 // From Here 2001.12.03 hor
04609 /* インデント ver2 */
04610 void CViewCommander::Command_INDENT_TAB( void )
04611 {
04612     if(!GetDocument()->GetDocumentAttribute().m_bInsSpace){
04613         if(m_pCommanderView->GetSelectionInfo().IsTextSelected() && !GetSelect().IsLineOne()){
04614             Command_INDENT( WCODE::TAB );
04615         }else{
04616             Command_WCHAR( WCODE::TAB );
04617         }
04618         return;
04619     }
04620     if(m_pCommanderView->GetSelectionInfo().IsTextSelected() && m_pCommanderView->GetSelectionInfo().IsBoxSelecting() && GetSelect().GetFrom().x==GetSelect().GetTo().x){
04621         Command_INDENT( WCODE::TAB );
04622         return;
04623     }
04624     CLayoutInt  nCol    =   CLayoutInt(0);
04625     //  Sep. 23, 2002 genta LayoutMgrの値を使う
04626     int     nTab    =   (Int)GetDocument()->m_cLayoutMgr.GetTabSpace();
04627
04628     //インデント開始位置の取得
04629     if ( m_pCommanderView->GetSelectionInfo().IsTextSelected() ) {
04630         nCol = (GetSelect().GetFrom().x<GetSelect().GetTo().x)?GetSelect().GetFrom().x:GetSelect().GetTo().x;
04631     }
04632     else{
04633         nCol = GetCaret().GetCaretLayoutPos().GetX2();
04634     }
04635
04636     //インデント文字数取得
04637     int     nSpace  =   0;
04638     nSpace = nTab-(Int)(nCol%nTab);
04639     if (nSpace==0) nSpace = nTab;
04640
04641     //TAB幅分だけスペースインデント
04642     if (m_pCommanderView->GetSelectionInfo().IsTextSelected() && GetSelect().IsLineOne() ) {
04643         m_pCommanderView->ReplaceData_CEditView(
04644             GetSelect(),                //選択範囲
04645             NULL,                   /* 削除されたデータのコピー(NULL可能) */
04646             L"                                                                ",    // 挿入するデータ  Sep. 22, 2002 genta TABの最大幅を64に拡張
04647             CLogicInt(nSpace),      /* 挿入するデータの長さ */
04648             true
04649         );
04650         return;
04651     }
04652     // Sep. 22, 2002 genta TABの最大幅を64に拡張
04653     Command_INDENT( L"                                                                " , CLogicInt(nSpace) , TRUE);
04654
04655 }
04656 // To Here 2001.12.03 hor
04657
04658
04659
04660
04661 /* インデント ver1 */
04662 void CViewCommander::Command_INDENT( wchar_t wcChar )
04663 {
04664     using namespace WCODE;
04665
04666     // From Here 2001.12.03 hor
04667     /* SPACEorTABインンデントで矩形選択桁がゼロの時は選択範囲を最大にする */
04668     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
04669     if((wcChar==SPACE || wcChar==TAB) && m_pCommanderView->GetSelectionInfo().IsBoxSelecting() && GetSelect().GetFrom().x==GetSelect().GetTo().x ){
04670         GetSelect().SetToX( GetDocument()->m_cLayoutMgr.GetMaxLineKetas() );
04671         m_pCommanderView->RedrawAll();
04672         return;
04673     }
04674     // To Here 2001.12.03 hor
04675     wchar_t szWork[2];
04676     auto_sprintf( szWork, L"%lc", wcChar );
04677     Command_INDENT( szWork, CLogicInt(wcslen( szWork )) );
04678     return;
04679 }
04680
04681
04682
04683
04684 /* インデント ver0 */
04685 void CViewCommander::Command_INDENT( const wchar_t* pData, CLogicInt nDataLen , BOOL bIndent )
04686 {
04687     CMemory     cMem;
04688     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
04689     CMemory     cmemBuf;
04690     CLayoutPoint ptPosXY;
04691     int         nLineNum; //$$条件分岐によって単位(ロジック/レイアウト)が変わるので、単位混在のミスが発生しやすい
04692     CLogicInt   nDelPos;
04693     int         nDelLen;
04694     int*        pnKey_CharCharsArr;
04695     pnKey_CharCharsArr = NULL;
04696
04697     CLayoutRange sSelectOld;        //範囲選択
04698
04699
04700     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
04701
04702     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){           /* テキストが選択されているか */
04703 //      /* 1バイト文字入力 */
04704         wchar_t* pszWork;
04705         pszWork = new wchar_t[nDataLen + 1];
04706         wmemcpy( pszWork, pData, nDataLen );
04707         pszWork[nDataLen] = L'\0';
04708         // テキストを貼り付け 2004.05.14 Moca 長さを引数で与える
04709         Command_INSTEXT( TRUE, pszWork, nDataLen, FALSE );
04710         delete [] pszWork;
04711         return;
04712     }
04713     m_pCommanderView->SetDrawSwitch(false); // 2002.01.25 hor
04714     /* 矩形範囲選択中か */
04715     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
04716         // From Here 2001.12.03 hor
04717         /* 上書モードのときは選択範囲削除 */
04718         if( ! m_pCommanderView->IsInsMode() /* Oct. 2, 2005 genta */){
04719             sSelectOld = GetSelect();
04720             m_pCommanderView->DeleteData( FALSE );
04721             GetSelect() = sSelectOld;
04722             m_pCommanderView->GetSelectionInfo().SetBoxSelect(true);
04723         }
04724         // To Here 2001.12.03 hor
04725
04726         /* 2点を対角とする矩形を求める */
04727         CLayoutRange rcSel;
04728         TwoPointToRange(
04729             &rcSel,
04730             GetSelect().GetFrom(),  // 範囲選択開始
04731             GetSelect().GetTo()     // 範囲選択終了
04732         );
04733         /* 現在の選択範囲を非選択状態に戻す */
04734         m_pCommanderView->GetSelectionInfo().DisableSelectArea( FALSE/*TRUE 2002.01.25 hor*/ );
04735
04736         // From Here 2001.12.03 hor
04737         /* インデント時は空白行に書込まない */
04738         if( 1 == nDataLen && ( WCODE::SPACE == pData[0] || WCODE::TAB == pData[0] ) ){
04739             bIndent=TRUE;
04740         }
04741         // To Here 2001.12.03 hor
04742
04743         for( nLineNum = (Int)rcSel.GetFrom().y; nLineNum < rcSel.GetTo().y + 1; nLineNum++ ){
04744             const CLayout* pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( CLayoutInt(nLineNum) );
04745             //  Nov. 6, 2002 genta NULLチェック追加
04746             //  これがないとEOF行を含む矩形選択中の文字列入力で落ちる
04747             const wchar_t* pLine;
04748             CLogicInt   nIdxFrom;
04749             CLogicInt   nIdxTo;
04750             if( pcLayout != NULL && NULL != (pLine = pcLayout->GetPtr()) ){
04751                 /* 指定された桁に対応する行のデータ内の位置を調べる */
04752                 nIdxFrom = m_pCommanderView->LineColmnToIndex( pcLayout, rcSel.GetFrom().GetX2() );
04753                 nIdxTo = m_pCommanderView->LineColmnToIndex( pcLayout, rcSel.GetTo().GetX2() );
04754
04755                 for( CLogicInt i = nIdxFrom; i <= nIdxTo; ++i ){
04756                     if( pLine[i] == WCODE::CR || pLine[i] == WCODE::LF ){
04757                         nIdxTo = i;
04758                         break;
04759                     }
04760                 }
04761             }else{
04762                 nIdxFrom = CLogicInt(0);
04763                 nIdxTo = CLogicInt(0);
04764             }
04765             nDelPos = nIdxFrom;
04766             nDelLen = nIdxTo - nIdxFrom;
04767
04768             /* TABやスペースインデントの時 */
04769             if( bIndent && 0 == nDelLen ) {
04770                 continue;
04771             }
04772
04773             //  Nov. 6, 2002 genta pcLayoutがNULLの場合を考慮
04774             ptPosXY.x = ( pcLayout == NULL ? CLayoutInt(0) : m_pCommanderView->LineIndexToColmn( pcLayout, nDelPos ));
04775             ptPosXY.y = nLineNum;
04776
04777             /* 現在位置にデータを挿入 */
04778             CLayoutPoint ptLayoutNew;   // 挿入された部分の次の位置
04779             m_pCommanderView->InsertData_CEditView(
04780                 CLayoutPoint(rcSel.GetFrom().GetX2(), ptPosXY.y),
04781                 pData,      // cmemBuf.GetPtr(),    // 2001.12.03 hor
04782                 nDataLen,   // cmemBuf.GetLength(),     // 2001.12.03 hor
04783                 &ptLayoutNew,
04784                 false
04785             );
04786             GetCaret().MoveCursor( ptLayoutNew, FALSE );
04787             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04788         }
04789         /* 挿入データの先頭位置へカーソルを移動 */
04790         GetCaret().MoveCursor( rcSel.GetFrom(), FALSE );
04791
04792         /* 挿入文字列の情報 */
04793         CDocLineMgr::CreateCharCharsArr(
04794             pData, nDataLen,
04795             &pnKey_CharCharsArr
04796         );
04797         for( int i = 0; i < nDataLen; ){
04798             /* カーソル右移動 */
04799             Command_RIGHT( FALSE, TRUE, FALSE );
04800             i+= pnKey_CharCharsArr[i];
04801         }
04802         if( NULL != pnKey_CharCharsArr ){
04803             delete [] pnKey_CharCharsArr;
04804         }
04805     // From Here 2001.12.03 hor
04806         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
04807         rcSel.GetToPointer()->x += GetCaret().GetCaretLayoutPos().GetX2()-rcSel.GetFrom().GetX2();
04808         if( rcSel.GetTo().x > GetDocument()->m_cLayoutMgr.GetMaxLineKetas() ){
04809             rcSel.GetToPointer()->x = GetDocument()->m_cLayoutMgr.GetMaxLineKetas();
04810         }
04811     // To Here 2001.12.03 hor
04812         rcSel.GetFromPointer()->x = GetCaret().GetCaretLayoutPos().GetX2();
04813
04814         /* カーソルを移動 */
04815         GetCaret().MoveCursor( rcSel.GetFrom(), TRUE );
04816         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04817
04818         if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
04819             COpe*   pcOpe = new COpe(OPE_MOVECARET);
04820             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
04821             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
04822             /* 操作の追加 */
04823             GetOpeBlk()->AppendOpe( pcOpe );
04824         }
04825         GetSelect().SetFrom(rcSel.GetFrom());   //範囲選択開始位置
04826         GetSelect().SetTo(rcSel.GetTo());       //範囲選択終了位置
04827         m_pCommanderView->GetSelectionInfo().SetBoxSelect(true);
04828     }
04829     else{
04830         sSelectOld.SetFrom(CLayoutPoint(CLayoutInt(0),GetSelect().GetFrom().y));
04831         sSelectOld.SetTo  (CLayoutPoint(CLayoutInt(0),GetSelect().GetTo().y  ));
04832         if( GetSelect().GetTo().x > 0 ){
04833             sSelectOld.GetToPointer()->y++;
04834         }
04835         /*
04836         sSelectOld.GetFrom().y = GetSelect().GetFrom().y;   // 範囲選択開始行
04837         sSelectOld.GetFrom().x = 0;                 // 範囲選択開始桁
04838         sSelectOld.GetTo().y   = GetSelect().GetTo().y;     // 範囲選択終了行
04839         if( GetSelect().GetTo().x > 0 ){
04840             sSelectOld.GetTo().y++;                 // 範囲選択終了行
04841         }
04842         sSelectOld.GetTo().x = 0;                   // 範囲選択終了桁
04843         */
04844
04845         // 現在の選択範囲を非選択状態に戻す */
04846         m_pCommanderView->GetSelectionInfo().DisableSelectArea( FALSE );
04847
04848         for( CLayoutInt i = sSelectOld.GetFrom().GetY2(); i < sSelectOld.GetTo().GetY2(); i++ ){
04849             CLayoutInt nLineCountPrev = GetDocument()->m_cLayoutMgr.GetLineCount();
04850             const CLayout* pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY( i );
04851             if( NULL == pcLayout ||                     //  テキストが無いEOLの行は無視
04852                 pcLayout->GetLogicOffset() > 0 ||               //  折り返し行は無視
04853                 pcLayout->GetLengthWithoutEOL() == 0 ){ //  改行のみの行は無視する。
04854                 continue;
04855             }
04856
04857             /* カーソルを移動 */
04858             GetCaret().MoveCursor( CLayoutPoint(CLayoutInt(0), i), FALSE );
04859             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04860
04861             /* 現在位置にデータを挿入 */
04862             CLayoutPoint ptLayoutNew;   // 挿入された部分の次の位置
04863             m_pCommanderView->InsertData_CEditView(
04864                 CLayoutPoint(CLayoutInt(0),i),
04865                 pData,      //  cmemBuf.GetPtr(),   // 2001.12.03 hor
04866                 nDataLen,   //  cmemBuf.GetLength(),    // 2001.12.03 hor
04867                 &ptLayoutNew,
04868                 false
04869             );
04870             /* カーソルを移動 */
04871             GetCaret().MoveCursor( ptLayoutNew, FALSE );
04872             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04873
04874             if ( nLineCountPrev != GetDocument()->m_cLayoutMgr.GetLineCount() ){
04875                 //  行数が変化した!!
04876                 sSelectOld.GetToPointer()->y += GetDocument()->m_cLayoutMgr.GetLineCount() - nLineCountPrev;
04877             }
04878         }
04879
04880         GetSelect() = sSelectOld;
04881
04882         // From Here 2001.12.03 hor
04883         GetCaret().MoveCursor( GetSelect().GetTo(), TRUE );
04884         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04885         if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
04886             COpe*   pcOpe = new COpe(OPE_MOVECARET);
04887             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
04888             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
04889             GetOpeBlk()->AppendOpe( pcOpe );
04890         }
04891         // To Here 2001.12.03 hor
04892     }
04893     /* 再描画 */
04894     m_pCommanderView->SetDrawSwitch(true);  // 2002.01.25 hor
04895     m_pCommanderView->Redraw();         // 2002.01.25 hor
04896     return;
04897 }
04898
04899
04900
04901
04902 /* 逆インデント */
04903 void CViewCommander::Command_UNINDENT( wchar_t wcChar )
04904 {
04905     //  Aug. 9, 2003 genta
04906     //  選択されていない場合に逆インデントした場合に
04907     //  注意メッセージを出す
04908     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){   /* テキストが選択されているか */
04909         /* wchar_t1個分の文字入力 */
04910         Command_WCHAR( wcChar );    //  2003.10.09 zenryaku警告を出すが，動作は以前のままにする
04911         m_pCommanderView->SendStatusMessage(_T("★逆インデントは選択時のみ"));
04912         return;
04913     }
04914
04915     //砂時計
04916     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
04917
04918     CMemory     cmemBuf;
04919
04920     /* 矩形範囲選択中か */
04921     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
04922         ::MessageBeep( MB_ICONHAND );
04923 //**********************************************
04924 //   箱型逆インデントについては、保留とする (1998.10.22)
04925 //**********************************************
04926     }
04927     else{
04928         GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
04929
04930         CLayoutRange sSelectOld;    //範囲選択
04931         sSelectOld.SetFrom(CLayoutPoint(CLayoutInt(0),GetSelect().GetFrom().y));
04932         sSelectOld.SetTo  (CLayoutPoint(CLayoutInt(0),GetSelect().GetTo().y  ));
04933         if( GetSelect().GetTo().x > 0 ){
04934             sSelectOld.GetToPointer()->y++;
04935         }
04936
04937         /* 現在の選択範囲を非選択状態に戻す */
04938         m_pCommanderView->GetSelectionInfo().DisableSelectArea( FALSE );
04939
04940         CLogicInt       nDelLen;
04941         for( CLayoutInt i = sSelectOld.GetFrom().GetY2(); i < sSelectOld.GetTo().GetY2(); i++ ){
04942             CLayoutInt nLineCountPrev = GetDocument()->m_cLayoutMgr.GetLineCount();
04943
04944             const CLayout*  pcLayout;
04945             CLogicInt       nLineLen;
04946             const wchar_t*  pLine = GetDocument()->m_cLayoutMgr.GetLineStr( i, &nLineLen, &pcLayout );
04947             if( NULL == pcLayout || pcLayout->GetLogicOffset() > 0 ){ //折り返し以降の行はインデント処理を行わない
04948                 continue;
04949             }
04950
04951             if( WCODE::TAB == wcChar ){
04952                 if( pLine[0] == wcChar ){
04953                     nDelLen = CLogicInt(1);
04954                 }
04955                 else{
04956                     //削り取る半角スペース数 (1〜タブ幅分) -> nDelLen
04957                     CLogicInt i;
04958                     CLogicInt nTabSpaces = CLogicInt((Int)GetDocument()->m_cLayoutMgr.GetTabSpace());
04959                     for( i = CLogicInt(0); i < nLineLen; i++ ){
04960                         if( WCODE::SPACE != pLine[i] ){
04961                             break;
04962                         }
04963                         //  Sep. 23, 2002 genta LayoutMgrの値を使う
04964                         if( i >= nTabSpaces ){
04965                             break;
04966                         }
04967                     }
04968                     if( 0 == i ){
04969                         continue;
04970                     }
04971                     nDelLen = i;
04972                 }
04973             }
04974             else{
04975                 if( pLine[0] != wcChar ){
04976                     continue;
04977                 }
04978                 nDelLen = CLogicInt(1);
04979             }
04980
04981             /* カーソルを移動 */
04982             GetCaret().MoveCursor( CLayoutPoint(CLayoutInt(0), i), FALSE );
04983             GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
04984
04985
04986             CNativeW    pcMemDeleted;
04987             /* 指定位置の指定長データ削除 */
04988             m_pCommanderView->DeleteData2(
04989                 CLayoutPoint(CLayoutInt(0),i),
04990                 nDelLen,    // 2001.12.03 hor
04991                 &pcMemDeleted
04992             );
04993             if ( nLineCountPrev != GetDocument()->m_cLayoutMgr.GetLineCount() ){
04994                 //  行数が変化した!!
04995                 sSelectOld.GetToPointer()->y += GetDocument()->m_cLayoutMgr.GetLineCount() - nLineCountPrev;
04996             }
04997         }
04998         GetSelect() = sSelectOld;   //範囲選択
04999
05000         // From Here 2001.12.03 hor
05001         GetCaret().MoveCursor( GetSelect().GetTo(), TRUE );
05002         GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
05003         if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
05004             COpe*   pcOpe = new COpe(OPE_MOVECARET);
05005             pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
05006             pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
05007             GetOpeBlk()->AppendOpe( pcOpe );
05008         }
05009         // To Here 2001.12.03 hor
05010     }
05011
05012     /* 再描画 */
05013     m_pCommanderView->Redraw(); // 2002.01.25 hor
05014 }
05015
05016 /* 最後にテキストを追加 */
05017 void CViewCommander::Command_ADDTAIL(
05018     const wchar_t*  pszData,
05019     int             nDataLen
05020 )
05021 {
05022     //テキスト長自動計算
05023     if(nDataLen==-1 && pszData!=NULL)nDataLen=wcslen(pszData);
05024
05025     GetDocument()->SetModified(true,true);  //  Jan. 22, 2002 genta
05026
05027     /*ファイルの最後に移動 */
05028     Command_GOFILEEND( FALSE );
05029
05030     /* 現在位置にデータを挿入 */
05031     CLayoutPoint ptLayoutNew;   // 挿入された部分の次の位置
05032     m_pCommanderView->InsertData_CEditView(
05033         GetCaret().GetCaretLayoutPos(),
05034         pszData,
05035         nDataLen,
05036         &ptLayoutNew,
05037         true
05038     );
05039
05040     /* 挿入データの最後へカーソルを移動 */
05041     // Sep. 2, 2002 すなふき アンダーラインの表示が残ってしまう問題を修正
05042     GetCaret().MoveCursor( ptLayoutNew, TRUE );
05043     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
05044 }
05045
05046
05047
05048
05056 bool CViewCommander::Command_TAGJUMP( bool bClose )
05057 {
05058     wchar_t     szJumpToFile[1024];
05059     int         nPathLen;
05060     int         nBgn;
05061     wmemset( szJumpToFile, 0, _countof(szJumpToFile) );
05062
05063     //  2004.05.13 Moca 初期値を1ではなく元の位置を継承するように
05064     // 0以下は未指定扱い。(1開始)
05065     int         nJumpToLine;
05066     int         nJumpToColm;
05067     nJumpToLine = 0;
05068     nJumpToColm = 0;
05069
05070     /*
05071       カーソル位置変換
05072       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
05073       →
05074       物理位置(行頭からのバイト数、折り返し無し行位置)
05075     */
05076     CLogicPoint ptXY;
05077     GetDocument()->m_cLayoutMgr.LayoutToLogic(
05078         GetCaret().GetCaretLayoutPos(),
05079         &ptXY
05080     );
05081     /* 現在行のデータを取得 */
05082     CLogicInt       nLineLen;
05083     const wchar_t*  pLine;
05084     pLine = GetDocument()->m_cDocLineMgr.GetLineStr( ptXY.GetY2(), &nLineLen );
05085     if( NULL == pLine ){
05086         goto can_not_tagjump_end;
05087     }
05088     /* WZ風のタグリストか */
05089     if( 0 == wmemcmp( pLine, L"■\"", 2 ) ){
05090         if( IsFilePath( &pLine[2], &nBgn, &nPathLen ) ){
05091             wmemcpy( szJumpToFile, &pLine[3 + nBgn], nPathLen );
05092             GetLineColm( &pLine[2] + nPathLen, &nJumpToLine, &nJumpToColm );
05093         }else{
05094             goto can_not_tagjump;
05095         }
05096     }
05097     else if(0 == wmemcmp( pLine, L"・", 1 )){
05098         GetLineColm( &pLine[1], &nJumpToLine, &nJumpToColm );
05099         ptXY.y--;
05100
05101         for( ; 0 <= ptXY.y; ptXY.y-- ){
05102             pLine = GetDocument()->m_cDocLineMgr.GetLineStr( ptXY.GetY2(), &nLineLen );
05103             if( NULL == pLine ){
05104                 goto can_not_tagjump;
05105             }
05106             if( 0 == wmemcmp( pLine, L"・", 1 ) ){
05107                 continue;
05108             }
05109             else if( 0 == wmemcmp( pLine, L"■\"", 2 ) ){
05110                 if( IsFilePath( &pLine[2], &nBgn, &nPathLen ) ){
05111                     wmemcpy( szJumpToFile, &pLine[2 + nBgn], nPathLen );
05112                     break;
05113                 }else{
05114                     goto can_not_tagjump;
05115                 }
05116             }
05117             else{
05118                 goto can_not_tagjump;
05119             }
05120         }
05121     }
05122     else{
05123         //@@@ 2001.12.31 YAZAKI
05124         const wchar_t *p = pLine;
05125         const wchar_t *p_end = p + nLineLen;
05126
05127         //  From Here Aug. 27, 2001 genta
05128         //  Borland 形式のメッセージからのTAG JUMP
05129         while( p < p_end ){
05130             //  skip space
05131             for( ; p < p_end && ( *p == L' ' || *p == L'\t' || *p == L'\n' ); ++p )
05132                 ;
05133             if( p >= p_end )
05134                 break;
05135
05136             //  Check Path
05137             if( IsFilePath( p, &nBgn, &nPathLen ) ){
05138                 wmemcpy( szJumpToFile, &p[nBgn], nPathLen );
05139                 GetLineColm( &p[nBgn + nPathLen], &nJumpToLine, &nJumpToColm );
05140                 break;
05141             }
05142             //  Jan. 04, 2001 genta Directoryを対象外にしたので文字列には柔軟に対応
05143             //  break;  //@@@ 2001.12.31 YAZAKI 「working ...」問題に対処
05144             //  skip non-space
05145             for( ; p < p_end && ( *p != L' ' && *p != L'\t' ); ++p )
05146                 ;
05147         }
05148         if( szJumpToFile[0] == L'\0' )
05149         {
05150             if( false == Command_TagJumpByTagsFile() )  //@@@ 2003.04.13
05151                 goto can_not_tagjump;
05152             return true;
05153         }
05154         //  From Here Aug. 27, 2001 genta
05155     }
05156
05157     //  Apr. 21, 2003 genta bClose追加
05158     if( !m_pCommanderView->TagJumpSub( to_tchar(szJumpToFile), CMyPoint(nJumpToColm, nJumpToLine), bClose ) )   //@@@ 2003.04.13
05159         goto can_not_tagjump;
05160
05161     return true;
05162
05163 can_not_tagjump:;
05164 can_not_tagjump_end:;
05165     m_pCommanderView->SendStatusMessage(_T("タグジャンプできません"));   //@@@ 2003.04.13
05166     return false;
05167 }
05168
05169
05170
05171
05172 /* タグジャンプバック */
05173 void CViewCommander::Command_TAGJUMPBACK( void )
05174 {
05175 // 2004/06/21 novice タグジャンプ機能追加
05176     TagJump tagJump;
05177
05178     /* タグジャンプ情報の参照 */
05179     if( !CShareData::getInstance()->PopTagJump(&tagJump) || !CShareData::IsEditWnd(tagJump.hwndReferer) ){
05180         m_pCommanderView->SendStatusMessage(_T("タグジャンプバックできません"));
05181         // 2004.07.10 Moca m_TagJumpNumを0にしなくてもいいと思う
05182         // GetShareData()->m_TagJumpNum = 0;
05183         return;
05184     }
05185
05186     /* アクティブにする */
05187     ActivateFrameWindow( tagJump.hwndReferer );
05188
05189     /* カーソルを移動させる */
05190     memcpy_raw( GetShareData()->GetWorkBuffer<void>(), &(tagJump.point), sizeof( tagJump.point ) );
05191 	::SendMessageAny( tagJump.hwndReferer, MYWM_SETCARETPOS, 0, 0 );
05192
05193     return;
05194 }
05195
05196 /*
05197     ダイレクトタグジャンプ
05198
05199     @author MIK
05200     @date   2003.04.13  新規作成
05201     @date   2003.05.12  フォルダ階層も考慮して探す
05202 */
05203 bool CViewCommander::Command_TagJumpByTagsFile( void )
05204 {
05205     CNativeW    cmemKey;
05206     int     i;
05207     TCHAR   szCurrentPath[1024];    //カレントフォルダ
05208     TCHAR   szTagFile[1024];        //タグファイル
05209     TCHAR   szLineData[1024];       //行バッファ
05210     TCHAR   s[5][1024];
05211     int     n2;
05212     int     nRet;
05213     int     nMatch;                     //一致数
05214     CDlgTagJumpList cDlgTagJumpList;    //タグジャンプリスト
05215     FILE    *fp;
05216     bool    bNoTag = true;
05217     int     nLoop;
05218
05219     //現在カーソル位置のキーを取得する。
05220     m_pCommanderView->GetCurrentTextForSearch( cmemKey );
05221     if( 0 == cmemKey.GetStringLength() ) return false;  //キーがないなら終わり
05222
05223     if( ! GetDocument()->IsFilePathAvailable() ) return false;
05224
05225     // ファイル名に応じて探索回数を決定する
05226     _tcscpy( szCurrentPath, GetDocument()->GetFilePath() );
05227     nLoop = CalcDirectoryDepth( szCurrentPath );
05228
05229     if( nLoop <  0 ) nLoop =  0;
05230     if( nLoop > (_MAX_PATH/2) ) nLoop = (_MAX_PATH/2);  //\A\B\C...のようなとき1フォルダで2文字消費するので...
05231
05232         //パス名のみ取り出す。
05233         cDlgTagJumpList.SetFileName( szCurrentPath );
05234         szCurrentPath[ _tcslen( szCurrentPath ) - _tcslen( GetDocument()->GetFileName() ) ] = _T('\0');
05235
05236         for( i = 0; i <= nLoop; i++ )
05237         {
05238             //タグファイル名を作成する。
05239             auto_sprintf( szTagFile, _T("%ls%ls"), szCurrentPath, TAG_FILENAME );
05240
05241             //タグファイルを開く。
05242             fp = _tfopen( szTagFile, _T("r") );
05243             if( fp )
05244             {
05245                 bNoTag = false;
05246                 nMatch = 0;
05247                 while( _fgetts( szLineData, _countof( szLineData ), fp ) )
05248                 {
05249                     if( szLineData[0] <= _T('!') ) goto next_line;  //コメントならスキップ
05250                     //chop( szLineData );
05251
05252                     s[0][0] = s[1][0] = s[2][0] = s[3][0] = s[4][0] = _T('\0');
05253                     n2 = 0;
05254                     //  2004.06.04 Moca ファイル名/パスにスペースが含まれているときに
05255                     //  ダイレクトタグジャンプに失敗していた
05256                     //  sscanf の%[^\t\r\n] でスペースを読みとるように変更
05257                     //  @@ 2005.03.31 MIK TAG_FORMAT定数化
05258                     nRet = _stscanf(
05259                         szLineData,
05260                         TAG_FORMAT, //tagsフォーマット
05261                         s[0], s[1], &n2, s[3], s[4]
05262                     );
05263                     if( nRet < 4 ) goto next_line;
05264                     if( n2 <= 0 ) goto next_line;   //行番号不正(-excmd=nが指定されてないかも)
05265
05266                     if( 0 != wcscmp( to_wchar(s[0]), cmemKey.GetStringPtr() ) ) goto next_line;
05267
05268                     //  @@ 2005.03.31 MIK 階層パラメータ追加
05269                     cDlgTagJumpList.AddParam( s[0], s[1], n2, s[3], s[4], i );
05270                     nMatch++;
05271                     continue;
05272
05273 next_line:
05274                     if( nMatch ) break;
05275                 }
05276
05277                 //ファイルを閉じる。
05278                 fclose( fp );
05279
05280                 //複数あれば選択してもらう。
05281                 if( nMatch > 1 )
05282                 {
05283                     if( ! cDlgTagJumpList.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)0 ) )
05284                     {
05285                         nMatch = 0;
05286                         return true;    //キャンセル
05287                     }
05288                 }
05289
05290                 //タグジャンプする。
05291                 if( nMatch > 0 )
05292                 {
05293                     //  @@ 2005.03.31 MIK 階層パラメータ追加
05294                     int depth;
05295                     if( false == cDlgTagJumpList.GetSelectedParam( s[0], s[1], &n2, s[3], s[4], &depth ) )
05296                     {
05297                         return false;
05298                     }
05299
05300                     /*
05301                      * s[0] キー
05302                      * s[1] ファイル名
05303                      * n2   行番号
05304                      * s[3] タイプ
05305                      * s[4] コメント
05306                      * depth (さかのぼる)階層数
05307                      */
05308
05309                     //完全パス名を作成する。
05310                     TCHAR   *p;
05311                     p = s[1];
05312                     if( p[0] == _T('\\') )  //ドライブなし絶対パスか？
05313                     {
05314                         //  2003.09.20 Moca パスが変
05315                         if( p[1] == _T('\\') )  //ネットワークパスか？
05316                         {
05317                             _tcscpy( szTagFile, p );    //何も加工しない。
05318                         }
05319                         else
05320                         {
05321                             //ドライブ加工したほうがよい？
05322                             _tcscpy( szTagFile, p );    //何も加工しない。
05323                         }
05324                     }
05325                     else if( isalpha( p[0] ) && p[1] == L':' )  //絶対パスか？
05326                     {
05327                         _tcscpy( szTagFile, p );    //何も加工しない。
05328                     }
05329                     else
05330                     {
05331                         auto_sprintf( szTagFile, _T("%ls%ls"), szCurrentPath, p );
05332                     }
05333
05334                     return m_pCommanderView->TagJumpSub( szTagFile, CMyPoint(0, n2) );
05335                 }
05336             }   //fp
05337
05338             //カレントパスを1階層上へ。
05339             _tcscat( szCurrentPath, _T("..\\") );
05340         }
05341
05342     return false;
05343 }
05344
05345 /*
05346     タグファイルを作成する。
05347
05348     @author MIK
05349     @date   2003.04.13  新規作成
05350     @date   2003.05.12  ダイアログ表示でフォルダ等を細かく指定できるようにした。
05351 */
05352 bool CViewCommander::Command_TagsMake( void )
05353 {
05354 #define CTAGS_COMMAND   _T("ctags.exe")
05355
05356     TCHAR   szTargetPath[1024 /*_MAX_PATH+1*/ ];
05357     if( GetDocument()->IsFilePathAvailable() )
05358     {
05359         _tcscpy( szTargetPath, GetDocument()->GetFilePath() );
05360         szTargetPath[ _tcslen( szTargetPath ) - _tcslen( GetDocument()->GetFileName() ) ] = _T('\0');
05361     }
05362     else
05363     {
05364         TCHAR   szTmp[1024];
05365         ::GetModuleFileName(
05366             ::GetModuleHandle( NULL ),
05367             szTmp, _countof( szTmp )
05368         );
05369         /* ファイルのフルパスを、フォルダとファイル名に分割 */
05370         /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
05371 		::SplitPath_FolderAndFile( szTmp, szTargetPath, NULL );
05372     }
05373
05374     //ダイアログを表示する
05375     CDlgTagsMake    cDlgTagsMake;
05376     if( !cDlgTagsMake.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), 0, szTargetPath ) ) return false;
05377
05378     TCHAR   cmdline[1024];
05379     /* exeのあるフォルダ */
05380     TCHAR   szExeFolder[_MAX_PATH + 1];
05381
05382     GetExedir( cmdline, CTAGS_COMMAND );
05383     SplitPath_FolderAndFile( cmdline, szExeFolder, NULL );
05384
05385     //ctags.exeの存在チェック
05386     if( -1 == ::GetFileAttributes( cmdline ) )
05387     {
05388 		::MYMESSAGEBOX( m_pCommanderView->GetHwnd(),  MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
05389             _T( "タグ作成コマンド実行は失敗しました。\n\nCTAGS.EXE が見つかりません。" ) );
05390         return false;
05391     }
05392
05393     HANDLE  hStdOutWrite, hStdOutRead;
05394     CDlgCancel  cDlgCancel;
05395     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
05396
05397     PROCESS_INFORMATION pi;
05398     ZeroMemory( &pi, sizeof(pi) );
05399
05400     //子プロセスの標準出力と接続するパイプを作成
05401     SECURITY_ATTRIBUTES sa;
05402     ZeroMemory( &sa, sizeof(sa) );
05403     sa.nLength              = sizeof(sa);
05404     sa.bInheritHandle       = TRUE;
05405     sa.lpSecurityDescriptor = NULL;
05406     hStdOutRead = hStdOutWrite = 0;
05407     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE )
05408     {
05409         //エラー
05410         return false;
05411     }
05412
05413     //継承不能にする
05414     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
05415                 GetCurrentProcess(), NULL,
05416                 0, FALSE, DUPLICATE_SAME_ACCESS );
05417
05418     //CreateProcessに渡すSTARTUPINFOを作成
05419     STARTUPINFO sui;
05420     ZeroMemory( &sui, sizeof(sui) );
05421     sui.cb          = sizeof(sui);
05422     sui.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
05423     sui.wShowWindow = SW_HIDE;
05424     sui.hStdInput   = GetStdHandle( STD_INPUT_HANDLE );
05425     sui.hStdOutput  = hStdOutWrite;
05426     sui.hStdError   = hStdOutWrite;
05427
05428     //  To Here Dec. 28, 2002 MIK
05429
05430     TCHAR   options[1024];
05431     _tcscpy( options, _T("--excmd=n") );    //デフォルトのオプション
05432     if( cDlgTagsMake.m_nTagsOpt & 0x0001 ) _tcscat( options, _T(" -R") );   //サブフォルダも対象
05433     if( _tcslen( cDlgTagsMake.m_szTagsCmdLine ) )   //個別指定のコマンドライン
05434     {
05435         _tcscat( options, _T(" ") );
05436         _tcscat( options, cDlgTagsMake.m_szTagsCmdLine );
05437     }
05438     _tcscat( options, _T(" *") );   //配下のすべてのファイル
05439
05440     //OSバージョン取得
05441     COsVersionInfo cOsVer;
05442     //コマンドライン文字列作成(MAX:1024)
05443     if (cOsVer.IsWin32NT())
05444     {
05445         //  2006.08.04 genta add /D to disable autorun
05446         auto_sprintf( cmdline, _T("cmd.exe /D /C \"\"%ls\\%ls\" %ls\""),
05447                 szExeFolder,    //sakura.exeパス
05448                 CTAGS_COMMAND,  //ctags.exe
05449                 options         //ctagsオプション
05450             );
05451     }
05452     else
05453     {
05454         auto_sprintf( cmdline, _T("command.com /C \"%ls\\%ls\" %ls"),
05455                 szExeFolder,    //sakura.exeパス
05456                 CTAGS_COMMAND,  //ctags.exe
05457                 options         //ctagsオプション
05458             );
05459     }
05460
05461     //コマンドライン実行
05462     BOOL bProcessResult = CreateProcess(
05463         NULL, cmdline, NULL, NULL, TRUE,
05464         CREATE_NEW_CONSOLE, NULL, cDlgTagsMake.m_szPath, &sui, &pi
05465     );
05466     if( !bProcessResult)
05467     {
05468 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(),    MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
05469             "タグ作成コマンド実行は失敗しました。\n\n%ls", cmdline );
05470         goto finish;
05471     }
05472
05473     {
05474         DWORD   read_cnt;
05475         DWORD   new_cnt;
05476         char    work[1024];
05477         bool    bLoopFlag = true;
05478
05479         //中断ダイアログ表示
05480         HWND    hwndCancel;
05481         HWND    hwndMsg;
05482         hwndCancel = cDlgCancel.DoModeless( GetInstance(), m_pCommanderView->m_hwndParent, IDD_EXECRUNNING );
05483         hwndMsg = ::GetDlgItem( hwndCancel, IDC_STATIC_CMD );
05484         ::SendMessage( hwndMsg, WM_SETTEXT, 0, (LPARAM)L"タグファイルを作成中です。" );
05485
05486         //実行結果の取り込み
05487         do {
05488             // Jun. 04, 2003 genta CPU消費を減らすために200msec待つ
05489             // その間メッセージ処理が滞らないように待ち方をWaitForSingleObjectから
05490             // MsgWaitForMultipleObjectに変更
05491             switch( MsgWaitForMultipleObjects( 1, &pi.hProcess, FALSE, 200, QS_ALLEVENTS )){
05492                 case WAIT_OBJECT_0:
05493                     //終了していればループフラグをFALSEとする
05494                     //ただしループの終了条件は プロセス終了 && パイプが空
05495                     bLoopFlag = FALSE;
05496                     break;
05497                 case WAIT_OBJECT_0 + 1:
05498                     //処理中のユーザー操作を可能にする
05499                     if( !::BlockingHook( cDlgCancel.GetHwnd() ) ){
05500                         break;
05501                     }
05502                     break;
05503                 default:
05504                     break;
05505             }
05506
05507             //中断ボタン押下チェック
05508             if( cDlgCancel.IsCanceled() )
05509             {
05510                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
05511                 ::TerminateProcess( pi.hProcess, 0 );
05512                 break;
05513             }
05514
05515             new_cnt = 0;
05516             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) )   //パイプの中の読み出し待機中の文字数を取得
05517             {
05518                 if( new_cnt > 0 )                                               //待機中のものがある
05519                 {
05520                     if( new_cnt >= _countof(work) - 2 )                         //パイプから読み出す量を調整
05521                     {
05522                         new_cnt = _countof(work) - 2;
05523                     }
05524                     ReadFile( hStdOutRead, &work[0], new_cnt, &read_cnt, NULL );    //パイプから読み出し
05525                     if( read_cnt == 0 )
05526                     {
05527                         continue;
05528                     }
05529                     // 2003.11.09 じゅうじ
05530                     //  正常終了の時はメッセージが出力されないので
05531                     //  何か出力されたらエラーメッセージと見なす．
05532                     else {
05533                         //終了処理
05534                         CloseHandle( hStdOutWrite );
05535                         CloseHandle( hStdOutRead  );
05536                         if( pi.hProcess ) CloseHandle( pi.hProcess );
05537                         if( pi.hThread  ) CloseHandle( pi.hThread  );
05538
05539                         cDlgCancel.CloseDialog( TRUE );
05540
05541                         work[ read_cnt ] = L'\0';   // Nov. 15, 2003 genta 表示用に0終端する
05542 						::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(),    MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A,
05543                         "タグ作成コマンド実行は失敗しました。\n\n%hs", work ); // 2003.11.09 じゅうじ
05544
05545                         return true;
05546                     }
05547                 }
05548             }
05549             Sleep(0);
05550         } while( bLoopFlag || new_cnt > 0 );
05551
05552     }
05553
05554
05555 finish:
05556     //終了処理
05557     CloseHandle( hStdOutWrite );
05558     CloseHandle( hStdOutRead  );
05559     if( pi.hProcess ) CloseHandle( pi.hProcess );
05560     if( pi.hThread  ) CloseHandle( pi.hThread  );
05561
05562     cDlgCancel.CloseDialog( TRUE );
05563
05564     InfoMessage(m_pCommanderView->GetHwnd(), _T("タグファイルの作成が終了しました。"));
05565
05566     return true;
05567 }
05568
05575 bool CViewCommander::Command_TagJumpByTagsFileKeyword( const wchar_t* keyword )
05576 {
05577     CMemory cmemKey;
05578     CDlgTagJumpList cDlgTagJumpList;
05579     TCHAR   s[5][1024];
05580     int     n2;
05581     int depth;
05582     TCHAR   szTagFile[1024];        //タグファイル
05583     TCHAR   szCurrentPath[1024];
05584
05585     if( ! GetDocument()->IsFilePathAvailable() ) return false;
05586     _tcscpy( szCurrentPath, GetDocument()->GetFilePath() );
05587
05588     cDlgTagJumpList.SetFileName( szCurrentPath );
05589     cDlgTagJumpList.SetKeyword( keyword );
05590
05591     szCurrentPath[ _tcslen( szCurrentPath ) - _tcslen( GetDocument()->GetFileName() ) ] = _T('\0');
05592
05593     if( ! cDlgTagJumpList.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)1 ) )
05594     {
05595         return true;    //キャンセル
05596     }
05597
05598     //タグジャンプする。
05599     if( false == cDlgTagJumpList.GetSelectedParam( s[0], s[1], &n2, s[3], s[4], &depth ) )
05600     {
05601         return false;
05602     }
05603
05604     /*
05605      * s[0] キー
05606      * s[1] ファイル名
05607      * n2   行番号
05608      * s[3] タイプ
05609      * s[4] コメント
05610      * depth (さかのぼる)階層数
05611      */
05612
05613     //完全パス名を作成する。
05614     TCHAR   *p;
05615     p = s[1];
05616     if( p[0] == _T('\\') )  //ドライブなし絶対パスか？
05617     {
05618         if( p[1] == _T('\\') )  //ネットワークパスか？
05619         {
05620             _tcscpy( szTagFile, p );    //何も加工しない。
05621         }
05622         else
05623         {
05624             //ドライブ加工したほうがよい？
05625             _tcscpy( szTagFile, p );    //何も加工しない。
05626         }
05627     }
05628     else if( _istalpha( p[0] ) && p[1] == _T(':') ) //絶対パスか？
05629     {
05630         _tcscpy( szTagFile, p );    //何も加工しない。
05631     }
05632     else
05633     {
05634         for( int i = 0; i < depth; i++ )
05635         {
05636             _tcscat( szCurrentPath, _T("..\\") );
05637         }
05638         auto_sprintf( szTagFile, _T("%ls%ls"), szCurrentPath, p );
05639     }
05640
05641     return m_pCommanderView->TagJumpSub( szTagFile, CMyPoint(0, n2) );
05642 }
05643
05644
05645
05646 /* C/C++ヘッダファイル オープン機能 */     //Feb. 10, 2001 jepro   説明を「インクルードファイル」から変更
05647 //BOOL CViewCommander::Command_OPENINCLUDEFILE( BOOL bCheckOnly )
05648 BOOL CViewCommander::Command_OPEN_HHPP( BOOL bCheckOnly, BOOL bBeepWhenMiss )
05649 {
05650     // 2003.06.28 Moca ヘッダ・ソースのコードを統合＆削除
05651     static const TCHAR* source_ext[] = { _T("c"), _T("cpp"), _T("cxx"), _T("cc"), _T("cp"), _T("c++") };
05652     static const TCHAR* header_ext[] = { _T("h"), _T("hpp"), _T("hxx"), _T("hh"), _T("hp"), _T("h++") };
05653     return m_pCommanderView->OPEN_ExtFromtoExt(
05654         bCheckOnly, bBeepWhenMiss, source_ext, header_ext,
05655         _countof(source_ext), _countof(header_ext),
05656         _T("C/C++ヘッダファイルのオープンに失敗しました。") );
05657 }
05658
05659
05660
05661
05662 /* C/C++ソースファイル オープン機能 */
05663 //BOOL CViewCommander::Command_OPENCCPP( BOOL bCheckOnly )  //Feb. 10, 2001 JEPRO   コマンド名を若干変更
05664 BOOL CViewCommander::Command_OPEN_CCPP( BOOL bCheckOnly, BOOL bBeepWhenMiss )
05665 {
05666     // 2003.06.28 Moca ヘッダ・ソースのコードを統合＆削除
05667     static const TCHAR* source_ext[] = { _T("c"), _T("cpp"), _T("cxx"), _T("cc"), _T("cp"), _T("c++") };
05668     static const TCHAR* header_ext[] = { _T("h"), _T("hpp"), _T("hxx"), _T("hh"), _T("hp"), _T("h++") };
05669     return m_pCommanderView->OPEN_ExtFromtoExt(
05670         bCheckOnly, bBeepWhenMiss, header_ext, source_ext,
05671         _countof(header_ext), _countof(source_ext),
05672         _T("C/C++ソースファイルのオープンに失敗しました。"));
05673 }
05674
05675
05676
05677
05678 //From Here Feb. 10, 2001 JEPRO 追加
05679 /* C/C++ヘッダファイルまたはソースファイル オープン機能 */
05680 BOOL CViewCommander::Command_OPEN_HfromtoC( BOOL bCheckOnly )
05681 {
05682     if ( Command_OPEN_HHPP( bCheckOnly, FALSE ) )   return TRUE;
05683     if ( Command_OPEN_CCPP( bCheckOnly, FALSE ) )   return TRUE;
05684     ::MessageBeep( MB_ICONHAND );
05685     return FALSE;
05686 // 2002/03/24 YAZAKI コードの重複を削減
05687 // 2003.06.28 Moca コメントとして残っていたコードを削除
05688 }
05689
05690 //Start 2004.07.14 Kazika 追加
05699 void CViewCommander::Command_BIND_WINDOW( void )
05700 {
05701     //タブモードであるならば
05702     if (GetShareData()->m_Common.m_sTabBar.m_bDispTabWnd)
05703     {
05704         //タブウィンドウの設定を変更
05705         GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin = !GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin;
05706
05707         // まとめるときは WS_EX_TOPMOST 状態を同期する    // 2007.05.18 ryoji
05708         if( !GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
05709         {
05710             GetDocument()->m_pcEditWnd->WindowTopMost(
05711                 ( (DWORD)::GetWindowLongPtr( GetDocument()->m_pcEditWnd->GetHwnd(), GWL_EXSTYLE ) & WS_EX_TOPMOST )? 1: 2
05712             );
05713         }
05714
05715         //Start 2004.08.27 Kazika 変更
05716         //タブウィンドウの設定を変更をブロードキャストする
05717         CShareData::getInstance()->ResetGroupId();
05718         CShareData::getInstance()->PostMessageToAllEditors(
05719             MYWM_TAB_WINDOW_NOTIFY,                     //タブウィンドウイベント
05720             (WPARAM)((GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin) ? TWNT_MODE_DISABLE : TWNT_MODE_ENABLE),//タブモード有効/無効化イベント
05721             (LPARAM)GetDocument()->m_pcEditWnd->GetHwnd(),  //CEditWndのウィンドウハンドル
05722             m_pCommanderView->GetHwnd());                                   //自分自身
05723         //End 2004.08.27 Kazika
05724     }
05725 }
05726 //End 2004.07.14 Kazika
05727
05738 void CViewCommander::Command_CASCADE( void )
05739 {
05740     int i;
05741
05742     /* 現在開いている編集窓のリストを取得する */
05743     EditNode*   pEditNodeArr;
05744     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
05745
05746     if( nRowNum > 0 ){
05747         struct WNDARR {
05748             HWND    hWnd;
05749             int     newX;
05750             int     newY;
05751         };
05752
05753         WNDARR* pWndArr = new WNDARR[nRowNum];
05754         int     count = 0;  //  処理対象ウィンドウカウント
05755         // Mar. 20, 2004 genta 現在のウィンドウを末尾に持っていくのに使う
05756         int     current_win_index = -1;
05757
05758         // -----------------------------------------
05759         //  ウィンドウ(ハンドル)リストの作成
05760         // -----------------------------------------
05761
05762         for( i = 0; i < nRowNum; ++i ){
05763             if( ::IsIconic( pEditNodeArr[i].GetHwnd() ) ){  //  最小化しているウィンドウは無視。
05764                 continue;
05765             }
05766             if( !::IsWindowVisible( pEditNodeArr[i].GetHwnd() ) ){  //  不可視ウィンドウは無視。
05767                 continue;
05768             }
05769             //  Mar. 20, 2004 genta
05770             //  現在のウィンドウを末尾に持っていくためここではスキップ
05771             if( pEditNodeArr[i].GetHwnd() == GetDocument()->GetOwnerHwnd() ){
05772                 current_win_index = i;
05773                 continue;
05774             }
05775             pWndArr[count].hWnd = pEditNodeArr[i].GetHwnd();
05776             count++;
05777         }
05778
05779         //  Mar. 20, 2004 genta
05780         //  現在のウィンドウを末尾に挿入 inspired by crayonzen
05781         if( current_win_index >= 0 ){
05782             pWndArr[count].hWnd = pEditNodeArr[current_win_index].GetHwnd();
05783             count++;
05784         }
05785
05786         //  デスクトップサイズを得る
05787         RECT    rcDesktop;
05788         //  May 01, 2004 genta マルチモニタ対応
05789 		::GetMonitorWorkRect( m_pCommanderView->GetHwnd(), &rcDesktop );
05790
05791         int width = (rcDesktop.right - rcDesktop.left ) * 4 / 5; // Mar. 9, 2003 genta 整数演算のみにする
05792         int height = (rcDesktop.bottom - rcDesktop.top ) * 4 / 5;
05793         int w_delta = ::GetSystemMetrics(SM_CXSIZEFRAME) + ::GetSystemMetrics(SM_CXSIZE);
05794         int h_delta = ::GetSystemMetrics(SM_CYSIZEFRAME) + ::GetSystemMetrics(SM_CYSIZE);
05795         int w_offset = rcDesktop.left; //Mar. 19, 2004 crayonzen 絶対値だとエクスプローラーのウィンドウに重なるので
05796         int h_offset = rcDesktop.top; //初期値をデスクトップ内に収める。
05797
05798         // -----------------------------------------
05799         //  座標計算
05800         //
05801         //  Mar. 19, 2004 crayonzen
05802         //      左上をデスクトップ領域に合わせる(タスクバーが上・左にある場合のため)．
05803         //      ウィンドウが右下からはみ出たら左上に戻るが，
05804         //      2周目以降は開始位置を右にずらしてアイコンが見えるようにする．
05805         //
05806         //  Mar. 20, 2004 genta ここでは計算値を保管するだけでウィンドウの再配置は行わない
05807         // -----------------------------------------
05808
05809         int roundtrip = 0; //２度目の描画以降で使用するカウント
05810         int sw_offset = w_delta; //右スライドの幅
05811
05812         for(i = 0; i < count; ++i ){
05813             if (w_offset + width > rcDesktop.right || h_offset + height > rcDesktop.bottom){
05814                 ++roundtrip;
05815                 if ((rcDesktop.right - rcDesktop.left) - sw_offset * roundtrip < width){
05816                     //  これ以上右にずらせないときはしょうがないから左上に戻る
05817                     roundtrip = 0;
05818                 }
05819                 //  ウィンドウ領域の左上にセット
05820                 //  craonzen 初期値修正(２度目以降の描画で少しづつスライド)
05821                 w_offset = rcDesktop.left + sw_offset * roundtrip;
05822                 h_offset = rcDesktop.top;
05823             }
05824
05825             pWndArr[i].newX = w_offset;
05826             pWndArr[i].newY = h_offset;
05827
05828             w_offset += w_delta;
05829             h_offset += h_delta;
05830         }
05831
05832         // -----------------------------------------
05833         //  最大化/非表示解除
05834         //  最大化されたウィンドウを元に戻す．これがないと，最大化ウィンドウが
05835         //  最大化状態のまま並び替えられてしまい，その後最大化動作が変になる．
05836         //
05837         //  Sep. 04, 2004 genta
05838         // -----------------------------------------
05839         for( i = 0; i < count; i++ ){
05840             ::ShowWindow( pWndArr[i].hWnd, SW_RESTORE | SW_SHOWNA );
05841         }
05842
05843         // -----------------------------------------
05844         //  ウィンドウ配置
05845         //
05846         //  Mar. 20, 2004 genta APIを素直に使ってZ-Orderの上から下の順で並べる．
05847         // -----------------------------------------
05848
05849         // まずカレントを最前面に
05850         i = count - 1;
05851
05852         ::SetWindowPos(
05853             pWndArr[i].hWnd, HWND_TOP,
05854             pWndArr[i].newX, pWndArr[i].newY,
05855             width, height,
05856             0
05857         );
05858
05859         // 残りを1つずつ下に入れていく
05860         while( --i >= 0 ){
05861             ::SetWindowPos(
05862                 pWndArr[i].hWnd, pWndArr[i + 1].hWnd,
05863                 pWndArr[i].newX, pWndArr[i].newY,
05864                 width, height,
05865                 SWP_NOACTIVATE
05866             );
05867         }
05868
05869         delete [] pWndArr;
05870         delete [] pEditNodeArr;
05871     }
05872     return;
05873 }
05874
05875
05876
05877
05878 //左右に並べて表示
05879 void CViewCommander::Command_TILE_H( void )
05880 {
05881     int i;
05882
05883     /* 現在開いている編集窓のリストを取得する */
05884     EditNode*   pEditNodeArr;
05885     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
05886
05887     if( nRowNum > 0 ){
05888         HWND*   phwndArr = new HWND[nRowNum];
05889         int     count = 0;
05890         //  デスクトップサイズを得る
05891         RECT    rcDesktop;
05892         //  May 01, 2004 genta マルチモニタ対応
05893 		::GetMonitorWorkRect( m_pCommanderView->GetHwnd(), &rcDesktop );
05894         for( i = 0; i < nRowNum; ++i ){
05895             if( ::IsIconic( pEditNodeArr[i].GetHwnd() ) ){  //  最小化しているウィンドウは無視。
05896                 continue;
05897             }
05898             if( !::IsWindowVisible( pEditNodeArr[i].GetHwnd() ) ){  //  不可視ウィンドウは無視。
05899                 continue;
05900             }
05901             //  From Here Jul. 28, 2002 genta
05902             //  現在のウィンドウを先頭に持ってくる
05903             if( pEditNodeArr[i].GetHwnd() == GetDocument()->GetOwnerHwnd() ){
05904                 phwndArr[count] = phwndArr[0];
05905                 phwndArr[0] = GetDocument()->GetOwnerHwnd();
05906             }
05907             else {
05908                 phwndArr[count] = pEditNodeArr[i].GetHwnd();
05909             }
05910             //  To Here Jul. 28, 2002 genta
05911             count++;
05912         }
05913         int width = (rcDesktop.right - rcDesktop.left ) / count;
05914         for(i = 0; i < count; ++i ){
05915             //  Jul. 21, 2002 genta
05916             ::ShowWindow( phwndArr[i], SW_RESTORE );
05917             ::SetWindowPos(
05918                 phwndArr[i], 0,
05919                 width * i + rcDesktop.left, rcDesktop.top, // Oct. 18, 2003 genta タスクバーが左にある場合を考慮
05920                 width, rcDesktop.bottom - rcDesktop.top,
05921                 SWP_NOOWNERZORDER | SWP_NOZORDER
05922             );
05923         }
05924         ::SetFocus( phwndArr[0] );  // Aug. 17, 2002 MIK
05925         delete [] phwndArr;
05926         delete [] pEditNodeArr;
05927     }
05928     return;
05929 }
05930
05931
05932
05933
05934 //上下に並べて表示
05935 void CViewCommander::Command_TILE_V( void )
05936 {
05937     int i;
05938
05939     /* 現在開いている編集窓のリストを取得する */
05940     EditNode*   pEditNodeArr;
05941     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
05942
05943     if( nRowNum > 0 ){
05944         HWND*   phwndArr = new HWND[nRowNum];
05945         int     count = 0;
05946         //  デスクトップサイズを得る
05947         RECT    rcDesktop;
05948         //  May 01, 2004 genta マルチモニタ対応
05949 		::GetMonitorWorkRect( m_pCommanderView->GetHwnd(), &rcDesktop );
05950         for( i = 0; i < nRowNum; ++i ){
05951             if( ::IsIconic( pEditNodeArr[i].GetHwnd() ) ){  //  最小化しているウィンドウは無視。
05952                 continue;
05953             }
05954             if( !::IsWindowVisible( pEditNodeArr[i].GetHwnd() ) ){  //  不可視ウィンドウは無視。
05955                 continue;
05956             }
05957             //  From Here Jul. 28, 2002 genta
05958             //  現在のウィンドウを先頭に持ってくる
05959             if( pEditNodeArr[i].GetHwnd() == GetDocument()->GetOwnerHwnd() ){
05960                 phwndArr[count] = phwndArr[0];
05961                 phwndArr[0] = GetDocument()->GetOwnerHwnd();
05962             }
05963             else {
05964                 phwndArr[count] = pEditNodeArr[i].GetHwnd();
05965             }
05966             //  To Here Jul. 28, 2002 genta
05967             count++;
05968         }
05969         int height = (rcDesktop.bottom - rcDesktop.top ) / count;
05970         for(i = 0; i < count; ++i ){
05971             //  Jul. 21, 2002 genta
05972             ::ShowWindow( phwndArr[i], SW_RESTORE );
05973             ::SetWindowPos(
05974                 phwndArr[i], 0,
05975                 rcDesktop.left, rcDesktop.top + height * i, //Mar. 19, 2004 crayonzen 上端調整
05976                 rcDesktop.right - rcDesktop.left, height,
05977                 SWP_NOOWNERZORDER | SWP_NOZORDER
05978             );
05979         }
05980         ::SetFocus( phwndArr[0] );  // Aug. 17, 2002 MIK
05981
05982         delete [] phwndArr;
05983         delete [] pEditNodeArr;
05984     }
05985     return;
05986 }
05987
05988
05989
05990 //縦方向に最大化
05991 void CViewCommander::Command_MAXIMIZE_V( void )
05992 {
05993     HWND    hwndFrame;
05994     RECT    rcOrg;
05995     RECT    rcDesktop;
05996     hwndFrame = GetMainWindow();
05997     ::GetWindowRect( hwndFrame, &rcOrg );
05998     //  May 01, 2004 genta マルチモニタ対応
05999 	::GetMonitorWorkRect( hwndFrame, &rcDesktop );
06000     ::SetWindowPos(
06001         hwndFrame, 0,
06002         rcOrg.left, rcDesktop.top,
06003         rcOrg.right - rcOrg.left, rcDesktop.bottom - rcDesktop.top,
06004         SWP_NOOWNERZORDER | SWP_NOZORDER
06005     );
06006     return;
06007 }
06008
06009
06010
06011
06012 //2001.02.10 Start by MIK: 横方向に最大化
06013 //横方向に最大化
06014 void CViewCommander::Command_MAXIMIZE_H( void )
06015 {
06016     HWND    hwndFrame;
06017     RECT    rcOrg;
06018     RECT    rcDesktop;
06019
06020     hwndFrame = GetMainWindow();
06021     ::GetWindowRect( hwndFrame, &rcOrg );
06022     //  May 01, 2004 genta マルチモニタ対応
06023 	::GetMonitorWorkRect( hwndFrame, &rcDesktop );
06024     ::SetWindowPos(
06025         hwndFrame, 0,
06026         rcDesktop.left, rcOrg.top,
06027         rcDesktop.right - rcDesktop.left, rcOrg.bottom - rcOrg.top,
06028         SWP_NOOWNERZORDER | SWP_NOZORDER
06029     );
06030     return;
06031 }
06032 //2001.02.10 End: 横方向に最大化
06033
06034
06035
06036
06037 /* すべて最小化 */    //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
06038 void CViewCommander::Command_MINIMIZE_ALL( void )
06039 {
06040     HWND*   phWndArr;
06041     int     i;
06042     int     j;
06043     j = GetShareData()->m_nEditArrNum;
06044     if( 0 == j ){
06045         return;
06046     }
06047     phWndArr = new HWND[j];
06048     for( i = 0; i < j; ++i ){
06049         phWndArr[i] = GetShareData()->m_pEditArr[i].GetHwnd();
06050     }
06051     for( i = 0; i < j; ++i ){
06052         if( CShareData::IsEditWnd( phWndArr[i] ) )
06053         {
06054             if( ::IsWindowVisible( phWndArr[i] ) )
06055                 ::ShowWindow( phWndArr[i], SW_MINIMIZE );
06056         }
06057     }
06058     delete [] phWndArr;
06059     return;
06060 }
06061
06062
06063
06064
06065 //置換(置換ダイアログ)
06066 void CViewCommander::Command_REPLACE_DIALOG( void )
06067 {
06068     BOOL        bSelected = FALSE;
06069
06070     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
06071     CNativeW    cmemCurText;
06072     m_pCommanderView->GetCurrentTextForSearchDlg( cmemCurText );    // 2006.08.23 ryoji ダイアログ専用関数に変更
06073
06074     /* 検索文字列を初期化 */
06075     wcscpy( GetEditWindow()->m_cDlgReplace.m_szText, cmemCurText.GetStringPtr() );
06076     wcsncpy( GetEditWindow()->m_cDlgReplace.m_szText2, GetShareData()->m_aReplaceKeys[0], MAX_PATH - 1 );   // 2006.08.23 ryoji 前回の置換後文字列を引き継ぐ
06077     GetEditWindow()->m_cDlgReplace.m_szText2[MAX_PATH - 1] = L'\0';
06078
06079     if ( m_pCommanderView->GetSelectionInfo().IsTextSelected() && !GetSelect().IsLineOne() ) {
06080         bSelected = TRUE;   //選択範囲をチェックしてダイアログ表示
06081     }else{
06082         bSelected = FALSE;  //ファイル全体をチェックしてダイアログ表示
06083     }
06084     /* 置換オプションの初期化 */
06085     GetEditWindow()->m_cDlgReplace.m_nReplaceTarget=0;  /* 置換対象 */
06086     GetEditWindow()->m_cDlgReplace.m_nPaste=FALSE;      /* 貼り付ける？ */
06087 // To Here 2001.12.03 hor
06088
06089     /* 置換ダイアログの表示 */
06090     //  From Here Jul. 2, 2001 genta 置換ウィンドウの2重開きを抑止
06091     if( !::IsWindow( GetEditWindow()->m_cDlgReplace.GetHwnd() ) ){
06092         GetEditWindow()->m_cDlgReplace.DoModeless( GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)m_pCommanderView, bSelected );
06093     }
06094     else {
06095         /* アクティブにする */
06096         ActivateFrameWindow( GetEditWindow()->m_cDlgReplace.GetHwnd() );
06097 		::DlgItem_SetText( GetEditWindow()->m_cDlgReplace.GetHwnd(), IDC_COMBO_TEXT, cmemCurText.GetStringT() );
06098     }
06099     //  To Here Jul. 2, 2001 genta 置換ウィンドウの2重開きを抑止
06100     return;
06101 }
06102
06108 void CViewCommander::Command_REPLACE( HWND hwndParent )
06109 {
06110     if ( hwndParent == NULL ){  //  親ウィンドウが指定されていなければ、CEditViewが親。
06111         hwndParent = m_pCommanderView->GetHwnd();
06112     }
06113     //2002.02.10 hor
06114     int nPaste          =   GetEditWindow()->m_cDlgReplace.m_nPaste;
06115     int nReplaceTarget  =   GetEditWindow()->m_cDlgReplace.m_nReplaceTarget;
06116     int bRegularExp     =   GetShareData()->m_Common.m_sSearch.m_sSearchOption.bRegularExp;
06117     int nFlag           =   GetShareData()->m_Common.m_sSearch.m_sSearchOption.bLoHiCase ? 0x01 : 0x00;
06118
06119     // From Here 2001.12.03 hor
06120     if( nPaste && !GetDocument()->IsEnablePaste()){
06121 		::MYMESSAGEBOX_A( hwndParent, MB_OK , GSTR_APPNAME_A,"クリップボードに有効なデータがありません！");
06122         ::CheckDlgButton( GetEditWindow()->m_cDlgReplace.GetHwnd(), IDC_CHK_PASTE, FALSE );
06123         ::EnableWindow( ::GetDlgItem( GetEditWindow()->m_cDlgReplace.GetHwnd(), IDC_COMBO_TEXT2 ), TRUE );
06124         return; //  失敗return;
06125     }
06126
06127     // 2002.01.09 hor
06128     // 選択エリアがあれば、その先頭にカーソルを移す
06129     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
06130         if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
06131             GetCaret().MoveCursor( GetSelect().GetFrom(), true );
06132         } else {
06133 //          HandleCommand( F_LEFT, TRUE, 0, 0, 0, 0 );
06134             Command_LEFT( FALSE, FALSE );
06135         }
06136     }
06137     // To Here 2002.01.09 hor
06138
06139     // 矩形選択？
06140 //          bBeginBoxSelect = m_pCommanderView->GetSelectionInfo().IsBoxSelecting();
06141
06142     /* カーソル左移動 */
06143     //HandleCommand( F_LEFT, TRUE, 0, 0, 0, 0 );    //？？？
06144     // To Here 2001.12.03 hor
06145
06146     /* テキスト選択解除 */
06147     /* 現在の選択範囲を非選択状態に戻す */
06148     m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
06149
06150     // 2004.06.01 Moca 検索中に、他のプロセスによってm_aReplaceKeysが書き換えられても大丈夫なように
06151     const CNativeW  cMemRepKey( GetShareData()->m_aReplaceKeys[0] );
06152
06153     /* 次を検索 */
06154     Command_SEARCH_NEXT( true, TRUE, hwndParent, 0 );
06155
06156     /* テキストが選択されているか */
06157     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
06158         // From Here 2001.12.03 hor
06159         CLayoutPoint ptTmp(0,0);
06160         if ( !bRegularExp ) {
06161             // 正規表現時は 後方参照($&)で実現するので、正規表現は除外
06162             if(nReplaceTarget==1){  //挿入位置へ移動
06163                 ptTmp = GetSelect().GetTo() - GetSelect().GetFrom();
06164                 GetSelect().Clear(-1);
06165             }
06166             else if(nReplaceTarget==2){ //追加位置へ移動
06167                 // 正規表現を除外したので、「検索後の文字が改行やったら次の行の先頭へ移動」の処理を削除
06168                 GetCaret().SetCaretLayoutPos(GetSelect().GetTo());
06169                 GetSelect().Clear(-1);
06170             }
06171             else{
06172                 // 位置指定ないので、何もしない
06173             }
06174         }
06175         /* コマンドコードによる処理振り分け */
06176         /* テキストを貼り付け */
06177         if(nPaste){
06178             Command_PASTE();
06179         } else if ( bRegularExp ) { /* 検索／置換  1==正規表現 */
06180             // 先読みに対応するために物理行末までを使うように変更 2005/03/27 かろと
06181             // 2002/01/19 novice 正規表現による文字列置換
06182             CMemory cmemory;
06183             CBregexp cRegexp;
06184
06185             if( !InitRegexp( m_pCommanderView->GetHwnd(), cRegexp, true ) ){
06186                 return; //  失敗return;
06187             }
06188
06189             // 物理行、物理行長、物理行での検索マッチ位置
06190             const CLayout* pcLayout = GetDocument()->m_cLayoutMgr.SearchLineByLayoutY(GetSelect().GetFrom().GetY2());
06191             const wchar_t* pLine = pcLayout->m_pCDocLine->GetPtr();
06192             CLogicInt nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetSelect().GetFrom().GetX2() ) + pcLayout->GetLogicOffset();
06193             CLogicInt nLen = pcLayout->m_pCDocLine->GetLength();
06194             // 正規表現で選択始点・終点への挿入を記述
06195             //  Jun. 6, 2005 かろと
06196             // →これでは「検索の後ろの文字が改行だったら次の行頭へ移動」が処理できない
06197             // → Oct. 30, 「検索の後ろの文字が改行だったら・・」の処理をやめる（誰もしらないみたいなので）
06198             // Nov. 9, 2005 かろと 正規表現で選択始点・終点への挿入方法を変更(再)
06199             CNativeW cMemMatchStr; cMemMatchStr.SetString(L"$&");
06200             CNativeW cMemRepKey2;
06201             if (nReplaceTarget == 1) {  //選択始点へ挿入
06202                 cMemRepKey2 = cMemRepKey;
06203                 cMemRepKey2 += cMemMatchStr;
06204             } else if (nReplaceTarget == 2) { // 選択終点へ挿入
06205                 cMemRepKey2 = cMemMatchStr;
06206                 cMemRepKey2 += cMemRepKey;
06207             } else {
06208                 cMemRepKey2 = cMemRepKey;
06209             }
06210             cRegexp.Compile( GetShareData()->m_aSearchKeys[0], cMemRepKey2.GetStringPtr(), nFlag);
06211             if( cRegexp.Replace(pLine, nLen, nIdx) ){
06212                 // From Here Jun. 6, 2005 かろと
06213                 // 物理行末までINSTEXTする方法は、キャレット位置を調整する必要があり、
06214                 // キャレット位置の計算が複雑になる。（置換後に改行がある場合に不具合発生）
06215                 // そこで、INSTEXTする文字列長を調整する方法に変更する（実はこっちの方がわかりやすい）
06216                 CLayoutMgr& rLayoutMgr = GetDocument()->m_cLayoutMgr;
06217                 CLogicInt matchLen = cRegexp.GetMatchLen();
06218                 CLogicInt nIdxTo = nIdx + matchLen;     // 検索文字列の末尾
06219                 if (matchLen == 0) {
06220                     // ０文字マッチの時(無限置換にならないように１文字進める)
06221                     if (nIdxTo < nLen) {
06222                         // 2005-09-02 D.S.Koba GetSizeOfChar
06223                         nIdxTo += CLogicInt(CNativeW::GetSizeOfChar(pLine, nLen, nIdxTo) == 2 ? 2 : 1);
06224                     }
06225                     // 無限置換しないように、１文字増やしたので１文字選択に変更
06226                     // 選択始点・終点への挿入の場合も０文字マッチ時は動作は同じになるので
06227                     rLayoutMgr.LogicToLayout( CLogicPoint(nIdxTo, pcLayout->GetLogicLineNo()), GetSelect().GetToPointer() );    // 2007.01.19 ryoji 行位置も取得する
06228                 }
06229                 // 行末から検索文字列末尾までの文字数
06230                 CLogicInt colDiff = nLen - nIdxTo;
06231                 //  Oct. 22, 2005 Karoto
06232                 //  \rを置換するとその後ろの\nが消えてしまう問題の対応
06233                 if (colDiff < pcLayout->m_pCDocLine->m_cEol.GetLen()) {
06234                     // 改行にかかっていたら、行全体をINSTEXTする。
06235                     colDiff = CLogicInt(0);
06236                     rLayoutMgr.LogicToLayout( CLogicPoint(nLen, pcLayout->GetLogicLineNo()), GetSelect().GetToPointer() );  // 2007.01.19 ryoji 追加
06237                 }
06238                 // 置換後文字列への書き換え(行末から検索文字列末尾までの文字を除く)
06239                 Command_INSTEXT( FALSE, cRegexp.GetString(), cRegexp.GetStringLen() - colDiff, TRUE );
06240                 // To Here Jun. 6, 2005 かろと
06241             }
06242         }else{
06243             //  HandleCommand( F_INSTEXT_W, FALSE, (LPARAM)GetShareData()->m_aReplaceKeys[0], FALSE, 0, 0 );
06244             Command_INSTEXT( FALSE, cMemRepKey.GetStringPtr(), cMemRepKey.GetStringLength(), TRUE );
06245         }
06246
06247         // 挿入後の検索開始位置を調整
06248         if(nReplaceTarget==1){
06249             GetCaret().SetCaretLayoutPos(GetCaret().GetCaretLayoutPos()+ptTmp);
06250         }
06251
06252         // To Here 2001.12.03 hor
06253         /* 最後まで置換した時にOK押すまで置換前の状態が表示されるので、
06254         ** 置換後、次を検索する前に書き直す 2003.05.17 かろと
06255         */
06256         m_pCommanderView->Redraw();
06257
06258         /* 次を検索 */
06259         Command_SEARCH_NEXT( true, TRUE, hwndParent, LTEXT("最後まで置換しました。") );
06260     }
06261 }
06262
06270 void CViewCommander::Command_REPLACE_ALL()
06271 {
06272
06273
06274
06275
06276     //2002.02.10 hor
06277     int nPaste          = GetEditWindow()->m_cDlgReplace.m_nPaste;
06278     int nReplaceTarget  = GetEditWindow()->m_cDlgReplace.m_nReplaceTarget;
06279     int bRegularExp     = GetShareData()->m_Common.m_sSearch.m_sSearchOption.bRegularExp;
06280     int bSelectedArea   = GetShareData()->m_Common.m_sSearch.m_bSelectedArea;
06281     int bConsecutiveAll = GetShareData()->m_Common.m_sSearch.m_bConsecutiveAll; /* 「すべて置換」は置換の繰返し */    // 2007.01.16 ryoji
06282
06283     GetEditWindow()->m_cDlgReplace.m_bCanceled=false;
06284     GetEditWindow()->m_cDlgReplace.m_nReplaceCnt=0;
06285
06286     // From Here 2001.12.03 hor
06287     if( nPaste && !GetDocument()->IsEnablePaste() ){
06288 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK , GSTR_APPNAME_A,"クリップボードに有効なデータがありません！");
06289         ::CheckDlgButton( m_pCommanderView->GetHwnd(), IDC_CHK_PASTE, FALSE );
06290         ::EnableWindow( ::GetDlgItem( m_pCommanderView->GetHwnd(), IDC_COMBO_TEXT2 ), TRUE );
06291         return; // TRUE;
06292     }
06293     // To Here 2001.12.03 hor
06294
06295     bool        bBeginBoxSelect; // 矩形選択？
06296     if(m_pCommanderView->GetSelectionInfo().IsTextSelected()){
06297         bBeginBoxSelect=m_pCommanderView->GetSelectionInfo().IsBoxSelecting();
06298     }
06299     else{
06300         bSelectedArea=FALSE;
06301         bBeginBoxSelect=false;
06302     }
06303
06304     /* 表示処理ON/OFF */
06305     bool bDisplayUpdate = false;
06306
06307     m_pCommanderView->SetDrawSwitch(bDisplayUpdate);
06308
06309     int nAllLineNum = (Int)GetDocument()->m_cLayoutMgr.GetLineCount();
06310
06311     /* 進捗表示&中止ダイアログの作成 */
06312     CDlgCancel  cDlgCancel;
06313     HWND        hwndCancel = cDlgCancel.DoModeless( GetInstance(), m_pCommanderView->GetHwnd(), IDD_REPLACERUNNING );
06314     ::EnableWindow( m_pCommanderView->GetHwnd(), FALSE );
06315     ::EnableWindow( ::GetParent( m_pCommanderView->GetHwnd() ), FALSE );
06316     ::EnableWindow( ::GetParent( ::GetParent( m_pCommanderView->GetHwnd() ) ), FALSE );
06317     //<< 2002/03/26 Azumaiya
06318     // 割り算掛け算をせずに進歩状況を表せるように、シフト演算をする。
06319     int nShiftCount;
06320     for ( nShiftCount = 0; SHRT_MAX < nAllLineNum; nShiftCount++ )
06321     {
06322         nAllLineNum/=2;
06323     }
06324     //>> 2002/03/26 Azumaiya
06325
06326     /* プログレスバー初期化 */
06327     HWND        hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS_REPLACE );
06328 	::SendMessageAny( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, nAllLineNum ) );
06329     int         nNewPos = 0;
06330  	::SendMessageAny( hwndProgress, PBM_SETPOS, nNewPos, 0 );
06331
06332     /* 置換個数初期化 */
06333     int         nReplaceNum = 0;
06334     HWND        hwndStatic = ::GetDlgItem( hwndCancel, IDC_STATIC_KENSUU );
06335     TCHAR szLabel[64];
06336     _itot( nReplaceNum, szLabel, 10 );
06337     ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
06338
06339     CLayoutRange sRangeA;   //選択範囲
06340     CLogicPoint ptColLineP;
06341
06342     // From Here 2001.12.03 hor
06343     if (bSelectedArea){
06344         /* 選択範囲置換 */
06345         /* 選択範囲開始位置の取得 */
06346         sRangeA = GetSelect();
06347
06348         //  From Here 2007.09.20 genta 矩形範囲の選択置換ができない
06349         //  左下〜右上と選択した場合，m_nSelectColmTo < m_nSelectColmFrom となるが，
06350         //  範囲チェックで colFrom < colTo を仮定しているので，
06351         //  矩形選択の場合は左上〜右下指定になるよう桁を入れ換える．
06352         if( bBeginBoxSelect && sRangeA.GetTo().x < sRangeA.GetFrom().x )
06353             t_swap(sRangeA.GetFromPointer()->x,sRangeA.GetToPointer()->x);
06354         //  To Here 2007.09.20 genta 矩形範囲の選択置換ができない
06355
06356         GetDocument()->m_cLayoutMgr.LayoutToLogic(
06357             sRangeA.GetTo(),
06358             &ptColLineP
06359         );
06360         //選択範囲開始位置へ移動
06361         GetCaret().MoveCursor( sRangeA.GetFrom(), bDisplayUpdate );
06362     }
06363     else{
06364         /* ファイル全体置換 */
06365         /* ファイルの先頭に移動 */
06366     //  HandleCommand( F_GOFILETOP, bDisplayUpdate, 0, 0, 0, 0 );
06367         Command_GOFILETOP(bDisplayUpdate);
06368     }
06369
06370     CLayoutPoint ptLast = GetCaret().GetCaretLayoutPos();
06371
06372     /* テキスト選択解除 */
06373     /* 現在の選択範囲を非選択状態に戻す */
06374     m_pCommanderView->GetSelectionInfo().DisableSelectArea( bDisplayUpdate );
06375     /* 次を検索 */
06376     Command_SEARCH_NEXT( true, bDisplayUpdate, 0, 0 );
06377     // To Here 2001.12.03 hor
06378
06379     //<< 2002/03/26 Azumaiya
06380     // 速く動かすことを最優先に組んでみました。
06381     // ループの外で文字列の長さを特定できるので、一時変数化。
06382     const wchar_t *szREPLACEKEY;        // 置換後文字列。
06383     BOOL        bColmnSelect;   // 矩形貼り付けを行うかどうか。
06384     CNativeW    cmemClip;       // 置換後文字列のデータ（データを格納するだけで、ループ内ではこの形ではデータを扱いません）。
06385
06386     // クリップボードからのデータ貼り付けかどうか。
06387     if( nPaste != 0 )
06388     {
06389         // クリップボードからデータを取得。
06390         if ( !m_pCommanderView->MyGetClipboardData( cmemClip, &bColmnSelect ) )
06391         {
06392             ::MessageBeep( MB_ICONHAND );
06393             return;
06394         }
06395
06396         // 矩形貼り付けが許可されていて、クリップボードのデータが矩形選択のとき。
06397         if ( GetShareData()->m_Common.m_sEdit.m_bAutoColmnPaste && bColmnSelect )
06398         {
06399             // マウスによる範囲選択中
06400             if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() )
06401             {
06402                 ::MessageBeep( MB_ICONHAND );
06403                 return;
06404             }
06405
06406             // 現在のフォントは固定幅フォントである
06407             if( !GetShareData()->m_Common.m_sView.m_bFontIs_FIXED_PITCH )
06408             {
06409                 return;
06410             }
06411         }
06412         else
06413         // クリップボードからのデータは普通に扱う。
06414         {
06415             bColmnSelect = FALSE;
06416         }
06417     }
06418     else
06419     {
06420         // 2004.05.14 Moca 全置換の途中で他のウィンドウで置換されるとまずいのでコピーする
06421         cmemClip.SetString( GetShareData()->m_aReplaceKeys[0] );
06422     }
06423
06424     CLogicInt nREPLACEKEY;          // 置換後文字列の長さ。
06425     szREPLACEKEY = cmemClip.GetStringPtr(&nREPLACEKEY);
06426
06427     // 取得にステップがかかりそうな変数などを、一時変数化する。
06428     // とはいえ、これらの操作をすることによって得をするクロック数は合わせても 1 ループで数十だと思います。
06429     // 数百クロック毎ループのオーダーから考えてもそんなに得はしないように思いますけど・・・。
06430     BOOL bAddCRLFWhenCopy = GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy;
06431     BOOL &bCANCEL = cDlgCancel.m_bCANCEL;
06432     CDocLineMgr& rDocLineMgr = GetDocument()->m_cDocLineMgr;
06433     CLayoutMgr& rLayoutMgr = GetDocument()->m_cLayoutMgr;
06434
06435     //  クラス関係をループの中で宣言してしまうと、毎ループごとにコンストラクタ、デストラクタが
06436     // 呼ばれて遅くなるので、ここで宣言。
06437     CMemory cmemory;
06438     CBregexp cRegexp;
06439     // 初期化も同様に毎ループごとにやると遅いので、最初に済ましてしまう。
06440     if( bRegularExp )
06441     {
06442         if ( !InitRegexp( m_pCommanderView->GetHwnd(), cRegexp, true ) )
06443         {
06444             return;
06445         }
06446
06447         const CNativeW  cMemRepKey( szREPLACEKEY, wcslen(szREPLACEKEY) );
06448         // Nov. 9, 2005 かろと 正規表現で選択始点・終点への挿入方法を変更(再)
06449         CNativeW cMemRepKey2;
06450         CNativeW cMemMatchStr;
06451         cMemMatchStr.SetString(L"$&");
06452         if (nReplaceTarget == 1 ) { //選択始点へ挿入
06453             cMemRepKey2 = cMemRepKey;
06454             cMemRepKey2 += cMemMatchStr;
06455         } else if (nReplaceTarget == 2) { // 選択終点へ挿入
06456             cMemRepKey2 = cMemMatchStr;
06457             cMemRepKey2 += cMemRepKey;
06458         } else {
06459             cMemRepKey2 = cMemRepKey;
06460         }
06461         // 正規表現オプションの設定2006.04.01 かろと
06462         int nFlag = (GetShareData()->m_Common.m_sSearch.m_sSearchOption.bLoHiCase ? CBregexp::optCaseSensitive : CBregexp::optNothing);
06463         nFlag |= (bConsecutiveAll ? CBregexp::optNothing : CBregexp::optGlobal);    // 2007.01.16 ryoji
06464         cRegexp.Compile(GetShareData()->m_aSearchKeys[0], cMemRepKey2.GetStringPtr(), nFlag);
06465     }
06466
06467     //$$ 単位混在
06468     CLayoutPoint    ptOld;                      //検索後の選択範囲
06469     /*CLogicInt*/int        lineCnt;                    //置換前の行数
06470     /*CLayoutInt*/int       linDif = (0);       //置換後の行調整
06471     /*CLayoutInt*/int       colDif = (0);       //置換後の桁調整
06472     /*CLayoutInt*/int       linPrev = (0);  //前回の検索行(矩形) @@@2001.12.31 YAZAKI warning退治
06473     /*CLogicInt*/int        linOldLen = (0);    //検査後の行の長さ
06474     /*CLayoutInt*/int       linNext;                    //次回の検索行(矩形)
06475
06476     /* テキストが選択されているか */
06477     while( m_pCommanderView->GetSelectionInfo().IsTextSelected() )
06478     {
06479         /* キャンセルされたか */
06480         if( bCANCEL )
06481         {
06482             break;
06483         }
06484
06485         /* 処理中のユーザー操作を可能にする */
06486         if( !::BlockingHook( hwndCancel ) )
06487         {
06488             return;// -1;
06489         }
06490
06491         // 128 ごとに表示。
06492         if( 0 == (nReplaceNum & 0x7F ) )
06493         // 時間ごとに進歩状況描画だと時間取得分遅くなると思うが、そちらの方が自然だと思うので・・・。
06494         // と思ったけど、逆にこちらの方が自然ではないので、やめる。
06495         {
06496             nNewPos = (Int)GetSelect().GetFrom().GetY2() >> nShiftCount;
06497 			::PostMessageAny( hwndProgress, PBM_SETPOS, nNewPos, 0 );
06498             _itot( nReplaceNum, szLabel, 10 );
06499             ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
06500         }
06501
06502         // From Here 2001.12.03 hor
06503         /* 検索後の位置を確認 */
06504         if( bSelectedArea )
06505         {
06506             // 矩形選択
06507             //  o レイアウト座標をチェックしながら置換する
06508             //  o 折り返しがあると変になるかも・・・
06509             //
06510             if ( bBeginBoxSelect )
06511             {
06512                 // 検索時の行数を記憶
06513                 lineCnt = (Int)rLayoutMgr.GetLineCount();
06514                 // 検索後の範囲終端
06515                 ptOld = GetSelect().GetTo();
06516                 // 前回の検索行と違う？
06517                 if(ptOld.y!=linPrev){
06518                     colDif=(0);
06519                 }
06520                 linPrev=(Int)ptOld.GetY2();
06521                 // 行は範囲内？
06522                 if ((sRangeA.GetTo().y+linDif == ptOld.y && sRangeA.GetTo().GetX2()+colDif < ptOld.x) ||
06523                     (sRangeA.GetTo().y+linDif <  ptOld.y)) {
06524                     break;
06525                 }
06526                 // 桁は範囲内？
06527                 if(!(sRangeA.GetFrom().x<=GetSelect().GetFrom().x && ptOld.GetX2()<=sRangeA.GetTo().GetX2()+colDif)){
06528                     if(ptOld.x<sRangeA.GetTo().GetX2()+colDif){
06529                         linNext=(Int)GetSelect().GetTo().GetY2();
06530                     }else{
06531                         linNext=(Int)GetSelect().GetTo().GetY2()+1;
06532                     }
06533                     //次の検索開始位置へシフト
06534                     GetCaret().SetCaretLayoutPos(CLayoutPoint(sRangeA.GetFrom().x,CLayoutInt(linNext)));
06535                     // 2004.05.30 Moca 現在の検索文字列を使って検索する
06536                     Command_SEARCH_NEXT( false, bDisplayUpdate, 0, 0 );
06537                     colDif=(0);
06538                     continue;
06539                 }
06540             }
06541             // 普通の選択
06542             //  o 物理座標をチェックしながら置換する
06543             //
06544             else {
06545                 // 検索時の行数を記憶
06546                 lineCnt = rDocLineMgr.GetLineCount();
06547
06548                 // 検索後の範囲終端
06549                 CLogicPoint ptOldTmp;
06550                 rLayoutMgr.LayoutToLogic(
06551                     GetSelect().GetTo(),
06552                     &ptOldTmp
06553                 );
06554                 ptOld=CLayoutPoint(ptOldTmp); //$$ レイアウト型に無理やりロジック型を代入。気持ち悪い
06555
06556                 // 置換前の行の長さ(改行は１文字と数える)を保存しておいて、置換前後で行位置が変わった場合に使用
06557                 linOldLen = rDocLineMgr.GetLineInfo(ptOldTmp.GetY2())->GetLengthWithoutEOL() + CLogicInt(1);
06558
06559                 // 行は範囲内？
06560                 // 2007.01.19 ryoji 条件追加: 選択終点が行頭(ptColLineP.x == 0)になっている場合は前の行の行末までを選択範囲とみなす
06561                 // （選択始点が行頭ならその行頭は選択範囲に含み、終点が行頭ならその行頭は選択範囲に含まない、とする）
06562                 // 論理的に少し変と指摘されるかもしれないが、実用上はそのようにしたほうが望ましいケースが多いと思われる。
06563                 // ※行選択で行末までを選択範囲にしたつもりでも、UI上は次の行の行頭にカーソルが行く
06564                 // ※終点の行頭を「^」にマッチさせたかったら１文字以上選択してね、ということで．．．
06565                 // $$ 単位混在しまくりだけど、大丈夫？？
06566                 if ((ptColLineP.y+linDif == (Int)ptOld.y && (ptColLineP.x+colDif < (Int)ptOld.x || ptColLineP.x == 0))
06567                     || ptColLineP.y+linDif < (Int)ptOld.y) {
06568                     break;
06569                 }
06570             }
06571         }
06572
06573
06574         CLayoutPoint ptTmp(0,0);
06575
06576         if ( !bRegularExp ) {
06577             // 正規表現時は 後方参照($&)で実現するので、正規表現は除外
06578             if( nReplaceTarget == 1 )   //挿入位置セット
06579             {
06580                 ptTmp.x = GetSelect().GetTo().x - GetSelect().GetFrom().x;
06581                 ptTmp.y = GetSelect().GetTo().y - GetSelect().GetFrom().y;
06582                 GetSelect().Clear(-1);
06583             }
06584             else if( nReplaceTarget == 2 )  //追加位置セット
06585             {
06586                 // 正規表現を除外したので、「検索後の文字が改行やったら次の行の先頭へ移動」の処理を削除
06587                 GetCaret().SetCaretLayoutPos(GetSelect().GetTo());
06588                 GetSelect().Clear(-1);
06589             }
06590             else {
06591                 // 位置指定ないので、何もしない
06592             }
06593         }
06594
06595         /* コマンドコードによる処理振り分け */
06596         /* テキストを貼り付け */
06597         if( nPaste )
06598         {
06599             if ( bColmnSelect == FALSE )
06600             {
06601                 /* 本当は Command_INSTEXT を使うべきなんでしょうが、無駄な処理を避けるために直接たたく。
06602                 ** →m_nSelectXXXが-1の時に m_pCommanderView->ReplaceData_CEditViewを直接たたくと動作不良となるため
06603                 **   直接たたくのやめた。2003.05.18 by かろと
06604                 */
06605                 Command_INSTEXT( FALSE, szREPLACEKEY, nREPLACEKEY, TRUE );
06606             }
06607             else
06608             {
06609                 Command_PASTEBOX(szREPLACEKEY, nREPLACEKEY);
06610                 // 再描画を行わないとどんな結果が起きているのか分からずみっともないので・・・。
06611                 m_pCommanderView->AdjustScrollBars(); // 2007.07.22 ryoji
06612                 m_pCommanderView->Redraw();
06613             }
06614         }
06615         // 2002/01/19 novice 正規表現による文字列置換
06616         else if( bRegularExp ) /* 検索／置換  1==正規表現 */
06617         {
06618             // 物理行、物理行長、物理行での検索マッチ位置
06619             const CLayout* pcLayout = rLayoutMgr.SearchLineByLayoutY(GetSelect().GetFrom().GetY2());
06620             const wchar_t* pLine = pcLayout->m_pCDocLine->GetPtr();
06621             CLogicInt nIdx = m_pCommanderView->LineColmnToIndex( pcLayout, GetSelect().GetFrom().GetX2() ) + pcLayout->GetLogicOffset();
06622             CLogicInt nLen = pcLayout->m_pCDocLine->GetLength();
06623             CLogicInt colDiff = CLogicInt(0);
06624             if( !bConsecutiveAll ){ // 一括置換
06625                 // 2007.01.16 ryoji
06626                 // 選択範囲置換の場合は行内の選択範囲末尾まで置換範囲を縮め，
06627                 // その位置を記憶する．
06628                 if( bSelectedArea ){
06629                     if( bBeginBoxSelect ){  // 矩形選択
06630                         CLogicPoint ptWork;
06631                         rLayoutMgr.LayoutToLogic(
06632                             CLayoutPoint(sRangeA.GetTo().x,ptOld.y),
06633                             &ptWork
06634                         );
06635                         ptColLineP.x = ptWork.x;
06636                         if( nLen - pcLayout->m_pCDocLine->m_cEol.GetLen() > ptColLineP.x + colDif )
06637                             nLen = ptColLineP.GetX2() + CLogicInt(colDif);
06638                     } else {    // 通常の選択
06639                         if( ptColLineP.y+linDif == (Int)ptOld.y ){ //$$ 単位混在
06640                             if( nLen - pcLayout->m_pCDocLine->m_cEol.GetLen() > ptColLineP.x + colDif )
06641                                 nLen = ptColLineP.GetX2() + CLogicInt(colDif);
06642                         }
06643                     }
06644                 }
06645
06646                 if(pcLayout->m_pCDocLine->GetLengthWithoutEOL() < nLen)
06647                     ptOld.x = (CLayoutInt)(Int)pcLayout->m_pCDocLine->GetLengthWithoutEOL() + 1; //$$ 単位混在
06648                 else
06649                     ptOld.x = (CLayoutInt)(Int)nLen; //$$ 単位混在
06650             }
06651
06652             if( int nReplace = cRegexp.Replace(pLine, nLen, nIdx) ){
06653                 nReplaceNum += nReplace;
06654                 if ( !bConsecutiveAll ) { // 2006.04.01 かろと   // 2007.01.16 ryoji
06655                     // 行単位での置換処理
06656                     // 選択範囲を物理行末までにのばす
06657                     rLayoutMgr.LogicToLayout( CLogicPoint(nLen, pcLayout->GetLogicLineNo()), GetSelect().GetToPointer() );
06658                 } else {
06659                     // From Here Jun. 6, 2005 かろと
06660                     // 物理行末までINSTEXTする方法は、キャレット位置を調整する必要があり、
06661                     // キャレット位置の計算が複雑になる。（置換後に改行がある場合に不具合発生）
06662                     // そこで、INSTEXTする文字列長を調整する方法に変更する（実はこっちの方がわかりやすい）
06663                     CLogicInt matchLen = cRegexp.GetMatchLen();
06664                     CLogicInt nIdxTo = nIdx + matchLen;     // 検索文字列の末尾
06665                     if (matchLen == 0) {
06666                         // ０文字マッチの時(無限置換にならないように１文字進める)
06667                         if (nIdxTo < nLen) {
06668                             // 2005-09-02 D.S.Koba GetSizeOfChar
06669                             nIdxTo += CLogicInt(CNativeW::GetSizeOfChar(pLine, nLen, nIdxTo) == 2 ? 2 : 1);
06670                         }
06671                         // 無限置換しないように、１文字増やしたので１文字選択に変更
06672                         // 選択始点・終点への挿入の場合も０文字マッチ時は動作は同じになるので
06673                         rLayoutMgr.LogicToLayout( CLogicPoint(nIdxTo, pcLayout->GetLogicLineNo()), GetSelect().GetToPointer() );    // 2007.01.19 ryoji 行位置も取得する
06674                     }
06675                     // 行末から検索文字列末尾までの文字数
06676                     colDiff =  nLen - nIdxTo;
06677                     ptOld.x = (CLayoutInt)(Int)nIdxTo;  // 2007.01.19 ryoji 追加  // $$ 単位混在
06678                     //  Oct. 22, 2005 Karoto
06679                     //  \rを置換するとその後ろの\nが消えてしまう問題の対応
06680                     if (colDiff < pcLayout->m_pCDocLine->m_cEol.GetLen()) {
06681                         // 改行にかかっていたら、行全体をINSTEXTする。
06682                         colDiff = CLogicInt(0);
06683                         rLayoutMgr.LogicToLayout( CLogicPoint(nLen, pcLayout->GetLogicLineNo()), GetSelect().GetToPointer() );  // 2007.01.19 ryoji 追加
06684                         ptOld.x = (CLayoutInt)(Int)pcLayout->m_pCDocLine->GetLengthWithoutEOL() + 1;    // 2007.01.19 ryoji 追加 //$$ 単位混在
06685                     }
06686                 }
06687                 // 置換後文字列への書き換え(行末から検索文字列末尾までの文字を除く)
06688                 Command_INSTEXT( FALSE, cRegexp.GetString(), cRegexp.GetStringLen() - colDiff, TRUE );
06689                 // To Here Jun. 6, 2005 かろと
06690             }
06691         }
06692         else
06693         {
06694             /* 本当は元コードを使うべきなんでしょうが、無駄な処理を避けるために直接たたく。
06695             ** →m_nSelectXXXが-1の時に m_pCommanderView->ReplaceData_CEditViewを直接たたくと動作不良となるため直接たたくのやめた。2003.05.18 かろと
06696             */
06697             Command_INSTEXT( FALSE, szREPLACEKEY, nREPLACEKEY, TRUE );
06698             ++nReplaceNum;
06699         }
06700
06701         // 挿入後の位置調整
06702         if( nReplaceTarget == 1 )
06703         {
06704             GetCaret().SetCaretLayoutPos(GetCaret().GetCaretLayoutPos()+ptTmp);
06705             if (!bBeginBoxSelect)
06706             {
06707                 CLogicPoint p;
06708                 rLayoutMgr.LayoutToLogic(
06709                     GetCaret().GetCaretLayoutPos(),
06710                     &p
06711                 );
06712                 GetCaret().SetCaretLogicPos(p);
06713             }
06714         }
06715
06716         // 最後に置換した位置を記憶
06717         ptLast = GetCaret().GetCaretLayoutPos();
06718
06719         /* 置換後の位置を確認 */
06720         if( bSelectedArea )
06721         {
06722             // 検索→置換の行補正値取得
06723             if( bBeginBoxSelect )
06724             {
06725                 colDif += (Int)(ptLast.GetX2() - ptOld.GetX2());
06726                 linDif += (Int)(rLayoutMgr.GetLineCount() - lineCnt);
06727             }
06728             else{
06729                 // 置換前の検索文字列の最終位置は ptOld
06730                 // 置換後のカーソル位置
06731                 CLogicPoint ptTmp2 = GetCaret().GetCaretLogicPos();
06732                 int linDif_thistime = rDocLineMgr.GetLineCount() - lineCnt; // 今回置換での行数変化
06733                 linDif += linDif_thistime;
06734                 if( ptColLineP.y + linDif == ptTmp2.y)
06735                 {
06736                     // 最終行で置換した時、又は、置換の結果、選択エリア最終行まで到達した時
06737                     // 最終行なので、置換前後の文字数の増減で桁位置を調整する
06738                     colDif += (Int)ptTmp2.GetX2() - (Int)ptOld.GetX2(); //$$ 単位混在
06739
06740                     // 但し、以下の場合は置換前後で行が異なってしまうので、行の長さで補正する必要がある
06741                     // １）最終行直前で行連結が起こり、行が減っている場合（行連結なので、桁位置は置換後のカーソル桁位置分増加する）
06742                     // 　　ptTmp2.x-ptOld.xだと、\r\n → "" 置換で行連結した場合に、桁位置が負になり失敗する（負とは前行の後ろの方になることなので補正する）
06743                     // 　　今回置換での行数の変化(linDif_thistime)で、最終行が行連結されたかどうかを見ることにする
06744                     // ２）改行を置換した（ptTmp2.y!=ptOld.y）場合、改行を置換すると置換後の桁位置が次行の桁位置になっているため
06745                     //     ptTmp2.x-ptOld.xだと、負の数となり、\r\n → \n や \n → "abc" などで桁位置がずれる
06746                     //     これも前行の長さで調整する必要がある
06747                     if (linDif_thistime < 0 || ptTmp2.y != (Int)ptOld.y) { //$$ 単位混在
06748                         colDif += linOldLen;
06749                     }
06750                 }
06751             }
06752         }
06753         // To Here 2001.12.03 hor
06754
06755         /* 次を検索 */
06756         // 2004.05.30 Moca 現在の検索文字列を使って検索する
06757         Command_SEARCH_NEXT( false, bDisplayUpdate, 0, 0 );
06758     }
06759
06760     if( 0 < nAllLineNum )
06761     {
06762         nNewPos = (Int)GetSelect().GetFrom().GetY2() >> nShiftCount;
06763 		::SendMessageAny( hwndProgress, PBM_SETPOS, nNewPos, 0 );
06764     }
06765     //>> 2002/03/26 Azumaiya
06766
06767     _itot( nReplaceNum, szLabel, 10 );
06768     ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
06769
06770     if( !cDlgCancel.IsCanceled() ){
06771         nNewPos = nAllLineNum;
06772 		::SendMessageAny( hwndProgress, PBM_SETPOS, nNewPos, 0 );
06773     }
06774     cDlgCancel.CloseDialog( 0 );
06775     ::EnableWindow( m_pCommanderView->GetHwnd(), TRUE );
06776     ::EnableWindow( ::GetParent( m_pCommanderView->GetHwnd() ), TRUE );
06777     ::EnableWindow( ::GetParent( ::GetParent( m_pCommanderView->GetHwnd() ) ), TRUE );
06778
06779     // From Here 2001.12.03 hor
06780
06781     /* テキスト選択解除 */
06782     m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
06783
06784     /* カーソル・選択範囲復元 */
06785     if((!bSelectedArea) ||          // ファイル全体置換
06786        (cDlgCancel.IsCanceled())) {     // キャンセルされた
06787         // 最後に置換した文字列の右へ
06788         GetCaret().MoveCursor( ptLast, TRUE );
06789     }
06790     else{
06791         if (bBeginBoxSelect) {
06792             // 矩形選択
06793             m_pCommanderView->GetSelectionInfo().SetBoxSelect(bBeginBoxSelect);
06794             sRangeA.GetToPointer()->y += linDif;
06795             if(sRangeA.GetTo().y<0)sRangeA.SetToY(CLayoutInt(0));
06796         }
06797         else{
06798             // 普通の選択
06799             ptColLineP.x+=colDif;
06800             if(ptColLineP.x<0)ptColLineP.x=0;
06801             ptColLineP.y+=linDif;
06802             if(ptColLineP.y<0)ptColLineP.y=0;
06803             GetDocument()->m_cLayoutMgr.LogicToLayout(
06804                 ptColLineP,
06805                 sRangeA.GetToPointer()
06806             );
06807         }
06808         if(sRangeA.GetFrom().y<sRangeA.GetTo().y || sRangeA.GetFrom().x<sRangeA.GetTo().x){
06809             GetSelect() = sRangeA;
06810         }
06811         GetCaret().MoveCursor( sRangeA.GetTo(), TRUE );
06812     }
06813     // To Here 2001.12.03 hor
06814
06815     GetEditWindow()->m_cDlgReplace.m_bCanceled = (cDlgCancel.IsCanceled() != FALSE);
06816     GetEditWindow()->m_cDlgReplace.m_nReplaceCnt=nReplaceNum;
06817     m_pCommanderView->SetDrawSwitch(true);
06818     ActivateFrameWindow( GetMainWindow() );
06819 }
06820
06821
06822
06823 /* カーソル行をウィンドウ中央へ */
06824 void CViewCommander::Command_CURLINECENTER( void )
06825 {
06826     CLayoutInt      nViewTopLine;
06827     nViewTopLine = GetCaret().GetCaretLayoutPos().GetY2() - ( m_pCommanderView->GetTextArea().m_nViewRowNum / 2 );
06828
06829     // sui 02/08/09
06830     if( 0 > nViewTopLine )  nViewTopLine = CLayoutInt(0);
06831
06832     CLayoutInt nScrollLines = nViewTopLine - m_pCommanderView->GetTextArea().GetViewTopLine();  //Sep. 11, 2004 genta 同期用に行数を記憶
06833     m_pCommanderView->GetTextArea().SetViewTopLine( nViewTopLine );
06834     /* フォーカス移動時の再描画 */
06835     m_pCommanderView->RedrawAll();
06836     // sui 02/08/09
06837
06838     //  Sep. 11, 2004 genta 同期スクロールの関数化
06839     m_pCommanderView->SyncScrollV( nScrollLines );
06840 }
06841
06842
06843
06844
06845 /* Base64デコードして保存 */
06846 void CViewCommander::Command_BASE64DECODE( void )
06847 {
06848     CNativeW    cmemBuf;
06849     TCHAR       szPath[_MAX_PATH];
06850
06851     /* テキストが選択されているか */
06852     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
06853         ::MessageBeep( MB_ICONHAND );
06854         return;
06855     }
06856     /* 選択範囲のデータを取得 */
06857     /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
06858     if( FALSE == m_pCommanderView->GetSelectedData( &cmemBuf, FALSE, NULL, FALSE, GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
06859         ::MessageBeep( MB_ICONHAND );
06860         return;
06861     }
06862     /* Base64デコード */
06863     CConvert_Base64Decode().DoConvert(&cmemBuf);
06864     _tcscpy( szPath, _T("") );
06865
06866     /* 保存ダイアログ モーダルダイアログの表示 */
06867     if( !GetDocument()->SaveFileDialog( szPath,  NULL ) ){
06868         return;
06869     }
06870
06871     //データ
06872     int nDataLen;
06873     const void* pData = cmemBuf._GetMemory()->GetRawPtr(&nDataLen);
06874
06875     //カキコ
06876     CBinaryOutputStream out(szPath);
06877     if(!out)goto err;
06878     if( nDataLen != out.Write(pData, nDataLen) )goto err;
06879
06880     return;
06881
06882 err:
06883     ::MessageBeep( MB_ICONHAND );
06884 	::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
06885         "ファイルの書き込みに失敗しました。\n\n%ls", szPath
06886     );
06887 }
06888
06889
06890
06891
06892 /* uudecodeして保存 */
06893 void CViewCommander::Command_UUDECODE( void )
06894 {
06895     /* テキストが選択されているか */
06896     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){
06897         ::MessageBeep( MB_ICONHAND );
06898         return;
06899     }
06900
06901     // 選択範囲のデータを取得 -> cmemBuf
06902     // 正常時はTRUE,範囲未選択の場合はFALSEを返す
06903     CNativeW    cmemBuf;
06904     if( FALSE == m_pCommanderView->GetSelectedData( &cmemBuf, FALSE, NULL, FALSE, GetShareData()->m_Common.m_sEdit.m_bAddCRLFWhenCopy ) ){
06905         ::MessageBeep( MB_ICONHAND );
06906         return;
06907     }
06908
06909     // uudecode(デコード)  cmemBuf -> cmemBin, szPath
06910     CMemory cmemBin;
06911     TCHAR szPath[_MAX_PATH]=_T("");
06912     CConvert_UuDecode::UUDECODE( cmemBuf, &cmemBin, szPath );
06913
06914     /* 保存ダイアログ モーダルダイアログの表示 */
06915     if( !GetDocument()->SaveFileDialog( szPath,  NULL ) ){
06916         return;
06917     }
06918
06919     //データ
06920     int nDataLen;
06921     const void* pData = cmemBin.GetRawPtr(&nDataLen);
06922
06923     //カキコ
06924     CBinaryOutputStream out(szPath);
06925     if( !out )goto err;
06926     if( nDataLen != out.Write(pData,nDataLen) )goto err;
06927
06928     //完了
06929     return;
06930
06931 err:
06932     ::MessageBeep( MB_ICONHAND );
06933     ErrorMessage( m_pCommanderView->GetHwnd(), _T("ファイルの書き込みに失敗しました。\n\n%ts"), szPath );
06934 }
06935
06936
06937
06938
06939 /* 再描画 */
06940 void CViewCommander::Command_REDRAW( void )
06941 {
06942     /* フォーカス移動時の再描画 */
06943     m_pCommanderView->RedrawAll();
06944     return;
06945 }
06946
06947
06948
06949
06950 /* Oracle SQL*Plusで実行 */
06951 void CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS( void )
06952 {
06953 //  HGLOBAL     hgClip;
06954 //  char*       pszClip;
06955     HWND        hwndSQLPLUS;
06956     int         nRet;
06957     BOOL        nBool;
06958     TCHAR       szPath[MAX_PATH + 2];
06959     BOOL        bResult;
06960
06961     hwndSQLPLUS = ::FindWindow( _T("SqlplusWClass"), _T("Oracle SQL*Plus") );
06962     if( NULL == hwndSQLPLUS ){
06963 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
06964             "Oracle SQL*Plusで実行します。\n\n\nOracle SQL*Plusが起動されていません。\n"
06965         );
06966         return;
06967     }
06968     /* テキストが変更されている場合 */
06969     if( GetDocument()->IsModified() ){
06970         nRet = ::MYMESSAGEBOX_A(
06971             m_pCommanderView->GetHwnd(),
06972             MB_YESNOCANCEL | MB_ICONEXCLAMATION,
06973             GSTR_APPNAME_A,
06974             "%ts\nは変更されています。 Oracle SQL*Plusで実行する前に保存しますか？",
06975             GetDocument()->IsFilePathAvailable() ? GetDocument()->GetFilePath() : _T("(無題)")
06976         );
06977         switch( nRet ){
06978         case IDYES:
06979             if( GetDocument()->IsFilePathAvailable() ){
06980                 //nBool = HandleCommand( F_FILESAVE, TRUE, 0, 0, 0, 0 );
06981                 nBool = Command_FILESAVE();
06982             }else{
06983                 //nBool = HandleCommand( F_FILESAVEAS_DIALOG, TRUE, 0, 0, 0, 0 );
06984                 nBool = Command_FILESAVEAS_DIALOG();
06985             }
06986             if( FALSE == nBool ){
06987                 return;
06988             }
06989             break;
06990         case IDNO:
06991             return;
06992         case IDCANCEL:
06993         default:
06994             return;
06995         }
06996     }
06997     if( GetDocument()->IsFilePathAvailable() ){
06998         /* ファイルパスに空白が含まれている場合はダブルクォーテーションで囲む */
06999         //  2003.10.20 MIK コード簡略化
07000         if( _tcschr( GetDocument()->GetFilePath(), TCODE::SPACE ) ? TRUE : FALSE ){
07001             auto_sprintf( szPath, _T("@\"%ls\"\r\n"), GetDocument()->GetFilePath() );
07002         }else{
07003             auto_sprintf( szPath, _T("@%ls\r\n"), GetDocument()->GetFilePath() );
07004         }
07005         /* クリップボードにデータを設定 */
07006         m_pCommanderView->MySetClipboardData( szPath, _tcslen( szPath ), FALSE );
07007
07008         /* Oracle SQL*Plusをアクティブにする */
07009         /* アクティブにする */
07010         ActivateFrameWindow( hwndSQLPLUS );
07011
07012         /* Oracle SQL*Plusにペーストのコマンドを送る */
07013         DWORD_PTR   dwResult;
07014         bResult = ::SendMessageTimeout(
07015             hwndSQLPLUS,
07016             WM_COMMAND,
07017             MAKELONG( 201, 0 ),
07018             0,
07019             SMTO_ABORTIFHUNG | SMTO_NORMAL,
07020             3000,
07021             &dwResult
07022         );
07023         if( !bResult ){
07024 			::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_TOPMOST | MB_ICONSTOP, GSTR_APPNAME_A,
07025                 "Oracle SQL*Plusからの反応がありません。\nしばらく待ってから再び実行してください。"
07026             );
07027         }
07028     }else{
07029         ::MessageBeep( MB_ICONHAND );
07030 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(),
07031              MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07032             "SQLをファイルに保存しないとOracle SQL*Plusで実行できません。\n"
07033         );
07034         return;
07035     }
07036     return;
07037 }
07038
07039
07040
07041
07042 /* Oracle SQL*Plusをアクティブ表示 */
07043 void CViewCommander::Command_ACTIVATE_SQLPLUS( void )
07044 {
07045     HWND        hwndSQLPLUS;
07046     hwndSQLPLUS = ::FindWindow( _T("SqlplusWClass"), _T("Oracle SQL*Plus") );
07047     if( NULL == hwndSQLPLUS ){
07048 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07049             "Oracle SQL*Plusをアクティブ表示します。\n\n\nOracle SQL*Plusが起動されていません。\n"
07050         );
07051         return;
07052     }
07053     /* Oracle SQL*Plusをアクティブにする */
07054     /* アクティブにする */
07055     ActivateFrameWindow( hwndSQLPLUS );
07056     return;
07057 }
07058
07059
07060
07061
07062 /* 読み取り専用 */
07063 void CViewCommander::Command_READONLY( void )
07064 {
07065     GetDocument()->m_bReadOnly ^= 1;
07066
07067     /* 親ウィンドウのタイトルを更新 */
07068     GetDocument()->SetParentCaption();
07069 }
07070
07071 /* ファイルのプロパティ */
07072 void CViewCommander::Command_PROPERTY_FILE( void )
07073 {
07074 #ifdef _DEBUG
07075     {
07076         /* 全行データを返すテスト */
07077         wchar_t*    pDataAll;
07078         int     nDataAllLen;
07079         CRunningTimer cRunningTimer( "CViewCommander::Command_PROPERTY_FILE 全行データを返すテスト" );
07080         cRunningTimer.Reset();
07081         pDataAll = GetDocument()->m_cDocLineMgr.GetAllData( &nDataAllLen );
07082 //      MYTRACE_A( "全データ取得             (%dバイト) 所要時間(ミリ秒) = %d\n", nDataAllLen, cRunningTimer.Read() );
07083         free( pDataAll );
07084         pDataAll = NULL;
07085 //      MYTRACE_A( "全データ取得のメモリ開放 (%dバイト) 所要時間(ミリ秒) = %d\n", nDataAllLen, cRunningTimer.Read() );
07086     }
07087 #endif
07088
07089
07090     CDlgProperty    cDlgProperty;
07091 //  cDlgProperty.Create( GetInstance(), m_pCommanderView->GetHwnd(), GetDocument() );
07092     cDlgProperty.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), (LPARAM)GetDocument() );
07093     return;
07094 }
07095
07096
07097
07098
07099 /* 編集の全終了 */    // 2007.02.13 ryoji 追加
07100 void CViewCommander::Command_EXITALLEDITORS( void )
07101 {
07102     CControlTray::CloseAllEditor( TRUE, GetMainWindow(), TRUE, 0 );
07103     return;
07104 }
07105
07106 /* サクラエディタの全終了 */ //Dec. 27, 2000 JEPRO 追加
07107 void CViewCommander::Command_EXITALL( void )
07108 {
07109     CControlTray::TerminateApplication( GetMainWindow() );  // 2006.12.25 ryoji 引数追加
07110     return;
07111 }
07112
07113
07114
07115
07116 /* グループを閉じる */  // 2007.06.20 ryoji 追加
07117 void CViewCommander::Command_GROUPCLOSE( void )
07118 {
07119     if( GetShareData()->m_Common.m_sTabBar.m_bDispTabWnd && !GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin ){
07120         int nGroup = CShareData::getInstance()->GetGroupId( GetMainWindow() );
07121         CControlTray::CloseAllEditor( TRUE, GetMainWindow(), TRUE, nGroup );
07122     }
07123     return;
07124 }
07125
07126 /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
07127 void CViewCommander::Command_FILECLOSEALL( void )
07128 {
07129     int nGroup = CShareData::getInstance()->GetGroupId( GetMainWindow() );
07130     CControlTray::CloseAllEditor( TRUE, GetMainWindow(), FALSE, nGroup );   // 2006.12.25, 2007.02.13 ryoji 引数追加
07131     return;
07132 }
07133
07134
07135
07136
07137 /* ウィンドウを閉じる */
07138 void CViewCommander::Command_WINCLOSE( void )
07139 {
07140     /* 閉じる */
07141 	::PostMessageAny( GetMainWindow(), MYWM_CLOSE, FALSE, 0 ); // 2007.02.13 ryoji WM_CLOSE→MYWM_CLOSEに変更
07142     return;
07143 }
07144
07145 //アウトプットウィンドウ表示
07146 void CViewCommander::Command_WIN_OUTPUT( void )
07147 {
07148     if( NULL == GetShareData()->m_hwndDebug
07149         || !CShareData::IsEditWnd( GetShareData()->m_hwndDebug )
07150     ){
07151         CControlTray::OpenNewEditor( NULL, m_pCommanderView->GetHwnd(), _T("-DEBUGMODE"), CODE_SJIS, FALSE, true );
07152 #if 0
07153         //  Jun. 25, 2001 genta OpenNewEditorのsync機能を利用するように変更
07154         //アウトプットウインドウが出来るまで5秒ぐらい待つ。
07155         CRunningTimer wait_timer( NULL );
07156         while( NULL == GetShareData()->m_hwndDebug && 5000 > wait_timer.Read() ){
07157             Sleep(1);
07158         }
07159         Sleep(10);
07160 #endif
07161     }else{
07162         /* 開いているウィンドウをアクティブにする */
07163         /* アクティブにする */
07164         ActivateFrameWindow( GetShareData()->m_hwndDebug );
07165     }
07166     return;
07167 }
07168
07169
07170
07171
07172 /* カスタムメニュー表示 */
07173 int CViewCommander::Command_CUSTMENU( int nMenuIdx )
07174 {
07175     HMENU       hMenu;
07176     int         nId;
07177     POINT       po;
07178     int         i;
07179     UINT        uFlags;
07180
07181     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07182     pCEditWnd->GetMenuDrawer().ResetContents();
07183
07184     //  Oct. 3, 2001 genta
07185     CFuncLookup& FuncLookup = GetDocument()->m_cFuncLookup;
07186
07187     if( nMenuIdx < 0 || MAX_CUSTOM_MENU <= nMenuIdx ){
07188         return 0;
07189     }
07190     if( 0 == GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nMenuIdx] ){
07191         return 0;
07192     }
07193     hMenu = ::CreatePopupMenu();
07194     for( i = 0; i < GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemNumArr[nMenuIdx]; ++i ){
07195         if( 0 == GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] ){
07196             ::AppendMenu( hMenu, MF_SEPARATOR, 0, NULL );
07197         }else{
07198             //  Oct. 3, 2001 genta
07199             WCHAR       szLabel[300];
07200             WCHAR       szLabel2[300];
07201             FuncLookup.Funccode2Name( GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
07202             /* キー */
07203             if( L'\0' == GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nMenuIdx][i] ){
07204                 _tcscpy( szLabel2, szLabel );
07205             }else{
07206                 auto_sprintf( szLabel2, LTEXT("%ls (&%lc)"),
07207                     szLabel,
07208                     GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemKeyArr[nMenuIdx][i]
07209                 );
07210             }
07211             /* 機能が利用可能か調べる */
07212             if( IsFuncEnable( GetDocument(), GetShareData(), GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] ) ){
07213                 uFlags = MF_STRING | MF_ENABLED;
07214             }else{
07215                 uFlags = MF_STRING | MF_DISABLED | MF_GRAYED;
07216             }
07217             pCEditWnd->GetMenuDrawer().MyAppendMenu(
07218                 hMenu, /*MF_BYPOSITION | MF_STRING*/uFlags,
07219                 GetShareData()->m_Common.m_sCustomMenu.m_nCustMenuItemFuncArr[nMenuIdx][i] , szLabel2 );
07220         }
07221     }
07222     po.x = 0;
07223     po.y = 0;
07224     //2002/04/08 YAZAKI カスタムメニューもマウスカーソルの位置に表示するように変更。
07225     ::GetCursorPos( &po );
07226     po.y -= 4;
07227     nId = ::TrackPopupMenu(
07228         hMenu,
07229         TPM_TOPALIGN
07230         | TPM_LEFTALIGN
07231         | TPM_RETURNCMD
07232         | TPM_LEFTBUTTON
07233         ,
07234         po.x,
07235         po.y,
07236         0,
07237         GetMainWindow(),
07238         NULL
07239     );
07240     ::DestroyMenu( hMenu );
07241     return nId;
07242 }
07243
07244
07245
07246
07247 //選択範囲内全行コピー
07248 void CViewCommander::Command_COPYLINES( void )
07249 {
07250     /* 選択範囲内の全行をクリップボードにコピーする */
07251     m_pCommanderView->CopySelectedAllLines(
07252         NULL,   /* 引用符 */
07253         FALSE   /* 行番号を付与する */
07254     );
07255     return;
07256 }
07257
07258
07259
07260
07261 //選択範囲内全行引用符付きコピー
07262 void CViewCommander::Command_COPYLINESASPASSAGE( void )
07263 {
07264     /* 選択範囲内の全行をクリップボードにコピーする */
07265     m_pCommanderView->CopySelectedAllLines(
07266         GetShareData()->m_Common.m_sFormat.m_szInyouKigou,  /* 引用符 */
07267         FALSE                                   /* 行番号を付与する */
07268     );
07269     return;
07270 }
07271
07272
07273
07274
07275 //選択範囲内全行行番号付きコピー
07276 void CViewCommander::Command_COPYLINESWITHLINENUMBER( void )
07277 {
07278     /* 選択範囲内の全行をクリップボードにコピーする */
07279     m_pCommanderView->CopySelectedAllLines(
07280         NULL,   /* 引用符 */
07281         TRUE    /* 行番号を付与する */
07282     );
07283     return;
07284 }
07285
07286
07287
07288
07290     //Dec. 26, 2000 JEPRO //Jan. 24, 2001 JEPRO debug version (directed by genta)
07291 void CViewCommander::Command_CREATEKEYBINDLIST( void )
07292 {
07293     CNativeW        cMemKeyList;
07294
07295     CKeyBind::CreateKeyBindList(
07296         GetInstance(),
07297         GetShareData()->m_nKeyNameArrNum,
07298         GetShareData()->m_pKeyNameArr,
07299         cMemKeyList,
07300         &GetDocument()->m_cFuncLookup,  //  Oct. 31, 2001 genta 追加
07301         FALSE   // 2007.02.22 ryoji 追加
07302     );
07303
07304     // Windowsクリップボードにコピー
07305     //2004.02.17 Moca 関数化
07306     SetClipboardText( GetDocument()->GetSplitterHwnd(), cMemKeyList.GetStringPtr(), cMemKeyList.GetStringLength() );
07307     return;
07308 }
07309
07310 /* ファイル内容比較 */
07311 void CViewCommander::Command_COMPARE( void )
07312 {
07313     HWND        hwndCompareWnd;
07314     TCHAR       szPath[_MAX_PATH + 1];
07315     CMyPoint    poDes;
07316     CDlgCompare cDlgCompare;
07317     BOOL        bDefferent;
07318     const wchar_t*  pLineSrc;
07319     CLogicInt       nLineLenSrc;
07320     const wchar_t*  pLineDes;
07321     int         nLineLenDes;
07322     HWND        hwndMsgBox; //@@@ 2003.06.12 MIK
07323
07324     /* 比較後、左右に並べて表示 */
07325     cDlgCompare.m_bCompareAndTileHorz = GetShareData()->m_Common.m_sCompare.m_bCompareAndTileHorz;
07326     BOOL bDlgCompareResult = cDlgCompare.DoModal(
07327         GetInstance(),
07328         m_pCommanderView->GetHwnd(),
07329         (LPARAM)GetDocument(),
07330         GetDocument()->GetFilePath(),
07331         GetDocument()->IsModified(),
07332         szPath,
07333         &hwndCompareWnd
07334     );
07335     if( FALSE == bDlgCompareResult ){
07336         return;
07337     }
07338     /* 比較後、左右に並べて表示 */
07339     GetShareData()->m_Common.m_sCompare.m_bCompareAndTileHorz = cDlgCompare.m_bCompareAndTileHorz;
07340
07341     //タブウインドウ時は禁止 //@@@ 2003.06.12 MIK
07342     if( TRUE  == GetShareData()->m_Common.m_sTabBar.m_bDispTabWnd
07343      && FALSE == GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
07344     {
07345         hwndMsgBox = m_pCommanderView->GetHwnd();
07346         GetShareData()->m_Common.m_sCompare.m_bCompareAndTileHorz = FALSE;
07347     }
07348     else
07349     {
07350         hwndMsgBox = hwndCompareWnd;
07351     }
07352
07353
07354     /*
07355       カーソル位置変換
07356       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
07357       →
07358       物理位置(行頭からのバイト数、折り返し無し行位置)
07359     */
07360     CLogicPoint poSrc;
07361     GetDocument()->m_cLayoutMgr.LayoutToLogic(
07362         GetCaret().GetCaretLayoutPos(),
07363         &poSrc
07364     );
07365
07366     // カーソル位置取得 -> poDes
07367     {
07368 		::SendMessageAny( hwndCompareWnd, MYWM_GETCARETPOS, 0, 0 );
07369         CLogicPoint* ppoCaretDes = GetShareData()->GetWorkBuffer<CLogicPoint>();
07370         poDes.x = ppoCaretDes->x;
07371         poDes.y = ppoCaretDes->y;
07372     }
07373     bDefferent = TRUE;
07374     pLineSrc = GetDocument()->m_cDocLineMgr.GetLineStr( poSrc.GetY2(), &nLineLenSrc );
07375     /* 行(改行単位)データの要求 */
07376     nLineLenDes = ::SendMessageAny( hwndCompareWnd, MYWM_GETLINEDATA, poDes.y, 0 );
07377     pLineDes = GetShareData()->GetWorkBuffer<EDIT_CHAR>();
07378     while( 1 ){
07379         if( pLineSrc == NULL && 0 == nLineLenDes ){
07380             bDefferent = FALSE;
07381             break;
07382         }
07383         if( pLineSrc == NULL || 0 == nLineLenDes ){
07384             break;
07385         }
07386         if( nLineLenDes > (int)GetShareData()->GetWorkBufferCount<EDIT_CHAR>() ){
07387 			::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME_A,
07388                 "比較先のファイル\n%ls\n%dバイトを超える行があります。\n"
07389                 "比較できません。",
07390                 szPath,
07391                 GetShareData()->GetWorkBufferCount<EDIT_CHAR>()
07392             );
07393             return;
07394         }
07395         for( ; poSrc.x < nLineLenSrc; ){
07396             if( poDes.x >= nLineLenDes ){
07397                 goto end_of_compare;
07398             }
07399             if( pLineSrc[poSrc.x] != pLineDes[poDes.x] ){
07400                 goto end_of_compare;
07401             }
07402             poSrc.x++;
07403             poDes.x++;
07404         }
07405         if( poDes.x < nLineLenDes ){
07406             goto end_of_compare;
07407         }
07408         poSrc.x = 0;
07409         poSrc.y++;
07410         poDes.x = 0;
07411         poDes.y++;
07412         pLineSrc = GetDocument()->m_cDocLineMgr.GetLineStr( poSrc.GetY2(), &nLineLenSrc );
07413         /* 行(改行単位)データの要求 */
07414         nLineLenDes = ::SendMessageAny( hwndCompareWnd, MYWM_GETLINEDATA, poDes.y, 0 );
07415     }
07416 end_of_compare:;
07417     /* 比較後、左右に並べて表示 */
07418 //From Here Oct. 10, 2000 JEPRO チェックボックスをボタン化すれば以下の行(To Here まで)は不要のはずだが
07419 //  うまくいかなかったので元に戻してある…
07420     if( GetShareData()->m_Common.m_sCompare.m_bCompareAndTileHorz ){
07421         HWND* phwndArr = new HWND[2];
07422         phwndArr[0] = GetMainWindow();
07423         phwndArr[1] = hwndCompareWnd;
07424
07425         int i;  // Jan. 28, 2002 genta ループ変数 intの宣言を前に出した．
07426                 // 互換性対策．forの()内で宣言すると古い規格と新しい規格で矛盾するので．
07427         for( i = 0; i < 2; ++i ){
07428             if( ::IsZoomed( phwndArr[i] ) ){
07429                 ::ShowWindow( phwndArr[i], SW_RESTORE );
07430             }
07431         }
07432         //  デスクトップサイズを得る 2002.1.24 YAZAKI
07433         RECT    rcDesktop;
07434         //  May 01, 2004 genta マルチモニタ対応
07435 		::GetMonitorWorkRect( phwndArr[0], &rcDesktop );
07436         int width = (rcDesktop.right - rcDesktop.left ) / 2;
07437         for( i = 1; i >= 0; i-- ){
07438             ::SetWindowPos(
07439                 phwndArr[i], 0,
07440                 width * i + rcDesktop.left, rcDesktop.top, // Oct. 18, 2003 genta タスクバーが左にある場合を考慮
07441                 width, rcDesktop.bottom - rcDesktop.top,
07442                 SWP_NOOWNERZORDER | SWP_NOZORDER
07443             );
07444         }
07445 //      ::TileWindows( NULL, MDITILE_VERTICAL, NULL, 2, phwndArr );
07446         delete [] phwndArr;
07447     }
07448 //To Here Oct. 10, 2000
07449
07450     //  2002/05/11 YAZAKI 親ウィンドウをうまく設定してみる。
07451     if( FALSE == bDefferent ){
07452 		::MYMESSAGEBOX( hwndMsgBox, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
07453             _T("異なる箇所は見つかりませんでした。")
07454         );
07455     }else{
07456 		::MYMESSAGEBOX( hwndMsgBox, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
07457             _T("異なる箇所が見つかりました。")
07458         );
07459         /* カーソルを移動させる
07460             比較相手は、別プロセスなのでメッセージを飛ばす。
07461         */
07462         memcpy_raw( GetShareData()->GetWorkBuffer<void>(), &poDes, sizeof( poDes ) );
07463 		::SendMessageAny( hwndCompareWnd, MYWM_SETCARETPOS, 0, 0 );
07464
07465         /* カーソルを移動させる */
07466         memcpy_raw( GetShareData()->GetWorkBuffer<void>(), &poSrc, sizeof( poSrc ) );
07467 		::PostMessageAny( GetMainWindow(), MYWM_SETCARETPOS, 0, 0 );
07468     }
07469
07470     /* 開いているウィンドウをアクティブにする */
07471     /* アクティブにする */
07472     ActivateFrameWindow( GetMainWindow() );
07473     return;
07474 }
07475
07476
07477
07478
07483 void CViewCommander::Command_SHOWTOOLBAR( void )
07484 {
07485     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07486
07487     GetShareData()->m_Common.m_sWindow.m_bDispTOOLBAR = ((NULL == pCEditWnd->m_cToolbar.GetToolbarHwnd())? TRUE: FALSE);    /* ツールバー表示 */
07488     pCEditWnd->LayoutToolBar();
07489     pCEditWnd->EndLayoutBars();
07490
07491     //全ウインドウに変更を通知する。
07492     CShareData::getInstance()->PostMessageToAllEditors(
07493         MYWM_BAR_CHANGE_NOTIFY,
07494         (WPARAM)MYBCN_TOOLBAR,
07495         (LPARAM)pCEditWnd->GetHwnd(),
07496         pCEditWnd->GetHwnd()
07497     );
07498 }
07499
07500
07501
07502
07507 void CViewCommander::Command_SHOWSTATUSBAR( void )
07508 {
07509     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07510
07511     GetShareData()->m_Common.m_sWindow.m_bDispSTATUSBAR = ((NULL == pCEditWnd->m_cStatusBar.GetStatusHwnd())? TRUE: FALSE); /* ステータスバー表示 */
07512     pCEditWnd->LayoutStatusBar();
07513     pCEditWnd->EndLayoutBars();
07514
07515     //全ウインドウに変更を通知する。
07516     CShareData::getInstance()->PostMessageToAllEditors(
07517         MYWM_BAR_CHANGE_NOTIFY,
07518         (WPARAM)MYBCN_STATUSBAR,
07519         (LPARAM)pCEditWnd->GetHwnd(),
07520         pCEditWnd->GetHwnd()
07521     );
07522 }
07523
07524
07525
07526
07531 void CViewCommander::Command_SHOWFUNCKEY( void )
07532 {
07533     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07534
07535     GetShareData()->m_Common.m_sWindow.m_bDispFUNCKEYWND = ((NULL == pCEditWnd->m_CFuncKeyWnd.GetHwnd())? TRUE: FALSE); /* ファンクションキー表示 */
07536     pCEditWnd->LayoutFuncKey();
07537     pCEditWnd->EndLayoutBars();
07538
07539     //全ウインドウに変更を通知する。
07540     CShareData::getInstance()->PostMessageToAllEditors(
07541         MYWM_BAR_CHANGE_NOTIFY,
07542         (WPARAM)MYBCN_FUNCKEY,
07543         (LPARAM)pCEditWnd->GetHwnd(),
07544         pCEditWnd->GetHwnd()
07545     );
07546 }
07547
07548 //@@@ From Here 2003.06.10 MIK
07556 void CViewCommander::Command_SHOWTAB( void )
07557 {
07558     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07559
07560     GetShareData()->m_Common.m_sTabBar.m_bDispTabWnd = ((NULL == pCEditWnd->m_cTabWnd.GetHwnd())? TRUE: FALSE); /* タブバー表示 */
07561     pCEditWnd->LayoutTabBar();
07562     pCEditWnd->EndLayoutBars();
07563
07564     // まとめるときは WS_EX_TOPMOST 状態を同期する    // 2007.05.18 ryoji
07565     if( GetShareData()->m_Common.m_sTabBar.m_bDispTabWnd && !GetShareData()->m_Common.m_sTabBar.m_bDispTabWndMultiWin )
07566     {
07567         GetDocument()->m_pcEditWnd->WindowTopMost(
07568             ( (DWORD)::GetWindowLongPtr( GetDocument()->m_pcEditWnd->GetHwnd(), GWL_EXSTYLE ) & WS_EX_TOPMOST )? 1: 2
07569         );
07570     }
07571
07572     //全ウインドウに変更を通知する。
07573     CShareData::getInstance()->ResetGroupId();
07574     CShareData::getInstance()->PostMessageToAllEditors(
07575         MYWM_BAR_CHANGE_NOTIFY,
07576         (WPARAM)MYBCN_TAB,
07577         (LPARAM)pCEditWnd->GetHwnd(),
07578         pCEditWnd->GetHwnd()
07579     );
07580 }
07581 //@@@ To Here 2003.06.10 MIK
07582
07583
07584
07585 /* 印刷 */
07586 void CViewCommander::Command_PRINT( void )
07587 {
07588     // 使っていない処理を削除 2003.05.04 かろと
07589     Command_PRINT_PREVIEW();
07590     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07591
07592     /* 印刷実行 */
07593     pCEditWnd->m_pPrintPreview->OnPrint();
07594 }
07595
07596
07597
07598
07599 /* 印刷プレビュー */
07600 void CViewCommander::Command_PRINT_PREVIEW( void )
07601 {
07602     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07603
07604     /* 印刷プレビューモードのオン/オフ */
07605     pCEditWnd->PrintPreviewModeONOFF();
07606     return;
07607 }
07608
07609
07610
07611
07612 /* 印刷のページレイアウトの設定 */
07613 void CViewCommander::Command_PRINT_PAGESETUP( void )
07614 {
07615     BOOL        bRes;
07616     CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd; //  Sep. 10, 2002 genta
07617
07618     /* 印刷ページ設定 */
07619     bRes = pCEditWnd->OnPrintPageSetting();
07620     return;
07621 }
07622
07623
07624
07625
07626 /* ブラウズ */
07627 void CViewCommander::Command_BROWSE( void )
07628 {
07629     if( !GetDocument()->IsFilePathAvailable() ){
07630         ::MessageBeep( MB_ICONHAND );
07631         return;
07632     }
07633 //  char    szURL[MAX_PATH + 64];
07634 //  auto_sprintf( szURL, L"%ls", GetDocument()->GetFilePath() );
07635     /* URLを開く */
07636 //  ::ShellExecuteEx( NULL, L"open", szURL, NULL, NULL, SW_SHOW );
07637
07638     SHELLEXECUTEINFO info;
07639     info.cbSize =sizeof(info);
07640     info.fMask = 0;
07641     info.hwnd = NULL;
07642     info.lpVerb = NULL;
07643     info.lpFile = GetDocument()->GetFilePath();
07644     info.lpParameters = NULL;
07645     info.lpDirectory = NULL;
07646     info.nShow = SW_SHOWNORMAL;
07647     info.hInstApp = 0;
07648     info.lpIDList = NULL;
07649     info.lpClass = NULL;
07650     info.hkeyClass = 0;
07651     info.dwHotKey = 0;
07652     info.hIcon =0;
07653
07654     ::ShellExecuteEx(&info);
07655
07656     return;
07657 }
07658
07659
07660
07661
07662 /* キーマクロの記録開始／終了 */
07663 void CViewCommander::Command_RECKEYMACRO( void )
07664 {
07665     if( GetShareData()->m_bRecordingKeyMacro ){                                 /* キーボードマクロの記録中 */
07666         GetShareData()->m_bRecordingKeyMacro = FALSE;
07667         GetShareData()->m_hwndRecordingKeyMacro = NULL;                         /* キーボードマクロを記録中のウィンドウ */
07668         //@@@ 2002.1.24 YAZAKI キーマクロをマクロ用フォルダに「RecKey.mac」という名で保存
07669         TCHAR szInitDir[MAX_PATH];
07670         int nRet;
07671         // 2003.06.23 Moca 記録用キーマクロのフルパスをCShareData経由で取得
07672         nRet = CShareData::getInstance()->GetMacroFilename( -1, szInitDir, MAX_PATH );
07673         if( nRet <= 0 ){
07674 			::MYMESSAGEBOX_A(    m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07675                 "マクロファイルを作成できませんでした。\nファイル名の取得エラー nRet=%d", nRet
07676             );
07677             return;
07678         }else{
07679             _tcscpy( GetShareData()->m_szKeyMacroFileName, szInitDir );
07680         }
07681         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
07682         int nSaveResult=GetDocument()->m_pcSMacroMgr->Save(
07683             STAND_KEYMACRO,
07684             GetInstance(),
07685             GetShareData()->m_szKeyMacroFileName
07686         );
07687         if ( FALSE == nSaveResult ){
07688 			::MYMESSAGEBOX_A(    m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07689                 "マクロファイルを作成できませんでした。\n\n%ls", GetShareData()->m_szKeyMacroFileName
07690             );
07691         }
07692     }else{
07693         GetShareData()->m_bRecordingKeyMacro = TRUE;
07694         GetShareData()->m_hwndRecordingKeyMacro = GetMainWindow();; /* キーボードマクロを記録中のウィンドウ */
07695         /* キーマクロのバッファをクリアする */
07696         //@@@ 2002.1.24 m_CKeyMacroMgrをCEditDocへ移動
07697         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
07698         GetDocument()->m_pcSMacroMgr->Clear(STAND_KEYMACRO);
07699 //      GetDocument()->m_CKeyMacroMgr.ClearAll();
07700 //      GetShareData()->m_CKeyMacroMgr.Clear();
07701     }
07702     /* 親ウィンドウのタイトルを更新 */
07703     m_pCommanderView->SetParentCaption();
07704
07705     /* キャレットの行桁位置を表示する */
07706     GetCaret().DrawCaretPosInfo();
07707
07708     return;
07709 }
07710
07711
07712
07713
07714 /* キーマクロの保存 */
07715 void CViewCommander::Command_SAVEKEYMACRO( void )
07716 {
07717     GetShareData()->m_bRecordingKeyMacro = FALSE;
07718     GetShareData()->m_hwndRecordingKeyMacro = NULL; /* キーボードマクロを記録中のウィンドウ */
07719
07720     //  Jun. 16, 2002 genta
07721     if( !GetDocument()->m_pcSMacroMgr->IsSaveOk() ){
07722         //  保存不可
07723 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07724             "保存可能なマクロがありません．キーボードマクロ以外は保存できません．" );
07725     }
07726
07727     CDlgOpenFile    cDlgOpenFile;
07728     TCHAR           szPath[_MAX_PATH + 1];
07729     TCHAR           szInitDir[_MAX_PATH + 1];
07730     _tcscpy( szPath, _T("") );
07731     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
07732     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
07733     if( _IS_REL_PATH( GetShareData()->m_szMACROFOLDER ) ){
07734         GetInidirOrExedir( szInitDir, GetShareData()->m_szMACROFOLDER );
07735     }else{
07736         _tcscpy( szInitDir, GetShareData()->m_szMACROFOLDER );  /* マクロ用フォルダ */
07737     }
07738     /* ファイルオープンダイアログの初期化 */
07739     cDlgOpenFile.Create(
07740         GetInstance(),
07741         m_pCommanderView->GetHwnd(),
07742         _T("*.mac"),
07743         szInitDir
07744     );
07745     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
07746         return;
07747     }
07748     /* ファイルのフルパスを、フォルダとファイル名に分割 */
07749     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
07750 //  ::SplitPath_FolderAndFile( szPath, GetShareData()->m_szMACROFOLDER, NULL );
07751 //  wcscat( GetShareData()->m_szMACROFOLDER, L"\\" );
07752
07753     /* キーボードマクロの保存 */
07754     //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
07755     //@@@ 2002.1.24 YAZAKI
07756     if ( !GetDocument()->m_pcSMacroMgr->Save( STAND_KEYMACRO, GetInstance(), szPath ) ){
07757 		::MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07758             "マクロファイルを作成できませんでした。\n\n%ls", szPath
07759         );
07760     }
07761     return;
07762 }
07763
07764
07765
07766
07767 /* キーマクロの実行 */
07768 void CViewCommander::Command_EXECKEYMACRO( void )
07769 {
07770     //@@@ 2002.1.24 YAZAKI 記録中は終了してから実行
07771     if (GetShareData()->m_bRecordingKeyMacro){
07772         Command_RECKEYMACRO();
07773     }
07774     GetShareData()->m_bRecordingKeyMacro = FALSE;
07775     GetShareData()->m_hwndRecordingKeyMacro = NULL; /* キーボードマクロを記録中のウィンドウ */
07776
07777     /* キーボードマクロの実行中 */
07778     m_pCommanderView->m_bExecutingKeyMacro = true;
07779
07780     /* キーボードマクロの実行 */
07781     //@@@ 2002.1.24 YAZAKI
07782     if ( GetShareData()->m_szKeyMacroFileName[0] ){
07783         //  ファイルが保存されていたら
07784         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
07785         BOOL bLoadResult = GetDocument()->m_pcSMacroMgr->Load(
07786             STAND_KEYMACRO,
07787             GetInstance(),
07788             GetShareData()->m_szKeyMacroFileName
07789         );
07790         if ( !bLoadResult ){
07791 			::MYMESSAGEBOX_A(    m_pCommanderView->GetHwnd(), MB_OK | MB_ICONSTOP, GSTR_APPNAME_A,
07792                 "ファイルを開けませんでした。\n\n%ls", GetShareData()->m_szKeyMacroFileName
07793             );
07794         }
07795         else {
07796             GetDocument()->m_pcSMacroMgr->Exec( STAND_KEYMACRO, GetInstance(), m_pCommanderView );
07797         }
07798     }
07799
07800     /* キーボードマクロの実行中 */
07801     m_pCommanderView->m_bExecutingKeyMacro = false;
07802
07803     /* フォーカス移動時の再描画 */
07804     m_pCommanderView->RedrawAll();
07805
07806     return;
07807 }
07808
07809
07810
07811
07815 void CViewCommander::Command_LOADKEYMACRO( void )
07816 {
07817     GetShareData()->m_bRecordingKeyMacro = FALSE;
07818     GetShareData()->m_hwndRecordingKeyMacro = NULL; /* キーボードマクロを記録中のウィンドウ */
07819
07820     CDlgOpenFile    cDlgOpenFile;
07821     TCHAR           szPath[_MAX_PATH + 1];
07822     TCHAR           szInitDir[_MAX_PATH + 1];
07823     const TCHAR*        pszFolder;
07824     _tcscpy( szPath, _T("") );
07825     pszFolder = GetShareData()->m_szMACROFOLDER;
07826     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
07827     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
07828     if( _IS_REL_PATH( pszFolder ) ){
07829         GetInidirOrExedir( szInitDir, pszFolder );
07830     }else{
07831         _tcscpy( szInitDir, pszFolder );    /* マクロ用フォルダ */
07832     }
07833     /* ファイルオープンダイアログの初期化 */
07834     cDlgOpenFile.Create(
07835         GetInstance(),
07836         m_pCommanderView->GetHwnd(),
07837 // 2005/02/20 novice デフォルトの拡張子変更
07838 // 2005/07/13 novice 多様なマクロをサポートしているのでデフォルトは全て表示にする
07839         _T("*.*"),
07840         szInitDir
07841     );
07842     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
07843         return;
07844     }
07845
07846     /* キーボードマクロの読み込み */
07847     //@@@ 2002.1.24 YAZAKI 読み込みといいつつも、ファイル名をコピーするだけ。実行直前に読み込む
07848     _tcscpy(GetShareData()->m_szKeyMacroFileName, szPath);
07849 //  GetShareData()->m_CKeyMacroMgr.LoadKeyMacro( GetInstance(), m_pCommanderView->GetHwnd(), szPath );
07850     return;
07851 }
07852
07853
07864 void CViewCommander::Command_WRAPWINDOWWIDTH( void )    //  Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
07865 {
07866     // Jan. 8, 2006 genta 判定処理をm_pCommanderView->GetWrapMode()へ移動
07867     CLayoutInt newKetas;
07868
07869     if( m_pCommanderView->GetWrapMode( &newKetas ) == CEditView::TGWRAP_NONE ){
07870         return;
07871     }
07872
07873     GetEditWindow()->ChangeLayoutParam( true, GetDocument()->m_cLayoutMgr.GetTabSpace(), newKetas );
07874
07875
07876     //  Aug. 14, 2005 genta 共通設定へは反映させない
07877 //  GetDocument()->GetDocumentAttribute().m_nMaxLineKetas = m_nViewColNum;
07878
07879     m_pCommanderView->GetTextArea().SetViewLeftCol( CLayoutInt(0) );        /* 表示域の一番左の桁(0開始) */
07880
07881     /* フォーカス移動時の再描画 */
07882     m_pCommanderView->RedrawAll();
07883     return;
07884 }
07885
07886
07887
07888
07889 //検索マークの切替え   // 2001.12.03 hor クリア を 切替え に変更
07890 void CViewCommander::Command_SEARCH_CLEARMARK( void )
07891 {
07892 // From Here 2001.12.03 hor
07893
07894     //検索マークのセット
07895
07896     if(m_pCommanderView->GetSelectionInfo().IsTextSelected()){
07897
07898         // 検索文字列取得
07899         CNativeW    cmemCurText;
07900         m_pCommanderView->GetCurrentTextForSearch( cmemCurText );
07901
07902         // 検索文字列設定
07903         int i,j;
07904         wcscpy( m_pCommanderView->m_szCurSrchKey, cmemCurText.GetStringPtr() );
07905         for( i = 0; i < GetShareData()->m_aSearchKeys.size(); ++i ){
07906             if( 0 == wcscmp( m_pCommanderView->m_szCurSrchKey, GetShareData()->m_aSearchKeys[i] ) ){
07907                 break;
07908             }
07909         }
07910         if( i < GetShareData()->m_aSearchKeys.size() ){
07911             for( j = i; j > 0; j-- ){
07912                 wcscpy( GetShareData()->m_aSearchKeys[j], GetShareData()->m_aSearchKeys[j - 1] );
07913             }
07914         }
07915         else{
07916             for( j = MAX_SEARCHKEY - 1; j > 0; j-- ){
07917                 wcscpy( GetShareData()->m_aSearchKeys[j], GetShareData()->m_aSearchKeys[j - 1] );
07918             }
07919             GetShareData()->m_aSearchKeys.resize( min(MAX_SEARCHKEY, GetShareData()->m_aSearchKeys.size()+1) );
07920         }
07921         wcscpy( GetShareData()->m_aSearchKeys[0], cmemCurText.GetStringPtr() );
07922
07923         // 検索オプション設定
07924         GetShareData()->m_Common.m_sSearch.m_sSearchOption.bRegularExp=false;   //正規表現使わない
07925         GetShareData()->m_Common.m_sSearch.m_sSearchOption.bWordOnly=false;     //単語で検索しない
07926         m_pCommanderView->ChangeCurRegexp(); // 2002.11.11 Moca 正規表現で検索した後，色分けができていなかった
07927
07928         // 再描画
07929         m_pCommanderView->RedrawAll();
07930         return;
07931     }
07932 // To Here 2001.12.03 hor
07933
07934     //検索マークのクリア
07935
07936     m_pCommanderView->m_bCurSrchKeyMark = false;    /* 検索文字列のマーク */
07937     /* フォーカス移動時の再描画 */
07938     m_pCommanderView->RedrawAll();
07939     return;
07940 }
07941
07942
07943
07944
07946 void CViewCommander::Command_FILE_REOPEN(
07947     ECodeType   nCharCode,
07948     bool        bNoConfirm
07949 )
07950 {
07951     if( !bNoConfirm && (  -1 != _taccess( GetDocument()->GetFilePath(), 0 ))
07952      && GetDocument()->IsModified() /* 変更フラグ */
07953     ){
07954         if( IDOK != MYMESSAGEBOX_A( m_pCommanderView->GetHwnd(), MB_OKCANCEL | MB_ICONQUESTION | MB_TOPMOST, GSTR_APPNAME_A,
07955             "%ts\n\nこのファイルは変更されています。\n再ロードを行うと変更が失われますが、よろしいですか?",
07956             GetDocument()->GetFilePath()
07957         ) ){
07958             return;
07959         }
07960     }
07961     /* 同一ファイルの再オープン */
07962      GetDocument()->ReloadCurrentFile(
07963         nCharCode,                  /* 文字コード種別 */
07964         GetDocument()->m_bReadOnly  /* 読み取り専用モード */
07965     );
07966     /* キャレットの行桁位置を表示する */
07967     GetCaret().DrawCaretPosInfo();
07968     return;
07969
07970 }
07971
07972
07973
07974
07975 //日付挿入
07976 void CViewCommander::Command_INS_DATE( void )
07977 {
07978     /* 日付をフォーマット */
07979     TCHAR szText[1024];
07980     SYSTEMTIME systime;
07981     ::GetLocalTime( &systime );
07982     CShareData::getInstance()->MyGetDateFormat( systime, szText, _countof( szText ) - 1 );
07983     /* テキストを貼り付け ver1 */
07984     Command_INSTEXT( TRUE, to_wchar(szText), CLogicInt(-1), TRUE );
07985     return;
07986 }
07987
07988
07989
07990
07991 //時刻挿入
07992 void CViewCommander::Command_INS_TIME( void )
07993 {
07994     /* 時刻をフォーマット */
07995     TCHAR szText[1024];
07996     SYSTEMTIME systime;
07997     ::GetLocalTime( &systime );
07998     CShareData::getInstance()->MyGetTimeFormat( systime, szText, _countof( szText ) - 1 );
07999     /* テキストを貼り付け ver1 */
08000     Command_INSTEXT( TRUE, to_wchar(szText), CLogicInt(-1), TRUE );
08001     return;
08002 }
08003
08004
08008 void CViewCommander::Command_EXECCOMMAND_DIALOG( void )
08009 {
08010     CDlgExec cDlgExec;
08011
08012     /* モードレスダイアログの表示 */
08013     if( !cDlgExec.DoModal( GetInstance(), m_pCommanderView->GetHwnd(), 0 ) ){
08014         return;
08015     }
08016
08017     m_pCommanderView->AddToCmdArr( cDlgExec.m_szCommand );
08018     const WCHAR* cmd_string = to_wchar(cDlgExec.m_szCommand);
08019
08020     //HandleCommand( F_EXECCOMMAND, TRUE, (LPARAM)cmd_string, 0, 0, 0); //  外部コマンド実行コマンドの発行
08021     HandleCommand( F_EXECCOMMAND, TRUE, (LPARAM)cmd_string, (LPARAM)(this->GetShareData()->m_nExecFlgOpt), 0, 0);   //  外部コマンド実行コマンドの発行
08022 }
08023
08024 //外部コマンド実行
08025 //  Sept. 20, 2000 JEPRO  名称CMMANDをCOMMANDに変更
08026 //  Oct. 9, 2001   genta  マクロ対応のため引数追加
08027 //  2002.2.2       YAZAKI ダイアログ呼び出し部とコマンド実行部を分離
08028 //void CEditView::Command_EXECCOMMAND( const char *cmd_string )
08029 void CViewCommander::Command_EXECCOMMAND( LPCWSTR cmd_string, const int nFlgOpt)    //  2006.12.03 maru 引数の拡張
08030 {
08031     //  From Here Aug. 21, 2001 genta
08032     //  パラメータ置換 (超暫定)
08033     const int bufmax = 1024;
08034     wchar_t buf[bufmax + 1];
08035     GetDocument()->ExpandParameter(cmd_string, buf, bufmax);
08036
08037     // 子プロセスの標準出力をリダイレクトする
08038     //ExecCmd( buf, GetShareData()->m_bGetStdout ); //  2006.12.03 maru マクロからの呼び出しではオプションを保存させないため
08039     m_pCommanderView->ExecCmd( to_tchar(buf), nFlgOpt );
08040     //  To Here Aug. 21, 2001 genta
08041     return;
08042 }
08043
08044
08045
08046
08047
08048
08049 //  Jun. 16, 2000 genta
08050 //  対括弧の検索
08051 void CViewCommander::Command_BRACKETPAIR( void )
08052 {
08053     CLayoutPoint ptColLine;
08054     //int nLine, nCol;
08055
08056     int mode = 3;
08057     /*
08058     bit0(in)  : 表示領域外を調べるか？ 0:調べない  1:調べる
08059     bit1(in)  : 前方文字を調べるか？   0:調べない  1:調べる
08060     bit2(out) : 見つかった位置         0:後ろ      1:前
08061     */
08062     if( m_pCommanderView->SearchBracket( GetCaret().GetCaretLayoutPos(), &ptColLine, &mode ) ){ // 02/09/18 ai
08063         //  2005.06.24 Moca
08064         //  2006.07.09 genta 表示更新漏れ：新規関数にて対応
08065         m_pCommanderView->MoveCursorSelecting( ptColLine, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
08066     }
08067     else{
08068         //  失敗した場合は nCol/nLineには有効な値が入っていない.
08069         //  何もしない
08070     }
08071 }
08072
08073
08074 //  現在位置を移動履歴に登録する
08075 void CViewCommander::Command_JUMPHIST_SET( void )
08076 {
08077     m_pCommanderView->AddCurrentLineToHistory();
08078 }
08079
08080
08081 //  From HERE Sep. 8, 2000 genta
08082 //  移動履歴を前へたどる
08083 //
08084 void CViewCommander::Command_JUMPHIST_PREV( void )
08085 {
08086     // 2001.12.13 hor
08087     // 移動履歴の最後に現在の位置を記憶する
08088     // ( 次の履歴が取得できないときは追加して戻る )
08089     if( !m_pCommanderView->m_cHistory->CheckNext() ){
08090         m_pCommanderView->AddCurrentLineToHistory();
08091         m_pCommanderView->m_cHistory->PrevValid();
08092     }
08093
08094     if( m_pCommanderView->m_cHistory->CheckPrev() ){
08095         if( ! m_pCommanderView->m_cHistory->PrevValid() ){
08096             ::MessageBox( NULL, _T("Inconsistent Implementation"), _T("PrevValid"), MB_OK );
08097         }
08098         CLayoutPoint pt;
08099         GetDocument()->m_cLayoutMgr.LogicToLayout(
08100             CLogicPoint(m_pCommanderView->m_cHistory->GetCurrent().GetPos(), m_pCommanderView->m_cHistory->GetCurrent().GetLine()),
08101             &pt
08102         );
08103         //  2006.07.09 genta 選択を考慮
08104         m_pCommanderView->MoveCursorSelecting( pt, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
08105     }
08106 }
08107
08108 //  移動履歴を次へたどる
08109 void CViewCommander::Command_JUMPHIST_NEXT( void )
08110 {
08111     if( m_pCommanderView->m_cHistory->CheckNext() ){
08112         if( ! m_pCommanderView->m_cHistory->NextValid() ){
08113             ::MessageBox( NULL, _T("Inconsistent Implementation"), _T("NextValid"), MB_OK );
08114         }
08115
08116         CLayoutPoint pt;
08117         GetDocument()->m_cLayoutMgr.LogicToLayout(
08118             CLogicPoint(m_pCommanderView->m_cHistory->GetCurrent().GetPos(), m_pCommanderView->m_cHistory->GetCurrent().GetLine()),
08119             &pt );
08120
08121         //  2006.07.09 genta 選択を考慮
08122         m_pCommanderView->MoveCursorSelecting( pt, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
08123     }
08124 }
08125 //  To HERE Sep. 8, 2000 genta
08126
08127 /* 次のグループ */            // 2007.06.20 ryoji
08128 void CViewCommander::Command_NEXTGROUP( void )
08129 {
08130     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08131     if( pcTabWnd->GetHwnd() == NULL )
08132         return;
08133     pcTabWnd->NextGroup();
08134 }
08135
08136 /* 前のグループ */            // 2007.06.20 ryoji
08137 void CViewCommander::Command_PREVGROUP( void )
08138 {
08139     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08140     if( pcTabWnd->GetHwnd() == NULL )
08141         return;
08142     pcTabWnd->PrevGroup();
08143 }
08144
08145 /* タブを右に移動 */     // 2007.06.20 ryoji
08146 void CViewCommander::Command_TAB_MOVERIGHT( void )
08147 {
08148     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08149     if( pcTabWnd->GetHwnd() == NULL )
08150         return;
08151     pcTabWnd->MoveRight();
08152 }
08153
08154 /* タブを左に移動 */     // 2007.06.20 ryoji
08155 void CViewCommander::Command_TAB_MOVELEFT( void )
08156 {
08157     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08158     if( pcTabWnd->GetHwnd() == NULL )
08159         return;
08160     pcTabWnd->MoveLeft();
08161 }
08162
08163 /* 新規グループ */            // 2007.06.20 ryoji
08164 void CViewCommander::Command_TAB_SEPARATE( void )
08165 {
08166     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08167     if( pcTabWnd->GetHwnd() == NULL )
08168         return;
08169     pcTabWnd->Separate();
08170 }
08171
08172 /* 次のグループに移動 */   // 2007.06.20 ryoji
08173 void CViewCommander::Command_TAB_JOINTNEXT( void )
08174 {
08175     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08176     if( pcTabWnd->GetHwnd() == NULL )
08177         return;
08178     pcTabWnd->JoinNext();
08179 }
08180
08181 /* 前のグループに移動 */   // 2007.06.20 ryoji
08182 void CViewCommander::Command_TAB_JOINTPREV( void )
08183 {
08184     CTabWnd* pcTabWnd = &GetDocument()->m_pcEditWnd->m_cTabWnd;
08185     if( pcTabWnd->GetHwnd() == NULL )
08186         return;
08187     pcTabWnd->JoinPrev();
08188 }
08189
08190
08191
08210 BOOL CViewCommander::Command_PUTFILE( LPCWSTR filename, ECodeType nCharCode, int nFlgOpt )
08211 {
08212     BOOL    bResult = TRUE;
08213     ECodeType       nSaveCharCode;
08214     nSaveCharCode = nCharCode;
08215     if(filename[0] == L'\0') {
08216         return FALSE;
08217     }
08218
08219     if(nSaveCharCode == CODE_AUTODETECT) nSaveCharCode = GetDocument()->m_nCharCode;
08220
08221     //  2007.09.08 genta CEditDoc::FileWrite()にならって砂時計カーソル
08222     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
08223
08224     if(nFlgOpt & 0x01)
08225     {   /* 選択範囲を出力 */
08226         try
08227         {
08228             CFileWrite cfw(to_tchar(filename));
08229             if ( GetDocument()->m_bBomExist) {
08230                 switch( nSaveCharCode ){
08231                 case CODE_UNICODE:
08232                     cfw.Write("\xff\xfe",sizeof(char)*2);
08233                     break;
08234                 case CODE_UNICODEBE:
08235                     cfw.Write( "\xfe\xff", sizeof(char) * 2 );
08236                     break;
08237                 case CODE_UTF8: // 2003.05.04 Moca BOMの間違いを訂正
08238                     cfw.Write( "\xef\xbb\xbf", sizeof(char) * 3 );
08239                     break;
08240                 default:
08241                     //  genta ここに来るのはバグだ
08242                     //  2007.09.08 genta 追加
08243 					::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, _T("作者に教えて欲しいエラー"),
08244                     _T("CEditView::Command_PUTFILE/BOM Error\nSaveCharCode=%d"), nSaveCharCode );
08245                     ;
08246                 }
08247             }
08248
08249             // 選択範囲の取得 -> cMem
08250             CNativeW cMem;
08251             m_pCommanderView->GetSelectedData(&cMem, FALSE, NULL, FALSE, FALSE);
08252
08253             // 書き込み時のコード変換 -> cDst
08254             CMemory cDst;
08255             CCodeBase* pCode = CCodeFactory::CreateCodeBase(nSaveCharCode,0);
08256             pCode->UnicodeToCode(&cMem, &cDst);
08257             delete pCode;
08258
08259             /*
08260             switch( nSaveCharCode ){
08261                 case CODE_UNICODE:  cMem.SJISToUnicode();break; // SJIS→Unicodeコード変換
08262                 case CODE_UTF8:     cMem.SJISToUTF8();break;    // SJIS→UTF-8コード変換
08263                 case CODE_UTF7:     cMem.SJISToUTF7();break;    // SJIS→UTF-7コード変換
08264                 case CODE_EUC:      cMem.SJISToEUC();break;     // SJIS→EUCコード変換
08265                 case CODE_JIS:      cMem.SJIStoJIS();break;     // SJIS→JISコード変換
08266                 case CODE_UNICODEBE:    cMem.SJISToUnicodeBE();break;   // SJIS→UnicodeBEコード変換
08267                 case CODE_SJIS:     // NO BREAK
08268                 default:            break;
08269             }
08270             */
08271             if( 0 < cDst.GetRawLength() ) cfw.Write(cDst.GetRawPtr(),cDst.GetRawLength());
08272         }
08273         catch(CError_FileOpen)
08274         {
08275             WarningMessage(
08276                 NULL,
08277                 _T("\'%ls\'\nファイルを保存できません。\n")
08278                 _T("パスが存在しないか、他のアプリケーションで使用されている可能性があります。"),
08279                 filename
08280             );
08281             bResult = FALSE;
08282         }
08283         catch(CError_FileWrite)
08284         {
08285             WarningMessage(
08286                 NULL,
08287                 _T("ファイルの書き込み中にエラーが発生しました。")
08288             );
08289             bResult = FALSE;
08290         }
08291     }
08292     else {  /* ファイル全体を出力 */
08293         FILETIME    filetime;
08294         HWND        hwndProgress;
08295         CEditWnd*   pCEditWnd = GetDocument()->m_pcEditWnd;
08296
08297         if( NULL != pCEditWnd ){
08298             hwndProgress = pCEditWnd->m_cStatusBar.GetProgressHwnd();
08299         }else{
08300             hwndProgress = NULL;
08301         }
08302         if( NULL != hwndProgress ){
08303             ::ShowWindow( hwndProgress, SW_SHOW );
08304         }
08305
08306         // 一時ファイル出力
08307         EConvertResult eRet = GetDocument()->m_cDocLineMgr.WriteFile(
08308             to_tchar(filename),
08309             GetDocument()->GetSplitterHwnd(),
08310             hwndProgress,
08311             nSaveCharCode,
08312             &filetime,
08313             EOL_NONE,
08314             GetDocument()->m_bBomExist
08315         );
08316         bResult = (eRet != RESULT_FAILURE);
08317
08318         if(hwndProgress) ::ShowWindow( hwndProgress, SW_HIDE );
08319     }
08320     return bResult;
08321 }
08322
08339 BOOL CViewCommander::Command_INSFILE( LPCWSTR filename, ECodeType nCharCode, int nFlgOpt )
08340 {
08341     CFileLoad   cfl;
08342     CEOL cEol;
08343     int         nLineLen;
08344     int         nLineNum = 0;
08345
08346     CDlgCancel* pcDlgCancel = NULL;
08347     HWND        hwndCancel = NULL;
08348     HWND        hwndProgress = NULL;
08349     BOOL        bResult = TRUE;
08350
08351     if(filename[0] == L'\0') {
08352         return FALSE;
08353     }
08354
08355     //  2007.09.08 genta CEditDoc::FileRead()にならって砂時計カーソル
08356     CWaitCursor cWaitCursor( m_pCommanderView->GetHwnd() );
08357
08358     // 範囲選択中なら挿入後も選択状態にするため /* 2007.04.29 maru */
08359     BOOL    bBeforeTextSelected = m_pCommanderView->GetSelectionInfo().IsTextSelected();
08360     CLayoutPoint ptFrom;
08361     /*
08362     int nLineFrom, nColmFrom;
08363     */
08364     if (bBeforeTextSelected){
08365         ptFrom = m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom();
08366         /*
08367         nLineFrom = m_nSelectLineFrom;
08368         nColmFrom = m_nSelectColmFrom;
08369         */
08370     }
08371
08372
08373     ECodeType   nSaveCharCode = nCharCode;
08374     if(nSaveCharCode == CODE_AUTODETECT) {
08375         FileInfo        fi;
08376         CMRU            cMRU;
08377         if ( cMRU.GetFileInfo( to_tchar(filename), &fi ) ){
08378                 nSaveCharCode = fi.m_nCharCode;
08379         } else {
08380             nSaveCharCode = GetDocument()->m_nCharCode;
08381         }
08382     }
08383
08384     /* ここまできて文字コードが決定しないならどこかおかしい */
08385     if( 0 > nSaveCharCode || nSaveCharCode > CODE_CODEMAX ) nSaveCharCode = CODE_SJIS;
08386
08387     try{
08388         // ファイルを開く
08389         cfl.FileOpen( to_tchar(filename), nSaveCharCode, NULL );
08390
08391         /* ファイルサイズが65KBを越えたら進捗ダイアログ表示 */
08392         if ( 0x10000 < cfl.GetFileSize() ) {
08393             pcDlgCancel = new CDlgCancel;
08394             if( NULL != ( hwndCancel = pcDlgCancel->DoModeless( ::GetModuleHandle( NULL ), NULL, IDD_OPERATIONRUNNING ) ) ){
08395                 hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS );
08396                 ::SendMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100) );
08397                 ::SendMessage( hwndProgress, PBM_SETPOS, 0, 0 );
08398             }
08399         }
08400
08401         // ReadLineはファイルから 文字コード変換された1行を読み出します
08402         // エラー時はthrow CError_FileRead を投げます
08403         CNativeW cBuf;
08404         const wchar_t*  pLine;
08405         while( NULL != ( pLine = cfl.ReadLine( &cBuf, &nLineLen, &cEol ) ) ){
08406             ++nLineNum;
08407             Command_INSTEXT(false, pLine, CLogicInt(nLineLen), true);
08408
08409             /* 進捗ダイアログ有無 */
08410             if( NULL == pcDlgCancel ){
08411                 continue;
08412             }
08413             /* 処理中のユーザー操作を可能にする */
08414             if( !::BlockingHook( pcDlgCancel->GetHwnd() ) ){
08415                 break;
08416             }
08417             /* 中断ボタン押下チェック */
08418             if( pcDlgCancel->IsCanceled() ){
08419                 break;
08420             }
08421             if( 0 == ( nLineNum & 0xFF ) ){
08422                 ::PostMessage( hwndProgress, PBM_SETPOS, cfl.GetPercent(), 0 );
08423                 m_pCommanderView->Redraw();
08424             }
08425         }
08426         // ファイルを明示的に閉じるが、ここで閉じないときはデストラクタで閉じている
08427         cfl.FileClose();
08428     } // try
08429     catch( CError_FileOpen ){
08430         WarningMessage( NULL, _T("file open error [%ls]"), filename );
08431         bResult = FALSE;
08432     }
08433     catch( CError_FileRead ){
08434         WarningMessage( NULL, _T("ファイルの読み込み中にエラーが発生しました。") );
08435         bResult = FALSE;
08436     } // 例外処理終わり
08437
08438     if( NULL != pcDlgCancel ){
08439         delete pcDlgCancel;
08440     }
08441     if (bBeforeTextSelected){   // 挿入された部分を選択状態に
08442         m_pCommanderView->GetSelectionInfo().SetSelectArea(
08443             CLayoutRange(
08444                 ptFrom,
08445                 /*
08446                 nLineFrom, nColmFrom,
08447                 */
08448                 GetCaret().GetCaretLayoutPos()
08449                 /*
08450                 m_nCaretPosY, m_nCaretPosX
08451                 */
08452             )
08453         );
08454         m_pCommanderView->GetSelectionInfo().DrawSelectArea();
08455     }
08456     m_pCommanderView->Redraw();
08457     return bResult;
08458 }
08459
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander.h

sakura_core

CViewCommander.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CViewCommander

Sakura-Editorに対してSat Nov 17 20:27:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander.h ソースファイル

sakura_core

CViewCommander.h

説明を見る。
00001 #pragma once
00002
00003 class CEditView;
00004 enum EFunctionCode;
00005 class CEditDoc;
00006 struct DLLSHAREDATA;
00007 class COpeBlk;
00008 class CCaret;
00009 class CEditWnd;
00010
00011 class CViewCommander{
00012 public:
00013     CViewCommander(CEditView* pEditView) : m_pCommanderView(pEditView)
00014     {
00015         m_bPrevCommand = 0;
00016     }
00017
00018 public:
00019     //外部依存
00020     CEditDoc* GetDocument();
00021     CEditWnd* GetEditWindow();
00022     DLLSHAREDATA* GetShareData();
00023     HWND GetMainWindow();
00024     HINSTANCE GetInstance();
00025     COpeBlk* GetOpeBlk();
00026     void ClearOpeBlk();
00027     void SetOpeBlk(COpeBlk* p);
00028     CLayoutRange& GetSelect();
00029     CCaret& GetCaret();
00030
00031 private:
00032     CEditView*      m_pCommanderView;
00033
00034 public:
00035     /* キーリピート状態 */
00036     int             m_bPrevCommand;
00037
00038
00039
00040     // -- -- -- -- 以下、コマンド処理関数群 -- -- -- -- //
00041 public:
00042     BOOL HandleCommand(
00043         EFunctionCode   nCommand,
00044         bool            bRedraw,
00045         LPARAM          lparam1,
00046         LPARAM          lparam2,
00047         LPARAM          lparam3,
00048         LPARAM          lparam4
00049     );
00050
00051     /* ファイル操作系 */
00052     void Command_FILENEW( void );               /* 新規作成 */
00053     /* ファイルを開く */
00054     // Oct. 2, 2001 genta マクロ用に機能拡張
00055     // Mar. 30, 2003 genta 引数追加
00056     void Command_FILEOPEN( const WCHAR *filename = NULL,
00057         ECodeType nCharCode = CODE_AUTODETECT, BOOL bReadOnly = FALSE );
00058
00059     /* 上書き保存 */ // Feb. 28, 2004 genta 引数追加, Jan. 24, 2005 genta 引数追加
00060     BOOL Command_FILESAVE( bool warnbeep = true, bool askname = true );
00061     BOOL Command_FILESAVEAS_DIALOG();           /* 名前を付けて保存 */
00062     BOOL Command_FILESAVEAS( const WCHAR* filename );           /* 名前を付けて保存 */
00063     BOOL Command_FILESAVEALL( void );   /* 全て上書き保存 */ // Jan. 23, 2005 genta
00064     void Command_FILECLOSE( void );             /* 開じて(無題) */ //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00065     /* 閉じて開く*/
00066     // Mar. 30, 2003 genta 引数追加
00067     void Command_FILECLOSE_OPEN( LPCWSTR filename = NULL,
00068         ECodeType nCharCode = CODE_AUTODETECT, BOOL bReadOnly = FALSE );
00069
00070     void Command_FILE_REOPEN( ECodeType nCharCode, bool bNoConfirm );       /* 再オープン */   //Dec. 4, 2002 genta 引数追加
00071
00072     void Command_PRINT( void );                 /* 印刷*/
00073     void Command_PRINT_PREVIEW( void );         /* 印刷プレビュー*/
00074     void Command_PRINT_PAGESETUP( void );       /* 印刷ページ設定 */ //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00075     BOOL Command_OPEN_HfromtoC( BOOL );         /* 同名のC/C++ヘッダ(ソース)を開く */   //Feb. 7, 2001 JEPRO 追加
00076     BOOL Command_OPEN_HHPP( BOOL bCheckOnly, BOOL bBeepWhenMiss );              /* 同名のC/C++ヘッダファイルを開く */  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00077     BOOL Command_OPEN_CCPP( BOOL bCheckOnly, BOOL bBeepWhenMiss );              /* 同名のC/C++ソースファイルを開く */  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00078     void Command_ACTIVATE_SQLPLUS( void );      /* Oracle SQL*Plusをアクティブ表示 */
00079     void Command_PLSQL_COMPILE_ON_SQLPLUS( void );/* Oracle SQL*Plusで実行 */
00080     void Command_BROWSE( void );                /* ブラウズ */
00081     void Command_READONLY( void );              /* 読み取り専用 */
00082     void Command_PROPERTY_FILE( void );         /* ファイルのプロパティ */
00083     void Command_EXITALLEDITORS( void );        /* 編集の全終了 */    // 2007.02.13 ryoji 追加
00084     void Command_EXITALL( void );               /* サクラエディタの全終了 */ //Dec. 27, 2000 JEPRO 追加
00085     BOOL Command_PUTFILE( LPCWSTR, ECodeType, int );    /* 作業中ファイルの一時出力 maru 2006.12.10 */
00086     BOOL Command_INSFILE( LPCWSTR, ECodeType, int );    /* キャレット位置にファイル挿入 maru 2006.12.10 */
00087
00088     /* 編集系 */
00089     void Command_WCHAR( wchar_t );          /* 文字入力 */ //2007.09.02 kobake Command_CHAR(char)→Command_WCHAR(wchar_t)に変更
00090     void Command_IME_CHAR( WORD );          /* 全角文字入力 */
00091     void Command_UNDO( void );              /* 元に戻す(Undo) */
00092     void Command_REDO( void );              /* やり直し(Redo) */
00093     void Command_DELETE( void );            /* カーソル位置または選択エリアを削除 */
00094     void Command_DELETE_BACK( void );       /* カーソル前を削除 */
00095     void Command_WordDeleteToStart( void ); /* 単語の左端まで削除 */
00096     void Command_WordDeleteToEnd( void );   /* 単語の右端まで削除 */
00097     void Command_WordCut( void );           /* 単語切り取り */
00098     void Command_WordDelete( void );        /* 単語削除 */
00099     void Command_LineCutToStart( void );    //行頭まで切り取り(改行単位)
00100     void Command_LineCutToEnd( void );      //行末まで切り取り(改行単位)
00101     void Command_LineDeleteToStart( void ); /* 行頭まで削除(改行単位) */
00102     void Command_LineDeleteToEnd( void );   //行末まで削除(改行単位)
00103     void Command_CUT_LINE( void );          /* 行切り取り(折り返し単位) */
00104     void Command_DELETE_LINE( void );       /* 行削除(折り返し単位) */
00105     void Command_DUPLICATELINE( void );     /* 行の二重化(折り返し単位) */
00106     void Command_INDENT( wchar_t cChar );       /* インデント ver 1 */
00107 // From Here 2001.12.03 hor
00108 //  void Command_INDENT( const char*, int );/* インデント ver0 */
00109     void Command_INDENT( const wchar_t*, CLogicInt ,BOOL=FALSE );/* インデント ver0 */
00110     void Command_INDENT_TAB( void );        /* インデント ver 2 */
00111 // To Here 2001.12.03 hor
00112     void Command_UNINDENT( wchar_t wcChar );    /* 逆インデント */
00113 //  void Command_WORDSREFERENCE( void );    /* 単語リファレンス */
00114     void Command_TRIM(BOOL);                // 2001.12.03 hor
00115     void Command_SORT(BOOL);                // 2001.12.06 hor
00116     void Command_MERGE(void);               // 2001.12.06 hor
00117     void Command_Reconvert(void);           /* メニューからの再変換対応 minfu 2002.04.09 */
00118     void Command_CtrlCode_Dialog(void);     /* コントロールコードの入力(ダイアログ) */ //@@@ 2002.06.02 MIK
00119
00120
00121     /* カーソル移動系 */
00122     //  Oct. 24, 2001 genta 機能拡張のため引数追加
00123     int Command_UP( bool bSelect, bool bRepeat, int line = 0 );         /* カーソル上移動 */
00124     int Command_DOWN( bool bSelect, bool bRepeat );         /* カーソル下移動 */
00125     int  Command_LEFT( bool, bool );            /* カーソル左移動 */
00126     void Command_RIGHT( bool bSelect, bool bIgnoreCurrentSelection, bool bRepeat ); /* カーソル右移動 */
00127     void Command_UP2( bool bSelect );               /* カーソル上移動（２行づつ） */
00128     void Command_DOWN2( bool bSelect );             /* カーソル下移動（２行づつ） */
00129     void Command_WORDLEFT( bool bSelect );          /* 単語の左端に移動 */
00130     void Command_WORDRIGHT( bool bSelect );         /* 単語の右端に移動 */
00131     //  Oct. 29, 2001 genta マクロ向け機能拡張
00132     void Command_GOLINETOP( bool bSelect, int lparam ); /* 行頭に移動（折り返し単位） */
00133     void Command_GOLINEEND( bool bSelect, int );        /* 行末に移動（折り返し単位） */
00134 //  void Command_ROLLDOWN( int );           /* スクロールダウン */
00135 //  void Command_ROLLUP( int );             /* スクロールアップ */
00136     void Command_HalfPageUp( bool bSelect );            //半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00137     void Command_HalfPageDown( bool bSelect );      //半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00138     void Command_1PageUp( bool bSelect );           //１ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00139     void Command_1PageDown( bool bSelect );         //１ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00140     void Command_GOFILETOP( bool bSelect );         /* ファイルの先頭に移動 */
00141     void Command_GOFILEEND( bool bSelect );         /* ファイルの最後に移動 */
00142     void Command_CURLINECENTER( void );     /* カーソル行をウィンドウ中央へ */
00143     void Command_JUMPHIST_PREV(void);       // 移動履歴: 前へ
00144     void Command_JUMPHIST_NEXT(void);       // 移動履歴: 次へ
00145     void Command_JUMPHIST_SET(void);        // 現在位置を移動履歴に登録
00146     void Command_WndScrollDown(void);       // テキストを１行下へスクロール   // 2001/06/20 asa-o
00147     void Command_WndScrollUp(void);         // テキストを１行上へスクロール   // 2001/06/20 asa-o
00148     void Command_GONEXTPARAGRAPH( bool bSelect );   // 次の段落へ進む
00149     void Command_GOPREVPARAGRAPH( bool bSelect );   // 前の段落へ戻る
00150
00151     /* 選択系 */
00152     bool Command_SELECTWORD( void );        /* 現在位置の単語選択 */
00153     void Command_SELECTALL( void );         /* すべて選択 */
00154     void Command_BEGIN_SELECT( void );      /* 範囲選択開始 */
00155
00156     /* 矩形選択系 */
00157 //  void Command_BOXSELECTALL( void );      /* 矩形ですべて選択 */
00158     void Command_BEGIN_BOXSELECT( void );   /* 矩形範囲選択開始 */
00159     int Command_UP_BOX( BOOL );             /* (矩形選択)カーソル上移動 */
00160
00161     /* クリップボード系 */
00162     void Command_CUT( void );                       /* 切り取り（選択範囲をクリップボードにコピーして削除）*/
00163     void Command_COPY( bool, bool bAddCRLFWhenCopy, enumEOLType neweol = EOL_UNKNOWN );/* コピー(選択範囲をクリップボードにコピー) */
00164     void Command_PASTE( void );                     /* 貼り付け（クリップボードから貼り付け）*/
00165     void Command_PASTEBOX( void );                  /* 矩形貼り付け（クリップボードから矩形貼り付け）*/
00166     //<< 2002/03/29 Azumaiya
00167     /* 矩形貼り付け（引数渡しでの張り付け）*/
00168     void Command_PASTEBOX( const wchar_t *szPaste, int nPasteSize );
00169     //>> 2002/03/29 Azumaiya
00170 //  void Command_INSTEXT( BOOL, const char*, int ); /* テキストを貼り付け ver0 */
00171     //void Command_INSTEXT( BOOL, const char*, BOOL );/* テキストを貼り付け ver1 */
00172     void Command_INSTEXT( bool bRedraw, const wchar_t*, CLogicInt, bool bNoWaitCursor ); // 2004.05.14 Moca テキストを貼り付け '\0'対応
00173     void Command_ADDTAIL( const wchar_t* pszData, int nDataLen);    /* 最後にテキストを追加 */
00174     void Command_COPYFILENAME( void );              /* このファイル名をクリップボードにコピー */ //2002/2/3 aroka
00175     void Command_COPYPATH( void );                  /* このファイルのパス名をクリップボードにコピー */
00176     void Command_COPYTAG( void );                   /* このファイルのパス名とカーソル位置をコピー */
00177     void Command_COPYLINES( void );                 /* 選択範囲内全行コピー */
00178     void Command_COPYLINESASPASSAGE( void );        /* 選択範囲内全行引用符付きコピー */
00179     void Command_COPYLINESWITHLINENUMBER( void );   /* 選択範囲内全行行番号付きコピー */
00180     void Command_CREATEKEYBINDLIST( void );         // キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO  Command_の作り方がわからないので殺してある
00181
00182
00183     /* 挿入系 */
00184     void Command_INS_DATE( void );  //日付挿入
00185     void Command_INS_TIME( void );  //時刻挿入
00186
00187     /* 変換系 */
00188     void Command_TOLOWER( void );               /* 小文字 */
00189     void Command_TOUPPER( void );               /* 大文字 */
00190     void Command_TOZENKAKUKATA( void );         /* 半角＋全ひら→全角・カタカナ */    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00191     void Command_TOZENKAKUHIRA( void );         /* 半角＋全カタ→全角・ひらがな */    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00192     void Command_TOHANKAKU( void );             /* 全角→半角 */
00193     void Command_TOHANKATA( void );             /* 全角カタカナ→半角カタカナ */   //Aug. 29, 2002 ai
00194     void Command_TOZENEI( void );               /* 半角英数→全角英数 */ //July. 30, 2001 Misaka
00195     void Command_TOHANEI( void );               /* 全角英数→半角英数 */ //@@@ 2002.2.11 YAZAKI
00196     void Command_HANKATATOZENKAKUKATA( void );  /* 半角カタカナ→全角カタカナ */
00197     void Command_HANKATATOZENKAKUHIRA( void );  /* 半角カタカナ→全角ひらがな */
00198     void Command_TABTOSPACE( void );            /* TAB→空白 */
00199     void Command_SPACETOTAB( void );            /* 空白→TAB */  //---- Stonee, 2001/05/27
00200     void Command_CODECNV_AUTO2SJIS( void );     /* 自動判別→SJISコード変換 */
00201     void Command_CODECNV_EMAIL( void );         /* E-Mail(JIS→SJIS)コード変換 */
00202     void Command_CODECNV_EUC2SJIS( void );      /* EUC→SJISコード変換 */
00203     void Command_CODECNV_UNICODE2SJIS( void );  /* Unicode→SJISコード変換 */
00204     void Command_CODECNV_UNICODEBE2SJIS( void );    /* UnicodeBE→SJISコード変換 */
00205     void Command_CODECNV_UTF82SJIS( void );     /* UTF-8→SJISコード変換 */
00206     void Command_CODECNV_UTF72SJIS( void );     /* UTF-7→SJISコード変換 */
00207     void Command_CODECNV_SJIS2JIS( void );      /* SJIS→JISコード変換 */
00208     void Command_CODECNV_SJIS2EUC( void );      /* SJIS→EUCコード変換 */
00209     void Command_CODECNV_SJIS2UTF8( void );     /* SJIS→UTF-8コード変換 */
00210     void Command_CODECNV_SJIS2UTF7( void );     /* SJIS→UTF-7コード変換 */
00211     void Command_BASE64DECODE( void );          /* Base64デコードして保存 */
00212     void Command_UUDECODE( void );              /* uudecodeして保存 */  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00213
00214     /* 検索系 */
00215     void Command_SEARCH_BOX( void );                    /* 検索(ボックス) */  // 2006.06.04 yukihane
00216     void Command_SEARCH_DIALOG( void );                 /* 検索(単語検索ダイアログ) */
00217     void Command_SEARCH_NEXT( bool, bool, HWND, const WCHAR* );/* 次を検索 */
00218     void Command_SEARCH_PREV( bool bRedraw, HWND );             /* 前を検索 */
00219     void Command_REPLACE_DIALOG( void );                /* 置換(置換ダイアログ) */
00220     void Command_REPLACE( HWND hwndParent );            /* 置換(実行) 2002/04/08 YAZAKI 親ウィンドウを指定するように変更 */
00221     void Command_REPLACE_ALL();                         /* すべて置換(実行) */
00222     void Command_SEARCH_CLEARMARK( void );              /* 検索マークのクリア */
00223     void Command_JUMP_SRCHSTARTPOS( void );             /* 検索開始位置へ戻る */   // 02/06/26 ai
00224
00225
00226     void Command_GREP_DIALOG( void );                   /* Grepダイアログの表示 */
00227     void Command_GREP( void );                          /* Grep */
00228     void Command_JUMP_DIALOG( void );                   /* 指定行ヘジャンプダイアログの表示 */
00229     void Command_JUMP( void );                          /* 指定行ヘジャンプ */
00230 // From Here 2001.12.03 hor
00231     BOOL Command_FUNCLIST( int nAction, int nOutlineType = OUTLINE_DEFAULT );   /* アウトライン解析 */ // 20060201 aroka
00232 // To Here 2001.12.03 hor
00233     // Apr. 03, 2003 genta 引数追加
00234     bool Command_TAGJUMP( bool bClose = false );        /* タグジャンプ機能 */
00235     void Command_TAGJUMPBACK( void );                   /* タグジャンプバック機能 */
00236     bool Command_TagJumpByTagsFile( void );             //ダイレクトタグジャンプ //@@@ 2003.04.13 MIK
00237
00238     bool Command_TagsMake( void );                      //タグファイルの作成   //@@@ 2003.04.13 MIK
00239     bool Command_TagJumpByTagsFileKeyword( const wchar_t* keyword );    //  @@ 2005.03.31 MIK
00240     void Command_COMPARE( void );                       /* ファイル内容比較 */
00241     void Command_Diff_Dialog( void );                   /* DIFF差分表示ダイアログ */   //@@@ 2002.05.25 MIK
00242     void Command_Diff( const WCHAR* szTmpFile2, int nFlgOpt );  /* DIFF差分表示 */  //@@@ 2002.05.25 MIK    // 2005.10.03 maru
00243     void Command_Diff_Next( void );                     /* 次の差分へ */   //@@@ 2002.05.25 MIK
00244     void Command_Diff_Prev( void );                     /* 前の差分へ */   //@@@ 2002.05.25 MIK
00245     void Command_Diff_Reset( void );                    /* 差分の全解除 */    //@@@ 2002.05.25 MIK
00246     void Command_BRACKETPAIR( void );                   /* 対括弧の検索 */
00247 // From Here 2001.12.03 hor
00248     void Command_BOOKMARK_SET( void );                  /* ブックマーク設定・解除 */
00249     void Command_BOOKMARK_NEXT( void );                 /* 次のブックマークへ */
00250     void Command_BOOKMARK_PREV( void );                 /* 前のブックマークへ */
00251     void Command_BOOKMARK_RESET( void );                /* ブックマークの全解除 */
00252 // To Here 2001.12.03 hor
00253     void Command_BOOKMARK_PATTERN( void );              // 2002.01.16 hor 指定パターンに一致する行をマーク
00254
00255
00256
00257     /* モード切り替え系 */
00258     void Command_CHGMOD_INS( void );    /* 挿入／上書きモード切り替え */
00259     void Command_CHGMOD_EOL( enumEOLType ); /* 入力する改行コードを設定 2003.06.23 moca */
00260     void Command_CANCEL_MODE( void );   /* 各種モードの取り消し */
00261
00262     /* 設定系 */
00263     void Command_SHOWTOOLBAR( void );       /* ツールバーの表示/非表示 */
00264     void Command_SHOWFUNCKEY( void );       /* ファンクションキーの表示/非表示 */
00265     void Command_SHOWTAB( void );           /* タブの表示/非表示 */ //@@@ 2003.06.10 MIK
00266     void Command_SHOWSTATUSBAR( void );     /* ステータスバーの表示/非表示 */
00267     void Command_TYPE_LIST( void );         /* タイプ別設定一覧 */
00268     void Command_OPTION_TYPE( void );       /* タイプ別設定 */
00269     void Command_OPTION( void );            /* 共通設定 */
00270     void Command_FONT( void );              /* フォント設定 */
00271     void Command_WRAPWINDOWWIDTH( void );   /* 現在のウィンドウ幅で折り返し */    //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00272     void Command_Favorite( void );  //履歴の管理   //@@@ 2003.04.08 MIK
00273     void Command_SET_QUOTESTRING( const wchar_t* ); //  Jan. 29, 2005 genta 引用符の設定
00274
00275     /* マクロ系 */
00276     void Command_RECKEYMACRO( void );   /* キーマクロの記録開始／終了 */
00277     void Command_SAVEKEYMACRO( void );  /* キーマクロの保存 */
00278     void Command_LOADKEYMACRO( void );  /* キーマクロの読み込み */
00279     void Command_EXECKEYMACRO( void );  /* キーマクロの実行 */
00280 //  From Here 2006.12.03 maru 引数の拡張．
00281 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00282 //  void Command_EXECCMMAND( void );    /* 外部コマンド実行 */
00283     //  Oct. 9, 2001 genta マクロ対応のため機能拡張
00284 //  void Command_EXECCOMMAND_DIALOG( const WCHAR* cmd );    /* 外部コマンド実行ダイアログ表示 */
00285 //  void Command_EXECCOMMAND( const WCHAR* cmd );   /* 外部コマンド実行 */
00286     void Command_EXECCOMMAND_DIALOG( void );    /* 外部コマンド実行ダイアログ表示 */ //  引数使ってないみたいなので
00287     //  マクロからの呼び出しではオプションを保存させないため、Command_EXECCOMMAND_DIALOG内で処理しておく．
00288     void Command_EXECCOMMAND( LPCWSTR cmd, const int nFlgOpt ); /* 外部コマンド実行 */
00289 //  To Here Sept. 20, 2000
00290 //  To Here 2006.12.03 maru 引数の拡張
00291
00292     /* カスタムメニュー */
00293     void Command_MENU_RBUTTON( void );  /* 右クリックメニュー */
00294     int Command_CUSTMENU( int );        /* カスタムメニュー表示 */
00295
00296     /* ウィンドウ系 */
00297     void Command_SPLIT_V( void );       /* 上下に分割 */   //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00298     void Command_SPLIT_H( void );       /* 左右に分割 */   //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00299     void Command_SPLIT_VH( void );      /* 縦横に分割 */   //Sept. 17, 2000 jepro 説明に「に」を追加
00300     void Command_WINCLOSE( void );      /* ウィンドウを閉じる */
00301     void Command_FILECLOSEALL( void );  /* すべてのウィンドウを閉じる */   //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
00302     void Command_BIND_WINDOW( void );   /* 結合して表示 */    //2004.07.14 Kazika 新規追加
00303     void Command_CASCADE( void );       /* 重ねて表示 */
00304     void Command_TILE_V( void );        /* 上下に並べて表示 */
00305     void Command_TILE_H( void );        /* 左右に並べて表示 */
00306     void Command_MAXIMIZE_V( void );    /* 縦方向に最大化 */
00307     void Command_MAXIMIZE_H( void );    /* 横方向に最大化 */  //2001.02.10 by MIK
00308     void Command_MINIMIZE_ALL( void );  /* すべて最小化 */
00309     void Command_REDRAW( void );        /* 再描画 */
00310     void Command_WIN_OUTPUT( void );    //アウトプットウィンドウ表示
00311     void Command_TRACEOUT( const wchar_t* outputstr , int );    //マクロ用アウトプットウィンドウに表示 maru 2006.04.26
00312     void Command_WINTOPMOST( LPARAM );      // 常に手前に表示 2004.09.21 Moca
00313     void Command_WINLIST( int nCommandFrom );       /* ウィンドウ一覧ポップアップ表示処理 */   // 2006.03.23 fon // 2006.05.19 genta 引数追加
00314     void Command_GROUPCLOSE( void );    /* グループを閉じる */      // 2007.06.20 ryoji
00315     void Command_NEXTGROUP( void );     /* 次のグループ */            // 2007.06.20 ryoji
00316     void Command_PREVGROUP( void );     /* 前のグループ */            // 2007.06.20 ryoji
00317     void Command_TAB_MOVERIGHT( void ); /* タブを右に移動 */     // 2007.06.20 ryoji
00318     void Command_TAB_MOVELEFT( void );  /* タブを左に移動 */     // 2007.06.20 ryoji
00319     void Command_TAB_SEPARATE( void );  /* 新規グループ */            // 2007.06.20 ryoji
00320     void Command_TAB_JOINTNEXT( void ); /* 次のグループに移動 */   // 2007.06.20 ryoji
00321     void Command_TAB_JOINTPREV( void ); /* 前のグループに移動 */   // 2007.06.20 ryoji
00322
00323
00324     void Command_ToggleKeySearch( void );   /* キャレット位置の単語を辞書検索する機能ON-OFF */   // 2006.03.24 fon
00325
00326     void Command_HOKAN( void );         /* 入力補完 */
00327     void Command_HELP_CONTENTS( void ); /* ヘルプ目次 */           //Nov. 25, 2000 JEPRO added
00328     void Command_HELP_SEARCH( void );   /* ヘルプキーワード検索 */    //Nov. 25, 2000 JEPRO added
00329     void Command_MENU_ALLFUNC( void );  /* コマンド一覧 */
00330     void Command_EXTHELP1( void );      /* 外部ヘルプ１ */
00331     //  Jul. 5, 2002 genta
00332     void Command_EXTHTMLHELP( const WCHAR* helpfile = NULL, const WCHAR* kwd = NULL );  /* 外部HTMLヘルプ */
00333     void Command_ABOUT( void );         /* バージョン情報 */ //Dec. 24, 2000 JEPRO 追加
00334
00335     /* その他 */
00336 //@@@ 2002.01.14 YAZAKI 不使用のため
00337 //  void Command_SENDMAIL( void );      /* メール送信 */
00338
00339 };
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Diff.cpp

sakura_core

CViewCommander_Diff.cpp

#include "stdafx.h"
#include "CViewCommander.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CDlgDiff.h"
#include "CEditWnd.h"

CViewCommander_Diff.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Diff.cpp ソースファイル

sakura_core

CViewCommander_Diff.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewCommander.h"
00003 #include "CEditView.h"
00004 #include "CEditDoc.h"
00005 #include "CDlgDiff.h"
00006 #include "CEditWnd.h"
00007
00013 void CViewCommander::Command_Diff( const WCHAR* _szTmpFile2, int nFlgOpt )
00014 {
00015     const TCHAR* szTmpFile2 = to_tchar(_szTmpFile2);
00016
00017     bool    bTmpFile1 = false;
00018     TCHAR   szTmpFile1[_MAX_PATH * 2];
00019
00020     if( -1 == ::GetFileAttributes( szTmpFile2 ) )
00021     {
00022 		::MYMESSAGEBOX( m_pCommanderView->m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00023             _T("差分コマンド実行は失敗しました。\n\n比較するファイルが見つかりません。") );
00024         return;
00025     }
00026
00027     //自ファイル
00028     if (!GetDocument()->IsModified()) _tcscpy( szTmpFile1, GetDocument()->GetFilePath());
00029     else if (m_pCommanderView->MakeDiffTmpFile ( szTmpFile1, NULL )) bTmpFile1 = true;
00030     else return;
00031
00032     //差分表示
00033     m_pCommanderView->ViewDiffInfo(szTmpFile1, szTmpFile2, nFlgOpt);
00034
00035     //一時ファイルを削除する
00036     if( bTmpFile1 ) _tunlink( szTmpFile1 );
00037
00038     return;
00039
00040 }
00041
00049 void CViewCommander::Command_Diff_Dialog( void )
00050 {
00051     CDlgDiff    cDlgDiff;
00052     bool    bTmpFile1 = false, bTmpFile2 = false;
00053     TCHAR   szTmpFile1[_MAX_PATH * 2];
00054     TCHAR   szTmpFile2[_MAX_PATH * 2];
00055
00056     //DIFF差分表示ダイアログを表示する
00057     if( FALSE == cDlgDiff.DoModal( GetInstance(), m_pCommanderView->m_hWnd, (LPARAM)GetDocument(),
00058         GetDocument()->GetFilePath(),
00059         GetDocument()->IsModified() ) )
00060     {
00061         return;
00062     }
00063
00064     //自ファイル
00065     if (!GetDocument()->IsModified()) _tcscpy( szTmpFile1, GetDocument()->GetFilePath());
00066     else if (m_pCommanderView->MakeDiffTmpFile ( szTmpFile1, NULL )) bTmpFile1 = true;
00067     else return;
00068
00069     //相手ファイル
00070     if (!cDlgDiff.m_bIsModifiedDst ) _tcscpy( szTmpFile2, cDlgDiff.m_szFile2);
00071     else if (m_pCommanderView->MakeDiffTmpFile ( szTmpFile2, cDlgDiff.m_hWnd_Dst )) bTmpFile2 = true;
00072     else
00073     {
00074         if( bTmpFile1 ) _tunlink( szTmpFile1 );
00075         return;
00076     }
00077
00078     //差分表示
00079     m_pCommanderView->ViewDiffInfo(szTmpFile1, szTmpFile2, cDlgDiff.m_nDiffFlgOpt);
00080
00081
00082     //一時ファイルを削除する
00083     if( bTmpFile1 ) _tunlink( szTmpFile1 );
00084     if( bTmpFile2 ) _tunlink( szTmpFile2 );
00085
00086     return;
00087 }
00088
00089
00092 void CViewCommander::Command_Diff_Next( void )
00093 {
00094     BOOL        bFound = FALSE;
00095     BOOL        bRedo = TRUE;
00096
00097     CLogicPoint ptXY(0, GetCaret().GetCaretLogicPos().y);
00098     int         nYOld_Logic = ptXY.y;
00099     CLogicInt tmp_y;
00100
00101 re_do:;
00102     if( GetDocument()->m_cDocLineMgr.SearchDiffMark( ptXY.GetY2(), SEARCH_FORWARD, &tmp_y ) ){
00103         ptXY.y = tmp_y;
00104         bFound = TRUE;
00105         CLayoutPoint ptXY_Layout;
00106         GetDocument()->m_cLayoutMgr.LogicToLayout( ptXY, &ptXY_Layout );
00107         if( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
00108             if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ) m_pCommanderView->GetSelectionInfo().BeginSelectArea();
00109         }
00110         else{
00111             if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ) m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00112         }
00113
00114         GetCaret().MoveCursor( ptXY_Layout, TRUE );
00115         if( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
00116             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( ptXY_Layout );
00117         }
00118     }
00119
00120
00121     if( GetShareData()->m_Common.m_sSearch.m_bSearchAll ){
00122         // 見つからなかった。かつ、最初の検索
00123         if( !bFound && bRedo ){
00124             ptXY.y = 0 - 1; // 1個手前を指定
00125             bRedo = FALSE;
00126             goto re_do;     // 先頭から再検索
00127         }
00128     }
00129
00130     if( bFound ){
00131         if( nYOld_Logic >= ptXY.y ) m_pCommanderView->SendStatusMessage( _T("▼先頭から再検索しました") );
00132     }
00133     else{
00134         m_pCommanderView->SendStatusMessage( _T("▽見つかりませんでした") );
00135         if( GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND )  /* 見つからないときメッセージを表示 */
00136             InfoMessage( m_pCommanderView->m_hWnd, _T("後方(↓) に差分が見つかりません。") );
00137     }
00138
00139     return;
00140 }
00141
00142
00143
00146 void CViewCommander::Command_Diff_Prev( void )
00147 {
00148     BOOL        bFound = FALSE;
00149     BOOL        bRedo = TRUE;
00150
00151     CLogicPoint ptXY(0,GetCaret().GetCaretLogicPos().y);
00152     int         nYOld_Logic = ptXY.y;
00153     CLogicInt tmp_y;
00154
00155 re_do:;
00156     if( GetDocument()->m_cDocLineMgr.SearchDiffMark( ptXY.GetY2(), SEARCH_BACKWARD, &tmp_y) ){
00157         ptXY.y = tmp_y;
00158         bFound = TRUE;
00159         CLayoutPoint ptXY_Layout;
00160         GetDocument()->m_cLayoutMgr.LogicToLayout( ptXY, &ptXY_Layout );
00161         if( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
00162             if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ) m_pCommanderView->GetSelectionInfo().BeginSelectArea();
00163         }
00164         else{
00165             if( m_pCommanderView->GetSelectionInfo().IsTextSelected() ) m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00166         }
00167
00168         GetCaret().MoveCursor( ptXY_Layout, TRUE );
00169         if( m_pCommanderView->GetSelectionInfo().m_bSelectingLock ){
00170             m_pCommanderView->GetSelectionInfo().ChangeSelectAreaByCurrentCursor( ptXY_Layout );
00171         }
00172     }
00173
00174     if( GetShareData()->m_Common.m_sSearch.m_bSearchAll ){
00175         // 見つからなかった、かつ、最初の検索
00176         if( !bFound && bRedo ){
00177             ptXY.y = (CLogicInt)(Int)GetDocument()->m_cLayoutMgr.GetLineCount();    // 1個手前を指定 //$$ 単位混在
00178             bRedo = FALSE;
00179             goto re_do; // 末尾から再検索
00180         }
00181     }
00182
00183     if( bFound ){
00184         if( nYOld_Logic <= ptXY.y ) m_pCommanderView->SendStatusMessage( _T("▲末尾から再検索しました") );
00185     }
00186     else{
00187         m_pCommanderView->SendStatusMessage( _T("△見つかりませんでした") );
00188         if( GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND )  /* 見つからないときメッセージを表示 */
00189             InfoMessage( m_pCommanderView->m_hWnd, _T("前方(↑) に差分が見つかりません。") );
00190     }
00191
00192     return;
00193 }
00194
00199 void CViewCommander::Command_Diff_Reset( void )
00200 {
00201     GetDocument()->m_cDocLineMgr.ResetAllDiffMark();
00202
00203     //分割したビューも更新
00204     for( int v = 0; v < 4; ++v )
00205         if( GetEditWindow()->m_nActivePaneIndex != v )
00206             GetEditWindow()->m_pcEditViewArr[v]->Redraw();
00207     m_pCommanderView->Redraw();
00208     return;
00209 }
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Grep.cpp

sakura_core

CViewCommander_Grep.cpp

#include "stdafx.h"
#include "CViewCommander.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CControlTray.h"
#include "charcode.h"
#include "CEditWnd.h"

CViewCommander_Grep.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:00 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Grep.cpp ソースファイル

sakura_core

CViewCommander_Grep.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewCommander.h"
00003 #include "sakura_rc.h"
00004 #include "CEditView.h"
00005 #include "CEditDoc.h"
00006 #include "CControlTray.h"
00007 #include "charcode.h"
00008 #include "CEditWnd.h"
00009
00015 void CViewCommander::Command_GREP_DIALOG( void )
00016 {
00017     CNativeW    cmemCurText;
00018
00019     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
00020     m_pCommanderView->GetCurrentTextForSearchDlg( cmemCurText );    // 2006.08.23 ryoji ダイアログ専用関数に変更
00021
00022     /* キーがないなら、履歴からとってくる */
00023     if( 0 == cmemCurText.GetStringLength() ){
00024 //      cmemCurText.SetData( GetShareData()->m_aSearchKeys[0], lstrlen( GetShareData()->m_aSearchKeys[0] ) );
00025         cmemCurText.SetString( GetShareData()->m_aSearchKeys[0] );
00026     }
00027     wcscpy( GetEditWindow()->m_cDlgGrep.m_szText, cmemCurText.GetStringPtr() );
00028
00029     /* Grepダイアログの表示 */
00030     int nRet = GetEditWindow()->m_cDlgGrep.DoModal( GetInstance(), m_pCommanderView->m_hWnd, GetDocument()->GetFilePath() );
00031 //  MYTRACE_A( "nRet=%d\n", nRet );
00032     if( FALSE == nRet ){
00033         return;
00034     }
00035     HandleCommand(F_GREP, TRUE, 0, 0, 0, 0);    //  GREPコマンドの発行
00036 }
00037
00042 void CViewCommander::Command_GREP( void )
00043 {
00044     CNativeW        cmWork1;
00045     CNativeT        cmWork2;
00046     CNativeT        cmWork3;
00047
00048     /* 編集ウィンドウの上限チェック */
00049     if( GetShareData()->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正   //@@@ 2003.05.31 MIK
00050         TCHAR szMsg[512];
00051         auto_sprintf( szMsg, _T("編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。"), MAX_EDITWINDOWS );
00052         ::MessageBox( m_pCommanderView->m_hWnd, szMsg, GSTR_APPNAME, MB_OK );
00053         return;
00054     }
00055     cmWork1.SetString( GetEditWindow()->m_cDlgGrep.m_szText );
00056     cmWork2.SetString( GetEditWindow()->m_cDlgGrep.m_szFile );
00057     cmWork3.SetString( GetEditWindow()->m_cDlgGrep.m_szFolder );
00058
00059     /*  今のEditViewにGrep結果を表示する。
00060         Grepモードのとき。または、変更フラグがオフで、ファイルを読み込んでいない場合。
00061     */
00062     if( GetDocument()->m_bGrepMode ||
00063         ( !GetDocument()->IsModified() &&
00064           !GetDocument()->IsFilePathAvailable() )       /* 現在編集中のファイルのパス */
00065     ){
00066         m_pCommanderView->DoGrep(
00067             &cmWork1,
00068             &cmWork2,
00069             &cmWork3,
00070             GetEditWindow()->m_cDlgGrep.m_bSubFolder,
00071             GetEditWindow()->m_cDlgGrep.m_sSearchOption,
00072             GetEditWindow()->m_cDlgGrep.m_nGrepCharSet,
00073             GetEditWindow()->m_cDlgGrep.m_bGrepOutputLine,
00074             GetEditWindow()->m_cDlgGrep.m_nGrepOutputStyle
00075         );
00076     }
00077     else{
00078         /*======= Grepの実行 =============*/
00079         /* Grep結果ウィンドウの表示 */
00080         TCHAR*  pCmdLine = new TCHAR[1024];
00081         TCHAR*  pOpt = new TCHAR[64];
00082 //      int     nDataLen;
00083         cmWork1.Replace( L"\"", L"\"\"" );
00084         cmWork2.Replace( _T("\""), _T("\"\"") );
00085         cmWork3.Replace( _T("\""), _T("\"\"") );
00086         /*
00087         || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00088         */
00089         auto_sprintf(
00090             pCmdLine, _T("-GREPMODE -GKEY=\"%ls\" -GFILE=\"%ls\" -GFOLDER=\"%ts\" -GCODE=%d"),
00091             cmWork1.GetStringPtr(),
00092             cmWork2.GetStringPtr(),
00093             cmWork3.GetStringPtr(),
00094             GetEditWindow()->m_cDlgGrep.m_nGrepCharSet
00095         );
00096         pOpt[0] = _T('\0');
00097         if( GetEditWindow()->m_cDlgGrep.m_bSubFolder ){ /* サブフォルダからも検索する */
00098             _tcscat( pOpt, _T("S") );
00099         }
00100     //  if( m_bFromThisText ){  /* この編集中のテキストから検索する */
00101     //
00102     //  }
00103         if( GetEditWindow()->m_cDlgGrep.m_sSearchOption.bWordOnly ){    /* 単語単位で探す */
00104             _tcscat( pOpt, _T("W") );
00105         }
00106         if( GetEditWindow()->m_cDlgGrep.m_sSearchOption.bLoHiCase ){    /* 英大文字と英小文字を区別する */
00107             _tcscat( pOpt, _T("L") );
00108         }
00109         if( GetEditWindow()->m_cDlgGrep.m_sSearchOption.bRegularExp ){  /* 正規表現 */
00110             _tcscat( pOpt, _T("R") );
00111         }
00112 //  2002/09/20 Moca 文字コードセットオプションに統合
00113 //      if( GetEditWindow()->m_cDlgGrep.m_KanjiCode_AutoDetect ){   /* 文字コード自動判別 */
00114 //          _tcscat( pOpt, _T("K") );
00115 //      }
00116         if( GetEditWindow()->m_cDlgGrep.m_bGrepOutputLine ){    /* 行を出力するか該当部分だけ出力するか */
00117             _tcscat( pOpt, _T("P") );
00118         }
00119         if( 1 == GetEditWindow()->m_cDlgGrep.m_nGrepOutputStyle ){  /* Grep: 出力形式 */
00120             _tcscat( pOpt, _T("1") );
00121         }
00122         if( 2 == GetEditWindow()->m_cDlgGrep.m_nGrepOutputStyle ){  /* Grep: 出力形式 */
00123             _tcscat( pOpt, _T("2") );
00124         }
00125         if( 0 < _tcslen( pOpt ) ){
00126             _tcscat( pCmdLine, _T(" -GOPT=") );
00127             _tcscat( pCmdLine, pOpt );
00128         }
00129 //      MYTRACE_A( "pCmdLine=[%ls]\n", pCmdLine );
00130         /* 新規編集ウィンドウの追加 ver 0 */
00131         CControlTray::OpenNewEditor( GetInstance(), m_pCommanderView->m_hWnd, pCmdLine, CODE_DEFAULT, FALSE );
00132         delete [] pCmdLine;
00133         delete [] pOpt;
00134         /*======= Grepの実行 =============*/
00135         /* Grep結果ウィンドウの表示 */
00136     }
00137     return;
00138 }
00139 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Hokan.cpp

sakura_core

CViewCommander_Hokan.cpp

#include "stdafx.h"
#include "CViewCommander.h"
#include "CEditView.h"
#include "CEditDoc.h"

CViewCommander_Hokan.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_Hokan.cpp ソースファイル

sakura_core

CViewCommander_Hokan.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewCommander.h"
00003 #include "CEditView.h"
00004 #include "CEditDoc.h"
00005
00018 void CViewCommander::Command_HOKAN( void )
00019 {
00020     if(!GetShareData()->m_Common.m_sHelper.m_bUseHokan){
00021         GetShareData()->m_Common.m_sHelper.m_bUseHokan = TRUE;
00022     }
00023 retry:;
00024     /* 補完候補一覧ファイルが設定されていないときは、設定するように促す。 */
00025     // 2003.06.22 Moca ファイル内から検索する場合には補完ファイルの設定は必須ではない
00026     if( GetDocument()->GetDocumentAttribute().m_bUseHokanByFile == FALSE &&
00027         0 == _tcslen( GetDocument()->GetDocumentAttribute().m_szHokanFile
00028     ) ){
00029         ::MessageBeep( MB_ICONHAND );
00030         if( IDYES == ::MYMESSAGEBOX_A( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME_A,
00031             "補完候補一覧ファイルが設定されていません。\n今すぐ設定しますか?"
00032         ) ){
00033             /* タイプ別設定 プロパティシート */
00034             if( !GetDocument()->OpenPropertySheetTypes( 2, GetDocument()->GetDocumentType() ) ){
00035                 return;
00036             }
00037             goto retry;
00038         }
00039     }
00040
00041     CNativeW    cmemData;
00042     /* カーソル直前の単語を取得 */
00043     if( 0 < m_pCommanderView->GetParser().GetLeftWord( &cmemData, 100 ) ){
00044         m_pCommanderView->ShowHokanMgr( cmemData, TRUE );
00045     }else{
00046         ::MessageBeep( MB_ICONHAND );
00047         GetShareData()->m_Common.m_sHelper.m_bUseHokan = FALSE; //  入力補完終了のお知らせ
00048     }
00049     return;
00050 }
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_New.cpp

sakura_core

CViewCommander_New.cpp

#include "stdafx.h"
#include "CViewCommander.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 <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"

ソースコードを見る。

構成

struct | _SORTTABLE

マクロ定義

#define | FID_RECONVERT_VERSION 0x10000000

型定義

typedef struct _SORTTABLE | SORTDATA
typedef struct _SORTTABLE * | SORTTABLE

関数

bool | SortByKeyAsc (SORTTABLE pst1, SORTTABLE pst2)
bool | SortByKeyDesc (SORTTABLE pst1, SORTTABLE pst2)

マクロ定義

#define FID_RECONVERT_VERSION 0x10000000

CViewCommander_New.cpp の 31 行で定義されています。

参照元 CViewCommander::Command_Reconvert().

型定義

typedef struct _SORTTABLE SORTDATA

typedef struct _SORTTABLE * SORTTABLE

関数

bool SortByKeyAsc | ( | SORTTABLE | pst1,
 |  | SORTTABLE | pst2
 | ) |  |

物理行のソートに使う関数(昇順)

CViewCommander_New.cpp の 763 行で定義されています。

参照先 _SORTTABLE::sKey1.

参照元 CViewCommander::Command_SORT().

bool SortByKeyDesc | ( | SORTTABLE | pst1,
 |  | SORTTABLE | pst2
 | ) |  |

物理行のソートに使う関数(降順)

CViewCommander_New.cpp の 766 行で定義されています。

参照先 _SORTTABLE::sKey1.

参照元 CViewCommander::Command_SORT().

Sakura-Editorに対してSat Nov 17 20:27:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewCommander_New.cpp ソースファイル

sakura_core

CViewCommander_New.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewCommander.h"
00003 #include "CEditView.h"
00004 #include "CWaitCursor.h"
00005 #include "charcode.h"
00006 #include "CRunningTimer.h"
00007 #include <algorithm>        // 2001.12.11 hor    for VC++
00008 #include "COpe.h"
00009 #include "COpeBlk.h"
00010 #include "CLayout.h"
00011 #include "CDocLine.h"
00012 #include "mymessage.h"
00013 #include "debug.h"
00014 #include <string>
00015 #include <vector>
00016 #include "COsVersionInfo.h"   // 2002.04.09 minfu
00017 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00018 #include "CEditWnd.h"
00019 #include "CDlgCtrlCode.h"   //コントロールコードの入力(ダイアログ)
00020 #include "CDlgFavorite.h"   //履歴の管理   //@@@ 2003.04.08 MIK
00021 #include "CEditWnd.h"
00022 #include "CFileLoad.h"  // 2006.12.09 maru
00023 #include "CDlgCancel.h" // 2006.12.09 maru
00024 #include "CFileWrite.h" // 2006.12.09 maru
00025
00026 using namespace std; // 2002/2/3 aroka to here
00027
00028
00029
00030 #ifndef FID_RECONVERT_VERSION  // 2002.04.10 minfu
00031 #define FID_RECONVERT_VERSION 0x10000000
00032 #endif
00033
00034
00035 /* Undo 元に戻す */
00036 void CViewCommander::Command_UNDO( void )
00037 {
00038     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
00039         ::MessageBeep( MB_ICONHAND );
00040         return;
00041     }
00042
00043     if( !GetDocument()->IsEnableUndo() ){   /* Undo(元に戻す)可能な状態か？ */
00044         return;
00045     }
00046
00047     MY_RUNNINGTIMER( cRunningTimer, "CViewCommander::Command_UNDO()" );
00048
00049     COpe*       pcOpe = NULL;
00050     COpeBlk*    pcOpeBlk;
00051     int         nOpeBlkNum;
00052     int         i;
00053     bool        bIsModified;
00054 //  int         nNewLine;   /* 挿入された部分の次の位置の行 */
00055 //  int         nNewPos;    /* 挿入された部分の次の位置のデータ位置 */
00056     CWaitCursor cWaitCursor( m_pCommanderView->m_hWnd );
00057
00058     CLayoutPoint ptCaretPos_Before;
00059
00060     CLayoutPoint ptCaretPos_After;
00061
00062     /* 各種モードの取り消し */
00063     Command_CANCEL_MODE();
00064
00065     m_pCommanderView->m_bDoing_UndoRedo = TRUE; /* アンドゥ・リドゥの実行中か */
00066
00067     /* 現在のUndo対象の操作ブロックを返す */
00068     if( NULL != ( pcOpeBlk = GetDocument()->m_cOpeBuf.DoUndo( &bIsModified ) ) ){
00069         m_pCommanderView->SetDrawSwitch(false); //  hor
00070         nOpeBlkNum = pcOpeBlk->GetNum();
00071         for( i = nOpeBlkNum - 1; i >= 0; i-- ){
00072             pcOpe = pcOpeBlk->GetOpe( i );
00073             GetDocument()->m_cLayoutMgr.LogicToLayout(
00074                 pcOpe->m_ptCaretPos_PHY_After,
00075                 &ptCaretPos_After
00076             );
00077             GetDocument()->m_cLayoutMgr.LogicToLayout(
00078                 pcOpe->m_ptCaretPos_PHY_Before,
00079                 &ptCaretPos_Before
00080             );
00081
00082
00083             /* カーソルを移動 */
00084             GetCaret().MoveCursor( ptCaretPos_After, false );
00085
00086             switch( pcOpe->GetCode() ){
00087             case OPE_INSERT:
00088                 /* 選択範囲の変更 */
00089                 m_pCommanderView->GetSelectionInfo().m_sSelectBgn.SetFrom(ptCaretPos_Before);
00090                 m_pCommanderView->GetSelectionInfo().m_sSelectBgn.SetTo(m_pCommanderView->GetSelectionInfo().m_sSelectBgn.GetFrom());
00091                 m_pCommanderView->GetSelectionInfo().m_sSelect.SetFrom(ptCaretPos_Before);
00092                 m_pCommanderView->GetSelectionInfo().m_sSelect.SetTo(ptCaretPos_After);
00093
00094                 /* データ置換 削除&挿入にも使える */
00095                 m_pCommanderView->ReplaceData_CEditView(
00096                     m_pCommanderView->GetSelectionInfo().m_sSelect,             // 削除範囲
00097                     &pcOpe->m_pcmemData,    // 削除されたデータのコピー(NULL可能)
00098                     L"",                    // 挿入するデータ
00099                     CLogicInt(0),           // 挿入するデータの長さ
00100                     false                   // 再描画するか否か
00101                 );
00102
00103                 /* 選択範囲の変更 */
00104                 m_pCommanderView->GetSelectionInfo().m_sSelectBgn.Clear(-1); //範囲選択(原点)
00105                 m_pCommanderView->GetSelectionInfo().m_sSelect.Clear(-1);
00106
00107                 break;
00108             case OPE_DELETE:
00109                 //2007.10.17 kobake メモリリークしてました。修正。
00110                 if( 0 < pcOpe->m_pcmemData.GetStringLength() ){
00111                     /* データ置換 削除&挿入にも使える */
00112                     CLayoutRange sRange;
00113                     sRange.Set(ptCaretPos_Before);
00114                     m_pCommanderView->ReplaceData_CEditView(
00115                         sRange,
00116                         NULL,                               /* 削除されたデータのコピー(NULL可能) */
00117                         pcOpe->m_pcmemData.GetStringPtr(),  /* 挿入するデータ */
00118                         pcOpe->m_nDataLen,                  /* 挿入するデータの長さ */
00119                         false                               /*再描画するか否か*/
00120                     );
00121                 }
00122                 pcOpe->m_pcmemData.Clear();
00123                 break;
00124             case OPE_MOVECARET:
00125                 /* カーソルを移動 */
00126                 GetCaret().MoveCursor( ptCaretPos_After, false );
00127                 break;
00128             }
00129
00130             GetDocument()->m_cLayoutMgr.LogicToLayout(
00131                 pcOpe->m_ptCaretPos_PHY_Before,
00132                 &ptCaretPos_Before
00133             );
00134             if( i == 0 ){
00135                 /* カーソルを移動 */
00136                 GetCaret().MoveCursor( ptCaretPos_Before, true );
00137             }else{
00138                 /* カーソルを移動 */
00139                 GetCaret().MoveCursor( ptCaretPos_Before, false );
00140             }
00141         }
00142         m_pCommanderView->SetDrawSwitch(true);  //  hor
00143         m_pCommanderView->AdjustScrollBars(); // 2007.07.22 ryoji
00144
00145         /* Undo後の変更フラグ */
00146         GetDocument()->SetModified(bIsModified,true);   //  Jan. 22, 2002 genta
00147
00148         m_pCommanderView->m_bDoing_UndoRedo = FALSE;    /* アンドゥ・リドゥの実行中か */
00149
00150         m_pCommanderView->SetBracketPairPos( true );    // 03/03/07 ai
00151
00152         /* 再描画 */
00153         m_pCommanderView->Call_OnPaint( PAINT_LINENUMBER | PAINT_BODY, true); // メモリＤＣを使用してちらつきのない再描画
00154         HDC hdc = ::GetDC( m_pCommanderView->m_hWnd );
00155         m_pCommanderView->GetRuler().DispRuler( hdc );
00156         ::ReleaseDC( m_pCommanderView->m_hWnd, hdc );
00157
00158         /* 行番号表示に必要な幅を設定 */
00159         if( GetEditWindow()->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
00160             /* キャレットの表示・更新 */
00161             GetCaret().ShowEditCaret();
00162         }
00163         GetCaret().DrawCaretPosInfo();  // キャレットの行桁位置を表示する    // 2007.10.19 ryoji
00164
00165         GetEditWindow()->RedrawInactivePane();/* 他のペインの表示状態を更新 */
00166
00167     }
00168
00169     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().x;    // 2007.10.11 ryoji 追加
00170     m_pCommanderView->m_bDoing_UndoRedo = FALSE;    /* アンドゥ・リドゥの実行中か */
00171
00172     return;
00173 }
00174
00175
00176
00177
00178
00179 /* Redo やり直し */
00180 void CViewCommander::Command_REDO( void )
00181 {
00182     if( m_pCommanderView->GetSelectionInfo().IsMouseSelecting() ){  /* マウスによる範囲選択中 */
00183         ::MessageBeep( MB_ICONHAND );
00184         return;
00185     }
00186
00187
00188     if( !GetDocument()->IsEnableRedo() ){   /* Redo(やり直し)可能な状態か？ */
00189         return;
00190     }
00191     MY_RUNNINGTIMER( cRunningTimer, "CViewCommander::Command_REDO()" );
00192
00193     COpe*       pcOpe = NULL;
00194     COpeBlk*    pcOpeBlk;
00195     int         nOpeBlkNum;
00196     int         i;
00197 //  int         nNewLine;   /* 挿入された部分の次の位置の行 */
00198 //  int         nNewPos;    /* 挿入された部分の次の位置のデータ位置 */
00199     bool        bIsModified;
00200     CWaitCursor cWaitCursor( m_pCommanderView->m_hWnd );
00201
00202     CLayoutPoint ptCaretPos_Before;
00203     CLayoutPoint ptCaretPos_To;
00204     CLayoutPoint ptCaretPos_After;
00205
00206
00207     /* 各種モードの取り消し */
00208     Command_CANCEL_MODE();
00209
00210     m_pCommanderView->m_bDoing_UndoRedo = TRUE; /* アンドゥ・リドゥの実行中か */
00211
00212     /* 現在のRedo対象の操作ブロックを返す */
00213     if( NULL != ( pcOpeBlk = GetDocument()->m_cOpeBuf.DoRedo( &bIsModified ) ) ){
00214         m_pCommanderView->SetDrawSwitch(false); // 2007.07.22 ryoji
00215         nOpeBlkNum = pcOpeBlk->GetNum();
00216         for( i = 0; i < nOpeBlkNum; ++i ){
00217             pcOpe = pcOpeBlk->GetOpe( i );
00218             /*
00219               カーソル位置変換
00220               物理位置(行頭からのバイト数、折り返し無し行位置)
00221               →
00222               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00223             */
00224             GetDocument()->m_cLayoutMgr.LogicToLayout(
00225                 pcOpe->m_ptCaretPos_PHY_Before,
00226                 &ptCaretPos_Before
00227             );
00228
00229             if( i == 0 ){
00230                 /* カーソルを移動 */
00231                 GetCaret().MoveCursor( ptCaretPos_Before, true );
00232             }else{
00233                 /* カーソルを移動 */
00234                 GetCaret().MoveCursor( ptCaretPos_Before, false );
00235             }
00236             switch( pcOpe->GetCode() ){
00237             case OPE_INSERT:
00238                 //2007.10.17 kobake メモリリークしてました。修正。
00239                 if( 0 < pcOpe->m_pcmemData.GetStringLength() ){
00240                     /* データ置換 削除&挿入にも使える */
00241                     CLayoutRange sRange;
00242                     sRange.Set(ptCaretPos_Before);
00243                     m_pCommanderView->ReplaceData_CEditView(
00244                         sRange,
00245                         NULL,                               /* 削除されたデータのコピー(NULL可能) */
00246                         pcOpe->m_pcmemData.GetStringPtr(),  /* 挿入するデータ */
00247                         pcOpe->m_pcmemData.GetStringLength(),   /* 挿入するデータの長さ */
00248                         false                               /*再描画するか否か*/
00249                     );
00250
00251                 }
00252                 pcOpe->m_pcmemData.Clear();
00253                 break;
00254             case OPE_DELETE:
00255                 GetDocument()->m_cLayoutMgr.LogicToLayout(
00256                     pcOpe->m_ptCaretPos_PHY_To,
00257                     &ptCaretPos_To
00258                 );
00259
00260                 /* データ置換 削除&挿入にも使える */
00261                 m_pCommanderView->ReplaceData_CEditView(
00262                     CLayoutRange(ptCaretPos_Before,ptCaretPos_To),
00263                     &pcOpe->m_pcmemData,    /* 削除されたデータのコピー(NULL可能) */
00264                     L"",                /* 挿入するデータ */
00265                     CLogicInt(0),       /* 挿入するデータの長さ */
00266                     false
00267                 );
00268
00269                 break;
00270             case OPE_MOVECARET:
00271                 break;
00272             }
00273             GetDocument()->m_cLayoutMgr.LogicToLayout(
00274                 pcOpe->m_ptCaretPos_PHY_After,
00275                 &ptCaretPos_After
00276             );
00277
00278             if( i == nOpeBlkNum - 1 ){
00279                 /* カーソルを移動 */
00280                 GetCaret().MoveCursor( ptCaretPos_After, true );
00281             }else{
00282                 /* カーソルを移動 */
00283                 GetCaret().MoveCursor( ptCaretPos_After, false );
00284             }
00285         }
00286         m_pCommanderView->SetDrawSwitch(true); // 2007.07.22 ryoji
00287         m_pCommanderView->AdjustScrollBars(); // 2007.07.22 ryoji
00288
00289         /* Redo後の変更フラグ */
00290         GetDocument()->SetModified(bIsModified,true);   //  Jan. 22, 2002 genta
00291
00292         m_pCommanderView->m_bDoing_UndoRedo = FALSE;    /* アンドゥ・リドゥの実行中か */
00293
00294         m_pCommanderView->SetBracketPairPos( true );    // 03/03/07 ai
00295
00296         /* 再描画 */
00297         m_pCommanderView->Call_OnPaint( PAINT_LINENUMBER | PAINT_BODY, true); // メモリＤＣを使用してちらつきのない再描画
00298         {
00299             HDC hdc=GetDC(m_pCommanderView->GetHwnd());
00300             m_pCommanderView->GetRuler().DispRuler( hdc );  // 2007.10.19 ryoji
00301             ReleaseDC(m_pCommanderView->GetHwnd(),hdc);
00302         }
00303
00304         /* 行番号表示に必要な幅を設定 */
00305         if( GetEditWindow()->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
00306             /* キャレットの表示・更新 */
00307             GetCaret().ShowEditCaret();
00308         }
00309         GetCaret().DrawCaretPosInfo();  // キャレットの行桁位置を表示する    // 2007.10.19 ryoji
00310
00311         GetEditWindow()->RedrawInactivePane();/* 他のペインの表示状態を更新 */
00312     }
00313
00314     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().x;    // 2007.10.11 ryoji 追加
00315     m_pCommanderView->m_bDoing_UndoRedo = FALSE;    /* アンドゥ・リドゥの実行中か */
00316
00317     return;
00318 }
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340 // 2001/06/20 Start by asa-o
00341
00342 // テキストを１行下へスクロール
00343 void CViewCommander::Command_WndScrollDown( void )
00344 {
00345     CLayoutInt  nCaretMarginY;
00346
00347     nCaretMarginY = m_pCommanderView->GetTextArea().m_nViewRowNum / _CARETMARGINRATE;
00348     if( nCaretMarginY < 1 )
00349         nCaretMarginY = CLayoutInt(1);
00350
00351     nCaretMarginY += 2;
00352
00353     if( GetCaret().GetCaretLayoutPos().GetY() > m_pCommanderView->GetTextArea().m_nViewRowNum + m_pCommanderView->GetTextArea().GetViewTopLine() - (nCaretMarginY + 1) ){
00354         GetCaret().m_cUnderLine.CaretUnderLineOFF( TRUE );
00355     }
00356
00357     //  Sep. 11, 2004 genta 同期用に行数を記憶
00358     //  Sep. 11, 2004 genta 同期スクロールの関数化
00359     m_pCommanderView->SyncScrollV( m_pCommanderView->ScrollAtV(m_pCommanderView->GetTextArea().GetViewTopLine() - CLayoutInt(1)));
00360
00361     // テキストが選択されていない
00362     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() )
00363     {
00364         // カーソルが画面外に出た
00365         if( GetCaret().GetCaretLayoutPos().GetY() > m_pCommanderView->GetTextArea().m_nViewRowNum + m_pCommanderView->GetTextArea().GetViewTopLine() - nCaretMarginY )
00366         {
00367             if( GetCaret().GetCaretLayoutPos().GetY() > GetDocument()->m_cLayoutMgr.GetLineCount() - nCaretMarginY )
00368                 GetCaret().Cursor_UPDOWN( (GetDocument()->m_cLayoutMgr.GetLineCount() - nCaretMarginY) - GetCaret().GetCaretLayoutPos().GetY2(), FALSE );
00369             else
00370                 GetCaret().Cursor_UPDOWN( CLayoutInt(-1), FALSE);
00371             GetCaret().DrawCaretPosInfo();
00372         }
00373     }
00374
00375     GetCaret().m_cUnderLine.CaretUnderLineON( TRUE );
00376 }
00377
00378 // テキストを１行上へスクロール
00379 void CViewCommander::Command_WndScrollUp(void)
00380 {
00381     CLayoutInt  nCaretMarginY;
00382
00383     nCaretMarginY = m_pCommanderView->GetTextArea().m_nViewRowNum / _CARETMARGINRATE;
00384     if( nCaretMarginY < 1 )
00385         nCaretMarginY = 1;
00386
00387     if( GetCaret().GetCaretLayoutPos().GetY2() < m_pCommanderView->GetTextArea().GetViewTopLine() + (nCaretMarginY + 1) ){
00388         GetCaret().m_cUnderLine.CaretUnderLineOFF( TRUE );
00389     }
00390
00391     //  Sep. 11, 2004 genta 同期用に行数を記憶
00392     //  Sep. 11, 2004 genta 同期スクロールの関数化
00393     m_pCommanderView->SyncScrollV( m_pCommanderView->ScrollAtV( m_pCommanderView->GetTextArea().GetViewTopLine() + CLayoutInt(1) ));
00394
00395     // テキストが選択されていない
00396     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() )
00397     {
00398         // カーソルが画面外に出た
00399         if( GetCaret().GetCaretLayoutPos().GetY() < m_pCommanderView->GetTextArea().GetViewTopLine() + nCaretMarginY )
00400         {
00401             if( m_pCommanderView->GetTextArea().GetViewTopLine() == 1 )
00402                 GetCaret().Cursor_UPDOWN( nCaretMarginY + 1, FALSE );
00403             else
00404                 GetCaret().Cursor_UPDOWN( CLayoutInt(1), FALSE );
00405             GetCaret().DrawCaretPosInfo();
00406         }
00407     }
00408
00409     GetCaret().m_cUnderLine.CaretUnderLineON( TRUE );
00410 }
00411
00412 // 2001/06/20 End
00413
00414
00415
00416 /* 次の段落へ進む
00417     2002/04/26 段落の両端で止まるオプションを追加
00418     2002/04/19 新規
00419 */
00420 void CViewCommander::Command_GONEXTPARAGRAPH( bool bSelect )
00421 {
00422     CDocLine* pcDocLine;
00423     int nCaretPointer = 0;
00424
00425     bool nFirstLineIsEmptyLine = false;
00426     /* まずは、現在位置が空行（スペース、タブ、改行記号のみの行）かどうか判別 */
00427     if ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ){
00428         nFirstLineIsEmptyLine = pcDocLine->IsEmptyLine();
00429         nCaretPointer++;
00430     }
00431     else {
00432         // EOF行でした。
00433         return;
00434     }
00435
00436     /* 次に、nFirstLineIsEmptyLineと異なるところまで読み飛ばす */
00437     while ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ) {
00438         if ( pcDocLine->IsEmptyLine() == nFirstLineIsEmptyLine ){
00439             nCaretPointer++;
00440         }
00441         else {
00442             break;
00443         }
00444     };
00445
00446     /*  nFirstLineIsEmptyLineが空行だったら、今見ているところは非空行。すなわちおしまい。
00447         nFirstLineIsEmptyLineが非空行だったら、今見ているところは空行。
00448     */
00449     if ( nFirstLineIsEmptyLine == true ){
00450         //  おしまい。
00451     }
00452     else {
00453         //  いま見ているところは空行の1行目
00454         if ( GetShareData()->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph ){ //  段落の両端で止まる
00455         }
00456         else {
00457             /* 仕上げに、空行じゃないところまで進む */
00458             while ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ) {
00459                 if ( pcDocLine->IsEmptyLine() ){
00460                     nCaretPointer++;
00461                 }
00462                 else {
00463                     break;
00464                 }
00465             };
00466         }
00467     }
00468
00469     //  EOFまで来たり、目的の場所まできたので移動終了。
00470
00471     /* 移動距離を計算 */
00472     CLayoutPoint ptCaretPos_Layo;
00473
00474     /* 移動前の物理位置 */
00475     GetDocument()->m_cLayoutMgr.LogicToLayout(
00476         GetCaret().GetCaretLogicPos(),
00477         &ptCaretPos_Layo
00478     );
00479
00480     /* 移動後の物理位置 */
00481     CLayoutPoint ptCaretPos_Layo_CaretPointer;
00482     //int nCaretPosY_Layo_CaretPointer;
00483     GetDocument()->m_cLayoutMgr.LogicToLayout(
00484         GetCaret().GetCaretLogicPos() + CLogicPoint(0,nCaretPointer),
00485         &ptCaretPos_Layo_CaretPointer
00486     );
00487
00488     GetCaret().Cursor_UPDOWN( ptCaretPos_Layo_CaretPointer.y - ptCaretPos_Layo.y, bSelect );
00489 }
00490
00491 /* 前の段落へ進む
00492     2002/04/26 段落の両端で止まるオプションを追加
00493     2002/04/19 新規
00494 */
00495 void CViewCommander::Command_GOPREVPARAGRAPH( bool bSelect )
00496 {
00497     CDocLine* pcDocLine;
00498     int nCaretPointer = -1;
00499
00500     bool nFirstLineIsEmptyLine = false;
00501     /* まずは、現在位置が空行（スペース、タブ、改行記号のみの行）かどうか判別 */
00502     if ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ){
00503         nFirstLineIsEmptyLine = pcDocLine->IsEmptyLine();
00504         nCaretPointer--;
00505     }
00506     else {
00507         nFirstLineIsEmptyLine = true;
00508         nCaretPointer--;
00509     }
00510
00511     /* 次に、nFirstLineIsEmptyLineと異なるところまで読み飛ばす */
00512     while ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ) {
00513         if ( pcDocLine->IsEmptyLine() == nFirstLineIsEmptyLine ){
00514             nCaretPointer--;
00515         }
00516         else {
00517             break;
00518         }
00519     };
00520
00521     /*  nFirstLineIsEmptyLineが空行だったら、今見ているところは非空行。すなわちおしまい。
00522         nFirstLineIsEmptyLineが非空行だったら、今見ているところは空行。
00523     */
00524     if ( nFirstLineIsEmptyLine == true ){
00525         //  おしまい。
00526         if ( GetShareData()->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph ){ //  段落の両端で止まる
00527             nCaretPointer++;    //  空行の最上行（段落の末端の次の行）で止まる。
00528         }
00529         else {
00530             /* 仕上げに、空行じゃないところまで進む */
00531             while ( pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() + CLogicInt(nCaretPointer) ) ) {
00532                 if ( pcDocLine->IsEmptyLine() ){
00533                     break;
00534                 }
00535                 else {
00536                     nCaretPointer--;
00537                 }
00538             };
00539             nCaretPointer++;    //  空行の最上行（段落の末端の次の行）で止まる。
00540         }
00541     }
00542     else {
00543         //  いま見ているところは空行の1行目
00544         if ( GetShareData()->m_Common.m_sGeneral.m_bStopsBothEndsWhenSearchParagraph ){ //  段落の両端で止まる
00545             nCaretPointer++;
00546         }
00547         else {
00548             nCaretPointer++;
00549         }
00550     }
00551
00552     //  EOFまで来たり、目的の場所まできたので移動終了。
00553
00554     /* 移動距離を計算 */
00555     CLayoutPoint ptCaretPos_Layo;
00556
00557     /* 移動前の物理位置 */
00558     GetDocument()->m_cLayoutMgr.LogicToLayout(
00559         GetCaret().GetCaretLogicPos(),
00560         &ptCaretPos_Layo
00561     );
00562
00563     /* 移動後の物理位置 */
00564     CLayoutPoint ptCaretPos_Layo_CaretPointer;
00565     GetDocument()->m_cLayoutMgr.LogicToLayout(
00566         GetCaret().GetCaretLogicPos() + CLogicPoint(0, nCaretPointer),
00567         &ptCaretPos_Layo_CaretPointer
00568     );
00569
00570     GetCaret().Cursor_UPDOWN( ptCaretPos_Layo_CaretPointer.y - ptCaretPos_Layo.y, bSelect );
00571 }
00572
00573 // From Here 2001.12.03 hor
00574
00576 void CViewCommander::Command_BOOKMARK_SET(void)
00577 {
00578     CDocLine*   pCDocLine;
00579     if( m_pCommanderView->GetSelectionInfo().IsTextSelected() && m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().y<m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().y ){
00580         CLogicPoint ptFrom;
00581         CLogicPoint ptTo;
00582         GetDocument()->m_cLayoutMgr.LayoutToLogic(
00583             CLayoutPoint(CLayoutInt(0), m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().y),
00584             &ptFrom
00585         );
00586         GetDocument()->m_cLayoutMgr.LayoutToLogic(
00587             CLayoutPoint(CLayoutInt(0), m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().y  ),
00588             &ptTo
00589         );
00590         for(CLogicInt nY=ptFrom.GetY2();nY<=ptTo.y;nY++){
00591             pCDocLine=GetDocument()->m_cDocLineMgr.GetLineInfo( nY );
00592             if(NULL!=pCDocLine)pCDocLine->SetBookMark(!pCDocLine->IsBookMarked());
00593         }
00594     }
00595     else{
00596         pCDocLine=GetDocument()->m_cDocLineMgr.GetLineInfo( GetCaret().GetCaretLogicPos().GetY2() );
00597         if(NULL!=pCDocLine)pCDocLine->SetBookMark(!pCDocLine->IsBookMarked());
00598     }
00599
00600     // 2002.01.16 hor 分割したビューも更新
00601     GetEditWindow()->Views_Redraw();
00602 }
00603
00604
00605
00607 void CViewCommander::Command_BOOKMARK_NEXT(void)
00608 {
00609     int         nYOld;              // hor
00610     BOOL        bFound  =   FALSE;  // hor
00611     BOOL        bRedo   =   TRUE;   // hor
00612
00613     CLogicPoint ptXY(0, GetCaret().GetCaretLogicPos().y);
00614     CLogicInt tmp_y;
00615
00616     nYOld=ptXY.y;                   // hor
00617
00618 re_do:;                             // hor
00619     if(GetDocument()->m_cDocLineMgr.SearchBookMark(ptXY.GetY2(), SEARCH_FORWARD, &tmp_y)){
00620         ptXY.y = tmp_y;
00621         bFound = TRUE;
00622         CLayoutPoint ptLayout;
00623         GetDocument()->m_cLayoutMgr.LogicToLayout(ptXY,&ptLayout);
00624         //  2006.07.09 genta 新規関数にまとめた
00625         m_pCommanderView->MoveCursorSelecting( ptLayout, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
00626     }
00627     // 2002.01.26 hor
00628     if(GetShareData()->m_Common.m_sSearch.m_bSearchAll){
00629         if(!bFound  &&      // 見つからなかった
00630             bRedo           // 最初の検索
00631         ){
00632             ptXY.y=-1;  //  2002/06/01 MIK
00633             bRedo=FALSE;
00634             goto re_do;     // 先頭から再検索
00635         }
00636     }
00637     if(bFound){
00638         if(nYOld >= ptXY.y)m_pCommanderView->SendStatusMessage(_T("▼先頭から再検索しました"));
00639     }else{
00640         m_pCommanderView->SendStatusMessage(_T("▽見つかりませんでした"));
00641         if(GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND)    /* 検索／置換  見つからないときメッセージを表示 */
00642             InfoMessage( m_pCommanderView->m_hWnd, _T("後方(↓) にブックマークが見つかりません。"));
00643     }
00644     return;
00645 }
00646
00647
00648
00650 void CViewCommander::Command_BOOKMARK_PREV(void)
00651 {
00652     int         nYOld;              // hor
00653     BOOL        bFound  =   FALSE;  // hor
00654     BOOL        bRedo   =   TRUE;   // hor
00655
00656     CLogicPoint ptXY(0,GetCaret().GetCaretLogicPos().y);
00657     CLogicInt tmp_y;
00658
00659     nYOld=ptXY.y;                       // hor
00660
00661 re_do:;                             // hor
00662     if(GetDocument()->m_cDocLineMgr.SearchBookMark(ptXY.GetY2(), SEARCH_BACKWARD, &tmp_y)){
00663         ptXY.y = tmp_y;
00664         bFound = TRUE;              // hor
00665         CLayoutPoint ptLayout;
00666         GetDocument()->m_cLayoutMgr.LogicToLayout(ptXY,&ptLayout);
00667         //  2006.07.09 genta 新規関数にまとめた
00668         m_pCommanderView->MoveCursorSelecting( ptLayout, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
00669     }
00670     // 2002.01.26 hor
00671     if(GetShareData()->m_Common.m_sSearch.m_bSearchAll){
00672         if(!bFound  &&  // 見つからなかった
00673             bRedo       // 最初の検索
00674         ){
00675             ptXY.y=(CLogicInt)(Int)GetDocument()->m_cLayoutMgr.GetLineCount();  // 2002/06/01 MIK // $$ 単位混在
00676             bRedo=FALSE;
00677             goto re_do; // 末尾から再検索
00678         }
00679     }
00680     if(bFound){
00681         if(nYOld <= ptXY.y)m_pCommanderView->SendStatusMessage(_T("▲末尾から再検索しました"));
00682     }else{
00683         m_pCommanderView->SendStatusMessage(_T("△見つかりませんでした"));
00684         if(GetShareData()->m_Common.m_sSearch.m_bNOTIFYNOTFOUND)    /* 検索／置換  見つからないときメッセージを表示 */
00685             InfoMessage( m_pCommanderView->m_hWnd, _T("前方(↑) にブックマークが見つかりません。") );
00686     }
00687     return;
00688 }
00689
00690
00691
00693 void CViewCommander::Command_BOOKMARK_RESET(void)
00694 {
00695     GetDocument()->m_cDocLineMgr.ResetAllBookMark();
00696     // 2002.01.16 hor 分割したビューも更新
00697     GetEditWindow()->Views_Redraw();
00698 }
00699
00700
00701 //指定パターンに一致する行をマーク 2002.01.16 hor
00702 //キーマクロで記録できるように    2002.02.08 hor
00703 void CViewCommander::Command_BOOKMARK_PATTERN( void )
00704 {
00705     //検索or置換ダイアログから呼び出された
00706     if(!m_pCommanderView->ChangeCurRegexp())return;
00707     GetDocument()->m_cDocLineMgr.MarkSearchWord(
00708         GetShareData()->m_aSearchKeys[0],       // 検索条件
00709         GetShareData()->m_Common.m_sSearch.m_sSearchOption, // 検索条件
00710         &m_pCommanderView->m_CurRegexp                          // 正規表現コンパイルデータ
00711     );
00712     // 2002.01.16 hor 分割したビューも更新
00713     GetEditWindow()->Views_Redraw();
00714 }
00715
00716
00717
00726 void CViewCommander::Command_TRIM( BOOL bLeft )
00727 {
00728     bool bBeDisableSelectArea = false;
00729     if(!m_pCommanderView->GetSelectionInfo().IsTextSelected()){ //  非選択時は行選択に変更
00730         m_pCommanderView->GetSelectionInfo().m_sSelect.SetFrom(
00731             CLayoutPoint(
00732                 CLayoutInt(0),
00733                 GetCaret().GetCaretLayoutPos().GetY()
00734             )
00735         );
00736         m_pCommanderView->GetSelectionInfo().m_sSelect.SetTo  (
00737             CLayoutPoint(
00738                 GetDocument()->m_cLayoutMgr.GetMaxLineKetas(),
00739                 GetCaret().GetCaretLayoutPos().GetY()
00740             )
00741         );
00742         bBeDisableSelectArea = true;
00743     }
00744
00745     if(bLeft){
00746         m_pCommanderView->ConvSelectedArea( F_LTRIM );
00747     }
00748     else{
00749         m_pCommanderView->ConvSelectedArea( F_RTRIM );
00750     }
00751
00752     if(bBeDisableSelectArea)
00753         m_pCommanderView->GetSelectionInfo().DisableSelectArea( TRUE );
00754 }
00755
00757 typedef struct _SORTTABLE {
00758     wstring sKey1;
00759     wstring sKey2;
00760 } SORTDATA, *SORTTABLE;
00761
00763 bool SortByKeyAsc (SORTTABLE pst1, SORTTABLE pst2) {return (pst1->sKey1<pst2->sKey1);}
00764
00766 bool SortByKeyDesc(SORTTABLE pst1, SORTTABLE pst2) {return (pst1->sKey1>pst2->sKey1);}
00767
00778 void CViewCommander::Command_SORT(BOOL bAsc)    //bAsc:TRUE=昇順,FALSE=降順
00779 {
00780     CLayoutRange sRangeA;
00781     CLogicRange sSelectOld;
00782
00783     int         nColmFrom,nColmTo;
00784     CLayoutInt  nCF,nCT;
00785     CLayoutInt  nCaretPosYOLD;
00786     bool        bBeginBoxSelectOld;
00787     const wchar_t*  pLine;
00788     CLogicInt       nLineLen;
00789     int         j;
00790     CNativeW    cmemBuf;
00791     std::vector<SORTTABLE> sta;
00792     COpe*       pcOpe = NULL;
00793
00794     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){           /* テキストが選択されているか */
00795         return;
00796     }
00797
00798     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
00799         sRangeA=m_pCommanderView->GetSelectionInfo().m_sSelect;
00800         if( m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().x==m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().x ){
00801             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00802             m_pCommanderView->GetSelectionInfo().m_sSelect.SetToX( GetDocument()->m_cLayoutMgr.GetMaxLineKetas() );
00803         }
00804         if(m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().x<m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().x){
00805             nCF=m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00806             nCT=m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().GetX2();
00807         }else{
00808             nCF=m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().GetX2();
00809             nCT=m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().GetX2();
00810         }
00811     }
00812     bBeginBoxSelectOld=m_pCommanderView->GetSelectionInfo().IsBoxSelecting();
00813     nCaretPosYOLD=GetCaret().GetCaretLayoutPos().GetY();
00814     GetDocument()->m_cLayoutMgr.LayoutToLogic(
00815         m_pCommanderView->GetSelectionInfo().m_sSelect,
00816         &sSelectOld
00817     );
00818
00819     if( bBeginBoxSelectOld ){
00820         sSelectOld.GetToPointer()->y++;
00821     }
00822     else{
00823         // カーソル位置が行頭じゃない ＆ 選択範囲の終端に改行コードがある場合は
00824         // その行も選択範囲に加える
00825         if ( sSelectOld.GetTo().x > 0 ) {
00826             // 2006.03.31 Moca nSelectLineToOldは、物理行なのでLayout系からDocLine系に修正
00827             const CDocLine* pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( sSelectOld.GetTo().GetY2() );
00828             if( NULL != pcDocLine && EOL_NONE != pcDocLine->m_cEol ){
00829                 sSelectOld.GetToPointer()->y++;
00830             }
00831         }
00832     }
00833     sSelectOld.SetFromX(0);
00834     sSelectOld.SetToX(CLogicInt(0));
00835
00836     //行選択されてない
00837     if(sSelectOld.IsLineOne()){
00838         return;
00839     }
00840
00841     for( CLogicInt i = sSelectOld.GetFrom().GetY2(); i < sSelectOld.GetTo().y; i++ ){
00842         const CDocLine* pcDocLine = GetDocument()->m_cDocLineMgr.GetLineInfo( i );
00843         pLine = GetDocument()->m_cDocLineMgr.GetLineStr( i, &nLineLen );
00844         if( NULL == pLine ) continue;
00845         SORTTABLE pst = new SORTDATA;
00846         if( bBeginBoxSelectOld ){
00847             nColmFrom = m_pCommanderView->LineColmnToIndex( pcDocLine, nCF );
00848             nColmTo   = m_pCommanderView->LineColmnToIndex( pcDocLine, nCT );
00849             if(nColmTo<nLineLen){   // BOX選択範囲の右端が行内に収まっている場合
00850                 // 2006.03.31 genta std::string::assignを使って一時変数削除
00851                 pst->sKey1.assign( &pLine[nColmFrom], nColmTo-nColmFrom );
00852             }
00853             else if(nColmFrom<nLineLen){    // BOX選択範囲の右端が行末より右にはみ出している場合
00854                 pst->sKey1=&pLine[nColmFrom];
00855             }
00856             pst->sKey2=pLine;
00857         }else{
00858             pst->sKey1=pLine;
00859         }
00860         sta.push_back(pst);
00861     }
00862     if(bAsc){
00863         std::stable_sort(sta.begin(), sta.end(), SortByKeyAsc);
00864     }else{
00865         std::stable_sort(sta.begin(), sta.end(), SortByKeyDesc);
00866     }
00867     cmemBuf.SetString(L"");
00868     j=(int)sta.size();
00869     if( bBeginBoxSelectOld ){
00870         for (int i=0; i<j; i++) cmemBuf.AppendString( sta[i]->sKey2.c_str() );
00871     }else{
00872         for (int i=0; i<j; i++) cmemBuf.AppendString( sta[i]->sKey1.c_str() );
00873     }
00874
00875     //sta.clear(); ←これじゃだめみたい
00876     for (int i=0; i<j; i++) delete sta[i];
00877
00878     CLayoutRange sSelectOld_Layout;
00879     GetDocument()->m_cLayoutMgr.LogicToLayout(sSelectOld, &sSelectOld_Layout);
00880     m_pCommanderView->ReplaceData_CEditView(
00881         sSelectOld_Layout,
00882         NULL,                   /* 削除されたデータのコピー(NULL可能) */
00883         cmemBuf.GetStringPtr(),
00884         cmemBuf.GetStringLength(),
00885         false
00886     );
00887
00888     //  選択エリアの復元
00889     if(bBeginBoxSelectOld){
00890         m_pCommanderView->GetSelectionInfo().SetBoxSelect(bBeginBoxSelectOld);
00891         m_pCommanderView->GetSelectionInfo().m_sSelect=sRangeA;
00892     }else{
00893         m_pCommanderView->GetSelectionInfo().m_sSelect=sSelectOld_Layout;
00894     }
00895     if(nCaretPosYOLD==m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().y || m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ) {
00896         GetCaret().MoveCursor( m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom(), true );
00897     }else{
00898         GetCaret().MoveCursor( m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo(), true );
00899     }
00900     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
00901     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
00902         pcOpe = new COpe(OPE_MOVECARET);
00903         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
00904         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
00905         m_pCommanderView->m_pcOpeBlk->AppendOpe( pcOpe );
00906     }
00907     m_pCommanderView->RedrawAll();
00908 }
00909
00910
00924 void CViewCommander::Command_MERGE(void)
00925 {
00926     CLayoutInt      nCaretPosYOLD;
00927     const wchar_t*  pLinew;
00928     CLogicInt       nLineLen;
00929     int         j;
00930     CNativeW    cmemBuf;
00931     COpe*       pcOpe = NULL;
00932
00933     if( !m_pCommanderView->GetSelectionInfo().IsTextSelected() ){           /* テキストが選択されているか */
00934         return;
00935     }
00936     if( m_pCommanderView->GetSelectionInfo().IsBoxSelecting() ){
00937         return;
00938     }
00939
00940     nCaretPosYOLD=GetCaret().GetCaretLayoutPos().GetY();
00941     CLogicRange sSelectOld; //範囲選択
00942     GetDocument()->m_cLayoutMgr.LayoutToLogic(
00943         m_pCommanderView->GetSelectionInfo().m_sSelect,
00944         &sSelectOld
00945     );
00946
00947     // 2001.12.21 hor
00948     // カーソル位置が行頭じゃない ＆ 選択範囲の終端に改行コードがある場合は
00949     // その行も選択範囲に加える
00950     if ( sSelectOld.GetTo().x > 0 ) {
00951         const CLayout* pcLayout=GetDocument()->m_cLayoutMgr.SearchLineByLayoutY(m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo().GetY2()); //2007.10.09 kobake 単位混在バグ修正
00952         if( NULL != pcLayout && EOL_NONE != pcLayout->m_cEol ){
00953             sSelectOld.GetToPointer()->y++;
00954             //sSelectOld.GetTo().y++;
00955         }
00956     }
00957
00958     sSelectOld.SetFromX(0);
00959     sSelectOld.SetToX(CLogicInt(0));
00960
00961     //行選択されてない
00962     if(sSelectOld.IsLineOne()){
00963         return;
00964     }
00965
00966     pLinew=NULL;
00967     cmemBuf.SetString(L"");
00968     for( CLogicInt i = sSelectOld.GetFrom().GetY2(); i < sSelectOld.GetTo().y; i++ ){
00969         const wchar_t*  pLine = GetDocument()->m_cDocLineMgr.GetLineStr( i, &nLineLen );
00970         if( NULL == pLine ) continue;
00971         if( NULL == pLinew || wcscmp(pLine,pLinew) ){
00972             cmemBuf.AppendString( pLine );
00973         }
00974         pLinew=pLine;
00975     }
00976     j=GetDocument()->m_cDocLineMgr.GetLineCount();
00977
00978     CLayoutRange sSelectOld_Layout;
00979     GetDocument()->m_cLayoutMgr.LogicToLayout(sSelectOld, &sSelectOld_Layout);
00980
00981     m_pCommanderView->ReplaceData_CEditView(
00982         sSelectOld_Layout,
00983         NULL,                   /* 削除されたデータのコピー(NULL可能) */
00984         cmemBuf.GetStringPtr(),
00985         cmemBuf.GetStringLength(),
00986         false
00987     );
00988     j-=GetDocument()->m_cDocLineMgr.GetLineCount();
00989
00990     //  選択エリアの復元
00991     m_pCommanderView->GetSelectionInfo().m_sSelect=sSelectOld_Layout;
00992     m_pCommanderView->GetSelectionInfo().m_sSelect.GetToPointer()->y -= j;
00993
00994     if(nCaretPosYOLD==m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom().y){
00995         GetCaret().MoveCursor( m_pCommanderView->GetSelectionInfo().m_sSelect.GetFrom(), true );
00996     }else{
00997         GetCaret().MoveCursor( m_pCommanderView->GetSelectionInfo().m_sSelect.GetTo(), true );
00998     }
00999     GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX();
01000     if( !m_pCommanderView->m_bDoing_UndoRedo ){ /* アンドゥ・リドゥの実行中か */
01001         pcOpe = new COpe(OPE_MOVECARET);
01002         pcOpe->m_ptCaretPos_PHY_Before = GetCaret().GetCaretLogicPos();         // 操作前のキャレット位置
01003         pcOpe->m_ptCaretPos_PHY_After = pcOpe->m_ptCaretPos_PHY_Before; // 操作後のキャレット位置
01004         m_pCommanderView->m_pcOpeBlk->AppendOpe( pcOpe );
01005     }
01006     m_pCommanderView->RedrawAll();
01007
01008     if(j){
01009 		::MYMESSAGEBOX_A( m_pCommanderView->m_hWnd, MB_OK | MB_TOPMOST, GSTR_APPNAME_A,
01010             "%d行をマージしました。", j
01011         );
01012     }else{
01013         InfoMessage( m_pCommanderView->m_hWnd, _T("マージ可能な行がみつかりませんでした。") );
01014     }
01015 }
01016
01017
01018
01019 // To Here 2001.12.03 hor
01020
01021 /* メニューからの再変換対応 minfu 2002.04.09
01022
01023     @date 2002.04.11 YAZAKI COsVersionInfoのカプセル化を守りましょう。
01024 */
01025 void CViewCommander::Command_Reconvert(void)
01026 {
01027     //サイズを取得
01028     int nSize = m_pCommanderView->SetReconvertStruct(NULL,UNICODE_BOOL);
01029     if( 0 == nSize )  // サイズ０の時は何もしない
01030         return ;
01031
01032     bool bUseUnicodeATOK = false;
01033     //バージョンチェック
01034     COsVersionInfo cOs;
01035     if( cOs.OsDoesNOTSupportReconvert() ){
01036
01037         // MSIMEかどうか
01038         HWND hWnd = ImmGetDefaultIMEWnd(m_pCommanderView->m_hWnd);
01039         if (SendMessage(hWnd, m_pCommanderView->m_uWM_MSIME_RECONVERTREQUEST, FID_RECONVERT_VERSION, 0)){
01040             SendMessage(hWnd, m_pCommanderView->m_uWM_MSIME_RECONVERTREQUEST, 0, (LPARAM)m_pCommanderView->m_hWnd);
01041             return ;
01042         }
01043
01044         // ATOKが使えるかどうか
01045         TCHAR sz[256];
01046         ImmGetDescription(GetKeyboardLayout(0),sz,_countof(sz)); //説明の取得
01047         if ( (_tcsncmp(sz,_T("ATOK"),4) == 0) && (NULL != m_pCommanderView->AT_ImmSetReconvertString) ){
01048             bUseUnicodeATOK = true;
01049         }else{
01050             //対応IMEなし
01051             return;
01052         }
01053     }else{
01054         //現在のIMEが対応しているかどうか
01055         //IMEのプロパティ
01056         if ( !(ImmGetProperty(GetKeyboardLayout(0),IGP_SETCOMPSTR) & SCS_CAP_SETRECONVERTSTRING) ){
01057             //対応IMEなし
01058             return ;
01059         }
01060 #ifdef _UNICODE
01061 #endif
01062     }
01063
01064     //サイズ取得し直し
01065     if((UNICODE_BOOL || bUseUnicodeATOK) != UNICODE_BOOL){
01066         nSize = m_pCommanderView->SetReconvertStruct(NULL,UNICODE_BOOL || bUseUnicodeATOK);
01067         if( 0 == nSize )  // サイズ０の時は何もしない
01068             return ;
01069     }
01070
01071     //IMEのコンテキスト取得
01072     HIMC hIMC = ::ImmGetContext( m_pCommanderView->m_hWnd );
01073
01074     //領域確保
01075     PRECONVERTSTRING pReconv = (PRECONVERTSTRING)::HeapAlloc(
01076         GetProcessHeap(),
01077         HEAP_GENERATE_EXCEPTIONS,
01078         nSize
01079     );
01080
01081     //構造体設定
01082     m_pCommanderView->SetReconvertStruct( pReconv, UNICODE_BOOL || bUseUnicodeATOK);
01083
01084     //変換範囲の調整
01085     if(bUseUnicodeATOK){
01086         (*m_pCommanderView->AT_ImmSetReconvertString)(hIMC, SCS_QUERYRECONVERTSTRING, pReconv, pReconv->dwSize);
01087     }else{
01088         ::ImmSetCompositionString(hIMC, SCS_QUERYRECONVERTSTRING, pReconv, pReconv->dwSize, NULL,0);
01089     }
01090
01091     //調整した変換範囲を選択する
01092     m_pCommanderView->SetSelectionFromReonvert(pReconv, UNICODE_BOOL || bUseUnicodeATOK);
01093
01094     //再変換実行
01095     if(bUseUnicodeATOK){
01096         (*m_pCommanderView->AT_ImmSetReconvertString)(hIMC, SCS_SETRECONVERTSTRING, pReconv, pReconv->dwSize);
01097     }else{
01098         ::ImmSetCompositionString(hIMC, SCS_SETRECONVERTSTRING, pReconv, pReconv->dwSize, NULL, 0);
01099     }
01100
01101     //領域解放
01102     ::HeapFree(GetProcessHeap(),0,(LPVOID)pReconv);
01103     ::ImmReleaseContext( m_pCommanderView->m_hWnd, hIMC);
01104 }
01105
01110 void CViewCommander::Command_CtrlCode_Dialog( void )
01111 {
01112     CDlgCtrlCode    cDlgCtrlCode;
01113
01114     //コントロールコード入力ダイアログを表示する
01115     if( cDlgCtrlCode.DoModal( GetInstance(), m_pCommanderView->m_hWnd, (LPARAM)GetDocument() ) )
01116     {
01117         //コントロールコードを入力する
01118         Command_WCHAR( cDlgCtrlCode.GetCharCode() );
01119     }
01120 }
01121
01126 void CViewCommander::Command_JUMP_SRCHSTARTPOS(void)
01127 {
01128     if( m_pCommanderView->m_ptSrchStartPos_PHY.BothNatural() )
01129     {
01130         CLayoutPoint pt;
01131         /* 範囲選択中か */
01132         GetDocument()->m_cLayoutMgr.LogicToLayout(
01133             m_pCommanderView->m_ptSrchStartPos_PHY,
01134             &pt
01135         );
01136         //  2006.07.09 genta 選択状態を保つ
01137         m_pCommanderView->MoveCursorSelecting( pt, m_pCommanderView->GetSelectionInfo().m_bSelectingLock );
01138     }
01139     else
01140     {
01141         ::MessageBeep( MB_ICONHAND );
01142     }
01143     return;
01144 }
01145
01150 void CViewCommander::Command_Favorite( void )
01151 {
01152     CDlgFavorite    cDlgFavorite;
01153
01154     //ダイアログを表示する
01155     if( FALSE == cDlgFavorite.DoModal( GetInstance(), m_pCommanderView->m_hWnd, (LPARAM)GetDocument() ) )
01156     {
01157         return;
01158     }
01159
01160     return;
01161 }
01162
01168 void CViewCommander::Command_CHGMOD_EOL( enumEOLType e ){
01169     if( EOL_NONE < e && e < EOL_CODEMAX  ){
01170         GetDocument()->SetNewLineCode( e );
01171         // ステータスバーを更新するため
01172         // キャレットの行桁位置を表示する関数を呼び出す
01173         GetCaret().DrawCaretPosInfo();
01174     }
01175 }
01176
01180 void CViewCommander::Command_WINTOPMOST( LPARAM lparam )
01181 {
01182     GetDocument()->m_pcEditWnd->WindowTopMost( int(lparam) );
01183 }
01184
01188 void CViewCommander::Command_SET_QUOTESTRING( const wchar_t* quotestr )
01189 {
01190     if( quotestr == NULL )
01191         return;
01192
01193     wcsncpy( GetShareData()->m_Common.m_sFormat.m_szInyouKigou, quotestr,
01194         _countof( GetShareData()->m_Common.m_sFormat.m_szInyouKigou ));
01195
01196     GetShareData()->m_Common.m_sFormat.m_szInyouKigou[ _countof( GetShareData()->m_Common.m_sFormat.m_szInyouKigou ) - 1 ] = L'\0';
01197 }
01198
01203 void CViewCommander::Command_WINLIST( int nCommandFrom )
01204 {
01205     CEditWnd    *pCEditWnd;
01206     pCEditWnd = GetDocument()->m_pcEditWnd;
01207
01208     //ウィンドウ一覧をポップアップ表示する
01209     pCEditWnd->PopupWinList( nCommandFrom != 1 );   // 2007.02.27 ryoji アクセラレータキーからでなければマウス位置に
01210
01211 }
01212
01213
01217 void CViewCommander::Command_TRACEOUT( const wchar_t* outputstr, int nFlgOpt )
01218 {
01219     if( outputstr == NULL )
01220         return;
01221
01222     // 0x01 ExpandParameterによる文字列展開有無
01223     if (nFlgOpt & 0x01) {
01224         wchar_t Buffer[2048];
01225         GetDocument()->ExpandParameter(outputstr, Buffer, 2047);
01226         CShareData::getInstance()->TraceOut( _T("%ls"), Buffer );
01227     } else {
01228         CShareData::getInstance()->TraceOut( _T("%ls"), outputstr );
01229     }
01230
01231     // 0x02 改行コードの有無
01232     if ((nFlgOpt & 0x02) == 0) CShareData::getInstance()->TraceOut( _T("\r\n") );
01233
01234 }
01235
01236 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewFont.cpp

sakura_core

CViewFont.cpp

#include "stdafx.h"
#include "CViewFont.h"
#include "CShareData.h"

CViewFont.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewFont.cpp ソースファイル

sakura_core

CViewFont.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewFont.h"
00003 #include "CShareData.h"
00004
00005 CViewFont::CViewFont()
00006 {
00007     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();
00008
00009     LOGFONT lf;
00010
00011     /* フォント作成 */
00012     m_hFont_HAN = CreateFontIndirect( &(pShareData->m_Common.m_sView.m_lf) );
00013
00014     /* 太字フォント作成 */
00015     lf = pShareData->m_Common.m_sView.m_lf;
00016     lf.lfWeight += 300;
00017     if( 1000 < lf.lfWeight ){
00018         lf.lfWeight = 1000;
00019     }
00020     m_hFont_HAN_FAT = CreateFontIndirect( &lf );
00021
00022     /* 下線フォント作成 */
00023     lf = pShareData->m_Common.m_sView.m_lf;
00024     lf.lfUnderline = TRUE;
00025     m_hFont_HAN_UL = CreateFontIndirect( &lf );
00026
00027     /* 太字下線フォント作成 */
00028     lf = pShareData->m_Common.m_sView.m_lf;
00029     lf.lfUnderline = TRUE;
00030     lf.lfWeight += 300;
00031     if( 1000 < lf.lfWeight ){
00032         lf.lfWeight = 1000;
00033     }
00034     m_hFont_HAN_FAT_UL = CreateFontIndirect( &lf );
00035 }
00036
00037 CViewFont::~CViewFont()
00038 {
00039     DeleteObject( m_hFont_HAN );
00040     DeleteObject( m_hFont_HAN_FAT );
00041     DeleteObject( m_hFont_HAN_UL );
00042     DeleteObject( m_hFont_HAN_FAT_UL );
00043 }
00044
00045 void CViewFont::UpdateFont()
00046 {
00047     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();
00048     LOGFONT lf;
00049
00050     /* フォント作成 */
00051     ::DeleteObject( m_hFont_HAN );
00052     m_hFont_HAN = CreateFontIndirect( &pShareData->m_Common.m_sView.m_lf );
00053
00054     /* 太字フォント作成 */
00055     ::DeleteObject( m_hFont_HAN_FAT );
00056     lf = pShareData->m_Common.m_sView.m_lf;
00057     lf.lfWeight += 300;
00058     if( 1000 < lf.lfWeight ){
00059         lf.lfWeight = 1000;
00060     }
00061     m_hFont_HAN_FAT = CreateFontIndirect( &lf );
00062
00063     /* 下線フォント作成 */
00064     ::DeleteObject( m_hFont_HAN_UL );
00065     lf = pShareData->m_Common.m_sView.m_lf;
00066     lf.lfUnderline = TRUE;
00067     m_hFont_HAN_UL = CreateFontIndirect( &lf );
00068
00069     /* 太字下線フォント作成 */
00070     ::DeleteObject( m_hFont_HAN_FAT_UL );
00071     lf = pShareData->m_Common.m_sView.m_lf;
00072     lf.lfUnderline = TRUE;
00073     lf.lfWeight += 300;
00074     if( 1000 < lf.lfWeight ){
00075         lf.lfWeight = 1000;
00076     }
00077     m_hFont_HAN_FAT_UL = CreateFontIndirect( &lf );
00078 }
00079
00084 HFONT CViewFont::ChooseFontHandle( BOOL bFat, BOOL bUnderLine ) const
00085 {
00086     if( bFat ){ /* 太字か */
00087         if( bUnderLine ){   /* 下線か */
00088             return m_hFont_HAN_FAT_UL;
00089         }else{
00090             return m_hFont_HAN_FAT;
00091         }
00092     }else{
00093         if( bUnderLine ){   /* 下線か */
00094             return m_hFont_HAN_UL;
00095         }else{
00096             return m_hFont_HAN;
00097         }
00098     }
00099 }
00100
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewFont.h

sakura_core

CViewFont.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CViewFont

Sakura-Editorに対してSat Nov 17 20:27:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewFont.h ソースファイル

sakura_core

CViewFont.h

説明を見る。
00001 #pragma once
00002
00003 class CViewFont{
00004 public:
00005     CViewFont();
00006     virtual ~CViewFont();
00007
00008     void UpdateFont();
00009     HFONT ChooseFontHandle( BOOL bFat, BOOL bUnderLine ) const;     /* フォントを選ぶ */
00010
00011     HFONT GetFontHan() const
00012     {
00013         return m_hFont_HAN;
00014     }
00015 private:
00016     HFONT           m_hFont_HAN;        /* 現在のフォントハンドル */
00017     HFONT           m_hFont_HAN_FAT;    /* 現在のフォントハンドル */
00018     HFONT           m_hFont_HAN_UL;     /* 現在のフォントハンドル */
00019     HFONT           m_hFont_HAN_FAT_UL; /* 現在のフォントハンドル */
00020 };
00021
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewParser.cpp

sakura_core

CViewParser.cpp

#include "stdafx.h"
#include "CViewParser.h"
#include "CLayout.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "charcode.h"

CViewParser.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:01 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewParser.cpp ソースファイル

sakura_core

CViewParser.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewParser.h"
00003 #include "CLayout.h"
00004 #include "CEditView.h"
00005 #include "CEditDoc.h"
00006 #include "charcode.h"
00007
00008 /*
00009     カーソル直前の単語を取得 単語の長さを返します
00010     単語区切り
00011 */
00012 int CViewParser::GetLeftWord( CNativeW* pcmemWord, int nMaxWordLen ) const
00013 {
00014     const wchar_t*  pLine;
00015     CLogicInt       nLineLen;
00016     CLogicInt       nIdx;
00017     CLogicInt       nIdxTo;
00018
00019     CNativeW    cmemWord;
00020     CLayoutInt  nCurLine;
00021     int         nCharChars;
00022     const CLayout* pcLayout;
00023
00024     nCurLine = m_pEditView->GetCaret().GetCaretLayoutPos().GetY2();
00025     pLine = m_pEditView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCurLine, &nLineLen, &pcLayout );
00026     if( NULL == pLine ){
00027 //      return 0;
00028         nIdxTo = CLogicInt(0);
00029     }else{
00030         /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */
00031         nIdxTo = m_pEditView->LineColmnToIndex( pcLayout, m_pEditView->GetCaret().GetCaretLayoutPos().GetX2() );
00032     }
00033     if( 0 == nIdxTo || NULL == pLine ){
00034         if( nCurLine <= 0 ){
00035             return 0;
00036         }
00037         nCurLine--;
00038         pLine = m_pEditView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCurLine, &nLineLen );
00039         if( NULL == pLine ){
00040             return 0;
00041         }
00042         if( WCODE::isLineDelimiter(pLine[nLineLen - 1]) ){
00043             return 0;
00044         }
00045
00046         nCharChars = &pLine[nLineLen] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nLineLen] );
00047         if( 0 == nCharChars ){
00048             return 0;
00049         }
00050         nIdxTo = nLineLen;
00051         nIdx = nIdxTo - CLogicInt(nCharChars);
00052     }
00053     else{
00054         nCharChars = &pLine[nIdxTo] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nIdxTo] );
00055         if( 0 == nCharChars ){
00056             return 0;
00057         }
00058         nIdx = nIdxTo - CLogicInt(nCharChars);
00059     }
00060
00061     if( 1 == nCharChars ){
00062         if( WCODE::isWordDelimiter(pLine[nIdx]) ){
00063             return 0;
00064         }
00065     }
00066
00067     /* 現在位置の単語の範囲を調べる */
00068     CLayoutRange sRange;
00069     int nResult=m_pEditView->m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
00070         nCurLine,
00071         nIdx,
00072         &sRange,
00073         &cmemWord,
00074         pcmemWord
00075     );
00076     if( nResult ){
00077         pcmemWord->AppendString( &pLine[nIdx], nCharChars );
00078
00079         return pcmemWord->GetStringLength();
00080     }else{
00081         return 0;
00082     }
00083 }
00084
00085
00095 BOOL CViewParser::GetCurrentWord(
00096         CNativeW* pcmemWord
00097 ) const
00098 {
00099     const CLayout*  pcLayout = m_pEditView->m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( m_pEditView->GetCaret().GetCaretLayoutPos().GetY2() );
00100     if( NULL == pcLayout ){
00101         return false;   /* 単語選択に失敗 */
00102     }
00103
00104     /* 指定された桁に対応する行のデータ内の位置を調べる */
00105     CLogicInt       nIdx = m_pEditView->LineColmnToIndex( pcLayout, m_pEditView->GetCaret().GetCaretLayoutPos().GetX2() );
00106
00107     /* 現在位置の単語の範囲を調べる */
00108     CLayoutRange sRange;
00109     int nResult=m_pEditView->m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
00110         m_pEditView->GetCaret().GetCaretLayoutPos().GetY2(),
00111         nIdx,
00112         &sRange,
00113         pcmemWord,
00114         NULL
00115     );
00116     if( nResult ){
00117         return true;    /* 単語選択に成功 */
00118     }
00119     else {
00120         return false;   /* 単語選択に失敗 */
00121     }
00122 }
00123
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewParser.h

sakura_core

CViewParser.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CViewParser
品詞解析クラス [詳細]

Sakura-Editorに対してSat Nov 17 20:27:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewParser.h ソースファイル

sakura_core

CViewParser.h

説明を見る。
00001 #pragma once
00002
00003 class CEditView;
00004
00006 class CViewParser{
00007 public:
00008     CViewParser(const CEditView* pEditView) : m_pEditView(pEditView) { }
00009     virtual ~CViewParser(){}
00010
00012     int GetLeftWord( CNativeW* pcmemWord, int nMaxWordLen ) const;
00013
00015     // 2006.03.24 fon
00016     BOOL GetCurrentWord( CNativeW* pcmemWord ) const;
00017
00018 private:
00019     const CEditView* m_pEditView;
00020 };
Sakura-Editorに対してSat Nov 17 20:24:47 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewSelect.cpp

sakura_core

CViewSelect.cpp

#include "stdafx.h"
#include "CViewSelect.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CMemoryIterator.h"
#include "CLayout.h"
#include "CEditWnd.h"

CViewSelect.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewSelect.cpp ソースファイル

sakura_core

CViewSelect.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CViewSelect.h"
00003 #include "CEditView.h"
00004 #include "CEditDoc.h"
00005 #include "CMemoryIterator.h"
00006 #include "CLayout.h"
00007 #include "CEditWnd.h"
00008
00009 CViewSelect::CViewSelect(CEditView* pcEditView)
00010 : m_pcEditView(pcEditView)
00011 {
00012     m_bSelectingLock   = false; // 選択状態のロック
00013     m_bBeginSelect     = false;     // 範囲選択中
00014     m_bBeginBoxSelect  = false; // 矩形範囲選択中
00015     m_bBeginLineSelect = false; // 行単位選択中
00016     m_bBeginWordSelect = false; // 単語単位選択中
00017
00018     m_sSelectBgn.Clear(-1); // 範囲選択(原点)
00019     m_sSelect   .Clear(-1); // 範囲選択
00020     m_sSelectOld.Clear(0);  // 範囲選択(Old)
00021 }
00022
00023 void CViewSelect::CopySelectStatus(CViewSelect* pSelect) const
00024 {
00025     pSelect->m_bSelectingLock       = m_bSelectingLock;     /* 選択状態のロック */
00026     pSelect->m_bBeginSelect         = m_bBeginSelect;       /* 範囲選択中 */
00027     pSelect->m_bBeginBoxSelect      = m_bBeginBoxSelect;    /* 矩形範囲選択中 */
00028
00029     pSelect->m_sSelectBgn           = m_sSelectBgn;         //範囲選択(原点)
00030     pSelect->m_sSelect              = m_sSelect;            //範囲選択
00031     pSelect->m_sSelectOld           = m_sSelectOld;         //範囲選択
00032
00033     pSelect->m_ptMouseRollPosOld    = m_ptMouseRollPosOld;  // マウス範囲選択前回位置(XY座標)
00034 }
00035
00037 void CViewSelect::BeginSelectArea()
00038 {
00039     const CEditView* pView=GetEditView();
00040
00041     m_sSelectBgn.Set(pView->GetCaret().GetCaretLayoutPos()); //範囲選択(原点)
00042     m_sSelect.   Set(pView->GetCaret().GetCaretLayoutPos()); //範囲選択
00043 }
00044
00045
00046 // 現在の選択範囲を非選択状態に戻す
00047 void CViewSelect::DisableSelectArea( bool bDraw )
00048 {
00049     const CEditView* pView=GetEditView();
00050     CEditView* pView2=GetEditView();
00051
00052     m_sSelectOld = m_sSelect;       //範囲選択(Old)
00053     m_sSelect.Clear(-1);
00054
00055     if( bDraw ){
00056         DrawSelectArea();
00057         m_bDrawSelectArea = false;  // 02/12/13 ai
00058     }
00059
00060     m_bSelectingLock     = false;   // 選択状態のロック
00061     m_sSelectOld.Clear(0);          // 範囲選択(Old)
00062     m_bBeginBoxSelect = false;      // 矩形範囲選択中
00063     m_bBeginLineSelect = false;     // 行単位選択中
00064     m_bBeginWordSelect = false;     // 単語単位選択中
00065
00066     // 2002.02.16 hor 直前のカーソル位置をリセット
00067     pView2->GetCaret().m_nCaretPosX_Prev=pView->GetCaret().GetCaretLayoutPos().GetX();
00068
00069     // カーソル行アンダーラインのON
00070     pView2->GetCaret().m_cUnderLine.CaretUnderLineON( bDraw );
00071 }
00072
00073
00074
00075 // 現在のカーソル位置によって選択範囲を変更
00076 void CViewSelect::ChangeSelectAreaByCurrentCursor( const CLayoutPoint& ptCaretPos )
00077 {
00078     m_sSelectOld=m_sSelect; // 範囲選択(Old)
00079
00080     //  2002/04/08 YAZAKI コードの重複を排除
00081     ChangeSelectAreaByCurrentCursorTEST(
00082         ptCaretPos,
00083         &m_sSelect
00084     );
00085
00086     // 選択領域の描画
00087     DrawSelectArea();
00088 }
00089
00090
00091 // 現在のカーソル位置によって選択範囲を変更(テストのみ)
00092 void CViewSelect::ChangeSelectAreaByCurrentCursorTEST(
00093     const CLayoutPoint& ptCaretPos,
00094     CLayoutRange* pSelect
00095 )
00096 {
00097     const CEditView* pView=GetEditView();
00098     CEditView* pView2=GetEditView();
00099
00100     if(m_sSelectBgn.GetFrom()==m_sSelectBgn.GetTo()){
00101         if( ptCaretPos==m_sSelectBgn.GetFrom() ){
00102             // 選択解除
00103             pSelect->Clear(-1);
00104         }
00105         else if( PointCompare(ptCaretPos,m_sSelectBgn.GetFrom() ) < 0 ){ //キャレット位置がm_sSelectBgnのfromより小さかったら
00106              pSelect->SetFrom(ptCaretPos);
00107              pSelect->SetTo(m_sSelectBgn.GetFrom());
00108         }
00109         else{
00110             pSelect->SetFrom(m_sSelectBgn.GetFrom());
00111             pSelect->SetTo(ptCaretPos);
00112         }
00113     }else{
00114         // 常時選択範囲の範囲内
00115         // キャレット位置が m_sSelectBgn の from以上で、toより小さい場合
00116         if( PointCompare(ptCaretPos,m_sSelectBgn.GetFrom()) >= 0 && PointCompare(ptCaretPos,m_sSelectBgn.GetTo()) < 0 ){
00117             pSelect->SetFrom(m_sSelectBgn.GetFrom());
00118             if ( ptCaretPos==m_sSelectBgn.GetFrom() ){
00119                 pSelect->SetTo(m_sSelectBgn.GetTo());
00120             }
00121             else {
00122                 pSelect->SetTo(ptCaretPos);
00123             }
00124         }
00125         //キャレット位置がm_sSelectBgnのfromより小さかったら
00126         else if( PointCompare(ptCaretPos,m_sSelectBgn.GetFrom()) < 0 ){
00127             // 常時選択範囲の前方向
00128             pSelect->SetFrom(ptCaretPos);
00129             pSelect->SetTo(m_sSelectBgn.GetTo());
00130         }else{
00131             // 常時選択範囲の後ろ方向
00132             pSelect->SetFrom(m_sSelectBgn.GetFrom());
00133             pSelect->SetTo(ptCaretPos);
00134         }
00135     }
00136 }
00137
00138
00139
00144 void CViewSelect::DrawSelectArea() const
00145 {
00146     const CEditView* pView=GetEditView();
00147
00148     if( !pView->GetDrawSwitch() ){
00149         return;
00150     }
00151
00152     CLayoutRange sRangeA;
00153
00154     CLayoutInt          nLineNum;
00155
00156     m_bDrawSelectArea = true;
00157
00158     // 2006.10.01 Moca 重複コード統合
00159     HDC         hdc = ::GetDC( pView->m_hWnd );
00160     HBRUSH      hBrush = ::CreateSolidBrush( SELECTEDAREA_RGB );
00161     HBRUSH      hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00162     int         nROP_Old = ::SetROP2( hdc, SELECTEDAREA_ROP2 );
00163
00164 //  MYTRACE_A( "DrawSelectArea()  m_bBeginBoxSelect=%ls\n", m_bBeginBoxSelect?"TRUE":"FALSE" );
00165     if( IsBoxSelecting() ){     // 矩形範囲選択中
00166         // 2001.12.21 hor 矩形エリアにEOFがある場合、RGN_XORで結合すると
00167         // EOF以降のエリアも反転してしまうので、この場合はRedrawを使う
00168         // 2002.02.16 hor ちらつきを抑止するためEOF以降のエリアが反転したらもう一度反転して元に戻すことにする
00169         //if((GetTextArea().GetViewTopLine()+m_nViewRowNum+1>=m_pcEditDoc->m_cLayoutMgr.GetLineCount()) &&
00170         //   (m_sSelect.GetTo().y+1 >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ||
00171         //  m_sSelectOld.GetTo().y+1 >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ) ) {
00172         //  Redraw();
00173         //  return;
00174         //}
00175
00176         const int nCharWidth = pView->GetTextMetrics().GetHankakuDx();
00177         const int nCharHeight = pView->GetTextMetrics().GetHankakuDy();
00178
00179
00180         // 2点を対角とする矩形を求める
00181         CLayoutRect  rcOld;
00182         TwoPointToRect(
00183             &rcOld,
00184             m_sSelectOld.GetFrom(), // 範囲選択開始
00185             m_sSelectOld.GetTo()    // 範囲選択終了
00186         );
00187         rcOld.left   = max(rcOld.left  , pView->GetTextArea().GetViewLeftCol()  );
00188         rcOld.right  = max(rcOld.right , pView->GetTextArea().GetViewLeftCol()  );
00189         rcOld.right  = min(rcOld.right , pView->GetTextArea().GetRightCol() + 1 );
00190         rcOld.top    = max(rcOld.top   , pView->GetTextArea().GetViewTopLine()  );
00191         rcOld.bottom = min(rcOld.bottom, pView->GetTextArea().GetBottomLine()   );
00192
00193         RECT rcOld2;
00194         rcOld2.left     = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)rcOld.left  * nCharWidth;
00195         rcOld2.right    = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)rcOld.right * nCharWidth;
00196         rcOld2.top      = (Int)( rcOld.top - pView->GetTextArea().GetViewTopLine() ) * nCharHeight + pView->GetTextArea().GetAreaTop();
00197         rcOld2.bottom   = (Int)( rcOld.bottom + 1 - pView->GetTextArea().GetViewTopLine() ) * nCharHeight + pView->GetTextArea().GetAreaTop();
00198         HRGN hrgnOld = ::CreateRectRgnIndirect( &rcOld2 );
00199
00200         // 2点を対角とする矩形を求める
00201         CLayoutRect  rcNew;
00202         TwoPointToRect(
00203             &rcNew,
00204             m_sSelect.GetFrom(),    // 範囲選択開始
00205             m_sSelect.GetTo()       // 範囲選択終了
00206         );
00207         rcNew.left   = max(rcNew.left  , pView->GetTextArea().GetViewLeftCol() );
00208         rcNew.right  = max(rcNew.right , pView->GetTextArea().GetViewLeftCol() );
00209         rcNew.right  = min(rcNew.right , pView->GetTextArea().GetRightCol() + 1);
00210         rcNew.top    = max(rcNew.top   , pView->GetTextArea().GetViewTopLine() );
00211         rcNew.bottom = min(rcNew.bottom, pView->GetTextArea().GetBottomLine()  );
00212
00213         RECT rcNew2;
00214         rcNew2.left     = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)rcNew.left  * nCharWidth;
00215         rcNew2.right    = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)rcNew.right * nCharWidth;
00216         rcNew2.top      = (Int)(rcNew.top - pView->GetTextArea().GetViewTopLine()) * nCharHeight + pView->GetTextArea().GetAreaTop();
00217         rcNew2.bottom   = (Int)(rcNew.bottom + 1 - pView->GetTextArea().GetViewTopLine()) * nCharHeight + pView->GetTextArea().GetAreaTop();
00218
00219         HRGN hrgnNew = ::CreateRectRgnIndirect( &rcNew2 );
00220
00221         // 矩形作画。
00222         // ::CombineRgn()の結果を受け取るために、適当なリージョンを作る
00223         HRGN hrgnDraw = ::CreateRectRgnIndirect( &rcNew2 );
00224         {
00225             // 旧選択矩形と新選択矩形のリージョンを結合し､ 重なりあう部分だけを除去します
00226             if( NULLREGION != ::CombineRgn( hrgnDraw, hrgnOld, hrgnNew, RGN_XOR ) ){
00227
00228                 // 2002.02.16 hor
00229                 // 結合後のエリアにEOFが含まれる場合はEOF以降の部分を除去します
00230                 // 2006.10.01 Moca リーソースリークを修正したら、チラつくようになったため、
00231                 // 抑えるために EOF以降をリージョンから削除して1度の作画にする
00232
00233                 // 2006.10.01 Moca Start EOF位置計算をGetEndLayoutPosに書き換え。
00234                 CLayoutPoint ptLast;
00235                 pView->m_pcEditDoc->m_cLayoutMgr.GetEndLayoutPos( &ptLast );
00236                 // 2006.10.01 Moca End
00237                 if(m_sSelect.GetFrom().y>=ptLast.y || m_sSelect.GetTo().y>=ptLast.y ||
00238                     m_sSelectOld.GetFrom().y>=ptLast.y || m_sSelectOld.GetTo().y>=ptLast.y){
00239                     //  Jan. 24, 2004 genta nLastLenは物理桁なので変換必要
00240                     //  最終行にTABが入っていると反転範囲が不足する．
00241                     //  2006.10.01 Moca GetEndLayoutPosで処理するためColumnToIndexは不要に。
00242                     RECT rcNew;
00243                     rcNew.left   = pView->GetTextArea().GetAreaLeft() + (Int)(pView->GetTextArea().GetViewLeftCol() + ptLast.x) * nCharWidth;
00244                     rcNew.right  = pView->GetTextArea().GetAreaRight();
00245                     rcNew.top    = (Int)(ptLast.y - pView->GetTextArea().GetViewTopLine()) * nCharHeight + pView->GetTextArea().GetAreaTop();
00246                     rcNew.bottom = rcNew.top + nCharHeight;
00247
00248                     // 2006.10.01 Moca GDI(リージョン)リソースリーク修正
00249                     HRGN hrgnEOFNew = ::CreateRectRgnIndirect( &rcNew );
00250                     ::CombineRgn( hrgnDraw, hrgnDraw, hrgnEOFNew, RGN_DIFF );
00251                     ::DeleteObject( hrgnEOFNew );
00252                 }
00253                 ::PaintRgn( hdc, hrgnDraw );
00254             }
00255         }
00256
00258         // デバッグ用 リージョン矩形のダンプ
00259 //@@        TraceRgn( hrgnDraw );
00260
00261
00262         if( NULL != hrgnDraw ){
00263             ::DeleteObject( hrgnDraw );
00264         }
00265         if( NULL != hrgnNew ){
00266             ::DeleteObject( hrgnNew );
00267         }
00268         if( NULL != hrgnOld ){
00269             ::DeleteObject( hrgnOld );
00270         }
00271     }else{
00272
00273         // 現在描画されている範囲と始点が同じ
00274         if( m_sSelect == m_sSelectOld ){
00275             // 範囲が後方に拡大された
00276             if( PointCompare(m_sSelect.GetTo(),m_sSelectOld.GetTo()) > 0 ){
00277                 sRangeA.SetFrom(m_sSelectOld.GetTo());
00278                 sRangeA.SetTo  (m_sSelect.GetTo());
00279             }
00280             else{
00281                 sRangeA.SetFrom(m_sSelect.GetTo());
00282                 sRangeA.SetTo  (m_sSelectOld.GetTo());
00283             }
00284             for( nLineNum = sRangeA.GetFrom().GetY2(); nLineNum <= sRangeA.GetTo().GetY2(); ++nLineNum ){
00285                 if( nLineNum >= pView->GetTextArea().GetViewTopLine() && nLineNum <= pView->GetTextArea().GetBottomLine() + 1 ){
00286                     DrawSelectAreaLine( hdc, nLineNum, sRangeA);
00287                 }
00288             }
00289         }
00290         else if( m_sSelect.GetTo() == m_sSelectOld.GetTo() ){
00291             // 範囲が前方に拡大された
00292             if(PointCompare(m_sSelect.GetFrom(),m_sSelectOld.GetFrom()) < 0){
00293                 sRangeA.SetFrom(m_sSelect.GetFrom());
00294                 sRangeA.SetTo  (m_sSelectOld.GetFrom());
00295             }
00296             else{
00297                 sRangeA.SetFrom(m_sSelectOld.GetFrom());
00298                 sRangeA.SetTo  (m_sSelect.GetFrom());
00299             }
00300             for( nLineNum = sRangeA.GetFrom().GetY2(); nLineNum <= sRangeA.GetTo().GetY2(); ++nLineNum ){
00301                 if( nLineNum >= pView->GetTextArea().GetViewTopLine() && nLineNum <= pView->GetTextArea().GetBottomLine() + 1 ){
00302                     DrawSelectAreaLine( hdc, nLineNum, sRangeA );
00303                 }
00304             }
00305         }
00306         else{
00307             sRangeA = m_sSelectOld;
00308             for( nLineNum = sRangeA.GetFrom().GetY2(); nLineNum <= sRangeA.GetTo().GetY2(); ++nLineNum ){
00309                 if( nLineNum >= pView->GetTextArea().GetViewTopLine() && nLineNum <= pView->GetTextArea().GetBottomLine() + 1 ){
00310                     DrawSelectAreaLine( hdc, nLineNum, sRangeA );
00311                 }
00312             }
00313             sRangeA = m_sSelect;
00314             for( nLineNum = sRangeA.GetFrom().GetY2(); nLineNum <= sRangeA.GetTo().GetY2(); ++nLineNum ){
00315                 if( nLineNum >= pView->GetTextArea().GetViewTopLine() && nLineNum <= pView->GetTextArea().GetBottomLine() + 1 ){
00316                     DrawSelectAreaLine( hdc, nLineNum, sRangeA );
00317                 }
00318             }
00319         }
00320     }
00321     // 2006.10.01 Moca 重複コード統合
00322     ::SetROP2( hdc, nROP_Old );
00323     ::SelectObject( hdc, hBrushOld );
00324     ::DeleteObject( hBrush );
00325     ::ReleaseDC( pView->m_hWnd, hdc );
00326     //  Jul. 9, 2005 genta 選択領域の情報を表示
00327     PrintSelectionInfoMsg();
00328 }
00329
00330
00331
00332
00340 void CViewSelect::DrawSelectAreaLine(
00341     HDC                 hdc,
00342     CLayoutInt          nLineNum,
00343     const CLayoutRange& sRange
00344 ) const
00345 {
00346     const CEditView* pView=GetEditView();
00347
00348     RECT            rcClip;
00349     CLayoutInt      nSelectFrom;    // 描画行の選択開始桁位置
00350     CLayoutInt      nSelectTo;      // 描画行の選択開始終了位置
00351
00352     if( sRange.IsLineOne() ){
00353         nSelectFrom = sRange.GetFrom().x;
00354         nSelectTo   = sRange.GetTo().x;
00355     }
00356     else{
00357         // 2006.03.29 Moca 行末までの長さを求める位置を上からここに移動
00358         CLayoutInt nPosX = CLayoutInt(0);
00359         const CLayout* pcLayout = pView->m_pcEditDoc->m_cLayoutMgr.SearchLineByLayoutY( nLineNum );
00360         CMemoryIterator it( pcLayout, pView->m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00361         while( !it.end() ){
00362             it.scanNext();
00363             if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00364                 nPosX ++;
00365                 break;
00366             }
00367             // 2006.03.28 Moca 画面外まで求めたら打ち切る
00368             if( it.getColumn() >pView->GetTextArea().GetRightCol() ){
00369                 break;
00370             }
00371             it.addDelta();
00372         }
00373         nPosX += it.getColumn();
00374
00375         if( nLineNum == sRange.GetFrom().y ){
00376             nSelectFrom = sRange.GetFrom().x;
00377             nSelectTo   = nPosX;
00378         }
00379         else if( nLineNum == sRange.GetTo().y ){
00380             nSelectFrom = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
00381             nSelectTo   = sRange.GetTo().x;
00382         }
00383         else{
00384             nSelectFrom = pcLayout ? pcLayout->GetIndent() : CLayoutInt(0);
00385             nSelectTo   = nPosX;
00386         }
00387         // 2006.05.24 Mocaフリーカーソル選択(選択開始/終了行)で
00388         // To < From になることがある。必ず From < To になるように入れ替える。
00389         if( nSelectTo < nSelectFrom ){
00390             t_swap(nSelectFrom, nSelectTo);
00391         }
00392     }
00393
00394     // 2006.03.28 Moca ウィンドウ幅が大きいと正しく反転しない問題を修正
00395     if( nSelectFrom < pView->GetTextArea().GetViewLeftCol() ){
00396         nSelectFrom = pView->GetTextArea().GetViewLeftCol();
00397     }
00398     int     nLineHeight = pView->GetTextMetrics().GetHankakuDy();
00399     int     nCharWidth = pView->GetTextMetrics().GetHankakuDx();
00400     rcClip.left     = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)nSelectFrom * nCharWidth;
00401     rcClip.right    = (pView->GetTextArea().GetAreaLeft() - (Int)pView->GetTextArea().GetViewLeftCol() * nCharWidth) + (Int)nSelectTo   * nCharWidth;
00402     rcClip.top      = (Int)(nLineNum - pView->GetTextArea().GetViewTopLine()) * nLineHeight + pView->GetTextArea().GetAreaTop();
00403     rcClip.bottom   = rcClip.top + nLineHeight;
00404     if( rcClip.right > pView->GetTextArea().GetAreaRight() ){
00405         rcClip.right = pView->GetTextArea().GetAreaRight();
00406     }
00407     //  必要なときだけ。
00408     if ( rcClip.right != rcClip.left ){
00409         pView->GetCaret().m_cUnderLine.CaretUnderLineOFF( TRUE );
00410
00411         // 2006.03.28 Moca 表示域内のみ処理する
00412         if( nSelectFrom <=pView->GetTextArea().GetRightCol() && pView->GetTextArea().GetViewLeftCol() < nSelectTo ){
00413             HRGN hrgnDraw = ::CreateRectRgn( rcClip.left, rcClip.top, rcClip.right, rcClip.bottom );
00414             ::PaintRgn( hdc, hrgnDraw );
00415             ::DeleteObject( hrgnDraw );
00416         }
00417     }
00418 }
00419
00420
00421
00428 void CViewSelect::PrintSelectionInfoMsg() const
00429 {
00430     const CEditView* pView=GetEditView();
00431
00432     //  出力されないなら計算を省略
00433     if( ! pView->m_pcEditDoc->m_pcEditWnd->m_cStatusBar.SendStatusMessage2IsEffective() )
00434         return;
00435
00436     if( ! IsTextSelected() ){
00437         pView->m_pcEditDoc->m_pcEditWnd->m_cStatusBar.SendStatusMessage2( _T("") );
00438         return;
00439     }
00440
00441     TCHAR msg[128];
00442     //  From here 2006.06.06 ryoji 選択範囲の行が実在しない場合の対策
00443     CLayoutInt nLineCount = pView->m_pcEditDoc->m_cLayoutMgr.GetLineCount();
00444     if( m_sSelect.GetFrom().y >= nLineCount ){  // 先頭行が実在しない
00445         pView->m_pcEditDoc->m_pcEditWnd->m_cStatusBar.SendStatusMessage2( _T("") );
00446         return;
00447     }
00448
00449     CLayoutInt select_line;
00450     if( m_sSelect.GetTo().y >= nLineCount ){    // 最終行が実在しない
00451         select_line = nLineCount - m_sSelect.GetFrom().y + 1;
00452     }
00453     else {
00454         select_line = m_sSelect.GetTo().y - m_sSelect.GetFrom().y + 1;
00455     }
00456
00457     //  To here 2006.06.06 ryoji 選択範囲の行が実在しない場合の対策
00458     if( IsBoxSelecting() ){
00459         //  矩形の場合は幅と高さだけでごまかす
00460         CLayoutInt select_col = m_sSelect.GetFrom().x - m_sSelect.GetTo().x;
00461         if( select_col < 0 ){
00462             select_col = -select_col;
00463         }
00464         auto_sprintf( msg, _T("%d Columns * %d lines selected."),
00465             select_col, select_line );
00466
00467     }
00468     else {
00469         //  通常の選択では選択範囲の中身を数える
00470         int select_sum = 0; //  バイト数合計
00471         const wchar_t *pLine;   //  データを受け取る
00472         CLogicInt   nLineLen;       //  行の長さ
00473         const CLayout*  pcLayout;
00474
00475         //  1行目
00476         pLine = pView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_sSelect.GetFrom().GetY2(), &nLineLen, &pcLayout );
00477         if( pLine ){
00478             //  1行だけ選択されている場合
00479             if( m_sSelect.IsLineOne() ){
00480                 select_sum =
00481                     pView->LineColmnToIndex( pcLayout, m_sSelect.GetTo().GetX2() )
00482                     - pView->LineColmnToIndex( pcLayout, m_sSelect.GetFrom().GetX2() );
00483             }
00484             else {  //  2行以上選択されている場合
00485                 select_sum =
00486                     pcLayout->GetLengthWithoutEOL()
00487                     + pcLayout->m_cEol.GetLen()
00488                     - pView->LineColmnToIndex( pcLayout, m_sSelect.GetFrom().GetX2() );
00489
00490                 //  GetSelectedDataと似ているが，先頭行と最終行は排除している
00491                 //  Aug. 16, 2005 aroka nLineNumはfor以降でも使われるのでforの前で宣言する
00492                 //  VC .NET以降でもMicrosoft拡張を有効にした標準動作はVC6と同じことに注意
00493                 CLayoutInt nLineNum;
00494                 for( nLineNum = m_sSelect.GetFrom().GetY2() + CLayoutInt(1);
00495                     nLineNum < m_sSelect.GetTo().GetY2(); ++nLineNum ){
00496                     pLine = pView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
00497                     //  2006.06.06 ryoji 指定行のデータが存在しない場合の対策
00498                     if( NULL == pLine )
00499                         break;
00500                     select_sum += pcLayout->GetLengthWithoutEOL() + pcLayout->m_cEol.GetLen();
00501                 }
00502
00503                 //  最終行の処理
00504                 pLine = pView->m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
00505                 if( pLine ){
00506                     int last_line_chars = pView->LineColmnToIndex( pcLayout, m_sSelect.GetTo().GetX2() );
00507                     select_sum += last_line_chars;
00508                     if( last_line_chars == 0 ){
00509                         //  最終行の先頭にキャレットがある場合は
00510                         //  その行を行数に含めない
00511                         --select_line;
00512                     }
00513                 }
00514                 else
00515                 {
00516                     //  最終行が空行なら
00517                     //  その行を行数に含めない
00518                     --select_line;
00519                 }
00520             }
00521         }
00522
00523 #ifdef _DEBUG
00524         auto_sprintf( msg, _T("%d bytes (%d lines) selected. [%d:%d]-[%d:%d]"),
00525             select_sum, select_line,
00526             m_sSelect.GetFrom().x, m_sSelect.GetFrom().y,
00527             m_sSelect.GetTo().x, m_sSelect.GetTo().y );
00528 #else
00529         auto_sprintf( msg, _T("%d bytes (%d lines) selected."), select_sum, select_line );
00530 #endif
00531     }
00532     pView->m_pcEditDoc->m_pcEditWnd->m_cStatusBar.SendStatusMessage2( msg );
00533 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewSelect.h

sakura_core

CViewSelect.h

#include "basis/SakuraBasis.h"

CViewSelect.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CViewSelect

Sakura-Editorに対してSat Nov 17 20:27:02 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CViewSelect.h ソースファイル

sakura_core

CViewSelect.h

説明を見る。
00001 #pragma once
00002
00003 class CEditView;
00004
00005 #include "basis/SakuraBasis.h"
00006
00007
00008 class CViewSelect{
00009 public:
00010     CEditView* GetEditView(){ return m_pcEditView; }
00011     const CEditView* GetEditView() const{ return m_pcEditView; }
00012
00013 public:
00014     CViewSelect(CEditView* pcEditView);
00015     void CopySelectStatus(CViewSelect* pSelect) const;
00016
00017     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00018     //                      選択範囲の変更                         //
00019     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00020     void DisableSelectArea( bool bDraw );
00021
00022     void BeginSelectArea();                             // 現在のカーソル位置から選択を開始する
00023     void ChangeSelectAreaByCurrentCursor( const CLayoutPoint& ptCaretPos );         // 現在のカーソル位置によって選択範囲を変更
00024     void ChangeSelectAreaByCurrentCursorTEST( const CLayoutPoint& ptCaretPos, CLayoutRange* pSelect );// 現在のカーソル位置によって選択範囲を変更
00025
00027     // 2005.06.24 Moca
00028     void SetSelectArea( const CLayoutRange& sRange )
00029     {
00030         m_sSelectBgn.Set(sRange.GetFrom());
00031         m_sSelect = sRange;
00032     }
00033
00035     void SelectBeginWord()
00036     {
00037         m_bBeginSelect     = true;              /* 範囲選択中 */
00038         m_bBeginBoxSelect  = false;         /* 矩形範囲選択中でない */
00039         m_bBeginLineSelect = false;         /* 行単位選択中 */
00040         m_bBeginWordSelect = true;          /* 単語単位選択中 */
00041     }
00042
00044     void SelectBeginBox()
00045     {
00046         m_bBeginSelect     = true;          /* 範囲選択中 */
00047         m_bBeginBoxSelect  = true;      /* 矩形範囲選択中 */
00048         m_bBeginLineSelect = false;     /* 行単位選択中 */
00049         m_bBeginWordSelect = false;     /* 単語単位選択中 */
00050     }
00051
00053     void SelectBeginNazo()
00054     {
00055         m_bBeginSelect     = true;          /* 範囲選択中 */
00056 //      m_bBeginBoxSelect  = FALSE;     /* 矩形範囲選択中でない */
00057         m_bBeginLineSelect = false;     /* 行単位選択中 */
00058         m_bBeginWordSelect = false;     /* 単語単位選択中 */
00059     }
00060
00062     void SelectEnd()
00063     {
00064         m_bBeginSelect = false;
00065     }
00066
00068     void SetBoxSelect(bool b)
00069     {
00070         m_bBeginBoxSelect = b;
00071     }
00072
00073     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00074     //                           描画                              //
00075     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00076     void DrawSelectArea() const;
00077     void DrawSelectAreaLine(
00078         HDC                 hdc,
00079         CLayoutInt          nLineNum,
00080         const CLayoutRange& sRange
00081     ) const;
00082
00084     void PrintSelectionInfoMsg() const;
00085
00086     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00087     //                         状態取得                            //
00088     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00090     // 2002/03/29 Azumaiya インライン関数化
00091     bool IsTextSelected() const
00092     {
00093         return m_sSelect.IsValid();
00094 //      return 0!=(
00095 //          ~((DWORD)(m_sSelect.nLineFrom | m_sSelect.nLineTo | m_sSelect.nColmFrom | m_sSelect.nColmTo)) >> 31
00096 //          );
00097     }
00098
00100     // 2002/03/29 Azumaiya インライン関数化
00101     bool IsTextSelecting() const
00102     {
00103         // ジャンプ回数を減らして、一気に判定。
00104         return m_bSelectingLock || IsTextSelected();
00105     }
00106
00108     bool IsMouseSelecting() const
00109     {
00110         return m_bBeginSelect;
00111     }
00112
00114     bool IsBoxSelecting() const
00115     {
00116         return m_bBeginBoxSelect;
00117     }
00118
00119
00120 private:
00121     //参照
00122     CEditView*  m_pcEditView;
00123
00124 public:
00125
00126
00127     mutable bool    m_bDrawSelectArea;      // 選択範囲を描画したか   // 02/12/13 ai
00128
00129     // 選択状態
00130     bool    m_bSelectingLock;       // 選択状態のロック
00131 private:
00132     bool    m_bBeginSelect;         // 範囲選択中
00133     bool    m_bBeginBoxSelect;      // 矩形範囲選択中
00134 public:
00135     bool    m_bBeginLineSelect;     // 行単位選択中
00136     bool    m_bBeginWordSelect;     // 単語単位選択中
00137
00138     // 選択範囲を保持するための変数群
00139     // これらはすべて折り返し行と、折り返し桁を保持している。
00140     CLayoutRange m_sSelectBgn; //範囲選択(原点)
00141     CLayoutRange m_sSelect;    //範囲選択
00142     CLayoutRange m_sSelectOld; //範囲選択Old
00143
00144     CMyPoint    m_ptMouseRollPosOld;    // マウス範囲選択前回位置(XY座標)
00145 };
00146
00147 /*
00148 m_sSelectOldについて
00149     DrawSelectArea()に現在の選択範囲を教えて差分のみ描画するためのもの
00150     現在の選択範囲をOldへコピーした上で新しい選択範囲をSelectに設定して
00151     DrawSelectArea()を呼びだすことで新しい範囲が描かれる．
00152 */
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWaitCursor.cpp

sakura_core

CWaitCursor.cpp

砂時計カーソル [詳細]

#include "stdafx.h"
#include "CWaitCursor.h"

CWaitCursor.cppのインクルード依存関係図

ソースコードを見る。

説明

砂時計カーソル

作者:
Norio Nakatani

CWaitCursor.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWaitCursor.cpp ソースファイル

sakura_core

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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWaitCursor.h

sakura_core

CWaitCursor.h

砂時計カーソル [詳細]

#include <windows.h>

CWaitCursor.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CWaitCursor
砂時計カーソルクラス [詳細]

説明

砂時計カーソル

作者:
Norio Nakatani

CWaitCursor.h で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWaitCursor.h ソースファイル

sakura_core

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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWnd.cpp

sakura_core

CWnd.cpp

ウィンドウの基本クラス [詳細]

#include "stdafx.h"
#include "CWnd.h"

CWnd.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | CWindowCreationHook

マクロ定義

#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)
static LRESULT CALLBACK | CWindowCreationHook::CBTProc (int nCode, WPARAM wParam, LPARAM lParam)
フック用コールバック
void | CWindowCreationHook::Use ()
フック開始
void | CWindowCreationHook::Unuse ()
フック終了

変数

int | CWindowCreationHook::g_nCnt = 0
HHOOK | CWindowCreationHook::g_hHook = 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 の 21 行で定義されています。

関数

LRESULT CALLBACK CWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |  |

CWnd.cpp の 26 行で定義されています。

参照先 CWnd::DispatchEvent(), GetWindowLongPtr, と GWLP_USERDATA.

参照元 CWindowCreationHook::CBTProc().

Sakura-Editorに対してSat Nov 17 20:27:03 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWnd.cpp ソースファイル

sakura_core

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
00020 #ifndef WM_MOUSEWHEEL
00021     #define WM_MOUSEWHEEL   0x020A
00022 #endif
00023
00024
00025 /* CWndウィンドウメッセージのコールバック関数 */
00026 LRESULT CALLBACK CWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00027 {
00028     CWnd* pCWnd = (CWnd*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00029
00030     if( pCWnd ){
00031         /* クラスオブジェクトのポインタを使ってメッセージを配送する */
00032         return pCWnd->DispatchEvent( hwnd, uMsg, wParam, lParam );
00033     }
00034     else{
00035         /* ふつうはここには来ない */
00036         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00037     }
00038 }
00039
00041 namespace CWindowCreationHook
00042 {
00043     int     g_nCnt  = 0; //参照カウンタ
00044     HHOOK   g_hHook = NULL;
00045
00047     static LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
00048     {
00049         if(nCode==HCBT_CREATEWND){
00050             HWND hwnd = (HWND)wParam;
00051             CBT_CREATEWND* pCreateWnd = (CBT_CREATEWND*)lParam;
00052             CWnd* pcWnd = (CWnd*)pCreateWnd->lpcs->lpCreateParams;
00053
00054             //CWnd以外のウィンドウ生成イベントは無視する
00055             WNDPROC wndproc = (WNDPROC)::GetWindowLongPtr(hwnd, GWLP_WNDPROC);
00056             if(wndproc!=CWndProc)goto next;
00057
00058             //ウィンドウにCWndを関連付ける
00059 			::SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pcWnd);
00060
00061             //CWndにウィンドウを関連付ける
00062             pcWnd->_SetHwnd(hwnd);
00063         }
00064 next:
00065         return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
00066     }
00067
00069     void Use()
00070     {
00071         if(++g_nCnt>=1 && g_hHook==NULL){
00072             g_hHook = ::SetWindowsHookEx(WH_CBT, CBTProc, NULL, GetCurrentThreadId());
00073         }
00074     }
00075
00077     void Unuse()
00078     {
00079         if(--g_nCnt<=0 && g_hHook!=NULL){
00080             ::UnhookWindowsHookEx(g_hHook);
00081             g_hHook=NULL;
00082         }
00083     }
00084 } //namespace CWindowCreationHook
00085
00086
00087 CWnd::CWnd(const TCHAR* pszInheritanceAppend)
00088 {
00089     _tcscpy( m_szClassInheritances, _T("CWnd") );
00090     _tcscat( m_szClassInheritances, pszInheritanceAppend );
00091     m_hInstance = NULL; /* アプリケーションインスタンスのハンドル */
00092     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00093     m_hWnd = NULL;          /* このウィンドウのハンドル */
00094 }
00095
00096 CWnd::~CWnd()
00097 {
00098     if( ::IsWindow( m_hWnd ) ){
00099         /* クラスオブジェクトのポインタをNULLにして拡張ウィンドウメモリに格納しておく */
00100         // Modified by KEITA for WIN64 2003.9.6
00101 		::SetWindowLongPtr( m_hWnd, GWLP_USERDATA, (LONG_PTR)NULL );
00102 		::DestroyWindow( m_hWnd );
00103     }
00104     m_hWnd = NULL;
00105     return;
00106 }
00107
00108
00109 /* 初期化 */
00110 void CWnd::Init(
00111     HINSTANCE   hInstance,      // handle to application instance
00112     HWND        hwndParent // handle to parent or owner window
00113 )
00114 {
00115     m_hInstance = hInstance;
00116     m_hwndParent = hwndParent;
00117     return;
00118 }
00119
00120
00121 /* ウィンドウクラス作成 */
00122 ATOM CWnd::RegisterWC(
00123     /* WNDCLASS用 */
00124     HINSTANCE   hInstance,
00125     HICON       hIcon,          // Handle to the class icon.
00126     HICON       hIconSm,        // Handle to a small icon
00127     HCURSOR     hCursor,        // Handle to the class cursor.
00128     HBRUSH      hbrBackground,  // Handle to the class background brush.
00129     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.
00130     LPCTSTR     lpszClassName   // Pointer to a null-terminated string or is an atom.
00131 )
00132 {
00133     m_hInstance = hInstance;
00134
00135     /* ウィンドウクラスの登録 */
00136     WNDCLASSEX wc;
00137     wc.cbSize = sizeof(wc);
00138     //  Apr. 27, 2000 genta
00139     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00140     wc.style = CS_DBLCLKS;
00141     wc.lpfnWndProc   = CWndProc;
00142     wc.cbClsExtra    = 0;
00143     wc.cbWndExtra    = 32;
00144     wc.hInstance     = m_hInstance;
00145     wc.hIcon         = hIcon;
00146     wc.hCursor       = hCursor;
00147     wc.hbrBackground = hbrBackground;
00148     wc.lpszMenuName  = lpszMenuName;
00149     wc.lpszClassName = lpszClassName;
00150     wc.hIconSm       = hIconSm;
00151     return ::RegisterClassEx( &wc );
00152 }
00153
00154 /* 作成 */
00155 HWND CWnd::Create(
00156     /* CreateWindowEx()用 */
00157     HINSTANCE   hInstance,
00158     HWND        hwndParent,
00159     DWORD       dwExStyle,      // extended window style
00160     LPCTSTR     lpszClassName,  // Pointer to a null-terminated string or is an atom.
00161     LPCTSTR     lpWindowName,   // pointer to window name
00162     DWORD       dwStyle,        // window style
00163     int         x,              // horizontal position of window
00164     int         y,              // vertical position of window
00165     int         nWidth,         // window width
00166     int         nHeight,        // window height
00167     HMENU       hMenu           // handle to menu, or child-window identifier
00168 )
00169 {
00170     m_hInstance = hInstance;
00171     m_hwndParent = hwndParent;
00172
00173     /* ウィンドウ作成前の処理(クラス登録前) ( virtual )*/
00174     PreviCreateWindow();
00175
00176     /* 初期ウィンドウサイズ */
00177     /* ウィンドウの作成 */
00178
00179     //Windowsフックにより、ウィンドウが作成されるタイミングを横取りする 2007.10.01 kobake
00180     CWindowCreationHook::Use();
00181
00182     m_hWnd = ::CreateWindowEx(
00183         dwExStyle, // extended window style
00184         lpszClassName, // pointer to registered class name
00185         lpWindowName, // pointer to window name
00186         dwStyle, // window style
00187         x, // horizontal position of window
00188         y, // vertical position of window
00189         nWidth, // window width
00190         nHeight, // window height
00191         m_hwndParent, // handle to parent or owner window
00192         hMenu, // handle to menu, or child-window identifier
00193         m_hInstance, // handle to application instance
00194         (LPVOID)this    // pointer to window-creation data
00195     );
00196     if( NULL == m_hWnd ){
00197         ::MessageBoxA( m_hwndParent, "CWnd::Create()\n\n::CreateWindowEx failed.", "error", MB_OK );
00198         return NULL;
00199     }
00200
00201     //Windowsフック解除
00202     CWindowCreationHook::Unuse();
00203
00204     /* ウィンドウ作成後の処理 */
00205     AfterCreateWindow();
00206     return m_hWnd;
00207 }
00208
00209
00210 /* メッセージ配送 */
00211 LRESULT CWnd::DispatchEvent( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00212 {
00213     #define CALLH(message, method) case message: return method( hwnd, msg, wp, lp )
00214     switch( msg ){
00215     CALLH( WM_CREATE            , OnCreate          );
00216     CALLH( WM_CLOSE             , OnClose           );
00217     CALLH( WM_DESTROY           , OnDestroy         );
00218     CALLH( WM_SIZE              , OnSize            );
00219     CALLH( WM_MOVE              , OnMove            );
00220     CALLH( WM_COMMAND           , OnCommand         );
00221     CALLH( WM_LBUTTONDOWN       , OnLButtonDown     );
00222     CALLH( WM_LBUTTONUP         , OnLButtonUp       );
00223     CALLH( WM_LBUTTONDBLCLK     , OnLButtonDblClk   );
00224     CALLH( WM_RBUTTONDOWN       , OnRButtonDown     );
00225     CALLH( WM_RBUTTONUP         , OnRButtonUp       );
00226     CALLH( WM_RBUTTONDBLCLK     , OnRButtonDblClk   );
00227     CALLH( WM_MBUTTONDOWN       , OnMButtonDown     );
00228     CALLH( WM_MBUTTONUP         , OnMButtonUp       );
00229     CALLH( WM_MBUTTONDBLCLK     , OnMButtonDblClk   );
00230     CALLH( WM_MOUSEMOVE         , OnMouseMove       );
00231     CALLH( WM_MOUSEWHEEL        , OnMouseWheel      );
00232     CALLH( WM_PAINT             , OnPaint           );
00233     CALLH( WM_TIMER             , OnTimer           );
00234     CALLH( WM_QUERYENDSESSION   , OnQueryEndSession );
00235
00236     CALLH( WM_MEASUREITEM       , OnMeasureItem     );
00237     CALLH( WM_MENUCHAR          , OnMenuChar        );
00238     CALLH( WM_NOTIFY            , OnNotify          );  //@@@ 2003.05.31 MIK
00239     CALLH( WM_DRAWITEM          , OnDrawItem        );  // 2006.02.01 ryoji
00240     CALLH( WM_CAPTURECHANGED    , OnCaptureChanged  );  // 2006.11.30 ryoji
00241
00242 //  CALLH( WM_NCCREATE          , OnNcCreate        );
00243     CALLH( WM_NCDESTROY         , OnNcDestroy       );
00244 //  CALLH( WM_NCCALCSIZE        , OnNcCalcSize      );
00245 //  CALLH( WM_NCHITTEST         , OnNcHitTest       );
00246 //  CALLH( WM_NCPAINT           , OnNcPaint         );
00247 //  CALLH( WM_NCACTIVATE        , OnNcActivate      );
00248 //  CALLH( WM_NCMOUSEMOVE       , OnNcMouseMove     );
00249 //  CALLH( WM_NCLBUTTONDOWN     , OnNcLButtonDown   );
00250 //  CALLH( WM_NCLBUTTONUP       , OnNcLButtonUp     );
00251 //  CALLH( WM_NCLBUTTONDBLCLK   , OnNcLButtonDblClk );
00252 //  CALLH( WM_NCRBUTTONDOWN     , OnNcRButtonDown   );
00253 //  CALLH( WM_NCRBUTTONUP       , OnNcRButtonUp     );
00254 //  CALLH( WM_NCRBUTTONDBLCLK   , OnNcRButtonDblClk );
00255 //  CALLH( WM_NCMBUTTONDOWN     , OnNcMButtonDown   );
00256 //  CALLH( WM_NCMBUTTONUP       , OnNcMButtonUp     );
00257 //  CALLH( WM_NCMBUTTONDBLCLK   , OnNcMButtonDblClk );
00258
00259
00260     /* MDI用 */
00261     CALLH( WM_MDIACTIVATE       , OnMDIActivate     );
00262 //  CALLH( WM_MDICASCADE        , OnMDICascade      );
00263 //  CALLH( WM_MDICREATE         , OnMDICreate       );
00264 //  CALLH( WM_MDIDESTROY        , OnMDIDestroy      );
00265 //  CALLH( WM_MDIGETACTIVE      , OnMDIGetActive    );
00266 //  CALLH( WM_MDIICONARRANGE    , OnMDIIconArrange  );
00267 //  CALLH( WM_MDIMAXIMIZE       , OnMDIMaximize     );
00268 //  CALLH( WM_MDINEXT           , OnMDINext         );
00269 //  CALLH( WM_MDIREFRESHMENU    , OnMDIRefreshMenu  );
00270 //  CALLH( WM_MDIRESTORE        , OnMDIRestore      );
00271 //  CALLH( WM_MDISETMENU        , OnMDISetMenu      );
00272 //  CALLH( WM_MDITILE           , OnMDITile         );
00273     default:
00274         if( WM_APP <= msg && msg <= 0xBFFF ){
00275             /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00276             return DispatchEvent_WM_APP( hwnd, msg, wp, lp );
00277         }
00278         break;  /* default */
00279     }
00280     return CallDefWndProc( hwnd, msg, wp, lp );
00281 }
00282
00283 /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00284 LRESULT CWnd::DispatchEvent_WM_APP( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00285 {
00286     return CallDefWndProc( hwnd, msg, wp, lp );
00287 }
00288
00289
00290
00291 // WM_NCDESTROY
00292 LRESULT CWnd::OnNcDestroy( HWND, UINT, WPARAM, LPARAM )
00293 {
00294     m_hWnd = NULL;
00295     return 0L;
00296 }
00297
00298 /* デフォルトメッセージ処理 */
00299 LRESULT CWnd::CallDefWndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00300 {
00301     return ::DefWindowProc( hwnd, msg, wp, lp );
00302 }
00303
00304
00305 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWnd.h

sakura_core

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 );}

説明

ウィンドウの基本クラス

作者:
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 の 89 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWnd.h ソースファイル

sakura_core

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
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00028
00038 class SAKURA_CORE_API CWnd
00039 {
00040 protected:
00041     friend LRESULT CALLBACK CWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00042 public:
00043     /* Constructors */
00044     CWnd(const TCHAR* pszInheritanceAppend = _T(""));
00045     virtual ~CWnd();
00046     /*
00047     ||  Attributes & Operations
00048     */
00049
00050     void Init( HINSTANCE, HWND );/* 初期化 */
00051
00052     // ウィンドウクラス登録
00053     ATOM RegisterWC(
00054         HINSTANCE   hInstance,
00055         HICON       hIcon,          // Handle to the class icon.
00056         HICON       hIconSm,        // Handle to a small icon
00057         HCURSOR     hCursor,        // Handle to the class cursor.
00058         HBRUSH      hbrBackground,  // Handle to the class background brush.
00059         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.
00060         LPCTSTR     lpszClassName   // Pointer to a null-terminated string or is an atom.
00061     );
00062
00063     //ウィンドウ作成
00064     HWND Create(
00065         HINSTANCE   hInstance,
00066         HWND        hwndParent,
00067         DWORD       dwExStyle,      // extended window style
00068         LPCTSTR     lpszClassName,  // Pointer to a null-terminated string or is an atom.
00069         LPCTSTR     lpWindowName,   // pointer to window name
00070         DWORD       dwStyle,        // window style
00071         int         x,              // horizontal position of window
00072         int         y,              // vertical position of window
00073         int         nWidth,         // window width
00074         int         nHeight,        // window height
00075         HMENU       hMenu           // handle to menu, or child-window identifier
00076     );
00077
00078     virtual LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );/* メッセージ配送 */
00079 protected:
00080     /* 仮想関数 */
00081     virtual LRESULT DispatchEvent_WM_APP( HWND, UINT, WPARAM, LPARAM );/* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00082     virtual void PreviCreateWindow( void ){return;};/* ウィンドウ作成前の処理(クラス登録前) ( virtual )*/
00083     virtual void AfterCreateWindow( void ){::ShowWindow( m_hWnd, SW_SHOW );}/* ウィンドウ作成後の処理 ( virtual )*/
00084
00085     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00086     virtual LRESULT OnNcDestroy( HWND, UINT, WPARAM, LPARAM );// WM_NCDESTROY
00087
00088     /* 仮想関数 メッセージ処理(デフォルト動作) */
00089     #define DECLH(method) LRESULT method( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ){return CallDefWndProc( hwnd, msg, wp, lp );}
00090     virtual DECLH( OnCreate         );  // WM_CREATE
00091     virtual DECLH( OnCommand        );  // WM_COMMAND
00092     virtual DECLH( OnPaint          );  // WM_PAINT
00093     virtual DECLH( OnLButtonDown    );  // WM_LBUTTONDOWN
00094     virtual DECLH( OnLButtonUp      );  // WM_LBUTTONUP
00095     virtual DECLH( OnLButtonDblClk  );  // WM_LBUTTONDBLCLK
00096     virtual DECLH( OnRButtonDown    );  // WM_RBUTTONDOWN
00097     virtual DECLH( OnRButtonUp      );  // WM_RBUTTONUP
00098     virtual DECLH( OnRButtonDblClk  );  // WM_RBUTTONDBLCLK
00099     virtual DECLH( OnMButtonDown    );  // WM_MBUTTONDOWN
00100     virtual DECLH( OnMButtonUp      );  // WM_MBUTTONUP
00101     virtual DECLH( OnMButtonDblClk  );  // WM_MBUTTONDBLCLK
00102     virtual DECLH( OnMouseMove      );  // WM_MOUSEMOVE
00103     virtual DECLH( OnMouseWheel     );  // WM_MOUSEWHEEL
00104     virtual DECLH( OnTimer          );  // WM_TIMER
00105     virtual DECLH( OnSize           );  // WM_SIZE
00106     virtual DECLH( OnMove           );  // WM_MOVE
00107     virtual DECLH( OnClose          );  // WM_CLOSE
00108     virtual DECLH( OnDestroy        );  // WM_DSESTROY
00109     virtual DECLH( OnQueryEndSession);  // WM_QUERYENDSESSION
00110
00111     virtual DECLH( OnMeasureItem    );  // WM_MEASUREITEM
00112     virtual DECLH( OnMenuChar       );  // WM_MENUCHAR
00113     virtual DECLH( OnNotify         );  // WM_NOTIFY    //@@@ 2003.05.31 MIK
00114     virtual DECLH( OnDrawItem       );  // WM_DRAWITEM  // 2006.02.01 ryoji
00115     virtual DECLH( OnCaptureChanged );  // WM_CAPTURECHANGED    // 2006.11.30 ryoji
00116
00117 //  virtual DECLH( OnNcCreate           );  // WM_NCCREATE
00118 //  virtual DECLH( OnNcCalcSize         );  // WM_NCCALCSIZE
00119 //  virtual DECLH( OnNcHitTest          );  // WM_NCHITTEST
00120 //  virtual DECLH( OnNcPaint            );  // WM_NCPAINT
00121 //  virtual DECLH( OnNcActivate         );  // WM_NCACTIVATE
00122 //  virtual DECLH( OnNcMouseMove        );  // WM_NCMOUSEMOVE
00123 //  virtual DECLH( OnNcLButtonDown      );  // WM_NCLBUTTONDOWN
00124 //  virtual DECLH( OnNcLButtonUp        );  // WM_NCLBUTTONUP
00125 //  virtual DECLH( OnNcLButtonDblClk    );  // WM_NCLBUTTONDBLCLK
00126 //  virtual DECLH( OnNcRButtonDown      );  // WM_NCRBUTTONDOWN
00127 //  virtual DECLH( OnNcRButtonUp        );  // WM_NCRBUTTONUP
00128 //  virtual DECLH( OnNcRButtonDblClk    );  // WM_NCRBUTTONDBLCLK
00129 //  virtual DECLH( OnNcMButtonDown      );  // WM_NCMBUTTONDOWN
00130 //  virtual DECLH( OnNcMButtonUp        );  // WM_NCMBUTTONUP
00131 //  virtual DECLH( OnNcMButtonDblClk    );  // WM_NCMBUTTONDBLCLK
00132
00133
00134     /* MDI用 */
00135     virtual DECLH( OnMDIActivate    );  // WM_MDIACTIVATE
00136 //  virtual DECLH( OnMDICascade     );  // WM_MDICASCADE
00137 //  virtual DECLH( OnMDICreate      );  // WM_MDICREATE
00138 //  virtual DECLH( OnMDIDestroy     );  // WM_MDIDESTROY
00139 //  virtual DECLH( OnMDIGetActive   );  // WM_MDIGETACTIVE
00140 //  virtual DECLH( OnMDIIconArrange );  // WM_MDIICONARRANGE
00141 //  virtual DECLH( OnMDIMaximize    );  // WM_MDIMAXIMIZE
00142 //  virtual DECLH( OnMDINext        );  // WM_MDINEXT
00143 //  virtual DECLH( OnMDIRefreshMenu );  // WM_MDIREFRESHMENU
00144 //  virtual DECLH( OnMDIRestore     );  // WM_MDIRESTORE
00145 //  virtual DECLH( OnMDISetMenu     );  // WM_MDISETMENU
00146 //  virtual DECLH( OnMDITile        );  // WM_MDITILE
00147
00148
00149     /* デフォルトメッセージ処理 */
00150     virtual LRESULT CallDefWndProc( HWND, UINT, WPARAM, LPARAM );
00151
00152 public:
00153     //インターフェース
00154     HWND GetHwnd() const{ return m_hWnd; }
00155     HWND GetParentHwnd() const{ return m_hwndParent; }
00156     HINSTANCE GetAppInstance() const{ return m_hInstance; }
00157
00158     //特殊インターフェース (使用は好ましくない)
00159     void _SetHwnd(HWND hwnd){ m_hWnd = hwnd; }
00160
00161     //ウィンドウ標準操作
00162     void DestroyWindow()
00163     {
00164         if(m_hWnd){
00165             ::DestroyWindow( m_hWnd );
00166             m_hWnd = NULL;
00167         }
00168     }
00169
00170 private: // 2002/2/10 aroka アクセス権変更
00171     TCHAR       m_szClassInheritances[1024];
00172     HINSTANCE   m_hInstance;    // アプリケーションインスタンスのハンドル
00173     HWND        m_hwndParent;   // オーナーウィンドウのハンドル
00174     HWND        m_hWnd;         // このダイアログのハンドル
00175 };
00176
00178 #endif /* _CWND_H_ */
00179
00180
00181 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWordParse.cpp

sakura_core » parse

CWordParse.cpp

#include "stdafx.h"
#include "CWordParse.h"
#include "charcode.h"

CWordParse.cppのインクルード依存関係図

ソースコードを見る。

関数

bool | isCSymbol (wchar_t c)
識別子に使用可能な文字かどうか
bool | isCSymbolZen (wchar_t c)
全角版、識別子に使用可能な文字かどうか
uchar_t | wc_to_c (wchar_t wc)
wcがSJIS1バイト文字ならcharに変換して0〜255を返す。SJIS2バイト文字なら0を返す。
BOOL | IsURL (const wchar_t *pszLine, int nLineLen, int *pnMatchLen)
BOOL | IsMailAddress (const wchar_t *pszBuf, int nBufLen, int *pnAddressLenfth)

関数

bool isCSymbol ( wchar_t c ) [inline]

識別子に使用可能な文字かどうか

CWordParse.cpp の 108 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

bool isCSymbolZen ( wchar_t c ) [inline]

全角版、識別子に使用可能な文字かどうか

CWordParse.cpp の 118 行で定義されています。

参照元 CWordParse::WhatKindOfChar().

BOOL IsMailAddress | ( | const wchar_t * | pszBuf,
 |  | int | nBufLen,
 |  | int * | pnAddressLenfth
 | ) |  |

CWordParse.cpp の 342 行で定義されています。

参照先 FALSE, NULL, と TRUE.

参照元 IsURL(), と CEditView::OnLBUTTONDBLCLK().

BOOL IsURL | ( | const wchar_t * | 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 は頭文字がアルファベット順になるように並べてください。
2007.10.23 kobake UNICODE対応。//$ wchar_t専用のテーブル(または判定ルーチン)を用意したほうが効率は上がるはずです。

CWordParse.cpp の 261 行で定義されています。

参照先 auto_memcmp(), FALSE, IsMailAddress(), TRUE, と wc_to_c().

参照元 CEditView::DispLineNew(), と CEditView::IsCurrentPositionURL().

uchar_t wc_to_c ( wchar_t wc )

wcがSJIS1バイト文字ならcharに変換して0〜255を返す。SJIS2バイト文字なら0を返す。

CWordParse.cpp の 234 行で定義されています。

参照元 IsURL().

Sakura-Editorに対してSat Nov 17 20:27:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWordParse.cpp ソースファイル

sakura_core » parse

CWordParse.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "CWordParse.h"
00003 #include "charcode.h"
00004
00005
00006 //@@@ 2001.06.23 N.Nakatani
00013 bool CWordParse::WhereCurrentWord_2(
00014     const wchar_t*  pLine,          //[in]  調べるメモリ全体の先頭アドレス
00015     CLogicInt       nLineLen,       //[in]  調べるメモリ全体の有効長
00016     CLogicInt       nIdx,           //[out] 調査開始地点:pLineからの相対的な位置
00017     CLogicInt*      pnIdxFrom,      //[out] 単語が見つかった場合は、単語の先頭インデックスを返す。
00018     CLogicInt*      pnIdxTo,        //[out] 単語が見つかった場合は、単語の終端の次のバイトの先頭インデックスを返す。
00019     CNativeW*       pcmcmWord,      //[out] 単語が見つかった場合は、現在単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
00020     CNativeW*       pcmcmWordLeft   //[out] 単語が見つかった場合は、現在単語の左に位置する単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
00021 )
00022 {
00023     using namespace WCODE;
00024
00025     *pnIdxFrom = nIdx;
00026     *pnIdxTo = nIdx;
00027
00028     if( NULL == pLine ){
00029         return false;
00030     }
00031     if( nIdx >= nLineLen ){
00032         return false;
00033     }
00034
00035     // 現在位置の文字の種類によっては選択不能
00036     if( pLine[nIdx] == CR || pLine[nIdx] == LF ){
00037         return false;
00038     }
00039
00040     // 現在位置の文字の種類を調べる
00041     ECharKind nCharKind = WhatKindOfChar( pLine, nLineLen, nIdx );
00042
00043     // 文字種類が変わるまで前方へサーチ
00044     CLogicInt   nIdxNext = nIdx;
00045     CLogicInt   nCharChars = CLogicInt(&pLine[nIdxNext] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nIdxNext] ));
00046     while( nCharChars > 0 ){
00047         CLogicInt   nIdxNextPrev = nIdxNext;
00048         nIdxNext -= nCharChars;
00049         ECharKind   nCharKindNext = WhatKindOfChar( pLine, nLineLen, nIdxNext );
00050         if( nCharKind == CK_ZEN_NOBASU ){
00051             if( nCharKindNext == CK_HIRA ||
00052                 nCharKindNext == CK_ZEN_KATA ){
00053                 nCharKind = nCharKindNext;
00054             }
00055         }
00056         else if( nCharKind == CK_HIRA ||
00057             nCharKind == CK_ZEN_KATA ){
00058             if( nCharKindNext == CK_ZEN_NOBASU ){
00059                 nCharKindNext = nCharKind;
00060             }
00061         }
00062
00063         if( nCharKind != nCharKindNext ){
00064             nIdxNext = nIdxNextPrev;
00065             break;
00066         }
00067         nCharChars = CLogicInt(&pLine[nIdxNext] - CNativeW::GetCharPrev( pLine, nLineLen, &pLine[nIdxNext] ));
00068     }
00069     *pnIdxFrom = nIdxNext;
00070
00071     if( NULL != pcmcmWordLeft ){
00072         pcmcmWordLeft->SetString( &pLine[*pnIdxFrom], nIdx - *pnIdxFrom );
00073     }
00074
00075     // 文字種類が変わるまで後方へサーチ
00076     nIdxNext = nIdx;
00077     nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nIdxNext ); // 2005-09-02 D.S.Koba GetSizeOfChar
00078     while( nCharChars > 0 ){
00079         nIdxNext += nCharChars;
00080         ECharKind   nCharKindNext = WhatKindOfChar( pLine, nLineLen, nIdxNext );
00081         if( nCharKind == CK_ZEN_NOBASU ){
00082             if( nCharKindNext == CK_HIRA || nCharKindNext == CK_ZEN_KATA ){
00083                 nCharKind = nCharKindNext;
00084             }
00085         }
00086         else if( nCharKind == CK_HIRA || nCharKind == CK_ZEN_KATA ){
00087             if( nCharKindNext == CK_ZEN_NOBASU ){
00088                 nCharKindNext = nCharKind;
00089             }
00090         }
00091
00092         if( nCharKind != nCharKindNext ){
00093             break;
00094         }
00095         nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nIdxNext ); // 2005-09-02 D.S.Koba GetSizeOfChar
00096     }
00097     *pnIdxTo = nIdxNext;
00098
00099     if( NULL != pcmcmWord ){
00100         pcmcmWord->SetString( &pLine[*pnIdxFrom], *pnIdxTo - *pnIdxFrom );
00101     }
00102     return true;
00103 }
00104
00105
00106
00108 inline bool isCSymbol(wchar_t c)
00109 {
00110     return
00111         (c==L'_') ||
00112         (c>=L'0' && c<=L'9') ||
00113         (c>=L'A' && c<=L'Z') ||
00114         (c>=L'a' && c<=L'z');
00115 }
00116
00118 inline bool isCSymbolZen(wchar_t c)
00119 {
00120     return
00121         (c==L'＿') ||
00122         (c>=L'０' && c<=L'９') ||
00123         (c>=L'Ａ' && c<=L'Ｚ') ||
00124         (c>=L'ａ' && c<=L'ｚ');
00125 }
00126
00127
00128
00129 // 現在位置の文字の種類を調べる
00130 ECharKind CWordParse::WhatKindOfChar(
00131     const wchar_t*  pData,
00132     int             pDataLen,
00133     int             nIdx
00134 )
00135 {
00136     int nCharChars = CNativeW::GetSizeOfChar( pData, pDataLen, nIdx );
00137     if( nCharChars == 0 ){
00138         return CK_NULL; // NULL
00139     }
00140     else if( nCharChars == 1 ){
00141         using namespace WCODE;
00142         wchar_t c=pData[nIdx];
00143
00144         //今までの半角
00145         if( c == CR              )return CK_CR;
00146         if( c == LF              )return CK_LF;
00147         if( c == TAB             )return CK_TAB;    // タブ
00148         if( c == SPACE           )return CK_SPACE;  // 半角スペース
00149         if( isCSymbol(c)         )return CK_CSYM;   // 識別子に使用可能な文字 (半角英数字、半角アンダースコア)
00150         if( isHankakuKatakana(c) )return CK_KATA;   // 半角のカタカナ
00151
00152         //その他
00153         if( isZenkakuSpace(c)    )return CK_ZEN_SPACE;  // 全角スペース
00154         if( c==L'ー'             )return CK_ZEN_NOBASU;    // 伸ばす記号 'ー'
00155         if( isCSymbolZen(c)      )return CK_ZEN_CSYM;   // 全角版、識別子に使用可能な文字
00156         if( isZenkakuKigou(c)    )return CK_ZEN_KIGO;   // 全角の記号
00157         if( isHiragana(c)        )return CK_HIRA;       // ひらがな
00158         if( isZenkakuKatakana(c) )return CK_ZEN_KATA;   // 全角カタカナ
00159         if( isGreek(c)           )return CK_GREEK;      // ギリシャ文字
00160         if( isCyrillic(c)        )return CK_ZEN_ROS;    // ロシア文字
00161         if( isBoxDrawing(c)      )return CK_ZEN_SKIGO;  // 全角の特殊記号
00162
00163         //未分類
00164         if( isHankaku(c) )return CK_ETC;    // 半角のその他
00165         else return CK_ZEN_ETC;             // 全角のその他(漢字など)
00166     }
00167     else{
00168         return CK_NULL; // NULL
00169     }
00170 }
00171
00172
00173
00174
00175
00180 bool CWordParse::SearchNextWordPosition(
00181     const wchar_t*  pLine,
00182     CLogicInt       nLineLen,
00183     CLogicInt       nIdx,       //  桁数
00184     CLogicInt*      pnColmNew,  //  見つかった位置
00185     BOOL            bStopsBothEnds  //  単語の両端で止まる
00186 )
00187 {
00188     // 文字種類が変わるまで後方へサーチ
00189     // 空白とタブは無視する
00190
00191     // 現在位置の文字の種類を調べる
00192     ECharKind nCharKind = WhatKindOfChar( pLine, nLineLen, nIdx );
00193
00194     CLogicInt nIdxNext = nIdx;
00195     // 2005-09-02 D.S.Koba GetSizeOfChar
00196     CLogicInt nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nIdxNext );
00197     while( nCharChars > 0 ){
00198         nIdxNext += nCharChars;
00199         ECharKind nCharKindNext = WhatKindOfChar( pLine, nLineLen, nIdxNext );
00200         // 空白とタブは無視する
00201         if( nCharKindNext == CK_TAB || nCharKindNext == CK_SPACE ){
00202             if ( bStopsBothEnds && nCharKind != nCharKindNext ){
00203                 *pnColmNew = nIdxNext;
00204                 return true;
00205             }
00206             nCharKind = nCharKindNext;
00207         }
00208         else {
00209             if( nCharKind == CK_ZEN_NOBASU ){
00210                 if( nCharKindNext == CK_HIRA || nCharKindNext == CK_ZEN_KATA ){
00211                     nCharKind = nCharKindNext;
00212                 }
00213             }
00214             else if( nCharKind == CK_HIRA || nCharKind == CK_ZEN_KATA ){
00215                 if( nCharKindNext == CK_ZEN_NOBASU ){
00216                     nCharKindNext = nCharKind;
00217                 }
00218             }
00219
00220             if( nCharKind != nCharKindNext ){
00221                 *pnColmNew = nIdxNext;
00222                 return true;
00223             }
00224         }
00225         // 2005-09-02 D.S.Koba GetSizeOfChar
00226         nCharChars = CNativeW::GetSizeOfChar( pLine, nLineLen, nIdxNext );
00227     }
00228     return false;
00229 }
00230
00231
00232
00234 uchar_t wc_to_c(wchar_t wc)
00235 {
00236     char buf[3]={0,0,0};
00237     int ret=wctomb(buf,wc);
00238     if(ret==-1)return 0;   //エラー
00239     if(buf[1]!=0)return 0; //エラー扱い
00240     return buf[0];         //1バイトで表せたので、これを返す
00241 }
00242
00243 //@@@ 2002.01.24 Start by MIK
00261 BOOL IsURL( const wchar_t *pszLine, int nLineLen, int *pnMatchLen )
00262 {
00263     struct _url_table_t {
00264         wchar_t name[12];
00265         int     length;
00266         bool    is_mail;
00267     };
00268     static const struct _url_table_t    url_table[] = {
00269         /* アルファベット順 */
00270         L"file://",     7,  false, /* 1 */
00271         L"ftp://",      6,  false, /* 2 */
00272         L"gopher://",   9,  false, /* 3 */
00273         L"http://",     7,  false, /* 4 */
00274         L"https://",    8,  false, /* 5 */
00275         L"mailto:",     7,  true,  /* 6 */
00276         L"news:",       5,  false, /* 7 */
00277         L"nntp://",     7,  false, /* 8 */
00278         L"prospero://", 11, false, /* 9 */
00279         L"telnet://",   9,  false, /* 10 */
00280         L"tp://",       5,  false, /* 11 */ //2004.02.02
00281         L"ttp://",      6,  false, /* 12 */ //2004.02.02
00282         L"wais://",     7,  false, /* 13 */
00283         L"{",           0,  false  /* 14 */  /* '{' is 'z'+1 : terminate */
00284     };
00285
00286 /* テーブルの保守性を高めるための定義 */
00287     const char urF = 1;
00288     const char urG = 3;
00289     const char urH = 4;
00290     const char urM = 6;
00291     const char urN = 7;
00292     const char urP = 9;
00293     const char urT = 10;
00294     const char urW = 13;    //2004.02.02
00295
00296     static const char   url_char[] = {
00297       /* +0  +1  +2  +3  +4  +5  +6  +7  +8  +9  +A  +B  +C  +D  +E  +F */
00298           0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    /* +00: */
00299           0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    /* +10: */
00300           0, -1,  0, -1, -1, -1, -1,  0,  0,  0,  0, -1, -1, -1, -1, -1,    /* +20: " !"#$%&'()*+,-./" */
00301          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1,  0, -1,    /* +30: "0123456789:;<=>?" */
00302          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,    /* +40: "@ABCDEFGHIJKLMNO" */
00303          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1,  0,  0, -1,    /* +50: "PQRSTUVWXYZ[\]^_" */
00304           0, -1, -1, -1, -1, -1,urF,urG,urH, -1, -1, -1, -1,urM,urN, -1,    /* +60: "`abcdefghijklmno" */
00305         urP, -1, -1, -1,urT, -1, -1,urW, -1, -1, -1,  0,  0,  0, -1,  0,    /* +70: "pqrstuvwxyz{|}~ " */
00306         /* あと128バイト犠牲にすればif文を2箇所削除できる */
00307         /* 0    : not url char
00308          * -1   : url char
00309          * other: url head char --> url_table array number + 1
00310          */
00311     };
00312
00313     const wchar_t *p = pszLine;
00314     const struct _url_table_t   *urlp;
00315     int i;
00316
00317     if( wc_to_c(*p)==0 ) return FALSE;  /* 2バイト文字 */
00318     if( 0 < url_char[wc_to_c(*p)] ){    /* URL開始文字 */
00319         for(urlp = &url_table[url_char[wc_to_c(*p)]-1]; urlp->name[0] == wc_to_c(*p); urlp++){  /* URLテーブルを探索 */
00320             if( (urlp->length <= nLineLen) && (auto_memcmp(urlp->name, pszLine, urlp->length) == 0) ){  /* URLヘッダは一致した */
00321                 p += urlp->length;  /* URLヘッダ分をスキップする */
00322                 if( urlp->is_mail ){    /* メール専用の解析へ */
00323                     if( IsMailAddress(p, nLineLen - urlp->length, pnMatchLen) ){
00324                         *pnMatchLen = *pnMatchLen + urlp->length;
00325                         return TRUE;
00326                     }
00327                     return FALSE;
00328                 }
00329                 for(i = urlp->length; i < nLineLen; i++, p++){  /* 通常の解析へ */
00330                     if( wc_to_c(*p)==0 || (!(url_char[wc_to_c(*p)])) ) break;   /* 終端に達した */
00331                 }
00332                 if( i == urlp->length ) return FALSE;   /* URLヘッダだけ */
00333                 *pnMatchLen = i;
00334                 return TRUE;
00335             }
00336         }
00337     }
00338     return IsMailAddress(pszLine, nLineLen, pnMatchLen);
00339 }
00340
00341 /* 現在位置がメールアドレスならば、NULL以外と、その長さを返す */
00342 BOOL IsMailAddress( const wchar_t* pszBuf, int nBufLen, int* pnAddressLenfth )
00343 {
00344     int     j;
00345     int     nDotCount;
00346     int     nBgn;
00347
00348
00349     j = 0;
00350     if( (pszBuf[j] >= L'a' && pszBuf[j] <= L'z')
00351      || (pszBuf[j] >= L'A' && pszBuf[j] <= L'Z')
00352      || (pszBuf[j] >= L'0' && pszBuf[j] <= L'9')
00353     ){
00354         j++;
00355     }else{
00356         return FALSE;
00357     }
00358     while( j < nBufLen - 2 &&
00359         (
00360         (pszBuf[j] >= L'a' && pszBuf[j] <= L'z')
00361      || (pszBuf[j] >= L'A' && pszBuf[j] <= L'Z')
00362      || (pszBuf[j] >= L'0' && pszBuf[j] <= L'9')
00363      || (pszBuf[j] == L'.')
00364      || (pszBuf[j] == L'-')
00365      || (pszBuf[j] == L'_')
00366         )
00367     ){
00368         j++;
00369     }
00370     if( j == 0 || j >= nBufLen - 2  ){
00371         return FALSE;
00372     }
00373     if( L'@' != pszBuf[j] ){
00374         return FALSE;
00375     }
00376 //  nAtPos = j;
00377     j++;
00378     nDotCount = 0;
00379 //  nAlphaCount = 0;
00380
00381
00382     while( 1 ){
00383         nBgn = j;
00384         while( j < nBufLen &&
00385             (
00386             (pszBuf[j] >= L'a' && pszBuf[j] <= L'z')
00387          || (pszBuf[j] >= L'A' && pszBuf[j] <= L'Z')
00388          || (pszBuf[j] >= L'0' && pszBuf[j] <= L'9')
00389          || (pszBuf[j] == L'-')
00390          || (pszBuf[j] == L'_')
00391             )
00392         ){
00393             j++;
00394         }
00395         if( 0 == j - nBgn ){
00396             return FALSE;
00397         }
00398         if( L'.' != pszBuf[j] ){
00399             if( 0 == nDotCount ){
00400                 return FALSE;
00401             }else{
00402                 break;
00403             }
00404         }else{
00405             nDotCount++;
00406             j++;
00407         }
00408     }
00409     if( NULL != pnAddressLenfth ){
00410         *pnAddressLenfth = j;
00411     }
00412     return TRUE;
00413 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWordParse.h

sakura_core » parse

CWordParse.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CWordParse

列挙型

enum ECharKind {
CK_NULL, CK_TAB, CK_CR, CK_LF,
CK_SPACE, CK_CSYM, CK_KATA, CK_ETC,
CK_ZEN_SPACE, CK_ZEN_NOBASU, CK_ZEN_CSYM, CK_ZEN_KIGO,
CK_HIRA, CK_ZEN_KATA, CK_GREEK, CK_ZEN_ROS,
CK_ZEN_SKIGO, CK_ZEN_ETC
}
文字種類識別子 [詳細]

関数

SAKURA_CORE_API BOOL | IsURL (const wchar_t *, int, int *)
SAKURA_CORE_API BOOL | IsMailAddress (const wchar_t *, int, int *)

列挙型

enum ECharKind

文字種類識別子

列挙型の値:
CK_NULL | NULL
CK_TAB | タブ 0x9<=c<=0x9
CK_CR | CR = 0x0d
CK_LF | LF = 0x0a
CK_SPACE | 半角のスペース 0x20<=c<=0x20
CK_CSYM | 識別子に使用可能な文字 (英数字、アンダースコア)
CK_KATA | 半角のカタカナ 0xA1<=c<=0xFD
CK_ETC | 半角のその他
CK_ZEN_SPACE | 全角スペース
CK_ZEN_NOBASU | 伸ばす記号 0x815B<=c<=0x815B 'ー'
CK_ZEN_CSYM | 全角版、識別子に使用可能な文字 (英数字、アンダースコア)
CK_ZEN_KIGO | 全角の記号
CK_HIRA | ひらがな
CK_ZEN_KATA | 全角カタカナ
CK_GREEK | ギリシャ文字
CK_ZEN_ROS | ロシア文字:
CK_ZEN_SKIGO | 全角の特殊記号
CK_ZEN_ETC | 全角のその他（漢字など）

CWordParse.h の 6 行で定義されています。

関数

SAKURA_CORE_API BOOL IsMailAddress | ( | const wchar_t * | ,
 |  | int | ,
 |  | int * |
 | ) |  |

CWordParse.cpp の 342 行で定義されています。

参照先 FALSE, NULL, と TRUE.

参照元 IsURL(), と CEditView::OnLBUTTONDBLCLK().

SAKURA_CORE_API BOOL IsURL | ( | const wchar_t * | 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 は頭文字がアルファベット順になるように並べてください。
2007.10.23 kobake UNICODE対応。//$ wchar_t専用のテーブル(または判定ルーチン)を用意したほうが効率は上がるはずです。

CWordParse.cpp の 261 行で定義されています。

参照先 auto_memcmp(), FALSE, IsMailAddress(), TRUE, と wc_to_c().

参照元 CEditView::DispLineNew(), と CEditView::IsCurrentPositionURL().

Sakura-Editorに対してSat Nov 17 20:27:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWordParse.h ソースファイル

sakura_core » parse

CWordParse.h

説明を見る。
00001 //2007.09.30 kobake CDocLineMgr から分離
00002
00003 #pragma once
00004
00006 enum ECharKind{
00007     CK_NULL,
00008     CK_TAB,
00009     CK_CR,
00010     CK_LF,
00011
00012     CK_SPACE,
00013     CK_CSYM,
00014     CK_KATA,
00015     CK_ETC,
00016
00017     CK_ZEN_SPACE,
00018     CK_ZEN_NOBASU,
00019     CK_ZEN_CSYM,
00020
00021     CK_ZEN_KIGO,
00022     CK_HIRA,
00023     CK_ZEN_KATA,
00024     CK_GREEK,
00025     CK_ZEN_ROS,
00026     CK_ZEN_SKIGO,
00027     CK_ZEN_ETC,
00028 };
00029
00030 class CWordParse{
00031 public:
00032     //2001.06.23 N.Nakatani
00033     //2007.09.30 kobake     CDocLineMgrから移動
00040     static bool WhereCurrentWord_2(
00041         const wchar_t*  pLine,          //[in]  調べるメモリ全体の先頭アドレス
00042         CLogicInt       nLineLen,       //[in]  調べるメモリ全体の有効長
00043         CLogicInt       nIdx,           //[out] 調査開始地点:pLineからの相対的な位置
00044         CLogicInt*      pnIdxFrom,      //[out] 単語が見つかった場合は、単語の先頭インデックスを返す。
00045         CLogicInt*      pnIdxTo,        //[out] 単語が見つかった場合は、単語の終端の次のバイトの先頭インデックスを返す。
00046         CNativeW*       pcmcmWord,      //[out] 単語が見つかった場合は、現在単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
00047         CNativeW*       pcmcmWordLeft   //[out] 単語が見つかった場合は、現在単語の左に位置する単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
00048     );
00049
00051     static ECharKind WhatKindOfChar(
00052         const wchar_t*  pData,
00053         int             pDataLen,
00054         int             nIdx
00055     );
00056
00057     //  pLine（長さ：nLineLen）の文字列から次の単語を探す。探し始める位置はnIdxで指定。
00058     static bool SearchNextWordPosition(
00059         const wchar_t*  pLine,
00060         CLogicInt       nLineLen,
00061         CLogicInt       nIdx,       //  桁数
00062         CLogicInt*      pnColmNew,  //  見つかった位置
00063         BOOL            bStopsBothEnds  //  単語の両端で止まる
00064     );
00065 };
00066
00067 SAKURA_CORE_API BOOL IsURL( const wchar_t*, int, int* );/* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
00068 SAKURA_CORE_API BOOL IsMailAddress( const wchar_t*, int, int* );    /* 現在位置がメールアドレスならば、NULL以外と、その長さを返す */
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSH.cpp

sakura_core

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 "OleTypes.h"
#include "io/CTextStream.h"
#include "util/os.h"

CWSH.cppのインクルード依存関係図

ソースコードを見る。

構成

class | CInterfaceObjectTypeInfo
class | CWSHSite

関数

static HRESULT | MacroCommand (EFunctionCode 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 | ( | EFunctionCode | ID,
 |  | DISPPARAMS * | Arguments,
 |  | VARIANT * | Result,
 |  | void * | Data |
 | ) |  |  | [static]

マクロコマンドの実行

日付:
2005.06.27 zenryaku 戻り値の受け取りが無くてもエラーにせずに関数を実行する

CWSH.cpp の 602 行で定義されています。

参照先 Variant::Data, F_FUNCTION_FIRST, CMacro::HandleCommand(), CMacro::HandleFunction(), NULL, と Wrap().

参照元 CWSHMacroManager::ReadyCommands().

static void MacroError | ( | BSTR | Description,
 |  | BSTR | Source,
 |  | void * | Data |
 | ) |  |  | [static]

CWSH.cpp の 650 行で定義されています。

参照先 CEditView::m_hWnd, と NULL.

参照元 CWSHMacroManager::ExecKeyMacro().

Sakura-Editorに対してSat Nov 17 20:27:04 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSH.cpp ソースファイル

sakura_core

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 "OleTypes.h"
00027 #include "io/CTextStream.h"
00028 #include "util/os.h"
00029
00030 //スクリプトに渡されるオブジェクトの情報
00031 class CInterfaceObjectTypeInfo: public ImplementsIUnknown<ITypeInfo>
00032 {
00033 private:
00034     CInterfaceObject *m_Object;
00035     TYPEATTR m_TypeAttr;
00036 public:
00037     CInterfaceObjectTypeInfo(CInterfaceObject *AObject);
00038
00039     virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
00040                     /* [out] */ TYPEATTR __RPC_FAR *__RPC_FAR *ppTypeAttr)
00041     {
00042 #ifdef TEST
00043         cout << "GetTypeAttr" << endl;
00044 #endif
00045         *ppTypeAttr = &m_TypeAttr;
00046         return S_OK;
00047     }
00048
00049     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
00050                     /* [out] */ ITypeComp __RPC_FAR *__RPC_FAR *ppTComp)
00051     {
00052 #ifdef TEST
00053         cout << "GetTypeComp" << endl;
00054 #endif
00055         return E_NOTIMPL;
00056     }
00057
00058     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFuncDesc(
00059                 /* [in] */ UINT index,
00060                 /* [out] */ FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc);
00061
00062     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetVarDesc(
00063         /* [in] */ UINT index,
00064         /* [out] */ VARDESC __RPC_FAR *__RPC_FAR *ppVarDesc)
00065     {
00066         return E_NOTIMPL;
00067     }
00068
00069     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetNames(
00070         /* [in] */ MEMBERID memid,
00071         /* [length_is][size_is][out] */ BSTR __RPC_FAR *rgBstrNames,
00072         /* [in] */ UINT cMaxNames,
00073         /* [out] */ UINT __RPC_FAR *pcNames);
00074
00075     virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
00076         /* [in] */ UINT index,
00077         /* [out] */ HREFTYPE __RPC_FAR *pRefType)
00078     {
00079         return E_NOTIMPL;
00080     }
00081
00082     virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
00083         /* [in] */ UINT index,
00084         /* [out] */ INT __RPC_FAR *pImplTypeFlags)
00085     {
00086         return E_NOTIMPL;
00087     }
00088
00089     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetIDsOfNames(
00090         /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
00091         /* [in] */ UINT cNames,
00092         /* [size_is][out] */ MEMBERID __RPC_FAR *pMemId)
00093     {
00094         return E_NOTIMPL;
00095     }
00096
00097     virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke(
00098         /* [in] */ PVOID pvInstance,
00099         /* [in] */ MEMBERID memid,
00100         /* [in] */ WORD wFlags,
00101         /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
00102         /* [out] */ VARIANT __RPC_FAR *pVarResult,
00103         /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
00104         /* [out] */ UINT __RPC_FAR *puArgErr)
00105     {
00106         return E_NOTIMPL;
00107     }
00108
00109     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation(
00110         /* [in] */ MEMBERID memid,
00111         /* [out] */ BSTR __RPC_FAR *pBstrName,
00112         /* [out] */ BSTR __RPC_FAR *pBstrDocString,
00113         /* [out] */ DWORD __RPC_FAR *pdwHelpContext,
00114         /* [out] */ BSTR __RPC_FAR *pBstrHelpFile)
00115     {
00116         //  Feb. 08, 2004 genta
00117         //  とりあえず全部NULLを返す (情報無し)
00118         pBstrName = NULL;
00119         pBstrDocString = NULL;
00120         pdwHelpContext = NULL;
00121         pBstrHelpFile = NULL;
00122         return S_OK ;
00123     }
00124
00125     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDllEntry(
00126         /* [in] */ MEMBERID memid,
00127         /* [in] */ INVOKEKIND invKind,
00128         /* [out] */ BSTR __RPC_FAR *pBstrDllName,
00129         /* [out] */ BSTR __RPC_FAR *pBstrName,
00130         /* [out] */ WORD __RPC_FAR *pwOrdinal)
00131     {
00132         return E_NOTIMPL;
00133     }
00134
00135     virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
00136         /* [in] */ HREFTYPE hRefType,
00137         /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
00138     {
00139         return E_NOTIMPL;
00140     }
00141
00142     virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddressOfMember(
00143         /* [in] */ MEMBERID memid,
00144         /* [in] */ INVOKEKIND invKind,
00145         /* [out] */ PVOID __RPC_FAR *ppv)
00146     {
00147         return E_NOTIMPL;
00148     }
00149
00150     virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance(
00151         /* [in] */ IUnknown __RPC_FAR *pUnkOuter,
00152         /* [in] */ REFIID riid,
00153         /* [iid_is][out] */ PVOID __RPC_FAR *ppvObj)
00154     {
00155         return E_NOTIMPL;
00156     }
00157
00158     virtual HRESULT STDMETHODCALLTYPE GetMops(
00159         /* [in] */ MEMBERID memid,
00160         /* [out] */ BSTR __RPC_FAR *pBstrMops)
00161     {
00162         return E_NOTIMPL;
00163     }
00164
00165     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
00166         /* [out] */ ITypeLib __RPC_FAR *__RPC_FAR *ppTLib,
00167         /* [out] */ UINT __RPC_FAR *pIndex)
00168     {
00169         return E_NOTIMPL;
00170     }
00171
00172     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseTypeAttr(
00173                     /* [in] */ TYPEATTR __RPC_FAR *pTypeAttr)
00174     {
00175     }
00176
00177     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseFuncDesc(
00178                     /* [in] */ FUNCDESC __RPC_FAR *pFuncDesc)
00179     {
00180     }
00181
00182     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseVarDesc(
00183                 /* [in] */ VARDESC __RPC_FAR *pVarDesc)
00184     {
00185     }
00186 };
00187
00188 //IActiveScriptSite, IActiveScriptSiteWindow
00193 class CWSHSite: public IActiveScriptSite, public IActiveScriptSiteWindow
00194 {
00195 private:
00196     CWSHClient *m_Client;
00197     ITypeInfo *m_TypeInfo;
00198     ULONG m_RefCount;
00199 public:
00200     CWSHSite(CWSHClient *AClient): m_RefCount(0), m_Client(AClient)
00201     {
00202     }
00203
00204     virtual ULONG _stdcall AddRef() {
00205         return ++m_RefCount;
00206     }
00207
00208     virtual ULONG _stdcall Release() {
00209         if(--m_RefCount == 0)
00210         {
00211             delete this;
00212             return 0;
00213         }
00214         return m_RefCount;
00215     }
00216
00217     virtual HRESULT STDMETHODCALLTYPE QueryInterface(
00218         /* [in] */ REFIID iid,
00219         /* [out] */ void ** ppvObject)
00220     {
00221         *ppvObject = NULL;
00222
00223         if(iid == IID_IActiveScriptSiteWindow){
00224             *ppvObject = static_cast<IActiveScriptSiteWindow*>(this);
00225             ++m_RefCount;
00226             return S_OK;
00227         }
00228
00229         return E_NOTIMPL;
00230     }
00231
00232     virtual HRESULT STDMETHODCALLTYPE GetLCID(
00233         /* [out] */ LCID *plcid)
00234     {
00235 #ifdef TEST
00236         cout << "GetLCID" << endl;
00237 #endif
00238         return E_NOTIMPL; //システムデフォルトを使用
00239     };
00240
00241     virtual HRESULT STDMETHODCALLTYPE GetItemInfo(
00242         /* [in] */ LPCOLESTR pstrName,
00243         /* [in] */ DWORD dwReturnMask,
00244         /* [out] */ IUnknown **ppiunkItem,
00245         /* [out] */ ITypeInfo **ppti)
00246     {
00247 #ifdef TEST
00248         wcout << L"GetItemInfo:" << pstrName << endl;
00249 #endif
00250         //  Nov. 10, 2003 FILE Win9Xでは、[lstrcmpiW]が無効のため、[_wcsicmp]に修正
00251         if(_wcsicmp(pstrName, L"Editor") == 0)
00252         {
00253             if(dwReturnMask & SCRIPTINFO_IUNKNOWN)
00254             {
00255                 (*ppiunkItem) = m_Client->m_InterfaceObject;
00256                 (*ppiunkItem)->AddRef();
00257             }
00258             if(dwReturnMask & SCRIPTINFO_ITYPEINFO)
00259             {
00260                 m_Client->m_InterfaceObject->GetTypeInfo(0, 0, ppti);
00261             }
00262             return S_OK;
00263         }
00264         return TYPE_E_ELEMENTNOTFOUND;
00265     };
00266
00267     virtual HRESULT STDMETHODCALLTYPE GetDocVersionString(
00268         /* [out] */ BSTR *pbstrVersion)
00269     {
00270 #ifdef TEST
00271         cout << "GetDocVersionString" << endl;
00272 #endif
00273         return E_NOTIMPL;
00274     };
00275
00276     virtual HRESULT STDMETHODCALLTYPE OnScriptTerminate(
00277         /* [in] */ const VARIANT *pvarResult,
00278         /* [in] */ const EXCEPINFO *pexcepinfo)
00279     {
00280 #ifdef TEST
00281         cout << "OnScriptTerminate" << endl;
00282 #endif
00283         return S_OK;
00284     };
00285
00286     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
00287         /* [in] */ SCRIPTSTATE ssScriptState)
00288     {
00289 #ifdef TEST
00290         cout << "OnStateChange" << endl;
00291 #endif
00292         return S_OK;
00293     };
00294
00295     //  Nov. 3, 2002 鬼
00296     //  エラー行番号表示対応
00297     virtual HRESULT STDMETHODCALLTYPE OnScriptError(
00298       /* [in] */ IActiveScriptError *pscripterror)
00299     {
00300         EXCEPINFO Info;
00301         if(pscripterror->GetExceptionInfo(&Info) == S_OK)
00302         {
00303             DWORD Context;
00304             ULONG Line;
00305             LONG Pos;
00306             if(pscripterror->GetSourcePosition(&Context, &Line, &Pos) == S_OK)
00307             {
00308                 wchar_t *Message = new wchar_t[SysStringLen(Info.bstrDescription) + 128];
00309                 //  Nov. 10, 2003 FILE Win9Xでは、[wsprintfW]が無効のため、[auto_sprintf]に修正
00310                 const wchar_t* szDesc=Info.bstrDescription;
00311                 auto_sprintf(Message, L"[Line %d] %ls", Line + 1, szDesc);
00312                 SysReAllocString(&Info.bstrDescription, Message);
00313                 delete[] Message;
00314             }
00315             m_Client->Error(Info.bstrDescription, Info.bstrSource);
00316             SysFreeString(Info.bstrSource);
00317             SysFreeString(Info.bstrDescription);
00318             SysFreeString(Info.bstrHelpFile);
00319         }
00320         return S_OK;
00321     };
00322
00323     virtual HRESULT STDMETHODCALLTYPE OnEnterScript() {
00324 #ifdef TEST
00325         cout << "OnEnterScript" << endl;
00326 #endif
00327         return S_OK;
00328     };
00329
00330     virtual HRESULT STDMETHODCALLTYPE OnLeaveScript() {
00331 #ifdef TEST
00332         cout << "OnLeaveScript" << endl;
00333 #endif
00334         return S_OK;
00335     };
00336
00337     //  Sep. 15, 2005 FILE IActiveScriptSiteWindow実装
00338     virtual HRESULT __stdcall GetWindow(
00339         /* [out] */ HWND *phwnd)
00340     {
00341         *phwnd = reinterpret_cast<CEditView*>(m_Client->m_Data)->m_pcEditDoc->GetSplitterHwnd();
00342         return S_OK;
00343     }
00344
00345     //  Sep. 15, 2005 FILE IActiveScriptSiteWindow実装
00346     virtual HRESULT __stdcall EnableModeless(
00347         /* [in] */ BOOL fEnable)
00348     {
00349         return S_OK;
00350     };
00351 };
00352
00353 //implementation
00354
00355 CInterfaceObjectTypeInfo::CInterfaceObjectTypeInfo(CInterfaceObject *AObject)
00356                 : ImplementsIUnknown<ITypeInfo>(), m_Object(AObject)
00357 {
00358     ZeroMemory(&m_TypeAttr, sizeof(m_TypeAttr));
00359     m_TypeAttr.cImplTypes = 0; //親クラスのITypeInfoの数
00360     m_TypeAttr.cFuncs = m_Object->m_Methods.size();
00361 }
00362
00363 HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetFuncDesc(
00364             /* [in] */ UINT index,
00365             /* [out] */ FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc)
00366 {
00367 #ifdef TEST
00368     cout << "GetFuncDesc" << endl;
00369 #endif
00370     *ppFuncDesc = &(m_Object->m_Methods[index].Desc);
00371     return S_OK;
00372 }
00373
00374 HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetNames(
00375     /* [in] */ MEMBERID memid,
00376     /* [length_is][size_is][out] */ BSTR __RPC_FAR *rgBstrNames,
00377     /* [in] */ UINT cMaxNames,
00378     /* [out] */ UINT __RPC_FAR *pcNames)
00379 {
00380 #ifdef TEST
00381         cout << "GetNames" << endl;
00382 #endif
00383     *pcNames = 1;
00384     if(cMaxNames > 0)
00385         *rgBstrNames = SysAllocString(m_Object->m_Methods[memid].Name);
00386     return S_OK;
00387 }
00388
00389 //スクリプトに渡されるオブジェクト
00390 CInterfaceObject::CInterfaceObject(CWSHClient *AOwner): ImplementsIUnknown<IDispatch>(),
00391                 m_Methods(), m_TypeInfo(NULL), m_Owner(AOwner)
00392 {
00393 };
00394
00395 CInterfaceObject::~CInterfaceObject()
00396 {
00397     if(m_TypeInfo != NULL)
00398         m_TypeInfo->Release();
00399 }
00400
00401
00402 HRESULT STDMETHODCALLTYPE CInterfaceObject::QueryInterface(REFIID iid, void ** ppvObject)
00403 {
00404     if(ppvObject == NULL)
00405         return E_POINTER;
00406     else if(IsEqualIID(iid, IID_IUnknown) || IsEqualIID(iid, IID_IDispatch))
00407     {
00408         AddRef();
00409         *ppvObject = this;
00410         return S_OK;
00411     }
00412     else
00413         return E_NOINTERFACE;
00414 }
00415
00416 HRESULT STDMETHODCALLTYPE CInterfaceObject::Invoke(
00417                 DISPID dispidMember,
00418                 REFIID riid,
00419                 LCID lcid,
00420                 WORD wFlags,
00421                 DISPPARAMS FAR* pdispparams,
00422                 VARIANT FAR* pvarResult,
00423                 EXCEPINFO FAR* pexcepinfo,
00424                 UINT FAR* puArgErr)
00425 {
00426     if((unsigned)dispidMember < m_Methods.size())
00427         return (*m_Methods[dispidMember].Method)(m_Methods[dispidMember].ID, pdispparams, pvarResult, m_Owner->m_Data);
00428     else
00429         return E_UNEXPECTED;
00430 }
00431
00432 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfo(
00433                 /* [in] */ UINT iTInfo,
00434                 /* [in] */ LCID lcid,
00435                 /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
00436 {
00437     if(m_TypeInfo == NULL)
00438     {
00439         m_TypeInfo = new CInterfaceObjectTypeInfo(this);
00440         m_TypeInfo->AddRef();
00441     }
00442
00443     (*ppTInfo) = m_TypeInfo;
00444     (*ppTInfo)->AddRef();
00445     return S_OK;
00446 }
00447
00448 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfoCount(
00449                 /* [out] */ UINT __RPC_FAR *pctinfo)
00450 {
00451     *pctinfo = 1;
00452     return S_OK;
00453 }
00454
00455 #ifdef __BORLANDC__
00456 #pragma argsused
00457 #endif
00458 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetIDsOfNames(
00459   REFIID riid,
00460   OLECHAR FAR* FAR* rgszNames,
00461   UINT cNames,
00462   LCID lcid,
00463   DISPID FAR* rgdispid)
00464 {
00465     for(unsigned I = 0; I < cNames; ++I)
00466     {
00467 #ifdef TEST
00468         wcout << L"GetIDsOfNames:" << rgszNames[I] << endl;
00469 #endif
00470         for(unsigned J = 0; J < m_Methods.size(); ++J)
00471         {
00472             //  Nov. 10, 2003 FILE Win9Xでは、[lstrcmpiW]が無効のため、[_wcsicmp]に修正
00473             if(_wcsicmp(rgszNames[I], m_Methods[J].Name) == 0)
00474             {
00475                 rgdispid[I] = J;
00476                 goto Found;
00477             }
00478         }
00479         return DISP_E_UNKNOWNNAME;
00480         Found:
00481         ;
00482     }
00483     return S_OK;
00484 }
00485
00486 void CInterfaceObject::AddMethod(
00487     wchar_t*                Name,
00488     EFunctionCode           ID,
00489     VARTYPE*                ArgumentTypes,
00490     int                     ArgumentCount,
00491     VARTYPE                 ResultType,
00492     CInterfaceObjectMethod  Method
00493 )
00494 {
00495     m_Methods.push_back(CMethodInfo());
00496     CMethodInfo *Info = &m_Methods[m_Methods.size() - 1];
00497     ZeroMemory(Info, sizeof(CMethodInfo));
00498     Info->Desc.invkind = INVOKE_FUNC;
00499     Info->Desc.cParams = ArgumentCount + 1; //戻り値の分
00500     Info->Desc.lprgelemdescParam = Info->Arguments;
00501     //  Nov. 10, 2003 FILE Win9Xでは、[lstrcpyW]が無効のため、[wcscpy]に修正
00502     wcscpy(Info->Name, Name);
00503     Info->Method = Method;
00504     Info->ID = ID;
00505     for(int I = 0; I < ArgumentCount; ++I)
00506     {
00507         Info->Arguments[I].tdesc.vt = ArgumentTypes[ArgumentCount - I - 1];
00508         Info->Arguments[I].paramdesc.wParamFlags = PARAMFLAG_FIN;
00509     }
00510     Info->Arguments[ArgumentCount].tdesc.vt = ResultType;
00511     Info->Arguments[ArgumentCount].paramdesc.wParamFlags = PARAMFLAG_FRETVAL;
00512 }
00513
00514 CWSHClient::CWSHClient(wchar_t const *AEngine, ScriptErrorHandler AErrorHandler, void *AData):
00515                 m_Engine(NULL), m_Data(AData), m_OnError(AErrorHandler), m_Valid(false)
00516 {
00517     m_InterfaceObject = new CInterfaceObject(this);
00518     m_InterfaceObject->AddRef();
00519
00520     CLSID ClassID;
00521     if(CLSIDFromProgID(AEngine, &ClassID) != S_OK)
00522         Error(L"指名のスクリプトエンジンが見つかりません");
00523     else
00524     {
00525         if(CoCreateInstance(ClassID, 0, CLSCTX_INPROC_SERVER, IID_IActiveScript, reinterpret_cast<void **>(&m_Engine)) != S_OK)
00526             Error(L"指名のスクリプトエンジンが作成できません");
00527         else
00528         {
00529             IActiveScriptSite *Site = new CWSHSite(this);
00530             if(m_Engine->SetScriptSite(Site) != S_OK)
00531             {
00532                 delete Site;
00533                 Error(L"サイトを登録できません");
00534             }
00535             else
00536             {
00537                 m_Valid = true;
00538             }
00539         }
00540     }
00541 }
00542
00543 CWSHClient::~CWSHClient()
00544 {
00545     if(m_InterfaceObject != NULL)
00546         m_InterfaceObject->Release();
00547
00548     if(m_Engine != NULL)
00549         m_Engine->Release();
00550 }
00551
00552 void CWSHClient::Execute(wchar_t const *AScript)
00553 {
00554     IActiveScriptParse *Parser;
00555     if(m_Engine->QueryInterface(IID_IActiveScriptParse, reinterpret_cast<void **>(&Parser)) != S_OK)
00556         Error(L"パーサを取得できません");
00557     else
00558     {
00559         if(Parser->InitNew() != S_OK)
00560             Error(L"初期化できません");
00561         else
00562         {
00563             if(m_Engine->AddNamedItem(L"Editor", SCRIPTITEM_GLOBALMEMBERS | SCRIPTITEM_ISVISIBLE) != S_OK)
00564                 Error(L"オブジェクトを渡せなかった");
00565             else
00566             {
00567                 if(m_Engine->SetScriptState(SCRIPTSTATE_STARTED) != S_OK)
00568                     Error(L"状態変更エラー");
00569                 else
00570                 {
00571                     if(Parser->ParseScriptText(AScript, 0, 0, 0, 0, 0, SCRIPTTEXT_ISVISIBLE, 0, 0) != S_OK)
00572                         Error(L"実行に失敗しました");
00573                 }
00574             }
00575         }
00576         Parser->Release();
00577     }
00578     m_Engine->Close();
00579 }
00580
00581 void CWSHClient::Error(BSTR Description, BSTR Source)
00582 {
00583     if(m_OnError != NULL)
00584         m_OnError(Description, Source, m_Data);
00585 }
00586
00587 void CWSHClient::Error(wchar_t* Description)
00588 {
00589     BSTR S = SysAllocString(L"WSH");
00590     BSTR D = SysAllocString(Description);
00591     Error(D, S);
00592     SysFreeString(S);
00593     SysFreeString(D);
00594 }
00595
00597
00602 static HRESULT MacroCommand(EFunctionCode ID, DISPPARAMS *Arguments, VARIANT* Result, void *Data)
00603 {
00604     CEditView *View = reinterpret_cast<CEditView*>(Data);
00605
00606     if(ID >= F_FUNCTION_FIRST)
00607     {
00608         VARIANT ret; // 2005.06.27 zenryaku 戻り値の受け取りが無くても関数を実行する
00609         VariantInit(&ret);
00610
00611         bool r = CMacro::HandleFunction(View, ID, Arguments->rgvarg, Arguments->cArgs, ret);
00612         if(Result) {::VariantCopyInd(Result, &ret);}
00613         VariantClear(&ret);
00614         return r ? S_OK : E_FAIL;
00615     }
00616     else
00617     {
00618         int ArgCount = Arguments->cArgs;
00619         if(ArgCount > 4) ArgCount = 4;
00620
00621         //  Nov. 29, 2005 FILE 引数を文字列で取得する
00622         WCHAR *StrArgs[4] = {NULL, NULL, NULL, NULL};   // 初期化必須
00623         WCHAR *S = NULL;                                // 初期化必須
00624         Variant varCopy;                            // VT_BYREFだと困るのでコピー用
00625         int Len;
00626         for(int I = 0; I < ArgCount; ++I)
00627         {
00628             if(VariantChangeType(&varCopy.Data, &(Arguments->rgvarg[I]), 0, VT_BSTR) == S_OK)
00629             {
00630                 Wrap(&varCopy.Data.bstrVal)->GetW(&S, &Len);
00631             }
00632             else
00633             {
00634                 S = new WCHAR[1];
00635                 S[0] = 0;
00636             }
00637             StrArgs[ArgCount - I - 1] = S;
00638         }
00639
00640         CMacro::HandleCommand(View, ID, const_cast<WCHAR const **>(StrArgs), ArgCount);
00641
00642         //  Nov. 29, 2005 FILE 配列の破棄なので、[括弧]を追加
00643         for(int J = 0; J < ArgCount; ++J)
00644             delete [] StrArgs[J];
00645
00646         return S_OK;
00647     }
00648 }
00649
00650 static void MacroError(BSTR Description, BSTR Source, void *Data)
00651 {
00652     CEditView *View = reinterpret_cast<CEditView*>(Data);
00653
00654     char MessageA[1024], SourceA[1024];
00655
00656     MessageA[WideCharToMultiByte(CP_ACP, 0, Description, SysStringLen(Description), MessageA, 1023, NULL, NULL)] = 0;
00657     SourceA[WideCharToMultiByte(CP_ACP, 0, Source, SysStringLen(Source), SourceA, 1023, NULL, NULL)] = 0;
00658
00659     MessageBoxA(View->m_hWnd, MessageA, SourceA, MB_ICONERROR);
00660 }
00661
00662
00663 CWSHMacroManager::CWSHMacroManager(std::wstring const AEngineName) : m_EngineName(AEngineName)
00664 {
00665 }
00666
00667 CWSHMacroManager::~CWSHMacroManager()
00668 {
00669 }
00670
00671 void CWSHMacroManager::ReadyCommands(CInterfaceObject *Object, MacroFuncInfo *Info)
00672 {
00673     while(Info->m_nFuncID != -1)    // Aug. 29, 2002 genta 番人の値が変更されたのでここも変更
00674     {
00675         wchar_t FuncName[256];
00676         wcscpy(FuncName, Info->m_pszFuncName);
00677
00678         int ArgCount = 0;
00679         for(int I = 0; I < 4; ++I)
00680             if(Info->m_varArguments[I] != VT_EMPTY)
00681                 ++ArgCount;
00682
00683         Object->AddMethod(
00684             FuncName,
00685             Info->m_nFuncID,
00686             Info->m_varArguments,
00687             ArgCount,
00688             Info->m_varResult,
00689             MacroCommand
00690         );
00691
00692         ++Info;
00693     }
00694 }
00695
00701 void CWSHMacroManager::ExecKeyMacro(CEditView *EditView) const
00702 {
00703     CWSHClient* Engine;
00704     Engine = new CWSHClient(m_EngineName.c_str(), MacroError, EditView);
00705     if(Engine->m_Valid)
00706     {
00707         ReadyCommands(Engine->m_InterfaceObject, CSMacroMgr::m_MacroFuncInfoArr);
00708         ReadyCommands(Engine->m_InterfaceObject, CSMacroMgr::m_MacroFuncInfoNotCommandArr);
00709
00710         Engine->Execute(m_Source.c_str());
00711
00712         //EditView->Redraw();
00713         EditView->GetCaret().ShowEditCaret();
00714     }
00715     delete Engine;
00716 }
00717
00724 BOOL CWSHMacroManager::LoadKeyMacro(HINSTANCE hInstance, const TCHAR* szPath)
00725 {
00726     //ソース読み込み -> m_Source
00727     m_Source=L"";
00728
00729     CTextInputStream in(szPath);
00730     if(!in)
00731         return FALSE;
00732
00733     while(in){
00734         m_Source+=in.ReadLineW()+L"\r\n";
00735     }
00736     return TRUE;
00737 }
00738
00739 CMacroManagerBase* CWSHMacroManager::Creator(const TCHAR* FileExt)
00740 {
00741     TCHAR FileExtWithDot[1024], FileType[1024], EngineName[1024]; //1024を超えたら後は知りません
00742
00743     _tcscpy( FileExtWithDot, _T(".") );
00744     _tcscat( FileExtWithDot, FileExt );
00745
00746     if(ReadRegistry(HKEY_CLASSES_ROOT, FileExtWithDot, NULL, FileType, 1024))
00747     {
00748         lstrcat(FileType, _T("\\ScriptEngine"));
00749         if(ReadRegistry(HKEY_CLASSES_ROOT, FileType, NULL, EngineName, 1024))
00750         {
00751             wchar_t EngineNameW[1024];
00752             _tcstowcs(EngineNameW, EngineName, _countof(EngineNameW));
00753             return new CWSHMacroManager(EngineNameW);
00754         }
00755     }
00756     return NULL;
00757 }
00758
00759 void CWSHMacroManager::declare()
00760 {
00761     //暫定
00762     CMacroFactory::Instance()->RegisterCreator(Creator);
00763 }
00764
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSH.h

sakura_core

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 )(EFunctionCode 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)(EFunctionCode 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 Nov 17 20:27:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSH.h ソースファイル

sakura_core

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 enum EFunctionCode;
00059 typedef HRESULT (*CInterfaceObjectMethod)(EFunctionCode 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         EFunctionCode           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, EFunctionCode 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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSHManager.h

sakura_core

CWSHManager.h

WSH Manager [詳細]

#include <windows.h>
#include <string>
#include "CSMacroMgr.h"
#include "CMacroManagerBase.h"

CWSHManager.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CWSHMacroManager

型定義

typedef void(* | EngineCallback )(wchar_t *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)(wchar_t *Ext, char *EngineName)

CWSHManager.h の 32 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:05 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: CWSHManager.h ソースファイル

sakura_core

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)(wchar_t *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, const TCHAR* Path);
00042
00043     static CMacroManagerBase* Creator(const TCHAR* 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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug.cpp

sakura_core

Debug.cpp

デバッグ用関数 [詳細]

#include "stdafx.h"
#include "debug.h"
#include <tchar.h>
#include "global.h"
#include "Debug3.h"
#include "CEditWnd.h"

Debug.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | TestArrayA
struct | TestArrayW
struct | TestArrayI

関数

void | DebugOutA (LPCSTR lpFmt,...)
書式付きデバッガ出力
HWND | GetMessageBoxOwner (HWND hwndOwner)
SAKURA_CORE_API int | VMessageBoxF_W (HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText, va_list &v)
SAKURA_CORE_API int | VMessageBoxF_A (HWND hwndOwner, UINT uType, LPCSTR lpCaption, LPCSTR lpText, va_list &v)
SAKURA_CORE_API int | MessageBoxF_W (HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText,...)
SAKURA_CORE_API int | MessageBoxF_A (HWND hwndOwner, UINT uType, LPCSTR lpCaption, LPCSTR lpText,...)
void | AssertError (LPCTSTR pszFile, long nLine, BOOL bIsError)
void | DBMSG_IMP (const ACHAR *msg)
メッセージボックスを表示。キャプションにはexe名。

説明

デバッグ用関数

作者:
Norio Nakatani
日付:
2001/06/23 N.Nakatani DebugOut()に微妙〜な修正

2002/01/17 aroka 型の修正

Debug.cpp で定義されています。

関数

void AssertError | ( | LPCTSTR | pszFile,
 |  | long | nLine,
 |  | BOOL | bIsError
 | ) |  |

Debug.cpp の 167 行で定義されています。

参照先 auto_sprintf(), と NULL.

void DBMSG_IMP ( const ACHAR * msg )

メッセージボックスを表示。キャプションにはexe名。

Debug.cpp の 179 行で定義されています。

参照先 _countof, _MAX_PATH, と NULL.

void DebugOutA | ( | LPCSTR | lpFmt,
 |  |  | ...
 | ) |  |

書式付きデバッガ出力

引数:
[in] lpFmt printfの書式付き文字列
引数で与えられた情報をDebugStringとして出力する．

Debug.cpp の 66 行で定義されています。

参照先 DebugMonitor_Output(), NULL, tchar_vsprintf(), と to_wchar().

HWND GetMessageBoxOwner ( HWND hwndOwner )

Debug.cpp の 93 行で定義されています。

参照先 g_pcEditWnd, CEditWnd::GetHwnd(), と NULL.

参照元 VMessageBoxF_A(), と VMessageBoxF_W().

SAKURA_CORE_API int MessageBoxF_A | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCSTR | lpCaption,
 |  | LPCSTR | lpText,
 |  |  | ...
 | ) |  |

Debug.cpp の 153 行で定義されています。

参照先 VMessageBoxF_A().

SAKURA_CORE_API int MessageBoxF_W | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCWSTR | lpCaption,
 |  | LPCWSTR | lpText,
 |  |  | ...
 | ) |  |

Debug.cpp の 145 行で定義されています。

参照先 VMessageBoxF_W().

SAKURA_CORE_API int VMessageBoxF_A | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCSTR | lpCaption,
 |  | LPCSTR | lpText,
 |  | va_list & | v
 | ) |  |

引数:
hwndOwner | [in] オーナーウィンドウのハンドル
uType | [in] メッセージボックスのスタイル (MessageBoxと同じ形式)
lpCaption | [in] メッセージボックスのタイトル
lpText | [in] 表示するテキスト。printf仕様の書式指定が可能。
v | [in/out] 引数リスト

Debug.cpp の 129 行で定義されています。

参照先 GetMessageBoxOwner(), と tchar_vsprintf().

参照元 MessageBoxF_A().

SAKURA_CORE_API int VMessageBoxF_W | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCWSTR | lpCaption,
 |  | LPCWSTR | lpText,
 |  | va_list & | v
 | ) |  |

書式付きメッセージボックス

引数で与えられた情報をダイアログボックスで表示する． デバッグ目的以外でも使用できる．

引数:
hwndOwner | [in] オーナーウィンドウのハンドル
uType | [in] メッセージボックスのスタイル (MessageBoxと同じ形式)
lpCaption | [in] メッセージボックスのタイトル
lpText | [in] 表示するテキスト。printf仕様の書式指定が可能。
v | [in/out] 引数リスト

Debug.cpp の 109 行で定義されています。

参照先 auto_vsprintf(), GetMessageBoxOwner(), と to_achar().

参照元 MessageBoxF_W().

Sakura-Editorに対してSat Nov 17 20:27:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug.cpp ソースファイル

sakura_core

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 #include "global.h"
00021
00022 #ifdef _DEBUG
00023     int gm_ProfileOutput = 0;
00024 #endif
00025
00026 //デバッグウォッチ用の型
00027 struct TestArrayA{ char    a[100]; };
00028 struct TestArrayW{ wchar_t a[100]; };
00029 struct TestArrayI{ int     a[100]; };
00030
00031 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00032 //                   メッセージ出力：実装                      //
00033 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00034
00035 #include "Debug3.h"
00036
00043 #ifdef _UNICODE
00044 void DebugOutW( LPCWSTR lpFmt, ...)
00045 {
00046     //整形
00047     static WCHAR szText[16000];
00048     va_list argList;
00049     va_start(argList, lpFmt);
00050     auto_vsprintf( szText, lpFmt, argList );
00051
00052     //出力
00053     ::OutputDebugStringW( szText );
00054 #ifdef USE_DEBUGMON
00055     DebugMonitor_Output(NULL, to_wchar(szText));
00056 #endif
00057
00058     //ウェイト
00059     ::Sleep(1); // Norio Nakatani, 2001/06/23 大量にトレースするときのために
00060
00061     va_end(argList);
00062     return;
00063 }
00064 #endif
00065
00066 void DebugOutA( LPCSTR lpFmt, ...)
00067 {
00068     //整形
00069     static CHAR szText[16000];
00070     va_list argList;
00071     va_start(argList, lpFmt);
00072 	::tchar_vsprintf( szText, lpFmt, argList );
00073
00074     //出力
00075     ::OutputDebugStringA( szText );
00076 #ifdef USE_DEBUGMON
00077     DebugMonitor_Output(NULL, to_wchar(szText));
00078 #endif
00079
00080     //ウェイト
00081     ::Sleep(1); // Norio Nakatani, 2001/06/23 大量にトレースするときのために
00082
00083     va_end(argList);
00084     return;
00085 }
00086
00087
00088 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00089 //                 メッセージボックス：実装                    //
00090 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00091 #include "global.h"
00092 #include "CEditWnd.h"
00093 HWND GetMessageBoxOwner(HWND hwndOwner)
00094 {
00095     if(hwndOwner==NULL && g_pcEditWnd){
00096         return g_pcEditWnd->GetHwnd();
00097     }
00098     else{
00099         return hwndOwner;
00100     }
00101 }
00102
00109 SAKURA_CORE_API int VMessageBoxF_W(
00110     HWND        hwndOwner,
00111     UINT        uType,
00112     LPCWSTR     lpCaption,
00113     LPCWSTR     lpText,
00114     va_list&    v
00115 )
00116 {
00117     hwndOwner=GetMessageBoxOwner(hwndOwner);
00118     //整形
00119     static WCHAR szBuf[16000];
00120     auto_vsprintf(szBuf,lpText,v);
00121     //API呼び出し
00122 #ifdef _UNICODE
00123     return ::MessageBoxW( hwndOwner, szBuf, lpCaption, uType);
00124 #else
00125     return ::MessageBoxA( hwndOwner, to_achar(szBuf), to_achar(lpCaption), uType);
00126 #endif
00127 }
00128
00129 SAKURA_CORE_API int VMessageBoxF_A(
00130     HWND        hwndOwner,
00131     UINT        uType,
00132     LPCSTR      lpCaption,
00133     LPCSTR      lpText,
00134     va_list&    v
00135 )
00136 {
00137     hwndOwner=GetMessageBoxOwner(hwndOwner);
00138     //整形
00139     static ACHAR szBuf[16000];
00140     tchar_vsprintf(szBuf,lpText,v);
00141     //API呼び出し
00142     return ::MessageBoxA( hwndOwner, szBuf, lpCaption, uType);
00143 }
00144
00145 SAKURA_CORE_API int MessageBoxF_W( HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText, ... )
00146 {
00147     va_list v;
00148     va_start(v,lpText);
00149     int nRet = VMessageBoxF_W(hwndOwner, uType, lpCaption, lpText, v);
00150     va_end(v);
00151     return nRet;
00152 }
00153 SAKURA_CORE_API int MessageBoxF_A( HWND hwndOwner, UINT uType, LPCSTR lpCaption, LPCSTR lpText, ... )
00154 {
00155     va_list v;
00156     va_start(v,lpText);
00157     int nRet = VMessageBoxF_A(hwndOwner, uType, lpCaption, lpText, v);
00158     va_end(v);
00159     return nRet;
00160 }
00161
00162
00163
00164
00165
00166
00167 void AssertError( LPCTSTR pszFile, long nLine, BOOL bIsError )
00168 {
00169     if( !bIsError ){
00170         TCHAR psz[1000];
00171 		::auto_sprintf(psz, _T("%ts\n行 %d でASSERT正当性チェックエラー"), pszFile, nLine );
00172         ::MessageBox( NULL, psz, _T("MYASSERT"), MB_OK );
00173     }
00174     return;
00175 }
00176
00177
00179 void DBMSG_IMP(const ACHAR* msg)
00180 {
00181     //EXE名を取得。(初回呼び出し時のみ計算)
00182     static const char* exe=NULL;
00183     if(exe==NULL){
00184         static char exepath[_MAX_PATH];
00185         GetModuleFileNameA(NULL,exepath,_countof(exepath));
00186         const char* p=strrchr(exepath,'\\');
00187         if(p)exe=p+1;
00188         else exe=exepath;
00189     }
00190
00191     //メッセージ
00192     MessageBoxA(NULL,msg,exe,MB_OK);
00193 }
00194
00195
00196 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug.h

sakura_core

Debug.h

デバッグ用関数 [詳細]

#include <windows.h>
#include "global.h"
#include "Debug2.h"
#include "Debug3.h"

Debug.hのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | DebugOut DebugOutA
#define | VMessageBoxF VMessageBoxF_A
#define | MessageBoxF MessageBoxF_A
#define | MYTRACE Do_not_use_the_MYTRACE_function_if_release_mode
#define | MYTRACE_A Do_not_use_the_MYTRACE_A_function_if_release_mode
#define | MYTRACE_W Do_not_use_the_MYTRACE_A_function_if_release_mode
#define | DBPRINT_A(...)
#define | DBPRINT_W(...)
#define | DBPRINT DBPRINT_A
#define | RELPRINT_A DebugOutA
#define | MYASSERT AssertError
#define | DBMSG(S)
#define | MYMESSAGEBOX MessageBoxF
#define | MYMESSAGEBOX_A MessageBoxF_A
#define | ErrorMessage(hwnd, format,...) MessageBoxF (hwnd, MB_OK | MB_ICONSTOP , GSTR_APPNAME, format, __VA_ARGS__)
#define | ErrorMessage_A(hwnd, format,...) MessageBoxF_A (hwnd, MB_OK | MB_ICONSTOP , GSTR_APPNAME_A, format, __VA_ARGS__)
#define | WarningMessage(hwnd, format,...) MessageBoxF (hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, format, __VA_ARGS__)
#define | WarningMessage_A(hwnd, format,...) MessageBoxF_A(hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A, format, __VA_ARGS__)
#define | InfoMessage(hwnd, format,...) MessageBoxF (hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME, format, __VA_ARGS__)
#define | InfoMessage_A(hwnd, format,...) MessageBoxF_A(hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A, format, __VA_ARGS__)
#define | OkMessage(hwnd, format,...) MessageBoxF (hwnd, MB_OK , GSTR_APPNAME, format, __VA_ARGS__)
#define | OkMessage_A(hwnd, format,...) MessageBoxF_A (hwnd, MB_OK , GSTR_APPNAME_A, format, __VA_ARGS__)

関数

SAKURA_CORE_API void | AssertError (LPCTSTR pszFile, long nLine, BOOL bIsError)
SAKURA_CORE_API void | DebugOutW (LPCWSTR lpFmt,...)
SAKURA_CORE_API void | DebugOutA (LPCSTR lpFmt,...)
書式付きデバッガ出力
SAKURA_CORE_API int | VMessageBoxF_W (HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText, va_list &v)
SAKURA_CORE_API int | VMessageBoxF_A (HWND hwndOwner, UINT uType, LPCSTR lpCaption, LPCSTR lpText, va_list &v)
SAKURA_CORE_API int | MessageBoxF_W (HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText,...)
SAKURA_CORE_API int | MessageBoxF_A (HWND hwndOwner, UINT uType, LPCSTR lpCaption, LPCSTR lpText,...)
void | DBMSG_IMP (const ACHAR *msg)
メッセージボックスを表示。キャプションにはexe名。

説明

デバッグ用関数

作者:
Norio Nakatani

Debug.h で定義されています。

マクロ定義

#define DBMSG ( S )

Debug.h の 101 行で定義されています。

#define DBPRINT DBPRINT_A

Debug.h の 82 行で定義されています。

参照元 CCommandLine::ParseCommandLine().

#define DBPRINT_A ( ... )

Debug.h の 75 行で定義されています。

参照元 CShareData::AddEditWndList(), CViewCommander::Command_EXTHTMLHELP(), CMacroFactory::Create(), CShareData::DeleteEditWndList(), CRecentEditNode::DeleteItemByHwnd(), と CPropCommon::DispatchEvent_PROP_EDIT().

#define DBPRINT_W ( ... )

Debug.h の 76 行で定義されています。

#define DebugOut DebugOutA

Debug.h の 28 行で定義されています。

#define ErrorMessage | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF (hwnd, MB_OK | MB_ICONSTOP , GSTR_APPNAME, format, __VA_ARGS__)

Debug.h の 113 行で定義されています。

参照元 CConvert::CallConvert(), CEditApp::CEditApp(), CViewCommander::Command_UUDECODE(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CEditDoc::FileWrite(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), と CPropTypes::p3_Import_Colors().

#define ErrorMessage_A | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF_A (hwnd, MB_OK | MB_ICONSTOP , GSTR_APPNAME_A, format, __VA_ARGS__)

Debug.h の 114 行で定義されています。

参照元 CPropTypes::p3_Import_Colors(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Export_CustMenuSetting(), と CPropCommon::p8_Import_CustMenuSetting().

#define InfoMessage | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF (hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME, format, __VA_ARGS__)

Debug.h の 121 行で定義されています。

参照元 CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_MERGE(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_TagsMake(), CViewCommander::HandleCommand(), と CEditView::ViewDiffInfo().

#define InfoMessage_A | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF_A(hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A, format, __VA_ARGS__)

Debug.h の 122 行で定義されています。

#define MessageBoxF MessageBoxF_A

Debug.h の 49 行で定義されています。

#define MYASSERT AssertError

Debug.h の 88 行で定義されています。

#define MYMESSAGEBOX MessageBoxF

Debug.h の 109 行で定義されています。

参照元 CheckSystemResources(), CControlTray::CloseAllEditor(), CViewCommander::Command_COMPARE(), CViewCommander::Command_Diff(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_TagsMake(), CSplitterWnd::Create(), CEditWnd::Create(), CMainToolBar::CreateToolBar(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropTypes::DispatchEvent_Regex(), CEditDoc::DoFileLock(), CPropTypes::DoPropertySheet(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CEditDoc::FileRead(), CEditDoc::FileSave(), CNormalProcess::GetInitializeMutex(), CMacro::HandleCommand(), CPropTypes::Import_KeyHelp(), CProcess::Initialize(), CControlProcess::Initialize(), CEditView::KeyWordHelpSearchDict(), CKeyMacroMgr::LoadKeyMacro(), CEditDoc::OpenFile(), CControlTray::OpenNewEditor(), CEditWnd::PrintPreviewModeONOFF(), PropSheetWndProc(), CDocLineMgr::ReadFile(), CProcessFactory::StartControlProcess(), CControlTray::TerminateApplication(), CEditWnd::Timer_ONOFF(), CEditView::ViewDiffInfo(), と CProcessFactory::WaitForInitializedControlProcess().

#define MYMESSAGEBOX_A MessageBoxF_A

Debug.h の 110 行で定義されています。

参照元 CMemory::AllocBuffer(), COpeBlk::AppendOpe(), CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILE_REOPEN(), CViewCommander::Command_HOKAN(), CViewCommander::Command_MERGE(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_TagsMake(), CEditWnd::Create(), CEditView::Create(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p7(), CEditDoc::FileRead(), CEditDoc::FileSaveAs_Dialog(), CEditDoc::FileWrite(), CDocLineMgr::GetAllData(), CDlgPrintPage::GetData(), CDlgGrep::GetData(), CControlProcess::Initialize(), CShareData::IsPathOpened(), CProcessFactory::IsValidVersion(), CEditDoc::MakeBackUp(), CEditView::MakeDiffTmpFile(), CMenuDrawer::MyAppendMenu(), CDlgReplace::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgFavorite::OnBnClicked(), CPrintPreview::OnChangePrintSetting(), CEditView::OnLBUTTONDOWN(), CPrintPreview::OnPrint(), CEditView::OPEN_ExtFromtoExt(), CPropTypes::p3_Import_Colors(), CPropCommon::p5_Export_KeySetting(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p7_Import_List_KeyWord(), CDropTarget::Register_DropTarget(), CDocLineMgr::ReplaceData(), CFuncKeyWnd::Timer_ONOFF(), CEditView::ViewDiffInfo(), と CDocLineMgr::WriteFile().

#define MYTRACE Do_not_use_the_MYTRACE_function_if_release_mode

Debug.h の 65 行で定義されています。

#define MYTRACE_A Do_not_use_the_MYTRACE_A_function_if_release_mode

Debug.h の 66 行で定義されています。

参照元 CLayoutMgr::DeleteLayoutAsLogical(), CPropCommon::DispatchEvent_p7(), CHokanMgr::DoHokan(), CEditView::DragEnter(), CDropTarget::DragEnter(), CEditView::DragLeave(), CProfile::DUMP(), COpeBuf::DUMP(), COpeBlk::DUMP(), COpe::DUMP(), CLayoutMgr::DUMP(), CLayout::DUMP(), CFuncInfoArr::DUMP(), CDocLineMgr::DUMP(), CPrint::GetDefaultPrinter(), CSMacroMgr::Idx2Ptr(), CSMacroMgr::Load(), CDialog::OnInitDialog(), CDialog::OnMove(), CPrint::PrintDlg(), CDocLineMgr::ReadFile(), CFileLoad::ReadLine(), CLayoutMgr::SearchLineByLayoutY(), と CEditDoc::SelectFont().

#define MYTRACE_W Do_not_use_the_MYTRACE_A_function_if_release_mode

Debug.h の 67 行で定義されています。

#define OkMessage | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF (hwnd, MB_OK , GSTR_APPNAME, format, __VA_ARGS__)

Debug.h の 125 行で定義されています。

参照元 CEditWnd::Create().

#define OkMessage_A | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF_A (hwnd, MB_OK , GSTR_APPNAME_A, format, __VA_ARGS__)

Debug.h の 126 行で定義されています。

#define RELPRINT_A DebugOutA

Debug.h の 86 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), と CControlProcess::MainLoop().

#define VMessageBoxF VMessageBoxF_A

Debug.h の 48 行で定義されています。

#define WarningMessage | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF (hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, format, __VA_ARGS__)

Debug.h の 117 行で定義されています。

参照元 CViewCommander::Command_INSFILE(), と CViewCommander::Command_PUTFILE().

#define WarningMessage_A | ( | hwnd,
 |  | format,
 |  | ... | ) | MessageBoxF_A(hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A, format, __VA_ARGS__)

Debug.h の 118 行で定義されています。

関数

SAKURA_CORE_API void AssertError | ( | LPCTSTR | pszFile,
 |  | long | nLine,
 |  | BOOL | bIsError
 | ) |  |

Debug.cpp の 167 行で定義されています。

参照先 auto_sprintf(), と NULL.

void DBMSG_IMP ( const ACHAR * msg )

メッセージボックスを表示。キャプションにはexe名。

Debug.cpp の 179 行で定義されています。

参照先 _countof, _MAX_PATH, と NULL.

SAKURA_CORE_API void DebugOutA | ( | LPCSTR | lpFmt,
 |  |  | ...
 | ) |  |

書式付きデバッガ出力

引数:
[in] lpFmt printfの書式付き文字列
引数で与えられた情報をDebugStringとして出力する．

Debug.cpp の 66 行で定義されています。

参照先 DebugMonitor_Output(), NULL, tchar_vsprintf(), と to_wchar().

SAKURA_CORE_API void DebugOutW | ( | LPCWSTR | lpFmt,
 |  |  | ...
 | ) |  |

SAKURA_CORE_API int MessageBoxF_A | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCSTR | lpCaption,
 |  | LPCSTR | lpText,
 |  |  | ...
 | ) |  |

Debug.cpp の 153 行で定義されています。

参照先 VMessageBoxF_A().

SAKURA_CORE_API int MessageBoxF_W | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCWSTR | lpCaption,
 |  | LPCWSTR | lpText,
 |  |  | ...
 | ) |  |

Debug.cpp の 145 行で定義されています。

参照先 VMessageBoxF_W().

SAKURA_CORE_API int VMessageBoxF_A | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCSTR | lpCaption,
 |  | LPCSTR | lpText,
 |  | va_list & | v
 | ) |  |

引数:
hwndOwner | [in] オーナーウィンドウのハンドル
uType | [in] メッセージボックスのスタイル (MessageBoxと同じ形式)
lpCaption | [in] メッセージボックスのタイトル
lpText | [in] 表示するテキスト。printf仕様の書式指定が可能。
v | [in/out] 引数リスト

Debug.cpp の 129 行で定義されています。

参照先 GetMessageBoxOwner(), と tchar_vsprintf().

参照元 MessageBoxF_A().

SAKURA_CORE_API int VMessageBoxF_W | ( | HWND | hwndOwner,
 |  | UINT | uType,
 |  | LPCWSTR | lpCaption,
 |  | LPCWSTR | lpText,
 |  | va_list & | v
 | ) |  |

書式付きメッセージボックス

引数で与えられた情報をダイアログボックスで表示する． デバッグ目的以外でも使用できる．

引数:
hwndOwner | [in] オーナーウィンドウのハンドル
uType | [in] メッセージボックスのスタイル (MessageBoxと同じ形式)
lpCaption | [in] メッセージボックスのタイトル
lpText | [in] 表示するテキスト。printf仕様の書式指定が可能。
v | [in/out] 引数リスト

Debug.cpp の 109 行で定義されています。

参照先 auto_vsprintf(), GetMessageBoxOwner(), と to_achar().

参照元 MessageBoxF_W().

Sakura-Editorに対してSat Nov 17 20:27:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug.h ソースファイル

sakura_core

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 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00020 //                   メッセージ出力：実装                      //
00021 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00022 SAKURA_CORE_API void AssertError( LPCTSTR pszFile, long nLine, BOOL bIsError );
00023 SAKURA_CORE_API void DebugOutW( LPCWSTR lpFmt, ...);
00024 SAKURA_CORE_API void DebugOutA( LPCSTR lpFmt, ...);
00025 #ifdef _UNICODE
00026 #define DebugOut DebugOutW
00027 #else
00028 #define DebugOut DebugOutA
00029 #endif
00030
00031 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00032 //                 メッセージボックス：実装                    //
00033 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00034
00035 //2007.10.02 kobake メッセージボックスの使用はデバッグ時に限らないので、「Debug〜」という名前を廃止
00036
00037 //テキスト整形機能付きMessageBox
00038 SAKURA_CORE_API int VMessageBoxF_W( HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText, va_list& v );
00039 SAKURA_CORE_API int VMessageBoxF_A( HWND hwndOwner, UINT uType, LPCSTR  lpCaption, LPCSTR  lpText, va_list& v );
00040 SAKURA_CORE_API int MessageBoxF_W ( HWND hwndOwner, UINT uType, LPCWSTR lpCaption, LPCWSTR lpText, ... );
00041 SAKURA_CORE_API int MessageBoxF_A ( HWND hwndOwner, UINT uType, LPCSTR  lpCaption, LPCSTR  lpText, ... );
00042
00043 //TCHAR
00044 #ifdef _UNICODE
00045     #define VMessageBoxF VMessageBoxF_W
00046     #define MessageBoxF  MessageBoxF_W
00047 #else
00048     #define VMessageBoxF VMessageBoxF_A
00049     #define MessageBoxF  MessageBoxF_A
00050 #endif
00051
00052 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00053 //                 デバッグ用メッセージ出力                    //
00054 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00055 /*
00056     MYTRACEはリリースモードではコンパイルエラーとなるようにしてあるので，
00057     MYTRACEを使う場合には必ず#ifdef _DEBUG 〜 #endif で囲む必要がある．
00058 */
00059 #ifdef _DEBUG
00060     #define MYTRACE DebugOut
00061     #define MYTRACE_A DebugOutA
00062     #define MYTRACE_W DebugOutW
00063 #endif
00064 #ifndef _DEBUG
00065     #define MYTRACE   Do_not_use_the_MYTRACE_function_if_release_mode
00066     #define MYTRACE_A Do_not_use_the_MYTRACE_A_function_if_release_mode
00067     #define MYTRACE_W Do_not_use_the_MYTRACE_A_function_if_release_mode
00068 #endif
00069
00070 //#ifdef _DEBUG〜#endifで囲まなくても良い版
00071 #ifdef _DEBUG
00072 #define DBPRINT_A DebugOutA
00073 #define DBPRINT_W DebugOutW
00074 #else
00075 #define DBPRINT_A(...)
00076 #define DBPRINT_W(...)
00077 #endif
00078
00079 #ifdef _UNICODE
00080 #define DBPRINT DBPRINT_W
00081 #else
00082 #define DBPRINT DBPRINT_A
00083 #endif
00084
00085 //RELEASE版でも出力する版 (RELEASEでのみ発生するバグを監視する目的)
00086 #define RELPRINT_A DebugOutA
00087
00088 #define MYASSERT AssertError
00089
00090
00091 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00092 //               デバッグ用メッセージボックス                  //
00093 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00094
00095 //超簡易版  2007.09.29 kobake 作成
00096 void DBMSG_IMP(const ACHAR* msg);
00097
00098 #ifdef _DEBUG
00099 #define DBMSG DBMSG_IMP
00100 #else
00101 #define DBMSG(S)
00102 #endif
00103
00104 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00105 //                ユーザ用メッセージボックス                   //
00106 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00107
00108 //デバッグ用メッセージボックス
00109 #define MYMESSAGEBOX MessageBoxF
00110 #define MYMESSAGEBOX_A MessageBoxF_A
00111
00112 //エラー：赤丸に「×」
00113 #define ErrorMessage(hwnd, format, ...)   MessageBoxF    (hwnd, MB_OK | MB_ICONSTOP       , GSTR_APPNAME,   format, __VA_ARGS__)
00114 #define ErrorMessage_A(hwnd, format, ...) MessageBoxF_A  (hwnd, MB_OK | MB_ICONSTOP       , GSTR_APPNAME_A, format, __VA_ARGS__)
00115
00116 //警告：三角に「！」
00117 #define WarningMessage(hwnd, format, ...)   MessageBoxF  (hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,   format, __VA_ARGS__)
00118 #define WarningMessage_A(hwnd, format, ...) MessageBoxF_A(hwnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME_A, format, __VA_ARGS__)
00119
00120 //情報：青丸に「i」
00121 #define InfoMessage(hwnd, format, ...)      MessageBoxF  (hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,   format, __VA_ARGS__)
00122 #define InfoMessage_A(hwnd, format, ...)    MessageBoxF_A(hwnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME_A, format, __VA_ARGS__)
00123
00124 //その他メッセージ表示用ボックス
00125 #define OkMessage(hwnd, format, ...)      MessageBoxF    (hwnd, MB_OK                     , GSTR_APPNAME,   format, __VA_ARGS__)
00126 #define OkMessage_A(hwnd, format, ...)    MessageBoxF_A  (hwnd, MB_OK                     , GSTR_APPNAME_A, format, __VA_ARGS__)
00127
00128
00129 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00130 //                         フラグ等                            //
00131 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00132 #ifdef _DEBUG
00134     SAKURA_CORE_API extern int gm_ProfileOutput;
00135 #endif
00136
00137
00138
00139 #include "Debug2.h"
00140 #include "Debug3.h"
00141
00143 #endif /* _DEBUG_H_ */
00144
00145
00146 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug2.cpp

sakura_core

Debug2.cpp

#include "stdafx.h"
#include "Debug2.h"

Debug2.cppのインクルード依存関係図

ソースコードを見る。

関数

void | debug_output (const char *str,...)
デバッグメッセージ出力
void | debug_exit ()
強制終了
void | warning_point ()

関数

void debug_exit ( )

強制終了

Debug2.cpp の 20 行で定義されています。

参照先 GSTR_APPNAME, と NULL.

void debug_output | ( | const char * | str,
 |  |  | ...
 | ) |  |

デバッグメッセージ出力

Debug2.cpp の 7 行で定義されています。

参照先 tchar_vsprintf().

void warning_point ( )

Debug2.cpp の 26 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug2.cpp ソースファイル

sakura_core

Debug2.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "Debug2.h"
00003
00004 //2007.08.30 kobake 追加
00005
00007 void debug_output(const char* str, ...)
00008 {
00009     static char buf[256];
00010     va_list mark;
00011     va_start(mark,str);
00012     tchar_vsprintf(buf,str,mark);
00013     va_end(mark);
00014
00015     //デバッガに出力
00016     OutputDebugStringA(buf);
00017 }
00018
00020 void debug_exit()
00021 {
00022     MessageBox(NULL,_T("assertとかに引っ掛かったぽいです"),GSTR_APPNAME,MB_OK);
00023     exit(1);
00024 }
00025
00026 void warning_point()
00027 {
00028     int n;
00029     n=0; //※←ここにブレークポイントを設けておくと、任意ワーニングでブレークできる
00030 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug2.h

sakura_core

Debug2.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | assert(exp)
#define | assert_warning(exp)

マクロ定義

#define assert ( exp )

Debug2.h の 30 行で定義されています。

参照元 CMemory::_SetRawLength(), CSMacroMgr::Append(), CFileWrite::Close(), CCodeFactory::CreateCodeBase(), COutlinePython::EnterString(), LocalCache::ExistCache(), CEditView::GetCaret(), CEditView::GetFontset(), CEditView::GetRuler(), CEditView::GetTextArea(), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::operator[](), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::push_back(), StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::resize(), CSMacroMgr::Save(), COutlinePython::ScanNormal(), COutlinePython::ScanString(), SetClipboardTextImp(), TSingleInstance< CEditApp >::TSingleInstance(), CFileWrite::Write(), と TSingleInstance< CEditApp >::~TSingleInstance().

#define assert_warning ( exp )

Debug2.h の 31 行で定義されています。

参照元 StaticVector< const StaticString< wchar_t, _MAX_PATH >, MAX_SEARCHKEY, wchar_t * >::operator[](), と CDataProfile::profile_to_value().

Sakura-Editorに対してSat Nov 17 20:27:06 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug2.h ソースファイル

sakura_core

Debug2.h

説明を見る。
00001 #pragma once
00002
00003 //2007.08.30 kobake 追加
00004 #ifdef assert
00005 #undef assert
00006 #endif
00007
00008 #ifdef _DEBUG
00009     void debug_output(const char* str, ...);
00010     void debug_exit();
00011     void warning_point();
00012
00013     #define assert(exp) \
00014     do{ \
00015         if(!(exp)){ \
00016             debug_output("!assert: %hs(line%d): %hs\n", __FILE__, __LINE__, #exp); \
00017             debug_exit(); \
00018         } \
00019     }while(false)
00020
00021     #define assert_warning(exp) \
00022     do{ \
00023         if(!(exp)){ \
00024             debug_output("!warning: %hs(line%d): %hs\n", __FILE__, __LINE__, #exp); \
00025             warning_point(); \
00026         } \
00027     }while(false)
00028
00029 #else
00030     #define assert(exp)
00031     #define assert_warning(exp)
00032 #endif
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug3.cpp

sakura_core

Debug3.cpp

#include "stdafx.h"
#include "Debug3.h"

Debug3.cppのインクルード依存関係図

ソースコードを見る。

型定義

typedef const wchar_t * | szText

関数

static void | Load ()
typedef | __declspec (dllexport) int(*FN_DebugMonitor_Output)(const wchar_t *szInstanceId
int | DebugMonitor_Output (const wchar_t *szInstanceId, const wchar_t *szText)
LPCWSTR | GetWindowsMessageName (UINT msg)

変数

static HINSTANCE | hDll = NULL

型定義

typedef const wchar_t* szText

Debug3.cpp の 12 行で定義されています。

関数

typedef __declspec ( dllexport ) const

int DebugMonitor_Output | ( | const wchar_t * | szInstanceId,
 |  | const wchar_t * | szText
 | ) |  |

Debug3.cpp の 13 行で定義されています。

参照先 hDll, Load(), NULL, と to_wchar().

参照元 DebugOutA().

LPCWSTR GetWindowsMessageName ( UINT msg )

Debug3.cpp の 28 行で定義されています。

参照先 hDll, Load(), と NULL.

static void Load ( ) [static]

Debug3.cpp の 5 行で定義されています。

参照先 hDll.

参照元 DebugMonitor_Output(), と GetWindowsMessageName().

変数

HINSTANCE hDll = NULL [static]

Debug3.cpp の 4 行で定義されています。

参照元 DebugMonitor_Output(), CControlTray::DispatchEvent(), GetWindowsMessageName(), Load(), と MyInitCommonControls().

Sakura-Editorに対してSat Nov 17 20:27:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug3.cpp ソースファイル

sakura_core

Debug3.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "Debug3.h"
00003
00004 static HINSTANCE hDll=NULL;
00005 static void Load()
00006 {
00007     if(!hDll){
00008         hDll=LoadLibrary(_T("DebugMonitorLib.dll"));
00009     }
00010 }
00011
00012 typedef __declspec(dllexport) int (*FN_DebugMonitor_Output)(const wchar_t* szInstanceId, const wchar_t* szText);
00013 int DebugMonitor_Output(const wchar_t* szInstanceId, const wchar_t* szText)
00014 {
00015     Load();
00016     if(!hDll)return -1;
00017
00018     static FN_DebugMonitor_Output f=NULL;
00019     if(!f){
00020         f=(FN_DebugMonitor_Output)GetProcAddress(hDll,"DebugMonitor_Output");
00021     }
00022     if(!f)return -1;
00023
00024     return f(NULL,to_wchar(szText));
00025 }
00026
00027 typedef __declspec(dllexport) LPCWSTR (*FN_GetWindowsMessageName)(UINT msg);
00028 LPCWSTR GetWindowsMessageName(UINT msg)
00029 {
00030     Load();
00031     if(!hDll)return L"?";
00032
00033     static FN_GetWindowsMessageName f=NULL;
00034     if(!f){
00035         f=(FN_GetWindowsMessageName)GetProcAddress(hDll,"GetWindowsMessageName");
00036     }
00037     if(!f)return L"?";
00038
00039     return f(msg);
00040 }
00041
00042
00043
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug3.h

sakura_core

Debug3.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

int | DebugMonitor_Output (const wchar_t *szInstanceId, const wchar_t *szText)
LPCWSTR | GetWindowsMessageName (UINT msg)

関数

int DebugMonitor_Output | ( | const wchar_t * | szInstanceId,
 |  | const wchar_t * | szText
 | ) |  |

Debug3.cpp の 13 行で定義されています。

参照先 hDll, Load(), NULL, と to_wchar().

参照元 DebugOutA().

LPCWSTR GetWindowsMessageName ( UINT msg )

Debug3.cpp の 28 行で定義されています。

参照先 hDll, Load(), と NULL.

Sakura-Editorに対してSat Nov 17 20:27:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Debug3.h ソースファイル

sakura_core

Debug3.h

説明を見る。
00001 #pragma once
00002
00003
00004 int DebugMonitor_Output(const wchar_t* szInstanceId, const wchar_t* szText);
00005 LPCWSTR GetWindowsMessageName(UINT msg);
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: design_template.h

sakura_core » util

design_template.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class TSingleInstance< T >

Sakura-Editorに対してSat Nov 17 20:27:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: design_template.h ソースファイル

sakura_core » util

design_template.h

説明を見る。
00001 /*
00002 2007.10.23 kobake
00003
00004 デザインパターン的なモノを置けると良いなぁ。
00005 ちなみに TSingleInstance はシングルトンパターンとは似て非なるモノですが。
00006 */
00007
00008 #pragma once
00009
00016 template <class T>
00017 class TSingleInstance{
00018 public:
00019     //公開インターフェース
00020     static T* Instance(){ return gm_instance; }
00021
00022 protected:
00023     //※2個以上のインスタンスは想定していません。assertが破綻を検出します。
00024     TSingleInstance(){ assert(gm_instance==NULL); gm_instance=static_cast<T*>(this); }
00025     ~TSingleInstance(){ assert(gm_instance); gm_instance=NULL; }
00026 private:
00027     static T* gm_instance;
00028 };
00029 template <class T>
00030 T* TSingleInstance<T>::gm_instance = NULL;
00031
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: DispPos.cpp

sakura_core

DispPos.cpp

#include "stdafx.h"
#include "DispPos.h"

DispPos.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:07 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: DispPos.cpp ソースファイル

sakura_core

DispPos.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "DispPos.h"
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: DispPos.h

sakura_core

DispPos.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct DispPos

Sakura-Editorに対してSat Nov 17 20:27:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: DispPos.h ソースファイル

sakura_core

DispPos.h

説明を見る。
00001 #pragma once
00002
00003 struct DispPos{
00004 public:
00005     DispPos(int nDx,int nDy)
00006     : m_nDx(nDx)
00007     , m_nDy(nDy)
00008     {
00009         m_ptDrawOrigin.x=0;
00010         m_ptDrawOrigin.y=0;
00011         m_ptDrawLayout.x=CLayoutInt(0);
00012         m_ptDrawLayout.y=CLayoutInt(0);
00013         m_nLineRef=CLayoutInt(0);
00014     }
00015
00016     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00017     //                         描画位置                            //
00018     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00019     //固定値
00020     void InitDrawPos(const POINT& pt)
00021     {
00022         m_ptDrawOrigin=pt;
00023         m_ptDrawLayout.x=m_ptDrawLayout.y=CLayoutInt(0);
00024     }
00025
00026     //取得
00027     CMyPoint GetDrawPos() const
00028     {
00029         return CMyPoint(
00030             m_ptDrawOrigin.x + (Int)m_ptDrawLayout.x * m_nDx,
00031             m_ptDrawOrigin.y + (Int)m_ptDrawLayout.y * m_nDy
00032         );
00033     }
00034
00035     //進む
00036     void ForwardDrawCol (int nColOffset ){ m_ptDrawLayout.x += nColOffset; }
00037     void ForwardDrawLine(int nOffsetLine){ m_ptDrawLayout.y += nOffsetLine; }
00038
00039     //リセット
00040     void ResetDrawCol(){ m_ptDrawLayout.x = CLayoutInt(0); }
00041
00042     //取得
00043     CLayoutInt GetDrawCol() const{ return m_ptDrawLayout.x; }
00044     CLayoutInt GetDrawLine() const{ return m_ptDrawLayout.y; }
00045
00046     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00047     //                     テキスト参照位置                        //
00048     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00049
00050     //変更
00051     void SetLayoutLineRef(CLayoutInt nLogicLine){ m_nLineRef = nLogicLine; }
00052     void ForwardLayoutLineRef(int nOffsetLine){ m_nLineRef += CLayoutInt(nOffsetLine); }
00053
00054     //取得
00055     CLayoutInt GetLayoutLineRef() const{ return m_nLineRef; }
00056
00057
00058 private:
00059     //固定要素
00060     int             m_nDx;          //半角文字の文字間隔。固定。
00061     int             m_nDy;          //半角文字の行間隔。固定。
00062     POINT           m_ptDrawOrigin; //描画位置基準。単位はピクセル。固定。
00063
00064     //描画位置
00065     CLayoutPoint    m_ptDrawLayout; //描画位置。相対レイアウト単位。
00066
00067     //テキスト参照位置
00068     CLayoutInt      m_nLineRef; //絶対レイアウト単位。
00069 };
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: file.cpp

sakura_core » util

file.cpp

#include "stdafx.h"
#include "file.h"
#include "CharPointer.h"
#include "util/module.h"
#include "CShareData.h"
#include <io.h>

file.cppのインクルード依存関係図

ソースコードを見る。

関数

bool | IsFilePath (const wchar_t *pLine, int *pnBgn, int *pnPathLen, bool bFileOnly)
bool | IsLocalDrive (const TCHAR *pszDrive)
const TCHAR * | GetFileTitlePointer (const TCHAR *tszPath)
ファイルフルパス内のファイル名を指すポインタを取得。2007.09.20 kobake 作成
FILE * | _tfopen_absexe (LPCTSTR fname, LPCTSTR mode)
FILE * | _tfopen_absini (LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir)
void | CutLastYenFromDirectoryPath (TCHAR *pszFolder)
void | AddLastYenFromDirectoryPath (TCHAR *pszFolder)
void | SplitPath_FolderAndFile (const TCHAR *pszFilePath, TCHAR *pszFolder, TCHAR *pszFile)
BOOL | GetLongFileName (const TCHAR *pszFilePathSrc, TCHAR *pszFilePathDes)
BOOL | CheckEXT (const TCHAR *pszPath, const TCHAR *pszExt)
bool | _IS_REL_PATH (const TCHAR *path)
相対パスか判定する。2003.06.23 Moca
int | CalcDirectoryDepth (const TCHAR *path)
ディレクトリの深さを計算する
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を優先）．
bool | IsFileExists (const TCHAR *path, bool bFileOnly)
bool | GetLastWriteTimestamp (const TCHAR *filename, FILETIME &ftime)

関数

bool _IS_REL_PATH ( const TCHAR * path )

相対パスか判定する。2003.06.23 Moca

相対パスか判定する

作者:
Moca
日付:
2003.06.23

file.cpp の 385 行で定義されています。

参照元 _tfopen_absexe(), _tfopen_absini(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CMigemo::GetDllName(), CShareData::GetMacroFilename(), CMigemo::migemo_load_all(), と CEditView::TagJumpSub().

FILE* _tfopen_absexe | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode
 | ) |  |

fnameが相対パスの場合は、実行ファイルのパスからの相対パスとして開く

作者:
Moca
日付:
2003.06.23

2007.05.20 ryoji 関数名変更（旧：fopen_absexe）、汎用テキストマッピング化

file.cpp の 221 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, と GetExedir().

FILE* _tfopen_absini | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode,
 |  | BOOL | bOrExedir
 | ) |  |

fnameが相対パスの場合は、INIファイルのパスからの相対パスとして開く

作者:
ryoji
日付:
2007.05.19 新規作成（_tfopen_absexeベース）

file.cpp の 235 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, GetInidir(), と GetInidirOrExedir().

参照元 CPropTypes::Import_KeyHelp(), と CEditDoc::ReadRuleFile().

void AddLastYenFromDirectoryPath ( TCHAR * pszFolder )

file.cpp の 277 行で定義されています。

参照先 CNativeA::GetCharPrev().

参照元 CEditDoc::FormatBackUpPath().

int CalcDirectoryDepth ( const TCHAR * path )

ディレクトリの深さを計算する

与えられたパス名からディレクトリの深さを計算する． パスの区切りは\．ルートディレクトリが深さ0で，サブディレクトリ毎に 深さが1ずつ上がっていく．

日付:
2003.04.30 genta 新規作成
引数:
path [in] 深さを調べたいファイル/ディレクトリのフルパス

file.cpp の 410 行で定義されています。

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CDlgTagJumpList::SetFileName().

BOOL CheckEXT | ( | const TCHAR * | pszPath,
 |  | const TCHAR * | pszExt
 | ) |  |

file.cpp の 365 行で定義されています。

参照先 _MAX_EXT, FALSE, NULL, と TRUE.

参照元 CViewCommander::Command_FUNCLIST(), と CEditView::OPEN_ExtFromtoExt().

void CutLastYenFromDirectoryPath ( TCHAR * pszFolder )

file.cpp の 251 行で定義されています。

参照先 CNativeA::GetCharPrev().

参照元 CEditDoc::FormatBackUpPath(), と SelectDir().

void GetExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |  |

exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

作者:
genta
日付:
2002.12.02 genta

2007.05.20 ryoji 関数名変更（旧：GetExecutableDir）、汎用テキストマッピング化

引数:
pDir | [out] EXEファイルのあるディレクトリを返す場所．予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．

file.cpp の 458 行で定義されています。

参照先 _MAX_PATH, auto_snprintf(), NULL, と SplitPath_FolderAndFile().

参照元 _tfopen_absexe(), CViewCommander::Command_TagsMake(), CShareData::ExpandMetaToFolder(), CEditApp::GetHelpFilePath(), GetInidirOrExedir(), と CEditView::ViewDiffInfo().

const TCHAR* GetFileTitlePointer ( const TCHAR * tszPath )

ファイルフルパス内のファイル名を指すポインタを取得。2007.09.20 kobake 作成

file.cpp の 197 行で定義されています。

void GetInidir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |  |

INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

作者:
ryoji
日付:
2007.05.19 新規作成（GetExedirベース）
引数:
pDir | [out] INIファイルのあるディレクトリを返す場所．予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．

file.cpp の 486 行で定義されています。

参照先 _MAX_PATH, auto_snprintf(), CShareData::GetIniFileName(), CShareData::getInstance(), NULL, と SplitPath_FolderAndFile().

参照元 _tfopen_absini(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CShareData::ExpandMetaToFolder(), CMigemo::GetDllName(), GetInidirOrExedir(), CShareData::Init(), と PropSheetWndProc().

void GetInidirOrExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile,
 |  | BOOL | bRetExedirIfFileEmpty
 | ) |  |

INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．

作者:
ryoji
日付:
2007.05.22 新規作成
引数:
pDir | [out] INIファイルまたはEXEファイルのあるディレクトリを返す場所．
szFile | [in] ディレクトリ名に結合するファイル名．
bRetExedirIfFileEmpty | [in] ファイル名の指定が空の場合はEXEファイルのフルパスを返す．

file.cpp の 515 行で定義されています。

参照先 _MAX_PATH, GetExedir(), GetInidir(), CShareData::getInstance(), CShareData::IsPrivateSettings(), と NULL.

参照元 _tfopen_absini(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CImageListMgr::Create(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), GetAppIcon(), CMigemo::GetDllName(), CShareData::GetMacroFilename(), CMigemo::migemo_load_all(), と 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)

file.cpp の 599 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp(), CEditDoc::FormatBackUpPath(), CDlgAbout::OnInitDialog(), と CDocLineMgr::WriteFile().

BOOL GetLongFileName | ( | const TCHAR * | pszFilePathSrc,
 |  | TCHAR * | pszFilePathDes
 | ) |  |

ロングファイル名を取得する

引数:
[in] | pszFilePathSrc | 変換元パス名
[out] | pszFilePathDes | 結果書き込み先 (長さMAX_PATHの領域が必要)
日付:
Oct. 2, 2005 genta GetFilePath APIを使って書き換え

Oct. 4, 2005 genta 相対パスが絶対パスに直されなかった

Oct. 5, 2005 Moca 相対パスを絶対パスに変換するように

file.cpp の 344 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), FALSE, と TRUE.

参照元 CShareData::ExpandMetaToFolder(), CEditDoc::FileRead(), CNormalProcess::Initialize(), CEditWnd::OnDropFiles(), OnFolderProc(), CEditDoc::OpenFile(), CCommandLine::ParseCommandLine(), と CEditView::TagJumpSub().

bool IsFileExists | ( | const TCHAR * | path,
 |  | bool | bFileOnly
 | ) |  |

ファイルの存在チェック

指定されたパスのファイルが存在するかどうかを確認する。

引数:
path | [in] 調べるパス名
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイルは存在する
false | ファイルは存在しない
作者:
genta
日付:
2002.01.04 新規作成

file.cpp の 568 行で定義されています。

参照元 IsFilePath(), MyWinHelp(), OFNHookProc(), と OnFolderProc().

bool IsFilePath | ( | const wchar_t * | 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に変更

file.cpp の 29 行で定義されています。

参照先 _countof, IsFileExists(), と to_tchar.

参照元 CViewCommander::Command_TAGJUMP().

bool IsLocalDrive ( const TCHAR * 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が 実質的に同じものだった

file.cpp の 179 行で定義されています。

参照先 _MAX_DRIVE, と auto_sprintf().

参照元 CEditDoc::MakeBackUp().

void SplitPath_FolderAndFile | ( | const TCHAR * | pszFilePath,
 |  | TCHAR * | pszFolder,
 |  | TCHAR * | pszFile
 | ) |  |

file.cpp の 305 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _tcscpy(), CNativeA::GetCharPrev(), と NULL.

参照元 CViewCommander::Command_TagsMake(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), GetExedir(), GetInidir(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CDlgGrep::OnBnClicked(), OnFolderProc(), 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(), CDlgGrep::SetData(), と CEditView::ViewDiffInfo().

Sakura-Editorに対してSat Nov 17 20:27:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: file.cpp ソースファイル

sakura_core » util

file.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "file.h"
00003 #include "CharPointer.h"
00004 #include "util/module.h"
00005 #include "CShareData.h"
00006 #include <io.h>
00007
00029 bool IsFilePath(
00030     const wchar_t*  pLine,
00031     int*            pnBgn,
00032     int*            pnPathLen,
00033     bool            bFileOnly
00034 )
00035 {
00036     int     i;
00037     int     nLineLen;
00038     wchar_t szJumpToFile[1024];
00039     wmemset( szJumpToFile, 0, _countof( szJumpToFile ) );
00040
00041     nLineLen = wcslen( pLine );
00042
00043     //先頭の空白を読み飛ばす
00044     for( i = 0; i < nLineLen; ++i ){
00045         if( L' ' != pLine[i] &&
00046             L'\t' != pLine[i] &&
00047             L'\"' != pLine[i]
00048         ){
00049             break;
00050         }
00051     }
00052
00053     //  #include <ファイル名>の考慮
00054     //  #で始まるときは"または<まで読み飛ばす
00055     if( i < nLineLen &&
00056         L'#' == pLine[i]
00057     ){
00058         for( ; i < nLineLen; ++i ){
00059             if( L'<'  == pLine[i] ||
00060                 L'\"' == pLine[i]
00061             ){
00062                 ++i;
00063                 break;
00064             }
00065         }
00066     }
00067
00068     //  この時点で既に行末に達していたらファイル名は見つからない
00069     if( i >= nLineLen ){
00070         return false;
00071     }
00072     *pnBgn = i;
00073     int cur_pos = 0;
00074     for( ; i <= nLineLen && cur_pos + 1 < _countof(szJumpToFile); ++i ){
00075         if( ( i == nLineLen    ||
00076               pLine[i] == L' '  ||
00077               pLine[i] == L'\t' ||  //@@@ 2002.01.08 YAZAKI タブ文字も。
00078               pLine[i] == L'('  ||
00079               pLine[i] == L'\r' ||
00080               pLine[i] == L'\n' ||
00081               pLine[i] == L'\0' ||
00082               pLine[i] == L'>'  ||
00083               // May 29, 2004 genta C:\の:はファイル区切りと見なして欲しくない
00084               ( cur_pos > 1 && pLine[i] == L':' ) ||   //@@@ 2003/1/15/ matsumo (for gcc)
00085               pLine[i] == L'"'
00086             ) &&
00087             0 < wcslen( szJumpToFile )
00088         ){
00089             //  Jan. 04, 2002 genta
00090             //  ファイル存在確認方法変更
00091             //if( -1 != _access( szJumpToFile, 0 ) )
00092             if( IsFileExists(to_tchar(szJumpToFile), bFileOnly))
00093             {
00094                 i--;
00095                 break;
00096             }
00097         }
00098         if( pLine[i] == L'\r'  ||
00099             pLine[i] == L'\n' ){
00100             break;
00101         }
00102 //  From Here Sept. 27, 2000 JEPRO タグジャンプできないのは以下の文字が1バイトコードで現れるときのみとした。
00103 //  (SJIS2バイトコードの2バイト目に現れる場合はパス名使用禁止文字とは認識しないで無視するように変更)
00104 //      if( /*pLine[i] == '/' ||*/
00105 //          pLine[i] == '<' ||
00106 //          pLine[i] == '>' ||
00107 //          pLine[i] == '?' ||
00108 //          pLine[i] == '"' ||
00109 //          pLine[i] == '|' ||
00110 //          pLine[i] == '*'
00111 //      ){
00112 //          return false;
00113 //      }
00114 //
00115 //      szJumpToFile[cur_pos] = pLine[i];
00116 //      cur_pos++;
00117 //  }
00118 //  To Here comment out
00119 //  From Here Sept. 27, 2000 JEPRO added
00120 //            Oct. 3, 2000 JEPRO corrected
00121         if( /*pLine[i] == '/' ||*/
00122              pLine[i] == L'<' ||    //  0x3C
00123              pLine[i] == L'>' ||    //  0x3E
00124              pLine[i] == L'?' ||    //  0x3F
00125              pLine[i] == L'"' ||    //  0x22
00126              pLine[i] == L'|' ||    //  0x7C
00127              pLine[i] == L'*'   //  0x2A
00128              ){
00129             /*
00130             &&
00131             // 上の文字がSJIS2バイトコードの2バイト目でないことを、1つ前の文字がSJIS2バイトコードの1バイト目でないことで判断する
00132             //  Oct. 5, 2002 genta
00133             //  2004.11.13 Moca/genta 先頭に上の文字がある場合の考慮を追加
00134             ( i == 0 || ( i > 0 && ! _IS_SJIS_1( (unsigned char)pLine[i - 1] ))) ){
00135             */
00136             return false;
00137         }else{
00138             szJumpToFile[cur_pos] = pLine[i];
00139             cur_pos++;
00140         }
00141     }
00142 //  To Here Sept. 27, 2000
00143 //  if( i >= nLineLen ){
00144 //      return FALSE;
00145 //  }
00146     //  Jan. 04, 2002 genta
00147     //  ファイル存在確認方法変更
00148     if( 0 < wcslen( szJumpToFile ) &&
00149         IsFileExists(to_tchar(szJumpToFile), bFileOnly))
00150     //  -1 != _access( szJumpToFile, 0 ) )
00151     {
00152         //  Jan. 04, 2002 genta
00153         //  あまりに変なコーディングなので移動
00154         *pnPathLen = wcslen( szJumpToFile );
00155         return true;
00156     }else{
00157     }
00158
00159     return false;
00160
00161 }
00162
00179 bool IsLocalDrive( const TCHAR* pszDrive )
00180 {
00181     TCHAR   szDriveType[_MAX_DRIVE+1];  // "A:\ "登録用
00182     long    lngRet;
00183
00184     if( iswalpha(pszDrive[0]) ){
00185         auto_sprintf(szDriveType, _T("%tc:\\"), _totupper(pszDrive[0]));
00186         lngRet = GetDriveType( szDriveType );
00187         if( lngRet == DRIVE_REMOVABLE || lngRet == DRIVE_CDROM || lngRet == DRIVE_REMOTE )
00188         {
00189             return false;
00190         }
00191     }
00192     return true;
00193 }
00194
00195
00196
00197 const TCHAR* GetFileTitlePointer(const TCHAR* tszPath)
00198 {
00199     CharPointerT p;
00200     const TCHAR* pszName;
00201     p = pszName = tszPath;
00202     while( *p )
00203     {
00204         if( *p == _T('\\') ){
00205             pszName = p + 1;
00206             p++;
00207         }
00208         else{
00209             p++;
00210         }
00211     }
00212     return pszName;
00213 }
00214
00215
00221 FILE* _tfopen_absexe(LPCTSTR fname, LPCTSTR mode)
00222 {
00223     if( _IS_REL_PATH( fname ) ){
00224         TCHAR path[_MAX_PATH];
00225         GetExedir( path, fname );
00226         return _tfopen( path, mode );
00227     }
00228     return _tfopen( fname, mode );
00229 }
00230
00235 FILE* _tfopen_absini(LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir/*=TRUE*/ )
00236 {
00237     if( _IS_REL_PATH( fname ) ){
00238         TCHAR path[_MAX_PATH];
00239         if( bOrExedir )
00240             GetInidirOrExedir( path, fname );
00241         else
00242             GetInidir( path, fname );
00243         return _tfopen( path, mode );
00244     }
00245     return _tfopen( fname, mode );
00246 }
00247
00248
00249
00250 /* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない */
00251 void CutLastYenFromDirectoryPath( TCHAR* pszFolder )
00252 {
00253     if( 3 == _tcslen( pszFolder )
00254      && pszFolder[1] == _T(':')
00255      && pszFolder[2] == _T('\\')
00256     ){
00257         /* ドライブ名:\ */
00258     }else{
00259         /* フォルダの最後が半角かつ'\\'の場合は、取り除く */
00260         int nFolderLen;
00261         int nCharChars;
00262         nFolderLen = _tcslen( pszFolder );
00263         if( 0 < nFolderLen ){
00264             nCharChars = &pszFolder[nFolderLen] - CNativeT::GetCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
00265             if( 1 == nCharChars && _T('\\') == pszFolder[nFolderLen - 1] ){
00266                 pszFolder[nFolderLen - 1] = _T('\0');
00267             }
00268         }
00269     }
00270     return;
00271 }
00272
00273
00274
00275
00276 /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
00277 void AddLastYenFromDirectoryPath( TCHAR* pszFolder )
00278 {
00279     if( 3 == _tcslen( pszFolder )
00280      && pszFolder[1] == _T(':')
00281      && pszFolder[2] == _T('\\')
00282     ){
00283         /* ドライブ名:\ */
00284     }else{
00285         /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
00286         int nFolderLen;
00287         int nCharChars;
00288         nFolderLen = _tcslen( pszFolder );
00289         if( 0 < nFolderLen ){
00290             nCharChars = &pszFolder[nFolderLen] - CNativeT::GetCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
00291             if( 1 == nCharChars && _T('\\') == pszFolder[nFolderLen - 1] ){
00292             }else{
00293                 pszFolder[nFolderLen] = _T('\\');
00294                 pszFolder[nFolderLen + 1] = _T('\0');
00295             }
00296         }
00297     }
00298     return;
00299 }
00300
00301
00302
00303 /* ファイルのフルパスを、フォルダとファイル名に分割 */
00304 /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00305 void SplitPath_FolderAndFile( const TCHAR* pszFilePath, TCHAR* pszFolder, TCHAR* pszFile )
00306 {
00307     TCHAR   szDrive[_MAX_DRIVE];
00308     TCHAR   szDir[_MAX_DIR];
00309     TCHAR   szFname[_MAX_FNAME];
00310     TCHAR   szExt[_MAX_EXT];
00311     int     nFolderLen;
00312     int     nCharChars;
00313     _tsplitpath( pszFilePath, szDrive, szDir, szFname, szExt );
00314     if( NULL != pszFolder ){
00315         _tcscpy( pszFolder, szDrive );
00316         _tcscat( pszFolder, szDir );
00317         /* フォルダの最後が半角かつ'\\'の場合は、取り除く */
00318         nFolderLen = _tcslen( pszFolder );
00319         if( 0 < nFolderLen ){
00320             nCharChars = &pszFolder[nFolderLen] - CNativeT::GetCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
00321             if( 1 == nCharChars && _T('\\') == pszFolder[nFolderLen - 1] ){
00322                 pszFolder[nFolderLen - 1] = _T('\0');
00323             }
00324         }
00325     }
00326     if( NULL != pszFile ){
00327         _tcscpy( pszFile, szFname );
00328         _tcscat( pszFile, szExt );
00329     }
00330     return;
00331 }
00332
00333
00334
00344 BOOL GetLongFileName( const TCHAR* pszFilePathSrc, TCHAR* pszFilePathDes )
00345 {
00346     TCHAR* name;
00347     TCHAR szBuf[_MAX_PATH + 1];
00348     int len = ::GetFullPathName( pszFilePathSrc, _MAX_PATH, szBuf, &name );
00349     if( len <= 0 || _MAX_PATH <= len ){
00350         len = ::GetLongPathName( pszFilePathSrc, pszFilePathDes, _MAX_PATH );
00351         if( len <= 0 || _MAX_PATH < len ){
00352             return FALSE;
00353         }
00354         return TRUE;
00355     }
00356     len = ::GetLongPathName( szBuf, pszFilePathDes, _MAX_PATH );
00357     if( len <= 0 || _MAX_PATH < len ){
00358         _tcscpy( pszFilePathDes, szBuf );
00359     }
00360     return TRUE;
00361 }
00362
00363
00364 /* 拡張子を調べる */
00365 BOOL CheckEXT( const TCHAR* pszPath, const TCHAR* pszExt )
00366 {
00367     TCHAR   szExt[_MAX_EXT];
00368     TCHAR*  pszWork;
00369     _tsplitpath( pszPath, NULL, NULL, NULL, szExt );
00370     pszWork = szExt;
00371     if( pszWork[0] == _T('.') ){
00372         pszWork++;
00373     }
00374     if( 0 == _tcsicmp( pszExt, pszWork ) ){
00375         return TRUE;
00376     }else{
00377         return FALSE;
00378     }
00379 }
00380
00385 bool _IS_REL_PATH(const TCHAR* path)
00386 {
00387     bool ret = true;
00388     if( ( _T('A') <= path[0] && path[0] <= _T('Z') || _T('a') <= path[0] && path[0] <= _T('z') )
00389         && path[1] == _T(':') && path[2] == _T('\\')
00390         || path[0] == _T('\\') && path[1] == _T('\\')
00391          ){
00392         ret = false;
00393     }
00394     return ret;
00395 }
00396
00397
00398
00399
00400
00401
00410 int CalcDirectoryDepth(
00411     const TCHAR* path
00412 )
00413 {
00414     int depth = 0;
00415
00416     //  とりあえず\の数を数える
00417     for( CharPointerT p = path; *p != _T('\0'); ++p ){
00418         if( *p == _T('\\') ){
00419             ++depth;
00420             //  フルパスには入っていないはずだが念のため
00421             //  .\はカレントディレクトリなので，深さに関係ない．
00422             while( p[1] == _T('.') && p[2] == _T('\\') ){
00423                 p += 2;
00424             }
00425         }
00426     }
00427
00428     //  補正
00429     //  ドライブ名はパスの深さに数えない
00430     if( _T('A') <= path[0] && path[0] <= _T('Z') && path[1] == _T(':') && path[2] == _T('\\') ){
00431         //フルパス
00432         --depth; // C:\ の \ はルートの記号なので階層深さではない
00433     }
00434     else if( path[0] == _T('\\') ){
00435         if( path[1] == _T('\\') ){
00436             //  ネットワークパス
00437             //  先頭の2つはネットワークを表し，その次はホスト名なので
00438             //  ディレクトリ階層とは無関係
00439             depth -= 3;
00440         }
00441         else {
00442             //  ドライブ名無しのフルパス
00443             //  先頭の\は対象外
00444             --depth;
00445         }
00446     }
00447     return depth;
00448 }
00449
00450
00458 void GetExedir(
00459     LPTSTR  pDir,
00460     LPCTSTR szFile
00461 )
00462 {
00463     if( pDir == NULL )
00464         return;
00465
00466     TCHAR   szPath[_MAX_PATH];
00467     // sakura.exe のパスを取得
00468     ::GetModuleFileName( ::GetModuleHandle(NULL), szPath, sizeof(szPath) );
00469     if( szFile == NULL ){
00470         SplitPath_FolderAndFile( szPath, pDir, NULL );
00471     }
00472     else {
00473         TCHAR   szDir[_MAX_PATH];
00474         SplitPath_FolderAndFile( szPath, szDir, NULL );
00475         auto_snprintf( pDir, _MAX_PATH, _T("%ts\\%ts"), szDir, szFile );
00476         pDir[_MAX_PATH - 1] = _T('\0');
00477     }
00478 }
00479
00486 void GetInidir(
00487     LPTSTR  pDir,
00488     LPCTSTR szFile  /*=NULL*/
00489 )
00490 {
00491     if( pDir == NULL )
00492         return;
00493
00494     TCHAR   szPath[_MAX_PATH];
00495     // sakura.ini のパスを取得
00496     CShareData::getInstance()->GetIniFileName( szPath );
00497     if( szFile == NULL ){
00498         SplitPath_FolderAndFile( szPath, pDir, NULL );
00499     }
00500     else {
00501         TCHAR   szDir[_MAX_PATH];
00502         SplitPath_FolderAndFile( szPath, szDir, NULL );
00503         auto_snprintf( pDir, _MAX_PATH, _T("%ts\\%ts"), szDir, szFile );
00504         pDir[_MAX_PATH - 1] = _T('\0');
00505     }
00506 }
00507
00508
00515 void GetInidirOrExedir(
00516     LPTSTR  pDir,
00517                                                 //         予め_MAX_PATHのバッファを用意しておくこと．
00518     LPCTSTR szFile                  /*=NULL*/,
00519     BOOL    bRetExedirIfFileEmpty   /*=FALSE*/
00520 )
00521 {
00522     TCHAR   szInidir[_MAX_PATH];
00523     TCHAR   szExedir[_MAX_PATH];
00524
00525     // ファイル名の指定が空の場合はEXEファイルのフルパスを返す（オプション）
00526     if( bRetExedirIfFileEmpty && (szFile == NULL || szFile[0] == _T('\0')) ){
00527         GetExedir( szExedir, szFile );
00528         ::lstrcpy( pDir, szExedir );
00529         return;
00530     }
00531
00532     // INI基準のフルパスが実在すればそのパスを返す
00533     GetInidir( szInidir, szFile );
00534     if( _taccess(szInidir, 0) != -1 ){
00535         ::lstrcpy( pDir, szInidir );
00536         return;
00537     }
00538
00539     // EXE基準のフルパスが実在すればそのパスを返す
00540     if( CShareData::getInstance()->IsPrivateSettings() ){   // INIとEXEでパスが異なる場合
00541         GetExedir( szExedir, szFile );
00542         if( _taccess(szExedir, 0) != -1 ){
00543             ::lstrcpy( pDir, szExedir );
00544             return;
00545         }
00546     }
00547
00548     // どちらにも実在しなければINI基準のフルパスを返す
00549     ::lstrcpy( pDir, szInidir );
00550 }
00551
00552
00553
00554
00568 bool IsFileExists(const TCHAR* path, bool bFileOnly)
00569 {
00570     WIN32_FIND_DATA fd;
00571     ::ZeroMemory( &fd, sizeof(fd));
00572
00573     HANDLE hFind = ::FindFirstFile( path, &fd );
00574     if( hFind != INVALID_HANDLE_VALUE ){
00575         ::FindClose( hFind );
00576         if( bFileOnly == false ||
00577             ( fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) == 0 )
00578             return true;
00579     }
00580     return false;
00581 }
00582
00583
00584
00599 bool GetLastWriteTimestamp( const TCHAR* filename, FILETIME& ftime )
00600 {
00601     HANDLE hFindFile;
00602     WIN32_FIND_DATA ffd;
00603
00604     hFindFile = ::FindFirstFile( filename, &ffd );
00605     if( INVALID_HANDLE_VALUE != hFindFile )
00606     {
00607         ::FindClose( hFindFile );
00608         ftime = ffd.ftLastWriteTime;
00609         return true;
00610     }
00611     //  ファイルが見つからなかった
00612     return false;
00613 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: file.h

sakura_core » util

file.h

ソースコードを見る。

関数

SAKURA_CORE_API bool | IsFilePath (const wchar_t *, int *, int *, bool=true)
SAKURA_CORE_API bool | IsFileExists (const TCHAR *path, bool bFileOnly=false)
int | CalcDirectoryDepth (const TCHAR *path)
ディレクトリの深さを計算する
bool | IsLocalDrive (const TCHAR *pszDrive)
FILE * | _tfopen_absexe (LPCTSTR fname, LPCTSTR mode)
FILE * | _tfopen_absini (LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir=TRUE)
SAKURA_CORE_API void | CutLastYenFromDirectoryPath (TCHAR *)
SAKURA_CORE_API void | AddLastYenFromDirectoryPath (TCHAR *)
SAKURA_CORE_API void | SplitPath_FolderAndFile (const TCHAR *, TCHAR *, TCHAR *)
SAKURA_CORE_API BOOL | GetLongFileName (const TCHAR *, TCHAR *)
SAKURA_CORE_API BOOL | CheckEXT (const TCHAR *, const TCHAR *)
const TCHAR * | GetFileTitlePointer (const TCHAR *tszPath)
ファイルフルパス内のファイル名を指すポインタを取得。2007.09.20 kobake 作成
bool | _IS_REL_PATH (const TCHAR *path)
相対パスか判定する。2003.06.23 Moca
bool | GetLastWriteTimestamp (const TCHAR *filename, FILETIME &ftime)

関数

bool _IS_REL_PATH ( const TCHAR * path )

相対パスか判定する。2003.06.23 Moca

相対パスか判定する

作者:
Moca
日付:
2003.06.23

file.cpp の 385 行で定義されています。

参照元 _tfopen_absexe(), _tfopen_absini(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CMigemo::GetDllName(), CShareData::GetMacroFilename(), CMigemo::migemo_load_all(), と CEditView::TagJumpSub().

FILE* _tfopen_absexe | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode
 | ) |  |

fnameが相対パスの場合は、実行ファイルのパスからの相対パスとして開く

作者:
Moca
日付:
2003.06.23

2007.05.20 ryoji 関数名変更（旧：fopen_absexe）、汎用テキストマッピング化

file.cpp の 221 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, と GetExedir().

FILE* _tfopen_absini | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode,
 |  | BOOL | bOrExedir
 | ) |  |

fnameが相対パスの場合は、INIファイルのパスからの相対パスとして開く

作者:
ryoji
日付:
2007.05.19 新規作成（_tfopen_absexeベース）

file.cpp の 235 行で定義されています。

参照先 _IS_REL_PATH(), _MAX_PATH, GetInidir(), と GetInidirOrExedir().

参照元 CPropTypes::Import_KeyHelp(), と CEditDoc::ReadRuleFile().

SAKURA_CORE_API void AddLastYenFromDirectoryPath ( TCHAR * )

file.cpp の 277 行で定義されています。

参照先 CNativeA::GetCharPrev().

参照元 CEditDoc::FormatBackUpPath().

int CalcDirectoryDepth ( const TCHAR * path )

ディレクトリの深さを計算する

与えられたパス名からディレクトリの深さを計算する． パスの区切りは\．ルートディレクトリが深さ0で，サブディレクトリ毎に 深さが1ずつ上がっていく．

日付:
2003.04.30 genta 新規作成
引数:
path [in] 深さを調べたいファイル/ディレクトリのフルパス

file.cpp の 410 行で定義されています。

参照元 CViewCommander::Command_TagJumpByTagsFile(), と CDlgTagJumpList::SetFileName().

SAKURA_CORE_API BOOL CheckEXT | ( | const TCHAR * | ,
 |  | const TCHAR * |
 | ) |  |

file.cpp の 365 行で定義されています。

参照先 _MAX_EXT, FALSE, NULL, と TRUE.

参照元 CViewCommander::Command_FUNCLIST(), と CEditView::OPEN_ExtFromtoExt().

SAKURA_CORE_API void CutLastYenFromDirectoryPath ( TCHAR * )

file.cpp の 251 行で定義されています。

参照先 CNativeA::GetCharPrev().

参照元 CEditDoc::FormatBackUpPath(), と SelectDir().

const TCHAR* GetFileTitlePointer ( const TCHAR * tszPath )

ファイルフルパス内のファイル名を指すポインタを取得。2007.09.20 kobake 作成

file.cpp の 197 行で定義されています。

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)

file.cpp の 599 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp(), CEditDoc::FormatBackUpPath(), CDlgAbout::OnInitDialog(), と CDocLineMgr::WriteFile().

SAKURA_CORE_API BOOL GetLongFileName | ( | const TCHAR * | pszFilePathSrc,
 |  | TCHAR * | pszFilePathDes
 | ) |  |

ロングファイル名を取得する

引数:
[in] | pszFilePathSrc | 変換元パス名
[out] | pszFilePathDes | 結果書き込み先 (長さMAX_PATHの領域が必要)
日付:
Oct. 2, 2005 genta GetFilePath APIを使って書き換え

Oct. 4, 2005 genta 相対パスが絶対パスに直されなかった

Oct. 5, 2005 Moca 相対パスを絶対パスに変換するように

file.cpp の 344 行で定義されています。

参照先 _MAX_PATH, _tcscpy(), FALSE, と TRUE.

参照元 CShareData::ExpandMetaToFolder(), CEditDoc::FileRead(), CNormalProcess::Initialize(), CEditWnd::OnDropFiles(), OnFolderProc(), CEditDoc::OpenFile(), CCommandLine::ParseCommandLine(), と CEditView::TagJumpSub().

SAKURA_CORE_API bool IsFileExists | ( | const TCHAR * | path,
 |  | bool | bFileOnly
 | ) |  |

ファイルの存在チェック

指定されたパスのファイルが存在するかどうかを確認する。

引数:
path | [in] 調べるパス名
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイルは存在する
false | ファイルは存在しない
作者:
genta
日付:
2002.01.04 新規作成

file.cpp の 568 行で定義されています。

参照元 IsFilePath(), MyWinHelp(), OFNHookProc(), と OnFolderProc().

SAKURA_CORE_API bool IsFilePath | ( | const wchar_t * | 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に変更

file.cpp の 29 行で定義されています。

参照先 _countof, IsFileExists(), と to_tchar.

参照元 CViewCommander::Command_TAGJUMP().

bool IsLocalDrive ( const TCHAR * 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が 実質的に同じものだった

file.cpp の 179 行で定義されています。

参照先 _MAX_DRIVE, と auto_sprintf().

参照元 CEditDoc::MakeBackUp().

SAKURA_CORE_API void SplitPath_FolderAndFile | ( | const TCHAR * | ,
 |  | TCHAR * | ,
 |  | TCHAR * |
 | ) |  |

file.cpp の 305 行で定義されています。

参照先 _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _tcscpy(), CNativeA::GetCharPrev(), と NULL.

参照元 CViewCommander::Command_TagsMake(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), GetExedir(), GetInidir(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CDlgGrep::OnBnClicked(), OnFolderProc(), 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(), CDlgGrep::SetData(), と CEditView::ViewDiffInfo().

Sakura-Editorに対してSat Nov 17 20:27:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: file.h ソースファイル

sakura_core » util

file.h

説明を見る。
00001 #pragma once
00002
00003 SAKURA_CORE_API bool IsFilePath( const wchar_t*, int*, int*, bool = true );
00004 SAKURA_CORE_API bool IsFileExists(const TCHAR* path, bool bFileOnly = false);
00005
00006 //  Apr. 30, 2003 genta
00007 //  ディレクトリの深さを調べる
00008 int CalcDirectoryDepth(const TCHAR* path);
00009
00010 // 2005.11.26 aroka
00011 bool IsLocalDrive( const TCHAR* pszDrive );
00012
00013 //※サクラ依存
00014 FILE *_tfopen_absexe(LPCTSTR fname, LPCTSTR mode); // 2003.06.23 Moca
00015 FILE *_tfopen_absini(LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir = TRUE); // 2007.05.19 ryoji
00016
00017 //パス文字列処理
00018 SAKURA_CORE_API void CutLastYenFromDirectoryPath( TCHAR* );                     /* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない*/
00019 SAKURA_CORE_API void AddLastYenFromDirectoryPath( TCHAR* );                     /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
00020 SAKURA_CORE_API void SplitPath_FolderAndFile( const TCHAR*, TCHAR*, TCHAR* );   /* ファイルのフルパスを、フォルダとファイル名に分割 */
00021 SAKURA_CORE_API BOOL GetLongFileName( const TCHAR*, TCHAR* );                   /* ロングファイル名を取得する */
00022 SAKURA_CORE_API BOOL CheckEXT( const TCHAR*, const TCHAR* );                    /* 拡張子を調べる */
00023 const TCHAR* GetFileTitlePointer(const TCHAR* tszPath);
00024 bool _IS_REL_PATH(const TCHAR* path);
00025
00026 //  Oct. 22, 2005 genta
00027 bool GetLastWriteTimestamp( const TCHAR* filename, FILETIME& ftime );
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: FileInfo.h

sakura_core

FileInfo.h

#include "basis/SakuraBasis.h"
#include "config/maxdata.h"

FileInfo.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct FileInfo

Sakura-Editorに対してSat Nov 17 20:27:08 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: FileInfo.h ソースファイル

sakura_core

FileInfo.h

説明を見る。
00001 #pragma once
00002 #include "basis/SakuraBasis.h"
00003 #include "config/maxdata.h"
00004
00005
00011 struct FileInfo {
00012     CLayoutInt  m_nViewTopLine;
00013     CLayoutInt  m_nViewLeftCol;
00014     CLogicPoint m_ptCursor;
00015     int         m_bIsModified;
00016     ECodeType   m_nCharCode;
00017     TCHAR       m_szPath[_MAX_PATH];
00018     BOOL        m_bIsGrep;
00019     BOOL        m_bIsDebug;
00020     wchar_t     m_szGrepKey[1024];
00021     wchar_t     m_szMarkLines[MAX_MARKLINES_LEN + 1];
00022     TCHAR       m_szDocType[MAX_DOCTYPE_LEN + 1];
00023     int         m_nWindowSizeX;
00024     int         m_nWindowSizeY;
00025     int         m_nWindowOriginX;
00026     int         m_nWindowOriginY;
00028     // Mar. 7, 2002 genta
00029     // Constructor 確実に初期化するため
00030     FileInfo()
00031         : m_nViewTopLine( -1 )
00032         , m_nViewLeftCol( -1 )
00033         , m_ptCursor(CLogicInt(-1), CLogicInt(-1))
00034         , m_bIsModified( 0 )
00035         , m_nCharCode( CODE_AUTODETECT )
00036         , m_bIsGrep( FALSE )
00037         , m_bIsDebug( FALSE )
00038         , m_nWindowSizeX( -1 )
00039         , m_nWindowSizeY( -1 )
00040         //  2004.05.13 Moca “指定無し”を-1からCW_USEDEFAULTに変更
00041         , m_nWindowOriginX( CW_USEDEFAULT )
00042         , m_nWindowOriginY( CW_USEDEFAULT )
00043     {
00044         m_szPath[0] = '\0';
00045         m_szMarkLines[0] = L'\0';
00046         m_szDocType[0] = '\0';
00047     }
00048 };
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: format.cpp

sakura_core » util

format.cpp

#include "stdafx.h"
#include "format.h"

format.cppのインクルード依存関係図

ソースコードを見る。

関数

bool GetDateTimeFormat (TCHAR *szResult, int size, const TCHAR *format, const SYSTEMTIME &systime)

関数

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:
出力バッファのサイズチェックを行う

format.cpp の 20 行で定義されています。

参照先 _tcscpy().

参照元 CEditDoc::FormatBackUpPath().

Sakura-Editorに対してSat Nov 17 20:27:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: format.cpp ソースファイル

sakura_core » util

format.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "format.h"
00003
00004
00020 bool GetDateTimeFormat( TCHAR* szResult, int size, const TCHAR* format, const SYSTEMTIME& systime )
00021 {
00022     TCHAR szTime[10];
00023     const TCHAR *p = format;
00024     TCHAR *q = szResult;
00025     int len;
00026
00027     while( *p ){
00028         if( *p == _T('%') ){
00029             ++p;
00030             switch(*p){
00031             case _T('Y'):
00032                 len = wsprintf(szTime,_T("%d"),systime.wYear);
00033                 _tcscpy( q, szTime );
00034                 break;
00035             case _T('y'):
00036                 len = wsprintf(szTime,_T("%02d"),(systime.wYear%100));
00037                 _tcscpy( q, szTime );
00038                 break;
00039             case _T('m'):
00040                 len = wsprintf(szTime,_T("%02d"),systime.wMonth);
00041                 _tcscpy( q, szTime );
00042                 break;
00043             case _T('d'):
00044                 len = wsprintf(szTime,_T("%02d"),systime.wDay);
00045                 _tcscpy( q, szTime );
00046                 break;
00047             case _T('H'):
00048                 len = wsprintf(szTime,_T("%02d"),systime.wHour);
00049                 _tcscpy( q, szTime );
00050                 break;
00051             case _T('M'):
00052                 len = wsprintf(szTime,_T("%02d"),systime.wMinute);
00053                 _tcscpy( q, szTime );
00054                 break;
00055             case _T('S'):
00056                 len = wsprintf(szTime,_T("%02d"),systime.wSecond);
00057                 _tcscpy( q, szTime );
00058                 break;
00059                 // A Z
00060             case _T('%'):
00061             default:
00062                 *q = *p;
00063                 len = 1;
00064                 break;
00065             }
00066             q+=len;//q += strlen(szTime);
00067             ++p;
00068
00069         }
00070         else{
00071             *q = *p;
00072             q++;
00073             p++;
00074         }
00075     }
00076     *q = *p;
00077     return true;
00078 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: format.h

sakura_core » util

format.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

bool GetDateTimeFormat (TCHAR *szResult, int size, const TCHAR *format, const SYSTEMTIME &systime)

関数

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:
出力バッファのサイズチェックを行う

format.cpp の 20 行で定義されています。

参照先 _tcscpy().

参照元 CEditDoc::FormatBackUpPath().

Sakura-Editorに対してSat Nov 17 20:27:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: format.h ソースファイル

sakura_core » util

format.h

説明を見る。
00001 // 2007.10.20 kobake 書式関連
00002
00003 #pragma once
00004
00005
00006 // 20051121 aroka
00007 bool GetDateTimeFormat( TCHAR* szResult, int size, const TCHAR* format, const SYSTEMTIME& systime );
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode.cpp

sakura_core

Funccode.cpp

機能分類定義 [詳細]

#include "stdafx.h"
#include "funccode.h"
#include "sakura.hh"
#include "CMRU.h"
#include "CShareData.h"
#include "CEditDoc.h"
#include "CSMacroMgr.h"
#include "CMarkMgr.h"
#include "CEditWnd.h"

Funccode.cppのインクルード依存関係図

ソースコードを見る。

関数

int | FuncID_To_HelpContextID (EFunctionCode nFuncID)
機能番号に応じてヘルプトピック番号を返す
int | IsFuncEnable (CEditDoc *pcEditDoc, DLLSHAREDATA *pShareData, int nId)
int | IsFuncChecked (CEditDoc *pcEditDoc, DLLSHAREDATA *pShareData, int nId)

変数

const EFunctionCode | pnFuncList_File []
const int | nFincList_File_Num = _countof( pnFuncList_File )
const EFunctionCode | pnFuncList_Edit []
const int | nFincList_Edit_Num = _countof( pnFuncList_Edit )
const EFunctionCode | pnFuncList_Move []
const int | nFincList_Move_Num = _countof( pnFuncList_Move )
const EFunctionCode | pnFuncList_Select []
const int | nFincList_Select_Num = _countof( pnFuncList_Select )
const EFunctionCode | pnFuncList_Box []
const int | nFincList_Box_Num = _countof( pnFuncList_Box )
const EFunctionCode | pnFuncList_Clip []
const int | nFincList_Clip_Num = _countof( pnFuncList_Clip )
const EFunctionCode | pnFuncList_Insert []
const int | nFincList_Insert_Num = _countof( pnFuncList_Insert )
const EFunctionCode | pnFuncList_Convert []
const int | nFincList_Convert_Num = _countof( pnFuncList_Convert )
const EFunctionCode | pnFuncList_Search []
const int | nFincList_Search_Num = _countof( pnFuncList_Search )
const EFunctionCode | pnFuncList_Mode []
const int | nFincList_Mode_Num = _countof( pnFuncList_Mode )
const EFunctionCode | pnFuncList_Set []
int | nFincList_Set_Num = _countof( pnFuncList_Set )
const EFunctionCode | pnFuncList_Macro []
const int | nFincList_Macro_Num = _countof( pnFuncList_Macro)
const EFunctionCode | pnFuncList_Win []
const int | nFincList_Win_Num = _countof( pnFuncList_Win )
const EFunctionCode | pnFuncList_Support []
const int | nFincList_Support_Num = _countof( pnFuncList_Support )
const EFunctionCode | pnFuncList_Others []
const int | nFincList_Others_Num = _countof( pnFuncList_Others )

説明

機能分類定義

作者:
Norio Nakatani

Funccode.cpp で定義されています。

関数

int FuncID_To_HelpContextID ( EFunctionCode nFuncID )

機能番号に応じてヘルプトピック番号を返す

作者:
Stonee
日付:
2001/02/23
引数:
nFuncID 機能番号
戻り値:
ヘルプトピック番号。該当IDが無い場合には0を返す。
内容はcase文の羅列。

history
2001.12.22 YAZAKI sakura.hhを参照するように変更

Funccode.cpp の 518 行で定義されています。

参照先 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(), CMenuDrawer::DrawItem(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgReplace::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(), と CEditApp::ShowFuncHelp().

int IsFuncChecked | ( | CEditDoc * | pcEditDoc,
 |  | DLLSHAREDATA * | pShareData,
 |  | int | nId
 | ) |  |

Funccode.cpp の 1161 行で定義されています。

参照先 CODE_EUC, CODE_JIS, CODE_SJIS, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF7, CODE_UTF8, EOL_CR, EOL_CRLF, EOL_LF, F_BIND_WINDOW, F_CHGMOD_EOL_CR, F_CHGMOD_EOL_CRLF, F_CHGMOD_EOL_LF, F_CHGMOD_INS, 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_ISEARCH_MIGEMO_NEXT, F_ISEARCH_MIGEMO_PREV, F_ISEARCH_NEXT, F_ISEARCH_PREV, F_ISEARCH_REGEXP_NEXT, F_ISEARCH_REGEXP_PREV, F_OUTLINE_TOGGLE, F_READONLY, F_RECKEYMACRO, F_SHOWFUNCKEY, F_SHOWSTATUSBAR, F_SHOWTAB, F_SHOWTOOLBAR, F_TOGGLE_KEY_SEARCH, F_TOPMOST, FALSE, CEditWnd::GetActiveView(), CDialog::GetHwnd(), CEditWnd::GetHwnd(), CWnd::GetHwnd(), CEditDoc::GetNewLineCode(), CEditDoc::GetOwnerHwnd(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), GetWindowLongPtr, GWLP_USERDATA, CEditDoc::IsInsMode(), CEditView::IsISearchEnabled(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CEditDoc::m_bReadOnly, DLLSHAREDATA::m_bRecordingKeyMacro, CommonSetting_Search::m_bUseCaretKeyWord, CEditWnd::m_cDlgFuncList, CEditWnd::m_CFuncKeyWnd, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, CEditWnd::m_cTabWnd, CEditWnd::m_cToolbar, DLLSHAREDATA::m_hwndRecordingKeyMacro, CEditDoc::m_nCharCode, CEditDoc::m_pcEditWnd, CommonSetting::m_sSearch, CommonSetting::m_sTabBar, NULL, と TRUE.

参照元 CEditWnd::InitMenu(), と CMainToolBar::OnToolbarTimer().

int IsFuncEnable | ( | CEditDoc * | pcEditDoc,
 |  | DLLSHAREDATA * | pShareData,
 |  | int | nId
 | ) |  |

Funccode.cpp の 901 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::BothNatural(), CMarkMgr::CheckNext(), CMarkMgr::CheckPrev(), F_BASE64DECODE, F_BEGIN_BOX, F_BIND_WINDOW, F_BROWSE, F_CASCADE, 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_COPYFNAME, F_COPYLINES, F_COPYLINESASPASSAGE, F_COPYLINESWITHLINENUMBER, F_COPYPATH, F_COPYTAG, F_CUT_LINE, F_DELETE_LINE, F_DIFF_DIALOG, F_DIFF_NEXT, F_DIFF_PREV, F_DIFF_RESET, F_DIRECT_TAGJUMP, F_EXECKEYMACRO, F_FILENEW, F_FILESAVE, F_GREP_DIALOG, F_GROUPCLOSE, F_HANKATATOZENKAKUHIRA, F_HANKATATOZENKAKUKATA, F_JUMP_SRCHSTARTPOS, F_JUMPHIST_NEXT, F_JUMPHIST_PREV, F_JUMPHIST_SET, F_LOADKEYMACRO, F_NEXTGROUP, F_OPEN_CCPP, F_OPEN_HfromtoC, F_OPEN_HHPP, F_PASTE, F_PASTEBOX, F_PLSQL_COMPILE_ON_SQLPLUS, F_PREVGROUP, F_PROPERTY_FILE, F_RECKEYMACRO, F_REDO, F_SAVEKEYMACRO, F_SEARCH_CLEARMARK, F_SELECTWORD, F_SPACETOTAB, F_TAB_JOINTNEXT, F_TAB_JOINTPREV, F_TAB_MOVELEFT, F_TAB_MOVERIGHT, F_TAB_SEPARATE, F_TABTOSPACE, F_TAGJUMP_KEYWORD, F_TILE_H, F_TILE_V, F_TOHANEI, F_TOHANKAKU, F_TOHANKATA, F_TOLOWER, F_TOUPPER, F_TOZENEI, F_TOZENKAKUHIRA, F_TOZENKAKUKATA, F_UNDO, F_UUDECODE, FALSE, CEditWnd::GetActiveView(), CEditDoc::GetOwnerHwnd(), CEditView::GetSelectionInfo(), CDocLineMgr::IsDiffUse(), CEditDoc::IsEnablePaste(), CEditDoc::IsEnableRedo(), CEditDoc::IsEnableUndo(), CEditDoc::IsFilePathAvailable(), CEditDoc::IsModificationForbidden(), CEditDoc::IsModified(), CSMacroMgr::IsSaveOk(), CViewSelect::IsTextSelected(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_File::m_bEnableUnmodifiedOverwrite, CommonSetting_View::m_bFontIs_FIXED_PITCH, CEditDoc::m_bReadOnly, DLLSHAREDATA::m_bRecordingKeyMacro, CEditDoc::m_cDocLineMgr, CEditView::m_cHistory, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_hwndRecordingKeyMacro, DLLSHAREDATA::m_nEditArrNum, CEditDoc::m_pcEditWnd, CEditDoc::m_pcSMacroMgr, CEditView::m_ptSrchStartPos_PHY, CommonSetting::m_sFile, CommonSetting::m_sTabBar, CommonSetting::m_sView, DLLSHAREDATA::m_szKeyMacroFileName, MAX_EDITWINDOWS, と TRUE.

参照元 CViewCommander::Command_CUSTMENU(), CEditView::CreatePopUpMenu_R(), CEditWnd::InitMenu(), CFuncKeyWnd::OnTimer(), と CMainToolBar::OnToolbarTimer().

変数

const int nFincList_Box_Num = _countof( pnFuncList_Box )

Funccode.cpp の 218 行で定義されています。

const int nFincList_Clip_Num = _countof( pnFuncList_Clip )

Funccode.cpp の 239 行で定義されています。

const int nFincList_Convert_Num = _countof( pnFuncList_Convert )

Funccode.cpp の 283 行で定義されています。

const int nFincList_Edit_Num = _countof( pnFuncList_Edit )

Funccode.cpp の 129 行で定義されています。

const int nFincList_File_Num = _countof( pnFuncList_File )

Funccode.cpp の 97 行で定義されています。

const int nFincList_Insert_Num = _countof( pnFuncList_Insert )

Funccode.cpp の 248 行で定義されています。

const int nFincList_Macro_Num = _countof( pnFuncList_Macro)

Funccode.cpp の 366 行で定義されています。

const int nFincList_Mode_Num = _countof( pnFuncList_Mode )

Funccode.cpp の 334 行で定義されています。

const int nFincList_Move_Num = _countof( pnFuncList_Move )

Funccode.cpp の 163 行で定義されています。

const int nFincList_Others_Num = _countof( pnFuncList_Others )

Funccode.cpp の 455 行で定義されています。

const int nFincList_Search_Num = _countof( pnFuncList_Search )

Funccode.cpp の 323 行で定義されています。

const int nFincList_Select_Num = _countof( pnFuncList_Select )

Funccode.cpp の 192 行で定義されています。

int nFincList_Set_Num = _countof( pnFuncList_Set )

Funccode.cpp の 351 行で定義されています。

const int nFincList_Support_Num = _countof( pnFuncList_Support )

Funccode.cpp の 447 行で定義されています。

const int nFincList_Win_Num = _countof( pnFuncList_Win )

Funccode.cpp の 432 行で定義されています。

const EFunctionCode pnFuncList_Box[]

初期値:

 {

    F_BEGIN_BOX         ,

}

Funccode.cpp の 196 行で定義されています。

const EFunctionCode 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 EFunctionCode pnFuncList_Convert[]

Funccode.cpp の 252 行で定義されています。

const EFunctionCode 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 EFunctionCode pnFuncList_File[]

Funccode.cpp の 64 行で定義されています。

const EFunctionCode pnFuncList_Insert[]

初期値:

 {
    F_INS_DATE              ,
    F_INS_TIME              ,
    F_CTRL_CODE_DIALOG
}

Funccode.cpp の 243 行で定義されています。

const EFunctionCode pnFuncList_Macro[]

初期値:

 {
    F_RECKEYMACRO   ,
    F_SAVEKEYMACRO  ,
    F_LOADKEYMACRO  ,
    F_EXECKEYMACRO  ,

    F_EXECCOMMAND_DIALOG

}

Funccode.cpp の 355 行で定義されています。

const EFunctionCode pnFuncList_Mode[]

初期値:

 {
    F_CHGMOD_INS        ,
    F_CHGMOD_EOL_CRLF   ,
    F_CHGMOD_EOL_LF     ,
    F_CHGMOD_EOL_CR     ,
    F_CANCEL_MODE
}

Funccode.cpp の 327 行で定義されています。

const EFunctionCode 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 EFunctionCode pnFuncList_Others[]

初期値:

 {

    F_DISABLE
}

Funccode.cpp の 451 行で定義されています。

const EFunctionCode pnFuncList_Search[]

Funccode.cpp の 287 行で定義されています。

const EFunctionCode 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 EFunctionCode 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 EFunctionCode 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 EFunctionCode 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 Nov 17 20:27:09 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode.cpp ソースファイル

sakura_core

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 #include "sakura.hh"
00030 #include "CMRU.h" //MAX_MRU
00031 #include "CShareData.h"
00032 #include "CEditDoc.h"
00033 #include "CSMacroMgr.h"
00034 #include "CMarkMgr.h"
00035 #include "CEditWnd.h"
00036
00037 //using namespace nsFuncCode;
00038
00039 const TCHAR* nsFuncCode::ppszFuncKind[] = {
00040 //  "--未定義--",    //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更
00041 //  Oct. 16, 2000 JEPRO 表示の順番をメニューバーのそれに合わせるように少し入れ替えた(下の個別のものも全部)
00042     _T("ファイル操作系"),
00043     _T("編集系"),
00044     _T("カーソル移動系"),
00045     _T("選択系"),        //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので「選択系」として独立化(サブメニュー化は構造上できないので)
00046     _T("矩形選択系"),  //Oct. 17, 2000 JEPRO 「選択系」に一緒にすると多くなりすぎるので「矩形選択系」も独立させた
00047     _T("クリップボード系"),
00048     _T("挿入系"),
00049     _T("変換系"),
00050     _T("検索系"),
00051     _T("モード切り替え系"),
00052     _T("設定系"),
00053     _T("マクロ系"),
00054     //  Oct. 15, 2001 genta カスタムメニューの文字列をは動的に変更可能にするためここからは外す．
00055 //  _T("カスタムメニュー"), //Oct. 21, 2000 JEPRO 「その他」から独立分離化
00056     _T("ウィンドウ系"),
00057     _T("支援"),
00058     _T("その他")
00059 };
00060 const int nsFuncCode::nFuncKindNum = _countof(nsFuncCode::ppszFuncKind);
00061
00062
00063 /* ファイル操作系 */
00064 const EFunctionCode 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 = _countof( pnFuncList_File ); //Oct. 16, 2000 JEPRO 配列名変更(FuncList5→FuncList_File)
00098
00099
00100 /* 編集系 */
00101 const EFunctionCode 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 = _countof( pnFuncList_Edit ); //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00130
00131
00132 /* カーソル移動系 */
00133 const EFunctionCode 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 = _countof( pnFuncList_Move ); //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00164
00165
00166 /* 選択系 */ //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
00167 const EFunctionCode 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 = _countof( pnFuncList_Select );
00193
00194
00195 /* 矩形選択系 */   //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00196 const EFunctionCode 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 = _countof( pnFuncList_Box );
00219
00220
00221 /* クリップボード系 */
00222 const EFunctionCode 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_W                 ,   //テキストを貼り付け       //Oct. 22, 2000 JEPRO ここに追加したが非公式機能なのか不明なのでコメントアウトにしておく
00230 //  F_ADDTAIL_W                 ,   //最後にテキストを追加        //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 = _countof( pnFuncList_Clip ); //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00240
00241
00242 /* 挿入系 */
00243 const EFunctionCode pnFuncList_Insert[] = {
00244     F_INS_DATE              ,   // 日付挿入
00245     F_INS_TIME              ,   // 時刻挿入
00246     F_CTRL_CODE_DIALOG          //コントロールコードの入力
00247 };
00248 const int nFincList_Insert_Num = _countof( pnFuncList_Insert );
00249
00250
00251 /* 変換系 */
00252 const EFunctionCode 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 = _countof( pnFuncList_Convert );   //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00284
00285
00286 /* 検索系 */
00287 const EFunctionCode 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 = _countof( pnFuncList_Search ); //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00324
00325
00326 /* モード切り替え系 */  //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00327 const EFunctionCode 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 = _countof( pnFuncList_Mode ); //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00335
00336
00337 /* 設定系 */
00338 const EFunctionCode 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 = _countof( pnFuncList_Set ); //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00352
00353
00354 /* マクロ系 */
00355 const EFunctionCode 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 = _countof( pnFuncList_Macro);    //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 EFunctionCode 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 = _countof( pnFuncList_Menu ); //Oct. 21, 2000 JEPRO 「その他」から分離独立化
00401 #endif
00402
00403 /* ウィンドウ系 */
00404 const EFunctionCode 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 = _countof( pnFuncList_Win );   //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00433
00434
00435 /* 支援 */
00436 const EFunctionCode 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 = _countof( pnFuncList_Support );   //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00448
00449
00450 /* その他 */ //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00451 const EFunctionCode pnFuncList_Others[] = {
00452 //  F_SENDMAIL                  ,   /* メール送信 */
00453     F_DISABLE               //Oct. 21, 2000 JEPRO 何もないとエラーになってしまうのでダミーで[未定義]を入れておく
00454 };
00455 const int nFincList_Others_Num = _countof( pnFuncList_Others ); //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 EFunctionCode* nsFuncCode::ppnFuncListArr[] = {
00482 //  pnFuncList_Undef,   //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更   //Oct. 16, 2000 JEPRO 変数名変更(List0→List_Undef)
00483     pnFuncList_File,    /* ファイル操作系 */ //Oct. 16, 2000 JEPRO 変数名変更(List5→List_File)
00484     pnFuncList_Edit,    /* 編集系 */         //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00485     pnFuncList_Move,    /* カーソル移動系 */ //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00486     pnFuncList_Select,/* 選択系 */           //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動  (矩形選択)は新設され次第ここにおく
00487     pnFuncList_Box, /* 矩形選択系 */       //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00488     pnFuncList_Clip,    /* クリップボード系 */  //Oct. 16, 2000 JEPRO 変数名変更(List2→List_Clip)
00489     pnFuncList_Insert,/* 挿入系 */
00490     pnFuncList_Convert,/* 変換系 */          //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00491     pnFuncList_Search,/* 検索系 */           //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00492     pnFuncList_Mode,    /* モード切り替え系 */  //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00493     pnFuncList_Set, /* 設定系 */         //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00494     pnFuncList_Macro,   /* マクロ系 */          //Oct. 16, 2000 JEPRO 変数名変更(List10→List_Macro)
00495 //  カスタムメニューの文字列を動的に変更可能にするためこれは削除
00496 //  pnFuncList_Menu,    /* カスタムメニュー */  //Oct. 21, 2000 JEPRO「その他」から分離独立化
00497     pnFuncList_Win, /* ウィンドウ系 */        //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00498     pnFuncList_Support,/* 支援 */             //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00499     pnFuncList_Others   /* その他 */         //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00500 };
00501 const int nsFuncCode::nFincListNumArrNum = _countof( nsFuncCode::pnFuncListNumArr );
00502
00503
00504
00505
00507
00518 int FuncID_To_HelpContextID( EFunctionCode nFuncID )
00519 {
00520     switch( nFuncID ){
00521
00522     /* ファイル操作系 */
00523     case F_FILENEW:             return HLP000025;           //新規作成
00524     case F_FILEOPEN:            return HLP000015;           //開く
00525     case F_FILEOPEN_DROPDOWN:   return HLP000015;           //開く(ドロップダウン) //@@@ 2002.06.15 MIK
00526     case F_FILESAVE:            return HLP000020;           //上書き保存
00527     case F_FILESAVEAS_DIALOG:   return HLP000021;           //名前を付けて保存
00528     case F_FILESAVEALL:         return HLP000313;           //すべて上書き保存  // 2006.10.05 ryoji
00529     case F_FILESAVECLOSE:       return HLP000287;           //保存して閉じる // 2006.10.05 ryoji
00530     case F_FILECLOSE:           return HLP000017;           //閉じて(無題) //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00531     case F_FILECLOSE_OPEN:      return HLP000119;           //閉じて開く
00532     case F_FILE_REOPEN:         return HLP000283;           //開き直す  //@@@ 2003.06.15 MIK
00533     case F_FILE_REOPEN_SJIS:    return HLP000156;           //SJISで開き直す
00534     case F_FILE_REOPEN_JIS:     return HLP000157;           //JISで開き直す
00535     case F_FILE_REOPEN_EUC:     return HLP000158;           //EUCで開き直す
00536     case F_FILE_REOPEN_UNICODE: return HLP000159;           //Unicodeで開き直す
00537     case F_FILE_REOPEN_UNICODEBE:   return HLP000256;       //UnicodeBEで開き直す
00538     case F_FILE_REOPEN_UTF8:    return HLP000160;           //UTF-8で開き直す
00539     case F_FILE_REOPEN_UTF7:    return HLP000161;           //UTF-7で開き直す
00540     case F_PRINT:               return HLP000162;           //印刷                //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00541     case F_PRINT_PREVIEW:       return HLP000120;           //印刷プレビュー
00542     case F_PRINT_PAGESETUP:     return HLP000122;           //印刷ページ設定 //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00543     case F_OPEN_HfromtoC:       return HLP000192;           //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
00544     case F_OPEN_HHPP:           return HLP000024;           //同名のC/C++ヘッダファイルを開く  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00545     case F_OPEN_CCPP:           return HLP000026;           //同名のC/C++ソースファイルを開く  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00546     case F_ACTIVATE_SQLPLUS:    return HLP000132;           /* Oracle SQL*Plusをアクティブ表示 */
00547     case F_PLSQL_COMPILE_ON_SQLPLUS:    return HLP000027;   /* Oracle SQL*Plusで実行 */
00548     case F_BROWSE:              return HLP000121;           //ブラウズ
00549     case F_READONLY:            return HLP000249;           //読み取り専用
00550     case F_PROPERTY_FILE:       return HLP000022;           /* ファイルのプロパティ */
00551
00552     case F_EXITALLEDITORS:  return HLP000030;               //編集の全終了    // 2007.02.13 ryoji 追加
00553     case F_EXITALL:         return HLP000028;               //サクラエディタの全終了 //Dec. 26, 2000 JEPRO F_に変更
00554
00555
00556     /* 編集系 */
00557     case F_UNDO:                        return HLP000032;   //元に戻す(Undo)
00558     case F_REDO:                        return HLP000033;   //やり直し(Redo)
00559     case F_DELETE:                      return HLP000041;   //削除
00560     case F_DELETE_BACK:                 return HLP000042;   //カーソル前を削除
00561     case F_WordDeleteToStart:           return HLP000166;   //単語の左端まで削除
00562     case F_WordDeleteToEnd:             return HLP000167;   //単語の右端まで削除
00563     case F_WordCut:                     return HLP000169;   //単語切り取り
00564     case F_WordDelete:                  return HLP000168;   //単語削除
00565     case F_LineCutToStart:              return HLP000172;   //行頭まで切り取り(改行単位)
00566     case F_LineCutToEnd:                return HLP000173;   //行末まで切り取り(改行単位)
00567     case F_LineDeleteToStart:           return HLP000170;   //行頭まで削除(改行単位)
00568     case F_LineDeleteToEnd:             return HLP000171;   //行末まで削除(改行単位)
00569     case F_CUT_LINE:                    return HLP000174;   //行切り取り(折り返し単位)
00570     case F_DELETE_LINE:                 return HLP000137;   //行削除(折り返し単位)
00571     case F_DUPLICATELINE:               return HLP000043;   //行の二重化(折り返し単位)
00572     case F_INDENT_TAB:                  return HLP000113;   //TABインデント
00573     case F_UNINDENT_TAB:                return HLP000113;   //逆TABインデント
00574     case F_INDENT_SPACE:                return HLP000114;   //SPACEインデント
00575     case F_UNINDENT_SPACE:              return HLP000114;   //逆SPACEインデント
00576     case F_RECONVERT:                   return HLP000218;   //再変換
00577 //  case ORDSREFERENCE:                 return ;    //単語リファレンス
00578
00579
00580     /* カーソル移動系 */
00581     case F_UP:              return HLP000289;   //カーソル上移動 // 2006.10.11 ryoji
00582     case F_DOWN:            return HLP000289;   //カーソル下移動 // 2006.10.11 ryoji
00583     case F_LEFT:            return HLP000289;   //カーソル左移動 // 2006.10.11 ryoji
00584     case F_RIGHT:           return HLP000289;   //カーソル右移動 // 2006.10.11 ryoji
00585     case F_UP2:             return HLP000220;   //カーソル上移動(２行ごと)
00586     case F_DOWN2:           return HLP000221;   //カーソル下移動(２行ごと)
00587     case F_WORDLEFT:        return HLP000222;   //単語の左端に移動
00588     case F_WORDRIGHT:       return HLP000223;   //単語の右端に移動
00589     case F_GOLINETOP:       return HLP000224;   //行頭に移動(折り返し単位)
00590     case F_GOLINEEND:       return HLP000225;   //行末に移動(折り返し単位)
00591 //  case F_ROLLDOWN:        return ;    //スクロールダウン
00592 //  case F_ROLLUP:          return ;    //スクロールアップ
00593     case F_HalfPageUp:      return HLP000245;   //半ページアップ //Oct. 17, 2000 JEPRO 以下「１ページダウン」まで追加
00594     case F_HalfPageDown:    return HLP000246;   //半ページダウン
00595     case F_1PageUp:         return HLP000226;   //１ページアップ
00596     case F_1PageDown:       return HLP000227;   //１ページダウン
00597     case F_GOFILETOP:       return HLP000228;   //ファイルの先頭に移動
00598     case F_GOFILEEND:       return HLP000229;   //ファイルの最後に移動
00599     case F_CURLINECENTER:   return HLP000230;   //カーソル行をウィンドウ中央へ
00600     case F_JUMP_SRCHSTARTPOS:   return HLP000264; //検索開始位置へ戻る
00601     case F_JUMPHIST_PREV:       return HLP000231;   //移動履歴: 前へ  //Oct. 17, 2000 JEPRO 以下「移動履歴:次へ」まで追加
00602     case F_JUMPHIST_NEXT:       return HLP000232;   //移動履歴: 次へ
00603     case F_JUMPHIST_SET:    return HLP000265;   //現在位置を移動履歴に登録
00604     case F_WndScrollDown:   return HLP000198;   //テキストを１行下へスクロール    //Jul. 05, 2001 JEPRO 追加
00605     case F_WndScrollUp:     return HLP000199;   //テキストを１行上へスクロール    //Jul. 05, 2001 JEPRO 追加
00606     case F_GONEXTPARAGRAPH: return HLP000262;   //前の段落に移動
00607     case F_GOPREVPARAGRAPH: return HLP000263;   //前の段落に移動
00608
00609     /* 選択系 */ //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
00610     case F_SELECTWORD:      return HLP000045;   //現在位置の単語選択
00611     case F_SELECTALL:       return HLP000044;   //すべて選択
00612     case F_BEGIN_SEL:       return HLP000233;   //範囲選択開始
00613     case F_UP_SEL:          return HLP000290;   //(範囲選択)カーソル上移動   // 2006.10.11 ryoji
00614     case F_DOWN_SEL:        return HLP000290;   //(範囲選択)カーソル下移動   // 2006.10.11 ryoji
00615     case F_LEFT_SEL:        return HLP000290;   //(範囲選択)カーソル左移動   // 2006.10.11 ryoji
00616     case F_RIGHT_SEL:       return HLP000290;   //(範囲選択)カーソル右移動   // 2006.10.11 ryoji
00617     case F_UP2_SEL:         return HLP000234;   //(範囲選択)カーソル上移動(２行ごと)
00618     case F_DOWN2_SEL:       return HLP000235;   //(範囲選択)カーソル下移動(２行ごと)
00619     case F_WORDLEFT_SEL:    return HLP000236;   //(範囲選択)単語の左端に移動
00620     case F_WORDRIGHT_SEL:   return HLP000237;   //(範囲選択)単語の右端に移動
00621     case F_GONEXTPARAGRAPH_SEL: return HLP000273;   //(範囲選択)前の段落に移動   //@@@ 2003.06.15 MIK
00622     case F_GOPREVPARAGRAPH_SEL: return HLP000274;   //(範囲選択)前の段落に移動   //@@@ 2003.06.15 MIK
00623     case F_GOLINETOP_SEL:   return HLP000238;   //(範囲選択)行頭に移動(折り返し単位)
00624     case F_GOLINEEND_SEL:   return HLP000239;   //(範囲選択)行末に移動(折り返し単位)
00625 //  case F_ROLLDOWN_SEL:    return ;    //(範囲選択)スクロールダウン
00626 //  case F_ROLLUP_SEL:      return ;    //(範囲選択)スクロールアップ
00627     case F_HalfPageUp_Sel:  return HLP000247;   //(範囲選択)半ページアップ       //Oct. 17, 2000 JEPRO 以下「１ページダウン」まで追加
00628     case F_HalfPageDown_Sel:return HLP000248;   //(範囲選択)半ページダウン
00629     case F_1PageUp_Sel:     return HLP000240;   //(範囲選択)１ページアップ
00630     case F_1PageDown_Sel:   return HLP000241;   //(範囲選択)１ページダウン
00631     case F_GOFILETOP_SEL:   return HLP000242;   //(範囲選択)ファイルの先頭に移動
00632     case F_GOFILEEND_SEL:   return HLP000243;   //(範囲選択)ファイルの最後に移動
00633 //  case F_GONEXTPARAGRAPH_SEL: return HLP000262;   //(範囲選択)次の段落へ
00634 //  case F_GOPREVPARAGRAPH_SEL: return HLP000263;   //(範囲選択)前の段落へ
00635
00636
00637     /* 矩形選択系 */   //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00638 //  case F_BOXSELALL:       return ;    //矩形ですべて選択
00639     case F_BEGIN_BOX:       return HLP000244;   //矩形範囲選択開始
00640 /*
00641     case F_UP_BOX:          return ;    //(矩形選択)カーソル上移動   //Oct. 17, 2000 JEPRO 以下「ファイルの最後に移動」まで追加
00642     case F_DOWN_BOX:        return ;    //(矩形選択)カーソル下移動
00643     case F_LEFT_BOX:        return ;    /(矩形選択)カーソル左移動
00644     case F_RIGHT_BOX:       return ;    //(矩形選択)カーソル右移動
00645     case F_UP2_BOX:         return ;    //(矩形選択)カーソル上移動(２行ごと)
00646     case F_DOWN2_BOX:       return ;    //(矩形選択)カーソル下移動(２行ごと)
00647     case F_WORDLEFT_BOX:    return ;    //(矩形選択)単語の左端に移動
00648     case F_WORDRIGHT_BOX:   return ;    //(矩形選択)単語の右端に移動
00649     case F_GOLINETOP_BOX:   return ;    //(矩形選択)行頭に移動(折り返し単位)
00650     case F_GOLINEEND_BOX:   return ;    //(矩形選択)行末に移動(折り返し単位)
00651     case F_HalfPageUp_Box:  return ;    //(矩形選択)半ページアップ
00652     case F_HalfPageDown_Box:return ;    //(矩形選択)半ページダウン
00653     case F_1PageUp_Box:     return ;    //(矩形選択)１ページアップ
00654     case F_1PageDown_Box:   return ;    //(矩形選択)１ページダウン
00655     case F_GOFILETOP_BOX:   return ;    //(矩形選択)ファイルの先頭に移動
00656     case F_GOFILEEND_BOX:   return ;    //(矩形選択)ファイルの最後に移動
00657 */
00658     /* 整形系 2002/04/17 YAZAKI */
00659     case F_LTRIM:       return HLP000210;   //左(先頭)の空白を削除
00660     case F_RTRIM:       return HLP000211;   //右(末尾)の空白を削除
00661     case F_SORT_ASC:    return HLP000212;   //選択行の昇順ソート
00662     case F_SORT_DESC:   return HLP000213;   //選択行の降順ソート
00663     case F_MERGE:       return HLP000214;   //選択行のマージ
00664
00665     /* クリップボード系 */
00666     case F_CUT:             return HLP000034;           //切り取り(選択範囲をクリップボードにコピーして削除)
00667     case F_COPY:            return HLP000035;           //コピー(選択範囲をクリップボードにコピー)
00668     case F_COPY_ADDCRLF:    return HLP000219;           //折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
00669     case F_COPY_CRLF:       return HLP000163;           //CRLF改行でコピー(選択範囲をクリップボードにコピー)  //Feb. 23, 2001 JEPRO 抜けていたので追加
00670     case F_PASTE:           return HLP000039;           //貼り付け(クリップボードから貼り付け)
00671     case F_PASTEBOX:        return HLP000040;           //矩形貼り付け(クリップボードから矩形貼り付け)
00672 //  case F_INSTEXT_W:           return ;            // テキストを貼り付け
00673     case F_COPYLINES:               return HLP000036;   //選択範囲内全行コピー
00674     case F_COPYLINESASPASSAGE:      return HLP000037;   //選択範囲内全行引用符付きコピー
00675     case F_COPYLINESWITHLINENUMBER: return HLP000038;   //選択範囲内全行行番号付きコピー
00676     case F_COPYPATH:        return HLP000056;           //このファイルのパス名をクリップボードにコピー
00677     case F_COPYTAG:         return HLP000175;           //このファイルのパス名とカーソル位置をコピー   //Oct. 17, 2000 JEPRO 追加
00678     case F_COPYFNAME:       return HLP000303;           //このファイル名をクリップボードにコピー // 2002/2/3 aroka
00679 //  case IDM_TEST_CREATEKEYBINDLIST:    return 57;  //キー割り当て一覧をクリップボードへコピー  //Sept. 15, 2000 jepro「リスト」を「一覧」に変更
00680     case F_CREATEKEYBINDLIST:       return HLP000057;   //キー割り当て一覧をクリップボードへコピー  //Sept. 15, 2000 JEPRO 「リスト」を「一覧」に変更、IDM＿TESTをFに変更したがうまくいかないので殺してある //Dec. 25, 2000 復活
00681
00682
00683     /* 挿入系 */
00684     case F_INS_DATE:                return HLP000164;   // 日付挿入
00685     case F_INS_TIME:                return HLP000165;   // 時刻挿入
00686     case F_CTRL_CODE_DIALOG:        return HLP000255;   /* コントロールコード入力 */
00687
00688
00689     /* 変換系 */
00690     case F_TOLOWER:                 return HLP000047;   //小文字
00691     case F_TOUPPER:                 return HLP000048;   //大文字
00692     case F_TOHANKAKU:               return HLP000049;   /* 全角→半角 */
00693     case F_TOHANKATA:               return HLP000258;   //全角カタカナ→半角カタカナ
00694     case F_TOZENKAKUKATA:           return HLP000050;   /* 半角＋全ひら→全角・カタカナ */    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00695     case F_TOZENKAKUHIRA:           return HLP000051;   /* 半角＋全カタ→全角・ひらがな */    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00696     case F_HANKATATOZENKAKUKATA:    return HLP000123;   /* 半角カタカナ→全角カタカナ */
00697     case F_HANKATATOZENKAKUHIRA:    return HLP000124;   /* 半角カタカナ→全角ひらがな */
00698     case F_TOZENEI:                 return HLP000200;   /* 半角英数→全角英数 */           //July. 30, 2001 Misaka //Stonee, 2001/09/26 番号修正
00699     case F_TOHANEI:                 return HLP000215;   /* 全角英数→半角英数 */           //@@@ 2002.2.11 YAZAKI
00700     case F_TABTOSPACE:              return HLP000182;   /* TAB→空白 */
00701     case F_SPACETOTAB:              return HLP000196;   /* 空白→TAB */  //---- Stonee, 2001/05/27   //Jul. 03, 2001 JEPRO 番号修正
00702     case F_CODECNV_AUTO2SJIS:       return HLP000178;   /* 自動判別→SJISコード変換 */
00703     case F_CODECNV_EMAIL:           return HLP000052;   //E-Mail(JIS→SJIS)コード変換
00704     case F_CODECNV_EUC2SJIS:        return HLP000053;   //EUC→SJISコード変換
00705     case F_CODECNV_UNICODE2SJIS:    return HLP000179;   //Unicode→SJISコード変換
00706     case F_CODECNV_UNICODEBE2SJIS:  return HLP000257;   //UnicodeBE→SJISコード変換
00707     case F_CODECNV_UTF82SJIS:       return HLP000142;   /* UTF-8→SJISコード変換 */
00708     case F_CODECNV_UTF72SJIS:       return HLP000143; /* UTF-7→SJISコード変換 */
00709     case F_CODECNV_SJIS2JIS:        return HLP000117;   /* SJIS→JISコード変換 */
00710     case F_CODECNV_SJIS2EUC:        return HLP000118;   /* SJIS→EUCコード変換 */
00711     case F_CODECNV_SJIS2UTF8:       return HLP000180;   /* SJIS→UTF-8コード変換 */
00712     case F_CODECNV_SJIS2UTF7:       return HLP000181;   /* SJIS→UTF-7コード変換 */
00713     case F_BASE64DECODE:            return HLP000054;   //Base64デコードして保存
00714     case F_UUDECODE:                return HLP000055;   //uudecodeして保存  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00715
00716
00717     /* 検索系 */
00718     case F_SEARCH_DIALOG:       return HLP000059;   //検索(単語検索ダイアログ)
00719     case F_SEARCH_BOX:          return HLP000059;   //検索(ボックス) Jan. 13, 2003 MIK
00720     case F_SEARCH_NEXT:         return HLP000061;   //次を検索
00721     case F_SEARCH_PREV:         return HLP000060;   //前を検索
00722     case F_REPLACE_DIALOG:      return HLP000062;   //置換(置換ダイアログ)
00723     case F_SEARCH_CLEARMARK:    return HLP000136;   //検索マークのクリア
00724     case F_GREP_DIALOG:         return HLP000067;   //Grep
00725     case F_JUMP_DIALOG:         return HLP000063;   //指定行へジャンプ
00726     case F_OUTLINE:             return HLP000064;   //アウトライン解析
00727     case F_OUTLINE_TOGGLE:      return HLP000317;   //アウトライン解析(トグル)   // 2006.10.11 ryoji
00728     case F_TAGJUMP:             return HLP000065;   //タグジャンプ機能
00729     case F_TAGJUMPBACK:         return HLP000066;   //タグジャンプバック機能
00730     case F_TAGS_MAKE:           return HLP000280;   //タグファイルの作成   //@@@ 2003.04.13 MIK
00731     case F_TAGJUMP_LIST:        return HLP000281;   //タグジャンプ一覧  //@@@ 2003.04.17 MIK
00732     case F_DIRECT_TAGJUMP:      return HLP000281;   //ダイレクトタグジャンプ //@@@ 2003.04.17 MIK
00733     case F_TAGJUMP_CLOSE:       return HLP000291;   //閉じてタグジャンプ(元ウィンドウClose)  // 2006.10.11 ryoji
00734     case F_TAGJUMP_KEYWORD:     return HLP000310;   //キーワードを指定してタグジャンプ  // 2006.10.05 ryoji
00735     case F_COMPARE:             return HLP000116;   //ファイル内容比較
00736     case F_DIFF_DIALOG:         return HLP000251;   //DIFF差分表示(ダイアログ) //@@@ 2002.05.25 MIK
00737 //  case F_DIFF:                return HLP000251;   //DIFF差分表示  //@@@ 2002.05.25 MIK
00738     case F_DIFF_NEXT:           return HLP000252;   //次の差分へ   //@@@ 2002.05.25 MIK
00739     case F_DIFF_PREV:           return HLP000253;   //前の差分へ   //@@@ 2002.05.25 MIK
00740     case F_DIFF_RESET:          return HLP000254;   //差分の全解除    //@@@ 2002.05.25 MIK
00741     case F_BRACKETPAIR:         return HLP000183;   //対括弧の検索    //Oct. 17, 2000 JEPRO 追加
00742     case F_BOOKMARK_SET:        return HLP000205;   //ブックマーク設定・解除
00743     case F_BOOKMARK_NEXT:       return HLP000206;   //次のブックマークへ
00744     case F_BOOKMARK_PREV:       return HLP000207;   //前のブックマークへ
00745     case F_BOOKMARK_RESET:      return HLP000208;   //ブックマークの全解除
00746     case F_BOOKMARK_VIEW:       return HLP000209;   //ブックマークの一覧
00747     case F_ISEARCH_NEXT:        return HLP000304;   //前方インクリメンタルサーチ   // 2006.10.05 ryoji
00748     case F_ISEARCH_PREV:        return HLP000305;   //後方インクリメンタルサーチ   // 2006.10.05 ryoji
00749     case F_ISEARCH_REGEXP_NEXT: return HLP000306;   //正規表現前方インクリメンタルサーチ   // 2006.10.05 ryoji
00750     case F_ISEARCH_REGEXP_PREV: return HLP000307;   //正規表現後方インクリメンタルサーチ   // 2006.10.05 ryoji
00751     case F_ISEARCH_MIGEMO_NEXT: return HLP000308;   //MIGEMO前方インクリメンタルサーチ // 2006.10.05 ryoji
00752     case F_ISEARCH_MIGEMO_PREV: return HLP000309;   //MIGEMO後方インクリメンタルサーチ // 2006.10.05 ryoji
00753
00754     /* モード切り替え系 */
00755     case F_CHGMOD_INS:      return HLP000046;   //挿入／上書きモード切り替え
00756     case F_CHGMOD_EOL_CRLF: return HLP000285;   //入力改行コード指定   // 2003.09.23 Moca
00757     case F_CHGMOD_EOL_CR:   return HLP000285;   //入力改行コード指定   // 2003.09.23 Moca
00758     case F_CHGMOD_EOL_LF:   return HLP000285;   //入力改行コード指定   // 2003.09.23 Moca
00759     case F_CANCEL_MODE:     return HLP000194;   //各種モードの取り消し
00760
00761
00762     /* 設定系 */
00763     case F_SHOWTOOLBAR:     return HLP000069;   /* ツールバーの表示 */
00764     case F_SHOWFUNCKEY:     return HLP000070;   /* ファンクションキーの表示 */
00765     case F_SHOWTAB:         return HLP000282;   /* タブの表示 */   //@@@ 2003.06.10 MIK
00766     case F_SHOWSTATUSBAR:   return HLP000134;   /* ステータスバーの表示 */
00767     case F_TYPE_LIST:       return HLP000072;   /* タイプ別設定一覧 */
00768     case F_OPTION_TYPE:     return HLP000073;   /* タイプ別設定 */
00769     case F_OPTION:          return HLP000076;   /* 共通設定 */
00770 //From here 設定ダイアログ用のhelpトピックIDを追加  Stonee, 2001/05/18
00771     case F_TYPE_SCREEN:     return HLP000074;   /* タイプ別設定『スクリーン』 */
00772     case F_TYPE_COLOR:      return HLP000075;   /* タイプ別設定『カラー』 */
00773     case F_TYPE_HELPER:     return HLP000197;   /* タイプ別設定『支援』 */    //Jul. 03, 2001 JEPRO 追加
00774     case F_TYPE_REGEX_KEYWORD:  return HLP000203;   /* タイプ別設定『正規表現キーワード』 */   //@@@ 2001.11.17 add MIK
00775     case F_TYPE_KEYHELP:    return HLP000315;   /* タイプ別設定『キーワードヘルプ』 */  // 2006.10.06 ryoji 追加
00776     case F_OPTION_GENERAL:  return HLP000081;   /* 共通設定『全般』 */
00777     case F_OPTION_WINDOW:   return HLP000146;   /* 共通設定『ウィンドウ』 */
00778     case F_OPTION_TAB:      return HLP000150;   /* 共通設定『タブバー』 */    // 2007.02.13 ryoji 追加
00779     case F_OPTION_EDIT:     return HLP000144;   /* 共通設定『編集』 */
00780     case F_OPTION_FILE:     return HLP000083;   /* 共通設定『ファイル』 */
00781     case F_OPTION_BACKUP:   return HLP000145;   /* 共通設定『バックアップ』 */
00782     case F_OPTION_FORMAT:   return HLP000082;   /* 共通設定『書式』 */
00783 //  case F_OPTION_URL:      return HLP000147;   /* 共通設定『クリッカブルURL』 */
00784     case F_OPTION_GREP:     return HLP000148;   /* 共通設定『Grep』 */
00785     case F_OPTION_KEYBIND:  return HLP000084;   /* 共通設定『キー割り当て』 */
00786     case F_OPTION_CUSTMENU: return HLP000087;   /* 共通設定『カスタムメニュー』 */
00787     case F_OPTION_TOOLBAR:  return HLP000085;   /* 共通設定『ツールバー』 */
00788     case F_OPTION_KEYWORD:  return HLP000086;   /* 共通設定『強調キーワード』 */
00789     case F_OPTION_HELPER:   return HLP000088;   /* 共通設定『支援』 */
00790 //To here  Stonee, 2001/05/18
00791     case F_OPTION_MACRO:    return HLP000201;   /* 共通設定『マクロ』 */   //@@@ 2002.01.02
00792     case F_OPTION_FNAME:    return HLP000277;   /* 共通設定 『全般』プロパティ */  // 2002.12.09 Moca Add  //重複回避
00793     case F_FONT:            return HLP000071;   /* フォント設定 */
00794     case F_WRAPWINDOWWIDTH: return HLP000184;   /* 現在のウィンドウ幅で折り返し */    //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更  //Jul. 03, 2001 JEPRO 番号修正
00795     case F_FAVORITE:        return HLP000279;   /* 履歴の管理 */   //@@@ 2003.04.08 MIK
00796
00797     /* マクロ */
00798     case F_RECKEYMACRO:     return HLP000125;   /* キーマクロ記録開始／終了 */
00799     case F_SAVEKEYMACRO:    return HLP000127;   /* キーマクロ保存 */
00800     case F_LOADKEYMACRO:    return HLP000128;   /* キーマクロ読み込み */
00801     case F_EXECKEYMACRO:    return HLP000126;   /* キーマクロ実行 */
00802 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00803 //  case F_EXECCMMAND:      return 103; /* 外部コマンド実行 */
00804     case F_EXECCOMMAND_DIALOG:  return HLP000103; /* 外部コマンド実行 */
00805 //  To Here Sept. 20, 2000
00806
00807
00808     /* カスタムメニュー */
00809     case F_MENU_RBUTTON:    return HLP000195;   /* 右クリックメニュー */
00810     case F_CUSTMENU_1:  return HLP000186;   /* カスタムメニュー1 */
00811     case F_CUSTMENU_2:  return HLP000186;   /* カスタムメニュー2 */
00812     case F_CUSTMENU_3:  return HLP000186;   /* カスタムメニュー3 */
00813     case F_CUSTMENU_4:  return HLP000186;   /* カスタムメニュー4 */
00814     case F_CUSTMENU_5:  return HLP000186;   /* カスタムメニュー5 */
00815     case F_CUSTMENU_6:  return HLP000186;   /* カスタムメニュー6 */
00816     case F_CUSTMENU_7:  return HLP000186;   /* カスタムメニュー7 */
00817     case F_CUSTMENU_8:  return HLP000186;   /* カスタムメニュー8 */
00818     case F_CUSTMENU_9:  return HLP000186;   /* カスタムメニュー9 */
00819     case F_CUSTMENU_10: return HLP000186;   /* カスタムメニュー10 */
00820     case F_CUSTMENU_11: return HLP000186;   /* カスタムメニュー11 */
00821     case F_CUSTMENU_12: return HLP000186;   /* カスタムメニュー12 */
00822     case F_CUSTMENU_13: return HLP000186;   /* カスタムメニュー13 */
00823     case F_CUSTMENU_14: return HLP000186;   /* カスタムメニュー14 */
00824     case F_CUSTMENU_15: return HLP000186;   /* カスタムメニュー15 */
00825     case F_CUSTMENU_16: return HLP000186;   /* カスタムメニュー16 */
00826     case F_CUSTMENU_17: return HLP000186;   /* カスタムメニュー17 */
00827     case F_CUSTMENU_18: return HLP000186;   /* カスタムメニュー18 */
00828     case F_CUSTMENU_19: return HLP000186;   /* カスタムメニュー19 */
00829     case F_CUSTMENU_20: return HLP000186;   /* カスタムメニュー20 */
00830     case F_CUSTMENU_21: return HLP000186;   /* カスタムメニュー21 */
00831     case F_CUSTMENU_22: return HLP000186;   /* カスタムメニュー22 */
00832     case F_CUSTMENU_23: return HLP000186;   /* カスタムメニュー23 */
00833     case F_CUSTMENU_24: return HLP000186;   /* カスタムメニュー24 */
00834
00835
00836     /* ウィンドウ系 */
00837     case F_SPLIT_V:         return HLP000093;   //上下に分割   //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00838     case F_SPLIT_H:         return HLP000094;   //左右に分割   //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00839     case F_SPLIT_VH:        return HLP000095;   //縦横に分割   //Sept. 17, 2000 jepro 説明に「に」を追加
00840     case F_WINCLOSE:        return HLP000018;   //ウィンドウを閉じる
00841     case F_WIN_CLOSEALL:    return HLP000019;   //すべてのウィンドウを閉じる   //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00842     case F_NEXTWINDOW:      return HLP000092;   //次のウィンドウ
00843     case F_PREVWINDOW:      return HLP000091;   //前のウィンドウ
00844     case F_WINLIST:         return HLP000314;   //ウィンドウ一覧 // 2006.10.05 ryoji
00845     case F_BIND_WINDOW:     return HLP000311;   //結合して表示    // 2006.10.05 ryoji
00846     case F_CASCADE:         return HLP000138;   //重ねて表示
00847     case F_TILE_V:          return HLP000140;   //上下に並べて表示
00848     case F_TILE_H:          return HLP000139;   //左右に並べて表示
00849     case F_TOPMOST:         return HLP000312;   //常に手前に表示 // 2006.10.05 ryoji
00850     case F_MAXIMIZE_V:      return HLP000141;   //縦方向に最大化
00851     case F_MAXIMIZE_H:      return HLP000098;   //横方向に最大化 //2001.02.10 by MIK
00852     case F_MINIMIZE_ALL:    return HLP000096;   //すべて最小化    //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00853     case F_REDRAW:          return HLP000187;   //再描画
00854     case F_WIN_OUTPUT:      return HLP000188;   //アウトプットウィンドウ表示
00855     case F_GROUPCLOSE:      return HLP000320;   //グループを閉じる  // 2007.06.20 ryoji
00856     case F_NEXTGROUP:       return HLP000321;   //次のグループ    // 2007.06.20 ryoji
00857     case F_PREVGROUP:       return HLP000322;   //前のグループ    // 2007.06.20 ryoji
00858     case F_TAB_MOVERIGHT:   return HLP000323;   //タブを右に移動 // 2007.06.20 ryoji
00859     case F_TAB_MOVELEFT:    return HLP000324;   //タブを左に移動 // 2007.06.20 ryoji
00860     case F_TAB_SEPARATE:    return HLP000325;   //新規グループ    // 2007.06.20 ryoji
00861     case F_TAB_JOINTNEXT:   return HLP000326;   //次のグループに移動   // 2007.06.20 ryoji
00862     case F_TAB_JOINTPREV:   return HLP000327;   //前のグループに移動   // 2007.06.20 ryoji
00863
00864
00865     /* 支援 */
00866     case F_HOKAN:           return HLP000111;   /* 入力補完機能 */
00867     case F_TOGGLE_KEY_SEARCH:   return HLP000318;   //キャレット位置辞書検索機能ON/OFF // 2006.10.11 ryoji
00868 //Sept. 15, 2000→Nov. 25, 2000 JEPRO  //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
00869     case F_HELP_CONTENTS:   return HLP000100;   //ヘルプ目次           //Nov. 25, 2000 JEPRO
00870     case F_HELP_SEARCH:     return HLP000101;   //ヘルプキーワード検索    //Nov. 25, 2000 JEPRO「トピックの」→「キーワード」に変更
00871     case F_MENU_ALLFUNC:    return HLP000189;   /* コマンド一覧 */
00872     case F_EXTHELP1:        return HLP000190;   /* 外部ヘルプ１ */
00873     case F_EXTHTMLHELP:     return HLP000191;   /* 外部HTMLヘルプ */
00874     case F_ABOUT:           return HLP000102;   //バージョン情報 //Dec. 24, 2000 JEPRO F_に変更
00875
00876
00877     /* その他 */
00878 //  case F_SENDMAIL:        return ;    /* メール送信 */
00879
00880     default:
00881         // From Here 2003.09.23 Moca
00882         if( IDM_SELMRU <= nFuncID && nFuncID < IDM_SELMRU + MAX_MRU ){
00883             return HLP000029;   //最近使ったファイル
00884         }else if( IDM_SELOPENFOLDER <= nFuncID && nFuncID < IDM_SELOPENFOLDER + MAX_OPENFOLDER ){
00885             return HLP000023;   //最近使ったフォルダ
00886         }else if( IDM_SELWINDOW <= nFuncID && nFuncID < IDM_SELWINDOW + MAX_EDITWINDOWS ){
00887             return HLP000097;   //ウィンドウリスト
00888         }else if( F_USERMACRO_0 <= nFuncID && nFuncID < F_USERMACRO_0 + MAX_CUSTMACRO ){
00889             return HLP000202;   //登録済みマクロ // 2006.10.08 ryoji
00890         }
00891         // To Here 2003.09.23 Moca
00892         return 0;
00893     }
00894 }
00895
00896
00897
00898
00899
00900 /* 機能が利用可能か調べる */
00901 int IsFuncEnable( CEditDoc* pcEditDoc, DLLSHAREDATA* pShareData, int nId )
00902 {
00903     /* 書き換え禁止のときを一括チェック */
00904     if( pcEditDoc->IsModificationForbidden( nId ) )
00905         return FALSE;
00906
00907     switch( nId ){
00908     case F_RECKEYMACRO: /* キーマクロの記録開始／終了 */
00909         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
00910             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->GetOwnerHwnd() ){ /* キーボードマクロを記録中のウィンドウ */
00911                 return TRUE;
00912             }else{
00913                 return FALSE;
00914             }
00915         }else{
00916             return TRUE;
00917         }
00918     case F_SAVEKEYMACRO:    /* キーマクロの保存 */
00919         //  Jun. 16, 2002 genta
00920         //  キーマクロエンジン以外のマクロを読み込んでいるときは
00921         //  実行はできるが保存はできない．
00922         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
00923             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->GetOwnerHwnd() ){ /* キーボードマクロを記録中のウィンドウ */
00924                 return TRUE;
00925             }else{
00926                 return FALSE;
00927             }
00928         }else{
00929             return pcEditDoc->m_pcSMacroMgr->IsSaveOk();
00930         }
00931     case F_EXECKEYMACRO:    /* キーマクロの実行 */
00932         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
00933             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->GetOwnerHwnd() ){ /* キーボードマクロを記録中のウィンドウ */
00934                 return TRUE;
00935             }else{
00936                 return FALSE;
00937             }
00938         }else{
00939             //@@@ 2002.1.24 YAZAKI m_szKeyMacroFileNameにファイル名がコピーされているかどうか。
00940             if (pShareData->m_szKeyMacroFileName[0] ) {
00941                 return TRUE;
00942             }else{
00943                 return FALSE;
00944             }
00945         }
00946     case F_LOADKEYMACRO:    /* キーマクロの読み込み */
00947         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
00948             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->GetOwnerHwnd() ){ /* キーボードマクロを記録中のウィンドウ */
00949                 return TRUE;
00950             }else{
00951                 return FALSE;
00952             }
00953         }else{
00954             return TRUE;
00955         }
00956
00957     case F_SEARCH_CLEARMARK:    //検索マークのクリア
00958         return TRUE;
00959
00960     // 02/06/26 ai Start
00961     case F_JUMP_SRCHSTARTPOS:   // 検索開始位置へ戻る
00962         if( pcEditDoc->m_pcEditWnd->GetActiveView().m_ptSrchStartPos_PHY.BothNatural() ){
00963             return TRUE;
00964         }else{
00965             return FALSE;
00966         }
00967     // 02/06/26 ai End
00968
00969     case F_COMPARE: /* ファイル内容比較 */
00970         if( 2 <= pShareData->m_nEditArrNum ){
00971             return TRUE;
00972         }else{
00973             return FALSE;
00974         }
00975
00976     case F_DIFF_NEXT:   /* 次の差分へ */   //@@@ 2002.05.25 MIK
00977     case F_DIFF_PREV:   /* 前の差分へ */   //@@@ 2002.05.25 MIK
00978     case F_DIFF_RESET:  /* 差分の全解除 */    //@@@ 2002.05.25 MIK
00979         if( ! pcEditDoc->m_cDocLineMgr.IsDiffUse() ) return FALSE;
00980         return TRUE;
00981     case F_DIFF_DIALOG: /* DIFF差分表示 */  //@@@ 2002.05.25 MIK
00982         //if( pcEditDoc->IsModified() ) return FALSE;
00983         //if( ! pcEditDoc->IsFilePathAvailable() ) return FALSE;
00984         return TRUE;
00985
00986     case F_BEGIN_BOX:   //矩形範囲選択開始
00987         if( pShareData->m_Common.m_sView.m_bFontIs_FIXED_PITCH ){   /* 現在のフォントは固定幅フォントである */
00988             return TRUE;
00989         }else{
00990             return FALSE;
00991         }
00992     case F_PASTEBOX:
00993         /* クリップボードから貼り付け可能か？ */
00994         if( pcEditDoc->IsEnablePaste() && pShareData->m_Common.m_sView.m_bFontIs_FIXED_PITCH ){
00995             return TRUE;
00996         }else{
00997             return FALSE;
00998         }
00999     case F_PASTE:
01000         /* クリップボードから貼り付け可能か？ */
01001         if( pcEditDoc->IsEnablePaste() ){
01002             return TRUE;
01003         }else{
01004             return FALSE;
01005         }
01006
01007     case F_FILENEW: /* 新規作成 */
01008     case F_GREP_DIALOG: /* Grep */
01009         /* 編集ウィンドウの上限チェック */
01010         if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正   //@@@ 2003.05.31 MIK
01011             return FALSE;
01012         }else{
01013             return TRUE;
01014         }
01015
01016     case F_FILESAVE:    /* 上書き保存 */
01017         if( !pcEditDoc->m_bReadOnly ){  /* 読み取り専用モード */
01018             if( pcEditDoc->IsModified() ){  /* 変更フラグ */
01019                 return TRUE;
01020             }else{
01021                 /* 無変更でも上書きするか */
01022                 if( FALSE == pShareData->m_Common.m_sFile.m_bEnableUnmodifiedOverwrite ){
01023                     return FALSE;
01024                 }else{
01025                     return TRUE;
01026                 }
01027             }
01028         }else{
01029             return FALSE;
01030         }
01031     case F_COPYLINES:               //選択範囲内全行コピー
01032     case F_COPYLINESASPASSAGE:      //選択範囲内全行引用符付きコピー
01033     case F_COPYLINESWITHLINENUMBER: //選択範囲内全行行番号付きコピー
01034         if( pcEditDoc->m_pcEditWnd->GetActiveView().GetSelectionInfo().IsTextSelected( ) ){/* テキストが選択されているか */
01035             return TRUE;
01036         }else{
01037             return FALSE;
01038         }
01039
01040     case F_TOLOWER:                 /* 小文字 */
01041     case F_TOUPPER:                 /* 大文字 */
01042     case F_TOHANKAKU:               /* 全角→半角 */
01043     case F_TOHANKATA:               /* 全角カタカナ→半角カタカナ */   //Aug. 29, 2002 ai
01044     case F_TOZENEI:                 /* 半角英数→全角英数 */           //July. 30, 2001 Misaka
01045     case F_TOHANEI:                 /* 全角英数→半角英数 */
01046     case F_TOZENKAKUKATA:           /* 半角＋全ひら→全角・カタカナ */    //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
01047     case F_TOZENKAKUHIRA:           /* 半角＋全カタ→全角・ひらがな */    //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
01048     case F_HANKATATOZENKAKUKATA:    /* 半角カタカナ→全角カタカナ */
01049     case F_HANKATATOZENKAKUHIRA:    /* 半角カタカナ→全角ひらがな */
01050     case F_TABTOSPACE:              /* TAB→空白 */
01051     case F_SPACETOTAB:              /* 空白→TAB */  //---- Stonee, 2001/05/27
01052     case F_CODECNV_AUTO2SJIS:       /* 自動判別→SJISコード変換 */
01053     case F_CODECNV_EMAIL:           /* E-Mail(JIS→SJIS)コード変換 */
01054     case F_CODECNV_EUC2SJIS:        /* EUC→SJISコード変換 */
01055     case F_CODECNV_UNICODE2SJIS:    /* Unicode→SJISコード変換 */
01056     case F_CODECNV_UNICODEBE2SJIS:  /* UnicodeBE→SJISコード変換 */
01057     case F_CODECNV_UTF82SJIS:       /* UTF-8→SJISコード変換 */
01058     case F_CODECNV_UTF72SJIS:       /* UTF-7→SJISコード変換 */
01059     case F_CODECNV_SJIS2JIS:        /* SJIS→JISコード変換 */
01060     case F_CODECNV_SJIS2EUC:        /* SJIS→EUCコード変換 */
01061     case F_CODECNV_SJIS2UTF8:       /* SJIS→UTF-8コード変換 */
01062     case F_CODECNV_SJIS2UTF7:       /* SJIS→UTF-7コード変換 */
01063     case F_BASE64DECODE:            /* Base64デコードして保存 */
01064     case F_UUDECODE:                //uudecodeして保存  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
01065
01066         /* テキストが選択されているか */
01067         if( pcEditDoc->m_pcEditWnd->GetActiveView().GetSelectionInfo().IsTextSelected( ) ){
01068             return TRUE;
01069         }else{
01070             return FALSE;
01071         }
01072     case F_SELECTWORD:  /* 現在位置の単語選択 */
01073     case F_CUT_LINE:    //行切り取り(折り返し単位)
01074     case F_DELETE_LINE: //行削除(折り返し単位)
01075         /* テキストが選択されているか */
01076         if( pcEditDoc->m_pcEditWnd->GetActiveView().GetSelectionInfo().IsTextSelected( ) ){
01077             return FALSE;
01078         }else{
01079             return TRUE;
01080         }
01081     case F_UNDO:
01082         /* Undo(元に戻す)可能な状態か？ */
01083         if( pcEditDoc->IsEnableUndo() ){
01084             return TRUE;
01085         }else{
01086             return FALSE;
01087         }
01088     case F_REDO:
01089         /* Redo(やり直し)可能な状態か？ */
01090         if( pcEditDoc->IsEnableRedo() ){
01091             return TRUE;
01092         }else{
01093             return FALSE;
01094         }
01095
01096     case F_COPYPATH:
01097     case F_COPYTAG:
01098     case F_COPYFNAME:                   // 2002/2/3 aroka
01099     case F_OPEN_HfromtoC:               //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
01100     case F_OPEN_HHPP:                   //同名のC/C++ヘッダファイルを開く  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
01101     case F_OPEN_CCPP:                   //同名のC/C++ソースファイルを開く  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
01102     case F_PLSQL_COMPILE_ON_SQLPLUS:    /* Oracle SQL*Plusで実行 */
01103     case F_BROWSE:                      //ブラウズ
01104     //case F_READONLY:                  //読み取り専用    //  Sep. 10, 2002 genta 常に使えるように
01105     case F_PROPERTY_FILE:
01106         /* 現在編集中のファイルのパス名をクリップボードにコピーできるか */
01107         if( pcEditDoc->IsFilePathAvailable() ){
01108             return TRUE;
01109         }else{
01110             return FALSE;
01111         }
01112     case F_JUMPHIST_PREV:   //  移動履歴: 前へ
01113         if( pcEditDoc->m_pcEditWnd->GetActiveView().m_cHistory->CheckPrev() )
01114             return TRUE;
01115         else
01116             return FALSE;
01117     case F_JUMPHIST_NEXT:   //  移動履歴: 次へ
01118         if( pcEditDoc->m_pcEditWnd->GetActiveView().m_cHistory->CheckNext() )
01119             return TRUE;
01120         else
01121             return FALSE;
01122     case F_JUMPHIST_SET:    //  現在位置を移動履歴に登録
01123         return TRUE;
01124     case F_DIRECT_TAGJUMP:  //ダイレクトタグジャンプ //@@@ 2003.04.15 MIK
01125     case F_TAGJUMP_KEYWORD: //キーワードを指定してダイレクトタグジャンプ   //@@@ 2005.03.31 MIK
01126     //  2003.05.12 MIK タグファイル作成先を選べるようにしたので、常に作成可能とする
01127 //  case F_TAGS_MAKE:   //タグファイルの作成   //@@@ 2003.04.13 MIK
01128         if( pcEditDoc->IsFilePathAvailable() ){
01129             return TRUE;
01130         }else{
01131             return FALSE;
01132         }
01133
01134     //タブモード時はウインドウ並べ替え禁止です。   @@@ 2003.06.12 MIK
01135     case F_TILE_H:
01136     case F_TILE_V:
01137     case F_CASCADE:
01138         //Start 2004.07.15 Kazika タブウィンド時も実行可能
01139         return TRUE;
01140         //End 2004.07.15 Kazika
01141     case F_BIND_WINDOW: //2004.07.14 Kazika 新規追加
01142     case F_TAB_MOVERIGHT:   // 2007.06.20 ryoji 追加
01143     case F_TAB_MOVELEFT:    // 2007.06.20 ryoji 追加
01144         //非タブモード時はウィンドウを結合して表示できない
01145         return (pShareData->m_Common.m_sTabBar.m_bDispTabWnd);
01146     case F_GROUPCLOSE:      // 2007.06.20 ryoji 追加
01147     case F_NEXTGROUP:       // 2007.06.20 ryoji 追加
01148     case F_PREVGROUP:       // 2007.06.20 ryoji 追加
01149         return ( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin );
01150     case F_TAB_SEPARATE:    // 2007.06.20 ryoji 追加
01151     case F_TAB_JOINTNEXT:   // 2007.06.20 ryoji 追加
01152     case F_TAB_JOINTPREV:   // 2007.06.20 ryoji 追加
01153         return ( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin && !::IsZoomed( pcEditDoc->GetOwnerHwnd() ) );
01154     }
01155     return TRUE;
01156 }
01157
01158
01159
01160 /* 機能がチェック状態か調べる */
01161 int IsFuncChecked( CEditDoc* pcEditDoc, DLLSHAREDATA*   pShareData, int nId )
01162 {
01163     CEditWnd* pCEditWnd;
01164     // Modified by KEITA for WIN64 2003.9.6
01165     pCEditWnd = ( CEditWnd* )::GetWindowLongPtr( pcEditDoc->GetOwnerHwnd(), GWLP_USERDATA );
01166 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより、プレビュー判定削除
01167     switch( nId ){
01168     case F_FILE_REOPEN_SJIS:
01169         if( CODE_SJIS == pcEditDoc->m_nCharCode ){
01170             return TRUE;
01171         }else{
01172             return FALSE;
01173         }
01174     case F_FILE_REOPEN_JIS:
01175         if( CODE_JIS == pcEditDoc->m_nCharCode ){
01176             return TRUE;
01177         }else{
01178             return FALSE;
01179         }
01180     case F_FILE_REOPEN_EUC:
01181         if( CODE_EUC == pcEditDoc->m_nCharCode ){
01182             return TRUE;
01183         }else{
01184             return FALSE;
01185         }
01186     case F_FILE_REOPEN_UNICODE:
01187         if( CODE_UNICODE == pcEditDoc->m_nCharCode ){
01188             return TRUE;
01189         }else{
01190             return FALSE;
01191         }
01192     case F_FILE_REOPEN_UNICODEBE:
01193         if( CODE_UNICODEBE == pcEditDoc->m_nCharCode ){
01194             return TRUE;
01195         }else{
01196             return FALSE;
01197         }
01198     case F_FILE_REOPEN_UTF8:
01199         if( CODE_UTF8 == pcEditDoc->m_nCharCode ){
01200             return TRUE;
01201         }else{
01202             return FALSE;
01203         }
01204     case F_FILE_REOPEN_UTF7:
01205         if( CODE_UTF7 == pcEditDoc->m_nCharCode ){
01206             return TRUE;
01207         }else{
01208             return FALSE;
01209         }
01210     case F_RECKEYMACRO: /* キーマクロの記録開始／終了 */
01211         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
01212             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->GetOwnerHwnd() ){ /* キーボードマクロを記録中のウィンドウ */
01213                 return TRUE;
01214             }else{
01215                 return FALSE;
01216             }
01217         }else{
01218             return FALSE;
01219         }
01220     case F_SHOWTOOLBAR:
01221         if( pCEditWnd->m_cToolbar.GetToolbarHwnd() ){
01222             return TRUE;
01223         }else{
01224             return FALSE;
01225         }
01226     case F_SHOWFUNCKEY:
01227         if( pCEditWnd->m_CFuncKeyWnd.GetHwnd() != NULL ){
01228             return TRUE;
01229         }else{
01230             return FALSE;
01231         }
01232     case F_SHOWTAB: //@@@ 2003.06.10 MIK
01233         if( pCEditWnd->m_cTabWnd.GetHwnd() != NULL ){
01234             return TRUE;
01235         }else{
01236             return FALSE;
01237         }
01238     case F_SHOWSTATUSBAR:
01239         if( pCEditWnd->m_cStatusBar.GetStatusHwnd() != NULL ){
01240             return TRUE;
01241         }else{
01242             return FALSE;
01243         }
01244     // Mar. 6, 2002 genta
01245     case F_READONLY://読み取り専用
01246         if( pcEditDoc->m_bReadOnly ){ /* 変更フラグ */
01247             return TRUE;
01248         }else{
01249             return FALSE;
01250         }
01251     //  From Here 2003.06.23 Moca
01252     case F_CHGMOD_EOL_CRLF:
01253         if( EOL_CRLF == pcEditDoc->GetNewLineCode() ){
01254             return TRUE;
01255         }else{
01256             return FALSE;
01257         }
01258     case F_CHGMOD_EOL_LF:
01259         if( EOL_LF == pcEditDoc->GetNewLineCode() ){
01260             return TRUE;
01261         }else{
01262             return FALSE;
01263         }
01264     case F_CHGMOD_EOL_CR:
01265         if( EOL_CR == pcEditDoc->GetNewLineCode() ){
01266             return TRUE;
01267         }else{
01268             return FALSE;
01269         }
01270     //  To Here 2003.06.23 Moca
01271     //  2003.07.21 genta
01272     case F_CHGMOD_INS:
01273         //  Oct. 2, 2005 genta 挿入モードはドキュメント毎に補完するように変更した
01274         if( pcEditDoc->IsInsMode() ){
01275             return TRUE;
01276         }else{
01277             return FALSE;
01278         }
01279     case F_TOGGLE_KEY_SEARCH:
01280         //  2007.02.03 genta キーワードポップアップのON/OFF状態を反映する
01281         if( pShareData->m_Common.m_sSearch.m_bUseCaretKeyWord ){
01282             return TRUE;
01283         }
01284         else {
01285             return FALSE;
01286         }
01287     //Start 2004.07.14 Kazika 追加
01288     case F_BIND_WINDOW: //
01289         return ((pShareData->m_Common.m_sTabBar.m_bDispTabWnd) && !(pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin));
01290
01291     // 2004.09.21 Moca
01292     case F_TOPMOST:
01293         if( (DWORD)::GetWindowLongPtr( pCEditWnd->GetHwnd(), GWL_EXSTYLE ) & WS_EX_TOPMOST ){
01294             return TRUE;
01295         }else{
01296             return FALSE;
01297         }
01298         break;
01299     // Jan. 10, 2004 genta インクリメンタルサーチ
01300     case F_ISEARCH_NEXT:
01301     case F_ISEARCH_PREV:
01302     case F_ISEARCH_REGEXP_NEXT:
01303     case F_ISEARCH_REGEXP_PREV:
01304     case F_ISEARCH_MIGEMO_NEXT:
01305     case F_ISEARCH_MIGEMO_PREV:
01306         return pcEditDoc->m_pcEditWnd->GetActiveView().IsISearchEnabled( nId );
01307     case F_OUTLINE_TOGGLE: // 20060201 aroka アウトラインウィンドウ
01308         // ToDo:ブックマークリストが出ているときもへこんでしまう。
01309         return (pcEditDoc->m_pcEditWnd->m_cDlgFuncList.GetHwnd() != NULL);
01310     }
01311     //End 2004.07.14 Kazika
01312
01313     return FALSE;
01314 }
01315
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode.h

sakura_core

Funccode.h

機能番号定義 [詳細]

#include "Funccode_enum.h"

Funccode.hのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | nsFuncCode

関数

SAKURA_CORE_API int | FuncID_To_HelpContextID (EFunctionCode nFuncID)
機能番号に応じてヘルプトピック番号を返す
int | IsFuncEnable (CEditDoc *, DLLSHAREDATA *, int)
int | IsFuncChecked (CEditDoc *, DLLSHAREDATA *, int)

変数

const TCHAR * | nsFuncCode::ppszFuncKind []
const int | nsFuncCode::nFuncKindNum = _countof(nsFuncCode::ppszFuncKind)
const int | nsFuncCode::pnFuncListNumArr []
const EFunctionCode * | nsFuncCode::ppnFuncListArr []
const int | nsFuncCode::nFincListNumArrNum = _countof( nsFuncCode::pnFuncListNumArr )

説明

機能番号定義

作者:
Norio Nakatani

Funccode.h で定義されています。

関数

SAKURA_CORE_API int FuncID_To_HelpContextID ( EFunctionCode nFuncID )

機能番号に応じてヘルプトピック番号を返す

作者:
Stonee
日付:
2001/02/23
引数:
nFuncID 機能番号
戻り値:
ヘルプトピック番号。該当IDが無い場合には0を返す。
内容はcase文の羅列。

history
2001.12.22 YAZAKI sakura.hhを参照するように変更

Funccode.cpp の 518 行で定義されています。

参照先 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(), CMenuDrawer::DrawItem(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgReplace::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(), と CEditApp::ShowFuncHelp().

int IsFuncChecked | ( | CEditDoc * | ,
 |  | DLLSHAREDATA * | ,
 |  | int |
 | ) |  |

Funccode.cpp の 1161 行で定義されています。

参照先 CODE_EUC, CODE_JIS, CODE_SJIS, CODE_UNICODE, CODE_UNICODEBE, CODE_UTF7, CODE_UTF8, EOL_CR, EOL_CRLF, EOL_LF, F_BIND_WINDOW, F_CHGMOD_EOL_CR, F_CHGMOD_EOL_CRLF, F_CHGMOD_EOL_LF, F_CHGMOD_INS, 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_ISEARCH_MIGEMO_NEXT, F_ISEARCH_MIGEMO_PREV, F_ISEARCH_NEXT, F_ISEARCH_PREV, F_ISEARCH_REGEXP_NEXT, F_ISEARCH_REGEXP_PREV, F_OUTLINE_TOGGLE, F_READONLY, F_RECKEYMACRO, F_SHOWFUNCKEY, F_SHOWSTATUSBAR, F_SHOWTAB, F_SHOWTOOLBAR, F_TOGGLE_KEY_SEARCH, F_TOPMOST, FALSE, CEditWnd::GetActiveView(), CDialog::GetHwnd(), CEditWnd::GetHwnd(), CWnd::GetHwnd(), CEditDoc::GetNewLineCode(), CEditDoc::GetOwnerHwnd(), CMainStatusBar::GetStatusHwnd(), CMainToolBar::GetToolbarHwnd(), GetWindowLongPtr, GWLP_USERDATA, CEditDoc::IsInsMode(), CEditView::IsISearchEnabled(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CEditDoc::m_bReadOnly, DLLSHAREDATA::m_bRecordingKeyMacro, CommonSetting_Search::m_bUseCaretKeyWord, CEditWnd::m_cDlgFuncList, CEditWnd::m_CFuncKeyWnd, DLLSHAREDATA::m_Common, CEditWnd::m_cStatusBar, CEditWnd::m_cTabWnd, CEditWnd::m_cToolbar, DLLSHAREDATA::m_hwndRecordingKeyMacro, CEditDoc::m_nCharCode, CEditDoc::m_pcEditWnd, CommonSetting::m_sSearch, CommonSetting::m_sTabBar, NULL, と TRUE.

参照元 CEditWnd::InitMenu(), と CMainToolBar::OnToolbarTimer().

int IsFuncEnable | ( | CEditDoc * | ,
 |  | DLLSHAREDATA * | ,
 |  | int |
 | ) |  |

Funccode.cpp の 901 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::BothNatural(), CMarkMgr::CheckNext(), CMarkMgr::CheckPrev(), F_BASE64DECODE, F_BEGIN_BOX, F_BIND_WINDOW, F_BROWSE, F_CASCADE, 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_COPYFNAME, F_COPYLINES, F_COPYLINESASPASSAGE, F_COPYLINESWITHLINENUMBER, F_COPYPATH, F_COPYTAG, F_CUT_LINE, F_DELETE_LINE, F_DIFF_DIALOG, F_DIFF_NEXT, F_DIFF_PREV, F_DIFF_RESET, F_DIRECT_TAGJUMP, F_EXECKEYMACRO, F_FILENEW, F_FILESAVE, F_GREP_DIALOG, F_GROUPCLOSE, F_HANKATATOZENKAKUHIRA, F_HANKATATOZENKAKUKATA, F_JUMP_SRCHSTARTPOS, F_JUMPHIST_NEXT, F_JUMPHIST_PREV, F_JUMPHIST_SET, F_LOADKEYMACRO, F_NEXTGROUP, F_OPEN_CCPP, F_OPEN_HfromtoC, F_OPEN_HHPP, F_PASTE, F_PASTEBOX, F_PLSQL_COMPILE_ON_SQLPLUS, F_PREVGROUP, F_PROPERTY_FILE, F_RECKEYMACRO, F_REDO, F_SAVEKEYMACRO, F_SEARCH_CLEARMARK, F_SELECTWORD, F_SPACETOTAB, F_TAB_JOINTNEXT, F_TAB_JOINTPREV, F_TAB_MOVELEFT, F_TAB_MOVERIGHT, F_TAB_SEPARATE, F_TABTOSPACE, F_TAGJUMP_KEYWORD, F_TILE_H, F_TILE_V, F_TOHANEI, F_TOHANKAKU, F_TOHANKATA, F_TOLOWER, F_TOUPPER, F_TOZENEI, F_TOZENKAKUHIRA, F_TOZENKAKUKATA, F_UNDO, F_UUDECODE, FALSE, CEditWnd::GetActiveView(), CEditDoc::GetOwnerHwnd(), CEditView::GetSelectionInfo(), CDocLineMgr::IsDiffUse(), CEditDoc::IsEnablePaste(), CEditDoc::IsEnableRedo(), CEditDoc::IsEnableUndo(), CEditDoc::IsFilePathAvailable(), CEditDoc::IsModificationForbidden(), CEditDoc::IsModified(), CSMacroMgr::IsSaveOk(), CViewSelect::IsTextSelected(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, CommonSetting_File::m_bEnableUnmodifiedOverwrite, CommonSetting_View::m_bFontIs_FIXED_PITCH, CEditDoc::m_bReadOnly, DLLSHAREDATA::m_bRecordingKeyMacro, CEditDoc::m_cDocLineMgr, CEditView::m_cHistory, DLLSHAREDATA::m_Common, DLLSHAREDATA::m_hwndRecordingKeyMacro, DLLSHAREDATA::m_nEditArrNum, CEditDoc::m_pcEditWnd, CEditDoc::m_pcSMacroMgr, CEditView::m_ptSrchStartPos_PHY, CommonSetting::m_sFile, CommonSetting::m_sTabBar, CommonSetting::m_sView, DLLSHAREDATA::m_szKeyMacroFileName, MAX_EDITWINDOWS, と TRUE.

参照元 CViewCommander::Command_CUSTMENU(), CEditView::CreatePopUpMenu_R(), CEditWnd::InitMenu(), CFuncKeyWnd::OnTimer(), と CMainToolBar::OnToolbarTimer().

Sakura-Editorに対してSat Nov 17 20:27:10 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode.h ソースファイル

sakura_core

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  F_FILECLOSE:「ファイルを閉じる」というキャプションを変更
00025 //Feb. 28, 2004 genta  F_FILESAVECLOSE
00026 //Jan. 24, 2005 genta  F_FILESAVEALL
00027 //Jan. 24, 2005 genta  F_FILESAVE_QUIET
00028 //2007.02.13    ryoji  F_EXITALLEDITORS追加
00029 //Sep. 14, 2000 jepro  F_PRINT_PAGESETUP:「印刷のページレイアウトの設定」から「印刷ページ設定」に変更
00030 //Feb.  9, 2001 jepro  F_OPEN_HHPP「.cまたは.cppと同名の.hを開く」から変更
00031 //Feb.  9, 2001 jepro  F_OPEN_CCPP「.hと同名の.c(なければ.cpp)を開く」から変更
00032 //Feb.  7, 2001 JEPRO  F_OPEN_HfromtoC 追加
00033 //Sep. 17, 2000 jepro  F_PLSQL_COMPILE_ON_SQLPLUS 説明の「コンパイル」を「実行」に統一
00034 //Dec. 27, 2000 JEPRO  F_EXITALL追加
00035 //2007.09.02 kobake パラメータがwchar_tで来ることを示唆するよう、名前を F_CHAR から F_WCHAR に変更
00036 //2001.12.03 hor    F_LTRIM
00037 //2001.12.03 hor    F_RTRIM
00038 //2001.12.06 hor    F_SORT_ASC
00039 //2001.12.06 hor    F_SORT_DESC
00040 //2001.12.06 hor    F_MERGE
00041 //2002.04.09 minfu  F_RECONVERT
00042 //Dec. 4, 2002 genta F_FILE_REOPEN〜
00043 //Oct. 10, 2000 JEPRO F_ROLLDOWN     下の半ページアップに名称変更
00044 //Oct. 10, 2000 JEPRO F_ROLLUP       下の半ページダウンに名称変更
00045 //Oct.  6, 2000 JEPRO F_HalfPageUp   名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00046 //Oct.  6, 2000 JEPRO F_HalfPageDown 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00047 //Oct. 10, 2000 JEPRO F_1PageUp      従来のページアップを半ページアップと名称変更し１ページアップを追加
00048 //Oct. 10, 2000 JEPRO F_1PageDown    従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00049 //2001/06/20 asa-o F_WndScrollDown
00050 //2001/06/20 asa-o F_WndScrollUp
00051 //Oct. 10, 2000 JEPRO F_ROLLDOWN_SEL     下の半ページアップに名称変更
00052 //Oct. 10, 2000 JEPRO F_ROLLUP_SEL       下の半ページダウンに名称変更
00053 //Oct.  6, 2000 JEPRO F_HalfPageUp_Sel   名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00054 //Oct.  6, 2000 JEPRO F_HalfPageDown_Sel 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00055 //Oct. 10, 2000 JEPRO F_1PageUp_Sel      従来のページアップを半ページアップと名称変更し１ページアップを追加
00056 //Oct. 10, 2000 JEPRO F_1PageDown_Sel    従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00057 //2002/2/3 aroka F_COPYFNAME
00058 //Sept. 15, 2000 JEPRO F_CREATEKEYBINDLIST 上の行はIDM_TESTのままではうまくいかないのでFに変えて登録
00059 //2002.06.02     MIK    F_CTRL_CODE_DIALOG
00060 //Aug. 29, 2002  ai     F_TOHANKATA
00061 //Sep. 17, 2000  jepro  F_TOZENKAKUKATA 説明を「半角→全角カタカナ」から変更
00062 //Sep. 17, 2000  jepro  F_TOZENKAKUHIRA 説明を「半角→全角ひらがな」から変更
00063 //Jly. 30, 2001  Misaka F_TOZENEI
00064 //2002.2.11      YAZAKI F_TOHANEI
00065 //2001/05/27     Stonee F_SPACETOTAB
00066 //Oct. 17, 2000  jepro  F_UUDECODE 説明を「選択部分をUUENCODEデコード」から変更
00067 //02/06/26 ai F_JUMP_SRCHSTARTPOS
00068 //2002.06.15 MIK F_SEARCH_BOX
00069 //20060201 aroka F_OUTLINE_TOGGLE
00070 //2003.04.13 MIK F_TAGJUMP_LIST
00071 //2003.04.13 MIK F_TAGS_MAKE
00072 //2003.04.15 MIK F_DIRECT_TAGJUMP
00073 //Apr. 03. 2003 genta F_TAGJUMP_CLOSE
00074 //2005.03.31 MIK F_TAGJUMP_KEYWORD
00075 //2002.05.25 MIK F_DIFF_DIALOG
00076 //2002.05.25 MIK F_DIFF
00077 //2002.05.25 MIK F_DIFF_NEXT
00078 //2002.05.25 MIK F_DIFF_PREV
00079 //2002.05.25 MIK F_DIFF_RESET
00080 //2004.10.13 isearch F_ISEARCH_NEXT
00081 //2004.10.13 isearch F_ISEARCH_PREV
00082 //2004.10.13 isearch F_ISEARCH_REGEXP_NEXT
00083 //2004.10.13 isearch F_ISEARCH_REGEXP_PREV
00084 //2004.10.13 isearch F_ISEARCH_MIGEMO_NEXT
00085 //2004.10.13 isearch F_ISEARCH_MIGEMO_PREV
00086 //2003.06.08 Moca F_CHGMOD_EOL_CRLF
00087 //2003.06.08 Moca F_CHGMOD_EOL_LF
00088 //2003.06.08 Moca F_CHGMOD_EOL_CR
00089 //2003.06.23 Moca F_CHGMOD_EOL
00090 //2005.01.29 genta F_SET_QUOTESTRING
00091 //2006.04.26 maru F_TRACEOUT
00092 //2003.06.10 MIK F_SHOWTAB
00093 //2003.04.08 MIK F_FAVORITE
00094 //Stonee, 2001/05/18 設定ダイアログ用の機能番号を用意 F_TYPE_SCREEN〜F_OPTION_HELPER
00095 //Jul. 03, 2001 JEPRO 追加 F_TYPE_HELPER
00096 //2001.11.17 add MIK F_TYPE_REGEX_KEYWORD
00097 //2006.10.06 ryoji 追加 F_TYPE_KEYHELP
00098 //Feb. 11, 2007 genta 追加 F_OPTION_TAB
00099 //Oct. 7, 2000 JEPRO  F_WRAPWINDOWWIDTH  WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00100 //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更 F_SPLIT_V
00101 //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更 F_SPLIT_H
00102 //Sept. 17, 2000 jepro 説明に「に」を追加 F_SPLIT_VH
00103 //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL) F_WIN_CLOSEALL
00104 //2004.07.14 kazika F_BIND_WINDOW
00105 //2004-09-21 Moca F_TOPMOST
00106 //2006.03.23 fon F_WINLIST
00107 //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一 F_MINIMIZE_ALL
00108 //2001.02.10 by MIK F_MAXIMIZE_H
00109 //2007.06.20 ryoji F_GROUPCLOSE
00110 //2007.06.20 ryoji F_NEXTGROUP
00111 //2007.06.20 ryoji F_PREVGROUP
00112 //2007.06.20 ryoji F_TAB_MOVERIGHT
00113 //2007.06.20 ryoji F_TAB_MOVELEFT
00114 //2007.06.20 ryoji F_TAB_SEPARATE
00115 //2007.06.20 ryoji F_TAB_JOINTNEXT
00116 //2007.06.20 ryoji F_TAB_JOINTPREV
00117 //2006.03.24 fon F_TOGGLE_KEY_SEARCH
00118 //Nov. 25, 2000 JEPRO 追加 F_HELP_CONTENTS
00119 //Nov. 25, 2000 JEPRO 追加 F_HELP_SEARCH
00120 //Dec. 24, 2000 JEPRO 追加 F_ABOUT
00121 //Oct. 19, 2002 genta F_GETSELECTED
00122 //2003-02-21 鬼 F_EXPANDPARAMETER
00123 //2003.06.25 Moca F_GETLINESTR
00124 //2003.06.25 Moca F_GETLINECOUNT
00125 //2004.03.16 zenryaku F_CHGTABWIDTH
00126 //2005.7.30 maru F_ISTEXTSELECTED
00127 //2005.7.30 maru F_GETSELLINEFROM
00128 //2005.7.30 maru F_GETSELCOLMFROM
00129 //2005.7.30 maru F_GETSELLINETO
00130 //2005.7.30 maru F_GETSELCOLMTO
00131 //2005.7.30 maru F_ISINSMODE
00132 //2005.07.31 maru F_GETCHARCODE
00133 //2005.08.05 maru F_GETLINECODE
00134 //2005.08.05 maru F_ISPOSSIBLEUNDO
00135 //2005.08.05 maru F_ISPOSSIBLEREDO
00136
00137 /*
00138 引数の扱いは
00139   CEditView::HandleCommand
00140   CMacro::HandleFunction
00141   MacroFuncInfo CSMacroMgr::m_MacroFuncInfoNotCommandArr[]
00142 を参照
00143 */
00144
00145 //2007.09.30 kobake 機能番号定数を列挙型に変更。(デバッグをしやすくするため)
00146 #include "Funccode_enum.h"
00147
00148 // 機能一覧に関するデータ宣言
00149 namespace nsFuncCode{
00150     extern const TCHAR*         ppszFuncKind[];
00151     extern const int            nFuncKindNum;
00152     extern const int            pnFuncListNumArr[];
00153     extern const EFunctionCode* ppnFuncListArr[];
00154     extern const int            nFincListNumArrNum;
00155 };
00157
00158
00159 /*機能番号に対応したヘルプトピックIDを返す*/
00160 SAKURA_CORE_API int FuncID_To_HelpContextID( EFunctionCode nFuncID );   //Stonee, 2001/02/23
00161
00162 class CEditDoc;
00163 struct DLLSHAREDATA;
00164
00165 //2007.10.30 kobake 機能チェックをCEditWndからここへ移動
00166 int IsFuncEnable( CEditDoc*, DLLSHAREDATA*, int );  /* 機能が利用可能か調べる */
00167 int IsFuncChecked( CEditDoc*, DLLSHAREDATA*, int ); /* 機能がチェック状態か調べる */
00168
00169 #endif // _FUNCCODE_H_
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode_define.h

sakura_core

Funccode_define.h

ソースコードを見る。

マクロ定義

#define | F_INVALID -1
#define | F_DEFAULT 0
#define | F_0 0
#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_WCHAR 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_W 30606
#define | F_ADDTAIL_W 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

マクロ定義

#define F_0 0

Funccode_define.h の 8 行で定義されています。

参照元 CShareData::InitKeyAssign().

#define F_1PageDown 30343

Funccode_define.h の 86 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_1PageDown_Sel 30443

Funccode_define.h の 113 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_1PageUp 30342

Funccode_define.h の 85 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_1PageUp_Sel 30442

Funccode_define.h の 112 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_ABOUT 31455

Funccode_define.h の 304 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditWnd::OnCommand().

#define F_ACTIVATE_SQLPLUS 30170

Funccode_define.h の 36 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_ADDTAIL_W 30607

Funccode_define.h の 126 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), と CEditDoc::IsModificationForbidden().

#define F_BASE64DECODE 30870

Funccode_define.h の 160 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_BEGIN_BOX 30510

Funccode_define.h の 118 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_BEGIN_SEL 30410

Funccode_define.h の 99 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_BIND_WINDOW 31333

Funccode_define.h の 279 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncChecked(), と IsFuncEnable().

#define F_BOOKMARK_NEXT 30971

Funccode_define.h の 187 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_BOOKMARK_PATTERN 30975

Funccode_define.h の 191 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CDlgReplace::OnBnClicked(), CDlgFind::OnBnClicked(), と CMacro::Save().

#define F_BOOKMARK_PREV 30972

Funccode_define.h の 188 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_BOOKMARK_RESET 30973

Funccode_define.h の 189 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_BOOKMARK_SET 30970

Funccode_define.h の 186 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgFuncList::Key2Command().

#define F_BOOKMARK_VIEW 30974

Funccode_define.h の 190 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CDlgFuncList::Key2Command(), と CDlgFuncList::OnBnClicked().

#define F_BRACKETPAIR 30960

Funccode_define.h の 185 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_BROWSE 30180

Funccode_define.h の 38 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_CANCEL_MODE 31099

Funccode_define.h の 207 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CASCADE 31330

Funccode_define.h の 276 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_CHGMOD_EOL 32800

Funccode_define.h の 306 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_CHGMOD_EOL_CR 31083

Funccode_define.h の 206 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_CHGMOD_EOL_CRLF 31081

Funccode_define.h の 204 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_CHGMOD_EOL_LF 31082

Funccode_define.h の 205 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_CHGMOD_INS 31001

Funccode_define.h の 203 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncChecked(), と CEditDoc::IsModificationForbidden().

#define F_CHGTABWIDTH 40006

Funccode_define.h の 317 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_CODECNV_AUTO2SJIS 30850

Funccode_define.h の 149 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_AUTO2SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_EMAIL 30851

Funccode_define.h の 150 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_EMAIL(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_EUC2SJIS 30852

Funccode_define.h の 151 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_EUC2SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2EUC 30861

Funccode_define.h の 157 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_SJIS2EUC(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2JIS 30860

Funccode_define.h の 156 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_SJIS2JIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2UTF7 30863

Funccode_define.h の 159 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_SJIS2UTF7(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2UTF8 30862

Funccode_define.h の 158 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_SJIS2UTF8(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_UNICODE2SJIS 30853

Funccode_define.h の 152 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_UNICODE2SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_UNICODEBE2SJIS 30856

Funccode_define.h の 153 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_UNICODEBE2SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_UTF72SJIS 30855

Funccode_define.h の 155 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_UTF72SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_CODECNV_UTF82SJIS 30854

Funccode_define.h の 154 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_CODECNV_UTF82SJIS(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_COMPARE 30950

Funccode_define.h の 184 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CDlgCompare::OnBnClicked().

#define F_COPY 30602

Funccode_define.h の 120 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と CDlgFuncList::Key2Command().

#define F_COPY_ADDCRLF 30608

Funccode_define.h の 121 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_COPY_CRLF 30603

Funccode_define.h の 122 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_COPYFNAME 30622

Funccode_define.h の 132 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_COPYLINES 30610

Funccode_define.h の 127 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_COPYLINESASPASSAGE 30611

Funccode_define.h の 128 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_COPYLINESWITHLINENUMBER 30612

Funccode_define.h の 129 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_COPYPATH 30620

Funccode_define.h の 130 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_COPYTAG 30621

Funccode_define.h の 131 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_CREATEKEYBINDLIST 30630

Funccode_define.h の 133 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_CTRL_CODE_DIALOG 30792

Funccode_define.h の 136 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CDlgCtrlCode::OnBnClicked().

#define F_CURLINECENTER 30360

Funccode_define.h の 89 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_CUSTMENU_1 31501

Funccode_define.h の 246 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CFuncLookup::Funccode2Name(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_10 31510

Funccode_define.h の 255 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_11 31511

Funccode_define.h の 256 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_12 31512

Funccode_define.h の 257 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_13 31513

Funccode_define.h の 258 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_14 31514

Funccode_define.h の 259 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_15 31515

Funccode_define.h の 260 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_16 31516

Funccode_define.h の 261 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_17 31517

Funccode_define.h の 262 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_18 31518

Funccode_define.h の 263 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_19 31519

Funccode_define.h の 264 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_2 31502

Funccode_define.h の 247 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_20 31520

Funccode_define.h の 265 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_21 31521

Funccode_define.h の 266 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_22 31522

Funccode_define.h の 267 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_23 31523

Funccode_define.h の 268 行で定義されています。

参照元 FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_24 31524

Funccode_define.h の 269 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_3 31503

Funccode_define.h の 248 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_4 31504

Funccode_define.h の 249 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_5 31505

Funccode_define.h の 250 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_6 31506

Funccode_define.h の 251 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_7 31507

Funccode_define.h の 252 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_8 31508

Funccode_define.h の 253 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_9 31509

Funccode_define.h の 254 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_CUSTMENU_BASE 31500

Funccode_define.h の 270 行で定義されています。

参照元 CFuncLookup::Funccode2Name(), CEditWnd::InitMenu(), CTabWnd::OnTabRButtonUp(), と CFuncLookup::Pos2FuncCode().

#define F_CUT 30601

Funccode_define.h の 119 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), CEditDoc::IsModificationForbidden(), と CDlgFuncList::Key2Command().

#define F_CUT_LINE 30244

Funccode_define.h の 60 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_DEFAULT 0

Funccode_define.h の 7 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5(), CKeyBind::GetDefFuncCode(), CKeyBind::GetFuncCode(), CKeyBind::GetFuncCodeAt(), CPropCommon::p5_Import_KeySetting(), と CFuncLookup::Pos2FuncCode().

#define F_DELETE 30221

Funccode_define.h の 50 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と CEditDoc::IsModificationForbidden().

#define F_DELETE_BACK 30222

Funccode_define.h の 51 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::TranslateCommand_isearch().

#define F_DELETE_LINE 30245

Funccode_define.h の 61 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_DIFF 30977

Funccode_define.h の 193 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_DIFF_DIALOG 30976

Funccode_define.h の 192 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), と CDlgDiff::OnBnClicked().

#define F_DIFF_NEXT 30978

Funccode_define.h の 194 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_DIFF_PREV 30979

Funccode_define.h の 195 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_DIFF_RESET 30980

Funccode_define.h の 196 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_DIRECT_TAGJUMP 30944

Funccode_define.h の 181 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_DISABLE 0

Funccode_define.h の 9 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer().

#define F_DOWN 30312

Funccode_define.h の 74 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_DOWN2 30316

Funccode_define.h の 78 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_DOWN2_SEL 30416

Funccode_define.h の 105 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_DOWN_SEL 30412

Funccode_define.h の 101 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_DUPLICATELINE 30250

Funccode_define.h の 62 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_EXECCOMMAND 31271

Funccode_define.h の 243 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::Command_EXECCOMMAND_DIALOG(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), と CMacro::Save().

#define F_EXECCOMMAND_DIALOG 31270

Funccode_define.h の 242 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgExec::OnBnClicked().

#define F_EXECKEYMACRO 31253

Funccode_define.h の 241 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_EXITALL 30195

Funccode_define.h の 42 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_L(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditWnd::OnCommand().

#define F_EXITALLEDITORS 30194

Funccode_define.h の 41 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CTabWnd::OnLButtonUp(), と CTabWnd::OnMouseMove().

#define F_EXPANDPARAMETER 40003

Funccode_define.h の 314 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_EXTHELP1 31450

Funccode_define.h の 302 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_EXTHTMLHELP 31451

Funccode_define.h の 303 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_FAVORITE 31113

Funccode_define.h の 215 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と CDlgFavorite::OnBnClicked().

#define F_FILE_REOPEN 30119

Funccode_define.h の 22 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_FILE_REOPEN_EUC 30113

Funccode_define.h の 25 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_JIS 30112

Funccode_define.h の 24 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_SJIS 30111

Funccode_define.h の 23 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_UNICODE 30114

Funccode_define.h の 26 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_UNICODEBE 30117

Funccode_define.h の 27 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_UTF7 30116

Funccode_define.h の 29 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILE_REOPEN_UTF8 30115

Funccode_define.h の 28 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_FILECLOSE 30105

Funccode_define.h の 16 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CKeyBind::GetDefFuncCode(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_FILECLOSE_OPEN 30107

Funccode_define.h の 17 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_FILENEW 30101

Funccode_define.h の 11 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CTabWnd::OnLButtonDblClk().

#define F_FILEOPEN 30102

Funccode_define.h の 12 行で定義されています。

参照元 CMacro::AddLParam(), CMenuDrawer::CMenuDrawer(), CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と CMacro::Save().

#define F_FILEOPEN_DROPDOWN 30108

Funccode_define.h の 18 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), と CViewCommander::HandleCommand().

#define F_FILESAVE 30103

Funccode_define.h の 13 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_FILESAVE_QUIET 30121

Funccode_define.h の 21 行で定義されています。

参照元 CViewCommander::Command_FILESAVEALL(), CControlTray::DispatchEvent(), と CViewCommander::HandleCommand().

#define F_FILESAVEALL 30120

Funccode_define.h の 20 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_FILESAVEAS 30106

Funccode_define.h の 15 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_FILESAVEAS_DIALOG 30104

Funccode_define.h の 14 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_FILESAVECLOSE 30109

Funccode_define.h の 19 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_FONT 31120

Funccode_define.h の 236 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_FUNCTION_FIRST 40000

Funccode_define.h の 311 行で定義されています。

参照元 CPPA::CallHandleFunction(), と MacroCommand().

#define F_GETCHARCODE 40013

Funccode_define.h の 324 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETFILENAME 40001

Funccode_define.h の 312 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETLINECODE 40014

Funccode_define.h の 325 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETLINECOUNT 40005

Funccode_define.h の 316 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETLINESTR 40004

Funccode_define.h の 315 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELCOLMFROM 40009

Funccode_define.h の 320 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELCOLMTO 40011

Funccode_define.h の 322 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELECTED 40002

Funccode_define.h の 313 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELLINEFROM 40008

Funccode_define.h の 319 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELLINETO 40010

Funccode_define.h の 321 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GOFILEEND 30351

Funccode_define.h の 88 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), CEditDoc::FileRead(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOFILEEND_SEL 30451

Funccode_define.h の 115 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOFILETOP 30350

Funccode_define.h の 87 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOFILETOP_SEL 30450

Funccode_define.h の 114 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOLINEEND 30333

Funccode_define.h の 82 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOLINEEND_SEL 30433

Funccode_define.h の 109 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOLINETOP 30332

Funccode_define.h の 81 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GOLINETOP_SEL 30432

Funccode_define.h の 108 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_GONEXTPARAGRAPH 30382

Funccode_define.h の 95 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_GONEXTPARAGRAPH_SEL 30482

Funccode_define.h の 116 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_GOPREVPARAGRAPH 30383

Funccode_define.h の 96 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_GOPREVPARAGRAPH_SEL 30483

Funccode_define.h の 117 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_GREP 30911

Funccode_define.h の 172 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CNormalProcess::Initialize(), と CMacro::Save().

#define F_GREP_DIALOG 30910

Funccode_define.h の 171 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CDlgGrep::OnBnClicked().

#define F_GROUPCLOSE 31380

Funccode_define.h の 289 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CKeyBind::GetDefFuncCode(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), CTabWnd::OnLButtonUp(), と CTabWnd::OnMouseMove().

#define F_HalfPageDown 30341

Funccode_define.h の 84 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_HalfPageDown_Sel 30441

Funccode_define.h の 111 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_HalfPageUp 30340

Funccode_define.h の 83 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_HalfPageUp_Sel 30440

Funccode_define.h の 110 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_HANKATATOZENKAKUHIRA 30814

Funccode_define.h の 144 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_HANKATATOZENKAKUHIRA(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_HANKATATOZENKAKUKATA 30813

Funccode_define.h の 143 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_HANKATATOZENKAKUKATA(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_HELP_CONTENTS 31440

Funccode_define.h の 299 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditWnd::OnCommand().

#define F_HELP_SEARCH 31441

Funccode_define.h の 300 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditWnd::OnCommand().

#define F_HOKAN 31430

Funccode_define.h の 297 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::PreprocessCommand_hokan().

#define F_IME_CHAR 30201

Funccode_define.h の 47 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CEditView::DispatchEvent(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::IsModificationForbidden(), CEditView::PreprocessCommand_hokan(), と CEditView::TranslateCommand_isearch().

#define F_INDENT_SPACE 30262

Funccode_define.h の 65 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::TranslateCommand_isearch().

#define F_INDENT_TAB 30260

Funccode_define.h の 63 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::TranslateCommand_isearch().

#define F_INS_DATE 30790

Funccode_define.h の 134 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_INS_TIME 30791

Funccode_define.h の 135 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_INSFILE 32804

Funccode_define.h の 310 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_INSTEXT_W 30606

Funccode_define.h の 125 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CEditView::DispatchEvent(), CHokanMgr::DoHokan(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::IsModificationForbidden(), CMacro::Save(), と CEditView::TranslateCommand_isearch().

#define F_INVALID -1

Funccode_define.h の 6 行で定義されています。

参照元 CSMacroMgr::GetFuncInfoByName(), と CPropCommon::p5_Import_KeySetting().

#define F_ISEARCH_ADD_CHAR 0x10001

Funccode_define.h の 328 行で定義されています。

参照元 CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_ADD_STR 0x10002

Funccode_define.h の 329 行で定義されています。

参照元 CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_DEL_BACK 0x10003

Funccode_define.h の 330 行で定義されています。

参照元 CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_MIGEMO_NEXT 30985

Funccode_define.h の 201 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_MIGEMO_PREV 30986

Funccode_define.h の 202 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_NEXT 30981

Funccode_define.h の 197 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_PREV 30982

Funccode_define.h の 198 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_REGEXP_NEXT 30983

Funccode_define.h の 199 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISEARCH_REGEXP_PREV 30984

Funccode_define.h の 200 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditWnd::InitMenu(), IsFuncChecked(), CEditView::IsISearchEnabled(), CEditView::ProcessCommand_isearch(), と CEditView::TranslateCommand_isearch().

#define F_ISINSMODE 40012

Funccode_define.h の 323 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_ISPOSSIBLEREDO 40016

Funccode_define.h の 327 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_ISPOSSIBLEUNDO 40015

Funccode_define.h の 326 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_ISTEXTSELECTED 40007

Funccode_define.h の 318 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_JUMP 30921

Funccode_define.h の 174 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CDlgJump::OnBnClicked(), と CMacro::Save().

#define F_JUMP_DIALOG 30920

Funccode_define.h の 173 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgJump::OnBnClicked().

#define F_JUMP_SRCHSTARTPOS 30909

Funccode_define.h の 169 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_JUMPHIST_NEXT 30371

Funccode_define.h の 91 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_JUMPHIST_PREV 30370

Funccode_define.h の 90 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_JUMPHIST_SET 30372

Funccode_define.h の 92 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_LEFT 30313

Funccode_define.h の 75 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_LEFT_SEL 30413

Funccode_define.h の 102 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_LineCutToEnd 30241

Funccode_define.h の 57 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_LineCutToStart 30240

Funccode_define.h の 56 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_LineDeleteToEnd 30243

Funccode_define.h の 59 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_LineDeleteToStart 30242

Funccode_define.h の 58 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_LOADKEYMACRO 31252

Funccode_define.h の 240 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_LTRIM 30280

Funccode_define.h の 67 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TRIM(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_MAXIMIZE_H 31352

Funccode_define.h の 286 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_MAXIMIZE_V 31350

Funccode_define.h の 284 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_MENU_ALLFUNC 31445

Funccode_define.h の 301 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_MENU_NOT_USED_FIRST 32768

Funccode_define.h の 305 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), と CPropCommon::DrawToolBarItemList().

#define F_MENU_RBUTTON 31580

Funccode_define.h の 245 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CFuncLookup::Funccode2Name(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CFuncLookup::Pos2FuncCode().

#define F_MERGE 30284

Funccode_define.h の 71 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_MINIMIZE_ALL 31351

Funccode_define.h の 285 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_NEXTGROUP 31381

Funccode_define.h の 290 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_NEXTWINDOW 31340

Funccode_define.h の 281 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditDoc::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_NOWOPENFILE 30197

Funccode_define.h の 43 行で定義されています。

#define F_OPEN_CCPP 30161

Funccode_define.h の 34 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と IsFuncEnable().

#define F_OPEN_HfromtoC 30162

Funccode_define.h の 35 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_OPEN_HHPP 30160

Funccode_define.h の 33 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と IsFuncEnable().

#define F_OPTION 31112

Funccode_define.h の 214 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_OPTION_BACKUP 32004

Funccode_define.h の 225 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_CUSTMENU 32009

Funccode_define.h の 229 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_EDIT 32002

Funccode_define.h の 223 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_FILE 32003

Funccode_define.h の 224 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_FNAME 32014

Funccode_define.h の 234 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_FORMAT 32005

Funccode_define.h の 226 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_GENERAL 32000

Funccode_define.h の 221 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_GREP 32007

Funccode_define.h の 227 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_HELPER 32012

Funccode_define.h の 232 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_KEYBIND 32008

Funccode_define.h の 228 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_KEYWORD 32011

Funccode_define.h の 231 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_MACRO 32013

Funccode_define.h の 233 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_TAB 32015

Funccode_define.h の 235 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_TOOLBAR 32010

Funccode_define.h の 230 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OPTION_TYPE 31111

Funccode_define.h の 213 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_OPTION_WINDOW 32001

Funccode_define.h の 222 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropCommon::OnHelp().

#define F_OUTLINE 30930

Funccode_define.h の 175 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CDlgFuncList::Key2Command(), と CDlgFuncList::OnBnClicked().

#define F_OUTLINE_TOGGLE 30931

Funccode_define.h の 176 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), IsFuncChecked(), と CDlgFuncList::Key2Command().

#define F_PASTE 30604

Funccode_define.h の 123 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_PASTEBOX 30605

Funccode_define.h の 124 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_PLSQL_COMPILE_ON_SQLPLUS 30171

Funccode_define.h の 37 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_PREVGROUP 31382

Funccode_define.h の 291 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_PREVWINDOW 31341

Funccode_define.h の 282 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CEditDoc::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_PRINT 30150

Funccode_define.h の 30 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_PRINT_PAGESETUP 30152

Funccode_define.h の 32 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgPrintSetting::OnBnClicked().

#define F_PRINT_PREVIEW 30151

Funccode_define.h の 31 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CPrintPreview::DispatchEvent_PPB(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_PROPERTY_FILE 30190

Funccode_define.h の 40 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CDlgProperty::OnBnClicked().

#define F_PUTFILE 32803

Funccode_define.h の 309 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_READONLY 30185

Funccode_define.h の 39 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_RECENTFILE 30198

Funccode_define.h の 44 行で定義されています。

#define F_RECENTFOLDER 30199

Funccode_define.h の 45 行で定義されています。

#define F_RECKEYMACRO 31250

Funccode_define.h の 238 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CEditWnd::DispatchEvent(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncChecked(), と IsFuncEnable().

#define F_RECONVERT 30285

Funccode_define.h の 72 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_REDO 30211

Funccode_define.h の 49 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_REDRAW 31360

Funccode_define.h の 287 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CDlgFuncList::Key2Command(), CDlgReplace::OnBnClicked(), と CDlgFind::OnBnClicked().

#define F_REPLACE 30906

Funccode_define.h の 166 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::IsModificationForbidden(), CDlgReplace::OnBnClicked(), と CMacro::Save().

#define F_REPLACE_ALL 30907

Funccode_define.h の 167 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::IsModificationForbidden(), CDlgReplace::OnBnClicked(), と CMacro::Save().

#define F_REPLACE_DIALOG 30904

Funccode_define.h の 165 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CDlgReplace::OnBnClicked().

#define F_RIGHT 30314

Funccode_define.h の 76 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_RIGHT_SEL 30414

Funccode_define.h の 103 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_RTRIM 30281

Funccode_define.h の 68 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TRIM(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_SAVEKEYMACRO 31251

Funccode_define.h の 239 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_SEARCH_BOX 30908

Funccode_define.h の 170 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CMainToolBar::CreateToolBar(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::OnCommand().

#define F_SEARCH_CLEARMARK 30905

Funccode_define.h の 168 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_SEARCH_DIALOG 30901

Funccode_define.h の 162 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgFind::OnBnClicked().

#define F_SEARCH_NEXT 30902

Funccode_define.h の 163 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CDlgReplace::OnBnClicked(), CDlgFind::OnBnClicked(), CMainToolBar::ProcSearchBox(), と CMacro::Save().

#define F_SEARCH_PREV 30903

Funccode_define.h の 164 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CDlgReplace::OnBnClicked(), CDlgFind::OnBnClicked(), と CMacro::Save().

#define F_SELECTALL 30401

Funccode_define.h の 98 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_SELECTWORD 30400

Funccode_define.h の 97 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditView::OnLBUTTONDBLCLK().

#define F_SEPARATOR 1

Funccode_define.h の 10 行で定義されています。

#define F_SET_QUOTESTRING 32801

Funccode_define.h の 307 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_SHOWFUNCKEY 31101

Funccode_define.h の 209 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_SHOWSTATUSBAR 31102

Funccode_define.h の 210 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_SHOWTAB 31103

Funccode_define.h の 211 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_SHOWTOOLBAR 31100

Funccode_define.h の 208 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_SORT_ASC 30282

Funccode_define.h の 69 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_SORT_DESC 30283

Funccode_define.h の 70 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_SPACETOTAB 30831

Funccode_define.h の 148 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_SPACETOTAB(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_SPLIT_H 31311

Funccode_define.h の 272 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_SPLIT_V 31310

Funccode_define.h の 271 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_SPLIT_VH 31312

Funccode_define.h の 273 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_TAB_JOINTNEXT 31386

Funccode_define.h の 295 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_TAB_JOINTPREV 31387

Funccode_define.h の 296 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_TAB_MOVELEFT 31384

Funccode_define.h の 293 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_TAB_MOVERIGHT 31383

Funccode_define.h の 292 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_TAB_SEPARATE 31385

Funccode_define.h の 294 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と IsFuncEnable().

#define F_TABTOSPACE 30830

Funccode_define.h の 147 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TABTOSPACE(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TAGJUMP 30940

Funccode_define.h の 177 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), と CEditView::TranslateCommand_grep().

#define F_TAGJUMP_CLOSE 30945

Funccode_define.h の 182 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CViewCommander::HandleCommand().

#define F_TAGJUMP_KEYWORD 30946

Funccode_define.h の 183 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_TAGJUMP_LIST 30942

Funccode_define.h の 179 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CDlgTagJumpList::OnBnClicked().

#define F_TAGJUMPBACK 30941

Funccode_define.h の 178 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CShareData::InitPopupMenu().

#define F_TAGS_MAKE 30943

Funccode_define.h の 180 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と CDlgTagsMake::OnBnClicked().

#define F_TILE_H 31332

Funccode_define.h の 278 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_TILE_V 31331

Funccode_define.h の 277 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_TOGGLE_KEY_SEARCH 31431

Funccode_define.h の 298 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_TOHANEI 30816

Funccode_define.h の 146 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOHANEI(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOHANKAKU 30810

Funccode_define.h の 139 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOHANKAKU(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOHANKATA 30817

Funccode_define.h の 140 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOHANKATA(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOLOWER 30800

Funccode_define.h の 137 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOLOWER(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOPMOST 31334

Funccode_define.h の 280 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditWnd::InitMenu(), と IsFuncChecked().

#define F_TOUPPER 30801

Funccode_define.h の 138 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOUPPER(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOZENEI 30815

Funccode_define.h の 145 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOZENEI(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOZENKAKUHIRA 30812

Funccode_define.h の 142 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOZENKAKUHIRA(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TOZENKAKUKATA 30811

Funccode_define.h の 141 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_TOZENKAKUKATA(), CConvertMediator::ConvMemory(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_TRACEOUT 32802

Funccode_define.h の 308 行で定義されています。

参照元 CViewCommander::HandleCommand(), と CMacro::HandleCommand().

#define F_TYPE_COLOR 31116

Funccode_define.h の 217 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropTypes::OnHelp().

#define F_TYPE_HELPER 31117

Funccode_define.h の 218 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropTypes::OnHelp().

#define F_TYPE_KEYHELP 31119

Funccode_define.h の 220 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropTypes::OnHelp().

#define F_TYPE_LIST 31110

Funccode_define.h の 212 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CControlTray::CreatePopUpMenu_R(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CDlgTypeList::OnBnClicked().

#define F_TYPE_REGEX_KEYWORD 31118

Funccode_define.h の 219 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropTypes::OnHelp().

#define F_TYPE_SCREEN 31115

Funccode_define.h の 216 行で定義されています。

参照元 FuncID_To_HelpContextID(), と CPropTypes::OnHelp().

#define F_UNDO 30210

Funccode_define.h の 48 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), IsFuncEnable(), と CEditDoc::IsModificationForbidden().

#define F_UNINDENT_SPACE 30263

Funccode_define.h の 66 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::TranslateCommand_isearch().

#define F_UNINDENT_TAB 30261

Funccode_define.h の 64 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), CEditDoc::IsModificationForbidden(), と CEditView::TranslateCommand_isearch().

#define F_UP 30311

Funccode_define.h の 73 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_UP2 30315

Funccode_define.h の 77 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_UP2_SEL 30415

Funccode_define.h の 104 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_UP_SEL 30411

Funccode_define.h の 100 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_USERMACRO_0 31600

Funccode_define.h の 244 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), CFuncLookup::Funccode2Name(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), と CFuncLookup::Pos2FuncCode().

#define F_UUDECODE 30880

Funccode_define.h の 161 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と IsFuncEnable().

#define F_WCHAR 30200

Funccode_define.h の 46 行で定義されています。

参照元 CMacro::AddLParam(), CSMacroMgr::CanFuncIsKeyMacro(), CEditView::DispatchEvent(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::IsModificationForbidden(), CEditView::PreprocessCommand_hokan(), CEditView::TranslateCommand_grep(), と CEditView::TranslateCommand_isearch().

#define F_WIN_CLOSEALL 31321

Funccode_define.h の 275 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_WIN_OUTPUT 31370

Funccode_define.h の 288 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_WINCLOSE 31320

Funccode_define.h の 274 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CKeyBind::GetDefFuncCode(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CShareData::InitPopupMenu(), CTabWnd::OnLButtonUp(), と CTabWnd::OnTabMButtonUp().

#define F_WINLIST 31336

Funccode_define.h の 283 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CEditWnd::InitMenu().

#define F_WndScrollDown 30380

Funccode_define.h の 93 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_WndScrollUp 30381

Funccode_define.h の 94 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), と CShareData::InitKeyAssign().

#define F_WordCut 30232

Funccode_define.h の 54 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_WordDelete 30233

Funccode_define.h の 55 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_WordDeleteToEnd 30231

Funccode_define.h の 53 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_WordDeleteToStart 30230

Funccode_define.h の 52 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), CHokanMgr::DoHokan(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), CEditWnd::InitMenu(), と CEditDoc::IsModificationForbidden().

#define F_WORDLEFT 30320

Funccode_define.h の 79 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_WORDLEFT_SEL 30420

Funccode_define.h の 106 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_WORDRIGHT 30321

Funccode_define.h の 80 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_WORDRIGHT_SEL 30421

Funccode_define.h の 107 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro(), CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

#define F_WRAPWINDOWWIDTH 31140

Funccode_define.h の 237 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer(), FuncID_To_HelpContextID(), CViewCommander::HandleCommand(), CShareData::InitKeyAssign(), と CEditWnd::InitMenu().

Sakura-Editorに対してSat Nov 17 20:27:11 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode_define.h ソースファイル

sakura_core

Funccode_define.h

説明を見る。
00001 #pragma once
00002
00003 //このファイルは HeaderMake により Funccode_x.hsrc から生成されたファイルです。
00004 //直接編集しないでください。
00005
00006 #define F_INVALID -1
00007 #define F_DEFAULT 0
00008 #define F_0 0
00009 #define F_DISABLE 0
00010 #define F_SEPARATOR 1
00011 #define F_FILENEW 30101
00012 #define F_FILEOPEN 30102
00013 #define F_FILESAVE 30103
00014 #define F_FILESAVEAS_DIALOG 30104
00015 #define F_FILESAVEAS 30106
00016 #define F_FILECLOSE 30105
00017 #define F_FILECLOSE_OPEN 30107
00018 #define F_FILEOPEN_DROPDOWN 30108
00019 #define F_FILESAVECLOSE 30109
00020 #define F_FILESAVEALL 30120
00021 #define F_FILESAVE_QUIET 30121
00022 #define F_FILE_REOPEN 30119
00023 #define F_FILE_REOPEN_SJIS 30111
00024 #define F_FILE_REOPEN_JIS 30112
00025 #define F_FILE_REOPEN_EUC 30113
00026 #define F_FILE_REOPEN_UNICODE 30114
00027 #define F_FILE_REOPEN_UNICODEBE 30117
00028 #define F_FILE_REOPEN_UTF8 30115
00029 #define F_FILE_REOPEN_UTF7 30116
00030 #define F_PRINT 30150
00031 #define F_PRINT_PREVIEW 30151
00032 #define F_PRINT_PAGESETUP 30152
00033 #define F_OPEN_HHPP 30160
00034 #define F_OPEN_CCPP 30161
00035 #define F_OPEN_HfromtoC 30162
00036 #define F_ACTIVATE_SQLPLUS 30170
00037 #define F_PLSQL_COMPILE_ON_SQLPLUS 30171
00038 #define F_BROWSE 30180
00039 #define F_READONLY 30185
00040 #define F_PROPERTY_FILE 30190
00041 #define F_EXITALLEDITORS 30194
00042 #define F_EXITALL 30195
00043 #define F_NOWOPENFILE 30197
00044 #define F_RECENTFILE 30198
00045 #define F_RECENTFOLDER 30199
00046 #define F_WCHAR 30200
00047 #define F_IME_CHAR 30201
00048 #define F_UNDO 30210
00049 #define F_REDO 30211
00050 #define F_DELETE 30221
00051 #define F_DELETE_BACK 30222
00052 #define F_WordDeleteToStart 30230
00053 #define F_WordDeleteToEnd 30231
00054 #define F_WordCut 30232
00055 #define F_WordDelete 30233
00056 #define F_LineCutToStart 30240
00057 #define F_LineCutToEnd 30241
00058 #define F_LineDeleteToStart 30242
00059 #define F_LineDeleteToEnd 30243
00060 #define F_CUT_LINE 30244
00061 #define F_DELETE_LINE 30245
00062 #define F_DUPLICATELINE 30250
00063 #define F_INDENT_TAB 30260
00064 #define F_UNINDENT_TAB 30261
00065 #define F_INDENT_SPACE 30262
00066 #define F_UNINDENT_SPACE 30263
00067 #define F_LTRIM 30280
00068 #define F_RTRIM 30281
00069 #define F_SORT_ASC 30282
00070 #define F_SORT_DESC 30283
00071 #define F_MERGE 30284
00072 #define F_RECONVERT 30285
00073 #define F_UP 30311
00074 #define F_DOWN 30312
00075 #define F_LEFT 30313
00076 #define F_RIGHT 30314
00077 #define F_UP2 30315
00078 #define F_DOWN2 30316
00079 #define F_WORDLEFT 30320
00080 #define F_WORDRIGHT 30321
00081 #define F_GOLINETOP 30332
00082 #define F_GOLINEEND 30333
00083 #define F_HalfPageUp 30340
00084 #define F_HalfPageDown 30341
00085 #define F_1PageUp 30342
00086 #define F_1PageDown 30343
00087 #define F_GOFILETOP 30350
00088 #define F_GOFILEEND 30351
00089 #define F_CURLINECENTER 30360
00090 #define F_JUMPHIST_PREV 30370
00091 #define F_JUMPHIST_NEXT 30371
00092 #define F_JUMPHIST_SET 30372
00093 #define F_WndScrollDown 30380
00094 #define F_WndScrollUp 30381
00095 #define F_GONEXTPARAGRAPH 30382
00096 #define F_GOPREVPARAGRAPH 30383
00097 #define F_SELECTWORD 30400
00098 #define F_SELECTALL 30401
00099 #define F_BEGIN_SEL 30410
00100 #define F_UP_SEL 30411
00101 #define F_DOWN_SEL 30412
00102 #define F_LEFT_SEL 30413
00103 #define F_RIGHT_SEL 30414
00104 #define F_UP2_SEL 30415
00105 #define F_DOWN2_SEL 30416
00106 #define F_WORDLEFT_SEL 30420
00107 #define F_WORDRIGHT_SEL 30421
00108 #define F_GOLINETOP_SEL 30432
00109 #define F_GOLINEEND_SEL 30433
00110 #define F_HalfPageUp_Sel 30440
00111 #define F_HalfPageDown_Sel 30441
00112 #define F_1PageUp_Sel 30442
00113 #define F_1PageDown_Sel 30443
00114 #define F_GOFILETOP_SEL 30450
00115 #define F_GOFILEEND_SEL 30451
00116 #define F_GONEXTPARAGRAPH_SEL 30482
00117 #define F_GOPREVPARAGRAPH_SEL 30483
00118 #define F_BEGIN_BOX 30510
00119 #define F_CUT 30601
00120 #define F_COPY 30602
00121 #define F_COPY_ADDCRLF 30608
00122 #define F_COPY_CRLF 30603
00123 #define F_PASTE 30604
00124 #define F_PASTEBOX 30605
00125 #define F_INSTEXT_W 30606
00126 #define F_ADDTAIL_W 30607
00127 #define F_COPYLINES 30610
00128 #define F_COPYLINESASPASSAGE 30611
00129 #define F_COPYLINESWITHLINENUMBER 30612
00130 #define F_COPYPATH 30620
00131 #define F_COPYTAG 30621
00132 #define F_COPYFNAME 30622
00133 #define F_CREATEKEYBINDLIST 30630
00134 #define F_INS_DATE 30790
00135 #define F_INS_TIME 30791
00136 #define F_CTRL_CODE_DIALOG 30792
00137 #define F_TOLOWER 30800
00138 #define F_TOUPPER 30801
00139 #define F_TOHANKAKU 30810
00140 #define F_TOHANKATA 30817
00141 #define F_TOZENKAKUKATA 30811
00142 #define F_TOZENKAKUHIRA 30812
00143 #define F_HANKATATOZENKAKUKATA 30813
00144 #define F_HANKATATOZENKAKUHIRA 30814
00145 #define F_TOZENEI 30815
00146 #define F_TOHANEI 30816
00147 #define F_TABTOSPACE 30830
00148 #define F_SPACETOTAB 30831
00149 #define F_CODECNV_AUTO2SJIS 30850
00150 #define F_CODECNV_EMAIL 30851
00151 #define F_CODECNV_EUC2SJIS 30852
00152 #define F_CODECNV_UNICODE2SJIS 30853
00153 #define F_CODECNV_UNICODEBE2SJIS 30856
00154 #define F_CODECNV_UTF82SJIS 30854
00155 #define F_CODECNV_UTF72SJIS 30855
00156 #define F_CODECNV_SJIS2JIS 30860
00157 #define F_CODECNV_SJIS2EUC 30861
00158 #define F_CODECNV_SJIS2UTF8 30862
00159 #define F_CODECNV_SJIS2UTF7 30863
00160 #define F_BASE64DECODE 30870
00161 #define F_UUDECODE 30880
00162 #define F_SEARCH_DIALOG 30901
00163 #define F_SEARCH_NEXT 30902
00164 #define F_SEARCH_PREV 30903
00165 #define F_REPLACE_DIALOG 30904
00166 #define F_REPLACE 30906
00167 #define F_REPLACE_ALL 30907
00168 #define F_SEARCH_CLEARMARK 30905
00169 #define F_JUMP_SRCHSTARTPOS 30909
00170 #define F_SEARCH_BOX 30908
00171 #define F_GREP_DIALOG 30910
00172 #define F_GREP 30911
00173 #define F_JUMP_DIALOG 30920
00174 #define F_JUMP 30921
00175 #define F_OUTLINE 30930
00176 #define F_OUTLINE_TOGGLE 30931
00177 #define F_TAGJUMP 30940
00178 #define F_TAGJUMPBACK 30941
00179 #define F_TAGJUMP_LIST 30942
00180 #define F_TAGS_MAKE 30943
00181 #define F_DIRECT_TAGJUMP 30944
00182 #define F_TAGJUMP_CLOSE 30945
00183 #define F_TAGJUMP_KEYWORD 30946
00184 #define F_COMPARE 30950
00185 #define F_BRACKETPAIR 30960
00186 #define F_BOOKMARK_SET 30970
00187 #define F_BOOKMARK_NEXT 30971
00188 #define F_BOOKMARK_PREV 30972
00189 #define F_BOOKMARK_RESET 30973
00190 #define F_BOOKMARK_VIEW 30974
00191 #define F_BOOKMARK_PATTERN 30975
00192 #define F_DIFF_DIALOG 30976
00193 #define F_DIFF 30977
00194 #define F_DIFF_NEXT 30978
00195 #define F_DIFF_PREV 30979
00196 #define F_DIFF_RESET 30980
00197 #define F_ISEARCH_NEXT 30981
00198 #define F_ISEARCH_PREV 30982
00199 #define F_ISEARCH_REGEXP_NEXT 30983
00200 #define F_ISEARCH_REGEXP_PREV 30984
00201 #define F_ISEARCH_MIGEMO_NEXT 30985
00202 #define F_ISEARCH_MIGEMO_PREV 30986
00203 #define F_CHGMOD_INS 31001
00204 #define F_CHGMOD_EOL_CRLF 31081
00205 #define F_CHGMOD_EOL_LF 31082
00206 #define F_CHGMOD_EOL_CR 31083
00207 #define F_CANCEL_MODE 31099
00208 #define F_SHOWTOOLBAR 31100
00209 #define F_SHOWFUNCKEY 31101
00210 #define F_SHOWSTATUSBAR 31102
00211 #define F_SHOWTAB 31103
00212 #define F_TYPE_LIST 31110
00213 #define F_OPTION_TYPE 31111
00214 #define F_OPTION 31112
00215 #define F_FAVORITE 31113
00216 #define F_TYPE_SCREEN 31115
00217 #define F_TYPE_COLOR 31116
00218 #define F_TYPE_HELPER 31117
00219 #define F_TYPE_REGEX_KEYWORD 31118
00220 #define F_TYPE_KEYHELP 31119
00221 #define F_OPTION_GENERAL 32000
00222 #define F_OPTION_WINDOW 32001
00223 #define F_OPTION_EDIT 32002
00224 #define F_OPTION_FILE 32003
00225 #define F_OPTION_BACKUP 32004
00226 #define F_OPTION_FORMAT 32005
00227 #define F_OPTION_GREP 32007
00228 #define F_OPTION_KEYBIND 32008
00229 #define F_OPTION_CUSTMENU 32009
00230 #define F_OPTION_TOOLBAR 32010
00231 #define F_OPTION_KEYWORD 32011
00232 #define F_OPTION_HELPER 32012
00233 #define F_OPTION_MACRO 32013
00234 #define F_OPTION_FNAME 32014
00235 #define F_OPTION_TAB 32015
00236 #define F_FONT 31120
00237 #define F_WRAPWINDOWWIDTH 31140
00238 #define F_RECKEYMACRO 31250
00239 #define F_SAVEKEYMACRO 31251
00240 #define F_LOADKEYMACRO 31252
00241 #define F_EXECKEYMACRO 31253
00242 #define F_EXECCOMMAND_DIALOG 31270
00243 #define F_EXECCOMMAND 31271
00244 #define F_USERMACRO_0 31600
00245 #define F_MENU_RBUTTON 31580
00246 #define F_CUSTMENU_1 31501
00247 #define F_CUSTMENU_2 31502
00248 #define F_CUSTMENU_3 31503
00249 #define F_CUSTMENU_4 31504
00250 #define F_CUSTMENU_5 31505
00251 #define F_CUSTMENU_6 31506
00252 #define F_CUSTMENU_7 31507
00253 #define F_CUSTMENU_8 31508
00254 #define F_CUSTMENU_9 31509
00255 #define F_CUSTMENU_10 31510
00256 #define F_CUSTMENU_11 31511
00257 #define F_CUSTMENU_12 31512
00258 #define F_CUSTMENU_13 31513
00259 #define F_CUSTMENU_14 31514
00260 #define F_CUSTMENU_15 31515
00261 #define F_CUSTMENU_16 31516
00262 #define F_CUSTMENU_17 31517
00263 #define F_CUSTMENU_18 31518
00264 #define F_CUSTMENU_19 31519
00265 #define F_CUSTMENU_20 31520
00266 #define F_CUSTMENU_21 31521
00267 #define F_CUSTMENU_22 31522
00268 #define F_CUSTMENU_23 31523
00269 #define F_CUSTMENU_24 31524
00270 #define F_CUSTMENU_BASE 31500
00271 #define F_SPLIT_V 31310
00272 #define F_SPLIT_H 31311
00273 #define F_SPLIT_VH 31312
00274 #define F_WINCLOSE 31320
00275 #define F_WIN_CLOSEALL 31321
00276 #define F_CASCADE 31330
00277 #define F_TILE_V 31331
00278 #define F_TILE_H 31332
00279 #define F_BIND_WINDOW 31333
00280 #define F_TOPMOST 31334
00281 #define F_NEXTWINDOW 31340
00282 #define F_PREVWINDOW 31341
00283 #define F_WINLIST 31336
00284 #define F_MAXIMIZE_V 31350
00285 #define F_MINIMIZE_ALL 31351
00286 #define F_MAXIMIZE_H 31352
00287 #define F_REDRAW 31360
00288 #define F_WIN_OUTPUT 31370
00289 #define F_GROUPCLOSE 31380
00290 #define F_NEXTGROUP 31381
00291 #define F_PREVGROUP 31382
00292 #define F_TAB_MOVERIGHT 31383
00293 #define F_TAB_MOVELEFT 31384
00294 #define F_TAB_SEPARATE 31385
00295 #define F_TAB_JOINTNEXT 31386
00296 #define F_TAB_JOINTPREV 31387
00297 #define F_HOKAN 31430
00298 #define F_TOGGLE_KEY_SEARCH 31431
00299 #define F_HELP_CONTENTS 31440
00300 #define F_HELP_SEARCH 31441
00301 #define F_MENU_ALLFUNC 31445
00302 #define F_EXTHELP1 31450
00303 #define F_EXTHTMLHELP 31451
00304 #define F_ABOUT 31455
00305 #define F_MENU_NOT_USED_FIRST 32768
00306 #define F_CHGMOD_EOL 32800
00307 #define F_SET_QUOTESTRING 32801
00308 #define F_TRACEOUT 32802
00309 #define F_PUTFILE 32803
00310 #define F_INSFILE 32804
00311 #define F_FUNCTION_FIRST 40000
00312 #define F_GETFILENAME 40001
00313 #define F_GETSELECTED 40002
00314 #define F_EXPANDPARAMETER 40003
00315 #define F_GETLINESTR 40004
00316 #define F_GETLINECOUNT 40005
00317 #define F_CHGTABWIDTH 40006
00318 #define F_ISTEXTSELECTED 40007
00319 #define F_GETSELLINEFROM 40008
00320 #define F_GETSELCOLMFROM 40009
00321 #define F_GETSELLINETO 40010
00322 #define F_GETSELCOLMTO 40011
00323 #define F_ISINSMODE 40012
00324 #define F_GETCHARCODE 40013
00325 #define F_GETLINECODE 40014
00326 #define F_ISPOSSIBLEUNDO 40015
00327 #define F_ISPOSSIBLEREDO 40016
00328 #define F_ISEARCH_ADD_CHAR 0x10001
00329 #define F_ISEARCH_ADD_STR 0x10002
00330 #define F_ISEARCH_DEL_BACK 0x10003
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode_enum.h

sakura_core

Funccode_enum.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

列挙型

enum EFunctionCode {
F_INVALID = -1, F_DEFAULT = 0, F_0 = 0, F_DISABLE = 0,
F_SEPARATOR = 1, F_FILENEW = 30101, F_FILEOPEN = 30102, F_FILESAVE = 30103,
F_FILESAVEAS_DIALOG = 30104, F_FILESAVEAS = 30106, F_FILECLOSE = 30105, F_FILECLOSE_OPEN = 30107,
F_FILEOPEN_DROPDOWN = 30108, F_FILESAVECLOSE = 30109, F_FILESAVEALL = 30120, F_FILESAVE_QUIET = 30121,
F_FILE_REOPEN = 30119, F_FILE_REOPEN_SJIS = 30111, F_FILE_REOPEN_JIS = 30112, F_FILE_REOPEN_EUC = 30113,
F_FILE_REOPEN_UNICODE = 30114, F_FILE_REOPEN_UNICODEBE = 30117, F_FILE_REOPEN_UTF8 = 30115, F_FILE_REOPEN_UTF7 = 30116,
F_PRINT = 30150, F_PRINT_PREVIEW = 30151, F_PRINT_PAGESETUP = 30152, F_OPEN_HHPP = 30160,
F_OPEN_CCPP = 30161, F_OPEN_HfromtoC = 30162, F_ACTIVATE_SQLPLUS = 30170, F_PLSQL_COMPILE_ON_SQLPLUS = 30171,
F_BROWSE = 30180, F_READONLY = 30185, F_PROPERTY_FILE = 30190, F_EXITALLEDITORS = 30194,
F_EXITALL = 30195, F_NOWOPENFILE = 30197, F_RECENTFILE = 30198, F_RECENTFOLDER = 30199,
F_WCHAR = 30200, F_IME_CHAR = 30201, F_UNDO = 30210, F_REDO = 30211,
F_DELETE = 30221, F_DELETE_BACK = 30222, F_WordDeleteToStart = 30230, F_WordDeleteToEnd = 30231,
F_WordCut = 30232, F_WordDelete = 30233, F_LineCutToStart = 30240, F_LineCutToEnd = 30241,
F_LineDeleteToStart = 30242, F_LineDeleteToEnd = 30243, F_CUT_LINE = 30244, F_DELETE_LINE = 30245,
F_DUPLICATELINE = 30250, F_INDENT_TAB = 30260, F_UNINDENT_TAB = 30261, F_INDENT_SPACE = 30262,
F_UNINDENT_SPACE = 30263, F_LTRIM = 30280, F_RTRIM = 30281, F_SORT_ASC = 30282,
F_SORT_DESC = 30283, F_MERGE = 30284, F_RECONVERT = 30285, F_UP = 30311,
F_DOWN = 30312, F_LEFT = 30313, F_RIGHT = 30314, F_UP2 = 30315,
F_DOWN2 = 30316, F_WORDLEFT = 30320, F_WORDRIGHT = 30321, F_GOLINETOP = 30332,
F_GOLINEEND = 30333, F_HalfPageUp = 30340, F_HalfPageDown = 30341, F_1PageUp = 30342,
F_1PageDown = 30343, F_GOFILETOP = 30350, F_GOFILEEND = 30351, F_CURLINECENTER = 30360,
F_JUMPHIST_PREV = 30370, F_JUMPHIST_NEXT = 30371, F_JUMPHIST_SET = 30372, F_WndScrollDown = 30380,
F_WndScrollUp = 30381, F_GONEXTPARAGRAPH = 30382, F_GOPREVPARAGRAPH = 30383, F_SELECTWORD = 30400,
F_SELECTALL = 30401, F_BEGIN_SEL = 30410, F_UP_SEL = 30411, F_DOWN_SEL = 30412,
F_LEFT_SEL = 30413, F_RIGHT_SEL = 30414, F_UP2_SEL = 30415, F_DOWN2_SEL = 30416,
F_WORDLEFT_SEL = 30420, F_WORDRIGHT_SEL = 30421, F_GOLINETOP_SEL = 30432, F_GOLINEEND_SEL = 30433,
F_HalfPageUp_Sel = 30440, F_HalfPageDown_Sel = 30441, F_1PageUp_Sel = 30442, F_1PageDown_Sel = 30443,
F_GOFILETOP_SEL = 30450, F_GOFILEEND_SEL = 30451, F_GONEXTPARAGRAPH_SEL = 30482, F_GOPREVPARAGRAPH_SEL = 30483,
F_BEGIN_BOX = 30510, F_CUT = 30601, F_COPY = 30602, F_COPY_ADDCRLF = 30608,
F_COPY_CRLF = 30603, F_PASTE = 30604, F_PASTEBOX = 30605, F_INSTEXT_W = 30606,
F_ADDTAIL_W = 30607, F_COPYLINES = 30610, F_COPYLINESASPASSAGE = 30611, F_COPYLINESWITHLINENUMBER = 30612,
F_COPYPATH = 30620, F_COPYTAG = 30621, F_COPYFNAME = 30622, F_CREATEKEYBINDLIST = 30630,
F_INS_DATE = 30790, F_INS_TIME = 30791, F_CTRL_CODE_DIALOG = 30792, F_TOLOWER = 30800,
F_TOUPPER = 30801, F_TOHANKAKU = 30810, F_TOHANKATA = 30817, F_TOZENKAKUKATA = 30811,
F_TOZENKAKUHIRA = 30812, F_HANKATATOZENKAKUKATA = 30813, F_HANKATATOZENKAKUHIRA = 30814, F_TOZENEI = 30815,
F_TOHANEI = 30816, F_TABTOSPACE = 30830, F_SPACETOTAB = 30831, F_CODECNV_AUTO2SJIS = 30850,
F_CODECNV_EMAIL = 30851, F_CODECNV_EUC2SJIS = 30852, F_CODECNV_UNICODE2SJIS = 30853, F_CODECNV_UNICODEBE2SJIS = 30856,
F_CODECNV_UTF82SJIS = 30854, F_CODECNV_UTF72SJIS = 30855, F_CODECNV_SJIS2JIS = 30860, F_CODECNV_SJIS2EUC = 30861,
F_CODECNV_SJIS2UTF8 = 30862, F_CODECNV_SJIS2UTF7 = 30863, F_BASE64DECODE = 30870, F_UUDECODE = 30880,
F_SEARCH_DIALOG = 30901, F_SEARCH_NEXT = 30902, F_SEARCH_PREV = 30903, F_REPLACE_DIALOG = 30904,
F_REPLACE = 30906, F_REPLACE_ALL = 30907, F_SEARCH_CLEARMARK = 30905, F_JUMP_SRCHSTARTPOS = 30909,
F_SEARCH_BOX = 30908, F_GREP_DIALOG = 30910, F_GREP = 30911, F_JUMP_DIALOG = 30920,
F_JUMP = 30921, F_OUTLINE = 30930, F_OUTLINE_TOGGLE = 30931, F_TAGJUMP = 30940,
F_TAGJUMPBACK = 30941, F_TAGJUMP_LIST = 30942, F_TAGS_MAKE = 30943, F_DIRECT_TAGJUMP = 30944,
F_TAGJUMP_CLOSE = 30945, F_TAGJUMP_KEYWORD = 30946, F_COMPARE = 30950, F_BRACKETPAIR = 30960,
F_BOOKMARK_SET = 30970, F_BOOKMARK_NEXT = 30971, F_BOOKMARK_PREV = 30972, F_BOOKMARK_RESET = 30973,
F_BOOKMARK_VIEW = 30974, F_BOOKMARK_PATTERN = 30975, F_DIFF_DIALOG = 30976, F_DIFF = 30977,
F_DIFF_NEXT = 30978, F_DIFF_PREV = 30979, F_DIFF_RESET = 30980, F_ISEARCH_NEXT = 30981,
F_ISEARCH_PREV = 30982, F_ISEARCH_REGEXP_NEXT = 30983, F_ISEARCH_REGEXP_PREV = 30984, F_ISEARCH_MIGEMO_NEXT = 30985,
F_ISEARCH_MIGEMO_PREV = 30986, F_CHGMOD_INS = 31001, F_CHGMOD_EOL_CRLF = 31081, F_CHGMOD_EOL_LF = 31082,
F_CHGMOD_EOL_CR = 31083, F_CANCEL_MODE = 31099, F_SHOWTOOLBAR = 31100, F_SHOWFUNCKEY = 31101,
F_SHOWSTATUSBAR = 31102, F_SHOWTAB = 31103, F_TYPE_LIST = 31110, F_OPTION_TYPE = 31111,
F_OPTION = 31112, F_FAVORITE = 31113, F_TYPE_SCREEN = 31115, F_TYPE_COLOR = 31116,
F_TYPE_HELPER = 31117, F_TYPE_REGEX_KEYWORD = 31118, F_TYPE_KEYHELP = 31119, F_OPTION_GENERAL = 32000,
F_OPTION_WINDOW = 32001, F_OPTION_EDIT = 32002, F_OPTION_FILE = 32003, F_OPTION_BACKUP = 32004,
F_OPTION_FORMAT = 32005, F_OPTION_GREP = 32007, F_OPTION_KEYBIND = 32008, F_OPTION_CUSTMENU = 32009,
F_OPTION_TOOLBAR = 32010, F_OPTION_KEYWORD = 32011, F_OPTION_HELPER = 32012, F_OPTION_MACRO = 32013,
F_OPTION_FNAME = 32014, F_OPTION_TAB = 32015, F_FONT = 31120, F_WRAPWINDOWWIDTH = 31140,
F_RECKEYMACRO = 31250, F_SAVEKEYMACRO = 31251, F_LOADKEYMACRO = 31252, F_EXECKEYMACRO = 31253,
F_EXECCOMMAND_DIALOG = 31270, F_EXECCOMMAND = 31271, F_USERMACRO_0 = 31600, F_MENU_RBUTTON = 31580,
F_CUSTMENU_1 = 31501, F_CUSTMENU_2 = 31502, F_CUSTMENU_3 = 31503, F_CUSTMENU_4 = 31504,
F_CUSTMENU_5 = 31505, F_CUSTMENU_6 = 31506, F_CUSTMENU_7 = 31507, F_CUSTMENU_8 = 31508,
F_CUSTMENU_9 = 31509, F_CUSTMENU_10 = 31510, F_CUSTMENU_11 = 31511, F_CUSTMENU_12 = 31512,
F_CUSTMENU_13 = 31513, F_CUSTMENU_14 = 31514, F_CUSTMENU_15 = 31515, F_CUSTMENU_16 = 31516,
F_CUSTMENU_17 = 31517, F_CUSTMENU_18 = 31518, F_CUSTMENU_19 = 31519, F_CUSTMENU_20 = 31520,
F_CUSTMENU_21 = 31521, F_CUSTMENU_22 = 31522, F_CUSTMENU_23 = 31523, F_CUSTMENU_24 = 31524,
F_CUSTMENU_BASE = 31500, F_SPLIT_V = 31310, F_SPLIT_H = 31311, F_SPLIT_VH = 31312,
F_WINCLOSE = 31320, F_WIN_CLOSEALL = 31321, F_CASCADE = 31330, F_TILE_V = 31331,
F_TILE_H = 31332, F_BIND_WINDOW = 31333, F_TOPMOST = 31334, F_NEXTWINDOW = 31340,
F_PREVWINDOW = 31341, F_WINLIST = 31336, F_MAXIMIZE_V = 31350, F_MINIMIZE_ALL = 31351,
F_MAXIMIZE_H = 31352, F_REDRAW = 31360, F_WIN_OUTPUT = 31370, F_GROUPCLOSE = 31380,
F_NEXTGROUP = 31381, F_PREVGROUP = 31382, F_TAB_MOVERIGHT = 31383, F_TAB_MOVELEFT = 31384,
F_TAB_SEPARATE = 31385, F_TAB_JOINTNEXT = 31386, F_TAB_JOINTPREV = 31387, F_HOKAN = 31430,
F_TOGGLE_KEY_SEARCH = 31431, F_HELP_CONTENTS = 31440, F_HELP_SEARCH = 31441, F_MENU_ALLFUNC = 31445,
F_EXTHELP1 = 31450, F_EXTHTMLHELP = 31451, F_ABOUT = 31455, F_MENU_NOT_USED_FIRST = 32768,
F_CHGMOD_EOL = 32800, F_SET_QUOTESTRING = 32801, F_TRACEOUT = 32802, F_PUTFILE = 32803,
F_INSFILE = 32804, F_FUNCTION_FIRST = 40000, F_GETFILENAME = 40001, F_GETSELECTED = 40002,
F_EXPANDPARAMETER = 40003, F_GETLINESTR = 40004, F_GETLINECOUNT = 40005, F_CHGTABWIDTH = 40006,
F_ISTEXTSELECTED = 40007, F_GETSELLINEFROM = 40008, F_GETSELCOLMFROM = 40009, F_GETSELLINETO = 40010,
F_GETSELCOLMTO = 40011, F_ISINSMODE = 40012, F_GETCHARCODE = 40013, F_GETLINECODE = 40014,
F_ISPOSSIBLEUNDO = 40015, F_ISPOSSIBLEREDO = 40016, F_ISEARCH_ADD_CHAR = 0x10001, F_ISEARCH_ADD_STR = 0x10002,
F_ISEARCH_DEL_BACK = 0x10003
}

列挙型

enum EFunctionCode

列挙型の値:
F_INVALID
F_DEFAULT
F_0
F_DISABLE
F_SEPARATOR
F_FILENEW
F_FILEOPEN
F_FILESAVE
F_FILESAVEAS_DIALOG
F_FILESAVEAS
F_FILECLOSE
F_FILECLOSE_OPEN
F_FILEOPEN_DROPDOWN
F_FILESAVECLOSE
F_FILESAVEALL
F_FILESAVE_QUIET
F_FILE_REOPEN
F_FILE_REOPEN_SJIS
F_FILE_REOPEN_JIS
F_FILE_REOPEN_EUC
F_FILE_REOPEN_UNICODE
F_FILE_REOPEN_UNICODEBE
F_FILE_REOPEN_UTF8
F_FILE_REOPEN_UTF7
F_PRINT
F_PRINT_PREVIEW
F_PRINT_PAGESETUP
F_OPEN_HHPP
F_OPEN_CCPP
F_OPEN_HfromtoC
F_ACTIVATE_SQLPLUS
F_PLSQL_COMPILE_ON_SQLPLUS
F_BROWSE
F_READONLY
F_PROPERTY_FILE
F_EXITALLEDITORS
F_EXITALL
F_NOWOPENFILE
F_RECENTFILE
F_RECENTFOLDER
F_WCHAR
F_IME_CHAR
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
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_JUMPHIST_PREV
F_JUMPHIST_NEXT
F_JUMPHIST_SET
F_WndScrollDown
F_WndScrollUp
F_GONEXTPARAGRAPH
F_GOPREVPARAGRAPH
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
F_BEGIN_BOX
F_CUT
F_COPY
F_COPY_ADDCRLF
F_COPY_CRLF
F_PASTE
F_PASTEBOX
F_INSTEXT_W
F_ADDTAIL_W
F_COPYLINES
F_COPYLINESASPASSAGE
F_COPYLINESWITHLINENUMBER
F_COPYPATH
F_COPYTAG
F_COPYFNAME
F_CREATEKEYBINDLIST
F_INS_DATE
F_INS_TIME
F_CTRL_CODE_DIALOG
F_TOLOWER
F_TOUPPER
F_TOHANKAKU
F_TOHANKATA
F_TOZENKAKUKATA
F_TOZENKAKUHIRA
F_HANKATATOZENKAKUKATA
F_HANKATATOZENKAKUHIRA
F_TOZENEI
F_TOHANEI
F_TABTOSPACE
F_SPACETOTAB
F_CODECNV_AUTO2SJIS
F_CODECNV_EMAIL
F_CODECNV_EUC2SJIS
F_CODECNV_UNICODE2SJIS
F_CODECNV_UNICODEBE2SJIS
F_CODECNV_UTF82SJIS
F_CODECNV_UTF72SJIS
F_CODECNV_SJIS2JIS
F_CODECNV_SJIS2EUC
F_CODECNV_SJIS2UTF8
F_CODECNV_SJIS2UTF7
F_BASE64DECODE
F_UUDECODE
F_SEARCH_DIALOG
F_SEARCH_NEXT
F_SEARCH_PREV
F_REPLACE_DIALOG
F_REPLACE
F_REPLACE_ALL
F_SEARCH_CLEARMARK
F_JUMP_SRCHSTARTPOS
F_SEARCH_BOX
F_GREP_DIALOG
F_GREP
F_JUMP_DIALOG
F_JUMP
F_OUTLINE
F_OUTLINE_TOGGLE
F_TAGJUMP
F_TAGJUMPBACK
F_TAGJUMP_LIST
F_TAGS_MAKE
F_DIRECT_TAGJUMP
F_TAGJUMP_CLOSE
F_TAGJUMP_KEYWORD
F_COMPARE
F_BRACKETPAIR
F_BOOKMARK_SET
F_BOOKMARK_NEXT
F_BOOKMARK_PREV
F_BOOKMARK_RESET
F_BOOKMARK_VIEW
F_BOOKMARK_PATTERN
F_DIFF_DIALOG
F_DIFF
F_DIFF_NEXT
F_DIFF_PREV
F_DIFF_RESET
F_ISEARCH_NEXT
F_ISEARCH_PREV
F_ISEARCH_REGEXP_NEXT
F_ISEARCH_REGEXP_PREV
F_ISEARCH_MIGEMO_NEXT
F_ISEARCH_MIGEMO_PREV
F_CHGMOD_INS
F_CHGMOD_EOL_CRLF
F_CHGMOD_EOL_LF
F_CHGMOD_EOL_CR
F_CANCEL_MODE
F_SHOWTOOLBAR
F_SHOWFUNCKEY
F_SHOWSTATUSBAR
F_SHOWTAB
F_TYPE_LIST
F_OPTION_TYPE
F_OPTION
F_FAVORITE
F_TYPE_SCREEN
F_TYPE_COLOR
F_TYPE_HELPER
F_TYPE_REGEX_KEYWORD
F_TYPE_KEYHELP
F_OPTION_GENERAL
F_OPTION_WINDOW
F_OPTION_EDIT
F_OPTION_FILE
F_OPTION_BACKUP
F_OPTION_FORMAT
F_OPTION_GREP
F_OPTION_KEYBIND
F_OPTION_CUSTMENU
F_OPTION_TOOLBAR
F_OPTION_KEYWORD
F_OPTION_HELPER
F_OPTION_MACRO
F_OPTION_FNAME
F_OPTION_TAB
F_FONT
F_WRAPWINDOWWIDTH
F_RECKEYMACRO
F_SAVEKEYMACRO
F_LOADKEYMACRO
F_EXECKEYMACRO
F_EXECCOMMAND_DIALOG
F_EXECCOMMAND
F_USERMACRO_0
F_MENU_RBUTTON
F_CUSTMENU_1
F_CUSTMENU_2
F_CUSTMENU_3
F_CUSTMENU_4
F_CUSTMENU_5
F_CUSTMENU_6
F_CUSTMENU_7
F_CUSTMENU_8
F_CUSTMENU_9
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_20
F_CUSTMENU_21
F_CUSTMENU_22
F_CUSTMENU_23
F_CUSTMENU_24
F_CUSTMENU_BASE
F_SPLIT_V
F_SPLIT_H
F_SPLIT_VH
F_WINCLOSE
F_WIN_CLOSEALL
F_CASCADE
F_TILE_V
F_TILE_H
F_BIND_WINDOW
F_TOPMOST
F_NEXTWINDOW
F_PREVWINDOW
F_WINLIST
F_MAXIMIZE_V
F_MINIMIZE_ALL
F_MAXIMIZE_H
F_REDRAW
F_WIN_OUTPUT
F_GROUPCLOSE
F_NEXTGROUP
F_PREVGROUP
F_TAB_MOVERIGHT
F_TAB_MOVELEFT
F_TAB_SEPARATE
F_TAB_JOINTNEXT
F_TAB_JOINTPREV
F_HOKAN
F_TOGGLE_KEY_SEARCH
F_HELP_CONTENTS
F_HELP_SEARCH
F_MENU_ALLFUNC
F_EXTHELP1
F_EXTHTMLHELP
F_ABOUT
F_MENU_NOT_USED_FIRST
F_CHGMOD_EOL
F_SET_QUOTESTRING
F_TRACEOUT
F_PUTFILE
F_INSFILE
F_FUNCTION_FIRST
F_GETFILENAME
F_GETSELECTED
F_EXPANDPARAMETER
F_GETLINESTR
F_GETLINECOUNT
F_CHGTABWIDTH
F_ISTEXTSELECTED
F_GETSELLINEFROM
F_GETSELCOLMFROM
F_GETSELLINETO
F_GETSELCOLMTO
F_ISINSMODE
F_GETCHARCODE
F_GETLINECODE
F_ISPOSSIBLEUNDO
F_ISPOSSIBLEREDO
F_ISEARCH_ADD_CHAR
F_ISEARCH_ADD_STR
F_ISEARCH_DEL_BACK

Funccode_enum.h の 6 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Funccode_enum.h ソースファイル

sakura_core

Funccode_enum.h

説明を見る。
00001 #pragma once
00002
00003 //このファイルは HeaderMake により Funccode_x.hsrc から生成されたファイルです。
00004 //直接編集しないでください。
00005
00006 enum EFunctionCode{
00007     F_INVALID = -1,
00008     F_DEFAULT = 0,
00009     F_0 = 0,
00010     F_DISABLE = 0,
00011     F_SEPARATOR = 1,
00012     F_FILENEW = 30101,
00013     F_FILEOPEN = 30102,
00014     F_FILESAVE = 30103,
00015     F_FILESAVEAS_DIALOG = 30104,
00016     F_FILESAVEAS = 30106,
00017     F_FILECLOSE = 30105,
00018     F_FILECLOSE_OPEN = 30107,
00019     F_FILEOPEN_DROPDOWN = 30108,
00020     F_FILESAVECLOSE = 30109,
00021     F_FILESAVEALL = 30120,
00022     F_FILESAVE_QUIET = 30121,
00023     F_FILE_REOPEN = 30119,
00024     F_FILE_REOPEN_SJIS = 30111,
00025     F_FILE_REOPEN_JIS = 30112,
00026     F_FILE_REOPEN_EUC = 30113,
00027     F_FILE_REOPEN_UNICODE = 30114,
00028     F_FILE_REOPEN_UNICODEBE = 30117,
00029     F_FILE_REOPEN_UTF8 = 30115,
00030     F_FILE_REOPEN_UTF7 = 30116,
00031     F_PRINT = 30150,
00032     F_PRINT_PREVIEW = 30151,
00033     F_PRINT_PAGESETUP = 30152,
00034     F_OPEN_HHPP = 30160,
00035     F_OPEN_CCPP = 30161,
00036     F_OPEN_HfromtoC = 30162,
00037     F_ACTIVATE_SQLPLUS = 30170,
00038     F_PLSQL_COMPILE_ON_SQLPLUS = 30171,
00039     F_BROWSE = 30180,
00040     F_READONLY = 30185,
00041     F_PROPERTY_FILE = 30190,
00042     F_EXITALLEDITORS = 30194,
00043     F_EXITALL = 30195,
00044     F_NOWOPENFILE = 30197,
00045     F_RECENTFILE = 30198,
00046     F_RECENTFOLDER = 30199,
00047     F_WCHAR = 30200,
00048     F_IME_CHAR = 30201,
00049     F_UNDO = 30210,
00050     F_REDO = 30211,
00051     F_DELETE = 30221,
00052     F_DELETE_BACK = 30222,
00053     F_WordDeleteToStart = 30230,
00054     F_WordDeleteToEnd = 30231,
00055     F_WordCut = 30232,
00056     F_WordDelete = 30233,
00057     F_LineCutToStart = 30240,
00058     F_LineCutToEnd = 30241,
00059     F_LineDeleteToStart = 30242,
00060     F_LineDeleteToEnd = 30243,
00061     F_CUT_LINE = 30244,
00062     F_DELETE_LINE = 30245,
00063     F_DUPLICATELINE = 30250,
00064     F_INDENT_TAB = 30260,
00065     F_UNINDENT_TAB = 30261,
00066     F_INDENT_SPACE = 30262,
00067     F_UNINDENT_SPACE = 30263,
00068     F_LTRIM = 30280,
00069     F_RTRIM = 30281,
00070     F_SORT_ASC = 30282,
00071     F_SORT_DESC = 30283,
00072     F_MERGE = 30284,
00073     F_RECONVERT = 30285,
00074     F_UP = 30311,
00075     F_DOWN = 30312,
00076     F_LEFT = 30313,
00077     F_RIGHT = 30314,
00078     F_UP2 = 30315,
00079     F_DOWN2 = 30316,
00080     F_WORDLEFT = 30320,
00081     F_WORDRIGHT = 30321,
00082     F_GOLINETOP = 30332,
00083     F_GOLINEEND = 30333,
00084     F_HalfPageUp = 30340,
00085     F_HalfPageDown = 30341,
00086     F_1PageUp = 30342,
00087     F_1PageDown = 30343,
00088     F_GOFILETOP = 30350,
00089     F_GOFILEEND = 30351,
00090     F_CURLINECENTER = 30360,
00091     F_JUMPHIST_PREV = 30370,
00092     F_JUMPHIST_NEXT = 30371,
00093     F_JUMPHIST_SET = 30372,
00094     F_WndScrollDown = 30380,
00095     F_WndScrollUp = 30381,
00096     F_GONEXTPARAGRAPH = 30382,
00097     F_GOPREVPARAGRAPH = 30383,
00098     F_SELECTWORD = 30400,
00099     F_SELECTALL = 30401,
00100     F_BEGIN_SEL = 30410,
00101     F_UP_SEL = 30411,
00102     F_DOWN_SEL = 30412,
00103     F_LEFT_SEL = 30413,
00104     F_RIGHT_SEL = 30414,
00105     F_UP2_SEL = 30415,
00106     F_DOWN2_SEL = 30416,
00107     F_WORDLEFT_SEL = 30420,
00108     F_WORDRIGHT_SEL = 30421,
00109     F_GOLINETOP_SEL = 30432,
00110     F_GOLINEEND_SEL = 30433,
00111     F_HalfPageUp_Sel = 30440,
00112     F_HalfPageDown_Sel = 30441,
00113     F_1PageUp_Sel = 30442,
00114     F_1PageDown_Sel = 30443,
00115     F_GOFILETOP_SEL = 30450,
00116     F_GOFILEEND_SEL = 30451,
00117     F_GONEXTPARAGRAPH_SEL = 30482,
00118     F_GOPREVPARAGRAPH_SEL = 30483,
00119     F_BEGIN_BOX = 30510,
00120     F_CUT = 30601,
00121     F_COPY = 30602,
00122     F_COPY_ADDCRLF = 30608,
00123     F_COPY_CRLF = 30603,
00124     F_PASTE = 30604,
00125     F_PASTEBOX = 30605,
00126     F_INSTEXT_W = 30606,
00127     F_ADDTAIL_W = 30607,
00128     F_COPYLINES = 30610,
00129     F_COPYLINESASPASSAGE = 30611,
00130     F_COPYLINESWITHLINENUMBER = 30612,
00131     F_COPYPATH = 30620,
00132     F_COPYTAG = 30621,
00133     F_COPYFNAME = 30622,
00134     F_CREATEKEYBINDLIST = 30630,
00135     F_INS_DATE = 30790,
00136     F_INS_TIME = 30791,
00137     F_CTRL_CODE_DIALOG = 30792,
00138     F_TOLOWER = 30800,
00139     F_TOUPPER = 30801,
00140     F_TOHANKAKU = 30810,
00141     F_TOHANKATA = 30817,
00142     F_TOZENKAKUKATA = 30811,
00143     F_TOZENKAKUHIRA = 30812,
00144     F_HANKATATOZENKAKUKATA = 30813,
00145     F_HANKATATOZENKAKUHIRA = 30814,
00146     F_TOZENEI = 30815,
00147     F_TOHANEI = 30816,
00148     F_TABTOSPACE = 30830,
00149     F_SPACETOTAB = 30831,
00150     F_CODECNV_AUTO2SJIS = 30850,
00151     F_CODECNV_EMAIL = 30851,
00152     F_CODECNV_EUC2SJIS = 30852,
00153     F_CODECNV_UNICODE2SJIS = 30853,
00154     F_CODECNV_UNICODEBE2SJIS = 30856,
00155     F_CODECNV_UTF82SJIS = 30854,
00156     F_CODECNV_UTF72SJIS = 30855,
00157     F_CODECNV_SJIS2JIS = 30860,
00158     F_CODECNV_SJIS2EUC = 30861,
00159     F_CODECNV_SJIS2UTF8 = 30862,
00160     F_CODECNV_SJIS2UTF7 = 30863,
00161     F_BASE64DECODE = 30870,
00162     F_UUDECODE = 30880,
00163     F_SEARCH_DIALOG = 30901,
00164     F_SEARCH_NEXT = 30902,
00165     F_SEARCH_PREV = 30903,
00166     F_REPLACE_DIALOG = 30904,
00167     F_REPLACE = 30906,
00168     F_REPLACE_ALL = 30907,
00169     F_SEARCH_CLEARMARK = 30905,
00170     F_JUMP_SRCHSTARTPOS = 30909,
00171     F_SEARCH_BOX = 30908,
00172     F_GREP_DIALOG = 30910,
00173     F_GREP = 30911,
00174     F_JUMP_DIALOG = 30920,
00175     F_JUMP = 30921,
00176     F_OUTLINE = 30930,
00177     F_OUTLINE_TOGGLE = 30931,
00178     F_TAGJUMP = 30940,
00179     F_TAGJUMPBACK = 30941,
00180     F_TAGJUMP_LIST = 30942,
00181     F_TAGS_MAKE = 30943,
00182     F_DIRECT_TAGJUMP = 30944,
00183     F_TAGJUMP_CLOSE = 30945,
00184     F_TAGJUMP_KEYWORD = 30946,
00185     F_COMPARE = 30950,
00186     F_BRACKETPAIR = 30960,
00187     F_BOOKMARK_SET = 30970,
00188     F_BOOKMARK_NEXT = 30971,
00189     F_BOOKMARK_PREV = 30972,
00190     F_BOOKMARK_RESET = 30973,
00191     F_BOOKMARK_VIEW = 30974,
00192     F_BOOKMARK_PATTERN = 30975,
00193     F_DIFF_DIALOG = 30976,
00194     F_DIFF = 30977,
00195     F_DIFF_NEXT = 30978,
00196     F_DIFF_PREV = 30979,
00197     F_DIFF_RESET = 30980,
00198     F_ISEARCH_NEXT = 30981,
00199     F_ISEARCH_PREV = 30982,
00200     F_ISEARCH_REGEXP_NEXT = 30983,
00201     F_ISEARCH_REGEXP_PREV = 30984,
00202     F_ISEARCH_MIGEMO_NEXT = 30985,
00203     F_ISEARCH_MIGEMO_PREV = 30986,
00204     F_CHGMOD_INS = 31001,
00205     F_CHGMOD_EOL_CRLF = 31081,
00206     F_CHGMOD_EOL_LF = 31082,
00207     F_CHGMOD_EOL_CR = 31083,
00208     F_CANCEL_MODE = 31099,
00209     F_SHOWTOOLBAR = 31100,
00210     F_SHOWFUNCKEY = 31101,
00211     F_SHOWSTATUSBAR = 31102,
00212     F_SHOWTAB = 31103,
00213     F_TYPE_LIST = 31110,
00214     F_OPTION_TYPE = 31111,
00215     F_OPTION = 31112,
00216     F_FAVORITE = 31113,
00217     F_TYPE_SCREEN = 31115,
00218     F_TYPE_COLOR = 31116,
00219     F_TYPE_HELPER = 31117,
00220     F_TYPE_REGEX_KEYWORD = 31118,
00221     F_TYPE_KEYHELP = 31119,
00222     F_OPTION_GENERAL = 32000,
00223     F_OPTION_WINDOW = 32001,
00224     F_OPTION_EDIT = 32002,
00225     F_OPTION_FILE = 32003,
00226     F_OPTION_BACKUP = 32004,
00227     F_OPTION_FORMAT = 32005,
00228     F_OPTION_GREP = 32007,
00229     F_OPTION_KEYBIND = 32008,
00230     F_OPTION_CUSTMENU = 32009,
00231     F_OPTION_TOOLBAR = 32010,
00232     F_OPTION_KEYWORD = 32011,
00233     F_OPTION_HELPER = 32012,
00234     F_OPTION_MACRO = 32013,
00235     F_OPTION_FNAME = 32014,
00236     F_OPTION_TAB = 32015,
00237     F_FONT = 31120,
00238     F_WRAPWINDOWWIDTH = 31140,
00239     F_RECKEYMACRO = 31250,
00240     F_SAVEKEYMACRO = 31251,
00241     F_LOADKEYMACRO = 31252,
00242     F_EXECKEYMACRO = 31253,
00243     F_EXECCOMMAND_DIALOG = 31270,
00244     F_EXECCOMMAND = 31271,
00245     F_USERMACRO_0 = 31600,
00246     F_MENU_RBUTTON = 31580,
00247     F_CUSTMENU_1 = 31501,
00248     F_CUSTMENU_2 = 31502,
00249     F_CUSTMENU_3 = 31503,
00250     F_CUSTMENU_4 = 31504,
00251     F_CUSTMENU_5 = 31505,
00252     F_CUSTMENU_6 = 31506,
00253     F_CUSTMENU_7 = 31507,
00254     F_CUSTMENU_8 = 31508,
00255     F_CUSTMENU_9 = 31509,
00256     F_CUSTMENU_10 = 31510,
00257     F_CUSTMENU_11 = 31511,
00258     F_CUSTMENU_12 = 31512,
00259     F_CUSTMENU_13 = 31513,
00260     F_CUSTMENU_14 = 31514,
00261     F_CUSTMENU_15 = 31515,
00262     F_CUSTMENU_16 = 31516,
00263     F_CUSTMENU_17 = 31517,
00264     F_CUSTMENU_18 = 31518,
00265     F_CUSTMENU_19 = 31519,
00266     F_CUSTMENU_20 = 31520,
00267     F_CUSTMENU_21 = 31521,
00268     F_CUSTMENU_22 = 31522,
00269     F_CUSTMENU_23 = 31523,
00270     F_CUSTMENU_24 = 31524,
00271     F_CUSTMENU_BASE = 31500,
00272     F_SPLIT_V = 31310,
00273     F_SPLIT_H = 31311,
00274     F_SPLIT_VH = 31312,
00275     F_WINCLOSE = 31320,
00276     F_WIN_CLOSEALL = 31321,
00277     F_CASCADE = 31330,
00278     F_TILE_V = 31331,
00279     F_TILE_H = 31332,
00280     F_BIND_WINDOW = 31333,
00281     F_TOPMOST = 31334,
00282     F_NEXTWINDOW = 31340,
00283     F_PREVWINDOW = 31341,
00284     F_WINLIST = 31336,
00285     F_MAXIMIZE_V = 31350,
00286     F_MINIMIZE_ALL = 31351,
00287     F_MAXIMIZE_H = 31352,
00288     F_REDRAW = 31360,
00289     F_WIN_OUTPUT = 31370,
00290     F_GROUPCLOSE = 31380,
00291     F_NEXTGROUP = 31381,
00292     F_PREVGROUP = 31382,
00293     F_TAB_MOVERIGHT = 31383,
00294     F_TAB_MOVELEFT = 31384,
00295     F_TAB_SEPARATE = 31385,
00296     F_TAB_JOINTNEXT = 31386,
00297     F_TAB_JOINTPREV = 31387,
00298     F_HOKAN = 31430,
00299     F_TOGGLE_KEY_SEARCH = 31431,
00300     F_HELP_CONTENTS = 31440,
00301     F_HELP_SEARCH = 31441,
00302     F_MENU_ALLFUNC = 31445,
00303     F_EXTHELP1 = 31450,
00304     F_EXTHTMLHELP = 31451,
00305     F_ABOUT = 31455,
00306     F_MENU_NOT_USED_FIRST = 32768,
00307     F_CHGMOD_EOL = 32800,
00308     F_SET_QUOTESTRING = 32801,
00309     F_TRACEOUT = 32802,
00310     F_PUTFILE = 32803,
00311     F_INSFILE = 32804,
00312     F_FUNCTION_FIRST = 40000,
00313     F_GETFILENAME = 40001,
00314     F_GETSELECTED = 40002,
00315     F_EXPANDPARAMETER = 40003,
00316     F_GETLINESTR = 40004,
00317     F_GETLINECOUNT = 40005,
00318     F_CHGTABWIDTH = 40006,
00319     F_ISTEXTSELECTED = 40007,
00320     F_GETSELLINEFROM = 40008,
00321     F_GETSELCOLMFROM = 40009,
00322     F_GETSELLINETO = 40010,
00323     F_GETSELCOLMTO = 40011,
00324     F_ISINSMODE = 40012,
00325     F_GETCHARCODE = 40013,
00326     F_GETLINECODE = 40014,
00327     F_ISPOSSIBLEUNDO = 40015,
00328     F_ISPOSSIBLEREDO = 40016,
00329     F_ISEARCH_ADD_CHAR = 0x10001,
00330     F_ISEARCH_ADD_STR = 0x10002,
00331     F_ISEARCH_DEL_BACK = 0x10003,
00332 };
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: global.cpp

sakura_core

global.cpp

文字列共通定義 [詳細]

#include "stdafx.h"
#include "global.h"

global.cppのインクルード依存関係図

ソースコードを見る。

関数

SAKURA_CORE_API int | GetColorIndexByName (const TCHAR *name)
SAKURA_CORE_API const TCHAR * | GetColorNameByIndex (int index)

変数

CEditWnd * | g_pcEditWnd = NULL
const TCHAR * | gm_pszCodeNameArr_Normal []
const TCHAR * | gm_pszCodeNameArr_Short []
const TCHAR * | gm_pszCodeNameArr_Bracket []
const ECodeType | gm_nCodeComboValueArr []
const TCHAR *const | gm_pszCodeComboNameArr []
const int | gm_nCodeComboNameArrNum = _countof( gm_nCodeComboValueArr )
const COLORREF | SELECTEDAREA_RGB = RGB( 255, 255, 255 )
const int | SELECTEDAREA_ROP2 = R2_XORPEN
const enumEOLType | gm_pnEolTypeArr [EOL_TYPE_NUM]
const ColorAttributeData | g_ColorAttributeArr []

説明

文字列共通定義

作者:
Norio Nakatani

global.cpp で定義されています。

関数

SAKURA_CORE_API int GetColorIndexByName ( const TCHAR * name )

global.cpp の 156 行で定義されています。

参照先 COLORIDX_LAST.

参照元 CPropTypes::Import_Regex(), と CShareData::ShareData_IO_Types().

SAKURA_CORE_API const TCHAR* GetColorNameByIndex ( int index )

global.cpp の 169 行で定義されています。

参照先 ColorAttributeData_t::szName.

参照元 CPropTypes::Export_Regex(), と CShareData::ShareData_IO_Types().

変数

const ColorAttributeData g_ColorAttributeArr[]

iniの色設定を番号でなく文字列で書き出す。(added by Stonee, 2001/01/12, 2001/01/15) 配列の順番は共有メモリ中のデータの順番と一致している。

覚え書き:
数値による内部的対応はglobal.hで行っているので参照のこと。(Mar. 7, 2001 jepro) CShareDataからglobalに移動

global.cpp の 100 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DispatchEvent_Regex(), CPropTypes::DrawColorListItem(), CShareData::IO_ColorSet(), CDlgSameColor::OnInitDialog(), CDlgSameColor::OnSelChangeListColors(), と CPropTypes::SetData_Regex().

CEditWnd* g_pcEditWnd = NULL

global.cpp の 21 行で定義されています。

参照元 CEditWnd::CEditWnd(), GetMessageBoxOwner(), と CEditWnd::~CEditWnd().

const int gm_nCodeComboNameArrNum = _countof( gm_nCodeComboValueArr )

global.cpp の 77 行で定義されています。

参照元 OFNHookProc(), CDlgGrep::OnInitDialog(), と CDlgGrep::SetData().

const ECodeType gm_nCodeComboValueArr[]

初期値:

 {
    CODE_AUTODETECT,
    CODE_SJIS,
    CODE_JIS,
    CODE_EUC,
    CODE_UNICODE,
    CODE_UNICODEBE,
    CODE_UTF8,
    CODE_UTF7
}

global.cpp の 56 行で定義されています。

参照元 OFNHookProc(), と CDlgGrep::OnInitDialog().

const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM]

初期値:

 {
    EOL_NONE            ,
    EOL_CRLF            ,
    EOL_LFCR            ,
    EOL_LF              ,
    EOL_CR
}
行終端子の配列

global.cpp の 85 行で定義されています。

参照元 CEOL::GetEOLType(), CEOL::GetEOLTypeUni(), と CEOL::GetEOLTypeUniBE().

const TCHAR* const gm_pszCodeComboNameArr[]

初期値:

 {
    _T("自動選択"),
    _T("SJIS"),
    _T("JIS"),
    _T("EUC"),
    _T("Unicode"),
    _T("UnicodeBE"),
    _T("UTF-8"),

}

global.cpp の 66 行で定義されています。

参照元 OFNHookProc(), と CDlgGrep::OnInitDialog().

const TCHAR* gm_pszCodeNameArr_Bracket[]

初期値:

 {
    _T("  [SJIS]"),
    _T("  [JIS]"),
    _T("  [EUC]"),
    _T("  [Unicode]"),
    _T("  [UTF-8]"),
    _T("  [UTF-7]"),
    _T("  [UniBE]")
}

global.cpp の 46 行で定義されています。

参照元 CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

const TCHAR* gm_pszCodeNameArr_Normal[]

初期値:

 {
    _T("SJIS"),
    _T("JIS"),
    _T("EUC"),
    _T("Unicode"),
    _T("UTF-8"),
    _T("UTF-7"),
    _T("UniBE")
}

global.cpp の 24 行で定義されています。

参照元 CEditView::DoGrep(), CCaret::DrawCaretPosInfo(), CEditDoc::FileRead(), CShareData::IsPathOpened(), と CDlgProperty::SetData().

const TCHAR* gm_pszCodeNameArr_Short[]

初期値:

 {
    _T("SJIS"),
    _T("JIS"),
    _T("EUC"),
    _T("Uni"),
    _T("UTF-8"),
    _T("UTF-7"),
    _T("UniBE")
}

global.cpp の 35 行で定義されています。

参照元 CCaret::DrawCaretPosInfo().

const COLORREF SELECTEDAREA_RGB = RGB( 255, 255, 255 )

選択領域描画用パラメータ

global.cpp の 81 行で定義されています。

参照元 CEditView::DispTextSelected(), と CViewSelect::DrawSelectArea().

const int SELECTEDAREA_ROP2 = R2_XORPEN

global.cpp の 82 行で定義されています。

参照元 CEditView::DispTextSelected(), と CViewSelect::DrawSelectArea().

Sakura-Editorに対してSat Nov 17 20:27:12 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: global.cpp ソースファイル

sakura_core

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 //2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく
00021 CEditWnd* g_pcEditWnd = NULL;
00022
00023 //2007.10.17 kobake 変数名変更: gm_pszCodeNameArr_1→gm_pszCodeNameArr_Normal
00024 const TCHAR* gm_pszCodeNameArr_Normal[] = {
00025     _T("SJIS"),         /* SJIS */
00026     _T("JIS"),          /* JIS */
00027     _T("EUC"),          /* EUC */
00028     _T("Unicode"),      /* Unicode */
00029     _T("UTF-8"),        /* UTF-8 */
00030     _T("UTF-7"),        /* UTF-7 */
00031     _T("UniBE")         /* Unicode BigEndian */
00032 };
00033
00034 //2007.10.17 kobake 変数名変更: gm_pszCodeNameArr_2→gm_pszCodeNameArr_Short
00035 const TCHAR* gm_pszCodeNameArr_Short[] = {
00036     _T("SJIS"),         /* SJIS */
00037     _T("JIS"),          /* JIS */
00038     _T("EUC"),          /* EUC */
00039     _T("Uni"),          /* Unicode */
00040     _T("UTF-8"),        /* UTF-8 */
00041     _T("UTF-7"),        /* UTF-7 */
00042     _T("UniBE")         /* Unicode BigEndian */
00043 };
00044
00045 //2007.10.17 kobake 変数名変更: gm_pszCodeNameArr_3→gm_pszCodeNameArr_Bracket
00046 const TCHAR* gm_pszCodeNameArr_Bracket[] = {
00047     _T("  [SJIS]"),     /* SJIS */
00048     _T("  [JIS]"),      /* JIS */
00049     _T("  [EUC]"),      /* EUC */
00050     _T("  [Unicode]"),  /* Unicode */
00051     _T("  [UTF-8]"),    /* UTF-8 */
00052     _T("  [UTF-7]"),    /* UTF-7 */
00053     _T("  [UniBE]")     /* Unicode BigEndian */
00054 };
00055
00056 const ECodeType gm_nCodeComboValueArr[] = {
00057     CODE_AUTODETECT,    /* 文字コード自動判別 */
00058     CODE_SJIS,
00059     CODE_JIS,
00060     CODE_EUC,
00061     CODE_UNICODE,
00062     CODE_UNICODEBE,
00063     CODE_UTF8,
00064     CODE_UTF7
00065 };
00066 const TCHAR* const  gm_pszCodeComboNameArr[] = {
00067     _T("自動選択"),
00068     _T("SJIS"),
00069     _T("JIS"),
00070     _T("EUC"),
00071     _T("Unicode"),
00072     _T("UnicodeBE"),
00073     _T("UTF-8"),
00074     _T("UTF-7")
00075 };
00076
00077 const int gm_nCodeComboNameArrNum = _countof( gm_nCodeComboValueArr );
00078
00079
00081 const COLORREF  SELECTEDAREA_RGB = RGB( 255, 255, 255 );
00082 const int       SELECTEDAREA_ROP2 = R2_XORPEN;
00083
00085 const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM] = {
00086     EOL_NONE            ,   // == 0
00087     EOL_CRLF            ,   // == 2
00088     EOL_LFCR            ,   // == 2
00089     EOL_LF              ,   // == 1
00090     EOL_CR                  // == 1
00091 };
00092
00100 const ColorAttributeData g_ColorAttributeArr[] =
00101 {
00102     {_T("TXT"), COLOR_ATTRIB_FORCE_DISP | COLOR_ATTRIB_NO_EFFECTS},
00103     {_T("RUL"), COLOR_ATTRIB_NO_EFFECTS},
00104     {_T("CAR"), COLOR_ATTRIB_FORCE_DISP | COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},  // キャレット      // 2006.12.07 ryoji
00105     {_T("IME"), COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},    // IMEキャレット   // 2006.12.07 ryoji
00106     {_T("UND"), COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},
00107     {_T("LNO"), 0},
00108     {_T("MOD"), 0},
00109     {_T("TAB"), 0},
00110     {_T("SPC"), 0}, //2002.04.28 Add By KK
00111     {_T("ZEN"), 0},
00112     {_T("CTL"), 0},
00113     {_T("EOL"), 0},
00114     {_T("RAP"), 0},
00115     {_T("VER"), 0},  // 2005.11.08 Moca 指定桁縦線
00116     {_T("EOF"), 0},
00117     {_T("NUM"), 0}, //@@@ 2001.02.17 by MIK 半角数値の強調
00118     {_T("FND"), 0},
00119     {_T("KW1"), 0},
00120     {_T("KW"), 0},
00121     {_T("KW3"), 0}, //@@@ 2003.01.13 by MIK 強調キーワード3-10
00122     {_T("KW4"), 0},
00123     {_T("KW5"), 0},
00124     {_T("KW6"), 0},
00125     {_T("KW7"), 0},
00126     {_T("KW8"), 0},
00127     {_T("KW9"), 0},
00128     {_T("KWA"), 0},
00129     {_T("CMT"), 0},
00130     {_T("SQT"), 0},
00131     {_T("WQT"), 0},
00132     {_T("URL"), 0},
00133     {_T("RK1"), 0}, //@@@ 2001.11.17 add MIK
00134     {_T("RK2"), 0}, //@@@ 2001.11.17 add MIK
00135     {_T("RK3"), 0}, //@@@ 2001.11.17 add MIK
00136     {_T("RK4"), 0}, //@@@ 2001.11.17 add MIK
00137     {_T("RK5"), 0}, //@@@ 2001.11.17 add MIK
00138     {_T("RK6"), 0}, //@@@ 2001.11.17 add MIK
00139     {_T("RK7"), 0}, //@@@ 2001.11.17 add MIK
00140     {_T("RK8"), 0}, //@@@ 2001.11.17 add MIK
00141     {_T("RK9"), 0}, //@@@ 2001.11.17 add MIK
00142     {_T("RKA"), 0}, //@@@ 2001.11.17 add MIK
00143     {_T("DFA"), 0}, //DIFF追加    //@@@ 2002.06.01 MIK
00144     {_T("DFC"), 0}, //DIFF変更    //@@@ 2002.06.01 MIK
00145     {_T("DFD"), 0}, //DIFF削除    //@@@ 2002.06.01 MIK
00146     {_T("BRC"), 0}, //対括弧 // 02/09/18 ai Add
00147     {_T("MRK"), 0}, //ブックマーク    // 02/10/16 ai Add
00148     {_T("LAST"), 0} // Not Used
00149 };
00150
00151
00152
00153 /*
00154  * カラー名からインデックス番号に変換する
00155  */
00156 SAKURA_CORE_API int GetColorIndexByName( const TCHAR *name )
00157 {
00158     int i;
00159     for( i = 0; i < COLORIDX_LAST; i++ )
00160     {
00161         if( _tcscmp( name, g_ColorAttributeArr[i].szName ) == 0 ) return i;
00162     }
00163     return -1;
00164 }
00165
00166 /*
00167  * インデックス番号からカラー名に変換する
00168  */
00169 SAKURA_CORE_API const TCHAR* GetColorNameByIndex( int index )
00170 {
00171     return g_ColorAttributeArr[index].szName;
00172 }
00173
00174
00175 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: global.h

sakura_core

global.h

共通定義 [詳細]

#include <windows.h>
#include <tchar.h>

global.hのインクルード依存関係図

ソースコードを見る。

構成

struct | ColorAttributeData_t
struct | SSearchOption

マクロ定義

#define | SAKURA_CORE_API __declspec(dllimport)
#define | _APP_NAME_(TYPE) TYPE("sakuraA")
#define | _APP_NAME_2_(TYPE) TYPE("(") TYPE(__DATE__) TYPE(")")
#define | _GSTR_APPNAME_(TYPE) _APP_NAME_(TYPE) _APP_NAME_2_(TYPE)
#define | GSTR_APPNAME (_GSTR_APPNAME_(_T) )
#define | GSTR_APPNAME_A (_GSTR_APPNAME_(ATEXT))
#define | GSTR_APPNAME_W (_GSTR_APPNAME_(LTEXT))
#define | _DEBUG_SUFFIX_ ""
#define | _CODE_SUFFIX_ "A"
#define | GSTR_EDITWINDOWNAME (_T("TextEditorWindow") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_MUTEX_SAKURA (_T("MutexSakuraEditor") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_MUTEX_SAKURA_CP (_T("MutexSakuraEditorCP") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_EVENT_SAKURA_CP_INITIALIZED (_T("EventSakuraEditorCPInitialized") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_MUTEX_SAKURA_INIT (_T("MutexSakuraEditorInit") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_MUTEX_SAKURA_EDITARR (_T("MutexSakuraEditorEditArr") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_CEDITAPP (_T("CControlTray") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | GSTR_CSHAREDATA (_T("CShareData") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
#define | FN_APP_ICON _T("my_appicon.ico")
#define | FN_GREP_ICON _T("my_grepicon.ico")
#define | FN_TOOL_BMP _T("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 enumCodeType | ECodeType
typedef enumColorIndexType | EColorIndexType
typedef struct ColorAttributeData_t | ColorAttributeData

列挙型

enum enumCodeType {
CODE_SJIS, CODE_JIS, CODE_EUC, CODE_UNICODE,
CODE_UTF8, CODE_UTF7, CODE_UNICODEBE, CODE_CODEMAX,
CODE_AUTODETECT = 99, CODE_ERROR = -1, CODE_NONE = -1, CODE_DEFAULT = CODE_SJIS
}
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, COLORIDX_DEFAULT = COLORIDX_TEXT
}
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 }
enum | ESearchDirection { SEARCH_BACKWARD = 0, SEARCH_FORWARD = 1 }
検索方向 [詳細]

関数

bool | IsValidCodeType (int code)
有効な文字コードセットならtrue
bool | IsValidCodeTypeExceptSJIS (int code)
有効な文字コードセットならtrue。ただし、SJISは除く(意図は不明)
bool | IsInECodeType (int code)
ECodeType型で表せる値ならtrue
EColorIndexType | MakeColorIndexType_RegularExpression (int nRegExpIndex)
SAKURA_CORE_API int | GetColorIndexByName (const TCHAR *name)
SAKURA_CORE_API const TCHAR * | GetColorNameByIndex (int index)

変数

SAKURA_CORE_API const TCHAR * | gm_pszCodeNameArr_Normal []
SAKURA_CORE_API const TCHAR * | gm_pszCodeNameArr_Short []
SAKURA_CORE_API const TCHAR * | gm_pszCodeNameArr_Bracket []
SAKURA_CORE_API const ECodeType | gm_nCodeComboValueArr []
SAKURA_CORE_API const TCHAR *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 | MAXLINEKETAS = 10240
1行の桁数の最大値
const int | MINLINEKETAS = 10
1行の桁数の最小値
const int | LINEREADBUFSIZE = 10240
ファイルから1行分データを読み込むときのバッファサイズ
CEditWnd * g_pcEditWnd

説明

共通定義

作者:
Norio Nakatani

global.h で定義されています。

マクロ定義

#define _APP_NAME_ ( TYPE ) TYPE("sakuraA")

global.h の 71 行で定義されています。

#define _APP_NAME_2_ ( TYPE ) TYPE("(") TYPE(__DATE__) TYPE(")")

global.h の 77 行で定義されています。

#define _CODE_SUFFIX_ "A"

global.h の 101 行で定義されています。

#define _DEBUG_SUFFIX_ ""

global.h の 94 行で定義されています。

#define _GSTR_APPNAME_ ( TYPE ) _APP_NAME_(TYPE) _APP_NAME_2_(TYPE)

global.h の 80 行で定義されています。

#define BOOL int

global.h の 448 行で定義されています。

参照元 BlockingHook(), CEditDoc::CheckFileTimeStamp(), CDlgSameColor::ColorList_SubclassProc(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_COMPARE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INSFILE(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_PRINT_PAGESETUP(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_TagsMake(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CMainStatusBar::DestroyStatusBar(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_p7(), CPropCommon::DispatchEvent_p8(), CConvert_SpaceToTab::DoConvert(), CEditDoc::DoFileLock(), CDlgInput1::DoModal(), CSplitterWnd::DoSplit(), ApiWrap::ExtTextOutW_AnyBuild(), CEditDoc::FileRead(), CEditDoc::FileWrite(), CCaret::GetAdjustCursorPos(), CDlgJump::GetData(), CDlgFavorite::GetData(), CDlgDiff::GetData(), CPropTypes::GetData_p3_new(), CPrint::GetPrintMetrics(), GetSpecialFolderPath(), CViewCommander::HandleCommand(), CEditWnd::InitMenu(), CPPA::IsRunning(), CJis::JIStoSJIS(), CEditWnd::LayoutFuncKey(), CLayoutMgr::LayoutToLogic(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_RuleFile(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_html(), CEditDoc::MakeTopicList_txt(), MyInitCommonControls(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgPrintSetting::OnBnClicked(), CDlgFavorite::OnBnClicked(), CDlgExec::OnBnClicked(), CDlgSameColor::OnDrawItem(), CDlgTagJumpList::OnInitDialog(), CDlgSameColor::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgGrep::OnInitDialog(), CTabWnd::OnMouseMove(), CDlgPrintSetting::OnNotify(), CPrintPreview::OnPreviewGoDirectPage(), CEditWnd::OnPrintPageSetting(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CDlgPrintSetting::OnSpin(), CEditDoc::OpenFileDialog(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CPrint::PrintOpen(), CEditWnd::PrintPreviewModeONOFF(), CDlgFavorite::RefreshListOne(), CDlgWinSize::RenewItemState(), ResolveShortcutLink(), CDropTarget::Revoke_DropTarget(), CEditDoc::SaveFileDialog(), SelectDir(), CPropTypes::SetData_p1(), CPropCommon::SetData_p1(), CDlgFavorite::SetDataOne(), CNativeA::SPACEToTAB(), CProcessFactory::StartControlProcess(), CTabWnd::TabWindowNotify(), CControlTray::TerminateApplication(), ApiWrap::TextOutW_AnyBuild(), CNativeA::ToZenkaku(), CControlTray::TrayMessage(), CShiftJis::UnicodeToSJIS(), CUtf7::UnicodeToUTF7(), CUrlWnd::UrlWndProc(), と CConvert_UuDecode::UUDECODE().

#define COLOR_ATTRIB_FORCE_DISP 0x00000001

global.h の 408 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), と CShareData::IO_ColorSet().

#define COLOR_ATTRIB_NO_BACK 0x00000020

global.h の 410 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DispatchEvent_Regex(), CPropTypes::DrawColorListItem(), CDlgSameColor::OnInitDialog(), CDlgSameColor::OnSelChangeListColors(), と CPropTypes::SetData_Regex().

#define COLOR_ATTRIB_NO_BOLD 0x00000100

global.h の 411 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), と CShareData::IO_ColorSet().

#define COLOR_ATTRIB_NO_EFFECTS 0x00000F00

global.h の 414 行で定義されています。

#define COLOR_ATTRIB_NO_UNDERLINE 0x00000200

global.h の 412 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), と CShareData::IO_ColorSet().

#define CUSTMENU_INDEX_FOR_RBUTTONUP 0

色タイプ

global.h の 403 行で定義されています。

参照元 CEditView::CreatePopUpMenu_R().

#define CUSTMENU_INDEX_FOR_TABWND 24

global.h の 401 行で定義されています。

参照元 CShareData::Init(), CShareData::InitPopupMenu(), と CTabWnd::OnTabRButtonUp().

#define EOL_TYPE_NUM 5

global.h の 270 行で定義されています。

参照元 CEOL::GetEOLType(), CEOL::GetEOLTypeUni(), と CEOL::GetEOLTypeUniBE().

#define FALSE 0

global.h の 440 行で定義されています。

参照元 ActivateFrameWindow(), CShareData::AddEditWndList(), CKeyWordSetMgr::AddKeyWordSet(), CSortedTagJumpList::AddParam(), COpeBlk::AppendOpe(), COpeBuf::AppendOpeBlk(), BlockingHook(), CSMacroMgr::CanFuncIsKeyMacro(), CEditView::CaretUnderLineOFF(), CEditView::CaretUnderLineON(), CDlgCancel::CDlgCancel(), CDlgDebug_Proc(), CDlgDiff::CDlgDiff(), CDlgFuncList::CDlgFuncList(), CDlgGrep::CDlgGrep(), CDlgInput1Proc(), CDlgJump::CDlgJump(), CDlgReplace::CDlgReplace(), CEditDoc::CEditDoc(), CFileLoad::CFileLoad(), CFuncKeyWnd::CFuncKeyWnd(), CEditView::ChangeCurRegexp(), CheckEXT(), CEditDoc::CheckFileTimeStamp(), CheckSystemResources(), CLayoutMgr::CLayoutMgr(), CClipboard::Close(), CControlTray::CloseAllEditor(), ColorList_SubclassProc(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPY(), CViewCommander::Command_COPYFILENAME(), CViewCommander::Command_COPYLINES(), CViewCommander::Command_COPYLINESASPASSAGE(), CViewCommander::Command_COPYPATH(), CViewCommander::Command_COPYTAG(), CViewCommander::Command_CREATEKEYBINDLIST(), CViewCommander::Command_CUT(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_Favorite(), CViewCommander::Command_FILECLOSE_OPEN(), CViewCommander::Command_FILECLOSEALL(), CViewCommander::Command_FILENEW(), CViewCommander::Command_FILEOPEN(), CViewCommander::Command_FONT(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GREP(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_HOKAN(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INSFILE(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_OPEN_HfromtoC(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_TagsMake(), CViewCommander::Command_ToggleKeySearch(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_UP(), CViewCommander::Command_UUDECODE(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WIN_OUTPUT(), CViewCommander::Command_WINCLOSE(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WordCut(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditWnd::Create(), CEditView::Create(), CPrint::CreateDC(), CEditWnd::CreateFileDropDownMenu(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CControlTray::CreatePopUpMenu_R(), CMainStatusBar::CreateStatusBar(), CMainToolBar::CreateToolBar(), CTipWnd::CTipWnd(), CUrlWnd::CUrlWnd(), CEditView::DeleteData(), CKeyWordSetMgr::DelKeyWordSet(), CMainStatusBar::DestroyStatusBar(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CDlgInput1::DispatchEvent(), CDlgDebug::DispatchEvent(), CDialog::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), CConvert_SpaceToTab::DoConvert(), CEditDoc::DoFileLock(), CEditView::DoGrep(), CControlTray::DoGrep(), CHokanMgr::DoHokan(), CDlgTypeList::DoModal(), CDlgCancel::DoModal(), CDialog::DoModal(), CDlgCancel::DoModeless(), CDialog::DoModeless(), CSplitterWnd::DoSplit(), CEditView::DragLeave(), CMenuDrawer::DrawItem(), CPropCommon::EnableFormatPropInput(), CPropCommon::EnableTabPropInput(), CPropTypes::EnableTypesPropInput(), CPropCommon::EnableWinPropInput(), CSMacroMgr::Exec(), CControlTray::ExitingDlgProc(), CShareData::ExpandMetaToFolder(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), ApiWrap::ExtTextOutW_AnyBuild(), CFileLoad::FileClose(), CFileLoad::FileOpen(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileSaveAs(), CEditDoc::FileSaveAs_Dialog(), CEditDoc::FileWrite(), CTabWnd::ForceActiveWindow(), CCaret::GetAdjustCursorPos(), CEditView::GetCurrentTextForSearch(), CDlgTagJumpList::GetData(), CDlgPrintSetting::GetData(), CDlgPrintPage::GetData(), CDlgJump::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CDlgCtrlCode::GetData(), CPropTypes::GetData_KeyHelp(), CPropTypes::GetData_p1(), CPropCommon::GetData_p1(), CPropTypes::GetData_p3_new(), CPropCommon::GetData_PROP_BACKUP(), CPropCommon::GetData_PROP_TAB(), CPropCommon::GetData_PROP_WIN(), CPropTypes::GetData_Regex(), CPrint::GetDefaultPrinter(), CMRU::GetFileInfo(), CEditDoc::GetFileInfo(), CLayoutMgr::getIndentOffset_LeftSpace(), GetLongFileName(), CTabWnd::GetNextGroupWnd(), CPrint::GetPaperSize(), CSortedTagJumpList::GetParam(), CTabWnd::GetPrevGroupWnd(), CPrint::GetPrintMetrics(), CEditView::GetSelectedData(), GetSpecialFolderPath(), GetSystemResources(), CClipboard::GetText(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CMacro::HandleFunction(), CTypeSupport::HasUnderLine(), CShareData::HTMLHelpIsSingle(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CShareData::Init(), CEditDoc::Init(), CEditDoc::InitAllView(), CPPA::InitDll(), CNormalProcess::Initialize(), CControlProcess::Initialize(), CShareData::InitKeyword(), CEditWnd::InitMenu(), CPrintPreview::InitPreviewScrollBar(), CShareData::InitTypeConfig(), CShareData::IO_ColorSet(), CTypeSupport::IsDisp(), CEditView::ISearchEnter(), CShareData::IsEditWnd(), CEditDoc::IsEnablePaste(), COpeBuf::IsEnableRedo(), COpeBuf::IsEnableUndo(), CMemory::IsEqual(), CProcessFactory::IsExistControlProcess(), CTypeSupport::IsFatFont(), IsFuncChecked(), IsFuncEnable(), CEditView::IsImeON(), IsMailAddress(), CEditDoc::IsModificationForbidden(), CShareData::IsPathOpened(), CSMacroMgr::IsSaveOk(), CUxTheme::IsThemeActive(), IsURL(), CJis::JIStoSJIS(), CHokanMgr::KeyProc(), CEditView::KeySearchCore(), CEditView::KeyWordHelpSearchDict(), CEditWnd::LayoutFuncKey(), CLayoutMgr::LayoutToLogic(), CSMacroMgr::Load(), CWSHMacroManager::LoadKeyMacro(), CPPAMacroMgr::LoadKeyMacro(), CKeyMacroMgr::LoadKeyMacro(), CMutex::Lock(), CEditDoc::MakeBackUp(), CEditView::MakeDiffTmpFile(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_RuleFile(), ApiWrap::MakeSureDirectoryPathExistsW(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_html(), CEditDoc::MakeTopicList_txt(), CDocLineMgr::MarkSearchWord(), MyDialogProc(), MyInitCommonControls(), MyIsDialogMessage(), 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(), CDialog::OnCommand(), CFuncKeyWnd::OnDestroy(), CEditWnd::OnDropFiles(), CDlgDiff::OnEditChange(), CDialog::OnEditChange(), 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(), CTabWnd::OnMouseMove(), CDialog::OnMove(), CControlTray::OnNewEditor(), CDlgPrintSetting::OnNotify(), CDlgJump::OnNotify(), CDlgFuncList::OnNotify(), CDlgCtrlCode::OnNotify(), CDialog::OnNotify(), CEditView::OnPaint(), CPrintPreview::OnPreviewGoDirectPage(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), CTabWnd::OnRButtonDown(), CEditView::OnSetFocus(), CTabWnd::OnSize(), CSplitterWnd::OnSize(), CEditWnd::OnSize(), CDialog::OnSize(), CDlgPrintSetting::OnSpin(), CTabWnd::OnTabNotify(), CFuncKeyWnd::OnTimer(), CDlgPrintSetting::OnTimer(), CTabWnd::Open(), CEditView::OPEN_ExtFromtoExt(), CControlTray::OpenNewEditor(), CEditDoc::OpenPropertySheet(), CEditDoc::OpenPropertySheetTypes(), CClipboard::operator bool(), CPropCommon::p7_Edit_List_KeyWord(), CShareData::PostMessageToAllEditors(), CEditView::PostprocessCommand_hokan(), CEditView::PreprocessCommand_hokan(), CLayoutMgr::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(), CTabWnd::Refresh(), CDlgFavorite::RefreshListOne(), CPropTypes::RegexKakomiCheck(), CRegexKeyword::RegexKeyInit(), CDropTarget::Register_DropTarget(), CDlgWinSize::RenewItemState(), CTabWnd::ReorderTab(), CEditView::ReplaceData_CEditView(), CShareData::RequestCloseAllEditor(), ResolveShortcutLink(), CSMacroMgr::Save(), CKeyMacroMgr::SaveKeyMacro(), CDicMgr::Search(), CDocLineMgr::SearchBookMark(), CDocLineMgr::SearchDiffMark(), CLayoutMgr::SearchWord(), CDocLineMgr::SearchWord(), CPropTypes::SelectColor(), CPropCommon::SelectColor(), SelectDir(), CEditDoc::SelectFont(), CShareData::SendMessageToAllEditors(), CTabWnd::SeparateGroup(), SetClipboardTextImp(), CDlgReplace::SetData(), CDlgPrintSetting::SetData(), CDlgPrintPage::SetData(), CDlgJump::SetData(), CDlgGrep::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(), CDlgFavorite::SetDataOne(), CEditWnd::SetDebugModeOFF(), CEditWnd::SetDebugModeON(), CKeyWordSetMgr::SetKeyWordCase(), CDlgFuncList::SetListVB(), CClipboard::SetText(), CPrint::SettingInitialize(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_2(), CTabWnd::ShowHideWindow(), CEditView::ShowHokanMgr(), CEditView::ShowKeywordHelp(), CFuncKeyWnd::SizeBox_ONOFF(), CEditView::SmartIndent_CPP(), CDlgFuncList::SortListView(), CNativeA::SPACEToTAB(), CEditView::SplitBoxOnOff(), CProcessFactory::StartControlProcess(), CJis::StrSJIStoJIS(), CUrlWnd::SubclassWindow(), CTabWnd::TabWindowNotify(), CEditView::TagJumpSub(), CControlTray::TerminateApplication(), CProcessFactory::TestWriteQuit(), CNativeA::ToZenkaku(), CShareData::TraceOut(), CShiftJis::UnicodeToSJIS(), CUtf7::UnicodeToUTF7(), CDlgTagJumpList::UpdateData(), CUrlWnd::UrlWndProc(), CConvert_UuDecode::UUDECODE(), CEditView::ViewDiffInfo(), と CProcessFactory::WaitForInitializedControlProcess().

#define FN_APP_ICON _T("my_appicon.ico")

global.h の 133 行で定義されています。

参照元 CEditWnd::_CreateMainWindow(), CControlTray::CreateTrayIcon(), CEditWnd::GetDefaultIcon(), CTabWnd::InitImageList(), と CDlgAbout::OnInitDialog().

#define FN_GREP_ICON _T("my_grepicon.ico")

global.h の 134 行で定義されています。

参照元 CEditView::DoGrep(), CTabWnd::InitImageList(), と CDlgGrep::OnInitDialog().

#define FN_TOOL_BMP _T("my_icons.bmp")

global.h の 135 行で定義されています。

参照元 CImageListMgr::Create().

#define GSTR_APPNAME (_GSTR_APPNAME_(_T) )

global.h の 82 行で定義されています。

参照元 CControlTray::CControlTray(), CControlTray::CloseAllEditor(), CViewCommander::Command_COMPARE(), CViewCommander::Command_Diff(), CViewCommander::Command_GREP(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_TagsMake(), CSplitterWnd::Create(), CEditWnd::Create(), CControlTray::Create(), CMainToolBar::CreateToolBar(), CControlTray::CreateTrayIcon(), debug_exit(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropTypes::DispatchEvent_Regex(), CEditDoc::DoFileLock(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CEditDoc::FileRead(), CEditDoc::FileSave(), CNormalProcess::GetInitializeMutex(), CPropTypes::Import_KeyHelp(), CProcess::Initialize(), CControlProcess::Initialize(), CProcessFactory::IsValidVersion(), CEditWnd::OnDropFiles(), CEditDoc::OpenFile(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), CEditWnd::PrintPreviewModeONOFF(), PropSheetWndProc(), CDocLineMgr::ReadFile(), CPropCommon::SetListViewItem_FILENAME(), CProcessFactory::StartControlProcess(), CControlTray::TerminateApplication(), CEditWnd::Timer_ONOFF(), CEditView::ViewDiffInfo(), と CProcessFactory::WaitForInitializedControlProcess().

#define GSTR_APPNAME_A (_GSTR_APPNAME_(ATEXT))

global.h の 83 行で定義されています。

参照元 CMemory::AllocBuffer(), COpeBlk::AppendOpe(), CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILE_REOPEN(), CViewCommander::Command_HOKAN(), CViewCommander::Command_MERGE(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_TagsMake(), CEditWnd::Create(), CEditView::Create(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p7(), CEditDoc::FileSaveAs_Dialog(), CDocLineMgr::GetAllData(), CDlgGrep::GetData(), CControlProcess::Initialize(), CShareData::IsPathOpened(), CProcessFactory::IsValidVersion(), CEditView::MakeDiffTmpFile(), CMenuDrawer::MyAppendMenu(), CDlgReplace::OnBnClicked(), CDlgJump::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgFavorite::OnBnClicked(), CPrintPreview::OnChangePrintSetting(), CEditView::OnLBUTTONDOWN(), CPrintPreview::OnPrint(), CEditView::OPEN_ExtFromtoExt(), CPropTypes::p3_Import_Colors(), CPropCommon::p5_Export_KeySetting(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p7_Import_List_KeyWord(), CDropTarget::Register_DropTarget(), CFuncKeyWnd::Timer_ONOFF(), CEditView::ViewDiffInfo(), と CDocLineMgr::WriteFile().

#define GSTR_APPNAME_W (_GSTR_APPNAME_(LTEXT))

global.h の 84 行で定義されています。

#define GSTR_CEDITAPP (_T("CControlTray") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 123 行で定義されています。

参照元 CControlTray::CControlTray().

#define GSTR_CSHAREDATA (_T("CShareData") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 128 行で定義されています。

参照元 CShareData::Init().

#define GSTR_EDITWINDOWNAME (_T("TextEditorWindow") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 107 行で定義されています。

参照元 CShareData::IsEditWnd().

#define GSTR_EVENT_SAKURA_CP_INITIALIZED (_T("EventSakuraEditorCPInitialized") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 116 行で定義されています。

参照元 CControlProcess::Initialize(), と CProcessFactory::WaitForInitializedControlProcess().

#define GSTR_MUTEX_SAKURA (_T("MutexSakuraEditor") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 114 行で定義されています。

参照元 CControlProcess::Initialize().

#define GSTR_MUTEX_SAKURA_CP (_T("MutexSakuraEditorCP") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 115 行で定義されています。

参照元 CControlProcess::Initialize(), と CProcessFactory::IsExistControlProcess().

#define GSTR_MUTEX_SAKURA_EDITARR (_T("MutexSakuraEditorEditArr") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 118 行で定義されています。

#define GSTR_MUTEX_SAKURA_INIT (_T("MutexSakuraEditorInit") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))

global.h の 117 行で定義されています。

参照元 CNormalProcess::GetInitializeMutex().

#define ICON_DEFAULT_APP IDI_ICON_STD

global.h の 142 行で定義されています。

参照元 CEditWnd::_CreateMainWindow(), CControlTray::CreateTrayIcon(), CEditWnd::GetDefaultIcon(), CTabWnd::InitImageList(), と CDlgAbout::OnInitDialog().

#define ICON_DEFAULT_GREP IDI_ICON_GREP

global.h の 143 行で定義されています。

参照元 CEditView::DoGrep(), CTabWnd::InitImageList(), と CDlgGrep::OnInitDialog().

#define IDM_SELMRU 11000

global.h の 153 行で定義されています。

参照元 CMRU::CreateMenu(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CKeyBind::GetMenuLabel(), と CEditWnd::OnCommand().

#define IDM_SELOPENFOLDER 12000

global.h の 154 行で定義されています。

参照元 CMRUFolder::CreateMenu(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CKeyBind::GetMenuLabel(), と CEditWnd::OnCommand().

#define IDM_SELWINDOW 10000

global.h の 152 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CControlTray::DispatchEvent(), FuncID_To_HelpContextID(), CKeyBind::GetMenuLabel(), CEditWnd::OnCommand(), CTabWnd::TabListMenu(), と CEditWnd::WinListMenu().

#define IDW_STATUSBAR 123

global.h の 149 行で定義されています。

参照元 CMainStatusBar::CreateStatusBar(), と CEditWnd::DispatchEvent().

#define NULL 0

global.h の 444 行で定義されています。

参照元 CMemory::_AddData(), _CompareFunc_(), CEditWnd::_CreateMainWindow(), CTextDrawer::_DrawEOL(), CTextDrawer::_DrawTabArrow(), CMemory::_Empty(), CLayoutMgr::_ExistKinsokuHead(), CLayoutMgr::_ExistKinsokuKuto(), CEditWnd::_GetTabGroupInfo(), CDocLineMgr::_PushBottom(), ActivateFrameWindow(), CMRUFolder::Add(), CMRU::Add(), CShareData::AddEditWndList(), CMacro::AddIntParam(), CLayoutMgr::AddLineBottom(), CSortedTagJumpList::AddParam(), CMacro::AddStringParam(), CEditView::AdjustScrollBars(), CTabWnd::AdjustWindowPlacement(), CMemory::AllocBuffer(), CSMacroMgr::Append(), CFileExt::AppendExtRaw(), COpeBlk::AppendOpe(), COpeBuf::AppendOpeBlk(), AssertError(), BlockingHook(), CFileLoad::Buffering(), CFuncKeyWnd::CalcButtonSize(), CalcHankakuByFont(), CConvert::CallConvert(), CEditView::CaretUnderLineON(), CFuncLookup::Category2Name(), CCaret::CCaret(), CControlTray::CControlTray(), CDialog::CDialog(), CDlgDebug::CDlgDebug(), CDlgDebug_Proc(), CDlgDiff::CDlgDiff(), CDlgFavorite::CDlgFavorite(), CDlgFuncList::CDlgFuncList(), CDlgInput1Proc(), CDlgOpenFile::CDlgOpenFile(), CDropTarget::CDropTarget(), CEditApp::CEditApp(), CEditAppWndProc(), CEditDoc::CEditDoc(), CFileExt::CFileExt(), CFileLoad::CFileLoad(), CFileWrite::CFileWrite(), CFuncInfoArr::CFuncInfoArr(), CFuncKeyWnd::CFuncKeyWnd(), CEditWnd::ChangeFileNameNotify(), CEditWnd::ChangeLayoutParam(), CCommandLine::CheckCommandLine(), CheckEXT(), CEditDoc::CheckFileTimeStamp(), CBregexp::CheckPattern(), CheckRegexpVersion(), CheckSystemResources(), CHokanMgr::CHokanMgr(), CKeyMacroMgr::CKeyMacroMgr(), CLayout::CLayout(), CLayoutMgr::CLayoutMgr(), CSMacroMgr::Clear(), CSMacroMgr::ClearAll(), COpeBuf::ClearAll(), CKeyMacroMgr::ClearAll(), CViewCommander::ClearOpeBlk(), CTabWnd::Close(), CStream::Close(), CDialog::CloseDialog(), CMacro::CMacro(), CMenuDrawer::CMenuDrawer(), ColorList_SubclassProc(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_BOOKMARK_SET(), CViewCommander::Command_BROWSE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPY(), CViewCommander::Command_COPYLINES(), CViewCommander::Command_COPYLINESWITHLINENUMBER(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_CUT(), CViewCommander::Command_CUT_LINE(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_EXECKEYMACRO(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILENEW(), CViewCommander::Command_FILESAVEALL(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_GOLINETOP(), CViewCommander::Command_HOKAN(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INSFILE(), CViewCommander::Command_INSTEXT(), CViewCommander::Command_JUMPHIST_NEXT(), CViewCommander::Command_JUMPHIST_PREV(), CViewCommander::Command_LineCutToEnd(), CViewCommander::Command_LineCutToStart(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_MENU_ALLFUNC(), CViewCommander::Command_MENU_RBUTTON(), CViewCommander::Command_MERGE(), CViewCommander::Command_NEXTGROUP(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_PREVGROUP(), CViewCommander::Command_PROPERTY_FILE(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_Reconvert(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SET_QUOTESTRING(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_SORT(), CViewCommander::Command_TAB_JOINTNEXT(), CViewCommander::Command_TAB_JOINTPREV(), CViewCommander::Command_TAB_MOVELEFT(), CViewCommander::Command_TAB_MOVERIGHT(), CViewCommander::Command_TAB_SEPARATE(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_TagsMake(), CViewCommander::Command_TRACEOUT(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_UUDECODE(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WIN_OUTPUT(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CBregexp::Compile(), RcCvt::convert(), CFileExt::ConvertTypesExtToDlgExt(), CEditView::ConvSelectedArea(), COpeBuf::COpeBuf(), CEditView::CopyCurLine(), CEditView::CopyViewStatus(), CPrint::CPrint(), CPropCommon::CPropCommon(), CPropTypes::CPropTypes(), CWnd::Create(), CTipWnd::Create(), CSplitterWnd::Create(), CSplitBoxWnd::Create(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Create(), CMacroFactory::Create(), CImageListMgr::Create(), CEditWnd::Create(), CEditView::Create(), CDlgOpenFile::Create(), CControlTray::Create(), CKeyBind::CreateAccerelator(), CFuncKeyWnd::CreateButtons(), CCodeFactory::CreateCodeBase(), CPrint::CreateDC(), CCaret::CreateEditCaret(), CEditWnd::CreateFileDropDownMenu(), CreateMbString(), CControlTray::CreatePopUpMenu_L(), CEditView::CreatePopUpMenu_R(), CControlTray::CreatePopUpMenu_R(), CPrintPreview::CreatePrintPreviewControls(), CEditView::CreateScrollBar(), CDialog::CreateSizeBox(), CMainStatusBar::CreateStatusBar(), CMainToolBar::CreateToolBar(), CControlTray::CreateTrayIcon(), CWSHMacroManager::Creator(), CPPAMacroMgr::Creator(), CKeyMacroMgr::Creator(), CRecentCmd::CRecentCmd(), CRecentEditNode::CRecentEditNode(), CRecentGrepFile::CRecentGrepFile(), CRecentGrepFolder::CRecentGrepFolder(), CRecentReplace::CRecentReplace(), CRecentSearch::CRecentSearch(), CRecentTagjumpKeyword::CRecentTagjumpKeyword(), CRecycledBufferDynamic::CRecycledBufferDynamic(), CRegexKeyword::CRegexKeyword(), CShareData::CShareData(), CSMacroMgr::CSMacroMgr(), CSplitBoxWnd::CSplitBoxWnd(), CSplitterWnd::CSplitterWnd(), CStream::CStream(), CTabWnd::CTabWnd(), CTypeSupport::CTypeSupport(), CUrlWnd::CUrlWnd(), CCaret::Cursor_UPDOWN(), CWaitCursor::CWaitCursor(), CWnd::CWnd(), DBMSG_IMP(), debug_exit(), DebugMonitor_Output(), DebugOutA(), CEditView::DeleteData(), CEditView::DeleteData2(), CDocLineMgr::DeleteData_CDocLineMgr(), CLayoutMgr::DeleteData_CLayoutMgr(), CLayoutMgr::DeleteLayoutAsLogical(), CDocLineMgr::DeleteNode(), CPrintPreview::DestroyPrintPreviewControls(), CEditView::DestroyScrollBar(), CMainStatusBar::DestroyStatusBar(), CMainToolBar::DestroyToolBar(), CWnd::DestroyWindow(), Charcode::DetectUnicodeBom(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p3_new(), CPropCommon::DispatchEvent_p7(), CPropCommon::DispatchEvent_p8(), CPrintPreview::DispatchEvent_PPB(), CPropCommon::DispatchEvent_PROP_BACKUP(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), CTextDrawer::DispEOL(), CEditView::DispLineNew(), CTextDrawer::DispLineNumber(), CTextDrawer::DispVerticalLines(), CConvert_Trim::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CEditDoc::DoFileLock(), CEditDoc::DoFileUnLock(), CEditView::DoGrep(), CControlTray::DoGrep(), CLayoutMgr::DoLayout(), CLayoutMgr::DoLayout_Range(), CDlgWinSize::DoModal(), CDlgTypeList::DoModal(), CDlgSameColor::DoModal(), CDlgPrintSetting::DoModal(), CDlgKeywordSelect::DoModal(), CDlgGrep::DoModal(), CDlgCancel::DoModal(), CDlgAbout::DoModal(), CDlgCancel::DoModeless(), CDialog::DoModeless(), CPropTypes::DoPropertySheet(), COpeBuf::DoRedo(), CSplitterWnd::DoSplit(), COpeBuf::DoUndo(), CEditView::DragEnter(), CEditView::DragLeave(), CImageListMgr::Draw(), CTabWnd::DrawCloseBtn(), CPropTypes::DrawColorButton(), CPropTypes::DrawColorListItem(), CMenuDrawer::DrawItem(), CPrintPreview::DrawPageText(), CRuler::DrawRulerBg(), CViewSelect::DrawSelectArea(), CLayoutMgr::DUMP(), CDocLineMgr::DUMP(), EditViewTimerProc(), EditViewWndProc(), CSortedTagJumpList::Empty(), COpeBlk::Empty(), CLayoutMgr::Empty(), CFuncInfoArr::Empty(), CDocLineMgr::Empty(), CEditWnd::EndLayoutBars(), CStream::Eof(), CWSHClient::Error(), CSMacroMgr::Exec(), CMacro::Exec(), CTabWnd::ExecTabCommand(), CBregexpDll2::ExistBMatchEx(), CBregexpDll2::ExistBSubstEx(), CShareData::ExpandMetaToFolder(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CMacroFactory::Ext2Key(), ApiWrap::ExtTextOutW_AnyBuild(), CFileLoad::FileClose(), CEditDoc::FileCloseOpen(), CFileLoad::FileOpen(), CFileLoad::FilePointer(), CEditDoc::FileRead(), CEditDoc::FileWrite(), CSplitBoxWnd::FillSolidRect(), FillSolidRect(), CDlgTagJumpList::find_key(), CPrint::FindPaperInfo(), CTabWnd::FindTabIndexByHWND(), RcCvt::font(), CTabWnd::ForceActiveWindow(), CEditDoc::FormatBackUpPath(), CDllHandler::FreeLibrary(), CFuncLookup::Funccode2Name(), CTextMetrics::GenerateDxArray(), SysString::Get(), CDocLineMgr::GetAllData(), GetAppIcon(), GetAppVersionInfo(), CFuncInfoArr::GetAt(), CDocLineMgr::GetBookMarks(), CEditView::GetCurrentTextForSearch(), CViewParser::GetCurrentWord(), CDataObject::GetData(), CDlgWinSize::GetData(), CDlgPrintSetting::GetData(), CDlgPrintPage::GetData(), CDlgFuncList::GetData(), CDlgDiff::GetData(), CPropTypes::GetData_p1(), CPropCommon::GetData_PROP_BACKUP(), CPropCommon::GetData_PROP_WIN(), CDataObject::GetDataHere(), CPrint::GetDefaultPrinter(), CKeyBind::GetDefFuncCode(), CDllHandler::GetDllName(), CDllHandler::GetDllNameInOrder(), CBregexpDll2::GetDllNameInOrder(), CInterfaceObjectTypeInfo::GetDocumentation(), CShareData::GetDocumentType(), CShareData::GetDocumentTypeExt(), CShareData::GetEditNode(), CShareData::GetEditNodeAt(), CLayoutMgr::GetEndLayoutPos(), GetExedir(), GetExistPath(), GetExistPathW(), 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(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItem(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::GetItemPointer(), CKeyBind::GetKeyStrList(), CKeyWordSetMgr::GetKeyWord(), CMenuDrawer::GetLabel(), CViewParser::GetLeftWord(), CDocLineMgr::GetLineInfo(), CLayoutMgr::GetLineStr(), CDocLineMgr::GetLineStr(), CDocLineMgr::GetLineStrWithoutEOL(), CShareData::GetMacroFilename(), GetMessageBoxOwner(), GetMonitorWorkRect(), CSMacroMgr::GetName(), CFileExt::GetName(), CDlgTagJumpList::GetNameByType(), CTabWnd::GetNextGroupWnd(), GetNextLimitedLengthText(), GetNextLine(), GetNextLineW(), GetNextLineWB(), CDocLineMgr::GetNextLinrStr(), COpeBlk::GetOpe(), CShareData::GetOpenedWindowArrCore(), CPrint::GetPaperName(), CPrint::GetPaperSize(), CSortedTagJumpList::GetParam(), CMRUFolder::GetPathList(), CMRU::GetPathList(), CTabWnd::GetPrevGroupWnd(), CPrint::GetPrintMetrics(), CPrintPreview::GetPrintPreviewBarHANDLE_Safe(), CSortedTagJumpList::GetPtr(), CEditWnd::GetRelatedIcon(), CEditView::GetSelectedData(), GetSpecialFolderPath(), CBregexp::GetStringLen(), GetSystemResources(), CTabWnd::GetTabName(), CClipboard::GetText(), CSMacroMgr::GetTitle(), CShareData::GetTopEditWnd(), CInterfaceObject::GetTypeInfo(), CKeyWordSetMgr::GetTypeName(), GetWindowsMessageName(), CStream::Good(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CMacro::HandleFunction(), HokanList_SubclassProc(), CDicMgr::HokanSearch(), CEditView::HokanSearchByFile(), CSMacroMgr::Idx2Ptr(), CTabWnd::ImageList_Duplicate(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), 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(), CBregexpDll2::InitDll(), CProcess::Initialize(), CNormalProcess::Initialize(), COleLibrary::Initialize(), CControlProcess::Initialize(), CTabWnd::InitImageList(), CEditWnd::InitMenu(), CPrintPreview::InitPreviewScrollBar(), CDocLineMgr::InsertData_CDocLineMgr(), CEditView::InsertData_CEditView(), CLayoutMgr::InsertData_CLayoutMgr(), CLayoutMgr::InsertLineNext(), CDocLineMgr::InsertNode(), is_field_type(), CDllHandler::IsAvailable(), CEditView::IsBracket(), CEditView::IsCurrentPositionURL(), IsDataAvailable(), CEditView::ISearchEnter(), CShareData::IsEditWnd(), CLayoutMgr::IsEndOfLine(), CProcessFactory::IsExistControlProcess(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::IsFavorite(), IsFileWritable(), IsFuncChecked(), CEditWnd::IsInPreviewMode(), CLayoutMgr::IsKinsokuHead(), CLayoutMgr::IsKinsokuKuto(), CLayoutMgr::IsKinsokuTail(), IsMailAddress(), CEditDoc::IsModificationForbidden(), CShareData::IsPathOpened(), CSMacroMgr::IsSaveOk(), CEditView::IsSearchString(), STabGroupInfo::IsValid(), ACODE::isValidFilenameChar(), WCODE::isValidFilenameChar(), CProcessFactory::IsValidVersion(), WCODE::isZenkakuKigou(), CEditView::KeyWordHelpSearchDict(), CEditWnd::LayoutFuncKey(), CTabWnd::LayoutTab(), CEditWnd::LayoutTabBar(), CLayoutMgr::LayoutToLogic(), CSMacroMgr::Load(), CKeyMacroMgr::LoadKeyMacro(), CDllHandler::LoadLibrary(), MacroCommand(), MacroError(), main(), CEditDoc::MakeBackUp(), CEditView::MakeDiffTmpFile(), CEditDoc::MakeFuncList_BookMark(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_RuleFile(), CEditDoc::MakeFuncList_VisualBasic(), CBregexp::MakePattern(), CBregexp::MakePatternSub(), CEditDoc::MakeTopicList_asm(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_txt(), CDocLineMgr::MarkSearchWord(), CBregexp::Match(), mbstowcs_new(), mbstowcs_vector(), CMenuDrawer::MeasureItem(), CEditWnd::MessageLoop(), CControlTray::MessageLoop(), CMigemo::migemo_close(), CMigemo::migemo_get_operator(), CMigemo::migemo_is_enable(), CMigemo::migemo_load_a(), CMigemo::migemo_open(), CMigemo::migemo_query(), CMigemo::migemo_release(), CMigemo::migemo_set_operator(), CMigemo::migemo_setproc_char2int(), CMigemo::migemo_setproc_int2char(), CCaret::MoveCursor(), my_splitpath(), my_strtok(), CMenuDrawer::MyAppendMenu(), MyDialogProc(), MyGetAncestor(), CShareData::MyGetDateFormat(), CShareData::MyGetTimeFormat(), MyInitCommonControls(), MyIsDialogMessage(), MyWinHelp(), NetConnect(), OFNHookProc(), CDlgSameColor::OnBnClicked(), CDlgAbout::OnBnClicked(), CPrintPreview::OnChangePrintSetting(), CEditView::OnChangeSetting(), CEditDoc::OnChangeSetting(), CEditWnd::OnClose(), CEditWnd::OnCommand(), CTabWnd::OnDestroy(), CFuncKeyWnd::OnDestroy(), CDialog::OnDestroy(), CControlTray::OnDestroy(), CTabWnd::OnDrawItem(), CEditWnd::OnDropFiles(), CEditWnd::OnEditTimer(), OnFolderProc(), CPrintPreview::OnHScroll(), CDlgPrintSetting::OnInitDialog(), CDlgFuncList::OnInitDialog(), CDlgCancel::OnInitDialog(), CDlgAbout::OnInitDialog(), CDialog::OnInitDialog(), CTabWnd::OnLButtonDblClk(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnLBUTTONDOWN(), CTabWnd::OnLButtonUp(), CSplitterWnd::OnLButtonUp(), CEditWnd::OnLButtonUp(), CEditView::OnMBUTTONDOWN(), CMenuDrawer::OnMenuChar(), CTabWnd::OnMouseMove(), CSplitterWnd::OnMouseMove(), CPrintPreview::OnMouseMove(), CEditWnd::OnMouseMove(), CEditView::OnMOUSEMOVE(), CPrintPreview::OnMouseWheel(), CEditWnd::OnMouseWheel(), CWnd::OnNcDestroy(), CControlTray::OnNewEditor(), CDlgJump::OnNotify(), CTabWnd::OnPaint(), CPrintPreview::OnPaint(), CEditView::OnPaint(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), CEditWnd::OnPrintPageSetting(), CEditView::OnRBUTTONUP(), CTabWnd::OnSize(), CSplitterWnd::OnSize(), CPrintPreview::OnSize(), CHokanMgr::OnSize(), CFuncKeyWnd::OnSize(), CEditWnd::OnSize(), CEditView::OnSize(), CDlgFuncList::OnSize(), CDialog::OnSize(), CDlgPrintSetting::OnSpin(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), CTabWnd::OnTabNotify(), CFuncKeyWnd::OnTimer(), CEditView::OnTimer(), CPrintPreview::OnVScroll(), CEditView::OnXLBUTTONDOWN(), CEditView::OnXRBUTTONDOWN(), CTabWnd::Open(), CFuncKeyWnd::Open(), CEditDoc::OpenFile(), OpenFile_InShareMode(), CEditDoc::OpenFileDialog(), OpenHtmlHelp(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), 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(), CCommandLine::ParseCommandLine(), CEditWnd::PopupWinList(), CFuncLookup::Pos2FuncName(), CShareData::PostMessageToAllEditors(), CLayoutMgr::PrevOrNextWord(), CDocLineMgr::PrevOrNextWord(), CPrintPreview::Print_DrawLine(), CPrint::PrintDlg(), CEditWnd::PrintMenubarMessage(), CPrint::PrintOpen(), CPrintPreview::PrintPreviewBar_DlgProc(), CEditWnd::PrintPreviewModeONOFF(), CViewSelect::PrintSelectionInfoMsg(), PropSheetProc(), PropSheetWndProc(), CPropTypes::PropTypesKeyHelp(), PropTypesP1Proc(), PropTypesP2Proc(), PropTypesP3_newProc(), CPropTypes::PropTypesRegex(), CDataObject::QueryGetData(), CInterfaceObject::QueryInterface(), CWSHSite::QueryInterface(), CYbInterfaceBase::QueryInterfaceImpl(), CFileLoad::Read(), CFileLoad::ReadBufEmpty(), CDocLineMgr::ReadFile(), CFileLoad::ReadLine(), ReadRegistry(), CEditDoc::ReadRuleFile(), CPropTypes::RearrangeKeywordSet(), Variant::Receive(), CTabWnd::Refresh(), CDlgFavorite::RefreshList(), CPropTypes::RegexKakomiCheck(), CRegexKeyword::RegexKeyInit(), CMacroFactory::RegisterCreator(), CDllHandler::RegisterEntries(), CBregexp::ReleaseCompileBuffer(), CShareData::ReorderTab(), CBregexp::Replace(), CDocLineMgr::ReplaceData(), CEditView::ReplaceData_CEditView(), CLayoutMgr::ReplaceData_CLayoutMgr(), CDocLineMgr::ResetAllBookMark(), CDocLineMgr::ResetAllDiffMark(), CDocLineMgr::ResetAllModifyFlag(), CMenuDrawer::ResetContents(), ResolveShortcutLink(), CDropTarget::Revoke_DropTarget(), CTypeSupport::RewindFont(), CTypeSupport::RewindPen(), CEditView::RTrimPrevLine(), CSMacroMgr::Save(), CEditDoc::SaveFileDialog(), CESI::ScanEncoding(), CEditView::ScrollAtH(), CEditView::ScrollAtV(), CDicMgr::Search(), CDlgTagJumpList::SearchBestTag(), CDocLineMgr::SearchBookMark(), CEditView::SearchBracket(), CEditView::SearchBracketBackward(), CEditView::SearchBracketBackward2(), CEditView::SearchBracketForward(), CEditView::SearchBracketForward2(), CDocLineMgr::SearchDiffMark(), CLayoutMgr::SearchLineByLayoutY(), CDocLineMgr::SearchString(), CLayoutMgr::SearchWord(), CDocLineMgr::SearchWord(), CPropTypes::SelectColor(), CPropCommon::SelectColor(), SelectDir(), CEditDoc::SelectFont(), CShareData::SendMessageToAllEditors(), CEditWnd::SendStatusMessage(), CMainStatusBar::SendStatusMessage2(), CMainStatusBar::SendStatusMessage2IsEffective(), CTabWnd::Separate(), CTabWnd::SeparateGroup(), CShareData::SeparateGroup(), CEditWnd::SetActivePane(), CDocLineMgr::SetBookMarks(), SetClipboardTextImp(), CEditView::SetCurrentColor(), CDlgTagJumpList::SetData(), CDlgProperty::SetData(), CDlgPrintSetting::SetData(), CDlgFavorite::SetData(), CDlgCtrlCode::SetData(), CEditWnd::SetDebugModeOFF(), CEditWnd::SetDebugModeON(), CDocLineMgr::SetDiffMarkRange(), RcCvt::setErr(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::SetFavorite(), CDlgTagJumpList::SetFileName(), CPrintPreview::SetFocusToPrintPreviewBar(), CTypeSupport::SetFont(), CEditView::SetFont(), CDlgTagJumpList::SetKeyword(), CEditDoc::SetParentCaption(), CEditView::SetReconvertStruct(), CTypeSupport::SetSolidPen(), CDataObject::SetText(), CClipboard::SetText(), CDlgFuncList::SetTree(), CDlgFuncList::SetTreeJava(), CKeyWordSetMgr::SetTypeName(), CEditWnd::SetWindowIcon(), CShareData::ShareData_IO_Types(), CLayoutMgr::ShiftLogicalLineNum(), CTipWnd::Show(), CCaret::ShowEditCaret(), CTabWnd::ShowHideWindow(), CEditView::ShowHokanMgr(), CEditView::ShowKeywordHelp(), CFuncKeyWnd::SizeBox_ONOFF(), sjis_strrchr2(), CShiftJis::SJISToUnicode(), CEditView::SmartIndent_CPP(), CDlgFuncList::SortTree(), CNativeA::SPACEToTAB(), CEditView::SplitBoxOnOff(), SplitPath_FolderAndFile(), CProcessFactory::StartControlProcess(), CDlgTagJumpList::StartTimer(), CPPA::stdFinishProc(), CPPA::stdProc(), strchr2(), strchr_j(), strcnv(), strichr_j(), stristr(), stristr_j(), strrchr2(), strstr_j(), CUrlWnd::SubclassWindow(), SysString::SysString(), CTabWnd::TabListMenu(), CNativeA::TABToSPACE(), CTabWnd::TabWindowNotify(), CTabWnd::TabWnd_ActivateFrameWindow(), CTabWnd::TabWndDispatchEvent(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::Terminate(), CControlProcess::Terminate(), CFuncKeyWnd::Timer_ONOFF(), CEditWnd::Timer_ONOFF(), to_achar(), to_wchar(), CNativeA::ToZenkaku(), CShareData::TraceOut(), TSingleInstance< CEditApp >::TSingleInstance(), CShiftJis::UnicodeToSJIS(), CUtf7::UnicodeToUTF7(), CUtf8::UnicodeToUTF8(), CSMacroMgr::UnloadAll(), CWindowCreationHook::Unuse(), CTextMetrics::Update(), CDlgTagJumpList::UpdateData(), CKeyWordSetMgr::UpdateKeyWord(), CUrlWnd::UrlWndProc(), usage(), CWindowCreationHook::Use(), CUtf7::UTF7ToUnicode(), CUtf8::UTF8ToUnicode(), CConvert_UuDecode::UUDECODE(), CEditView::ViewDiffInfo(), CProcessFactory::WaitForInitializedControlProcess(), wcschr_idx(), wcsistr(), wcsrchr2(), wcstombs_new(), wcstombs_vector(), CLayoutMgr::WhereCurrentWord(), CDocLineMgr::WhereCurrentWord(), CWordParse::WhereCurrentWord_2(), CDocLineMgr::WriteFile(), CProfile::WriteProfile(), CTextOutputStream::WriteString(), CCaret::~CCaret(), CDataObject::~CDataObject(), CDlgTagJumpList::~CDlgTagJumpList(), CEditDoc::~CEditDoc(), CEditView::~CEditView(), CEditWnd::~CEditWnd(), CFileExt::~CFileExt(), CFileLoad::~CFileLoad(), CHokanMgr::~CHokanMgr(), CImageListMgr::~CImageListMgr(), CInterfaceObject::~CInterfaceObject(), CMenuDrawer::~CMenuDrawer(), CMutex::~CMutex(), COpeBuf::~COpeBuf(), CPrint::~CPrint(), CPrintPreview::~CPrintPreview(), CRegexKeyword::~CRegexKeyword(), CShareData::~CShareData(), CTipWnd::~CTipWnd(), CWnd::~CWnd(), CWSHClient::~CWSHClient(), と TSingleInstance< CEditApp >::~TSingleInstance().

#define SAKURA_CORE_API __declspec(dllimport)

global.h の 37 行で定義されています。

#define TRUE 1

global.h の 436 行で定義されています。

参照元 ActivateFrameWindow(), CShareData::AddEditWndList(), CKeyWordSetMgr::AddKeyWordSet(), CSortedTagJumpList::AddParam(), CEditView::AdjustScrollBars(), CSMacroMgr::Append(), COpeBlk::AppendOpe(), COpeBuf::AppendOpeBlk(), CShareData::BeReloadWhenExecuteMacro(), BlockingHook(), CFuncKeyWnd::CalcButtonSize(), CSMacroMgr::CanFuncIsKeyMacro(), CDlgCompare::CDlgCompare(), CDlgGrep::CDlgGrep(), CEditDoc::CEditDoc(), CEditView::ChangeCurRegexp(), CEditWnd::ChangeLayoutParam(), CheckEXT(), CEditDoc::CheckFileTimeStamp(), CheckSystemResources(), CHokanMgr::CHokanMgr(), CLayoutMgr::CLayoutMgr(), CControlTray::CloseAllEditor(), ColorList_SubclassProc(), CDlgSameColor::ColorList_SubclassProc(), CViewCommander::Command_1PageDown(), CViewCommander::Command_ADDTAIL(), CViewCommander::Command_BEGIN_BOXSELECT(), CViewCommander::Command_BEGIN_SELECT(), CViewCommander::Command_BOOKMARK_NEXT(), CViewCommander::Command_BOOKMARK_PREV(), CViewCommander::Command_CANCEL_MODE(), CViewCommander::Command_CASCADE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_COPY(), CViewCommander::Command_COPYLINESWITHLINENUMBER(), CViewCommander::Command_CUT(), CViewCommander::Command_DELETE(), CViewCommander::Command_DELETE_BACK(), CViewCommander::Command_DELETE_LINE(), CViewCommander::Command_Diff_Next(), CViewCommander::Command_Diff_Prev(), CViewCommander::Command_DUPLICATELINE(), CViewCommander::Command_EXECCOMMAND_DIALOG(), CViewCommander::Command_EXITALLEDITORS(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILECLOSEALL(), CViewCommander::Command_FILESAVEALL(), CViewCommander::Command_FONT(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_GOFILEEND(), CViewCommander::Command_GOLINEEND(), CViewCommander::Command_GREP_DIALOG(), CViewCommander::Command_GROUPCLOSE(), CViewCommander::Command_HOKAN(), CViewCommander::Command_IME_CHAR(), CViewCommander::Command_INDENT(), CViewCommander::Command_INDENT_TAB(), CViewCommander::Command_INS_DATE(), CViewCommander::Command_INS_TIME(), CViewCommander::Command_INSFILE(), CViewCommander::Command_JUMP(), CViewCommander::Command_LEFT(), CViewCommander::Command_LineDeleteToEnd(), CViewCommander::Command_LineDeleteToStart(), CViewCommander::Command_OPEN_HfromtoC(), CViewCommander::Command_PASTE(), CViewCommander::Command_PASTEBOX(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_REDO(), CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_RIGHT(), CViewCommander::Command_SEARCH_NEXT(), CViewCommander::Command_SEARCH_PREV(), CViewCommander::Command_SELECTALL(), CViewCommander::Command_SELECTWORD(), CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), CViewCommander::Command_TagsMake(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CViewCommander::Command_ToggleKeySearch(), CViewCommander::Command_TRIM(), CViewCommander::Command_UNDO(), CViewCommander::Command_UNINDENT(), CViewCommander::Command_WCHAR(), CViewCommander::Command_WndScrollDown(), CViewCommander::Command_WndScrollUp(), CViewCommander::Command_WordCut(), CViewCommander::Command_WordDelete(), CViewCommander::Command_WordDeleteToEnd(), CViewCommander::Command_WordDeleteToStart(), CViewCommander::Command_WORDLEFT(), CViewCommander::Command_WORDRIGHT(), CEditView::ConvSelectedArea(), CEditView::CopySelectedAllLines(), CEditWnd::Create(), CEditView::Create(), CEditDoc::Create(), CFuncKeyWnd::CreateButtons(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CEditView::CreatePopUpMenu_R(), CPrintPreview::CreatePrintPreviewControls(), CEditView::CreateScrollBar(), CMainToolBar::CreateToolBar(), CControlTray::CreateTrayIcon(), CSplitBoxWnd::CSplitBoxWnd(), CCaret::Cursor_UPDOWN(), CViewFont::CViewFont(), CEditView::DeleteData(), CKeyWordSetMgr::DelKeyWordSet(), CMainStatusBar::DestroyStatusBar(), CTextArea::DetectWidthOfLineNumberArea(), CEditWnd::DetectWidthOfLineNumberAreaAllPane(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CDlgInput1::DispatchEvent(), CDlgDebug::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), CEditView::DispLineNew(), CConvert_SpaceToTab::DoConvert(), CEditDoc::DoFileLock(), CEditView::DoGrep(), CHokanMgr::DoHokan(), CDlgWinSize::DoModal(), CDlgTypeList::DoModal(), CDlgSameColor::DoModal(), CDlgPrintSetting::DoModal(), CDlgKeywordSelect::DoModal(), CDialog::DoModal(), CDlgReplace::DoModeless(), CDlgFind::DoModeless(), CSplitterWnd::DoSplit(), CEditView::DragEnter(), CViewSelect::DrawSelectAreaLine(), CPropCommon::EnableFormatPropInput(), CPropCommon::EnableTabPropInput(), CPropTypes::EnableTypesPropInput(), CPropCommon::EnableWinPropInput(), CSMacroMgr::Exec(), CTabWnd::ExecTabCommand(), CControlTray::ExitingDlgProc(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CFileLoad::FileOpen(), CEditDoc::FileRead(), CEditDoc::FileSave(), CEditDoc::FileSaveAs(), CEditDoc::FileSaveAs_Dialog(), CEditDoc::FileWrite(), CTabWnd::ForceActiveWindow(), CCaret::GetAdjustCursorPos(), CDlgWinSize::GetData(), CDlgTagsMake::GetData(), CDlgTagJumpList::GetData(), CDlgPrintSetting::GetData(), CDlgPrintPage::GetData(), CDlgKeywordSelect::GetData(), CDlgJump::GetData(), CDlgGrep::GetData(), CDlgFavorite::GetData(), CDlgDiff::GetData(), CDlgCtrlCode::GetData(), CDlgCompare::GetData(), CPropTypes::GetData_KeyHelp(), CPropTypes::GetData_p1(), CPropCommon::GetData_p1(), CPropCommon::GetData_p10(), CPropTypes::GetData_p2(), CPropTypes::GetData_p3_new(), CPropCommon::GetData_p5(), CPropCommon::GetData_p7(), 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_TAB(), CPropCommon::GetData_PROP_TOOLBAR(), CPropCommon::GetData_PROP_WIN(), CPropTypes::GetData_Regex(), CPrint::GetDefaultPrinter(), CMRU::GetFileInfo(), CEditDoc::GetFileInfo(), CNormalProcess::GetInitializeMutex(), GetLongFileName(), CTabWnd::GetNextGroupWnd(), CPrint::GetPaperSize(), CSortedTagJumpList::GetParam(), CTabWnd::GetPrevGroupWnd(), CPrint::GetPrintMetrics(), CEditView::GetSelectedData(), GetSystemResources(), CClipboard::GetText(), CViewCommander::HandleCommand(), CMacro::HandleCommand(), CEditDoc::HandleCommand(), CHokanMgr::Hide(), HokanList_SubclassProc(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CShareData::Init(), CEditDoc::Init(), CEditDoc::InitAllView(), CNormalProcess::Initialize(), CControlProcess::Initialize(), CShareData::InitKeyword(), CEditWnd::InitMenu(), CPrintPreview::InitPreviewScrollBar(), CShareData::InitTypeConfig(), CEditView::InsertData_CEditView(), CShareData::IO_ColorSet(), CEditView::ISearchBack(), CEditView::ISearchEnter(), CEditView::ISearchExec(), CShareData::IsEditWnd(), CEditDoc::IsEnablePaste(), COpeBuf::IsEnableRedo(), COpeBuf::IsEnableUndo(), CMemory::IsEqual(), IsFuncChecked(), IsFuncEnable(), IsMailAddress(), CShareData::IsPathOpened(), CSMacroMgr::IsSaveOk(), IsURL(), CJis::JIStoSJIS(), CDlgFuncList::Key2Command(), CEditView::KeySearchCore(), CEditView::KeyWordHelpSearchDict(), CEditWnd::LayoutFuncKey(), CTabWnd::LayoutTab(), CLayoutMgr::LayoutToLogic(), CSMacroMgr::Load(), CWSHMacroManager::LoadKeyMacro(), CPPAMacroMgr::LoadKeyMacro(), CKeyMacroMgr::LoadKeyMacro(), CMutex::Lock(), CEditView::MakeDiffTmpFile(), CEditDoc::MakeFuncList_Java(), CEditDoc::MakeFuncList_RuleFile(), ApiWrap::MakeSureDirectoryPathExistsW(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_html(), CEditDoc::MakeTopicList_txt(), CCaret::MoveCursor(), CEditView::MoveCursorSelecting(), CCaret::MoveCursorToClientPoint(), CMenuDrawer::MyAppendMenu(), MYBrowseCallbackProc(), 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(), CPrintPreview::OnChangePrintSetting(), CEditView::OnChangeSetting(), CEditDoc::OnChangeSetting(), CDialog::OnContextMenu(), CDlgFuncList::OnDestroy(), CDialog::OnDestroy(), CDialog::OnDeviceChange(), CDlgSameColor::OnDrawItem(), CDialog::OnDrawItem(), CEditWnd::OnDropFiles(), CDlgDiff::OnEditChange(), CPrintPreview::OnHScroll(), CDlgTagJumpList::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgGrep::OnInitDialog(), CDialog::OnInitDialog(), CDlgFuncList::OnJump(), CDialog::OnKeyDown(), CHokanMgr::OnKillFocus(), CHokanMgr::OnLbnDblclk(), CDlgTypeList::OnLbnDblclk(), CEditView::OnLBUTTONDOWN(), CEditWnd::OnLButtonUp(), CEditView::OnLBUTTONUP(), CMenuDrawer::OnMenuChar(), CSplitterWnd::OnMouseMove(), CPrintPreview::OnMouseMove(), CEditWnd::OnMouseMove(), CEditWnd::OnMouseWheel(), CEditView::OnMove(), CDialog::OnMove(), CDlgTagJumpList::OnNotify(), CDlgPrintSetting::OnNotify(), CDlgJump::OnNotify(), CDlgFuncList::OnNotify(), CDlgFavorite::OnNotify(), CDlgCtrlCode::OnNotify(), CEditView::OnPaint(), CDialog::OnPopupHelp(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), CEditWnd::OnPrintPageSetting(), CTabWnd::OnRButtonDown(), CDlgSameColor::OnSelChangeListColors(), CEditView::OnSetFocus(), CTabWnd::OnSize(), CSplitterWnd::OnSize(), CPrintPreview::OnSize(), CHokanMgr::OnSize(), CFuncKeyWnd::OnSize(), CEditWnd::OnSize(), CEditView::OnSize(), CDlgFuncList::OnSize(), CDialog::OnSize(), CDlgPrintSetting::OnSpin(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabNotify(), CFuncKeyWnd::OnTimer(), CEditView::OnTimer(), CDlgTagJumpList::OnTimer(), CDlgPrintSetting::OnTimer(), CDialog::OnTimer(), CPrintPreview::OnVScroll(), CTabWnd::Open(), CFuncKeyWnd::Open(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenPropertySheet(), CEditDoc::OpenPropertySheetTypes(), CEditWnd::PopupWinList(), CShareData::PostMessageToAllEditors(), CLayoutMgr::PrevWord(), CPrint::PrintDlg(), CPrint::PrintOpen(), CPrintPreview::PrintPreviewBar_DlgProc(), CEditWnd::PrintPreviewModeONOFF(), CDocLineMgr::ReadFile(), CPropTypes::RearrangeKeywordSet(), CTabWnd::Refresh(), CPropTypes::RegexKakomiCheck(), CRegexKeyword::RegexKeyInit(), CDropTarget::Register_DropTarget(), CDlgWinSize::RenewItemState(), CTabWnd::ReorderTab(), CShareData::ReorderTab(), CEditView::ReplaceData_CEditView(), CShareData::RequestCloseAllEditor(), CMenuDrawer::ResetContents(), ResolveShortcutLink(), CEditWnd::RestorePhysPosOfAllView(), CDropTarget::Revoke_DropTarget(), CEditView::RTrimPrevLine(), CSMacroMgr::Save(), CKeyMacroMgr::SaveKeyMacro(), CEditView::ScrollAtH(), CEditView::ScrollAtV(), CDicMgr::Search(), CDocLineMgr::SearchBookMark(), CDocLineMgr::SearchDiffMark(), CDocLineMgr::SearchWord(), CPropTypes::SelectColor(), CPropCommon::SelectColor(), SelectDir(), CEditDoc::SelectFont(), CShareData::SendMessageToAllEditors(), CTabWnd::SeparateGroup(), CEditWnd::SetActivePane(), CDlgWinSize::SetData(), CDlgTagsMake::SetData(), CDlgReplace::SetData(), CDlgPrintPage::SetData(), CDlgJump::SetData(), CDlgGrep::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(), CEditView::SetFont(), CKeyWordSetMgr::SetKeyWordCase(), CDlgFuncList::SetListVB(), CPrint::SettingInitialize(), CDlgFuncList::SetTree(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_2(), CTipWnd::Show(), CTabWnd::ShowHideWindow(), CEditView::ShowHokanMgr(), CFuncKeyWnd::SizeBox_ONOFF(), CEditView::SmartIndent_CPP(), CDlgFuncList::SortTree(), CNativeA::SPACEToTAB(), CEditView::SplitBoxOnOff(), CJis::StrSJIStoJIS(), CUrlWnd::SubclassWindow(), CTabWnd::TabListMenu(), CTabWnd::TabWindowNotify(), CTabWnd::TabWndDispatchEvent(), CEditView::TagJumpSub(), CControlTray::TerminateApplication(), CNativeA::ToZenkaku(), CUtf7::UnicodeToUTF7(), CViewFont::UpdateFont(), CUrlWnd::UrlWndProc(), CConvert_UuDecode::UUDECODE(), と CEditView::ViewDiffInfo().

型定義

typedef struct ColorAttributeData_t ColorAttributeData

typedef enumCodeType ECodeType

global.h の 172 行で定義されています。

typedef enumColorIndexType EColorIndexType

global.h の 369 行で定義されています。

列挙型

enum enumBarChangeNotifyType

バーの表示・非表示

列挙型の値:
MYBCN_TOOLBAR
MYBCN_FUNCKEY
MYBCN_TAB
MYBCN_STATUSBAR

global.h の 392 行で定義されています。

enum enumCodeType

列挙型の値:
CODE_SJIS
CODE_JIS
CODE_EUC
CODE_UNICODE
CODE_UTF8
CODE_UTF7
CODE_UNICODEBE
CODE_CODEMAX
CODE_AUTODETECT
CODE_ERROR
CODE_NONE
CODE_DEFAULT

global.h の 158 行で定義されています。

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
COLORIDX_DEFAULT

global.h の 308 行で定義されています。

enum enumEOLLen

列挙型の値:
LEN_EOL_NONE
LEN_EOL_CRLF
LEN_EOL_LFCR
LEN_EOL_LF
LEN_EOL_CR

global.h の 253 行で定義されています。

enum enumEOLType

列挙型の値:
EOL_NONE
EOL_CRLF | 0d0a
EOL_LFCR | 0a0d
EOL_LF | 0a
EOL_CR | 0d
EOL_CODEMAX
EOL_UNKNOWN

global.h の 242 行で定義されています。

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 の 219 行で定義されています。

enum enumShowDlg

列挙型の値:
SHOW_NORMAL
SHOW_RELOAD
SHOW_TOGGLE

global.h の 263 行で定義されています。

enum enumSmartIndentType

列挙型の値:
SMARTINDENT_NONE
SMARTINDENT_CPP

global.h の 297 行で定義されています。

enum enumTabWndNotifyType

タブウインドウ用メッセージサブコマンド

列挙型の値:
TWNT_REFRESH
TWNT_ADD
TWNT_DEL
TWNT_ORDER
TWNT_FILE
TWNT_MODE_ENABLE
TWNT_MODE_DISABLE
TWNT_WNDPL_ADJUST

global.h の 380 行で定義されています。

enum ESearchDirection

検索方向

列挙型の値:
SEARCH_BACKWARD
SEARCH_FORWARD

global.h の 462 行で定義されています。

関数

SAKURA_CORE_API int GetColorIndexByName ( const TCHAR * name )

global.cpp の 156 行で定義されています。

参照先 COLORIDX_LAST.

参照元 CPropTypes::Import_Regex(), と CShareData::ShareData_IO_Types().

SAKURA_CORE_API const TCHAR* GetColorNameByIndex ( int index )

global.cpp の 169 行で定義されています。

参照先 ColorAttributeData_t::szName.

参照元 CPropTypes::Export_Regex(), と CShareData::ShareData_IO_Types().

bool IsInECodeType ( int code ) [inline]

ECodeType型で表せる値ならtrue

global.h の 190 行で定義されています。

参照先 CODE_AUTODETECT, CODE_CODEMAX, と CODE_ERROR.

参照元 CEditDoc::FileRead().

bool IsValidCodeType ( int code ) [inline]

有効な文字コードセットならtrue

global.h の 176 行で定義されています。

参照先 CODE_CODEMAX.

参照元 CEditView::DoGrep(), CEditDoc::FileRead(), CMacro::HandleCommand(), CShareData::IsPathOpened(), IsValidCodeTypeExceptSJIS(), と CCommandLine::ParseCommandLine().

bool IsValidCodeTypeExceptSJIS ( int code ) [inline]

有効な文字コードセットならtrue。ただし、SJISは除く(意図は不明)

global.h の 183 行で定義されています。

参照先 CODE_SJIS, と IsValidCodeType().

参照元 CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CMacro::HandleCommand(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

EColorIndexType MakeColorIndexType_RegularExpression ( int nRegExpIndex ) [inline]

global.h の 372 行で定義されています。

参照元 CEditView::DispLineNew().

変数

const int COLUMNSPACE_MAX = 64

global.h の 431 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), と 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 の 100 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), CPropTypes::DispatchEvent_Regex(), CPropTypes::DrawColorListItem(), CShareData::IO_ColorSet(), CDlgSameColor::OnInitDialog(), CDlgSameColor::OnSelChangeListColors(), と CPropTypes::SetData_Regex().

CEditWnd* g_pcEditWnd

global.cpp の 21 行で定義されています。

参照元 CEditWnd::CEditWnd(), GetMessageBoxOwner(), と CEditWnd::~CEditWnd().

SAKURA_CORE_API const int gm_nCodeComboNameArrNum

global.cpp の 77 行で定義されています。

参照元 OFNHookProc(), CDlgGrep::OnInitDialog(), と CDlgGrep::SetData().

SAKURA_CORE_API const ECodeType gm_nCodeComboValueArr[]

global.cpp の 56 行で定義されています。

参照元 OFNHookProc(), と CDlgGrep::OnInitDialog().

SAKURA_CORE_API const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM]

行終端子の配列

global.cpp の 85 行で定義されています。

参照元 CEOL::GetEOLType(), CEOL::GetEOLTypeUni(), と CEOL::GetEOLTypeUniBE().

SAKURA_CORE_API const TCHAR* const gm_pszCodeComboNameArr[]

global.cpp の 66 行で定義されています。

参照元 OFNHookProc(), と CDlgGrep::OnInitDialog().

SAKURA_CORE_API const TCHAR* gm_pszCodeNameArr_Bracket[]

global.cpp の 46 行で定義されています。

参照元 CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

SAKURA_CORE_API const TCHAR* gm_pszCodeNameArr_Normal[]

global.cpp の 24 行で定義されています。

参照元 CEditView::DoGrep(), CCaret::DrawCaretPosInfo(), CEditDoc::FileRead(), CShareData::IsPathOpened(), と CDlgProperty::SetData().

SAKURA_CORE_API const TCHAR* gm_pszCodeNameArr_Short[]

global.cpp の 35 行で定義されています。

参照元 CCaret::DrawCaretPosInfo().

const int IDC_SPIN_nRulerHeight_MAX = 32

global.h の 427 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), と CPropCommon::GetData_PROP_WIN().

const int IDC_SPIN_nRulerHeight_MIN = 2

< 設定値の上限・下限

global.h の 426 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), と CPropCommon::GetData_PROP_WIN().

const int LINEREADBUFSIZE = 10240

ファイルから1行分データを読み込むときのバッファサイズ

global.h の 457 行で定義されています。

参照元 CEditDoc::ReadRuleFile(), と CDicMgr::Search().

const int LINESPACE_MAX = 128

global.h の 430 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CShareData::ShareData_IO_Types().

const int MAXLINEKETAS = 10240

1行の桁数の最大値

global.h の 454 行で定義されています。

参照元 CLayoutMgr::ChangeLayoutParam(), CViewCommander::Command_SEARCH_PREV(), CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), CPropTypes::GetData_p3_new(), CEditView::GetWrapMode(), CShareData::InitTypeConfig(), と CLayoutMgr::LayoutToLogic().

const int MINLINEKETAS = 10

1行の桁数の最小値

global.h の 455 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CShareData::ShareData_IO_Types().

SAKURA_CORE_API const COLORREF SELECTEDAREA_RGB

選択領域描画用パラメータ

global.cpp の 81 行で定義されています。

参照元 CEditView::DispTextSelected(), と CViewSelect::DrawSelectArea().

SAKURA_CORE_API const int SELECTEDAREA_ROP2

global.cpp の 82 行で定義されています。

参照元 CEditView::DispTextSelected(), と CViewSelect::DrawSelectArea().

Sakura-Editorに対してSat Nov 17 20:27:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: global.h ソースファイル

sakura_core

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
00063 /*
00064 SAKURA_CORE_API extern const TCHAR* GSTR_APPNAME;
00065 SAKURA_CORE_API extern const CHAR*  GSTR_APPNAME_A;
00066 */
00067 // アプリ名。2007.09.21 kobake 整理
00068 #ifdef _UNICODE
00069     #define _APP_NAME_(TYPE) TYPE("sakuraW2")
00070 #else
00071     #define _APP_NAME_(TYPE) TYPE("sakuraA")
00072 #endif
00073
00074 #ifdef _DEBUG
00075     #define _APP_NAME_2_(TYPE) TYPE("(デバッグ版 ") TYPE(__DATE__) TYPE(")")
00076 #else
00077     #define _APP_NAME_2_(TYPE) TYPE("(") TYPE(__DATE__) TYPE(")")
00078 #endif
00079
00080 #define _GSTR_APPNAME_(TYPE)  _APP_NAME_(TYPE) _APP_NAME_2_(TYPE) //例:UNICODEデバッグ→_T("sakuraW2(デバッグ版)")
00081
00082 #define GSTR_APPNAME    (_GSTR_APPNAME_(_T)   )
00083 #define GSTR_APPNAME_A  (_GSTR_APPNAME_(ATEXT))
00084 #define GSTR_APPNAME_W  (_GSTR_APPNAME_(LTEXT))
00085
00086
00087
00088
00089
00090 //2007.09.20 kobake デバッグ判別、定数サフィックス
00091 #ifdef _DEBUG
00092     #define _DEBUG_SUFFIX_ "_DEBUG"
00093 #else
00094     #define _DEBUG_SUFFIX_ ""
00095 #endif
00096
00097 //2007.09.20 kobake ビルドコード判別、定数サフィックス
00098 #ifdef _UNICODE
00099     #define _CODE_SUFFIX_ "W"
00100 #else
00101     #define _CODE_SUFFIX_ "A"
00102 #endif
00103
00104
00105 //2007.09.05 ANSI版と衝突を避けるため、名前変更
00106 //2007.09.20 kobake ANSI版とUNICODE版で別の名前を用いる
00107 #define GSTR_EDITWINDOWNAME (_T("TextEditorWindow") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00108
00109
00110 //2002.01.08 aroka  コントロールプロセスと起動処理のためにミューテックス名を追加
00111 //2006.04.10 ryoji  コントロールプロセス初期化完了を示すイベントフラグ名を追加
00112 //2007.09.05 kobake ANSI版と衝突を避けるため、名前変更
00113 //2007.09.20 kobake ANSI版とUNICODE版で別の名前を用いる
00114 #define GSTR_MUTEX_SAKURA                   (_T("MutexSakuraEditor")                _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00115 #define GSTR_MUTEX_SAKURA_CP                (_T("MutexSakuraEditorCP")              _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00116 #define GSTR_EVENT_SAKURA_CP_INITIALIZED    (_T("EventSakuraEditorCPInitialized")   _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00117 #define GSTR_MUTEX_SAKURA_INIT              (_T("MutexSakuraEditorInit")            _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00118 #define GSTR_MUTEX_SAKURA_EDITARR           (_T("MutexSakuraEditorEditArr")         _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00119
00120
00121 //2007.09.05 kobake ANSI版と衝突を避けるため、名前変更
00122 //2007.09.20 kobake ANSI版とUNICODE版で別の名前を用いる
00123 #define GSTR_CEDITAPP   (_T("CControlTray") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00124
00125
00126 //2007.09.05 kobake ANSI版と衝突を避けるため、名前変更
00127 //2007.09.20 kobake ANSI版とUNICODE版で別の名前を用いる
00128 #define GSTR_CSHAREDATA (_T("CShareData") _T(_CODE_SUFFIX_) _T(_DEBUG_SUFFIX_))
00129
00130
00131 //  Dec. 2, 2002 genta
00132 //  固定ファイル名
00133 #define FN_APP_ICON  _T("my_appicon.ico")
00134 #define FN_GREP_ICON _T("my_grepicon.ico")
00135 #define FN_TOOL_BMP  _T("my_icons.bmp")
00136
00137 //  標準アプリケーションアイコンリソース名
00138 #ifdef _DEBUG
00139     #define ICON_DEFAULT_APP IDI_ICON_DEBUG
00140     #define ICON_DEFAULT_GREP IDI_ICON_GREP
00141 #else
00142     #define ICON_DEFAULT_APP IDI_ICON_STD
00143     #define ICON_DEFAULT_GREP IDI_ICON_GREP
00144 #endif
00145
00146
00147
00148 /* ウィンドウのID */
00149 #define IDW_STATUSBAR 123
00150
00151
00152 #define IDM_SELWINDOW       10000
00153 #define IDM_SELMRU          11000
00154 #define IDM_SELOPENFOLDER   12000
00155
00156
00157 /* 文字コードセット種別 */
00158 SAKURA_CORE_API enum enumCodeType {
00159     CODE_SJIS,              /* SJIS */
00160     CODE_JIS,               /* JIS */
00161     CODE_EUC,               /* EUC */
00162     CODE_UNICODE,           /* Unicode */
00163     CODE_UTF8,              /* UTF-8 */
00164     CODE_UTF7,              /* UTF-7 */
00165     CODE_UNICODEBE,         /* Unicode BigEndian */
00166     CODE_CODEMAX,
00167     CODE_AUTODETECT = 99,           /* 文字コード自動判別 */
00168     CODE_ERROR      = -1,           /* エラー */                 //2007.08.14 kobake 追加
00169     CODE_NONE       = -1,           /* 未検出 */
00170     CODE_DEFAULT    = CODE_SJIS,    /* デフォルトの文字コード */ //2007.08.14 kobake 追加
00171 };
00172 typedef enumCodeType ECodeType;
00173
00174 //2007.08.14 kobake 追加
00176 inline bool IsValidCodeType(int code)
00177 {
00178     return code>=0 && code<CODE_CODEMAX;
00179 }
00180
00181 //2007.08.14 kobake 追加
00183 inline bool IsValidCodeTypeExceptSJIS(int code)
00184 {
00185     return IsValidCodeType(code) && code!=CODE_SJIS;
00186 }
00187
00188 //2007.08.14 kobake 追加
00190 inline bool IsInECodeType(int code)
00191 {
00192     return (code>=0 && code<CODE_CODEMAX) || code==CODE_ERROR || code==CODE_AUTODETECT;
00193 }
00194
00195
00196 SAKURA_CORE_API extern const TCHAR* gm_pszCodeNameArr_Normal[];
00197 SAKURA_CORE_API extern const TCHAR* gm_pszCodeNameArr_Short[];
00198 SAKURA_CORE_API extern const TCHAR* gm_pszCodeNameArr_Bracket[];
00199
00200 /* コンボボックス用 自動判別を含む配列 */
00201 SAKURA_CORE_API extern const ECodeType gm_nCodeComboValueArr[];
00202 SAKURA_CORE_API extern const TCHAR* const gm_pszCodeComboNameArr[];
00203 SAKURA_CORE_API extern const int gm_nCodeComboNameArrNum;
00204
00205 //const char* GetCodeTypeName( ECodeType nCodeTYpe )
00206 //{
00207 //  const char* pszCodeTypeNameArr[] = {
00208 //      "SJIS",
00209 //      "JIS",
00210 //      "EUC",
00211 //      "Unicode",
00212 //      "UTF-8",
00213 //      "UTF-7"
00214 //  };
00215 //  return pszCodeTypeNameArr[nCodeTYpe];
00216 //}
00217
00218 /* アウトライン解析の種類 */
00219 SAKURA_CORE_API enum enumOutlineType {
00220     OUTLINE_C,
00221     OUTLINE_CPP,
00222     OUTLINE_PLSQL,
00223     OUTLINE_TEXT,
00224     OUTLINE_JAVA,
00225     OUTLINE_COBOL,
00226     OUTLINE_ASM,
00227     OUTLINE_PERL,   //  Sep. 8, 2000 genta
00228     OUTLINE_VB, //  June 23, 2001 N.Nakatani
00229     OUTLINE_WZTXT,      // 2003.05.20 zenryaku 階層付テキストアウトライン解析
00230     OUTLINE_HTML,       // 2003.05.20 zenryaku HTMLアウトライン解析
00231     OUTLINE_TEX,        // 2003.07.20 naoh TeXアウトライン解析
00232     OUTLINE_FILE,       //  2002.04.01 YAZAKI ルールファイル用
00233     OUTLINE_PYTHON,     //  2007.02.08 genta Pythonアウトライン解析
00234     OUTLINE_CODEMAX,
00235     OUTLINE_BOOKMARK,   //  2001.12.03 hor
00236     OUTLINE_DEFAULT =-1,//  2001.12.03 hor
00237     OUTLINE_UNKNOWN = 99
00238 };
00239
00240 // 2002/09/22 Moca EOL_CRLF_UNICODEを廃止
00241 /* 行終端子の種類 */
00242 SAKURA_CORE_API enum enumEOLType {
00243     EOL_NONE,
00244     EOL_CRLF,
00245     EOL_LFCR,
00246     EOL_LF,
00247     EOL_CR,
00248     EOL_CODEMAX,        //
00249     EOL_UNKNOWN = -1    //
00250 };
00251
00252 /* 行終端子のデータ長 */
00253 SAKURA_CORE_API enum enumEOLLen {
00254     LEN_EOL_NONE            = 0,
00255     LEN_EOL_CRLF            = 2,
00256     LEN_EOL_LFCR            = 2,
00257     LEN_EOL_LF              = 1,
00258     LEN_EOL_CR              = 1
00259 //  LEN_EOL_UNKNOWN     0
00260 };
00261
00262 /* ダイアログ表示方法 */ // アウトラインウィンドウ用に作成 20060201 aroka
00263 SAKURA_CORE_API enum enumShowDlg {
00264     SHOW_NORMAL         = 0,
00265     SHOW_RELOAD         = 1,
00266     SHOW_TOGGLE         = 2,
00267 };
00268
00269
00270 #define EOL_TYPE_NUM    5
00271
00272 /* 行終端子の配列 */
00273 SAKURA_CORE_API extern const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM];
00274
00275 //  May 15, 2000 genta
00276 //  CEOLへ移動
00277 //  From Here
00278 /* 行終端子のデータの配列 */
00279 // SAKURA_CORE_API extern const char* gm_pszEolDataArr[EOL_TYPE_NUM];
00280
00281 /* 行終端子のデータ長の配列 */
00282 // SAKURA_CORE_API extern const int gm_pnEolLenArr[EOL_TYPE_NUM];
00283
00284 /* 行終端子の表示名の配列 */
00285 // SAKURA_CORE_API extern const char* gm_pszEolNameArr[EOL_TYPE_NUM];
00286
00287 /* 行終端子の種類を調べる */
00288 // SAKURA_CORE_API enumEOLType GetEOLType( const char*, int );
00289 //  To Here
00290
00291 /* 選択領域描画用パラメータ */
00292 SAKURA_CORE_API extern const COLORREF   SELECTEDAREA_RGB;
00293 SAKURA_CORE_API extern const int        SELECTEDAREA_ROP2;
00294
00295
00296 /* スマートインデント種別 */
00297 SAKURA_CORE_API enum enumSmartIndentType {
00298     SMARTINDENT_NONE,
00299     SMARTINDENT_CPP
00300 };
00301
00302
00303
00304
00305 // Stonee 注： 2000/01/12
00306 // ここを変更したときは、global.cpp のg_ColorAttributeArrの定義も変更して下さい。
00307 //  From Here Sept. 18, 2000 JEPRO 順番を大幅に入れ替えた
00308 SAKURA_CORE_API enum enumColorIndexType {
00309     COLORIDX_TEXT       = 0,    /* テキスト */
00310     COLORIDX_RULER      = 1,    /* ルーラー */
00311     COLORIDX_CARET      = 2,    /* キャレット */   // 2006.12.07 ryoji
00312     COLORIDX_CARET_IME  = 3,    /* IMEキャレット */    // 2006.12.07 ryoji
00313     COLORIDX_UNDERLINE  = 4,    /* カーソル行アンダーライン */
00314     COLORIDX_GYOU       = 5,    /* 行番号 */
00315     COLORIDX_GYOU_MOD   = 6,    /* 行番号(変更行) */
00316     COLORIDX_TAB        = 7,    /* TAB記号 */
00317     COLORIDX_SPACE      = 8,    /* 半角空白 */ //2002.04.28 Add by KK 以降全て+1
00318     COLORIDX_ZENSPACE   = 9,    /* 日本語空白 */
00319     COLORIDX_CTRLCODE   = 10,   /* コントロールコード */
00320     COLORIDX_CRLF       = 11,   /* 改行記号 */
00321     COLORIDX_WRAP       = 12,   /* 折り返し記号 */
00322     COLORIDX_VERTLINE   = 13,   /* 指定桁縦線 */   // 2005.11.08 Moca
00323     COLORIDX_EOF        = 14,   /* EOF記号 */
00324     COLORIDX_DIGIT      = 15,   /* 半角数値 */  //@@@ 2001.02.17 by MIK //色設定Ver.3からユーザファイルに対しては文字列で処理しているのでリナンバリングしてもよい. Mar. 7, 2001 JEPRO noted
00325     COLORIDX_SEARCH     = 16,   /* 検索文字列 */
00326     COLORIDX_KEYWORD1   = 17,   /* 強調キーワード1 */ // 2002/03/13 novice
00327     COLORIDX_KEYWORD2   = 18,   /* 強調キーワード2 */ // 2002/03/13 novice   //MIK ADDED
00328     COLORIDX_KEYWORD3   = 19,   /* 強調キーワード3 */ // 2005.01.13 MIK 3-10 added
00329     COLORIDX_KEYWORD4   = 20,   /* 強調キーワード4 */
00330     COLORIDX_KEYWORD5   = 21,   /* 強調キーワード5 */
00331     COLORIDX_KEYWORD6   = 22,   /* 強調キーワード6 */
00332     COLORIDX_KEYWORD7   = 23,   /* 強調キーワード7 */
00333     COLORIDX_KEYWORD8   = 24,   /* 強調キーワード8 */
00334     COLORIDX_KEYWORD9   = 25,   /* 強調キーワード9 */
00335     COLORIDX_KEYWORD10  = 26,   /* 強調キーワード10 */
00336     COLORIDX_COMMENT    = 27,   /* 行コメント */                       //Dec. 4, 2000 shifted by MIK
00337     COLORIDX_SSTRING    = 28,   /* シングルクォーテーション文字列 */ //Dec. 4, 2000 shifted by MIK
00338     COLORIDX_WSTRING    = 29,   /* ダブルクォーテーション文字列 */        //Dec. 4, 2000 shifted by MIK
00339     COLORIDX_URL        = 30,   /* URL */                               //Dec. 4, 2000 shifted by MIK
00340     COLORIDX_REGEX1     = 31,   /* 正規表現キーワード1 */  //@@@ 2001.11.17 add MIK
00341     COLORIDX_REGEX2     = 32,   /* 正規表現キーワード2 */  //@@@ 2001.11.17 add MIK
00342     COLORIDX_REGEX3     = 33,   /* 正規表現キーワード3 */  //@@@ 2001.11.17 add MIK
00343     COLORIDX_REGEX4     = 34,   /* 正規表現キーワード4 */  //@@@ 2001.11.17 add MIK
00344     COLORIDX_REGEX5     = 35,   /* 正規表現キーワード5 */  //@@@ 2001.11.17 add MIK
00345     COLORIDX_REGEX6     = 36,   /* 正規表現キーワード6 */  //@@@ 2001.11.17 add MIK
00346     COLORIDX_REGEX7     = 37,   /* 正規表現キーワード7 */  //@@@ 2001.11.17 add MIK
00347     COLORIDX_REGEX8     = 38,   /* 正規表現キーワード8 */  //@@@ 2001.11.17 add MIK
00348     COLORIDX_REGEX9     = 39,   /* 正規表現キーワード9 */  //@@@ 2001.11.17 add MIK
00349     COLORIDX_REGEX10    = 40,   /* 正規表現キーワード10 */  //@@@ 2001.11.17 add MIK
00350     COLORIDX_DIFF_APPEND = 41,  /* DIFF追加 */    //@@@ 2002.06.01 MIK
00351     COLORIDX_DIFF_CHANGE = 42,  /* DIFF追加 */    //@@@ 2002.06.01 MIK
00352     COLORIDX_DIFF_DELETE = 43,  /* DIFF追加 */    //@@@ 2002.06.01 MIK
00353     COLORIDX_BRACKET_PAIR = 44, /* 対括弧 */ // 02/09/18 ai Add
00354     COLORIDX_MARK       = 45,   /* ブックマーク */    // 02/10/16 ai Add
00355
00356     //カラーの最後
00357     COLORIDX_LAST       = 46,   //Dec. 4, 2000 @@@2001.02.17 renumber by MIK                /* 2002/10/16 ai Mod 34→35 */
00358
00359     //カラー表示制御用
00360     COLORIDX_BLOCK1     = 47,   /* ブロックコメント1(文字色と背景色は行コメントと同じ) */   /* 02/10/16 ai Mod 35→36 */
00361     COLORIDX_BLOCK2     = 48,   /* ブロックコメント2(文字色と背景色は行コメントと同じ) */   /* 02/10/16 ai Mod 36→37 */
00362
00363     // -- -- 別名 -- -- //
00364     COLORIDX_DEFAULT    = COLORIDX_TEXT,
00365
00366     // -- -- 1000-1099 : カラー表示制御用(正規表現キーワード) -- -- //
00367 };
00368 //  To Here Sept. 18, 2000
00369 typedef enumColorIndexType EColorIndexType;
00370
00371 //正規表現キーワードのEColorIndexType値を作る関数
00372 inline EColorIndexType MakeColorIndexType_RegularExpression(int nRegExpIndex)
00373 {
00374     return (EColorIndexType)(1000 + nRegExpIndex);
00375 }
00376
00377
00378 //@@@ From Here 2003.05.31 MIK
00380 SAKURA_CORE_API enum enumTabWndNotifyType {
00381     TWNT_REFRESH    = 0,        //再表示
00382     TWNT_ADD        = 1,        //ウインドウ登録
00383     TWNT_DEL        = 2,        //ウインドウ削除
00384     TWNT_ORDER      = 3,        //ウインドウ順序変更
00385     TWNT_FILE       = 4,        //ファイル名変更
00386     TWNT_MODE_ENABLE= 5,        //タブモード有効化  //2004.07.14 Kazika 追加
00387     TWNT_MODE_DISABLE= 6,       //タブモード無効化  //2004.08.27 Kazika 追加
00388     TWNT_WNDPL_ADJUST= 7,       //ウィンドウ位置合わせ    // 2007.04.03 ryoji 追加
00389 };
00390
00392 SAKURA_CORE_API enum enumBarChangeNotifyType {
00393     MYBCN_TOOLBAR   = 0,        //ツールバー
00394     MYBCN_FUNCKEY   = 1,        //ファンクションキー
00395     MYBCN_TAB       = 2,        //タブ
00396     MYBCN_STATUSBAR = 3,        //ステータスバー
00397 };
00398 //@@@ To Here 2003.05.31 MIK
00399
00400 //タブで使うカスタムメニューのインデックス  //@@@ 2003.06.13 MIK
00401 #define CUSTMENU_INDEX_FOR_TABWND       24
00402 //右クリックメニューで使うカスタムメニューのインデックス //@@@ 2003.06.13 MIK
00403 #define CUSTMENU_INDEX_FOR_RBUTTONUP    0
00404
00405
00407 //@@@ From Here 2006.12.18 ryoji
00408 #define COLOR_ATTRIB_FORCE_DISP     0x00000001
00409 //#define COLOR_ATTRIB_NO_TEXT      0x00000010  予約値
00410 #define COLOR_ATTRIB_NO_BACK        0x00000020
00411 #define COLOR_ATTRIB_NO_BOLD        0x00000100
00412 #define COLOR_ATTRIB_NO_UNDERLINE   0x00000200
00413 //#define COLOR_ATTRIB_NO_ITALIC        0x00000400  予約値
00414 #define COLOR_ATTRIB_NO_EFFECTS     0x00000F00
00415
00416 typedef struct ColorAttributeData_t{
00417     TCHAR*          szName;
00418     unsigned int    fAttribute;
00419 } ColorAttributeData;
00420
00421 SAKURA_CORE_API extern const ColorAttributeData g_ColorAttributeArr[];
00422 //@@@ To Here 2006.12.18 ryoji
00423
00425 //  ルーラの高さ
00426 const int IDC_SPIN_nRulerHeight_MIN = 2;
00427 const int IDC_SPIN_nRulerHeight_MAX = 32;
00428
00429 // Feb. 18, 2003 genta 最大値の定数化と値変更
00430 const int LINESPACE_MAX = 128;
00431 const int COLUMNSPACE_MAX = 64;
00432
00433
00434 // novice 2002/09/14
00435 #ifndef TRUE
00436 #define TRUE 1
00437 #endif
00438
00439 #ifndef FALSE
00440 #define FALSE 0
00441 #endif
00442
00443 #ifndef NULL
00444 #define NULL 0
00445 #endif
00446
00447 #ifndef BOOL
00448 #define BOOL    int
00449 #endif
00450
00451 //  Aug. 14, 2005 genta 定数定義追加
00452 // 2007.09.07 kobake 定数名変更: MAXLINESIZE→MAXLINEKETAS
00453 // 2007.09.07 kobake 定数名変更: MINLINESIZE→MINLINEKETAS
00454 const int MAXLINEKETAS      = 10240;
00455 const int MINLINEKETAS      = 10;
00456
00457 const int LINEREADBUFSIZE   = 10240;
00458
00459
00460 //2007.09.06 kobake 追加
00462 enum ESearchDirection{
00463     SEARCH_BACKWARD = 0, //前方検索 (前を検索)
00464     SEARCH_FORWARD  = 1, //後方検索 (次を検索) (普通)
00465 };
00466
00467 //2007.09.06 kobake 追加
00468 struct SSearchOption{
00469 //  ESearchDirection    eDirection;
00470 //  bool    bPrevOrNext;    //!< false==前方検索 true==後方検索
00471     bool    bRegularExp;
00472     bool    bLoHiCase;
00473     bool    bWordOnly;
00474
00475     SSearchOption() : bRegularExp(false), bLoHiCase(false), bWordOnly(false) { }
00476     SSearchOption(
00477         bool _bRegularExp,
00478         bool _bLoHiCase,
00479         bool _bWordOnly
00480     )
00481     : bRegularExp(_bRegularExp)
00482     , bLoHiCase(_bLoHiCase)
00483     , bWordOnly(_bWordOnly)
00484     {
00485     }
00486     void Reset()
00487     {
00488         bRegularExp = false;
00489         bLoHiCase   = false;
00490         bWordOnly   = false;
00491     }
00492
00493     //演算子
00494     bool operator == (const SSearchOption& rhs) const
00495     {
00496         //とりあえずmemcmpでいいや
00497         return memcmp(this,&rhs,sizeof(*this))==0;
00498     }
00499     bool operator != (const SSearchOption& rhs) const
00500     {
00501         return !operator==(rhs);
00502     }
00503
00504 };
00505
00506
00507
00508 //2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく
00509 class CEditWnd;
00510 extern CEditWnd* g_pcEditWnd;
00511
00512
00513 /* カラー名＜＞インデックス番号の変換 */   //@@@ 2002.04.30
00514 SAKURA_CORE_API int GetColorIndexByName( const TCHAR *name );
00515 SAKURA_CORE_API const TCHAR* GetColorNameByIndex( int index );
00516
00517
00519 #endif /* _GLOBAL_H_ */
00520
00521
00522 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: HeaderMake.cpp

HeaderMake

HeaderMake.cpp

#include <stdio.h>
#include <string>
#include <vector>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>

HeaderMake.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | std

列挙型

enum | EMode { MODE_INVALID, MODE_ENUM, MODE_DEFINE }

関数

int | usage ()
bool | is_token (char c)
const char * | strrchr2 (const char *str, char c1, char c2)
後ろから検索し、c1 か c2 、先に見つかったほうのアドレスを返す
const char * | GetFileTitlePointer (const char *fpath)
int | main (int argc, char *argv[])

列挙型

enum EMode

列挙型の値:
MODE_INVALID
MODE_ENUM
MODE_DEFINE

HeaderMake.cpp の 33 行で定義されています。

関数

const char* GetFileTitlePointer ( const char * fpath )

HeaderMake.cpp の 65 行で定義されています。

参照先 strrchr2().

参照元 CEditDoc::GetFileName(), CDlgTagJumpList::GetFileName(), と main().

bool is_token ( char c ) [inline]

HeaderMake.cpp の 49 行で定義されています。

参照元 main().

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

HeaderMake.cpp の 76 行で定義されています。

参照先 _countof, _MAX_PATH, _stricmp, GetFileTitlePointer(), is_token(), MODE_DEFINE, MODE_ENUM, MODE_INVALID, NULL, と usage().

const char* strrchr2 | ( | const char * | str,
 |  | char | c1,
 |  | char | c2
 | ) |  |

後ろから検索し、c1 か c2 、先に見つかったほうのアドレスを返す

HeaderMake.cpp の 55 行で定義されています。

参照先 NULL.

参照元 GetFileTitlePointer().

int usage ( )

HeaderMake.cpp の 40 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:13 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: HeaderMake.cpp ソースファイル

HeaderMake

HeaderMake.cpp

説明を見る。
00001 /*
00002     2007.09.30 kobake 作成
00003
00004     ++ 概要 ++
00005
00006     enum と define の2種類の定数定義ヘッダを生成するためのモノ
00007
00008     enum定数はソースコードから参照し、(デバッグがしやすくなる)
00009     define定数はリソースから参照する  (リソース内ではenum定数を利用できない)
00010
00011
00012     ++ 依存 ++
00013
00014     Visual Studio の cl.exe に依存。
00015     cl.exe のプリプロセッサ機能を利用しています。
00016
00017
00018     ++ 使用方法 ++
00019
00020     usage() を参照
00021 */
00022
00023 #include <stdio.h>
00024 #include <string>
00025 #include <vector>
00026 #include <time.h>
00027 #include <sys/types.h>
00028 #include <sys/stat.h>
00029 #include <stdio.h>
00030 #include <errno.h>
00031 using namespace std;
00032
00033 enum EMode{
00034     MODE_INVALID,
00035
00036     MODE_ENUM,
00037     MODE_DEFINE,
00038 };
00039
00040 int usage()
00041 {
00042     printf("HeaderMake -in=<入力ファイル> -out=<出力ファイル> -mode=<モード> [-enum=<enum名>]\n");
00043     printf("モード\n");
00044     printf("  define  … #define による定数定義ヘッダを生成n");
00045     printf("  enum    … enum による定数定義ヘッダを生成。<enum名>を指定すればそれが列挙型の名前になる\n");
00046     return 1;
00047 }
00048
00049 inline bool is_token(char c)
00050 {
00051     return __iscsym(c) || c=='-';
00052 }
00053
00055 const char* strrchr2(const char* str, char c1, char c2)
00056 {
00057     const char* p=strchr(str,'\0');
00058     //※whileを先行すると、c1,c2が'\0'のときにNULLを返してしまうので、do〜whileとした。
00059     do{
00060         if(*p==c1 || *p==c2)return p;
00061     }while(--p>=str);
00062     return NULL;
00063 }
00064
00065 const char* GetFileTitlePointer(const char* fpath)
00066 {
00067     const char* p=strrchr2(fpath,'\\','/');
00068     if(p){
00069         return p+1;
00070     }
00071     else{
00072         return fpath;
00073     }
00074 }
00075
00076 int main(int argc,char* argv[])
00077 {
00078     //引数解釈
00079     const char* in_file  =NULL;
00080     const char* out_file =NULL;
00081     const char* mode_name=NULL;
00082     const char* enum_name="";
00083     for(int i=1;i<argc;i++){
00084         char* p=argv[i];
00085         if(*p=='/')*p='-';
00086         if(strncmp(p,"-in",3)==0){
00087             p+=3;
00088             if(*p!='\0'){ if(*p=='=')p++; in_file=p; }
00089             else in_file=argv[++i];
00090         }
00091         else if(strncmp(p,"-out",4)==0){
00092             p+=4;
00093             if(*p!='\0'){ if(*p=='=')p++; out_file=p; }
00094             else out_file=argv[++i];
00095         }
00096         else if(strncmp(p,"-mode",5)==0){
00097             p+=5;
00098             if(*p!='\0'){ if(*p=='=')p++; mode_name=p; }
00099             else mode_name=argv[++i];
00100         }
00101         else if(strncmp(p,"-enum",5)==0){
00102             p+=5;
00103             if(*p!='\0'){ if(*p=='=')p++; enum_name=p; }
00104             else enum_name=argv[++i];
00105         }
00106         else{
00107             printf("Error: 不明な引数[%s]\n",p);
00108             return 1;
00109         }
00110     }
00111     if(!in_file)  { printf("Error: 入力ファイルを指定してください\n\n"); return usage(); }
00112     if(!out_file) { printf("Error: 出力ファイルを指定してください\n\n"); return usage(); }
00113     if(!mode_name){ printf("Error: モードを指定してください\n\n");       return usage(); }
00114
00115
00116     //モード解釈
00117     EMode mode=MODE_INVALID;
00118     if(_stricmp(mode_name,"DEFINE")==0)mode=MODE_DEFINE;
00119     else if(_stricmp(mode_name,"ENUM")==0)mode=MODE_ENUM;
00120     else{
00121         printf("Error: 不明なモード[%s]です\n",mode_name);
00122     }
00123
00124
00125     //ファイル更新時刻比較 (なんか、VSのカスタムビルドがうまくいかないので、ここで判定(汗) )
00126     struct _stat in_stat;
00127     struct _stat out_stat;
00128     if(-1==_stat(in_file, &in_stat ))goto next;
00129     if(-1==_stat(out_file,&out_stat))goto next;
00130     //入力ファイルが新しければ処理を続行する
00131     if(in_stat.st_mtime>out_stat.st_mtime)goto next;
00132     else{ printf("出力ファイルは最新です\n"); return 0; }
00133
00134
00135 next:
00136     //ファイルオープン
00137     char in_file2[_MAX_PATH];
00138     sprintf_s(in_file2,_countof(in_file2),"cl.exe /EP %s",in_file);
00139     FILE* in=_popen(in_file2,"rt");               if(!in ){ printf("Error: 入力ファイルを開けません\n"); return 1; } //※プリプロセス済みストリーム
00140     FILE* out=NULL; fopen_s(&out,out_file,"wt");  if(!out){ printf("Error: 出力ファイルを開けません\n"); return 1; }
00141
00142
00143     //処理
00144     char line[1024];
00145     fprintf(out,"#pragma once\n\n");
00146     fprintf(out,
00147         "//このファイルは HeaderMake により %s から生成されたファイルです。\n"
00148         "//直接編集しないでください。\n\n",
00149         GetFileTitlePointer(in_file)
00150     );
00151     if(mode==MODE_ENUM)fprintf(out,"enum %s{\n",enum_name); //enum開始
00152     while(NULL!=fgets(line,_countof(line),in))
00153     {
00154         //改行除去
00155         {
00156             char* p=strrchr(line,'\n');
00157             if(p && *(p+1)=='\0')*p='\0';
00158         }
00159
00160         //トークン抽出開始
00161         const char* p=line;
00162         const char* q;
00163
00164         //ID文字列 -> id
00165         char id[256];
00166         while(*p && !is_token(*p))p++;
00167         q=p;
00168         while(*q && is_token(*q))q++;
00169         strncpy_s(id,_countof(id),p,q-p);
00170         id[q-p]='\0';
00171         p=q;
00172
00173         //値 -> value
00174         char value[256];
00175         while(*p && !is_token(*p))p++;
00176         q=p;
00177         while(*q && is_token(*q))q++;
00178         strncpy_s(value,_countof(value),p,q-p);
00179         value[q-p]='\0';
00180         p=q;
00181
00182         //出力
00183         if(*id && *value){
00184             if(mode==MODE_ENUM){
00185                 fprintf(out,"\t%s = %s,\n",id,value);
00186             }
00187             else if(mode==MODE_DEFINE){
00188                 fprintf(out,"#define %s %s\n",id,value);
00189             }
00190         }
00191     }
00192     if(mode==MODE_ENUM)fprintf(out,"};\n"); //enum終了
00193
00194
00195     //後始末
00196     fclose(out);
00197     fclose(in);
00198     return 0;
00199 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: input.cpp

sakura_core » util

input.cpp

#include "stdafx.h"
#include "input.h"

input.cppのインクルード依存関係図

ソースコードを見る。

関数

int getCtrlKeyState (void)

関数

int getCtrlKeyState ( void )

Shift,Ctrl,Altキー状態の取得

戻り値:
nIdx Shift,Ctrl,Altキー状態
日付:
2004.10.10 関数化

input.cpp の 11 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, ApiWrap::GetKeyState_Alt(), ApiWrap::GetKeyState_Control(), と ApiWrap::GetKeyState_Shift().

参照元 HokanList_SubclassProc(), CDlgFuncList::Key2Command(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CFuncKeyWnd::OnTimer(), CEditView::OnXLBUTTONDOWN(), と CEditView::OnXRBUTTONDOWN().

Sakura-Editorに対してSat Nov 17 20:27:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: input.cpp ソースファイル

sakura_core » util

input.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "input.h"
00003
00004 // novice 2004/10/10 マウスサイドボタン対応
00011 int getCtrlKeyState(void)
00012 {
00013     int nIdx = 0;
00014
00015     /* Shiftキーが押されているなら */
00016     if(GetKeyState_Shift()){
00017         nIdx |= _SHIFT;
00018     }
00019     /* Ctrlキーが押されているなら */
00020     if( GetKeyState_Control() ){
00021         nIdx |= _CTRL;
00022     }
00023     /* Altキーが押されているなら */
00024     if( GetKeyState_Alt() ){
00025         nIdx |= _ALT;
00026     }
00027
00028     return nIdx;
00029 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: input.h

sakura_core » util

input.h

#include "Keycode.h"

input.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

int getCtrlKeyState (void)

関数

int getCtrlKeyState ( void )

Shift,Ctrl,Altキー状態の取得

戻り値:
nIdx Shift,Ctrl,Altキー状態
日付:
2004.10.10 関数化

input.cpp の 11 行で定義されています。

参照先 _ALT, _CTRL, _SHIFT, ApiWrap::GetKeyState_Alt(), ApiWrap::GetKeyState_Control(), と ApiWrap::GetKeyState_Shift().

参照元 HokanList_SubclassProc(), CDlgFuncList::Key2Command(), CEditView::OnLBUTTONDBLCLK(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CFuncKeyWnd::OnTimer(), CEditView::OnXLBUTTONDOWN(), と CEditView::OnXRBUTTONDOWN().

Sakura-Editorに対してSat Nov 17 20:27:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: input.h ソースファイル

sakura_core » util

input.h

説明を見る。
00001 #pragma once
00002
00003 #include "Keycode.h"
00004
00005 //キー入力
00006 // novice 2004/10/10
00007 int getCtrlKeyState(void);
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: io_util.cpp

sakura_core » io

io_util.cpp

#include "stdafx.h"
#include "io_util.h"

io_util.cppのインクルード依存関係図

ソースコードを見る。

関数

bool | IsFileWritable (LPCTSTR tszFilePath)
指定ファイルに書き込めるかどうか調べる
HANDLE | OpenFile_InShareMode (LPCTSTR tszFilePath, EShareMode eShareMode)
指定の共有モードでファイルを開く

関数

bool IsFileWritable ( LPCTSTR tszFilePath )

指定ファイルに書き込めるかどうか調べる

io_util.cpp の 5 行で定義されています。

参照先 NULL.

参照元 CEditDoc::DoFileLock().

HANDLE OpenFile_InShareMode | ( | LPCTSTR | tszFilePath,
 |  | EShareMode | eShareMode
 | ) |  |

指定の共有モードでファイルを開く

io_util.cpp の 25 行で定義されています。

参照先 NULL, SHAREMODE_DENY_READWRITE, と SHAREMODE_DENY_WRITE.

参照元 CEditDoc::DoFileLock().

Sakura-Editorに対してSat Nov 17 20:27:14 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: io_util.cpp ソースファイル

sakura_core » io

io_util.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "io_util.h"
00003
00005 bool IsFileWritable(LPCTSTR tszFilePath)
00006 {
00007     //書き込めるか検査
00008     HANDLE hFile = CreateFile(
00009         tszFilePath,                    //ファイル名
00010         GENERIC_READ | GENERIC_WRITE,   //読み書きモード
00011         0,                              //共有無し
00012         NULL,                           //既定のセキュリティ記述子
00013         OPEN_EXISTING,                  //ファイルが存在しなければ失敗
00014         FILE_ATTRIBUTE_NORMAL,          //特に属性は指定しない
00015         NULL                            //テンプレート無し
00016     );
00017     if(hFile==INVALID_HANDLE_VALUE){
00018         return false;
00019     }
00020     CloseHandle(hFile);
00021     return true;
00022 }
00023
00025 HANDLE OpenFile_InShareMode(LPCTSTR tszFilePath, EShareMode eShareMode)
00026 {
00027     DWORD dwShareMode=0;
00028
00029     //フラグを算出する
00030     switch(eShareMode){
00031     case SHAREMODE_DENY_READWRITE:  // 読み書き禁止
00032         dwShareMode = 0; //共有無し
00033         break;
00034     case SHAREMODE_DENY_WRITE:  // 書き込み禁止
00035         dwShareMode = FILE_SHARE_READ; //読み込みのみ認める
00036         break;
00037     default: //禁止事項なし
00038         dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; //読み書き共に認める
00039         break;
00040     }
00041
00042     //API呼び出し
00043     HANDLE hFile = CreateFile(
00044         tszFilePath,                    //ファイル名
00045         GENERIC_READ | GENERIC_WRITE,   //読み書きタイプ
00046         dwShareMode,                    //共有モード
00047         NULL,                           //既定のセキュリティ記述子
00048         OPEN_EXISTING,                  //ファイルが存在しなければ失敗
00049         FILE_ATTRIBUTE_NORMAL,          //特に属性は指定しない
00050         NULL                            //テンプレート無し
00051     );
00052
00053     return hFile;
00054 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: io_util.h

sakura_core » io

io_util.h

#include "share/CommonSetting.h"

io_util.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

bool | IsFileWritable (LPCTSTR tszFilePath)
指定ファイルに書き込めるかどうか調べる
HANDLE | OpenFile_InShareMode (LPCTSTR tszFilePath, EShareMode eShareMode)
指定の共有モードでファイルを開く

関数

bool IsFileWritable ( LPCTSTR tszFilePath )

指定ファイルに書き込めるかどうか調べる

io_util.cpp の 5 行で定義されています。

参照先 NULL.

参照元 CEditDoc::DoFileLock().

HANDLE OpenFile_InShareMode | ( | LPCTSTR | tszFilePath,
 |  | EShareMode | eShareMode
 | ) |  |

指定の共有モードでファイルを開く

io_util.cpp の 25 行で定義されています。

参照先 NULL, SHAREMODE_DENY_READWRITE, と SHAREMODE_DENY_WRITE.

参照元 CEditDoc::DoFileLock().

Sakura-Editorに対してSat Nov 17 20:27:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: io_util.h ソースファイル

sakura_core » io

io_util.h

説明を見る。
00001 #pragma once
00002
00003 #include "share/CommonSetting.h" //EShareMode
00004
00006 bool IsFileWritable(LPCTSTR tszFilePath);
00007
00009 HANDLE OpenFile_InShareMode(LPCTSTR tszFilePath, EShareMode eShareMode);
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Keycode.h

sakura_core

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 行で定義されています。

参照元 CKeyBind::CreateAccerelator(), CKeyBind::CreateKeyBindList(), CEditWnd::DispatchEvent(), CPropCommon::DispatchEvent_p5(), getCtrlKeyState(), CKeyBind::GetDefFuncCode(), CKeyBind::GetKeyStr(), と CKeyBind::GetKeyStrList().

#define _CTRL 0x00000002

Keycode.h の 22 行で定義されています。

参照元 CKeyBind::CreateAccerelator(), CKeyBind::CreateKeyBindList(), CPropCommon::DispatchEvent_p5(), getCtrlKeyState(), CKeyBind::GetDefFuncCode(), CKeyBind::GetKeyStr(), と CKeyBind::GetKeyStrList().

#define _SHIFT 0x00000001

Keycode.h の 21 行で定義されています。

参照元 CKeyBind::CreateAccerelator(), CKeyBind::CreateKeyBindList(), CPropCommon::DispatchEvent_p5(), getCtrlKeyState(), CKeyBind::GetKeyStr(), CKeyBind::GetKeyStrList(), と HokanList_SubclassProc().

Sakura-Editorに対してSat Nov 17 20:27:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: Keycode.h ソースファイル

sakura_core

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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: maxdata.h

sakura_core » config

maxdata.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

列挙型

enum maxdata {
MAX_EDITWINDOWS = 256, MAX_SEARCHKEY = 30, MAX_REPLACEKEY = 30, MAX_GREPFILE = 30,
MAX_GREPFOLDER = 30, MAX_TYPES = 20, MAX_PRINTSETTINGARR = 8, MACRONAME_MAX = 64,
MAX_EXTCMDLEN = 1024, MAX_EXTCMDMRUNUM = 32, 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, MAX_MRU = 36
}

列挙型

enum maxdata

列挙型の値:
MAX_EDITWINDOWS
MAX_SEARCHKEY
MAX_REPLACEKEY
MAX_GREPFILE
MAX_GREPFOLDER
MAX_TYPES
MAX_PRINTSETTINGARR
MACRONAME_MAX
MAX_EXTCMDLEN
MAX_EXTCMDMRUNUM
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
MAX_MRU

maxdata.h の 5 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:15 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: maxdata.h ソースファイル

sakura_core » config

maxdata.h

説明を見る。
00001 //2007.10.19 kobake
00002
00003 #pragma once
00004
00005 enum maxdata{
00006     MAX_EDITWINDOWS             = 256,
00007     MAX_SEARCHKEY               =  30,
00008     MAX_REPLACEKEY              =  30,
00009     MAX_GREPFILE                =  30,
00010     MAX_GREPFOLDER              =  30,
00011     MAX_TYPES                   =  20,  //Jul. 12, 2001 JEPRO タイプ別設定の最大設定数を16から増やした
00012     MAX_PRINTSETTINGARR         =   8,
00013
00014     //  From Here Sep. 14, 2001 genta
00015     MACRONAME_MAX               = 64,
00016     MAX_EXTCMDLEN               = 1024,
00017     MAX_EXTCMDMRUNUM            = 32,
00018
00019     MAX_CMDLEN                  = 1024,
00020     MAX_CMDARR                  = 32,
00021     MAX_REGEX_KEYWORD           = 100,  //@@@ 2001.11.17 add MIK
00022
00023     MAX_KEYHELP_FILE            = 20,   //@@@ 2006.04.10 fon
00024
00025     MAX_MARKLINES_LEN           = 1023, // 2002.01.18 hor
00026     MAX_DOCTYPE_LEN             = 7,
00027     MAX_TRANSFORM_FILENAME      = 16,
00028
00032     MAX_CUSTMACRO               = 50,
00033
00034     // 2004/06/21 novice タグジャンプ機能追加
00035     MAX_TAGJUMPNUM              = 100,  // タブジャンプ情報最大値
00036     MAX_TAGJUMP_KEYWORD         = 30,   //タグジャンプ用キーワード最大登録数2005.04.04 MIK
00037     MAX_KEYWORDSET_PER_TYPE     = 10,   // 2004.01.23 genta (for MIK) タイプ別設定毎のキーワードセット数
00038     MAX_VERTLINES = 10, // 2005.11.08 Moca 指定桁縦線
00039
00040     //  MRUリストに関係するmaxdata
00041     MAX_MRU                     =  36,  //Sept. 27, 2000 JEPRO 0-9, A-Z で36個になるのでそれに合わせて30→36に変更。2007.10.23 kobake maxdataに移動。
00042 };
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: module.cpp

sakura_core » util

module.cpp

#include "stdafx.h"
#include "module.h"
#include "util/os.h"
#include <Shlwapi.h>

module.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | VS_VERSION_INFO_HEAD

関数

DWORD | GetDllVersion (LPCTSTR lpszDllName)
HICON | GetAppIcon (HINSTANCE hInst, int nResource, const TCHAR *szFile, bool bSmall)
アプリケーションアイコンの取得
void | GetAppVersionInfo (HINSTANCE hInstance, int nVersionResourceID, DWORD *pdwProductVersionMS, DWORD *pdwProductVersionLS)

関数

HICON GetAppIcon | ( | HINSTANCE | hInst,
 |  | int | nResource,
 |  | const TCHAR * | 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

module.cpp の 75 行で定義されています。

参照先 _MAX_PATH, GetInidirOrExedir(), と NULL.

参照元 CEditWnd::_CreateMainWindow(), CControlTray::CreateTrayIcon(), CEditView::DoGrep(), CEditWnd::GetDefaultIcon(), CTabWnd::InitImageList(), CDlgGrep::OnInitDialog(), と CDlgAbout::OnInitDialog().

void GetAppVersionInfo | ( | HINSTANCE | hInstance,
 |  | int | nVersionResourceID,
 |  | DWORD * | pdwProductVersionMS,
 |  | DWORD * | pdwProductVersionLS
 | ) |  |

リソースから製品バージョンの取得

日付:
2004.05.13 Moca 一度取得したらキャッシュする

module.cpp の 127 行で定義されています。

参照先 NULL, と VS_VERSION_INFO_HEAD::Value.

参照元 CControlTray::CreateTrayIcon(), CShareData::Init(), と CDlgAbout::OnInitDialog().

DWORD GetDllVersion ( LPCTSTR lpszDllName )

シェルやコモンコントロール DLL のバージョン番号を取得

引数:
[in] lpszDllName DLL ファイルのパス
戻り値:
DLL のバージョン番号（失敗時は 0）
作者:
? (from MSDN Library document)
日付:
2006.06.17 ryoji MSDNライブラリから引用

module.cpp の 14 行で定義されています。

参照先 PACKVERSION.

参照元 GetComctl32Version().

Sakura-Editorに対してSat Nov 17 20:27:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: module.cpp ソースファイル

sakura_core » util

module.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "module.h"
00003 #include "util/os.h"
00004 #include <Shlwapi.h>    // 2006.06.17 ryoji
00005
00014 DWORD GetDllVersion(LPCTSTR lpszDllName)
00015 {
00016     HINSTANCE hinstDll;
00017     DWORD dwVersion = 0;
00018
00019     /* For security purposes, LoadLibrary should be provided with a
00020        fully-qualified path to the DLL. The lpszDllName variable should be
00021        tested to ensure that it is a fully qualified path before it is used. */
00022     hinstDll = LoadLibrary(lpszDllName);
00023
00024     if(hinstDll)
00025     {
00026         DLLGETVERSIONPROC pDllGetVersion;
00027         pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hinstDll,
00028                           "DllGetVersion");
00029
00030         /* Because some DLLs might not implement this function, you
00031         must test for it explicitly. Depending on the particular
00032         DLL, the lack of a DllGetVersion function can be a useful
00033         indicator of the version. */
00034
00035         if(pDllGetVersion)
00036         {
00037             DLLVERSIONINFO dvi;
00038             HRESULT hr;
00039
00040             ZeroMemory(&dvi, sizeof(dvi));
00041             dvi.cbSize = sizeof(dvi);
00042
00043             hr = (*pDllGetVersion)(&dvi);
00044
00045             if(SUCCEEDED(hr))
00046             {
00047                dwVersion = PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion);
00048             }
00049         }
00050
00051         FreeLibrary(hinstDll);
00052     }
00053     return dwVersion;
00054 }
00055
00056
00057
00075 HICON GetAppIcon( HINSTANCE hInst, int nResource, const TCHAR* szFile, bool bSmall )
00076 {
00077     // サイズの設定
00078     int size = ( bSmall ? 16 : 32 );
00079
00080     TCHAR szPath[_MAX_PATH];
00081     HICON hIcon;
00082
00083     // ファイルからの読み込みをまず試みる
00084     GetInidirOrExedir( szPath, szFile );
00085
00086     hIcon = (HICON)::LoadImage(
00087         NULL,
00088         szPath,
00089         IMAGE_ICON,
00090         size,
00091         size,
00092         LR_SHARED | LR_LOADFROMFILE
00093     );
00094     if( hIcon != NULL ){
00095         return hIcon;
00096     }
00097
00098     //  ファイルからの読み込みに失敗したらリソースから取得
00099     hIcon = (HICON)::LoadImage(
00100         hInst,
00101         MAKEINTRESOURCE(nResource),
00102         IMAGE_ICON,
00103         size,
00104         size,
00105         LR_SHARED
00106     );
00107
00108     return hIcon;
00109 }
00110
00111
00112
00113
00114
00115
00116 struct VS_VERSION_INFO_HEAD {
00117     WORD    wLength;
00118     WORD    wValueLength;
00119     WORD    bText;
00120     WCHAR   szKey[16];
00121     VS_FIXEDFILEINFO Value;
00122 };
00123
00127 void GetAppVersionInfo(
00128     HINSTANCE   hInstance,
00129     int         nVersionResourceID,
00130     DWORD*      pdwProductVersionMS,
00131     DWORD*      pdwProductVersionLS
00132 )
00133 {
00134     HRSRC                   hRSRC;
00135     HGLOBAL                 hgRSRC;
00136     VS_VERSION_INFO_HEAD*   pVVIH;
00137     /* リソースから製品バージョンの取得 */
00138     *pdwProductVersionMS = 0;
00139     *pdwProductVersionLS = 0;
00140     static bool bLoad = false;
00141     static DWORD dwVersionMS = 0;
00142     static DWORD dwVersionLS = 0;
00143     if( hInstance == NULL && bLoad ){
00144         *pdwProductVersionMS = dwVersionMS;
00145         *pdwProductVersionLS = dwVersionLS;
00146         return;
00147     }
00148     if( NULL != ( hRSRC = ::FindResource( hInstance, MAKEINTRESOURCE(nVersionResourceID), RT_VERSION ) )
00149      && NULL != ( hgRSRC = ::LoadResource( hInstance, hRSRC ) )
00150      && NULL != ( pVVIH = (VS_VERSION_INFO_HEAD*)::LockResource( hgRSRC ) )
00151     ){
00152         *pdwProductVersionMS = pVVIH->Value.dwProductVersionMS;
00153         *pdwProductVersionLS = pVVIH->Value.dwProductVersionLS;
00154         dwVersionMS = pVVIH->Value.dwProductVersionMS;
00155         dwVersionLS = pVVIH->Value.dwProductVersionLS;
00156     }
00157     if( hInstance == NULL ){
00158         bLoad = true;
00159     }
00160     return;
00161
00162 }
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: module.h

sakura_core » util

module.h

ソースコードを見る。

関数

SAKURA_CORE_API void | GetAppVersionInfo (HINSTANCE, int, DWORD *, DWORD *)
HICON | GetAppIcon (HINSTANCE hInst, int nResource, const TCHAR *szFile, bool bSmall=false)
アプリケーションアイコンの取得
DWORD | GetDllVersion (LPCTSTR lpszDllName)
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 TCHAR * | 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

module.cpp の 75 行で定義されています。

参照先 _MAX_PATH, GetInidirOrExedir(), と NULL.

参照元 CEditWnd::_CreateMainWindow(), CControlTray::CreateTrayIcon(), CEditView::DoGrep(), CEditWnd::GetDefaultIcon(), CTabWnd::InitImageList(), CDlgGrep::OnInitDialog(), と CDlgAbout::OnInitDialog().

SAKURA_CORE_API void GetAppVersionInfo | ( | HINSTANCE | hInstance,
 |  | int | nVersionResourceID,
 |  | DWORD * | pdwProductVersionMS,
 |  | DWORD * | pdwProductVersionLS
 | ) |  |

リソースから製品バージョンの取得

日付:
2004.05.13 Moca 一度取得したらキャッシュする

module.cpp の 127 行で定義されています。

参照先 NULL, と VS_VERSION_INFO_HEAD::Value.

参照元 CControlTray::CreateTrayIcon(), CShareData::Init(), と CDlgAbout::OnInitDialog().

DWORD GetDllVersion ( LPCTSTR lpszDllName )

シェルやコモンコントロール DLL のバージョン番号を取得

引数:
[in] lpszDllName DLL ファイルのパス
戻り値:
DLL のバージョン番号（失敗時は 0）
作者:
? (from MSDN Library document)
日付:
2006.06.17 ryoji MSDNライブラリから引用

module.cpp の 14 行で定義されています。

参照先 PACKVERSION.

参照元 GetComctl32Version().

void GetExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |  |

exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

作者:
genta
日付:
2002.12.02 genta

2007.05.20 ryoji 関数名変更（旧：GetExecutableDir）、汎用テキストマッピング化

引数:
pDir | [out] EXEファイルのあるディレクトリを返す場所．予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．

file.cpp の 458 行で定義されています。

参照先 _MAX_PATH, auto_snprintf(), NULL, と SplitPath_FolderAndFile().

参照元 _tfopen_absexe(), CViewCommander::Command_TagsMake(), CShareData::ExpandMetaToFolder(), CEditApp::GetHelpFilePath(), GetInidirOrExedir(), と CEditView::ViewDiffInfo().

void GetInidir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |  |

INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

作者:
ryoji
日付:
2007.05.19 新規作成（GetExedirベース）
引数:
pDir | [out] INIファイルのあるディレクトリを返す場所．予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．

file.cpp の 486 行で定義されています。

参照先 _MAX_PATH, auto_snprintf(), CShareData::GetIniFileName(), CShareData::getInstance(), NULL, と SplitPath_FolderAndFile().

参照元 _tfopen_absini(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CShareData::ExpandMetaToFolder(), CMigemo::GetDllName(), GetInidirOrExedir(), CShareData::Init(), と PropSheetWndProc().

void GetInidirOrExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile,
 |  | BOOL | bRetExedirIfFileEmpty
 | ) |  |

INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．

作者:
ryoji
日付:
2007.05.22 新規作成
引数:
pDir | [out] INIファイルまたはEXEファイルのあるディレクトリを返す場所．
szFile | [in] ディレクトリ名に結合するファイル名．
bRetExedirIfFileEmpty | [in] ファイル名の指定が空の場合はEXEファイルのフルパスを返す．

file.cpp の 515 行で定義されています。

参照先 _MAX_PATH, GetExedir(), GetInidir(), CShareData::getInstance(), CShareData::IsPrivateSettings(), と NULL.

参照元 _tfopen_absini(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CImageListMgr::Create(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), GetAppIcon(), CMigemo::GetDllName(), CShareData::GetMacroFilename(), CMigemo::migemo_load_all(), と CEditView::TagJumpSub().

Sakura-Editorに対してSat Nov 17 20:27:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: module.h ソースファイル

sakura_core » util

module.h

説明を見る。
00001 #pragma once
00002
00003 SAKURA_CORE_API void GetAppVersionInfo( HINSTANCE, int, DWORD*, DWORD* );   /* リソースから製品バージョンの取得 */
00004
00005 HICON GetAppIcon( HINSTANCE hInst, int nResource, const TCHAR* szFile, bool bSmall = false);
00006
00007 DWORD GetDllVersion( LPCTSTR lpszDllName ); // シェルやコモンコントロール DLL のバージョン番号を取得    // 2006.06.17 ryoji
00008
00009 //※サクラ依存
00010 void GetExedir( LPTSTR pDir, LPCTSTR szFile = NULL );
00011 void GetInidir( LPTSTR pDir, LPCTSTR szFile = NULL ); // 2007.05.19 ryoji
00012 void GetInidirOrExedir( LPTSTR pDir, LPCTSTR szFile = NULL, BOOL bRetExedirIfFileEmpty = FALSE ); // 2007.05.22 ryoji
00013
Sakura-Editorに対してSat Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: mrc2brc.cpp

btool

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::convert(), RcCvt::init(), trail, と usage().

void usage ( char * av0 )

mrc2brc.cpp の 16 行で定義されています。

参照先 NULL.

参照元 main().

Sakura-Editorに対してSat Nov 17 20:27:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: mrc2brc.cpp ソースファイル

btool

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 Nov 17 20:24:48 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_icmp.cpp

sakura_core

my_icmp.cpp

独自文字列比較関数 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <limits.h>
#include "my_icmp.h"

my_icmp.cppのインクルード依存関係図

ソースコードを見る。

説明

独自文字列比較関数

作者:
MIK
日付:
Jan. 11, 2002

Feb. 02, 2002 内部処理を統一、全角アルファベット同一視に対応

Apr. 07, 2005 MIK strstr系関数を追加

my_icmp.cpp で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_icmp.cpp ソースファイル

sakura_core

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
00060
00061
00062
00063
00064
00065
00066
00067
00068 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_icmp.h

sakura_core

my_icmp.h

独自比較関数 [詳細]

#include "global.h"

my_icmp.hのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | MY_ICMP_MBS
#define | memicmp(a, b, c) auto_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) auto_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 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 | ) | auto_memicmp((a),(b),(c))

my_icmp.h の 77 行で定義されています。

参照元 CDocLineMgr::MarkSearchWord(), と CDocLineMgr::SearchWord().

#define _stricmp | ( | a,
 |  | b | ) | my_stricmp((a),(b))

my_icmp.h の 82 行で定義されています。

参照元 main().

#define _strnicmp | ( | a,
 |  | b,
 |  | c | ) | my_strnicmp((a),(b),(c))

my_icmp.h の 87 行で定義されています。

#define memicmp | ( | a,
 |  | b,
 |  | c | ) | auto_memicmp((a),(b),(c))

my_icmp.h の 70 行で定義されています。

参照元 amemicmp().

#define MY_ICMP_MBS

my_icmp.h の 64 行で定義されています。

#define MY_INLINE

my_icmp.h の 90 行で定義されています。

#define strchri | ( | a,
 |  | b | ) | my_strchri((a),(b))

my_icmp.h の 101 行で定義されています。

#define stricmp | ( | a,
 |  | b | ) | my_stricmp((a),(b))

my_icmp.h の 71 行で定義されています。

#define strnicmp | ( | a,
 |  | b,
 |  | c | ) | my_strnicmp((a),(b),(c))

my_icmp.h の 72 行で定義されています。

参照元 CShareData::GetFilePathFormat().

#define strstri | ( | a,
 |  | b | ) | my_strstri((a),(b))

my_icmp.h の 97 行で定義されています。

関数

SAKURA_CORE_API char* my_strchr | ( | char * | s1,
 |  | int | c2 |
 | ) |  |  | [inline]

my_icmp.h の 127 行で定義されています。

参照先 my_strchr().

SAKURA_CORE_API const char* my_strchr | ( | const char * | s1,
 |  | int | c2
 | ) |  |

参照元 my_strchr().

SAKURA_CORE_API char* my_strchri | ( | char * | s1,
 |  | int | c2 |
 | ) |  |  | [inline]

my_icmp.h の 122 行で定義されています。

参照先 my_strchri().

SAKURA_CORE_API const char* my_strchri | ( | const char * | s1,
 |  | int | c2
 | ) |  |

参照元 my_strchri().

SAKURA_CORE_API char* my_strstr | ( | char * | s1,
 |  | const char * | s2 |
 | ) |  |  | [inline]

my_icmp.h の 117 行で定義されています。

参照先 my_strstr().

SAKURA_CORE_API const char* my_strstr | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

参照元 my_strstr().

SAKURA_CORE_API char* my_strstri | ( | char * | s1,
 |  | const char * | s2 |
 | ) |  |  | [inline]

my_icmp.h の 112 行で定義されています。

参照先 my_strstri().

SAKURA_CORE_API const char* my_strstri | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

参照元 my_strstri().

Sakura-Editorに対してSat Nov 17 20:27:16 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_icmp.h ソースファイル

sakura_core

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)    auto_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)   auto_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
00090 #define  MY_INLINE
00091 //#define  MY_INLINE  inline
00092
00093 // 2005.04.07 MIK strstr系関数追加
00094 #ifdef strstri
00095 #  undef strstri
00096 #endif
00097 #define strstri(a,b)        my_strstri((a),(b))
00098 #ifdef strchri
00099 #  undef strchri
00100 #endif
00101 #define strchri(a,b)        my_strchri((a),(b))
00102
00103
00104
00105 // 2005.04.07 MIK strstr系関数追加
00106 //  Aug. 21, 2005 genta 実体には__cdeclが無いので，宣言からも削除
00107 SAKURA_CORE_API const char* my_strstri( const char* s1, const char* s2 );
00108 SAKURA_CORE_API const char* my_strstr( const char* s1, const char* s2 );
00109 SAKURA_CORE_API const char* my_strchri( const char* s1, int c2 );
00110 SAKURA_CORE_API const char* my_strchr( const char* s1, int c2 );
00111
00112 inline SAKURA_CORE_API char* my_strstri( char* s1, const char* s2 )
00113 {
00114     return const_cast<char*>(my_strstri(s1, s2));
00115 }
00116
00117 inline SAKURA_CORE_API char* my_strstr( char* s1, const char* s2 )
00118 {
00119     return const_cast<char*>(my_strstr(s1, s2));
00120 }
00121
00122 inline SAKURA_CORE_API char* my_strchri( char* s1, int c2 )
00123 {
00124     return const_cast<char*>(my_strchri(s1, c2));
00125 }
00126
00127 inline SAKURA_CORE_API char* my_strchr( char* s1, int c2 )
00128 {
00129     return const_cast<char*>(my_strchr(s1, c2));
00130 }
00131
00132 #endif  /* _MY_ICMP_H_ */
00133
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: MY_SP.C

sakura_core

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

関数

static int | isAZ (wchar_t wc)
char * | sjis_strrchr2 (unsigned char *pt, const unsigned char ch1, const unsigned char ch2)
wchar_t * | wcsrchr2 (wchar_t *pt, wchar_t ch1, wchar_t ch2)
void | GetExistPath (char *po, const char *pi)
void | GetExistPathW (wchar_t *po, const wchar_t *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 の 156 行で定義されています。

参照元 CharPointerA::_forward(), CharPointerA::_get(), _mbcjmstojis_ex(), _tctomb(), _tctowc(), CShareData::ExpandMetaToFolder(), CNativeA::GetCharNext(), CShareData::GetFilePathFormat(), CShiftJis::GetSizeOfChar(), ACODE::isValidFilenameChar(), CEditDoc::MakeTopicList_tex(), my_splitpath(), CNativeA::Replace_j(), sjis_strrchr2(), と CJis::StrSJIStoJIS().

#define _MAX_DIR 256

MY_SP.C の 60 行で定義されています。

参照元 CMRU::Add(), CDlgOpenFile::CDlgOpenFile(), CDlgOpenFile::Create(), CEditDoc::FileRead(), CEditDoc::FormatBackUpPath(), CShareData::GetIniFileName(), CShareData::GetIniFileNameDirect(), CEditDoc::MakeBackUp(), my_splitpath(), CEditView::OPEN_ExtFromtoExt(), と SplitPath_FolderAndFile().

#define _MAX_DRIVE 3

MY_SP.C の 57 行で定義されています。

参照元 CMRU::Add(), CDlgOpenFile::CDlgOpenFile(), CDlgOpenFile::Create(), CEditDoc::FileRead(), CShareData::GetIniFileName(), CShareData::GetIniFileNameDirect(), IsLocalDrive(), my_splitpath(), CEditView::OPEN_ExtFromtoExt(), と SplitPath_FolderAndFile().

#define _MAX_EXT 256

MY_SP.C の 66 行で定義されています。

参照元 CheckEXT(), CEditDoc::FormatBackUpPath(), CShareData::GetDocumentType(), CTabWnd::GetImageIndex(), CShareData::GetIniFileNameDirect(), CEditWnd::GetRelatedIcon(), CEditDoc::MakeBackUp(), my_splitpath(), OFNHookProc(), CPrintPreview::OnPrint(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::SaveFileDialog(), と SplitPath_FolderAndFile().

#define _MAX_FNAME 256

MY_SP.C の 63 行で定義されています。

参照元 CEditDoc::FormatBackUpPath(), CShareData::GetIniFileNameDirect(), CEditDoc::MakeBackUp(), my_splitpath(), CPrintPreview::OnPrint(), CEditView::OPEN_ExtFromtoExt(), と SplitPath_FolderAndFile().

#define _MAX_PATH 260

MY_SP.C の 52 行で定義されています。

参照元 _tfopen_absexe(), _tfopen_absini(), CMRU::Add(), CDlgOpenFile::CDlgOpenFile(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_EXTHELP1(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagsMake(), CViewCommander::Command_UUDECODE(), CImageListMgr::Create(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CMainToolBar::CreateToolBar(), CTextInputStream_AbsIni::CTextInputStream_AbsIni(), DBMSG_IMP(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CPropCommon::DispatchEvent_PROP_BACKUP(), CPropCommon::DispatchEvent_PROP_FILENAME(), CEditView::DoGrep(), CSMacroMgr::Exec(), CShareData::ExpandMetaToFolder(), CPropTypes::Export_KeyHelp(), CPropTypes::Export_Regex(), CEditDoc::FileCloseOpen(), CEditDoc::FileRead(), CEditDoc::FileSaveAs_Dialog(), GetAppIcon(), CEditView::GetCurrentTextForSearch(), CPropTypes::GetData_KeyHelp(), CPropCommon::GetData_PROP_FILENAME(), CMigemo::GetDllName(), GetExedir(), GetExistPath(), GetExistPathW(), CEditApp::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(), main(), CEditDoc::MakeBackUp(), ApiWrap::MakeSureDirectoryPathExistsW(), CMigemo::migemo_load_w(), CPropCommon::MoveListViewItem_FILENAME(), my_splitpath(), OFNHookProc(), CDlgGrep::OnBnClicked(), CDlgExec::OnBnClicked(), CDlgDiff::OnBnClicked(), CEditWnd::OnCommand(), CEditWnd::OnDropFiles(), CDlgReplace::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgAbout::OnInitDialog(), CEditView::OPEN_ExtFromtoExt(), CEditWnd::OpenDocumentWhenCreate(), 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(), CCommandLine::ParseCommandLine(), CMainToolBar::ProcSearchBox(), PropSheetWndProc(), ResolveShortcutLink(), CEditDoc::SaveFileDialog(), CDlgTagsMake::SelectFolder(), CDlgTagJumpList::SetData(), CDlgFind::SetData(), CDlgDiff::SetData(), CDlgTagJumpList::SetFileName(), CPropCommon::SetMacro2List_Macro(), CPropCommon::SetRegexpVersion(), CShareData::ShareData_IO_2(), CProcessFactory::TestWriteQuit(), CShareData::TransformFileName_MakeCache(), CConvert_UuDecode::UUDECODE(), CEditView::ViewDiffInfo(), と CEditWnd::WinListMenu().

#define GetExistPath_AV_Drive 2

MY_SP.C の 189 行で定義されています。

参照元 GetExistPath(), と GetExistPathW().

#define GetExistPath_IV_Drive 1

MY_SP.C の 188 行で定義されています。

参照元 GetExistPath(), と GetExistPathW().

#define GetExistPath_NO_DriveLetter 0

MY_SP.C の 187 行で定義されています。

参照元 GetExistPath(), と GetExistPathW().

関数

void GetExistPath | ( | char * | po,
 |  | const char * | pi
 | ) |  |

MY_SP.C の 191 行で定義されています。

参照先 _MAX_PATH, GetExistPath_AV_Drive, GetExistPath_IV_Drive, GetExistPath_NO_DriveLetter, NULL, と sjis_strrchr2().

参照元 my_splitpath().

void GetExistPathW | ( | wchar_t * | po,
 |  | const wchar_t * | pi
 | ) |  |

MY_SP.C の 287 行で定義されています。

参照先 _MAX_PATH, GetExistPath_AV_Drive, GetExistPath_IV_Drive, GetExistPath_NO_DriveLetter, isAZ(), NULL, と wcsrchr2().

static int isAZ ( wchar_t wc ) [static]

MY_SP.C の 150 行で定義されています。

参照元 GetExistPathW().

void my_splitpath | ( | const char * | comln,
 |  | char * | drv,
 |  | char * | dir,
 |  | char * | fnm,
 |  | char * | ext
 | ) |  |

MY_SP.C の 365 行で定義されています。

参照先 _IS_SJIS_1, _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _MAX_PATH, GetExistPath(), NULL, と sjis_strrchr2().

char* sjis_strrchr2 | ( | unsigned char * | pt,
 |  | const unsigned char | ch1,
 |  | const unsigned char | ch2
 | ) |  |

MY_SP.C の 163 行で定義されています。

参照先 _IS_SJIS_1, と NULL.

参照元 GetExistPath(), と my_splitpath().

wchar_t* wcsrchr2 | ( | wchar_t * | pt,
 |  | wchar_t | ch1,
 |  | wchar_t | ch2
 | ) |  |

MY_SP.C の 172 行で定義されています。

参照先 NULL.

参照元 GetExistPathW().

Sakura-Editorに対してSat Nov 17 20:27:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: MY_SP.C ソースファイル

sakura_core

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 static int isAZ(wchar_t wc)
00151 {
00152     return (wc>=L'A' && wc<=L'Z') || (wc>=L'a' && wc<=L'z');
00153 }
00154
00155 /* ↓ Shift_JIS の漢字の1バイト目の判定 */
00156 #define _IS_SJIS_1(ch)  ( ( ( ch >=0x081 )&&( ch <=0x09F ) ) || ( ( ch >=0x0E0 )&&( ch <=0x0FC ) ) )
00157
00158 /* Shift_JIS 対応で検索対象文字を２個指定できる strrchr() みたいなもの。
00159 / 指定された２つの文字のうち、見つかった方(より後方の方)の位置を返す。
00160 / # strrchr( char *s , char c ) とは、文字列 s 中の最後尾の c を探し出す関数。
00161 / # 文字 c が見つかったら、その位置を返す。
00162 / # 文字 c が見つからない場合は NULL を返す。 */
00163 char    *sjis_strrchr2( unsigned char *pt , const unsigned char ch1 , const unsigned char ch2 ){
00164     unsigned char   *pf = NULL;
00165     while( *pt != '\0' ){   /* 文字列の終端まで調べる。 */
00166         if( ( *pt == ch1 ) || ( *pt == ch2 ) )  pf = pt;    /* pf = 検索文字の位置 */
00167         if( _IS_SJIS_1(*pt) )   pt++;   /* Shift_JIS の1文字目なら、次の1文字をスキップ */
00168         if( *pt != '\0' )       pt++;   /* 次の文字へ */
00169     }
00170     return  pf;
00171 }
00172 wchar_t* wcsrchr2( wchar_t *pt , wchar_t ch1 , wchar_t ch2 ){
00173     wchar_t *pf = NULL;
00174     while( *pt != L'\0' ){  /* 文字列の終端まで調べる。 */
00175         if( ( *pt == ch1 ) || ( *pt == ch2 ) )  pf = pt;    /* pf = 検索文字の位置 */
00176         if( *pt != '\0' )       pt++;   /* 次の文字へ */
00177     }
00178     return  pf;
00179 }
00180 /* 文字列 pi 中の先頭にある有効なパス名（実在するファイル・ディレクトリ名）部分
00181 　 のみを po に書き出す。po は char po[_MAX_PATH]; 確保しておく事。 */
00182 #ifdef  LSI_C   /* LSI-C の場合。 */
00183 void far    _asm_void_( char * );
00184 void far    int_nop(){  _asm_void_( "IRET\n" ); }
00185 #endif  /* LSI_C */
00186
00187 #define     GetExistPath_NO_DriveLetter 0   /* ドライブレターが無い */
00188 #define     GetExistPath_IV_Drive       1   /* ドライブが無効 */
00189 #define     GetExistPath_AV_Drive       2   /* ドライブが有効 */
00190
00191 void    GetExistPath( char *po , const char *pi )
00192 {
00193     char    *pw,*ps;
00194     int     cnt;
00195     char    drv[4] = "_:\\";
00196     int     dl;     /* ドライブの状態 */
00197     #ifdef  LSI_C
00198     void    far     *int24h;
00199     #endif  /* LSI_C */
00200
00201     /* pi の内容を
00202     / ・ " を削除しつつ
00203     / ・ / を \ に変換しつつ(Win32API では / も \ と同等に扱われるから)
00204     / ・最大 ( _MAX_PATH -1 ) 文字まで
00205     / po にコピーする。 */
00206     for( pw=po,cnt=0 ; ( *pi != '\0' ) && ( cnt < _MAX_PATH -1 ) ; pi++ ){
00207         /* /," 共に Shift_JIS の漢字コード中には含まれないので Shift_JIS 判定は不要。 */
00208         if( *pi == '\"' )   continue;       /*  " なら何もしない。次の文字へ */
00209         if( *pi == '/' )    *pw++ = '\\';   /*  / なら \ に変換してコピー    */
00210         else                *pw++ = *pi;    /* その他の文字はそのままコピー  */
00211         cnt++;  /* コピーした文字数 ++ */
00212     }
00213     *pw = '\0';     /* 文字列終端 */
00214
00215     #ifdef  LSI_C   /* LSI-C の場合のみ */
00216     /* 準備ができていません 読み取り中 ドライブ X:
00217     　 中止(A), 再試行(R), 失敗(F)?
00218     　 を出さないようにする。 */
00219     int24h = _dos_getvect(0x24);    /* 割込みベクタ待避 */
00220     _dos_setvect(0x24,int_nop);     /* 何もしない処理に入れ替える */
00221     #endif  /* LSI_C */
00222
00223     dl = GetExistPath_NO_DriveLetter;   /*「ドライブレターが無い」にしておく*/
00224     if(
00225         ( *(po+1) == ':' )&&
00226         (
00227             ( ( *po >='A' )&&( *po <='Z' ) ) ||
00228             ( ( *po >='a' )&&( *po <='z' ) )
00229         )
00230     ){  /* 先頭にドライブレターがある。そのドライブが有効かどうか判定する */
00231         drv[0] = *po;
00232         if( access(drv,0) == 0 )    dl = GetExistPath_AV_Drive;     /* 有効 */
00233         else                        dl = GetExistPath_IV_Drive;     /* 無効 */
00234     }
00235
00236     #ifdef  LSI_C   /* LSI-C の場合のみ */
00237     _dos_setvect(0x24,int24h);  /* 割込みベクタ復活 */
00238     #endif  /* LSI_C */
00239
00240     if( dl == GetExistPath_IV_Drive ){  /* ドライブ自体が無効 */
00241         /* フロッピーディスク中のファイルが指定されていて、
00242         　 そのドライブにフロッピーディスクが入っていない、とか */
00243         *po = '\0'; /* 返値文字列 = "";(空文字列) */
00244         return;     /* これ以上何もしない */
00245     }
00246
00247     /* ps = 検索開始位置 */
00248     ps = po;    /* ↓文字列の先頭が \\ なら、\ 検索処理の対象から外す */
00249     if( ( *po == '\\' )&&( *(po+1) == '\\' ) )  ps +=2;
00250
00251     if( *ps == '\0' ){  /* 検索対象が空文字列なら */
00252         *po = '\0';     /* 返値文字列 = "";(空文字列) */
00253         return;         /*これ以上何もしない */
00254     }
00255
00256     for(;;){
00257         if( access(po,0) == 0 ) break;  /* 有効なパス文字列が見つかった */
00258         /* ↓文字列最後尾の \ または ' ' を探し出し、そこを文字列終端にする。*/
00259
00260         pw = sjis_strrchr2(ps,'\\',' ');    /* 最末尾の \ か ' ' を探す。 */
00261         if ( pw == NULL ){  /* 文字列中に '\\' も ' ' も無かった */
00262             /* 例えば "C:testdir" という文字列が来た時に、"C:testdir" が実在
00263             　 しなくとも C:ドライブが有効なら "C:" という文字列だけでも返し
00264             　 たい。以下↓は、そのための処理。 */
00265             if( dl == GetExistPath_AV_Drive ){
00266                 /* 先頭に有効なドライブのドライブレターがある。 */
00267                 *(po+2) = '\0';     /* ドライブレター部の文字列のみ返す */
00268             }
00269             else{   /* 有効なパス部分が全く見つからなかった */
00270                 *po = '\0'; /* 返値文字列 = "";(空文字列) */
00271             }
00272             break;      /* ループを抜ける */
00273         }
00274         /* ↓ルートディレクトリを引っかけるための処理 */
00275         if( ( *pw == '\\' )&&( *(pw-1) == ':' ) ){  /* C:\ とかの \ っぽい */
00276             * (pw+1) = '\0';        /* \ の後ろの位置を文字列の終端にする。 */
00277             if( access(po,0) == 0 ) break;  /* 有効なパス文字列が見つかった */
00278         }
00279         *pw = '\0';     /* \ か ' ' の位置を文字列の終端にする。 */
00280         /* ↓末尾がスペースなら、スペースを全て削除する */
00281         while( ( pw != ps ) && ( *(pw-1) == ' ' ) ) * --pw = '\0';
00282     }
00283
00284     return;
00285 }
00286
00287 void GetExistPathW( wchar_t *po , const wchar_t *pi )
00288 {
00289     wchar_t *pw,*ps;
00290     int     cnt;
00291     wchar_t drv[4] = L"_:\\";
00292     int     dl;     /* ドライブの状態 */
00293
00294     /* pi の内容を
00295     / ・ " を削除しつつ
00296     / ・ / を \ に変換しつつ(Win32API では / も \ と同等に扱われるから)
00297     / ・最大 ( _MAX_PATH-1 ) 文字まで
00298     / po にコピーする。 */
00299     for( pw=po,cnt=0 ; ( *pi != L'\0' ) && ( cnt < _MAX_PATH-1 ) ; pi++ ){
00300         /* /," 共に Shift_JIS の漢字コード中には含まれないので Shift_JIS 判定は不要。 */
00301         if( *pi == L'\"' )  continue;       /*  " なら何もしない。次の文字へ */
00302         if( *pi == L'/' )   *pw++ = L'\\';  /*  / なら \ に変換してコピー    */
00303         else                *pw++ = *pi;    /* その他の文字はそのままコピー  */
00304         cnt++;  /* コピーした文字数 ++ */
00305     }
00306     *pw = L'\0';        /* 文字列終端 */
00307
00308     dl = GetExistPath_NO_DriveLetter;   /*「ドライブレターが無い」にしておく*/
00309     if( *(po+1)==L':' && isAZ(*po) ){   /* 先頭にドライブレターがある。そのドライブが有効かどうか判定する */
00310         drv[0] = *po;
00311         if( _waccess(drv,0) == 0 )  dl = GetExistPath_AV_Drive;     /* 有効 */
00312         else                        dl = GetExistPath_IV_Drive;     /* 無効 */
00313     }
00314
00315     if( dl == GetExistPath_IV_Drive ){  /* ドライブ自体が無効 */
00316         /* フロッピーディスク中のファイルが指定されていて、
00317         　 そのドライブにフロッピーディスクが入っていない、とか */
00318         *po = L'\0';    /* 返値文字列 = "";(空文字列) */
00319         return;     /* これ以上何もしない */
00320     }
00321
00322     /* ps = 検索開始位置 */
00323     ps = po;    /* ↓文字列の先頭が \\ なら、\ 検索処理の対象から外す */
00324     if( ( *po == L'\\' )&&( *(po+1) == L'\\' ) )    ps +=2;
00325
00326     if( *ps == L'\0' ){ /* 検索対象が空文字列なら */
00327         *po = L'\0';        /* 返値文字列 = "";(空文字列) */
00328         return;         /*これ以上何もしない */
00329     }
00330
00331     for(;;){
00332         if( _waccess(po,0) == 0 )   break;  /* 有効なパス文字列が見つかった */
00333         /* ↓文字列最後尾の \ または ' ' を探し出し、そこを文字列終端にする。*/
00334
00335         pw = wcsrchr2(ps,'\\',' '); /* 最末尾の \ か ' ' を探す。 */
00336         if ( pw == NULL ){  /* 文字列中に '\\' も ' ' も無かった */
00337             /* 例えば "C:testdir" という文字列が来た時に、"C:testdir" が実在
00338             　 しなくとも C:ドライブが有効なら "C:" という文字列だけでも返し
00339             　 たい。以下↓は、そのための処理。 */
00340             if( dl == GetExistPath_AV_Drive ){
00341                 /* 先頭に有効なドライブのドライブレターがある。 */
00342                 *(po+2) = L'\0';        /* ドライブレター部の文字列のみ返す */
00343             }
00344             else{   /* 有効なパス部分が全く見つからなかった */
00345                 *po = L'\0';    /* 返値文字列 = "";(空文字列) */
00346             }
00347             break;      /* ループを抜ける */
00348         }
00349         /* ↓ルートディレクトリを引っかけるための処理 */
00350         if( ( *pw == L'\\' )&&( *(pw-1) == L':' ) ){    /* C:\ とかの \ っぽい */
00351             * (pw+1) = L'\0';       /* \ の後ろの位置を文字列の終端にする。 */
00352             if( _waccess(po,0) == 0 )   break;  /* 有効なパス文字列が見つかった */
00353         }
00354         *pw = L'\0';        /* \ か ' ' の位置を文字列の終端にする。 */
00355         /* ↓末尾がスペースなら、スペースを全て削除する */
00356         while( ( pw != ps ) && ( *(pw-1) == L' ' ) )    * --pw = L'\0';
00357     }
00358
00359     return;
00360 }
00361
00362 /* 与えられたコマンドライン文字列の先頭部分から実在するファイル・ディレクトリ
00363 　 のパス文字列を抽出し、そのパスを分解して drv dir fnm ext に書き込む。
00364 　 先頭部分に有効なパス名が存在しない場合、全てに空文字列が返る。 */
00365 void    my_splitpath ( const char *comln , char *drv,char *dir,char *fnm,char *ext )
00366 {
00367     char    ppp[_MAX_PATH];     /* パス格納（作業用） */
00368     unsigned char   *pd;
00369     unsigned char   *pf;
00370     unsigned char   *pe;
00371     unsigned char   ch;
00372     #ifdef  _USE_MS_DOS_FUNC_
00373         unsigned    attr;
00374     #else
00375         DWORD   attr;
00376     #endif
00377     int     a_dir;
00378
00379     if( drv != NULL )   *drv = '\0';
00380     if( dir != NULL )   *dir = '\0';
00381     if( fnm != NULL )   *fnm = '\0';
00382     if( ext != NULL )   *ext = '\0';
00383     if( *comln == '\0' )    return;
00384
00385     /* コマンドライン先頭部分の実在するパス名を ppp に書き出す。 */
00386     GetExistPath( ppp , comln );
00387
00388     if( *ppp != '\0' ) {    /* ファイル・ディレクトリが存在する場合 */
00389         /* 先頭文字がドライブレターかどうか判定し、
00390         　 pd = ディレクトリ名の先頭位置に設定する。 */
00391         pd = ppp;
00392         if(
00393             ( *(pd+1)==':' )&&
00394             ( ( ( *pd >='A' )&&( *pd <='Z' ) ) || ( ( *pd >='a' )&&( *pd <='z' ) ) )
00395         ){  /* 先頭にドライブレターがある。 */
00396             pd += 2;    /* pd = ドライブレター部の後ろ         */
00397         }               /*      ( = ディレクトリ名の先頭位置 ) */
00398         /* ここまでで、pd = ディレクトリ名の先頭位置 */
00399
00400         #ifdef  _USE_MS_DOS_FUNC_
00401             _dos_getfileattr(ppp,&attr);
00402             a_dir = ( attr & _A_SUBDIR ) ? 1 : 0;
00403         #else
00404             attr =  GetFileAttributesA(ppp);
00405             a_dir = ( attr & FILE_ATTRIBUTE_DIRECTORY ) ?  1 : 0;
00406         #endif
00407         if( ! a_dir ){  /* 見つけた物がファイルだった場合。 */
00408             pf = sjis_strrchr2(ppp,'\\','\\');  /* 最末尾の \ を探す。 */
00409             if(pf != NULL)  pf++;       /* 見つかった→  pf=\の次の文字の位置*/
00410             else            pf = pd;    /* 見つからない→pf=パス名の先頭位置 */
00411             /* ここまでで pf = ファイル名の先頭位置 */
00412             pe = sjis_strrchr2(pf,'.','.');     /* 最末尾の '.' を探す。 */
00413             if( pe != NULL ){                   /* 見つかった(pe = '.'の位置)*/
00414                 if( ext != NULL ){  /* 拡張子を返値として書き込む。 */
00415                     strncpy(ext,pe,_MAX_EXT -1);
00416                     ext[_MAX_EXT -1] = '\0';
00417                 }
00418                 *pe = '\0'; /* 区切り位置を文字列終端にする。pe = 拡張子名の先頭位置。 */
00419             }
00420             if( fnm != NULL ){  /* ファイル名を返値として書き込む。 */
00421                 strncpy(fnm,pf,_MAX_FNAME -1);
00422                 fnm[_MAX_FNAME -1] = '\0';
00423             }
00424             *pf = '\0'; /* ファイル名の先頭位置を文字列終端にする。 */
00425         }
00426         /* ここまでで文字列 ppp はドライブレター＋ディレクトリ名のみになっている */
00427         if( dir != NULL ){
00428             /* ディレクトリ名の最後の文字が \ ではない場合、\ にする。 */
00429
00430             /* ↓最後の文字を ch に得る。(ディレクトリ文字列が空の場合 ch='\\' となる) */
00431             for( ch = '\\' , pf = pd ; *pf != '\0' ; pf++ ){
00432                 ch = *pf;
00433                 if( _IS_SJIS_1(*pf) )   pf++;   /* Shift_JIS の1文字目なら次の1文字をスキップ */
00434             }
00435             /* 文字列が空でなく、かつ、最後の文字が \ でなかったならば \ を追加。 */
00436             if( ( ch != '\\' ) && ( strlen(ppp) < _MAX_PATH -1 ) ){
00437                 *pf++ = '\\';   *pf = '\0';
00438             }
00439
00440             /* ディレクトリ名を返値として書き込む。 */
00441             strncpy(dir,pd,_MAX_DIR -1);
00442             dir[_MAX_DIR -1] = '\0';
00443         }
00444         *pd = '\0';     /* ディレクトリ名の先頭位置を文字列終端にする。 */
00445         if( drv != NULL ){  /* ドライブレターを返値として書き込む。 */
00446             strncpy(drv,ppp,_MAX_DRIVE -1);
00447             drv[_MAX_DRIVE -1] = '\0';
00448         }
00449     }
00450     return;
00451 }
00452
00453
00454 #ifdef _UNICODE
00455 /* 与えられたコマンドライン文字列の先頭部分から実在するファイル・ディレクトリ
00456 　 のパス文字列を抽出し、そのパスを分解して drv dir fnm ext に書き込む。
00457 　 先頭部分に有効なパス名が存在しない場合、全てに空文字列が返る。 */
00458 void my_splitpath_w (
00459     const wchar_t *comln,
00460     wchar_t *drv,
00461     wchar_t *dir,
00462     wchar_t *fnm,
00463     wchar_t *ext
00464 )
00465 {
00466     wchar_t ppp[_MAX_PATH];     /* パス格納（作業用） */
00467     wchar_t *pd;
00468     wchar_t *pf;
00469     wchar_t *pe;
00470     wchar_t ch;
00471     DWORD   attr;
00472     int     a_dir;
00473
00474     if( drv != NULL )   *drv = L'\0';
00475     if( dir != NULL )   *dir = L'\0';
00476     if( fnm != NULL )   *fnm = L'\0';
00477     if( ext != NULL )   *ext = L'\0';
00478     if( *comln == L'\0' )   return;
00479
00480     /* コマンドライン先頭部分の実在するパス名を ppp に書き出す。 */
00481     GetExistPathW( ppp , comln );
00482
00483     if( *ppp != L'\0' ) {   /* ファイル・ディレクトリが存在する場合 */
00484         /* 先頭文字がドライブレターかどうか判定し、
00485         　 pd = ディレクトリ名の先頭位置に設定する。 */
00486         pd = ppp;
00487         if(*(pd+1)==L':' && isAZ(*pd)){ /* 先頭にドライブレターがある。 */
00488             pd += 2;    /* pd = ドライブレター部の後ろ         */
00489         }               /*      ( = ディレクトリ名の先頭位置 ) */
00490         /* ここまでで、pd = ディレクトリ名の先頭位置 */
00491
00492         attr =  GetFileAttributesW(ppp);
00493         a_dir = ( attr & FILE_ATTRIBUTE_DIRECTORY ) ?  1 : 0;
00494
00495         if( ! a_dir ){  /* 見つけた物がファイルだった場合。 */
00496             pf = wcsrchr(ppp,L'\\');    /* 最末尾の \ を探す。 */
00497             if(pf != NULL)  pf++;       /* 見つかった→  pf=\の次の文字の位置*/
00498             else            pf = pd;    /* 見つからない→pf=パス名の先頭位置 */
00499             /* ここまでで pf = ファイル名の先頭位置 */
00500             pe = wcsrchr(pf,L'.');      /* 最末尾の '.' を探す。 */
00501             if( pe != NULL ){                   /* 見つかった(pe = L'.'の位置)*/
00502                 if( ext != NULL ){  /* 拡張子を返値として書き込む。 */
00503                     wcsncpy(ext,pe,_MAX_EXT-1);
00504                     ext[_MAX_EXT -1] = L'\0';
00505                 }
00506                 *pe = L'\0';    /* 区切り位置を文字列終端にする。pe = 拡張子名の先頭位置。 */
00507             }
00508             if( fnm != NULL ){  /* ファイル名を返値として書き込む。 */
00509                 wcsncpy(fnm,pf,_MAX_FNAME-1);
00510                 fnm[_MAX_FNAME -1] = L'\0';
00511             }
00512             *pf = L'\0';    /* ファイル名の先頭位置を文字列終端にする。 */
00513         }
00514         /* ここまでで文字列 ppp はドライブレター＋ディレクトリ名のみになっている */
00515         if( dir != NULL ){
00516             /* ディレクトリ名の最後の文字が \ ではない場合、\ にする。 */
00517
00518             /* ↓最後の文字を ch に得る。(ディレクトリ文字列が空の場合 ch=L'\\' となる) */
00519             for( ch = L'\\' , pf = pd ; *pf != L'\0' ; pf++ ){
00520                 ch = *pf;
00521             }
00522             /* 文字列が空でなく、かつ、最後の文字が \ でなかったならば \ を追加。 */
00523             if( ( ch != L'\\' ) && ( wcslen(ppp) < _MAX_PATH -1 ) ){
00524                 *pf++ = L'\\';  *pf = L'\0';
00525             }
00526
00527             /* ディレクトリ名を返値として書き込む。 */
00528             wcsncpy(dir,pd,_MAX_DIR -1);
00529             dir[_MAX_DIR -1] = L'\0';
00530         }
00531         *pd = L'\0';        /* ディレクトリ名の先頭位置を文字列終端にする。 */
00532         if( drv != NULL ){  /* ドライブレターを返値として書き込む。 */
00533             wcsncpy(drv,ppp,_MAX_DRIVE -1);
00534             drv[_MAX_DRIVE -1] = L'\0';
00535         }
00536     }
00537     return;
00538 }
00539 #endif
00540
00541 /* file end */
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: MY_SP.h

sakura_core

MY_SP.h

引数を正しく無視するsplitpath [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | my_splitpath_t my_splitpath

関数

void | my_splitpath (const char *comln, char *drv, char *dir, char *fnm, char *ext)
void | my_splitpath_w (const wchar_t *comln, wchar_t *drv, wchar_t *dir, wchar_t *fnm, wchar_t *ext)
void | my_splitpath_t (const TCHAR *comln, TCHAR *drv, TCHAR *dir, TCHAR *fnm, TCHAR *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 で定義されています。

マクロ定義

#define my_splitpath_t my_splitpath

MY_SP.h の 48 行で定義されています。

参照元 CDlgOpenFile::Create().

関数

void my_splitpath | ( | const char * | comln,
 |  | char * | drv,
 |  | char * | dir,
 |  | char * | fnm,
 |  | char * | ext
 | ) |  |

MY_SP.C の 365 行で定義されています。

参照先 _IS_SJIS_1, _MAX_DIR, _MAX_DRIVE, _MAX_EXT, _MAX_FNAME, _MAX_PATH, GetExistPath(), NULL, と sjis_strrchr2().

void my_splitpath_t | ( | const TCHAR * | comln,
 |  | TCHAR * | drv,
 |  | TCHAR * | dir,
 |  | TCHAR * | fnm,
 |  | TCHAR * | ext
 | ) |  |

void my_splitpath_w | ( | const wchar_t * | comln,
 |  | wchar_t * | drv,
 |  | wchar_t * | dir,
 |  | wchar_t * | fnm,
 |  | wchar_t * | ext
 | ) |  |

char* sjis_strrchr2 | ( | unsigned char * | pt,
 |  | const unsigned char | ch1,
 |  | const unsigned char | ch2
 | ) |  |

MY_SP.C の 163 行で定義されています。

参照先 _IS_SJIS_1, と NULL.

参照元 GetExistPath(), と my_splitpath().

Sakura-Editorに対してSat Nov 17 20:27:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: MY_SP.h ソースファイル

sakura_core

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 void my_splitpath_w ( const wchar_t *comln , wchar_t *drv,wchar_t *dir,wchar_t *fnm,wchar_t *ext );
00036 void my_splitpath_t ( const TCHAR *comln , TCHAR *drv,TCHAR *dir,TCHAR *fnm,TCHAR *ext );
00037
00038 char    *sjis_strrchr2( unsigned char *pt , const unsigned char ch1 , const unsigned char ch2 );
00039
00040 #ifdef __cplusplus
00041 }
00042 #endif
00043
00044
00045 #ifdef _UNICODE
00046 #define my_splitpath_t my_splitpath_w
00047 #else
00048 #define my_splitpath_t my_splitpath
00049 #endif
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_tchar.h

sakura_core

my_tchar.h

my_icmp/my_stringのShift_JISとUnicodeを切り替えるための定義 [詳細]

#include "my_icmp.h"

my_tchar.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | my_tmemicmp auto_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 の 46 行で定義されています。

参照元 CShareData::ExpandMetaToFolder().

#define my_tcsicmp my_stricmp

my_tchar.h の 41 行で定義されています。

参照元 CShareData::ExpandMetaToFolder().

#define my_tcsnicmp my_strnicmp

my_tchar.h の 42 行で定義されています。

参照元 CShareData::ExpandMetaToFolder().

#define my_tmemicmp auto_memicmp

my_tchar.h の 40 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:17 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: my_tchar.h ソースファイル

sakura_core

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 wmemicmp
00028 #define  my_tcsicmp  wcsicmp
00029 #define  my_tcsnicmp 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 auto_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 Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: mymessage.h

sakura_core

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_SHOWOWNEDPOPUPS (WM_APP+216)
#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 の 95 行で定義されています。

参照元 CEditView::Create().

#define MYWM_ADDSTRING (WM_APP+206)

テキスト追加通知(共有データ経由)

mymessage.h の 60 行で定義されています。

参照元 CEditWnd::DispatchEvent(), と CShareData::TraceOut().

#define MYWM_BAR_CHANGE_NOTIFY (WM_APP+214)

バーの表示・非表示変更メッセージ

mymessage.h の 82 行で定義されています。

参照元 CViewCommander::Command_SHOWFUNCKEY(), CViewCommander::Command_SHOWSTATUSBAR(), CViewCommander::Command_SHOWTAB(), CViewCommander::Command_SHOWTOOLBAR(), と CEditWnd::DispatchEvent().

#define MYWM_CHANGESETTING (WM_APP+1520)

設定が変更されたことの通知メッセージ

mymessage.h の 32 行で定義されています。

参照元 CViewCommander::Command_FONT(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CEditDoc::OpenPropertySheet(), と CEditDoc::OpenPropertySheetTypes().

#define MYWM_CLOSE (WM_APP+200)

トレイからエディタへの終了要求

mymessage.h の 40 行で定義されています。

参照元 CViewCommander::Command_WINCLOSE(), CEditWnd::DispatchEvent(), と CShareData::RequestCloseAllEditor().

#define MYWM_DELETE_ME (WM_APP+209)

編集ウィンドウオブジェクトからのオブジェクト削除要求

mymessage.h の 70 行で定義されています。

参照元 CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

#define MYWM_DOSPLIT (WM_APP+1500)

mymessage.h の 23 行で定義されています。

参照元 CEditView::DispatchEvent(), CSplitterWnd::DispatchEvent_WM_APP(), CSplitBoxWnd::OnLButtonDblClk(), と CSplitBoxWnd::OnLButtonUp().

#define MYWM_GETCARETPOS (WM_APP+205)

カーソル位置取得要求

mymessage.h の 55 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CEditWnd::DispatchEvent(), と CNormalProcess::Initialize().

#define MYWM_GETFILEINFO (WM_APP+203)

トレイからエディタへの編集ファイル情報 要求通知

mymessage.h の 43 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), CEditWnd::DispatchEvent(), CDlgDiff::GetData(), CDlgCompare::GetData(), CShareData::IsPathOpened(), CEditWnd::OnDropFiles(), CDlgDiff::SetData(), CDlgCompare::SetData(), と CEditWnd::WinListMenu().

#define MYWM_GETLINEDATA (WM_APP+208)

行(改行単位)データの要求

mymessage.h の 66 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CEditWnd::DispatchEvent(), と CEditView::MakeDiffTmpFile().

#define MYWM_HTMLHELP (WM_APP+212)

mymessage.h の 76 行で定義されています。

参照元 CViewCommander::Command_EXTHTMLHELP(), と CControlTray::DispatchEvent().

#define MYWM_IME_REQUEST 0x288

mymessage.h の 92 行で定義されています。

参照元 CEditWnd::DispatchEvent(), と CEditView::DispatchEvent().

#define MYWM_NOTIFYICON (WM_APP+100)

タスクトレイからの通知メッセージ

mymessage.h の 35 行で定義されています。

参照元 CControlTray::DispatchEvent(), と CControlTray::TrayMessage().

#define MYWM_OPENNEWEDITOR (WM_APP+210)

新しい編集ウィンドウの作成依頼(コマンドラインを渡す)

mymessage.h の 73 行で定義されています。

#define MYWM_SETACTIVEPANE (WM_APP+1510)

mymessage.h の 27 行で定義されています。

参照元 CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CSplitterWnd::DispatchEvent_WM_APP(), CSplitterWnd::DoSplit(), と CEditDoc::HandleCommand().

#define MYWM_SETCARETPOS (WM_APP+204)

カーソル位置変更通知

mymessage.h の 46 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CViewCommander::Command_TAGJUMPBACK(), CEditWnd::DispatchEvent(), CNormalProcess::Initialize(), CDlgFuncList::OnJump(), と CEditView::TagJumpSub().

#define MYWM_SETREFERER (WM_APP+207)

タグジャンプ元通知

mymessage.h の 63 行で定義されています。

#define MYWM_SHOWOWNEDPOPUPS (WM_APP+216)

ポップアップウィンドウの表示切替指示

mymessage.h の 88 行で定義されています。

参照元 CEditWnd::DispatchEvent().

#define MYWM_TAB_WINDOW_NOTIFY (WM_APP+213)

タブウインドウ用メッセージ

mymessage.h の 79 行で定義されています。

参照元 ActivateFrameWindow(), CShareData::AddEditWndList(), CEditWnd::ChangeFileNameNotify(), CViewCommander::Command_BIND_WINDOW(), CShareData::DeleteEditWndList(), CEditWnd::DispatchEvent(), CTabWnd::ReorderTab(), CTabWnd::SeparateGroup(), と CTabWnd::ShowHideWindow().

#define MYWM_UIPI_CHECK (WM_APP+215)

エディタ−トレイ間でのUI特権分離の確認メッセージ

mymessage.h の 85 行で定義されています。

参照元 CEditWnd::Create(), CEditWnd::DispatchEvent(), と CControlTray::DispatchEvent().

#define RWM_RECONVERT TEXT("MSIMEReconvert")

mymessage.h の 96 行で定義されています。

参照元 CEditView::Create().

列挙型

enum e_PM_SETCARETPOS_SELECTSTATE

MYWM_SETCARETPOSメッセージのLPARAM

列挙型の値:
PM_SETCARETPOS_NOSELECT | 選択解除
PM_SETCARETPOS_SELECT | 選択開始・変更
PM_SETCARETPOS_KEEPSELECT | 現在の選択状態を保って移動

mymessage.h の 48 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: mymessage.h ソースファイル

sakura_core

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 //wParam: X
00022 //lParam: Y
00023 #define MYWM_DOSPLIT        (WM_APP+1500)
00024
00025 //wParam: なんかのインデックス
00026 //lParam: boolっぽい何か
00027 #define MYWM_SETACTIVEPANE  (WM_APP+1510)
00028
00030 //wParam:未使用
00031 //lParam:未使用
00032 #define MYWM_CHANGESETTING  (WM_APP+1520)
00033
00035 #define MYWM_NOTIFYICON     (WM_APP+100)
00036
00037
00038
00040 #define MYWM_CLOSE          (WM_APP+200)
00041
00043 #define MYWM_GETFILEINFO    (WM_APP+203)
00044
00046 #define MYWM_SETCARETPOS    (WM_APP+204)
00048 enum e_PM_SETCARETPOS_SELECTSTATE {
00049     PM_SETCARETPOS_NOSELECT     = 0,
00050     PM_SETCARETPOS_SELECT       = 1,
00051     PM_SETCARETPOS_KEEPSELECT   = 2,
00052 };
00053
00055 #define MYWM_GETCARETPOS    (WM_APP+205)
00056
00058 //wParam:未使用
00059 //lParam:未使用
00060 #define MYWM_ADDSTRING      (WM_APP+206)
00061
00063 #define MYWM_SETREFERER     (WM_APP+207)
00064
00066 #define MYWM_GETLINEDATA    (WM_APP+208)
00067
00068
00070 #define MYWM_DELETE_ME      (WM_APP+209)
00071
00073 #define MYWM_OPENNEWEDITOR  (WM_APP+210)
00074
00075 //ヘルプっぽい何か
00076 #define MYWM_HTMLHELP           (WM_APP+212)
00077
00079 #define MYWM_TAB_WINDOW_NOTIFY  (WM_APP+213)    //@@@ 2003.05.31 MIK
00080
00082 #define MYWM_BAR_CHANGE_NOTIFY  (WM_APP+214)    //@@@ 2003.06.10 MIK
00083
00085 #define MYWM_UIPI_CHECK (WM_APP+215)    //@@@ 2007.06.07 ryoji
00086
00088 #define MYWM_SHOWOWNEDPOPUPS (WM_APP+216)   //@@@ 2007.10.22 ryoji
00089
00090 /* 再変換対応 */ // 20020331 aroka
00091 #ifndef WM_IME_REQUEST
00092 #define MYWM_IME_REQUEST 0x288  // ==WM_IME_REQUEST
00093 #else
00094 #define MYWM_IME_REQUEST WM_IME_REQUEST
00095 #endif
00096 #define MSGNAME_ATOK_RECONVERT TEXT("Atok Message for ReconvertString")
00097 #define RWM_RECONVERT TEXT("MSIMEReconvert")
00098
00099 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: OleTypes.h

sakura_core

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 の 105 行で定義されています。

Variant* Wrap ( VARIANT * Value ) [inline]

OleTypes.h の 100 行で定義されています。

参照元 CPPA::CallHandleFunction(), CMacro::HandleFunction(), MacroCommand(), と CPPA::stdStrFunc().

Sakura-Editorに対してSat Nov 17 20:27:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: OleTypes.h ソースファイル

sakura_core

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
00027     SysString()                         { Data = NULL; }
00028     SysString(SysString &Source)        { Data = ::SysAllocStringLen(Source.Data, SysStringLen(Source.Data)); }
00029     SysString(BSTR &Source)             { Data = ::SysAllocStringLen(Source, SysStringLen(Source)); }
00030     SysString(wchar_t const *S, int L)  { Data = ::SysAllocStringLen(S, L); }
00031     SysString(char const *S, int L)
00032     {
00033         wchar_t *buf = new wchar_t[L + 1];
00034         int L2 = ::MultiByteToWideChar(CP_ACP, 0, S, L, buf, L);
00035         Data = ::SysAllocStringLen(buf, L2);
00036         delete[] buf;
00037     }
00038     ~SysString()                        { ::SysFreeString(Data); }
00039     SysString& operator = (SysString& Source) { Data = ::SysAllocStringLen(Source.Data, SysStringLen(Source.Data)); return *this; }
00040     int Length()                        { return ::SysStringLen(Data); }
00041     void Get(char **S, int *L)
00042     {
00043         int Len = ::SysStringLen(Data);
00044         *S = new char[Len * 2 + 1];
00045         *L = ::WideCharToMultiByte(CP_ACP, 0, Data, Len, *S, Len * 2, NULL, NULL);
00046         (*S)[*L] = 0;
00047     }
00048     void GetW(wchar_t **S, int *L)
00049     {
00050         int Len = ::SysStringLen(Data);
00051         *S = new wchar_t[Len + 1];
00052         *L = Len;
00053         wcscpy(*S, Data);
00054     }
00055     void GetT(TCHAR **S, int *L);
00056 };
00057
00062 struct Variant
00063 {
00064     VARIANT Data;
00065     Variant()                       { ::VariantInit(&Data); }
00066     Variant(Variant &Source)        { ::VariantCopyInd(&Data, &Source.Data); }
00067     Variant(VARIANT &Source)        { ::VariantCopyInd(&Data, &Source); }
00068     ~Variant()                      { ::VariantClear(&Data); }
00069     Variant& operator = (Variant& Source) { ::VariantCopyInd(&Data, &Source.Data); return *this; }
00074     void Receive(SysString &Source)
00075     {
00076         ::VariantClear(&Data);
00077         Data.vt = VT_BSTR;
00078         Data.bstrVal = Source.Data;
00079         Source.Data = NULL;
00080     }
00081
00082     // 2003.06.25 Moca
00083     // intを戻り値として返す場合に対応
00084     int Receive(int i)
00085     {
00086         ::VariantClear(&Data);
00087         Data.vt = VT_I4;
00088         return Data.lVal = i;
00089     }
00090 };
00091 /*
00092 #if sizeof(SysString) != 4
00093 #error "error"
00094 #endif
00095
00096 #if sizeof(Variant) != 16
00097 #error "error"
00098 #endif
00099 */
00100 inline Variant* Wrap(VARIANT *Value)
00101 {
00102     return reinterpret_cast<Variant*>(Value);
00103 }
00104
00105 inline SysString* Wrap(BSTR *Value)
00106 {
00107     return reinterpret_cast<SysString*>(Value);
00108 }
00109 #endif
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: os.cpp

sakura_core » util

os.cpp

#include "stdafx.h"
#include "os.h"
#include "util/module.h"
#include "CUxTheme.h"

os.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | GFSR_SYSTEMRESOURCES 0x0000
#define | GFSR_GDIRESOURCES 0x0001
#define | GFSR_USERRESOURCES 0x0002

関数

DWORD | GetComctl32Version ()
BOOL | IsVisualStyle ()
void | PreventVisualStyle (HWND hWnd)
void | MyInitCommonControls ()
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)
bool | ReadRegistry (HKEY Hive, const TCHAR *Path, const TCHAR *Item, TCHAR *Buffer, unsigned BufferCount)
レジストリから文字列を読み出す．
template<class T>
SAKURA_CORE_API bool | SetClipboardTextImp (HWND hwnd, const T *pszText, int nLength)
SAKURA_CORE_API bool | SetClipboardText (HWND hwnd, const ACHAR *pszText, int nLength)
クリープボードにText形式でコピーする。ANSI版。nLengthは文字単位。
SAKURA_CORE_API bool | SetClipboardText (HWND hwnd, const WCHAR *pszText, int nLength)
クリープボードにText形式でコピーする。UNICODE版。nLengthは文字単位。
BOOL | GetSystemResources (int *pnSystemResources, int *pnUserResources, int *pnGDIResources)
BOOL | CheckSystemResources (const TCHAR *pszAppName)

変数

static DWORD | s_dwComctl32Version = PACKVERSION(0, 0)

マクロ定義

#define GFSR_GDIRESOURCES 0x0001

参照元 GetSystemResources().

#define GFSR_SYSTEMRESOURCES 0x0000

参照元 GetSystemResources().

#define GFSR_USERRESOURCES 0x0002

参照元 GetSystemResources().

関数

BOOL CheckSystemResources ( const TCHAR * pszAppName )

os.cpp の 282 行で定義されています。

参照先 FALSE, GetSystemResources(), MYMESSAGEBOX, NULL, と TRUE.

参照元 CProcessFactory::IsValidVersion().

DWORD GetComctl32Version ( )

os.cpp の 14 行で定義されています。

参照先 GetDllVersion(), PACKVERSION, と s_dwComctl32Version.

参照元 IsVisualStyle().

bool GetMonitorWorkRect | ( | HMONITOR | hMon,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |  |

os.cpp の 122 行で定義されています。

参照先 NULL.

bool GetMonitorWorkRect | ( | POINT | pt,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |  |

os.cpp の 116 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | LPCRECT | prc,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |  |

os.cpp の 110 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | HWND | hWnd,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |  |

指定したウィンドウ／長方形領域／点／モニタに対応するモニタ作業領域を取得する

モニタ作業領域：画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた領域

引数:
hWnd/prc/pt/hMon | [in] 目的のウィンドウ／長方形領域／点／モニタ
prcWork | [out] モニタ作業領域
prcMonitor | [out] モニタ画面全体
戻り値:
true | 対応するモニタはプライマリモニタ
false | 対応するモニタは非プライマリモニタ
覚え書き:
出力パラメータの prcWork や prcMonior に NULL を指定した場合、 該当する領域情報は出力しない。呼び出し元は欲しいものだけを指定すればよい。

os.cpp の 101 行で定義されています。

参照先 GetMonitorWorkRect().

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetWindowRectForInit(), CViewCommander::Command_CASCADE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_MAXIMIZE_H(), CViewCommander::Command_MAXIMIZE_V(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CEditWnd::CreateFileDropDownMenu(), GetMonitorWorkRect(), CDialog::OnInitDialog(), CEditWnd::OnSysMenuTimer(), CEditWnd::PopupWinList(), PropSheetWndProc(), CTabWnd::Separate(), CTabWnd::SeparateGroup(), CEditView::ShowKeywordHelp(), と CTabWnd::TabListMenu().

BOOL GetSystemResources | ( | int * | pnSystemResources,
 |  | int * | pnUserResources,
 |  | int * | pnGDIResources
 | ) |  |

os.cpp の 245 行で定義されています。

参照先 FALSE, GFSR_GDIRESOURCES, GFSR_SYSTEMRESOURCES, GFSR_USERRESOURCES, NULL, と TRUE.

参照元 CheckSystemResources().

BOOL IsVisualStyle ( )

自分が現在ビジュアルスタイル表示状態かどうかを示す Win32 API の IsAppThemed() はこれとは一致しない（IsAppThemed() と IsThemeActive() との差異は不明）

戻り値:
ビジュアルスタイル表示状態(TRUE)／クラッシック表示状態(FALSE)
作者:
ryoji
日付:
2006.06.17 ryoji 新規

os.cpp の 30 行で定義されています。

参照先 GetComctl32Version(), CUxTheme::getInstance(), と PACKVERSION.

参照元 CMainToolBar::CreateToolBar(), CEditWnd::DispatchEvent(), CShareData::InitToolButtons(), CTabWnd::Open(), と CTabWnd::TabWndDispatchEvent().

void MyInitCommonControls ( )

コモンコントロールを初期化する

作者:
ryoji
日付:
2006.06.21 ryoji 新規

os.cpp の 60 行で定義されています。

参照先 BOOL, FALSE, hDll, と NULL.

参照元 CEditWnd::Create().

void PreventVisualStyle ( HWND hWnd )

指定ウィンドウでビジュアルスタイルを使わないようにする

引数:
[in] hWnd ウィンドウ
作者:
ryoji
日付:
2006.06.23 ryoji 新規

os.cpp の 46 行で定義されています。

参照先 CUxTheme::getInstance(), と CUxTheme::SetWindowTheme().

参照元 CMainToolBar::CreateToolBar().

bool ReadRegistry | ( | HKEY | Hive,
 |  | const TCHAR * | Path,
 |  | const TCHAR * | Item,
 |  | TCHAR * | Buffer,
 |  | unsigned | BufferCount
 | ) |  |

レジストリから文字列を読み出す．

引数:
Hive | [in] HIVE
Path | [in] レジストリキーへのパス
Item | [in] レジストリアイテム名．NULLで標準のアイテム．
Buffer | [out] 取得文字列を格納する場所
BufferCount | [in] Bufferの指す領域のサイズ。文字単位。
戻り値:
true | 値の取得に成功
false | 値の取得に失敗
作者:
鬼
日付:
2002.09.10 genta CWSH.cppから移動

os.cpp の 154 行で定義されています。

参照先 auto_memset(), と NULL.

参照元 CWSHMacroManager::Creator(), CShareData::ExpandMetaToFolder(), CEditWnd::GetRelatedIcon(), と CEditView::OnMOUSEWHEEL().

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const WCHAR * | pszText,
 |  | int | nLength
 | ) |  |

クリープボードにText形式でコピーする。UNICODE版。nLengthは文字単位。

os.cpp の 229 行で定義されています。

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const ACHAR * | pszText,
 |  | int | nLength
 | ) |  |

クリープボードにText形式でコピーする。ANSI版。nLengthは文字単位。

os.cpp の 224 行で定義されています。

参照元 CViewCommander::Command_CREATEKEYBINDLIST(), と CDlgFuncList::OnBnClicked().

template<class T>
SAKURA_CORE_API bool SetClipboardTextImp | ( | HWND | hwnd,
 |  | const T * | pszText,
 |  | int | nLength |
 | ) |  |  | [inline]

クリープボードにText形式でコピーする

引数:
hwnd | [in] クリップボードのオーナー
pszText | [in] 設定するテキスト
nLength | [in] 有効なテキストの長さ。文字単位。
戻り値:
true | コピー成功
false | コピー失敗。場合によってはクリップボードに元の内容が残る
日付:
2004.02.17 Moca 各所のソースを統合

os.cpp の 188 行で定義されています。

参照先 assert, auto_memcpy(), FALSE, と NULL.

変数

DWORD s_dwComctl32Version = PACKVERSION(0, 0) [static]

Comctl32.dll のバージョン番号を取得

戻り値:
Comctl32.dll のバージョン番号（失敗時は 0）
作者:
ryoji
日付:
2006.06.17 ryoji 新規

os.cpp の 13 行で定義されています。

参照元 GetComctl32Version().

Sakura-Editorに対してSat Nov 17 20:27:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: os.cpp ソースファイル

sakura_core » util

os.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "os.h"
00003 #include "util/module.h"
00004 #include "CUxTheme.h"
00005
00013 static DWORD s_dwComctl32Version = PACKVERSION(0, 0);
00014 DWORD GetComctl32Version()
00015 {
00016     if( PACKVERSION(0, 0) == s_dwComctl32Version )
00017         s_dwComctl32Version = GetDllVersion(_T("Comctl32.dll"));
00018     return s_dwComctl32Version;
00019 }
00020
00021
00030 BOOL IsVisualStyle()
00031 {
00032     // ロードした Comctl32.dll が Ver 6 以上で画面設定がビジュアルスタイル指定になっている場合だけ
00033     // ビジュアルスタイル表示になる（マニフェストで指定しないと Comctl32.dll は 6 未満になる）
00034     return ( (GetComctl32Version() >= PACKVERSION(6, 0)) && CUxTheme::getInstance().IsThemeActive() );
00035 }
00036
00037
00038
00046 void PreventVisualStyle( HWND hWnd )
00047 {
00048     CUxTheme::getInstance().SetWindowTheme( hWnd, L"", L"" );
00049     return;
00050 }
00051
00052
00053
00054
00060 void MyInitCommonControls()
00061 {
00062     BOOL (WINAPI *pfnInitCommonControlsEx)(LPINITCOMMONCONTROLSEX);
00063
00064     BOOL bInit = FALSE;
00065     HINSTANCE hDll = ::GetModuleHandle(_T("COMCTL32"));
00066     if( NULL != hDll ){
00067         *(FARPROC*)&pfnInitCommonControlsEx = ::GetProcAddress( hDll, "InitCommonControlsEx" );
00068         if( NULL != pfnInitCommonControlsEx ){
00069             INITCOMMONCONTROLSEX icex;
00070             icex.dwSize = sizeof(icex);
00071             icex.dwICC = ICC_WIN95_CLASSES | ICC_COOL_CLASSES;
00072             bInit = pfnInitCommonControlsEx( &icex );
00073         }
00074     }
00075
00076     if( !bInit ){
00077         ::InitCommonControls();
00078     }
00079 }
00080
00081
00082
00083
00084
00100 //  From Here May 01, 2004 genta MutiMonitor
00101 bool GetMonitorWorkRect(HWND hWnd, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
00102 {
00103     // 2006.04.21 ryoji Windows API 形式の関数呼び出しに変更（スタブに PSDK の MultiMon.h を利用）
00104     HMONITOR hMon = ::MonitorFromWindow( hWnd, MONITOR_DEFAULTTONEAREST );
00105     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
00106 }
00107 //  To Here May 01, 2004 genta
00108
00109 //  From Here 2006.04.21 ryoji MutiMonitor
00110 bool GetMonitorWorkRect(LPCRECT prc, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
00111 {
00112     HMONITOR hMon = ::MonitorFromRect( prc, MONITOR_DEFAULTTONEAREST );
00113     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
00114 }
00115
00116 bool GetMonitorWorkRect(POINT pt, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
00117 {
00118     HMONITOR hMon = ::MonitorFromPoint( pt, MONITOR_DEFAULTTONEAREST );
00119     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
00120 }
00121
00122 bool GetMonitorWorkRect(HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
00123 {
00124     MONITORINFO mi;
00125     ::ZeroMemory( &mi, sizeof( mi ));
00126     mi.cbSize = sizeof( mi );
00127     ::GetMonitorInfo( hMon, &mi );
00128     if( NULL != prcWork )
00129         *prcWork = mi.rcWork;       // work area rectangle of the display monitor
00130     if( NULL != prcMonitor )
00131         *prcMonitor = mi.rcMonitor; // display monitor rectangle
00132     return ( mi.dwFlags == MONITORINFOF_PRIMARY ) ? true : false;
00133 }
00134 //  To Here 2006.04.21 ryoji MutiMonitor
00135
00136
00137
00138
00154 bool ReadRegistry(HKEY Hive, const TCHAR* Path, const TCHAR* Item, TCHAR* Buffer, unsigned BufferCount)
00155 {
00156     bool Result = false;
00157
00158     HKEY Key;
00159     if(RegOpenKeyEx(Hive, Path, 0, KEY_READ, &Key) == ERROR_SUCCESS)
00160     {
00161         auto_memset(Buffer, 0, BufferCount);
00162
00163         DWORD dwType = REG_SZ;
00164         DWORD dwDataLen = (BufferCount - 1) * sizeof(TCHAR); //※バイト単位！
00165
00166         Result = (RegQueryValueEx(Key, Item, NULL, &dwType, reinterpret_cast<LPBYTE>(Buffer), &dwDataLen) == ERROR_SUCCESS);
00167
00168         RegCloseKey(Key);
00169     }
00170     return Result;
00171 }
00172
00173
00174
00175 //SetClipboardTextA,SetClipboardTextT 実装用テンプレート
00176 //2007.08.14 kobake UNICODE用に改造
00177 //
00187 template <class T>
00188 SAKURA_CORE_API bool SetClipboardTextImp( HWND hwnd, const T* pszText, int nLength )
00189 {
00190     HGLOBAL hgClip;
00191     T*      pszClip;
00192
00193     hgClip = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, (nLength + 1) * sizeof(T) );
00194     if( NULL == hgClip ){
00195         return false;
00196     }
00197     pszClip = (T*)::GlobalLock( hgClip );
00198     if( NULL == pszClip ){
00199         ::GlobalFree( hgClip );
00200         return false;
00201     }
00202     auto_memcpy( pszClip, pszText, nLength );
00203     pszClip[nLength] = 0;
00204     ::GlobalUnlock( hgClip );
00205     if( FALSE == ::OpenClipboard( hwnd ) ){
00206         ::GlobalFree( hgClip );
00207         return false;
00208     }
00209     ::EmptyClipboard();
00210     if(sizeof(T)==sizeof(char)){
00211         ::SetClipboardData( CF_OEMTEXT, hgClip );
00212     }
00213     else if(sizeof(T)==sizeof(wchar_t)){
00214         ::SetClipboardData( CF_UNICODETEXT, hgClip );
00215     }
00216     else{
00217         assert(0); //※ここには来ない
00218     }
00219     ::CloseClipboard();
00220
00221     return true;
00222 }
00223
00224 SAKURA_CORE_API bool SetClipboardText( HWND hwnd, const ACHAR* pszText, int nLength )
00225 {
00226     return SetClipboardTextImp<ACHAR>(hwnd,pszText,nLength);
00227 }
00228
00229 SAKURA_CORE_API bool SetClipboardText( HWND hwnd, const WCHAR* pszText, int nLength )
00230 {
00231     return SetClipboardTextImp<WCHAR>(hwnd,pszText,nLength);
00232 }
00233
00234
00235
00236
00237
00238 /* システムリソースを調べる
00239     Win16 の時は、GetFreeSystemResources という関数がありました。しかし、Win32 ではありません。
00240     サンクを作るだの DLL を作るだのは難しすぎます。簡単な方法を説明します。
00241     お使いの Windows95 の [アクセサリ]-[システムツール] にリソースメータがあるのなら、
00242     c:\windows\system\rsrc32.dll があるはずです。これは、リソースメータという Win32 アプリが、
00243     Win16 の GetFreeSystemResources 関数を呼ぶ為の DLL です。これを使いましょう。
00244 */
00245 BOOL GetSystemResources(
00246     int*    pnSystemResources,
00247     int*    pnUserResources,
00248     int*    pnGDIResources
00249 )
00250 {
00251     #define GFSR_SYSTEMRESOURCES    0x0000
00252     #define GFSR_GDIRESOURCES       0x0001
00253     #define GFSR_USERRESOURCES      0x0002
00254     HINSTANCE   hlib;
00255     int (CALLBACK *GetFreeSystemResources)( int );
00256
00257     hlib = ::LoadLibrary( _T("RSRC32.dll") );
00258     if( (int)hlib > 32 ){
00259         GetFreeSystemResources = (int (CALLBACK *)( int ))GetProcAddress(
00260             hlib,
00261             "_MyGetFreeSystemResources32@4"
00262         );
00263         if( GetFreeSystemResources != NULL ){
00264             *pnSystemResources = GetFreeSystemResources( GFSR_SYSTEMRESOURCES );
00265             *pnUserResources = GetFreeSystemResources( GFSR_USERRESOURCES );
00266             *pnGDIResources = GetFreeSystemResources( GFSR_GDIRESOURCES );
00267             ::FreeLibrary( hlib );
00268             return TRUE;
00269         }else{
00270             ::FreeLibrary( hlib );
00271             return FALSE;
00272         }
00273     }else{
00274         return FALSE;
00275     }
00276 }
00277
00278
00279
00280
00281 /* システムリソースのチェック */
00282 BOOL CheckSystemResources( const TCHAR* pszAppName )
00283 {
00284     int     nSystemResources;
00285     int     nUserResources;
00286     int     nGDIResources;
00287     TCHAR*  pszResourceName;
00288     /* システムリソースの取得 */
00289     if( GetSystemResources( &nSystemResources, &nUserResources, &nGDIResources ) ){
00290 //      MYTRACE_A( "nSystemResources=%d\n", nSystemResources );
00291 //      MYTRACE_A( "nUserResources=%d\n", nUserResources );
00292 //      MYTRACE_A( "nGDIResources=%d\n", nGDIResources );
00293         pszResourceName = NULL;
00294         if( nSystemResources <= 5 ){
00295             pszResourceName = _T("システム ");
00296         }else
00297         if( nUserResources <= 5 ){
00298             pszResourceName = _T("ユーザー ");
00299         }else
00300         if( nGDIResources <= 5 ){
00301             pszResourceName = _T("GDI ");
00302         }
00303         if( NULL != pszResourceName ){
00304             ::MessageBeep( MB_ICONHAND );
00305             ::MessageBeep( MB_ICONHAND );
00306 //          if( IDYES == ::MYMESSAGEBOX_A( NULL, MB_YESNO | MB_ICONSTOP | MB_APPLMODAL | MB_TOPMOST, pszAppName,
00307 			::MYMESSAGEBOX( NULL, MB_OK | /*MB_YESNO | */ MB_ICONSTOP | MB_APPLMODAL | MB_TOPMOST, pszAppName,
00308                 _T("%tsリソースが極端に不足しています。\n")
00309                 _T("このまま%tsを起動すると、正常に動作しない可能性があります。\n")
00310                 _T("新しい%tsの起動を中断します。\n")
00311                 _T("\n")
00312                 _T("システム リソース\t残り  %d%%\n")
00313                 _T("User リソース\t残り  %d%%\n")
00314                 _T("GDI リソース\t残り  %d%%\n\n"),
00315                 pszResourceName,
00316                 pszAppName,
00317                 pszAppName,
00318                 nSystemResources,
00319                 nUserResources,
00320                 nGDIResources
00321             );
00322 //          ) ){
00323                 return FALSE;
00324 //          }
00325         }
00326     }
00327     return TRUE;
00328 }
00329
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: os.h

sakura_core » util

os.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | PACKVERSION(major, minor) MAKELONG( minor, major )

関数

SAKURA_CORE_API BOOL | GetSystemResources (int *, int *, int *)
SAKURA_CORE_API BOOL | CheckSystemResources (const TCHAR *)
SAKURA_CORE_API bool | SetClipboardText (HWND hwnd, const ACHAR *pszText, int nLength)
クリープボードにText形式でコピーする。ANSI版。nLengthは文字単位。
SAKURA_CORE_API bool | SetClipboardText (HWND hwnd, const WCHAR *pszText, int nLength)
クリープボードにText形式でコピーする。UNICODE版。nLengthは文字単位。
bool | ReadRegistry (HKEY Hive, const TCHAR *Path, const TCHAR *Item, TCHAR *Buffer, unsigned BufferCount)
レジストリから文字列を読み出す．
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)
DWORD | GetComctl32Version ()
BOOL | IsVisualStyle ()
void | PreventVisualStyle (HWND hWnd)
void | MyInitCommonControls ()

マクロ定義

#define PACKVERSION | ( | major,
 |  | minor | ) | MAKELONG( minor, major )

os.h の 22 行で定義されています。

参照元 GetComctl32Version(), GetDllVersion(), と IsVisualStyle().

関数

SAKURA_CORE_API BOOL CheckSystemResources ( const TCHAR * )

os.cpp の 282 行で定義されています。

参照先 FALSE, GetSystemResources(), MYMESSAGEBOX, NULL, と TRUE.

参照元 CProcessFactory::IsValidVersion().

DWORD GetComctl32Version ( )

os.cpp の 14 行で定義されています。

参照先 GetDllVersion(), PACKVERSION, と s_dwComctl32Version.

参照元 IsVisualStyle().

bool GetMonitorWorkRect | ( | HMONITOR | hMon,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |  |

os.cpp の 122 行で定義されています。

参照先 NULL.

bool GetMonitorWorkRect | ( | POINT | pt,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |  |

os.cpp の 116 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | LPCRECT | prc,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |  |

os.cpp の 110 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | HWND | hWnd,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |  |

指定したウィンドウ／長方形領域／点／モニタに対応するモニタ作業領域を取得する

モニタ作業領域：画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた領域

引数:
hWnd/prc/pt/hMon | [in] 目的のウィンドウ／長方形領域／点／モニタ
prcWork | [out] モニタ作業領域
prcMonitor | [out] モニタ画面全体
戻り値:
true | 対応するモニタはプライマリモニタ
false | 対応するモニタは非プライマリモニタ
覚え書き:
出力パラメータの prcWork や prcMonior に NULL を指定した場合、 該当する領域情報は出力しない。呼び出し元は欲しいものだけを指定すればよい。

os.cpp の 101 行で定義されています。

参照先 GetMonitorWorkRect().

参照元 CEditWnd::_AdjustInMonitor(), CEditWnd::_GetWindowRectForInit(), CViewCommander::Command_CASCADE(), CViewCommander::Command_COMPARE(), CViewCommander::Command_MAXIMIZE_H(), CViewCommander::Command_MAXIMIZE_V(), CViewCommander::Command_TILE_H(), CViewCommander::Command_TILE_V(), CEditWnd::CreateFileDropDownMenu(), GetMonitorWorkRect(), CDialog::OnInitDialog(), CEditWnd::OnSysMenuTimer(), CEditWnd::PopupWinList(), PropSheetWndProc(), CTabWnd::Separate(), CTabWnd::SeparateGroup(), CEditView::ShowKeywordHelp(), と CTabWnd::TabListMenu().

SAKURA_CORE_API BOOL GetSystemResources | ( | int * | ,
 |  | int * | ,
 |  | int * |
 | ) |  |

os.cpp の 245 行で定義されています。

参照先 FALSE, GFSR_GDIRESOURCES, GFSR_SYSTEMRESOURCES, GFSR_USERRESOURCES, NULL, と TRUE.

参照元 CheckSystemResources().

BOOL IsVisualStyle ( )

自分が現在ビジュアルスタイル表示状態かどうかを示す Win32 API の IsAppThemed() はこれとは一致しない（IsAppThemed() と IsThemeActive() との差異は不明）

戻り値:
ビジュアルスタイル表示状態(TRUE)／クラッシック表示状態(FALSE)
作者:
ryoji
日付:
2006.06.17 ryoji 新規

os.cpp の 30 行で定義されています。

参照先 GetComctl32Version(), CUxTheme::getInstance(), と PACKVERSION.

参照元 CMainToolBar::CreateToolBar(), CEditWnd::DispatchEvent(), CShareData::InitToolButtons(), CTabWnd::Open(), と CTabWnd::TabWndDispatchEvent().

void MyInitCommonControls ( )

コモンコントロールを初期化する

作者:
ryoji
日付:
2006.06.21 ryoji 新規

os.cpp の 60 行で定義されています。

参照先 BOOL, FALSE, hDll, と NULL.

参照元 CEditWnd::Create().

void PreventVisualStyle ( HWND hWnd )

指定ウィンドウでビジュアルスタイルを使わないようにする

引数:
[in] hWnd ウィンドウ
作者:
ryoji
日付:
2006.06.23 ryoji 新規

os.cpp の 46 行で定義されています。

参照先 CUxTheme::getInstance(), と CUxTheme::SetWindowTheme().

参照元 CMainToolBar::CreateToolBar().

bool ReadRegistry | ( | HKEY | Hive,
 |  | const TCHAR * | Path,
 |  | const TCHAR * | Item,
 |  | TCHAR * | Buffer,
 |  | unsigned | BufferCount
 | ) |  |

レジストリから文字列を読み出す．

引数:
Hive | [in] HIVE
Path | [in] レジストリキーへのパス
Item | [in] レジストリアイテム名．NULLで標準のアイテム．
Buffer | [out] 取得文字列を格納する場所
BufferCount | [in] Bufferの指す領域のサイズ。文字単位。
戻り値:
true | 値の取得に成功
false | 値の取得に失敗
作者:
鬼
日付:
2002.09.10 genta CWSH.cppから移動

os.cpp の 154 行で定義されています。

参照先 auto_memset(), と NULL.

参照元 CWSHMacroManager::Creator(), CShareData::ExpandMetaToFolder(), CEditWnd::GetRelatedIcon(), と CEditView::OnMOUSEWHEEL().

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const WCHAR * | pszText,
 |  | int | nLength
 | ) |  |

クリープボードにText形式でコピーする。UNICODE版。nLengthは文字単位。

os.cpp の 229 行で定義されています。

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const ACHAR * | pszText,
 |  | int | nLength
 | ) |  |

クリープボードにText形式でコピーする。ANSI版。nLengthは文字単位。

os.cpp の 224 行で定義されています。

参照元 CViewCommander::Command_CREATEKEYBINDLIST(), と CDlgFuncList::OnBnClicked().

Sakura-Editorに対してSat Nov 17 20:27:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: os.h ソースファイル

sakura_core » util

os.h

説明を見る。
00001 #pragma once
00002
00003 //システム資源
00004 SAKURA_CORE_API BOOL GetSystemResources( int*, int*, int* );    /* システムリソースを調べる */
00005 SAKURA_CORE_API BOOL CheckSystemResources( const TCHAR* );  /* システムリソースのチェック */
00006
00007 //クリップボード
00008 SAKURA_CORE_API bool SetClipboardText( HWND hwnd, const ACHAR* pszText, int nLength );
00009 SAKURA_CORE_API bool SetClipboardText( HWND hwnd, const WCHAR* pszText, int nLength );
00010
00011 //  Sep. 10, 2002 genta CWSH.cppからの移動に伴う追加
00012 bool ReadRegistry(HKEY Hive, const TCHAR* Path, const TCHAR* Item, TCHAR* Buffer, unsigned BufferCount);
00013
00014 //  May 01, 2004 genta マルチモニタ対応のデスクトップ領域取得
00015 bool GetMonitorWorkRect(HWND     hWnd, LPRECT prcWork, LPRECT prcMonitor = NULL);   // 2006.04.21 ryoji パラメータ prcMonitor を追加
00016 bool GetMonitorWorkRect(LPCRECT  prc,  LPRECT prcWork, LPRECT prcMonitor = NULL);   // 2006.04.21 ryoji
00017 bool GetMonitorWorkRect(POINT    pt,   LPRECT prcWork, LPRECT prcMonitor = NULL);   // 2006.04.21 ryoji
00018 bool GetMonitorWorkRect(HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor = NULL);   // 2006.04.21 ryoji
00019
00020
00021 // 2006.06.17 ryoji
00022 #define PACKVERSION( major, minor ) MAKELONG( minor, major )
00023 DWORD GetComctl32Version();                 // Comctl32.dll のバージョン番号を取得                       // 2006.06.17 ryoji
00024 BOOL IsVisualStyle();                       // 自分が現在ビジュアルスタイル表示状態かどうかを示す      // 2006.06.17 ryoji
00025 void PreventVisualStyle( HWND hWnd );       // 指定ウィンドウでビジュアルスタイルを使わないようにする    // 2006.06.23 ryoji
00026 void MyInitCommonControls();                // コモンコントロールを初期化する                            // 2006.06.21 ryoji
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: primitive.h

sakura_core » basis

primitive.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | _WINT(A) _T(A)
#define | _EDITL(A) LTEXT(A)

型定義

typedef char | ACHAR
typedef wchar_t | NOT_TCHAR
typedef TCHAR | WIN_CHAR
typedef wchar_t | WChar
typedef wchar_t | EDIT_CHAR
typedef unsigned char | uchar_t
typedef unsigned short | uchar16_t
typedef unsigned long | uchar32_t
typedef long | wchar32_t
typedef char | KEYCODE
typedef int | Int

マクロ定義

#define _EDITL ( A ) LTEXT(A)

primitive.h の 27 行で定義されています。

参照元 CShareData::InitTypeConfig(), と CShareData::ShareData_IO_Print().

#define _WINT ( A ) _T(A)

primitive.h の 21 行で定義されています。

参照元 CDlgFuncList::SetData(), と CFuncLookup::SetListItem().

型定義

typedef char ACHAR

primitive.h の 7 行で定義されています。

typedef wchar_t EDIT_CHAR

primitive.h の 26 行で定義されています。

typedef int Int

primitive.h の 47 行で定義されています。

typedef char KEYCODE

primitive.h の 40 行で定義されています。

typedef wchar_t NOT_TCHAR

primitive.h の 15 行で定義されています。

typedef unsigned short uchar16_t

primitive.h の 32 行で定義されています。

typedef unsigned long uchar32_t

primitive.h の 33 行で定義されています。

typedef unsigned char uchar_t

primitive.h の 31 行で定義されています。

typedef wchar_t WChar

primitive.h の 25 行で定義されています。

typedef long wchar32_t

primitive.h の 34 行で定義されています。

typedef TCHAR WIN_CHAR

primitive.h の 20 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: primitive.h ソースファイル

sakura_core » basis

primitive.h

説明を見る。
00001 #pragma once
00002
00003
00004 // -- -- -- -- 文字 -- -- -- -- //
00005
00006 //char,wchar_t の変わりに、別名の ACHAR,WCHAR を使うと、ソース整形がしやすいケースがある。
00007 typedef char ACHAR;
00008
00009
00010 //TCHAR追加機能
00011 //TCHARと逆の文字型をNOT_TCHARとして定義する
00012 #ifdef _UNICODE
00013 typedef char NOT_TCHAR;
00014 #else
00015 typedef wchar_t NOT_TCHAR;
00016 #endif
00017
00018
00019 //WIN_CHAR (WinAPIに渡すので、必ずTCHARでなければならないもの)
00020 typedef TCHAR WIN_CHAR;
00021 #define _WINT(A) _T(A)
00022
00023
00024 //EDIT_CHAR
00025 typedef wchar_t WChar;      //エディタで用いるテキスト管理データ型
00026 typedef wchar_t EDIT_CHAR;
00027 #define _EDITL(A) LTEXT(A)
00028
00029
00030 //文字コード別、文字型
00031 typedef unsigned char   uchar_t;        //  unsigned char の別名．
00032 typedef unsigned short  uchar16_t;      //  UTF-16 用．
00033 typedef unsigned long   uchar32_t;      //  UTF-32 用．
00034 typedef long            wchar32_t;
00035
00036
00037
00038 // -- -- -- -- その他 -- -- -- -- //
00039
00040 typedef char KEYCODE;
00041
00042 //int互換
00043 #ifdef USE_STRICT_INT
00044     #include "CLaxInteger.h"
00045     typedef CLaxInteger Int;
00046 #else
00047     typedef int Int;
00048 #endif
00049
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: RcCvt.cpp

btool

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 Nov 17 20:27:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: RcCvt.cpp ソースファイル

btool

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 Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: RcCvt.h

btool

RcCvt.h

#include <stdio.h>

RcCvt.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class RcCvt

Sakura-Editorに対してSat Nov 17 20:27:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: RcCvt.h ソースファイル

btool

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 Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura.hh

sakura_core

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_bEnableLineModePaste 10215
#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 の 857 行で定義されています。

#define HIDC_ABOUT_BUTTON_CONTACT 12900

sakura.hh の 776 行で定義されています。

#define HIDC_ABOUT_EDIT_ABOUT 12902

sakura.hh の 778 行で定義されています。

#define HIDC_BUTTON_ADD 10103

sakura.hh の 368 行で定義されています。

#define HIDC_BUTTON_ADD_TOOLBAR 11003

sakura.hh の 484 行で定義されています。

#define HIDC_BUTTON_ADDKEYWORD 10802

sakura.hh の 452 行で定義されています。

#define HIDC_BUTTON_ADDSET 10800

sakura.hh の 450 行で定義されています。

#define HIDC_BUTTON_ASSIGN 10702

sakura.hh の 440 行で定義されています。

#define HIDC_BUTTON_BACKCOLOR 11401

sakura.hh の 547 行で定義されています。

#define HIDC_BUTTON_BACKUP_FOLDER_REF 10000

sakura.hh の 342 行で定義されています。

#define HIDC_BUTTON_CLEAR_MRU_FILE 10900

sakura.hh の 462 行で定義されています。

#define HIDC_BUTTON_CLEAR_MRU_FOLDER 10901

sakura.hh の 463 行で定義されています。

#define HIDC_BUTTON_CTRLCODE_HELP 13303

sakura.hh の 821 行で定義されています。

#define HIDC_BUTTON_DELETE 10100

sakura.hh の 365 行で定義されています。

#define HIDC_BUTTON_DELETE_TOOLBAR 11000

sakura.hh の 481 行で定義されています。

#define HIDC_BUTTON_DELKEYWORD 10804

sakura.hh の 454 行で定義されています。

#define HIDC_BUTTON_DELSET 10801

sakura.hh の 451 行で定義されています。

#define HIDC_BUTTON_DIFF_DST 13200

sakura.hh の 797 行で定義されています。

#define HIDC_BUTTON_DIFF_HELP 13215

sakura.hh の 812 行で定義されています。

#define HIDC_BUTTON_DOWN 10105

sakura.hh の 370 行で定義されています。

#define HIDC_BUTTON_DOWN_TOOLBAR 11005

sakura.hh の 486 行で定義されています。

#define HIDC_BUTTON_EDITKEYWORD 10803

sakura.hh の 453 行で定義されています。

#define HIDC_BUTTON_EXPORT 10107

sakura.hh の 372 行で定義されています。

#define HIDC_BUTTON_EXPORT_COLOR 11405

sakura.hh の 551 行で定義されています。

#define HIDC_BUTTON_EXPORT_KEYBIND 10701

sakura.hh の 439 行で定義されています。

#define HIDC_BUTTON_EXPORT_KEYWORD 10806

sakura.hh の 456 行で定義されています。

#define HIDC_BUTTON_FAVORITE_CLEAR 13518

sakura.hh の 850 行で定義されています。

#define HIDC_BUTTON_FAVORITE_HELP 13503

sakura.hh の 841 行で定義されています。

#define HIDC_BUTTON_FNAME_ADD 13404

sakura.hh の 828 行で定義されています。

#define HIDC_BUTTON_FNAME_DEL 13406

sakura.hh の 830 行で定義されています。

#define HIDC_BUTTON_FNAME_DOWN 13409

sakura.hh の 833 行で定義されています。

#define HIDC_BUTTON_FNAME_INS 13403

sakura.hh の 827 行で定義されています。

#define HIDC_BUTTON_FNAME_LAST 13410

sakura.hh の 834 行で定義されています。

#define HIDC_BUTTON_FNAME_TOP 13407

sakura.hh の 831 行で定義されています。

#define HIDC_BUTTON_FNAME_UP 13408

sakura.hh の 832 行で定義されています。

#define HIDC_BUTTON_FNAME_UPD 13405

sakura.hh の 829 行で定義されています。

#define HIDC_BUTTON_HOKANFILE_REF 11500

sakura.hh の 581 行で定義されています。

#define HIDC_BUTTON_IMPORT 10106

sakura.hh の 371 行で定義されています。

#define HIDC_BUTTON_IMPORT_COLOR 11404

sakura.hh の 550 行で定義されています。

#define HIDC_BUTTON_IMPORT_KEYBIND 10700

sakura.hh の 438 行で定義されています。

#define HIDC_BUTTON_IMPORT_KEYWORD 10805

sakura.hh の 455 行で定義されています。

#define HIDC_BUTTON_INSERT 10102

sakura.hh の 367 行で定義されています。

#define HIDC_BUTTON_INSERT_TOOLBAR 11002

sakura.hh の 483 行で定義されています。

#define HIDC_BUTTON_INSERTSEPARATOR 10101

sakura.hh の 366 行で定義されています。

#define HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR 11001

sakura.hh の 482 行で定義されています。

#define HIDC_BUTTON_INSERTWRAP 11042

sakura.hh の 491 行で定義されています。

#define HIDC_BUTTON_KEYCLEAN 10807

sakura.hh の 457 行で定義されています。

#define HIDC_BUTTON_KEYHELP_DEL 13910

sakura.hh の 895 行で定義されています。

#define HIDC_BUTTON_KEYHELP_DOWN 13907

sakura.hh の 892 行で定義されています。

#define HIDC_BUTTON_KEYHELP_EXPORT 13915

sakura.hh の 900 行で定義されています。

#define HIDC_BUTTON_KEYHELP_IMPORT 13914

sakura.hh の 899 行で定義されています。

#define HIDC_BUTTON_KEYHELP_INS 13909

sakura.hh の 894 行で定義されています。

#define HIDC_BUTTON_KEYHELP_LAST 13908

sakura.hh の 893 行で定義されています。

#define HIDC_BUTTON_KEYHELP_REF 13904

sakura.hh の 889 行で定義されています。

#define HIDC_BUTTON_KEYHELP_TOP 13905

sakura.hh の 890 行で定義されています。

#define HIDC_BUTTON_KEYHELP_UP 13906

sakura.hh の 891 行で定義されています。

#define HIDC_BUTTON_KEYHELP_UPD 13902

sakura.hh の 887 行で定義されています。

#define HIDC_BUTTON_KEYSETRENAME 10831

sakura.hh の 460 行で定義されています。

#define HIDC_BUTTON_KEYWORD_SELECT 11467

sakura.hh の 579 行で定義されています。

#define HIDC_BUTTON_KEYWORDHELPFONT 11611

sakura.hh の 420 行で定義されています。

#define HIDC_BUTTON_OPENEXTHTMLHELP 10603

sakura.hh の 419 行で定義されています。

#define HIDC_BUTTON_OPENHELP1 10602

sakura.hh の 418 行で定義されています。

#define HIDC_BUTTON_OPENMDICT 10653

sakura.hh の 437 行で定義されています。

#define HIDC_BUTTON_OPENMDLL 10651

sakura.hh の 435 行で定義されています。

#define HIDC_BUTTON_REGEX_ADD 11603

sakura.hh の 594 行で定義されています。

#define HIDC_BUTTON_REGEX_DEL 11605

sakura.hh の 596 行で定義されています。

#define HIDC_BUTTON_REGEX_DOWN 11609

sakura.hh の 600 行で定義されています。

#define HIDC_BUTTON_REGEX_EXPORT 11601

sakura.hh の 592 行で定義されています。

#define HIDC_BUTTON_REGEX_IMPORT 11600

sakura.hh の 591 行で定義されています。

#define HIDC_BUTTON_REGEX_INS 11602

sakura.hh の 593 行で定義されています。

#define HIDC_BUTTON_REGEX_LAST 11607

sakura.hh の 598 行で定義されています。

#define HIDC_BUTTON_REGEX_TOP 11606

sakura.hh の 597 行で定義されています。

#define HIDC_BUTTON_REGEX_UP 11608

sakura.hh の 599 行で定義されています。

#define HIDC_BUTTON_REGEX_UPD 11604

sakura.hh の 595 行で定義されています。

#define HIDC_BUTTON_RELEASE 10703

sakura.hh の 441 行で定義されています。

#define HIDC_BUTTON_RULEFILE_REF 11356

sakura.hh の 544 行で定義されています。

#define HIDC_BUTTON_SAMEBKCOLOR 11403

sakura.hh の 549 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_HELP 14002

sakura.hh の 905 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_SELALL 14004

sakura.hh の 907 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_SELNOTING 14005

sakura.hh の 908 行で定義されています。

#define HIDC_BUTTON_SAMETEXTCOLOR 11402

sakura.hh の 548 行で定義されています。

#define HIDC_BUTTON_TAG_MAKE_HELP 13707

sakura.hh の 866 行で定義されています。

#define HIDC_BUTTON_TAG_MAKE_REF 13702

sakura.hh の 861 行で定義されています。

#define HIDC_BUTTON_TAGJUMPLIST_HELP 13603

sakura.hh の 856 行で定義されています。

#define HIDC_BUTTON_TEXTCOLOR 11400

sakura.hh の 546 行で定義されています。

#define HIDC_BUTTON_TYPEOPENEXTHTMLHELP 11545

sakura.hh の 589 行で定義されています。

#define HIDC_BUTTON_TYPEOPENHELP 11543

sakura.hh の 587 行で定義されています。

#define HIDC_BUTTON_UP 10104

sakura.hh の 369 行で定義されています。

#define HIDC_BUTTON_UP_TOOLBAR 11004

sakura.hh の 485 行で定義されています。

#define HIDC_BUTTON_WINSIZE 11263

sakura.hh の 511 行で定義されています。

#define HIDC_BUTTON_WINSIZE_HELP 13814

sakura.hh の 882 行で定義されています。

#define HIDC_CHECK_ADDCRLFWHENCOPY 10210

sakura.hh の 377 行で定義されています。

#define HIDC_CHECK_AlertIfFileNotExist 10344

sakura.hh の 396 行で定義されています。

#define HIDC_CHECK_ALT 10712

sakura.hh の 444 行で定義されています。

#define HIDC_CHECK_AutoMIMEDecode 10318

sakura.hh の 391 行で定義されています。

#define HIDC_CHECK_AUTOSAVE 10315

sakura.hh の 388 行で定義されています。

#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 の 409 行で定義されています。

#define HIDC_CHECK_bCheckFileTimeStamp 10311

sakura.hh の 384 行で定義されています。

#define HIDC_CHECK_bDropFileAndClose 10316

sakura.hh の 389 行で定義されています。

#define HIDC_CHECK_bEnableLineModePaste 10215

sakura.hh の 379 行で定義されています。

#define HIDC_CHECK_bGrepExitConfirm 10510

sakura.hh の 410 行で定義されています。

#define HIDC_CHECK_bMenuIcon 11214

sakura.hh の 497 行で定義されています。

#define HIDC_CHECK_bNotOverWriteCRLF 10214

sakura.hh の 382 行で定義されています。

#define HIDC_CHECK_bScrollBarHorz 11213

sakura.hh の 496 行で定義されています。

#define HIDC_CHECK_bSelectClickedURL 11110

sakura.hh の 492 行で定義されています。

#define HIDC_CHECK_ChgWndByWheel 11275

sakura.hh の 517 行で定義されています。

#define HIDC_CHECK_CLICKKEYSEARCH 10618

sakura.hh の 429 行で定義されています。

#define HIDC_CHECK_CLOSEALLCONFIRM 10919

sakura.hh の 473 行で定義されています。

#define HIDC_CHECK_CloseOneWin 11274

sakura.hh の 516 行で定義されています。

#define HIDC_CHECK_COPYnDISABLESELECTEDAREA 10211

sakura.hh の 378 行で定義されています。

#define HIDC_CHECK_CTRL 10711

sakura.hh の 443 行で定義されています。

#define HIDC_CHECK_DIFF_EXEC_STATE 13216

sakura.hh の 813 行で定義されています。

#define HIDC_CHECK_DIFF_NOTIFYNOTFOUND 13217

sakura.hh の 814 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_BLINE 13201

sakura.hh の 798 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_CASE 13202

sakura.hh の 799 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_SPACE 13203

sakura.hh の 800 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_SPCCHG 13204

sakura.hh の 801 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_TABSPC 13205

sakura.hh の 802 行で定義されています。

#define HIDC_CHECK_DIFF_SEARCHALL 13218

sakura.hh の 815 行で定義されています。

#define HIDC_CHECK_DISP 11410

sakura.hh の 552 行で定義されています。

#define HIDC_CHECK_DispFUNCKEYWND 11210

sakura.hh の 493 行で定義されています。

#define HIDC_CHECK_DispSTATUSBAR 11211

sakura.hh の 494 行で定義されています。

#define HIDC_CHECK_DispTabIcon 11271

sakura.hh の 513 行で定義されています。

#define HIDC_CHECK_DispTabWnd 11218

sakura.hh の 500 行で定義されています。

#define HIDC_CHECK_DispTabWndMultiWin 11219

sakura.hh の 501 行で定義されています。

#define HIDC_CHECK_DispTOOLBAR 11212

sakura.hh の 495 行で定義されています。

#define HIDC_CHECK_DOCICON 11357

sakura.hh の 545 行で定義されています。

#define HIDC_CHECK_DRAGDROP 10212

sakura.hh の 380 行で定義されています。

#define HIDC_CHECK_DROPSOURCE 10213

sakura.hh の 381 行で定義されています。

#define HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 10314

sakura.hh の 387 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_NO 10310

sakura.hh の 383 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_READWRITE 10313

sakura.hh の 386 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_WRITE 10312

sakura.hh の 385 行で定義されています。

#define HIDC_CHECK_EXITCONFIRM 10916

sakura.hh の 470 行で定義されています。

#define HIDC_CHECK_FAT 11411

sakura.hh の 553 行で定義されています。

#define HIDC_CHECK_FREECARET 10910

sakura.hh の 464 行で定義されています。

#define HIDC_CHECK_GREPREALTIME 10513

sakura.hh の 413 行で定義されています。

#define HIDC_CHECK_GTJW_LDBLCLK 10512

sakura.hh の 412 行で定義されています。

#define HIDC_CHECK_GTJW_RETURN 10511

sakura.hh の 411 行で定義されています。

#define HIDC_CHECK_HOKANBYFILE 11512

sakura.hh の 583 行で定義されています。

#define HIDC_CHECK_HOKANLOHICASE 11510

sakura.hh の 582 行で定義されています。

#define HIDC_CHECK_HTMLHELPISSINGLE 10617

sakura.hh の 428 行で定義されています。

#define HIDC_CHECK_INDENT 10911

sakura.hh の 465 行で定義されています。

#define HIDC_CHECK_INDENT_WSPACE 10912

sakura.hh の 466 行で定義されています。

#define HIDC_CHECK_INS_SPACE 11311

sakura.hh の 519 行で定義されています。

#define HIDC_CHECK_KEYHELP 13900

sakura.hh の 885 行で定義されています。

#define HIDC_CHECK_KEYHELP_ALLSEARCH 13911

sakura.hh の 896 行で定義されています。

#define HIDC_CHECK_KEYHELP_KEYDISP 13912

sakura.hh の 897 行で定義されています。

#define HIDC_CHECK_KEYHELP_PREFIX 13913

sakura.hh の 898 行で定義されています。

#define HIDC_CHECK_KEYWORDCASE 10810

sakura.hh の 458 行で定義されています。

#define HIDC_CHECK_KINSOKUHEAD 11312

sakura.hh の 520 行で定義されています。

#define HIDC_CHECK_KINSOKUKUTO 11315

sakura.hh の 523 行で定義されています。

#define HIDC_CHECK_KINSOKURET 11314

sakura.hh の 522 行で定義されています。

#define HIDC_CHECK_KINSOKUTAIL 11313

sakura.hh の 521 行で定義されています。

#define HIDC_CHECK_LCPOS 11413

sakura.hh の 555 行で定義されています。

#define HIDC_CHECK_LCPOS2 11414

sakura.hh の 556 行で定義されています。

#define HIDC_CHECK_LCPOS3 11451

sakura.hh の 570 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_RETURN 10612

sakura.hh の 423 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_RIGHT 10614

sakura.hh の 425 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_SPACE 10615

sakura.hh の 426 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_TAB 10613

sakura.hh の 424 行で定義されています。

#define HIDC_CHECK_NoFilterSaveFile 10346

sakura.hh の 398 行で定義されています。

#define HIDC_CHECK_NoFilterSaveNew 10345

sakura.hh の 397 行で定義されています。

#define HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 10920

sakura.hh の 474 行で定義されています。

#define HIDC_CHECK_QueryIfCodeChange 10343

sakura.hh の 395 行で定義されています。

#define HIDC_CHECK_REGEX 11610

sakura.hh の 601 行で定義されています。

#define HIDC_CHECK_RELOADWHENEXECUTE 11751

sakura.hh の 613 行で定義されています。

#define HIDC_CHECK_REPEATEDSCROLLSMOOTH 10915

sakura.hh の 469 行で定義されています。

#define HIDC_CHECK_RestoreBookmarks 10342

sakura.hh の 394 行で定義されています。

#define HIDC_CHECK_RestoreCurPosition 10317

sakura.hh の 390 行で定義されています。

#define HIDC_CHECK_RetainEmptyWindow 11273

sakura.hh の 515 行で定義されています。

#define HIDC_CHECK_RTRIM_PREVLINE 11352

sakura.hh の 540 行で定義されています。

#define HIDC_CHECK_SameTabWidth 11270

sakura.hh の 512 行で定義されています。

#define HIDC_CHECK_SENDSTDIN 12108

sakura.hh の 687 行で定義されています。

#define HIDC_CHECK_SHIFT 10710

sakura.hh の 442 行で定義されています。

#define HIDC_CHECK_SortTabList 11272

sakura.hh の 514 行で定義されています。

#define HIDC_CHECK_SplitterWndHScroll 11217

sakura.hh の 499 行で定義されています。

#define HIDC_CHECK_SplitterWndVScroll 11216

sakura.hh の 498 行で定義されています。

#define HIDC_CHECK_STAYTASKTRAY 10914

sakura.hh の 468 行で定義されています。

#define HIDC_CHECK_STOPS_PARAGRAPH 10918

sakura.hh の 472 行で定義されています。

#define HIDC_CHECK_STOPS_WORD 10917

sakura.hh の 471 行で定義されています。

#define HIDC_CHECK_TAB_ARROW 11350

sakura.hh の 538 行で定義されています。

#define HIDC_CHECK_TAG_MAKE_RECURSE 13703

sakura.hh の 862 行で定義されています。

#define HIDC_CHECK_TOOLBARISFLAT 11010

sakura.hh の 487 行で定義されています。

#define HIDC_CHECK_TYPEHTMLHELPISSINGLE 11546

sakura.hh の 590 行で定義されています。

#define HIDC_CHECK_UNDERLINE 11412

sakura.hh の 554 行で定義されています。

#define HIDC_CHECK_USEHOKAN 10610

sakura.hh の 421 行で定義されています。

#define HIDC_CHECK_USETRAYICON 10913

sakura.hh の 467 行で定義されています。

#define HIDC_CHECK_WINPOS 13805

sakura.hh の 873 行で定義されています。

#define HIDC_CHECK_WORDWRAP 11310

sakura.hh の 518 行で定義されています。

#define HIDC_CMP_BUTTON1 12300

sakura.hh の 703 行で定義されています。

#define HIDC_CMP_BUTTON_HELP 12304

sakura.hh の 707 行で定義されています。

#define HIDC_CMP_CHECK_TILE_H 12305

sakura.hh の 708 行で定義されています。

#define HIDC_CMP_LIST_FILES 12306

sakura.hh の 709 行で定義されています。

#define HIDC_CMP_STATIC_COMPARESRC 12307

sakura.hh の 710 行で定義されています。

#define HIDC_COMBO_FUNCKIND 10130

sakura.hh の 373 行で定義されています。

#define HIDC_COMBO_FUNCKIND_KEYBIND 10730

sakura.hh の 445 行で定義されています。

#define HIDC_COMBO_FUNCKIND_TOOLBAR 11030

sakura.hh の 488 行で定義されています。

#define HIDC_COMBO_IMESTATE 11332

sakura.hh の 526 行で定義されています。

#define HIDC_COMBO_IMESWITCH 11331

sakura.hh の 525 行で定義されています。

#define HIDC_COMBO_INDENTLAYOUT 11351

sakura.hh の 539 行で定義されています。

#define HIDC_COMBO_KEYWORD_SELECT 14102

sakura.hh の 915 行で定義されています。

#define HIDC_COMBO_MACROID 11730

sakura.hh の 608 行で定義されています。

#define HIDC_COMBO_MENU 10131

sakura.hh の 374 行で定義されています。

#define HIDC_COMBO_nSortType 12209

sakura.hh の 699 行で定義されています。

#define HIDC_COMBO_OUTLINES 11334

sakura.hh の 528 行で定義されています。

#define HIDC_COMBO_REGEX_COLOR 11630

sakura.hh の 602 行で定義されています。

#define HIDC_COMBO_SET 10830

sakura.hh の 459 行で定義されています。

#define HIDC_COMBO_SET2_COLOR 11431

sakura.hh の 558 行で定義されています。

#define HIDC_COMBO_SET_COLOR 11430

sakura.hh の 557 行で定義されています。

#define HIDC_COMBO_SMARTINDENT 11333

sakura.hh の 527 行で定義されています。

#define HIDC_COMBO_WINTYPE 13812

sakura.hh の 880 行で定義されています。

#define HIDC_CTRLCODE_IDCANCEL 13302

sakura.hh の 820 行で定義されています。

#define HIDC_CTRLCODE_IDOK 13301

sakura.hh の 819 行で定義されています。

#define HIDC_DIFF_IDCANCEL 13214

sakura.hh の 811 行で定義されています。

#define HIDC_DIFF_IDOK 13213

sakura.hh の 810 行で定義されています。

#define HIDC_DLG1_EDIT1 13002

sakura.hh の 783 行で定義されています。

#define HIDC_EDIT_AUTOBACKUP_INTERVAL 10340

sakura.hh の 392 行で定義されています。

#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 の 559 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_FROM2 11447

sakura.hh の 566 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_TO 11441

sakura.hh の 560 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_TO2 11448

sakura.hh の 567 行で定義されています。

#define HIDC_EDIT_CHARSPACE 11343

sakura.hh の 532 行で定義されています。

#define HIDC_EDIT_DFORM 10440

sakura.hh の 399 行で定義されています。

#define HIDC_EDIT_DFORM_EX 10442

sakura.hh の 401 行で定義されています。

#define HIDC_EDIT_DIFF_DST 13206

sakura.hh の 803 行で定義されています。

#define HIDC_EDIT_EXTHELP1 10642

sakura.hh の 432 行で定義されています。

#define HIDC_EDIT_EXTHTMLHELP 10643

sakura.hh の 433 行で定義されています。

#define HIDC_EDIT_FNAME_FROM 13401

sakura.hh の 825 行で定義されています。

#define HIDC_EDIT_FNAME_TO 13402

sakura.hh の 826 行で定義されています。

#define HIDC_EDIT_FUNCKEYWND_GROUPNUM 11262

sakura.hh の 510 行で定義されています。

#define HIDC_EDIT_HOKANFILE 11540

sakura.hh の 584 行で定義されています。

#define HIDC_EDIT_INDENTCHARS 11345

sakura.hh の 534 行で定義されています。

#define HIDC_EDIT_INYOUKIGOU 10445

sakura.hh の 404 行で定義されています。

#define HIDC_EDIT_KEYHELP 13903

sakura.hh の 888 行で定義されています。

#define HIDC_EDIT_KEYSFUNC 10740

sakura.hh の 446 行で定義されています。

#define HIDC_EDIT_KEYWORDHELPFILE 11541

sakura.hh の 585 行で定義されています。

#define HIDC_EDIT_KINSOKUHEAD 11347

sakura.hh の 536 行で定義されています。

#define HIDC_EDIT_KINSOKUTAIL 11348

sakura.hh の 537 行で定義されています。

#define HIDC_EDIT_LINECOMMENT 11442

sakura.hh の 561 行で定義されています。

#define HIDC_EDIT_LINECOMMENT2 11443

sakura.hh の 562 行で定義されています。

#define HIDC_EDIT_LINECOMMENT3 11449

sakura.hh の 568 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS 11444

sakura.hh の 563 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS2 11445

sakura.hh の 564 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS3 11452

sakura.hh の 571 行で定義されています。

#define HIDC_EDIT_LINESPACE 11344

sakura.hh の 533 行で定義されています。

#define HIDC_EDIT_LINETERMCHAR 11446

sakura.hh の 565 行で定義されています。

#define HIDC_EDIT_MAX_MRU_FILE 10942

sakura.hh の 477 行で定義されています。

#define HIDC_EDIT_MAX_MRU_FOLDER 10943

sakura.hh の 478 行で定義されています。

#define HIDC_EDIT_MAXLINELEN 11342

sakura.hh の 531 行で定義されています。

#define HIDC_EDIT_MIDASHIKIGOU 10444

sakura.hh の 403 行で定義されています。

#define HIDC_EDIT_MIGEMO_DICT 10652

sakura.hh の 436 行で定義されています。

#define HIDC_EDIT_MIGEMO_DLL 10650

sakura.hh の 434 行で定義されています。

#define HIDC_EDIT_nDropFileNumMax 10341

sakura.hh の 393 行で定義されています。

#define HIDC_EDIT_nLineNumberRightSpace 11242

sakura.hh の 507 行で定義されています。

#define HIDC_EDIT_nRulerBottomSpace 11240

sakura.hh の 505 行で定義されています。

#define HIDC_EDIT_nRulerHeight 11241

sakura.hh の 506 行で定義されています。

#define HIDC_EDIT_OUTLINERULEFILE 11355

sakura.hh の 543 行で定義されています。

#define HIDC_EDIT_REGEX 11640

sakura.hh の 603 行で定義されています。

#define HIDC_EDIT_REGEXPLIB 10514

sakura.hh の 414 行で定義されています。

#define HIDC_EDIT_REPEATEDSCROLLLINENUM 10941

sakura.hh の 476 行で定義されています。

#define HIDC_EDIT_SX 13803

sakura.hh の 871 行で定義されています。

#define HIDC_EDIT_SY 13804

sakura.hh の 872 行で定義されています。

#define HIDC_EDIT_TABSPACE 11330

sakura.hh の 524 行で定義されています。

#define HIDC_EDIT_TABVIEWSTRING 11346

sakura.hh の 535 行で定義されています。

#define HIDC_EDIT_TAG_MAKE_CMDLINE 13704

sakura.hh の 863 行で定義されています。

#define HIDC_EDIT_TAG_MAKE_FOLDER 13701

sakura.hh の 860 行で定義されています。

#define HIDC_EDIT_TFORM 10441

sakura.hh の 400 行で定義されています。

#define HIDC_EDIT_TFORM_EX 10443

sakura.hh の 402 行で定義されています。

#define HIDC_EDIT_TYPEEXTHELP 11542

sakura.hh の 586 行で定義されています。

#define HIDC_EDIT_TYPEEXTHTMLHELP 11544

sakura.hh の 588 行で定義されています。

#define HIDC_EDIT_TYPEEXTS 11341

sakura.hh の 530 行で定義されています。

#define HIDC_EDIT_TYPENAME 11340

sakura.hh の 529 行で定義されています。

#define HIDC_EDIT_VERTLINE 11468

sakura.hh の 580 行で定義されています。

#define HIDC_EDIT_WX 13801

sakura.hh の 869 行で定義されています。

#define HIDC_EDIT_WY 13802

sakura.hh の 870 行で定義されています。

#define HIDC_EXEC_BUTTON_HELP 12103

sakura.hh の 682 行で定義されています。

#define HIDC_EXEC_BUTTON_REFERENCE 12100

sakura.hh の 679 行で定義されています。

#define HIDC_EXEC_CHECK_GETSTDOUT 12104

sakura.hh の 683 行で定義されています。

#define HIDC_EXEC_COMBO_m_szCommand 12105

sakura.hh の 684 行で定義されています。

#define HIDC_FAVORITE_IDCANCEL 13502

sakura.hh の 840 行で定義されています。

#define HIDC_FAVORITE_IDOK 13501

sakura.hh の 839 行で定義されています。

#define HIDC_FIND_BUTTON_HELP 11803

sakura.hh の 619 行で定義されています。

#define HIDC_FIND_BUTTON_SEARCHNEXT 11800

sakura.hh の 616 行で定義されています。

#define HIDC_FIND_BUTTON_SEARCHPREV 11801

sakura.hh の 617 行で定義されています。

#define HIDC_FIND_BUTTON_SETMARK 11811

sakura.hh の 627 行で定義されています。

#define HIDC_FIND_CHECK_bAutoCloseDlgFind 11808

sakura.hh の 624 行で定義されています。

#define HIDC_FIND_CHECK_NOTIFYNOTFOUND 11807

sakura.hh の 623 行で定義されています。

#define HIDC_FIND_CHECK_SEARCHALL 11812

sakura.hh の 628 行で定義されています。

#define HIDC_FIND_CHK_LOHICASE 11805

sakura.hh の 621 行で定義されています。

#define HIDC_FIND_CHK_REGULAREXP 11806

sakura.hh の 622 行で定義されています。

#define HIDC_FIND_CHK_WORD 11804

sakura.hh の 620 行で定義されています。

#define HIDC_FIND_COMBO_TEXT 11809

sakura.hh の 625 行で定義されています。

#define HIDC_FIND_STATIC_JRE32VER 11810

sakura.hh の 626 行で定義されています。

#define HIDC_FL_BUTTON_COPY 12200

sakura.hh の 690 行で定義されています。

#define HIDC_FL_BUTTON_HELP 12203

sakura.hh の 693 行で定義されています。

#define HIDC_FL_BUTTON_WINSIZE 12210

sakura.hh の 700 行で定義されています。

#define HIDC_FL_CHECK_bAutoCloseDlgFuncList 12204

sakura.hh の 694 行で定義されています。

#define HIDC_FL_CHECK_bFunclistSetFocusOnJump 12207

sakura.hh の 697 行で定義されています。

#define HIDC_FL_CHECK_bMarkUpBlankLineEnable 12208

sakura.hh の 698 行で定義されています。

#define HIDC_FL_LIST1 12205

sakura.hh の 695 行で定義されています。

#define HIDC_FL_TREE1 12206

sakura.hh の 696 行で定義されています。

#define HIDC_GREP_BUTTON_CURRENTFOLDER 12001

sakura.hh の 657 行で定義されています。

#define HIDC_GREP_BUTTON_FOLDER 12000

sakura.hh の 656 行で定義されています。

#define HIDC_GREP_BUTTON_HELP 12004

sakura.hh の 660 行で定義されています。

#define HIDC_GREP_CHK_DEFAULTFOLDER 12019

sakura.hh の 676 行で定義されています。

#define HIDC_GREP_CHK_FROMTHISTEXT 12007

sakura.hh の 663 行で定義されています。

#define HIDC_GREP_CHK_LOHICASE 12008

sakura.hh の 664 行で定義されています。

#define HIDC_GREP_CHK_REGULAREXP 12009

sakura.hh の 665 行で定義されています。

#define HIDC_GREP_CHK_SUBFOLDER 12006

sakura.hh の 662 行で定義されています。

#define HIDC_GREP_CHK_WORD 12005

sakura.hh の 661 行で定義されています。

#define HIDC_GREP_COMBO_CHARSET 12010

sakura.hh の 667 行で定義されています。

#define HIDC_GREP_COMBO_FILE 12012

sakura.hh の 669 行で定義されています。

#define HIDC_GREP_COMBO_FOLDER 12013

sakura.hh の 670 行で定義されています。

#define HIDC_GREP_COMBO_TEXT 12011

sakura.hh の 668 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTLINE 12014

sakura.hh の 671 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTMARKED 12015

sakura.hh の 672 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTSTYLE1 12016

sakura.hh の 673 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTSTYLE2 12017

sakura.hh の 674 行で定義されています。

#define HIDC_GREP_STATIC_JRE32VER 12018

sakura.hh の 675 行で定義されています。

#define HIDC_HOTKEY_TRAYMENU 10940

sakura.hh の 475 行で定義されています。

#define HIDC_JUMP_BUTTON_HELP 12802

sakura.hh の 767 行で定義されています。

#define HIDC_JUMP_BUTTON_JUMP 12800

sakura.hh の 765 行で定義されています。

#define HIDC_JUMP_CHECK_PLSQL 12803

sakura.hh の 768 行で定義されています。

#define HIDC_JUMP_COMBO_PLSQLBLOCKS 12804

sakura.hh の 769 行で定義されています。

#define HIDC_JUMP_EDIT_LINENUM 12805

sakura.hh の 770 行で定義されています。

#define HIDC_JUMP_EDIT_PLSQL_E1 12806

sakura.hh の 771 行で定義されています。

#define HIDC_JUMP_RADIO_LINENUM_CRLF 12808

sakura.hh の 773 行で定義されています。

#define HIDC_JUMP_RADIO_LINENUM_LAYOUT 12807

sakura.hh の 772 行で定義されています。

#define HIDC_LABEL_REGEX_VERSION 11670

sakura.hh の 605 行で定義されています。

#define HIDC_LABEL_REGEXPVER 10515

sakura.hh の 415 行で定義されています。

#define HIDC_LIST_ASSIGNEDKEYS 10752

sakura.hh の 449 行で定義されています。

#define HIDC_LIST_COLORS 11450

sakura.hh の 569 行で定義されています。

#define HIDC_LIST_CTRLCODE 13300

sakura.hh の 818 行で定義されています。

#define HIDC_LIST_DIFF_FILES 13211

sakura.hh の 808 行で定義されています。

#define HIDC_LIST_FAVORITE_CMD 13517

sakura.hh の 849 行で定義されています。

#define HIDC_LIST_FAVORITE_FILE 13511

sakura.hh の 843 行で定義されています。

#define HIDC_LIST_FAVORITE_FOLDER 13512

sakura.hh の 844 行で定義されています。

#define HIDC_LIST_FAVORITE_GREPFILE 13515

sakura.hh の 847 行で定義されています。

#define HIDC_LIST_FAVORITE_GREPFOLDER 13516

sakura.hh の 848 行で定義されています。

#define HIDC_LIST_FAVORITE_REPLACE 13514

sakura.hh の 846 行で定義されています。

#define HIDC_LIST_FAVORITE_SEARCH 13513

sakura.hh の 845 行で定義されています。

#define HIDC_LIST_FNAME 13400

sakura.hh の 824 行で定義されています。

#define HIDC_LIST_FUNC 10150

sakura.hh の 375 行で定義されています。

#define HIDC_LIST_FUNC_KEYBIND 10750

sakura.hh の 447 行で定義されています。

#define HIDC_LIST_FUNC_TOOLBAR 11040

sakura.hh の 489 行で定義されています。

#define HIDC_LIST_KEY 10751

sakura.hh の 448 行で定義されています。

#define HIDC_LIST_KEYHELP 13901

sakura.hh の 886 行で定義されています。

#define HIDC_LIST_KEYWORD 10840

sakura.hh の 461 行で定義されています。

#define HIDC_LIST_REGEX 11650

sakura.hh の 604 行で定義されています。

#define HIDC_LIST_RES 10151

sakura.hh の 376 行で定義されています。

#define HIDC_LIST_RES_TOOLBAR 11041

sakura.hh の 490 行で定義されています。

#define HIDC_LIST_SAMECOLOR_COLORS 14003

sakura.hh の 906 行で定義されています。

#define HIDC_LIST_SAMECOLOR_ITEMINFO 14006

sakura.hh の 909 行で定義されています。

#define HIDC_LIST_TAGJUMPLIST 13600

sakura.hh の 853 行で定義されています。

#define HIDC_MACRO_REG 11701

sakura.hh の 607 行で定義されています。

#define HIDC_MACRODIR 11750

sakura.hh の 612 行で定義されています。

#define HIDC_MACRODIRREF 11700

sakura.hh の 606 行で定義されています。

#define HIDC_MACROLIST 11741

sakura.hh の 611 行で定義されています。

#define HIDC_MACRONAME 11740

sakura.hh の 610 行で定義されています。

#define HIDC_MACROPATH 11731

sakura.hh の 609 行で定義されています。

#define HIDC_OPENDLG_BUTTON_HELP 13102

sakura.hh の 789 行で定義されています。

#define HIDC_OPENDLG_CHECK_BOM 13107

sakura.hh の 794 行で定義されています。

#define HIDC_OPENDLG_COMBO_CODE 13103

sakura.hh の 790 行で定義されています。

#define HIDC_OPENDLG_COMBO_EOL 13106

sakura.hh の 793 行で定義されています。

#define HIDC_OPENDLG_COMBO_MRU 13104

sakura.hh の 791 行で定義されています。

#define HIDC_OPENDLG_COMBO_OPENFOLDER 13105

sakura.hh の 792 行で定義されています。

#define HIDC_PP_EDIT_FROM 12402

sakura.hh の 715 行で定義されています。

#define HIDC_PP_EDIT_TO 12403

sakura.hh の 716 行で定義されています。

#define HIDC_PP_RADIO_ALL 12404

sakura.hh の 717 行で定義されています。

#define HIDC_PP_RADIO_FROMTO 12405

sakura.hh の 718 行で定義されています。

#define HIDC_PROP_BUTTON_HELP 12602

sakura.hh の 754 行で定義されています。

#define HIDC_PROP_EDIT1 12603

sakura.hh の 755 行で定義されています。

#define HIDC_PS_BUTTON_EDITSETTINGNAME 12500

sakura.hh の 721 行で定義されています。

#define HIDC_PS_BUTTON_HELP 12503

sakura.hh の 724 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUHEAD 12519

sakura.hh の 740 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUKUTO 12522

sakura.hh の 743 行で定義されています。

#define HIDC_PS_CHECK_KINSOKURET 12521

sakura.hh の 742 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUTAIL 12520

sakura.hh の 741 行で定義されています。

#define HIDC_PS_CHECK_LINENUMBER 12505

sakura.hh の 726 行で定義されています。

#define HIDC_PS_CHECK_WORDWRAP 12504

sakura.hh の 725 行で定義されています。

#define HIDC_PS_COMBO_FONT_HAN 12506

sakura.hh の 727 行で定義されています。

#define HIDC_PS_COMBO_FONT_ZEN 12507

sakura.hh の 728 行で定義されています。

#define HIDC_PS_COMBO_PAPER 12509

sakura.hh の 730 行で定義されています。

#define HIDC_PS_COMBO_PAPERORIENT 12510

sakura.hh の 731 行で定義されています。

#define HIDC_PS_COMBO_SETTINGNAME 12508

sakura.hh の 729 行で定義されています。

#define HIDC_PS_EDIT_DANSPACE 12514

sakura.hh の 735 行で定義されています。

#define HIDC_PS_EDIT_DANSUU 12513

sakura.hh の 734 行で定義されています。

#define HIDC_PS_EDIT_FONTWIDTH 12511

sakura.hh の 732 行で定義されています。

#define HIDC_PS_EDIT_FOOT1 12526

sakura.hh の 747 行で定義されています。

#define HIDC_PS_EDIT_FOOT2 12527

sakura.hh の 748 行で定義されています。

#define HIDC_PS_EDIT_FOOT3 12528

sakura.hh の 749 行で定義されています。

#define HIDC_PS_EDIT_HEAD1 12523

sakura.hh の 744 行で定義されています。

#define HIDC_PS_EDIT_HEAD2 12524

sakura.hh の 745 行で定義されています。

#define HIDC_PS_EDIT_HEAD3 12525

sakura.hh の 746 行で定義されています。

#define HIDC_PS_EDIT_LINESPACE 12512

sakura.hh の 733 行で定義されています。

#define HIDC_PS_EDIT_MARGINBY 12516

sakura.hh の 737 行で定義されています。

#define HIDC_PS_EDIT_MARGINLX 12517

sakura.hh の 738 行で定義されています。

#define HIDC_PS_EDIT_MARGINRX 12518

sakura.hh の 739 行で定義されています。

#define HIDC_PS_EDIT_MARGINTY 12515

sakura.hh の 736 行で定義されています。

#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 の 479 行で定義されています。

#define HIDC_RADIO_CARETTYPE1 10961

sakura.hh の 480 行で定義されています。

#define HIDC_RADIO_DFORM_0 10460

sakura.hh の 405 行で定義されています。

#define HIDC_RADIO_DFORM_1 10461

sakura.hh の 406 行で定義されています。

#define HIDC_RADIO_DIFF_DST1 13209

sakura.hh の 806 行で定義されています。

#define HIDC_RADIO_DIFF_DST2 13210

sakura.hh の 807 行で定義されています。

#define HIDC_RADIO_DIFF_FILE1 13207

sakura.hh の 804 行で定義されています。

#define HIDC_RADIO_DIFF_FILE2 13208

sakura.hh の 805 行で定義されています。

#define HIDC_RADIO_EDITWINDOW 12107

sakura.hh の 686 行で定義されています。

#define HIDC_RADIO_ESCAPETYPE_1 11460

sakura.hh の 572 行で定義されています。

#define HIDC_RADIO_ESCAPETYPE_2 11461

sakura.hh の 573 行で定義されています。

#define HIDC_RADIO_FUNCKEYWND_PLACE1 11260

sakura.hh の 508 行で定義されています。

#define HIDC_RADIO_FUNCKEYWND_PLACE2 11261

sakura.hh の 509 行で定義されています。

#define HIDC_RADIO_LINENUM_CRLF 11463

sakura.hh の 575 行で定義されています。

#define HIDC_RADIO_LINENUM_LAYOUT 11462

sakura.hh の 574 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE0 11464

sakura.hh の 576 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE1 11465

sakura.hh の 577 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE2 11466

sakura.hh の 578 行で定義されています。

#define HIDC_RADIO_OUTLINEDEFAULT 11353

sakura.hh の 541 行で定義されています。

#define HIDC_RADIO_OUTLINERULEFILE 11354

sakura.hh の 542 行で定義されています。

#define HIDC_RADIO_OUTPUT 12106

sakura.hh の 685 行で定義されています。

#define HIDC_RADIO_TFORM_0 10462

sakura.hh の 407 行で定義されています。

#define HIDC_RADIO_TFORM_1 10463

sakura.hh の 408 行で定義されています。

#define HIDC_RADIO_WINPOS_DEF 13809

sakura.hh の 877 行で定義されています。

#define HIDC_RADIO_WINPOS_SAVE 13810

sakura.hh の 878 行で定義されています。

#define HIDC_RADIO_WINPOS_SET 13811

sakura.hh の 879 行で定義されています。

#define HIDC_RADIO_WINSIZE_DEF 13806

sakura.hh の 874 行で定義されています。

#define HIDC_RADIO_WINSIZE_SAVE 13807

sakura.hh の 875 行で定義されています。

#define HIDC_RADIO_WINSIZE_SET 13808

sakura.hh の 876 行で定義されています。

#define HIDC_REP_BUTTON_HELP 11905

sakura.hh の 636 行で定義されています。

#define HIDC_REP_BUTTON_REPALCE 11902

sakura.hh の 633 行で定義されています。

#define HIDC_REP_BUTTON_REPALCEALL 11903

sakura.hh の 634 行で定義されています。

#define HIDC_REP_BUTTON_SEARCHNEXT 11900

sakura.hh の 631 行で定義されています。

#define HIDC_REP_BUTTON_SEARCHPREV 11901

sakura.hh の 632 行で定義されています。

#define HIDC_REP_BUTTON_SETMARK 11920

sakura.hh の 651 行で定義されています。

#define HIDC_REP_CHECK_bAutoCloseDlgReplace 11911

sakura.hh の 642 行で定義されています。

#define HIDC_REP_CHECK_CONSECUTIVEALL 11922

sakura.hh の 653 行で定義されています。

#define HIDC_REP_CHECK_NOTIFYNOTFOUND 11910

sakura.hh の 641 行で定義されています。

#define HIDC_REP_CHECK_SEARCHALL 11921

sakura.hh の 652 行で定義されています。

#define HIDC_REP_CHK_LOHICASE 11908

sakura.hh の 639 行で定義されています。

#define HIDC_REP_CHK_PASTE 11906

sakura.hh の 637 行で定義されています。

#define HIDC_REP_CHK_REGULAREXP 11909

sakura.hh の 640 行で定義されています。

#define HIDC_REP_CHK_WORD 11907

sakura.hh の 638 行で定義されています。

#define HIDC_REP_COMBO_TEXT 11912

sakura.hh の 643 行で定義されています。

#define HIDC_REP_COMBO_TEXT2 11913

sakura.hh の 644 行で定義されています。

#define HIDC_REP_RADIO_ADD 11916

sakura.hh の 647 行で定義されています。

#define HIDC_REP_RADIO_ALLAREA 11918

sakura.hh の 649 行で定義されています。

#define HIDC_REP_RADIO_INSERT 11915

sakura.hh の 646 行で定義されています。

#define HIDC_REP_RADIO_REPLACE 11914

sakura.hh の 645 行で定義されています。

#define HIDC_REP_RADIO_SELECTEDAREA 11917

sakura.hh の 648 行で定義されています。

#define HIDC_REP_STATIC_JRE32VER 11919

sakura.hh の 650 行で定義されています。

#define HIDC_STATIC 19999

sakura.hh の 918 行で定義されています。

#define HIDC_STATIC_COLOR 14007

sakura.hh の 910 行で定義されています。

#define HIDC_STATIC_DIFF_SRC 13212

sakura.hh の 809 行で定義されています。

#define HIDC_TAB_FAVORITE 13510

sakura.hh の 842 行で定義されています。

#define HIDC_TABWND_CAPTION 11222

sakura.hh の 504 行で定義されています。

#define HIDC_TAG_MAKE_IDCANCEL 13706

sakura.hh の 865 行で定義されています。

#define HIDC_TAG_MAKE_IDOK 13705

sakura.hh の 864 行で定義されています。

#define HIDC_TAGJUMPLIST_IDCANCEL 13602

sakura.hh の 855 行で定義されています。

#define HIDC_TAGJUMPLIST_IDOK 13601

sakura.hh の 854 行で定義されています。

#define HIDC_TL_BUTTON_HELP 12703

sakura.hh の 761 行で定義されています。

#define HIDC_TL_BUTTON_TEMPCHANGE 12700

sakura.hh の 758 行で定義されています。

#define HIDC_TL_LIST_TYPES 12704

sakura.hh の 762 行で定義されています。

#define HIDC_WINCAPTION_ACTIVE 11220

sakura.hh の 502 行で定義されています。

#define HIDC_WINCAPTION_INACTIVE 11221

sakura.hh の 503 行で定義されています。

#define HIDCANCEL_CMP 12303

sakura.hh の 706 行で定義されています。

#define HIDCANCEL_DLG1 13001

sakura.hh の 782 行で定義されています。

#define HIDCANCEL_EXEC 12102

sakura.hh の 681 行で定義されています。

#define HIDCANCEL_FIND 11802

sakura.hh の 618 行で定義されています。

#define HIDCANCEL_FL 12202

sakura.hh の 692 行で定義されています。

#define HIDCANCEL_GREP 12003

sakura.hh の 659 行で定義されています。

#define HIDCANCEL_JUMP 12801

sakura.hh の 766 行で定義されています。

#define HIDCANCEL_KEYWORD_SELECT 14101

sakura.hh の 914 行で定義されています。

#define HIDCANCEL_OPENDLG 13101

sakura.hh の 788 行で定義されています。

#define HIDCANCEL_PP 12401

sakura.hh の 714 行で定義されています。

#define HIDCANCEL_PROP 12601

sakura.hh の 753 行で定義されています。

#define HIDCANCEL_PS 12502

sakura.hh の 723 行で定義されています。

#define HIDCANCEL_REP 11904

sakura.hh の 635 行で定義されています。

#define HIDCANCEL_SAMECOLOR 14001

sakura.hh の 904 行で定義されています。

#define HIDCANCEL_TL 12702

sakura.hh の 760 行で定義されています。

#define HIDOK2_CMP 12301

sakura.hh の 704 行で定義されています。

#define HIDOK_ABOUT 12901

sakura.hh の 777 行で定義されています。

#define HIDOK_CMP 12302

sakura.hh の 705 行で定義されています。

#define HIDOK_DLG1 13000

sakura.hh の 781 行で定義されています。

#define HIDOK_EXEC 12101

sakura.hh の 680 行で定義されています。

#define HIDOK_FL 12201

sakura.hh の 691 行で定義されています。

#define HIDOK_GREP 12002

sakura.hh の 658 行で定義されています。

#define HIDOK_KEYWORD_SELECT 14100

sakura.hh の 913 行で定義されています。

#define HIDOK_OPENDLG 13100

sakura.hh の 787 行で定義されています。

#define HIDOK_PP 12400

sakura.hh の 713 行で定義されています。

#define HIDOK_PROP 12600

sakura.hh の 752 行で定義されています。

#define HIDOK_PS 12501

sakura.hh の 722 行で定義されています。

#define HIDOK_SAMECOLOR 14000

sakura.hh の 903 行で定義されています。

#define HIDOK_TL 12701

sakura.hh の 759 行で定義されています。

#define HIDOK_WINSIZE 13813

sakura.hh の 881 行で定義されています。

#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 Nov 17 20:27:24 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura.hh ソースファイル

sakura_core

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_bEnableLineModePaste         10215 //ラインモード貼り付けを可能にする    // 2007.10.08 ryoji
00380 #define HIDC_CHECK_DRAGDROP                     10212 //ドラッグ＆ドロップ編集する
00381 #define HIDC_CHECK_DROPSOURCE                   10213 //ドロップ元にする
00382 #define HIDC_CHECK_bNotOverWriteCRLF            10214 //上書きモード
00383 #define HIDC_CHECK_EXCVLUSIVE_NO                10310 //ファイルの排他制御（排他制御しない）
00384 #define HIDC_CHECK_bCheckFileTimeStamp          10311 //更新の監視
00385 #define HIDC_CHECK_EXCVLUSIVE_WRITE             10312 //ファイルの排他制御（上書き禁止）
00386 #define HIDC_CHECK_EXCVLUSIVE_READWRITE         10313 //ファイルお排他制御（読み書き禁止）
00387 #define HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE    10314 //無変更でも上書き
00388 #define HIDC_CHECK_AUTOSAVE                     10315 //自動的に保存
00389 #define HIDC_CHECK_bDropFileAndClose            10316 //閉じて開く
00390 #define HIDC_CHECK_RestoreCurPosition           10317 //カーソル位置の復元
00391 #define HIDC_CHECK_AutoMIMEDecode               10318 //MIMEデコード
00392 #define HIDC_EDIT_AUTOBACKUP_INTERVAL           10340 //自動保存間隔
00393 #define HIDC_EDIT_nDropFileNumMax               10341 //ファイルドロップ最大数
00394 #define HIDC_CHECK_RestoreBookmarks             10342 //ブックマークの復元
00395 #define HIDC_CHECK_QueryIfCodeChange            10343 //前回と異なる文字コードのとき問い合わせを行う  // 2006.08.06 ryoji
00396 #define HIDC_CHECK_AlertIfFileNotExist          10344 //開こうとしたファイルが存在しないとき警告する  // 2006.08.06 ryoji
00397 #define HIDC_CHECK_NoFilterSaveNew              10345 //新規から保存時は全ファイル表示   // 2006.11.16 ryoji
00398 #define HIDC_CHECK_NoFilterSaveFile             10346 //新規以外から保存時は全ファイル表示 // 2006.11.16 ryoji
00399 #define HIDC_EDIT_DFORM                         10440 //日付書式
00400 #define HIDC_EDIT_TFORM                         10441 //時刻書式
00401 #define HIDC_EDIT_DFORM_EX                      10442 //日付書式（表示例）
00402 #define HIDC_EDIT_TFORM_EX                      10443 //時刻書式（表示例）
00403 #define HIDC_EDIT_MIDASHIKIGOU                  10444 //見出し記号
00404 #define HIDC_EDIT_INYOUKIGOU                    10445 //引用符
00405 #define HIDC_RADIO_DFORM_0                      10460 //日付書式（標準）
00406 #define HIDC_RADIO_DFORM_1                      10461 //日付書式（カスタム）
00407 #define HIDC_RADIO_TFORM_0                      10462 //時刻書式（標準）
00408 #define HIDC_RADIO_TFORM_1                      10463 //時刻書式（カスタム）
00409 #define HIDC_CHECK_bCaretTextForSearch          10500 //カーソル位置の文字列をデフォルトの検索文字列にする // 2006.08.23 ryoji
00410 #define HIDC_CHECK_bGrepExitConfirm             10510 //GREPの保存確認
00411 #define HIDC_CHECK_GTJW_RETURN                  10511 //タグジャンプ（エンターキー）
00412 #define HIDC_CHECK_GTJW_LDBLCLK                 10512 //タグジャンプ（ダブルクリック）
00413 #define HIDC_CHECK_GREPREALTIME                 10513 //リアルタイムで表示する   // 2006.08.08 ryoji
00414 #define HIDC_EDIT_REGEXPLIB                     10514 //正規表現ライブラリ選択   // 2007.09.02 genta
00415 #define HIDC_LABEL_REGEXPVER                    10515 //正規表現ライブラリ選択   // 2007.09.02 genta
00416 //#define HIDC_BUTTON_HOKANFILE_REF             10600 //入力補完 単語ファイル参照           //Jul. 05, 2001 JEPRO タイプ別に移動
00417 //#define HIDC_BUTTON_KEYWORDHELPFILE_REF           10601 //キーワードヘルプファイル参照  //Jul. 05, 2001 JEPRO タイプ別に移動
00418 #define HIDC_BUTTON_OPENHELP1                   10602 //外部ヘルプファイル参照
00419 #define HIDC_BUTTON_OPENEXTHTMLHELP             10603 //外部HTMLファイル参照
00420 #define HIDC_BUTTON_KEYWORDHELPFONT             11611 //キーワードヘルプのフォント //重複回避
00421 #define HIDC_CHECK_USEHOKAN                     10610 //逐次入力補完
00422 //#define HIDC_CHECK_HOKANLOHICASE              10611 //入力補完の英大文字小文字            //Jul. 05, 2001 JEPRO タイプ別に移動
00423 #define HIDC_CHECK_m_bHokanKey_RETURN           10612 //候補決定キー（Enter）
00424 #define HIDC_CHECK_m_bHokanKey_TAB              10613 //候補決定キー（Tab）
00425 #define HIDC_CHECK_m_bHokanKey_RIGHT            10614 //候補決定キー（→）
00426 #define HIDC_CHECK_m_bHokanKey_SPACE            10615 //候補決定キー（Space）
00427 //#define HIDC_CHECK_USEKEYWORDHELP             10616 //キーワードヘルプ機能              //Jul. 05, 2001 JEPRO タイプ別に移動
00428 #define HIDC_CHECK_HTMLHELPISSINGLE             10617 //ビューアの複数起動
00429 #define HIDC_CHECK_CLICKKEYSEARCH               10618 //キャレット位置の単語を辞書検索       // 2006.03.24 fon
00430 //#define HIDC_EDIT_HOKANFILE                       10640 //単語ファイル名                   //Jul. 05, 2001 JEPRO タイプ別に移動
00431 //#define HIDC_EDIT_KEYWORDHELPFILE             10641 //辞書ファイル名                       //Jul. 05, 2001 JEPRO タイプ別に移動
00432 #define HIDC_EDIT_EXTHELP1                      10642 //外部ヘルプファイル名
00433 #define HIDC_EDIT_EXTHTMLHELP                   10643 //外部HTMLヘルプファイル名
00434 #define HIDC_EDIT_MIGEMO_DLL                    10650 //Migemo DLLファイル名   // 2006.08.06 ryoji
00435 #define HIDC_BUTTON_OPENMDLL                    10651 //Migemo DLLファイル参照    // 2006.08.06 ryoji
00436 #define HIDC_EDIT_MIGEMO_DICT                   10652 //Migemo 辞書ファイル名    // 2006.08.06 ryoji
00437 #define HIDC_BUTTON_OPENMDICT                   10653 //Migemo 辞書ファイル参照 // 2006.08.06 ryoji
00438 #define HIDC_BUTTON_IMPORT_KEYBIND              10700 //インポート
00439 #define HIDC_BUTTON_EXPORT_KEYBIND              10701 //エクスポート
00440 #define HIDC_BUTTON_ASSIGN                      10702 //キー割り当て
00441 #define HIDC_BUTTON_RELEASE                     10703 //キー解除
00442 #define HIDC_CHECK_SHIFT                        10710 //Shiftキー
00443 #define HIDC_CHECK_CTRL                         10711 //Ctrlキー
00444 #define HIDC_CHECK_ALT                          10712 //Altキー
00445 #define HIDC_COMBO_FUNCKIND_KEYBIND             10730 //機能の種別
00446 #define HIDC_EDIT_KEYSFUNC                      10740 //キーに割り当てられている機能
00447 #define HIDC_LIST_FUNC_KEYBIND                  10750 //機能一覧
00448 #define HIDC_LIST_KEY                           10751 //キー一覧
00449 #define HIDC_LIST_ASSIGNEDKEYS                  10752 //機能に割り当てられているキー
00450 #define HIDC_BUTTON_ADDSET                      10800 //キーワードセット追加
00451 #define HIDC_BUTTON_DELSET                      10801 //キーワードセット削除
00452 #define HIDC_BUTTON_ADDKEYWORD                  10802 //キーワード追加
00453 #define HIDC_BUTTON_EDITKEYWORD                 10803 //キーワード編集
00454 #define HIDC_BUTTON_DELKEYWORD                  10804 //キーワード削除
00455 #define HIDC_BUTTON_IMPORT_KEYWORD              10805 //インポート
00456 #define HIDC_BUTTON_EXPORT_KEYWORD              10806 //エクスポート
00457 #define HIDC_BUTTON_KEYCLEAN                    10807 //キーワード整理   // 2006.08.06 ryoji
00458 #define HIDC_CHECK_KEYWORDCASE                  10810 //キーワードの英大文字小文字区別
00459 #define HIDC_COMBO_SET                          10830 //強調キーワードセット名
00460 #define HIDC_BUTTON_KEYSETRENAME                10831 //セットの名称変更    // 2006.08.06 ryoji
00461 #define HIDC_LIST_KEYWORD                       10840 //キーワード一覧
00462 #define HIDC_BUTTON_CLEAR_MRU_FILE              10900 //履歴をクリア（ファイル）
00463 #define HIDC_BUTTON_CLEAR_MRU_FOLDER            10901 //履歴をクリア（フォルダ）
00464 #define HIDC_CHECK_FREECARET                    10910 //フリーカーソル
00465 #define HIDC_CHECK_INDENT                       10911 //自動インデント
00466 #define HIDC_CHECK_INDENT_WSPACE                10912 //全角空白もインデント
00467 #define HIDC_CHECK_USETRAYICON                  10913 //タスクトレイを使う
00468 #define HIDC_CHECK_STAYTASKTRAY                 10914 //タスクトレイに常駐
00469 #define HIDC_CHECK_REPEATEDSCROLLSMOOTH         10915 //少し滑らかにする
00470 #define HIDC_CHECK_EXITCONFIRM                  10916 //終了の確認
00471 #define HIDC_CHECK_STOPS_WORD                   10917 //単語単位で移動するときに単語の両端に止まる
00472 #define HIDC_CHECK_STOPS_PARAGRAPH              10918 //段落単位で移動するときに段落の両端に止まる
00473 #define HIDC_CHECK_CLOSEALLCONFIRM              10919 //[すべて閉じる]で他に編集用のウィンドウがあれば確認する    // 2006.12.25 ryoji
00474 #define HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE     10920 //マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない 2007.10.08 genta
00475 #define HIDC_HOTKEY_TRAYMENU                    10940 //左クリックメニューのショートカットキー
00476 #define HIDC_EDIT_REPEATEDSCROLLLINENUM         10941 //スクロール行数
00477 #define HIDC_EDIT_MAX_MRU_FILE                  10942 //ファイル履歴の最大数
00478 #define HIDC_EDIT_MAX_MRU_FOLDER                10943 //フォルダ履歴の最大数
00479 #define HIDC_RADIO_CARETTYPE0                   10960 //カーソル形状（Windows風）
00480 #define HIDC_RADIO_CARETTYPE1                   10961 //カーソル形状（MS-DOS風）
00481 #define HIDC_BUTTON_DELETE_TOOLBAR              11000 //ツールバーから機能削除
00482 #define HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR     11001 //セパレータ挿入
00483 #define HIDC_BUTTON_INSERT_TOOLBAR              11002 //ツールバーへ機能挿入
00484 #define HIDC_BUTTON_ADD_TOOLBAR                 11003 //ツールバーへ機能追加
00485 #define HIDC_BUTTON_UP_TOOLBAR                  11004 //ツールバーの機能を上へ移動
00486 #define HIDC_BUTTON_DOWN_TOOLBAR                11005 //ツールバーの機能を下へ移動
00487 #define HIDC_CHECK_TOOLBARISFLAT                11010 //フラットなボタン
00488 #define HIDC_COMBO_FUNCKIND_TOOLBAR             11030 //機能の種別
00489 #define HIDC_LIST_FUNC_TOOLBAR                  11040 //機能一覧
00490 #define HIDC_LIST_RES_TOOLBAR                   11041 //メニュー一覧
00491 #define HIDC_BUTTON_INSERTWRAP                  11042 //ツールバー折返   // 2006.08.06 ryoji
00492 #define HIDC_CHECK_bSelectClickedURL            11110 //クリッカブルURL
00493 #define HIDC_CHECK_DispFUNCKEYWND               11210 //ファンクションキー
00494 #define HIDC_CHECK_DispSTATUSBAR                11211 //ステータスバー
00495 #define HIDC_CHECK_DispTOOLBAR                  11212 //ツールバー表示
00496 #define HIDC_CHECK_bScrollBarHorz               11213 //水平スクロールバー
00497 #define HIDC_CHECK_bMenuIcon                    11214 //アイコン付きメニュー
00498 #define HIDC_CHECK_SplitterWndVScroll           11216 //垂直スクロールの同期
00499 #define HIDC_CHECK_SplitterWndHScroll           11217 //水平スクロールの同期
00500 #define HIDC_CHECK_DispTabWnd                   11218 //タブウインドウ表示 //@@@ 2003.05.31 MIK
00501 #define HIDC_CHECK_DispTabWndMultiWin           11219 //タブウインドウ表示 //@@@ 2003.05.31 MIK
00502 #define HIDC_WINCAPTION_ACTIVE                  11220 //ウインドアクティブ時ウキャプション //@@@ 2003.06.15 MIK
00503 #define HIDC_WINCAPTION_INACTIVE                11221 //ウインドア非クティブ時ウキャプション  //@@@ 2003.06.15 MIK
00504 #define HIDC_TABWND_CAPTION                     11222 //タブウインドウキャプション //@@@ 2003.06.15 MIK
00505 #define HIDC_EDIT_nRulerBottomSpace             11240 //ルーラー（テキストとの隙間）
00506 #define HIDC_EDIT_nRulerHeight                  11241 //ルーラー（高さ）
00507 #define HIDC_EDIT_nLineNumberRightSpace         11242 //行番号とテキストの隙間
00508 #define HIDC_RADIO_FUNCKEYWND_PLACE1            11260 //ファンクションキー表示位置（上）
00509 #define HIDC_RADIO_FUNCKEYWND_PLACE2            11261 //ファンクションキー表示位置（下）
00510 #define HIDC_EDIT_FUNCKEYWND_GROUPNUM           11262 //ファンクションキーのグループボタン数
00511 #define HIDC_BUTTON_WINSIZE                     11263 //位置と大きさの設定
00512 #define HIDC_CHECK_SameTabWidth                 11270 //等幅  // 2006.08.06 ryoji
00513 #define HIDC_CHECK_DispTabIcon                  11271 //アイコン表示  // 2006.08.06 ryoji
00514 #define HIDC_CHECK_SortTabList                  11272 //タブ一覧ソート   // 2006.08.06 ryoji
00515 #define HIDC_CHECK_RetainEmptyWindow            11273 //最後のファイルを閉じたとき(無題)文書を残す  // 2007.02.13 ryoji
00516 #define HIDC_CHECK_CloseOneWin                  11274 //ウィンドウの閉じるボタンは現在のファイルのみ閉じる // 2007.02.13 ryoji
00517 #define HIDC_CHECK_ChgWndByWheel                11275 //マウスホイールでタブ切替    // 2007.04.03 ryoji
00518 #define HIDC_CHECK_WORDWRAP                     11310 //英文ワードラップ
00519 #define HIDC_CHECK_INS_SPACE                    11311 //スペースの挿入
00520 #define HIDC_CHECK_KINSOKUHEAD                  11312 //行頭禁則    //@@@ 2002.04.08 MIK
00521 #define HIDC_CHECK_KINSOKUTAIL                  11313 //行頭禁則    //@@@ 2002.04.08 MIK
00522 #define HIDC_CHECK_KINSOKURET                   11314 //改行文字をぶら下げる  //@@@ 2002.04.14 MIK
00523 #define HIDC_CHECK_KINSOKUKUTO                  11315 //句読点をぶら下げる //@@@ 2002.04.17 MIK
00524 #define HIDC_EDIT_TABSPACE                      11330 //TAB幅
00525 #define HIDC_COMBO_IMESWITCH                    11331 //IMEのON/OFF状態
00526 #define HIDC_COMBO_IMESTATE                     11332 //IMEの入力モード
00527 #define HIDC_COMBO_SMARTINDENT                  11333 //スマートインデント
00528 #define HIDC_COMBO_OUTLINES                     11334 //アウトライン解析方法
00529 #define HIDC_EDIT_TYPENAME                      11340 //設定の名前
00530 #define HIDC_EDIT_TYPEEXTS                      11341 //ファイル拡張子
00531 #define HIDC_EDIT_MAXLINELEN                    11342 //折り返し桁数
00532 #define HIDC_EDIT_CHARSPACE                     11343 //文字の隙間
00533 #define HIDC_EDIT_LINESPACE                     11344 //行間の隙間
00534 #define HIDC_EDIT_INDENTCHARS                   11345 //その他のインデント対象文字
00535 #define HIDC_EDIT_TABVIEWSTRING                 11346 //TAB表示文字列
00536 #define HIDC_EDIT_KINSOKUHEAD                   11347 //行頭禁則    //@@@ 2002.04.08 MIK
00537 #define HIDC_EDIT_KINSOKUTAIL                   11348 //行頭禁則    //@@@ 2002.04.08 MIK
00538 #define HIDC_CHECK_TAB_ARROW                    11350 //矢印表示    // 2006.08.06 ryoji
00539 #define HIDC_COMBO_INDENTLAYOUT                 11351 //折り返し行インデント  // 2006.08.06 ryoji
00540 #define HIDC_CHECK_RTRIM_PREVLINE               11352 //改行時に末尾の空白を削除    // 2006.08.06 ryoji
00541 #define HIDC_RADIO_OUTLINEDEFAULT               11353 //標準ルール // 2006.08.06 ryoji
00542 #define HIDC_RADIO_OUTLINERULEFILE              11354 //ルールファイル   // 2006.08.06 ryoji
00543 #define HIDC_EDIT_OUTLINERULEFILE               11355 //ルールファイル名    // 2006.08.06 ryoji
00544 #define HIDC_BUTTON_RULEFILE_REF                11356 //ルールファイル参照 // 2006/09/09 novice
00545 #define HIDC_CHECK_DOCICON                      11357 //文書アイコンを使う // 2006.08.06 ryoji
00546 #define HIDC_BUTTON_TEXTCOLOR                   11400 //文字色
00547 #define HIDC_BUTTON_BACKCOLOR                   11401 //背景色
00548 #define HIDC_BUTTON_SAMETEXTCOLOR               11402 //文字色統一
00549 #define HIDC_BUTTON_SAMEBKCOLOR                 11403 //背景色統一
00550 #define HIDC_BUTTON_IMPORT_COLOR                11404 //インポート
00551 #define HIDC_BUTTON_EXPORT_COLOR                11405 //エクスポート
00552 #define HIDC_CHECK_DISP                         11410 //色分け表示
00553 #define HIDC_CHECK_FAT                          11411 //太字
00554 #define HIDC_CHECK_UNDERLINE                    11412 //下線
00555 #define HIDC_CHECK_LCPOS                        11413 //桁指定１
00556 #define HIDC_CHECK_LCPOS2                       11414 //桁指定２
00557 #define HIDC_COMBO_SET_COLOR                    11430 //強調キーワード１セット名
00558 #define HIDC_COMBO_SET2_COLOR                   11431 //強調キーワード２セット名
00559 #define HIDC_EDIT_BLOCKCOMMENT_FROM             11440 //ブロックコメント１開始
00560 #define HIDC_EDIT_BLOCKCOMMENT_TO               11441 //ブロックコメント１終了
00561 #define HIDC_EDIT_LINECOMMENT                   11442 //行コメント１
00562 #define HIDC_EDIT_LINECOMMENT2                  11443 //行コメント２
00563 #define HIDC_EDIT_LINECOMMENTPOS                11444 //桁数１
00564 #define HIDC_EDIT_LINECOMMENTPOS2               11445 //桁数２
00565 #define HIDC_EDIT_LINETERMCHAR                  11446 //行番号区切り
00566 #define HIDC_EDIT_BLOCKCOMMENT_FROM2            11447 //ブロックコメント２開始
00567 #define HIDC_EDIT_BLOCKCOMMENT_TO2              11448 //ブロックコメント２終了
00568 #define HIDC_EDIT_LINECOMMENT3                  11449 //行コメント３
00569 #define HIDC_LIST_COLORS                        11450 //色指定
00570 #define HIDC_CHECK_LCPOS3                       11451 //桁指定３
00571 #define HIDC_EDIT_LINECOMMENTPOS3               11452 //桁数３
00572 #define HIDC_RADIO_ESCAPETYPE_1                 11460 //文字列エスケープ（C言語風）
00573 #define HIDC_RADIO_ESCAPETYPE_2                 11461 //文字列エスケープ（PL/SQL風）
00574 #define HIDC_RADIO_LINENUM_LAYOUT               11462 //行番号の表示（折り返し単位）
00575 #define HIDC_RADIO_LINENUM_CRLF                 11463 //行番号の表示（改行単位）
00576 #define HIDC_RADIO_LINETERMTYPE0                11464 //行番号区切り（なし）
00577 #define HIDC_RADIO_LINETERMTYPE1                11465 //行番号区切り（縦線）
00578 #define HIDC_RADIO_LINETERMTYPE2                11466 //行番号区切り（任意）
00579 #define HIDC_BUTTON_KEYWORD_SELECT              11467 //強調キーワード2〜10 // 2006.08.06 ryoji
00580 #define HIDC_EDIT_VERTLINE                      11468 //縦線の桁指定  // 2006.08.06 ryoji
00581 #define HIDC_BUTTON_HOKANFILE_REF               11500 //入力補完 単語ファイル参照       //Jul. 05, 2001 JEPRO 共通から移動・変更
00582 #define HIDC_CHECK_HOKANLOHICASE                11510 //入力補完の英大文字小文字        //Jul. 05, 2001 JEPRO 共通から移動・変更
00583 #define HIDC_CHECK_HOKANBYFILE                  11512 //現在のファイルから入力補完     // 2003.06.25 Moca
00584 #define HIDC_EDIT_HOKANFILE                     11540 //単語ファイル名                   //Jul. 05, 2001 JEPRO 共通から移動・変更
00585 #define HIDC_EDIT_KEYWORDHELPFILE               11541 //辞書ファイル名                   //Jul. 05, 2001 JEPRO 共通から移動・変更
00586 #define HIDC_EDIT_TYPEEXTHELP                   11542 //外部ヘルプファイル名  // 2006.08.06 ryoji
00587 #define HIDC_BUTTON_TYPEOPENHELP                11543 //外部ヘルプファイル参照   // 2006.08.06 ryoji
00588 #define HIDC_EDIT_TYPEEXTHTMLHELP               11544 //外部HTMLヘルプファイル名  // 2006.08.06 ryoji
00589 #define HIDC_BUTTON_TYPEOPENEXTHTMLHELP         11545 //外部HTMLヘルプファイル参照   // 2006.08.06 ryoji
00590 #define HIDC_CHECK_TYPEHTMLHELPISSINGLE         11546 //ビューアを複数起動しない    // 2006.08.06 ryoji
00591 #define HIDC_BUTTON_REGEX_IMPORT    11600   //インポート   //@@@ 2001.11.17 add MIK
00592 #define HIDC_BUTTON_REGEX_EXPORT    11601   //エクスポート    //@@@ 2001.11.17 add MIK
00593 #define HIDC_BUTTON_REGEX_INS       11602   //挿入            //@@@ 2001.11.17 add MIK
00594 #define HIDC_BUTTON_REGEX_ADD       11603   //追加            //@@@ 2001.11.17 add MIK
00595 #define HIDC_BUTTON_REGEX_UPD       11604   //更新            //@@@ 2001.11.17 add MIK
00596 #define HIDC_BUTTON_REGEX_DEL       11605   //削除            //@@@ 2001.11.17 add MIK
00597 #define HIDC_BUTTON_REGEX_TOP       11606   //先頭            //@@@ 2001.11.17 add MIK
00598 #define HIDC_BUTTON_REGEX_LAST      11607   //最終            //@@@ 2001.11.17 add MIK
00599 #define HIDC_BUTTON_REGEX_UP        11608   //上へ            //@@@ 2001.11.17 add MIK
00600 #define HIDC_BUTTON_REGEX_DOWN      11609   //下へ            //@@@ 2001.11.17 add MIK
00601 #define HIDC_CHECK_REGEX            11610   //正規表現キーワードを使用する    //@@@ 2001.11.17 add MIK
00602 #define HIDC_COMBO_REGEX_COLOR      11630   //色           //@@@ 2001.11.17 add MIK
00603 #define HIDC_EDIT_REGEX             11640   //正規表現キーワード   //@@@ 2001.11.17 add MIK
00604 #define HIDC_LIST_REGEX             11650   //リスト     //@@@ 2001.11.17 add MIK
00605 #define HIDC_LABEL_REGEX_VERSION    11670   //正規表現キーワードライブラリバージョン //@@@ 2002.01.03
00606 #define HIDC_MACRODIRREF            11700   //マクロディレクトリ参照
00607 #define HIDC_MACRO_REG              11701   //マクロ設定
00608 #define HIDC_COMBO_MACROID          11730   //ID
00609 #define HIDC_MACROPATH              11731   //File
00610 #define HIDC_MACRONAME              11740   //マクロ名
00611 #define HIDC_MACROLIST              11741   //マクロリスト
00612 #define HIDC_MACRODIR               11750   //マクロ一覧
00613 #define HIDC_CHECK_RELOADWHENEXECUTE    11751   //マクロを実行するたびにファイルを読み込みなおす // 2006.08.06 ryoji
00614
00615 //検索ダイアログ
00616 #define HIDC_FIND_BUTTON_SEARCHNEXT         11800   //次を検索
00617 #define HIDC_FIND_BUTTON_SEARCHPREV         11801   //前を検索
00618 #define HIDCANCEL_FIND                      11802   //キャンセル
00619 #define HIDC_FIND_BUTTON_HELP               11803   //ヘルプ
00620 #define HIDC_FIND_CHK_WORD                  11804   //単語単位
00621 #define HIDC_FIND_CHK_LOHICASE              11805   //大文字小文字
00622 #define HIDC_FIND_CHK_REGULAREXP            11806   //正規表現
00623 #define HIDC_FIND_CHECK_NOTIFYNOTFOUND      11807   //見つからないときに通知
00624 #define HIDC_FIND_CHECK_bAutoCloseDlgFind   11808   //自動的に閉じる
00625 #define HIDC_FIND_COMBO_TEXT                11809   //検索文字列
00626 #define HIDC_FIND_STATIC_JRE32VER           11810   //正規表現バージョン
00627 #define HIDC_FIND_BUTTON_SETMARK            11811   //検索該当行をマーク
00628 #define HIDC_FIND_CHECK_SEARCHALL           11812   //先頭（末尾）から再検索
00629
00630 //置換ダイアログ
00631 #define HIDC_REP_BUTTON_SEARCHNEXT      11900   //下検索
00632 #define HIDC_REP_BUTTON_SEARCHPREV      11901   //上検索
00633 #define HIDC_REP_BUTTON_REPALCE         11902   //置換
00634 #define HIDC_REP_BUTTON_REPALCEALL      11903   //全置換
00635 #define HIDCANCEL_REP                   11904   //キャンセル
00636 #define HIDC_REP_BUTTON_HELP            11905   //ヘルプ
00637 #define HIDC_REP_CHK_PASTE              11906   //クリップボードから貼り付け
00638 #define HIDC_REP_CHK_WORD               11907   //単語単位
00639 #define HIDC_REP_CHK_LOHICASE           11908   //大文字小文字
00640 #define HIDC_REP_CHK_REGULAREXP         11909   //正規表現
00641 #define HIDC_REP_CHECK_NOTIFYNOTFOUND   11910   //見つからないときに通知
00642 #define HIDC_REP_CHECK_bAutoCloseDlgReplace 11911   //自動的に閉じる
00643 #define HIDC_REP_COMBO_TEXT             11912   //置換前
00644 #define HIDC_REP_COMBO_TEXT2            11913   //置換後
00645 #define HIDC_REP_RADIO_REPLACE          11914   //置換対象：置換
00646 #define HIDC_REP_RADIO_INSERT           11915   //置換対象：挿入
00647 #define HIDC_REP_RADIO_ADD              11916   //置換対象：追加
00648 #define HIDC_REP_RADIO_SELECTEDAREA     11917   //範囲：全体
00649 #define HIDC_REP_RADIO_ALLAREA          11918   //範囲：選択範囲
00650 #define HIDC_REP_STATIC_JRE32VER        11919   //正規表現バージョン
00651 #define HIDC_REP_BUTTON_SETMARK         11920   //検索該当行をマーク
00652 #define HIDC_REP_CHECK_SEARCHALL        11921   //先頭（末尾）から再検索
00653 #define HIDC_REP_CHECK_CONSECUTIVEALL   11922   //「すべて置換」は置換の繰返し    // 2007.01.16 ryoji
00654
00655 //GREP
00656 #define HIDC_GREP_BUTTON_FOLDER         12000   //フォルダ
00657 #define HIDC_GREP_BUTTON_CURRENTFOLDER  12001   //現フォルダ
00658 #define HIDOK_GREP                      12002   //検索
00659 #define HIDCANCEL_GREP                  12003   //キャンセル
00660 #define HIDC_GREP_BUTTON_HELP           12004   //ヘルプ
00661 #define HIDC_GREP_CHK_WORD              12005   //単語単位
00662 #define HIDC_GREP_CHK_SUBFOLDER         12006   //サブフォルダも検索
00663 #define HIDC_GREP_CHK_FROMTHISTEXT      12007   //このファイルから
00664 #define HIDC_GREP_CHK_LOHICASE          12008   //大文字小文字
00665 #define HIDC_GREP_CHK_REGULAREXP        12009   //正規表現
00666 // #define HIDC_GREP_CHK_KANJICODEAUTODETECT    12010   //文字コードセット自動判別
00667 #define HIDC_GREP_COMBO_CHARSET         12010   //文字コードセット
00668 #define HIDC_GREP_COMBO_TEXT            12011   //条件
00669 #define HIDC_GREP_COMBO_FILE            12012   //ファイル
00670 #define HIDC_GREP_COMBO_FOLDER          12013   //フォルダ
00671 #define HIDC_GREP_RADIO_OUTPUTLINE      12014   //結果出力：行単位
00672 #define HIDC_GREP_RADIO_OUTPUTMARKED    12015   //結果出力：該当部分
00673 #define HIDC_GREP_RADIO_OUTPUTSTYLE1    12016   //結果出力形式：ノーマル
00674 #define HIDC_GREP_RADIO_OUTPUTSTYLE2    12017   //結果出力形式：ファイル毎
00675 #define HIDC_GREP_STATIC_JRE32VER       12018   //正規表現バージョン
00676 #define HIDC_GREP_CHK_DEFAULTFOLDER     12019   //フォルダの初期値をカレントフォルダにする
00677
00678 //外部コマンド
00679 #define HIDC_EXEC_BUTTON_REFERENCE  12100   //参照
00680 #define HIDOK_EXEC                  12101   //実行
00681 #define HIDCANCEL_EXEC              12102   //キャンセル
00682 #define HIDC_EXEC_BUTTON_HELP       12103   //ヘルプ
00683 #define HIDC_EXEC_CHECK_GETSTDOUT   12104   //標準出力を得る
00684 #define HIDC_EXEC_COMBO_m_szCommand 12105   //コマンド
00685 #define HIDC_RADIO_OUTPUT           12106   //標準出力リダイレクト先：アウトプットウィンドウ
00686 #define HIDC_RADIO_EDITWINDOW       12107   //標準出力リダイレクト先：編集中のウィンドウ
00687 #define HIDC_CHECK_SENDSTDIN        12108   //標準入力に送る
00688
00689 //アウトライン解析
00690 #define HIDC_FL_BUTTON_COPY     12200   //コピー
00691 #define HIDOK_FL                12201   //ジャンプ
00692 #define HIDCANCEL_FL            12202   //キャンセル
00693 #define HIDC_FL_BUTTON_HELP     12203   //ヘルプ
00694 #define HIDC_FL_CHECK_bAutoCloseDlgFuncList 12204   //自動的に閉じる
00695 #define HIDC_FL_LIST1           12205   //トピックリスト
00696 #define HIDC_FL_TREE1           12206   //トピックツリー
00697 #define HIDC_FL_CHECK_bFunclistSetFocusOnJump   12207   //ジャンプでフォーカス移動する
00698 #define HIDC_FL_CHECK_bMarkUpBlankLineEnable    12208   //空行を無視する
00699 #define HIDC_COMBO_nSortType    12209   //順序
00700 #define HIDC_FL_BUTTON_WINSIZE  12210   //ウィンドウ位置保存   // 2006.08.06 ryoji
00701
00702 //ファイル内容比較
00703 #define HIDC_CMP_BUTTON1        12300   //上下に表示
00704 #define HIDOK2_CMP              12301   //左右に表示
00705 #define HIDOK_CMP               12302   //OK
00706 #define HIDCANCEL_CMP           12303   //キャンセル
00707 #define HIDC_CMP_BUTTON_HELP    12304   //ヘルプ
00708 #define HIDC_CMP_CHECK_TILE_H   12305   //左右に表示
00709 #define HIDC_CMP_LIST_FILES     12306   //ファイル一覧
00710 #define HIDC_CMP_STATIC_COMPARESRC  12307   //ソースファイル
00711
00712 //印刷
00713 #define HIDOK_PP            12400   //OK
00714 #define HIDCANCEL_PP        12401   //キャンセル
00715 #define HIDC_PP_EDIT_FROM   12402   //ページから
00716 #define HIDC_PP_EDIT_TO     12403   //ページまで
00717 #define HIDC_PP_RADIO_ALL   12404   //すべて
00718 #define HIDC_PP_RADIO_FROMTO    12405   //指定
00719
00720 //印刷設定
00721 #define HIDC_PS_BUTTON_EDITSETTINGNAME  12500   //設定名変更
00722 #define HIDOK_PS                12501   //OK
00723 #define HIDCANCEL_PS            12502   //キャンセル
00724 #define HIDC_PS_BUTTON_HELP     12503   //ヘルプ
00725 #define HIDC_PS_CHECK_WORDWRAP  12504   //ワードラップ
00726 #define HIDC_PS_CHECK_LINENUMBER    12505   //行番号
00727 #define HIDC_PS_COMBO_FONT_HAN  12506   //半角フォント
00728 #define HIDC_PS_COMBO_FONT_ZEN  12507   //全角フォント
00729 #define HIDC_PS_COMBO_SETTINGNAME   12508   //ページ設定
00730 #define HIDC_PS_COMBO_PAPER     12509   //用紙サイズ
00731 #define HIDC_PS_COMBO_PAPERORIENT   12510   //用紙向き
00732 #define HIDC_PS_EDIT_FONTWIDTH  12511   //フォント幅
00733 #define HIDC_PS_EDIT_LINESPACE  12512   //行送り
00734 #define HIDC_PS_EDIT_DANSUU     12513   //段数
00735 #define HIDC_PS_EDIT_DANSPACE   12514   //段の隙間
00736 #define HIDC_PS_EDIT_MARGINTY   12515   //余白上
00737 #define HIDC_PS_EDIT_MARGINBY   12516   //余白下
00738 #define HIDC_PS_EDIT_MARGINLX   12517   //余白左
00739 #define HIDC_PS_EDIT_MARGINRX   12518   //余白右
00740 #define HIDC_PS_CHECK_KINSOKUHEAD   12519   //行頭禁則  //@@@ 2002.04.09 MIK
00741 #define HIDC_PS_CHECK_KINSOKUTAIL   12520   //行末禁則  //@@@ 2002.04.09 MIK
00742 #define HIDC_PS_CHECK_KINSOKURET    12521   //改行文字をぶら下げる    //@@@ 2002.04.14 MIK
00743 #define HIDC_PS_CHECK_KINSOKUKUTO   12522   //句読点をぶら下げる   //@@@ 2002.04.17 MIK
00744 #define HIDC_PS_EDIT_HEAD1      12523   //ヘッダー(左寄せ)       // 2006.10.11 ryoji
00745 #define HIDC_PS_EDIT_HEAD2      12524   //ヘッダー(中央寄せ)    // 2006.10.11 ryoji
00746 #define HIDC_PS_EDIT_HEAD3      12525   //ヘッダー(右寄せ)       // 2006.10.11 ryoji
00747 #define HIDC_PS_EDIT_FOOT1      12526   //フッター(左寄せ)       // 2006.10.11 ryoji
00748 #define HIDC_PS_EDIT_FOOT2      12527   //フッター(中央寄せ)    // 2006.10.11 ryoji
00749 #define HIDC_PS_EDIT_FOOT3      12528   //フッター(右寄せ)       // 2006.10.11 ryoji
00750
00751 //プロパティ
00752 #define HIDOK_PROP              12600   //
00753 #define HIDCANCEL_PROP          12601   //
00754 #define HIDC_PROP_BUTTON_HELP   12602   //
00755 #define HIDC_PROP_EDIT1         12603   //
00756
00757 //タイプ別設定一覧
00758 #define HIDC_TL_BUTTON_TEMPCHANGE   12700   //一時適用
00759 #define HIDOK_TL                12701   //設定
00760 #define HIDCANCEL_TL            12702   //キャンセル
00761 #define HIDC_TL_BUTTON_HELP     12703   //ヘルプ
00762 #define HIDC_TL_LIST_TYPES      12704   //リスト
00763
00764 //ジャンプ
00765 #define HIDC_JUMP_BUTTON_JUMP       12800   //ジャンプ
00766 #define HIDCANCEL_JUMP              12801   //キャンセル
00767 #define HIDC_JUMP_BUTTON_HELP       12802   //ヘルプ
00768 #define HIDC_JUMP_CHECK_PLSQL       12803   //PL/SQL
00769 #define HIDC_JUMP_COMBO_PLSQLBLOCKS 12804   //
00770 #define HIDC_JUMP_EDIT_LINENUM      12805   //行番号
00771 #define HIDC_JUMP_EDIT_PLSQL_E1     12806   //
00772 #define HIDC_JUMP_RADIO_LINENUM_LAYOUT  12807   //折り返し単位
00773 #define HIDC_JUMP_RADIO_LINENUM_CRLF    12808   //改行単位
00774
00775 //バージョン情報
00776 #define HIDC_ABOUT_BUTTON_CONTACT   12900   //
00777 #define HIDOK_ABOUT                 12901   //
00778 #define HIDC_ABOUT_EDIT_ABOUT       12902   //
00779
00780 //入力
00781 #define HIDOK_DLG1  13000       //
00782 #define HIDCANCEL_DLG1  13001   //
00783 #define HIDC_DLG1_EDIT1 13002   //入力フィールド
00784 //13070 //メッセージ
00785
00786 //オープンファイル
00787 #define HIDOK_OPENDLG   13100
00788 #define HIDCANCEL_OPENDLG   13101
00789 #define HIDC_OPENDLG_BUTTON_HELP 13102  //ヘルプ //@@@ 2002.01.10
00790 #define HIDC_OPENDLG_COMBO_CODE 13103   //文字コードセット
00791 #define HIDC_OPENDLG_COMBO_MRU  13104   //最近のファイル
00792 #define HIDC_OPENDLG_COMBO_OPENFOLDER   13105   //最近のフォルダ
00793 #define HIDC_OPENDLG_COMBO_EOL  13106   //改行コード
00794 #define HIDC_OPENDLG_CHECK_BOM  13107   //BOM   // 2006.08.06 ryoji
00795
00796 //DIFF差分表示
00797 #define HIDC_BUTTON_DIFF_DST        13200   // 相手ファイル参照
00798 #define HIDC_CHECK_DIFF_OPT_BLINE   13201   // 空白行無視
00799 #define HIDC_CHECK_DIFF_OPT_CASE    13202   // 大文字小文字同一視
00800 #define HIDC_CHECK_DIFF_OPT_SPACE   13203   // 空白無視
00801 #define HIDC_CHECK_DIFF_OPT_SPCCHG  13204   // 空白変更無視
00802 #define HIDC_CHECK_DIFF_OPT_TABSPC  13205   // TAB空白変換
00803 #define HIDC_EDIT_DIFF_DST          13206   // 相手作ファイル
00804 #define HIDC_RADIO_DIFF_FILE1       13207   // 編集中ファイルを新
00805 #define HIDC_RADIO_DIFF_FILE2       13208   // 編集中ファイルを旧
00806 #define HIDC_RADIO_DIFF_DST1        13209   // 外部ファイルを指定
00807 #define HIDC_RADIO_DIFF_DST2        13210   // 他の編集中ファイル
00808 #define HIDC_LIST_DIFF_FILES        13211   // 他の編集中ファイル
00809 #define HIDC_STATIC_DIFF_SRC        13212   // 自ファイル
00810 #define HIDC_DIFF_IDOK              13213   //OK
00811 #define HIDC_DIFF_IDCANCEL          13214   //キャンセル
00812 #define HIDC_BUTTON_DIFF_HELP       13215   //ヘルプ
00813 #define HIDC_CHECK_DIFF_EXEC_STATE  13216   //DIFF差分がないときにメッセージ表示
00814 #define HIDC_CHECK_DIFF_NOTIFYNOTFOUND  13217   // 見つからないときにメッセージを表示  // 2006.10.10 ryoji
00815 #define HIDC_CHECK_DIFF_SEARCHALL       13218   // 先頭（末尾）から再検索する  // 2006.10.10 ryoji//コントロールコード
00816
00817 //コントロールコード
00818 #define HIDC_LIST_CTRLCODE          13300
00819 #define HIDC_CTRLCODE_IDOK          13301   //OK
00820 #define HIDC_CTRLCODE_IDCANCEL      13302   //キャンセル
00821 #define HIDC_BUTTON_CTRLCODE_HELP   13303   //ヘルプ
00822
00823 //共通設定『ファイル名表示』タブ
00824 #define HIDC_LIST_FNAME             13400   // ファイル名置換リスト
00825 #define HIDC_EDIT_FNAME_FROM        13401   // 置換前
00826 #define HIDC_EDIT_FNAME_TO          13402   // 置換後
00827 #define HIDC_BUTTON_FNAME_INS       13403   // 挿入
00828 #define HIDC_BUTTON_FNAME_ADD       13404   // 追加
00829 #define HIDC_BUTTON_FNAME_UPD       13405   // 更新
00830 #define HIDC_BUTTON_FNAME_DEL       13406   // 削除
00831 #define HIDC_BUTTON_FNAME_TOP       13407   // 先頭
00832 #define HIDC_BUTTON_FNAME_UP        13408   // 上へ
00833 #define HIDC_BUTTON_FNAME_DOWN      13409   // 下へ
00834 #define HIDC_BUTTON_FNAME_LAST      13410   // 最終
00835 //#define HIDC_CHECK_FNAME, 13411   // ファイル名を簡易表示する
00836
00837 //履歴の管理   //@@@ 2003.04.08 MIK
00838 //#define   HIDC_FAVORITE_DIALOG        13500   //ダイアログ用
00839 #define HIDC_FAVORITE_IDOK          13501
00840 #define HIDC_FAVORITE_IDCANCEL      13502
00841 #define HIDC_BUTTON_FAVORITE_HELP   13503
00842 #define HIDC_TAB_FAVORITE           13510
00843 #define HIDC_LIST_FAVORITE_FILE     13511
00844 #define HIDC_LIST_FAVORITE_FOLDER   13512
00845 #define HIDC_LIST_FAVORITE_SEARCH   13513
00846 #define HIDC_LIST_FAVORITE_REPLACE  13514
00847 #define HIDC_LIST_FAVORITE_GREPFILE 13515
00848 #define HIDC_LIST_FAVORITE_GREPFOLDER   13516
00849 #define HIDC_LIST_FAVORITE_CMD      13517
00850 #define HIDC_BUTTON_FAVORITE_CLEAR  13518   //履歴のクリア    // 2006.10.10 ryoji
00851
00852 //タグジャンプリスト
00853 #define HIDC_LIST_TAGJUMPLIST       13600
00854 #define HIDC_TAGJUMPLIST_IDOK       13601
00855 #define HIDC_TAGJUMPLIST_IDCANCEL   13602
00856 #define HIDC_BUTTON_TAGJUMPLIST_HELP    13603
00857 #define HDIC_TAGJUMPLIST_KEYWORD    13604
00858
00859 //タグファイル作成
00860 #define HIDC_EDIT_TAG_MAKE_FOLDER   13701
00861 #define HIDC_BUTTON_TAG_MAKE_REF    13702
00862 #define HIDC_CHECK_TAG_MAKE_RECURSE 13703
00863 #define HIDC_EDIT_TAG_MAKE_CMDLINE  13704
00864 #define HIDC_TAG_MAKE_IDOK          13705
00865 #define HIDC_TAG_MAKE_IDCANCEL      13706
00866 #define HIDC_BUTTON_TAG_MAKE_HELP   13707
00867
00868 //ウィンドウの位置と大きさ  2004.05.13 Moca
00869 #define HIDC_EDIT_WX            13801
00870 #define HIDC_EDIT_WY            13802
00871 #define HIDC_EDIT_SX            13803
00872 #define HIDC_EDIT_SY            13804
00873 #define HIDC_CHECK_WINPOS       13805
00874 #define HIDC_RADIO_WINSIZE_DEF  13806
00875 #define HIDC_RADIO_WINSIZE_SAVE 13807
00876 #define HIDC_RADIO_WINSIZE_SET  13808
00877 #define HIDC_RADIO_WINPOS_DEF   13809
00878 #define HIDC_RADIO_WINPOS_SAVE  13810
00879 #define HIDC_RADIO_WINPOS_SET   13811
00880 #define HIDC_COMBO_WINTYPE      13812
00881 #define HIDOK_WINSIZE               13813   // 2006.10.10 ryoji
00882 #define HIDC_BUTTON_WINSIZE_HELP    13814   // 2006.10.10 ryoji
00883
00884 //タイプ別設定「キーワードヘルプ」タブ    // 2006.10.10 ryoji
00885 #define HIDC_CHECK_KEYHELP              13900       //キーワードヘルプ機能を使う
00886 #define HIDC_LIST_KEYHELP               13901       //辞書ファイル一覧(&L)
00887 #define HIDC_BUTTON_KEYHELP_UPD         13902       //更新(&E)
00888 #define HIDC_EDIT_KEYHELP               13903       //辞書ファイル
00889 #define HIDC_BUTTON_KEYHELP_REF         13904       //参照(&O)...
00890 #define HIDC_BUTTON_KEYHELP_TOP         13905       //先頭(&T)
00891 #define HIDC_BUTTON_KEYHELP_UP          13906       //上へ(&U)
00892 #define HIDC_BUTTON_KEYHELP_DOWN        13907       //下へ(&G)
00893 #define HIDC_BUTTON_KEYHELP_LAST        13908       //最終(&B)
00894 #define HIDC_BUTTON_KEYHELP_INS         13909       //挿入(&S)
00895 #define HIDC_BUTTON_KEYHELP_DEL         13910       //削除(&D)
00896 #define HIDC_CHECK_KEYHELP_ALLSEARCH    13911       //全辞書検索する(&A)
00897 #define HIDC_CHECK_KEYHELP_KEYDISP      13912       //キーワードも表示する(&W)
00898 #define HIDC_CHECK_KEYHELP_PREFIX       13913       //前方一致検索(&P)
00899 #define HIDC_BUTTON_KEYHELP_IMPORT      13914       //インポート
00900 #define HIDC_BUTTON_KEYHELP_EXPORT      13915       //エクスポート
00901
00902 //文字色／背景色設定ダイアログ    // 2006.10.10 ryoji
00903 #define HIDOK_SAMECOLOR                 14000       // OK
00904 #define HIDCANCEL_SAMECOLOR             14001       // キャンセル
00905 #define HIDC_BUTTON_SAMECOLOR_HELP      14002       // ヘルプ
00906 #define HIDC_LIST_SAMECOLOR_COLORS      14003       // 変更対象の色
00907 #define HIDC_BUTTON_SAMECOLOR_SELALL    14004       // 全チェック
00908 #define HIDC_BUTTON_SAMECOLOR_SELNOTING 14005       // 全解除
00909 #define HIDC_LIST_SAMECOLOR_ITEMINFO    14006       // 選択中の色に対応する項目のリスト
00910 #define HIDC_STATIC_COLOR               14007       // 統一色
00911
00912 //強調キーワードの設定ダイアログ // 2006.10.10 ryoji
00913 #define HIDOK_KEYWORD_SELECT            14100       // OK
00914 #define HIDCANCEL_KEYWORD_SELECT        14101       // キャンセル
00915 #define HIDC_COMBO_KEYWORD_SELECT       14102       // 強調キーワード1〜10
00916
00917
00918 #define HIDC_STATIC                             19999 //不明
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_rc.h

sakura_core

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_bEnableLineModePaste 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 の 606 行で定義されています。

#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 の 501 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_NOSUPERVISION 1438

sakura_rc.h の 500 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_NOTIFYONLY 1435

sakura_rc.h の 494 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_RELOAD 1433

sakura_rc.h の 491 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BUTTON1 1015

sakura_rc.h の 71 行で定義されています。

#define IDC_BUTTON_ADD 1141

sakura_rc.h の 203 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_ADDKEYWORD 1170

sakura_rc.h の 224 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7(), と 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 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), と CPropTypes::RearrangeKeywordSet().

#define IDC_BUTTON_BACKUP_FOLDER_REF 1087

sakura_rc.h の 128 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_BUTTON_CLEAR 1465

sakura_rc.h の 524 行で定義されています。

参照元 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::SetTree(), と CDlgFuncList::SetTreeJava().

#define IDC_BUTTON_CURRENTFOLDER 1277

sakura_rc.h の 308 行で定義されています。

参照元 CDlgGrep::OnBnClicked(), と CDlgGrep::SetData().

#define IDC_BUTTON_DELETE 1087

sakura_rc.h の 130 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_DELKEYWORD 1087

sakura_rc.h の 131 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7(), と 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 の 484 行で定義されています。

参照元 CDlgDiff::OnBnClicked().

#define IDC_BUTTON_DIRECTPAGE 1519

sakura_rc.h の 589 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB().

#define IDC_BUTTON_DOWN 1144

sakura_rc.h の 207 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_EDITKEYWORD 1177

sakura_rc.h の 228 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7(), と 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_p7(), CPropCommon::DispatchEvent_p8(), と CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_FNAME_ADD 1451

sakura_rc.h の 510 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_DEL 1453

sakura_rc.h の 512 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_DOWN 1448

sakura_rc.h の 507 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_INS 1450

sakura_rc.h の 509 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_LAST 1449

sakura_rc.h の 508 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_TOP 1446

sakura_rc.h の 505 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_UP 1447

sakura_rc.h の 506 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_UPD 1452

sakura_rc.h の 511 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FOLDER 1121

sakura_rc.h の 186 行で定義されています。

参照元 CDlgGrep::OnBnClicked(), と CDlgGrep::SetData().

#define IDC_BUTTON_HELP 1099

sakura_rc.h の 155 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB(), CDlgWinSize::OnBnClicked(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::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_p7(), CPropCommon::DispatchEvent_p8(), と CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_INSERT 1142

sakura_rc.h の 204 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_INSERTSEPARATOR 1088

sakura_rc.h の 137 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と 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 の 434 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_BUTTON_KEYCLEAN 1498

sakura_rc.h の 564 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7().

#define IDC_BUTTON_KEYHELP_ADD 5127

sakura_rc.h の 632 行で定義されています。

#define IDC_BUTTON_KEYHELP_DEL 5129

sakura_rc.h の 634 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_DOWN 5132

sakura_rc.h の 637 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_EXPORT 5135

sakura_rc.h の 640 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_IMPORT 5134

sakura_rc.h の 639 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_INS 5126

sakura_rc.h の 631 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_LAST 5133

sakura_rc.h の 638 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_REF 5140

sakura_rc.h の 645 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_TOP 5130

sakura_rc.h の 635 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_UP 5131

sakura_rc.h の 636 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_UPD 5128

sakura_rc.h の 633 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYSETRENAME 1497

sakura_rc.h の 562 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7().

#define IDC_BUTTON_KEYWORD_SELECT 1495

sakura_rc.h の 557 行で定義されています。

参照元 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 の 455 行で定義されています。

参照元 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 の 337 行で定義されています。

参照元 CDlgExec::OnBnClicked().

#define IDC_BUTTON_REGEX_ADD 1413

sakura_rc.h の 464 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_DEL 1400

sakura_rc.h の 451 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_DOWN 1412

sakura_rc.h の 463 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_EXPORT 1415

sakura_rc.h の 466 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_IMPORT 1414

sakura_rc.h の 465 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_INS 1142

sakura_rc.h の 205 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_LAST 1395

sakura_rc.h の 444 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_TOP 1394

sakura_rc.h の 443 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_UP 1411

sakura_rc.h の 462 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_UPD 1399

sakura_rc.h の 449 行で定義されています。

参照元 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 行で定義されています。

参照元 CDlgReplace::OnBnClicked().

#define IDC_BUTTON_RULEFILE_REF 1427

sakura_rc.h の 479 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), と CPropTypes::SetData_p1().

#define IDC_BUTTON_SAMEBKCOLOR 1144

sakura_rc.h の 208 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CDlgSameColor::OnBnClicked(), CDlgSameColor::OnInitDialog(), と 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 の 581 行で定義されています。

参照元 CDlgSameColor::OnBnClicked().

#define IDC_BUTTON_SELNOTING 1512

sakura_rc.h の 582 行で定義されています。

参照元 CDlgSameColor::OnBnClicked().

#define IDC_BUTTON_SETMARK 1138

sakura_rc.h の 201 行で定義されています。

参照元 CDlgReplace::OnBnClicked(), と CDlgFind::OnBnClicked().

#define IDC_BUTTON_TAG_MAKE_REF 1471

sakura_rc.h の 531 行で定義されています。

参照元 CDlgTagsMake::OnBnClicked().

#define IDC_BUTTON_TEMPCHANGE 1384

sakura_rc.h の 432 行で定義されています。

参照元 CDlgTypeList::OnBnClicked().

#define IDC_BUTTON_TEXTCOLOR 1056

sakura_rc.h の 87 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_p3_new(), と CPropTypes::RearrangeKeywordSet().

#define IDC_BUTTON_TOP 1394

sakura_rc.h の 442 行で定義されています。

#define IDC_BUTTON_TYPEOPENEXTHTMLHELP 1423

sakura_rc.h の 475 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_BUTTON_TYPEOPENHELP 1422

sakura_rc.h の 474 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_BUTTON_UP 1143

sakura_rc.h の 206 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_VIEW 1467

sakura_rc.h の 526 行で定義されています。

#define IDC_BUTTON_WINSIZE 1491

sakura_rc.h の 552 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), CDlgFuncList::OnBnClicked(), CDlgFuncList::OnSize(), と CDlgFuncList::SetData().

#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 の 555 行で定義されています。

#define IDC_CHECK_ALT 1080

sakura_rc.h の 114 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_CHECK_ANTIALIAS 1518

sakura_rc.h の 587 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB(), と CPrintPreview::OnSize().

#define IDC_CHECK_ANYWHERE 1502

sakura_rc.h の 572 行で定義されています。

参照元 CDlgTagJumpList::OnBnClicked(), CDlgTagJumpList::OnInitDialog(), と CDlgTagJumpList::SetData().

#define IDC_CHECK_AutoMIMEDecode 1381

sakura_rc.h の 429 行で定義されています。

#define IDC_CHECK_AUTOSAVE 1091

sakura_rc.h の 146 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_CHECK_BACKUP 1076

sakura_rc.h の 95 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_CHECK_BACKUP_ADVANCED 1506

sakura_rc.h の 576 行で定義されています。

参照元 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 の 422 行で定義されています。

#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 行で定義されています。

#define IDC_CHECK_BACKUPFOLDER 1085

sakura_rc.h の 120 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_CHECK_bAutoCloseDlgFind 1304

sakura_rc.h の 339 行で定義されています。

参照元 CDlgFind::GetData(), と CDlgFind::SetData().

#define IDC_CHECK_bAutoCloseDlgFuncList 1306

sakura_rc.h の 342 行で定義されています。

参照元 CDlgFuncList::OnBnClicked(), CDlgFuncList::OnSize(), と CDlgFuncList::SetData().

#define IDC_CHECK_bAutoCloseDlgReplace 1307

sakura_rc.h の 343 行で定義されています。

参照元 CDlgReplace::GetData(), と CDlgReplace::SetData().

#define IDC_CHECK_bCaretTextForSearch 1520

sakura_rc.h の 591 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), と CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_bCheckFileTimeStamp 1299

sakura_rc.h の 333 行で定義されています。

#define IDC_CHECK_bDropFileAndClose 1297

sakura_rc.h の 331 行で定義されています。

#define IDC_CHECK_bEnableLineModePaste 1292

sakura_rc.h の 326 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), と CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_bFunclistSetFocusOnJump 1308

sakura_rc.h の 345 行で定義されています。

参照元 CDlgFuncList::OnBnClicked(), CDlgFuncList::OnSize(), と CDlgFuncList::SetData().

#define IDC_CHECK_bGrepExitConfirm 1295

sakura_rc.h の 329 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP(), と CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_bMarkUpBlankLineEnable 1307

sakura_rc.h の 344 行で定義されています。

参照元 CDlgFuncList::OnBnClicked(), CDlgFuncList::OnSize(), と CDlgFuncList::SetData().

#define IDC_CHECK_bMenuIcon 1335

sakura_rc.h の 391 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_bNotOverWriteCRLF 1300

sakura_rc.h の 334 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), と CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_BOM 1478

sakura_rc.h の 539 行で定義されています。

参照元 OFNHookProc().

#define IDC_CHECK_bScrollBarHorz 1305

sakura_rc.h の 341 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_bSelectClickedURL 1293

sakura_rc.h の 327 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT(), と CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_ChgWndByWheel 1521

sakura_rc.h の 592 行で定義されています。

参照元 CPropCommon::EnableTabPropInput(), CPropCommon::GetData_PROP_TAB(), と CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_CLICKKEYSEARCH 1309

sakura_rc.h の 346 行で定義されています。

#define IDC_CHECK_CLOSEALLCONFIRM 1517

sakura_rc.h の 586 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_CloseOneWin 1519

sakura_rc.h の 590 行で定義されています。

参照元 CPropCommon::EnableTabPropInput(), CPropCommon::GetData_PROP_TAB(), と CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_CONSECUTIVEALL 1136

sakura_rc.h の 198 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgReplace::OnBnClicked(), と CDlgReplace::SetData().

#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().

#define IDC_CHECK_DIFF_EXEC_STATE 1475

sakura_rc.h の 536 行で定義されています。

参照元 CDlgDiff::GetData(), と CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_BLINE 1434

sakura_rc.h の 492 行で定義されています。

参照元 CDlgDiff::GetData(), と CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_CASE 1431

sakura_rc.h の 486 行で定義されています。

参照元 CDlgDiff::GetData(), と CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_SPACE 1432

sakura_rc.h の 488 行で定義されています。

参照元 CDlgDiff::GetData(), と CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_SPCCHG 1433

sakura_rc.h の 489 行で定義されています。

参照元 CDlgDiff::GetData(), と CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_TABSPC 1435

sakura_rc.h の 493 行で定義されています。

参照元 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 の 477 行で定義されています。

参照元 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 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#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 行で定義されています。

#define IDC_CHECK_EXCVLUSIVE_NO 1069

sakura_rc.h の 90 行で定義されています。

#define IDC_CHECK_EXCVLUSIVE_READWRITE 1070

sakura_rc.h の 91 行で定義されています。

#define IDC_CHECK_EXCVLUSIVE_WRITE 1071

sakura_rc.h の 92 行で定義されています。

#define IDC_CHECK_EXITCONFIRM 1076

sakura_rc.h の 96 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_FAT 1213

sakura_rc.h の 257 行で定義されています。

参照元 ColorList_SubclassProc(), と CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_FNAME 1442

sakura_rc.h の 504 行で定義されています。

#define IDC_CHECK_FREECARET 1014

sakura_rc.h の 70 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_GETSTDOUT 1329

sakura_rc.h の 383 行で定義されています。

参照元 CDlgExec::GetData(), CDlgExec::OnBnClicked(), と CDlgExec::SetData().

#define IDC_CHECK_GREPREALTIME 1479

sakura_rc.h の 540 行で定義されています。

参照元 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 の 530 行で定義されています。

参照元 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 の 570 行で定義されています。

参照元 CDlgTagJumpList::OnBnClicked(), CDlgTagJumpList::OnInitDialog(), と CDlgTagJumpList::SetData().

#define IDC_CHECK_INDENT 1009

sakura_rc.h の 62 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_INDENT_WSPACE 1011

sakura_rc.h の 65 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_INS_SPACE 1417

sakura_rc.h の 469 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_KEYHELP 5137

sakura_rc.h の 642 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), と CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_ALLSEARCH 5141

sakura_rc.h の 646 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), と CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_KEYDISP 5142

sakura_rc.h の 647 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), と CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_PREFIX 5143

sakura_rc.h の 648 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::GetData_KeyHelp(), と CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYWORDCASE 1168

sakura_rc.h の 222 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7(), と CPropCommon::SetData_p7_KeyWordSet().

#define IDC_CHECK_KINSOKUHEAD 1262

sakura_rc.h の 290 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_KINSOKUKUTO 1265

sakura_rc.h の 298 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_KINSOKURET 1264

sakura_rc.h の 295 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_KINSOKUTAIL 1263

sakura_rc.h の 292 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_LCPOS 1389

sakura_rc.h の 435 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_CHECK_LCPOS2 1077

sakura_rc.h の 103 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_CHECK_LCPOS3 1078

sakura_rc.h の 110 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_CHECK_LINENUMBER 1262

sakura_rc.h の 289 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_m_bHokanKey_RETURN 1313

sakura_rc.h の 350 行で定義されています。

参照元 CPropCommon::GetData_p10(), と CPropCommon::SetData_p10().

#define IDC_CHECK_m_bHokanKey_RIGHT 1315

sakura_rc.h の 352 行で定義されています。

参照元 CPropCommon::GetData_p10(), と CPropCommon::SetData_p10().

#define IDC_CHECK_m_bHokanKey_TAB 1314

sakura_rc.h の 351 行で定義されています。

参照元 CPropCommon::GetData_p10(), と CPropCommon::SetData_p10().

#define IDC_CHECK_MultiWin 1283

sakura_rc.h の 318 行で定義されています。

#define IDC_CHECK_NoFilterSaveFile 1516

sakura_rc.h の 585 行で定義されています。

#define IDC_CHECK_NoFilterSaveNew 1515

sakura_rc.h の 584 行で定義されています。

#define IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 1072

sakura_rc.h の 93 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_NOTIFYNOTFOUND 1192

sakura_rc.h の 246 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CDlgReplace::SetData(), CDlgFind::SetData(), と CDlgDiff::SetData().

#define IDC_CHECK_PLSQL 1076

sakura_rc.h の 97 行で定義されています。

参照元 CDlgJump::GetData(), CDlgJump::OnBnClicked(), と CDlgJump::SetData().

#define IDC_CHECK_PS_KINSOKUHEAD 1264

sakura_rc.h の 294 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_PS_KINSOKUKUTO 1267

sakura_rc.h の 300 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_PS_KINSOKURET 1266

sakura_rc.h の 299 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_PS_KINSOKUTAIL 1265

sakura_rc.h の 297 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_QueryIfCodeChange 1492

sakura_rc.h の 553 行で定義されています。

#define IDC_CHECK_REALTIMEVIEW 1477

sakura_rc.h の 538 行で定義されています。

参照元 CEditView::DoGrep().

#define IDC_CHECK_REGEX 1406

sakura_rc.h の 457 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), CPropTypes::GetData_Regex(), と CPropTypes::SetData_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 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_RestoreBookmarks 1382

sakura_rc.h の 431 行で定義されています。

#define IDC_CHECK_RestoreCurPosition 1375

sakura_rc.h の 425 行で定義されています。

#define IDC_CHECK_RetainEmptyWindow 1518

sakura_rc.h の 588 行で定義されています。

参照元 CPropCommon::EnableTabPropInput(), CPropCommon::GetData_PROP_TAB(), と CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_RTRIM_PREVLINE 1013

sakura_rc.h の 69 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_SameTabWidth 1400

sakura_rc.h の 452 行で定義されています。

参照元 CPropCommon::EnableTabPropInput(), CPropCommon::GetData_PROP_TAB(), と CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_SEARCHALL 1419

sakura_rc.h の 471 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgFind::GetData(), CDlgDiff::GetData(), CDlgReplace::SetData(), CDlgFind::SetData(), と CDlgDiff::SetData().

#define IDC_CHECK_SENDSTDIN 1538

sakura_rc.h の 598 行で定義されています。

参照元 CDlgExec::GetData(), と CDlgExec::SetData().

#define IDC_CHECK_SHIFT 1076

sakura_rc.h の 98 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_CHECK_SortTabList 1540

sakura_rc.h の 600 行で定義されています。

参照元 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 の 448 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_STAYTASKTRAY 1280

sakura_rc.h の 313 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1(), CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH 1013

sakura_rc.h の 68 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD 1012

sakura_rc.h の 66 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_TAB_ARROW 1456

sakura_rc.h の 515 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_CHECK_TAG_MAKE_RECURSE 1472

sakura_rc.h の 533 行で定義されています。

参照元 CDlgTagsMake::GetData(), と CDlgTagsMake::SetData().

#define IDC_CHECK_TILE_H 1296

sakura_rc.h の 330 行で定義されています。

参照元 CDlgCompare::GetData(), と CDlgCompare::SetData().

#define IDC_CHECK_TOOLBARISFLAT 1076

sakura_rc.h の 100 行で定義されています。

参照元 CPropCommon::GetData_PROP_TOOLBAR(), と CPropCommon::SetData_PROP_TOOLBAR().

#define IDC_CHECK_TYPE_KEYHELPUSE 5138

sakura_rc.h の 643 行で定義されています。

#define IDC_CHECK_TYPEHTMLHELPISSINGLE 1424

sakura_rc.h の 476 行で定義されています。

参照元 CPropTypes::GetData_p2(), と CPropTypes::SetData_p2().

#define IDC_CHECK_UNDERLINE 1085

sakura_rc.h の 121 行で定義されています。

参照元 ColorList_SubclassProc(), と CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_USETRAYICON 1279

sakura_rc.h の 311 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1(), CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_CHECK_WORDWRAP 1261

sakura_rc.h の 288 行で定義されています。

参照元 CDlgPrintSetting::GetData(), CPropTypes::GetData_p1(), CDlgPrintSetting::OnChangeSettingType(), と CPropTypes::SetData_p1().

#define IDC_CHK_DEFAULTFOLDER 1123

sakura_rc.h の 189 行で定義されています。

参照元 CDlgGrep::OnBnClicked(), と CDlgGrep::SetData().

#define IDC_CHK_FROMTHISTEXT 1076

sakura_rc.h の 99 行で定義されています。

参照元 CDlgGrep::GetData(), CDlgGrep::OnBnClicked(), と CDlgGrep::SetData().

#define IDC_CHK_LOHICASE 1006

sakura_rc.h の 61 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

#define IDC_CHK_PASTE 1418

sakura_rc.h の 470 行で定義されています。

参照元 CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CDlgReplace::GetData(), CDlgReplace::OnBnClicked(), と CDlgReplace::SetData().

#define IDC_CHK_REGULAREXP 1010

sakura_rc.h の 63 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

#define IDC_CHK_SUBFOLDER 1122

sakura_rc.h の 187 行で定義されています。

参照元 CDlgGrep::GetData(), CDlgGrep::OnBnClicked(), と CDlgGrep::SetData().

#define IDC_CHK_WORD 1400

sakura_rc.h の 450 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

#define IDC_COMBO1 1494

sakura_rc.h の 556 行で定義されています。

#define IDC_COMBO10 1503

sakura_rc.h の 573 行で定義されています。

#define IDC_COMBO2 1495

sakura_rc.h の 558 行で定義されています。

#define IDC_COMBO3 1496

sakura_rc.h の 559 行で定義されています。

#define IDC_COMBO4 1497

sakura_rc.h の 561 行で定義されています。

#define IDC_COMBO5 1498

sakura_rc.h の 563 行で定義されています。

#define IDC_COMBO6 1499

sakura_rc.h の 565 行で定義されています。

#define IDC_COMBO7 1500

sakura_rc.h の 567 行で定義されています。

#define IDC_COMBO8 1501

sakura_rc.h の 569 行で定義されています。

#define IDC_COMBO9 1502

sakura_rc.h の 571 行で定義されています。

#define IDC_COMBO_CHARSET 1217

sakura_rc.h の 261 行で定義されています。

参照元 CDlgGrep::GetData(), CDlgGrep::OnInitDialog(), と CDlgGrep::SetData().

#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::GetData(), CDlgGrep::OnBnClicked(), CDlgGrep::OnInitDialog(), と CDlgGrep::SetData().

#define IDC_COMBO_FOLDER 1119

sakura_rc.h の 182 行で定義されています。

参照元 CDlgGrep::GetData(), CDlgGrep::OnBnClicked(), CDlgGrep::OnInitDialog(), と CDlgGrep::SetData().

#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 の 338 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_COMBO_IMESWITCH 1304

sakura_rc.h の 340 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_COMBO_INDENTLAYOUT 1010

sakura_rc.h の 64 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_COMBO_KEYHELP_COLOR 5125

sakura_rc.h の 630 行で定義されています。

#define IDC_COMBO_m_szCommand 1328

sakura_rc.h の 381 行で定義されています。

参照元 CDlgExec::GetData(), CDlgExec::OnBnClicked(), と CDlgExec::SetData().

#define IDC_COMBO_MACROID 1394

sakura_rc.h の 441 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro(), CPropCommon::InitDialog_PROP_Macro(), と CPropCommon::SetMacro2List_Macro().

#define IDC_COMBO_MENU 1188

sakura_rc.h の 243 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), CPropCommon::p8_Import_CustMenuSetting(), と CPropCommon::SetData_p8().

#define IDC_COMBO_MRU 1167

sakura_rc.h の 221 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_nSortType 1118

sakura_rc.h の 181 行で定義されています。

参照元 CDlgFuncList::OnCbnSelChange(), と CDlgFuncList::SetData().

#define IDC_COMBO_OPENFOLDER 1169

sakura_rc.h の 223 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_OUTLINES 1301

sakura_rc.h の 335 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_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 の 459 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), と CPropTypes::SetData_Regex().

#define IDC_COMBO_SET 1179

sakura_rc.h の 230 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropCommon::DispatchEvent_p7(), CPropTypes::GetData_p3_new(), CPropTypes::SetData_p3_new(), と 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(), と CDlgPrintSetting::SetData().

#define IDC_COMBO_SMARTINDENT 1302

sakura_rc.h の 336 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_COMBO_TEXT 1021

sakura_rc.h の 74 行で定義されています。

参照元 CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFind::GetData(), CDlgReplace::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgReplace::SetData(), CDlgGrep::SetData(), CDlgFind::SetData(), と CDlgExec::SetData().

#define IDC_COMBO_TEXT2 1022

sakura_rc.h の 75 行で定義されています。

参照元 CViewCommander::Command_REPLACE(), CViewCommander::Command_REPLACE_ALL(), CDlgReplace::GetData(), CDlgReplace::OnBnClicked(), CDlgReplace::OnInitDialog(), と CDlgReplace::SetData().

#define IDC_COMBO_WINTYPE 1490

sakura_rc.h の 551 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnInitDialog(), CDlgWinSize::RenewItemState(), と 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::ISearchEnter(), と CEditView::OnMOUSEMOVE().

#define IDC_CURSOR_ISEARCH_F 241

sakura_rc.h の 52 行で定義されています。

参照元 CEditView::ISearchEnter(), と 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 の 374 行で定義されています。

#define IDC_EDIT_ABOUT 1398

sakura_rc.h の 447 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDC_EDIT_AUTOBACKUP_INTERVAL 1092

sakura_rc.h の 150 行で定義されています。

#define IDC_EDIT_BACKUP_3 1327

sakura_rc.h の 375 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), と CPropCommon::GetData_PROP_BACKUP().

#define IDC_EDIT_BACKUPFILE 1504

sakura_rc.h の 574 行で定義されています。

参照元 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::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_FROM2 1087

sakura_rc.h の 134 行で定義されています。

参照元 CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_TO 1109

sakura_rc.h の 160 行で定義されています。

参照元 CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_TO2 1112

sakura_rc.h の 173 行で定義されています。

参照元 CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_CHARSPACE 1031

sakura_rc.h の 78 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_EDIT_DANSPACE 1113

sakura_rc.h の 175 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_DANSUU 1260

sakura_rc.h の 287 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_DEBUG 1278

sakura_rc.h の 309 行で定義されています。

参照元 CDlgDebug::DispatchEvent().

#define IDC_EDIT_DFORM 1323

sakura_rc.h の 359 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::EnableFormatPropInput(), CPropCommon::GetData_p9(), と CPropCommon::SetData_p9().

#define IDC_EDIT_DFORM_EX 1319

sakura_rc.h の 355 行で定義されています。

参照元 CPropCommon::ChangeDateExample().

#define IDC_EDIT_DIFF_DST 1429

sakura_rc.h の 483 行で定義されています。

参照元 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 の 514 行で定義されています。

参照元 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 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_FOOT1 1243

sakura_rc.h の 282 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_EDIT_FOOT2 1278

sakura_rc.h の 310 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_EDIT_FOOT3 1279

sakura_rc.h の 312 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_EDIT_FROM 1333

sakura_rc.h の 389 行で定義されています。

参照元 CDlgPrintPage::GetData(), CDlgPrintPage::OnBnClicked(), と CDlgPrintPage::SetData().

#define IDC_EDIT_FUNCKEYWND_GROUPNUM 1431

sakura_rc.h の 487 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_HEAD1 1270

sakura_rc.h の 301 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_EDIT_HEAD2 1275

sakura_rc.h の 306 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_EDIT_HEAD3 1276

sakura_rc.h の 307 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#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 の 628 行で定義されています。

参照元 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 の 480 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_EDIT_KINSOKUTAIL 1429

sakura_rc.h の 482 行で定義されています。

参照元 CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#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(), と CPropTypes::EnableTypesPropInput().

#define IDC_EDIT_LINECOMMENTPOS3 1236

sakura_rc.h の 276 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_EDIT_LINENUM 1074

sakura_rc.h の 94 行で定義されています。

参照元 CDlgJump::GetData(), CDlgJump::OnNotify(), と CDlgJump::SetData().

#define IDC_EDIT_LINESPACE 1037

sakura_rc.h の 81 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CPropTypes::DispatchEvent_p1(), CDlgPrintSetting::GetData(), CPropTypes::GetData_p1(), CDlgPrintSetting::OnChangeSettingType(), CDlgPrintSetting::OnSpin(), と CPropTypes::SetData_p1().

#define IDC_EDIT_LINETERMCHAR 1220

sakura_rc.h の 263 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::EnableTypesPropInput(), CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_MARGINBY 1110

sakura_rc.h の 167 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_MARGINLX 1111

sakura_rc.h の 170 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_MARGINRX 1112

sakura_rc.h の 172 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_MARGINTY 1109

sakura_rc.h の 162 行で定義されています。

参照元 CDlgPrintSetting::DataCheckAndCrrect(), CDlgPrintSetting::GetData(), CDlgPrintSetting::OnChangeSettingType(), と CDlgPrintSetting::OnSpin().

#define IDC_EDIT_MAX_MRU_FILE 1186

sakura_rc.h の 237 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1(), CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_EDIT_MAX_MRU_FOLDER 1110

sakura_rc.h の 166 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1(), CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_EDIT_MAXLINELEN 1029

sakura_rc.h の 77 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_EDIT_MENUNAME 1382

sakura_rc.h の 430 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::SetData_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 の 332 行で定義されています。

#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 の 328 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_OUTLINERULEFILE 1426

sakura_rc.h の 478 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_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 の 456 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), と CPropTypes::SetData_Regex().

#define IDC_EDIT_REGEXPLIB 1524

sakura_rc.h の 594 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP(), CPropCommon::GetData_PROP_GREP(), CPropCommon::SetData_PROP_GREP(), と CPropCommon::SetRegexpVersion().

#define IDC_EDIT_REPEATEDSCROLLLINENUM 1098

sakura_rc.h の 153 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_EDIT_SX 1329

sakura_rc.h の 384 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_EDIT_SY 1330

sakura_rc.h の 386 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_EDIT_TABSPACE 1050

sakura_rc.h の 86 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#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 の 378 行で定義されています。

参照元 CDlgTagsMake::GetData(), と CDlgTagsMake::SetData().

#define IDC_EDIT_TAG_MAKE_FOLDER 1473

sakura_rc.h の 534 行で定義されています。

参照元 CDlgTagsMake::GetData(), CDlgTagsMake::SelectFolder(), と CDlgTagsMake::SetData().

#define IDC_EDIT_TFORM 1087

sakura_rc.h の 133 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::EnableFormatPropInput(), CPropCommon::GetData_p9(), と CPropCommon::SetData_p9().

#define IDC_EDIT_TFORM_EX 1322

sakura_rc.h の 358 行で定義されています。

#define IDC_EDIT_TO 1105

sakura_rc.h の 159 行で定義されています。

参照元 CDlgPrintPage::GetData(), CDlgPrintPage::OnBnClicked(), と CDlgPrintPage::SetData().

#define IDC_EDIT_TYPEEXTHELP 1420

sakura_rc.h の 472 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2(), CPropTypes::GetData_p2(), と CPropTypes::SetData_p2().

#define IDC_EDIT_TYPEEXTHTMLHELP 1421

sakura_rc.h の 473 行で定義されています。

参照元 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 の 380 行で定義されています。

参照元 CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_EDIT_WX 1327

sakura_rc.h の 379 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_EDIT_WY 1328

sakura_rc.h の 382 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_FILEUPDATEMSG 1437

sakura_rc.h の 497 行で定義されています。

#define IDC_FRAME_DIFF_DST 1438

sakura_rc.h の 498 行で定義されています。

#define IDC_FRAME_DIFF_FILE12 1436

sakura_rc.h の 495 行で定義されています。

#define IDC_FRAME_KEYHELP 5120

sakura_rc.h の 625 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_FRAME_REGEX 1416

sakura_rc.h の 467 行で定義されています。

#define IDC_FRAME_SEARCH_MSG 1474

sakura_rc.h の 535 行で定義されています。

#define IDC_GROUP_FUNCKEYWND_POSITION 1357

sakura_rc.h の 410 行で定義されています。

参照元 CPropCommon::EnableWinPropInput().

#define IDC_HIDE 1000

sakura_rc.h の 60 行で定義されています。

#define IDC_HOTKEY1 1493

sakura_rc.h の 554 行で定義されています。

#define IDC_HOTKEY_TRAYMENU 1286

sakura_rc.h の 320 行で定義されています。

参照元 CPropCommon::GetData_p1(), と CPropCommon::SetData_p1().

#define IDC_KEYWORD 1499

sakura_rc.h の 566 行で定義されています。

参照元 CDlgTagJumpList::GetData(), CDlgTagJumpList::OnInitDialog(), CDlgTagJumpList::OnTimer(), と CDlgTagJumpList::SetData().

#define IDC_LABEL_AUTOSAVE 1337

sakura_rc.h の 393 行で定義されています。

#define IDC_LABEL_AUTOSAVE2 1342

sakura_rc.h の 395 行で定義されています。

#define IDC_LABEL_AUTOSAVE3 1343

sakura_rc.h の 396 行で定義されています。

#define IDC_LABEL_AUTOSAVE4 1344

sakura_rc.h の 397 行で定義されています。

#define IDC_LABEL_BACKUP_3 1336

sakura_rc.h の 392 行で定義されています。

#define IDC_LABEL_BACKUP_4 1338

sakura_rc.h の 394 行で定義されています。

#define IDC_LABEL_BACKUP_HELP 1505

sakura_rc.h の 575 行で定義されています。

#define IDC_LABEL_BACKUP_HELP2 1509

sakura_rc.h の 579 行で定義されています。

#define IDC_LABEL_DFORM 1358

sakura_rc.h の 411 行で定義されています。

参照元 CPropCommon::EnableFormatPropInput().

#define IDC_LABEL_FROM 1360

sakura_rc.h の 413 行で定義されています。

参照元 CDlgPrintPage::OnBnClicked(), と CDlgPrintPage::SetData().

#define IDC_LABEL_FUNCtoKEY 1352

sakura_rc.h の 406 行で定義されています。

#define IDC_LABEL_KEYHELP_ABOUT 5136

sakura_rc.h の 641 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_KEYWORD 5122

sakura_rc.h の 627 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_PRIOR 5139

sakura_rc.h の 644 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_TITLE 5124

sakura_rc.h の 629 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYKIND 1351

sakura_rc.h の 405 行で定義されています。

#define IDC_LABEL_KEYtoFUNC 1353

sakura_rc.h の 407 行で定義されています。

#define IDC_LABEL_KEYWORDHELPFILE 1365

sakura_rc.h の 418 行で定義されています。

#define IDC_LABEL_LCPOS 1391

sakura_rc.h の 437 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_LCPOS2 1392

sakura_rc.h の 438 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_LCPOS3 1393

sakura_rc.h の 439 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_LINETERMCHAR 1356

sakura_rc.h の 409 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_MENU 1347

sakura_rc.h の 400 行で定義されています。

#define IDC_LABEL_MENUCHOICE 1348

sakura_rc.h の 401 行で定義されています。

#define IDC_LABEL_MENUFUNC 1345

sakura_rc.h の 398 行で定義されています。

#define IDC_LABEL_MENUFUNCKIND 1346

sakura_rc.h の 399 行で定義されています。

#define IDC_LABEL_MENUKEYCHANGE 1349

sakura_rc.h の 402 行で定義されています。

#define IDC_LABEL_MENUNAME 1350

sakura_rc.h の 404 行で定義されています。

#define IDC_LABEL_PLSQL1 1362

sakura_rc.h の 415 行で定義されています。

参照元 CDlgJump::OnBnClicked(), と CDlgJump::SetData().

#define IDC_LABEL_PLSQL2 1363

sakura_rc.h の 416 行で定義されています。

参照元 CDlgJump::OnBnClicked(), と CDlgJump::SetData().

#define IDC_LABEL_PLSQL3 1364

sakura_rc.h の 417 行で定義されています。

参照元 CDlgJump::OnBnClicked(), と CDlgJump::SetData().

#define IDC_LABEL_REGEX_COLOR 1409

sakura_rc.h の 460 行で定義されています。

#define IDC_LABEL_REGEX_KEYWORD 1410

sakura_rc.h の 461 行で定義されています。

#define IDC_LABEL_REGEX_VERSION 1417

sakura_rc.h の 468 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_LABEL_REGEXP 1522

sakura_rc.h の 593 行で定義されています。

#define IDC_LABEL_REGEXP_VER 1525

sakura_rc.h の 595 行で定義されています。

参照元 CPropCommon::SetRegexpVersion().

#define IDC_LABEL_TFORM 1359

sakura_rc.h の 412 行で定義されています。

参照元 CPropCommon::EnableFormatPropInput().

#define IDC_LABEL_TO 1361

sakura_rc.h の 414 行で定義されています。

参照元 CDlgPrintPage::OnBnClicked(), と CDlgPrintPage::SetData().

#define IDC_LABEL_TOOLBAR 1350

sakura_rc.h の 403 行で定義されています。

#define IDC_LANEL_NOTE 1373

sakura_rc.h の 424 行で定義されています。

#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 行で定義されています。

参照元 ColorList_SubclassProc(), CDlgSameColor::DispatchEvent(), CPropTypes::DispatchEvent_p3_new(), CDlgSameColor::OnBnClicked(), CDlgSameColor::OnDrawItem(), CDlgSameColor::OnInitDialog(), CPropTypes::RearrangeKeywordSet(), と CPropTypes::SetData_p3_new().

#define IDC_LIST_CTRLCODE 1438

sakura_rc.h の 499 行で定義されています。

参照元 CDlgCtrlCode::GetData(), CDlgCtrlCode::OnInitDialog(), CDlgCtrlCode::OnNotify(), と CDlgCtrlCode::SetData().

#define IDC_LIST_DIFF_FILES 1437

sakura_rc.h の 496 行で定義されています。

参照元 CDlgDiff::GetData(), CDlgDiff::OnBnClicked(), CDlgDiff::OnCbnSelChange(), CDlgDiff::OnEditChange(), と CDlgDiff::SetData().

#define IDC_LIST_FAVORITE_CMD 1464

sakura_rc.h の 523 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_FILE 1458

sakura_rc.h の 517 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_FOLDER 1459

sakura_rc.h の 518 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_GREP_FILE 1460

sakura_rc.h の 519 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_GREP_FOLDER 1461

sakura_rc.h の 520 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_REPLACE 1462

sakura_rc.h の 521 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_SEARCH 1463

sakura_rc.h の 522 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FILES 1223

sakura_rc.h の 266 行で定義されています。

参照元 CDlgCompare::GetData(), と CDlgCompare::SetData().

#define IDC_LIST_FNAME 1454

sakura_rc.h の 513 行で定義されています。

参照元 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(), と CPropCommon::p5_Import_KeySetting().

#define IDC_LIST_ITEMINFO 1514

sakura_rc.h の 583 行で定義されています。

参照元 CDlgSameColor::DispatchEvent(), と CDlgSameColor::OnSelChangeListColors().

#define IDC_LIST_KEY 1114

sakura_rc.h の 177 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5(), CPropCommon::p5_Import_KeySetting(), と CPropCommon::SetData_p5().

#define IDC_LIST_KEYHELP 5121

sakura_rc.h の 626 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::Export_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 の 458 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), CPropTypes::Export_Regex(), CPropTypes::GetData_Regex(), CPropTypes::Import_Regex(), と CPropTypes::SetData_Regex().

#define IDC_LIST_RES 1138

sakura_rc.h の 200 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::GetData_PROP_TOOLBAR(), CPropCommon::SetData_p8(), と CPropCommon::SetData_PROP_TOOLBAR().

#define IDC_LIST_TAGJUMP 1468

sakura_rc.h の 527 行で定義されています。

参照元 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 の 349 行で定義されています。

参照元 CHokanMgr::DoHokan(), CHokanMgr::DoModeless(), CHokanMgr::OnSize(), と CHokanMgr::ShowTip().

#define IDC_MACRO_REG 1393

sakura_rc.h の 440 行で定義されています。

#define IDC_MACRODIR 1401

sakura_rc.h の 453 行で定義されています。

#define IDC_MACRODIRREF 1402

sakura_rc.h の 454 行で定義されています。

#define IDC_MACROLIST 1396

sakura_rc.h の 445 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro(), CPropCommon::InitDialog_PROP_Macro(), と CPropCommon::SetMacro2List_Macro().

#define IDC_MACRONAME 1397

sakura_rc.h の 446 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro(), と CPropCommon::SetMacro2List_Macro().

#define IDC_MACROPATH 1327

sakura_rc.h の 376 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro(), と CPropCommon::SetMacro2List_Macro().

#define IDC_PROGRESS 1311

sakura_rc.h の 348 行で定義されています。

参照元 CViewCommander::Command_INSFILE(), と CDocLineMgr::ReplaceData().

#define IDC_PROGRESS_REPLACE 1195

sakura_rc.h の 249 行で定義されています。

参照元 CViewCommander::Command_REPLACE_ALL().

#define IDC_QUERYRELOADMSG 1441

sakura_rc.h の 503 行で定義されています。

参照元 CDlgFileUpdateQuery::OnInitDialog().

#define IDC_RADIO_ADD 1326

sakura_rc.h の 372 行で定義されています。

参照元 CDlgReplace::GetData(), と CDlgReplace::SetData().

#define IDC_RADIO_ALL 1324

sakura_rc.h の 360 行で定義されています。

参照元 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 の 362 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), と CPropCommon::GetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE1A 1507

sakura_rc.h の 577 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE2 1325

sakura_rc.h の 368 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), と CPropCommon::GetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE2A 1508

sakura_rc.h の 578 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_TYPE1 1078

sakura_rc.h の 105 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), と CPropCommon::GetData_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::GetData_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 の 353 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), と CPropCommon::SetData_p9().

#define IDC_RADIO_DFORM_1 1318

sakura_rc.h の 354 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::EnableFormatPropInput(), と CPropCommon::SetData_p9().

#define IDC_RADIO_DIFF_DST1 1326

sakura_rc.h の 373 行で定義されています。

参照元 CDlgDiff::GetData(), CDlgDiff::OnBnClicked(), CDlgDiff::OnCbnSelChange(), CDlgDiff::OnEditChange(), と CDlgDiff::SetData().

#define IDC_RADIO_DIFF_DST2 1327

sakura_rc.h の 377 行で定義されています。

参照元 CDlgDiff::GetData(), CDlgDiff::OnBnClicked(), CDlgDiff::OnCbnSelChange(), CDlgDiff::OnEditChange(), と CDlgDiff::SetData().

#define IDC_RADIO_DIFF_FILE1 1324

sakura_rc.h の 364 行で定義されています。

参照元 CDlgDiff::OnBnClicked(), と CDlgDiff::SetData().

#define IDC_RADIO_DIFF_FILE2 1325

sakura_rc.h の 371 行で定義されています。

参照元 CDlgDiff::GetData(), CDlgDiff::OnBnClicked(), と CDlgDiff::SetData().

#define IDC_RADIO_EDITWINDOW 1537

sakura_rc.h の 597 行で定義されています。

参照元 CDlgExec::GetData(), CDlgExec::OnBnClicked(), と CDlgExec::SetData().

#define IDC_RADIO_ESCAPETYPE_1 1150

sakura_rc.h の 215 行で定義されています。

参照元 CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_RADIO_ESCAPETYPE_2 1151

sakura_rc.h の 216 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_RADIO_FROMTO 1325

sakura_rc.h の 366 行で定義されています。

参照元 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 の 369 行で定義されています。

参照元 CDlgReplace::GetData(), と CDlgReplace::SetData().

#define IDC_RADIO_LANDSCAPE 1325

sakura_rc.h の 367 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType().

#define IDC_RADIO_LINENUM_CRLF 1215

sakura_rc.h の 259 行で定義されています。

参照元 CDlgJump::OnBnClicked(), CDlgJump::SetData(), と CPropTypes::SetData_p3_new().

#define IDC_RADIO_LINENUM_LAYOUT 1214

sakura_rc.h の 258 行で定義されています。

参照元 CDlgJump::GetData(), CPropTypes::GetData_p3_new(), CDlgJump::OnBnClicked(), CDlgJump::SetData(), と CPropTypes::SetData_p3_new().

#define IDC_RADIO_LINETERMTYPE0 1221

sakura_rc.h の 264 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_RADIO_LINETERMTYPE1 1222

sakura_rc.h の 265 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#define IDC_RADIO_LINETERMTYPE2 1218

sakura_rc.h の 262 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::EnableTypesPropInput(), CPropTypes::GetData_p3_new(), と CPropTypes::SetData_p3_new().

#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 の 365 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), と CPropTypes::SetData_p1().

#define IDC_RADIO_OUTLINERULEFILE 1325

sakura_rc.h の 370 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::GetData_p1(), と CPropTypes::SetData_p1().

#define IDC_RADIO_OUTPUT 1536

sakura_rc.h の 596 行で定義されています。

参照元 CDlgExec::OnBnClicked(), と CDlgExec::SetData().

#define IDC_RADIO_OUTPUTLINE 1132

sakura_rc.h の 194 行で定義されています。

参照元 CDlgGrep::GetData(), と CDlgGrep::SetData().

#define IDC_RADIO_OUTPUTMARKED 1078

sakura_rc.h の 106 行で定義されています。

参照元 CDlgGrep::SetData().

#define IDC_RADIO_OUTPUTSTYLE1 1158

sakura_rc.h の 218 行で定義されています。

参照元 CDlgGrep::GetData(), と CDlgGrep::SetData().

#define IDC_RADIO_OUTPUTSTYLE2 1282

sakura_rc.h の 315 行で定義されています。

参照元 CDlgGrep::GetData(), と CDlgGrep::SetData().

#define IDC_RADIO_PORTRAIT 1324

sakura_rc.h の 361 行で定義されています。

参照元 CDlgPrintSetting::GetData(), と CDlgPrintSetting::OnChangeSettingType().

#define IDC_RADIO_REPLACE 1324

sakura_rc.h の 363 行で定義されています。

参照元 CDlgReplace::SetData().

#define IDC_RADIO_SELECTEDAREA 1133

sakura_rc.h の 195 行で定義されています。

参照元 CDlgReplace::GetData(), CDlgReplace::OnBnClicked(), と CDlgReplace::OnInitDialog().

#define IDC_RADIO_TFORM_0 1320

sakura_rc.h の 356 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::GetData_p9(), と CPropCommon::SetData_p9().

#define IDC_RADIO_TFORM_1 1321

sakura_rc.h の 357 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), CPropCommon::EnableFormatPropInput(), と CPropCommon::SetData_p9().

#define IDC_RADIO_WINPOS_DEF 1485

sakura_rc.h の 546 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), と CDlgWinSize::SetData().

#define IDC_RADIO_WINPOS_SAVE 1486

sakura_rc.h の 547 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), と CDlgWinSize::SetData().

#define IDC_RADIO_WINPOS_SET 1487

sakura_rc.h の 548 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_DEF 1480

sakura_rc.h の 541 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), と CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_SAVE 1481

sakura_rc.h の 542 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), と CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_SET 1482

sakura_rc.h の 543 行で定義されています。

参照元 CDlgWinSize::GetData(), CDlgWinSize::OnBnClicked(), CDlgWinSize::RenewItemState(), と CDlgWinSize::SetData().

#define IDC_SLIDER_VIEW 1466

sakura_rc.h の 525 行で定義されています。

#define IDC_SPIN_AUTOBACKUP_INTERVAL 1367

sakura_rc.h の 420 行で定義されています。

#define IDC_SPIN_BACKUP_GENS 1366

sakura_rc.h の 419 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_SPIN_CHARSPACE 1035

sakura_rc.h の 80 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#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 の 485 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_LCColNum 1390

sakura_rc.h の 436 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_SPIN_LCColNum2 1186

sakura_rc.h の 239 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_SPIN_LCColNum3 1187

sakura_rc.h の 242 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), と CPropTypes::EnableTypesPropInput().

#define IDC_SPIN_LINENUM 1372

sakura_rc.h の 423 行で定義されています。

参照元 CDlgJump::OnNotify().

#define IDC_SPIN_LINESPACE 1038

sakura_rc.h の 82 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), 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 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_SPIN_MAX_MRU_FOLDER 1185

sakura_rc.h の 234 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_SPIN_MAXLINELEN 1034

sakura_rc.h の 79 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_SPIN_nDropFileNumMax 1185

sakura_rc.h の 235 行で定義されています。

#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 の 421 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_PLSQL_E1 1186

sakura_rc.h の 238 行で定義されています。

参照元 CDlgJump::OnBnClicked(), CDlgJump::OnNotify(), と CDlgJump::SetData().

#define IDC_SPIN_REPEATEDSCROLLLINENUM 1039

sakura_rc.h の 83 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), と CPropCommon::DispatchEvent_p1().

#define IDC_SPIN_SX 1488

sakura_rc.h の 549 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_SY 1489

sakura_rc.h の 550 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_TABSPACE 1040

sakura_rc.h の 85 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_SPIN_WX 1483

sakura_rc.h の 544 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_WY 1484

sakura_rc.h の 545 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_STATIC -1

sakura_rc.h の 649 行で定義されています。

#define IDC_STATIC_ALL 1334

sakura_rc.h の 390 行で定義されています。

参照元 CDlgPrintPage::SetData().

#define IDC_STATIC_CMD 1330

sakura_rc.h の 385 行で定義されています。

参照元 CViewCommander::Command_TagsMake().

#define IDC_STATIC_COLOR 1510

sakura_rc.h の 580 行で定義されています。

参照元 CDlgSameColor::OnInitDialog().

#define IDC_STATIC_COMPARESRC 1224

sakura_rc.h の 267 行で定義されています。

参照元 CDlgCompare::SetData().

#define IDC_STATIC_CURFILE 1310

sakura_rc.h の 347 行で定義されています。

参照元 CEditView::DoGrep().

#define IDC_STATIC_CURPATH 1123

sakura_rc.h の 188 行で定義されています。

#define IDC_STATIC_DIFF_SRC 1428

sakura_rc.h の 481 行で定義されています。

参照元 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 の 433 行で定義されています。

参照元 OFNHookProc().

#define IDC_STATIC_FAVORITE_MSG 1476

sakura_rc.h の 537 行で定義されています。

参照元 CDlgFavorite::OnActivate(), CDlgFavorite::OnBnClicked(), CDlgFavorite::OnNotify(), と CDlgFavorite::SetData().

#define IDC_STATIC_HAIKEI 1216

sakura_rc.h の 260 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_STATIC_HITCOUNT 1124

sakura_rc.h の 190 行で定義されています。

参照元 CEditView::DoGrep().

#define IDC_STATIC_JOBNAME 1331

sakura_rc.h の 387 行で定義されています。

参照元 CPrintPreview::OnPrint().

#define IDC_STATIC_JRE32VER 1065

sakura_rc.h の 89 行で定義されています。

参照元 CDlgReplace::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgReplace::SetData(), CDlgGrep::SetData(), と CDlgFind::SetData().

#define IDC_STATIC_KENSUU 1197

sakura_rc.h の 250 行で定義されています。

参照元 CViewCommander::Command_REPLACE_ALL().

#define IDC_STATIC_KEYWORD 1500

sakura_rc.h の 568 行で定義されています。

参照元 CDlgTagJumpList::OnInitDialog().

#define IDC_STATIC_KEYWORD_COUNT 1496

sakura_rc.h の 560 行で定義されています。

参照元 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 の 490 行で定義されています。

参照元 CDlgFuncList::SetData().

#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 の 388 行で定義されています。

参照元 CPrintPreview::OnPrint().

#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 の 426 行で定義されています。

#define IDC_STATIC_URL_ORG 1380

sakura_rc.h の 428 行で定義されています。

参照元 CDlgAbout::OnBnClicked().

#define IDC_STATIC_URL_UR 1379

sakura_rc.h の 427 行で定義されています。

参照元 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 の 408 行で定義されています。

#define IDC_TAB_FAVORITE 1457

sakura_rc.h の 516 行で定義されています。

参照元 CDlgFavorite::OnBnClicked(), CDlgFavorite::OnInitDialog(), と CDlgFavorite::OnNotify().

#define IDC_TABWND_CAPTION 1471

sakura_rc.h の 532 行で定義されています。

参照元 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 の 502 行で定義されています。

参照元 CDlgFileUpdateQuery::OnInitDialog().

#define IDC_WINCAPTION_ACTIVE 1469

sakura_rc.h の 528 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN(), と CPropCommon::SetData_PROP_WIN().

#define IDC_WINCAPTION_INACTIVE 1470

sakura_rc.h の 529 行で定義されています。

参照元 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 の 622 行で定義されています。

参照元 CDlgCtrlCode::DoModal().

#define IDD_DEBUG 177

sakura_rc.h の 27 行で定義されています。

参照元 CDlgDebug::DoModal().

#define IDD_DIALOG_KEYWORD_SELECT 243

sakura_rc.h の 54 行で定義されています。

参照元 CDlgKeywordSelect::DoModal().

#define IDD_DIFF 5115

sakura_rc.h の 621 行で定義されています。

参照元 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 行で定義されています。

参照元 CViewCommander::Command_TagsMake().

#define IDD_EXITING 175

sakura_rc.h の 26 行で定義されています。

参照元 CControlTray::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 の 618 行で定義されています。

参照元 CViewCommander::Command_INSFILE(), と CDocLineMgr::ReplaceData().

#define IDD_PRINTING 192

sakura_rc.h の 32 行で定義されています。

参照元 CPrintPreview::OnPrint().

#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 行で定義されています。

参照元 CDlgPrintSetting::DoModal().

#define IDD_PROP1P1 107

sakura_rc.h の 8 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1(), と CPropCommon::OnHelp().

#define IDD_PROP_BACKUP 5112

sakura_rc.h の 617 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP(), と CPropCommon::OnHelp().

#define IDD_PROP_COLOR 5106

sakura_rc.h の 611 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new(), CPropTypes::DoPropertySheet(), と CPropTypes::OnHelp().

#define IDD_PROP_CUSTMENU 5103

sakura_rc.h の 608 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8(), と CPropCommon::OnHelp().

#define IDD_PROP_EDIT 5109

sakura_rc.h の 614 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT(), と CPropCommon::OnHelp().

#define IDD_PROP_FILE 110

sakura_rc.h の 10 行で定義されています。

参照元 CPropCommon::OnHelp().

#define IDD_PROP_FNAME 226

sakura_rc.h の 45 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME(), と CPropCommon::OnHelp().

#define IDD_PROP_FORMAT 5104

sakura_rc.h の 609 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9(), と CPropCommon::OnHelp().

#define IDD_PROP_GREP 5111

sakura_rc.h の 616 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP(), と CPropCommon::OnHelp().

#define IDD_PROP_HELPER 5105

sakura_rc.h の 610 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10(), と CPropCommon::OnHelp().

#define IDD_PROP_KEYBIND 5107

sakura_rc.h の 612 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5(), と CPropCommon::OnHelp().

#define IDD_PROP_KEYBIND1 5114

sakura_rc.h の 619 行で定義されています。

#define IDD_PROP_KEYHELP 5119

sakura_rc.h の 624 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DoPropertySheet(), と CPropTypes::OnHelp().

#define IDD_PROP_KEYWORD 153

sakura_rc.h の 20 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7(), と CPropCommon::OnHelp().

#define IDD_PROP_MACRO 217

sakura_rc.h の 38 行で定義されています。

参照元 CPropCommon::OnHelp().

#define IDD_PROP_REGEX 219

sakura_rc.h の 39 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex(), CPropTypes::DoPropertySheet(), と CPropTypes::OnHelp().

#define IDD_PROP_TAB 5110

sakura_rc.h の 615 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB(), と CPropCommon::OnHelp().

#define IDD_PROP_TOOLBAR 1539

sakura_rc.h の 599 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR(), と CPropCommon::OnHelp().

#define IDD_PROP_WIN 5108

sakura_rc.h の 613 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN(), と CPropCommon::OnHelp().

#define IDD_PROPERTY_FILE 152

sakura_rc.h の 19 行で定義されています。

参照元 CDlgProperty::DoModal().

#define IDD_PROPTYPESP1 5101

sakura_rc.h の 607 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1(), CPropTypes::DoPropertySheet(), と CPropTypes::OnHelp().

#define IDD_PROPTYPESP2 5114

sakura_rc.h の 620 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2(), CPropTypes::DoPropertySheet(), と CPropTypes::OnHelp().

#define IDD_REPLACE 137

sakura_rc.h の 17 行で定義されています。

参照元 CDlgReplace::DoModeless().

#define IDD_REPLACERUNNING 160

sakura_rc.h の 22 行で定義されています。

参照元 CViewCommander::Command_REPLACE_ALL().

#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 の 623 行で定義されています。

参照元 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 の 601 行で定義されています。

#define IDM_POPLAST2 4064

sakura_rc.h の 605 行で定義されています。

#define IDOK2 3

sakura_rc.h の 5 行で定義されています。

#define IDR_MENU1 102

sakura_rc.h の 7 行で定義されています。

参照元 CEditWnd::_CreateMainWindow(), と CEditWnd::PrintPreviewModeONOFF().

#define IDR_TRAYMENU_L 113

sakura_rc.h の 11 行で定義されています。

参照元 CControlTray::CreatePopUpMenu_L(), と CControlTray::CreatePopUpMenu_R().

#define IDS_ABOUT_DESCRIPTION 4056

sakura_rc.h の 604 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDS_AUTHOR_MAIL 4055

sakura_rc.h の 603 行で定義されています。

#define IDS_AUTHOR_PAGE 4054

sakura_rc.h の 602 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:29 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_rc.h ソースファイル

sakura_core

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_bEnableLineModePaste  1292
00327 #define IDC_CHECK_bSelectClickedURL     1293
00328 #define IDC_EDIT_nRulerHeight           1294
00329 #define IDC_CHECK_bGrepExitConfirm      1295
00330 #define IDC_CHECK_TILE_H                1296
00331 #define IDC_CHECK_bDropFileAndClose     1297
00332 #define IDC_EDIT_nDropFileNumMax        1298
00333 #define IDC_CHECK_bCheckFileTimeStamp   1299
00334 #define IDC_CHECK_bNotOverWriteCRLF     1300
00335 #define IDC_COMBO_OUTLINES              1301
00336 #define IDC_COMBO_SMARTINDENT           1302
00337 #define IDC_BUTTON_REFERENCE            1303
00338 #define IDC_COMBO_IMESTATE              1303
00339 #define IDC_CHECK_bAutoCloseDlgFind     1304
00340 #define IDC_COMBO_IMESWITCH             1304
00341 #define IDC_CHECK_bScrollBarHorz        1305
00342 #define IDC_CHECK_bAutoCloseDlgFuncList 1306
00343 #define IDC_CHECK_bAutoCloseDlgReplace  1307
00344 #define IDC_CHECK_bMarkUpBlankLineEnable 1307
00345 #define IDC_CHECK_bFunclistSetFocusOnJump 1308
00346 #define IDC_CHECK_CLICKKEYSEARCH        1309
00347 #define IDC_STATIC_CURFILE              1310
00348 #define IDC_PROGRESS                    1311
00349 #define IDC_LIST_WORDS                  1312
00350 #define IDC_CHECK_m_bHokanKey_RETURN    1313
00351 #define IDC_CHECK_m_bHokanKey_TAB       1314
00352 #define IDC_CHECK_m_bHokanKey_RIGHT     1315
00353 #define IDC_RADIO_DFORM_0               1317
00354 #define IDC_RADIO_DFORM_1               1318
00355 #define IDC_EDIT_DFORM_EX               1319
00356 #define IDC_RADIO_TFORM_0               1320
00357 #define IDC_RADIO_TFORM_1               1321
00358 #define IDC_EDIT_TFORM_EX               1322
00359 #define IDC_EDIT_DFORM                  1323
00360 #define IDC_RADIO_ALL                   1324
00361 #define IDC_RADIO_PORTRAIT              1324
00362 #define IDC_RADIO_BACKUP_DATETYPE1      1324
00363 #define IDC_RADIO_REPLACE               1324
00364 #define IDC_RADIO_DIFF_FILE1            1324
00365 #define IDC_RADIO_OUTLINEDEFAULT        1324
00366 #define IDC_RADIO_FROMTO                1325
00367 #define IDC_RADIO_LANDSCAPE             1325
00368 #define IDC_RADIO_BACKUP_DATETYPE2      1325
00369 #define IDC_RADIO_INSERT                1325
00370 #define IDC_RADIO_OUTLINERULEFILE       1325
00371 #define IDC_RADIO_DIFF_FILE2            1325
00372 #define IDC_RADIO_ADD                   1326
00373 #define IDC_RADIO_DIFF_DST1             1326
00374 #define IDC_EDIT2                       1327
00375 #define IDC_EDIT_BACKUP_3               1327
00376 #define IDC_MACROPATH                   1327
00377 #define IDC_RADIO_DIFF_DST2             1327
00378 #define IDC_EDIT_TAG_MAKE_CMDLINE       1327
00379 #define IDC_EDIT_WX                     1327
00380 #define IDC_EDIT_VERTLINE               1327
00381 #define IDC_COMBO_m_szCommand           1328
00382 #define IDC_EDIT_WY                     1328
00383 #define IDC_CHECK_GETSTDOUT             1329
00384 #define IDC_EDIT_SX                     1329
00385 #define IDC_STATIC_CMD                  1330
00386 #define IDC_EDIT_SY                     1330
00387 #define IDC_STATIC_JOBNAME              1331
00388 #define IDC_STATIC_PROGRESS             1332
00389 #define IDC_EDIT_FROM                   1333
00390 #define IDC_STATIC_ALL                  1334
00391 #define IDC_CHECK_bMenuIcon             1335
00392 #define IDC_LABEL_BACKUP_3              1336
00393 #define IDC_LABEL_AUTOSAVE              1337
00394 #define IDC_LABEL_BACKUP_4              1338
00395 #define IDC_LABEL_AUTOSAVE2             1342
00396 #define IDC_LABEL_AUTOSAVE3             1343
00397 #define IDC_LABEL_AUTOSAVE4             1344
00398 #define IDC_LABEL_MENUFUNC              1345
00399 #define IDC_LABEL_MENUFUNCKIND          1346
00400 #define IDC_LABEL_MENU                  1347
00401 #define IDC_LABEL_MENUCHOICE            1348
00402 #define IDC_LABEL_MENUKEYCHANGE         1349
00403 #define IDC_LABEL_TOOLBAR               1350
00404 #define IDC_LABEL_MENUNAME              1350
00405 #define IDC_LABEL_KEYKIND               1351
00406 #define IDC_LABEL_FUNCtoKEY             1352
00407 #define IDC_LABEL_KEYtoFUNC             1353
00408 #define IDC_TAB2                        1355
00409 #define IDC_LABEL_LINETERMCHAR          1356
00410 #define IDC_GROUP_FUNCKEYWND_POSITION   1357
00411 #define IDC_LABEL_DFORM                 1358
00412 #define IDC_LABEL_TFORM                 1359
00413 #define IDC_LABEL_FROM                  1360
00414 #define IDC_LABEL_TO                    1361
00415 #define IDC_LABEL_PLSQL1                1362
00416 #define IDC_LABEL_PLSQL2                1363
00417 #define IDC_LABEL_PLSQL3                1364
00418 #define IDC_LABEL_KEYWORDHELPFILE       1365
00419 #define IDC_SPIN_BACKUP_GENS            1366
00420 #define IDC_SPIN_AUTOBACKUP_INTERVAL    1367
00421 #define IDC_SPIN_nRulerHeight           1368
00422 #define IDC_CHECK_BACKUP_RETAINEXT      1369
00423 #define IDC_SPIN_LINENUM                1372
00424 #define IDC_LANEL_NOTE                  1373
00425 #define IDC_CHECK_RestoreCurPosition    1375
00426 #define IDC_STATIC_URL_CAPTION          1376
00427 #define IDC_STATIC_URL_UR               1379
00428 #define IDC_STATIC_URL_ORG              1380
00429 #define IDC_CHECK_AutoMIMEDecode        1381
00430 #define IDC_EDIT_MENUNAME               1382
00431 #define IDC_CHECK_RestoreBookmarks      1382
00432 #define IDC_BUTTON_TEMPCHANGE           1384
00433 #define IDC_STATIC_EOL                  1385
00434 #define IDC_BUTTON_JUMP                 1388
00435 #define IDC_CHECK_LCPOS                 1389
00436 #define IDC_SPIN_LCColNum               1390
00437 #define IDC_LABEL_LCPOS                 1391
00438 #define IDC_LABEL_LCPOS2                1392
00439 #define IDC_LABEL_LCPOS3                1393
00440 #define IDC_MACRO_REG                   1393
00441 #define IDC_COMBO_MACROID               1394
00442 #define IDC_BUTTON_TOP                  1394
00443 #define IDC_BUTTON_REGEX_TOP            1394
00444 #define IDC_BUTTON_REGEX_LAST           1395
00445 #define IDC_MACROLIST                   1396
00446 #define IDC_MACRONAME                   1397
00447 #define IDC_EDIT_ABOUT                  1398
00448 #define IDC_CHECK_SplitterWndVScroll    1399
00449 #define IDC_BUTTON_REGEX_UPD            1399
00450 #define IDC_CHK_WORD                    1400
00451 #define IDC_BUTTON_REGEX_DEL            1400
00452 #define IDC_CHECK_SameTabWidth          1400
00453 #define IDC_MACRODIR                    1401
00454 #define IDC_MACRODIRREF                 1402
00455 #define IDC_BUTTON_MENUNAME             1403
00456 #define IDC_EDIT_REGEX                  1404
00457 #define IDC_CHECK_REGEX                 1406
00458 #define IDC_LIST_REGEX                  1407
00459 #define IDC_COMBO_REGEX_COLOR           1408
00460 #define IDC_LABEL_REGEX_COLOR           1409
00461 #define IDC_LABEL_REGEX_KEYWORD         1410
00462 #define IDC_BUTTON_REGEX_UP             1411
00463 #define IDC_BUTTON_REGEX_DOWN           1412
00464 #define IDC_BUTTON_REGEX_ADD            1413
00465 #define IDC_BUTTON_REGEX_IMPORT         1414
00466 #define IDC_BUTTON_REGEX_EXPORT         1415
00467 #define IDC_FRAME_REGEX                 1416
00468 #define IDC_LABEL_REGEX_VERSION         1417
00469 #define IDC_CHECK_INS_SPACE             1417
00470 #define IDC_CHK_PASTE                   1418
00471 #define IDC_CHECK_SEARCHALL             1419
00472 #define IDC_EDIT_TYPEEXTHELP            1420
00473 #define IDC_EDIT_TYPEEXTHTMLHELP        1421
00474 #define IDC_BUTTON_TYPEOPENHELP         1422
00475 #define IDC_BUTTON_TYPEOPENEXTHTMLHELP  1423
00476 #define IDC_CHECK_TYPEHTMLHELPISSINGLE  1424
00477 #define IDC_CHECK_DispTabWndMultiWin    1425
00478 #define IDC_EDIT_OUTLINERULEFILE        1426
00479 #define IDC_BUTTON_RULEFILE_REF         1427
00480 #define IDC_EDIT_KINSOKUHEAD            1428
00481 #define IDC_STATIC_DIFF_SRC             1428
00482 #define IDC_EDIT_KINSOKUTAIL            1429
00483 #define IDC_EDIT_DIFF_DST               1429
00484 #define IDC_BUTTON_DIFF_DST             1430
00485 #define IDC_SPIN_FUNCKEYWND_GROUPNUM    1430
00486 #define IDC_CHECK_DIFF_OPT_CASE         1431
00487 #define IDC_EDIT_FUNCKEYWND_GROUPNUM    1431
00488 #define IDC_CHECK_DIFF_OPT_SPACE        1432
00489 #define IDC_CHECK_DIFF_OPT_SPCCHG       1433
00490 #define IDC_STATIC_nSortType            1433
00491 #define IDC_BTN_RELOAD                  1433
00492 #define IDC_CHECK_DIFF_OPT_BLINE        1434
00493 #define IDC_CHECK_DIFF_OPT_TABSPC       1435
00494 #define IDC_BTN_NOTIFYONLY              1435
00495 #define IDC_FRAME_DIFF_FILE12           1436
00496 #define IDC_LIST_DIFF_FILES             1437
00497 #define IDC_FILEUPDATEMSG               1437
00498 #define IDC_FRAME_DIFF_DST              1438
00499 #define IDC_LIST_CTRLCODE               1438
00500 #define IDC_BTN_NOSUPERVISION           1438
00501 #define IDC_BTN_CLOSE                   1439
00502 #define IDC_UPDATEDFILENAME             1440
00503 #define IDC_QUERYRELOADMSG              1441
00504 #define IDC_CHECK_FNAME                 1442
00505 #define IDC_BUTTON_FNAME_TOP            1446
00506 #define IDC_BUTTON_FNAME_UP             1447
00507 #define IDC_BUTTON_FNAME_DOWN           1448
00508 #define IDC_BUTTON_FNAME_LAST           1449
00509 #define IDC_BUTTON_FNAME_INS            1450
00510 #define IDC_BUTTON_FNAME_ADD            1451
00511 #define IDC_BUTTON_FNAME_UPD            1452
00512 #define IDC_BUTTON_FNAME_DEL            1453
00513 #define IDC_LIST_FNAME                  1454
00514 #define IDC_EDIT_FNAME_FROM             1455
00515 #define IDC_CHECK_TAB_ARROW             1456
00516 #define IDC_TAB_FAVORITE                1457
00517 #define IDC_LIST_FAVORITE_FILE          1458
00518 #define IDC_LIST_FAVORITE_FOLDER        1459
00519 #define IDC_LIST_FAVORITE_GREP_FILE     1460
00520 #define IDC_LIST_FAVORITE_GREP_FOLDER   1461
00521 #define IDC_LIST_FAVORITE_REPLACE       1462
00522 #define IDC_LIST_FAVORITE_SEARCH        1463
00523 #define IDC_LIST_FAVORITE_CMD           1464
00524 #define IDC_BUTTON_CLEAR                1465
00525 #define IDC_SLIDER_VIEW                 1466
00526 #define IDC_BUTTON_VIEW                 1467
00527 #define IDC_LIST_TAGJUMP                1468
00528 #define IDC_WINCAPTION_ACTIVE           1469
00529 #define IDC_WINCAPTION_INACTIVE         1470
00530 #define IDC_CHECK_HOKANBYFILE           1470
00531 #define IDC_BUTTON_TAG_MAKE_REF         1471
00532 #define IDC_TABWND_CAPTION              1471
00533 #define IDC_CHECK_TAG_MAKE_RECURSE      1472
00534 #define IDC_EDIT_TAG_MAKE_FOLDER        1473
00535 #define IDC_FRAME_SEARCH_MSG            1474
00536 #define IDC_CHECK_DIFF_EXEC_STATE       1475
00537 #define IDC_STATIC_FAVORITE_MSG         1476
00538 #define IDC_CHECK_REALTIMEVIEW          1477
00539 #define IDC_CHECK_BOM                   1478
00540 #define IDC_CHECK_GREPREALTIME          1479
00541 #define IDC_RADIO_WINSIZE_DEF           1480
00542 #define IDC_RADIO_WINSIZE_SAVE          1481
00543 #define IDC_RADIO_WINSIZE_SET           1482
00544 #define IDC_SPIN_WX                     1483
00545 #define IDC_SPIN_WY                     1484
00546 #define IDC_RADIO_WINPOS_DEF            1485
00547 #define IDC_RADIO_WINPOS_SAVE           1486
00548 #define IDC_RADIO_WINPOS_SET            1487
00549 #define IDC_SPIN_SX                     1488
00550 #define IDC_SPIN_SY                     1489
00551 #define IDC_COMBO_WINTYPE               1490
00552 #define IDC_BUTTON_WINSIZE              1491
00553 #define IDC_CHECK_QueryIfCodeChange     1492
00554 #define IDC_HOTKEY1                     1493
00555 #define IDC_CHECK_AlertIfFileNotExist   1493
00556 #define IDC_COMBO1                      1494
00557 #define IDC_BUTTON_KEYWORD_SELECT       1495
00558 #define IDC_COMBO2                      1495
00559 #define IDC_COMBO3                      1496
00560 #define IDC_STATIC_KEYWORD_COUNT        1496
00561 #define IDC_COMBO4                      1497
00562 #define IDC_BUTTON_KEYSETRENAME         1497
00563 #define IDC_COMBO5                      1498
00564 #define IDC_BUTTON_KEYCLEAN             1498
00565 #define IDC_COMBO6                      1499
00566 #define IDC_KEYWORD                     1499
00567 #define IDC_COMBO7                      1500
00568 #define IDC_STATIC_KEYWORD              1500
00569 #define IDC_COMBO8                      1501
00570 #define IDC_CHECK_ICASE                 1501
00571 #define IDC_COMBO9                      1502
00572 #define IDC_CHECK_ANYWHERE              1502
00573 #define IDC_COMBO10                     1503
00574 #define IDC_EDIT_BACKUPFILE             1504
00575 #define IDC_LABEL_BACKUP_HELP           1505
00576 #define IDC_CHECK_BACKUP_ADVANCED       1506
00577 #define IDC_RADIO_BACKUP_DATETYPE1A     1507
00578 #define IDC_RADIO_BACKUP_DATETYPE2A     1508
00579 #define IDC_LABEL_BACKUP_HELP2          1509
00580 #define IDC_STATIC_COLOR                1510
00581 #define IDC_BUTTON_SELALL               1511
00582 #define IDC_BUTTON_SELNOTING            1512
00583 #define IDC_LIST_ITEMINFO               1514
00584 #define IDC_CHECK_NoFilterSaveNew       1515
00585 #define IDC_CHECK_NoFilterSaveFile      1516
00586 #define IDC_CHECK_CLOSEALLCONFIRM       1517
00587 #define IDC_CHECK_ANTIALIAS             1518
00588 #define IDC_CHECK_RetainEmptyWindow     1518
00589 #define IDC_BUTTON_DIRECTPAGE           1519
00590 #define IDC_CHECK_CloseOneWin           1519
00591 #define IDC_CHECK_bCaretTextForSearch   1520
00592 #define IDC_CHECK_ChgWndByWheel         1521
00593 #define IDC_LABEL_REGEXP                1522
00594 #define IDC_EDIT_REGEXPLIB              1524
00595 #define IDC_LABEL_REGEXP_VER            1525
00596 #define IDC_RADIO_OUTPUT                1536
00597 #define IDC_RADIO_EDITWINDOW            1537
00598 #define IDC_CHECK_SENDSTDIN             1538
00599 #define IDD_PROP_TOOLBAR                1539
00600 #define IDC_CHECK_SortTabList           1540
00601 #define IDM_POPLAST                     4047
00602 #define IDS_AUTHOR_PAGE                 4054
00603 #define IDS_AUTHOR_MAIL                 4055
00604 #define IDS_ABOUT_DESCRIPTION           4056
00605 #define IDM_POPLAST2                    4064
00606 #define ID_IS4072                       4072
00607 #define IDD_PROPTYPESP1                 5101
00608 #define IDD_PROP_CUSTMENU               5103
00609 #define IDD_PROP_FORMAT                 5104
00610 #define IDD_PROP_HELPER                 5105
00611 #define IDD_PROP_COLOR                  5106
00612 #define IDD_PROP_KEYBIND                5107
00613 #define IDD_PROP_WIN                    5108
00614 #define IDD_PROP_EDIT                   5109
00615 #define IDD_PROP_TAB                    5110
00616 #define IDD_PROP_GREP                   5111
00617 #define IDD_PROP_BACKUP                 5112
00618 #define IDD_OPERATIONRUNNING            5113
00619 #define IDD_PROP_KEYBIND1               5114
00620 #define IDD_PROPTYPESP2                 5114
00621 #define IDD_DIFF                        5115
00622 #define IDD_CTRLCODE                    5116
00623 #define IDD_WINPOSSIZE                  5117
00624 #define IDD_PROP_KEYHELP                5119
00625 #define IDC_FRAME_KEYHELP               5120
00626 #define IDC_LIST_KEYHELP                5121
00627 #define IDC_LABEL_KEYHELP_KEYWORD       5122
00628 #define IDC_EDIT_KEYHELP                5123
00629 #define IDC_LABEL_KEYHELP_TITLE         5124
00630 #define IDC_COMBO_KEYHELP_COLOR         5125
00631 #define IDC_BUTTON_KEYHELP_INS          5126
00632 #define IDC_BUTTON_KEYHELP_ADD          5127
00633 #define IDC_BUTTON_KEYHELP_UPD          5128
00634 #define IDC_BUTTON_KEYHELP_DEL          5129
00635 #define IDC_BUTTON_KEYHELP_TOP          5130
00636 #define IDC_BUTTON_KEYHELP_UP           5131
00637 #define IDC_BUTTON_KEYHELP_DOWN         5132
00638 #define IDC_BUTTON_KEYHELP_LAST         5133
00639 #define IDC_BUTTON_KEYHELP_IMPORT       5134
00640 #define IDC_BUTTON_KEYHELP_EXPORT       5135
00641 #define IDC_LABEL_KEYHELP_ABOUT         5136
00642 #define IDC_CHECK_KEYHELP               5137
00643 #define IDC_CHECK_TYPE_KEYHELPUSE       5138
00644 #define IDC_LABEL_KEYHELP_PRIOR         5139
00645 #define IDC_BUTTON_KEYHELP_REF          5140
00646 #define IDC_CHECK_KEYHELP_ALLSEARCH     5141
00647 #define IDC_CHECK_KEYHELP_KEYDISP       5142
00648 #define IDC_CHECK_KEYHELP_PREFIX        5143
00649 #define IDC_STATIC                      -1
00650
00651 // Next default values for new objects
00652 //
00653 #ifdef APSTUDIO_INVOKED
00654 #ifndef APSTUDIO_READONLY_SYMBOLS
00655 #define _APS_NEXT_RESOURCE_VALUE        249
00656 #define _APS_NEXT_COMMAND_VALUE         4073
00657 #define _APS_NEXT_CONTROL_VALUE         1526
00658 #define _APS_NEXT_SYMED_VALUE           103
00659 #endif
00660 #endif
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: SakuraBasis.cpp

sakura_core » basis

SakuraBasis.cpp

#include "stdafx.h"
#include "SakuraBasis.h"

SakuraBasis.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: SakuraBasis.cpp ソースファイル

sakura_core » basis

SakuraBasis.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "SakuraBasis.h"
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: SakuraBasis.h

sakura_core » basis

SakuraBasis.h

#include <windows.h>
#include "CStrictRange.h"
#include "CStrictPoint.h"
#include "CStrictRect.h"

SakuraBasis.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | SLogicPoint
struct | SLayoutPoint

型定義

typedef int | CLogicInt
typedef int | CLayoutInt
typedef CStrictPoint
< SLogicPoint, CLogicInt > 		CLogicPoint
typedef CRangeBase< CLogicPoint > | CLogicRange
typedef CStrictRect< CLogicInt,
CLogicPoint > 		CLogicRect
typedef CStrictPoint
< SLayoutPoint, CLayoutInt > 		CLayoutPoint
typedef CRangeBase< CLayoutPoint > | CLayoutRange
typedef CStrictRect
< CLayoutInt, CLayoutPoint > 		CLayoutRect
typedef CRangeBase< CMyPoint > | SelectionRange

関数

template<class POINT_T>
void | TwoPointToRange (CRangeBase< POINT_T > *prangeDst, POINT_T pt1, POINT_T pt2)
template<class T, class INT_TYPE>
void | TwoPointToRect (CStrictRect< INT_TYPE, CStrictPoint< T, INT_TYPE > > *prcRect, CStrictPoint< T, INT_TYPE > pt1, CStrictPoint< T, INT_TYPE > pt2)
2点を対角とする矩形を求める

型定義

typedef int CLayoutInt

SakuraBasis.h の 41 行で定義されています。

typedef CStrictPoint<SLayoutPoint, CLayoutInt> CLayoutPoint

SakuraBasis.h の 63 行で定義されています。

typedef CRangeBase<CLayoutPoint> CLayoutRange

SakuraBasis.h の 64 行で定義されています。

typedef CStrictRect<CLayoutInt, CLayoutPoint> CLayoutRect

SakuraBasis.h の 65 行で定義されています。

typedef int CLogicInt

SakuraBasis.h の 38 行で定義されています。

typedef CStrictPoint<SLogicPoint, CLogicInt> CLogicPoint

SakuraBasis.h の 57 行で定義されています。

typedef CRangeBase<CLogicPoint> CLogicRange

SakuraBasis.h の 58 行で定義されています。

typedef CStrictRect<CLogicInt, CLogicPoint> CLogicRect

SakuraBasis.h の 59 行で定義されています。

typedef CRangeBase<CMyPoint> SelectionRange

SakuraBasis.h の 68 行で定義されています。

関数

template<class POINT_T>
void TwoPointToRange | ( | CRangeBase< POINT_T > * | prangeDst,
 |  | POINT_T | pt1,
 |  | POINT_T | pt2 |
 | ) |  |  | [inline]

SakuraBasis.h の 78 行で定義されています。

参照先 CMyRect::LowerRight(), CRangeBase< PointType >::SetFrom(), CRangeBase< PointType >::SetTo(), TwoPointToRect(), と CMyRect::UpperLeft().

参照元 CViewCommander::Command_INDENT(), CViewCommander::Command_LEFT(), と CViewCommander::Command_RIGHT().

template<class T, class INT_TYPE>
void TwoPointToRect | ( | CStrictRect< INT_TYPE, CStrictPoint< T, INT_TYPE > > * | prcRect,
 |  | CStrictPoint< T, INT_TYPE > | pt1,
 |  | CStrictPoint< T, INT_TYPE > | pt2 |
 | ) |  |  | [inline]

2点を対角とする矩形を求める

SakuraBasis.h の 93 行で定義されています。

参照先 CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetX2(), と CStrictPoint< SUPER, INT_TYPE, SUPER_INT_TYPE >::GetY2().

Sakura-Editorに対してSat Nov 17 20:27:30 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: SakuraBasis.h ソースファイル

sakura_core » basis

SakuraBasis.h

説明を見る。
00001 #pragma once
00002
00003 #include <windows.h> //POINT,LONG
00004
00005 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00006 //                      １次元型の定義                         //
00007 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008 //
00009 #ifdef USE_STRICT_INT
00010     // -- -- 厳格なintで単位型を定義 -- -- //
00011
00012     #include "CStrictInteger.h"
00013
00014     //ロジック単位
00015     typedef CStrictInteger <
00016         0,
00017         true,
00018         true,
00019         true,
00020         true
00021     >
00022     CLogicInt;
00023
00024     //レイアウト単位
00025     typedef CStrictInteger <
00026         1,
00027         true,
00028         true,
00029         false,
00030         true
00031     >
00032     CLayoutInt;
00033
00034 #else
00035     // -- -- 通常のintで単位型を定義
00036
00037     //ロジック単位
00038     typedef int CLogicInt;
00039
00040     //レイアウト単位
00041     typedef int CLayoutInt;
00042
00043 #endif
00044
00045
00046
00047 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00048 //                      ２次元型の定義                         //
00049 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00050 //
00051 #include "CStrictRange.h"
00052 #include "CStrictPoint.h"
00053 #include "CStrictRect.h"
00054
00055 //ロジック単位
00056 struct SLogicPoint{ CLogicInt x; CLogicInt y; }; //基底構造体
00057 typedef CStrictPoint<SLogicPoint, CLogicInt>    CLogicPoint;
00058 typedef CRangeBase<CLogicPoint>                 CLogicRange;
00059 typedef CStrictRect<CLogicInt, CLogicPoint>     CLogicRect;
00060
00061 //レイアウト単位
00062 struct SLayoutPoint{ CLayoutInt x; CLayoutInt y; }; //基底構造体
00063 typedef CStrictPoint<SLayoutPoint, CLayoutInt>  CLayoutPoint;
00064 typedef CRangeBase<CLayoutPoint>                CLayoutRange;
00065 typedef CStrictRect<CLayoutInt, CLayoutPoint>   CLayoutRect;
00066
00067 //ゆるい単位
00068 typedef CRangeBase<CMyPoint>     SelectionRange;
00069
00070
00071
00072 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00073 //                          ツール                             //
00074 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00075
00076 //変換関数
00077 template <class POINT_T>
00078 inline void TwoPointToRange(
00079     CRangeBase<POINT_T>* prangeDst,
00080     POINT_T pt1,
00081     POINT_T pt2
00082 )
00083 {
00084     CMyRect rc;
00085     TwoPointToRect(&rc,pt1,pt2);
00086     prangeDst->SetFrom(POINT_T(rc.UpperLeft()));
00087     prangeDst->SetTo(POINT_T(rc.LowerRight()));
00088 }
00089
00090
00092 template <class T, class INT_TYPE>
00093 inline void TwoPointToRect(
00094     CStrictRect<INT_TYPE, CStrictPoint<T,INT_TYPE> >*   prcRect,
00095     CStrictPoint<T,INT_TYPE>                            pt1,
00096     CStrictPoint<T,INT_TYPE>                            pt2
00097 )
00098 {
00099     if( pt1.y < pt2.y ){
00100         prcRect->top    = pt1.GetY2();
00101         prcRect->bottom = pt2.GetY2();
00102     }else{
00103         prcRect->top    = pt2.GetY2();
00104         prcRect->bottom = pt1.GetY2();
00105     }
00106     if( pt1.x < pt2.x ){
00107         prcRect->left   = pt1.GetX2();
00108         prcRect->right  = pt2.GetX2();
00109     }else{
00110         prcRect->left   = pt2.GetX2();
00111         prcRect->right  = pt1.GetX2();
00112     }
00113 }
00114
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: shell.cpp

sakura_core » util

shell.cpp

#include "stdafx.h"
#include "shell.h"
#include <HtmlHelp.h>
#include "util/string_ex2.h"
#include "util/file.h"
#include "util/os.h"
#include "util/module.h"
#include "COsVersionInfo.h"
#include "CShareData.h"
#include "CHtmlHelp.h"
#include <NewApis.h>
#include <shellapi.h>

shell.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | WANT_GETLONGPATHNAME_WRAPPER

関数

int CALLBACK | MYBrowseCallbackProc (HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
BOOL | SelectDir (HWND hWnd, const TCHAR *pszTitle, const TCHAR *pszInitFolder, TCHAR *strFolderName)
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)
void | ShowWinHelpContents (HWND hwnd, LPCTSTR lpszHelp)
DWORD | NetConnect (const TCHAR strNetWorkPass[])
HWND | OpenHtmlHelp (HWND hWnd, LPCTSTR szFile, UINT uCmd, DWORD_PTR data, bool msgflag)
BOOL | ResolveShortcutLink (HWND hwnd, LPCTSTR lpszLinkFile, LPTSTR lpszPath)
BOOL | MyWinHelp (HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData)

変数

static WNDPROC | s_pOldPropSheetWndProc
CHtmlHelp g_cHtmlHelp

マクロ定義

#define WANT_GETLONGPATHNAME_WRAPPER

shell.cpp の 11 行で定義されています。

関数

BOOL GetSpecialFolderPath | ( | int | nFolder,
 |  | LPTSTR | pszPath
 | ) |  |

特殊フォルダのパスを取得する SHGetSpecialFolderPath API（shell32.dll version 4.71以上が必要）と同等の処理をする

作者:
ryoji
日付:
2007.05.19 新規

shell.cpp の 79 行で定義されています。

参照先 BOOL, FALSE, と NULL.

参照元 CShareData::GetIniFileNameDirect().

int CALLBACK MYBrowseCallbackProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | LPARAM | lParam,
 |  | LPARAM | lpData
 | ) |  |

shell.cpp の 15 行で定義されています。

参照先 TRUE.

参照元 SelectDir().

int MyPropertySheet ( LPPROPSHEETHEADER lppsph )

独自拡張プロパティシート（共通設定／タイプ別設定画面用）

作者:
ryoji
日付:
2007.05.25 新規

shell.cpp の 245 行で定義されています。

参照先 CShareData::getInstance(), と PropSheetProc().

参照元 CPropTypes::DoPropertySheet().

BOOL MyWinHelp | ( | HWND | hwndCaller,
 |  | LPCTSTR | lpszHelp,
 |  | UINT | uCommand,
 |  | DWORD_PTR | dwData
 | ) |  |

WinHelp のかわりに HtmlHelp を呼び出す

作者:
ryoji
日付:
2006.07.22 ryoji 新規

shell.cpp の 448 行で定義されています。

参照先 DWORD_PTR, FALSE, IsFileExists(), NULL, OpenHtmlHelp(), と TRUE.

参照元 CViewCommander::Command_HELP_SEARCH(), CDlgInput1::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), OFNHookProc(), OFNHookProcMain(), CDlgWinSize::OnBnClicked(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::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(), CDialog::OnPopupHelp(), CEditApp::ShowFuncHelp(), と ShowWinHelpContents().

DWORD NetConnect ( const TCHAR strNetWorkPass[] )

shell.cpp の 286 行で定義されています。

参照先 NULL.

参照元 CControlTray::DispatchEvent(), と CEditWnd::OnCommand().

HWND OpenHtmlHelp | ( | HWND | hWnd,
 |  | LPCTSTR | szFile,
 |  | UINT | uCmd,
 |  | DWORD_PTR | data,
 |  | bool | msgflag
 | ) |  |

HTML Helpを開く HTML Helpが利用可能であれば引数をそのまま渡し、そうでなければメッセージを表示する。

戻り値:
開いたヘルプウィンドウのウィンドウハンドル。開けなかったときはNULL。
引数:
hWnd | [in] 呼び出し元ウィンドウのウィンドウハンドル
szFile | [in] HTML Helpのファイル名。不等号に続けてウィンドウタイプ名を指定可能。
uCmd | [in] HTML Help に渡すコマンド
data | [in] コマンドに応じたデータ
msgflag | [in] エラーメッセージを表示するか。省略時はtrue。

shell.cpp の 342 行で定義されています。

参照先 CHtmlHelp::HtmlHelp, CDllHandler::Init(), と NULL.

参照元 CViewCommander::Command_EXTHTMLHELP(), CControlTray::DispatchEvent(), と MyWinHelp().

static int CALLBACK PropSheetProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

独自拡張プロパティシートのコールバック関数

作者:
ryoji
日付:
2007.05.25 新規

shell.cpp の 227 行で定義されています。

参照先 FALSE, GWLP_WNDPROC, LONG_PTR, NULL, PropSheetWndProc(), s_pOldPropSheetWndProc, と SetWindowLongPtr.

参照元 MyPropertySheet().

static LRESULT CALLBACK PropSheetWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam |
 | ) |  |  | [static]

独自拡張プロパティシートのウィンドウプロシージャ

作者:
ryoji
日付:
2007.05.25 新規

shell.cpp の 112 行で定義されています。

参照先 _countof, _MAX_PATH, _tcstowcs(), FALSE, GetInidir(), CShareData::getInstance(), GetMonitorWorkRect(), CShareData::GetShareData(), GSTR_APPNAME, GWLP_WNDPROC, LONG_PTR, DLLSHAREDATA::m_szIMPORTFOLDER, MYMESSAGEBOX, NULL, s_pOldPropSheetWndProc, と SetWindowLongPtr.

参照元 PropSheetProc().

BOOL ResolveShortcutLink | ( | HWND | hwnd,
 |  | LPCTSTR | lpszLinkFile,
 |  | LPTSTR | lpszPath
 | ) |  |

shell.cpp の 371 行で定義されています。

参照先 _countof, _MAX_PATH, _tcstowcs(), BOOL, FALSE, NULL, と TRUE.

参照元 CEditWnd::OnDropFiles(), OnFolderProc(), と CCommandLine::ParseCommandLine().

BOOL SelectDir | ( | HWND | hWnd,
 |  | const TCHAR * | pszTitle,
 |  | const TCHAR * | pszInitFolder,
 |  | TCHAR * | strFolderName
 | ) |  |

shell.cpp の 35 行で定義されています。

参照先 _tcscpy(), BOOL, CutLastYenFromDirectoryPath(), FALSE, MYBrowseCallbackProc(), NULL, と TRUE.

参照元 CPropCommon::DispatchEvent_p10(), CPropCommon::DispatchEvent_PROP_BACKUP(), CDlgGrep::OnBnClicked(), と CDlgTagsMake::SelectFolder().

void ShowWinHelpContents | ( | HWND | hwnd,
 |  | LPCTSTR | lpszHelp
 | ) |  |

shell.cpp の 265 行で定義されています。

参照先 COsVersionInfo::HasWinHelpContentsProblem(), MyWinHelp(), と ULONG_PTR.

参照元 CViewCommander::Command_HELP_CONTENTS(), CControlTray::DispatchEvent(), と CEditWnd::OnCommand().

変数

CHtmlHelp g_cHtmlHelp

HTML Helpコンポーネントのアクセスを提供する。 内部で保持すべきデータは特になく、至る所から使われるのでGlobal変数にするが、 直接のアクセスはOpenHtmlHelp()関数のみから行う。 他のファイルからはCHtmlHelpクラスは隠されている。

shell.cpp の 333 行で定義されています。

WNDPROC s_pOldPropSheetWndProc [static]

shell.cpp の 106 行で定義されています。

参照元 PropSheetProc(), と PropSheetWndProc().

Sakura-Editorに対してSat Nov 17 20:27:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: shell.cpp ソースファイル

sakura_core » util

shell.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "shell.h"
00003 #include <HtmlHelp.h>
00004 #include "util/string_ex2.h"
00005 #include "util/file.h"
00006 #include "util/os.h"
00007 #include "util/module.h"
00008 #include "COsVersionInfo.h"
00009 #include "CShareData.h"
00010 #include "CHtmlHelp.h"
00011 #define WANT_GETLONGPATHNAME_WRAPPER
00012 #include <NewApis.h>
00013 #include <shellapi.h>
00014
00015 int CALLBACK MYBrowseCallbackProc(
00016     HWND hwnd,
00017     UINT uMsg,
00018     LPARAM lParam,
00019     LPARAM lpData
00020 )
00021 {
00022     switch( uMsg ){
00023     case BFFM_INITIALIZED:
00024         ::SendMessage( hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData );
00025         break;
00026     case BFFM_SELCHANGED:
00027         break;
00028     }
00029     return 0;
00030
00031 }
00032
00033
00034 /* フォルダ選択ダイアログ */
00035 BOOL SelectDir( HWND hWnd, const TCHAR* pszTitle, const TCHAR* pszInitFolder, TCHAR* strFolderName )
00036 {
00037     BOOL    bRes;
00038     TCHAR   szInitFolder[MAX_PATH];
00039
00040     _tcscpy( szInitFolder, pszInitFolder );
00041     /* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない*/
00042     CutLastYenFromDirectoryPath( szInitFolder );
00043
00044     // SHBrowseForFolder()関数に渡す構造体
00045     BROWSEINFO bi;
00046     bi.hwndOwner = hWnd;
00047     bi.pidlRoot = NULL;
00048     bi.pszDisplayName = strFolderName;
00049     bi.lpszTitle = pszTitle;
00050     bi.ulFlags = BIF_RETURNONLYFSDIRS/* | BIF_EDITBOX*//* | BIF_STATUSTEXT*/;
00051     bi.lpfn = MYBrowseCallbackProc;
00052     bi.lParam = (LPARAM)szInitFolder;
00053     bi.iImage = 0;
00054     // アイテムＩＤリストを返す
00055     // ITEMIDLISTはアイテムの一意を表す構造体
00056     ITEMIDLIST* pList = ::SHBrowseForFolder(&bi);
00057     if( NULL != pList ){
00058         // SHGetPathFromIDList()関数はアイテムＩＤリストの物理パスを探してくれる
00059         bRes = ::SHGetPathFromIDList( pList, strFolderName );
00060         // :SHBrowseForFolder()で取得したアイテムＩＤリストを削除
00061         ::CoTaskMemFree( pList );
00062         if( bRes ){
00063             return TRUE;
00064         }else{
00065             return FALSE;
00066         }
00067     }
00068     return FALSE;
00069 }
00070
00071
00072
00079 BOOL GetSpecialFolderPath( int nFolder, LPTSTR pszPath )
00080 {
00081     BOOL bRet = FALSE;
00082     HRESULT hres;
00083     LPMALLOC pMalloc;
00084     LPITEMIDLIST pidl;
00085
00086     hres = ::SHGetMalloc( &pMalloc );
00087     if( FAILED( hres ) )
00088         return FALSE;
00089
00090     hres = ::SHGetSpecialFolderLocation( NULL, nFolder, &pidl );
00091     if( SUCCEEDED( hres ) ){
00092         bRet = ::SHGetPathFromIDList( pidl, pszPath );
00093         pMalloc->Free( (void*)pidl );
00094     }
00095
00096     pMalloc->Release();
00097
00098     return bRet;
00099 }
00100
00101
00102
00104 // From Here 2007.05.25 ryoji 独自拡張のプロパティシート関数群
00105
00106 static WNDPROC s_pOldPropSheetWndProc;  // プロパティシートの元のウィンドウプロシージャ
00107
00112 static LRESULT CALLBACK PropSheetWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00113 {
00114     switch( uMsg ){
00115     case WM_SHOWWINDOW:
00116         // 追加ボタンの位置を調整する
00117         if( wParam ){
00118             HWND hwndBtn;
00119             RECT rcOk;
00120             RECT rcTab;
00121             POINT pt;
00122
00123             hwndBtn = ::GetDlgItem( hwnd, 0x02000 );
00124             ::GetWindowRect( ::GetDlgItem( hwnd, IDOK ), &rcOk );
00125             ::GetWindowRect( PropSheet_GetTabControl( hwnd ), &rcTab );
00126             pt.x = rcTab.left;
00127             pt.y = rcOk.top;
00128             ::ScreenToClient( hwnd, &pt );
00129             ::MoveWindow( hwndBtn, pt.x, pt.y, 140, rcOk.bottom - rcOk.top, FALSE );
00130         }
00131         break;
00132
00133     case WM_COMMAND:
00134         // 追加ボタンが押された時はその処理を行う
00135         if( HIWORD( wParam ) == BN_CLICKED && LOWORD( wParam ) == 0x02000 ){
00136             HWND hwndBtn = ::GetDlgItem( hwnd, 0x2000 );
00137             RECT rc;
00138             POINT pt;
00139
00140             // メニューを表示する
00141             ::GetWindowRect( hwndBtn, &rc );
00142             pt.x = rc.left;
00143             pt.y = rc.bottom;
00144             GetMonitorWorkRect( pt, &rc );  // モニタのワークエリア
00145
00146             HMENU hMenu = ::CreatePopupMenu();
00147             ::InsertMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, 100, _T("開く(&O)...") );
00148             ::InsertMenu( hMenu, 1, MF_BYPOSITION | MF_STRING, 101, _T("インポート／エクスポートの起点リセット(&R)") );
00149
00150             int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
00151                                         ( pt.x > rc.left )? pt.x: rc.left,
00152                                         ( pt.y < rc.bottom )? pt.y: rc.bottom,
00153                                         0, hwnd, NULL );
00154             ::DestroyMenu( hMenu );
00155
00156             // 選択されたメニューの処理
00157             switch( nId ){
00158             case 100:   // 設定フォルダを開く
00159                 TCHAR szPath[_MAX_PATH];
00160                 GetInidir( szPath );
00161
00162                 // フォルダの ITEMIDLIST を取得して ShellExecuteEx() で開く
00163                 // Note. MSDN の ShellExecute() の解説にある方法でフォルダを開こうとした場合、
00164                 //       フォルダと同じ場所に <フォルダ名>.exe があるとうまく動かない。
00165                 //       verbが"open"やNULLではexeのほうが実行され"explore"では失敗する
00166                 //       （フォルダ名の末尾に'\\'を付加してもWindows 2000では付加しないのと同じ動作になってしまう）
00167                 LPSHELLFOLDER pDesktopFolder;
00168                 if( SUCCEEDED(::SHGetDesktopFolder(&pDesktopFolder)) ){
00169                     LPMALLOC pMalloc;
00170                     if( SUCCEEDED(::SHGetMalloc(&pMalloc)) ){
00171                         LPITEMIDLIST pIDL;
00172                         WCHAR pwszDisplayName[_MAX_PATH];
00173                         _tcstowcs(pwszDisplayName, szPath, _countof(pwszDisplayName));
00174 //#ifdef _UNICODE
00175 //                      pwszDisplayName = szPath;
00176 //#else
00177 //                      WCHAR wszPath[_MAX_PATH];
00178 //                      ::MultiByteToWideChar( CP_ACP, 0, szPath, -1, wszPath, _MAX_PATH );
00179 //                      pwszDisplayName = wszPath;
00180 //#endif
00181                         if( SUCCEEDED(pDesktopFolder->ParseDisplayName(NULL, NULL, pwszDisplayName, NULL, &pIDL, NULL)) ){
00182                             SHELLEXECUTEINFO si;
00183                             ::ZeroMemory( &si, sizeof(si) );
00184                             si.cbSize   = sizeof(si);
00185                             si.fMask    = SEE_MASK_IDLIST;
00186                             si.lpVerb   = _T("open");
00187                             si.lpIDList = pIDL;
00188                             si.nShow    = SW_SHOWNORMAL;
00189                             ::ShellExecuteEx( &si );    // フォルダを開く
00190                             pMalloc->Free( (void*)pIDL );
00191                         }
00192                         pMalloc->Release();
00193                     }
00194                     pDesktopFolder->Release();
00195                 }
00196                 break;
00197             case 101:   // インポート／エクスポートの起点リセット（起点を設定フォルダにする）
00198                 int nMsgResult = MYMESSAGEBOX(
00199                     hwnd,
00200                     MB_OKCANCEL | MB_ICONINFORMATION,
00201                     GSTR_APPNAME,
00202                     _T("各種設定のインポート／エクスポート用ファイル選択画面の\n")
00203                     _T("初期表示フォルダを設定フォルダに戻します。")
00204                 );
00205                 if( IDOK == nMsgResult )
00206                 {
00207                     DLLSHAREDATA *pShareData = CShareData::getInstance()->GetShareData();
00208                     GetInidir( pShareData->m_szIMPORTFOLDER );
00209                 }
00210                 break;
00211             }
00212         }
00213         break;
00214
00215     case WM_DESTROY:
00216 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)s_pOldPropSheetWndProc );
00217         break;
00218     }
00219
00220     return ::CallWindowProc( (WNDPROC)s_pOldPropSheetWndProc, hwnd, uMsg, wParam, lParam );
00221 }
00222
00227 static int CALLBACK PropSheetProc( HWND hwndDlg, UINT uMsg, LPARAM lParam )
00228 {
00229     // プロパティシートの初期化時にボタン追加、プロパティシートのサブクラス化を行う
00230     if( uMsg == PSCB_INITIALIZED ){
00231         s_pOldPropSheetWndProc = (WNDPROC)::SetWindowLongPtr( hwndDlg, GWLP_WNDPROC, (LONG_PTR)PropSheetWndProc );
00232         HINSTANCE hInstance = (HINSTANCE)::GetModuleHandle( NULL );
00233         HWND hwndBtn = ::CreateWindowEx( 0, _T("BUTTON"), _T("設定フォルダ(&/) >>"), BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 0, 140, 20, hwndDlg, (HMENU)0x02000, hInstance, NULL );
00234         ::SendMessage( hwndBtn, WM_SETFONT, (WPARAM)::SendMessage( hwndDlg, WM_GETFONT, 0, 0 ), MAKELPARAM( FALSE, 0 ) );
00235         ::SetWindowPos( hwndBtn, ::GetDlgItem( hwndDlg, IDHELP), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
00236     }
00237     return 0;
00238 }
00239
00240
00245 int MyPropertySheet( LPPROPSHEETHEADER lppsph )
00246 {
00247     // 個人設定フォルダを使用するときは「設定フォルダ」ボタンを追加する
00248     if( CShareData::getInstance()->IsPrivateSettings() ){
00249         lppsph->dwFlags |= PSH_USECALLBACK;
00250         lppsph->pfnCallback = PropSheetProc;
00251     }
00252     return ::PropertySheet( lppsph );
00253 }
00254
00255
00256 // To Here 2007.05.25 ryoji 独自拡張のプロパティシート関数群
00258
00259
00260
00261
00262 /*  ヘルプの目次を表示
00263     目次タブを表示。問題があるバージョンでは、目次ページを表示。
00264 */
00265 void ShowWinHelpContents( HWND hwnd, LPCTSTR lpszHelp )
00266 {
00267     COsVersionInfo cOsVer;
00268     if ( cOsVer.HasWinHelpContentsProblem() ){
00269         /* 目次ページを表示する */
00270         MyWinHelp( hwnd, lpszHelp, HELP_CONTENTS , 0 ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00271         return;
00272     }
00273     /* 目次タブを表示する */
00274     MyWinHelp( hwnd, lpszHelp, HELP_COMMAND, (ULONG_PTR)"CONTENTS()" ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00275     return;
00276 }
00277
00278
00279
00280
00281
00282 // Stonee, 2001/12/21
00283 // NetWork上のリソースに接続するためのダイアログを出現させる
00284 // NO_ERROR:成功 ERROR_CANCELLED:キャンセル それ以外:失敗
00285 // プロジェクトの設定でリンクモジュールにMpr.libを追加のこと
00286 DWORD NetConnect ( const TCHAR strNetWorkPass[] )
00287 {
00288     //char sPassWord[] = "\0";  //パスワード
00289     //char sUser[] = "\0";      //ユーザー名
00290     DWORD dwRet;                //戻り値　エラーコードはWINERROR.Hを参照
00291     TCHAR sTemp[256];
00292     TCHAR sDrive[] = _T("");
00293     int i;
00294
00295     if (_tcslen(strNetWorkPass) < 3)    return ERROR_BAD_NET_NAME;  //UNCではない。
00296     if (strNetWorkPass[0] != _T('\\') && strNetWorkPass[1] != _T('\\')) return ERROR_BAD_NET_NAME;  //UNCではない。
00297
00298     //3文字目から数えて最初の\の直前までを切り出す
00299     sTemp[0] = _T('\\');
00300     sTemp[1] = _T('\\');
00301     for (i = 2; strNetWorkPass[i] != _T('\0'); i++) {
00302         if (strNetWorkPass[i] == _T('\\')) break;
00303         sTemp[i] = strNetWorkPass[i];
00304     }
00305     sTemp[i] = _T('\0');    //終端
00306
00307     //NETRESOURCE作成
00308     NETRESOURCE nr;
00309     ZeroMemory( &nr, sizeof( nr ) );
00310     nr.dwScope       = RESOURCE_GLOBALNET;
00311     nr.dwType        = RESOURCETYPE_DISK;
00312     nr.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
00313     nr.dwUsage       = RESOURCEUSAGE_CONNECTABLE;
00314     nr.lpLocalName   = sDrive;
00315     nr.lpRemoteName  = sTemp;
00316
00317     //ユーザー認証ダイアログを表示
00318     dwRet = WNetAddConnection3(0, &nr, NULL, NULL, CONNECT_UPDATE_PROFILE | CONNECT_INTERACTIVE);
00319
00320     return dwRet;
00321 }
00322
00323
00324
00325
00326 //  From Here Jun. 26, 2001 genta
00333 CHtmlHelp g_cHtmlHelp;
00334
00342 HWND OpenHtmlHelp(
00343     HWND        hWnd,
00344     LPCTSTR     szFile,
00345     UINT        uCmd,
00346     DWORD_PTR   data,
00347     bool        msgflag
00348 )
00349 {
00350     if( g_cHtmlHelp.Init() ){
00351         return g_cHtmlHelp.HtmlHelp( hWnd, szFile, uCmd, data );
00352     }
00353     if( msgflag ){
00354         ::MessageBox(
00355             hWnd,
00356             _T("HHCTRL.OCXが見つかりません。\r\n")
00357             _T("HTMLヘルプを利用するにはHHCTRL.OCXが必要です。\r\n"),
00358             _T("情報"),
00359             MB_OK | MB_ICONEXCLAMATION
00360         );
00361     }
00362     return NULL;
00363 }
00364
00365 //  To Here Jun. 26, 2001 genta
00366
00367
00368
00369
00370 /* ショートカット(.lnk)の解決 */
00371 BOOL ResolveShortcutLink( HWND hwnd, LPCTSTR lpszLinkFile, LPTSTR lpszPath )
00372 {
00373     BOOL            bRes;
00374     HRESULT         hRes;
00375     IShellLink*     pIShellLink;
00376     IPersistFile*   pIPersistFile;
00377     WIN32_FIND_DATA wfd;
00378     /* 初期化 */
00379     pIShellLink = NULL;
00380     pIPersistFile = NULL;
00381     *lpszPath = 0; // assume failure
00382     bRes = FALSE;
00383
00384     // COMライブラリの初期化
00385     hRes = ::CoInitialize( NULL );
00386     if( hRes == E_OUTOFMEMORY
00387      || hRes == E_INVALIDARG
00388      || hRes == E_UNEXPECTED
00389     ){
00390         return FALSE;
00391     }
00392
00393     // Get a pointer to the IShellLink interface.
00394 //  hRes = 0;
00395     if( SUCCEEDED( hRes = ::CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&pIShellLink ) ) ){
00396         // Get a pointer to the IPersistFile interface.
00397         if( SUCCEEDED(hRes = pIShellLink->QueryInterface( IID_IPersistFile, (void**)&pIPersistFile ) ) ){
00398             // Ensure that the string is Unicode.
00399             WCHAR wsz[MAX_PATH];
00400             _tcstowcs(wsz, lpszLinkFile, _countof(wsz));
00401 //          MultiByteToWideChar( CP_ACP, 0, lpszLinkFile, -1, wsz, MAX_PATH );
00402             // Load the shortcut.
00403             if( SUCCEEDED(hRes = pIPersistFile->Load( wsz, STGM_READ ) ) ){
00404                 // Resolve the link.
00405                 if( SUCCEEDED( hRes = pIShellLink->Resolve(hwnd, SLR_ANY_MATCH ) ) ){
00406                     // Get the path to the link target.
00407                     TCHAR szGotPath[MAX_PATH];
00408                     szGotPath[0] = _T('\0');
00409                     if( SUCCEEDED( hRes = pIShellLink->GetPath(szGotPath, MAX_PATH, &wfd, SLGP_SHORTPATH ) ) ){
00410                         // Get the description of the target.
00411                         TCHAR szDescription[MAX_PATH];
00412                         if( SUCCEEDED(hRes = pIShellLink->GetDescription(szDescription, MAX_PATH ) ) ){
00413                             if( _T('\0') != szGotPath[0] ){
00414                                 /* 正常終了 */
00415                                 _tcscpy_s( lpszPath, _MAX_PATH, szGotPath );
00416                                 bRes = TRUE;
00417                             }
00418                         }
00419                     }
00420                 }
00421             }
00422         }
00423     }
00424     // Release the pointer to the IPersistFile interface.
00425     if( NULL != pIPersistFile ){
00426         pIPersistFile->Release();
00427         pIPersistFile = NULL;
00428     }
00429     // Release the pointer to the IShellLink interface.
00430     if( NULL != pIShellLink ){
00431         pIShellLink->Release();
00432         pIShellLink = NULL;
00433     }
00434     // COMライブラリの後始末処理
00435     ::CoUninitialize();
00436     return bRes;
00437 }
00438
00439
00440
00441
00442
00448 BOOL MyWinHelp(HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData)
00449 {
00450     UINT uCommandOrg = uCommand;    // WinHelp のコマンド
00451     bool bDesktop = false;  // デスクトップを親にしてヘルプ画面を出すかどうか
00452     HH_POPUP hp;    // ポップアップヘルプ用の構造体
00453
00454     // Note: HH_TP_HELP_CONTEXTMENU や HELP_WM_HELP ではヘルプコンパイル時の
00455     // トピックファイルを Cshelp.txt 以外にしている場合、
00456     // そのファイル名を .chm パス名に追加指定する必要がある。
00457     //     例）sakura.chm::/xxx.txt
00458
00459     switch( uCommandOrg )
00460     {
00461     case HELP_COMMAND:  // [ヘルプ]-[目次]
00462     case HELP_CONTENTS:
00463         uCommand = HH_DISPLAY_TOC;
00464         hwndCaller = ::GetDesktopWindow();
00465         bDesktop = true;
00466         break;
00467     case HELP_KEY:  // [ヘルプ]-[キーワード検索]
00468         uCommand = HH_DISPLAY_INDEX;
00469         hwndCaller = ::GetDesktopWindow();
00470         bDesktop = true;
00471         break;
00472     case HELP_CONTEXT:  // メニュー上での[F1]キー／ダイアログの[ヘルプ]ボタン
00473         uCommand = HH_HELP_CONTEXT;
00474         hwndCaller = ::GetDesktopWindow();
00475         bDesktop = true;
00476         break;
00477     case HELP_CONTEXTMENU:  // コントロール上での右クリック
00478     case HELP_WM_HELP:      // [？]ボタンを押してコントロールをクリック／コントロールにフォーカスを置いて[F1]キー
00479         uCommand = HH_DISPLAY_TEXT_POPUP;
00480         {
00481             // ポップアップヘルプ用の構造体に値をセットする
00482             HWND hwndCtrl;  // ヘルプ表示対象のコントロール
00483             int nCtrlID;    // 対象コントロールの ID
00484             DWORD* pHelpIDs;    // コントロール ID とヘルプ ID の対応表へのポインタ
00485
00486             memset(&hp, 0, sizeof(hp)); // 構造体をゼロクリア
00487             hp.cbStruct = sizeof(hp);
00488             hp.pszFont = _T("ＭＳ Ｐゴシック, 9");
00489             hp.clrForeground = hp.clrBackground = -1;
00490             hp.rcMargins.left = hp.rcMargins.top = hp.rcMargins.right = hp.rcMargins.bottom = -1;
00491             if( uCommandOrg == HELP_CONTEXTMENU ){
00492                 // マウスカーソル位置から対象コントロールと表示位置を求める
00493                 if( !::GetCursorPos(&hp.pt) )
00494                     return FALSE;
00495                 hwndCtrl = ::WindowFromPoint(hp.pt);
00496             }
00497             else{
00498                 // 対象コントロールは hwndCaller
00499                 // [F1]キーの場合もあるので対象コントロールの位置から表示位置を決める
00500                 RECT rc;
00501                 hwndCtrl = hwndCaller;
00502                 if( !::GetWindowRect( hwndCtrl, &rc ) )
00503                     return FALSE;
00504                 hp.pt.x = (rc.left + rc.right) / 2;
00505                 hp.pt.y = rc.top;
00506             }
00507             // 対象コントロールに対応するヘルプ ID を探す
00508             nCtrlID = ::GetDlgCtrlID( hwndCtrl );
00509             if( nCtrlID <= 0 )
00510                 return FALSE;
00511             pHelpIDs = (DWORD*)dwData;
00512             while( true ){
00513                 if( *pHelpIDs == 0 )
00514                     return FALSE;   // 見つからなかった
00515                 if( *pHelpIDs == nCtrlID )
00516                     break;          // 見つかった
00517                 pHelpIDs += 2;
00518             }
00519             hp.idString = *(pHelpIDs + 1);  // 見つけたヘルプ ID を設定する
00520             dwData = (DWORD_PTR)&hp;    // 引数をポップアップヘルプ用の構造体に差し替える
00521         }
00522         break;
00523     default:
00524         return FALSE;
00525     }
00526
00527     if( IsFileExists( lpszHelp, true ) ){
00528         // HTML ヘルプを呼び出す
00529         HWND hWnd = OpenHtmlHelp( hwndCaller, lpszHelp, uCommand, dwData );
00530         if (bDesktop && hWnd != NULL){
00531             ::SetForegroundWindow( hWnd );  // ヘルプ画面を手前に出す
00532         }
00533     }
00534     else {
00535         if( uCommandOrg == HELP_CONTEXTMENU)
00536             return FALSE;   // 右クリックでは何もしないでおく
00537
00538         // オンラインヘルプを呼び出す
00539         if( uCommandOrg != HELP_CONTEXT )
00540             dwData = 1; // 目次ページ
00541
00542         TCHAR buf[256];
00543         _stprintf( buf, _T("http://sakura-editor.sourceforge.net/cgi-bin/hid.cgi?%d"), dwData );
00544         ShellExecute( ::GetActiveWindow(), NULL, buf, NULL, NULL, SW_SHOWNORMAL );
00545     }
00546
00547     return TRUE;
00548 }
00549
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: shell.h

sakura_core » util

shell.h

ソースコードを見る。

関数

BOOL | MyWinHelp (HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData)
SAKURA_CORE_API BOOL | SelectDir (HWND, const TCHAR *, const TCHAR *, TCHAR *)
SAKURA_CORE_API BOOL | ResolveShortcutLink (HWND hwnd, LPCTSTR lpszLinkFile, LPTSTR lpszPath)
SAKURA_CORE_API HWND | OpenHtmlHelp (HWND hWnd, LPCTSTR szFile, UINT uCmd, DWORD_PTR data, bool msgflag=true)
SAKURA_CORE_API DWORD | NetConnect (const TCHAR strNetWorkPass[])
SAKURA_CORE_API void | ShowWinHelpContents (HWND hwnd, LPCTSTR lpszHelp)
BOOL | GetSpecialFolderPath (int nFolder, LPTSTR pszPath)
int | MyPropertySheet (LPPROPSHEETHEADER lppsph)

関数

BOOL GetSpecialFolderPath | ( | int | nFolder,
 |  | LPTSTR | pszPath
 | ) |  |

特殊フォルダのパスを取得する SHGetSpecialFolderPath API（shell32.dll version 4.71以上が必要）と同等の処理をする

作者:
ryoji
日付:
2007.05.19 新規

shell.cpp の 79 行で定義されています。

参照先 BOOL, FALSE, と NULL.

参照元 CShareData::GetIniFileNameDirect().

int MyPropertySheet ( LPPROPSHEETHEADER lppsph )

独自拡張プロパティシート（共通設定／タイプ別設定画面用）

作者:
ryoji
日付:
2007.05.25 新規

shell.cpp の 245 行で定義されています。

参照先 CShareData::getInstance(), と PropSheetProc().

参照元 CPropTypes::DoPropertySheet().

BOOL MyWinHelp | ( | HWND | hwndCaller,
 |  | LPCTSTR | lpszHelp,
 |  | UINT | uCommand,
 |  | DWORD_PTR | dwData
 | ) |  |

WinHelp のかわりに HtmlHelp を呼び出す

作者:
ryoji
日付:
2006.07.22 ryoji 新規

shell.cpp の 448 行で定義されています。

参照先 DWORD_PTR, FALSE, IsFileExists(), NULL, OpenHtmlHelp(), と TRUE.

参照元 CViewCommander::Command_HELP_SEARCH(), CDlgInput1::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), OFNHookProc(), OFNHookProcMain(), CDlgWinSize::OnBnClicked(), CDlgTypeList::OnBnClicked(), CDlgTagsMake::OnBnClicked(), CDlgTagJumpList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::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(), CDialog::OnPopupHelp(), CEditApp::ShowFuncHelp(), と ShowWinHelpContents().

SAKURA_CORE_API DWORD NetConnect ( const TCHAR strNetWorkPass[] )

shell.cpp の 286 行で定義されています。

参照先 NULL.

参照元 CControlTray::DispatchEvent(), と CEditWnd::OnCommand().

SAKURA_CORE_API HWND OpenHtmlHelp | ( | HWND | hWnd,
 |  | LPCTSTR | szFile,
 |  | UINT | uCmd,
 |  | DWORD_PTR | data,
 |  | bool | msgflag
 | ) |  |

HTML Helpを開く HTML Helpが利用可能であれば引数をそのまま渡し、そうでなければメッセージを表示する。

戻り値:
開いたヘルプウィンドウのウィンドウハンドル。開けなかったときはNULL。
引数:
hWnd | [in] 呼び出し元ウィンドウのウィンドウハンドル
szFile | [in] HTML Helpのファイル名。不等号に続けてウィンドウタイプ名を指定可能。
uCmd | [in] HTML Help に渡すコマンド
data | [in] コマンドに応じたデータ
msgflag | [in] エラーメッセージを表示するか。省略時はtrue。

shell.cpp の 342 行で定義されています。

参照先 CHtmlHelp::HtmlHelp, CDllHandler::Init(), と NULL.

参照元 CViewCommander::Command_EXTHTMLHELP(), CControlTray::DispatchEvent(), と MyWinHelp().

SAKURA_CORE_API BOOL ResolveShortcutLink | ( | HWND | hwnd,
 |  | LPCTSTR | lpszLinkFile,
 |  | LPTSTR | lpszPath
 | ) |  |

shell.cpp の 371 行で定義されています。

参照先 _countof, _MAX_PATH, _tcstowcs(), BOOL, FALSE, NULL, と TRUE.

参照元 CEditWnd::OnDropFiles(), OnFolderProc(), と CCommandLine::ParseCommandLine().

SAKURA_CORE_API BOOL SelectDir | ( | HWND | ,
 |  | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | TCHAR * |
 | ) |  |

shell.cpp の 35 行で定義されています。

参照先 _tcscpy(), BOOL, CutLastYenFromDirectoryPath(), FALSE, MYBrowseCallbackProc(), NULL, と TRUE.

参照元 CPropCommon::DispatchEvent_p10(), CPropCommon::DispatchEvent_PROP_BACKUP(), CDlgGrep::OnBnClicked(), と CDlgTagsMake::SelectFolder().

SAKURA_CORE_API void ShowWinHelpContents | ( | HWND | hwnd,
 |  | LPCTSTR | lpszHelp
 | ) |  |

shell.cpp の 265 行で定義されています。

参照先 COsVersionInfo::HasWinHelpContentsProblem(), MyWinHelp(), と ULONG_PTR.

参照元 CViewCommander::Command_HELP_CONTENTS(), CControlTray::DispatchEvent(), と CEditWnd::OnCommand().

Sakura-Editorに対してSat Nov 17 20:27:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: shell.h ソースファイル

sakura_core » util

shell.h

説明を見る。
00001 // 2007.10.19 kobake
00002 // なんかシェルっぽい機能の関数群
00003
00004 #pragma once
00005
00006
00007 BOOL MyWinHelp(HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData); /* WinHelp のかわりに HtmlHelp を呼び出す */  // 2006.07.22 ryoji
00008
00009 /* Shell Interface系(?) */
00010 SAKURA_CORE_API BOOL SelectDir(HWND, const TCHAR*, const TCHAR*, TCHAR* );  /* フォルダ選択ダイアログ */
00011 SAKURA_CORE_API BOOL ResolveShortcutLink(HWND hwnd, LPCTSTR lpszLinkFile, LPTSTR lpszPath);/* ショートカット(.lnk)の解決 */
00012
00013 SAKURA_CORE_API HWND OpenHtmlHelp( HWND hWnd, LPCTSTR szFile, UINT uCmd, DWORD_PTR data,bool msgflag = true);
00014 SAKURA_CORE_API DWORD NetConnect ( const TCHAR strNetWorkPass[] );
00015
00016 /* ヘルプの目次を表示 */
00017 SAKURA_CORE_API void ShowWinHelpContents( HWND hwnd, LPCTSTR lpszHelp );
00018
00019 BOOL GetSpecialFolderPath( int nFolder, LPTSTR pszPath );   // 特殊フォルダのパスを取得する   // 2007.05.19 ryoji
00020
00021
00022
00023 int MyPropertySheet( LPPROPSHEETHEADER lppsph );    // 独自拡張プロパティシート // 2007.05.24 ryoji
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StaticType.h

sakura_core

StaticType.h

#include "Debug.h"

StaticType.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | StaticVector< ELEMENT_TYPE, MAX_SIZE, SET_TYPE >
ヒープを用いないvector [詳細]
class | StaticString< CHAR_TYPE, N_BUFFER_COUNT >
ヒープを用いない文字列クラス [詳細]

マクロ定義

#define | _countof2(s) s.BUFFER_COUNT

マクロ定義

#define _countof2 ( s ) s.BUFFER_COUNT

StaticType.h の 74 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_PROP_BACKUP(), CDlgGrep::GetData(), CDlgDiff::GetData(), CPropTypes::GetData_p1(), CPropTypes::GetData_p2(), CPropCommon::GetData_PROP_BACKUP(), CShareData::GetMacroFilename(), OnFolderProc(), CPropTypes::SetData_KeyHelp(), と CShareData::ShareData_IO_Types().

Sakura-Editorに対してSat Nov 17 20:27:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StaticType.h ソースファイル

sakura_core

StaticType.h

説明を見る。
00001 #pragma once
00002
00003 #include "Debug.h"
00004
00006 //2007.09.23 kobake 作成。
00007 template <class ELEMENT_TYPE, int MAX_SIZE, class SET_TYPE = const ELEMENT_TYPE&>
00008 class StaticVector{
00009 public:
00010     //型
00011     typedef ELEMENT_TYPE ElementType;
00012
00013 public:
00014     //属性
00015     int size() const{ return m_nCount; }
00016
00017     //要素アクセス
00018     ElementType&       operator[](int nIndex)      { assert(nIndex<MAX_SIZE); assert_warning(nIndex<m_nCount); return m_aElements[nIndex]; }
00019     const ElementType& operator[](int nIndex) const{ assert(nIndex<MAX_SIZE); assert_warning(nIndex<m_nCount); return m_aElements[nIndex]; }
00020
00021     //操作
00022     void clear(){ m_nCount=0; }
00023     void push_back(SET_TYPE e)
00024     {
00025         assert(m_nCount<MAX_SIZE);
00026         m_nCount++;
00027         m_aElements[m_nCount-1]=e;
00028     }
00029     void resize(int nNewSize)
00030     {
00031         assert(nNewSize < MAX_SIZE);
00032         m_nCount = nNewSize;
00033     }
00034
00035     //特殊
00036     int& _GetSizeRef(){ return m_nCount; }
00037
00038 private:
00039     int         m_nCount;
00040     ElementType m_aElements[MAX_SIZE];
00041 };
00042
00044 //2007.09.23 kobake 作成。
00045 template <class CHAR_TYPE, int N_BUFFER_COUNT>
00046 class StaticString{
00047 private:
00048     typedef StaticString<CHAR_TYPE,N_BUFFER_COUNT> Me;
00049 public:
00050     static const int BUFFER_COUNT = N_BUFFER_COUNT;
00051 public:
00052     //コンストラクタ・デストラクタ
00053     StaticString(){ m_szData[0]=0; }
00054     StaticString(const CHAR_TYPE* rhs){ auto_strcpy(m_szData,rhs); }
00055
00056     //クラス属性
00057     size_t GetBufferCount() const{ return N_BUFFER_COUNT; }
00058
00059     //データアクセス
00060     CHAR_TYPE*       GetBufferPointer()      { return m_szData; }
00061     const CHAR_TYPE* GetBufferPointer() const{ return m_szData; }
00062
00063     //簡易データアクセス
00064     operator       CHAR_TYPE*()      { return m_szData; }
00065     operator const CHAR_TYPE*() const{ return m_szData; }
00066
00067     //簡易コピー
00068     Me& operator = (const CHAR_TYPE* dst){ auto_strcpy_s(m_szData,_countof(m_szData),dst); return *this; }
00069
00070 private:
00071     CHAR_TYPE m_szData[N_BUFFER_COUNT];
00072 };
00073
00074 #define _countof2(s) s.BUFFER_COUNT
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: std_macro.h

sakura_core » util

std_macro.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | _countof(A) (sizeof(A)/sizeof(A[0]))
#define | __LTEXT(A) L##A
#define | LTEXT(A) __LTEXT(A)
#define | LCHAR(A) __LTEXT(A)
#define | ATEXT(A) A

関数

template<class T>
T | t_min (T t1, T t2)
template<class T>
T | t_max (T t1, T t2)
template<class T>
T | t_abs (T t)
template<class T>
void | t_swap (T &t1, T &t2)

マクロ定義

#define __LTEXT ( A ) L##A

std_macro.h の 64 行で定義されています。

#define _countof ( A ) (sizeof(A)/sizeof(A[0]))

std_macro.h の 52 行で定義されています。

参照元 CFuncKeyWnd::CalcButtonSize(), CDlgOpenFile::CDlgOpenFile(), CFuncKeyWnd::CFuncKeyWnd(), CPropCommon::ChangeDateExample(), CEditWnd::ChangeFileNameNotify(), CMenuDrawer::CMenuDrawer(), CViewCommander::Command_INS_DATE(), CViewCommander::Command_INS_TIME(), CViewCommander::Command_OPEN_CCPP(), CViewCommander::Command_OPEN_HHPP(), CViewCommander::Command_Reconvert(), CViewCommander::Command_SET_QUOTESTRING(), CViewCommander::Command_TAGJUMP(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagsMake(), CommonValueInfo::CommonValueInfo(), CPropTypes::CPropTypes(), CFuncKeyWnd::CreateButtons(), CWSHMacroManager::Creator(), CRecycledBufferDynamic::CRecycledBufferDynamic(), DBMSG_IMP(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p9(), CPropCommon::DispatchEvent_PROP_BACKUP(), CPropTypes::DispatchEvent_Regex(), CTextDrawer::DispEOF(), CCaret::DrawCaretPosInfo(), CTabWnd::DrawCloseBtn(), CMenuDrawer::DrawItem(), CTabWnd::DrawListBtn(), CPropCommon::DrawToolBarItemList(), CSMacroMgr::Exec(), CShareData::ExpandMetaToFolder(), CPropTypes::Export_Regex(), ApiWrap::ExtTextOutW_AnyBuild(), CDlgTagJumpList::find_key(), CEditDoc::FormatBackUpPath(), CDlgTagsMake::GetData(), CDlgTagJumpList::GetData(), CDlgReplace::GetData(), CDlgGrep::GetData(), CDlgFuncList::GetData(), CDlgFind::GetData(), CPropTypes::GetData_KeyHelp(), CPropTypes::GetData_p1(), CPropCommon::GetData_p10(), CPropCommon::GetData_p9(), CPropCommon::GetData_PROP_TAB(), CPropCommon::GetData_PROP_WIN(), CPropTypes::GetData_Regex(), CPrint::GetDefaultPrinter(), CShareData::GetIniFileNameDirect(), GetLineColm(), CEditWnd::GetRelatedIcon(), CClipboard::GetText(), CEditWnd::GetTooltipText(), CPropTypes::Import_Regex(), CPropCommon::InitDialog_PROP_Macro(), CShareData::InitKeyAssign(), CShareData::InitToolButtons(), CShareData::InitTypeConfig(), CEditView::ISearchExec(), CShareData::IsEditWnd(), IsFilePath(), CKeyMacroMgr::LoadKeyMacro(), main(), CEditDoc::MakeFuncList_python(), ApiWrap::MakeSureDirectoryPathExistsW(), CEditDoc::MakeTopicList_html(), CEditDoc::MakeTopicList_tex(), CEditDoc::MakeTopicList_wztxt(), CUtf7::MemBASE64_Encode(), CMigemo::migemo_load_w(), CMenuDrawer::MyAppendMenu(), OFNHookProc(), CDlgPrintSetting::OnBnClicked(), CDlgGrep::OnBnClicked(), CDlgAbout::OnBnClicked(), CFuncKeyWnd::OnCommand(), CEditWnd::OnCommand(), CFuncKeyWnd::OnDestroy(), CEditWnd::OnDropFiles(), CDlgAbout::OnInitDialog(), CMenuDrawer::OnMenuChar(), CTabWnd::OnMouseMove(), CEditWnd::OnMouseMove(), CEditView::OnMOUSEWHEEL(), CDlgCtrlCode::OnNotify(), CHokanMgr::OnSize(), CFuncKeyWnd::OnSize(), CDlgFuncList::OnSize(), CTabWnd::OnTabNotify(), CFuncKeyWnd::OnTimer(), CDlgTagJumpList::OnTimer(), CControlTray::OpenNewEditor(), StaticString< TCHAR, _MAX_PATH >::operator=(), CCommandLine::ParseCommandLine(), CPrint::PrintDlg(), CMainToolBar::ProcSearchBox(), PropSheetWndProc(), CEditDoc::ReadRuleFile(), CTabWnd::Refresh(), CDlgFavorite::RefreshListOne(), ResolveShortcutLink(), CDicMgr::Search(), CTabWnd::SeparateGroup(), CDlgTagsMake::SetData(), CDlgExec::SetData(), CDlgCtrlCode::SetData(), CPropTypes::SetData_p1(), CPropCommon::SetData_PROP_TAB(), CPropCommon::SetData_PROP_WIN(), CPropTypes::SetData_Regex(), CTextMetrics::SetHankakuDx(), CDlgFuncList::SetListVB(), CEditDoc::SetParentCaption(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_KeyBind(), CShareData::ShareData_IO_Types(), CEditView::SmartIndent_CPP(), CProcessFactory::StartControlProcess(), CTabWnd::TabListMenu(), CTabWnd::TabWindowNotify(), tchar_vsprintf_s_imp(), CControlTray::TrayMessage(), CUrlWnd::UrlWndProc(), CEditView::ViewDiffInfo(), CTextOutputStream::WriteF(), と CRecycledBufferDynamic::~CRecycledBufferDynamic().

#define ATEXT ( A ) A

std_macro.h の 69 行で定義されています。

#define LCHAR ( A ) __LTEXT(A)

std_macro.h の 66 行で定義されています。

#define LTEXT ( A ) __LTEXT(A)

std_macro.h の 65 行で定義されています。

参照元 CMacro::AddStringParam(), CFuncKeyWnd::CFuncKeyWnd(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_REPLACE(), CKeyBind::CreateKeyBindList(), CEditView::CreatePopUpMenu_R(), CPropCommon::DispatchEvent_p8(), CPropCommon::DrawToolBarItemList(), CFuncLookup::Funccode2Name(), CSMacroMgr::GetFuncInfoByID(), CSMacroMgr::GetFuncInfoByName(), CEditWnd::GetTooltipText(), CPropTypes::Import_KeyHelp(), CShareData::Init(), CShareData::IO_ColorSet(), CKeyMacroMgr::LoadKeyMacro(), CFuncKeyWnd::OnTimer(), CPropTypes::p3_Export_Colors(), CPropTypes::p3_Import_Colors(), CFuncLookup::Pos2FuncName(), CProfile::ReadOneline(), CMacro::Save(), CPropCommon::SetData_p8(), CShareData::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(), と CProfile::WriteProfile().

関数

template<class T>
T t_abs ( T t ) [inline]

std_macro.h の 28 行で定義されています。

参照元 CDocLineMgr::GetLineInfo(), CCaret::MoveCursor(), CEditView::ScrollAtH(), CEditView::ScrollAtV(), と CLayoutMgr::SearchLineByLayoutY().

template<class T>
T t_max | ( | T | t1,
 |  | T | t2 |
 | ) |  |  | [inline]

std_macro.h の 22 行で定義されています。

参照元 CTextDrawer::DispVerticalLines(), と MergeRect().

template<class T>
T t_min | ( | T | t1,
 |  | T | t2 |
 | ) |  |  | [inline]

std_macro.h の 16 行で定義されています。

参照元 MergeRect().

template<class T>
void t_swap | ( | T & | t1,
 |  | T & | t2 |
 | ) |  |  | [inline]

std_macro.h の 34 行で定義されています。

参照元 CViewCommander::Command_REPLACE_ALL(), と CViewSelect::DrawSelectAreaLine().

Sakura-Editorに対してSat Nov 17 20:27:31 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: std_macro.h ソースファイル

sakura_core » util

std_macro.h

説明を見る。
00001 //2007.10.18 kobake 作成
00002
00003 #pragma once
00004
00005 /*
00006     2007.10.18 kobake
00007     テンプレート式 min とか max とか。
00008
00009     どっかの標準ヘッダに、同じようなものがあった気がするけど、
00010     NOMINMAX を定義するにしても、なんだか min とか max とかいう名前だと、
00011     テンプレートを呼んでるんだかマクロを呼んでるんだか訳分かんないので、
00012     明示的に「t_〜」という名前を持つ関数を用意。
00013 */
00014
00015 template <class T>
00016 T t_min(T t1,T t2)
00017 {
00018     return t1<t2?t1:t2;
00019 }
00020
00021 template <class T>
00022 T t_max(T t1,T t2)
00023 {
00024     return t1>t2?t1:t2;
00025 }
00026
00027 template <class T>
00028 T t_abs(T t)
00029 {
00030     return t>=T(0)?t:T(-t);
00031 }
00032
00033 template <class T>
00034 void t_swap(T& t1, T& t2)
00035 {
00036     T tmp = t1;
00037     t1 = t2;
00038     t2 = tmp;
00039 }
00040
00041
00042
00043 /*
00044     2007.10.19 kobake
00045     _countofマクロ。_countofが使えない古いコンパイラ用。
00046
00047     ただし、他の場所でテンプレートごりごり使っているので、
00048     どっちにしろ古い環境でビルドは通らない予感。
00049 */
00050
00051 #ifndef _countof
00052 #define _countof(A) (sizeof(A)/sizeof(A[0]))
00053 #endif
00054
00055
00056
00057 /*
00058     2007.10.19 kobake
00059
00060     リテラル文字列種、明示指定マクロ
00061 */
00062
00063 //ビルド種に関係なく、UNICODE。
00064 #define __LTEXT(A) L##A
00065 #define LTEXT(A) __LTEXT(A)
00066 #define LCHAR(A) __LTEXT(A)
00067
00068 //ビルド種に関係なく、ANSI。
00069 #define ATEXT(A) A
00070
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdAfx.cpp

sakura_core

StdAfx.cpp

#include "stdafx.h"

StdAfx.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdAfx.cpp ソースファイル

sakura_core

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
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdAfx.h

sakura_core

StdAfx.h

#include "config/build_config.h"
#include "global.h"
#include <windows.h>
#include <stdlib.h>
#include <tchar.h>
#include "basis/primitive.h"
#include "util/std_macro.h"
#include "basis/CMyString.h"
#include "basis/CMyRect.h"
#include "basis/CMyPoint.h"
#include "basis/CMySize.h"
#include "basis/SakuraBasis.h"
#include "Debug2.h"
#include "Debug3.h"
#include "Debug.h"
#include "CNativeW.h"
#include "CNativeA.h"
#include "CNativeT.h"
#include <wchar.h>
#include "util/string_ex.h"
#include "apiwrap/StdControl.h"
#include "apiwrap/CommonControl.h"
#include "apiwrap/StdApi.h"
#include "util/tchar_convert.h"

ソースコードを見る。

マクロ定義

#define | AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_
#define | WIN32_LEAN_AND_MEAN
#define | sizeof_raw(V) sizeof(V)
#define | sizeof_type(V) sizeof(V)
#define | malloc_char (char*)malloc
#define | GlobalLockChar (char*)::GlobalLock
#define | GlobalLockUChar (unsigned char*)::GlobalLock
#define | GlobalLockWChar (wchar_t*)::GlobalLock
#define | GlobalLockBYTE (BYTE*)::GlobalLock

マクロ定義

#define AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_

StdAfx.h の 7 行で定義されています。

#define GlobalLockBYTE (BYTE*)::GlobalLock

StdAfx.h の 76 行で定義されています。

参照元 CClipboard::SetText().

#define GlobalLockChar (char*)::GlobalLock

StdAfx.h の 73 行で定義されています。

参照元 CClipboard::GetText(), と CDlgProperty::SetData().

#define GlobalLockUChar (unsigned char*)::GlobalLock

StdAfx.h の 74 行で定義されています。

#define GlobalLockWChar (wchar_t*)::GlobalLock

StdAfx.h の 75 行で定義されています。

参照元 CClipboard::GetText(), と CClipboard::SetText().

#define malloc_char (char*)malloc

StdAfx.h の 72 行で定義されています。

参照元 CMemory::AllocBuffer().

#define sizeof_raw ( V ) sizeof(V)

StdAfx.h の 46 行で定義されています。

参照元 CControlTray::DispatchEvent(), CPropTypes::DoPropertySheet(), CControlTray::OpenNewEditor(), CPropCommon::p5_Import_KeySetting(), CPropTypes::SelectColor(), CPropCommon::SelectColor(), CPropCommon::SetData_PROP_FILENAME(), CPropCommon::SetListViewItem_FILENAME(), と CControlTray::TrayMessage().

#define sizeof_type ( V ) sizeof(V)

StdAfx.h の 47 行で定義されています。

#define WIN32_LEAN_AND_MEAN

StdAfx.h の 15 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdAfx.h ソースファイル

sakura_core

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 //ビルドオプション的なヘッダ
00031 #include "config/build_config.h"
00032
00033 //グローバル
00034 #include "global.h"
00035
00036 //高頻度API等
00037 #include <windows.h>
00038 #include <stdlib.h>  // _MAX_PATH
00039 #include <tchar.h>
00040
00041 //シンプルでよく使うもの
00042 #include "basis/primitive.h"
00043 #include "util/std_macro.h"
00044
00045 //sizeof
00046 #define sizeof_raw(V)  sizeof(V)
00047 #define sizeof_type(V) sizeof(V)
00048
00049 //MFC互換
00050 #include "basis/CMyString.h"
00051 #include "basis/CMyRect.h"
00052 #include "basis/CMyPoint.h"
00053 #include "basis/CMySize.h"
00054
00055 //サクラエディタ固有型
00056 #include "basis/SakuraBasis.h"
00057
00058 //デバッグ
00059 #include "Debug2.h"
00060 #include "Debug3.h"
00061
00062 //よく使うヘッダ
00063 #include "Debug.h"
00064 #include "CNativeW.h"
00065 #include "CNativeA.h"
00066 #include "CNativeT.h"
00067 #include <wchar.h>
00068
00069 #include "util/string_ex.h"
00070
00071 //その他
00072 #define malloc_char (char*)malloc
00073 #define GlobalLockChar  (char*)::GlobalLock
00074 #define GlobalLockUChar (unsigned char*)::GlobalLock
00075 #define GlobalLockWChar (wchar_t*)::GlobalLock
00076 #define GlobalLockBYTE  (BYTE*)::GlobalLock
00077
00078 //APIラップ
00079 #include "apiwrap/StdControl.h"
00080 #include "apiwrap/CommonControl.h"
00081 #include "apiwrap/StdApi.h"
00082
00083 //TCHARユーティリティ
00084 #include "util/tchar_convert.h"
00085
00086
00087
00088 //{{AFX_INSERT_LOCATION}}
00089 // Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。
00090
00091 #endif // !defined(AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_)
00092
00093
00094 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdApi.cpp

sakura_core » apiwrap

StdApi.cpp

#include "stdafx.h"
#include "StdApi.h"
#include "charcode.h"
#include <vector>

StdApi.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | ApiWrap

マクロ定義

#define | DEBUG_SETPIXEL(hdc)

関数

static ACHAR * | CreateMbString (const WCHAR *pWideString, int nWideLength, int *pnMbLength)
static void | DestroyMbString (ACHAR *pMbString)
BOOL | ApiWrap::MakeSureDirectoryPathExistsW (LPCWSTR szDirPath)
BOOL | ApiWrap::ExtTextOutW_AnyBuild (HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc, LPCWSTR lpwString, UINT cbCount, const int *lpDx)
BOOL | ApiWrap::TextOutW_AnyBuild (HDC hdc, int nXStart, int nYStart, LPCWSTR lpwString, int cbString)
LPWSTR | ApiWrap::CharNextW_AnyBuild (LPCWSTR lpsz)
LPWSTR | ApiWrap::CharPrevW_AnyBuild (LPCWSTR lpszStart, LPCWSTR lpszCurrent)
BOOL | ApiWrap::GetTextExtentPoint32W_AnyBuild (HDC hdc, LPCWSTR lpString, int cbString, LPSIZE lpSize)
int | ApiWrap::LoadStringW_AnyBuild (HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int nBufferCount)

マクロ定義

#define DEBUG_SETPIXEL ( hdc )

StdApi.cpp の 13 行で定義されています。

参照元 ApiWrap::ExtTextOutW_AnyBuild(), と ApiWrap::TextOutW_AnyBuild().

関数

static ACHAR* CreateMbString | ( | const WCHAR * | pWideString,
 |  | int | nWideLength,
 |  | int * | pnMbLength |
 | ) |  |  | [static]

ワイド文字列からマルチバイト文字列を生成する。 マルチバイト文字列のために新しいメモリ領域が確保されるので、 使い終わったらDestroyMbStringを呼ぶこと！

戻り値:
変換されたACHAR文字列
引数:
pWideString | [in] 元のWCHAR文字列
nWideLength | [in] 元のWCHAR文字列の長さ。文字単位。
pnMbLength | [out] 変換されたACHAR文字列の長さの受け取り先。文字単位。

StdApi.cpp の 23 行で定義されています。

参照先 NULL.

参照元 ApiWrap::ExtTextOutW_AnyBuild(), と ApiWrap::TextOutW_AnyBuild().

static void DestroyMbString ( ACHAR * pMbString ) [static]

CreateMbString で確保したマルチバイト文字列を解放する

StdApi.cpp の 65 行で定義されています。

参照元 ApiWrap::ExtTextOutW_AnyBuild(), と ApiWrap::TextOutW_AnyBuild().

Sakura-Editorに対してSat Nov 17 20:27:32 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdApi.cpp ソースファイル

sakura_core » apiwrap

StdApi.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "StdApi.h"
00003 #include "charcode.h"
00004 #include <vector>
00005 using namespace std;
00006
00007 //デバッグ用。
00008 //VistaだとExtTextOutの結果が即反映されない。この関数を用いると即反映されるので、
00009 //デバッグ時ステップ実行する際に便利になる。ただし、当然重くなる。
00010 #ifdef _DEBUG
00011 #define DEBUG_SETPIXEL(hdc) SetPixel(hdc,-1,-1,0); //SetPixelをすると、結果が即反映される。
00012 #else
00013 #define DEBUG_SETPIXEL(hdc)
00014 #endif
00015
00023 static ACHAR* CreateMbString(
00024     const WCHAR*    pWideString,
00025     int             nWideLength,
00026     int*            pnMbLength
00027 )
00028 {
00029     //必要な領域サイズを取得
00030     int nNewLen=WideCharToMultiByte(
00031         CP_ACP,
00032         0,
00033         pWideString,
00034         nWideLength,
00035         NULL,
00036         0,
00037         NULL,
00038         NULL
00039     );
00040
00041     //領域を確保
00042     ACHAR* buf=new ACHAR[nNewLen+1];
00043
00044     //変換
00045     nNewLen = WideCharToMultiByte(
00046         CP_ACP,
00047         0,
00048         pWideString,
00049         nWideLength,
00050         buf,
00051         nNewLen,
00052         NULL,
00053         NULL
00054     );
00055     buf[nNewLen]='\0';
00056
00057     //結果
00058     if(pnMbLength)*pnMbLength=nNewLen;
00059     return buf;
00060 }
00061
00065 static void DestroyMbString(ACHAR* pMbString)
00066 {
00067     delete[] pMbString;
00068 }
00069
00070
00071
00072 namespace ApiWrap{
00073
00074
00075
00100     BOOL MakeSureDirectoryPathExistsW(LPCWSTR szDirPath)
00101     {
00102         const wchar_t* p=szDirPath-1;
00103         while(1){
00104             p=wcschr(p+1,L'\\');
00105             if(!p)break; //'\\'を走査し終わったので終了
00106
00107             //先頭からpまでの部分文字列 -> szBuf
00108             wchar_t szBuf[_MAX_PATH];
00109             wcsncpy_s(szBuf,_countof(szBuf),szDirPath,p-szDirPath);
00110             szBuf[p-szDirPath]=L'\0';
00111
00112             //存在するか
00113             int nAcc = _waccess(szBuf,0);
00114             if(nAcc==0)continue; //存在するなら、次へ
00115
00116             //ディレクトリ作成
00117             int nDir = _wmkdir(szBuf);
00118             if(nDir==-1)return FALSE; //エラーが発生したので、FALSEを返す
00119         }
00120         return TRUE;
00121     }
00122
00123
00124
00125
00126     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00127     //              W系描画API (ANSI版でも利用可能)                //
00128     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00129
00134     BOOL ExtTextOutW_AnyBuild(
00135         HDC             hdc,
00136         int             x,
00137         int             y,
00138         UINT            fuOptions,
00139         const RECT*     lprc,
00140         LPCWSTR         lpwString,
00141         UINT            cbCount,
00142         const int*      lpDx
00143     )
00144     {
00145         BOOL ret;
00146 #ifdef _UNICODE
00147         ret=::ExtTextOut(hdc,x,y,fuOptions,lprc,lpwString,cbCount,lpDx);
00148 #else
00149         if(lpwString==NULL || *lpwString==L'\0')return FALSE;
00150         if(cbCount>1024)return FALSE;
00151
00152         int nNewLength=0;
00153         //ANSI文字列を生成
00154         ACHAR* pNewString = CreateMbString(
00155             lpwString,
00156             cbCount==-1?wcslen(lpwString):cbCount,
00157             &nNewLength
00158         );
00159
00160         //文字間隔配列を生成
00161         int nHankakuDx;
00162         const int* lpDxNew=NULL;
00163         if(lpDx){
00164             if(WCODE::isHankaku(lpwString[0]))nHankakuDx=lpDx[0];
00165             else nHankakuDx=lpDx[0]/2;
00166             static int aDx[1024]={0}; //1024半角文字まで
00167             if(aDx[0]!=nHankakuDx){
00168                 for(int i=0;i<_countof(aDx);i++){
00169                     aDx[i]=nHankakuDx;
00170                 }
00171             }
00172             lpDxNew=aDx;
00173         }
00174
00175         //APIコール
00176         ret=::ExtTextOut(hdc,x,y,fuOptions,lprc,pNewString,nNewLength,lpDxNew);
00177
00178         //後始末
00179         DestroyMbString(pNewString);
00180 #endif
00181         DEBUG_SETPIXEL(hdc);
00182         return ret;
00183     }
00184
00185     BOOL TextOutW_AnyBuild(
00186         HDC     hdc,
00187         int     nXStart,
00188         int     nYStart,
00189         LPCWSTR lpwString,
00190         int     cbString
00191     )
00192     {
00193         BOOL ret;
00194 #ifdef _UNICODE
00195         ret=::TextOut(hdc,nXStart,nYStart,lpwString,cbString);
00196 #else
00197         int nNewLength=0;
00198         ACHAR* pNewString = CreateMbString(
00199             lpwString,
00200             cbString==-1?wcslen(lpwString):cbString,
00201             &nNewLength
00202         );
00203         ret=::TextOut(hdc,nXStart,nYStart,pNewString,nNewLength);
00204         DestroyMbString(pNewString);
00205 #endif
00206         DEBUG_SETPIXEL(hdc);
00207         return ret;
00208     }
00209
00210     LPWSTR CharNextW_AnyBuild(
00211         LPCWSTR lpsz
00212     )
00213     {
00214         //$$ サロゲートペア無視
00215         if(*lpsz)return const_cast<LPWSTR>(lpsz+1);
00216         else return const_cast<LPWSTR>(lpsz);
00217     }
00218
00219     LPWSTR CharPrevW_AnyBuild(
00220         LPCWSTR lpszStart,
00221         LPCWSTR lpszCurrent
00222     )
00223     {
00224         //$$ サロゲートペア無視
00225         if(lpszCurrent>lpszStart)return const_cast<LPWSTR>(lpszCurrent-1);
00226         else return const_cast<LPWSTR>(lpszStart);
00227     }
00228
00229 #if 1
00230     BOOL GetTextExtentPoint32W_AnyBuild(
00231         HDC     hdc,
00232         LPCWSTR lpString,
00233         int     cbString,
00234         LPSIZE  lpSize
00235     )
00236     {
00237         vector<char> buf;
00238         wcstombs_vector(lpString,cbString,&buf);
00239         return GetTextExtentPoint32A(
00240             hdc,
00241             &buf[0],
00242             buf.size()-1,
00243             lpSize
00244         );
00245     }
00246 #endif
00247
00248     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00249     //             その他W系API (ANSI版でも利用可能)               //
00250     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00251
00252     int LoadStringW_AnyBuild(
00253         HINSTANCE   hInstance,
00254         UINT        uID,
00255         LPWSTR      lpBuffer,
00256         int         nBufferCount
00257     )
00258     {
00259 #ifdef _UNICODE
00260         return ::LoadStringW(hInstance, uID, lpBuffer, nBufferCount);
00261 #else
00262         //まずはACHARでロード
00263         int nTmpCnt = nBufferCount*2+2;
00264         ACHAR* pTmp = new ACHAR[nTmpCnt];
00265         int ret=LoadStringA(hInstance, uID, pTmp, nTmpCnt);
00266
00267         //WCHARに変換
00268         mbstowcs2(lpBuffer, pTmp, nBufferCount);
00269         int ret2=wcslen(lpBuffer);
00270
00271         //後始末
00272         delete[] pTmp;
00273
00274         //結果
00275         return ret2;
00276 #endif
00277     }
00278
00279 }
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdApi.h

sakura_core » apiwrap

StdApi.h

#include <imagehlp.h>

StdApi.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | ApiWrap

マクロ定義

#define | MakeSureDirectoryPathExistsT MakeSureDirectoryPathExists
#define | SendMessageAny SendMessage
#define | SendMessageCmd SendMessage
#define | PostMessageAny PostMessage
#define | PostMessageCmd PostMessage
#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 | DWLP_MSGRESULT DWL_MSGRESULT
#define | COLOR_MENUHILIGHT 29
#define | COLOR_MENUBAR 30

関数

BOOL | ApiWrap::MakeSureDirectoryPathExistsW (LPCWSTR szDirPath)
BOOL | ApiWrap::ExtTextOutW_AnyBuild (HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc, LPCWSTR lpwString, UINT cbCount, const int *lpDx)
BOOL | ApiWrap::TextOutW_AnyBuild (HDC hdc, int nXStart, int nYStart, LPCWSTR lpwString, int cbString)
LPWSTR | ApiWrap::CharNextW_AnyBuild (LPCWSTR lpsz)
LPWSTR | ApiWrap::CharPrevW_AnyBuild (LPCWSTR lpszStart, LPCWSTR lpszCurrent)
BOOL | ApiWrap::GetTextExtentPoint32W_AnyBuild (HDC hdc, LPCWSTR lpString, int cbString, LPSIZE lpSize)
int | ApiWrap::LoadStringW_AnyBuild (HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int nBufferCount)
UINT | ApiWrap::ExtTextOutOption ()
よく使うExtTextOutW_AnyBuildのオプション
bool | ApiWrap::GetKeyState_Shift ()
SHIFTを押しているかどうか
bool | ApiWrap::GetKeyState_Control ()
CTRLを押しているかどうか
bool | ApiWrap::GetKeyState_Alt ()
ALTを押しているかどうか

変数

static const size_t | ApiWrap::sizeof_old_PROPSHEETHEADER = 40
static const int | ApiWrap::SIZEOF_MENUITEMINFO = 44

マクロ定義

#define COLOR_MENUBAR 30

StdApi.h の 199 行で定義されています。

参照元 CEditWnd::PrintMenubarMessage().

#define COLOR_MENUHILIGHT 29

StdApi.h の 196 行で定義されています。

#define DWLP_MSGRESULT DWL_MSGRESULT

StdApi.h の 191 行で定義されています。

参照元 OFNHookProc().

#define DWLP_USER DWL_USER

StdApi.h の 179 行で定義されています。

参照元 CDlgDebug_Proc(), CDlgInput1Proc(), CDlgInput1::DispatchEvent(), CDlgDebug::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), HokanList_SubclassProc(), MyDialogProc(), OFNHookProc(), CDialog::OnInitDialog(), CPrintPreview::PrintPreviewBar_DlgProc(), CPropTypes::PropTypesKeyHelp(), PropTypesP1Proc(), PropTypesP2Proc(), PropTypesP3_newProc(), と CPropTypes::PropTypesRegex().

#define DWORD_PTR DWORD

StdApi.h の 158 行で定義されています。

参照元 ActivateFrameWindow(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CControlTray::DispatchEvent(), MyWinHelp(), CTabWnd::SeparateGroup(), と CTabWnd::ShowHideWindow().

#define GetWindowLongPtr GetWindowLong

StdApi.h の 176 行で定義されています。

参照元 CEditWnd::_AdjustInMonitor(), CShareData::AddEditWndList(), CWindowCreationHook::CBTProc(), CDlgDebug_Proc(), CDlgInput1Proc(), CEditAppWndProc(), CEditWndProc(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CViewCommander::Command_BIND_WINDOW(), CViewCommander::Command_SHOWTAB(), CFuncKeyWnd::CreateButtons(), CWndProc(), CEditWnd::DispatchEvent(), CSplitterWnd::DoSplit(), EditViewTimerProc(), EditViewWndProc(), HokanList_SubclassProc(), CEditWnd::InitMenu(), IsFuncChecked(), CTabWnd::LayoutTab(), MyDialogProc(), MyGetAncestor(), CDlgGrep::OnInitDialog(), CSplitterWnd::OnSize(), CTabWnd::Open(), CPrintPreview::PrintPreviewBar_DlgProc(), CPropTypes::PropTypesKeyHelp(), PropTypesP1Proc(), PropTypesP2Proc(), PropTypesP3_newProc(), CPropTypes::PropTypesRegex(), CTabWnd::SeparateGroup(), TabWndProc(), CUrlWnd::UrlWndProc(), と CEditWnd::WindowTopMost().

#define GWLP_HINSTANCE GWL_HINSTANCE

StdApi.h の 188 行で定義されています。

参照元 CFuncKeyWnd::CreateButtons().

#define GWLP_USERDATA GWL_USERDATA

StdApi.h の 185 行で定義されています。

参照元 CWindowCreationHook::CBTProc(), CEditAppWndProc(), CEditWndProc(), CTabWnd::Close(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CEditWnd::Create(), CWndProc(), CControlTray::DispatchEvent(), IsFuncChecked(), CDlgSameColor::OnInitDialog(), CTabWnd::Open(), CUrlWnd::SubclassWindow(), TabWndProc(), CUrlWnd::UrlWndProc(), と CWnd::~CWnd().

#define GWLP_WNDPROC GWL_WNDPROC

StdApi.h の 182 行で定義されています。

参照元 CWindowCreationHook::CBTProc(), CTabWnd::Close(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CMainToolBar::CreateToolBar(), CPropTypes::DispatchEvent_p3_new(), CHokanMgr::DoModeless(), OFNHookProc(), CDlgSameColor::OnInitDialog(), CDlgGrep::OnInitDialog(), CTabWnd::Open(), PropSheetProc(), PropSheetWndProc(), CUrlWnd::SubclassWindow(), ToolBarWndProc(), と CUrlWnd::UrlWndProc().

#define INT_PTR INT

StdApi.h の 170 行で定義されています。

参照元 CMainToolBar::CreateToolBar(), CDlgSameColor::DispatchEvent(), と CDlgAbout::DispatchEvent().

#define LONG_PTR LONG

StdApi.h の 164 行で定義されています。

参照元 CShareData::AddEditWndList(), CWindowCreationHook::CBTProc(), CTabWnd::Close(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CEditWnd::Create(), CEditView::Create(), CMainToolBar::CreateToolBar(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_p3_new(), CHokanMgr::DoModeless(), OFNHookProc(), CDlgSameColor::OnInitDialog(), CTabWnd::Open(), PropSheetProc(), PropSheetWndProc(), CUrlWnd::SubclassWindow(), ToolBarWndProc(), CUrlWnd::UrlWndProc(), と CWnd::~CWnd().

#define MakeSureDirectoryPathExistsT MakeSureDirectoryPathExists

StdApi.h の 15 行で定義されています。

参照元 CShareData::GetIniFileName().

#define PostMessageAny PostMessage

StdApi.h の 143 行で定義されています。

参照元 CViewCommander::Command_COMPARE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_WINCLOSE(), CControlTray::CreatePopUpMenu_L(), CControlTray::CreatePopUpMenu_R(), CEditWnd::DispatchEvent(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CLayoutMgr::DoLayout(), CSplitterWnd::DoSplit(), HokanList_SubclassProc(), CNormalProcess::Initialize(), OFNHookProc(), CSplitBoxWnd::OnLButtonDblClk(), CTabWnd::OnLButtonUp(), CSplitBoxWnd::OnLButtonUp(), CPrintPreview::OnMouseWheel(), CEditWnd::OnSysMenuTimer(), CMainToolBar::OnToolbarTimer(), CEditWnd::OpenDocumentWhenCreate(), CDocLineMgr::ReadFile(), CTabWnd::Refresh(), CControlTray::TerminateApplication(), と CDocLineMgr::WriteFile().

#define PostMessageCmd PostMessage

StdApi.h の 146 行で定義されています。

参照元 CViewCommander::Command_MENU_ALLFUNC(), CViewCommander::Command_MENU_RBUTTON(), CTabWnd::ExecTabCommand(), CViewCommander::HandleCommand(), CEditView::OnMBUTTONDOWN(), CEditView::OnRBUTTONUP(), CEditView::OnXLBUTTONDOWN(), CEditView::OnXRBUTTONDOWN(), と CPropCommon::SetData_PROP_TOOLBAR().

#define SendMessageAny SendMessage

StdApi.h の 137 行で定義されています。

参照元 CMainToolBar::AcceptSharedSearchKey(), CPropCommon::CheckListPosition_Macro(), ColorList_SubclassProc(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CViewCommander::Command_COMPARE(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TAGJUMPBACK(), CFuncKeyWnd::CreateButtons(), CEditWnd::CreateFileDropDownMenu(), CControlTray::CreatePopUpMenu_L(), CMainToolBar::CreateToolBar(), CEditView::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_p1(), CPropTypes::DispatchEvent_p3_new(), CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p7(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropTypes::DispatchEvent_Regex(), CHokanMgr::DoHokan(), CEditWnd::EndLayoutBars(), CDlgWinSize::GetData(), CDlgPrintSetting::GetData(), CDlgKeywordSelect::GetData(), CDlgGrep::GetData(), CDlgDiff::GetData(), CDlgCompare::GetData(), CPropTypes::GetData_p1(), CPropCommon::GetData_p1(), CPropTypes::GetData_p3_new(), CPropCommon::GetData_PROP_TOOLBAR(), CPropCommon::InitDialog_PROP_Macro(), CNormalProcess::Initialize(), CShareData::IsPathOpened(), CEditView::MakeDiffTmpFile(), OFNHookProc(), CDlgTypeList::OnBnClicked(), CDlgSameColor::OnBnClicked(), CDlgReplace::OnBnClicked(), CDlgPrintSetting::OnBnClicked(), CDlgFind::OnBnClicked(), CDlgDiff::OnBnClicked(), CDlgJump::OnCbnSelChange(), CDlgFuncList::OnCbnSelChange(), CDlgPrintSetting::OnChangeSettingType(), CEditWnd::OnDropFiles(), CDlgDiff::OnEditChange(), CDlgWinSize::OnInitDialog(), CDlgTagJumpList::OnInitDialog(), CDlgSameColor::OnInitDialog(), CDlgReplace::OnInitDialog(), CDlgPrintSetting::OnInitDialog(), CDlgGrep::OnInitDialog(), CDlgFuncList::OnInitDialog(), CDlgFavorite::OnInitDialog(), CDlgCancel::OnInitDialog(), CDlgAbout::OnInitDialog(), CDlgFuncList::OnJump(), CDlgTypeList::OnLbnDblclk(), CEditWnd::OnMouseMove(), CDlgFuncList::OnNotify(), CDlgSameColor::OnSelChangeListColors(), CEditWnd::OnSize(), CTabWnd::OnTimer(), CTabWnd::Open(), CEditDoc::OpenPropertySheet(), CEditDoc::OpenPropertySheetTypes(), CTabWnd::Refresh(), CDocLineMgr::ReplaceData(), CShareData::RequestCloseAllEditor(), CFuncLookup::SetCategory2Combo(), CDlgWinSize::SetData(), CDlgTypeList::SetData(), CDlgTagJumpList::SetData(), CDlgPrintSetting::SetData(), CDlgKeywordSelect::SetData(), CDlgJump::SetData(), CDlgGrep::SetData(), CDlgFuncList::SetData(), CDlgFind::SetData(), CDlgExec::SetData(), CDlgDiff::SetData(), CDlgCtrlCode::SetData(), CDlgCompare::SetData(), CPropTypes::SetData_KeyHelp(), CPropTypes::SetData_p1(), CPropCommon::SetData_p1(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p5(), CPropCommon::SetData_p7(), CPropCommon::SetData_p7_KeyWordSet(), CPropCommon::SetData_p8(), CPropCommon::SetData_PROP_TOOLBAR(), CPropTypes::SetData_Regex(), CFuncLookup::SetListItem(), CPropCommon::SetMacro2List_Macro(), CEditWnd::SetWindowIcon(), CHokanMgr::ShowTip(), CUrlWnd::SubclassWindow(), CTabWnd::TabWindowNotify(), CEditView::TagJumpSub(), CUrlWnd::UrlWndProc(), と CEditWnd::WinListMenu().

#define SendMessageCmd SendMessage

StdApi.h の 140 行で定義されています。

参照元 ColorList_SubclassProc(), CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_p5(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), EditViewWndProc(), CFuncKeyWnd::OnCommand(), CTabWnd::OnLButtonDblClk(), CEditWnd::OnLButtonDblClk(), CEditView::OnLBUTTONDBLCLK(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), CEditWnd::PopupWinList(), と CPropTypes::SetData_p3_new().

#define SetWindowLongPtr SetWindowLong

StdApi.h の 173 行で定義されています。

参照元 CShareData::AddEditWndList(), CWindowCreationHook::CBTProc(), CTabWnd::Close(), CDlgSameColor::ColorList_SubclassProc(), CDlgSameColor::ColorStatic_SubclassProc(), CEditWnd::Create(), CMainToolBar::CreateToolBar(), CEditView::DispatchEvent(), CDlgInput1::DispatchEvent(), CDlgDebug::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), CHokanMgr::DoModeless(), CTabWnd::LayoutTab(), OFNHookProc(), CDlgSameColor::OnInitDialog(), CDlgGrep::OnInitDialog(), CDialog::OnInitDialog(), CTabWnd::Open(), CPrintPreview::PrintPreviewBar_DlgProc(), PropSheetProc(), PropSheetWndProc(), CUrlWnd::SubclassWindow(), ToolBarWndProc(), CUrlWnd::UrlWndProc(), と CWnd::~CWnd().

#define UINT_PTR UINT

StdApi.h の 167 行で定義されています。

#define ULONG_PTR ULONG

StdApi.h の 161 行で定義されています。

参照元 CViewCommander::Command_EXTHELP1(), CViewCommander::Command_HELP_SEARCH(), CDlgInput1::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_KeyHelp(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::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_TAB(), CPropCommon::DispatchEvent_PROP_TOOLBAR(), CPropCommon::DispatchEvent_PROP_WIN(), CPropTypes::DispatchEvent_Regex(), CMenuDrawer::MyAppendMenu(), OFNHookProc(), CEditWnd::OnCommand(), CDialog::OnContextMenu(), CDialog::OnPopupHelp(), と ShowWinHelpContents().

Sakura-Editorに対してSat Nov 17 20:27:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdApi.h ソースファイル

sakura_core » apiwrap

StdApi.h

説明を見る。
00001 #pragma once
00002
00003 #include <imagehlp.h> //MakeSureDirectoryPathExists
00004
00005 namespace ApiWrap
00006 {
00007     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00008     //          W系が存在しないAPIのための、新しい関数定義         //
00009     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010     //W版が無いので、自作
00011     BOOL MakeSureDirectoryPathExistsW(LPCWSTR wszDirPath);
00012 #ifdef _UNICODE
00013     #define MakeSureDirectoryPathExistsT MakeSureDirectoryPathExistsW
00014 #else
00015     #define MakeSureDirectoryPathExistsT MakeSureDirectoryPathExists
00016 #endif
00017
00018
00019     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00020     //              W系描画API (ANSI版でも利用可能)                //
00021     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00022
00023     BOOL ExtTextOutW_AnyBuild(
00024         HDC             hdc,
00025         int             x,
00026         int             y,
00027         UINT            fuOptions,
00028         const RECT*     lprc,
00029         LPCWSTR         lpwString,
00030         UINT            cbCount,
00031         const int*      lpDx
00032     );
00033
00034     BOOL TextOutW_AnyBuild(
00035         HDC     hdc,
00036         int     nXStart,
00037         int     nYStart,
00038         LPCWSTR lpString,
00039         int     cbString
00040     );
00041
00042     LPWSTR CharNextW_AnyBuild(
00043         LPCWSTR lpsz
00044     );
00045
00046     LPWSTR CharPrevW_AnyBuild(
00047         LPCWSTR lpszStart,
00048         LPCWSTR lpszCurrent
00049     );
00050
00051 #ifdef _UNICODE
00052     #define GetTextExtentPoint32W_AnyBuild GetTextExtentPoint32
00053 #else
00054     BOOL GetTextExtentPoint32W_AnyBuild(
00055         HDC     hdc,
00056         LPCWSTR lpString,
00057         int     cbString,
00058         LPSIZE  lpSize
00059     );
00060 #endif
00061
00062
00063
00064     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00065     //             その他W系API (ANSI版でも利用可能)               //
00066     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00067
00068     int LoadStringW_AnyBuild(
00069         HINSTANCE   hInstance,
00070         UINT        uID,
00071         LPWSTR      lpBuffer,
00072         int         nBufferCount
00073     );
00074
00075     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00076     //                      よく使う引数値                         //
00077     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00078
00080     inline UINT ExtTextOutOption()
00081     {
00082         return ETO_CLIPPED | ETO_OPAQUE;
00083     }
00084
00085     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00086     //                       よく使う用法                          //
00087     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00088
00090     inline bool GetKeyState_Shift()
00091     {
00092         return (::GetKeyState(VK_SHIFT)&0x8000)!=0;
00093     }
00094
00096     inline bool GetKeyState_Control()
00097     {
00098         return (::GetKeyState(VK_CONTROL)&0x8000)!=0;
00099     }
00100
00102     inline bool GetKeyState_Alt()
00103     {
00104         return (::GetKeyState(VK_MENU)&0x8000)!=0;
00105     }
00106
00107
00108     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00109     //                           定数                              //
00110     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00111
00112     //  Jun. 29, 2002 こおり
00113     //  Windows 95対策．Property SheetのサイズをWindows95が認識できる物に固定する．
00114     #if defined(_WIN64) || defined(_UNICODE)
00115         static const size_t sizeof_old_PROPSHEETHEADER = sizeof(PROPSHEETHEADER);
00116     #else
00117         static const size_t sizeof_old_PROPSHEETHEADER = 40;
00118     #endif
00119
00120     //  Jan. 29, 2002 genta
00121     //  Win95/NTが納得するsizeof( MENUITEMINFO )
00122     //  これ以外の値を与えると古いOSでちゃんと動いてくれない．
00123     #if defined(_WIN64) || defined(_UNICODE)
00124         static const int SIZEOF_MENUITEMINFO = sizeof(MENUITEMINFO);
00125     #else
00126         static const int SIZEOF_MENUITEMINFO = 44;
00127     #endif
00128
00129
00130     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00131     //             SendMessage,PostMessage意味付け                 //
00132     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00133     // 過去のUNICODE化の名残です。
00134     // 現在となっては、特に意味はありません。
00135
00136     //文字コードに関係のなさそうな SendMessage は SendMessageAny に差し替えておく。
00137     #define SendMessageAny SendMessage
00138
00139     //WM_COMMAND系の SendMessage は SendMessageCmd に差し替えておく。
00140     #define SendMessageCmd SendMessage
00141
00142     //文字コードに関係のなさそうな PostMessage は PostMessageAny に差し替えておく。
00143     #define PostMessageAny PostMessage
00144
00145     //WM_COMMAND系の PostMessage は PostMessageCmd に差し替えておく。
00146     #define PostMessageCmd PostMessage
00147
00148 }
00149 using namespace ApiWrap;
00150
00151
00152
00153
00154 //  Sep. 22, 2003 MIK
00155 //  古いSDK対策．新しいSDKでは不要
00156 #ifndef _WIN64
00157 #ifndef DWORD_PTR
00158 #define DWORD_PTR DWORD
00159 #endif
00160 #ifndef ULONG_PTR
00161 #define ULONG_PTR ULONG
00162 #endif
00163 #ifndef LONG_PTR
00164 #define LONG_PTR LONG
00165 #endif
00166 #ifndef UINT_PTR
00167 #define UINT_PTR UINT
00168 #endif
00169 #ifndef INT_PTR
00170 #define INT_PTR INT
00171 #endif
00172 #ifndef SetWindowLongPtr
00173 #define SetWindowLongPtr SetWindowLong
00174 #endif
00175 #ifndef GetWindowLongPtr
00176 #define GetWindowLongPtr GetWindowLong
00177 #endif
00178 #ifndef DWLP_USER
00179 #define DWLP_USER DWL_USER
00180 #endif
00181 #ifndef GWLP_WNDPROC
00182 #define GWLP_WNDPROC GWL_WNDPROC
00183 #endif
00184 #ifndef GWLP_USERDATA
00185 #define GWLP_USERDATA GWL_USERDATA
00186 #endif
00187 #ifndef GWLP_HINSTANCE
00188 #define GWLP_HINSTANCE GWL_HINSTANCE
00189 #endif
00190 #ifndef DWLP_MSGRESULT
00191 #define DWLP_MSGRESULT DWL_MSGRESULT
00192 #endif
00193 #endif  //_WIN64
00194
00195 #ifndef COLOR_MENUHILIGHT
00196 #define COLOR_MENUHILIGHT 29
00197 #endif
00198 #ifndef COLOR_MENUBAR
00199 #define COLOR_MENUBAR 30
00200 #endif
00201
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdControl.cpp

sakura_core » apiwrap

StdControl.cpp

#include "stdafx.h"
#include "StdControl.h"
#include "util/tchar_receive.h"

StdControl.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | ApiWrap

関数

LRESULT | ApiWrap::List_GetText (HWND hwndList, int nIndex, ACHAR *str)
LRESULT | ApiWrap::List_GetText (HWND hwndList, int nIndex, WCHAR *str)
UINT | ApiWrap::DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, ACHAR *str, int nMaxCount)
UINT | ApiWrap::DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, WCHAR *str, int nMaxCount)

Sakura-Editorに対してSat Nov 17 20:27:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdControl.cpp ソースファイル

sakura_core » apiwrap

StdControl.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "StdControl.h"
00003 #include "util/tchar_receive.h"
00004
00005
00006
00007 namespace ApiWrap{
00008
00009     //※バッファサイズを256と仮定
00010
00011     LRESULT List_GetText(HWND hwndList, int nIndex, ACHAR* str)
00012     {
00013         return SendMessage( hwndList, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)(TCHAR*)TcharReceiver<ACHAR>(str,256) );
00014     }
00015
00016     LRESULT List_GetText(HWND hwndList, int nIndex, WCHAR* str)
00017     {
00018         return SendMessage( hwndList, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)(TCHAR*)TcharReceiver<WCHAR>(str,256) );
00019     }
00020
00021     UINT DlgItem_GetText(HWND hwndDlg, int nIDDlgItem, ACHAR* str, int nMaxCount)
00022     {
00023         return GetDlgItemText(hwndDlg, nIDDlgItem, TcharReceiver<ACHAR>(str,256), nMaxCount);
00024     }
00025
00026     UINT DlgItem_GetText(HWND hwndDlg, int nIDDlgItem, WCHAR* str, int nMaxCount)
00027     {
00028         return GetDlgItemText(hwndDlg, nIDDlgItem, TcharReceiver<WCHAR>(str,256), nMaxCount);
00029     }
00030
00031 }
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdControl.h

sakura_core » apiwrap

StdControl.h

#include "../util/tchar_convert.h"

StdControl.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | ApiWrap

関数

BOOL | ApiWrap::Wnd_SetText (HWND hwnd, const ACHAR *str)
BOOL | ApiWrap::Wnd_SetText (HWND hwnd, const WCHAR *str)
LRESULT | ApiWrap::Combo_AddString (HWND hwndCombo, const ACHAR *str)
LRESULT | ApiWrap::Combo_AddString (HWND hwndCombo, const WCHAR *str)
LRESULT | ApiWrap::Combo_GetText (HWND hwndCombo, int nIndex, TCHAR *str)
LRESULT | ApiWrap::List_GetText (HWND hwndList, int nIndex, ACHAR *str)
LRESULT | ApiWrap::List_GetText (HWND hwndList, int nIndex, WCHAR *str)
LRESULT | ApiWrap::List_AddString (HWND hwndList, const ACHAR *str)
LRESULT | ApiWrap::List_AddString (HWND hwndList, const WCHAR *str)
BOOL | ApiWrap::DlgItem_SetText (HWND hwndDlg, int nIDDlgItem, const ACHAR *str)
BOOL | ApiWrap::DlgItem_SetText (HWND hwndDlg, int nIDDlgItem, const WCHAR *str)
UINT | ApiWrap::DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, ACHAR *str, int nMaxCount)
UINT | ApiWrap::DlgItem_GetText (HWND hwndDlg, int nIDDlgItem, WCHAR *str, int nMaxCount)

Sakura-Editorに対してSat Nov 17 20:27:33 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: StdControl.h ソースファイル

sakura_core » apiwrap

StdControl.h

説明を見る。
00001 #pragma once
00002
00003 /*
00004 2007.09.17 kobake
00005 内部コードがWCHARなので、検索キーワードなどもWCHARで保持する。
00006 そのため、検索ダイアログのコンボボックスなどに、WCHARを設定する場面が出てくる。
00007 UNICODE版では問題無いが、ANSI版では設定の前にコード変換する必要がある。
00008 呼び出し側で変換しても良いが、頻度が多いので、WCHARを直接受け取るAPIラップ関数を提供する。
00009
00010 また、SendMessageの直接呼び出しは、どうしてもWPARAM,LPARAMへの強制キャストが生じるため、
00011 コンパイラの型チェックが働かず、wchar_t, charの混在するソースコードの中ではバグの温床になりやすい。
00012 そういった意味でも、このファイル内のラップ関数を使うことを推奨する。
00013 */
00014
00015 #include "../util/tchar_convert.h"
00016
00017 namespace ApiWrap{
00018
00019     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00020     //                      ウィンドウ共通                         //
00021     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00022     inline BOOL Wnd_SetText(HWND hwnd, const ACHAR* str)
00023     {
00024         return SetWindowTextA(hwnd, str);
00025     }
00026     inline BOOL Wnd_SetText(HWND hwnd, const WCHAR* str)
00027     {
00028 #ifdef _UNICODE
00029         return SetWindowTextW(hwnd, str);
00030 #else
00031         return SetWindowTextA(hwnd, to_achar(str));
00032 #endif
00033     }
00034
00035
00036     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00037     //                      コンボボックス                         //
00038     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00039     inline LRESULT Combo_AddString(HWND hwndCombo, const ACHAR* str)
00040     {
00041         return ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)to_tchar(str) );
00042     }
00043
00044     inline LRESULT Combo_AddString(HWND hwndCombo, const WCHAR* str)
00045     {
00046         return ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)to_tchar(str) );
00047     }
00048
00049     inline LRESULT Combo_GetText(HWND hwndCombo, int nIndex, TCHAR* str)
00050     {
00051         return ::SendMessage( hwndCombo, CB_GETLBTEXT, nIndex, (LPARAM)str );
00052     }
00053
00054     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00055     //                      リストボックス                         //
00056     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00057     LRESULT List_GetText(HWND hwndList, int nIndex, ACHAR* str);
00058     LRESULT List_GetText(HWND hwndList, int nIndex, WCHAR* str);
00059
00060     inline LRESULT List_AddString(HWND hwndList, const ACHAR* str)
00061     {
00062         return ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM)to_tchar(str) );
00063     }
00064     inline LRESULT List_AddString(HWND hwndList, const WCHAR* str)
00065     {
00066         return ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM)to_tchar(str) );
00067     }
00068
00069
00070     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00071     //                       ダイアログ内                          //
00072     // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00073     inline BOOL DlgItem_SetText(HWND hwndDlg, int nIDDlgItem, const ACHAR* str)
00074     {
00075         return SetDlgItemText(hwndDlg, nIDDlgItem, to_tchar(str));
00076     }
00077     inline BOOL DlgItem_SetText(HWND hwndDlg, int nIDDlgItem, const WCHAR* str)
00078     {
00079         return SetDlgItemText(hwndDlg, nIDDlgItem, to_tchar(str));
00080     }
00081
00082     UINT DlgItem_GetText(HWND hwndDlg, int nIDDlgItem, ACHAR* str, int nMaxCount);
00083     UINT DlgItem_GetText(HWND hwndDlg, int nIDDlgItem, WCHAR* str, int nMaxCount);
00084     //GetDlgItemText
00085
00086 }
00087 using namespace ApiWrap;
00088
00089
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex.cpp

sakura_core » util

string_ex.cpp

#include "stdafx.h"
#include "string_ex.h"
#include "charcode.h"

string_ex.cppのインクルード依存関係図

ソースコードを見る。

関数

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 | my_toupper (int c)
SAKURA_CORE_API int | my_tolower (int c)
SAKURA_CORE_API int | my_iskanji1 (int c)
SAKURA_CORE_API int | my_iskanji2 (int c)
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)
LPWSTR | wcscpyn (LPWSTR lpString1, LPCWSTR lpString2, int iMaxLength)
const wchar_t * | wcsistr (const wchar_t *s1, const wchar_t *s2)
const char * | stristr (const char *s1, const char *s2)
error_t | wcscat_s (wchar_t *szDst, size_t nDstCount, const wchar_t *szSrc)
const char * | strichr_j (const char *s1, char c2)
strchr の大文字小文字同一視＆日本語対応版。
const char * | strchr_j (const char *str, char c)
strchr の日本語対応版。
const char * | strstr_j (const char *s1, const char *s2)
strstr の日本語対応版。
const char * | stristr_j (const char *s1, const char *s2)
strstr の大文字小文字同一視＆日本語対応版。
size_t | mbstowcs2 (wchar_t *dst, const char *src, size_t dst_count)
size_t | mbstowcs2 (wchar_t *pDst, int nDstCount, const char *pSrc, int nSrcCount)
size_t | wcstombs2 (char *dst, const wchar_t *src, size_t dst_count)
wchar_t * | mbstowcs_new (const char *src)
wchar_t * | mbstowcs_new (const char *pSrc, int nSrcLen)
char * | wcstombs_new (const wchar_t *src)
char * | wcstombs_new (const wchar_t *pSrc, int nSrcLen)
void | mbstowcs_vector (const char *src, std::vector< wchar_t > *ret)
void | mbstowcs_vector (const char *pSrc, int nSrcLen, std::vector< wchar_t > *ret)
void | wcstombs_vector (const wchar_t *src, std::vector< char > *ret)
void | wcstombs_vector (const wchar_t *pSrc, int nSrcLen, std::vector< char > *ret)
size_t | _tcstowcs (WCHAR *wszDst, const TCHAR *tszSrc, size_t nDstCount)
size_t | _tcstombs (CHAR *szDst, const TCHAR *tszSrc, size_t nDstCount)
size_t | _wcstotcs (TCHAR *tszDst, const WCHAR *wszSrc, size_t nDstCount)
size_t | _mbstotcs (TCHAR *tszDst, const CHAR *szSrc, size_t nDstCount)
int | _tctomb (const TCHAR *tc, ACHAR *mb)
int | _tctowc (const TCHAR *tc, WCHAR *wc)
int | wmemicmp (const WCHAR *p1, const WCHAR *p2, size_t count)
template<class CHAR_TYPE>
CHAR_TYPE * | my_strtok (CHAR_TYPE *pBuffer, int nLen, int *pnOffset, const CHAR_TYPE *pDelimiter)
template ACHAR * | my_strtok (ACHAR *, int, int *, const ACHAR *)
template WCHAR * | my_strtok (WCHAR *, int, int *, const WCHAR *)

関数

size_t _mbstotcs | ( | TCHAR * | tszDst,
 |  | const CHAR * | szSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 464 行で定義されています。

参照元 CConvert_UuDecode::UUDECODE().

size_t _tcstombs | ( | CHAR * | szDst,
 |  | const TCHAR * | tszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 455 行で定義されています。

size_t _tcstowcs | ( | WCHAR * | wszDst,
 |  | const TCHAR * | tszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 451 行で定義されています。

参照先 mbstowcs2().

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply(), CWSHMacroManager::Creator(), CPropTypes::GetData_Regex(), CPropTypes::Import_Regex(), CEditWnd::OnMouseMove(), CFuncLookup::Pos2FuncName(), PropSheetWndProc(), ResolveShortcutLink(), と CShareData::ShareData_IO_KeyBind().

int _tctomb | ( | const TCHAR * | tc,
 |  | ACHAR * | mb
 | ) |  |

string_ex.cpp の 469 行で定義されています。

参照先 _IS_SJIS_1.

参照元 CPropCommon::DispatchEvent_p8().

int _tctowc | ( | const TCHAR * | tc,
 |  | WCHAR * | wc
 | ) |  |

string_ex.cpp の 475 行で定義されています。

参照先 _IS_SJIS_1.

size_t _wcstotcs | ( | TCHAR * | tszDst,
 |  | const WCHAR * | wszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 460 行で定義されています。

参照先 wcstombs2().

参照元 CPropTypes::DispatchEvent_KeyHelp(), CEditWnd::GetTooltipText(), CPropTypes::Import_Regex(), CEditDoc::SetParentCaption(), と CShareData::ShareData_IO_Types().

size_t mbstowcs2 | ( | wchar_t * | pDst,
 |  | int | nDstCount,
 |  | const char * | pSrc,
 |  | int | nSrcCount
 | ) |  |

string_ex.cpp の 252 行で定義されています。

size_t mbstowcs2 | ( | wchar_t * | dst,
 |  | const char * | src,
 |  | size_t | dst_count
 | ) |  |

string_ex.cpp の 246 行で定義されています。

参照元 _tcstowcs(), と ApiWrap::LoadStringW_AnyBuild().

wchar_t* mbstowcs_new | ( | const char * | pSrc,
 |  | int | nSrcLen
 | ) |  |

string_ex.cpp の 283 行で定義されています。

参照先 NULL.

wchar_t* mbstowcs_new ( const char * src )

string_ex.cpp の 275 行で定義されています。

参照先 NULL.

参照元 CNativeW::AppendStringOld(), CMyString::set(), と CPPA::stdProc().

void mbstowcs_vector | ( | const char * | pSrc,
 |  | int | nSrcLen,
 |  | std::vector< wchar_t > * | ret
 | ) |  |

string_ex.cpp の 358 行で定義されています。

参照先 NULL.

void mbstowcs_vector | ( | const char * | src,
 |  | std::vector< wchar_t > * | ret
 | ) |  |

string_ex.cpp の 352 行で定義されています。

参照先 mbstowcs_vector().

参照元 mbstowcs_vector(), と CEditView::MySetClipboardData().

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以外の時の戻り値を，「元の値の差」から「大文字としたときの差」に変更

string_ex.cpp の 625 行で定義されています。

参照元 my_stricmp(), と my_strnicmp().

SAKURA_CORE_API int my_iskanji1 ( int c )

日本語１バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字１バイト目である
0 | 漢字１バイト目ではない

string_ex.cpp の 43 行で定義されています。

参照元 strchr_j(), strichr_j(), stristr_j(), と strstr_j().

SAKURA_CORE_API int my_iskanji2 ( int c )

日本語２バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字２バイト目である
0 | 漢字２バイト目ではない

string_ex.cpp の 56 行で定義されています。

SAKURA_CORE_API int __cdecl my_stricmp | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

大文字小文字を同一視する文字列比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
戻り値:
0 一致

string_ex.cpp の 73 行で定義されています。

参照先 my_internal_icmp().

SAKURA_CORE_API int __cdecl my_strnicmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | size_t | n
 | ) |  |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
戻り値:
0 一致

string_ex.cpp の 87 行で定義されています。

参照先 my_internal_icmp().

参照元 stristr_j().

template WCHAR* my_strtok | ( | WCHAR * | ,
 |  | int | ,
 |  | int * | ,
 |  | const WCHAR * |
 | ) |  |

template ACHAR* my_strtok | ( | ACHAR * | ,
 |  | int | ,
 |  | int * | ,
 |  | const ACHAR * |
 | ) |  |

template<class CHAR_TYPE>
CHAR_TYPE* my_strtok | ( | CHAR_TYPE * | pBuffer,
 |  | int | nLen,
 |  | int * | pnOffset,
 |  | const CHAR_TYPE * | pDelimiter |
 | ) |  |  | [inline]

string_ex.cpp の 520 行で定義されています。

参照先 auto_strchr(), と NULL.

SAKURA_CORE_API int my_tolower ( int c )

小文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

string_ex.cpp の 30 行で定義されています。

SAKURA_CORE_API int my_toupper ( int c )

大文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

string_ex.cpp の 18 行で定義されています。

参照元 strichr_j().

const char* strchr_j | ( | const char * | str,
 |  | char | c
 | ) |  |

strchr の日本語対応版。

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strchr→strchr_j

string_ex.cpp の 187 行で定義されています。

参照先 my_iskanji1(), と NULL.

参照元 auto_strchr(), と strchr_j().

const char* strichr_j | ( | const char * | s1,
 |  | char | c2
 | ) |  |

strchr の大文字小文字同一視＆日本語対応版。

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strchri→strichr_j

string_ex.cpp の 171 行で定義されています。

参照先 my_iskanji1(), my_toupper(), と NULL.

参照元 strichr_j().

const char* stristr | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

string_ex.cpp の 117 行で定義されています。

参照先 auto_memicmp(), と NULL.

参照元 stristr().

const char* stristr_j | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

strstr の大文字小文字同一視＆日本語対応版。

strstr()の大文字小文字同一視版

覚え書き:
Windows APIにあるStrStrIはIE4が入っていないPCでは使用不可のため 独自に作成
日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strstri→stristr_j

string_ex.cpp の 224 行で定義されています。

参照先 my_iskanji1(), my_strnicmp(), と NULL.

参照元 stristr_j().

const char* strstr_j | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

strstr の日本語対応版。

strstr()の2byte code対応版

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strstr→strstr_j

string_ex.cpp の 204 行で定義されています。

参照先 my_iskanji1(), と NULL.

参照元 auto_strstr(), と strstr_j().

error_t wcscat_s | ( | wchar_t * | szDst,
 |  | size_t | nDstCount,
 |  | const wchar_t * | szSrc
 | ) |  |

string_ex.cpp の 136 行で定義されています。

LPWSTR wcscpyn | ( | LPWSTR | lpString1,
 |  | LPCWSTR | lpString2,
 |  | int | iMaxLength
 | ) |  |

string_ex.cpp の 96 行で定義されています。

const wchar_t* wcsistr | ( | const wchar_t * | s1,
 |  | const wchar_t * | s2
 | ) |  |

string_ex.cpp の 105 行で定義されています。

参照先 auto_memicmp(), と NULL.

参照元 wcsistr().

size_t wcstombs2 | ( | char * | dst,
 |  | const wchar_t * | src,
 |  | size_t | dst_count
 | ) |  |

string_ex.cpp の 267 行で定義されています。

参照元 _wcstotcs(), と CMigemo::migemo_load_w().

char* wcstombs_new | ( | const wchar_t * | pSrc,
 |  | int | nSrcLen
 | ) |  |

string_ex.cpp の 318 行で定義されています。

参照先 NULL.

char* wcstombs_new ( const wchar_t * src )

string_ex.cpp の 313 行で定義されています。

参照先 wcstombs_new().

参照元 CNativeA::AppendStringNew(), CMyString::c_astr(), CNativeA::SetStringNew(), と wcstombs_new().

void wcstombs_vector | ( | const wchar_t * | pSrc,
 |  | int | nSrcLen,
 |  | std::vector< char > * | ret
 | ) |  |

string_ex.cpp の 391 行で定義されています。

参照先 NULL.

void wcstombs_vector | ( | const wchar_t * | src,
 |  | std::vector< char > * | ret
 | ) |  |

string_ex.cpp の 387 行で定義されています。

参照先 wcstombs_vector().

参照元 ApiWrap::GetTextExtentPoint32W_AnyBuild(), と wcstombs_vector().

int wmemicmp | ( | const WCHAR * | p1,
 |  | const WCHAR * | p2,
 |  | size_t | count
 | ) |  |

string_ex.cpp の 487 行で定義されています。

参照元 auto_memicmp().

Sakura-Editorに対してSat Nov 17 20:27:34 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex.cpp ソースファイル

sakura_core » util

string_ex.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "string_ex.h"
00003 #include "charcode.h"
00004
00005 SAKURA_CORE_API int __cdecl my_internal_icmp( const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag );
00006
00007
00008
00009 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00010 //                           文字                              //
00011 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00012
00018 SAKURA_CORE_API int my_toupper( int c )
00019 {
00020     if( c >= 'a' && c <= 'z' ) return c - ('a' - 'A');
00021     return c;
00022 }
00023
00024
00030 SAKURA_CORE_API int my_tolower( int c )
00031 {
00032     if( c >= 'A' && c <= 'Z' ) return c + ('a' - 'A');
00033     return c;
00034 }
00035
00036
00043 SAKURA_CORE_API int my_iskanji1( int c )
00044 {
00045     if( (c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc) ) return 1;
00046     return 0;
00047 }
00048
00049
00056 SAKURA_CORE_API int my_iskanji2( int c )
00057 {
00058     if( (c >= 0x40 && c <= 0x7e) || (c >= 0x80 && c <= 0xfc) ) return 1;
00059     return 0;
00060 }
00061
00062
00063 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00064 //                         独自実装                            //
00065 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00066
00073 SAKURA_CORE_API int __cdecl my_stricmp( const char *s1, const char *s2 )
00074 {
00075     /* チェックする文字数をuint最大に設定する */
00076     //return my_internal_icmp( s1, s2, (unsigned int)(~0), 0, true );
00077     return my_internal_icmp( s1, s2, UINT_MAX, 0, true );
00078 }
00079
00087 SAKURA_CORE_API int __cdecl my_strnicmp( const char *s1, const char *s2, size_t n )
00088 {
00089     return my_internal_icmp( s1, s2, (unsigned int)n, 1, true );
00090 }
00091
00092 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00093 //                           拡張                              //
00094 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00095
00096 LPWSTR wcscpyn(LPWSTR lpString1,LPCWSTR lpString2,int iMaxLength)
00097 {
00098     size_t len2=wcslen(lpString2);
00099     if((int)len2>iMaxLength-1)len2=iMaxLength-1;
00100     wmemcpy(lpString1,lpString2,len2);
00101     lpString1[len2]=L'\0';
00102     return lpString1;
00103 }
00104
00105 const wchar_t* wcsistr( const wchar_t* s1, const wchar_t* s2 )
00106 {
00107     size_t len2=wcslen(s2);
00108     const wchar_t* p=s1;
00109     const wchar_t* q=wcschr(s1,L'\0')-len2;
00110     while(p<=q){
00111         if(auto_memicmp(p,s2,len2)==0)return p;
00112         p++;
00113     }
00114     return NULL;
00115 }
00116
00117 const char* stristr(const char* s1, const char* s2)
00118 {
00119     //$ 日本語考慮してないので、あんまり役に立たない版。stristr_jを使うのが望ましい。
00120     size_t len2=strlen(s2);
00121     const char* p=s1;
00122     const char* q=strchr(s1,L'\0')-len2;
00123     while(p<=q){
00124         if(auto_memicmp(p,s2,len2)==0)return p;
00125         p++;
00126     }
00127     return NULL;
00128 }
00129
00130
00131 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00132 //                           互換                              //
00133 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00134
00135 #if _MSC_VER<1400 //VS2005より前なら
00136 error_t wcscat_s(wchar_t* szDst, size_t nDstCount, const wchar_t* szSrc)
00137 {
00138     if(!szDst)return EINVAL;
00139     if(!szSrc)return EINVAL;
00140
00141     size_t nDstLen=wcslen(szDst);
00142     if(nDstLen>=nDstCount)return EINVAL;
00143
00144     size_t nSrcCount=wcslen(szSrc)+1;
00145     wchar_t* p=&szDst[nDstLen];           //追加場所
00146     int nRestCount = nDstCount-(p-szDst); //szDstに追加できる要素数
00147
00148     //はみ出さない
00149     if((int)nSrcCount<=nRestCount){
00150         wmemmove(p,szSrc,nSrcCount);
00151     }
00152     //はみ出す
00153     else{
00154         return ERANGE;
00155         //wmemmove(p,szSrc,nRestCount-1); p[nRestCount-1]=L'\0';
00156     }
00157
00158     return 0;
00159 }
00160
00161 #endif
00162
00163 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00164 //                        日本語対応                           //
00165 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00166
00171 const char* strichr_j( const char* s1, char c2 )
00172 {
00173     if(c2==0)return ::strchr(s1,0); //文字列終端を探すためにc2に0を渡した場合も、正しく処理されるように。 2007.10.16 kobake
00174
00175     int C2 = my_toupper( c2 );
00176     for( const char* p1 = s1; *p1; p1++ ){
00177         if( my_toupper( *p1 ) == C2 ) return p1;
00178         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00179     }
00180     return NULL;
00181 }
00182
00187 const char* strchr_j(const char* str, char c)
00188 {
00189     if(c==0)return ::strchr(str,0); //文字列終端を探すためにcに0を渡した場合も、正しく処理されるように。 2007.10.16 kobake
00190
00191     for( const char* p1 = str; *p1; p1++ ){
00192         if( *p1 == c ) return p1;
00193         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00194     }
00195     return NULL;
00196 }
00197
00204 const char* strstr_j(const char* s1, const char* s2)
00205 {
00206     size_t n = strlen( s2 );
00207     for( const char* p1 = s1; *p1; p1++ ){
00208         if( strncmp( p1, s2, n ) == 0 ) return p1;
00209         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00210     }
00211     return NULL;
00212 }
00213
00224 const char* stristr_j( const char* s1, const char* s2 )
00225 {
00226     size_t n = strlen( s2 );
00227     for( const char* p1 = s1; *p1; p1++ ){
00228         if( my_strnicmp( p1, s2, n ) == 0 ) return p1;
00229         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00230     }
00231     return NULL;
00232 }
00233
00234
00235 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00236 //                          文字列                             //
00237 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00238
00239
00240 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00241 //                      文字コード変換                         //
00242 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00243
00244
00245 //SJIS→UNICODE。終端にL'\0'を付けてくれる版。
00246 size_t mbstowcs2(wchar_t* dst,const char* src,size_t dst_count)
00247 {
00248     size_t ret=::mbstowcs(dst,src,dst_count-1);
00249     dst[ret]=L'\0';
00250     return ret;
00251 }
00252 size_t mbstowcs2(wchar_t* pDst, int nDstCount, const char* pSrc, int nSrcCount)
00253 {
00254     int ret=MultiByteToWideChar(
00255         CP_ACP,
00256         0,
00257         pSrc,
00258         nSrcCount,
00259         pDst,
00260         nDstCount-1
00261     );
00262     pDst[ret]=L'\0';
00263     return (size_t)ret;
00264 }
00265
00266 //UNICODE→SJIS。終端に'\0'を付けてくれる版。
00267 size_t wcstombs2(char* dst,const wchar_t* src,size_t dst_count)
00268 {
00269     size_t ret=::wcstombs(dst,src,dst_count-1);
00270     dst[ret]='\0';
00271     return ret;
00272 }
00273
00274 //SJIS→UNICODE。戻り値はnew[]で確保して返す。
00275 wchar_t* mbstowcs_new(const char* src)
00276 {
00277     size_t new_length=mbstowcs(NULL,src,0);
00278     wchar_t* ret=new wchar_t[new_length+1];
00279     mbstowcs(ret,src,new_length);
00280     ret[new_length]=L'\0';
00281     return ret;
00282 }
00283 wchar_t* mbstowcs_new(const char* pSrc, int nSrcLen)
00284 {
00285     //必要な領域サイズ
00286     int nNewLength = MultiByteToWideChar(
00287         CP_ACP,
00288         0,
00289         pSrc,
00290         nSrcLen,
00291         NULL,
00292         0
00293     );
00294
00295     //確保
00296     wchar_t* pNew = new wchar_t[nNewLength+1];
00297
00298     //変換
00299     nNewLength = MultiByteToWideChar(
00300         CP_ACP,
00301         0,
00302         pSrc,
00303         nSrcLen,
00304         pNew,
00305         nNewLength
00306     );
00307     pNew[nNewLength] = L'\0';
00308
00309     return pNew;
00310 }
00311
00312 //UNICODE→SJIS。戻り値はnew[]で確保して返す。
00313 char* wcstombs_new(const wchar_t* src)
00314 {
00315     return wcstombs_new(src,wcslen(src));
00316 }
00317 //戻り値はnew[]で確保して返す。
00318 char* wcstombs_new(const wchar_t* pSrc,int nSrcLen)
00319 {
00320     //必要な領域サイズ
00321     int nNewLength = WideCharToMultiByte(
00322         CP_ACP,
00323         0,
00324         pSrc,
00325         nSrcLen,
00326         NULL,
00327         0,
00328         NULL,
00329         NULL
00330     );
00331
00332     //確保
00333     char* pNew = new char[nNewLength+1];
00334
00335     //変換
00336     nNewLength = WideCharToMultiByte(
00337         CP_ACP,
00338         0,
00339         pSrc,
00340         nSrcLen,
00341         pNew,
00342         nNewLength,
00343         NULL,
00344         NULL
00345     );
00346     pNew[nNewLength] = '\0';
00347
00348     return pNew;
00349 }
00350
00351 //SJIS→UNICODE。戻り値はvectorとして返す。
00352 void mbstowcs_vector(const char* src, std::vector<wchar_t>* ret)
00353 {
00354     mbstowcs_vector(src,strlen(src),ret);
00355 }
00356
00357 //※戻り値retにおいて、ret->size()が文字列長ではないことに注意。正しくは、(ret->size()-1)が文字列長となる。
00358 void mbstowcs_vector(const char* pSrc, int nSrcLen, std::vector<wchar_t>* ret)
00359 {
00360     //必要な容量
00361     int nNewLen = MultiByteToWideChar(
00362         CP_ACP,
00363         0,
00364         pSrc,
00365         nSrcLen,
00366         NULL,
00367         0
00368     );
00369
00370     //確保
00371     ret->resize(nNewLen+1);
00372
00373     //変換
00374     nNewLen = MultiByteToWideChar(
00375         CP_ACP,
00376         0,
00377         pSrc,
00378         nSrcLen,
00379         &(*ret)[0],
00380         nNewLen
00381     );
00382     (*ret)[nNewLen]=L'\0';
00383 }
00384
00385
00386 //UNICODE→SJIS。戻り値はvectorとして返す。
00387 void wcstombs_vector(const wchar_t* src, std::vector<char>* ret)
00388 {
00389     wcstombs_vector(src,wcslen(src),ret);
00390 }
00391 void wcstombs_vector(const wchar_t* pSrc, int nSrcLen, std::vector<char>* ret)
00392 {
00393     //必要な容量
00394     int nNewLen = WideCharToMultiByte(
00395         CP_ACP,
00396         0,
00397         pSrc,
00398         nSrcLen,
00399         NULL,
00400         0,
00401         NULL,
00402         NULL
00403     );
00404
00405     //確保
00406     ret->resize(nNewLen + 1);
00407
00408     //変換
00409     nNewLen = WideCharToMultiByte(
00410         CP_ACP,
00411         0,
00412         pSrc,
00413         nSrcLen,
00414         &(*ret)[0],
00415         nNewLen,
00416         NULL,
00417         NULL
00418     );
00419     (*ret)[nNewLen]='\0';
00420 }
00421
00422 #ifdef _UNICODE
00423     size_t _tcstowcs(WCHAR* wszDst, const TCHAR* tszSrc, size_t nDstCount)
00424     {
00425         wcscpy_s(wszDst, nDstCount, tszSrc);
00426         return wcslen(wszDst);
00427     }
00428     size_t _tcstombs(CHAR*  szDst,  const TCHAR* tszSrc, size_t nDstCount)
00429     {
00430         return wcstombs2(szDst, tszSrc, nDstCount);
00431     }
00432     size_t _wcstotcs(TCHAR* tszDst, const WCHAR* wszSrc, size_t nDstCount)
00433     {
00434         wcscpy_s(tszDst, nDstCount, wszSrc);
00435         return wcslen(tszDst);
00436     }
00437     size_t _mbstotcs(TCHAR* tszDst, const CHAR*  szSrc,  size_t nDstCount)
00438     {
00439         return mbstowcs(tszDst, szSrc, nDstCount);
00440     }
00441     int _tctomb(const TCHAR* p,ACHAR* mb)
00442     {
00443         return wctomb(mb,*p);
00444     }
00445     int _tctowc(const TCHAR* p,WCHAR* wc)
00446     {
00447         *wc=*p;
00448         return 1;
00449     }
00450 #else
00451     size_t _tcstowcs(WCHAR* wszDst, const TCHAR* tszSrc, size_t nDstCount)
00452     {
00453         return mbstowcs2(wszDst, tszSrc, nDstCount);
00454     }
00455     size_t _tcstombs(CHAR*  szDst,  const TCHAR* tszSrc, size_t nDstCount)
00456     {
00457         strcpy_s(szDst, nDstCount, tszSrc);
00458         return strlen(szDst);
00459     }
00460     size_t _wcstotcs(TCHAR* tszDst, const WCHAR* wszSrc, size_t nDstCount)
00461     {
00462         return wcstombs2(tszDst, wszSrc, nDstCount);
00463     }
00464     size_t _mbstotcs(TCHAR* tszDst, const CHAR*  szSrc,  size_t nDstCount)
00465     {
00466         strcpy_s(tszDst, nDstCount, szSrc);
00467         return strlen(tszDst);
00468     }
00469     int _tctomb(const TCHAR* tc,ACHAR* mb)
00470     {
00471         mb[0]=tc[0];
00472         if(_IS_SJIS_1(tc[0])){ mb[1]=tc[1]; return 2; }
00473         return 1;
00474     }
00475     int _tctowc(const TCHAR* tc,WCHAR* wc)
00476     {
00477         return mbtowc(wc,tc,_IS_SJIS_1(tc[0])?2:1);
00478     }
00479 #endif
00480
00481
00482
00483 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00484 //                          メモリ                             //
00485 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00486
00487 int wmemicmp(const WCHAR* p1,const WCHAR* p2,size_t count)
00488 {
00489     for(size_t i=0;i<count;i++){
00490         int n=towlower(*p1++)-towlower(*p2++);
00491         if(n!=0)return n;
00492     }
00493     return 0;
00494 }
00495
00496
00497
00498
00499
00500
00501
00502
00513 //$ いちいち手間かかる。。
00514 namespace{
00515     template <class T> struct Charset{};
00516     template <> struct Charset<ACHAR>{ static const ACHAR QUOT= '"'; };
00517     template <> struct Charset<WCHAR>{ static const WCHAR QUOT=L'"'; };
00518 }
00519 template <class CHAR_TYPE>
00520 CHAR_TYPE* my_strtok(
00521     CHAR_TYPE*          pBuffer,    //[in] 文字列バッファ(終端があること)
00522     int                 nLen,       //[in] 文字列の長さ
00523     int*                pnOffset,   //[in/out] オフセット
00524     const CHAR_TYPE*    pDelimiter  //[in] 区切り文字
00525 )
00526 {
00527     int i = *pnOffset;
00528     CHAR_TYPE* p;
00529
00530     do {
00531         bool bFlag = false; //ダブルコーテーションの中か？
00532         if( i >= nLen ) return NULL;
00533         p = &pBuffer[i];
00534         for( ; i < nLen; i++ )
00535         {
00536             if( pBuffer[i] == Charset<CHAR_TYPE>::QUOT ) bFlag = ! bFlag;
00537             if( ! bFlag )
00538             {
00539                 if( auto_strchr( pDelimiter, pBuffer[i] ) )
00540                 {
00541                     pBuffer[i++] = _T('\0');
00542                     break;
00543                 }
00544             }
00545         }
00546         *pnOffset = i;
00547     } while( ! *p );    //空のトークンなら次を探す
00548     return p;
00549 }
00550 //インスタンス化
00551 template ACHAR* my_strtok(ACHAR*,int,int*,const ACHAR*);
00552 template WCHAR* my_strtok(WCHAR*,int,int*,const WCHAR*);
00553
00554
00555
00556
00557 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00558 //                         実装補助                            //
00559 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00560
00561 #ifdef MY_ICMP_MBS
00562 SAKURA_CORE_API int my_mbtoupper2( int c );
00563 SAKURA_CORE_API int my_mbtolower2( int c );
00564 SAKURA_CORE_API int my_mbisalpha2( int c );
00565 #endif  /* MY_ICMP_MBS */
00566
00567 #ifdef MY_ICMP_MBS
00568
00577 SAKURA_CORE_API int my_mbtoupper2( int c )
00578 {
00579     if( c >= 0x81 && c <= 0x9a ) return c - (0x81 - 0x60);
00580     return c;
00581 }
00582 #endif  /* MY_ICMP_MBS */
00583
00584
00585
00586 #ifdef MY_ICMP_MBS
00587
00592 SAKURA_CORE_API int my_mbtolower2( int c )
00593 {
00594     if( c >= 0x60 && c <= 0x79 ) return c + (0x81 - 0x60);
00595     return c;
00596 }
00597 #endif  /* MY_ICMP_MBS */
00598
00599
00600
00601 #ifdef MY_ICMP_MBS
00602
00608 SAKURA_CORE_API int my_mbisalpha2( int c )
00609 {
00610     if( (c >= 0x60 && c <= 0x79) || (c >= 0x81 && c <= 0x9a) ) return 1;
00611     return 0;
00612 }
00613 #endif  /* MY_ICMP_MBS */
00614
00615
00616
00617
00628 SAKURA_CORE_API int __cdecl my_internal_icmp( const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag )
00629 {
00630     unsigned int    i;
00631     unsigned char   *p1, *p2;
00632 //  2002.11.29 Moca 元の値を保持する必要がなくなったため *_lo, *_upを削除
00633 //  int c1, c1_lo, c1_up;
00634 //  int c2, c2_lo, c2_up;
00635     int     c1, c2;
00636     bool    prev1, prev2; /* 前の文字が SJISの１バイト目か */
00637 #ifdef MY_ICMP_MBS
00638     bool    mba1, mba2;
00639 #endif  /* MY_ICMP_MBS */
00640
00641     p1 = (unsigned char*)s1;
00642     p2 = (unsigned char*)s2;
00643     prev1 = prev2 = false;
00644 #ifdef MY_ICMP_MBS
00645     mba1 = mba2 = false;
00646 #endif  /* MY_ICMP_MBS */
00647
00648     /* 指定長だけ繰り返す */
00649     for(i = n; i > 0; i -= dcount)
00650     {
00651         /* 比較対象となる文字を取得する */
00652 //      c1 = c1_lo = c1_up = (int)((unsigned int)*p1);
00653 //      c2 = c2_lo = c2_up = (int)((unsigned int)*p2);
00654         c1 = (int)((unsigned int)*p1);
00655         c2 = (int)((unsigned int)*p2);
00656
00657         /* 2002.11.29 Moca 文字列の終端に達したか調べる部分 は後方へ移動 */
00658
00659         /* 文字１の日本語チェックを行い比較用の大文字小文字をセットする */
00660         if( prev1 ){    /* 前の文字が日本語１バイト目 */
00661             /* 今回は日本語２バイト目なので変換しない */
00662             prev1 = false;
00663 #ifdef MY_ICMP_MBS
00664             /* 全角文字のアルファベット */
00665             if( mba1 ){
00666                 mba1 = false;
00667                 if( my_mbisalpha2( c1 ) ){
00668                     c1 = my_mbtoupper2( c1 );
00669                 }
00670             }
00671 #endif  /* MY_ICMP_MBS */
00672         }
00673         else if( my_iskanji1(c1) ){
00674             /* 今回は日本語１バイト目なので変換しない */
00675             prev1 = true;
00676 #ifdef MY_ICMP_MBS
00677             if( c1 == 0x82 ) mba1 = true;
00678 #endif  /* MY_ICMP_MBS */
00679         }
00680         else{
00681             c1 = my_toupper(c1);
00682         }
00683
00684         /* 文字２の日本語チェックを行い比較用の大文字小文字をセットする */
00685         if( prev2 ){    /* 前の文字が日本語１バイト目 */
00686             /* 今回は日本語２バイト目なので変換しない */
00687             prev2 = false;
00688 #ifdef MY_ICMP_MBS
00689             /* 全角文字のアルファベット */
00690             if( mba2 ){
00691                 mba2 = false;
00692                 if( my_mbisalpha2( c2 ) ){
00693                     c2 = my_mbtoupper2( c2 );
00694                 }
00695             }
00696 #endif  /* MY_ICMP_MBS */
00697         }
00698         else if( my_iskanji1(c2) ){
00699             /* 今回は日本語１バイト目なので変換しない */
00700             prev2 = true;
00701 #ifdef MY_ICMP_MBS
00702             if( c2 == 0x82 ) mba2 = true;
00703 #endif  /* MY_ICMP_MBS */
00704         }
00705         else{
00706             c2 = my_toupper(c2);
00707         }
00708
00709         /* 比較する */
00710 //      if( (c1_lo - c2_lo) && (c1_up - c2_up) ) return c1 - c2;    /* 戻り値は元の文字の差 */
00711         if( c1 - c2 ) return c1 - c2;   /* 戻り値は大文字に変換した文字の差 */
00712
00713         /* 2002.11.29 Moca 戻り値を変更したことにより，小文字→大文字変換の後に移動
00714            片方だけ NULL文字 の場合は上の比較した時点で return するためその処理は不要 */
00715         if( flag ){
00716             /* 文字列の終端に達したか調べる */
00717             if( ! c1 ) return 0;
00718         }
00719         /* ポインタを進める */
00720         p1++;
00721         p2++;
00722     }
00723
00724     return 0;
00725 }
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex.h

sakura_core » util

string_ex.h

#include "util/tchar_printf.h"
#include <vector>

string_ex.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | _tcsistr stristr
#define | _tcsistr_j stristr_j
#define | wcsncmp_literal(strData1, literalData2) ::wcsncmp(strData1, literalData2, _countof(literalData2) - 1 )
#define | strncmp_literal(strData1, literalData2) ::strncmp(strData1, literalData2, _countof(literalData2) - 1 )
#define | _tcsncmp_literal strncmp_literal

型定義

typedef int | error_t

関数

int | amemcmp (const ACHAR *p1, const ACHAR *p2, size_t count)
int | amemicmp (const ACHAR *p1, const ACHAR *p2, size_t count)
int | wmemicmp (const WCHAR *p1, const WCHAR *p2, size_t count)
void * | memset_raw (void *dest, int c, size_t size)
void * | memcpy_raw (void *dest, const void *src, size_t size)
SAKURA_CORE_API int | my_toupper (int c)
SAKURA_CORE_API int | my_tolower (int c)
SAKURA_CORE_API int | my_iskanji1 (int c)
SAKURA_CORE_API int | my_iskanji2 (int c)
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)
LPWSTR | wcscpyn (LPWSTR lpString1, LPCWSTR lpString2, int iMaxLength)
const WCHAR * | wcsistr (const WCHAR *s1, const WCHAR *s2)
const ACHAR * | stristr (const ACHAR *s1, const ACHAR *s2)
template<class CHAR_TYPE>
CHAR_TYPE * | my_strtok (CHAR_TYPE *pBuffer, int nLen, int *pnOffset, const CHAR_TYPE *pDelimiter)
WCHAR * | wcsistr (WCHAR *s1, const WCHAR *s2)
ACHAR * | stristr (ACHAR *s1, const ACHAR *s2)
error_t | wcscat_s (wchar_t *szDst, size_t nDstCount, const wchar_t *szSrc)
const char * | strchr_j (const char *s1, char c)
strchr の日本語対応版。
const char * | strichr_j (const char *s1, char c)
strchr の大文字小文字同一視＆日本語対応版。
const char * | strstr_j (const char *s1, const char *s2)
strstr の日本語対応版。
const char * | stristr_j (const char *s1, const char *s2)
strstr の大文字小文字同一視＆日本語対応版。
char * | strchr_j (char *s1, char c)
char * | strichr_j (char *s1, char c)
char * | strstr_j (char *s1, const char *s2)
char * | stristr_j (char *s1, const char *s2)
ACHAR * | auto_memcpy (ACHAR *dest, const ACHAR *src, size_t count)
WCHAR * | auto_memcpy (WCHAR *dest, const WCHAR *src, size_t count)
ACHAR * | auto_memset (ACHAR *dest, ACHAR c, size_t count)
WCHAR * | auto_memset (WCHAR *dest, WCHAR c, size_t count)
int | auto_memcmp (const ACHAR *p1, const ACHAR *p2, size_t count)
int | auto_memcmp (const WCHAR *p1, const WCHAR *p2, size_t count)
int | auto_memicmp (const ACHAR *p1, const ACHAR *p2, size_t count)
int | auto_memicmp (const WCHAR *p1, const WCHAR *p2, size_t count)
ACHAR * | auto_strcpy (ACHAR *dst, const ACHAR *src)
WCHAR * | auto_strcpy (WCHAR *dst, const WCHAR *src)
errno_t | auto_strcpy_s (ACHAR *dst, size_t nDstCount, const ACHAR *src)
errno_t | auto_strcpy_s (WCHAR *dst, size_t nDstCount, const WCHAR *src)
ACHAR * | auto_strncpy (ACHAR *dst, const ACHAR *src, size_t count)
WCHAR * | auto_strncpy (WCHAR *dst, const WCHAR *src, size_t count)
size_t | auto_strlen (const ACHAR *str)
size_t | auto_strlen (const WCHAR *str)
const ACHAR * | auto_strstr (const ACHAR *str, const ACHAR *strSearch)
const WCHAR * | auto_strstr (const WCHAR *str, const WCHAR *strSearch)
ACHAR * | auto_strstr (ACHAR *str, const ACHAR *strSearch)
WCHAR * | auto_strstr (WCHAR *str, const WCHAR *strSearch)
const ACHAR * | auto_strchr (const ACHAR *str, ACHAR c)
const WCHAR * | auto_strchr (const WCHAR *str, WCHAR c)
ACHAR * | auto_strchr (ACHAR *str, ACHAR c)
WCHAR * | auto_strchr (WCHAR *str, WCHAR c)
int | auto_strcmp (const ACHAR *str1, const ACHAR *str2)
int | auto_strcmp (const WCHAR *str1, const WCHAR *str2)
int | auto_strncmp (const ACHAR *str1, const ACHAR *str2, size_t count)
int | auto_strncmp (const WCHAR *str1, const WCHAR *str2, size_t count)
long | auto_atol (const ACHAR *str)
long | auto_atol (const WCHAR *str)
int | auto_snprintf (ACHAR *buf, size_t count, const ACHAR *format,...)
int | auto_snprintf (WCHAR *buf, size_t count, const WCHAR *format,...)
int | auto_sprintf (ACHAR *buf, const ACHAR *format,...)
int | auto_sprintf (WCHAR *buf, const WCHAR *format,...)
int | auto_sprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format,...)
int | auto_sprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format,...)
int | auto_vsprintf (ACHAR *buf, const ACHAR *format, va_list &v)
int | auto_vsprintf (WCHAR *buf, const WCHAR *format, va_list &v)
int | auto_vsprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format, va_list &v)
int | auto_vsprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format, va_list &v)
size_t | mbstowcs2 (wchar_t *dst, const char *src, size_t dst_count)
size_t | mbstowcs2 (wchar_t *pDst, int nDstCount, const char *pSrc, int nSrcCount)
size_t | wcstombs2 (char *dst, const wchar_t *src, size_t dst_count)
wchar_t * | mbstowcs_new (const char *pszSrc)
wchar_t * | mbstowcs_new (const char *pSrc, int nSrcLen)
void | mbstowcs_vector (const char *src, std::vector< wchar_t > *ret)
void | mbstowcs_vector (const char *pSrc, int nSrcLen, std::vector< wchar_t > *ret)
char * | wcstombs_new (const wchar_t *src)
char * | wcstombs_new (const wchar_t *pSrc, int nSrcLen)
void | wcstombs_vector (const wchar_t *pSrc, std::vector< char > *ret)
void | wcstombs_vector (const wchar_t *pSrc, int nSrcLen, std::vector< char > *ret)
size_t | _tcstowcs (WCHAR *wszDst, const TCHAR *tszSrc, size_t nDstCount)
size_t | _tcstombs (CHAR *szDst, const TCHAR *tszSrc, size_t nDstCount)
size_t | _wcstotcs (TCHAR *tszDst, const WCHAR *wszSrc, size_t nDstCount)
size_t | _mbstotcs (TCHAR *tszDst, const CHAR *szSrc, size_t nDstCount)
int | _tctomb (const TCHAR *p, ACHAR *mb)
int | _tctowc (const TCHAR *p, WCHAR *wc)
int | wcsncmp_auto (const wchar_t *strData1, const wchar_t *szData2)
template<class T>
T * | _tcscpy (T *dst, const T *src)
template<>
char * | _tcscpy (char *dst, const char *src)
template<>
wchar_t * | _tcscpy (wchar_t *dst, const wchar_t *src)
char * | strncpy_ex (char *dst, size_t dst_count, const char *src, size_t src_count)

マクロ定義

#define _tcsistr stristr

string_ex.h の 96 行で定義されています。

#define _tcsistr_j stristr_j

string_ex.h の 131 行で定義されています。

参照元 CDlgTagJumpList::find_key().

#define _tcsncmp_literal strncmp_literal

string_ex.h の 268 行で定義されています。

参照元 CCommandLine::ParseCommandLine().

#define strncmp_literal | ( | strData1,
 |  | literalData2 | ) | ::strncmp(strData1, literalData2, _countof(literalData2) - 1 )

string_ex.h の 261 行で定義されています。

#define wcsncmp_literal | ( | strData1,
 |  | literalData2 | ) | ::wcsncmp(strData1, literalData2, _countof(literalData2) - 1 )

string_ex.h の 257 行で定義されています。

参照元 CEditDoc::MakeFuncList_Perl(), CEditDoc::MakeFuncList_python(), と CCppPreprocessMng::ScanLine().

型定義

typedef int error_t

string_ex.h の 106 行で定義されています。

関数

size_t _mbstotcs | ( | TCHAR * | tszDst,
 |  | const CHAR * | szSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 464 行で定義されています。

参照元 CConvert_UuDecode::UUDECODE().

template<>
wchar_t* _tcscpy | ( | wchar_t * | dst,
 |  | const wchar_t * | src |
 | ) |  |  | [inline]

string_ex.h の 279 行で定義されています。

template<>
char* _tcscpy | ( | char * | dst,
 |  | const char * | src |
 | ) |  |  | [inline]

string_ex.h の 278 行で定義されています。

template<class T>
T* _tcscpy | ( | T * | dst,
 |  | const T * | src |
 | ) |  |  | [inline]

参照元 CMRU::Add(), CFileExt::AppendExtRaw(), CDlgFavorite::CDlgFavorite(), CDlgGrep::CDlgGrep(), CDlgOpenFile::CDlgOpenFile(), CDlgTagsMake::CDlgTagsMake(), CFileExt::CFileExt(), CFuncKeyWnd::CFuncKeyWnd(), CViewCommander::Command_BASE64DECODE(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_Diff(), CViewCommander::Command_Diff_Dialog(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_LOADKEYMACRO(), CViewCommander::Command_RECKEYMACRO(), CViewCommander::Command_SAVEKEYMACRO(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagJumpByTagsFileKeyword(), CViewCommander::Command_TagsMake(), CFileExt::ConvertTypesExtToDlgExt(), CRecentCmd::CopyItem(), CDlgOpenFile::Create(), CEditView::CreatePopUpMenu_R(), CMainToolBar::CreateToolBar(), CWSHMacroManager::Creator(), CWnd::CWnd(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CPropTypes::DispatchEvent_p1(), CPropCommon::DispatchEvent_p10(), CPropTypes::DispatchEvent_p2(), CPropCommon::DispatchEvent_p7(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispatchEvent_PROP_BACKUP(), CEditView::DoGrep(), CDlgTagsMake::DoModal(), CDlgInput1::DoModal(), CDlgGrep::DoModal(), CDlgDiff::DoModal(), CCaret::DrawCaretPosInfo(), CMenuDrawer::DrawItem(), CRuler::DrawRulerBg(), CShareData::ExpandMetaToFolder(), CEditDoc::FileRead(), CEditDoc::FileSaveAs_Dialog(), CDlgTagJumpList::find_key(), CEditDoc::FormatBackUpPath(), CDlgTagsMake::GetData(), CDlgGrep::GetData(), CDlgDiff::GetData(), CDlgCompare::GetData(), CPropTypes::GetData_KeyHelp(), GetDateTimeFormat(), CShareData::GetDocumentTypeExt(), CFileExt::GetExtFilter(), CEditDoc::GetFileInfo(), GetLongFileName(), CShareData::GetMacroFilename(), CKeyBind::GetMenuLabel(), CDlgTagJumpList::GetNameByType(), CPrint::GetPaperName(), CSortedTagJumpList::GetParam(), CShareData::GetTransformFileNameFast(), CPropTypes::Import_KeyHelp(), CShareData::Init(), CNormalProcess::Initialize(), CEditWnd::InitMenubarMessageFont(), CShareData::InitTypeConfig(), CEditDoc::MakeBackUp(), CEditView::MakeDiffTmpFile(), CMigemo::migemo_load_all(), OFNHookProc(), CDlgPrintSetting::OnBnClicked(), CDlgExec::OnBnClicked(), CDlgDiff::OnBnClicked(), CEditWnd::OnDropFiles(), OnFolderProc(), CMenuDrawer::OnMenuChar(), CTabWnd::OnMouseMove(), CPrintPreview::OnPaint(), CPrintPreview::OnPrint(), CTabWnd::Open(), CEditView::OPEN_ExtFromtoExt(), CEditWnd::OpenDocumentWhenCreate(), CEditDoc::OpenFile(), CPropTypes::p3_Import_Colors(), CPropCommon::p5_Export_KeySetting(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p7_Export_List_KeyWord(), CPropCommon::p7_Import_List_KeyWord(), CCommandLine::ParseCommandLine(), CTabWnd::Refresh(), CDlgFavorite::RefreshList(), CEditDoc::SaveFileDialog(), CDlgTagJumpList::SearchBestTag(), SelectDir(), CDlgTagsMake::SetData(), CDlgExec::SetData(), CDlgCtrlCode::SetData(), CEditDoc::SetFilePath(), CShareData::SetKeyNameArrVal(), CPrintPreview::SetPreviewFontHan(), CPrintPreview::SetPreviewFontZen(), CPrint::SettingInitialize(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_Mru(), CShareData::ShareData_IO_Print(), SplitPath_FolderAndFile(), CTabWnd::TabWindowNotify(), CEditView::TagJumpSub(), CEditView::ViewDiffInfo(), と CEditWnd::WinListMenu().

size_t _tcstombs | ( | CHAR * | szDst,
 |  | const TCHAR * | tszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 455 行で定義されています。

size_t _tcstowcs | ( | WCHAR * | wszDst,
 |  | const TCHAR * | tszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 451 行で定義されています。

参照先 mbstowcs2().

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply(), CWSHMacroManager::Creator(), CPropTypes::GetData_Regex(), CPropTypes::Import_Regex(), CEditWnd::OnMouseMove(), CFuncLookup::Pos2FuncName(), PropSheetWndProc(), ResolveShortcutLink(), と CShareData::ShareData_IO_KeyBind().

int _tctomb | ( | const TCHAR * | p,
 |  | ACHAR * | mb
 | ) |  |

string_ex.cpp の 469 行で定義されています。

参照先 _IS_SJIS_1.

参照元 CPropCommon::DispatchEvent_p8().

int _tctowc | ( | const TCHAR * | p,
 |  | WCHAR * | wc
 | ) |  |

string_ex.cpp の 475 行で定義されています。

参照先 _IS_SJIS_1.

size_t _wcstotcs | ( | TCHAR * | tszDst,
 |  | const WCHAR * | wszSrc,
 |  | size_t | nDstCount
 | ) |  |

string_ex.cpp の 460 行で定義されています。

参照先 wcstombs2().

参照元 CPropTypes::DispatchEvent_KeyHelp(), CEditWnd::GetTooltipText(), CPropTypes::Import_Regex(), CEditDoc::SetParentCaption(), と CShareData::ShareData_IO_Types().

int amemcmp | ( | const ACHAR * | p1,
 |  | const ACHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 31 行で定義されています。

参照元 auto_memcmp().

int amemicmp | ( | const ACHAR * | p1,
 |  | const ACHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 34 行で定義されています。

参照先 memicmp.

参照元 auto_memicmp().

long auto_atol ( const WCHAR * str ) [inline]

string_ex.h の 191 行で定義されています。

long auto_atol ( const ACHAR * str ) [inline]

string_ex.h の 190 行で定義されています。

参照元 CPropCommon::p5_Import_KeySetting().

int auto_memcmp | ( | const WCHAR * | p1,
 |  | const WCHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 157 行で定義されています。

int auto_memcmp | ( | const ACHAR * | p1,
 |  | const ACHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 156 行で定義されています。

参照先 amemcmp().

参照元 CKeyWordSetMgr::CleanKeyWords(), CPropCommon::DispatchEvent_p5(), CEOL::GetEOLType(), CEOL::GetEOLTypeUni(), CEOL::GetEOLTypeUniBE(), CDicMgr::HokanSearch(), CEditView::HokanSearchByFile(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), IsURL(), CEditDoc::MakeTopicList_txt(), CDocLineMgr::MarkSearchWord(), CPropCommon::p7_Import_List_KeyWord(), CNativeA::Replace(), CDocLineMgr::SearchWord(), と CConvert_UuDecode::UUDECODE().

WCHAR* auto_memcpy | ( | WCHAR * | dest,
 |  | const WCHAR * | src,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 149 行で定義されています。

ACHAR* auto_memcpy | ( | ACHAR * | dest,
 |  | const ACHAR * | src,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 148 行で定義されています。

参照元 CMacro::AddStringParam(), CViewCommander::Command_MENU_RBUTTON(), CTipWnd::ComputeWindowSize(), CEditView::CreatePopUpMenu_R(), CEditWnd::DispatchEvent(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), CTipWnd::DrawTipText(), CKeyMacroMgr::LoadKeyMacro(), CEditDoc::MakeFuncList_VisualBasic(), CDocLineMgr::ReplaceData(), SetClipboardTextImp(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_KeyWords(), strncpy_ex(), CNativeA::TABToSPACE(), と wcs_pushW().

int auto_memicmp | ( | const WCHAR * | p1,
 |  | const WCHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 159 行で定義されています。

参照先 wmemicmp().

int auto_memicmp | ( | const ACHAR * | p1,
 |  | const ACHAR * | p2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 158 行で定義されています。

参照先 amemicmp().

参照元 CCommandLine::CheckCommandLine(), CKeyWordSetMgr::CleanKeyWords(), CDicMgr::HokanSearch(), CEditView::HokanSearchByFile(), CEditView::IsSearchString(), CJis::JIStoSJIS(), CEditDoc::MakeTopicList_cobol(), CLineComment::Match(), CBlockComment::Match_CommentFrom(), CBlockComment::Match_CommentTo(), stristr(), と wcsistr().

WCHAR* auto_memset | ( | WCHAR * | dest,
 |  | WCHAR | c,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 153 行で定義されています。

ACHAR* auto_memset | ( | ACHAR * | dest,
 |  | ACHAR | c,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 152 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp(), CPropCommon::DispatchEvent_p5(), CPropTypes::DispatchEvent_Regex(), CConvert_TabToSpace::DoConvert(), CPropTypes::Export_Regex(), CCommandLine::ParseCommandLine(), CEditWnd::PrintMenubarMessage(), ReadRegistry(), CDlgFavorite::RefreshListOne(), CDlgFuncList::SetListVB(), と CNativeA::TABToSPACE().

int auto_snprintf | ( | WCHAR * | buf,
 |  | size_t | count,
 |  | const WCHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 195 行で定義されています。

参照先 tchar_vswprintf_s().

int auto_snprintf | ( | ACHAR * | buf,
 |  | size_t | count,
 |  | const ACHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 194 行で定義されています。

参照先 tchar_vsprintf_s().

参照元 GetExedir(), GetInidir(), CShareData::GetIniFileName(), と CShareData::GetIniFileNameDirect().

int auto_sprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 197 行で定義されています。

参照先 tchar_vswprintf().

int auto_sprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 196 行で定義されています。

参照先 tchar_vsprintf().

参照元 AssertError(), CEditDoc::CheckFileTimeStamp(), CViewCommander::Command_COPYTAG(), CViewCommander::Command_CUSTMENU(), CViewCommander::Command_GREP(), CViewCommander::Command_INDENT(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_TagJumpByTagsFile(), CViewCommander::Command_TagJumpByTagsFileKeyword(), CViewCommander::Command_TagsMake(), CDlgOpenFile::Create(), CPrint::CreateDC(), CKeyBind::CreateKeyBindList(), CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CEditView::CreatePopUpMenu_R(), CControlTray::CreateTrayIcon(), CControlTray::DispatchEvent(), CPropCommon::DispatchEvent_p8(), CPropCommon::DispKeywordCount(), CEditView::DoGrep(), CControlTray::DoGrep(), CCaret::DrawCaretPosInfo(), CPrintPreview::DrawPageText(), CPropCommon::DrawToolBarItemList(), CDlgTagJumpList::find_key(), CEditDoc::FormatBackUpPath(), CDocLineMgr::GetBookMarks(), CPPA::GetDeclarations(), CFileExt::GetExtFilter(), CEditView::GetSelectedData(), CPPA::GetVersion(), CMacro::HandleCommand(), CShareData::Init(), CPropCommon::InitDialog_PROP_Macro(), CShareData::IO_ColorSet(), IsLocalDrive(), CEditDoc::MakeBackUp(), CEditDoc::MakeFuncList_Java(), CBregexp::MakePattern(), MakeRGBStr(), CEditDoc::MakeTopicList_cobol(), CEditDoc::MakeTopicList_tex(), CEditDoc::MakeTopicList_wztxt(), CEditWnd::OnDropFiles(), CDlgAbout::OnInitDialog(), CPrintPreview::OnPaint(), CPrintPreview::OnPreviewGoDirectPage(), CPrintPreview::OnPreviewGoPage(), CPrintPreview::OnPreviewZoom(), CPrintPreview::OnPrint(), CWSHSite::OnScriptError(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenFile(), CControlTray::OpenNewEditor(), CControlTray::OpenNewEditor2(), CPropCommon::p5_Import_KeySetting(), CPropCommon::p8_Import_CustMenuSetting(), CPrint::PrintOpen(), CViewSelect::PrintSelectionInfoMsg(), CDlgFavorite::RefreshList(), CDlgTypeList::SetData(), CDlgProperty::SetData(), CDlgPrintPage::SetData(), CDlgJump::SetData(), CDlgFuncList::SetData(), CDlgDiff::SetData(), CDlgCtrlCode::SetData(), CDlgCompare::SetData(), CPropTypes::SetData_p3_new(), CPropCommon::SetData_p8(), CDlgFavorite::SetDataOne(), CDlgFuncList::SetListVB(), CDlgFuncList::SetTree(), CDlgFuncList::SetTreeJava(), CShareData::ShareData_IO_Cmd(), CShareData::ShareData_IO_Common(), CShareData::ShareData_IO_CustMenu(), 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(), CProcessFactory::StartControlProcess(), CPPA::stdError(), CDlgTagJumpList::UpdateData(), CEditView::ViewDiffInfo(), と CEditWnd::WinListMenu().

int auto_sprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 199 行で定義されています。

参照先 tchar_vswprintf_s().

int auto_sprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  |  | ... |
 | ) |  |  | [inline]

string_ex.h の 198 行で定義されています。

参照先 tchar_vsprintf_s().

WCHAR* auto_strchr | ( | WCHAR * | str,
 |  | WCHAR | c |
 | ) |  |  | [inline]

string_ex.h の 181 行で定義されています。

ACHAR* auto_strchr | ( | ACHAR * | str,
 |  | ACHAR | c |
 | ) |  |  | [inline]

string_ex.h の 180 行で定義されています。

参照先 strchr_j().

const WCHAR* auto_strchr | ( | const WCHAR * | str,
 |  | WCHAR | c |
 | ) |  |  | [inline]

string_ex.h の 179 行で定義されています。

const ACHAR* auto_strchr | ( | const ACHAR * | str,
 |  | ACHAR | c |
 | ) |  |  | [inline]

string_ex.h の 178 行で定義されています。

参照先 strchr_j().

参照元 CEditDoc::FormatBackUpPath(), my_strtok(), my_va_forward(), と CPropCommon::p5_Import_KeySetting().

int auto_strcmp | ( | const WCHAR * | str1,
 |  | const WCHAR * | str2 |
 | ) |  |  | [inline]

string_ex.h の 185 行で定義されています。

int auto_strcmp | ( | const ACHAR * | str1,
 |  | const ACHAR * | str2 |
 | ) |  |  | [inline]

string_ex.h の 184 行で定義されています。

参照元 _CompareFunc_(), CSMacroMgr::GetFuncInfoByName(), と CPropTypes::Import_Regex().

WCHAR* auto_strcpy | ( | WCHAR * | dst,
 |  | const WCHAR * | src |
 | ) |  |  | [inline]

string_ex.h の 163 行で定義されています。

ACHAR* auto_strcpy | ( | ACHAR * | dst,
 |  | const ACHAR * | src |
 | ) |  |  | [inline]

string_ex.h の 162 行で定義されています。

参照元 CKeyBind::CreateKeyBindList(), CPropCommon::DispatchEvent_p8(), CDlgInput1::DoModal(), CPropCommon::DrawToolBarItemList(), CSMacroMgr::GetFuncInfoByID(), CPropCommon::p5_Import_KeySetting(), CPropCommon::SetData_p8(), CShareData::ShareData_IO_Types(), と StaticString< TCHAR, _MAX_PATH >::StaticString().

errno_t auto_strcpy_s | ( | WCHAR * | dst,
 |  | size_t | nDstCount,
 |  | const WCHAR * | src |
 | ) |  |  | [inline]

string_ex.h の 165 行で定義されています。

errno_t auto_strcpy_s | ( | ACHAR * | dst,
 |  | size_t | nDstCount,
 |  | const ACHAR * | src |
 | ) |  |  | [inline]

string_ex.h の 164 行で定義されています。

参照元 StaticString< TCHAR, _MAX_PATH >::operator=(), StringBufferA::operator=(), と StringBufferW::operator=().

size_t auto_strlen ( const WCHAR * str ) [inline]

string_ex.h の 171 行で定義されています。

size_t auto_strlen ( const ACHAR * str ) [inline]

string_ex.h の 170 行で定義されています。

参照元 CMacro::AddStringParam(), CPropTypes::Import_Regex(), と CKeyMacroMgr::LoadKeyMacro().

int auto_strncmp | ( | const WCHAR * | str1,
 |  | const WCHAR * | str2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 187 行で定義されています。

int auto_strncmp | ( | const ACHAR * | str1,
 |  | const ACHAR * | str2,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 186 行で定義されています。

WCHAR* auto_strncpy | ( | WCHAR * | dst,
 |  | const WCHAR * | src,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 167 行で定義されています。

ACHAR* auto_strncpy | ( | ACHAR * | dst,
 |  | const ACHAR * | src,
 |  | size_t | count |
 | ) |  |  | [inline]

string_ex.h の 166 行で定義されています。

参照元 tchar_vsprintf_s_imp().

WCHAR* auto_strstr | ( | WCHAR * | str,
 |  | const WCHAR * | strSearch |
 | ) |  |  | [inline]

string_ex.h の 177 行で定義されています。

ACHAR* auto_strstr | ( | ACHAR * | str,
 |  | const ACHAR * | strSearch |
 | ) |  |  | [inline]

string_ex.h の 176 行で定義されています。

参照先 strstr_j().

const WCHAR* auto_strstr | ( | const WCHAR * | str,
 |  | const WCHAR * | strSearch |
 | ) |  |  | [inline]

string_ex.h の 175 行で定義されています。

const ACHAR* auto_strstr | ( | const ACHAR * | str,
 |  | const ACHAR * | strSearch |
 | ) |  |  | [inline]

string_ex.h の 174 行で定義されています。

参照先 strstr_j().

参照元 CPropTypes::Import_Regex().

int auto_vsprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  | va_list & | v |
 | ) |  |  | [inline]

string_ex.h の 201 行で定義されています。

参照先 tchar_vswprintf().

int auto_vsprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  | va_list & | v |
 | ) |  |  | [inline]

string_ex.h の 200 行で定義されています。

参照先 tchar_vsprintf().

参照元 CShareData::TraceOut(), と VMessageBoxF_W().

int auto_vsprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  | va_list & | v |
 | ) |  |  | [inline]

string_ex.h の 203 行で定義されています。

参照先 tchar_vswprintf_s().

int auto_vsprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  | va_list & | v |
 | ) |  |  | [inline]

string_ex.h の 202 行で定義されています。

参照先 tchar_vsprintf_s().

参照元 CTextOutputStream::WriteF().

size_t mbstowcs2 | ( | wchar_t * | pDst,
 |  | int | nDstCount,
 |  | const char * | pSrc,
 |  | int | nSrcCount
 | ) |  |

string_ex.cpp の 252 行で定義されています。

size_t mbstowcs2 | ( | wchar_t * | dst,
 |  | const char * | src,
 |  | size_t | dst_count
 | ) |  |

string_ex.cpp の 246 行で定義されています。

参照元 _tcstowcs(), と ApiWrap::LoadStringW_AnyBuild().

wchar_t* mbstowcs_new | ( | const char * | pSrc,
 |  | int | nSrcLen
 | ) |  |

string_ex.cpp の 283 行で定義されています。

参照先 NULL.

wchar_t* mbstowcs_new ( const char * pszSrc )

string_ex.cpp の 275 行で定義されています。

参照先 NULL.

参照元 CNativeW::AppendStringOld(), CMyString::set(), と CPPA::stdProc().

void mbstowcs_vector | ( | const char * | pSrc,
 |  | int | nSrcLen,
 |  | std::vector< wchar_t > * | ret
 | ) |  |

string_ex.cpp の 358 行で定義されています。

参照先 NULL.

void mbstowcs_vector | ( | const char * | src,
 |  | std::vector< wchar_t > * | ret
 | ) |  |

string_ex.cpp の 352 行で定義されています。

参照先 mbstowcs_vector().

参照元 mbstowcs_vector(), と CEditView::MySetClipboardData().

void* memcpy_raw | ( | void * | dest,
 |  | const void * | src,
 |  | size_t | size |
 | ) |  |  | [inline]

string_ex.h の 40 行で定義されています。

参照元 CShareData::AddEditWndList(), CViewCommander::Command_COMPARE(), CViewCommander::Command_TAGJUMPBACK(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::CopyItem(), CRecentFile::CopyItem(), CKeyWordSetMgr::DelKeyWordSet(), CPropCommon::DispatchEvent_p10(), CDataObject::GetData(), CDataObject::GetDataHere(), GetGlobalData(), CShareData::InitToolButtons(), CRecentImp< DATA_TYPE, RECEIVE_TYPE >::MoveItem(), CDlgFuncList::OnJump(), CKeyWordSetMgr::operator=(), CPropCommon::p5_Import_KeySetting(), CDataObject::SetText(), と CEditView::TagJumpSub().

void* memset_raw | ( | void * | dest,
 |  | int | c,
 |  | size_t | size |
 | ) |  |  | [inline]

string_ex.h の 39 行で定義されています。

参照元 CShareData::AddEditWndList(), CDlgFavorite::CDlgFavorite(), CFuncKeyWnd::CFuncKeyWnd(), CPropCommon::CheckListPosition_Macro(), COsVersionInfo::COsVersionInfo(), CMainToolBar::CreateToolBar(), CPropCommon::DispatchEvent_p10(), CPrintPreview::DispatchEvent_PPB(), CPropTypes::DoPropertySheet(), CMenuDrawer::DrawItem(), CRuler::DrawRulerBg(), CPrint::GetDefaultPrinter(), CShareData::Init(), CPropCommon::InitDialog_PROP_Macro(), CEditWnd::InitMenubarMessageFont(), CMenuDrawer::MyAppendMenu(), CMenuDrawer::OnMenuChar(), CPrintPreview::OnPrint(), CPrint::PrintOpen(), CDlgFavorite::RefreshListOne(), CPropCommon::SetMacro2List_Macro(), と CRecentImp< DATA_TYPE, RECEIVE_TYPE >::ZeroItem().

SAKURA_CORE_API int my_iskanji1 ( int c )

日本語１バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字１バイト目である
0 | 漢字１バイト目ではない

string_ex.cpp の 43 行で定義されています。

参照元 strchr_j(), strichr_j(), stristr_j(), と strstr_j().

SAKURA_CORE_API int my_iskanji2 ( int c )

日本語２バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字２バイト目である
0 | 漢字２バイト目ではない

string_ex.cpp の 56 行で定義されています。

SAKURA_CORE_API int __cdecl my_stricmp | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

大文字小文字を同一視する文字列比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
戻り値:
0 一致

string_ex.cpp の 73 行で定義されています。

参照先 my_internal_icmp().

SAKURA_CORE_API int __cdecl my_strnicmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | size_t | n
 | ) |  |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
戻り値:
0 一致

string_ex.cpp の 87 行で定義されています。

参照先 my_internal_icmp().

参照元 stristr_j().

template<class CHAR_TYPE>
CHAR_TYPE* my_strtok | ( | CHAR_TYPE * | pBuffer,
 |  | int | nLen,
 |  | int * | pnOffset,
 |  | const CHAR_TYPE * | pDelimiter |
 | ) |  |  | [inline]

string_ex.cpp の 520 行で定義されています。

参照先 auto_strchr(), と NULL.

SAKURA_CORE_API int my_tolower ( int c )

小文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

string_ex.cpp の 30 行で定義されています。

SAKURA_CORE_API int my_toupper ( int c )

大文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

string_ex.cpp の 18 行で定義されています。

参照元 strichr_j().

char* strchr_j | ( | char * | s1,
 |  | char | c |
 | ) |  |  | [inline]

string_ex.h の 122 行で定義されています。

参照先 strchr_j().

const char* strchr_j | ( | const char * | str,
 |  | char | c
 | ) |  |

strchr の日本語対応版。

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strchr→strchr_j

string_ex.cpp の 187 行で定義されています。

参照先 my_iskanji1(), と NULL.

参照元 auto_strchr(), と strchr_j().

char* strichr_j | ( | char * | s1,
 |  | char | c |
 | ) |  |  | [inline]

string_ex.h の 123 行で定義されています。

参照先 strichr_j().

const char* strichr_j | ( | const char * | s1,
 |  | char | c2
 | ) |  |

strchr の大文字小文字同一視＆日本語対応版。

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strchri→strichr_j

string_ex.cpp の 171 行で定義されています。

参照先 my_iskanji1(), my_toupper(), と NULL.

参照元 strichr_j().

ACHAR* stristr | ( | ACHAR * | s1,
 |  | const ACHAR * | s2 |
 | ) |  |  | [inline]

string_ex.h の 90 行で定義されています。

参照先 stristr().

const ACHAR* stristr | ( | const ACHAR * | s1,
 |  | const ACHAR * | s2
 | ) |  |

string_ex.cpp の 117 行で定義されています。

参照先 auto_memicmp(), と NULL.

参照元 stristr().

char* stristr_j | ( | char * | s1,
 |  | const char * | s2 |
 | ) |  |  | [inline]

string_ex.h の 125 行で定義されています。

参照先 stristr_j().

const char* stristr_j | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

strstr の大文字小文字同一視＆日本語対応版。

strstr()の大文字小文字同一視版

覚え書き:
Windows APIにあるStrStrIはIE4が入っていないPCでは使用不可のため 独自に作成
日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strstri→stristr_j

string_ex.cpp の 224 行で定義されています。

参照先 my_iskanji1(), my_strnicmp(), と NULL.

参照元 stristr_j().

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

string_ex2.cpp の 22 行で定義されています。

参照先 auto_memcpy().

char* strstr_j | ( | char * | s1,
 |  | const char * | s2 |
 | ) |  |  | [inline]

string_ex.h の 124 行で定義されています。

参照先 strstr_j().

const char* strstr_j | ( | const char * | s1,
 |  | const char * | s2
 | ) |  |

strstr の日本語対応版。

strstr()の2byte code対応版

日付:
2005.04.07 MIK 新規作成

2007.10.21 kobake 関数名変更: my_strstr→strstr_j

string_ex.cpp の 204 行で定義されています。

参照先 my_iskanji1(), と NULL.

参照元 auto_strstr(), と strstr_j().

error_t wcscat_s | ( | wchar_t * | szDst,
 |  | size_t | nDstCount,
 |  | const wchar_t * | szSrc
 | ) |  |

string_ex.cpp の 136 行で定義されています。

LPWSTR wcscpyn | ( | LPWSTR | lpString1,
 |  | LPCWSTR | lpString2,
 |  | int | iMaxLength
 | ) |  |

string_ex.cpp の 96 行で定義されています。

WCHAR* wcsistr | ( | WCHAR * | s1,
 |  | const WCHAR * | s2 |
 | ) |  |  | [inline]

string_ex.h の 89 行で定義されています。

参照先 wcsistr().

const WCHAR* wcsistr | ( | const WCHAR * | s1,
 |  | const WCHAR * | s2
 | ) |  |

string_ex.cpp の 105 行で定義されています。

参照先 auto_memicmp(), と NULL.

参照元 wcsistr().

int wcsncmp_auto | ( | const wchar_t * | strData1,
 |  | const wchar_t * | szData2 |
 | ) |  |  | [inline]

string_ex.h の 251 行で定義されています。

size_t wcstombs2 | ( | char * | dst,
 |  | const wchar_t * | src,
 |  | size_t | dst_count
 | ) |  |

string_ex.cpp の 267 行で定義されています。

参照元 _wcstotcs(), と CMigemo::migemo_load_w().

char* wcstombs_new | ( | const wchar_t * | pSrc,
 |  | int | nSrcLen
 | ) |  |

string_ex.cpp の 318 行で定義されています。

参照先 NULL.

char* wcstombs_new ( const wchar_t * src )

string_ex.cpp の 313 行で定義されています。

参照先 wcstombs_new().

参照元 CNativeA::AppendStringNew(), CMyString::c_astr(), CNativeA::SetStringNew(), と wcstombs_new().

void wcstombs_vector | ( | const wchar_t * | pSrc,
 |  | int | nSrcLen,
 |  | std::vector< char > * | ret
 | ) |  |

string_ex.cpp の 391 行で定義されています。

参照先 NULL.

void wcstombs_vector | ( | const wchar_t * | pSrc,
 |  | std::vector< char > * | ret
 | ) |  |

string_ex.cpp の 387 行で定義されています。

参照先 wcstombs_vector().

参照元 ApiWrap::GetTextExtentPoint32W_AnyBuild(), と wcstombs_vector().

int wmemicmp | ( | const WCHAR * | p1,
 |  | const WCHAR * | p2,
 |  | size_t | count
 | ) |  |

string_ex.cpp の 487 行で定義されています。

参照元 auto_memicmp().

Sakura-Editorに対してSat Nov 17 20:27:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex.h ソースファイル

sakura_core » util

string_ex.h

説明を見る。
00001 #pragma once
00002
00003 // 2007.10.19 kobake
00004 // string.h で定義されている関数を拡張したようなモノ達
00005
00006
00007 /*
00008     ++ ++ 命名参考(規則では無い) ++ ++
00009
00010     標準関数から引用
00011     〜_s:  バッファオーバーフロー考慮版 (例: strcpy_s)
00012     〜i〜: 大文字小文字区別無し版       (例: stricmp)
00013
00014     独自
00015     auto_〜:  引数の型により、自動で処理が決定される版 (例: auto_strcpy)
00016 */
00017
00018 #include "util/tchar_printf.h"
00019
00020 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00021 //                          メモリ                             //
00022 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00023 // 文字列コピーや文字列比較の際に、mem系関数が使われている箇所が多々ありますが、
00024 // mem系関数はvoidポインタを受け取り、型チェックが行われないので危険です。
00025 // ここに、型チェック付きのmem系互換の関数を作成しました。…と書いたけど、実際のプロトタイプはもっと下のほうに。。(auto_mem〜)
00026 // (※対象がメモリなので、そもそも文字という概念は無いが、
00027 //    便宜上、ACHAR系では1バイト単位を、WCHAR系では2バイト単位を、
00028 //    文字とみなして処理を行う、ということで)
00029
00030 //メモリ比較
00031 inline int amemcmp(const ACHAR* p1, const ACHAR* p2, size_t count){ return ::memcmp(p1,p2,count); }
00032
00033 //大文字小文字を区別せずにメモリ比較
00034 inline int amemicmp(const ACHAR* p1, const ACHAR* p2, size_t count){ return ::memicmp(p1,p2,count); }
00035        int wmemicmp(const WCHAR* p1, const WCHAR* p2, size_t count);
00036
00037 //元の関数と同じシグニチャ版。
00038 //文字列以外のメモリ処理でmem〜系関数を使う場面では、この関数を使っておくと、意味合いがはっきりして良い。
00039 inline void* memset_raw(void* dest, int c, size_t size){ return ::memset(dest,c,size); }
00040 inline void* memcpy_raw(void* dest, const void* src, size_t size){ return ::memcpy(dest,src,size); }
00041
00042
00043 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00044 //                           文字                              //
00045 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00046
00047 //文字変換
00048 SAKURA_CORE_API int my_toupper( int c );
00049 SAKURA_CORE_API int my_tolower( int c );
00050
00051 //文字判定
00052 SAKURA_CORE_API int my_iskanji1( int c );
00053 SAKURA_CORE_API int my_iskanji2( int c );
00054
00055
00056 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00057 //                         独自実装                            //
00058 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00059 // シグニチャおよび動作仕様は変わらないけど、
00060 // コンパイラと言語指定によって不正動作をしてしまうことを回避するために
00061 // 独自に実装し直したもの。
00062
00063 SAKURA_CORE_API int __cdecl my_stricmp( const char *s1, const char *s2 );
00064 SAKURA_CORE_API int __cdecl my_strnicmp( const char *s1, const char *s2, size_t n );
00065
00066
00067 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00068 //                           拡張                              //
00069 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00070
00071 //文字数の上限付きコピー
00072 LPWSTR wcscpyn(LPWSTR lpString1,LPCWSTR lpString2,int iMaxLength); //iMaxLengthは文字単位。
00073
00074 //大文字小文字を区別せずに文字列を検索
00075 const WCHAR* wcsistr( const WCHAR* s1, const WCHAR* s2 );
00076 const ACHAR* stristr( const ACHAR* s1, const ACHAR* s2 );
00077
00078 template <class CHAR_TYPE>
00079 CHAR_TYPE* my_strtok(
00080     CHAR_TYPE*          pBuffer,    //[in] 文字列バッファ(終端があること)
00081     int                 nLen,       //[in] 文字列の長さ
00082     int*                pnOffset,   //[in/out] オフセット
00083     const CHAR_TYPE*    pDelimiter  //[in] 区切り文字
00084 );
00085 //SAKURA_CORE_API TCHAR* my_strtok( TCHAR*, int, int*, const TCHAR* );
00086 //SAKURA_CORE_API WCHAR* my_strtokW( WCHAR* pBuffer, int nLen, int* pnOffset, const WCHAR* pDelimiter );
00087
00088 //非const版
00089 inline WCHAR* wcsistr( WCHAR* s1, const WCHAR* s2 ){ return const_cast<WCHAR*>(wcsistr(static_cast<const WCHAR*>(s1),s2)); }
00090 inline ACHAR* stristr( ACHAR* s1, const ACHAR* s2 ){ return const_cast<ACHAR*>(stristr(static_cast<const ACHAR*>(s1),s2)); }
00091
00092 //TCHAR
00093 #ifdef _UNICODE
00094 #define _tcsistr wcsistr
00095 #else
00096 #define _tcsistr stristr
00097 #endif
00098
00099
00100 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00101 //                           互換                              //
00102 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00103
00104 // VS2005以降の安全版文字列関数
00105 #if _MSC_VER<1400 //VS2005より前なら
00106     typedef int error_t;
00107     error_t wcscat_s(wchar_t* szDst, size_t nDstCount, const wchar_t* szSrc);
00108
00109 #endif
00110
00111 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00112 //                        日本語対応                           //
00113 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00114
00115 const char* strchr_j(const char* s1, char c);
00116 const char* strichr_j( const char* s1, char c );
00117
00118 const char* strstr_j(const char* s1, const char* s2);
00119 const char* stristr_j( const char* s1, const char* s2 );
00120
00121 //非const版
00122 inline char* strchr_j ( char* s1, char c         ){ return const_cast<char*>(strchr_j ((const char*)s1, c )); }
00123 inline char* strichr_j( char* s1, char c         ){ return const_cast<char*>(strichr_j((const char*)s1, c )); }
00124 inline char* strstr_j ( char* s1, const char* s2 ){ return const_cast<char*>(strstr_j ((const char*)s1, s2)); }
00125 inline char* stristr_j( char* s1, const char* s2 ){ return const_cast<char*>(stristr_j((const char*)s1, s2)); }
00126
00127 //TCHAR
00128 #ifdef _UNICODE
00129 #define _tcsistr_j wcsistr
00130 #else
00131 #define _tcsistr_j stristr_j
00132 #endif
00133
00134 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00135 //                          auto系                             //
00136 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00137 //char型にするかwchar_t型にするか確定しない変数があります。
00138 //下記関数群を使って文字列操作を行った場合、
00139 //将来、その変数の型が変わっても、その操作箇所を書き直さなくても
00140 //済むことになります。
00141 //
00142 //強制キャストによる使用は推奨しません。
00143 //そもそも、この関数呼び出しに限らず、強制キャストは最低限に留めてください。
00144 //せっかくの、C++の厳格な型チェックの恩恵を受けることができなくなります。
00145
00146
00147 //メモリコピー
00148 inline ACHAR* auto_memcpy(ACHAR* dest, const ACHAR* src, size_t count){        ::memcpy (dest,src,count); return dest; }
00149 inline WCHAR* auto_memcpy(WCHAR* dest, const WCHAR* src, size_t count){ return ::wmemcpy(dest,src,count);              }
00150
00151 //メモリセット
00152 inline ACHAR* auto_memset(ACHAR* dest, ACHAR c, size_t count){        memset (dest,c,count); return dest; }
00153 inline WCHAR* auto_memset(WCHAR* dest, WCHAR c, size_t count){ return wmemset(dest,c,count);              }
00154
00155 //メモリ比較
00156 inline int auto_memcmp (const ACHAR* p1, const ACHAR* p2, size_t count){ return amemcmp(p1,p2,count); }
00157 inline int auto_memcmp (const WCHAR* p1, const WCHAR* p2, size_t count){ return wmemcmp(p1,p2,count); }
00158 inline int auto_memicmp(const ACHAR* p1, const ACHAR* p2, size_t count){ return amemicmp(p1,p2,count); }
00159 inline int auto_memicmp(const WCHAR* p1, const WCHAR* p2, size_t count){ return wmemicmp(p1,p2,count); }
00160
00161 //コピー系
00162 inline ACHAR* auto_strcpy(ACHAR* dst, const ACHAR* src){ return strcpy(dst,src); }
00163 inline WCHAR* auto_strcpy(WCHAR* dst, const WCHAR* src){ return wcscpy(dst,src); }
00164 inline errno_t auto_strcpy_s(ACHAR* dst, size_t nDstCount, const ACHAR* src){ return strcpy_s(dst,nDstCount,src); }
00165 inline errno_t auto_strcpy_s(WCHAR* dst, size_t nDstCount, const WCHAR* src){ return wcscpy_s(dst,nDstCount,src); }
00166 inline ACHAR* auto_strncpy(ACHAR* dst,const ACHAR* src,size_t count){ return strncpy(dst,src,count); }
00167 inline WCHAR* auto_strncpy(WCHAR* dst,const WCHAR* src,size_t count){ return wcsncpy(dst,src,count); }
00168
00169 //計算系
00170 inline size_t auto_strlen(const ACHAR* str){ return strlen(str); }
00171 inline size_t auto_strlen(const WCHAR* str){ return wcslen(str); }
00172
00173 //検索系
00174 inline const ACHAR* auto_strstr(const ACHAR* str, const ACHAR* strSearch){ return ::strstr_j(str,strSearch); }
00175 inline const WCHAR* auto_strstr(const WCHAR* str, const WCHAR* strSearch){ return ::wcsstr  (str,strSearch); }
00176 inline       ACHAR* auto_strstr(      ACHAR* str, const ACHAR* strSearch){ return ::strstr_j(str,strSearch); }
00177 inline       WCHAR* auto_strstr(      WCHAR* str, const WCHAR* strSearch){ return ::wcsstr  (str,strSearch); }
00178 inline const ACHAR* auto_strchr(const ACHAR* str, ACHAR c){ return ::strchr_j(str,c); }
00179 inline const WCHAR* auto_strchr(const WCHAR* str, WCHAR c){ return ::wcschr  (str,c); }
00180 inline       ACHAR* auto_strchr(      ACHAR* str, ACHAR c){ return ::strchr_j(str,c); }
00181 inline       WCHAR* auto_strchr(      WCHAR* str, WCHAR c){ return ::wcschr  (str,c); }
00182
00183 //比較系
00184 inline int auto_strcmp(const ACHAR* str1, const ACHAR* str2){ return strcmp(str1,str2); }
00185 inline int auto_strcmp(const WCHAR* str1, const WCHAR* str2){ return wcscmp(str1,str2); }
00186 inline int auto_strncmp(const ACHAR* str1, const ACHAR* str2, size_t count){ return strncmp(str1,str2,count); }
00187 inline int auto_strncmp(const WCHAR* str1, const WCHAR* str2, size_t count){ return wcsncmp(str1,str2,count); }
00188
00189 //変換系
00190 inline long auto_atol(const ACHAR* str){ return atol(str);  }
00191 inline long auto_atol(const WCHAR* str){ return _wtol(str); }
00192
00193 //printf系
00194 inline int auto_snprintf(ACHAR* buf, size_t count, const ACHAR* format, ...)     { va_list v; va_start(v,format); int ret=tchar_vsprintf_s (buf,count,format,v); va_end(v); return ret; }
00195 inline int auto_snprintf(WCHAR* buf, size_t count, const WCHAR* format, ...)     { va_list v; va_start(v,format); int ret=tchar_vswprintf_s(buf,count,format,v); va_end(v); return ret; }
00196 inline int auto_sprintf(ACHAR* buf, const ACHAR* format, ...)                    { va_list v; va_start(v,format); int ret=tchar_vsprintf (buf,format,v); va_end(v); return ret; }
00197 inline int auto_sprintf(WCHAR* buf, const WCHAR* format, ...)                    { va_list v; va_start(v,format); int ret=tchar_vswprintf(buf,format,v); va_end(v); return ret; }
00198 inline int auto_sprintf_s(ACHAR* buf, size_t nBufCount, const ACHAR* format, ...){ va_list v; va_start(v,format); int ret=tchar_vsprintf_s (buf,nBufCount,format,v); va_end(v); return ret; }
00199 inline int auto_sprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, ...){ va_list v; va_start(v,format); int ret=tchar_vswprintf_s(buf,nBufCount,format,v); va_end(v); return ret; }
00200 inline int auto_vsprintf(ACHAR* buf, const ACHAR* format, va_list& v){ return tchar_vsprintf (buf,format,v); }
00201 inline int auto_vsprintf(WCHAR* buf, const WCHAR* format, va_list& v){ return tchar_vswprintf(buf,format,v); }
00202 inline int auto_vsprintf_s(ACHAR* buf, size_t nBufCount, const ACHAR* format, va_list& v){ return tchar_vsprintf_s (buf, nBufCount, format, v); }
00203 inline int auto_vsprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, va_list& v){ return tchar_vswprintf_s(buf, nBufCount, format, v); }
00204
00205
00206 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00207 //                      文字コード変換                         //
00208 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00209
00210 #include <vector>
00211
00212 //SJIS→UNICODE。終端にL'\0'を付けてくれる版。
00213 size_t mbstowcs2(wchar_t* dst,const char* src,size_t dst_count);
00214 size_t mbstowcs2(wchar_t* pDst, int nDstCount, const char* pSrc, int nSrcCount);
00215
00216 //UNICODE→SJIS。終端に'\0'を付けてくれる版。
00217 size_t wcstombs2(char* dst,const wchar_t* src,size_t dst_count);
00218
00219 //SJIS→UNICODE。
00220 wchar_t*    mbstowcs_new(const char* pszSrc);                               //戻り値はnew[]で確保して返す。使い終わったらdelete[]すること。
00221 wchar_t*    mbstowcs_new(const char* pSrc, int nSrcLen);                    //戻り値はnew[]で確保して返す。使い終わったらdelete[]すること。
00222 void        mbstowcs_vector(const char* src, std::vector<wchar_t>* ret);    //戻り値はvectorとして返す。
00223 void        mbstowcs_vector(const char* pSrc, int nSrcLen, std::vector<wchar_t>* ret);  //戻り値はvectorとして返す。
00224
00225 //UNICODE→SJIS
00226 char*   wcstombs_new(const wchar_t* src); //戻り値はnew[]で確保して返す。
00227 char*   wcstombs_new(const wchar_t* pSrc,int nSrcLen); //戻り値はnew[]で確保して返す。
00228 void    wcstombs_vector(const wchar_t* pSrc, std::vector<char>* ret); //戻り値はvectorとして返す。
00229 void    wcstombs_vector(const wchar_t* pSrc, int nSrcLen, std::vector<char>* ret); //戻り値はvectorとして返す。
00230
00231 //TCHAR
00232 size_t _tcstowcs(WCHAR* wszDst, const TCHAR* tszSrc, size_t nDstCount);
00233 size_t _tcstombs(CHAR*  szDst,  const TCHAR* tszSrc, size_t nDstCount);
00234 size_t _wcstotcs(TCHAR* tszDst, const WCHAR* wszSrc, size_t nDstCount);
00235 size_t _mbstotcs(TCHAR* tszDst, const CHAR*  szSrc,  size_t nDstCount);
00236 int _tctomb(const TCHAR* p,ACHAR* mb);
00237 int _tctowc(const TCHAR* p,WCHAR* wc);
00238
00239
00240
00241
00242
00243 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00244 //                       リテラル比較                          //
00245 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
00246 // リテラルとの文字列比較の際に、手打ちで文字数を入力するのは
00247 // 手間が掛かる上に、保守性が損なわれるので、
00248 // カプセル化された関数やマクロに処理を任せるのが望ましい。
00249
00250 //wcsncmpの文字数指定をszData2からwcslenで取得してくれる版
00251 inline int wcsncmp_auto(const wchar_t* strData1, const wchar_t* szData2)
00252 {
00253     return wcsncmp(strData1,szData2,wcslen(szData2));
00254 }
00255
00256 //wcsncmpの文字数指定をliteralData2の大きさで取得してくれる版
00257 #define wcsncmp_literal(strData1, literalData2) \
00258     ::wcsncmp(strData1, literalData2, _countof(literalData2) - 1 ) //※終端ヌルを含めないので、_countofからマイナス1する
00259
00260 //strncmpの文字数指定をliteralData2の大きさで取得してくれる版
00261 #define strncmp_literal(strData1, literalData2) \
00262     ::strncmp(strData1, literalData2, _countof(literalData2) - 1 ) //※終端ヌルを含めないので、_countofからマイナス1する
00263
00264 //TCHAR
00265 #ifdef _UNICODE
00266     #define _tcsncmp_literal wcsncmp_literal
00267 #else
00268     #define _tcsncmp_literal strncmp_literal
00269 #endif
00270
00271
00272
00273
00274
00275 // -- -- -- -- 標準ライブラリラップ -- -- -- -- //
00276
00277 template <class T> T* _tcscpy(T* dst,const T* src);
00278 template <> inline char* _tcscpy(char* dst,const char* src){ return ::strcpy(dst,src); }
00279 template <> inline wchar_t* _tcscpy(wchar_t* dst,const wchar_t* src){ return ::wcscpy(dst,src); }
00280
00281
00282
00283
00284
00285
00286 //  Apr. 03, 2003 genta
00287 char *strncpy_ex(char *dst, size_t dst_count, const char* src, size_t src_count);
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex2.cpp

sakura_core » util

string_ex2.cpp

#include "stdafx.h"
#include "string_ex2.h"
#include "charcode.h"
#include "CEOL.h"

string_ex2.cppのインクルード依存関係図

ソースコードを見る。

関数

char * | strncpy_ex (char *dst, size_t dst_count, const char *src, size_t src_count)
wchar_t * | wcs_pushW (wchar_t *dst, size_t dst_count, const wchar_t *src, size_t src_count)
wchar_t * | wcs_pushW (wchar_t *dst, size_t dst_count, const wchar_t *src)
wchar_t * | wcs_pushA (wchar_t *dst, size_t dst_count, const char *src, size_t src_count)
wchar_t * | wcs_pushA (wchar_t *dst, size_t dst_count, const char *src)
int | cescape (const TCHAR *org, TCHAR *buf, TCHAR cesc, TCHAR cwith)
int | AddLastChar (TCHAR *pszPath, int nMaxLen, TCHAR c)
const char * | GetNextLine (const char *pData, int nDataLen, int *pnLineLen, int *pnBgn, CEOL *pcEol)
const wchar_t * | GetNextLineW (const wchar_t *pData, int nDataLen, int *pnLineLen, int *pnBgn, CEOL *pcEol)
const wchar_t * | GetNextLineWB (const wchar_t *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)
SAKURA_CORE_API int | LimitStringLengthW (const wchar_t *pszData, int nDataLength, int nLimitLength, CNativeW &cmemDes)
データを指定「文字数」以内に切り詰める。戻り値は結果の文字数。
void | GetLineColm (const wchar_t *pLine, int *pnJumpToLine, int *pnJumpToColm)
int | IsNumber (const wchar_t *buf, int offset, int length)

関数

int AddLastChar | ( | TCHAR * | pszPath,
 |  | int | nMaxLen,
 |  | TCHAR | c
 | ) |  |

文字列が指定された文字で終わっていなかった場合には 末尾にその文字を付加する．

引数:
pszPath | [i/o]操作する文字列
nMaxLen | [in]バッファ長
c | [in]追加したい文字
戻り値:
0 | \が元から付いていた
1 | \を付加した
-1 | バッファが足りず、\を付加できなかった
日付:
2003.06.24 Moca 新規作成

string_ex2.cpp の 106 行で定義されています。

参照元 CShareData::GetMacroFilename(), と CShareData::Init().

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対応

string_ex2.cpp の 78 行で定義されています。

参照元 dupamp().

void GetLineColm | ( | const wchar_t * | pLine,
 |  | int * | pnJumpToLine,
 |  | int * | pnJumpToColm
 | ) |  |

string_ex2.cpp の 310 行で定義されています。

参照先 _countof.

参照元 CViewCommander::Command_TAGJUMP().

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 未使用のようだ

string_ex2.cpp の 243 行で定義されています。

参照先 CNativeA::GetSizeOfChar(), と NULL.

const char* GetNextLine | ( | const char * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |  |

string_ex2.cpp の 132 行で定義されています。

参照先 EOL_NONE, CEOL::GetLen(), CEOL::GetTypeFromString(), NULL, と CEOL::SetType().

参照元 CFileLoad::GetNextLineCharCode(), CNativeA::SPACEToTAB(), と CNativeA::TABToSPACE().

const wchar_t* GetNextLineW | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |  |

GetNextLineのwchar_t版 GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

string_ex2.cpp の 167 行で定義されています。

参照先 EOL_NONE, CEOL::GetEOLTypeUni(), CEOL::GetLen(), NULL, と CEOL::SetType().

参照元 CConvert_Trim::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), と CFileLoad::GetNextLineCharCode().

const wchar_t* GetNextLineWB | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |  |

GetNextLineのwchar_t版(ビックエンディアン用) GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

string_ex2.cpp の 201 行で定義されています。

参照先 EOL_NONE, CEOL::GetEOLTypeUniBE(), CEOL::GetLen(), NULL, と CEOL::SetType().

参照元 CFileLoad::GetNextLineCharCode().

int IsNumber | ( | const wchar_t * | buf,
 |  | int | offset,
 |  | int | length
 | ) |  |

string_ex2.cpp の 393 行で定義されています。

参照元 CEditView::DispLineNew().

int LimitStringLengthB | ( | const char * | pszData,
 |  | int | nDataLength,
 |  | int | nLimitLengthB,
 |  | CMemory & | cmemDes
 | ) |  |

string_ex2.cpp の 272 行で定義されています。

参照先 CNativeA::GetSizeOfChar(), と CMemory::SetRawData().

SAKURA_CORE_API int LimitStringLengthW | ( | const wchar_t * | pszData,
 |  | int | nDataLength,
 |  | int | nLimitLength,
 |  | CNativeW & | cmemDes
 | ) |  |

データを指定「文字数」以内に切り詰める。戻り値は結果の文字数。

引数:
pszData | [in]
nDataLength | [in]
nLimitLength | [in]
cmemDes | [out]

string_ex2.cpp の 295 行で定義されています。

参照先 CNativeW::SetString().

参照元 CControlTray::CreatePopUpMenu_L(), と CEditWnd::WinListMenu().

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

string_ex2.cpp の 22 行で定義されています。

参照先 auto_memcpy().

wchar_t* wcs_pushA | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const char * | src
 | ) |  |

string_ex2.cpp の 48 行で定義されています。

参照先 wcs_pushA().

wchar_t* wcs_pushA | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const char * | src,
 |  | size_t | src_count
 | ) |  |

string_ex2.cpp の 44 行で定義されています。

参照先 to_wchar(), と wcs_pushW().

参照元 wcs_pushA().

wchar_t* wcs_pushW | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const wchar_t * | src
 | ) |  |

string_ex2.cpp の 40 行で定義されています。

参照先 wcs_pushW().

wchar_t* wcs_pushW | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const wchar_t * | src,
 |  | size_t | src_count
 | ) |  |

string_ex2.cpp の 32 行で定義されています。

参照先 auto_memcpy().

参照元 wcs_pushA(), と wcs_pushW().

Sakura-Editorに対してSat Nov 17 20:27:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex2.cpp ソースファイル

sakura_core » util

string_ex2.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "string_ex2.h"
00003 #include "charcode.h"
00004 #include "CEOL.h"
00005
00022 char *strncpy_ex(char *dst, size_t dst_count, const char* src, size_t src_count)
00023 {
00024     if( src_count >= dst_count ){
00025         src_count = dst_count - 1;
00026     }
00027     auto_memcpy( dst, src, src_count );
00028     return dst + src_count;
00029 }
00030
00031
00032 wchar_t *wcs_pushW(wchar_t *dst, size_t dst_count, const wchar_t* src, size_t src_count)
00033 {
00034     if( src_count >= dst_count ){
00035         src_count = dst_count - 1;
00036     }
00037     auto_memcpy( dst, src, src_count );
00038     return dst + src_count;
00039 }
00040 wchar_t *wcs_pushW(wchar_t *dst, size_t dst_count, const wchar_t* src)
00041 {
00042     return wcs_pushW(dst,dst_count,src,wcslen(src));
00043 }
00044 wchar_t *wcs_pushA(wchar_t *dst, size_t dst_count, const char* src, size_t src_count)
00045 {
00046     return wcs_pushW(dst,dst_count,to_wchar(src));
00047 }
00048 wchar_t *wcs_pushA(wchar_t *dst, size_t dst_count, const char* src)
00049 {
00050     return wcs_pushA(dst,dst_count,src,strlen(src));
00051 }
00052
00053
00054
00055
00078 int cescape(const TCHAR* org, TCHAR* buf, TCHAR cesc, TCHAR cwith)
00079 {
00080     TCHAR *out = buf;
00081     for( ; *org != _T('\0'); ++org, ++out ){
00082         if( *org == cesc ){
00083             *out = cwith;
00084             ++out;
00085         }
00086         *out = *org;
00087     }
00088     *out = _T('\0');
00089     return out - buf;
00090 }
00091
00092
00093
00094
00106 int AddLastChar( TCHAR* pszPath, int nMaxLen, TCHAR c ){
00107     int pos = _tcslen( pszPath );
00108     // 何もないときは\を付加
00109     if( 0 == pos ){
00110         if( nMaxLen <= pos + 1 ){
00111             return -1;
00112         }
00113         pszPath[0] = c;
00114         pszPath[1] = _T('\0');
00115         return 1;
00116     }
00117     // 最後が\でないときも\を付加(日本語を考慮)
00118     else if( *::CharPrev( pszPath, &pszPath[pos] ) != c ){
00119         if( nMaxLen <= pos + 1 ){
00120             return -1;
00121         }
00122         pszPath[pos] = c;
00123         pszPath[pos + 1] = _T('\0');
00124         return 1;
00125     }
00126     return 0;
00127 }
00128
00129
00130
00131 /* CR0LF0,CRLF,LFCR,LF,CRで区切られる「行」を返す。改行コードは行長に加えない */
00132 const char* GetNextLine(
00133     const char*     pData,
00134     int             nDataLen,
00135     int*            pnLineLen,
00136     int*            pnBgn,
00137     CEOL*           pcEol
00138 )
00139 {
00140     int     i;
00141     int     nBgn;
00142     nBgn = *pnBgn;
00143
00144     //  May 15, 2000 genta
00145     pcEol->SetType( EOL_NONE );
00146     if( *pnBgn >= nDataLen ){
00147         return NULL;
00148     }
00149     for( i = *pnBgn; i < nDataLen; ++i ){
00150         /* 改行コードがあった */
00151         if( pData[i] == '\n' || pData[i] == '\r' ){
00152             /* 行終端子の種類を調べる */
00153             pcEol->GetTypeFromString( &pData[i], nDataLen - i );
00154             break;
00155         }
00156     }
00157     *pnBgn = i + pcEol->GetLen();
00158     *pnLineLen = i - nBgn;
00159     return &pData[nBgn];
00160 }
00161
00167 const wchar_t* GetNextLineW(
00168     const wchar_t*  pData,
00169     int         nDataLen,
00170     int*        pnLineLen,
00171     int*        pnBgn,
00172     CEOL*       pcEol
00173 )
00174 {
00175     int     i;
00176     int     nBgn;
00177     nBgn = *pnBgn;
00178
00179     pcEol->SetType( EOL_NONE );
00180     if( *pnBgn >= nDataLen ){
00181         return NULL;
00182     }
00183     for( i = *pnBgn; i < nDataLen; ++i ){
00184         // 改行コードがあった
00185         if( pData[i] == (wchar_t)0x000a || pData[i] == (wchar_t)0x000d ){
00186             // 行終端子の種類を調べる
00187             pcEol->SetType( CEOL::GetEOLTypeUni( &pData[i], nDataLen - i ) );
00188             break;
00189         }
00190     }
00191     *pnBgn = i + pcEol->GetLen();
00192     *pnLineLen = i - nBgn;
00193     return &pData[nBgn];
00194 }
00195
00201 const wchar_t* GetNextLineWB(
00202     const wchar_t*  pData,
00203     int         nDataLen,
00204     int*        pnLineLen,
00205     int*        pnBgn,
00206     CEOL*       pcEol
00207 )
00208 {
00209     int     i;
00210     int     nBgn;
00211     nBgn = *pnBgn;
00212
00213     pcEol->SetType( EOL_NONE );
00214     if( *pnBgn >= nDataLen ){
00215         return NULL;
00216     }
00217     for( i = *pnBgn; i < nDataLen; ++i ){
00218         // 改行コードがあった
00219         if( pData[i] == (wchar_t)0x0a00 || pData[i] == (wchar_t)0x0d00 ){
00220             // 行終端子の種類を調べる
00221             pcEol->SetType( CEOL::GetEOLTypeUniBE( &pData[i], nDataLen - i ) );
00222             break;
00223         }
00224     }
00225     *pnBgn = i + pcEol->GetLen();
00226     *pnLineLen = i - nBgn;
00227     return &pData[nBgn];
00228 }
00229
00230
00231
00232
00243 const char* GetNextLimitedLengthText( const char* pText, int nTextLen, int nLimitLen, int* pnLineLen, int* pnBgn )
00244 {
00245     int     i;
00246     int     nBgn;
00247     int     nCharChars;
00248     nBgn = *pnBgn;
00249     if( nBgn >= nTextLen ){
00250         return NULL;
00251     }
00252     for( i = nBgn; i + 1 < nTextLen; ++i ){
00253         // 2005-09-02 D.S.Koba GetSizeOfChar
00254         nCharChars = CNativeA::GetSizeOfChar( pText, nTextLen, i );
00255         if( 0 == nCharChars ){
00256             nCharChars = 1;
00257         }
00258         if( i + nCharChars - nBgn >= nLimitLen ){
00259             break;
00260         }
00261         i += ( nCharChars - 1 );
00262     }
00263     *pnBgn = i;
00264     *pnLineLen = i - nBgn;
00265     return &pText[nBgn];
00266 }
00267
00268
00269
00270
00271 /* データを指定バイト数以内に切り詰める */
00272 int LimitStringLengthB( const char* pszData, int nDataLength, int nLimitLengthB, CMemory& cmemDes )
00273 {
00274     int i;
00275     int nCharChars;
00276     int nDesLen;
00277     nDesLen = 0;
00278     for( i = 0; i < nDataLength; ){
00279         // 2005-09-02 D.S.Koba GetSizeOfChar
00280         nCharChars = CNativeA::GetSizeOfChar( pszData, nDataLength, i );
00281         if( 0 == nCharChars ){
00282             nCharChars = 1;
00283         }
00284         if( nDesLen + nCharChars > nLimitLengthB ){
00285             break;
00286         }
00287         nDesLen += nCharChars;
00288         i += nCharChars;
00289     }
00290     cmemDes.SetRawData( pszData, nDesLen );
00291     return nDesLen;
00292 }
00293
00295 SAKURA_CORE_API int LimitStringLengthW(
00296     const wchar_t*  pszData,
00297     int             nDataLength,
00298     int             nLimitLength,
00299     CNativeW&       cmemDes
00300 )
00301 {
00302     int n=nDataLength;
00303     if(n>nLimitLength)n=nLimitLength;
00304     cmemDes.SetString(pszData,n);
00305     return n;
00306 }
00307
00308
00309
00310 void GetLineColm( const wchar_t* pLine, int* pnJumpToLine, int* pnJumpToColm )
00311 {
00312     int     i;
00313     int     j;
00314     int     nLineLen;
00315     wchar_t szNumber[32];
00316     nLineLen = wcslen( pLine );
00317     i = 0;
00318     for( ; i < nLineLen; ++i ){
00319         if( pLine[i] >= L'0' &&
00320             pLine[i] <= L'9' ){
00321             break;
00322         }
00323     }
00324     wmemset( szNumber, 0, _countof( szNumber ) );
00325     if( i >= nLineLen ){
00326     }else{
00327         /* 行位置 改行単位行番号(1起点)の抽出 */
00328         j = 0;
00329         for( ; i < nLineLen && j + 1 < _countof( szNumber ); ){
00330             szNumber[j] = pLine[i];
00331             j++;
00332             ++i;
00333             if( pLine[i] >= L'0' &&
00334                 pLine[i] <= L'9' ){
00335                 continue;
00336             }
00337             break;
00338         }
00339         *pnJumpToLine = _wtoi( szNumber );
00340
00341         /* 桁位置 改行単位行先頭からのバイト数(1起点)の抽出 */
00342         if( i < nLineLen && pLine[i] == ',' ){
00343             wmemset( szNumber, 0, _countof( szNumber ) );
00344             j = 0;
00345             ++i;
00346             for( ; i < nLineLen && j + 1 < _countof( szNumber ); ){
00347                 szNumber[j] = pLine[i];
00348                 j++;
00349                 ++i;
00350                 if( pLine[i] >= L'0' &&
00351                     pLine[i] <= L'9' ){
00352                     continue;
00353                 }
00354                 break;
00355             }
00356             *pnJumpToColm = _wtoi( szNumber );
00357         }
00358     }
00359     return;
00360 }
00361
00362
00363
00364
00365
00366
00367 //@@@ 2001.11.07 Start by MIK
00368 //#ifdef COMPILE_COLOR_DIGIT
00369 /*
00370  * 数値なら長さを返す。
00371  * 10進数の整数または小数。16進数(正数)。
00372  * 文字列   数値(色分け)
00373  * ---------------------
00374  * 123      123
00375  * 0123     0123
00376  * 0xfedc   0xfedc
00377  * -123     -123
00378  * &H9a     &H9a     (ただしソース中の#ifを有効にしたとき)
00379  * -0x89a   0x89a
00380  * 0.5      0.5
00381  * 0.56.1   0.56 , 1 (ただしソース中の#ifを有効にしたら"0.56.1"になる)
00382  * .5       5        (ただしソース中の#ifを有効にしたら".5"になる)
00383  * -.5      5        (ただしソース中の#ifを有効にしたら"-.5"になる)
00384  * 123.     123
00385  * 0x567.8  0x567 , 8
00386  */
00387 /*
00388  * 半角数値
00389  *   1, 1.2, 1.2.3, .1, 0xabc, 1L, 1F, 1.2f, 0x1L, 0x2F, -.1, -1, 1e2, 1.2e+3, 1.2e-3, -1e0
00390  *   10進数, 16進数, LF接尾語, 浮動小数点数, 負符号
00391  *   IPアドレスのドット連結(本当は数値じゃないんだよね)
00392  */
00393 int IsNumber(const wchar_t *buf, int offset, int length)
00394 {
00395     register const wchar_t* p;
00396     register const wchar_t* q;
00397     register int i = 0;
00398     register int d = 0;
00399     register int f = 0;
00400
00401     p = &buf[offset];
00402     q = &buf[length];
00403
00404     if( *p == L'0' )  /* 10進数,Cの16進数 */
00405     {
00406         p++; i++;
00407         if( ( p < q ) && ( *p == L'x' ) )  /* Cの16進数 */
00408         {
00409             p++; i++;
00410             while( p < q )
00411             {
00412                 if( ( *p >= L'0' && *p <= L'9' )
00413                  || ( *p >= L'A' && *p <= L'F' )
00414                  || ( *p >= L'a' && *p <= L'f' ) )
00415                 {
00416                     p++; i++;
00417                 }
00418                 else
00419                 {
00420                     break;
00421                 }
00422             }
00423             /* "0x" なら "0" だけが数値 */
00424             if( i == 2 ) return 1;
00425
00426             /* 接尾語 */
00427             if( p < q )
00428             {
00429                 if( *p == L'L' || *p == L'l' || *p == L'F' || *p == L'f' )
00430                 {
00431                     p++; i++;
00432                 }
00433             }
00434             return i;
00435         }
00436         else if( *p >= L'0' && *p <= L'9' )
00437         {
00438             p++; i++;
00439             while( p < q )
00440             {
00441                 if( *p < L'0' || *p > L'9' )
00442                 {
00443                     if( *p == L'.' )
00444                     {
00445                         if( f == 1 ) break;  /* 指数部に入っている */
00446                         d++;
00447                         if( d > 1 )
00448                         {
00449                             if( *(p - 1) == L'.' ) break;  /* "." が連続なら中断 */
00450                         }
00451                     }
00452                     else if( *p == L'E' || *p == L'e' )
00453                     {
00454                         if( f == 1 ) break;  /* 指数部に入っている */
00455                         if( p + 2 < q )
00456                         {
00457                             if( ( *(p + 1) == L'+' || *(p + 1) == L'-' )
00458                              && ( *(p + 2) >= L'0' && *(p + 2) <= L'9' ) )
00459                             {
00460                                 p++; i++;
00461                                 p++; i++;
00462                                 f = 1;
00463                             }
00464                             else if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00465                             {
00466                                 p++; i++;
00467                                 f = 1;
00468                             }
00469                             else
00470                             {
00471                                 break;
00472                             }
00473                         }
00474                         else if( p + 1 < q )
00475                         {
00476                             if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00477                             {
00478                                 p++; i++;
00479                                 f = 1;
00480                             }
00481                             else
00482                             {
00483                                 break;
00484                             }
00485                         }
00486                         else
00487                         {
00488                             break;
00489                         }
00490                     }
00491                     else
00492                     {
00493                         break;
00494                     }
00495                 }
00496                 p++; i++;
00497             }
00498             if( *(p - 1)  == L'.' ) return i - 1;  /* 最後が "." なら含めない */
00499             /* 接尾語 */
00500             if( p < q )
00501             {
00502                 if( (( d == 0 ) && ( *p == L'L' || *p == L'l' ))
00503                  || *p == L'F' || *p == L'f' )
00504                 {
00505                     p++; i++;
00506                 }
00507             }
00508             return i;
00509         }
00510         else if( *p == L'.' )
00511         {
00512             while( p < q )
00513             {
00514                 if( *p < L'0' || *p > L'9' )
00515                 {
00516                     if( *p == L'.' )
00517                     {
00518                         if( f == 1 ) break;  /* 指数部に入っている */
00519                         d++;
00520                         if( d > 1 )
00521                         {
00522                             if( *(p - 1) == L'.' ) break;  /* "." が連続なら中断 */
00523                         }
00524                     }
00525                     else if( *p == L'E' || *p == L'e' )
00526                     {
00527                         if( f == 1 ) break;  /* 指数部に入っている */
00528                         if( p + 2 < q )
00529                         {
00530                             if( ( *(p + 1) == L'+' || *(p + 1) == L'-' )
00531                              && ( *(p + 2) >= L'0' && *(p + 2) <= L'9' ) )
00532                             {
00533                                 p++; i++;
00534                                 p++; i++;
00535                                 f = 1;
00536                             }
00537                             else if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00538                             {
00539                                 p++; i++;
00540                                 f = 1;
00541                             }
00542                             else
00543                             {
00544                                 break;
00545                             }
00546                         }
00547                         else if( p + 1 < q )
00548                         {
00549                             if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00550                             {
00551                                 p++; i++;
00552                                 f = 1;
00553                             }
00554                             else
00555                             {
00556                                 break;
00557                             }
00558                         }
00559                         else
00560                         {
00561                             break;
00562                         }
00563                     }
00564                     else
00565                     {
00566                         break;
00567                     }
00568                 }
00569                 p++; i++;
00570             }
00571             if( *(p - 1)  == L'.' ) return i - 1;  /* 最後が "." なら含めない */
00572             /* 接尾語 */
00573             if( p < q )
00574             {
00575                 if( *p == L'F' || *p == L'f' )
00576                 {
00577                     p++; i++;
00578                 }
00579             }
00580             return i;
00581         }
00582         else if( *p == L'E' || *p == L'e' )
00583         {
00584             p++; i++;
00585             while( p < q )
00586             {
00587                 if( *p < L'0' || *p > L'9' )
00588                 {
00589                     if( ( *p == L'+' || *p == L'-' ) && ( *(p - 1) == L'E' || *(p - 1) == L'e' ) )
00590                     {
00591                         if( p + 1 < q )
00592                         {
00593                             if( *(p + 1) < L'0' || *(p + 1) > L'9' )
00594                             {
00595                                 /* "0E+", "0E-" */
00596                                 break;
00597                             }
00598                         }
00599                         else
00600                         {
00601                             /* "0E-", "0E+" */
00602                             break;
00603                         }
00604                     }
00605                     else
00606                     {
00607                         break;
00608                     }
00609                 }
00610                 p++; i++;
00611             }
00612             if( i == 2 ) return 1;  /* "0E", 0e" なら "0" が数値 */
00613             /* 接尾語 */
00614             if( p < q )
00615             {
00616                 if( (( d == 0 ) && ( *p == L'L' || *p == L'l' ))
00617                  || *p == L'F' || *p == L'f' )
00618                 {
00619                     p++; i++;
00620                 }
00621             }
00622             return i;
00623         }
00624         else
00625         {
00626             /* "0" だけが数値 */
00627             /*if( *p == L'.' ) return i - 1;*/  /* 最後が "." なら含めない */
00628             if( p < q )
00629             {
00630                 if( (( d == 0 ) && ( *p == L'L' || *p == L'l' ))
00631                  || *p == L'F' || *p == L'f' )
00632                 {
00633                     p++; i++;
00634                 }
00635             }
00636             return i;
00637         }
00638     }
00639
00640     else if( *p >= L'1' && *p <= L'9' )  /* 10進数 */
00641     {
00642         p++; i++;
00643         while( p < q )
00644         {
00645             if( *p < L'0' || *p > L'9' )
00646             {
00647                 if( *p == L'.' )
00648                 {
00649                     if( f == 1 ) break;  /* 指数部に入っている */
00650                     d++;
00651                     if( d > 1 )
00652                     {
00653                         if( *(p - 1) == L'.' ) break;  /* "." が連続なら中断 */
00654                     }
00655                 }
00656                 else if( *p == L'E' || *p == L'e' )
00657                 {
00658                     if( f == 1 ) break;  /* 指数部に入っている */
00659                     if( p + 2 < q )
00660                     {
00661                         if( ( *(p + 1) == L'+' || *(p + 1) == L'-' )
00662                          && ( *(p + 2) >= L'0' && *(p + 2) <= L'9' ) )
00663                         {
00664                             p++; i++;
00665                             p++; i++;
00666                             f = 1;
00667                         }
00668                         else if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00669                         {
00670                             p++; i++;
00671                             f = 1;
00672                         }
00673                         else
00674                         {
00675                             break;
00676                         }
00677                     }
00678                     else if( p + 1 < q )
00679                     {
00680                         if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00681                         {
00682                             p++; i++;
00683                             f = 1;
00684                         }
00685                         else
00686                         {
00687                             break;
00688                         }
00689                     }
00690                     else
00691                     {
00692                         break;
00693                     }
00694                 }
00695                 else
00696                 {
00697                     break;
00698                 }
00699             }
00700             p++; i++;
00701         }
00702         if( *(p - 1) == L'.' ) return i - 1;  /* 最後が "." なら含めない */
00703         /* 接尾語 */
00704         if( p < q )
00705         {
00706             if( (( d == 0 ) && ( *p == L'L' || *p == L'l' ))
00707              || *p == L'F' || *p == L'f' )
00708             {
00709                 p++; i++;
00710             }
00711         }
00712         return i;
00713     }
00714
00715     else if( *p == L'-' )  /* マイナス */
00716     {
00717         p++; i++;
00718         while( p < q )
00719         {
00720             if( *p < L'0' || *p > L'9' )
00721             {
00722                 if( *p == L'.' )
00723                 {
00724                     if( f == 1 ) break;  /* 指数部に入っている */
00725                     d++;
00726                     if( d > 1 )
00727                     {
00728                         if( *(p - 1) == L'.' ) break;  /* "." が連続なら中断 */
00729                     }
00730                 }
00731                 else if( *p == L'E' || *p == L'e' )
00732                 {
00733                     if( f == 1 ) break;  /* 指数部に入っている */
00734                     if( p + 2 < q )
00735                     {
00736                         if( ( *(p + 1) == L'+' || *(p + 1) == L'-' )
00737                          && ( *(p + 2) >= L'0' && *(p + 2) <= L'9' ) )
00738                         {
00739                             p++; i++;
00740                             p++; i++;
00741                             f = 1;
00742                         }
00743                         else if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00744                         {
00745                             p++; i++;
00746                             f = 1;
00747                         }
00748                         else
00749                         {
00750                             break;
00751                         }
00752                     }
00753                     else if( p + 1 < q )
00754                     {
00755                         if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00756                         {
00757                             p++; i++;
00758                             f = 1;
00759                         }
00760                         else
00761                         {
00762                             break;
00763                         }
00764                     }
00765                     else
00766                     {
00767                         break;
00768                     }
00769                 }
00770                 else
00771                 {
00772                     break;
00773                 }
00774             }
00775             p++; i++;
00776         }
00777         /* "-", "-." だけなら数値でない */
00778         //@@@ 2001.11.09 start MIK
00779         //if( i <= 2 ) return 0;
00780         //if( *(p - 1)  == L'.' ) return i - 1;  /* 最後が "." なら含めない */
00781         if( i == 1 ) return 0;
00782         if( *(p - 1) == L'.' )
00783         {
00784             i--;
00785             if( i == 1 ) return 0;
00786             return i;
00787         }  //@@@ 2001.11.09 end MIK
00788         /* 接尾語 */
00789         if( p < q )
00790         {
00791             if( (( d == 0 ) && ( *p == L'L' || *p == L'l' ))
00792              || *p == L'F' || *p == L'f' )
00793             {
00794                 p++; i++;
00795             }
00796         }
00797         return i;
00798     }
00799
00800     else if( *p == L'.' )  /* 小数点 */
00801     {
00802         d++;
00803         p++; i++;
00804         while( p < q )
00805         {
00806             if( *p < L'0' || *p > L'9' )
00807             {
00808                 if( *p == L'.' )
00809                 {
00810                     if( f == 1 ) break;  /* 指数部に入っている */
00811                     d++;
00812                     if( d > 1 )
00813                     {
00814                         if( *(p - 1) == L'.' ) break;  /* "." が連続なら中断 */
00815                     }
00816                 }
00817                 else if( *p == L'E' || *p == L'e' )
00818                 {
00819                     if( f == 1 ) break;  /* 指数部に入っている */
00820                     if( p + 2 < q )
00821                     {
00822                         if( ( *(p + 1) == L'+' || *(p + 1) == L'-' )
00823                          && ( *(p + 2) >= L'0' && *(p + 2) <= L'9' ) )
00824                         {
00825                             p++; i++;
00826                             p++; i++;
00827                             f = 1;
00828                         }
00829                         else if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00830                         {
00831                             p++; i++;
00832                             f = 1;
00833                         }
00834                         else
00835                         {
00836                             break;
00837                         }
00838                     }
00839                     else if( p + 1 < q )
00840                     {
00841                         if( *(p + 1) >= L'0' && *(p + 1) <= L'9' )
00842                         {
00843                             p++; i++;
00844                             f = 1;
00845                         }
00846                         else
00847                         {
00848                             break;
00849                         }
00850                     }
00851                     else
00852                     {
00853                         break;
00854                     }
00855                 }
00856                 else
00857                 {
00858                     break;
00859                 }
00860             }
00861             p++; i++;
00862         }
00863         /* "." だけなら数値でない */
00864         if( i == 1 ) return 0;
00865         if( *(p - 1)  == L'.' ) return i - 1;  /* 最後が "." なら含めない */
00866         /* 接尾語 */
00867         if( p < q )
00868         {
00869             if( *p == L'F' || *p == L'f' )
00870             {
00871                 p++; i++;
00872             }
00873         }
00874         return i;
00875     }
00876
00877 #if 0
00878     else if( *p == L'&' )  /* VBの16進数 */
00879     {
00880         p++; i++;
00881         if( ( p < q ) && ( *p == L'H' ) )
00882         {
00883             p++; i++;
00884             while( p < q )
00885             {
00886                 if( ( *p >= L'0' && *p <= L'9' )
00887                  || ( *p >= L'A' && *p <= L'F' )
00888                  || ( *p >= L'a' && *p <= L'f' ) )
00889                 {
00890                     p++; i++;
00891                 }
00892                 else
00893                 {
00894                     break;
00895                 }
00896             }
00897             /* "&H" だけなら数値でない */
00898             if( i == 2 ) i = 0;
00899             return i;
00900         }
00901
00902         /* "&" だけなら数値でない */
00903         return 0;
00904     }
00905 #endif
00906
00907     /* 数値ではない */
00908     return 0;
00909 }
00910 //@@@ 2001.11.07 End by MIK
00911
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex2.h

sakura_core » util

string_ex2.h

ソースコードを見る。

マクロ定義

#define | wcs_pushT wcs_pushA

関数

wchar_t * | wcsncpy_ex (wchar_t *dst, size_t dst_count, const wchar_t *src, size_t src_count)
wchar_t * | wcs_pushW (wchar_t *dst, size_t dst_count, const wchar_t *src, size_t src_count)
wchar_t * | wcs_pushW (wchar_t *dst, size_t dst_count, const wchar_t *src)
wchar_t * | wcs_pushA (wchar_t *dst, size_t dst_count, const char *src, size_t src_count)
wchar_t * | wcs_pushA (wchar_t *dst, size_t dst_count, const char *src)
SAKURA_CORE_API int | AddLastChar (TCHAR *, int, TCHAR)
SAKURA_CORE_API int | LimitStringLengthB (const char *, int, int, CMemory &)
SAKURA_CORE_API int | LimitStringLengthA (const ACHAR *, int, int, CNativeA &)
SAKURA_CORE_API int | LimitStringLengthW (const WCHAR *, int, int, CNativeW &)
データを指定「文字数」以内に切り詰める。戻り値は結果の文字数。
SAKURA_CORE_API int | LimitStringLengthT (const TCHAR *, int, int, CNativeT &)
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 const wchar_t * | GetNextLineW (const wchar_t *, int, int *, int *, CEOL *)
SAKURA_CORE_API const wchar_t * | GetNextLineWB (const wchar_t *, int, int *, int *, CEOL *)
SAKURA_CORE_API void | GetLineColm (const wchar_t *, int *, int *)
SAKURA_CORE_API int | IsNumber (const wchar_t *, int, int)
SAKURA_CORE_API int | cescape (const TCHAR *org, TCHAR *buf, TCHAR cesc, TCHAR cwith)
void | dupamp (const TCHAR *org, TCHAR *out)

マクロ定義

#define wcs_pushT wcs_pushA

string_ex2.h の 14 行で定義されています。

関数

SAKURA_CORE_API int AddLastChar | ( | TCHAR * | pszPath,
 |  | int | nMaxLen,
 |  | TCHAR | c
 | ) |  |

文字列が指定された文字で終わっていなかった場合には 末尾にその文字を付加する．

引数:
pszPath | [i/o]操作する文字列
nMaxLen | [in]バッファ長
c | [in]追加したい文字
戻り値:
0 | \が元から付いていた
1 | \を付加した
-1 | バッファが足りず、\を付加できなかった
日付:
2003.06.24 Moca 新規作成

string_ex2.cpp の 106 行で定義されています。

参照元 CShareData::GetMacroFilename(), と CShareData::Init().

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対応

string_ex2.cpp の 78 行で定義されています。

参照元 dupamp().

void dupamp | ( | const TCHAR * | org,
 |  | TCHAR * | out |
 | ) |  |  | [inline]

&の二重化 メニューに含まれる&を&&に置き換える

作者:
genta
日付:
2002/01/30 cescapeに拡張し，

2004/06/19 genta Generic mapping

string_ex2.h の 39 行で定義されています。

参照先 cescape().

参照元 CMRUFolder::CreateMenu(), CMRU::CreateMenu(), CControlTray::CreatePopUpMenu_L(), CEditView::CreatePopUpMenu_R(), CTabWnd::GetTabName(), と CEditWnd::WinListMenu().

SAKURA_CORE_API void GetLineColm | ( | const wchar_t * | ,
 |  | int * | ,
 |  | int * |
 | ) |  |

string_ex2.cpp の 310 行で定義されています。

参照先 _countof.

参照元 CViewCommander::Command_TAGJUMP().

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 未使用のようだ

string_ex2.cpp の 243 行で定義されています。

参照先 CNativeA::GetSizeOfChar(), と NULL.

SAKURA_CORE_API const char* GetNextLine | ( | const char * | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | CEOL * |
 | ) |  |

string_ex2.cpp の 132 行で定義されています。

参照先 EOL_NONE, CEOL::GetLen(), CEOL::GetTypeFromString(), NULL, と CEOL::SetType().

参照元 CFileLoad::GetNextLineCharCode(), CNativeA::SPACEToTAB(), と CNativeA::TABToSPACE().

SAKURA_CORE_API const wchar_t* GetNextLineW | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |  |

GetNextLineのwchar_t版 GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

string_ex2.cpp の 167 行で定義されています。

参照先 EOL_NONE, CEOL::GetEOLTypeUni(), CEOL::GetLen(), NULL, と CEOL::SetType().

参照元 CConvert_Trim::DoConvert(), CConvert_TabToSpace::DoConvert(), CConvert_SpaceToTab::DoConvert(), と CFileLoad::GetNextLineCharCode().

SAKURA_CORE_API const wchar_t* GetNextLineWB | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |  |

GetNextLineのwchar_t版(ビックエンディアン用) GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

string_ex2.cpp の 201 行で定義されています。

参照先 EOL_NONE, CEOL::GetEOLTypeUniBE(), CEOL::GetLen(), NULL, と CEOL::SetType().

参照元 CFileLoad::GetNextLineCharCode().

SAKURA_CORE_API int IsNumber | ( | const wchar_t * | ,
 |  | int | ,
 |  | int |
 | ) |  |

string_ex2.cpp の 393 行で定義されています。

参照元 CEditView::DispLineNew().

SAKURA_CORE_API int LimitStringLengthA | ( | const ACHAR * | ,
 |  | int | ,
 |  | int | ,
 |  | CNativeA & |
 | ) |  |

SAKURA_CORE_API int LimitStringLengthB | ( | const char * | ,
 |  | int | ,
 |  | int | ,
 |  | CMemory & |
 | ) |  |

string_ex2.cpp の 272 行で定義されています。

参照先 CNativeA::GetSizeOfChar(), と CMemory::SetRawData().

SAKURA_CORE_API int LimitStringLengthT | ( | const TCHAR * | ,
 |  | int | ,
 |  | int | ,
 |  | CNativeT & |
 | ) |  |

SAKURA_CORE_API int LimitStringLengthW | ( | const WCHAR * | ,
 |  | int | ,
 |  | int | ,
 |  | CNativeW & |
 | ) |  |

データを指定「文字数」以内に切り詰める。戻り値は結果の文字数。

string_ex2.cpp の 295 行で定義されています。

参照先 CNativeW::SetString().

参照元 CControlTray::CreatePopUpMenu_L(), と CEditWnd::WinListMenu().

wchar_t* wcs_pushA | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const char * | src
 | ) |  |

string_ex2.cpp の 48 行で定義されています。

参照先 wcs_pushA().

wchar_t* wcs_pushA | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const char * | src,
 |  | size_t | src_count
 | ) |  |

string_ex2.cpp の 44 行で定義されています。

参照先 to_wchar(), と wcs_pushW().

参照元 wcs_pushA().

wchar_t* wcs_pushW | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const wchar_t * | src
 | ) |  |

string_ex2.cpp の 40 行で定義されています。

参照先 wcs_pushW().

wchar_t* wcs_pushW | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const wchar_t * | src,
 |  | size_t | src_count
 | ) |  |

string_ex2.cpp の 32 行で定義されています。

参照先 auto_memcpy().

参照元 wcs_pushA(), と wcs_pushW().

wchar_t* wcsncpy_ex | ( | wchar_t * | dst,
 |  | size_t | dst_count,
 |  | const wchar_t * | src,
 |  | size_t | src_count
 | ) |  |

Sakura-Editorに対してSat Nov 17 20:27:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: string_ex2.h ソースファイル

sakura_core » util

string_ex2.h

説明を見る。
00001 #pragma once
00002
00003 class CEOL;
00004
00005 // Aug. 16, 2007 kobake
00006 wchar_t *wcsncpy_ex(wchar_t *dst, size_t dst_count, const wchar_t* src, size_t src_count);
00007 wchar_t *wcs_pushW(wchar_t *dst, size_t dst_count, const wchar_t* src, size_t src_count);
00008 wchar_t *wcs_pushW(wchar_t *dst, size_t dst_count, const wchar_t* src);
00009 wchar_t *wcs_pushA(wchar_t *dst, size_t dst_count, const char* src, size_t src_count);
00010 wchar_t *wcs_pushA(wchar_t *dst, size_t dst_count, const char* src);
00011 #ifdef _UNICODE
00012 #define wcs_pushT wcs_pushW
00013 #else
00014 #define wcs_pushT wcs_pushA
00015 #endif
00016
00017 SAKURA_CORE_API int AddLastChar( TCHAR*, int, TCHAR );/* 2003.06.24 Moca 最後の文字が指定された文字でないときは付加する */
00018 SAKURA_CORE_API int LimitStringLengthB( const char*, int, int, CMemory& );/* データを指定バイト数以内に切り詰める */
00019 SAKURA_CORE_API int LimitStringLengthA( const ACHAR*, int, int, CNativeA& );/* データを指定「文字数」以内に切り詰める */
00020 SAKURA_CORE_API int LimitStringLengthW( const WCHAR*, int, int, CNativeW& );/* データを指定「文字数」以内に切り詰める */
00021 SAKURA_CORE_API int LimitStringLengthT( const TCHAR*, int, int, CNativeT& );/* データを指定「文字数」以内に切り詰める */
00022 SAKURA_CORE_API const char* GetNextLimitedLengthText( const char*, int, int, int*, int* );/* 指定長以下のテキストに切り分ける */
00023 SAKURA_CORE_API const char*    GetNextLine  ( const char*   , int, int*, int*, CEOL* ); /* CR0LF0,CRLF,LFCR,LF,CRで区切られる「行」を返す。改行コードは行長に加えない */
00024 SAKURA_CORE_API const wchar_t* GetNextLineW ( const wchar_t*, int, int*, int*, CEOL* ); // GetNextLineのwchar_t版
00025 SAKURA_CORE_API const wchar_t* GetNextLineWB( const wchar_t*, int, int*, int*, CEOL* ); // GetNextLineのwchar_t版(ビックエンディアン用)
00026 SAKURA_CORE_API void GetLineColm( const wchar_t*, int*, int* );
00027 SAKURA_CORE_API int IsNumber( const wchar_t*, int, int );/* 数値ならその長さを返す */    //@@@ 2001.02.17 by MIK
00028
00029
00030 SAKURA_CORE_API int cescape(const TCHAR* org, TCHAR* buf, TCHAR cesc, TCHAR cwith);
00031
00032
00039 inline void dupamp(const TCHAR* org, TCHAR* out)
00040 {   cescape( org, out, _T('&'), _T('&') ); }
00041
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_convert.cpp

sakura_core » util

tchar_convert.cpp

#include "stdafx.h"
#include "util/tchar_convert.h"
#include "mem/CRecycledBuffer.h"

tchar_convert.cppのインクルード依存関係図

ソースコードを見る。

関数

const WCHAR * | to_wchar (const ACHAR *src)
const WCHAR * | to_wchar (const ACHAR *pSrc, int nSrcLength)
const ACHAR * | to_achar (const WCHAR *src)
const ACHAR * | to_achar (const WCHAR *pSrc, int nSrcLength)
const WCHAR * | easy_format (const WCHAR *format,...)

変数

static CRecycledBuffer | g_bufSmall
static CRecycledBufferDynamic | g_bufBig

関数

const WCHAR* easy_format | ( | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_convert.cpp の 102 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), と tchar_vswprintf().

参照元 CPropCommon::p8_Import_CustMenuSetting().

const ACHAR* to_achar | ( | const WCHAR * | pSrc,
 |  | int | nSrcLength
 | ) |  |

tchar_convert.cpp の 59 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), CRecycledBuffer::GetBuffer(), CRecycledBuffer::GetMaxCount(), と NULL.

const ACHAR* to_achar ( const WCHAR * src )

tchar_convert.cpp の 54 行で定義されています。

参照先 to_achar().

参照元 CPPAMacroMgr::ExecKeyMacro(), CNativeW::GetStringPtrOld(), CEditView::ISearchWordMake(), CDataProfile::profile_to_value(), to_achar(), VMessageBoxF_W(), と ApiWrap::Wnd_SetText().

const WCHAR* to_wchar | ( | const ACHAR * | pSrc,
 |  | int | nSrcLength
 | ) |  |

tchar_convert.cpp の 15 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), CRecycledBuffer::GetBuffer(), CRecycledBuffer::GetMaxCount(), と NULL.

const WCHAR* to_wchar ( const ACHAR * src )

tchar_convert.cpp の 10 行で定義されています。

参照先 to_wchar().

参照元 CMacro::AddStringParam(), CViewCommander::Command_COPYFILENAME(), CViewCommander::Command_EXECCOMMAND_DIALOG(), CViewCommander::Command_INS_DATE(), CViewCommander::Command_INS_TIME(), CViewCommander::Command_TagJumpByTagsFile(), CKeyBind::CreateKeyBindList(), DebugMonitor_Output(), DebugOutA(), CEditView::DispatchEvent(), CPropCommon::DispatchEvent_p7(), CPropTypes::DispatchEvent_Regex(), CEditView::DoGrep(), CFuncLookup::Funccode2Name(), CNativeA::GetStringW(), CPropTypes::Import_Regex(), CEditView::ISearchWordMake(), CEditWnd::OnMouseMove(), CEditDoc::SetParentCaption(), to_wchar(), CShareData::TraceOut(), CDataProfile::value_to_profile(), と wcs_pushA().

変数

CRecycledBufferDynamic g_bufBig [static]

tchar_convert.cpp の 6 行で定義されています。

CRecycledBuffer g_bufSmall [static]

tchar_convert.cpp の 5 行で定義されています。

Sakura-Editorに対してSat Nov 17 20:27:35 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_convert.cpp ソースファイル

sakura_core » util

tchar_convert.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "util/tchar_convert.h"
00003 #include "mem/CRecycledBuffer.h"
00004
00005 static CRecycledBuffer        g_bufSmall;
00006 static CRecycledBufferDynamic g_bufBig;
00007
00008
00009
00010 const WCHAR* to_wchar(const ACHAR* src)
00011 {
00012     return to_wchar(src,strlen(src));
00013 }
00014
00015 const WCHAR* to_wchar(const ACHAR* pSrc, int nSrcLength)
00016 {
00017     if(pSrc==NULL)return NULL;
00018
00019     //必要なサイズを計算
00020     int nDstLen = MultiByteToWideChar(
00021         CP_ACP,
00022         0,
00023         pSrc,
00024         nSrcLength,
00025         NULL,
00026         0
00027     );
00028     size_t nDstCnt = (size_t)nDstLen + 1;
00029
00030     //バッファ取得
00031     WCHAR* pDst;
00032     if(nDstCnt < g_bufSmall.GetMaxCount<WCHAR>()){
00033         pDst=g_bufSmall.GetBuffer<WCHAR>(&nDstCnt);
00034     }
00035     else{
00036         pDst=g_bufBig.GetBuffer<WCHAR>(nDstCnt);
00037     }
00038
00039     //変換
00040     nDstLen = MultiByteToWideChar(
00041         CP_ACP,
00042         0,
00043         pSrc,
00044         nSrcLength,
00045         pDst,
00046         nDstLen
00047     );
00048     pDst[nDstLen] = L'\0';
00049
00050     return pDst;
00051 }
00052
00053
00054 const ACHAR* to_achar(const WCHAR* src)
00055 {
00056     return to_achar(src,wcslen(src));
00057 }
00058
00059 const ACHAR* to_achar(const WCHAR* pSrc, int nSrcLength)
00060 {
00061     if(pSrc==NULL)return NULL;
00062
00063     //必要なサイズを計算
00064     int nDstLen = WideCharToMultiByte(
00065         CP_ACP,
00066         0,
00067         pSrc,
00068         nSrcLength,
00069         NULL,
00070         0,
00071         NULL,
00072         NULL
00073     );
00074     size_t nDstCnt = (size_t)nDstLen + 1;
00075
00076     //バッファ取得
00077     ACHAR* pDst;
00078     if(nDstCnt < g_bufSmall.GetMaxCount<ACHAR>()){
00079         pDst=g_bufSmall.GetBuffer<ACHAR>(&nDstCnt);
00080     }
00081     else{
00082         pDst=g_bufBig.GetBuffer<ACHAR>(nDstCnt);
00083     }
00084
00085     //変換
00086     nDstLen = WideCharToMultiByte(
00087         CP_ACP,
00088         0,
00089         pSrc,
00090         nSrcLength,
00091         pDst,
00092         nDstLen,
00093         NULL,
00094         NULL
00095     );
00096     pDst[nDstLen] = '\0';
00097
00098     return pDst;
00099 }
00100
00101
00102 const WCHAR* easy_format(const WCHAR* format, ...)
00103 {
00104     WCHAR* buf=g_bufBig.GetBuffer<WCHAR>(1024);
00105     va_list v;
00106     va_start(v,format);
00107     tchar_vswprintf(buf,format,v);
00108     va_end(v);
00109     return buf;
00110 }
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_convert.h

sakura_core » util

tchar_convert.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | to_tchar to_achar
#define | to_not_tchar to_wchar

関数

const WCHAR * | to_wchar (const ACHAR *src)
const WCHAR * | to_wchar (const ACHAR *pSrcData, int nSrcLength)
const WCHAR * | to_wchar (const WCHAR *src)
const ACHAR * | to_achar (const ACHAR *src)
const ACHAR * | to_achar (const WCHAR *src)
const ACHAR * | to_achar (const WCHAR *pSrc, int nSrcLength)
const WCHAR * | easy_format (const WCHAR *format,...)

マクロ定義

#define to_not_tchar to_wchar

tchar_convert.h の 21 行で定義されています。

参照元 CDlgInput1::DoModal().

#define to_tchar to_achar

tchar_convert.h の 20 行で定義されています。

参照元 CFuncInfoArr::AppendData(), ApiWrap::Combo_AddString(), CViewCommander::Command_Diff(), CViewCommander::Command_EXECCOMMAND(), CViewCommander::Command_EXTHTMLHELP(), CViewCommander::Command_FILECLOSE_OPEN(), CViewCommander::Command_FILEOPEN(), CViewCommander::Command_FILESAVEAS(), CViewCommander::Command_INSFILE(), CViewCommander::Command_PUTFILE(), CViewCommander::Command_TAGJUMP(), CControlTray::DispatchEvent(), ApiWrap::DlgItem_SetText(), CDlgTagJumpList::find_key(), CRecentTagjumpKeyword::GetItemText(), CRecentSearch::GetItemText(), CRecentReplace::GetItemText(), CBregexp::GetLastMessage(), CBregexp::GetVersionT(), CPropTypes::Import_KeyHelp(), CPropTypes::Import_Regex(), CEditView::ISearchSetStatusMsg(), IsFilePath(), ApiWrap::List_AddString(), CMenuDrawer::MyAppendMenu(), CEditView::OnLBUTTONDBLCLK(), CPropCommon::p5_Import_KeySetting(), CPropCommon::SetData_p7_KeyWordSet(), CPropTypes::SetData_Regex(), CEditDoc::SetParentCaption(), CDlgFuncList::SetTreeJava(), と CShareData::ShareData_IO_Types().

関数

const WCHAR* easy_format | ( | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_convert.cpp の 102 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), と tchar_vswprintf().

参照元 CPropCommon::p8_Import_CustMenuSetting().

const ACHAR* to_achar | ( | const WCHAR * | pSrc,
 |  | int | nSrcLength
 | ) |  |

tchar_convert.cpp の 59 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), CRecycledBuffer::GetBuffer(), CRecycledBuffer::GetMaxCount(), と NULL.

const ACHAR* to_achar ( const WCHAR * src )

tchar_convert.cpp の 54 行で定義されています。

参照先 to_achar().

参照元 CPPAMacroMgr::ExecKeyMacro(), CNativeW::GetStringPtrOld(), CEditView::ISearchWordMake(), CDataProfile::profile_to_value(), to_achar(), VMessageBoxF_W(), と ApiWrap::Wnd_SetText().

const ACHAR* to_achar ( const ACHAR * src ) [inline]

tchar_convert.h の 11 行で定義されています。

const WCHAR* to_wchar ( const WCHAR * src ) [inline]

tchar_convert.h の 7 行で定義されています。

const WCHAR* to_wchar | ( | const ACHAR * | pSrcData,
 |  | int | nSrcLength
 | ) |  |

tchar_convert.cpp の 15 行で定義されています。

参照先 CRecycledBufferDynamic::GetBuffer(), CRecycledBuffer::GetBuffer(), CRecycledBuffer::GetMaxCount(), と NULL.

const WCHAR* to_wchar ( const ACHAR * src )

tchar_convert.cpp の 10 行で定義されています。

参照先 to_wchar().

参照元 CMacro::AddStringParam(), CViewCommander::Command_COPYFILENAME(), CViewCommander::Command_EXECCOMMAND_DIALOG(), CViewCommander::Command_INS_DATE(), CViewCommander::Command_INS_TIME(), CViewCommander::Command_TagJumpByTagsFile(), CKeyBind::CreateKeyBindList(), DebugMonitor_Output(), DebugOutA(), CEditView::DispatchEvent(), CPropCommon::DispatchEvent_p7(), CPropTypes::DispatchEvent_Regex(), CEditView::DoGrep(), CFuncLookup::Funccode2Name(), CNativeA::GetStringW(), CPropTypes::Import_Regex(), CEditView::ISearchWordMake(), CEditWnd::OnMouseMove(), CEditDoc::SetParentCaption(), to_wchar(), CShareData::TraceOut(), CDataProfile::value_to_profile(), と wcs_pushA().

Sakura-Editorに対してSat Nov 17 20:27:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_convert.h ソースファイル

sakura_core » util

tchar_convert.h

説明を見る。
00001 #pragma once
00002
00003 //WCHARに変換
00004 const WCHAR* to_wchar(const ACHAR* src);
00005 const WCHAR* to_wchar(const ACHAR* pSrcData, int nSrcLength);
00006 inline
00007 const WCHAR* to_wchar(const WCHAR* src){ return src; }
00008
00009 //ACHARに変換
00010 inline
00011 const ACHAR* to_achar(const ACHAR* src){ return src; }
00012 const ACHAR* to_achar(const WCHAR* src);
00013 const ACHAR* to_achar(const WCHAR* pSrc, int nSrcLength);
00014
00015 //TCHARに変換
00016 #ifdef _UNICODE
00017     #define to_tchar     to_wchar
00018     #define to_not_tchar to_achar
00019 #else
00020     #define to_tchar     to_achar
00021     #define to_not_tchar to_wchar
00022 #endif
00023
00024 //その他
00025 const WCHAR* easy_format(const WCHAR* format, ...);
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_printf.cpp

sakura_core » util

tchar_printf.cpp

#include "stdafx.h"
#include "tchar_printf.h"
#include "util/tchar_template.h"

tchar_printf.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | MAX_BUF 0x7FFFFFFF

関数

template<class T>
bool | is_field_begin (T c)
template<class T>
const T * | skip_field_flag (const T *p)
template<class T>
const T * | skip_field_width (const T *p)
template<class T>
const T * | skip_field_precision (const T *p)
template<class T>
const T * | skip_field_prefix (const T *p)
bool | is_field_type (char c)
bool | is_field_type (wchar_t c)
static int | local_vsprintf_s (char *buf, size_t nBufCount, const char *format, va_list &v)
static int | local_vsprintf_s (wchar_t *buf, size_t nBufCount, const wchar_t *format, va_list &v)
static int | local_vsprintf (char *buf, const char *format, va_list &v)
static int | local_vsprintf (wchar_t *buf, const wchar_t *format, va_list &v)
static void | my_va_forward (va_list &v, const char *field)
static void | my_va_forward (va_list &v, const wchar_t *field)
static void | field_convert (char *src)
static void | field_convert (wchar_t *src)
template<class T>
int | tchar_vsprintf_s_imp (T *buf, size_t nBufCount, const T *format, va_list &v)
int | tchar_vsprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format, va_list &v)
int | tchar_vswprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format, va_list &v)
int | tchar_vsprintf (ACHAR *buf, const ACHAR *format, va_list &v)
int | tchar_vswprintf (WCHAR *buf, const WCHAR *format, va_list &v)
int | tchar_sprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format,...)
int | tchar_swprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format,...)
int | tchar_sprintf (ACHAR *buf, const ACHAR *format,...)
int | tchar_swprintf (WCHAR *buf, const WCHAR *format,...)
int | tchar_snprintf (ACHAR *buf, size_t count, const ACHAR *format,...)
int | tchar_snwprintf (WCHAR *buf, size_t count, const WCHAR *format,...)

マクロ定義

#define MAX_BUF 0x7FFFFFFF

tchar_printf.cpp の 5 行で定義されています。

参照元 tchar_sprintf(), tchar_swprintf(), tchar_vsprintf(), tchar_vsprintf_s_imp(), と tchar_vswprintf().

関数

static void field_convert ( wchar_t * src ) [static]

tchar_printf.cpp の 178 行で定義されています。

static void field_convert ( char * src ) [static]

tchar_printf.cpp の 167 行で定義されています。

参照元 tchar_vsprintf_s_imp().

template<class T>
bool is_field_begin ( T c ) [inline]

tchar_printf.cpp の 9 行で定義されています。

参照先 _T2.

参照元 tchar_vsprintf_s_imp().

bool is_field_type ( wchar_t c ) [inline]

tchar_printf.cpp の 63 行で定義されています。

参照先 NULL.

bool is_field_type ( char c ) [inline]

tchar_printf.cpp の 59 行で定義されています。

参照先 NULL.

参照元 tchar_vsprintf_s_imp().

static int local_vsprintf | ( | wchar_t * | buf,
 |  | const wchar_t * | format,
 |  | va_list & | v |
 | ) |  |  | [static]

tchar_printf.cpp の 85 行で定義されています。

static int local_vsprintf | ( | char * | buf,
 |  | const char * | format,
 |  | va_list & | v |
 | ) |  |  | [static]

tchar_printf.cpp の 80 行で定義されています。

参照元 tchar_vsprintf_s_imp().

static int local_vsprintf_s | ( | wchar_t * | buf,
 |  | size_t | nBufCount,
 |  | const wchar_t * | format,
 |  | va_list & | v |
 | ) |  |  | [static]

tchar_printf.cpp の 75 行で定義されています。

static int local_vsprintf_s | ( | char * | buf,
 |  | size_t | nBufCount,
 |  | const char * | format,
 |  | va_list & | v |
 | ) |  |  | [static]

tchar_printf.cpp の 70 行で定義されています。

参照元 tchar_vsprintf_s_imp().

static void my_va_forward | ( | va_list & | v,
 |  | const wchar_t * | field |
 | ) |  |  | [static]

tchar_printf.cpp の 128 行で定義されています。

参照先 auto_strchr().

static void my_va_forward | ( | va_list & | v,
 |  | const char * | field |
 | ) |  |  | [static]

tchar_printf.cpp の 90 行で定義されています。

参照先 auto_strchr().

参照元 tchar_vsprintf_s_imp().

template<class T>
const T* skip_field_flag ( const T * p ) [inline]

tchar_printf.cpp の 16 行で定義されています。

参照先 _T2.

参照元 tchar_vsprintf_s_imp().

template<class T>
const T* skip_field_precision ( const T * p ) [inline]

tchar_printf.cpp の 37 行で定義されています。

参照先 _T2.

参照元 tchar_vsprintf_s_imp().

template<class T>
const T* skip_field_prefix ( const T * p ) [inline]

tchar_printf.cpp の 46 行で定義されています。

参照先 _T2.

参照元 tchar_vsprintf_s_imp().

template<class T>
const T* skip_field_width ( const T * p ) [inline]

tchar_printf.cpp の 28 行で定義されています。

参照先 _T2.

参照元 tchar_vsprintf_s_imp().

int tchar_snprintf | ( | ACHAR * | buf,
 |  | size_t | count,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 337 行で定義されています。

参照先 tchar_vsprintf_s().

int tchar_snwprintf | ( | WCHAR * | buf,
 |  | size_t | count,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 345 行で定義されています。

参照先 tchar_vswprintf_s().

int tchar_sprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 319 行で定義されています。

参照先 MAX_BUF, と tchar_vsprintf_s().

int tchar_sprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 292 行で定義されています。

参照先 tchar_vsprintf_s().

int tchar_swprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 328 行で定義されています。

参照先 MAX_BUF, と tchar_vswprintf_s().

int tchar_swprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 300 行で定義されています。

参照先 tchar_vswprintf_s().

int tchar_vsprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 274 行で定義されています。

参照先 MAX_BUF, と tchar_vsprintf_s().

参照元 auto_sprintf(), auto_vsprintf(), debug_output(), DebugOutA(), と VMessageBoxF_A().

int tchar_vsprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 258 行で定義されています。

参照元 auto_snprintf(), auto_sprintf_s(), auto_vsprintf_s(), tchar_snprintf(), tchar_sprintf(), tchar_sprintf_s(), と tchar_vsprintf().

template<class T>
int tchar_vsprintf_s_imp | ( | T * | buf,
 |  | size_t | nBufCount,
 |  | const T * | format,
 |  | va_list & | v |
 | ) |  |  | [inline]

tchar_printf.cpp の 193 行で定義されています。

参照先 _countof, auto_strncpy(), field_convert(), is_field_begin(), is_field_type(), local_vsprintf(), local_vsprintf_s(), MAX_BUF, my_va_forward(), skip_field_flag(), skip_field_precision(), skip_field_prefix(), と skip_field_width().

int tchar_vswprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 278 行で定義されています。

参照先 MAX_BUF, と tchar_vswprintf_s().

参照元 auto_sprintf(), auto_vsprintf(), と easy_format().

int tchar_vswprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 263 行で定義されています。

参照元 auto_snprintf(), auto_sprintf_s(), auto_vsprintf_s(), tchar_snwprintf(), tchar_swprintf(), tchar_swprintf_s(), と tchar_vswprintf().

Sakura-Editorに対してSat Nov 17 20:27:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_printf.cpp ソースファイル

sakura_core » util

tchar_printf.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "tchar_printf.h"
00003 #include "util/tchar_template.h"
00004
00005 #define MAX_BUF 0x7FFFFFFF
00006
00007 //テンプレートで TEXT<T> 使えれば、こんな汚いコピペしなくて済むのに…
00008 template <class T>
00009 inline bool is_field_begin(T c)
00010 {
00011     return c==_T2(T,'%');
00012 }
00013
00014 //書式指定: flag
00015 template <class T>
00016 inline const T* skip_field_flag(const T* p)
00017 {
00018     while(*p){
00019         T c=*p;
00020         if(c==_T2(T,'-') || c==_T2(T,'+') || c==_T2(T,'0') || c==_T2(T,' ') || c==_T2(T,'#')){ p++; continue; }
00021         break;
00022     }
00023     return p;
00024 }
00025
00026 //書式指定: width
00027 template <class T>
00028 inline const T* skip_field_width(const T* p)
00029 {
00030     if(*p>=_T2(T,'1') && *p<=_T2(T,'9'))p++; else return p; //一桁目は0を受け付けない
00031     while(*p>=_T2(T,'0') && *p<=_T2(T,'9'))p++;
00032     return p;
00033 }
00034
00035 //書式指定: precision
00036 template <class T>
00037 inline const T* skip_field_precision(const T* p)
00038 {
00039     if(*p==_T2(T,'.'))p++; else return p; //ドットで始まる文字列のみ受け付ける
00040     while(*p>=_T2(T,'0') && *p<=_T2(T,'9'))p++; //よくわからんのでとりあえず全数字を受け付ける
00041     return p;
00042 }
00043
00044 //書式指定: prefix
00045 template <class T>
00046 inline const T* skip_field_prefix(const T* p)
00047 {
00048     if(*p==_T2(T,'t'))return p+1; //独自拡張
00049     if(*p==_T2(T,'h'))return p+1;
00050     if(p[0]==_T2(T,'l') && p[1]==_T2(T,'l'))return p+2;
00051     if(*p==_T2(T,'l'))return p+1;
00052     if(p[0]==_T2(T,'I') && p[1]==_T2(T,'3') && p[2]==_T2(T,'2'))return p+3;
00053     if(p[0]==_T2(T,'I') && p[1]==_T2(T,'6') && p[2]==_T2(T,'4'))return p+3;
00054     if(*p==_T2(T,'I'))return p+1;
00055     return p;
00056 }
00057
00058 //書式指定: type
00059 inline bool is_field_type(char c)
00060 {
00061     return strchr("cCdiouxXeEfgGaAnpsS",c)!=NULL;
00062 }
00063 inline bool is_field_type(wchar_t c)
00064 {
00065     return wcschr(L"cCdiouxXeEfgGaAnpsS",c)!=NULL;
00066 }
00067
00068
00069
00070 static int local_vsprintf_s(char* buf, size_t nBufCount, const char* format, va_list& v)
00071 {
00072     return vsprintf_s(buf,nBufCount,format,v);
00073 }
00074
00075 static int local_vsprintf_s(wchar_t* buf, size_t nBufCount, const wchar_t* format, va_list& v)
00076 {
00077     return vswprintf_s(buf,nBufCount,format,v);
00078 }
00079
00080 static int local_vsprintf(char* buf, const char* format, va_list& v)
00081 {
00082     return vsprintf(buf,format,v);
00083 }
00084
00085 static int local_vsprintf(wchar_t* buf, const wchar_t* format, va_list& v)
00086 {
00087     return vswprintf(buf,format,v);
00088 }
00089
00090 static void my_va_forward(va_list& v, const char* field)
00091 {
00092     if(*field==0)return;
00093     const char* field_end=auto_strchr(field,0)-1;
00094     switch(*field_end){
00095     case 's':
00096     case 'S':
00097     case 'p':
00098         va_arg(v,void*);
00099         break;
00100     case 'd':
00101     case 'i':
00102     case 'o':
00103     case 'u':
00104     case 'x':
00105     case 'X':
00106         va_arg(v,int);
00107         break;
00108     case 'c':
00109         if(field_end-1>=field && *(field_end-1)=='w')va_arg(v,wchar_t);
00110         else if(field_end-1>=field && *(field_end-1)=='l')va_arg(v,wchar_t);
00111         else va_arg(v,int);
00112         break;
00113     case 'C':
00114         if(field_end-1>=field && *(field_end-1)=='h')va_arg(v,int);
00115         else va_arg(v,wchar_t);
00116         break;
00117     case 'e':
00118     case 'E':
00119     case 'f':
00120     case 'g':
00121     case 'G':
00122     case 'a':
00123     case 'A':
00124         va_arg(v,double);
00125         break;
00126     }
00127 }
00128 static void my_va_forward(va_list& v, const wchar_t* field)
00129 {
00130     if(*field==0)return;
00131     const wchar_t* field_end=auto_strchr(field,0)-1;
00132     switch(*field_end){
00133     case L's':
00134     case L'S':
00135     case L'p':
00136         va_arg(v,void*);
00137         break;
00138     case L'd':
00139     case L'i':
00140     case L'o':
00141     case L'u':
00142     case L'x':
00143     case L'X':
00144         va_arg(v,int);
00145         break;
00146     case 'c':
00147         if(field_end-1>=field && *(field_end-1)==L'h')va_arg(v,int);
00148         else va_arg(v,int);
00149         break;
00150     case 'C':
00151         if(field_end-1>=field && *(field_end-1)==L'l')va_arg(v,wchar_t);
00152         else if(field_end-1>=field && *(field_end-1)==L'w')va_arg(v,wchar_t);
00153         else va_arg(v,int);
00154         break;
00155     case L'e':
00156     case L'E':
00157     case L'f':
00158     case L'g':
00159     case L'G':
00160     case L'a':
00161     case L'A':
00162         va_arg(v,double);
00163         break;
00164     }
00165 }
00166
00167 static void field_convert(char* src)
00168 {
00169     if(strncmp(src,"%ts",3)==0 || strncmp(src,"%tc",3)==0){
00170 #ifdef _UNICODE
00171         src[1]='l';
00172 #else
00173         src[1]='h';
00174 #endif
00175     }
00176 }
00177
00178 static void field_convert(wchar_t* src)
00179 {
00180     if(wcsncmp(src,L"%ts",3)==0 || wcsncmp(src,L"%tc",3)==0){
00181 #ifdef _UNICODE
00182         src[1]=L'l';
00183 #else
00184         src[1]=L'h';
00185 #endif
00186     }
00187 }
00188
00189
00190 //"%ts","%tc"をサポート
00191 //※日本語考慮しない。(UNICODE版ではこれで問題が発生しない)
00192 template <class T>
00193 int tchar_vsprintf_s_imp(T* buf, size_t nBufCount, const T* format, va_list& v)
00194 {
00195     T* buf_end=buf+nBufCount; //変換リミット
00196
00197     T* dst=buf;          //変換先ワーク変数
00198     const T* src=format; //変換元ワーク変数
00199     while(*src){
00200         if(nBufCount!=MAX_BUF && dst>=buf_end-1)break;
00201         //書式指定フィールドを取得
00202         if(is_field_begin(*src)){
00203             const T* field_begin=src;
00204             src++;
00205             src=skip_field_flag(src);
00206             src=skip_field_width(src);
00207             src=skip_field_precision(src);
00208             src=skip_field_prefix(src);
00209
00210             if(is_field_type(*src)){
00211                 src++;
00212                 const T* field_end=src;
00213
00214                 //フィールドを一時変数にコピー
00215                 T field[64];
00216                 if(field_end-field_begin>=_countof(field))field_end=field_begin+_countof(field)-1; //フィールド長制限
00217                 auto_strncpy(field,field_begin,field_end-field_begin);
00218                 field[field_end-field_begin] = 0;
00219
00220                 //フィールド内に%tsまたは%tcがあったら、適切に変換
00221                 field_convert(field);
00222
00223                 //変換処理は標準ライブラリに委譲
00224                 int ret;
00225                 va_list tmp_v=v; //※vをコピーして用いる
00226                 if(nBufCount!=MAX_BUF){
00227                     ret=local_vsprintf_s(dst,buf_end-dst,field,tmp_v);
00228                 }
00229                 else{
00230                     ret=local_vsprintf(dst,field,tmp_v);
00231                 }
00232
00233                 //vを進める。自信なっしんぐ
00234                 my_va_forward(v,field);
00235
00236                 //変換先ワークポインタを進める
00237                 if(ret!=-1){
00238                     dst+=ret;
00239                 }
00240                 src=field_end;
00241             }
00242             else{
00243                 //有効な型フィールドではなかったので、そのまんま出力しちゃう
00244                 *dst++ = *src++;
00245             }
00246         }
00247         else{
00248             //無変換
00249             *dst++ = *src++;
00250         }
00251     }
00252     //終端
00253     *dst = 0;
00254     return dst-buf;
00255 }
00256
00257
00258 int tchar_vsprintf_s(ACHAR* buf, size_t nBufCount, const ACHAR* format, va_list& v)
00259 {
00260     return tchar_vsprintf_s_imp<ACHAR>(buf,nBufCount,format,v);
00261 }
00262
00263 int tchar_vswprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, va_list& v)
00264 {
00265     return tchar_vsprintf_s_imp<WCHAR>(buf,nBufCount,format,v);
00266 }
00267
00268
00269
00270
00271 // vsprintfラップ
00272 // ※bufに十分な容量があることに自信があるときだけ、使ってください。
00273 //
00274 int tchar_vsprintf(ACHAR* buf, const ACHAR* format, va_list& v)
00275 {
00276     return tchar_vsprintf_s(buf,MAX_BUF,format,v);
00277 }
00278 int tchar_vswprintf(WCHAR* buf, const WCHAR* format, va_list& v)
00279 {
00280     return tchar_vswprintf_s(buf,MAX_BUF,format,v);
00281 }
00282
00283
00284 // sprintf_sラップ
00285 //
00286 // (実装について)
00287 //     内容が同じなので、templateでも良かったのですが、
00288 //     そうすると、ACHAR, WCHAR 以外の型からの暗黙で安全なキャストが
00289 //     効かなくなり、コーディングが不便になるため、
00290 //     あえて、ACHAR, WCHAR で関数をひとつずつ定義しています。
00291 //
00292 int tchar_sprintf_s(ACHAR* buf, size_t nBufCount, const ACHAR* format, ...)
00293 {
00294     va_list v;
00295     va_start(v,format);
00296     int ret=tchar_vsprintf_s(buf,nBufCount,format,v);
00297     va_end(v);
00298     return ret;
00299 }
00300 int tchar_swprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, ...)
00301 {
00302     va_list v;
00303     va_start(v,format);
00304     int ret=tchar_vswprintf_s(buf,nBufCount,format,v);
00305     va_end(v);
00306     return ret;
00307 }
00308
00309
00310 // sprintfラップ
00311 // ※bufに十分な容量があることに自信があるときだけ、使ってください。
00312 //
00313 // (実装について)
00314 //     内容が同じなので、templateでも良かったのですが、
00315 //     そうすると、ACHAR, WCHAR 以外の型からの暗黙で安全なキャストが
00316 //     効かなくなり、コーディングが不便になるため、
00317 //     あえて、ACHAR, WCHAR で関数をひとつずつ定義しています。
00318 //
00319 int tchar_sprintf(ACHAR* buf, const ACHAR* format, ...)
00320 {
00321     va_list v;
00322     va_start(v,format);
00323     int ret=tchar_vsprintf_s(buf,MAX_BUF,format,v);
00324     va_end(v);
00325     return ret;
00326 }
00327
00328 int tchar_swprintf(WCHAR* buf, const WCHAR* format, ...)
00329 {
00330     va_list v;
00331     va_start(v,format);
00332     int ret=tchar_vswprintf_s(buf,MAX_BUF,format,v);
00333     va_end(v);
00334     return ret;
00335 }
00336
00337 int tchar_snprintf(ACHAR* buf, size_t count, const ACHAR* format, ...)
00338 {
00339     va_list v;
00340     va_start(v,format);
00341     int ret=tchar_vsprintf_s(buf,count,format,v);
00342     va_end(v);
00343     return ret;
00344 }
00345 int tchar_snwprintf(WCHAR* buf, size_t count, const WCHAR* format, ...)
00346 {
00347     va_list v;
00348     va_start(v,format);
00349     int ret=tchar_vswprintf_s(buf,count,format,v);
00350     va_end(v);
00351     return ret;
00352 }
00353
00354
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_printf.h

sakura_core » util

tchar_printf.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

int | tchar_vsprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format, va_list &v)
int | tchar_vswprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format, va_list &v)
int | tchar_vsprintf (ACHAR *buf, const ACHAR *format, va_list &v)
int | tchar_vswprintf (WCHAR *buf, const WCHAR *format, va_list &v)
int | tchar_sprintf_s (ACHAR *buf, size_t nBufCount, const ACHAR *format,...)
int | tchar_swprintf_s (WCHAR *buf, size_t nBufCount, const WCHAR *format,...)
int | tchar_sprintf (ACHAR *buf, const ACHAR *format,...)
int | tchar_swprintf (WCHAR *buf, const WCHAR *format,...)
int | tchar_snprintf (ACHAR *buf, size_t count, const ACHAR *format,...)
int | tchar_snwprintf (WCHAR *buf, size_t count, const WCHAR *format,...)

関数

int tchar_snprintf | ( | ACHAR * | buf,
 |  | size_t | count,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 337 行で定義されています。

参照先 tchar_vsprintf_s().

int tchar_snwprintf | ( | WCHAR * | buf,
 |  | size_t | count,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 345 行で定義されています。

参照先 tchar_vswprintf_s().

int tchar_sprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 319 行で定義されています。

参照先 MAX_BUF, と tchar_vsprintf_s().

int tchar_sprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 292 行で定義されています。

参照先 tchar_vsprintf_s().

int tchar_swprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 328 行で定義されています。

参照先 MAX_BUF, と tchar_vswprintf_s().

int tchar_swprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  |  | ...
 | ) |  |

tchar_printf.cpp の 300 行で定義されています。

参照先 tchar_vswprintf_s().

int tchar_vsprintf | ( | ACHAR * | buf,
 |  | const ACHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 274 行で定義されています。

参照先 MAX_BUF, と tchar_vsprintf_s().

参照元 auto_sprintf(), auto_vsprintf(), debug_output(), DebugOutA(), と VMessageBoxF_A().

int tchar_vsprintf_s | ( | ACHAR * | buf,
 |  | size_t | nBufCount,
 |  | const ACHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 258 行で定義されています。

参照元 auto_snprintf(), auto_sprintf_s(), auto_vsprintf_s(), tchar_snprintf(), tchar_sprintf(), tchar_sprintf_s(), と tchar_vsprintf().

int tchar_vswprintf | ( | WCHAR * | buf,
 |  | const WCHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 278 行で定義されています。

参照先 MAX_BUF, と tchar_vswprintf_s().

参照元 auto_sprintf(), auto_vsprintf(), と easy_format().

int tchar_vswprintf_s | ( | WCHAR * | buf,
 |  | size_t | nBufCount,
 |  | const WCHAR * | format,
 |  | va_list & | v
 | ) |  |

tchar_printf.cpp の 263 行で定義されています。

参照元 auto_snprintf(), auto_sprintf_s(), auto_vsprintf_s(), tchar_snwprintf(), tchar_swprintf(), tchar_swprintf_s(), と tchar_vswprintf().

Sakura-Editorに対してSat Nov 17 20:27:36 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_printf.h ソースファイル

sakura_core » util

tchar_printf.h

説明を見る。
00001 // printf系ラップ関数群
00002 // 2007.09.20 kobake 作成。
00003 //
00004 // 重要な特徴として、独自のフィールド "%ts" および "%tc" を認識して処理する、という点があります。
00005 // UNICODEビルドでは "%ts", "%tc" はそれぞれ "%ls", %lc" として認識され、
00006 // ANSIビルドでは    "%ts", "%tc" はそれぞれ "%hs", %hc" として認識されます。
00007 //
00008 // "%s", "%c" は使用関数により型が変わり、char, wchar_t が混在するコーディング環境ではバグの元となりやすいので、
00009 // できるだけ、上に記したような明示的な型指定をしたフィールドを用いてください。
00010 //
00011 //
00012 // ++ ++ 改善案 ++ ++
00013 //
00014 // あくまでも標準ライブラリ動作を「ラップ」しているだけなので、
00015 // そのラップ処理分、パフォーマンスは悪いです。
00016 // 標準ライブラリに頼らずに全て自前で実装すれば、標準ライブラリ並みのパフォーマンスが得られるはずです。
00017 //
00018 // ちょっと関数名が分かりにくいので、もっと良い名前募集。
00019 // 今のままだと、上記説明を読まなければ、_tsprintf とかと何が違うの？と思われちゃいそう。。。
00020 //
00021 // プロジェクト全体がTCHARに頼らないのであれば、これらの関数群は不要。
00022 //
00023
00024 #pragma once
00025
00026 // vsprintf_sラップ
00027 int tchar_vsprintf_s (ACHAR* buf, size_t nBufCount, const ACHAR* format, va_list& v);
00028 int tchar_vswprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, va_list& v);
00029
00030 // vsprintfラップ
00031 int tchar_vsprintf (ACHAR* buf, const ACHAR* format, va_list& v);
00032 int tchar_vswprintf(WCHAR* buf, const WCHAR* format, va_list& v);
00033
00034 // sprintf_sラップ
00035 int tchar_sprintf_s (ACHAR* buf, size_t nBufCount, const ACHAR* format, ...);
00036 int tchar_swprintf_s(WCHAR* buf, size_t nBufCount, const WCHAR* format, ...);
00037
00038 // sprintfラップ
00039 int tchar_sprintf(ACHAR* buf, const ACHAR* format, ...);
00040 int tchar_swprintf(WCHAR* buf, const WCHAR* format, ...);
00041
00042 // _snprintfラップ
00043 int tchar_snprintf (ACHAR* buf, size_t count, const ACHAR* format, ...);
00044 int tchar_snwprintf(WCHAR* buf, size_t count, const WCHAR* format, ...);
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_receive.cpp

sakura_core » util

tchar_receive.cpp

#include "stdafx.h"
#include "tchar_receive.h"

tchar_receive.cppのインクルード依存関係図

ソースコードを見る。

変数

static TCHAR static_buf [512]

変数

TCHAR static_buf[512] [static]

tchar_receive.cpp の 6 行で定義されています。

参照元 TcharReceiver< RECEIVE_CHAR_TYPE >::Apply(), と TcharReceiver< RECEIVE_CHAR_TYPE >::GetBufferPointer().

Sakura-Editorに対してSat Nov 17 20:27:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_receive.cpp ソースファイル

sakura_core » util

tchar_receive.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "tchar_receive.h"
00003 using namespace std;
00004
00005 //一時バッファ
00006 static TCHAR static_buf[512];
00007
00008 //TcharReceiver実装
00009 #ifdef _UNICODE
00010     //UNICODEビルドで、WCHARを受け取る
00011     template <> TCHAR* TcharReceiver<WCHAR>::GetBufferPointer(){ return m_pReceiver; }
00012     template <> void   TcharReceiver<WCHAR>::Apply(){} //何もしない
00013
00014     //UNICODEビルドで、ACHARを受け取る
00015     template <> TCHAR* TcharReceiver<ACHAR>::GetBufferPointer(){ return static_buf; }
00016     template <> void   TcharReceiver<ACHAR>::Apply(){ _tcstombs(m_pReceiver, static_buf, m_nReceiverCount); }
00017
00018 #else
00019     //ANSIビルドで、WCHARを受け取る
00020     template <> TCHAR* TcharReceiver<WCHAR>::GetBufferPointer(){ return static_buf; }
00021     template <> void   TcharReceiver<WCHAR>::Apply(){ _tcstowcs(m_pReceiver, static_buf, m_nReceiverCount); } //何もしない
00022
00023     //ANSIビルドで、ACHARを受け取る
00024     template <> TCHAR* TcharReceiver<ACHAR>::GetBufferPointer(){ return m_pReceiver; }
00025     template <> void   TcharReceiver<ACHAR>::Apply(){} //何もしない
00026
00027 #endif
00028
00029 //インスタンス化
00030 template class TcharReceiver<WCHAR>;
00031 template class TcharReceiver<ACHAR>;
00032
00033
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_receive.h

sakura_core » util

tchar_receive.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class TcharReceiver< RECEIVE_CHAR_TYPE >

Sakura-Editorに対してSat Nov 17 20:27:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_receive.h ソースファイル

sakura_core » util

tchar_receive.h

説明を見る。
00001 #pragma once
00002
00024 template <class RECEIVE_CHAR_TYPE>
00025 class TcharReceiver{
00026 public:
00027     TcharReceiver(RECEIVE_CHAR_TYPE* pReceiver, size_t nReceiverCount)
00028     : m_pReceiver(pReceiver), m_nReceiverCount(nReceiverCount) { }
00029     operator TCHAR* (){ return GetBufferPointer(); }
00030     ~TcharReceiver(){ Apply(); }
00031 protected:
00032     TCHAR* GetBufferPointer();
00033     void Apply();
00034 private:
00035     RECEIVE_CHAR_TYPE*  m_pReceiver;
00036     size_t              m_nReceiverCount;
00037 };
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_template.cpp

sakura_core » util

tchar_template.cpp

#include "stdafx.h"
#include "tchar_template.h"

tchar_template.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Nov 17 20:27:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_template.cpp ソースファイル

sakura_core » util

tchar_template.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "tchar_template.h"
00003
00004 // -- -- 必要な文字群を手動で定義 -- -- //
00005 //アルファベット
00006 DEFINE_T2('A')
00007 DEFINE_T2('B')
00008 DEFINE_T2('C')
00009 DEFINE_T2('D')
00010 DEFINE_T2('E')
00011 DEFINE_T2('F')
00012 DEFINE_T2('G')
00013 DEFINE_T2('H')
00014 DEFINE_T2('I')
00015 DEFINE_T2('J')
00016 DEFINE_T2('K')
00017 DEFINE_T2('L')
00018 DEFINE_T2('M')
00019 DEFINE_T2('N')
00020 DEFINE_T2('O')
00021 DEFINE_T2('P')
00022 DEFINE_T2('Q')
00023 DEFINE_T2('R')
00024 DEFINE_T2('S')
00025 DEFINE_T2('T')
00026 DEFINE_T2('U')
00027 DEFINE_T2('V')
00028 DEFINE_T2('W')
00029 DEFINE_T2('X')
00030 DEFINE_T2('Y')
00031 DEFINE_T2('Z')
00032 DEFINE_T2('a')
00033 DEFINE_T2('b')
00034 DEFINE_T2('c')
00035 DEFINE_T2('d')
00036 DEFINE_T2('e')
00037 DEFINE_T2('f')
00038 DEFINE_T2('g')
00039 DEFINE_T2('h')
00040 DEFINE_T2('i')
00041 DEFINE_T2('j')
00042 DEFINE_T2('k')
00043 DEFINE_T2('l')
00044 DEFINE_T2('m')
00045 DEFINE_T2('n')
00046 DEFINE_T2('o')
00047 DEFINE_T2('p')
00048 DEFINE_T2('q')
00049 DEFINE_T2('r')
00050 DEFINE_T2('s')
00051 DEFINE_T2('t')
00052 DEFINE_T2('u')
00053 DEFINE_T2('v')
00054 DEFINE_T2('w')
00055 DEFINE_T2('x')
00056 DEFINE_T2('y')
00057 DEFINE_T2('z')
00058
00059 //数字
00060 DEFINE_T2('0')
00061 DEFINE_T2('1')
00062 DEFINE_T2('2')
00063 DEFINE_T2('3')
00064 DEFINE_T2('4')
00065 DEFINE_T2('5')
00066 DEFINE_T2('6')
00067 DEFINE_T2('7')
00068 DEFINE_T2('8')
00069 DEFINE_T2('9')
00070
00071 //記号
00072 DEFINE_T2('-')
00073 DEFINE_T2('^')
00074 DEFINE_T2('\\')
00075 DEFINE_T2('@')
00076 DEFINE_T2('[')
00077 DEFINE_T2(';')
00078 DEFINE_T2(':')
00079 DEFINE_T2(']')
00080 DEFINE_T2(',')
00081 DEFINE_T2('.')
00082 DEFINE_T2('/')
00083 DEFINE_T2('!')
00084 DEFINE_T2('"')
00085 DEFINE_T2('#')
00086 DEFINE_T2('$')
00087 DEFINE_T2('%')
00088 DEFINE_T2('&')
00089 DEFINE_T2('\'')
00090 DEFINE_T2('(')
00091 DEFINE_T2(')')
00092 DEFINE_T2('=')
00093 DEFINE_T2('~')
00094 DEFINE_T2('|')
00095 DEFINE_T2('`')
00096 DEFINE_T2('{')
00097 DEFINE_T2('+')
00098 DEFINE_T2('*')
00099 DEFINE_T2('}')
00100 DEFINE_T2('<')
00101 DEFINE_T2('>')
00102 DEFINE_T2('?')
00103 DEFINE_T2('_')
00104 DEFINE_T2(' ')
00105
00106 //特殊文字
00107 DEFINE_T2('\r')
00108 DEFINE_T2('\n')
00109 DEFINE_T2('\t')
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_template.h

sakura_core » util

tchar_template.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | DEFINE_T2(CHAR_VALUE)
#define | _T2(CHAR_TYPE, CHAR_VALUE) _TextTemplate<CHAR_TYPE,CHAR_VALUE>()

型定義

typedef char | ACHAR
typedef wchar_t | WCHAR

関数

template<class CHAR_TYPE, int CHAR_VALUE>
CHAR_TYPE | _TextTemplate ()

マクロ定義

#define _T2 | ( | CHAR_TYPE,
 |  | CHAR_VALUE | ) | _TextTemplate<CHAR_TYPE,CHAR_VALUE>()

tchar_template.h の 28 行で定義されています。

参照元 is_field_begin(), skip_field_flag(), skip_field_precision(), skip_field_prefix(), と skip_field_width().

#define DEFINE_T2 ( CHAR_VALUE )

値:

template<> ACHAR _TextTemplate<ACHAR,CHAR_VALUE>(){ return ATEXT(CHAR_VALUE); } \
template<> WCHAR _TextTemplate<WCHAR,CHAR_VALUE>(){ return LTEXT(CHAR_VALUE); }

tchar_template.h の 23 行で定義されています。

型定義

typedef char ACHAR

tchar_template.h の 16 行で定義されています。

typedef wchar_t WCHAR

tchar_template.h の 17 行で定義されています。

関数

template<class CHAR_TYPE, int CHAR_VALUE>
CHAR_TYPE _TextTemplate ( ) [inline]

Sakura-Editorに対してSat Nov 17 20:27:37 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: tchar_template.h ソースファイル

sakura_core » util

tchar_template.h

説明を見る。
00001 /*
00002     _Tマクロ互換のテンプレート。
00003     ビルド種に関わらず、指定した型の文字定数を提供する。
00004
00005     _T2(char,'A')
00006     _T2(wchar_t,'x')
00007     _T2(TCHAR,'/')
00008     のように使います。
00009
00010     テンプレートてんこもりなので、コンパイルが重くなると思われます。
00011     インクルードは最小限に！
00012
00013     2007.10.23 kobake 作成
00014 */
00015
00016 typedef char ACHAR;
00017 typedef wchar_t WCHAR;
00018
00019 template <class CHAR_TYPE, int CHAR_VALUE>
00020 CHAR_TYPE _TextTemplate();
00021
00022 //文字定義マクロ
00023 #define DEFINE_T2(CHAR_VALUE) \
00024 template<> ACHAR _TextTemplate<ACHAR,CHAR_VALUE>(){ return ATEXT(CHAR_VALUE); } \
00025 template<> WCHAR _TextTemplate<WCHAR,CHAR_VALUE>(){ return LTEXT(CHAR_VALUE); }
00026
00027 //使用マクロ
00028 #define _T2(CHAR_TYPE,CHAR_VALUE) _TextTemplate<CHAR_TYPE,CHAR_VALUE>()
00029
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: window.cpp

sakura_core » util

window.cpp

#include "stdafx.h"
#include "window.h"
#include "CShareData.h"
#include "mymessage.h"

window.cppのインクルード依存関係図

ソースコードを見る。

関数

HWND | MyGetAncestor (HWND hWnd, UINT gaFlags)
BOOL | BlockingHook (HWND hwndDlgCancel)
void | ActivateFrameWindow (HWND hwnd)

関数

void ActivateFrameWindow ( HWND hwnd )

window.cpp の 93 行で定義されています。

参照先 DWORD_PTR, FALSE, CShareData::getInstance(), CShareData::GetShareData(), CShareData::IsEditWnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_bEditWndChanging, DLLSHAREDATA::m_Common, CommonSetting::m_sTabBar, MYWM_TAB_WINDOW_NOTIFY, NULL, TRUE, と TWNT_WNDPL_ADJUST.

参照元 CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_COMPARE(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_TAGJUMPBACK(), CViewCommander::Command_WIN_OUTPUT(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CEditView::DoGrep(), CEditDoc::HandleCommand(), CNormalProcess::Initialize(), CShareData::IsPathOpened(), CTabWnd::NextGroup(), CDlgReplace::OnBnClicked(), CEditWnd::OnClose(), CEditWnd::OnCommand(), CEditWnd::OnDropFiles(), CEditWnd::OnMouseWheel(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenFileDialog(), CTabWnd::PrevGroup(), CShareData::RequestCloseAllEditor(), CTabWnd::TabListMenu(), CEditView::TagJumpSub(), と CShareData::TraceOut().

BOOL BlockingHook ( HWND hwndDlgCancel )

処理中のユーザー操作を可能にする ブロッキングフック(?)（メッセージ配送

日付:
2003.07.04 genta 一回の呼び出しで複数メッセージを処理するように

window.cpp の 71 行で定義されています。

参照先 BOOL, FALSE, NULL, と TRUE.

参照元 CViewCommander::Command_INSFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TagsMake(), CLayoutMgr::DoLayout(), CPrintPreview::DrawPageText(), CPrintPreview::OnMouseWheel(), CDocLineMgr::ReadFile(), と CDocLineMgr::WriteFile().

HWND MyGetAncestor | ( | HWND | hWnd,
 |  | UINT | gaFlags
 | ) |  |

指定したウィンドウの祖先のハンドルを取得する

GetAncestor() APIがWin95で使えないのでそのかわり

WS_POPUPスタイルを持たないウィンドウ（ex.CDlgFuncListダイアログ）だと、 GA_ROOTOWNERでは編集ウィンドウまで遡れないみたい。GetAncestor() APIでも同様。 本関数固有に用意したGA_ROOTOWNER2では遡ることができる。

作者:
ryoji
日付:
2007.07.01 ryoji 新規

2007.10.22 ryoji フラグ値としてGA_ROOTOWNER2（本関数固有）を追加

window.cpp の 19 行で定義されています。

参照先 GA_PARENT, GA_ROOT, GA_ROOTOWNER, GA_ROOTOWNER2, GetWindowLongPtr, と NULL.

参照元 CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), と CControlTray::OpenNewEditor().

Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: window.cpp ソースファイル

sakura_core » util

window.cpp

説明を見る。
00001 #include "stdafx.h"
00002 #include "window.h"
00003 #include "CShareData.h"
00004 #include "mymessage.h"
00005
00006
00019 HWND MyGetAncestor( HWND hWnd, UINT gaFlags )
00020 {
00021     HWND hwndAncestor;
00022     HWND hwndDesktop = ::GetDesktopWindow();
00023     HWND hwndWk;
00024
00025     if( hWnd == hwndDesktop )
00026         return NULL;
00027
00028     switch( gaFlags )
00029     {
00030     case GA_PARENT: // 親ウィンドウを返す（オーナーは返さない）
00031         hwndAncestor = ( (DWORD)::GetWindowLongPtr( hWnd, GWL_STYLE ) & WS_CHILD )? ::GetParent( hWnd ): hwndDesktop;
00032         break;
00033
00034     case GA_ROOT:   // 親子関係を遡って直近上位のトップレベルウィンドウを返す
00035         hwndAncestor = hWnd;
00036         while( (DWORD)::GetWindowLongPtr( hwndAncestor, GWL_STYLE ) & WS_CHILD )
00037             hwndAncestor = ::GetParent( hwndAncestor );
00038         break;
00039
00040     case GA_ROOTOWNER:  // 親子関係と所有関係をGetParent()で遡って所有されていないトップレベルウィンドウを返す
00041         hwndWk = hWnd;
00042         do{
00043             hwndAncestor = hwndWk;
00044             hwndWk = ::GetParent( hwndWk );
00045         }while( hwndWk != NULL );
00046         break;
00047
00048     case GA_ROOTOWNER2: // 所有関係をGetWindow()で遡って所有されていないトップレベルウィンドウを返す
00049         hwndWk = hWnd;
00050         do{
00051             hwndAncestor = hwndWk;
00052             hwndWk = ::GetWindow( hwndWk, GW_OWNER );
00053         }while( hwndWk != NULL );
00054         break;
00055
00056     default:
00057         hwndAncestor = NULL;
00058         break;
00059     }
00060
00061     return hwndAncestor;
00062 }
00063
00064
00071 BOOL BlockingHook( HWND hwndDlgCancel )
00072 {
00073         MSG     msg;
00074         BOOL    ret;
00075         //  Jun. 04, 2003 genta メッセージをあるだけ処理するように
00076         while(( ret = (BOOL)::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE )) != 0 ){
00077             if ( msg.message == WM_QUIT ){
00078                 return FALSE;
00079             }
00080             if( NULL != hwndDlgCancel && IsDialogMessage( hwndDlgCancel, &msg ) ){
00081             }else{
00082                 ::TranslateMessage( &msg );
00083                 ::DispatchMessage( &msg );
00084             }
00085         }
00086         return TRUE/*ret*/;
00087 }
00088
00089
00090
00091
00092 /* アクティブにする */
00093 void ActivateFrameWindow( HWND hwnd )
00094 {
00095     // 編集ウィンドウでタブまとめ表示の場合は表示位置を復元する
00096     CShareData* pInstance = NULL;
00097     DLLSHAREDATA* pShareData = NULL;
00098     if( (pInstance = CShareData::getInstance()) && (pShareData = pInstance->GetShareData()) ){
00099         if( pShareData->m_Common.m_sTabBar.m_bDispTabWnd && !pShareData->m_Common.m_sTabBar.m_bDispTabWndMultiWin ) {
00100             if( pInstance->IsEditWnd( hwnd ) ){
00101                 if( pShareData->m_bEditWndChanging )
00102                     return; // 切替の最中(busy)は要求を無視する
00103                 pShareData->m_bEditWndChanging = TRUE;  // 編集ウィンドウ切替中ON 2007.04.03 ryoji
00104
00105                 // 対象ウィンドウのスレッドに位置合わせを依頼する    // 2007.04.03 ryoji
00106                 DWORD_PTR dwResult;
00107                 ::SendMessageTimeout(
00108                     hwnd,
00109                     MYWM_TAB_WINDOW_NOTIFY,
00110                     TWNT_WNDPL_ADJUST,
00111                     (LPARAM)NULL,
00112                     SMTO_ABORTIFHUNG | SMTO_BLOCK,
00113                     10000,
00114                     &dwResult
00115                 );
00116             }
00117         }
00118     }
00119
00120     if( ::IsIconic( hwnd ) ){
00121         ::ShowWindow( hwnd, SW_RESTORE );
00122     }
00123     else if ( ::IsZoomed( hwnd ) ){
00124         ::ShowWindow( hwnd, SW_MAXIMIZE );
00125     }
00126     else {
00127         ::ShowWindow( hwnd, SW_SHOW );
00128     }
00129     ::SetForegroundWindow( hwnd );
00130     ::BringWindowToTop( hwnd );
00131
00132     if( pShareData )
00133         pShareData->m_bEditWndChanging = FALSE; // 編集ウィンドウ切替中OFF    2007.04.03 ryoji
00134
00135     return;
00136 }
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: window.h

sakura_core » util

window.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | GA_PARENT 1
#define | GA_ROOT 2
#define | GA_ROOTOWNER 3
#define | GA_ROOTOWNER2 100

関数

SAKURA_CORE_API void | ActivateFrameWindow (HWND)
SAKURA_CORE_API BOOL | BlockingHook (HWND hwndDlgCancel)
HWND | MyGetAncestor (HWND hWnd, UINT gaFlags)

マクロ定義

#define GA_PARENT 1

window.h の 13 行で定義されています。

参照元 MyGetAncestor().

#define GA_ROOT 2

window.h の 14 行で定義されています。

参照元 MyGetAncestor(), CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), と CCaret::ShowEditCaret().

#define GA_ROOTOWNER 3

window.h の 15 行で定義されています。

参照元 MyGetAncestor().

#define GA_ROOTOWNER2 100

window.h の 17 行で定義されています。

参照元 MyGetAncestor(), と CControlTray::OpenNewEditor().

関数

SAKURA_CORE_API void ActivateFrameWindow ( HWND )

window.cpp の 93 行で定義されています。

参照先 DWORD_PTR, FALSE, CShareData::getInstance(), CShareData::GetShareData(), CShareData::IsEditWnd(), CommonSetting_TabBar::m_bDispTabWnd, CommonSetting_TabBar::m_bDispTabWndMultiWin, DLLSHAREDATA::m_bEditWndChanging, DLLSHAREDATA::m_Common, CommonSetting::m_sTabBar, MYWM_TAB_WINDOW_NOTIFY, NULL, TRUE, と TWNT_WNDPL_ADJUST.

参照元 CViewCommander::Command_ACTIVATE_SQLPLUS(), CViewCommander::Command_COMPARE(), CViewCommander::Command_FUNCLIST(), CViewCommander::Command_PLSQL_COMPILE_ON_SQLPLUS(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_REPLACE_DIALOG(), CViewCommander::Command_SEARCH_DIALOG(), CViewCommander::Command_TAGJUMPBACK(), CViewCommander::Command_WIN_OUTPUT(), CEditWnd::DispatchEvent(), CControlTray::DispatchEvent(), CEditView::DoGrep(), CEditDoc::HandleCommand(), CNormalProcess::Initialize(), CShareData::IsPathOpened(), CTabWnd::NextGroup(), CDlgReplace::OnBnClicked(), CEditWnd::OnClose(), CEditWnd::OnCommand(), CEditWnd::OnDropFiles(), CEditWnd::OnMouseWheel(), CEditView::OPEN_ExtFromtoExt(), CEditDoc::OpenFileDialog(), CTabWnd::PrevGroup(), CShareData::RequestCloseAllEditor(), CTabWnd::TabListMenu(), CEditView::TagJumpSub(), と CShareData::TraceOut().

SAKURA_CORE_API BOOL BlockingHook ( HWND hwndDlgCancel )

処理中のユーザー操作を可能にする ブロッキングフック(?)（メッセージ配送

日付:
2003.07.04 genta 一回の呼び出しで複数メッセージを処理するように

window.cpp の 71 行で定義されています。

参照先 BOOL, FALSE, NULL, と TRUE.

参照元 CViewCommander::Command_INSFILE(), CViewCommander::Command_REPLACE_ALL(), CViewCommander::Command_TagsMake(), CLayoutMgr::DoLayout(), CPrintPreview::DrawPageText(), CPrintPreview::OnMouseWheel(), CDocLineMgr::ReadFile(), と CDocLineMgr::WriteFile().

HWND MyGetAncestor | ( | HWND | hWnd,
 |  | UINT | gaFlags
 | ) |  |

指定したウィンドウの祖先のハンドルを取得する

GetAncestor() APIがWin95で使えないのでそのかわり

WS_POPUPスタイルを持たないウィンドウ（ex.CDlgFuncListダイアログ）だと、 GA_ROOTOWNERでは編集ウィンドウまで遡れないみたい。GetAncestor() APIでも同様。 本関数固有に用意したGA_ROOTOWNER2では遡ることができる。

作者:
ryoji
日付:
2007.07.01 ryoji 新規

2007.10.22 ryoji フラグ値としてGA_ROOTOWNER2（本関数固有）を追加

window.cpp の 19 行で定義されています。

参照先 GA_PARENT, GA_ROOT, GA_ROOTOWNER, GA_ROOTOWNER2, GetWindowLongPtr, と NULL.

参照元 CTabWnd::OnTabLButtonUp(), CTabWnd::OnTabMouseMove(), と CControlTray::OpenNewEditor().

Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: window.h ソースファイル

sakura_core » util

window.h

説明を見る。
00001 #pragma once
00002
00003 SAKURA_CORE_API void ActivateFrameWindow( HWND );   /* アクティブにする */
00004
00005 /*
00006 ||  処理中のユーザー操作を可能にする
00007 ||  ブロッキングフック(?)(メッセージ配送)
00008 */
00009 SAKURA_CORE_API BOOL BlockingHook( HWND hwndDlgCancel );
00010
00011
00012 #ifndef GA_PARENT
00013 #define GA_PARENT       1
00014 #define GA_ROOT         2
00015 #define GA_ROOTOWNER    3
00016 #endif
00017 #define GA_ROOTOWNER2   100
00018
00019
00020 HWND MyGetAncestor( HWND hWnd, UINT gaFlags );  // 指定したウィンドウの祖先のハンドルを取得する   // 2007.07.01 ryoji
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: WinMain.cpp

sakura_core

WinMain.cpp

Entry Point [詳細]

#include "stdafx.h"
#include <windows.h>
#include "CProcessFactory.h"
#include "CProcess.h"
#include "CRunningTimer.h"

WinMain.cppのインクルード依存関係図

ソースコードを見る。

関数

int WINAPI _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR 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 _tWinMain | ( | HINSTANCE | hInstance,
 |  | HINSTANCE | hPrevInstance,
 |  | LPTSTR | 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 Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: WinMain.cpp ソースファイル

sakura_core

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 _tWinMain(
00036     HINSTANCE   hInstance,
00037     HINSTANCE   hPrevInstance,
00038     LPTSTR      lpCmdLine,
00039     int         nCmdShow
00040 )
00041 {
00042     MY_RUNNINGTIMER(cRunningTimer, "WinMain" );
00043     setlocale( LC_ALL, "Japanese" ); //2007.08.16 kobake 追加
00044
00045     CProcessFactory aFactory;
00046     CProcess *process = 0;
00047     try{
00048         process = aFactory.Create( hInstance, lpCmdLine );
00049         MY_TRACETIME( cRunningTimer, "ProcessObject Created" );
00050     }
00051     catch(...){
00052     }
00053     if( 0 != process ){
00054         process->Run();
00055         delete process;
00056     }
00057     return 0;
00058 }
00059
00060 /*[EOF]*/
Sakura-Editorに対してSat Nov 17 20:24:49 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ディレクトリ索引

Sakura-Editor ディレクトリ

このディレクトリ一覧はおおまかにはソートされていますが、完全にアルファベット順でソートされてはいません。
  • btool
  • HeaderMake
  • sakura_core
    • apiwrap
    • basis
    • charset
    • config
    • convert
    • io
    • mem
    • parse
    • share
    • util
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: btool/ ディレクトリリファレンス

btool

btool ディレクトリリファレンス

ファイル

ファイル | mrc2brc.cpp [コード]
ファイル | RcCvt.cpp [コード]
ファイル | RcCvt.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: HeaderMake/ ディレクトリリファレンス

HeaderMake

HeaderMake ディレクトリリファレンス

ファイル

ファイル HeaderMake.cpp [コード]
Sakura-Editorに対してSat Nov 17 20:30:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/ ディレクトリリファレンス

sakura_core

sakura_core ディレクトリリファレンス

ディレクトリ

ディレクトリ | apiwrap
ディレクトリ | basis
ディレクトリ | charset
ディレクトリ | config
ディレクトリ | convert
ディレクトリ | io
ディレクトリ | mem
ディレクトリ | parse
ディレクトリ | share
ディレクトリ | util

ファイル

ファイル | bregexp.h [コード]
ファイル | CAutoSave.cpp [コード]
ファイルの自動保存
ファイル | CAutoSave.h [コード]
ファイルの自動保存
ファイル | CBlockComment.cpp [コード]
ブロックコメントデリミタを管理する
ファイル | CBlockComment.h [コード]
ブロックコメントデリミタを管理する
ファイル | CBregexp.cpp [コード]
BREGEXP Library Handler
ファイル | CBregexp.h [コード]
BREGEXP Library Handler
ファイル | CBregexpDll2.cpp [コード]
ファイル | CBregexpDll2.h [コード]
ファイル | CCaret.cpp [コード]
ファイル | CCaret.h [コード]
ファイル | CClipboard.cpp [コード]
ファイル | CClipboard.h [コード]
ファイル | CCommandLine.cpp [コード]
コマンドラインパーサ
ファイル | CCommandLine.h [コード]
コマンドラインパーサ ヘッダファイル
ファイル | CControlProcess.cpp [コード]
コントロールプロセスクラス
ファイル | CControlProcess.h [コード]
コントロールプロセスクラスヘッダファイル
ファイル | CControlTray.cpp [コード]
常駐部
ファイル | CControlTray.h [コード]
常駐部
ファイル | CDataProfile.cpp [コード]
ファイル | CDataProfile.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_Command_New.cpp [コード]
CEditViewクラスのコマンド処理系関数群
ファイル | CEditView_Diff.cpp [コード]
DIFF差分表示
ファイル | CEditView_New.cpp [コード]
CEditViewクラス
ファイル | CEditView_New2.cpp [コード]
CEditViewクラス
ファイル | CEditView_New3.cpp [コード]
試験機能？実体無し
ファイル | CEditView_Paint.cpp [コード]
ファイル | CEditView_Paint.h [コード]
ファイル | CEditWnd.cpp [コード]
編集ウィンドウ（外枠）管理クラス
ファイル | CEditWnd.h [コード]
編集ウィンドウ（外枠）管理クラス
ファイル | CEol.cpp [コード]
CEOLクラスの実装
ファイル | CEol.h [コード]
End of Line種別の管理
ファイル | CESI.cpp [コード]
文字コード調査情報保持クラス
ファイル | CESI.h [コード]
文字コード調査情報保持クラス
ファイル | CFileExt.cpp [コード]
オープンダイアログ用ファイル拡張子管理
ファイル | CFileExt.h [コード]
オープンダイアログ用ファイル拡張子管理
ファイル | CFileLoad.cpp [コード]
ファイル読み込みクラス
ファイル | CFileLoad.h [コード]
メモリバッファクラスへのファイル入力クラス
ファイル | CFilePath.cpp [コード]
ファイル | CFilePath.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 [コード]
文字コード認識ライブラリ
ファイル | charcode2.h [コード]
ファイル | CharPointer.h [コード]
ファイル | CHokanMgr.cpp [コード]
キーワード補完
ファイル | CHokanMgr.h [コード]
キーワード補完
ファイル | CHtmlHelp.cpp [コード]
HtmpHelp動的ロード
ファイル | CHtmlHelp.h [コード]
HtmpHelp動的ロード
ファイル | CImageListMgr.cpp [コード]
ImageListの取り扱い
ファイル | CImageListMgr.h [コード]
ImageListの取り扱い
ファイル | CIoBridge.cpp [コード]
ファイル | CIoBridge.h [コード]
ファイル | 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 [コード]
マクロエンジン
ファイル | CMainStatusBar.cpp [コード]
ファイル | CMainStatusBar.h [コード]
ファイル | CMainToolBar.cpp [コード]
ファイル | CMainToolBar.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管理
ファイル | CNative.cpp [コード]
ファイル | CNative.h [コード]
ファイル | CNativeA.cpp [コード]
ファイル | CNativeA.h [コード]
ファイル | CNativeT.h [コード]
ファイル | CNativeW.cpp [コード]
ファイル | CNativeW.h [コード]
ファイル | 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 [コード]
最近使ったリスト
ファイル | CRecentCmd.cpp [コード]
ファイル | CRecentCmd.h [コード]
ファイル | CRecentEditNode.cpp [コード]
ファイル | CRecentEditNode.h [コード]
ファイル | CRecentFile.cpp [コード]
ファイル | CRecentFile.h [コード]
ファイル | CRecentFolder.cpp [コード]
ファイル | CRecentFolder.h [コード]
ファイル | CRecentGrepFile.cpp [コード]
ファイル | CRecentGrepFile.h [コード]
ファイル | CRecentGrepFolder.cpp [コード]
ファイル | CRecentGrepFolder.h [コード]
ファイル | CRecentImp.cpp [コード]
ファイル | CRecentImp.h [コード]
ファイル | CRecentReplace.cpp [コード]
ファイル | CRecentReplace.h [コード]
ファイル | CRecentSearch.cpp [コード]
ファイル | CRecentSearch.h [コード]
ファイル | CRecentTagjumpKeyword.cpp [コード]
ファイル | CRecentTagjumpKeyword.h [コード]
ファイル | CRegexKeyword.cpp [コード]
CRegexKeyword Library
ファイル | CRegexKeyword.h [コード]
CRegexKeyword Library
ファイル | CRuler.cpp [コード]
ファイル | CRuler.h [コード]
ファイル | 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 [コード]
タブウィンドウ
ファイル | CTextArea.cpp [コード]
ファイル | CTextArea.h [コード]
ファイル | CTextDrawer.cpp [コード]
ファイル | CTextDrawer.h [コード]
ファイル | CTextMetrics.cpp [コード]
ファイル | CTextMetrics.h [コード]
ファイル | CTipWnd.cpp [コード]
ツールチップ
ファイル | CTipWnd.h [コード]
ツールチップ
ファイル | CTypeSupport.cpp [コード]
ファイル | CTypeSupport.h [コード]
ファイル | CUxTheme.cpp [コード]
UxTheme 動的ロード
ファイル | CUxTheme.h [コード]
UxTheme 動的ロード
ファイル | CViewCalc.cpp [コード]
ファイル | CViewCalc.h [コード]
ファイル | CViewCommander.cpp [コード]
CEditViewクラスのコマンド処理系関数群
ファイル | CViewCommander.h [コード]
ファイル | CViewCommander_Diff.cpp [コード]
ファイル | CViewCommander_Grep.cpp [コード]
ファイル | CViewCommander_Hokan.cpp [コード]
ファイル | CViewCommander_New.cpp [コード]
ファイル | CViewFont.cpp [コード]
ファイル | CViewFont.h [コード]
ファイル | CViewParser.cpp [コード]
ファイル | CViewParser.h [コード]
ファイル | CViewSelect.cpp [コード]
ファイル | CViewSelect.h [コード]
ファイル | CWaitCursor.cpp [コード]
砂時計カーソル
ファイル | CWaitCursor.h [コード]
砂時計カーソル
ファイル | CWnd.cpp [コード]
ウィンドウの基本クラス
ファイル | CWnd.h [コード]
ウィンドウの基本クラス
ファイル | CWSH.cpp [コード]
WSH Handler
ファイル | CWSH.h [コード]
WSH Handler
ファイル | CWSHManager.h [コード]
WSH Manager
ファイル | Debug.cpp [コード]
デバッグ用関数
ファイル | Debug.h [コード]
デバッグ用関数
ファイル | Debug2.cpp [コード]
ファイル | Debug2.h [コード]
ファイル | Debug3.cpp [コード]
ファイル | Debug3.h [コード]
ファイル | DispPos.cpp [コード]
ファイル | DispPos.h [コード]
ファイル | FileInfo.h [コード]
ファイル | Funccode.cpp [コード]
機能分類定義
ファイル | Funccode.h [コード]
機能番号定義
ファイル | Funccode_define.h [コード]
ファイル | Funccode_enum.h [コード]
ファイル | global.cpp [コード]
文字列共通定義
ファイル | global.h [コード]
共通定義
ファイル | Keycode.h [コード]
キーコード定義
ファイル | 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
ファイル | sakura.hh [コード]
ファイル | sakura_rc.h [コード]
ファイル | StaticType.h [コード]
ファイル | StdAfx.cpp [コード]
ファイル | StdAfx.h [コード]
ファイル | WinMain.cpp [コード]
Entry Point
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/apiwrap/ ディレクトリリファレンス

sakura_core » apiwrap

apiwrap ディレクトリリファレンス

ファイル

ファイル | CommonControl.h [コード]
ファイル | StdApi.cpp [コード]
ファイル | StdApi.h [コード]
ファイル | StdControl.cpp [コード]
ファイル | StdControl.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/basis/ ディレクトリリファレンス

sakura_core » basis

basis ディレクトリリファレンス

ファイル

ファイル | CLaxInteger.cpp [コード]
ファイル | CLaxInteger.h [コード]
ファイル | CMyPoint.cpp [コード]
ファイル | CMyPoint.h [コード]
ファイル | CMyRect.cpp [コード]
ファイル | CMyRect.h [コード]
ファイル | CMySize.cpp [コード]
ファイル | CMySize.h [コード]
ファイル | CMyString.cpp [コード]
ファイル | CMyString.h [コード]
ファイル | CStrictInteger.cpp [コード]
ファイル | CStrictInteger.h [コード]
厳格っぷりをカスタマイズ可能な整数クラス Integer class, which is static-type-checked strict and flexible at compile.
ファイル | CStrictPoint.cpp [コード]
ファイル | CStrictPoint.h [コード]
ファイル | CStrictRange.cpp [コード]
ファイル | CStrictRange.h [コード]
ファイル | CStrictRect.cpp [コード]
ファイル | CStrictRect.h [コード]
ファイル | primitive.h [コード]
ファイル | SakuraBasis.cpp [コード]
ファイル | SakuraBasis.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/charset/ ディレクトリリファレンス

sakura_core » charset

charset ディレクトリリファレンス

ファイル

ファイル | CCodeBase.h [コード]
ファイル | CCodeFactory.cpp [コード]
ファイル | CCodeFactory.h [コード]
ファイル | CCodeMediator.cpp [コード]
ファイル | CCodeMediator.h [コード]
ファイル | CEuc.cpp [コード]
ファイル | CEuc.h [コード]
ファイル | CJis.cpp [コード]
ファイル | CJis.h [コード]
ファイル | codeutil.cpp [コード]
ファイル | codeutil.h [コード]
ファイル | CShiftJis.cpp [コード]
ファイル | CShiftJis.h [コード]
ファイル | CUnicode.cpp [コード]
ファイル | CUnicode.h [コード]
ファイル | CUnicodeBe.cpp [コード]
ファイル | CUnicodeBe.h [コード]
ファイル | CUtf7.cpp [コード]
ファイル | CUtf7.h [コード]
ファイル | CUtf8.cpp [コード]
ファイル | CUtf8.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/config/ ディレクトリリファレンス

sakura_core » config

config ディレクトリリファレンス

ファイル

ファイル | build_config.h [コード]
ファイル | maxdata.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:19 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/convert/ ディレクトリリファレンス

sakura_core » convert

convert ディレクトリリファレンス

ファイル

ファイル | CConvert.cpp [コード]
ファイル | CConvert.h [コード]
ファイル | CConvert_Base64Decode.cpp [コード]
ファイル | CConvert_Base64Decode.h [コード]
ファイル | CConvert_HaneisuToZeneisu.cpp [コード]
ファイル | CConvert_HaneisuToZeneisu.h [コード]
ファイル | CConvert_HankanaToZenhira.cpp [コード]
ファイル | CConvert_HankanaToZenhira.h [コード]
ファイル | CConvert_HankanaToZenkana.cpp [コード]
ファイル | CConvert_HankanaToZenkana.h [コード]
ファイル | CConvert_SpaceToTab.cpp [コード]
ファイル | CConvert_SpaceToTab.h [コード]
ファイル | CConvert_TabToSpace.cpp [コード]
ファイル | CConvert_TabToSpace.h [コード]
ファイル | CConvert_ToHankaku.cpp [コード]
ファイル | CConvert_ToHankaku.h [コード]
ファイル | CConvert_ToLower.cpp [コード]
ファイル | CConvert_ToLower.h [コード]
ファイル | CConvert_ToUpper.cpp [コード]
ファイル | CConvert_ToUpper.h [コード]
ファイル | CConvert_ToZenhira.cpp [コード]
ファイル | CConvert_ToZenhira.h [コード]
ファイル | CConvert_ToZenkana.cpp [コード]
ファイル | CConvert_ToZenkana.h [コード]
ファイル | CConvert_Trim.cpp [コード]
ファイル | CConvert_Trim.h [コード]
ファイル | CConvert_UuDecode.cpp [コード]
ファイル | CConvert_UuDecode.h [コード]
ファイル | CConvert_ZeneisuToHaneisu.cpp [コード]
ファイル | CConvert_ZeneisuToHaneisu.h [コード]
ファイル | CConvert_ZenkanaToHankana.cpp [コード]
ファイル | CConvert_ZenkanaToHankana.h [コード]
ファイル | convert_util.cpp [コード]
ファイル | convert_util.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/io/ ディレクトリリファレンス

sakura_core » io

io ディレクトリリファレンス

ファイル

ファイル | CBinaryStream.cpp [コード]
ファイル | CBinaryStream.h [コード]
ファイル | CStream.cpp [コード]
ファイル | CStream.h [コード]
ファイル | CTextStream.cpp [コード]
ファイル | CTextStream.h [コード]
ファイル | io_util.cpp [コード]
ファイル | io_util.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/mem/ ディレクトリリファレンス

sakura_core » mem

mem ディレクトリリファレンス

ファイル

ファイル | CRecycledBuffer.cpp [コード]
ファイル | CRecycledBuffer.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/parse/ ディレクトリリファレンス

sakura_core » parse

parse ディレクトリリファレンス

ファイル

ファイル | CWordParse.cpp [コード]
ファイル | CWordParse.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:20 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/share/ ディレクトリリファレンス

sakura_core » share

share ディレクトリリファレンス

ファイル

ファイル | CommonSetting.cpp [コード]
ファイル | CommonSetting.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/util/ ディレクトリリファレンス

sakura_core » util

util ディレクトリリファレンス

ファイル

ファイル | design_template.h [コード]
ファイル | file.cpp [コード]
ファイル | file.h [コード]
ファイル | format.cpp [コード]
ファイル | format.h [コード]
ファイル | input.cpp [コード]
ファイル | input.h [コード]
ファイル | module.cpp [コード]
ファイル | module.h [コード]
ファイル | os.cpp [コード]
ファイル | os.h [コード]
ファイル | shell.cpp [コード]
ファイル | shell.h [コード]
ファイル | std_macro.h [コード]
ファイル | string_ex.cpp [コード]
ファイル | string_ex.h [コード]
ファイル | string_ex2.cpp [コード]
ファイル | string_ex2.h [コード]
ファイル | tchar_convert.cpp [コード]
ファイル | tchar_convert.h [コード]
ファイル | tchar_printf.cpp [コード]
ファイル | tchar_printf.h [コード]
ファイル | tchar_receive.cpp [コード]
ファイル | tchar_receive.h [コード]
ファイル | tchar_template.cpp [コード]
ファイル | tchar_template.h [コード]
ファイル | window.cpp [コード]
ファイル | window.h [コード]
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- _ -

  • __declspec() : Debug3.cpp
  • __LTEXT : std_macro.h
  • _ALT : Keycode.h
  • _APP_NAME_ : global.h
  • _APP_NAME_2_ : global.h
  • _CARETMARGINRATE : CCaret.h
  • _CODE_SUFFIX_ : global.h
  • _CompareFunc_() : CDlgFuncList.cpp
  • _countof : std_macro.h
  • _countof2 : StaticType.h
  • _CTRL : Keycode.h
  • _DEBUG_SUFFIX_ : global.h
  • _EDITL : primitive.h
  • _FT : CFilePath.h
  • _GSTR_APPNAME_ : global.h
  • _INI_T : CProfile.h
  • _IS_REL_PATH() : file.cpp , file.h
  • _IS_SJIS_1 : MY_SP.C , charcode2.h
  • _IS_SJIS_2() : charcode2.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
  • _mbcjmstojis_ex() : codeutil.cpp , codeutil.h
  • _mbstotcs() : string_ex.h , string_ex.cpp
  • _memicmp : my_icmp.h
  • _SHIFT : Keycode.h
  • _stricmp : my_icmp.h
  • _strnicmp : my_icmp.h
  • _T2 : tchar_template.h
  • _tcscpy() : string_ex.h
  • _tcsistr : string_ex.h
  • _tcsistr_j : string_ex.h
  • _tcsncmp_literal : string_ex.h
  • _tcstombs() : string_ex.h , string_ex.cpp
  • _tcstowcs() : string_ex.cpp , string_ex.h
  • _tctomb() : string_ex.h , string_ex.cpp
  • _tctowc() : string_ex.cpp , string_ex.h
  • _TextTemplate() : tchar_template.h
  • _tfopen_absexe() : file.cpp , file.h
  • _tfopen_absini() : file.cpp , file.h
  • _tmemcpy : my_tchar.h
  • _tWinMain() : WinMain.cpp
  • _USE_META_ALIAS : CShareData.cpp
  • _wcstotcs() : string_ex.h , string_ex.cpp
  • _WINT : primitive.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- k -

  • KEYCODE : primitive.h
  • 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 Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- l -

  • LCHAR : std_macro.h
  • 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_ : charcode2.h
  • LFCR_ : charcode2.h
  • LimitStringLengthA() : string_ex2.h
  • LimitStringLengthB() : string_ex2.cpp , string_ex2.h
  • LimitStringLengthT() : string_ex2.h
  • LimitStringLengthW() : string_ex2.cpp , string_ex2.h
  • 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
  • Load() : Debug3.cpp
  • local_vsprintf() : tchar_printf.cpp
  • local_vsprintf_s() : tchar_printf.cpp
  • LONG_PTR : StdApi.h
  • LTEXT : std_macro.h
  • LUOFFSET_CUSTMENU : CFuncLookup.cpp
  • LUOFFSET_MACRO : CFuncLookup.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- m -

  • m_bIsSaveDialog : CDlgOpenFile.cpp
  • m_bReadOnly : CDlgOpenFile.cpp
  • m_delete2 : CMyString.h
  • 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 : maxdata.h
  • main() : mrc2brc.cpp , HeaderMake.cpp
  • MakeColorIndexType_RegularExpression() : global.h
  • MakeRGBStr() : CPropTypes.cpp
  • MakeStringBufferA : CDataProfile.h
  • MakeStringBufferT : CDataProfile.h
  • MakeStringBufferT0 : CDataProfile.h
  • MakeStringBufferW : CDataProfile.h
  • MakeStringBufferW0 : CDataProfile.h
  • MakeSureDirectoryPathExistsT : StdApi.h
  • malloc_char : StdAfx.h
  • 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_BUF : tchar_printf.cpp
  • MAX_CAPTION_CONF_LEN : CommonSetting.h
  • MAX_CMDARR : maxdata.h
  • MAX_CMDLEN : maxdata.h
  • MAX_CUSTMACRO : maxdata.h
  • MAX_CUSTOM_MENU : CommonSetting.h
  • MAX_CUSTOM_MENU_ITEMS : CommonSetting.h
  • MAX_CUSTOM_MENU_NAME_LEN : CommonSetting.h
  • MAX_DATETIMEFOREMAT_LEN : CommonSetting.h
  • MAX_DOCTYPE_LEN : maxdata.h
  • MAX_EDITWINDOWS : maxdata.h
  • MAX_EXTCMDLEN : maxdata.h
  • MAX_EXTCMDMRUNUM : maxdata.h
  • MAX_GREPFILE : maxdata.h
  • MAX_GREPFOLDER : maxdata.h
  • MAX_KEYHELP_FILE : maxdata.h
  • MAX_KEYWORDLEN : CKeyWordSetMgr.h
  • MAX_KEYWORDNUM : CKeyWordSetMgr.h
  • MAX_KEYWORDSET_PER_TYPE : maxdata.h
  • MAX_MARKLINES_LEN : maxdata.h
  • MAX_MENUITEMS : CMenuDrawer.h
  • MAX_MRU : maxdata.h
  • MAX_OPENFOLDER : CMRUFolder.h
  • MAX_PREVIEW_ZOOM : CPrintPreview.cpp
  • MAX_PRINTSETTINGARR : maxdata.h
  • MAX_REGEX_KEYWORD : maxdata.h
  • MAX_REPLACEKEY : maxdata.h
  • MAX_SEARCHKEY : maxdata.h
  • MAX_SETNAMELEN : CKeyWordSetMgr.h
  • MAX_SETNUM : CKeyWordSetMgr.h
  • MAX_TABITEM_WIDTH : CTabWnd.cpp
  • MAX_TAG_STRING_LENGTH : CSortedTagJumpList.h
  • MAX_TAGJUMP_KEYWORD : maxdata.h
  • MAX_TAGJUMPNUM : maxdata.h
  • MAX_TOOLBARBUTTONS : CommonSetting.h
  • MAX_TRANSFORM_FILENAME : maxdata.h
  • MAX_TYPES : maxdata.h
  • MAX_VERTLINES : maxdata.h
  • MAX_X : CImageListMgr.cpp
  • MAX_Y : CImageListMgr.cpp
  • MAXCOUNTOFVIEW : CSplitterWnd.h
  • maxdata : maxdata.h
  • MAXLINEKETAS : global.h
  • MBCODE_INFO : charcode.h
  • mbstowcs2() : string_ex.cpp , string_ex.h
  • mbstowcs_new() : string_ex.cpp , string_ex.h
  • mbstowcs_vector() : string_ex.cpp , string_ex.h
  • memcpy_raw() : string_ex.h
  • memicmp : my_icmp.h
  • memset_raw() : string_ex.h
  • MergeRect() : CMyRect.cpp , CMyRect.h
  • MessageBoxF : Debug.h
  • MessageBoxF_A() : Debug.cpp , Debug.h
  • MessageBoxF_W() : Debug.cpp , Debug.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_load_t : 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 : CJis.cpp
  • MIME_QUOTED : CJis.cpp
  • MIN_PREVIEW_ZOOM : CPrintPreview.cpp
  • MIN_TABITEM_WIDTH : CTabWnd.cpp
  • MINLINEKETAS : global.h
  • MODE_DEFINE : HeaderMake.cpp
  • MODE_ENUM : HeaderMake.cpp
  • MODE_INVALID : HeaderMake.cpp
  • 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() : string_ex.cpp
  • my_iskanji1() : string_ex.cpp , string_ex.h
  • my_iskanji2() : string_ex.h , string_ex.cpp
  • MY_RUNNINGTIMER : CRunningTimer.h
  • my_splitpath() : MY_SP.C , MY_SP.h
  • my_splitpath_t : MY_SP.h
  • my_splitpath_w() : MY_SP.h
  • my_strchr() : my_icmp.h
  • my_strchri() : my_icmp.h
  • my_stricmp() : string_ex.cpp , string_ex.h
  • my_strnicmp() : string_ex.h , string_ex.cpp
  • my_strstr() : my_icmp.h
  • my_strstri() : my_icmp.h
  • my_strtok() : string_ex.cpp , string_ex.h , string_ex.cpp
  • my_tcsicmp : my_tchar.h
  • my_tcsnicmp : my_tchar.h
  • my_tmemicmp : my_tchar.h
  • my_tolower() : string_ex.cpp , string_ex.h
  • my_toupper() : string_ex.h , string_ex.cpp
  • MY_TRACETIME : CRunningTimer.h
  • my_va_forward() : tchar_printf.cpp
  • MYASSERT : Debug.h
  • MYBCN_FUNCKEY : global.h
  • MYBCN_STATUSBAR : global.h
  • MYBCN_TAB : global.h
  • MYBCN_TOOLBAR : global.h
  • MYBrowseCallbackProc() : shell.cpp
  • MYDBGMSG : CRegexKeyword.cpp
  • MyDialogProc() : CDialog.cpp
  • MyGetAncestor() : window.h , window.cpp
  • MyInitCommonControls() : os.h , os.cpp
  • MyIsDialogMessage() : CEditWnd.cpp
  • MYMESSAGEBOX : Debug.h
  • MYMESSAGEBOX_A : Debug.h
  • MyPropertySheet() : shell.h , shell.cpp
  • mystring : CommonSetting.cpp
  • MYTRACE : Debug.h
  • MYTRACE_A : Debug.h
  • MYTRACE_W : Debug.h
  • MyWinHelp() : shell.h , shell.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_SHOWOWNEDPOPUPS : mymessage.h
  • MYWM_TAB_WINDOW_NOTIFY : mymessage.h
  • MYWM_UIPI_CHECK : mymessage.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- n -

  • nCheckBoxID : CPropTypes.cpp
  • nEditID : CPropTypes.cpp
  • NetConnect() : shell.h , shell.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
  • nKeyWordSetBlockSize : CKeyWordSetMgr.cpp
  • NOT_TCHAR : primitive.h
  • nTextID : CPropTypes.cpp
  • NULL : global.h
  • NULSTR : CMacroFactory.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- o -

  • OFN_ENABLESIZING : CDlgOpenFile.cpp
  • OFNHookProc() : CDlgOpenFile.cpp
  • OFNHookProcMain() : CDlgOpenFile.cpp
  • OkMessage : Debug.h
  • OkMessage_A : Debug.h
  • OlmArr : CPropTypes.cpp
  • omGet : CPPA.cpp
  • omSet : CPPA.cpp
  • OnFolderProc() : CDlgGrep.cpp
  • OPE_DELETE : COpe.h
  • OPE_INSERT : COpe.h
  • OPE_MOVECARET : COpe.h
  • OPE_UNKNOWN : COpe.h
  • OpenFile_InShareMode() : io_util.cpp , io_util.h
  • OPENFILENAME_SIZE_VERSION_400 : CDlgOpenFile.h
  • OpenHtmlHelp() : shell.cpp , shell.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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- a -

  • ACHAR : primitive.h , tchar_template.h
  • ActivateFrameWindow() : window.h , window.cpp
  • AddLastChar() : string_ex2.cpp , string_ex2.h
  • AddLastYenFromDirectoryPath() : file.h , file.cpp
  • AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_ : StdAfx.h
  • amemcmp() : string_ex.h
  • amemicmp() : string_ex.h
  • assert : Debug2.h
  • assert_warning : Debug2.h
  • AssertError() : Debug.cpp , Debug.h
  • astring : CMyString.h
  • ATEXT : std_macro.h
  • auto_atol() : string_ex.h
  • auto_memcmp() : string_ex.h
  • auto_memcpy() : string_ex.h
  • auto_memicmp() : string_ex.h
  • auto_memset() : string_ex.h
  • auto_snprintf() : string_ex.h
  • auto_sprintf() : string_ex.h
  • auto_sprintf_s() : string_ex.h
  • auto_strchr() : string_ex.h
  • auto_strcmp() : string_ex.h
  • auto_strcpy() : string_ex.h
  • auto_strcpy_s() : string_ex.h
  • auto_strlen() : string_ex.h
  • auto_strncmp() : string_ex.h
  • auto_strncpy() : string_ex.h
  • auto_strstr() : string_ex.h
  • auto_vsprintf() : string_ex.h
  • auto_vsprintf_s() : string_ex.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- b -

  • BFT_BITMAP : CEditView.cpp
  • BKUP_AUTO : CommonSetting.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() : window.cpp , window.h
  • BMatchExW() : bregexp.h
  • BMatchW() : bregexp.h
  • BOOL : global.h
  • BREGCONST : bregexp.h
  • BREGEXP_W : bregexp.h
  • BREGEXPAPI : bregexp.h
  • BRegexpVersionW() : bregexp.h
  • BRegfreeW() : bregexp.h
  • BSplitW() : bregexp.h
  • BSubstExW() : bregexp.h
  • BSubstW() : bregexp.h
  • BTransW() : bregexp.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- c -

  • C_IsLineEsc() : CEditDoc_FuncList1.cpp
  • C_IsOperator() : CEditDoc_FuncList1.cpp
  • C_IsSpace() : CEditDoc_FuncList1.cpp , CEditDoc_FuncList2.cpp
  • C_IsWordChar() : CEditDoc_FuncList1.cpp
  • CalcDirectoryDepth() : file.cpp , file.h
  • CalcHankakuByFont() : charcode.cpp
  • CALLH : CWnd.cpp
  • CCmdString : CRecentCmd.h
  • CDlgDebug_Proc() : CDlgDebug.cpp
  • CDlgInput1Proc() : CDlgInput1.cpp
  • CEditAppWndProc() : CControlTray.cpp
  • CEditWndProc() : CEditWnd.cpp
  • cescape() : string_ex2.cpp , string_ex2.h
  • CGrepFileString : CRecentGrepFile.h
  • CGrepFolderString : CRecentGrepFolder.h
  • CHAR_8BITCODE : CJis.cpp
  • CHAR_ASCII : CJis.cpp
  • CHAR_NULL : CJis.cpp
  • CHAR_ZENKAKU : CJis.cpp
  • CharPointerT : CharPointer.h
  • CheckEXT() : file.cpp , file.h
  • CheckKanjiCode_MAXREADLENGTH : CMemory.h
  • CheckRegexpSyntax() : CBregexp.cpp , CBregexp.h
  • CheckRegexpVersion() : CBregexp.cpp , CBregexp.h
  • CheckSystemResources() : os.cpp , os.h
  • CInterfaceObjectMethod : CWSH.h
  • CK_CR : CWordParse.h
  • CK_CSYM : CWordParse.h
  • CK_ETC : CWordParse.h
  • CK_GREEK : CWordParse.h
  • CK_HIRA : CWordParse.h
  • CK_KATA : CWordParse.h
  • CK_LF : CWordParse.h
  • CK_NULL : CWordParse.h
  • CK_SPACE : CWordParse.h
  • CK_TAB : CWordParse.h
  • CK_ZEN_CSYM : CWordParse.h
  • CK_ZEN_ETC : CWordParse.h
  • CK_ZEN_KATA : CWordParse.h
  • CK_ZEN_KIGO : CWordParse.h
  • CK_ZEN_NOBASU : CWordParse.h
  • CK_ZEN_ROS : CWordParse.h
  • CK_ZEN_SKIGO : CWordParse.h
  • CK_ZEN_SPACE : CWordParse.h
  • CLayoutInt : SakuraBasis.h
  • CLayoutPoint : SakuraBasis.h
  • CLayoutRange : SakuraBasis.h
  • CLayoutRect : SakuraBasis.h
  • cLineComment : CPropTypes.cpp
  • CLogicInt : SakuraBasis.h
  • CLogicPoint : SakuraBasis.h
  • CLogicRange : SakuraBasis.h
  • CLogicRect : SakuraBasis.h
  • 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
  • CNativeT : CNativeT.h
  • CODE_AUTODETECT : global.h
  • CODE_CODEMAX : global.h
  • CODE_DEFAULT : global.h
  • CODE_ERROR : global.h
  • CODE_EUC : global.h
  • CODE_JIS : global.h
  • CODE_NONE : 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 : StdApi.h
  • COLOR_MENUHILIGHT : StdApi.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_DEFAULT : 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
  • CommonValue_AllSave() : CommonSetting.cpp
  • Compare_by_ItemData() : CDlgFuncList.cpp
  • COMPAT_BMP_BASE : CPrintPreview.cpp
  • COMPAT_BMP_SCALE : CPrintPreview.cpp
  • COMPILER_TYPE : CDlgAbout.cpp
  • COMPILER_VER : CDlgAbout.cpp
  • compTABMENU_DATA() : CTabWnd.cpp
  • Convert_HanEisuu_To_ZenEisuu() : convert_util.h , convert_util.cpp
  • Convert_HankanaToZenkana() : convert_util.cpp , convert_util.h
  • Convert_ZenEisuu_To_HanEisuu() : convert_util.cpp , convert_util.h
  • Convert_ZenhiraToZenkana() : convert_util.h , convert_util.cpp
  • Convert_ZenKana_To_HanKana() : convert_util.cpp , convert_util.h
  • Convert_ZenkanaToZenhira() : convert_util.h , convert_util.cpp
  • CPathString : CRecentFolder.h
  • CPropComKeybindWndProc() : CPropComKeybind.cpp
  • CR_ : charcode2.h
  • CreateMbString() : StdApi.cpp
  • CReplaceString : CRecentReplace.h
  • CRLF_ : charcode2.h
  • CSearchString : CRecentSearch.h
  • CTagjumpKeywordString : CRecentTagjumpKeyword.h
  • CTAGS_COMMAND : CViewCommander.cpp
  • CUSTMENU_INDEX_FOR_RBUTTONUP : global.h
  • CUSTMENU_INDEX_FOR_TABWND : global.h
  • CutLastYenFromDirectoryPath() : file.cpp , file.h
  • CWndProc() : CWnd.cpp
  • CX_SMICON : CTabWnd.cpp
  • CY_SMICON : CTabWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- d -

  • DBMSG : Debug.h
  • DBMSG_IMP() : Debug.cpp , Debug.h
  • DBPRINT : Debug.h
  • DBPRINT_A : Debug.h
  • DBPRINT_W : Debug.h
  • DDASTEXT : CEditWnd.cpp
  • debug_exit() : Debug2.cpp
  • debug_output() : Debug2.cpp
  • DEBUG_SETPIXEL : StdApi.cpp
  • DebugMonitor_Output() : Debug3.cpp , Debug3.h
  • DebugOut : Debug.h
  • DebugOutA() : Debug.h , Debug.cpp
  • DebugOutW() : Debug.h
  • DECLARE_YB_INTERFACEIMPL : CDropTarget.cpp
  • DECLH : CWnd.h
  • DEFINE_T2 : tchar_template.h
  • DestroyMbString() : StdApi.cpp
  • DICT_ABOUT_LEN : CShareData.h
  • dupamp() : string_ex2.h
  • DWLP_MSGRESULT : StdApi.h
  • DWLP_USER : StdApi.h
  • DWORD_PTR : StdApi.h
  • DynCategory : CFuncLookup.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- e -

  • e_PM_SETCARETPOS_SELECTSTATE : mymessage.h
  • easy_format() : tchar_convert.cpp , tchar_convert.h
  • ECharKind : CWordParse.h
  • ECodeType : charcode.h , global.h
  • EColorIndexType : global.h
  • EConvertResult : CCodeBase.h
  • EDIT_CHAR : primitive.h
  • EditViewTimerProc() : CEditView.cpp
  • EditViewWndProc() : CEditView.cpp
  • EFunctionCode : Funccode_enum.h
  • EMode : HeaderMake.cpp
  • EngineCallback : CWSHManager.h
  • enumBarChangeNotifyType : global.h
  • enumCodeType : global.h
  • enumColorIndexType : global.h
  • enumEOLLen : global.h
  • enumEOLType : global.h
  • enumJisESCSeqType : charcode.h
  • enumOutlineType : global.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
  • EOpeCode : COpe.h
  • EPaintArea : CEditView_Paint.h
  • error_t : string_ex.h
  • ErrorMessage : Debug.h
  • ErrorMessage_A : Debug.h
  • ESC_ : charcode2.h
  • ESC_8BIT : CJis.cpp
  • ESC_ASCII : CJis.cpp
  • ESC_JIS : CJis.cpp
  • ESearchDirection : global.h
  • EShareMode : CommonSetting.h
  • EToHankakuMode : CConvert_ToHankaku.h
  • eWINSIZEMODE : CShareData.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- f -

  • F_0 : Funccode_define.h , Funccode_enum.h
  • F_1PageDown : Funccode_enum.h , Funccode_define.h
  • F_1PageDown_Sel : Funccode_define.h , Funccode_enum.h
  • F_1PageUp : Funccode_enum.h , Funccode_define.h
  • F_1PageUp_Sel : Funccode_define.h , Funccode_enum.h
  • F_ABOUT : Funccode_define.h , Funccode_enum.h
  • F_ACTIVATE_SQLPLUS : Funccode_define.h , Funccode_enum.h
  • F_ADDTAIL_W : Funccode_enum.h , Funccode_define.h
  • F_BASE64DECODE : Funccode_define.h , Funccode_enum.h
  • F_BEGIN_BOX : Funccode_define.h , Funccode_enum.h
  • F_BEGIN_SEL : Funccode_define.h , Funccode_enum.h
  • F_BIND_WINDOW : Funccode_define.h , Funccode_enum.h
  • F_BOOKMARK_NEXT : Funccode_define.h , Funccode_enum.h
  • F_BOOKMARK_PATTERN : Funccode_define.h , Funccode_enum.h
  • F_BOOKMARK_PREV : Funccode_define.h , Funccode_enum.h
  • F_BOOKMARK_RESET : Funccode_enum.h , Funccode_define.h
  • F_BOOKMARK_SET : Funccode_define.h , Funccode_enum.h
  • F_BOOKMARK_VIEW : Funccode_define.h , Funccode_enum.h
  • F_BRACKETPAIR : Funccode_define.h , Funccode_enum.h
  • F_BROWSE : Funccode_define.h , Funccode_enum.h
  • F_CANCEL_MODE : Funccode_define.h , Funccode_enum.h
  • F_CASCADE : Funccode_define.h , Funccode_enum.h
  • F_CHGMOD_EOL : Funccode_define.h , Funccode_enum.h
  • F_CHGMOD_EOL_CR : Funccode_define.h , Funccode_enum.h
  • F_CHGMOD_EOL_CRLF : Funccode_define.h , Funccode_enum.h
  • F_CHGMOD_EOL_LF : Funccode_define.h , Funccode_enum.h
  • F_CHGMOD_INS : Funccode_define.h , Funccode_enum.h
  • F_CHGTABWIDTH : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_AUTO2SJIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_EMAIL : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_EUC2SJIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_SJIS2EUC : Funccode_enum.h , Funccode_define.h
  • F_CODECNV_SJIS2JIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_SJIS2UTF7 : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_SJIS2UTF8 : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_UNICODE2SJIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_UNICODEBE2SJIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_UTF72SJIS : Funccode_define.h , Funccode_enum.h
  • F_CODECNV_UTF82SJIS : Funccode_define.h , Funccode_enum.h
  • F_COMPARE : Funccode_define.h , Funccode_enum.h
  • F_COPY : Funccode_define.h , Funccode_enum.h
  • F_COPY_ADDCRLF : Funccode_define.h , Funccode_enum.h
  • F_COPY_CRLF : Funccode_define.h , Funccode_enum.h
  • F_COPYFNAME : Funccode_define.h , Funccode_enum.h
  • F_COPYLINES : Funccode_define.h , Funccode_enum.h
  • F_COPYLINESASPASSAGE : Funccode_define.h , Funccode_enum.h
  • F_COPYLINESWITHLINENUMBER : Funccode_define.h , Funccode_enum.h
  • F_COPYPATH : Funccode_define.h , Funccode_enum.h
  • F_COPYTAG : Funccode_define.h , Funccode_enum.h
  • F_CREATEKEYBINDLIST : Funccode_define.h , Funccode_enum.h
  • F_CTRL_CODE_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_CURLINECENTER : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_1 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_10 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_11 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_12 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_13 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_14 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_15 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_16 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_17 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_18 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_19 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_2 : Funccode_enum.h , Funccode_define.h
  • F_CUSTMENU_20 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_21 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_22 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_23 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_24 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_3 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_4 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_5 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_6 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_7 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_8 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_9 : Funccode_define.h , Funccode_enum.h
  • F_CUSTMENU_BASE : Funccode_define.h , Funccode_enum.h
  • F_CUT : Funccode_define.h , Funccode_enum.h
  • F_CUT_LINE : Funccode_define.h , Funccode_enum.h
  • F_DEFAULT : Funccode_define.h , Funccode_enum.h
  • F_DELETE : Funccode_define.h , Funccode_enum.h
  • F_DELETE_BACK : Funccode_define.h , Funccode_enum.h
  • F_DELETE_LINE : Funccode_define.h , Funccode_enum.h
  • F_DIFF : Funccode_define.h , Funccode_enum.h
  • F_DIFF_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_DIFF_NEXT : Funccode_define.h , Funccode_enum.h
  • F_DIFF_PREV : Funccode_define.h , Funccode_enum.h
  • F_DIFF_RESET : Funccode_define.h , Funccode_enum.h
  • F_DIRECT_TAGJUMP : Funccode_define.h , Funccode_enum.h
  • F_DISABLE : Funccode_define.h , Funccode_enum.h
  • F_DOWN : Funccode_define.h , Funccode_enum.h
  • F_DOWN2 : Funccode_define.h , Funccode_enum.h
  • F_DOWN2_SEL : Funccode_define.h , Funccode_enum.h
  • F_DOWN_SEL : Funccode_define.h , Funccode_enum.h
  • F_DUPLICATELINE : Funccode_define.h , Funccode_enum.h
  • F_EXECCOMMAND : Funccode_define.h , Funccode_enum.h
  • F_EXECCOMMAND_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_EXECKEYMACRO : Funccode_define.h , Funccode_enum.h
  • F_EXITALL : Funccode_define.h , Funccode_enum.h
  • F_EXITALLEDITORS : Funccode_define.h , Funccode_enum.h
  • F_EXPANDPARAMETER : Funccode_define.h , Funccode_enum.h
  • F_EXTHELP1 : Funccode_define.h , Funccode_enum.h
  • F_EXTHTMLHELP : Funccode_define.h , Funccode_enum.h
  • F_FAVORITE : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_EUC : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_JIS : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_SJIS : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_UNICODE : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_UNICODEBE : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_UTF7 : Funccode_define.h , Funccode_enum.h
  • F_FILE_REOPEN_UTF8 : Funccode_define.h , Funccode_enum.h
  • F_FILECLOSE : Funccode_define.h , Funccode_enum.h
  • F_FILECLOSE_OPEN : Funccode_define.h , Funccode_enum.h
  • F_FILENEW : Funccode_define.h , Funccode_enum.h
  • F_FILEOPEN : Funccode_define.h , Funccode_enum.h
  • F_FILEOPEN_DROPDOWN : Funccode_define.h , Funccode_enum.h
  • F_FILESAVE : Funccode_define.h , Funccode_enum.h
  • F_FILESAVE_QUIET : Funccode_define.h , Funccode_enum.h
  • F_FILESAVEALL : Funccode_define.h , Funccode_enum.h
  • F_FILESAVEAS : Funccode_define.h , Funccode_enum.h
  • F_FILESAVEAS_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_FILESAVECLOSE : Funccode_define.h , Funccode_enum.h
  • F_FONT : Funccode_define.h , Funccode_enum.h
  • F_FUNCTION_FIRST : Funccode_define.h , Funccode_enum.h
  • F_GETCHARCODE : Funccode_define.h , Funccode_enum.h
  • F_GETFILENAME : Funccode_define.h , Funccode_enum.h
  • F_GETLINECODE : Funccode_enum.h , Funccode_define.h
  • F_GETLINECOUNT : Funccode_define.h , Funccode_enum.h
  • F_GETLINESTR : Funccode_define.h , Funccode_enum.h
  • F_GETSELCOLMFROM : Funccode_define.h , Funccode_enum.h
  • F_GETSELCOLMTO : Funccode_define.h , Funccode_enum.h
  • F_GETSELECTED : Funccode_define.h , Funccode_enum.h
  • F_GETSELLINEFROM : Funccode_define.h , Funccode_enum.h
  • F_GETSELLINETO : Funccode_define.h , Funccode_enum.h
  • F_GOFILEEND : Funccode_define.h , Funccode_enum.h
  • F_GOFILEEND_SEL : Funccode_define.h , Funccode_enum.h
  • F_GOFILETOP : Funccode_define.h , Funccode_enum.h
  • F_GOFILETOP_SEL : Funccode_define.h , Funccode_enum.h
  • F_GOLINEEND : Funccode_define.h , Funccode_enum.h
  • F_GOLINEEND_SEL : Funccode_define.h , Funccode_enum.h
  • F_GOLINETOP : Funccode_define.h , Funccode_enum.h
  • F_GOLINETOP_SEL : Funccode_define.h , Funccode_enum.h
  • F_GONEXTPARAGRAPH : Funccode_define.h , Funccode_enum.h
  • F_GONEXTPARAGRAPH_SEL : Funccode_define.h , Funccode_enum.h
  • F_GOPREVPARAGRAPH : Funccode_define.h , Funccode_enum.h
  • F_GOPREVPARAGRAPH_SEL : Funccode_define.h , Funccode_enum.h
  • F_GREP : Funccode_define.h , Funccode_enum.h
  • F_GREP_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_GROUPCLOSE : Funccode_define.h , Funccode_enum.h
  • F_HalfPageDown : Funccode_define.h , Funccode_enum.h
  • F_HalfPageDown_Sel : Funccode_define.h , Funccode_enum.h
  • F_HalfPageUp : Funccode_define.h , Funccode_enum.h
  • F_HalfPageUp_Sel : Funccode_define.h , Funccode_enum.h
  • F_HANKATATOZENKAKUHIRA : Funccode_define.h , Funccode_enum.h
  • F_HANKATATOZENKAKUKATA : Funccode_define.h , Funccode_enum.h
  • F_HELP_CONTENTS : Funccode_define.h , Funccode_enum.h
  • F_HELP_SEARCH : Funccode_define.h , Funccode_enum.h
  • F_HOKAN : Funccode_define.h , Funccode_enum.h
  • F_IME_CHAR : Funccode_define.h , Funccode_enum.h
  • F_INDENT_SPACE : Funccode_define.h , Funccode_enum.h
  • F_INDENT_TAB : Funccode_define.h , Funccode_enum.h
  • F_INS_DATE : Funccode_define.h , Funccode_enum.h
  • F_INS_TIME : Funccode_define.h , Funccode_enum.h
  • F_INSFILE : Funccode_define.h , Funccode_enum.h
  • F_INSTEXT_W : Funccode_define.h , Funccode_enum.h
  • F_INVALID : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_ADD_CHAR : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_ADD_STR : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_DEL_BACK : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_MIGEMO_NEXT : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_MIGEMO_PREV : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_NEXT : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_PREV : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_REGEXP_NEXT : Funccode_define.h , Funccode_enum.h
  • F_ISEARCH_REGEXP_PREV : Funccode_define.h , Funccode_enum.h
  • F_ISINSMODE : Funccode_define.h , Funccode_enum.h
  • F_ISPOSSIBLEREDO : Funccode_define.h , Funccode_enum.h
  • F_ISPOSSIBLEUNDO : Funccode_define.h , Funccode_enum.h
  • F_ISTEXTSELECTED : Funccode_define.h , Funccode_enum.h
  • F_JUMP : Funccode_define.h , Funccode_enum.h
  • F_JUMP_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_JUMP_SRCHSTARTPOS : Funccode_define.h , Funccode_enum.h
  • F_JUMPHIST_NEXT : Funccode_define.h , Funccode_enum.h
  • F_JUMPHIST_PREV : Funccode_define.h , Funccode_enum.h
  • F_JUMPHIST_SET : Funccode_define.h , Funccode_enum.h
  • F_LEFT : Funccode_define.h , Funccode_enum.h
  • F_LEFT_SEL : Funccode_define.h , Funccode_enum.h
  • F_LineCutToEnd : Funccode_define.h , Funccode_enum.h
  • F_LineCutToStart : Funccode_define.h , Funccode_enum.h
  • F_LineDeleteToEnd : Funccode_define.h , Funccode_enum.h
  • F_LineDeleteToStart : Funccode_define.h , Funccode_enum.h
  • F_LOADKEYMACRO : Funccode_define.h , Funccode_enum.h
  • F_LTRIM : Funccode_define.h , Funccode_enum.h
  • F_MAXIMIZE_H : Funccode_define.h , Funccode_enum.h
  • F_MAXIMIZE_V : Funccode_define.h , Funccode_enum.h
  • F_MENU_ALLFUNC : Funccode_define.h , Funccode_enum.h
  • F_MENU_NOT_USED_FIRST : Funccode_define.h , Funccode_enum.h
  • F_MENU_RBUTTON : Funccode_define.h , Funccode_enum.h
  • F_MERGE : Funccode_define.h , Funccode_enum.h
  • F_MINIMIZE_ALL : Funccode_define.h , Funccode_enum.h
  • F_NEXTGROUP : Funccode_define.h , Funccode_enum.h
  • F_NEXTWINDOW : Funccode_define.h , Funccode_enum.h
  • F_NOWOPENFILE : Funccode_define.h , Funccode_enum.h
  • F_OPEN_CCPP : Funccode_define.h , Funccode_enum.h
  • F_OPEN_HfromtoC : Funccode_enum.h , Funccode_define.h
  • F_OPEN_HHPP : Funccode_define.h , Funccode_enum.h
  • F_OPTION : Funccode_enum.h , Funccode_define.h
  • F_OPTION_BACKUP : Funccode_define.h , Funccode_enum.h
  • F_OPTION_CUSTMENU : Funccode_define.h , Funccode_enum.h
  • F_OPTION_EDIT : Funccode_define.h , Funccode_enum.h
  • F_OPTION_FILE : Funccode_enum.h , Funccode_define.h
  • F_OPTION_FNAME : Funccode_define.h , Funccode_enum.h
  • F_OPTION_FORMAT : Funccode_enum.h , Funccode_define.h
  • F_OPTION_GENERAL : Funccode_define.h , Funccode_enum.h
  • F_OPTION_GREP : Funccode_enum.h , Funccode_define.h
  • F_OPTION_HELPER : Funccode_define.h , Funccode_enum.h
  • F_OPTION_KEYBIND : Funccode_define.h , Funccode_enum.h
  • F_OPTION_KEYWORD : Funccode_define.h , Funccode_enum.h
  • F_OPTION_MACRO : Funccode_enum.h , Funccode_define.h
  • F_OPTION_TAB : Funccode_define.h , Funccode_enum.h
  • F_OPTION_TOOLBAR : Funccode_define.h , Funccode_enum.h
  • F_OPTION_TYPE : Funccode_define.h , Funccode_enum.h
  • F_OPTION_WINDOW : Funccode_enum.h , Funccode_define.h
  • F_OUTLINE : Funccode_define.h , Funccode_enum.h
  • F_OUTLINE_TOGGLE : Funccode_enum.h , Funccode_define.h
  • F_PASTE : Funccode_enum.h , Funccode_define.h
  • F_PASTEBOX : Funccode_enum.h , Funccode_define.h
  • F_PLSQL_COMPILE_ON_SQLPLUS : Funccode_define.h , Funccode_enum.h
  • F_PREVGROUP : Funccode_enum.h , Funccode_define.h
  • F_PREVWINDOW : Funccode_define.h , Funccode_enum.h
  • F_PRINT : Funccode_enum.h , Funccode_define.h
  • F_PRINT_PAGESETUP : Funccode_enum.h , Funccode_define.h
  • F_PRINT_PREVIEW : Funccode_define.h , Funccode_enum.h
  • F_PROPERTY_FILE : Funccode_define.h , Funccode_enum.h
  • F_PUTFILE : Funccode_define.h , Funccode_enum.h
  • F_READONLY : Funccode_define.h , Funccode_enum.h
  • F_RECENTFILE : Funccode_define.h , Funccode_enum.h
  • F_RECENTFOLDER : Funccode_define.h , Funccode_enum.h
  • F_RECKEYMACRO : Funccode_define.h , Funccode_enum.h
  • F_RECONVERT : Funccode_define.h , Funccode_enum.h
  • F_REDO : Funccode_define.h , Funccode_enum.h
  • F_REDRAW : Funccode_define.h , Funccode_enum.h
  • F_REPLACE : Funccode_define.h , Funccode_enum.h
  • F_REPLACE_ALL : Funccode_define.h , Funccode_enum.h
  • F_REPLACE_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_RIGHT : Funccode_define.h , Funccode_enum.h
  • F_RIGHT_SEL : Funccode_define.h , Funccode_enum.h
  • F_RTRIM : Funccode_enum.h , Funccode_define.h
  • F_SAVEKEYMACRO : Funccode_define.h , Funccode_enum.h
  • F_SEARCH_BOX : Funccode_define.h , Funccode_enum.h
  • F_SEARCH_CLEARMARK : Funccode_define.h , Funccode_enum.h
  • F_SEARCH_DIALOG : Funccode_define.h , Funccode_enum.h
  • F_SEARCH_NEXT : Funccode_define.h , Funccode_enum.h
  • F_SEARCH_PREV : Funccode_define.h , Funccode_enum.h
  • F_SELECTALL : Funccode_enum.h , Funccode_define.h
  • F_SELECTWORD : Funccode_define.h , Funccode_enum.h
  • F_SEPARATOR : Funccode_enum.h , Funccode_define.h
  • F_SET_QUOTESTRING : Funccode_define.h , Funccode_enum.h
  • F_SHOWFUNCKEY : Funccode_enum.h , Funccode_define.h
  • F_SHOWSTATUSBAR : Funccode_enum.h , Funccode_define.h
  • F_SHOWTAB : Funccode_enum.h , Funccode_define.h
  • F_SHOWTOOLBAR : Funccode_define.h , Funccode_enum.h
  • F_SORT_ASC : Funccode_enum.h , Funccode_define.h
  • F_SORT_DESC : Funccode_define.h , Funccode_enum.h
  • F_SPACETOTAB : Funccode_enum.h , Funccode_define.h
  • F_SPLIT_H : Funccode_enum.h , Funccode_define.h
  • F_SPLIT_V : Funccode_enum.h , Funccode_define.h
  • F_SPLIT_VH : Funccode_enum.h , Funccode_define.h
  • F_TAB_JOINTNEXT : Funccode_enum.h , Funccode_define.h
  • F_TAB_JOINTPREV : Funccode_enum.h , Funccode_define.h
  • F_TAB_MOVELEFT : Funccode_enum.h , Funccode_define.h
  • F_TAB_MOVERIGHT : Funccode_define.h , Funccode_enum.h
  • F_TAB_SEPARATE : Funccode_enum.h , Funccode_define.h
  • F_TABTOSPACE : Funccode_define.h , Funccode_enum.h
  • F_TAGJUMP : Funccode_enum.h , Funccode_define.h
  • F_TAGJUMP_CLOSE : Funccode_enum.h , Funccode_define.h
  • F_TAGJUMP_KEYWORD : Funccode_define.h , Funccode_enum.h
  • F_TAGJUMP_LIST : Funccode_enum.h , Funccode_define.h
  • F_TAGJUMPBACK : Funccode_enum.h , Funccode_define.h
  • F_TAGS_MAKE : Funccode_enum.h , Funccode_define.h
  • F_TILE_H : Funccode_enum.h , Funccode_define.h
  • F_TILE_V : Funccode_enum.h , Funccode_define.h
  • F_TOGGLE_KEY_SEARCH : Funccode_enum.h , Funccode_define.h
  • F_TOHANEI : Funccode_define.h , Funccode_enum.h
  • F_TOHANKAKU : Funccode_enum.h , Funccode_define.h
  • F_TOHANKATA : Funccode_enum.h , Funccode_define.h
  • F_TOLOWER : Funccode_enum.h , Funccode_define.h
  • F_TOPMOST : Funccode_define.h , Funccode_enum.h
  • F_TOUPPER : Funccode_enum.h , Funccode_define.h
  • F_TOZENEI : Funccode_enum.h , Funccode_define.h
  • F_TOZENKAKUHIRA : Funccode_define.h , Funccode_enum.h
  • F_TOZENKAKUKATA : Funccode_enum.h , Funccode_define.h
  • F_TRACEOUT : Funccode_define.h , Funccode_enum.h
  • F_TYPE_COLOR : Funccode_define.h , Funccode_enum.h
  • F_TYPE_HELPER : Funccode_define.h , Funccode_enum.h
  • F_TYPE_KEYHELP : Funccode_enum.h , Funccode_define.h
  • F_TYPE_LIST : Funccode_enum.h , Funccode_define.h
  • F_TYPE_REGEX_KEYWORD : Funccode_enum.h , Funccode_define.h
  • F_TYPE_SCREEN : Funccode_enum.h , Funccode_define.h
  • F_UNDO : Funccode_enum.h , Funccode_define.h
  • F_UNINDENT_SPACE : Funccode_enum.h , Funccode_define.h
  • F_UNINDENT_TAB : Funccode_define.h , Funccode_enum.h
  • F_UP : Funccode_enum.h , Funccode_define.h
  • F_UP2 : Funccode_enum.h , Funccode_define.h
  • F_UP2_SEL : Funccode_enum.h , Funccode_define.h
  • F_UP_SEL : Funccode_enum.h , Funccode_define.h
  • F_USERMACRO_0 : Funccode_enum.h , Funccode_define.h
  • F_UUDECODE : Funccode_define.h , Funccode_enum.h
  • F_WCHAR : Funccode_define.h , Funccode_enum.h
  • F_WIN_CLOSEALL : Funccode_enum.h , Funccode_define.h
  • F_WIN_OUTPUT : Funccode_enum.h , Funccode_define.h
  • F_WINCLOSE : Funccode_enum.h , Funccode_define.h
  • F_WINLIST : Funccode_define.h , Funccode_enum.h
  • F_WndScrollDown : Funccode_enum.h , Funccode_define.h
  • F_WndScrollUp : Funccode_enum.h , Funccode_define.h
  • F_WordCut : Funccode_enum.h , Funccode_define.h
  • F_WordDelete : Funccode_define.h , Funccode_enum.h
  • F_WordDeleteToEnd : Funccode_define.h , Funccode_enum.h
  • F_WordDeleteToStart : Funccode_define.h , Funccode_enum.h
  • F_WORDLEFT : Funccode_enum.h , Funccode_define.h
  • F_WORDLEFT_SEL : Funccode_enum.h , Funccode_define.h
  • F_WORDRIGHT : Funccode_enum.h , Funccode_define.h
  • F_WORDRIGHT_SEL : Funccode_enum.h , Funccode_define.h
  • F_WRAPWINDOWWIDTH : Funccode_enum.h , Funccode_define.h
  • FALSE : global.h
  • FID_RECONVERT_VERSION : CViewCommander_New.cpp
  • field_convert() : tchar_printf.cpp
  • FillSolidRect() : CImageListMgr.cpp , CMenuDrawer.cpp
  • FN_APP_ICON : global.h
  • FN_GREP_ICON : global.h
  • FN_TOOL_BMP : global.h
  • FOOTER_MAX : CShareData.h
  • FuncID_To_HelpContextID() : Funccode.cpp , Funccode.h
  • FUNCINFO_NOCLIPTEXT : CFuncInfo.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- g -

  • g_aKakkos : CEditView_New2.cpp
  • g_bufBig : tchar_convert.cpp
  • g_bufSmall : tchar_convert.cpp
  • g_cHtmlHelp : shell.cpp
  • g_ColorAttributeArr : global.cpp , global.h
  • g_commonvalues : CommonSetting.cpp
  • g_m_pCEditApp : CControlTray.cpp
  • g_m_pcEditView : CEditView.cpp
  • g_pcEditWnd : global.cpp , global.h
  • g_pOldToolBarWndProc : CMainToolBar.cpp
  • g_pOnFolderProc : CDlgGrep.cpp
  • GA_PARENT : window.h
  • GA_ROOT : window.h
  • GA_ROOTOWNER : window.h
  • GA_ROOTOWNER2 : window.h
  • GetAlignmentSize() : CKeyWordSetMgr.cpp
  • GetAppIcon() : module.cpp , module.h
  • GetAppVersionInfo() : module.cpp , module.h
  • GetColorIndexByName() : global.cpp , global.h
  • GetColorNameByIndex() : global.cpp , global.h
  • GetComctl32Version() : os.cpp , os.h
  • getCtrlKeyState() : input.cpp , input.h
  • GetDateTimeFormat() : format.h , format.cpp
  • GetDllShareData() : CShareData.cpp , CShareData.h
  • GetDllVersion() : module.cpp , module.h
  • GetExedir() : file.cpp , module.h
  • GetExistPath() : MY_SP.C
  • GetExistPath_AV_Drive : MY_SP.C
  • GetExistPath_IV_Drive : MY_SP.C
  • GetExistPath_NO_DriveLetter : MY_SP.C
  • GetExistPathW() : MY_SP.C
  • GetFileName() : CPropTypesKeyHelp.cpp
  • GetFileTitlePointer() : HeaderMake.cpp , file.cpp , file.h
  • GetGlobalData() : CEditView.cpp
  • GetInidir() : file.cpp , module.h
  • GetInidirOrExedir() : file.cpp , module.h
  • GetLastWriteTimestamp() : file.cpp , file.h
  • GetLineColm() : string_ex2.cpp , string_ex2.h
  • GetLongFileName() : file.cpp , file.h
  • GetMessageBoxOwner() : Debug.cpp
  • GetMonitorWorkRect() : os.h , os.cpp
  • GetNBgn : CEditView_New.cpp
  • GetNextLimitedLengthText() : string_ex2.cpp , string_ex2.h
  • GetNextLine() : string_ex2.h , string_ex2.cpp
  • GetNextLineW() : string_ex2.cpp , string_ex2.h
  • GetNextLineWB() : string_ex2.h , string_ex2.cpp
  • GetNPos : CEditView_New.cpp
  • GetSpecialFolderPath() : shell.cpp , shell.h
  • GetSystemResources() : os.cpp , os.h
  • GetWindowLongPtr : StdApi.h
  • GetWindowsMessageName() : Debug3.cpp , Debug3.h
  • GFSR_GDIRESOURCES : os.cpp
  • GFSR_SYSTEMRESOURCES : os.cpp
  • GFSR_USERRESOURCES : os.cpp
  • GlobalLockBYTE : StdAfx.h
  • GlobalLockChar : StdAfx.h
  • GlobalLockUChar : StdAfx.h
  • GlobalLockWChar : StdAfx.h
  • gm_nCodeComboNameArrNum : global.cpp , global.h
  • gm_nCodeComboValueArr : global.h , global.cpp
  • gm_pnEolTypeArr : global.cpp , global.h
  • gm_pOldWndProc : CTabWnd.cpp
  • gm_pszCodeComboNameArr : global.h , global.cpp
  • gm_pszCodeNameArr_Bracket : global.h , global.cpp
  • gm_pszCodeNameArr_Normal : global.h , global.cpp
  • gm_pszCodeNameArr_Short : global.h , global.cpp
  • gm_wpHokanListProc : CHokanMgr.cpp
  • GSTR_APPNAME : global.h
  • GSTR_APPNAME_A : global.h
  • GSTR_APPNAME_W : global.h
  • 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 : StdApi.h
  • GWLP_USERDATA : StdApi.h
  • GWLP_WNDPROC : StdApi.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- h -

  • HDIC_TAGJUMPLIST_KEYWORD : sakura.hh
  • hDll : Debug3.cpp
  • HEAD_EQ : charcode2.h
  • 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_bEnableLineModePaste : 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 Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- i -

  • ICON_DEFAULT_APP : global.h
  • ICON_DEFAULT_GREP : global.h
  • ID_HOTKEY_TRAYMENU : CControlTray.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.h
  • 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_bEnableLineModePaste : 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.h
  • IDT_EDIT : CEditWnd.h
  • IDT_FUNCWND : CFuncKeyWnd.cpp
  • IDT_PRINTSETTING : CDlgPrintSetting.cpp
  • IDT_ROLLMOUSE : CEditView.cpp , CEditDoc.cpp
  • IDT_SYSMENU : CEditWnd.h
  • IDT_TOOLBAR : CEditWnd.h
  • IDW_STATUSBAR : global.h
  • ImeStateArr : CPropTypes.cpp
  • ImeSwitchArr : CPropTypes.cpp
  • IMR_CONFIRMRECONVERTSTRING : CEditView.cpp
  • IMR_RECONVERTSTRING : CEditView.cpp
  • IndentTypeArr : CPropTypes.cpp
  • InfoMessage : Debug.h
  • InfoMessage_A : Debug.h
  • InitRegexp() : CBregexp.h , CBregexp.cpp
  • Int : primitive.h
  • INT_PTR : StdApi.h
  • INVALID_MACRO_IDX : CSMacroMgr.h
  • INVALID_SET_FILE_POINTER : CFileLoad.h
  • is_field_begin() : tchar_printf.cpp
  • is_field_type() : tchar_printf.cpp
  • IS_KEYWORD_CHAR() : charcode2.h
  • is_token() : HeaderMake.cpp
  • isAZ() : MY_SP.C
  • IsBASE64Char() : CConvert_Base64Decode.cpp
  • isCSymbol() : CWordParse.cpp
  • isCSymbolZen() : CWordParse.cpp
  • IsDataAvailable() : CEditView.cpp
  • ISDIB : CEditView.cpp
  • IsFileExists() : file.h , file.cpp
  • IsFilePath() : file.h , file.cpp
  • IsFileWritable() : io_util.cpp , io_util.h
  • IsFuncChecked() : Funccode.h , Funccode.cpp
  • IsFuncEnable() : Funccode.cpp , Funccode.h
  • IsInECodeType() : global.h
  • IsLocalDrive() : file.h , file.cpp
  • IsMailAddress() : CWordParse.cpp , CWordParse.h
  • IsNumber() : string_ex2.h , string_ex2.cpp
  • IsURL() : CWordParse.h , CWordParse.cpp
  • IsValidCodeType() : global.h
  • IsValidCodeTypeExceptSJIS() : global.h
  • IsVisualStyle() : os.cpp , os.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- p -

  • P_BREG : CBregexpDll2.cpp
  • P_CEditWnd : CEditDoc.h
  • p_ctrl_list : CDlgCtrlCode.cpp
  • p_date_form : CPropComFormat.cpp
  • p_extentions : CDlgTagJumpList.cpp
  • p_helpids : CDlgCancel.cpp , CDlgGrep.cpp , CPropComCustmenu.cpp , CPropComEdit.cpp , CDlgInput1.cpp , CPropComFile.cpp , CPropComFileName.cpp , CDlgCompare.cpp , CDlgJump.cpp , CPropComFormat.cpp , CPropComGrep.cpp , CDlgKeywordSelect.cpp , CPropComHelper.cpp , CPropComKeybind.cpp , CDlgCtrlCode.cpp , CDlgOpenFile.cpp , CPropComKeyword.cpp , CPropComMacro.cpp , CDlgPrintPage.cpp , CPropCommon.cpp , CPropComTab.cpp , CDlgDiff.cpp , CDlgPrintSetting.cpp , CPropComToolbar.cpp , CPropComWin.cpp , CDlgProperty.cpp , CPropTypesKeyHelp.cpp , CPropTypesRegex.cpp , CDialog.cpp , CDlgExec.cpp , CDlgReplace.cpp , CDlgSameColor.cpp , CDlgFavorite.cpp , CDlgTagJumpList.cpp , CDlgTagsMake.cpp , CDlgAbout.cpp , CDlgFind.cpp , CDlgTypeList.cpp , CDlgWinSize.cpp , CDlgFuncList.cpp , CHokanMgr.cpp , CPropComBackup.cpp
  • p_helpids1 : CPropTypes.cpp
  • p_helpids2 : CPropTypes.cpp
  • p_helpids3 : CPropTypes.cpp
  • P_ONIG : CBregexpDll2.cpp
  • p_time_form : CPropComFormat.cpp
  • PACKVERSION : os.h
  • PAGE_RANGE_X : CPrintPreview.cpp
  • PAGE_RANGE_Y : CPrintPreview.cpp
  • PAINT_ALL : CEditView_Paint.h
  • PAINT_BODY : CEditView_Paint.h
  • PAINT_LINENUMBER : CEditView_Paint.h
  • PAINT_RULER : CEditView_Paint.h
  • PCOpe : COpe.h
  • 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
  • PointCompare() : CMyPoint.h
  • PopulateKeyword : CShareData.cpp
  • POS_CENTER : CShareData.h
  • POS_LEFT : CShareData.h
  • POS_RIGHT : CShareData.h
  • PostMessageAny : StdApi.h
  • PostMessageCmd : StdApi.h
  • PPADLL_VER : CPPA.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() : os.h , os.cpp
  • PROP_TEMPCHANGE_FLAG : CDlgTypeList.h
  • PropSheetProc() : shell.cpp
  • PropSheetWndProc() : shell.cpp
  • PropTypesP1Proc() : CPropTypes.cpp
  • PropTypesP2Proc() : CPropTypes.cpp
  • PropTypesP3_newProc() : CPropTypes.cpp
  • Python_IsWordChar() : CEditDoc_FuncList2.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- q -

  • qsort_callback : CKeyWordSetMgr.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- r -

  • rcBtnBase : CTabWnd.cpp
  • ReadRegistry() : os.cpp , os.h
  • RECONVERTSTRING : CEditView.h
  • REGEX_INFO : CRegexKeyword.h
  • RELPRINT_A : Debug.h
  • ResolveShortcutLink() : shell.h , shell.cpp
  • RESULT_COMPLETE : CCodeBase.h
  • RESULT_FAILURE : CCodeBase.h
  • RESULT_LOSESOME : CCodeBase.h
  • 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 Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- s -

  • s_bGSort : CShareData.cpp
  • s_bSort : CShareData.cpp
  • s_dwComctl32Version : os.cpp
  • s_pOldPropSheetWndProc : shell.cpp
  • SAKURA_CORE_API : global.h
  • SAKURA_DIFF_TEMP_PREFIX : CEditView_Diff.cpp
  • sample() : CommonSetting.cpp
  • SAVED_KEYMACRO : CSMacroMgr.h
  • ScriptErrorHandler : CWSH.h
  • SEARCH_BACKWARD : global.h
  • SEARCH_FORWARD : global.h
  • SelectDir() : shell.cpp , shell.h
  • SELECTEDAREA_RGB : global.cpp , global.h
  • SELECTEDAREA_ROP2 : global.cpp , global.h
  • SelectionRange : SakuraBasis.h
  • SendMessageAny : StdApi.h
  • SendMessageCmd : StdApi.h
  • SetClipboardText() : os.cpp , os.h
  • SetClipboardTextImp() : os.cpp
  • SetData_EnumFontFamProc() : CDlgPrintSetting.cpp
  • SetNBgn : CEditView_New.cpp
  • SetNPos : CEditView_New.cpp
  • SetWindowLongPtr : StdApi.h
  • SFilePath : CFilePath.h
  • SHAREMODE_DENY_READWRITE : CommonSetting.h
  • SHAREMODE_DENY_WRITE : CommonSetting.h
  • SHAREMODE_NOT_EXCLUSIVE : CommonSetting.h
  • SHOW_NORMAL : global.h
  • SHOW_RELOAD : global.h
  • SHOW_TOGGLE : global.h
  • ShowWinHelpContents() : shell.cpp , shell.h
  • sizeof_raw : StdAfx.h
  • sizeof_type : StdAfx.h
  • sjis_strrchr2() : MY_SP.C , MY_SP.h
  • skip_field_flag() : tchar_printf.cpp
  • skip_field_precision() : tchar_printf.cpp
  • skip_field_prefix() : tchar_printf.cpp
  • skip_field_width() : tchar_printf.cpp
  • SMARTINDENT_CPP : global.h
  • SMARTINDENT_NONE : global.h
  • SmartIndentArr : CPropTypes.cpp
  • SortByKeyAsc() : CViewCommander_New.cpp
  • SortByKeyDesc() : CViewCommander_New.cpp
  • SORTDATA : CViewCommander_New.cpp
  • SORTTABLE : CViewCommander_New.cpp
  • SPACE_ : charcode2.h
  • SPI_GETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SPI_SETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SplitPath_FolderAndFile() : file.cpp , file.h
  • STAND_KEYMACRO : CSMacroMgr.h
  • static_buf : tchar_receive.cpp
  • STR_ALT_PLUS : CPropComKeybind.cpp
  • STR_COLORDATA_HEAD3 : CPropTypes.h
  • STR_COLORDATA_SECTION : CPropTypes.h
  • STR_CTRL_PLUS : CPropComKeybind.cpp
  • STR_SHIFT_PLUS : CPropComKeybind.cpp
  • strchr2() : CTextStream.cpp
  • strchr_j() : string_ex.h , string_ex.cpp
  • strchri : my_icmp.h
  • strcnv() : CPropTypesKeyHelp.cpp
  • strichr_j() : string_ex.cpp , string_ex.h
  • stricmp : my_icmp.h
  • STRICTINT_LEFT_INT_CMP : CStrictInteger.h
  • STRICTINT_OTHER_TYPE_AS_INT : CStrictInteger.h
  • StringBufferT : CDataProfile.h
  • stristr() : string_ex.cpp , string_ex.h
  • stristr_j() : string_ex.h , string_ex.cpp , string_ex.h
  • strncmp_literal : string_ex.h
  • STRNCMP_MAX : CEditView.cpp
  • strncpy_ex() : string_ex.h , string_ex2.cpp
  • strnicmp : my_icmp.h
  • strrchr2() : HeaderMake.cpp
  • strstr_j() : string_ex.h , string_ex.cpp
  • strstri : my_icmp.h
  • szText : Debug3.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- t -

  • t_abs() : std_macro.h
  • t_max() : std_macro.h
  • t_min() : std_macro.h
  • t_swap() : std_macro.h
  • TAB_ : charcode2.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
  • tableHanKana_Dakuten : convert_util.cpp
  • tableHanKana_HanDakuten : convert_util.cpp
  • tableHanKana_Kigo : convert_util.cpp
  • tableHanKana_Normal : convert_util.cpp
  • tableHanKigo : convert_util.cpp
  • tableZenKana_Dakuten : convert_util.cpp
  • tableZenKana_HanDakuten : convert_util.cpp
  • tableZenKana_Kigo : convert_util.cpp
  • tableZenKana_Normal : convert_util.cpp
  • tableZenKigo : convert_util.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
  • tchar_snprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_snwprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_sprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_sprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_swprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_swprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_to_wchar() : CEditView.cpp
  • tchar_vsprintf() : tchar_printf.h , tchar_printf.cpp
  • tchar_vsprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_vsprintf_s_imp() : tchar_printf.cpp
  • tchar_vswprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_vswprintf_s() : tchar_printf.cpp , tchar_printf.h
  • TIMER_CHECKFUNCENABLE : CFuncKeyWnd.cpp
  • TIMER_TIMEOUT : CFuncKeyWnd.cpp
  • to_achar() : tchar_convert.h , tchar_convert.cpp , tchar_convert.h
  • TO_EISU : CConvert_ToHankaku.h
  • TO_HIRAGANA : CConvert_ToHankaku.h
  • TO_KATAKANA : CConvert_ToHankaku.h
  • to_not_tchar : tchar_convert.h
  • to_tchar : tchar_convert.h
  • to_wchar() : tchar_convert.cpp , tchar_convert.h , tchar_convert.cpp , tchar_convert.h
  • ToolBarWndProc() : CMainToolBar.cpp
  • trail : mrc2brc.cpp , RcCvt.cpp
  • TRUE : global.h
  • tstring : CMyString.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
  • TwoPointToRange() : SakuraBasis.h
  • TwoPointToRect() : SakuraBasis.h , CMyPoint.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- u -

  • uchar16_t : primitive.h
  • uchar32_t : primitive.h
  • uchar_t : primitive.h
  • UINT_PTR : StdApi.h
  • ULONG_PTR : StdApi.h
  • UNICODE_BOOL : build_config.h
  • UNICODE_INFO : charcode.h
  • usage() : mrc2brc.cpp , HeaderMake.cpp
  • USE_PARENT : CRegexKeyword.h
  • uShareDataVersion : CShareData.cpp
  • UTF8_BOM : CTextStream.cpp
  • UUDECODE_CHAR() : CConvert_UuDecode.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- v -

  • VMessageBoxF : Debug.h
  • VMessageBoxF_A() : Debug.cpp , Debug.h
  • VMessageBoxF_W() : Debug.cpp , Debug.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- w -

  • WANT_GETLONGPATHNAME_WRAPPER : shell.cpp
  • warning_point() : Debug2.cpp
  • WarningMessage : Debug.h
  • WarningMessage_A : Debug.h
  • wc_to_c() : CWordParse.cpp
  • WCCODE_INFO : charcode.h
  • WCHAR : tchar_template.h
  • WChar : primitive.h
  • wchar32_t : primitive.h
  • wcs_pushA() : string_ex2.cpp , string_ex2.h
  • wcs_pushT : string_ex2.h
  • wcs_pushW() : string_ex2.cpp , string_ex2.h , string_ex2.cpp
  • wcscat_s() : string_ex.cpp , string_ex.h
  • wcschr_idx() : convert_util.cpp
  • wcscpyn() : string_ex.cpp , string_ex.h
  • wcsistr() : string_ex.cpp , string_ex.h
  • wcsncmp_auto() : string_ex.h
  • wcsncmp_literal : string_ex.h
  • wcsncpy_ex() : string_ex2.h
  • wcsrchr2() : MY_SP.C
  • wcstombs2() : string_ex.h , string_ex.cpp
  • wcstombs_new() : string_ex.cpp , string_ex.h
  • wcstombs_vector() : string_ex.cpp , string_ex.h
  • WIDTHBYTES : CEditView.cpp
  • WIN32_LEAN_AND_MEAN : StdAfx.h
  • WIN_CHAR : primitive.h
  • WINSIZEMODE_DEF : CShareData.h
  • WINSIZEMODE_SAVE : CShareData.h
  • WINSIZEMODE_SET : CShareData.h
  • WM_MOUSEWHEEL : CEditWnd.cpp , CEditView.cpp , CWnd.cpp
  • WM_THEMECHANGED : CEditWnd.cpp , CTabWnd.cpp
  • WM_XBUTTONDBLCLK : CEditView.cpp
  • WM_XBUTTONDOWN : CEditView.cpp
  • WM_XBUTTONUP : CEditView.cpp
  • wmemicmp() : string_ex.cpp , string_ex.h
  • Wrap() : OleTypes.h
  • WSTR_CUSTMENU_HEAD_V2 : CPropComCustmenu.cpp
  • WSTR_KEYDATA_HEAD : CPropComKeybind.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- x -

  • XBUTTON1 : CEditView.cpp
  • XBUTTON2 : CEditView.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


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
  • y

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- y -

  • YOHAKU_X : CEditWnd.cpp
  • YOHAKU_Y : CEditWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- _ -

  • __LTEXT : std_macro.h
  • _ALT : Keycode.h
  • _APP_NAME_ : global.h
  • _APP_NAME_2_ : global.h
  • _CARETMARGINRATE : CCaret.h
  • _CODE_SUFFIX_ : global.h
  • _countof : std_macro.h
  • _countof2 : StaticType.h
  • _CTRL : Keycode.h
  • _DEBUG_SUFFIX_ : global.h
  • _EDITL : primitive.h
  • _FT : CFilePath.h
  • _GSTR_APPNAME_ : global.h
  • _INI_T : CProfile.h
  • _IS_SJIS_1 : MY_SP.C
  • _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
  • _T2 : tchar_template.h
  • _tcsistr : string_ex.h
  • _tcsistr_j : string_ex.h
  • _tcsncmp_literal : string_ex.h
  • _tmemcpy : my_tchar.h
  • _USE_META_ALIAS : CShareData.cpp
  • _WINT : primitive.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • 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 Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- l -

  • LCHAR : std_macro.h
  • LF_ : charcode2.h
  • LFCR_ : charcode2.h
  • LINE_RANGE_X : CPrintPreview.cpp
  • LINE_RANGE_Y : CPrintPreview.cpp
  • ListView_SetCheckState : CDlgFavorite.cpp
  • LONG_PTR : StdApi.h
  • LTEXT : std_macro.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- m -

  • m_delete2 : CMyString.h
  • MakeStringBufferA : CDataProfile.h
  • MakeStringBufferT : CDataProfile.h
  • MakeStringBufferT0 : CDataProfile.h
  • MakeStringBufferW : CDataProfile.h
  • MakeStringBufferW0 : CDataProfile.h
  • MakeSureDirectoryPathExistsT : StdApi.h
  • malloc_char : StdAfx.h
  • 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_BUF : tchar_printf.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
  • MessageBoxF : Debug.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_load_t : 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 : CJis.cpp
  • MIME_QUOTED : CJis.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_splitpath_t : MY_SP.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
  • MYMESSAGEBOX_A : Debug.h
  • MYTRACE : Debug.h
  • MYTRACE_A : Debug.h
  • MYTRACE_W : 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_SHOWOWNEDPOPUPS : mymessage.h
  • MYWM_TAB_WINDOW_NOTIFY : mymessage.h
  • MYWM_UIPI_CHECK : mymessage.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- n -

  • NEVER_USED_PARAM : CPPA.cpp
  • NULL : global.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- o -

  • OFN_ENABLESIZING : CDlgOpenFile.cpp
  • OkMessage : Debug.h
  • OkMessage_A : Debug.h
  • omGet : CPPA.cpp
  • omSet : CPPA.cpp
  • OPENFILENAME_SIZE_VERSION_400 : CDlgOpenFile.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- a -

  • AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_ : StdAfx.h
  • assert : Debug2.h
  • assert_warning : Debug2.h
  • astring : CMyString.h
  • ATEXT : std_macro.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- b -

  • BFT_BITMAP : CEditView.cpp
  • BLOCKCOMMENT_BUFFERSIZE : CBlockComment.h
  • BLOCKCOMMENT_NUM : CBlockComment.h
  • BOOL : global.h
  • BREGCONST : bregexp.h
  • BREGEXPAPI : bregexp.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- c -

  • CALLH : CWnd.cpp
  • CHAR_8BITCODE : CJis.cpp
  • CHAR_ASCII : CJis.cpp
  • CHAR_NULL : CJis.cpp
  • CHAR_ZENKAKU : CJis.cpp
  • CheckKanjiCode_MAXREADLENGTH : CMemory.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
  • 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 : StdApi.h
  • COLOR_MENUHILIGHT : StdApi.h
  • COMMENT_DELIMITER_BUFFERSIZE : CLineComment.h
  • COMMENT_DELIMITER_NUM : CLineComment.h
  • COMPAT_BMP_BASE : CPrintPreview.cpp
  • COMPAT_BMP_SCALE : CPrintPreview.cpp
  • COMPILER_TYPE : CDlgAbout.cpp
  • COMPILER_VER : CDlgAbout.cpp
  • CR_ : charcode2.h
  • CRLF_ : charcode2.h
  • CTAGS_COMMAND : CViewCommander.cpp
  • CUSTMENU_INDEX_FOR_RBUTTONUP : global.h
  • CUSTMENU_INDEX_FOR_TABWND : global.h
  • CX_SMICON : CTabWnd.cpp
  • CY_SMICON : CTabWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- d -

  • DBMSG : Debug.h
  • DBPRINT : Debug.h
  • DBPRINT_A : Debug.h
  • DBPRINT_W : Debug.h
  • DDASTEXT : CEditWnd.cpp
  • DEBUG_SETPIXEL : StdApi.cpp
  • DebugOut : Debug.h
  • DECLARE_YB_INTERFACEIMPL : CDropTarget.cpp
  • DECLH : CWnd.h
  • DEFINE_T2 : tchar_template.h
  • DWLP_MSGRESULT : StdApi.h
  • DWLP_USER : StdApi.h
  • DWORD_PTR : StdApi.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- e -

  • EOL_TYPE_NUM : global.h
  • ErrorMessage : Debug.h
  • ErrorMessage_A : Debug.h
  • ESC_ : charcode2.h
  • ESC_8BIT : CJis.cpp
  • ESC_ASCII : CJis.cpp
  • ESC_JIS : CJis.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- f -

  • F_0 : Funccode_define.h
  • F_1PageDown : Funccode_define.h
  • F_1PageDown_Sel : Funccode_define.h
  • F_1PageUp : Funccode_define.h
  • F_1PageUp_Sel : Funccode_define.h
  • F_ABOUT : Funccode_define.h
  • F_ACTIVATE_SQLPLUS : Funccode_define.h
  • F_ADDTAIL_W : Funccode_define.h
  • F_BASE64DECODE : Funccode_define.h
  • F_BEGIN_BOX : Funccode_define.h
  • F_BEGIN_SEL : Funccode_define.h
  • F_BIND_WINDOW : Funccode_define.h
  • F_BOOKMARK_NEXT : Funccode_define.h
  • F_BOOKMARK_PATTERN : Funccode_define.h
  • F_BOOKMARK_PREV : Funccode_define.h
  • F_BOOKMARK_RESET : Funccode_define.h
  • F_BOOKMARK_SET : Funccode_define.h
  • F_BOOKMARK_VIEW : Funccode_define.h
  • F_BRACKETPAIR : Funccode_define.h
  • F_BROWSE : Funccode_define.h
  • F_CANCEL_MODE : Funccode_define.h
  • F_CASCADE : Funccode_define.h
  • F_CHGMOD_EOL : Funccode_define.h
  • F_CHGMOD_EOL_CR : Funccode_define.h
  • F_CHGMOD_EOL_CRLF : Funccode_define.h
  • F_CHGMOD_EOL_LF : Funccode_define.h
  • F_CHGMOD_INS : Funccode_define.h
  • F_CHGTABWIDTH : Funccode_define.h
  • F_CODECNV_AUTO2SJIS : Funccode_define.h
  • F_CODECNV_EMAIL : Funccode_define.h
  • F_CODECNV_EUC2SJIS : Funccode_define.h
  • F_CODECNV_SJIS2EUC : Funccode_define.h
  • F_CODECNV_SJIS2JIS : Funccode_define.h
  • F_CODECNV_SJIS2UTF7 : Funccode_define.h
  • F_CODECNV_SJIS2UTF8 : Funccode_define.h
  • F_CODECNV_UNICODE2SJIS : Funccode_define.h
  • F_CODECNV_UNICODEBE2SJIS : Funccode_define.h
  • F_CODECNV_UTF72SJIS : Funccode_define.h
  • F_CODECNV_UTF82SJIS : Funccode_define.h
  • F_COMPARE : Funccode_define.h
  • F_COPY : Funccode_define.h
  • F_COPY_ADDCRLF : Funccode_define.h
  • F_COPY_CRLF : Funccode_define.h
  • F_COPYFNAME : Funccode_define.h
  • F_COPYLINES : Funccode_define.h
  • F_COPYLINESASPASSAGE : Funccode_define.h
  • F_COPYLINESWITHLINENUMBER : Funccode_define.h
  • F_COPYPATH : Funccode_define.h
  • F_COPYTAG : Funccode_define.h
  • F_CREATEKEYBINDLIST : Funccode_define.h
  • F_CTRL_CODE_DIALOG : Funccode_define.h
  • F_CURLINECENTER : Funccode_define.h
  • F_CUSTMENU_1 : Funccode_define.h
  • F_CUSTMENU_10 : Funccode_define.h
  • F_CUSTMENU_11 : Funccode_define.h
  • F_CUSTMENU_12 : Funccode_define.h
  • F_CUSTMENU_13 : Funccode_define.h
  • F_CUSTMENU_14 : Funccode_define.h
  • F_CUSTMENU_15 : Funccode_define.h
  • F_CUSTMENU_16 : Funccode_define.h
  • F_CUSTMENU_17 : Funccode_define.h
  • F_CUSTMENU_18 : Funccode_define.h
  • F_CUSTMENU_19 : Funccode_define.h
  • F_CUSTMENU_2 : Funccode_define.h
  • F_CUSTMENU_20 : Funccode_define.h
  • F_CUSTMENU_21 : Funccode_define.h
  • F_CUSTMENU_22 : Funccode_define.h
  • F_CUSTMENU_23 : Funccode_define.h
  • F_CUSTMENU_24 : Funccode_define.h
  • F_CUSTMENU_3 : Funccode_define.h
  • F_CUSTMENU_4 : Funccode_define.h
  • F_CUSTMENU_5 : Funccode_define.h
  • F_CUSTMENU_6 : Funccode_define.h
  • F_CUSTMENU_7 : Funccode_define.h
  • F_CUSTMENU_8 : Funccode_define.h
  • F_CUSTMENU_9 : Funccode_define.h
  • F_CUSTMENU_BASE : Funccode_define.h
  • F_CUT : Funccode_define.h
  • F_CUT_LINE : Funccode_define.h
  • F_DEFAULT : Funccode_define.h
  • F_DELETE : Funccode_define.h
  • F_DELETE_BACK : Funccode_define.h
  • F_DELETE_LINE : Funccode_define.h
  • F_DIFF : Funccode_define.h
  • F_DIFF_DIALOG : Funccode_define.h
  • F_DIFF_NEXT : Funccode_define.h
  • F_DIFF_PREV : Funccode_define.h
  • F_DIFF_RESET : Funccode_define.h
  • F_DIRECT_TAGJUMP : Funccode_define.h
  • F_DISABLE : Funccode_define.h
  • F_DOWN : Funccode_define.h
  • F_DOWN2 : Funccode_define.h
  • F_DOWN2_SEL : Funccode_define.h
  • F_DOWN_SEL : Funccode_define.h
  • F_DUPLICATELINE : Funccode_define.h
  • F_EXECCOMMAND : Funccode_define.h
  • F_EXECCOMMAND_DIALOG : Funccode_define.h
  • F_EXECKEYMACRO : Funccode_define.h
  • F_EXITALL : Funccode_define.h
  • F_EXITALLEDITORS : Funccode_define.h
  • F_EXPANDPARAMETER : Funccode_define.h
  • F_EXTHELP1 : Funccode_define.h
  • F_EXTHTMLHELP : Funccode_define.h
  • F_FAVORITE : Funccode_define.h
  • F_FILE_REOPEN : Funccode_define.h
  • F_FILE_REOPEN_EUC : Funccode_define.h
  • F_FILE_REOPEN_JIS : Funccode_define.h
  • F_FILE_REOPEN_SJIS : Funccode_define.h
  • F_FILE_REOPEN_UNICODE : Funccode_define.h
  • F_FILE_REOPEN_UNICODEBE : Funccode_define.h
  • F_FILE_REOPEN_UTF7 : Funccode_define.h
  • F_FILE_REOPEN_UTF8 : Funccode_define.h
  • F_FILECLOSE : Funccode_define.h
  • F_FILECLOSE_OPEN : Funccode_define.h
  • F_FILENEW : Funccode_define.h
  • F_FILEOPEN : Funccode_define.h
  • F_FILEOPEN_DROPDOWN : Funccode_define.h
  • F_FILESAVE : Funccode_define.h
  • F_FILESAVE_QUIET : Funccode_define.h
  • F_FILESAVEALL : Funccode_define.h
  • F_FILESAVEAS : Funccode_define.h
  • F_FILESAVEAS_DIALOG : Funccode_define.h
  • F_FILESAVECLOSE : Funccode_define.h
  • F_FONT : Funccode_define.h
  • F_FUNCTION_FIRST : Funccode_define.h
  • F_GETCHARCODE : Funccode_define.h
  • F_GETFILENAME : Funccode_define.h
  • F_GETLINECODE : Funccode_define.h
  • F_GETLINECOUNT : Funccode_define.h
  • F_GETLINESTR : Funccode_define.h
  • F_GETSELCOLMFROM : Funccode_define.h
  • F_GETSELCOLMTO : Funccode_define.h
  • F_GETSELECTED : Funccode_define.h
  • F_GETSELLINEFROM : Funccode_define.h
  • F_GETSELLINETO : Funccode_define.h
  • F_GOFILEEND : Funccode_define.h
  • F_GOFILEEND_SEL : Funccode_define.h
  • F_GOFILETOP : Funccode_define.h
  • F_GOFILETOP_SEL : Funccode_define.h
  • F_GOLINEEND : Funccode_define.h
  • F_GOLINEEND_SEL : Funccode_define.h
  • F_GOLINETOP : Funccode_define.h
  • F_GOLINETOP_SEL : Funccode_define.h
  • F_GONEXTPARAGRAPH : Funccode_define.h
  • F_GONEXTPARAGRAPH_SEL : Funccode_define.h
  • F_GOPREVPARAGRAPH : Funccode_define.h
  • F_GOPREVPARAGRAPH_SEL : Funccode_define.h
  • F_GREP : Funccode_define.h
  • F_GREP_DIALOG : Funccode_define.h
  • F_GROUPCLOSE : Funccode_define.h
  • F_HalfPageDown : Funccode_define.h
  • F_HalfPageDown_Sel : Funccode_define.h
  • F_HalfPageUp : Funccode_define.h
  • F_HalfPageUp_Sel : Funccode_define.h
  • F_HANKATATOZENKAKUHIRA : Funccode_define.h
  • F_HANKATATOZENKAKUKATA : Funccode_define.h
  • F_HELP_CONTENTS : Funccode_define.h
  • F_HELP_SEARCH : Funccode_define.h
  • F_HOKAN : Funccode_define.h
  • F_IME_CHAR : Funccode_define.h
  • F_INDENT_SPACE : Funccode_define.h
  • F_INDENT_TAB : Funccode_define.h
  • F_INS_DATE : Funccode_define.h
  • F_INS_TIME : Funccode_define.h
  • F_INSFILE : Funccode_define.h
  • F_INSTEXT_W : Funccode_define.h
  • F_INVALID : Funccode_define.h
  • F_ISEARCH_ADD_CHAR : Funccode_define.h
  • F_ISEARCH_ADD_STR : Funccode_define.h
  • F_ISEARCH_DEL_BACK : Funccode_define.h
  • F_ISEARCH_MIGEMO_NEXT : Funccode_define.h
  • F_ISEARCH_MIGEMO_PREV : Funccode_define.h
  • F_ISEARCH_NEXT : Funccode_define.h
  • F_ISEARCH_PREV : Funccode_define.h
  • F_ISEARCH_REGEXP_NEXT : Funccode_define.h
  • F_ISEARCH_REGEXP_PREV : Funccode_define.h
  • F_ISINSMODE : Funccode_define.h
  • F_ISPOSSIBLEREDO : Funccode_define.h
  • F_ISPOSSIBLEUNDO : Funccode_define.h
  • F_ISTEXTSELECTED : Funccode_define.h
  • F_JUMP : Funccode_define.h
  • F_JUMP_DIALOG : Funccode_define.h
  • F_JUMP_SRCHSTARTPOS : Funccode_define.h
  • F_JUMPHIST_NEXT : Funccode_define.h
  • F_JUMPHIST_PREV : Funccode_define.h
  • F_JUMPHIST_SET : Funccode_define.h
  • F_LEFT : Funccode_define.h
  • F_LEFT_SEL : Funccode_define.h
  • F_LineCutToEnd : Funccode_define.h
  • F_LineCutToStart : Funccode_define.h
  • F_LineDeleteToEnd : Funccode_define.h
  • F_LineDeleteToStart : Funccode_define.h
  • F_LOADKEYMACRO : Funccode_define.h
  • F_LTRIM : Funccode_define.h
  • F_MAXIMIZE_H : Funccode_define.h
  • F_MAXIMIZE_V : Funccode_define.h
  • F_MENU_ALLFUNC : Funccode_define.h
  • F_MENU_NOT_USED_FIRST : Funccode_define.h
  • F_MENU_RBUTTON : Funccode_define.h
  • F_MERGE : Funccode_define.h
  • F_MINIMIZE_ALL : Funccode_define.h
  • F_NEXTGROUP : Funccode_define.h
  • F_NEXTWINDOW : Funccode_define.h
  • F_NOWOPENFILE : Funccode_define.h
  • F_OPEN_CCPP : Funccode_define.h
  • F_OPEN_HfromtoC : Funccode_define.h
  • F_OPEN_HHPP : Funccode_define.h
  • F_OPTION : Funccode_define.h
  • F_OPTION_BACKUP : Funccode_define.h
  • F_OPTION_CUSTMENU : Funccode_define.h
  • F_OPTION_EDIT : Funccode_define.h
  • F_OPTION_FILE : Funccode_define.h
  • F_OPTION_FNAME : Funccode_define.h
  • F_OPTION_FORMAT : Funccode_define.h
  • F_OPTION_GENERAL : Funccode_define.h
  • F_OPTION_GREP : Funccode_define.h
  • F_OPTION_HELPER : Funccode_define.h
  • F_OPTION_KEYBIND : Funccode_define.h
  • F_OPTION_KEYWORD : Funccode_define.h
  • F_OPTION_MACRO : Funccode_define.h
  • F_OPTION_TAB : Funccode_define.h
  • F_OPTION_TOOLBAR : Funccode_define.h
  • F_OPTION_TYPE : Funccode_define.h
  • F_OPTION_WINDOW : Funccode_define.h
  • F_OUTLINE : Funccode_define.h
  • F_OUTLINE_TOGGLE : Funccode_define.h
  • F_PASTE : Funccode_define.h
  • F_PASTEBOX : Funccode_define.h
  • F_PLSQL_COMPILE_ON_SQLPLUS : Funccode_define.h
  • F_PREVGROUP : Funccode_define.h
  • F_PREVWINDOW : Funccode_define.h
  • F_PRINT : Funccode_define.h
  • F_PRINT_PAGESETUP : Funccode_define.h
  • F_PRINT_PREVIEW : Funccode_define.h
  • F_PROPERTY_FILE : Funccode_define.h
  • F_PUTFILE : Funccode_define.h
  • F_READONLY : Funccode_define.h
  • F_RECENTFILE : Funccode_define.h
  • F_RECENTFOLDER : Funccode_define.h
  • F_RECKEYMACRO : Funccode_define.h
  • F_RECONVERT : Funccode_define.h
  • F_REDO : Funccode_define.h
  • F_REDRAW : Funccode_define.h
  • F_REPLACE : Funccode_define.h
  • F_REPLACE_ALL : Funccode_define.h
  • F_REPLACE_DIALOG : Funccode_define.h
  • F_RIGHT : Funccode_define.h
  • F_RIGHT_SEL : Funccode_define.h
  • F_RTRIM : Funccode_define.h
  • F_SAVEKEYMACRO : Funccode_define.h
  • F_SEARCH_BOX : Funccode_define.h
  • F_SEARCH_CLEARMARK : Funccode_define.h
  • F_SEARCH_DIALOG : Funccode_define.h
  • F_SEARCH_NEXT : Funccode_define.h
  • F_SEARCH_PREV : Funccode_define.h
  • F_SELECTALL : Funccode_define.h
  • F_SELECTWORD : Funccode_define.h
  • F_SEPARATOR : Funccode_define.h
  • F_SET_QUOTESTRING : Funccode_define.h
  • F_SHOWFUNCKEY : Funccode_define.h
  • F_SHOWSTATUSBAR : Funccode_define.h
  • F_SHOWTAB : Funccode_define.h
  • F_SHOWTOOLBAR : Funccode_define.h
  • F_SORT_ASC : Funccode_define.h
  • F_SORT_DESC : Funccode_define.h
  • F_SPACETOTAB : Funccode_define.h
  • F_SPLIT_H : Funccode_define.h
  • F_SPLIT_V : Funccode_define.h
  • F_SPLIT_VH : Funccode_define.h
  • F_TAB_JOINTNEXT : Funccode_define.h
  • F_TAB_JOINTPREV : Funccode_define.h
  • F_TAB_MOVELEFT : Funccode_define.h
  • F_TAB_MOVERIGHT : Funccode_define.h
  • F_TAB_SEPARATE : Funccode_define.h
  • F_TABTOSPACE : Funccode_define.h
  • F_TAGJUMP : Funccode_define.h
  • F_TAGJUMP_CLOSE : Funccode_define.h
  • F_TAGJUMP_KEYWORD : Funccode_define.h
  • F_TAGJUMP_LIST : Funccode_define.h
  • F_TAGJUMPBACK : Funccode_define.h
  • F_TAGS_MAKE : Funccode_define.h
  • F_TILE_H : Funccode_define.h
  • F_TILE_V : Funccode_define.h
  • F_TOGGLE_KEY_SEARCH : Funccode_define.h
  • F_TOHANEI : Funccode_define.h
  • F_TOHANKAKU : Funccode_define.h
  • F_TOHANKATA : Funccode_define.h
  • F_TOLOWER : Funccode_define.h
  • F_TOPMOST : Funccode_define.h
  • F_TOUPPER : Funccode_define.h
  • F_TOZENEI : Funccode_define.h
  • F_TOZENKAKUHIRA : Funccode_define.h
  • F_TOZENKAKUKATA : Funccode_define.h
  • F_TRACEOUT : Funccode_define.h
  • F_TYPE_COLOR : Funccode_define.h
  • F_TYPE_HELPER : Funccode_define.h
  • F_TYPE_KEYHELP : Funccode_define.h
  • F_TYPE_LIST : Funccode_define.h
  • F_TYPE_REGEX_KEYWORD : Funccode_define.h
  • F_TYPE_SCREEN : Funccode_define.h
  • F_UNDO : Funccode_define.h
  • F_UNINDENT_SPACE : Funccode_define.h
  • F_UNINDENT_TAB : Funccode_define.h
  • F_UP : Funccode_define.h
  • F_UP2 : Funccode_define.h
  • F_UP2_SEL : Funccode_define.h
  • F_UP_SEL : Funccode_define.h
  • F_USERMACRO_0 : Funccode_define.h
  • F_UUDECODE : Funccode_define.h
  • F_WCHAR : Funccode_define.h
  • F_WIN_CLOSEALL : Funccode_define.h
  • F_WIN_OUTPUT : Funccode_define.h
  • F_WINCLOSE : Funccode_define.h
  • F_WINLIST : Funccode_define.h
  • F_WndScrollDown : Funccode_define.h
  • F_WndScrollUp : Funccode_define.h
  • F_WordCut : Funccode_define.h
  • F_WordDelete : Funccode_define.h
  • F_WordDeleteToEnd : Funccode_define.h
  • F_WordDeleteToStart : Funccode_define.h
  • F_WORDLEFT : Funccode_define.h
  • F_WORDLEFT_SEL : Funccode_define.h
  • F_WORDRIGHT : Funccode_define.h
  • F_WORDRIGHT_SEL : Funccode_define.h
  • F_WRAPWINDOWWIDTH : Funccode_define.h
  • FALSE : global.h
  • FID_RECONVERT_VERSION : CViewCommander_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 Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- g -

  • GA_PARENT : window.h
  • GA_ROOT : window.h
  • GA_ROOTOWNER : window.h
  • GA_ROOTOWNER2 : window.h
  • GetExistPath_AV_Drive : MY_SP.C
  • GetExistPath_IV_Drive : MY_SP.C
  • GetExistPath_NO_DriveLetter : MY_SP.C
  • GetNBgn : CEditView_New.cpp
  • GetNPos : CEditView_New.cpp
  • GetWindowLongPtr : StdApi.h
  • GFSR_GDIRESOURCES : os.cpp
  • GFSR_SYSTEMRESOURCES : os.cpp
  • GFSR_USERRESOURCES : os.cpp
  • GlobalLockBYTE : StdAfx.h
  • GlobalLockChar : StdAfx.h
  • GlobalLockUChar : StdAfx.h
  • GlobalLockWChar : StdAfx.h
  • GSTR_APPNAME : global.h
  • GSTR_APPNAME_A : global.h
  • GSTR_APPNAME_W : global.h
  • 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 : StdApi.h
  • GWLP_USERDATA : StdApi.h
  • GWLP_WNDPROC : StdApi.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- h -

  • HDIC_TAGJUMPLIST_KEYWORD : sakura.hh
  • HEAD_EQ : charcode2.h
  • 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_bEnableLineModePaste : 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 Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- i -

  • ICON_DEFAULT_APP : global.h
  • ICON_DEFAULT_GREP : global.h
  • ID_HOTKEY_TRAYMENU : CControlTray.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.h
  • 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_bEnableLineModePaste : 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.h
  • IDT_EDIT : CEditWnd.h
  • IDT_FUNCWND : CFuncKeyWnd.cpp
  • IDT_PRINTSETTING : CDlgPrintSetting.cpp
  • IDT_ROLLMOUSE : CEditDoc.cpp , CEditView.cpp
  • IDT_SYSMENU : CEditWnd.h
  • IDT_TOOLBAR : CEditWnd.h
  • IDW_STATUSBAR : global.h
  • IMR_CONFIRMRECONVERTSTRING : CEditView.cpp
  • IMR_RECONVERTSTRING : CEditView.cpp
  • InfoMessage : Debug.h
  • InfoMessage_A : Debug.h
  • INT_PTR : StdApi.h
  • INVALID_SET_FILE_POINTER : CFileLoad.h
  • ISDIB : CEditView.cpp
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- p -

  • PACKVERSION : os.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
  • PostMessageAny : StdApi.h
  • PostMessageCmd : StdApi.h
  • PPADLL_VER : CPPA.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- r -

  • RELPRINT_A : Debug.h
  • 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 Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- s -

  • SAKURA_CORE_API : global.h
  • SAKURA_DIFF_TEMP_PREFIX : CEditView_Diff.cpp
  • SAVED_KEYMACRO : CSMacroMgr.h
  • SendMessageAny : StdApi.h
  • SendMessageCmd : StdApi.h
  • SetNBgn : CEditView_New.cpp
  • SetNPos : CEditView_New.cpp
  • SetWindowLongPtr : StdApi.h
  • sizeof_raw : StdAfx.h
  • sizeof_type : StdAfx.h
  • SPACE_ : charcode2.h
  • SPI_GETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SPI_SETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • STAND_KEYMACRO : CSMacroMgr.h
  • STR_ALT_PLUS : CPropComKeybind.cpp
  • STR_COLORDATA_HEAD3 : CPropTypes.h
  • STR_COLORDATA_SECTION : CPropTypes.h
  • STR_CTRL_PLUS : CPropComKeybind.cpp
  • STR_SHIFT_PLUS : CPropComKeybind.cpp
  • strchri : my_icmp.h
  • stricmp : my_icmp.h
  • STRICTINT_LEFT_INT_CMP : CStrictInteger.h
  • STRICTINT_OTHER_TYPE_AS_INT : CStrictInteger.h
  • strncmp_literal : string_ex.h
  • strnicmp : my_icmp.h
  • strstri : my_icmp.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- t -

  • TAB_ : charcode2.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_not_tchar : tchar_convert.h
  • to_tchar : tchar_convert.h
  • trail : mrc2brc.cpp , RcCvt.cpp
  • TRUE : global.h
  • tstring : CMyString.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- u -

  • UINT_PTR : StdApi.h
  • ULONG_PTR : StdApi.h
  • USE_PARENT : CRegexKeyword.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- v -

  • VMessageBoxF : Debug.h
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- w -

  • WANT_GETLONGPATHNAME_WRAPPER : shell.cpp
  • WarningMessage : Debug.h
  • WarningMessage_A : Debug.h
  • wcs_pushT : string_ex2.h
  • wcsncmp_literal : string_ex.h
  • WIDTHBYTES : CEditView.cpp
  • WIN32_LEAN_AND_MEAN : StdAfx.h
  • WM_MOUSEWHEEL : CEditView.cpp , CEditWnd.cpp , CWnd.cpp
  • WM_THEMECHANGED : CEditWnd.cpp , CTabWnd.cpp
  • WM_XBUTTONDBLCLK : CEditView.cpp
  • WM_XBUTTONDOWN : CEditView.cpp
  • WM_XBUTTONUP : CEditView.cpp
  • WSTR_CUSTMENU_HEAD_V2 : CPropComCustmenu.cpp
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- x -

  • XBUTTON1 : CEditView.cpp
  • XBUTTON2 : CEditView.cpp
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- y -

  • YOHAKU_X : CEditWnd.cpp
  • YOHAKU_Y : CEditWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義

  • e_PM_SETCARETPOS_SELECTSTATE : mymessage.h
  • ECharKind : CWordParse.h
  • EConvertResult : CCodeBase.h
  • EFunctionCode : Funccode_enum.h
  • EMode : HeaderMake.cpp
  • enumBarChangeNotifyType : global.h
  • enumCodeType : global.h
  • enumColorIndexType : global.h
  • enumEOLLen : global.h
  • enumEOLType : global.h
  • enumJisESCSeqType : charcode.h
  • enumOutlineType : global.h
  • enumShowDlg : global.h
  • enumSmartIndentType : global.h
  • enumTabWndNotifyType : global.h
  • EOpeCode : COpe.h
  • EPaintArea : CEditView_Paint.h
  • ESearchDirection : global.h
  • EShareMode : CommonSetting.h
  • EToHankakuMode : CConvert_ToHankaku.h
  • eWINSIZEMODE : CShareData.h
  • maxdata : maxdata.h
  • MRUFolder_maxdata : CMRUFolder.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- c -

  • CK_CR : CWordParse.h
  • CK_CSYM : CWordParse.h
  • CK_ETC : CWordParse.h
  • CK_GREEK : CWordParse.h
  • CK_HIRA : CWordParse.h
  • CK_KATA : CWordParse.h
  • CK_LF : CWordParse.h
  • CK_NULL : CWordParse.h
  • CK_SPACE : CWordParse.h
  • CK_TAB : CWordParse.h
  • CK_ZEN_CSYM : CWordParse.h
  • CK_ZEN_ETC : CWordParse.h
  • CK_ZEN_KATA : CWordParse.h
  • CK_ZEN_KIGO : CWordParse.h
  • CK_ZEN_NOBASU : CWordParse.h
  • CK_ZEN_ROS : CWordParse.h
  • CK_ZEN_SKIGO : CWordParse.h
  • CK_ZEN_SPACE : CWordParse.h
  • CODE_AUTODETECT : global.h
  • CODE_CODEMAX : global.h
  • CODE_DEFAULT : global.h
  • CODE_ERROR : global.h
  • CODE_EUC : global.h
  • CODE_JIS : global.h
  • CODE_NONE : 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_DEFAULT : 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- m -

  • MACRONAME_MAX : maxdata.h
  • MAX_CMDARR : maxdata.h
  • MAX_CMDLEN : maxdata.h
  • MAX_CUSTMACRO : maxdata.h
  • MAX_DOCTYPE_LEN : maxdata.h
  • MAX_EDITWINDOWS : maxdata.h
  • MAX_EXTCMDLEN : maxdata.h
  • MAX_EXTCMDMRUNUM : maxdata.h
  • MAX_GREPFILE : maxdata.h
  • MAX_GREPFOLDER : maxdata.h
  • MAX_KEYHELP_FILE : maxdata.h
  • MAX_KEYWORDSET_PER_TYPE : maxdata.h
  • MAX_MARKLINES_LEN : maxdata.h
  • MAX_MRU : maxdata.h
  • MAX_OPENFOLDER : CMRUFolder.h
  • MAX_PRINTSETTINGARR : maxdata.h
  • MAX_REGEX_KEYWORD : maxdata.h
  • MAX_REPLACEKEY : maxdata.h
  • MAX_SEARCHKEY : maxdata.h
  • MAX_TAGJUMP_KEYWORD : maxdata.h
  • MAX_TAGJUMPNUM : maxdata.h
  • MAX_TRANSFORM_FILENAME : maxdata.h
  • MAX_TYPES : maxdata.h
  • MAX_VERTLINES : maxdata.h
  • MODE_DEFINE : HeaderMake.cpp
  • MODE_ENUM : HeaderMake.cpp
  • MODE_INVALID : HeaderMake.cpp
  • MYBCN_FUNCKEY : global.h
  • MYBCN_STATUSBAR : global.h
  • MYBCN_TAB : global.h
  • MYBCN_TOOLBAR : global.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- o -

  • OPE_DELETE : COpe.h
  • OPE_INSERT : COpe.h
  • OPE_MOVECARET : COpe.h
  • OPE_UNKNOWN : COpe.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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- f -

  • F_0 : Funccode_enum.h
  • F_1PageDown : Funccode_enum.h
  • F_1PageDown_Sel : Funccode_enum.h
  • F_1PageUp : Funccode_enum.h
  • F_1PageUp_Sel : Funccode_enum.h
  • F_ABOUT : Funccode_enum.h
  • F_ACTIVATE_SQLPLUS : Funccode_enum.h
  • F_ADDTAIL_W : Funccode_enum.h
  • F_BASE64DECODE : Funccode_enum.h
  • F_BEGIN_BOX : Funccode_enum.h
  • F_BEGIN_SEL : Funccode_enum.h
  • F_BIND_WINDOW : Funccode_enum.h
  • F_BOOKMARK_NEXT : Funccode_enum.h
  • F_BOOKMARK_PATTERN : Funccode_enum.h
  • F_BOOKMARK_PREV : Funccode_enum.h
  • F_BOOKMARK_RESET : Funccode_enum.h
  • F_BOOKMARK_SET : Funccode_enum.h
  • F_BOOKMARK_VIEW : Funccode_enum.h
  • F_BRACKETPAIR : Funccode_enum.h
  • F_BROWSE : Funccode_enum.h
  • F_CANCEL_MODE : Funccode_enum.h
  • F_CASCADE : Funccode_enum.h
  • F_CHGMOD_EOL : Funccode_enum.h
  • F_CHGMOD_EOL_CR : Funccode_enum.h
  • F_CHGMOD_EOL_CRLF : Funccode_enum.h
  • F_CHGMOD_EOL_LF : Funccode_enum.h
  • F_CHGMOD_INS : Funccode_enum.h
  • F_CHGTABWIDTH : Funccode_enum.h
  • F_CODECNV_AUTO2SJIS : Funccode_enum.h
  • F_CODECNV_EMAIL : Funccode_enum.h
  • F_CODECNV_EUC2SJIS : Funccode_enum.h
  • F_CODECNV_SJIS2EUC : Funccode_enum.h
  • F_CODECNV_SJIS2JIS : Funccode_enum.h
  • F_CODECNV_SJIS2UTF7 : Funccode_enum.h
  • F_CODECNV_SJIS2UTF8 : Funccode_enum.h
  • F_CODECNV_UNICODE2SJIS : Funccode_enum.h
  • F_CODECNV_UNICODEBE2SJIS : Funccode_enum.h
  • F_CODECNV_UTF72SJIS : Funccode_enum.h
  • F_CODECNV_UTF82SJIS : Funccode_enum.h
  • F_COMPARE : Funccode_enum.h
  • F_COPY : Funccode_enum.h
  • F_COPY_ADDCRLF : Funccode_enum.h
  • F_COPY_CRLF : Funccode_enum.h
  • F_COPYFNAME : Funccode_enum.h
  • F_COPYLINES : Funccode_enum.h
  • F_COPYLINESASPASSAGE : Funccode_enum.h
  • F_COPYLINESWITHLINENUMBER : Funccode_enum.h
  • F_COPYPATH : Funccode_enum.h
  • F_COPYTAG : Funccode_enum.h
  • F_CREATEKEYBINDLIST : Funccode_enum.h
  • F_CTRL_CODE_DIALOG : Funccode_enum.h
  • F_CURLINECENTER : Funccode_enum.h
  • F_CUSTMENU_1 : Funccode_enum.h
  • F_CUSTMENU_10 : Funccode_enum.h
  • F_CUSTMENU_11 : Funccode_enum.h
  • F_CUSTMENU_12 : Funccode_enum.h
  • F_CUSTMENU_13 : Funccode_enum.h
  • F_CUSTMENU_14 : Funccode_enum.h
  • F_CUSTMENU_15 : Funccode_enum.h
  • F_CUSTMENU_16 : Funccode_enum.h
  • F_CUSTMENU_17 : Funccode_enum.h
  • F_CUSTMENU_18 : Funccode_enum.h
  • F_CUSTMENU_19 : Funccode_enum.h
  • F_CUSTMENU_2 : Funccode_enum.h
  • F_CUSTMENU_20 : Funccode_enum.h
  • F_CUSTMENU_21 : Funccode_enum.h
  • F_CUSTMENU_22 : Funccode_enum.h
  • F_CUSTMENU_23 : Funccode_enum.h
  • F_CUSTMENU_24 : Funccode_enum.h
  • F_CUSTMENU_3 : Funccode_enum.h
  • F_CUSTMENU_4 : Funccode_enum.h
  • F_CUSTMENU_5 : Funccode_enum.h
  • F_CUSTMENU_6 : Funccode_enum.h
  • F_CUSTMENU_7 : Funccode_enum.h
  • F_CUSTMENU_8 : Funccode_enum.h
  • F_CUSTMENU_9 : Funccode_enum.h
  • F_CUSTMENU_BASE : Funccode_enum.h
  • F_CUT : Funccode_enum.h
  • F_CUT_LINE : Funccode_enum.h
  • F_DEFAULT : Funccode_enum.h
  • F_DELETE : Funccode_enum.h
  • F_DELETE_BACK : Funccode_enum.h
  • F_DELETE_LINE : Funccode_enum.h
  • F_DIFF : Funccode_enum.h
  • F_DIFF_DIALOG : Funccode_enum.h
  • F_DIFF_NEXT : Funccode_enum.h
  • F_DIFF_PREV : Funccode_enum.h
  • F_DIFF_RESET : Funccode_enum.h
  • F_DIRECT_TAGJUMP : Funccode_enum.h
  • F_DISABLE : Funccode_enum.h
  • F_DOWN : Funccode_enum.h
  • F_DOWN2 : Funccode_enum.h
  • F_DOWN2_SEL : Funccode_enum.h
  • F_DOWN_SEL : Funccode_enum.h
  • F_DUPLICATELINE : Funccode_enum.h
  • F_EXECCOMMAND : Funccode_enum.h
  • F_EXECCOMMAND_DIALOG : Funccode_enum.h
  • F_EXECKEYMACRO : Funccode_enum.h
  • F_EXITALL : Funccode_enum.h
  • F_EXITALLEDITORS : Funccode_enum.h
  • F_EXPANDPARAMETER : Funccode_enum.h
  • F_EXTHELP1 : Funccode_enum.h
  • F_EXTHTMLHELP : Funccode_enum.h
  • F_FAVORITE : Funccode_enum.h
  • F_FILE_REOPEN : Funccode_enum.h
  • F_FILE_REOPEN_EUC : Funccode_enum.h
  • F_FILE_REOPEN_JIS : Funccode_enum.h
  • F_FILE_REOPEN_SJIS : Funccode_enum.h
  • F_FILE_REOPEN_UNICODE : Funccode_enum.h
  • F_FILE_REOPEN_UNICODEBE : Funccode_enum.h
  • F_FILE_REOPEN_UTF7 : Funccode_enum.h
  • F_FILE_REOPEN_UTF8 : Funccode_enum.h
  • F_FILECLOSE : Funccode_enum.h
  • F_FILECLOSE_OPEN : Funccode_enum.h
  • F_FILENEW : Funccode_enum.h
  • F_FILEOPEN : Funccode_enum.h
  • F_FILEOPEN_DROPDOWN : Funccode_enum.h
  • F_FILESAVE : Funccode_enum.h
  • F_FILESAVE_QUIET : Funccode_enum.h
  • F_FILESAVEALL : Funccode_enum.h
  • F_FILESAVEAS : Funccode_enum.h
  • F_FILESAVEAS_DIALOG : Funccode_enum.h
  • F_FILESAVECLOSE : Funccode_enum.h
  • F_FONT : Funccode_enum.h
  • F_FUNCTION_FIRST : Funccode_enum.h
  • F_GETCHARCODE : Funccode_enum.h
  • F_GETFILENAME : Funccode_enum.h
  • F_GETLINECODE : Funccode_enum.h
  • F_GETLINECOUNT : Funccode_enum.h
  • F_GETLINESTR : Funccode_enum.h
  • F_GETSELCOLMFROM : Funccode_enum.h
  • F_GETSELCOLMTO : Funccode_enum.h
  • F_GETSELECTED : Funccode_enum.h
  • F_GETSELLINEFROM : Funccode_enum.h
  • F_GETSELLINETO : Funccode_enum.h
  • F_GOFILEEND : Funccode_enum.h
  • F_GOFILEEND_SEL : Funccode_enum.h
  • F_GOFILETOP : Funccode_enum.h
  • F_GOFILETOP_SEL : Funccode_enum.h
  • F_GOLINEEND : Funccode_enum.h
  • F_GOLINEEND_SEL : Funccode_enum.h
  • F_GOLINETOP : Funccode_enum.h
  • F_GOLINETOP_SEL : Funccode_enum.h
  • F_GONEXTPARAGRAPH : Funccode_enum.h
  • F_GONEXTPARAGRAPH_SEL : Funccode_enum.h
  • F_GOPREVPARAGRAPH : Funccode_enum.h
  • F_GOPREVPARAGRAPH_SEL : Funccode_enum.h
  • F_GREP : Funccode_enum.h
  • F_GREP_DIALOG : Funccode_enum.h
  • F_GROUPCLOSE : Funccode_enum.h
  • F_HalfPageDown : Funccode_enum.h
  • F_HalfPageDown_Sel : Funccode_enum.h
  • F_HalfPageUp : Funccode_enum.h
  • F_HalfPageUp_Sel : Funccode_enum.h
  • F_HANKATATOZENKAKUHIRA : Funccode_enum.h
  • F_HANKATATOZENKAKUKATA : Funccode_enum.h
  • F_HELP_CONTENTS : Funccode_enum.h
  • F_HELP_SEARCH : Funccode_enum.h
  • F_HOKAN : Funccode_enum.h
  • F_IME_CHAR : Funccode_enum.h
  • F_INDENT_SPACE : Funccode_enum.h
  • F_INDENT_TAB : Funccode_enum.h
  • F_INS_DATE : Funccode_enum.h
  • F_INS_TIME : Funccode_enum.h
  • F_INSFILE : Funccode_enum.h
  • F_INSTEXT_W : Funccode_enum.h
  • F_INVALID : Funccode_enum.h
  • F_ISEARCH_ADD_CHAR : Funccode_enum.h
  • F_ISEARCH_ADD_STR : Funccode_enum.h
  • F_ISEARCH_DEL_BACK : Funccode_enum.h
  • F_ISEARCH_MIGEMO_NEXT : Funccode_enum.h
  • F_ISEARCH_MIGEMO_PREV : Funccode_enum.h
  • F_ISEARCH_NEXT : Funccode_enum.h
  • F_ISEARCH_PREV : Funccode_enum.h
  • F_ISEARCH_REGEXP_NEXT : Funccode_enum.h
  • F_ISEARCH_REGEXP_PREV : Funccode_enum.h
  • F_ISINSMODE : Funccode_enum.h
  • F_ISPOSSIBLEREDO : Funccode_enum.h
  • F_ISPOSSIBLEUNDO : Funccode_enum.h
  • F_ISTEXTSELECTED : Funccode_enum.h
  • F_JUMP : Funccode_enum.h
  • F_JUMP_DIALOG : Funccode_enum.h
  • F_JUMP_SRCHSTARTPOS : Funccode_enum.h
  • F_JUMPHIST_NEXT : Funccode_enum.h
  • F_JUMPHIST_PREV : Funccode_enum.h
  • F_JUMPHIST_SET : Funccode_enum.h
  • F_LEFT : Funccode_enum.h
  • F_LEFT_SEL : Funccode_enum.h
  • F_LineCutToEnd : Funccode_enum.h
  • F_LineCutToStart : Funccode_enum.h
  • F_LineDeleteToEnd : Funccode_enum.h
  • F_LineDeleteToStart : Funccode_enum.h
  • F_LOADKEYMACRO : Funccode_enum.h
  • F_LTRIM : Funccode_enum.h
  • F_MAXIMIZE_H : Funccode_enum.h
  • F_MAXIMIZE_V : Funccode_enum.h
  • F_MENU_ALLFUNC : Funccode_enum.h
  • F_MENU_NOT_USED_FIRST : Funccode_enum.h
  • F_MENU_RBUTTON : Funccode_enum.h
  • F_MERGE : Funccode_enum.h
  • F_MINIMIZE_ALL : Funccode_enum.h
  • F_NEXTGROUP : Funccode_enum.h
  • F_NEXTWINDOW : Funccode_enum.h
  • F_NOWOPENFILE : Funccode_enum.h
  • F_OPEN_CCPP : Funccode_enum.h
  • F_OPEN_HfromtoC : Funccode_enum.h
  • F_OPEN_HHPP : Funccode_enum.h
  • F_OPTION : Funccode_enum.h
  • F_OPTION_BACKUP : Funccode_enum.h
  • F_OPTION_CUSTMENU : Funccode_enum.h
  • F_OPTION_EDIT : Funccode_enum.h
  • F_OPTION_FILE : Funccode_enum.h
  • F_OPTION_FNAME : Funccode_enum.h
  • F_OPTION_FORMAT : Funccode_enum.h
  • F_OPTION_GENERAL : Funccode_enum.h
  • F_OPTION_GREP : Funccode_enum.h
  • F_OPTION_HELPER : Funccode_enum.h
  • F_OPTION_KEYBIND : Funccode_enum.h
  • F_OPTION_KEYWORD : Funccode_enum.h
  • F_OPTION_MACRO : Funccode_enum.h
  • F_OPTION_TAB : Funccode_enum.h
  • F_OPTION_TOOLBAR : Funccode_enum.h
  • F_OPTION_TYPE : Funccode_enum.h
  • F_OPTION_WINDOW : Funccode_enum.h
  • F_OUTLINE : Funccode_enum.h
  • F_OUTLINE_TOGGLE : Funccode_enum.h
  • F_PASTE : Funccode_enum.h
  • F_PASTEBOX : Funccode_enum.h
  • F_PLSQL_COMPILE_ON_SQLPLUS : Funccode_enum.h
  • F_PREVGROUP : Funccode_enum.h
  • F_PREVWINDOW : Funccode_enum.h
  • F_PRINT : Funccode_enum.h
  • F_PRINT_PAGESETUP : Funccode_enum.h
  • F_PRINT_PREVIEW : Funccode_enum.h
  • F_PROPERTY_FILE : Funccode_enum.h
  • F_PUTFILE : Funccode_enum.h
  • F_READONLY : Funccode_enum.h
  • F_RECENTFILE : Funccode_enum.h
  • F_RECENTFOLDER : Funccode_enum.h
  • F_RECKEYMACRO : Funccode_enum.h
  • F_RECONVERT : Funccode_enum.h
  • F_REDO : Funccode_enum.h
  • F_REDRAW : Funccode_enum.h
  • F_REPLACE : Funccode_enum.h
  • F_REPLACE_ALL : Funccode_enum.h
  • F_REPLACE_DIALOG : Funccode_enum.h
  • F_RIGHT : Funccode_enum.h
  • F_RIGHT_SEL : Funccode_enum.h
  • F_RTRIM : Funccode_enum.h
  • F_SAVEKEYMACRO : Funccode_enum.h
  • F_SEARCH_BOX : Funccode_enum.h
  • F_SEARCH_CLEARMARK : Funccode_enum.h
  • F_SEARCH_DIALOG : Funccode_enum.h
  • F_SEARCH_NEXT : Funccode_enum.h
  • F_SEARCH_PREV : Funccode_enum.h
  • F_SELECTALL : Funccode_enum.h
  • F_SELECTWORD : Funccode_enum.h
  • F_SEPARATOR : Funccode_enum.h
  • F_SET_QUOTESTRING : Funccode_enum.h
  • F_SHOWFUNCKEY : Funccode_enum.h
  • F_SHOWSTATUSBAR : Funccode_enum.h
  • F_SHOWTAB : Funccode_enum.h
  • F_SHOWTOOLBAR : Funccode_enum.h
  • F_SORT_ASC : Funccode_enum.h
  • F_SORT_DESC : Funccode_enum.h
  • F_SPACETOTAB : Funccode_enum.h
  • F_SPLIT_H : Funccode_enum.h
  • F_SPLIT_V : Funccode_enum.h
  • F_SPLIT_VH : Funccode_enum.h
  • F_TAB_JOINTNEXT : Funccode_enum.h
  • F_TAB_JOINTPREV : Funccode_enum.h
  • F_TAB_MOVELEFT : Funccode_enum.h
  • F_TAB_MOVERIGHT : Funccode_enum.h
  • F_TAB_SEPARATE : Funccode_enum.h
  • F_TABTOSPACE : Funccode_enum.h
  • F_TAGJUMP : Funccode_enum.h
  • F_TAGJUMP_CLOSE : Funccode_enum.h
  • F_TAGJUMP_KEYWORD : Funccode_enum.h
  • F_TAGJUMP_LIST : Funccode_enum.h
  • F_TAGJUMPBACK : Funccode_enum.h
  • F_TAGS_MAKE : Funccode_enum.h
  • F_TILE_H : Funccode_enum.h
  • F_TILE_V : Funccode_enum.h
  • F_TOGGLE_KEY_SEARCH : Funccode_enum.h
  • F_TOHANEI : Funccode_enum.h
  • F_TOHANKAKU : Funccode_enum.h
  • F_TOHANKATA : Funccode_enum.h
  • F_TOLOWER : Funccode_enum.h
  • F_TOPMOST : Funccode_enum.h
  • F_TOUPPER : Funccode_enum.h
  • F_TOZENEI : Funccode_enum.h
  • F_TOZENKAKUHIRA : Funccode_enum.h
  • F_TOZENKAKUKATA : Funccode_enum.h
  • F_TRACEOUT : Funccode_enum.h
  • F_TYPE_COLOR : Funccode_enum.h
  • F_TYPE_HELPER : Funccode_enum.h
  • F_TYPE_KEYHELP : Funccode_enum.h
  • F_TYPE_LIST : Funccode_enum.h
  • F_TYPE_REGEX_KEYWORD : Funccode_enum.h
  • F_TYPE_SCREEN : Funccode_enum.h
  • F_UNDO : Funccode_enum.h
  • F_UNINDENT_SPACE : Funccode_enum.h
  • F_UNINDENT_TAB : Funccode_enum.h
  • F_UP : Funccode_enum.h
  • F_UP2 : Funccode_enum.h
  • F_UP2_SEL : Funccode_enum.h
  • F_UP_SEL : Funccode_enum.h
  • F_USERMACRO_0 : Funccode_enum.h
  • F_UUDECODE : Funccode_enum.h
  • F_WCHAR : Funccode_enum.h
  • F_WIN_CLOSEALL : Funccode_enum.h
  • F_WIN_OUTPUT : Funccode_enum.h
  • F_WINCLOSE : Funccode_enum.h
  • F_WINLIST : Funccode_enum.h
  • F_WndScrollDown : Funccode_enum.h
  • F_WndScrollUp : Funccode_enum.h
  • F_WordCut : Funccode_enum.h
  • F_WordDelete : Funccode_enum.h
  • F_WordDeleteToEnd : Funccode_enum.h
  • F_WordDeleteToStart : Funccode_enum.h
  • F_WORDLEFT : Funccode_enum.h
  • F_WORDLEFT_SEL : Funccode_enum.h
  • F_WORDRIGHT : Funccode_enum.h
  • F_WORDRIGHT_SEL : Funccode_enum.h
  • F_WRAPWINDOWWIDTH : Funccode_enum.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- p -

  • PAINT_ALL : CEditView_Paint.h
  • PAINT_BODY : CEditView_Paint.h
  • PAINT_LINENUMBER : CEditView_Paint.h
  • PAINT_RULER : CEditView_Paint.h
  • PM_SETCARETPOS_KEEPSELECT : mymessage.h
  • PM_SETCARETPOS_NOSELECT : mymessage.h
  • PM_SETCARETPOS_SELECT : mymessage.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- r -

  • RESULT_COMPLETE : CCodeBase.h
  • RESULT_FAILURE : CCodeBase.h
  • RESULT_LOSESOME : CCodeBase.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- s -

  • SEARCH_BACKWARD : global.h
  • SEARCH_FORWARD : global.h
  • SHAREMODE_DENY_READWRITE : CommonSetting.h
  • SHAREMODE_DENY_WRITE : CommonSetting.h
  • SHAREMODE_NOT_EXCLUSIVE : CommonSetting.h
  • SHOW_NORMAL : global.h
  • SHOW_RELOAD : global.h
  • SHOW_TOGGLE : global.h
  • SMARTINDENT_CPP : global.h
  • SMARTINDENT_NONE : global.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- t -

  • TO_EISU : CConvert_ToHankaku.h
  • TO_HIRAGANA : CConvert_ToHankaku.h
  • TO_KATAKANA : CConvert_ToHankaku.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 Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • f
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- w -

  • WINSIZEMODE_DEF : CShareData.h
  • WINSIZEMODE_SAVE : CShareData.h
  • WINSIZEMODE_SET : CShareData.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- _ -

  • __declspec() : Debug3.cpp
  • _CompareFunc_() : CDlgFuncList.cpp
  • _IS_REL_PATH() : file.h , file.cpp
  • _IS_SJIS_1() : charcode2.h
  • _IS_SJIS_2() : charcode2.h
  • _mbcjmstojis_ex() : codeutil.cpp , codeutil.h
  • _mbstotcs() : string_ex.cpp , string_ex.h
  • _tcscpy() : string_ex.h
  • _tcstombs() : string_ex.cpp , string_ex.h
  • _tcstowcs() : string_ex.cpp , string_ex.h
  • _tctomb() : string_ex.cpp , string_ex.h
  • _tctowc() : string_ex.cpp , string_ex.h
  • _TextTemplate() : tchar_template.h
  • _tfopen_absexe() : file.h , file.cpp
  • _tfopen_absini() : file.cpp , file.h
  • _tWinMain() : WinMain.cpp
  • _wcstotcs() : string_ex.h , string_ex.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- l -

  • LimitStringLengthA() : string_ex2.h
  • LimitStringLengthB() : string_ex2.cpp , string_ex2.h
  • LimitStringLengthT() : string_ex2.h
  • LimitStringLengthW() : string_ex2.cpp , string_ex2.h
  • Listbox_ADDDATA() : CPropComToolbar.cpp
  • Listbox_INSERTDATA() : CPropComToolbar.cpp
  • Load() : Debug3.cpp
  • local_vsprintf() : tchar_printf.cpp
  • local_vsprintf_s() : tchar_printf.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- m -

  • MacroCommand() : CWSH.cpp
  • MacroError() : CWSH.cpp
  • main() : HeaderMake.cpp , mrc2brc.cpp
  • MakeColorIndexType_RegularExpression() : global.h
  • MakeRGBStr() : CPropTypes.cpp
  • mbstowcs2() : string_ex.cpp , string_ex.h , string_ex.cpp
  • mbstowcs_new() : string_ex.cpp , string_ex.h
  • mbstowcs_vector() : string_ex.cpp , string_ex.h , string_ex.cpp
  • memcpy_raw() : string_ex.h
  • memset_raw() : string_ex.h
  • MergeRect() : CMyRect.cpp , CMyRect.h
  • MessageBoxF_A() : Debug.cpp , Debug.h
  • MessageBoxF_W() : Debug.cpp , Debug.h
  • my_internal_icmp() : string_ex.cpp
  • my_iskanji1() : string_ex.cpp , string_ex.h
  • my_iskanji2() : string_ex.cpp , string_ex.h
  • my_splitpath() : MY_SP.C , MY_SP.h
  • my_splitpath_t() : MY_SP.h
  • my_splitpath_w() : MY_SP.h
  • my_strchr() : my_icmp.h
  • my_strchri() : my_icmp.h
  • my_stricmp() : string_ex.cpp , string_ex.h
  • my_strnicmp() : string_ex.cpp , string_ex.h
  • my_strstr() : my_icmp.h
  • my_strstri() : my_icmp.h
  • my_strtok() : string_ex.h , string_ex.cpp
  • my_tolower() : string_ex.h , string_ex.cpp
  • my_toupper() : string_ex.cpp , string_ex.h
  • my_va_forward() : tchar_printf.cpp
  • MYBrowseCallbackProc() : shell.cpp
  • MyDialogProc() : CDialog.cpp
  • MyGetAncestor() : window.cpp , window.h
  • MyInitCommonControls() : os.cpp , os.h
  • MyIsDialogMessage() : CEditWnd.cpp
  • MyPropertySheet() : shell.cpp , shell.h
  • MyWinHelp() : shell.h , shell.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- n -

  • NetConnect() : shell.cpp , shell.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- o -

  • OFNHookProc() : CDlgOpenFile.cpp
  • OFNHookProcMain() : CDlgOpenFile.cpp
  • OnFolderProc() : CDlgGrep.cpp
  • OpenFile_InShareMode() : io_util.h , io_util.cpp
  • OpenHtmlHelp() : shell.cpp , shell.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- a -

  • ActivateFrameWindow() : window.cpp , window.h
  • AddLastChar() : string_ex2.h , string_ex2.cpp
  • AddLastYenFromDirectoryPath() : file.cpp , file.h
  • amemcmp() : string_ex.h
  • amemicmp() : string_ex.h
  • AssertError() : Debug.cpp , Debug.h
  • auto_atol() : string_ex.h
  • auto_memcmp() : string_ex.h
  • auto_memcpy() : string_ex.h
  • auto_memicmp() : string_ex.h
  • auto_memset() : string_ex.h
  • auto_snprintf() : string_ex.h
  • auto_sprintf() : string_ex.h
  • auto_sprintf_s() : string_ex.h
  • auto_strchr() : string_ex.h
  • auto_strcmp() : string_ex.h
  • auto_strcpy() : string_ex.h
  • auto_strcpy_s() : string_ex.h
  • auto_strlen() : string_ex.h
  • auto_strncmp() : string_ex.h
  • auto_strncpy() : string_ex.h
  • auto_strstr() : string_ex.h
  • auto_vsprintf() : string_ex.h
  • auto_vsprintf_s() : string_ex.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- b -

  • BlockingHook() : window.cpp , window.h
  • BMatchExW() : bregexp.h
  • BMatchW() : bregexp.h
  • BRegexpVersionW() : bregexp.h
  • BRegfreeW() : bregexp.h
  • BSplitW() : bregexp.h
  • BSubstExW() : bregexp.h
  • BSubstW() : bregexp.h
  • BTransW() : bregexp.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- c -

  • C_IsLineEsc() : CEditDoc_FuncList1.cpp
  • C_IsOperator() : CEditDoc_FuncList1.cpp
  • C_IsSpace() : CEditDoc_FuncList1.cpp , CEditDoc_FuncList2.cpp
  • C_IsWordChar() : CEditDoc_FuncList1.cpp
  • CalcDirectoryDepth() : file.cpp , file.h
  • CalcHankakuByFont() : charcode.cpp
  • CDlgDebug_Proc() : CDlgDebug.cpp
  • CDlgInput1Proc() : CDlgInput1.cpp
  • CEditAppWndProc() : CControlTray.cpp
  • CEditWndProc() : CEditWnd.cpp
  • cescape() : string_ex2.cpp , string_ex2.h
  • CheckEXT() : file.cpp , file.h
  • CheckRegexpSyntax() : CBregexp.cpp , CBregexp.h
  • CheckRegexpVersion() : CBregexp.cpp , CBregexp.h
  • CheckSystemResources() : os.cpp , os.h
  • cmpGetOpenedWindowArr() : CShareData.cpp
  • ColorList_SubclassProc() : CPropTypes.cpp
  • CommonValue_AllSave() : CommonSetting.cpp
  • Compare_by_ItemData() : CDlgFuncList.cpp
  • compTABMENU_DATA() : CTabWnd.cpp
  • Convert_HanEisuu_To_ZenEisuu() : convert_util.cpp , convert_util.h
  • Convert_HankanaToZenkana() : convert_util.cpp , convert_util.h
  • Convert_ZenEisuu_To_HanEisuu() : convert_util.h , convert_util.cpp
  • Convert_ZenhiraToZenkana() : convert_util.h , convert_util.cpp
  • Convert_ZenKana_To_HanKana() : convert_util.h , convert_util.cpp
  • Convert_ZenkanaToZenhira() : convert_util.h , convert_util.cpp
  • CPropComKeybindWndProc() : CPropComKeybind.cpp
  • CreateMbString() : StdApi.cpp
  • CutLastYenFromDirectoryPath() : file.cpp , file.h
  • CWndProc() : CWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- d -

  • DBMSG_IMP() : Debug.cpp , Debug.h
  • debug_exit() : Debug2.cpp
  • debug_output() : Debug2.cpp
  • DebugMonitor_Output() : Debug3.cpp , Debug3.h
  • DebugOutA() : Debug.h , Debug.cpp
  • DebugOutW() : Debug.h
  • DestroyMbString() : StdApi.cpp
  • dupamp() : string_ex2.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- e -

  • easy_format() : tchar_convert.cpp , tchar_convert.h
  • EditViewTimerProc() : CEditView.cpp
  • EditViewWndProc() : CEditView.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- f -

  • field_convert() : tchar_printf.cpp
  • FillSolidRect() : CMenuDrawer.cpp , CImageListMgr.cpp
  • FuncID_To_HelpContextID() : Funccode.h , Funccode.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- g -

  • GetAlignmentSize() : CKeyWordSetMgr.cpp
  • GetAppIcon() : module.cpp , module.h
  • GetAppVersionInfo() : module.cpp , module.h
  • GetColorIndexByName() : global.cpp , global.h
  • GetColorNameByIndex() : global.cpp , global.h
  • GetComctl32Version() : os.cpp , os.h
  • getCtrlKeyState() : input.cpp , input.h
  • GetDateTimeFormat() : format.cpp , format.h
  • GetDllShareData() : CShareData.cpp , CShareData.h
  • GetDllVersion() : module.cpp , module.h
  • GetExedir() : file.cpp , module.h
  • GetExistPath() : MY_SP.C
  • GetExistPathW() : MY_SP.C
  • GetFileName() : CPropTypesKeyHelp.cpp
  • GetFileTitlePointer() : HeaderMake.cpp , file.cpp , file.h
  • GetGlobalData() : CEditView.cpp
  • GetInidir() : file.cpp , module.h
  • GetInidirOrExedir() : module.h , file.cpp
  • GetLastWriteTimestamp() : file.cpp , file.h
  • GetLineColm() : string_ex2.cpp , string_ex2.h
  • GetLongFileName() : file.cpp , file.h
  • GetMessageBoxOwner() : Debug.cpp
  • GetMonitorWorkRect() : os.cpp , os.h , os.cpp , os.h
  • GetNextLimitedLengthText() : string_ex2.cpp , string_ex2.h
  • GetNextLine() : string_ex2.h , string_ex2.cpp
  • GetNextLineW() : string_ex2.cpp , string_ex2.h
  • GetNextLineWB() : string_ex2.h , string_ex2.cpp
  • GetSpecialFolderPath() : shell.h , shell.cpp
  • GetSystemResources() : os.h , os.cpp
  • GetWindowsMessageName() : Debug3.cpp , Debug3.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- h -

  • HokanList_SubclassProc() : CHokanMgr.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- i -

  • InitRegexp() : CBregexp.cpp , CBregexp.h
  • is_field_begin() : tchar_printf.cpp
  • is_field_type() : tchar_printf.cpp
  • IS_KEYWORD_CHAR() : charcode2.h
  • is_token() : HeaderMake.cpp
  • isAZ() : MY_SP.C
  • IsBASE64Char() : CConvert_Base64Decode.cpp
  • isCSymbol() : CWordParse.cpp
  • isCSymbolZen() : CWordParse.cpp
  • IsDataAvailable() : CEditView.cpp
  • IsFileExists() : file.cpp , file.h
  • IsFilePath() : file.cpp , file.h
  • IsFileWritable() : io_util.cpp , io_util.h
  • IsFuncChecked() : Funccode.cpp , Funccode.h
  • IsFuncEnable() : Funccode.cpp , Funccode.h
  • IsInECodeType() : global.h
  • IsLocalDrive() : file.cpp , file.h
  • IsMailAddress() : CWordParse.cpp , CWordParse.h
  • IsNumber() : string_ex2.h , string_ex2.cpp
  • IsURL() : CWordParse.h , CWordParse.cpp
  • IsValidCodeType() : global.h
  • IsValidCodeTypeExceptSJIS() : global.h
  • IsVisualStyle() : os.h , os.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- p -

  • PointCompare() : CMyPoint.h
  • PreventVisualStyle() : os.cpp , os.h
  • PropSheetProc() : shell.cpp
  • PropSheetWndProc() : shell.cpp
  • PropTypesP1Proc() : CPropTypes.cpp
  • PropTypesP2Proc() : CPropTypes.cpp
  • PropTypesP3_newProc() : CPropTypes.cpp
  • Python_IsWordChar() : CEditDoc_FuncList2.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- r -

  • ReadRegistry() : os.cpp , os.h
  • ResolveShortcutLink() : shell.cpp , shell.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- s -

  • sample() : CommonSetting.cpp
  • SelectDir() : shell.cpp , shell.h
  • SetClipboardText() : os.cpp , os.h
  • SetClipboardTextImp() : os.cpp
  • SetData_EnumFontFamProc() : CDlgPrintSetting.cpp
  • ShowWinHelpContents() : shell.cpp , shell.h
  • sjis_strrchr2() : MY_SP.C , MY_SP.h
  • skip_field_flag() : tchar_printf.cpp
  • skip_field_precision() : tchar_printf.cpp
  • skip_field_prefix() : tchar_printf.cpp
  • skip_field_width() : tchar_printf.cpp
  • SortByKeyAsc() : CViewCommander_New.cpp
  • SortByKeyDesc() : CViewCommander_New.cpp
  • SplitPath_FolderAndFile() : file.cpp , file.h
  • strchr2() : CTextStream.cpp
  • strchr_j() : string_ex.cpp , string_ex.h
  • strcnv() : CPropTypesKeyHelp.cpp
  • strichr_j() : string_ex.cpp , string_ex.h
  • stristr() : string_ex.h , string_ex.cpp
  • stristr_j() : string_ex.h , string_ex.cpp , string_ex.h
  • strncpy_ex() : string_ex2.cpp , string_ex.h
  • strrchr2() : HeaderMake.cpp
  • strstr_j() : string_ex.cpp , string_ex.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- t -

  • t_abs() : std_macro.h
  • t_max() : std_macro.h
  • t_min() : std_macro.h
  • t_swap() : std_macro.h
  • TabWndProc() : CTabWnd.cpp
  • tchar_snprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_snwprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_sprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_sprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_swprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_swprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_to_wchar() : CEditView.cpp
  • tchar_vsprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_vsprintf_s() : tchar_printf.cpp , tchar_printf.h
  • tchar_vsprintf_s_imp() : tchar_printf.cpp
  • tchar_vswprintf() : tchar_printf.cpp , tchar_printf.h
  • tchar_vswprintf_s() : tchar_printf.h , tchar_printf.cpp
  • to_achar() : tchar_convert.h , tchar_convert.cpp , tchar_convert.h , tchar_convert.cpp
  • to_wchar() : tchar_convert.h , tchar_convert.cpp , tchar_convert.h
  • ToolBarWndProc() : CMainToolBar.cpp
  • TwoPointToRange() : SakuraBasis.h
  • TwoPointToRect() : SakuraBasis.h , CMyPoint.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- u -

  • usage() : mrc2brc.cpp , HeaderMake.cpp
  • UUDECODE_CHAR() : CConvert_UuDecode.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- v -

  • VMessageBoxF_A() : Debug.cpp , Debug.h
  • VMessageBoxF_W() : Debug.cpp , Debug.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- w -

  • warning_point() : Debug2.cpp
  • wc_to_c() : CWordParse.cpp
  • wcs_pushA() : string_ex2.cpp , string_ex2.h , string_ex2.cpp , string_ex2.h
  • wcs_pushW() : string_ex2.cpp , string_ex2.h , string_ex2.cpp
  • wcscat_s() : string_ex.cpp , string_ex.h
  • wcschr_idx() : convert_util.cpp
  • wcscpyn() : string_ex.cpp , string_ex.h
  • wcsistr() : string_ex.cpp , string_ex.h
  • wcsncmp_auto() : string_ex.h
  • wcsncpy_ex() : string_ex2.h
  • wcsrchr2() : MY_SP.C
  • wcstombs2() : string_ex.cpp , string_ex.h
  • wcstombs_new() : string_ex.h , string_ex.cpp
  • wcstombs_vector() : string_ex.cpp , string_ex.h , string_ex.cpp
  • wmemicmp() : string_ex.cpp , string_ex.h
  • Wrap() : OleTypes.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • a
  • b
  • c
  • e
  • i
  • k
  • m
  • n
  • p
  • q
  • r
  • s
  • u
  • w

- a -

  • ACHAR : primitive.h , tchar_template.h

- b -

  • BREGEXP_W : bregexp.h

- c -

  • CCmdString : CRecentCmd.h
  • CGrepFileString : CRecentGrepFile.h
  • CGrepFolderString : CRecentGrepFolder.h
  • CharPointerT : CharPointer.h
  • CInterfaceObjectMethod : CWSH.h
  • CLayoutInt : SakuraBasis.h
  • CLayoutPoint : SakuraBasis.h
  • CLayoutRange : SakuraBasis.h
  • CLayoutRect : SakuraBasis.h
  • CLogicInt : SakuraBasis.h
  • CLogicPoint : SakuraBasis.h
  • CLogicRange : SakuraBasis.h
  • CLogicRect : SakuraBasis.h
  • CNativeT : CNativeT.h
  • ColorAttributeData : global.h
  • CPathString : CRecentFolder.h
  • CReplaceString : CRecentReplace.h
  • CSearchString : CRecentSearch.h
  • CTagjumpKeywordString : CRecentTagjumpKeyword.h

- e -

  • ECodeType : charcode.h , global.h
  • EColorIndexType : global.h
  • EDIT_CHAR : primitive.h
  • EngineCallback : CWSHManager.h
  • error_t : string_ex.h

- i -

  • Int : primitive.h

- k -

  • KEYCODE : primitive.h

- m -

  • MBCODE_INFO : charcode.h
  • migemo : CMigemo.h
  • MIGEMO_PROC_CHAR2INT : CMigemo.h
  • MIGEMO_PROC_INT2CHAR : CMigemo.h
  • mystring : CommonSetting.cpp

- n -

  • NOT_TCHAR : primitive.h

- p -

  • P_CEditWnd : CEditDoc.h
  • PCOpe : COpe.h
  • PRECONVERTSTRING : CEditView.h

- q -

  • qsort_callback : CKeyWordSetMgr.cpp

- r -

  • RECONVERTSTRING : CEditView.h
  • REGEX_INFO : CRegexKeyword.h

- s -

  • ScriptErrorHandler : CWSH.h
  • SelectionRange : SakuraBasis.h
  • SFilePath : CFilePath.h
  • SORTDATA : CViewCommander_New.cpp
  • SORTTABLE : CViewCommander_New.cpp
  • StringBufferT : CDataProfile.h
  • szText : Debug3.cpp

- u -

  • uchar16_t : primitive.h
  • uchar32_t : primitive.h
  • uchar_t : primitive.h
  • UNICODE_INFO : charcode.h

- w -

  • WCCODE_INFO : charcode.h
  • WChar : primitive.h
  • WCHAR : tchar_template.h
  • wchar32_t : primitive.h
  • WIN_CHAR : primitive.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- b -

  • BKUP_AUTO : CommonSetting.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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- k -

  • KEYWORD_SELECT_NUM : CDlgKeywordSelect.h
  • keyword_select_target_combo : CDlgKeywordSelect.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- l -

  • LINEREADBUFSIZE : global.h
  • LINESPACE_MAX : global.h
  • LUOFFSET_CUSTMENU : CFuncLookup.cpp
  • LUOFFSET_MACRO : CFuncLookup.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- 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 : CommonSetting.h
  • MAX_CUSTOM_MENU : CommonSetting.h
  • MAX_CUSTOM_MENU_ITEMS : CommonSetting.h
  • MAX_CUSTOM_MENU_NAME_LEN : CommonSetting.h
  • MAX_DATETIMEFOREMAT_LEN : CommonSetting.h
  • MAX_TOOLBARBUTTONS : CommonSetting.h
  • MAX_X : CImageListMgr.cpp
  • MAX_Y : CImageListMgr.cpp
  • MAXLINEKETAS : global.h
  • MINLINEKETAS : global.h
  • MSec2Min : CAutoSave.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- 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
  • nKeyWordSetBlockSize : CKeyWordSetMgr.cpp
  • nTextID : CPropTypes.cpp
  • NULSTR : CMacroFactory.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- o -

  • OlmArr : CPropTypes.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- c -

  • cLineComment : CPropTypes.cpp
  • CMD_FROM_MOUSE : CEditView.h
  • COLUMNSPACE_MAX : global.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- d -

  • DICT_ABOUT_LEN : CShareData.h
  • DynCategory : CFuncLookup.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- g -

  • g_aKakkos : CEditView_New2.cpp
  • g_bufBig : tchar_convert.cpp
  • g_bufSmall : tchar_convert.cpp
  • g_cHtmlHelp : shell.cpp
  • g_ColorAttributeArr : global.cpp , global.h
  • g_commonvalues : CommonSetting.cpp
  • g_m_pCEditApp : CControlTray.cpp
  • g_m_pcEditView : CEditView.cpp
  • g_pcEditWnd : global.cpp , global.h
  • g_pOldToolBarWndProc : CMainToolBar.cpp
  • g_pOnFolderProc : CDlgGrep.cpp
  • gm_nCodeComboNameArrNum : global.cpp , global.h
  • gm_nCodeComboValueArr : global.cpp , global.h
  • gm_pnEolTypeArr : global.cpp , global.h
  • gm_pOldWndProc : CTabWnd.cpp
  • gm_pszCodeComboNameArr : global.h , global.cpp
  • gm_pszCodeNameArr_Bracket : global.cpp , global.h
  • gm_pszCodeNameArr_Normal : global.h , global.cpp
  • gm_pszCodeNameArr_Short : global.cpp , global.h
  • gm_wpHokanListProc : CHokanMgr.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- h -

  • hDll : Debug3.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- p -

  • P_BREG : CBregexpDll2.cpp
  • p_ctrl_list : CDlgCtrlCode.cpp
  • p_date_form : CPropComFormat.cpp
  • p_extentions : CDlgTagJumpList.cpp
  • p_helpids : CDlgCompare.cpp , CDlgInput1.cpp , CPropComEdit.cpp , CPropComFile.cpp , CDlgJump.cpp , CPropComFileName.cpp , CPropComFormat.cpp , CDlgCtrlCode.cpp , CDlgKeywordSelect.cpp , CPropComGrep.cpp , CPropComHelper.cpp , CDlgOpenFile.cpp , CPropComKeybind.cpp , CPropComKeyword.cpp , CDialog.cpp , CDlgDiff.cpp , CDlgPrintPage.cpp , CPropComMacro.cpp , CPropCommon.cpp , CDlgPrintSetting.cpp , CPropComTab.cpp , CPropComToolbar.cpp , CDlgExec.cpp , CDlgProperty.cpp , CPropComWin.cpp , CPropTypesKeyHelp.cpp , CDlgReplace.cpp , CPropTypesRegex.cpp , CDlgAbout.cpp , CDlgFavorite.cpp , CDlgSameColor.cpp , CDlgTagJumpList.cpp , CDlgFind.cpp , CDlgTagsMake.cpp , CDlgTypeList.cpp , CDlgCancel.cpp , CDlgFuncList.cpp , CDlgWinSize.cpp , CHokanMgr.cpp , CDlgGrep.cpp , CPropComBackup.cpp , CPropComCustmenu.cpp
  • p_helpids1 : CPropTypes.cpp
  • p_helpids2 : CPropTypes.cpp
  • p_helpids3 : CPropTypes.cpp
  • P_ONIG : CBregexpDll2.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
  • 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
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- r -

  • rcBtnBase : CTabWnd.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- s -

  • s_bGSort : CShareData.cpp
  • s_bSort : CShareData.cpp
  • s_dwComctl32Version : os.cpp
  • s_pOldPropSheetWndProc : shell.cpp
  • SELECTEDAREA_RGB : global.cpp , global.h
  • SELECTEDAREA_ROP2 : global.h , global.cpp
  • SmartIndentArr : CPropTypes.cpp
  • static_buf : tchar_receive.cpp
  • STRNCMP_MAX : CEditView.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- t -

  • tableHanKana_Dakuten : convert_util.cpp
  • tableHanKana_HanDakuten : convert_util.cpp
  • tableHanKana_Kigo : convert_util.cpp
  • tableHanKana_Normal : convert_util.cpp
  • tableHanKigo : convert_util.cpp
  • tableZenKana_Dakuten : convert_util.cpp
  • tableZenKana_HanDakuten : convert_util.cpp
  • tableZenKana_Kigo : convert_util.cpp
  • tableZenKana_Normal : convert_util.cpp
  • tableZenKigo : convert_util.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- u -

  • UNICODE_BOOL : build_config.h
  • uShareDataVersion : CShareData.cpp
  • UTF8_BOM : CTextStream.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: 構成メンバ

  • ファイル一覧
  • ファイルメンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- w -

  • WSTR_KEYDATA_HEAD : CPropComKeybind.cpp
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: ページ索引

Sakura-Editor 関連ページ

関連ページの一覧です。
  • TODO一覧
Sakura-Editorに対してSat Nov 17 20:30:22 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: TODO一覧

TODO一覧

メンバ CEditDoc::MakeBackUp (const TCHAR *target_file)
Advanced modeでの世代管理

メンバ CEditDoc::FormatBackUpPath (TCHAR *szNewPath, const TCHAR *target_file)
Advanced modeでの世代管理

メンバ GetDateTimeFormat
出力バッファのサイズチェックを行う
Sakura-Editorに対してSat Nov 17 20:27:38 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/ -> config Relation

sakura_core

sakura_core → config Relation

File in sakura_core | Includes file in sakura_core » config
CRecentCmd.h | maxdata.h
CShareData.h | maxdata.h
FileInfo.h | maxdata.h
StdAfx.h | build_config.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/ -> basis Relation

sakura_core

sakura_core → basis Relation

File in sakura_core | Includes file in sakura_core » basis
CDocLineMgr.cpp | SakuraBasis.h
CDocLineMgr.h | SakuraBasis.h
CEditView.h | SakuraBasis.h
CLayoutMgr.cpp | SakuraBasis.h
CLayoutMgr.h | SakuraBasis.h
CShareData.h | SakuraBasis.h
CViewSelect.h | SakuraBasis.h
FileInfo.h | SakuraBasis.h
StdAfx.h | CMyPoint.h
StdAfx.h | CMyRect.h
StdAfx.h | CMySize.h
StdAfx.h | CMyString.h
StdAfx.h | primitive.h
StdAfx.h | SakuraBasis.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/ -> apiwrap Relation

sakura_core

sakura_core → apiwrap Relation

File in sakura_core | Includes file in sakura_core » apiwrap
StdAfx.h | CommonControl.h
StdAfx.h | StdApi.h
StdAfx.h | StdControl.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/ -> parse Relation

sakura_core

sakura_core → parse Relation

File in sakura_core | Includes file in sakura_core » parse
CDocLineMgr.cpp | CWordParse.h
CEditView.cpp | CWordParse.h
CEditView_New.cpp | CWordParse.h
CEditView_New2.cpp | CWordParse.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/io/ -> charset Relation

sakura_core » io

io → charset Relation

File in sakura_core » io | Includes file in sakura_core » charset
CTextStream.cpp | CCodeMediator.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/io/ -> share Relation

sakura_core » io

io → share Relation

File in sakura_core » io | Includes file in sakura_core » share
io_util.h | CommonSetting.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/io/ -> util Relation

sakura_core » io

io → util Relation

File in sakura_core » io | Includes file in sakura_core » util
CTextStream.cpp | file.h
CTextStream.cpp | module.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/charset/ -> io Relation

sakura_core » charset

charset → io Relation

File in sakura_core » charset | Includes file in sakura_core » io
CCodeMediator.cpp | CBinaryStream.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/charset/ -> convert Relation

sakura_core » charset

charset → convert Relation

File in sakura_core » charset | Includes file in sakura_core » convert
CJis.cpp | CConvert_Base64Decode.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/convert/ -> util Relation

sakura_core » convert

convert → util Relation

File in sakura_core » convert | Includes file in sakura_core » util
CConvert_SpaceToTab.cpp | string_ex2.h
CConvert_TabToSpace.cpp | string_ex2.h
CConvert_Trim.cpp | string_ex2.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/apiwrap/ -> util Relation

sakura_core » apiwrap

apiwrap → util Relation

File in sakura_core » apiwrap | Includes file in sakura_core » util
StdControl.cpp | tchar_receive.h
StdControl.h | tchar_convert.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: sakura_core/util/ -> mem Relation

sakura_core » util

util → mem Relation

File in sakura_core » util | Includes file in sakura_core » mem
tchar_convert.cpp | CRecycledBuffer.h
Sakura-Editorに対してSat Nov 17 20:30:21 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: グラフの凡例

グラフの凡例

このページでは、doxygen で生成されたグラフをどのようにみたらよいかを説明します。

次の例を考えてみます。

/*! 省略されて見えないクラス */
class Invisible { };

/*! 省略されたクラス(継承関係は隠されている) */
class Truncated : public Invisible { };

/* doxygen コメントによるドキュメントがないクラス */
class Undocumented { };

/*! public で継承されたクラス */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! protected で継承されたクラス */
class ProtectedBase { };

/*! private で継承されたクラス */
class PrivateBase { };

/*! 継承されたクラスで使われているクラス */
class Used { };

/*! 複数のクラスを継承している上位クラス */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};
設定ファイル中で、タグ MAX_DOT_GRAPH_HEIGHT が 200 にセットされた場合、次のようなグラフとなります。

上のグラフ内のボックスには次のような意味があります。

  • 黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを表します。
  • 黒枠のボックスはドキュメントがある構造体やクラスを表します。
  • 灰色の枠のボックスはドキュメントがない構造体やクラスを表します。
  • 赤枠のボックスはドキュメントがある構造体やクラスを表しますが、指定されたサイズに収まらないために継承・包含関係をすべて図示することができなかったことを示します。
矢印には次のような意味があります。
  • 青い矢印は二つのクラス間の public 継承関係を示します。
  • 緑の矢印は protected 継承関係を示します。
  • 赤の矢印は private 継承関係を示します。
  • 紫の破線矢印は、そのクラスが他のクラスに含まれていたり、利用されていることを示します。また、矢印が指しているクラスや構造体をどの変数でアクセスできるかを矢印のラベルとして示しています。
Sakura-Editorに対してSat Nov 17 20:30:18 2007に生成されました。 doxygen 1.5.4


Sakura-Editor: メインページ

Sakura-Editor ドキュメント

Unicode branch r1178

Sakura-Editorに対してSat Nov 17 20:24:25 2007に生成されました。 doxygen 1.5.4