X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2997ca30d66c2dc778ed9a84c8c94fea6ec1c958..3e1924dd5f5744c3e2a8973de9b3e4f372b7fd85:/src/generic/tipwin.cpp?ds=sidebyside diff --git a/src/generic/tipwin.cpp b/src/generic/tipwin.cpp index 27703a53cf..c64fa5a569 100644 --- a/src/generic/tipwin.cpp +++ b/src/generic/tipwin.cpp @@ -17,29 +17,22 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "tipwin.h" -#endif - -// For compilers that support precompilatixon, includes "wx/wx.h". +// For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif +#if wxUSE_TIPWINDOW + +#include "wx/tipwin.h" + #ifndef WX_PRECOMP #include "wx/dcclient.h" + #include "wx/timer.h" + #include "wx/settings.h" #endif // WX_PRECOMP -#ifdef __WXGTK__ - #include -#endif -#include "wx/tipwin.h" - -#if wxUSE_TIPWINDOW - -#include "wx/timer.h" -#include "wx/settings.h" // ---------------------------------------------------------------------------- // constants @@ -157,11 +150,10 @@ wxTipWindow::wxTipWindow(wxWindow *parent, y += wxSystemSettings::GetMetric(wxSYS_CURSOR_Y) / 2; #if wxUSE_POPUPWIN - Position(wxPoint(x, y), wxSize()); + Position(wxPoint(x, y), wxSize(0,0)); Popup(m_view); #ifdef __WXGTK__ - if (!GTK_WIDGET_HAS_GRAB(m_widget)) - gtk_grab_add( m_widget ); + m_view->CaptureMouse(); #endif #else Move(x, y); @@ -177,8 +169,8 @@ wxTipWindow::~wxTipWindow() } #ifdef wxUSE_POPUPWIN #ifdef __WXGTK__ - if (GTK_WIDGET_HAS_GRAB(m_widget)) - gtk_grab_remove( m_widget ); + if ( m_view->HasCapture() ) + m_view->ReleaseMouse(); #endif #endif } @@ -231,8 +223,8 @@ void wxTipWindow::Close() #if wxUSE_POPUPWIN Show(false); #ifdef __WXGTK__ - if (GTK_WIDGET_HAS_GRAB(m_widget)) - gtk_grab_remove( m_widget ); + if ( m_view->HasCapture() ) + m_view->ReleaseMouse(); #endif Destroy(); #else @@ -319,7 +311,7 @@ void wxTipWindowView::Adjust(const wxString& text, wxCoord maxLength) // take into account the border size and the margins width = 2*(TEXT_MARGIN_X + 1) + widthMax; - height = 2*(TEXT_MARGIN_Y + 1) + m_parent->m_textLines.GetCount()*m_parent->m_heightLine; + height = 2*(TEXT_MARGIN_Y + 1) + wx_truncate_cast(wxCoord, m_parent->m_textLines.GetCount())*m_parent->m_heightLine; m_parent->SetClientSize(width, height); SetSize(0, 0, width, height); } @@ -365,7 +357,7 @@ void wxTipWindowView::OnMouseMove(wxMouseEvent& event) const wxRect& rectBound = m_parent->m_rectBound; if ( rectBound.width && - !rectBound.Inside(ClientToScreen(event.GetPosition())) ) + !rectBound.Contains(ClientToScreen(event.GetPosition())) ) { // mouse left the bounding rect, disappear m_parent->Close();