📄 csharedata.h
字号:
// $Id: CShareData.h,v 1.61 2005/04/22 22:45:47 genta Exp $
/*! @file
@brief プロセス間共有データへのアクセス
@author Norio Nakatani
@date 1998/05/26 新規作成
$Revision: 1.61 $
*/
/*
Copyright (C) 1998-2001, Norio Nakatani
Copyright (C) 2002, MIK
Copyright (C) 2003, MIK
This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
*/
class CShareData;
#ifndef _CSHAREDATA_H_
#define _CSHAREDATA_H_
#include <windows.h>
#include <commctrl.h>
#include "CKeyBind.h"
#include "CKeyWordSetMgr.h"
#include "CPrint.h"
#include "CProfile.h"
//@@@ 2001.12.26 YAZAKI CMRU, CMRUFolder
#include "CMRU.h"
#include "CMRUFolder.h"
//20020129 aroka
#include "funccode.h"
#include "CMemory.h"
#include "CLineComment.h" //@@@ 2002.09.22 YAZAKI
#include "CBlockComment.h" //@@@ 2002.09.22 YAZAKI
enum maxdata{
MAX_EDITWINDOWS = 256,
MAX_SEARCHKEY = 30,
MAX_REPLACEKEY = 30,
MAX_GREPFILE = 30,
MAX_GREPFOLDER = 30,
MAX_TYPES = 20, //Jul. 12, 2001 JEPRO タイプ別設定の最大設定数を16から増やした
MAX_TOOLBARBUTTONS = 384, //Oct. 22, 2000 JEPORO アイコンの最大登録数を128個増やした(256→384)
MAX_CUSTOM_MENU = 25,
MAX_CUSTOM_MENU_NAME_LEN = 32,
MAX_CUSTOM_MENU_ITEMS = 48,
MAX_PRINTSETTINGARR = 8,
// From Here Sep. 14, 2001 genta
MACRONAME_MAX = 64,
MAX_EXTCMDLEN = 1024,
MAX_EXTCMDMRUNUM = 32,
MAX_DATETIMEFOREMAT_LEN = 100,
MAX_CMDLEN = 1024,
MAX_CMDARR = 32,
MAX_REGEX_KEYWORD = 100, //@@@ 2001.11.17 add MIK
MAX_MARKLINES_LEN = 1023, // 2002.01.18 hor
MAX_DOCTYPE_LEN = 7,
MAX_TRANSFORM_FILENAME = 16, /// 2002.11.24 Moca
/*! 登録できるマクロの数
@date 2005.01.30 genta 50に増やした
*/
MAX_CUSTMACRO = 50,
// 2004/06/21 novice タグジャンプ機能追加
MAX_TAGJUMPNUM = 100, // タブジャンプ情報最大値
MAX_TAGJUMP_KEYWORD = 30, //タグジャンプ用キーワード最大登録数2005.04.04 MIK
MAX_KEYWORDSET_PER_TYPE = 10, // 2004.01.23 genta (for MIK) タイプ別設定毎のキーワードセット数
};
/*! ファイル情報
@date 2002.03.07 genta m_szDocType追加
@date 2003.01.26 aroka m_nWindowSizeX/Y m_nWindowOriginX/Y追加
*/
struct FileInfo {
int m_nViewTopLine; /*!< 表示域の一番上の行(0開始) */
int m_nViewLeftCol; /*!< 表示域の一番左の桁(0開始) */
int m_nX; /*!< カーソル 物理位置(行頭からのバイト数) */
int m_nY; /*!< カーソル 物理位置(折り返し無し行位置) */
int m_bIsModified; /*!< 変更フラグ */
int m_nCharCode; /*!< 文字コード種別 */
char m_szPath[_MAX_PATH]; /*!< ファイル名 */
BOOL m_bIsGrep; /*!< Grepのウィンドウか */
BOOL m_bIsDebug; /*!< デバッグモードか(アウトプットウインドウ) */
char m_szGrepKey[1024];
char m_szMarkLines[MAX_MARKLINES_LEN + 1]; /*!< ブックマークの物理行リスト */
char m_szDocType[MAX_DOCTYPE_LEN + 1]; /*!< 文書タイプ */
int m_nWindowSizeX; /*!< ウィンドウ 幅(ピクセル数) */
int m_nWindowSizeY; /*!< ウィンドウ 高さ(ピクセル数) */
int m_nWindowOriginX; /*!< ウィンドウ 物理位置(ピクセル数?マイナス値も有効) */
int m_nWindowOriginY; /*!< ウィンドウ 物理位置(ピクセル数?マイナス値も有効) */
// Mar. 7, 2002 genta
// Constructor 確実に初期化するため
FileInfo() : m_nViewTopLine( -1 ), m_nViewLeftCol( -1 ),
m_nX( -1 ), m_nY( -1 ), m_bIsModified( 0 ),
m_nCharCode( CODE_AUTODETECT ), m_bIsGrep( FALSE ), m_bIsDebug( FALSE ),
m_nWindowSizeX( -1 ), m_nWindowSizeY( -1 ),
// 2004.05.13 Moca “指定無し”を-1からCW_USEDEFAULTに変更
m_nWindowOriginX( CW_USEDEFAULT ), m_nWindowOriginY( CW_USEDEFAULT )
{
m_szPath[0] = '\0';
m_szMarkLines[0] = '\0';
m_szDocType[0] = '\0';
}
};
/*! 検索オプション
20020118 aroka
*/
struct GrepInfo {
CMemory cmGrepKey; /*!< 検索キー */
CMemory cmGrepFile; /*!< 検索対象ファイル */
CMemory cmGrepFolder; /*!< 検索対象フォルダ */
bool bGrepWordOnly; /*!< 単語単位で探す */
bool bGrepSubFolder; /*!< サブフォルダを検索する */
bool bGrepNoIgnoreCase; /*!< 大文字と小文字を区別する */
bool bGrepRegularExp; /*!< 正規表現を使用する */
bool bGrepOutputLine; /*!< 結果出力で該当行を出力する */
int nGrepOutputStyle; /*!< 結果出力形式 */
int nGrepCharSet; /*!< 文字コードセット */
};
struct EditNode {
int m_nIndex;
HWND m_hWnd;
char m_szTabCaption[_MAX_PATH]; /*!< タブウインドウ用:キャプション名 */ //@@@ 2003.05.31 MIK
};
//! 印刷設定
#define POS_LEFT 0
#define POS_CENTER 1
#define POS_RIGHT 2
#define HEADER_MAX 100
#define FOOTER_MAX HEADER_MAX
struct PRINTSETTING {
char m_szPrintSettingName[32 + 1]; /*!< 印刷設定の名前 */
char m_szPrintFontFaceHan[LF_FACESIZE]; /*!< 印刷フォント */
char m_szPrintFontFaceZen[LF_FACESIZE]; /*!< 印刷フォント */
int m_nPrintFontWidth; /*!< 印刷フォント幅(1/10mm単位単位) */
int m_nPrintFontHeight; /*!< 印刷フォント高さ(1/10mm単位単位) */
int m_nPrintDansuu; /*!< 段組の段数 */
int m_nPrintDanSpace; /*!< 段と段の隙間(1/10mm単位) */
int m_nPrintLineSpacing; /*!< 印刷フォント行間 文字の高さに対する割合(%) */
int m_nPrintMarginTY; /*!< 印刷用紙マージン 上(mm単位) */
int m_nPrintMarginBY; /*!< 印刷用紙マージン 下(mm単位) */
int m_nPrintMarginLX; /*!< 印刷用紙マージン 左(mm単位) */
int m_nPrintMarginRX; /*!< 印刷用紙マージン 右(mm単位) */
int m_nPrintPaperOrientation; /*!< 用紙方向 DMORIENT_PORTRAIT (1) または DMORIENT_LANDSCAPE (2) */
int m_nPrintPaperSize; /*!< 用紙サイズ */
BOOL m_bPrintWordWrap; /*!< 英文ワードラップする */
BOOL m_bPrintKinsokuHead; /*!< 行頭禁則する */ //@@@ 2002.04.09 MIK
BOOL m_bPrintKinsokuTail; /*!< 行末禁則する */ //@@@ 2002.04.09 MIK
BOOL m_bPrintKinsokuRet; /*!< 改行文字のぶら下げ */ //@@@ 2002.04.13 MIK
BOOL m_bPrintKinsokuKuto; /*!< 句読点のぶらさげ */ //@@@ 2002.04.17 MIK
BOOL m_bPrintLineNumber; /*!< 行番号を印刷する */
MYDEVMODE m_mdmDevMode; /*!< プリンタ設定 DEVMODE用 */
BOOL m_bHeaderUse[3]; /* ヘッダが使われているか? */
char m_szHeaderForm[3][HEADER_MAX]; /* 0:左寄せヘッダ。1:中央寄せヘッダ。2:右寄せヘッダ。*/
BOOL m_bFooterUse[3]; /* フッタが使われているか? */
char m_szFooterForm[3][FOOTER_MAX]; /* 0:左寄せフッタ。1:中央寄せフッタ。2:右寄せフッタ。*/
};
//! 色設定
struct ColorInfo {
int m_nColorIdx;
BOOL m_bDisp; /* 色分け/表示 をする */
BOOL m_bFatFont; /* 太字か */
BOOL m_bUnderLine; /* アンダーラインか */
COLORREF m_colTEXT; /* 前景色(文字色) */
COLORREF m_colBACK; /* 背景色 */
char m_szName[32]; /* 名前 */
char m_cReserved[60];
};
//! 色設定(保存用)
struct ColorInfoIni {
const char* m_pszName; /* 色名 */
BOOL m_bDisp; /* 色分け/表示 をする */
BOOL m_bFatFont; /* 太字か */
BOOL m_bUnderLine; /* アンダーラインか */
COLORREF m_colTEXT; /* 前景色(文字色) */
COLORREF m_colBACK; /* 背景色 */
};
//@@@ 2001.11.17 add start MIK
struct RegexKeywordInfo {
char m_szKeyword[100]; //正規表現キーワード
int m_nColorIndex; //色指定番号
};
//@@@ 2001.11.17 add end MIK
//! タイプ別設定
struct Types {
int m_nIdx;
char m_szTypeName[64]; /*!< タイプ属性:名称 */
char m_szTypeExts[64]; /*!< タイプ属性:拡張子リスト */
int m_nMaxLineSize; /*!< 折り返し文字数 */
int m_nColmSpace; /*!< 文字と文字の隙間 */
int m_nLineSpace; /*!< 行間のすきま */
int m_nTabSpace; /*!< TABの文字数 */
int m_bTabArrow; /*!< タブ矢印表示 */ //@@@ 2003.03.26 MIK
char m_szTabViewString[17]; /*!< TAB表示文字列 */ // 2003.1.26 aroka サイズ拡張
int m_bInsSpace; /* スペースの挿入 */ // 2001.12.03 hor
// 2005.01.13 MIK 配列化
int m_nKeyWordSetIdx[MAX_KEYWORDSET_PER_TYPE]; /*!< キーワードセット */
CLineComment m_cLineComment; /*!< 行コメントデリミタ */ //@@@ 2002.09.22 YAZAKI
CBlockComment m_cBlockComment; /*!< ブロックコメントデリミタ */ //@@@ 2002.09.22 YAZAKI
int m_nStringType; /*!< 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
char m_szIndentChars[64]; /*!< その他のインデント対象文字 */
int m_nColorInfoArrNum; /*!< 色設定配列の有効数 */
ColorInfo m_ColorInfoArr[64]; /*!< 色設定配列 */
int m_bLineNumIsCRLF; /*!< 行番号の表示 FALSE=折り返し単位/TRUE=改行単位 */
int m_nLineTermType; /*!< 行番号区切り 0=なし 1=縦線 2=任意 */
char m_cLineTermChar; /*!< 行番号区切り文字 */
BOOL m_bWordWrap; /*!< 英文ワードラップをする */
BOOL m_bKinsokuHead; /*!< 行頭禁則をする */ //@@@ 2002.04.08 MIK
BOOL m_bKinsokuTail; /*!< 行末禁則をする */ //@@@ 2002.04.08 MIK
BOOL m_bKinsokuRet; /*!< 改行文字のぶら下げ */ //@@@ 2002.04.13 MIK
BOOL m_bKinsokuKuto; /*!< 句読点のぶらさげ */ //@@@ 2002.04.17 MIK
char m_szKinsokuHead[200]; /*!< 行頭禁則文字 */ //@@@ 2002.04.08 MIK
char m_szKinsokuTail[200]; /*!< 行頭禁則文字 */ //@@@ 2002.04.08 MIK
int m_nCurrentPrintSetting; /*!< 現在選択している印刷設定 */
int m_nDefaultOutline; /*!< アウトライン解析方法 */
char m_szOutlineRuleFilename[_MAX_PATH]; /*!< アウトライン解析ルールファイル */
int m_nSmartIndent; /*!< スマートインデント種別 */
int m_nImeState; // Nov. 20, 2000 genta 初期IME状態
// 2001/06/14 asa-o 補完とキーワードヘルプのタイプ別設定
char m_szHokanFile[_MAX_PATH]; /*!< 入力補完 単語ファイル */
// 2003.06.23 Moca ファイル内からの入力補完機能
int m_bUseHokanByFile; /*!< 入力補完 開いているファイル内から候補を探す */
int m_bUseKeyWordHelp; /*!< キーワードヘルプを使用する */
char m_szKeyWordHelpFile[_MAX_PATH]; /*!< キーワードヘルプ 辞書ファイル */
// 2001/06/19 asa-o
int m_bHokanLoHiCase; /*!< 入力補完機能:英大文字小文字を同一視する */
char m_szExtHelp[_MAX_PATH]; /* 外部ヘルプ1 */
char m_szExtHtmlHelp[_MAX_PATH]; /* 外部HTMLヘルプ */
BOOL m_bHtmlHelpIsSingle; /* HtmlHelpビューアはひとつ */
//@@@ 2001.11.17 add start MIK
BOOL m_bUseRegexKeyword; /* 正規表現キーワードを使うか*/
int m_nRegexKeyMagicNumber; /* 正規表現キーワード更新マジックナンバー */
struct RegexKeywordInfo m_RegexKeywordArr[MAX_REGEX_KEYWORD]; /* 正規表現キーワード */
//@@@ 2001.11.17 add end MIK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -