X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..d7926e0b761b782b82f9ef01ff542251b2ef5ae7:/src/msw/slidrmsw.cpp diff --git a/src/msw/slidrmsw.cpp b/src/msw/slidrmsw.cpp index c2d4ed2a4a..9824dafd2a 100644 --- a/src/msw/slidrmsw.cpp +++ b/src/msw/slidrmsw.cpp @@ -29,9 +29,7 @@ #include "wx/msw/slidrmsw.h" #include "wx/msw/private.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxSliderMSW, wxControl) -#endif // Slider wxSliderMSW::wxSliderMSW() @@ -43,7 +41,6 @@ wxSliderMSW::wxSliderMSW() m_lineSize = 1; m_rangeMax = 0; m_rangeMin = 0; - m_tickFreq = 0; } bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, @@ -54,7 +51,9 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, const wxString& name) { SetName(name); +#if wxUSE_VALIDATORS SetValidator(validator); +#endif // wxUSE_VALIDATORS if (parent) parent->AddChild(this); SetBackgroundColour(parent->GetBackgroundColour()) ; @@ -66,7 +65,6 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, m_pageSize = 1; m_lineSize = 1; m_windowStyle = style; - m_tickFreq = 0; if ( id == -1 ) m_windowId = (int)NewControlId(); @@ -82,6 +80,9 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, long msStyle = WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER; + if ( m_windowStyle & wxCLIP_SIBLINGS ) + msStyle |= WS_CLIPSIBLINGS; + bool want3D; WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; @@ -92,14 +93,14 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, // Now create min static control wxSprintf(wxBuffer, wxT("%d"), minValue); + DWORD wstyle = STATIC_FLAGS; + if ( m_windowStyle & wxCLIP_SIBLINGS ) + wstyle |= WS_CLIPSIBLINGS; m_staticMin = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer, - STATIC_FLAGS, + wstyle, 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), wxGetInstance(), NULL); - // Now create slider - m_windowId = (int)NewControlId(); - msStyle = 0; if (m_windowStyle & wxSL_VERTICAL) msStyle = SBS_VERT | WS_CHILD | WS_VISIBLE | WS_TABSTOP ; @@ -126,8 +127,11 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, // Finally, create max value static item wxSprintf(wxBuffer, wxT("%d"), maxValue); + wstyle = STATIC_FLAGS; + if ( m_windowStyle & wxCLIP_SIBLINGS ) + wstyle |= WS_CLIPSIBLINGS; m_staticMax = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer, - STATIC_FLAGS, + wstyle, 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), wxGetInstance(), NULL); @@ -231,6 +235,7 @@ bool wxSliderMSW::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, GetEventHandler()->ProcessEvent(event); wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() ); + cevent.SetInt( newPos ); cevent.SetEventObject( this ); return GetEventHandler()->ProcessEvent( cevent ); @@ -326,9 +331,9 @@ void wxSliderMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) int currentX, currentY; GetPosition(¤tX, ¤tY); - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) + if (x == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) + if (y == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) y1 = currentY; AdjustForParentClientOrigin(x1, y1, sizeFlags); @@ -481,22 +486,7 @@ WXHBRUSH wxSliderMSW::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, return 0; // Otherwise, it's a static - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -// For trackbars only -void wxSliderMSW::SetTickFreq(int n, int pos) -{ + return wxControl::OnCtlColor(pDC, pWnd, nCtlColor, message, wParam, lParam); } void wxSliderMSW::SetPageSize(int pageSize) @@ -509,14 +499,6 @@ int wxSliderMSW::GetPageSize() const return m_pageSize; } -void wxSliderMSW::ClearSel() -{ -} - -void wxSliderMSW::ClearTicks() -{ -} - void wxSliderMSW::SetLineSize(int lineSize) { m_lineSize = lineSize; @@ -527,31 +509,15 @@ int wxSliderMSW::GetLineSize() const return m_lineSize; } -int wxSliderMSW::GetSelEnd() const -{ - return 0; -} - -int wxSliderMSW::GetSelStart() const -{ - return 0; -} - -void wxSliderMSW::SetSelection(int minPos, int maxPos) -{ -} - -void wxSliderMSW::SetThumbLength(int len) +// Not yet implemented +void wxSliderMSW::SetThumbLength(int WXUNUSED(lenPixels)) { } +// Not yet implemented int wxSliderMSW::GetThumbLength() const { - return 0; -} - -void wxSliderMSW::SetTick(int tickPos) -{ + return 0; } bool wxSliderMSW::ContainsHWND(WXHWND hWnd) const