#include "ctlspriv.h" #include "unixstuff.h" EXTERN_C void UnixPaintArrow(HDC hDC, BOOL bHoriz, BOOL bDown, int nXCenter, int nYCenter, int nWidth, int nHeight) { HPEN hOldPen; HBRUSH hOldBrush; POINT pFigure[4]; LOGBRUSH hBrLog = { BS_SOLID, GetSysColor( COLOR_BTNTEXT ), 0 }; HBRUSH hBrush = CreateBrushIndirect( &hBrLog ); HPEN hPen = CreatePen( PS_SOLID, 1, GetSysColor( COLOR_BTNTEXT ) ); if( hPen && hBrush ) { hOldPen = (HPEN) SelectObject(hDC, hPen); hOldBrush = (HBRUSH) SelectObject(hDC, hBrush); } else { hOldPen = (HPEN) SelectObject(hDC, GetStockObject( BLACK_PEN ) ); hOldBrush = (HBRUSH) SelectObject(hDC, GetStockObject( BLACK_BRUSH ) ); } if(bHoriz) { if (bDown) { pFigure[0].x = nXCenter - nWidth /2; pFigure[0].y = nYCenter - nHeight/2; pFigure[1].x = nXCenter - nWidth /2; pFigure[1].y = nYCenter + nHeight/2; pFigure[2].x = nXCenter + nWidth /2; pFigure[2].y = nYCenter; } else { pFigure[0].x = nXCenter - nWidth /2; pFigure[0].y = nYCenter; pFigure[1].x = nXCenter + nWidth /2; pFigure[1].y = nYCenter + nHeight/2; pFigure[2].x = nXCenter + nWidth /2; pFigure[2].y = nYCenter - nHeight/2; } } else { if (bDown) { pFigure[0].x = nXCenter - nWidth /2; pFigure[0].y = nYCenter - nHeight/2; pFigure[1].x = nXCenter + nWidth /2; pFigure[1].y = nYCenter - nHeight/2; pFigure[2].x = nXCenter; pFigure[2].y = nYCenter + nHeight/2; } else { pFigure[0].x = nXCenter; pFigure[0].y = nYCenter - nHeight/2; pFigure[1].x = nXCenter - nWidth /2; pFigure[1].y = nYCenter + nHeight/2; pFigure[2].x = nXCenter + nWidth /2; pFigure[2].y = nYCenter + nHeight/2; } } Polygon(hDC, pFigure, 3); SelectObject(hDC, hOldPen); SelectObject(hDC, hOldBrush); if( hPen ) DeleteObject(hPen ); if( hBrush ) DeleteObject(hBrush); }