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

📄 csharedata.h

📁 日本的开源编辑器源码
💻 H
📖 第 1 页 / 共 3 页
字号:
//	$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 + -