Exemplo n.º 1
0
void
ScopeView::NewData(int16* data, bool non_null_frame)
{
	// Ceci ralentit l'execution, alors ne l'utilisez que si vous faites du
	// resize dynamique de la vue de l'oscilloscope.
	//delete m_bitmap;
	//m_bitmap = new BBitmap(BRect(0, 0, m_w, m_h), B_COLOR_8_BIT);

	// Draw dark black backgroundB_TRANSPARENT_8_BIT
	memset((uint8 *)m_bitmap->Bits(), m_back_color, m_bitmap->BytesPerRow() * (size_t)m_h);  //OliverESP transparent?
// 	memset((uint8 *)m_bitmap->Bits(), B_TRANSPARENT_8_BIT, m_bitmap->BytesPerRow() * (size_t)m_h);  //OliverESP transparent?

	//OliverESP: Null scope
	if (non_null_frame)
		// Remplir le bitmap des points correspondant au wave.
		FillBitmap((int16*)data,m_beam_color);
	else
		// Remplir le bitmap des points correspondant au wave.
		FillBitmap((int16*)data,m_null_color);	
	
	// On affiche le bitmap a l'ecran.
	if( Window()->LockWithTimeout(100000) == B_OK )
	{
		DrawBitmap(m_bitmap, Bounds(), BRect(0, 20, m_w, m_h));
		Window()->Unlock();
	}
}
Exemplo n.º 2
0
//---------------------------------------------------------------------------
void __fastcall TFileViewDlg::LoadCurrentBitmap(Graphics::TBitmap *pBitmap)
{
	if( (m_CurFile < pCurPage->pList->Count) && (pCurPage->pList != NULL) ){
		MultProc();
		SetCurrentDirectory(pCurPage->m_Folder.c_str());
		MultProc();
		if( ::LoadImage(pBitmap, pCurPage->pList->Get(m_CurFile)) == FALSE ){
			FillBitmap(pBitmap, clWhite);
		}
	}
	else {
		FillBitmap(pBitmap, clWhite);
	}
}
Exemplo n.º 3
0
//---------------------------------------------------------------------------
void __fastcall TFileViewDlg::LoadFile(Graphics::TBitmap *pBitmap, LPCSTR pName)
{
	if( pCurPage->m_Type >= 3 ){
		int xw = m_RectS.Right;
		int yw = m_RectS.Bottom;
		pBitmap->Width = xw;
		pBitmap->Height = yw;
		FillBitmap(pBitmap, clBtnFace);
		WORD Icon = 0;
		HICON hIcon = ::ExtractAssociatedIcon(HInstance, (LPSTR)pName, &Icon);
		if( hIcon != NULL ){
			TIcon *pIcon = new TIcon;
			pIcon->Handle = hIcon;
			pBitmap->Canvas->Draw((xw - pIcon->Width)/2, (yw >= 64) ? (yw - pIcon->Height)/2 : 0, pIcon);
			delete pIcon;
		}
		pBitmap->Canvas->Font->Height = -12;
		int fw = pBitmap->Canvas->TextWidth(pName);
		int fh = pBitmap->Canvas->TextHeight(pName);
		int tm = ::SetBkMode(pBitmap->Canvas->Handle, TRANSPARENT);
		int x = (xw - fw) / 2;
		if( x < 0 ) x = 0;
		pBitmap->Canvas->TextOut(x, hIcon != NULL ? yw - fh : (yw - fh)/2, pName);
		::SetBkMode(pBitmap->Canvas->Handle, tm);
	}
	else if( pCurPage->m_Type ){
		CDrawGroup *pGroup = new CDrawGroup;
		if( LoadTemplate(pGroup, pName, pBitmap->Canvas) == TRUE ){
			pBitmap->Width = pGroup->m_SX;
			pBitmap->Height = pGroup->m_SY;
			FillBitmap(pBitmap, pGroup->m_TransCol);
			MultProc();
			pGroup->Draw(pBitmap->Canvas);
		}
		pGroup->FreeItem();
		delete pGroup;
	}
	else {
		::LoadImage(pBitmap, pName);
	}
}
Exemplo n.º 4
0
//---------------------------------------------------------------------------
void __fastcall TFileViewDlg::MakeThImage(int mm)
{
	int mc = mm*mm;
	if( (m_CurFile < 0) || (pCurPage->pList == NULL) ) return;

	Mmsstv->pBitmapTXM = RemakeBitmap(Mmsstv->pBitmapTXM, -1);
	FillBitmap(Mmsstv->pBitmapTXM, sys.m_PicClipColor);
	Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
	Graphics::TBitmap *pBitmapQ = new Graphics::TBitmap();

	MultProc();
	SetCurrentDirectory(pCurPage->m_Folder.c_str());
	MultProc();
	int Y1 = 0;
//    int Y2 = Mmsstv->pBitmapTXM->Height;
	int Y2 = Mmsstv->m_TXPH;
	int X2 = Mmsstv->pBitmapTXM->Width;
	if( Mmsstv->SBUseTemp->Down && Mmsstv->DrawMain.m_Cnt ){
		Mmsstv->DrawMain.GetColorBarPos(Y1, Y2);
	}
	int XW = X2 / mm;
	int YW = (Y2-Y1) / mm;
	int x, y, i;
	int n = m_CurFile;
	for( i = 0; i < mc; i++, n++ ){
		MultProc();
		if( n >= pCurPage->pList->Count ) n = 0;
		::LoadImage(pBitmap, pCurPage->pList->Get(n));
		x = (i % mm) * XW;
		y = Y1 + ((i / mm) * YW);
		if( ((i % mm) == (mm - 1)) && (x + XW) != X2 ){
			pBitmapQ->Width = X2 - x;
		}
		else {
			pBitmapQ->Width = XW;
		}
		if( ((i / mm) == (mm - 1)) && (y + YW) != Y2 ){
			pBitmapQ->Height = Y2 - y;
		}
		else {
			pBitmapQ->Height = YW;
		}
		MultProc();
		StretchCopyBitmapHW(pBitmapQ, pBitmap);
		Mmsstv->pBitmapTXM->Canvas->Draw(x, y, pBitmapQ);
		MultProc();
	}
	delete pBitmapQ;
	delete pBitmap;
	Mmsstv->UpdatePic();
}
Exemplo n.º 5
0
//---------------------------------------------------------------------
void __fastcall TLogPicDlg::LoadPic(void)
{
	m_Cur = 0;
	int i;
	for( i = 0; i < m_Cnt; i++ ){
		char fname[256];
		char abf[2];
		abf[0] = abf[1] = 0;
		if( LastC(sys.m_AutoSaveDir.c_str()) != '\\' ) abf[0] = '\\';
		sprintf(fname, "%s%s20%s.jpg", sys.m_AutoSaveDir.c_str(), abf, m_List[i].c_str());
		if( LoadJPEG(pBitmapS[i], fname) != TRUE ){
			sprintf(fname, "%s%s20%s.bmp", sys.m_AutoSaveDir.c_str(), abf, m_List[i].c_str());
			if( LoadBitmap(pBitmapS[i], fname) != TRUE ){
				FillBitmap(pBitmapS[i], clWhite);
			}
		}
	}
	pBitmap->Assign(pBitmapS[0]);
}
Exemplo n.º 6
0
//---------------------------------------------------------------------------
void __fastcall TFileViewDlg::LoadImage(void)
{
	if( !m_Max ) return;
	if( pCurPage->pList == NULL ) LoadFileList();
	m_CurFile = -1;
	UpdateStat();

	CWaitCursor wait;
	MultProc();
	SetCurrentDirectory(pCurPage->m_Folder.c_str());
	Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
	pBitmap->PixelFormat = pf24bit;
	pBitmap->Width = 16;
	pBitmap->Height = 16;

	MultProc();
	int i;
	int n = pCurPage->m_CurPage * m_Max;
	SetBitmapSize();
	for( i = 0; i < m_Max; i++, n++ ){
		TRect rc;
		GetRect(rc, i);
		if( n < pCurPage->pList->Count ){
			USHORT crc;
			LPCSTR pn = pCurPage->pList->Get(crc, n);
			if( !pCurPage->m_Thumb.LoadThumb(n, pCurPage->pBitmapS, rc, crc, pCurPage->m_Size[i]) ){
				LoadFile(pBitmap, pn);
				pCurPage->m_Size[i] = (pBitmap->Height << 16) + pBitmap->Width;
				Graphics::TBitmap *pBitmapT = CreateBitmap(m_RectS.Right, m_RectS.Bottom, -1);
				::SetStretchBltMode(pBitmapT->Canvas->Handle, HALFTONE);
				MultProcA();
				if( sys.m_FileViewKeep ){
					FillBitmap(pBitmapT, clGray);
					if( ((pBitmap->Width <= pBitmapT->Width) && (pBitmap->Height <= pBitmapT->Height)) ){
						pBitmapT->Canvas->Draw(0, 0, pBitmap);
					}
					else {
						KeepAspectDraw(pBitmapT->Canvas, pBitmapT->Width, pBitmapT->Height, pBitmap);
					}
				}
				else {
					pBitmapT->Canvas->StretchDraw(m_RectS, pBitmap);
				}
				pCurPage->m_Thumb.SaveThumb(n, pBitmapT, m_RectS, crc, pCurPage->m_Size[i]);
				pCurPage->pBitmapS->Canvas->CopyRect(rc, pBitmapT->Canvas, m_RectS);
				if( pBox[i] != NULL ){
					pBox[i]->Canvas->Draw(0, 0, pBitmapT);
				}
				delete pBitmapT;
			}
		}
		else {
			pCurPage->pBitmapS->Canvas->Brush->Style = bsSolid;
			pCurPage->pBitmapS->Canvas->Brush->Color = clWhite;
			pCurPage->pBitmapS->Canvas->FillRect(rc);
		}
		MultProc();
	}
	delete pBitmap;
	UpdateBitmap();
}