X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/93089472db99c3ce001b181f5b00c5a7b1fcf22f..8f974c520a8733158591891458fda10fae4c3950:/src/msw/gaugemsw.cpp diff --git a/src/msw/gaugemsw.cpp b/src/msw/gaugemsw.cpp index 4a82b4f896..ee41a2ac0e 100644 --- a/src/msw/gaugemsw.cpp +++ b/src/msw/gaugemsw.cpp @@ -60,9 +60,7 @@ /* public function prototypes */ BOOL FAR PASCAL gaugeInit(HINSTANCE hInstance); -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxGaugeMSW, wxControl) -#endif bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, int range, @@ -82,7 +80,9 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, } SetName(name); +#if wxUSE_VALIDATORS SetValidator(validator); +#endif // wxUSE_VALIDATORS if (parent) parent->AddChild(this); m_rangeMax = range; @@ -104,10 +104,16 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, int height = size.y; long msFlags = WS_CHILD | WS_VISIBLE | WS_TABSTOP; - msFlags |= ZYZGS_3D; + bool want3D; + WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D); + if (want3D) + msFlags |= ZYZGS_3D; + + if ( m_windowStyle & wxCLIP_SIBLINGS ) + msFlags |= WS_CLIPSIBLINGS; HWND wx_button = - CreateWindowEx(MakeExtendedStyle(m_windowStyle), "zYzGauge", NULL, msFlags, + CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("zYzGauge"), NULL, msFlags, 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL); @@ -126,8 +132,11 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, SendMessage(wx_button, ZYZG_SETORIENTATION, wOrient, 0); SendMessage(wx_button, ZYZG_SETRANGE, range, 0); - 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())); + SendMessage(GetHwnd(), ZYZG_SETFGCOLOR, 0, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); + SendMessage(GetHwnd(), ZYZG_SETBKCOLOR, 0, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); + + //SetBezelFace(1); + //SetShadowWidth(1); SetFont(parent->GetFont()); @@ -137,85 +146,53 @@ bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, height = 50; SetSize(x, y, width, height); - ShowWindow((HWND) GetHWND(), SW_SHOW); + ShowWindow(GetHwnd(), SW_SHOW); return TRUE; } -void wxGaugeMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - 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)) - { - GetSize(&w1, &h1); - } - - // Deal with default size (using -1 values) - if (w1<=0) - w1 = DEFAULT_ITEM_WIDTH; - - if (h1<=0) - h1 = DEFAULT_ITEM_HEIGHT; - - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); -} - void wxGaugeMSW::SetShadowWidth(int w) { - SendMessage((HWND) GetHWND(), ZYZG_SETWIDTH3D, w, 0); + SendMessage(GetHwnd(), ZYZG_SETWIDTH3D, w, 0); } void wxGaugeMSW::SetBezelFace(int w) { - SendMessage((HWND) GetHWND(), ZYZG_SETBEZELFACE, w, 0); + SendMessage(GetHwnd(), ZYZG_SETBEZELFACE, w, 0); } void wxGaugeMSW::SetRange(int r) { m_rangeMax = r; - SendMessage((HWND) GetHWND(), ZYZG_SETRANGE, r, 0); + SendMessage(GetHwnd(), ZYZG_SETRANGE, r, 0); } void wxGaugeMSW::SetValue(int pos) { m_gaugePos = pos; - SendMessage((HWND) GetHWND(), ZYZG_SETPOSITION, pos, 0); + SendMessage(GetHwnd(), ZYZG_SETPOSITION, pos, 0); } int wxGaugeMSW::GetShadowWidth(void) const { - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETWIDTH3D, 0, 0); + return (int) SendMessage(GetHwnd(), ZYZG_GETWIDTH3D, 0, 0); } int wxGaugeMSW::GetBezelFace(void) const { - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETBEZELFACE, 0, 0); + return (int) SendMessage(GetHwnd(), ZYZG_GETBEZELFACE, 0, 0); } int wxGaugeMSW::GetRange(void) const { - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETRANGE, 0, 0); + return (int) SendMessage(GetHwnd(), ZYZG_GETRANGE, 0, 0); } int wxGaugeMSW::GetValue(void) const { - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETPOSITION, 0, 0); + return (int) SendMessage(GetHwnd(), ZYZG_GETPOSITION, 0, 0); } bool wxGaugeMSW::SetForegroundColour(const wxColour& col) @@ -223,17 +200,17 @@ bool wxGaugeMSW::SetForegroundColour(const wxColour& col) if ( !wxControl::SetForegroundColour(col) ) return FALSE; - SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + SendMessage(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) { if ( !wxControl::SetBackgroundColour(col) ) return FALSE; - SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); + SendMessage(GetHwnd(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); return TRUE; } @@ -674,7 +651,7 @@ void FAR PASCAL Draw3DLine(HDC hdc, WORD x, WORD y, WORD nLen, /* static global variables */ -static char gszzYzGaugeClass[] = "zYzGauge"; +static wxChar gszzYzGaugeClass[] = wxT("zYzGauge"); /* window word position definitions */ @@ -786,7 +763,8 @@ BOOL FAR PASCAL gaugeInit(HINSTANCE hInstance) /* Get a DC to determine whether device is mono or not, and set * default foreground/background colors as appropriate. */ - if ((hdc = CreateIC("DISPLAY", NULL, NULL, 0L))) + hdc = CreateIC(wxT("DISPLAY"), NULL, NULL, 0L) ; + if (hdc) { /* check for mono-display */ if ((GetDeviceCaps(hdc, BITSPIXEL) == 1) && @@ -849,7 +827,7 @@ static void PASCAL gaugePaint(HWND hwnd, HDC hdc) DWORD dwExtent; RECT rc1, rc2; HFONT hFont; - char ach[ 6 ]; + wxChar ach[ 6 ]; WORD dx, dy, wGomerX, wGomerY; /* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead, * which needs a SIZE* parameter */ @@ -940,7 +918,7 @@ static void PASCAL gaugePaint(HWND hwnd, HDC hdc) 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)); + wsprintf(ach, wxT("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange)); /* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead */ #if defined(__WIN32__) GetTextExtentPoint(hdc, ach, wGomerX = lstrlen(ach), &size); @@ -1159,7 +1137,8 @@ zyzgForceRepaint3D: case WM_SETFONT: /* if NULL hFont, use system font */ - if (!(hFont = (HFONT)wParam)) + hFont = (HFONT)wParam ; + if (!hFont) hFont = (HFONT) GetStockObject(SYSTEM_FONT); pgauge->hFont = hFont;