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

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

?? cviewbinary.cpp

?? 一個關(guān)于symbian下文本編輯器的源碼程序
?? CPP
字號:
/*
 * HView [c]2004 Marcin Skoczylas, All rights reserved
 *
 * This file is under GPL license, see gpl.txt file
 *
 */

#include "SymDefs.h"
#include "CViewBinary.h"

CViewBinary::CViewBinary(CHVContainer *iContainer)
{
	this->iContainer=iContainer;
	hexTable = "0123456789abcdef";


}

CViewBinary::~CViewBinary()
{

}

void CViewBinary::SetupArrays(TInt filePos)
{
	char *buf;
	// prepare binary arrays
	int xNumbers, xAscii, y;

	iContainer->numCharsX = 0;	// number of ascii (not binary doubles: 00) chars per row
	iContainer->numCharsY = iContainer->screenRect.Height() / HVFONT_HEIGHT;
	// calc num bin numbers

	xAscii = iContainer->screenRect.Width();
	for (xNumbers = 0; xNumbers < (xAscii-3); )
	{
		xNumbers += (int)(HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH);
		xAscii -= HVFONT_WIDTH;
		iContainer->numCharsX++;
	}
	iContainer->numCharsX--;

	xAscii = binaryAsciiStartX = iContainer->screenRect.Width()-(iContainer->numCharsX*HVFONT_WIDTH);

	LOGF("preparing char arrays for bin view: numCharsX=%d numCharsY=%d\n", iContainer->numCharsX, iContainer->numCharsY);
	// binary
	// prepare the char arrays knowing the screen and font size
	// filePosArray not needed: filePos of the line = (global filePos) * numCharX
	binaryFilePos = filePos;

	iContainer->appUi->fileLoader->Seek(binaryFilePos);

	//LOGF("setuparrays - !charsArray?\n");
	if (!iContainer->charsArray)
	{
		iContainer->charsArray = new char* [iContainer->numCharsY];
		for (y = 0; y < iContainer->numCharsY; y++)
		{
			iContainer->charsArray[y] = NULL;
		}
	}
	
	for (y = 0; y < iContainer->numCharsY; y++)
	{
		buf = new char[iContainer->numCharsX+1];		//DEBUG!!!
		buf[iContainer->numCharsX-1] = 0x00;

		iContainer->appUi->fileLoader->Read(buf, iContainer->numCharsX);
		
		if (iContainer->charsArray[y])
			delete iContainer->charsArray[y];

		iContainer->charsArray[y] = buf;
	}
}

void CViewBinary::DrawWholeBackBuffer()
{
	int xNumbers, i, j, filePos, maxY;
	
	// line is darker
	iContainer->backBufferGc->SetPenStyle(CGraphicsContext::EDottedPen);
	iContainer->backBufferGc->SetPenSize(TSize(1,1));
	iContainer->backBufferGc->SetPenColor(TRgb(LINE_COLORR, LINE_COLORG, LINE_COLORB));

	filePos = binaryFilePos;

	maxY = 0;
	// draw ascii 
	for (i = 0; i < iContainer->numCharsY; i++)
	{
		for (j = 0; j < iContainer->numCharsX; j++)
		{
			if (filePos < iContainer->appUi->fileLoader->fileSize)
			{
				iContainer->backBufferGc->BitBlt(
					TPoint(j * HVFONT_WIDTH + binaryAsciiStartX, i*HVFONT_HEIGHT), 
					iContainer->fontBitmap, 
					iContainer->GetFontRectByChar((unsigned int)iContainer->charsArray[i][j]));

				maxY = i;
			}
			filePos++;
			
		}
	}
	maxY++;

	filePos = binaryFilePos;
	
	// draw hex
	for (i = 0; i < iContainer->numCharsY; i++)
	{
		xNumbers = 0;
		for (j = 0; j < iContainer->numCharsX; j++)
		{
			if (filePos < iContainer->appUi->fileLoader->fileSize)
			{
				unsigned char c1;
				unsigned char c2;
				unsigned char c=(unsigned char)iContainer->charsArray[i][j];

				c1 = (unsigned char)(c & 0xF0);
				c1 = (unsigned char)(c >> 4);

				c2 = (unsigned char)(c & 0x0F);

				c1 = (unsigned char)hexTable[c1];
				c2 = (unsigned char)hexTable[c2];

				iContainer->backBufferGc->BitBlt(
					TPoint(xNumbers, i * HVFONT_HEIGHT), 
					iContainer->fontBitmap, 
					iContainer->GetFontRectByChar(c1));
				xNumbers += HVFONT_WIDTH;
				iContainer->backBufferGc->BitBlt(
					TPoint(xNumbers, i * HVFONT_HEIGHT), 
					iContainer->fontBitmap, 
					iContainer->GetFontRectByChar((unsigned int)c2));
				
				xNumbers += (int)(HVFONT_WIDTH + HVFONT_BINSPACE_WIDTH);
				filePos++;
			}

		}
	}
	//draw grid
	for (j = 0; j < iContainer->numCharsX; j++)
	{
		iContainer->backBufferGc->DrawLine(
			TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
					0), 
			TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
					(maxY)*HVFONT_HEIGHT));
	}
	

}

void CViewBinary::ScrollRight()
{
	if (binaryFilePos < (iContainer->appUi->fileLoader->fileSize-1))
	{
		SetupArrays(binaryFilePos+1);
		iContainer->DrawWholeBackBuffer();
		iContainer->DrawNow();
	}	
}

void CViewBinary::ScrollLeft()
{
	if (binaryFilePos > 0)
	{
		SetupArrays(binaryFilePos-1);
		iContainer->DrawWholeBackBuffer();
		iContainer->DrawNow();
	}
}

void CViewBinary::ScrollPageDown()
{
	for (int i = 0; i < iContainer->numCharsY; i++)
	{
		ScrollDown(false);
	}
	iContainer->DrawWholeBackBuffer();
	iContainer->DrawNow();
}

void CViewBinary::ScrollPageUp()
{
	for (int i = 0; i < iContainer->numCharsY; i++)
	{
		ScrollUp(false);
	}
	iContainer->DrawWholeBackBuffer();
	iContainer->DrawNow();
}

void CViewBinary::ScrollDown(bool draw)
{
	int y;

	// binary
	// already at end of file?
	
	int nextLineFilePos = binaryFilePos+iContainer->numCharsY*iContainer->numCharsX;
	int numCharsToRead;

	if (nextLineFilePos >= iContainer->appUi->fileLoader->fileSize)
	{
		return;
	}

	delete [] iContainer->charsArray[0];

	// scroll arrays
	for (y = 1; y < iContainer->numCharsY; y++)
	{
		iContainer->charsArray[y-1] = iContainer->charsArray[y];
	}

	iContainer->charsArray[iContainer->numCharsY-1] = new char[iContainer->numCharsX+1];		//DEBUG!!!!!!
	iContainer->charsArray[iContainer->numCharsY-1][iContainer->numCharsX-1] = 0x00;

	iContainer->appUi->fileLoader->Seek(nextLineFilePos);

	// check end of file
	if (nextLineFilePos + iContainer->numCharsX > iContainer->appUi->fileLoader->fileSize)
	{
		numCharsToRead = iContainer->appUi->fileLoader->fileSize - nextLineFilePos;
	}
	else
	{
		numCharsToRead = iContainer->numCharsX;
	}
	iContainer->appUi->fileLoader->Read(iContainer->charsArray[iContainer->numCharsY-1], numCharsToRead);
	//LOGF("line readed: '%s' pos=%d next=%d\n", charsArray[numCharsY-1], filePosArray[numCharsY-1], afterLastLinePos);

	binaryFilePos += iContainer->numCharsX;

	if (!draw)
		return;

	// move lines up, starting on second line (bitmap copy from backbuffer)
	TRect src(0, HVFONT_HEIGHT, iContainer->screenRect.Width(), iContainer->numCharsY * HVFONT_HEIGHT);
	iContainer->backBufferGc2->BitBlt(TPoint(0, 0), iContainer->backBuffer, src);

	// clear last line
	iContainer->backBufferGc2->SetPenStyle(CGraphicsContext::ENullPen);
	iContainer->backBufferGc2->SetBrushColor(TRgb(149, 149, 239));
	iContainer->backBufferGc2->SetBrushStyle(CGraphicsContext::ESolidBrush);
	iContainer->backBufferGc2->DrawRect(
		TRect(0, 
			(iContainer->numCharsY-1) * HVFONT_HEIGHT, 
			iContainer->screenRect.Width(), 
			iContainer->numCharsY * HVFONT_HEIGHT));

	// draw last line
	int xNumbers, j; 
	
	// line is darker
	iContainer->backBufferGc2->SetPenStyle(CGraphicsContext::EDottedPen);
	iContainer->backBufferGc2->SetPenSize(TSize(1,1));
	iContainer->backBufferGc2->SetPenColor(TRgb(LINE_COLORR, LINE_COLORG, LINE_COLORB));

	// draw ascii 
	for (j = 0; j < numCharsToRead; j++)
	{
		iContainer->backBufferGc2->BitBlt(
			TPoint(j * HVFONT_WIDTH + binaryAsciiStartX, (iContainer->numCharsY-1)*HVFONT_HEIGHT), 
			iContainer->fontBitmap, 
			iContainer->GetFontRectByChar((unsigned int)iContainer->charsArray[iContainer->numCharsY-1][j]));
		
	}
	
	// draw hex
	xNumbers = 0;
	for (j = 0; j < numCharsToRead; j++)
	{
		unsigned char c1;
		unsigned char c2;
		unsigned char c=(unsigned char)iContainer->charsArray[iContainer->numCharsY-1][j];

		c1 = (unsigned char)(c & 0xF0);
		c1 = (unsigned char)(c >> 4);

		c2 = (unsigned char)(c & 0x0F);

		c1 = (unsigned char)hexTable[c1];
		c2 = (unsigned char)hexTable[c2];

		iContainer->backBufferGc2->BitBlt(
			TPoint(xNumbers, (iContainer->numCharsY-1) * HVFONT_HEIGHT), 
			iContainer->fontBitmap, 
			iContainer->GetFontRectByChar(c1));
		xNumbers += HVFONT_WIDTH;
		iContainer->backBufferGc2->BitBlt(
			TPoint(xNumbers, (iContainer->numCharsY-1) * HVFONT_HEIGHT), 
			iContainer->fontBitmap, 
			iContainer->GetFontRectByChar((unsigned int)c2));
		
		xNumbers += (int)(HVFONT_WIDTH + HVFONT_BINSPACE_WIDTH);

	}
	//draw grid
	for (j = 0; j < numCharsToRead; j++)
	{
		iContainer->backBufferGc2->DrawLine(
			TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
					(iContainer->numCharsY-1)*HVFONT_HEIGHT), 
			TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
					(iContainer->numCharsY)*HVFONT_HEIGHT));
	}
	

	iContainer->backBufferGc->BitBlt(TPoint(0, 0), iContainer->backBuffer2);
	
	iContainer->DrawNow();
}

void CViewBinary::ScrollUp(bool draw)
{
	// binary
	int y, x;

	if (binaryFilePos == 0)
	{
		LOGF("scrollup: already at beginning of file\n");
		return;
	}
	LOGF("bin scrollup: pos %d -> %d\n", binaryFilePos, binaryFilePos-iContainer->numCharsX);
	binaryFilePos -= iContainer->numCharsX;

	if (binaryFilePos < 0)
	{
		binaryFilePos = 0;
		LOGF("setup arrays\n");
		SetupArrays(0);
		DrawWholeBackBuffer();
		iContainer->DrawNow();
		return;
	}

	delete [] iContainer->charsArray[iContainer->numCharsY-1];

	for (y = (iContainer->numCharsY-2); y > -1; y--)
	{
		iContainer->charsArray[y+1] = iContainer->charsArray[y];
	}

	iContainer->charsArray[0] = new char[iContainer->numCharsX+1];		//DEBUG!!!!!!
	iContainer->charsArray[0][iContainer->numCharsX-1] = 0x00;
	iContainer->appUi->fileLoader->Seek(binaryFilePos);
	iContainer->appUi->fileLoader->Read(iContainer->charsArray[0], iContainer->numCharsX);
	//LOGF("line readed: '%s' pos=%d next=%d\n", charsArray[numCharsY-1], filePosArray[numCharsY-1], afterLastLinePos);


	if (!draw)
		return;

	// move lines down, starting on previous before last line (bitmap copy from backbuffer)
	TRect src(0, 0, iContainer->screenRect.Width(), (iContainer->numCharsY-1) * HVFONT_HEIGHT);
	iContainer->backBufferGc2->BitBlt(TPoint(0, HVFONT_HEIGHT), iContainer->backBuffer, src);

	// clear first line
	iContainer->backBufferGc2->SetPenStyle(CGraphicsContext::ENullPen);
	iContainer->backBufferGc2->SetBrushColor(TRgb(149, 149, 239));
	iContainer->backBufferGc2->SetBrushStyle(CGraphicsContext::ESolidBrush);
	iContainer->backBufferGc2->DrawRect(TRect(0, 0, iContainer->numCharsX * HVFONT_WIDTH, HVFONT_HEIGHT));

	// draw first line
	for (x = 0; x < iContainer->numCharsX; x++)
	{
		// draw first line
		int xNumbers, j; 
		
		// line is darker
		iContainer->backBufferGc2->SetPenStyle(CGraphicsContext::EDottedPen);
		iContainer->backBufferGc2->SetPenSize(TSize(1,1));
		iContainer->backBufferGc2->SetPenColor(TRgb(LINE_COLORR, LINE_COLORG, LINE_COLORB));

		//draw grid
		for (j = 0; j < iContainer->numCharsX; j++)
		{
			iContainer->backBufferGc2->DrawLine(
				TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
						0), 
				TPoint((j * ((HVFONT_WIDTH*2+HVFONT_BINSPACE_WIDTH)) - HVFONT_BINSPACE_WIDTH/2-1), 
						HVFONT_HEIGHT));
		}
		
		// draw ascii 
		for (j = 0; j < iContainer->numCharsX; j++)
		{
			iContainer->backBufferGc2->BitBlt(
				TPoint(j * HVFONT_WIDTH + binaryAsciiStartX, 0), 
				iContainer->fontBitmap, 
				iContainer->GetFontRectByChar((unsigned int)iContainer->charsArray[0][j]));
			
		}
		
		// draw hex
		xNumbers = 0;
		for (j = 0; j < iContainer->numCharsX; j++)
		{
			unsigned char c1;
			unsigned char c2;
			unsigned char c=(unsigned char)iContainer->charsArray[0][j];

			c1 = (unsigned char)(c & 0xF0);
			c1 = (unsigned char)(c >> 4);

			c2 = (unsigned char)(c & 0x0F);

			c1 = (unsigned char)hexTable[c1];
			c2 = (unsigned char)hexTable[c2];

			iContainer->backBufferGc2->BitBlt(
				TPoint(xNumbers, 0), 
				iContainer->fontBitmap, 
				iContainer->GetFontRectByChar(c1));
			xNumbers += HVFONT_WIDTH;
			iContainer->backBufferGc2->BitBlt(
				TPoint(xNumbers, 0), 
				iContainer->fontBitmap, 
				iContainer->GetFontRectByChar((unsigned int)c2));
			
			xNumbers += (int)(HVFONT_WIDTH + HVFONT_BINSPACE_WIDTH);

		}

	}
		
	iContainer->backBufferGc->BitBlt(TPoint(0, 0), iContainer->backBuffer2);
	
	iContainer->DrawNow();
	return;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产成人在线91| 日韩精品欧美精品| 精品免费国产一区二区三区四区| 不卡一区二区中文字幕| 国产91露脸合集magnet| 国产精品456露脸| 成人一级片网址| www.综合网.com| 91同城在线观看| 色综合网站在线| 日本乱码高清不卡字幕| 日本大香伊一区二区三区| 欧美在线播放高清精品| 精品污污网站免费看| 91精品国产综合久久小美女| 欧美视频一区在线观看| 欧美一区2区视频在线观看| 91精品免费在线观看| 精品国产伦理网| 国产日韩欧美麻豆| 亚洲精品水蜜桃| 日韩国产欧美在线视频| 久久av资源站| 不卡影院免费观看| 欧美日韩大陆在线| 2023国产一二三区日本精品2022| 国产精品污网站| 亚洲国产va精品久久久不卡综合 | 日韩av电影免费观看高清完整版在线观看| 一个色在线综合| 另类的小说在线视频另类成人小视频在线 | 91.xcao| 久久理论电影网| 亚洲精品日产精品乱码不卡| 日韩精品乱码av一区二区| 国产精品综合二区| 日本韩国一区二区三区视频| 欧美一区在线视频| 中文字幕一区二区三区四区不卡 | 久久这里只有精品首页| 有码一区二区三区| 国产一区二区视频在线| 欧美亚洲日本一区| 中文字幕 久热精品 视频在线| 午夜精品久久久久久久99水蜜桃| 国产成a人无v码亚洲福利| 欧美日本在线播放| 亚洲欧美日韩一区二区| 琪琪久久久久日韩精品| 色吊一区二区三区| 欧美激情一区二区三区不卡| 欧美a级理论片| 91官网在线免费观看| 国产精品网站在线观看| 精品亚洲成a人| 正在播放亚洲一区| 亚洲综合一区在线| 99久久免费国产| 久久影院视频免费| 久久国产欧美日韩精品| 777奇米四色成人影色区| 亚洲免费观看高清完整版在线观看 | 一区二区三区免费看视频| 成人性色生活片| 久久久久久久久99精品| 国产综合色精品一区二区三区| 91.麻豆视频| 午夜av电影一区| 欧美日韩精品一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 国产成人丝袜美腿| 久久精品亚洲精品国产欧美kt∨ | 成人国产亚洲欧美成人综合网 | 午夜视频一区二区| 欧美在线小视频| 亚洲午夜久久久久久久久电影院| av网站一区二区三区| 国产精品成人在线观看| av不卡免费电影| 一区视频在线播放| 色婷婷久久久综合中文字幕 | 51精品视频一区二区三区| 亚洲国产欧美在线人成| 欧美日韩mp4| 另类调教123区| 国产日韩av一区| 99国内精品久久| 亚洲最快最全在线视频| 制服.丝袜.亚洲.另类.中文| 免费观看91视频大全| 久久久久久久久99精品| 播五月开心婷婷综合| 亚洲视频资源在线| 欧美日韩国产首页| 久久99久久99小草精品免视看| 久久久久久久久久久99999| 成人美女视频在线观看18| 亚洲精品伦理在线| 日韩欧美三级在线| 丰满白嫩尤物一区二区| 亚洲综合另类小说| 精品国产一区二区三区四区四 | 亚洲免费观看高清完整版在线观看| 日本韩国欧美在线| 麻豆精品久久久| 1区2区3区国产精品| 欧美精品丝袜中出| 国产精品99久久久久久久女警| 亚洲欧洲成人精品av97| 3d动漫精品啪啪| 成人免费视频app| 日韩黄色免费电影| 国产精品乱码一区二三区小蝌蚪| 色88888久久久久久影院野外| 看电影不卡的网站| 亚洲色图欧美激情| 精品久久久久久久久久久久久久久 | 欧美变态凌虐bdsm| 一本色道久久综合狠狠躁的推荐| 日韩国产欧美在线观看| 成人欧美一区二区三区小说| 欧美一级黄色录像| 欧洲一区在线观看| 成人黄色av电影| 久色婷婷小香蕉久久| 亚洲中国最大av网站| 国产日韩高清在线| 欧美一区二区视频免费观看| 91麻豆免费看片| 国产成人亚洲精品狼色在线| 蜜臀av国产精品久久久久| 一区二区三区精密机械公司| 久久久不卡影院| 欧美一二三区在线| 欧美偷拍一区二区| 91捆绑美女网站| 成人aaaa免费全部观看| 一区av在线播放| 欧美tk—视频vk| 在线播放亚洲一区| 91老司机福利 在线| 国产激情一区二区三区桃花岛亚洲| 亚洲精品中文字幕乱码三区| 久久久久久久综合狠狠综合| 欧美日韩久久一区| 精品视频一区 二区 三区| 91麻豆国产自产在线观看| 国产盗摄精品一区二区三区在线 | 欧美在线观看你懂的| 91蜜桃视频在线| 色婷婷久久久久swag精品 | 六月婷婷色综合| 日韩精品高清不卡| 青青草原综合久久大伊人精品优势| 亚洲高清不卡在线| 亚洲午夜久久久久中文字幕久| 亚洲一区二区中文在线| 亚洲高清免费观看高清完整版在线观看 | 韩国三级在线一区| 国产一区视频网站| 国产福利精品一区| caoporn国产精品| 色噜噜狠狠一区二区三区果冻| 一本到一区二区三区| 欧日韩精品视频| 在线不卡中文字幕播放| 欧美一区二区视频网站| 久久伊99综合婷婷久久伊| 久久午夜色播影院免费高清| 国产午夜精品在线观看| 最新高清无码专区| 亚洲国产sm捆绑调教视频 | 亚洲综合小说图片| 午夜欧美大尺度福利影院在线看| 奇米一区二区三区| 国产v日产∨综合v精品视频| 99在线热播精品免费| 欧美另类z0zxhd电影| 欧美一区二区在线不卡| 国产丝袜在线精品| 亚洲综合在线观看视频| 日韩成人午夜电影| 成人一二三区视频| 911精品国产一区二区在线| 国产香蕉久久精品综合网| 亚洲精品高清在线| 激情小说亚洲一区| 欧美在线播放高清精品| 2020国产精品自拍| 亚洲一区二区在线播放相泽| 免费在线成人网| 色欧美片视频在线观看| 日韩欧美国产高清| 亚洲麻豆国产自偷在线| 国产在线精品视频| 欧美日韩在线精品一区二区三区激情 | 国产精品色哟哟| 日本vs亚洲vs韩国一区三区二区 | 国产欧美日韩另类一区| 午夜精品久久久|