X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0badb709a86b91a203416784b649e3d00c699c7..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/generic/tipwin.cpp diff --git a/src/generic/tipwin.cpp b/src/generic/tipwin.cpp index 1dd67eafb3..ede0ae3913 100644 --- a/src/generic/tipwin.cpp +++ b/src/generic/tipwin.cpp @@ -31,14 +31,9 @@ #ifndef WX_PRECOMP #include "wx/dcclient.h" #include "wx/timer.h" + #include "wx/settings.h" #endif // WX_PRECOMP -#ifdef __WXGTK__ - #include -#endif - -#include "wx/settings.h" - // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -76,7 +71,7 @@ private: #endif // !wxUSE_POPUPWIN DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxTipWindowView) + wxDECLARE_NO_COPY_CLASS(wxTipWindowView); }; // ============================================================================ @@ -158,8 +153,7 @@ wxTipWindow::wxTipWindow(wxWindow *parent, 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); @@ -173,10 +167,10 @@ wxTipWindow::~wxTipWindow() { *m_windowPtr = NULL; } - #ifdef wxUSE_POPUPWIN + #if 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 } @@ -229,10 +223,14 @@ 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 + // Under OS X we get destroyed because of wxEVT_KILL_FOCUS generated by + // Show(false). + #ifndef __WXOSX__ + Destroy(); #endif - Destroy(); #else wxFrame::Close(); #endif @@ -273,7 +271,7 @@ void wxTipWindowView::Adjust(const wxString& text, wxCoord maxLength) bool breakLine = false; for ( const wxChar *p = text.c_str(); ; p++ ) { - if ( *p == _T('\n') || *p == _T('\0') ) + if ( *p == wxT('\n') || *p == wxT('\0') ) { dc.GetTextExtent(current, &width, &height); if ( width > widthMax ) @@ -293,7 +291,7 @@ void wxTipWindowView::Adjust(const wxString& text, wxCoord maxLength) current.clear(); breakLine = false; } - else if ( breakLine && (*p == _T(' ') || *p == _T('\t')) ) + else if ( breakLine && (*p == wxT(' ') || *p == wxT('\t')) ) { // word boundary - break the line here m_parent->m_textLines.Add(current); @@ -332,8 +330,8 @@ void wxTipWindowView::OnPaint(wxPaintEvent& WXUNUSED(event)) rect.height = size.y; // first filll the background - dc.SetBrush(wxBrush(GetBackgroundColour(), wxSOLID)); - dc.SetPen( wxPen(GetForegroundColour(), 1, wxSOLID) ); + dc.SetBrush(wxBrush(GetBackgroundColour(), wxBRUSHSTYLE_SOLID)); + dc.SetPen(wxPen(GetForegroundColour(), 1, wxPENSTYLE_SOLID)); dc.DrawRectangle(rect); // and then draw the text line by line @@ -363,7 +361,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();