void AlliesWhiteboard::DrawTextInput(LPDIRECTDRAWSURFACE DestSurf) { Dialog *DialogPTR = (Dialog*)LocalShare->Dialog; int BFHalfX = (LocalShare->ScreenWidth-128)/2 + 128; int BFHalfY = (LocalShare->ScreenHeight-64)/2 + 32; if(CurrentElement) DialogPTR->DrawText(DestSurf, BFHalfX-InputBoxWidth/2+5, BFHalfY-InputBoxHeight/2-13, "Edit Textmarker"); else DialogPTR->DrawText(DestSurf, BFHalfX-InputBoxWidth/2+5, BFHalfY-InputBoxHeight/2-13, "Add Textmarker"); DDBLTFX ddbltfx; DDRAW_INIT_STRUCT(ddbltfx); ddbltfx.ddckSrcColorkey.dwColorSpaceLowValue = 102; ddbltfx.ddckSrcColorkey.dwColorSpaceHighValue = 102; RECT Dest; Dest.left = BFHalfX-InputBoxWidth/2; Dest.top = BFHalfY-InputBoxHeight/2; Dest.right = Dest.left+InputBoxWidth; Dest.bottom = Dest.top+InputBoxHeight; if(DestSurf->Blt(&Dest, lpInputBox, NULL, DDBLT_ASYNC | DDBLT_KEYSRCOVERRIDE, &ddbltfx)!=DD_OK) { DestSurf->Blt(&Dest, lpInputBox, NULL, DDBLT_WAIT | DDBLT_KEYSRCOVERRIDE, &ddbltfx); } DialogPTR->DrawSmallText(DestSurf, BFHalfX-(InputBoxWidth/2)+14, BFHalfY-5, Text); //draw cursor if textbox overlap if((MouseX-128)>Dest.left-10 && (MouseX-128)<Dest.right && (MouseY-32)>Dest.top-34 && (MouseY-32)<Dest.bottom) DialogPTR->BlitCursor(DestSurf, MouseX-128, MouseY-32); }
void AlliesWhiteboard::DrawTextMarker(LPDIRECTDRAWSURFACE DestSurf, int X, int Y, char *cText, char C) { int x = X - *MapX + 128; int y = Y - *MapY + 32; DDBLTFX ddbltfx; DDRAW_INIT_STRUCT(ddbltfx); ddbltfx.ddckSrcColorkey.dwColorSpaceLowValue = 102; ddbltfx.ddckSrcColorkey.dwColorSpaceHighValue = 102; RECT Dest; Dest.left = x-TextMarkerWidth/2; Dest.top = y-TextMarkerHeight/2; Dest.right = Dest.left+TextMarkerWidth; Dest.bottom = Dest.top+TextMarkerHeight; RECT Source; Source.left = C*TextMarkerWidth; Source.top = 0; Source.right = Source.left+TextMarkerWidth; Source.bottom = TextMarkerHeight; if(DestSurf->Blt(&Dest, lpSmallCircle, &Source, DDBLT_ASYNC | DDBLT_KEYSRCOVERRIDE, &ddbltfx)!=DD_OK) { DestSurf->Blt(&Dest, lpSmallCircle, &Source, DDBLT_WAIT | DDBLT_KEYSRCOVERRIDE, &ddbltfx); } Dialog *pDialog = (Dialog*)LocalShare->Dialog; pDialog->DrawText(DestSurf, x+TextMarkerWidth , y-5, cText); }