diff --git a/include/wx/msw/control.h b/include/wx/msw/control.h index 35d5d8c4c3..446d49f333 100644 --- a/include/wx/msw/control.h +++ b/include/wx/msw/control.h @@ -34,9 +34,6 @@ public: // Calls the callback and appropriate event handlers bool ProcessCommand(wxCommandEvent& event); - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - // MSW-specific #ifdef __WIN95__ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h index bfc72476b1..a750486a0f 100644 --- a/include/wx/msw/radiobox.h +++ b/include/wx/msw/radiobox.h @@ -66,8 +66,6 @@ public: void GetSize(int *x, int *y) const; void GetPosition(int *x, int *y) const; - wxString GetLabel() const; - void SetLabel(const wxString& label); void SetLabel(int item, const wxString& label); void SetLabel(int item, wxBitmap *bitmap); wxString GetLabel(int item) const; diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp index 69ddce49e0..4272fe2514 100644 --- a/src/generic/splitter.cpp +++ b/src/generic/splitter.cpp @@ -263,11 +263,24 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) // Erase old tracker DrawSashTracker(m_oldX, m_oldY); - // Draw new one - DrawSashTracker(x, y); - +#ifdef __WXMSW__ + // As we captured the mouse, we may get the mouse events from outside + // our window - for example, negative values in x, y. This has a weird + // consequence under MSW where we use unsigned values sometimes and + // signed ones other times: the coordinates turn as big positive + // numbers and so the sash is drawn on the *right* side of the window + // instead of the left (or bottom instead of top). Correct this. m_oldX = x; m_oldY = y; + + if ( (short)m_oldX < 0 ) + m_oldX = 0; + if ( (short)m_oldY < 0 ) + m_oldY = 0; +#endif // __WXMSW__ + + // Draw new one + DrawSashTracker(m_oldX, m_oldY); } else if ( event.LeftDClick() ) { diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index cdfedb4cb3..eb551853d5 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -123,10 +123,7 @@ bool wxNotebook::Create(wxWindow *parent, const wxString& name) { // base init - SetName(name); - SetParent(parent); - - m_windowId = id == -1 ? NewControlId() : id; + CreateBase(parent, id, pos, size, style, name); // colors and font m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE)); diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index 757b479beb..4038a36348 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -287,8 +287,17 @@ wxRadioBox::~wxRadioBox() } +wxString wxRadioBox::GetLabel(int item) const +{ + wxCHECK_MSG( item >= 0 && item < m_noItems, "", "invalid radiobox index" ); + + return wxGetWindowText(m_radioButtons[item]); +} + void wxRadioBox::SetLabel(int item, const wxString& label) { + wxCHECK_RET( item >= 0 && item < m_noItems, "invalid radiobox index" ); + m_radioWidth[item] = m_radioHeight[item] = -1; SetWindowText((HWND)m_radioButtons[item], label.c_str()); }