X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debe6624c1e9d4bf3243381153d1e173c849bcd8..7631a29204a5a6a14c3ab6697455c48928ba6600:/src/msw/gaugemsw.cpp diff --git a/src/msw/gaugemsw.cpp b/src/msw/gaugemsw.cpp index be590a4556..97fc9b7cfb 100644 --- a/src/msw/gaugemsw.cpp +++ b/src/msw/gaugemsw.cpp @@ -6,7 +6,7 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -22,9 +22,10 @@ #ifndef WX_PRECOMP #include "wx/defs.h" +#include "wx/utils.h" #endif -#if USE_GAUGE +#if wxUSE_GAUGE #include "wx/msw/gaugemsw.h" #include "wx/msw/private.h" @@ -75,9 +76,9 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, if ( !wxGaugeMSWInitialised ) { - if (!gaugeInit((HWND) wxGetInstance())) - wxFatalError("Cannot initalize Gauge library"); - wxGaugeMSWInitialised = TRUE; + if (!gaugeInit((HINSTANCE) wxGetInstance())) + wxFatalError("Cannot initalize Gauge library"); + wxGaugeMSWInitialised = TRUE; } SetName(name); @@ -85,16 +86,17 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, if (parent) parent->AddChild(this); m_rangeMax = range; + m_gaugePos = 0; - SetBackgroundColour(parent->GetDefaultBackgroundColour()) ; - SetForegroundColour(parent->GetDefaultForegroundColour()) ; + SetBackgroundColour(parent->GetBackgroundColour()) ; + SetForegroundColour(parent->GetForegroundColour()) ; m_windowStyle = style; if ( id == -1 ) - m_windowId = (int)NewControlId(); + m_windowId = (int)NewControlId(); else - m_windowId = id; + m_windowId = id; int x = pos.x; int y = pos.y; @@ -127,7 +129,7 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - SetFont(* parent->GetFont()); + SetFont(parent->GetFont()); if (width == -1) width = 50; @@ -140,7 +142,7 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, return TRUE; } -void wxGaugeMSW::SetSize(int x, int y, int width, int height, int sizeFlags) +void wxGaugeMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) { int currentX, currentY; GetPosition(¤tX, ¤tY); @@ -154,6 +156,8 @@ void wxGaugeMSW::SetSize(int x, int y, int width, int height, int sizeFlags) if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) y1 = currentY; + AdjustForParentClientOrigin(x1, y1, sizeFlags); + // If we're prepared to use the existing size, then... if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) { @@ -214,16 +218,24 @@ int wxGaugeMSW::GetValue(void) const return (int) SendMessage((HWND) GetHWND(), ZYZG_GETPOSITION, 0, 0); } -void wxGaugeMSW::SetForegroundColour(const wxColour& col) +bool wxGaugeMSW::SetForegroundColour(const wxColour& col) { - m_foregroundColour = col ; - SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + if ( !wxControl::SetForegroundColour(col) ) + return FALSE; + + SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + + return TRUE; } -void wxGaugeMSW::SetBackgroundColour(const wxColour& col) +bool wxGaugeMSW::SetBackgroundColour(const wxColour& col) { - m_backgroundColour = col ; - SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + if ( !wxControl::SetBackgroundColour(col) ) + return FALSE; + + SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + + return TRUE; } @@ -540,13 +552,13 @@ void FAR PASCAL Draw3DLine(HDC hdc, WORD x, WORD y, WORD nLen, else return; /* select NULL_PEN for no borders */ - hOldPen = SelectObject(hdc, GetStockObject(NULL_PEN)); + hOldPen = (HPEN) SelectObject(hdc, GetStockObject(NULL_PEN)); /* select the appropriate color for the fill */ if (fDark) - hOldBrush = SelectObject(hdc, GetStockObject(GRAY_BRUSH)); + hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(GRAY_BRUSH)); else - hOldBrush = SelectObject(hdc, GetStockObject(WHITE_BRUSH)); + hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(WHITE_BRUSH)); /* finally, draw the dern thing */ Polygon(hdc, (LPPOINT)&Point, 4); @@ -651,7 +663,7 @@ void FAR PASCAL Draw3DLine(HDC hdc, WORD x, WORD y, WORD nLen, /* get the includes we need */ -#ifndef __GNUWIN32__ +#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) #include #endif #include @@ -700,7 +712,7 @@ static DWORD rgbDefTextColor; static DWORD rgbDefBkColor; static BOOL fSupport3D; -#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not +#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not #define APIENTRY FAR PASCAL #endif @@ -857,7 +869,7 @@ static void PASCAL gaugePaint(HWND hwnd, HDC hdc) GetClientRect(hwnd, &rc1); /* draw a black border on the _outside_ */ - FrameRect(hdc, &rc1, GetStockObject(BLACK_BRUSH)); + FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH)); /* we want to draw _just inside_ the black border */ InflateRect(&rc1, -1, -1); @@ -869,16 +881,16 @@ static void PASCAL gaugePaint(HWND hwnd, HDC hdc) if ((GetWindowLong(hwnd, GWL_STYLE) & ZYZGS_3D) && fSupport3D) { Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_OUT); - InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); + InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); Draw3DFaceFrame(hdc, &rc1, pgauge->wWidthBezelFace); - InflateRect(&rc1, ~(pgauge->wWidthBezelFace), ~(pgauge->wWidthBezelFace)); + InflateRect(&rc1, ~(pgauge->wWidthBezelFace), ~(pgauge->wWidthBezelFace)); Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_IN); - InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); + InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); /* draw a black border on the _inside_ */ - FrameRect(hdc, &rc1, GetStockObject(BLACK_BRUSH)); + FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH)); /* we want to draw _just inside_ the black border */ InflateRect(&rc1, -1, -1); @@ -925,7 +937,7 @@ static void PASCAL gaugePaint(HWND hwnd, HDC hdc) } /* switch () */ /* select the correct font */ - hFont = SelectObject(hdc, pgauge->hFont); + hFont = (HFONT) SelectObject(hdc, pgauge->hFont); /* build up a string to blit out--ie the meaning of life: "42%" */ wsprintf(ach, "%3d%%", (WORD)((DWORD)iPos * 100 / iRange)); @@ -1102,7 +1114,7 @@ zyzgForceRepaint: else wParam = 1; - InflateRect(&rc, ~(wParam), ~(wParam)); + InflateRect(&rc, ~(wParam), ~(wParam)); InvalidateRect(hwnd, &rc, FALSE); UpdateWindow(hwnd); return (0L); @@ -1148,7 +1160,7 @@ zyzgForceRepaint3D: case WM_SETFONT: /* if NULL hFont, use system font */ if (!(hFont = (HFONT)wParam)) - hFont = GetStockObject(SYSTEM_FONT); + hFont = (HFONT) GetStockObject(SYSTEM_FONT); pgauge->hFont = hFont; @@ -1168,4 +1180,4 @@ zyzgForceRepaint3D: /** EOF: zyzgauge.c **/ -#endif // USE_GAUGE +#endif // wxUSE_GAUGE