X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/da87a1ca42a81c7b7b69cb013eb52d09cd5c1b70..ee4c6942b49d6ea13258437466c5735b1ba3ec6a:/src/msw/slidrmsw.cpp?ds=inline diff --git a/src/msw/slidrmsw.cpp b/src/msw/slidrmsw.cpp index aa01a17495..452f520fa6 100644 --- a/src/msw/slidrmsw.cpp +++ b/src/msw/slidrmsw.cpp @@ -24,6 +24,8 @@ #include #endif +#include "wx/utils.h" +#include "wx/brush.h" #include "wx/msw/slidrmsw.h" #include "wx/msw/private.h" @@ -51,10 +53,10 @@ wxSliderMSW::wxSliderMSW(void) m_tickFreq = 0; } -bool wxSliderMSW::Create(wxWindow *parent, const wxWindowID id, - const int value, const int minValue, const int maxValue, +bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, + int value, int minValue, int maxValue, const wxPoint& pos, - const wxSize& size, const long style, + const wxSize& size, long style, const wxValidator& validator, const wxString& name) { @@ -62,8 +64,8 @@ bool wxSliderMSW::Create(wxWindow *parent, const wxWindowID id, SetValidator(validator); if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetDefaultBackgroundColour()) ; - SetForegroundColour(parent->GetDefaultForegroundColour()) ; + SetBackgroundColour(parent->GetBackgroundColour()) ; + SetForegroundColour(parent->GetForegroundColour()) ; m_staticValue = 0; m_staticMin = 0; @@ -136,22 +138,22 @@ bool wxSliderMSW::Create(wxWindow *parent, const wxWindowID id, 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), wxGetInstance(), NULL); - SetFont(* parent->GetFont()); + SetFont(parent->GetFont()); - if (GetFont()) + if (GetFont().Ok()) { // GetFont()->RealizeResource(); - if (GetFont()->GetResourceHandle()) + if (GetFont().GetResourceHandle()) { if ( m_staticMin ) SendMessage((HWND)m_staticMin,WM_SETFONT, - (WPARAM)GetFont()->GetResourceHandle(),0L); + (WPARAM)GetFont().GetResourceHandle(),0L); if ( m_staticMax ) SendMessage((HWND)m_staticMax,WM_SETFONT, - (WPARAM)GetFont()->GetResourceHandle(),0L); + (WPARAM)GetFont().GetResourceHandle(),0L); if (m_staticValue) SendMessage((HWND)m_staticValue,WM_SETFONT, - (WPARAM)GetFont()->GetResourceHandle(),0L); + (WPARAM)GetFont().GetResourceHandle(),0L); } } @@ -161,7 +163,7 @@ bool wxSliderMSW::Create(wxWindow *parent, const wxWindowID id, return TRUE; } -void wxSliderMSW::MSWOnVScroll(const WXWORD wParam, const WXWORD pos, const WXHWND control) +void wxSliderMSW::MSWOnVScroll(WXWORD wParam, WXWORD pos, WXHWND control) { int position = ::GetScrollPos((HWND)control, SB_CTL); @@ -231,7 +233,7 @@ void wxSliderMSW::MSWOnVScroll(const WXWORD wParam, const WXWORD pos, const WXHW } } -void wxSliderMSW::MSWOnHScroll(const WXWORD wParam, const WXWORD pos, const WXHWND control) +void wxSliderMSW::MSWOnHScroll(WXWORD wParam, WXWORD pos, WXHWND control) { MSWOnVScroll(wParam, pos, control); } @@ -251,7 +253,7 @@ int wxSliderMSW::GetValue(void) const return ::GetScrollPos((HWND) GetHWND(), SB_CTL); } -void wxSliderMSW::SetValue(const int value) +void wxSliderMSW::SetValue(int value) { ::SetScrollPos((HWND) GetHWND(), SB_CTL, value, TRUE); if (m_staticValue) @@ -302,11 +304,20 @@ void wxSliderMSW::GetPosition(int *x, int *y) const if (parent) ::ScreenToClient((HWND) parent->GetHWND(), &point); + // We may be faking the client origin. + // So a window that's really at (0, 30) may appear + // (to wxWin apps) to be at (0, 0). + if (GetParent()) + { + wxPoint pt(GetParent()->GetClientAreaOrigin()); + point.x -= pt.x; + point.y -= pt.y; + } *x = point.x; *y = point.y; } -void wxSliderMSW::SetSize(const int x, const int y, const int width, const int height, const int sizeFlags) +void wxSliderMSW::SetSize(int x, int y, int width, int height, int sizeFlags) { int x1 = x; int y1 = y; @@ -320,6 +331,8 @@ void wxSliderMSW::SetSize(const int x, const int y, const int width, const int h if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) y1 = currentY; + AdjustForParentClientOrigin(x1, y1, sizeFlags); + char buf[300]; int x_offset = x; @@ -327,23 +340,23 @@ void wxSliderMSW::SetSize(const int x, const int y, const int width, const int h int cx; // slider,min,max sizes int cy; - float cyf; + int cyf; - wxGetCharSize(GetHWND(), &cx, &cy,GetFont()); + wxGetCharSize(GetHWND(), &cx, &cy,& GetFont()); if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL) { if ( m_windowStyle & wxSL_LABELS ) { - float min_len = 0.0; + int min_len = 0; GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL, GetFont()); + GetTextExtent(buf, &min_len, &cyf,NULL,NULL, & GetFont()); - float max_len = 0.0; + int max_len = 0; GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, GetFont()); + GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & GetFont()); if (m_staticValue) { int new_width = (int)(wxMax(min_len, max_len)); @@ -387,13 +400,13 @@ void wxSliderMSW::SetSize(const int x, const int y, const int width, const int h { if ( m_windowStyle & wxSL_LABELS ) { - float min_len; + int min_len; GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL,GetFont()); + GetTextExtent(buf, &min_len, &cyf,NULL,NULL,& GetFont()); - float max_len; + int max_len; GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, GetFont()); + GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & GetFont()); if (m_staticValue) { @@ -441,7 +454,7 @@ void wxSliderMSW::SetSize(const int x, const int y, const int width, const int h } } -void wxSliderMSW::SetRange(const int minValue, const int maxValue) +void wxSliderMSW::SetRange(int minValue, int maxValue) { m_rangeMin = minValue; m_rangeMax = maxValue; @@ -461,7 +474,7 @@ void wxSliderMSW::SetRange(const int minValue, const int maxValue) } } -WXHBRUSH wxSliderMSW::OnCtlColor(const WXHDC pDC, const WXHWND pWnd, const WXUINT nCtlColor, +WXHBRUSH wxSliderMSW::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { if ( nCtlColor == CTLCOLOR_SCROLLBAR ) @@ -482,11 +495,11 @@ WXHBRUSH wxSliderMSW::OnCtlColor(const WXHDC pDC, const WXHWND pWnd, const WXUIN } // For trackbars only -void wxSliderMSW::SetTickFreq(const int n, const int pos) +void wxSliderMSW::SetTickFreq(int n, int pos) { } -void wxSliderMSW::SetPageSize(const int pageSize) +void wxSliderMSW::SetPageSize(int pageSize) { m_pageSize = pageSize; } @@ -504,7 +517,7 @@ void wxSliderMSW::ClearTicks(void) { } -void wxSliderMSW::SetLineSize(const int lineSize) +void wxSliderMSW::SetLineSize(int lineSize) { m_lineSize = lineSize; } @@ -524,11 +537,11 @@ int wxSliderMSW::GetSelStart(void) const return 0; } -void wxSliderMSW::SetSelection(const int minPos, const int maxPos) +void wxSliderMSW::SetSelection(int minPos, int maxPos) { } -void wxSliderMSW::SetThumbLength(const int len) +void wxSliderMSW::SetThumbLength(int len) { } @@ -537,7 +550,7 @@ int wxSliderMSW::GetThumbLength(void) const return 0; } -void wxSliderMSW::SetTick(const int tickPos) +void wxSliderMSW::SetTick(int tickPos) { } @@ -567,7 +580,7 @@ void wxSliderMSW::Command (wxCommandEvent & event) ProcessCommand (event); } -bool wxSliderMSW::Show(const bool show) +bool wxSliderMSW::Show(bool show) { wxWindow::Show(show);