diff --git a/include/wx/qt/tooltip.h b/include/wx/qt/tooltip.h index 3d6a4a40e5..1f52f5b3b9 100644 --- a/include/wx/qt/tooltip.h +++ b/include/wx/qt/tooltip.h @@ -10,6 +10,7 @@ #include "wx/object.h" +class wxWindow; class WXDLLIMPEXP_CORE wxToolTip : public wxObject { public: diff --git a/src/qt/statusbar.cpp b/src/qt/statusbar.cpp index 8b0f052628..bbbacfb9ae 100644 --- a/src/qt/statusbar.cpp +++ b/src/qt/statusbar.cpp @@ -47,8 +47,6 @@ wxStatusBar::wxStatusBar(wxWindow *parent, wxWindowID winid, bool wxStatusBar::Create(wxWindow *parent, wxWindowID WXUNUSED(winid), long style, const wxString& WXUNUSED(name)) { - wxMISSING_IMPLEMENTATION( "wxStatusBar::Create parameters" ); - m_qtStatusBar = new wxQtStatusBar( parent, this ); m_qtPanes = new QList < QLabel* >; @@ -67,6 +65,9 @@ bool wxStatusBar::GetFieldRect(int i, wxRect& rect) const wxCHECK_MSG( (i >= 0) && ((size_t)i < m_panes.GetCount()), false, "invalid statusbar field index" ); + if(m_qtPanes->count() != m_panes.GetCount()) + const_cast(this)->UpdateFields(); + rect = wxQtConvertRect((*m_qtPanes)[i]->geometry()); return true; } @@ -88,6 +89,9 @@ int wxStatusBar::GetBorderY() const void wxStatusBar::DoUpdateStatusText(int number) { + if(m_qtPanes->count() != m_panes.GetCount()) + UpdateFields(); + (*m_qtPanes)[number]->setText( wxQtConvertString( m_panes[number].GetText() ) ); } @@ -104,7 +108,6 @@ void wxStatusBar::Init() m_qtPanes = NULL; } - void wxStatusBar::UpdateFields() { // is it a good idea to recreate all the panes every update? diff --git a/src/qt/window.cpp b/src/qt/window.cpp index 4d034a08d6..a261cb9174 100644 --- a/src/qt/window.cpp +++ b/src/qt/window.cpp @@ -1109,6 +1109,7 @@ bool wxWindowQt::QtHandlePaintEvent ( QWidget *handler, QPaintEvent *event ) // send the paint event (wxWindowDC will draw directly): wxPaintEvent paint( GetId() ); + paint.SetEventObject(this); handled = ProcessWindowEvent(paint); m_updateRegion.Clear(); }