X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dafbe8c0af90db9f79931ef1bbec9ceab4c40503..02a8e64ca3a617d776e6e5f881f915aadbd47c4c:/src/generic/tipwin.cpp diff --git a/src/generic/tipwin.cpp b/src/generic/tipwin.cpp index 30d3b8cda9..17093b2d9e 100644 --- a/src/generic/tipwin.cpp +++ b/src/generic/tipwin.cpp @@ -6,7 +6,7 @@ // Created: 10.09.00 // RCS-ID: $Id$ // Copyright: (c) 2000 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "tipwin.h" #endif @@ -31,7 +31,9 @@ #ifndef WX_PRECOMP #include "wx/dcclient.h" #endif // WX_PRECOMP - +#ifdef __WXGTK__ + #include +#endif #include "wx/tipwin.h" #if wxUSE_TIPWINDOW @@ -76,6 +78,7 @@ private: #endif // !wxUSE_POPUPWIN DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxTipWindowView) }; // ============================================================================ @@ -135,15 +138,8 @@ wxTipWindow::wxTipWindow(wxWindow *parent, } // set colours - // - // VZ: why don't we use wxSystemSettings for !MSW? (FIXME) -#ifdef __WXMSW__ SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); -#else - SetForegroundColour(*wxBLACK); - SetBackgroundColour(*wxWHITE); -#endif // set size, position and show it m_view = new wxTipWindowView(this); @@ -163,6 +159,10 @@ wxTipWindow::wxTipWindow(wxWindow *parent, #if wxUSE_POPUPWIN Position(wxPoint(x, y), wxSize(0, 0)); Popup(m_view); + #ifdef __WXGTK__ + if (!GTK_WIDGET_HAS_GRAB(m_widget)) + gtk_grab_add( m_widget ); + #endif #else Move(x, y); Show(TRUE); @@ -175,6 +175,12 @@ wxTipWindow::~wxTipWindow() { *m_windowPtr = NULL; } + #ifdef wxUSE_POPUPWIN + #ifdef __WXGTK__ + if (GTK_WIDGET_HAS_GRAB(m_widget)) + gtk_grab_remove( m_widget ); + #endif + #endif } void wxTipWindow::OnMouseClick(wxMouseEvent& WXUNUSED(event)) @@ -224,6 +230,10 @@ void wxTipWindow::Close() #if wxUSE_POPUPWIN Show(FALSE); + #ifdef __WXGTK__ + if (GTK_WIDGET_HAS_GRAB(m_widget)) + gtk_grab_remove( m_widget ); + #endif Destroy(); #else wxFrame::Close(); @@ -240,15 +250,8 @@ wxTipWindowView::wxTipWindowView(wxWindow *parent) wxNO_BORDER) { // set colours - // - // VZ: why don't we use wxSystemSettings for !MSW? (FIXME) -#ifdef __WXMSW__ SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); -#else - SetForegroundColour(*wxBLACK); - SetBackgroundColour(*wxWHITE); -#endif #if !wxUSE_POPUPWIN m_creationTime = wxGetLocalTime();