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

📄 edit.cpp

📁 BREW 应用
💻 CPP
字号:
// EDIT.cpp: implementation of the CEDIT class.
//
//////////////////////////////////////////////////////////////////////

#include "EDIT.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEDIT::CEDIT(CAppMainHandler *pAppMain)
{
	AEEDeviceInfo di;
	m_pAppMain = pAppMain;

	ISHELL_GetDeviceInfo(m_pAppMain->m_pIShell, &di);
	m_Mi.m_nx = m_Mi.m_ny = 0;
	m_Mi.m_nWidth = di.cxScreen;
	m_Mi.m_nHeight = di.cyScreen;

	AEEFont font;
	int pnAscent, pnDescent;
	int m_nFontHeight = IDISPLAY_GetFontMetrics (m_pAppMain->m_pIDisplay, font, &pnAscent, &pnDescent);
	m_Mi.m_nLineCount = m_Mi.m_nHeight / (m_nFontHeight + 4);
	
	for( int i=0; i< m_Mi.m_nLineCount; i++ )
		m_Mti.m_pLineText[i] = (char*)new char[30];
	m_Mti.m_nStartLine = 0;
	m_Mti.m_pMemoText = NULL;
	m_ptagFile = NULL;
}

CEDIT::~CEDIT()
{

}

void CEDIT::Size(int x, int y, int width, int height)
{
	m_Mi.m_nx = x;
	m_Mi.m_ny = y;
	m_Mi.m_nWidth = width;
	m_Mi.m_nHeight = height;

	m_Mi.m_nLineCount = m_Mi.m_nHeight / (m_nFontHeight + 4);
}

int CEDIT::Write(char *pText, int nSize)
{
	m_ptagFile->Write(pText, nSize);
	m_ptagFile->Write((char*)20, 1);
	return nSize + 1;
}

void CEDIT::SetText(char *pText)
{
	if( m_ptagFile )	
		delete m_ptagFile;
	m_ptagFile = new CTAGTEXTFILE(m_pAppMain, m_Mi.m_nWidth);
	m_ptagFile->Open("cocozaTXT");
	MakeTagText(pText, 0);
}

void CEDIT::MakeTagText(char *pText, int nSize)
{
	char chBuf[3];
	int nOneSize, nTotalSize, nTextCount;
	int nCount, nTemp;
	char *pStartPos;
	AEEFont font;
	
	nOneSize = nTotalSize = nTextCount = 0;
	pStartPos = pText;
	while( pText != NULL ) {
		if( *pText & 0x80 ) {
			MEMCPY(chBuf, pText, 2);
			nCount = 2;
		}
		else {
			MEMCPY(chBuf, pText, 1);
			if ( chBuf[0] == '\r' ) {				
				Write(pStartPos, nTextCount);
				nTextCount = nTotalSize = 0;
				pStartPos = pText + 1;
				continue;
			}
				break;
			if ( chBuf[0] == '\n' ) 
				*pText = ' ';
			nCount = 1;
		}
		chBuf[nCount] = '\0';
		nOneSize = IDISPLAY_MeasureTextEx(m_pAppMain->m_pIDisplay, font, (AECHAR*)chBuf, 1, -1, &nTemp);
		nTotalSize += nOneSize;
		if( m_Mi.m_nWidth > nTotalSize )
			nTextCount += nCount;
		else {			
			Write(pStartPos, nTextCount);
			nTextCount = nTotalSize = 0;
			pStartPos = pText+1;
			continue;
		}
		pText += nCount;
	}
	Write(pStartPos, nTextCount);
}

⌨️ 快捷键说明

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