basetextbuffer.h
来自「用bcg库编写的java IDE 源码」· C头文件 代码 · 共 116 行
H
116 行
// BaseTextBuffer.h: interface for the CBaseTextBuffer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BASETEXTBUFFER_H__CB08D8E0_F161_424D_A200_E573D871B2D1__INCLUDED_)
#define AFX_BASETEXTBUFFER_H__CB08D8E0_F161_424D_A200_E573D871B2D1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "editlibExp.h"
#include "CCrystalTextBuffer.h"
class CDeclManager;
struct __DeclBound;
class CBlockDecl;
class __CBaseDecl;
class EDITPADC_CLASS CBaseTextBuffer : public CCrystalTextBuffer
{
//protected:
public:
//DECLARE_DYNCREATE (CBaseTextBuffer)
CDeclManager* m_pDeclManager;
CBaseTextBuffer();
virtual ~CBaseTextBuffer();
struct SLineInfoExt : public CCrystalTextBuffer::SLineInfo
{
BOOL m_bExpanded;
struct
{
TCHAR* m_lszpHiddenText;
int length;
}m_hiddenInfo;
CList<CBlockDecl*,CBlockDecl*> *m_lpNodes;
CList<__CBaseDecl*,__CBaseDecl*> m_lDecls;
SLineInfoExt()
{
memset(this, 0, sizeof (SLineInfoExt));
m_lpNodes = new CList<CBlockDecl*,CBlockDecl*>;
}
~SLineInfoExt()
{
delete m_lpNodes;
}
void SetText(LPCTSTR pszText)
{
m_hiddenInfo.m_lszpHiddenText = NULL;
if (pszText != NULL && pszText[0] != _T ('\0'))
{
int nLength = _tcslen (pszText);
m_hiddenInfo.length = nLength;
if(nLength > 1)
{
m_hiddenInfo.m_lszpHiddenText
= new TCHAR[(nLength + 1) * sizeof (TCHAR)];
_tcscpy (m_hiddenInfo.m_lszpHiddenText, pszText);
}
else
m_hiddenInfo.m_lszpHiddenText[0] = pszText[0];
}
}
void FreeText()
{
if(HIWORD((DWORD)m_hiddenInfo.m_lszpHiddenText) != 0)
delete m_hiddenInfo.m_lszpHiddenText;
}
};
virtual SLineInfo* __newline()
{
return new SLineInfoExt;
}
SLineInfoExt* __line(int i){return (SLineInfoExt*)m_aLines[i];}
//custom
void addNode(CBlockDecl*);
void removeNode(CBlockDecl*);
void _toggle(int nLine,int nKeyIndex,CCrystalTextView* = NULL);
void _expand(int nLine,int nKeyIndex);
void _colapse(int nLine,int nKeyIndex);
BOOL isExpanded(int nLine,int nKeyIndex);
BOOL isColapsed(int nLine,int nKeyIndex);
int nodeIndexAt(int nLine,int nIndex);
int nodeCount(int nLine);
CBlockDecl* nodeDeclAt(int nLine,int nIndex);
CBlockDecl* nodeAtKey(int nLine,int nKeyIndex);
CCrystalTextView * getHeadView()
{
return m_lpViews.IsEmpty()?NULL:m_lpViews.GetHead();
}
int AlignBuf(int nLength);
void HideBlockDecls(CBlockDecl*);
void ShowBlockDecls(CBlockDecl*);
void UpdateParents(CBlockDecl*,int);
void HideBlockText(CCrystalTextView * pSource,CBlockDecl*);
void ShowBlockText(CCrystalTextView * pSource,CBlockDecl*);
void AddDeclToLine(int nLine,__CBaseDecl*);
void RemoveDeclFromLine(int nLine,__CBaseDecl*);
};
#endif // !defined(AFX_BASETEXTBUFFER_H__CB08D8E0_F161_424D_A200_E573D871B2D1__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?