X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3260bce473ab247edd8ca1d3aee4eb648b4b97e..1978421a6d8b81c1f8a961da4b8ddf544fec7b1b:/src/os2/gauge.cpp?ds=sidebyside diff --git a/src/os2/gauge.cpp b/src/os2/gauge.cpp index e12f172304..0cedb8047f 100644 --- a/src/os2/gauge.cpp +++ b/src/os2/gauge.cpp @@ -43,6 +43,7 @@ MRESULT EXPENTRY wxGaugeWndProc( HPS hPS; RECTL vRect; RECTL vRect2; + RECTL vRect3; double dPixelToRange = 0.0; double dRange = 0.0; @@ -70,28 +71,55 @@ MRESULT EXPENTRY wxGaugeWndProc( ,0L ,NULL ); + // + // Draw the guage box + // + LONG lColor = 0x00FFFFFF; // White + POINTL vPoint = {vRect.xLeft + 1, vRect.yBottom + 1}; + + ::GpiSetColor(hPS, lColor); + ::GpiMove(hPS, &vPoint); + vPoint.x = vRect.xRight - 1; + ::GpiLine(hPS, &vPoint); + vPoint.y = vRect.yTop - 1; + ::GpiLine(hPS, &vPoint); + lColor = 0x000C0C0C; // Darkish Grey to give depth feel + ::GpiSetColor(hPS, lColor); + vPoint.x = vRect.xLeft + 1; + ::GpiLine(hPS, &vPoint); + vPoint.y = vRect.yBottom + 1; + ::GpiLine(hPS, &vPoint); + vRect3.xLeft = vRect.xLeft + 2; + vRect3.xRight = vRect.xRight - 2; + vRect3.yTop = vRect.yTop - 2; + vRect3.yBottom = vRect.yBottom + 2; + if (pGauge->GetWindowStyleFlag() & wxGA_VERTICAL) { - dRange = (double)(vRect.yTop - vRect.yBottom); + dRange = (double)(vRect3.yTop - vRect3.yBottom); dPixelToRange = dRange/(double)pGauge->GetRange(); vRect2.yTop = (int)(pGauge->GetValue() * dPixelToRange); - vRect2.yBottom = vRect.yBottom; - vRect2.xLeft = vRect.xLeft; - vRect2.xRight = vRect.xRight; - vRect.yBottom = vRect2.yTop; - ::WinFillRect(hPS, &vRect, pGauge->GetBackgroundColour().GetPixel()); + vRect2.yBottom = vRect3.yBottom; + vRect2.xLeft = vRect3.xLeft; + vRect2.xRight = vRect3.xRight; + vRect3.yBottom = vRect2.yTop; + if (vRect3.yBottom <= 1) + vRect3.yBottom = 2; + ::WinFillRect(hPS, &vRect3, pGauge->GetBackgroundColour().GetPixel()); ::WinFillRect(hPS, &vRect2, pGauge->GetForegroundColour().GetPixel()); } else { - dRange = (double)(vRect.xRight - vRect.xLeft); + dRange = (double)(vRect3.xRight - vRect3.xLeft); dPixelToRange = dRange/(double)pGauge->GetRange(); - vRect2.yTop = vRect.yTop; - vRect2.yBottom = vRect.yBottom; - vRect2.xLeft = vRect.xLeft; + vRect2.yTop = vRect3.yTop; + vRect2.yBottom = vRect3.yBottom; + vRect2.xLeft = vRect3.xLeft; vRect2.xRight = (int)(pGauge->GetValue() * dPixelToRange); - vRect.xLeft = vRect2.xRight; - ::WinFillRect(hPS, &vRect, pGauge->GetBackgroundColour().GetPixel()); + vRect3.xLeft = vRect2.xRight; + if (vRect3.xLeft <= 1) + vRect3.xLeft = 2; + ::WinFillRect(hPS, &vRect3, pGauge->GetBackgroundColour().GetPixel()); ::WinFillRect(hPS, &vRect2, pGauge->GetForegroundColour().GetPixel()); } ::WinEndPaint(hPS); @@ -112,9 +140,7 @@ bool wxGauge::Create( , const wxPoint& rPos , const wxSize& rSize , long lStyle -#if wxUSE_VALIDATORS , const wxValidator& rValidator -#endif , const wxString& rsName ) { @@ -131,8 +157,8 @@ bool wxGauge::Create( #endif if (pParent) pParent->AddChild(this); - SetBackgroundColour(pParent->GetBackgroundColour()) ; - SetForegroundColour(pParent->GetForegroundColour()) ; + m_backgroundColour.Set(wxString("LIGHT GREY")); + m_foregroundColour.Set(wxString("NAVY")); m_nRangeMax = nRange; m_nGaugePos = 0;