亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ccrystaltextbuffer.h

?? 袖珍型的pascal編譯器
?? H
字號(hào):
////////////////////////////////////////////////////////////////////////////
//	File:		CCrystalTextBuffer.h
//	Version:	1.0.0.0
//	Created:	29-Dec-1998
//
//	Author:		Stcherbatchenko Andrei
//	E-mail:		windfall@gmx.de
//
//	Interface of the CCrystalTextBuffer class, a part of Crystal Edit -
//	syntax coloring text editor.
//
//	You are free to use or modify this code to the following restrictions:
//	- Acknowledge me somewhere in your about box, simple "Parts of code by.."
//	will be enough. If you can't (or don't want to), contact me personally.
//	- LEAVE THIS HEADER INTACT
////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
#define AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "cedefs.h"
#include "CCrystalTextView.h"

#ifndef __AFXTEMPL_H__
#pragma message("Include <afxtempl.h> in your stdafx.h to avoid this message")
#include <afxtempl.h>
#endif

#define UNDO_DESCRIP_BUF        32

enum LINEFLAGS
{
	LF_BOOKMARK_FIRST			= 0x00000001L,
	LF_EXECUTION				= 0x00010000L,
	LF_BREAKPOINT				= 0x00020000L,
	LF_COMPILATION_ERROR		= 0x00040000L,
	LF_BOOKMARKS	        	= 0x00080000L,
	LF_INVALID_BREAKPOINT       = 0x00100000L
};

#define LF_BOOKMARK(id)		(LF_BOOKMARK_FIRST << id)

enum CRLFSTYLE
{
	CRLF_STYLE_AUTOMATIC	= -1,
	CRLF_STYLE_DOS			= 0,
	CRLF_STYLE_UNIX			= 1,
	CRLF_STYLE_MAC			= 2
};

enum
{
	CE_ACTION_UNKNOWN		= 0,
	CE_ACTION_PASTE			= 1,
	CE_ACTION_DELSEL		= 2,
	CE_ACTION_CUT			= 3,
	CE_ACTION_TYPING		= 4,
	CE_ACTION_BACKSPACE		= 5,
	CE_ACTION_INDENT		= 6,
	CE_ACTION_DRAGDROP		= 7,
	CE_ACTION_REPLACE		= 8,
	CE_ACTION_DELETE		= 9,
	CE_ACTION_AUTOINDENT	= 10
	//	...
	//	Expandable: user actions allowed
};


/////////////////////////////////////////////////////////////////////////////
// CUpdateContext class

class CUpdateContext
{
public:
	virtual void RecalcPoint(CPoint &ptPoint) = 0;
};


/////////////////////////////////////////////////////////////////////////////
// CCrystalTextBuffer command target

class CRYSEDIT_CLASS_DECL CCrystalTextBuffer : public CCmdTarget
{
	DECLARE_DYNCREATE(CCrystalTextBuffer)

private:
	BOOL m_bInit;
	BOOL m_bReadOnly;
	BOOL m_bModified;
	int m_nCRLFMode;
	BOOL m_bCreateBackupFile;
	int m_nUndoBufSize;
	int FindLineWithFlag(DWORD dwFlag);

protected:
#pragma pack(push, 1)
	//	Nested class declarations
	struct SLineInfo
	{
		TCHAR	*m_pcLine;
		int		m_nLength, m_nMax;
		DWORD	m_dwFlags;

		SLineInfo() { memset(this, 0, sizeof(SLineInfo)); };
	};

	enum
	{
		UNDO_INSERT			= 0x0001,
		UNDO_BEGINGROUP		= 0x0100
	};

	//	[JRT] Support For Descriptions On Undo/Redo Actions
	struct SUndoRecord
	{
		DWORD	m_dwFlags;

		CPoint	m_ptStartPos, m_ptEndPos;			//	Block of text participating
		int		m_nAction;							//	For information only: action type

	private:
		//	TCHAR	*m_pcText;
		//	Since in most cases we have 1 character here, 
		//	we should invent a better way. Note: 2 * sizeof(WORD) <= sizeof(TCHAR*)
		//
		//	Here we will use the following trick: on Win32 platforms high-order word
		//	of any pointer will be != 0. So we can store 1 character strings without
		//	allocating memory.
		//

		union
		{
			TCHAR	*m_pszText;		//	For cases when we have > 1 character strings
			TCHAR	m_szText[2];	//	For single-character strings
		};

	public:
		//	constructor/destructor for this struct
		SUndoRecord() { memset(this, 0, sizeof(SUndoRecord)); };

		void SetText(LPCTSTR pszText);
		void FreeText();

		LPCTSTR GetText() const
		{
			if (HIWORD((DWORD) m_pszText) != 0)
				return m_pszText;
			return m_szText;
		};
	};

#pragma pack(pop)

	class CInsertContext : public CUpdateContext
	{
	public:
		CPoint m_ptStart, m_ptEnd;
		virtual void RecalcPoint(CPoint &ptPoint);
	};

	class CDeleteContext : public CUpdateContext
	{
	public:
		CPoint m_ptStart, m_ptEnd;
		virtual void RecalcPoint(CPoint &ptPoint);
	};

	//	Lines of text
	CArray <SLineInfo, SLineInfo&> m_aLines;

	//	Undo
	CArray <SUndoRecord, SUndoRecord&> m_aUndoBuf;
	int m_nUndoPosition;
	int m_nSyncPosition;
	BOOL m_bUndoGroup, m_bUndoBeginGroup;

	//	Connected views
	CList <CCrystalTextView *, CCrystalTextView *> m_lpViews;

	//	Helper methods
	void InsertLine(LPCTSTR pszLine, int nLength = -1, int nPosition = -1);
	void AppendLine(int nLineIndex, LPCTSTR pszChars, int nLength = -1);

	//	Implementation
	BOOL InternalInsertText(CCrystalTextView *pSource, int nLine, int nPos, LPCTSTR pszText, int &nEndLine, int &nEndChar);
	BOOL InternalDeleteText(CCrystalTextView *pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos);

	//	[JRT] Support For Descriptions On Undo/Redo Actions
	void AddUndoRecord(BOOL bInsert, const CPoint &ptStartPos, const CPoint &ptEndPos, 
						LPCTSTR pszText, int nActionType = CE_ACTION_UNKNOWN);

	//	Overridable: provide action description
	virtual BOOL GetActionDescription(int nAction, CString &desc);

// Operations
public:
	//	Construction/destruction code
	CCrystalTextBuffer();
	~CCrystalTextBuffer();

	//	Basic functions
	BOOL InitNew(int nCrlfStyle = CRLF_STYLE_DOS);
	BOOL LoadFromFile(LPCTSTR pszFileName, int nCrlfStyle = CRLF_STYLE_AUTOMATIC);
	BOOL SaveToFile(LPCTSTR pszFileName, int nCrlfStyle = CRLF_STYLE_AUTOMATIC, BOOL bClearModifiedFlag = TRUE);
	void FreeAll();

	//	'Dirty' flag
	virtual void SetModified(BOOL bModified = TRUE);
	BOOL IsModified() const;

	//	Connect/disconnect views
	void AddView(CCrystalTextView *pView);
	void RemoveView(CCrystalTextView *pView);

	//	Text access functions
	int GetLineCount();
	int GetLineLength(int nLine);
	LPTSTR GetLineChars(int nLine);
	DWORD GetLineFlags(int nLine);
	int GetLineWithFlag(DWORD dwFlag);
	void SetLineFlag(int nLine, DWORD dwFlag, BOOL bSet, BOOL bRemoveFromPreviousLine = TRUE);
	void GetText(int nStartLine, int nStartChar, int nEndLine, int nEndChar, CString &text, LPCTSTR pszCRLF = NULL);

	//	Attributes
	int GetCRLFMode();
	void SetCRLFMode(int nCRLFMode);
	BOOL GetReadOnly() const;
	void SetReadOnly(BOOL bReadOnly = TRUE);

	//	Text modification functions
	BOOL InsertText(CCrystalTextView *pSource, int nLine, int nPos, LPCTSTR pszText, int &nEndLine, int &nEndChar, int nAction = CE_ACTION_UNKNOWN);
	BOOL DeleteText(CCrystalTextView *pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos, int nAction = CE_ACTION_UNKNOWN);

	//	Undo/Redo
	BOOL CanUndo();
	BOOL CanRedo();
	BOOL Undo(CPoint &ptCursorPos);
	BOOL Redo(CPoint &ptCursorPos);

	//	Undo grouping
	void BeginUndoGroup(BOOL bMergeWithPrevious = FALSE);
	void FlushUndoGroup(CCrystalTextView *pSource);

	//	Browse undo sequence
	POSITION GetUndoDescription(CString &desc, POSITION pos = NULL);
	POSITION GetRedoDescription(CString &desc, POSITION pos = NULL);

	//	Notify all connected views about changes in text
	void UpdateViews(CCrystalTextView *pSource, CUpdateContext *pContext,
					DWORD dwUpdateFlags, int nLineIndex = -1);

	// More bookmarks
	int FindNextBookmarkLine(int nCurrentLine = 0);
	int FindPrevBookmarkLine(int nCurrentLine = 0);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCrystalTextBuffer)
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CCrystalTextBuffer)
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

#if ! (defined(CE_FROM_DLL) || defined(CE_DLL_BUILD))
#include "CCrystalTextBuffer.inl"
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级免费观看| 久99久精品视频免费观看| 风间由美一区二区av101| 欧美va亚洲va在线观看蝴蝶网| 蜜臀久久99精品久久久画质超高清| 欧美视频一区二区三区在线观看| 夜夜嗨av一区二区三区四季av | 成人午夜碰碰视频| 欧美韩国日本综合| 91久久精品一区二区二区| 亚洲综合丝袜美腿| 91精品国产色综合久久不卡电影 | 亚洲大片免费看| 欧美一卡二卡三卡| 国产老女人精品毛片久久| 日本一区免费视频| 欧美三级视频在线播放| 久久精品久久99精品久久| 国产欧美一区二区精品性色| www.色精品| 国产在线一区观看| 精品欧美乱码久久久久久| 福利一区二区在线观看| 国产精品久久国产精麻豆99网站| 99久久精品一区| 亚洲精品国产精华液| 欧美色视频一区| 久久成人免费日本黄色| 日本一区免费视频| 色拍拍在线精品视频8848| 亚洲一区免费观看| 日韩欧美卡一卡二| 国产成人夜色高潮福利影视| 国产精品久久久久久久岛一牛影视| 99国产精品久久久久久久久久久| 亚洲靠逼com| 日韩一区二区三区电影在线观看| 国产一区二区三区观看| 成人欧美一区二区三区小说| 欧美性受极品xxxx喷水| 国内精品久久久久影院薰衣草| 中文字幕av免费专区久久| 在线观看三级视频欧美| 亚洲四区在线观看| 6080yy午夜一二三区久久| 国产毛片精品视频| 亚洲精品美国一| 精品国产乱码久久久久久闺蜜| 国产精品一二三| 亚洲国产日韩a在线播放 | 欧美日韩久久一区| 国模大尺度一区二区三区| 亚洲乱码中文字幕综合| 欧美电影免费观看高清完整版在 | 韩国av一区二区三区在线观看| 亚洲欧洲综合另类| 久久久电影一区二区三区| 欧美中文字幕一区| 懂色av中文一区二区三区| 三级不卡在线观看| 亚洲欧洲精品一区二区精品久久久| 欧美亚洲禁片免费| 高清久久久久久| 男女性色大片免费观看一区二区 | 成人午夜在线播放| 青青草91视频| 亚洲狠狠丁香婷婷综合久久久| 精品国产第一区二区三区观看体验| 96av麻豆蜜桃一区二区| 韩国成人福利片在线播放| 午夜免费久久看| 亚洲欧美综合网| 精品国产一区二区三区不卡| 欧美日韩另类一区| 91国产成人在线| 成人黄色大片在线观看| 久久av中文字幕片| 全国精品久久少妇| 亚洲国产精品欧美一二99| 1024亚洲合集| 亚洲国产精品激情在线观看| 久久在线免费观看| 日韩丝袜美女视频| 欧美一区二区三区公司| 欧美日韩国产在线观看| 91猫先生在线| 92精品国产成人观看免费| 高清日韩电视剧大全免费| 国产一区在线精品| 国产大陆a不卡| 国产成人免费在线| 丰满岳乱妇一区二区三区 | 韩国成人在线视频| 免费成人av在线| 久久国产综合精品| 久久精品72免费观看| 麻豆高清免费国产一区| 一区二区三区国产精华| 国产精品网曝门| 国产三级一区二区| 中文字幕国产一区| ...xxx性欧美| 一区二区三区欧美亚洲| 午夜伊人狠狠久久| 免费成人在线影院| 国产在线不卡视频| www.一区二区| 在线观看日产精品| 91成人免费在线视频| 精品视频一区三区九区| 91精品国产91久久久久久一区二区 | 亚洲成人午夜电影| 五月天欧美精品| 青青草国产精品亚洲专区无| 国产成人av福利| av一区二区三区四区| 91福利在线看| 日韩精品一区二区三区中文不卡| 欧美精品一区二区三区一线天视频| 国产亚洲成av人在线观看导航| 中文无字幕一区二区三区| 1区2区3区精品视频| 性做久久久久久久免费看| 国产成人在线视频网址| 91黄色小视频| 久久综合久久久久88| 中文字幕一区二区视频| 亚洲最大色网站| 蜜臀91精品一区二区三区| 国产成a人亚洲| 欧美日韩中文字幕精品| 久久久精品国产免大香伊| 自拍偷拍国产精品| 日韩av一区二区在线影视| 国产成人aaa| 欧美日韩黄色一区二区| 久久精品亚洲麻豆av一区二区| 国产精品区一区二区三| 午夜精品久久久久久久蜜桃app | 欧美性大战xxxxx久久久| 日韩欧美综合在线| 亚洲精品国产成人久久av盗摄 | 欧美日韩一区 二区 三区 久久精品| 欧美大片一区二区| 亚洲精品中文在线观看| 久久精品国产澳门| 欧美性生活一区| 国产精品理伦片| 久久国产麻豆精品| 欧美日韩一区三区| 国产欧美日韩另类视频免费观看| 亚洲精品午夜久久久| 国产在线观看免费一区| 国产69精品久久久久777| 日韩片之四级片| 亚洲一级片在线观看| 成人免费不卡视频| 精品av综合导航| 日日欢夜夜爽一区| 在线亚洲欧美专区二区| 欧美韩日一区二区三区| 久久国产成人午夜av影院| 欧美日韩一区三区| 中文字幕一区二区三区乱码在线 | 午夜精品在线看| 91蝌蚪porny九色| 国产精品卡一卡二| 国产乱码精品1区2区3区| 欧美一三区三区四区免费在线看| 一区二区三区高清不卡| 91偷拍与自偷拍精品| 日本一区二区电影| 国产成人av一区| 久久精品无码一区二区三区| 国产麻豆视频一区二区| 欧美成人伊人久久综合网| 日韩av在线发布| 日韩一区二区三区电影在线观看| 调教+趴+乳夹+国产+精品| 一本色道久久综合亚洲精品按摩| 国产精品精品国产色婷婷| 国产不卡视频在线播放| 久久久久青草大香线综合精品| 麻豆91精品视频| 欧美xfplay| 国产一本一道久久香蕉| 国产日韩欧美不卡在线| 成人一级黄色片| 中文字幕一区二区三中文字幕| 高清国产一区二区| 国产精品久久777777| 91在线视频观看| 亚洲午夜精品在线| 欧美男人的天堂一二区| 亚洲国产精品影院| 欧美日韩国产精品成人| 日本欧美加勒比视频| 日韩视频中午一区| 国产一区二区视频在线播放| 久久一夜天堂av一区二区三区|