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

📄 cdocline.h

📁 日本的开源编辑器源码
💻 H
字号:
//	$Id: CDocLine.h,v 1.12 2002/10/01 17:33:40 Administrator Exp $
/*!	@file
	@brief 文書データ1行

	@author Norio Nakatani
	@date 2001/12/03 hor しおり(bookmark)機能追加に伴うメンバー追加
	@date 2001/12/18 hor bookmark, 修正フラグのアクセス関数化
	$Revision: 1.12 $
*/
/*
	Copyright (C) 1998-2001, Norio Nakatani
	Copyright (C) 2001, hor
	Copyright (C) 2002, MIK

	This source code is designed for sakura editor.
	Please contact the copyright holder to use this code for other purpose.
*/

class CDocLine;

#ifndef _CDOCLINE_H_
#define _CDOCLINE_H_

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


//@@@ 2002.05.25 MIK
#define	MARK_DIFF_APPEND	1	//追加
#define	MARK_DIFF_CHANGE	2	//変更
#define	MARK_DIFF_DELETE	3	//削除
#define	MARK_DIFF_DEL_EX	4	//削除(EOF以降)

//!	文書データ1行
class CDocLine
{
public:
	/*
	||  Constructors
	*/
	CDocLine();
	~CDocLine();


	CDocLine*	m_pPrev;	/*!< 一つ前の要素 */
	CDocLine*	m_pNext;	/*!< 一つ後の要素 */
	CMemory*	m_pLine;	/*!< データ */
	CEOL		m_cEol;		/*!< 行末コード */

	bool		IsModifyed  ( void ) const { return m_bMark.m_bMarkArray.m_bModify ? true : false; }	// 変更フラグの状態を取得する	//@@@ 2002.05.25 MIK
	void		SetModifyFlg( bool bFlg )  { m_bMark.m_bMarkArray.m_bModify = bFlg ? 1 : 0; }	// 変更フラグの状態を指定する	//@@@ 2002.05.25 MIK

	bool		IsBookMarked( void ) const { return m_bMark.m_bMarkArray.m_bBookMark ? true : false; }	// ブックマークの状態を取得する	//@@@ 2002.05.25 MIK
	void		SetBookMark ( bool bFlg )  { m_bMark.m_bMarkArray.m_bBookMark = bFlg ? 1 : 0; }	// ブックマークの状態を指定する	//@@@ 2002.05.25 MIK

	int			IsDiffMarked( void ) const { return (int)m_bMark.m_bMarkArray.m_bDiffMark; }	//差分状態を取得する	//@@@ 2002.05.25 MIK
	void		SetDiffMark( int type )    { m_bMark.m_bMarkArray.m_bDiffMark = type; }		//差分状態を設定する	//@@@ 2002.05.25 MIK

	bool		IsEmptyLine( void );	//	このCDocLineが空行(スペース、タブ、改行記号のみの行)かどうか。
	int			GetLengthWithoutEOL( void ) const { return m_pLine->GetLength() - m_cEol.GetLen(); }
	char*		GetPtr( void ) const              { return m_pLine->GetPtr(); }
	int			GetLength( void ) const			  { return m_pLine->GetLength(); }	//	CMemoryIterator用
	int			GetIndent( void ) const			  { return 0; }						//	CMemoryIterator用
protected:
	//マーク情報
	union {
		unsigned char	m_bAllMark;
		struct Mark_tag {
			unsigned m_bModify		: 1;	//変更フラグ
			unsigned m_bBookMark	: 1;	//ブックマーク
			unsigned m_bDiffMark	: 3;	//DIFF差分情報
		} m_bMarkArray;
	} m_bMark;
};


///////////////////////////////////////////////////////////////////////
#endif /* _CDOCLINE_H_ */


/*[EOF]*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -