X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/01fa3fe74d0fadc5126fc27fb5729f08b10da606..49e399d8c0f2683a885bfec77e43cfde3b2249f4:/src/generic/tipwin.cpp?ds=sidebyside diff --git a/src/generic/tipwin.cpp b/src/generic/tipwin.cpp index 6dc9d80ac6..26f83781ba 100644 --- a/src/generic/tipwin.cpp +++ b/src/generic/tipwin.cpp @@ -55,6 +55,8 @@ BEGIN_EVENT_TABLE(wxTipWindow, wxFrame) EVT_LEFT_DOWN(wxTipWindow::OnMouseClick) EVT_RIGHT_DOWN(wxTipWindow::OnMouseClick) EVT_MIDDLE_DOWN(wxTipWindow::OnMouseClick) + EVT_KILL_FOCUS(wxTipWindow::OnKillFocus) + EVT_ACTIVATE(wxTipWindow::OnActivate) END_EVENT_TABLE() // ---------------------------------------------------------------------------- @@ -70,8 +72,12 @@ wxTipWindow::wxTipWindow(wxWindow *parent, { // set colours SetForegroundColour(*wxBLACK); +#if !defined(__WXPM__) SetBackgroundColour(wxColour(0xc3ffff)); - +#else + // What is 0xc3ffff, try some legable documentation for those of us who don't memorize hex codes?? + SetBackgroundColour(wxColour(*wxWHITE)); +#endif // set position and size int x, y; wxGetMousePosition(&x, &y); @@ -79,8 +85,7 @@ wxTipWindow::wxTipWindow(wxWindow *parent, Adjust(text, maxLength); - // capture mouse as we want to dismiss the window when it is clicked - CaptureMouse(); + SetFocus(); Show(TRUE); } @@ -158,7 +163,13 @@ void wxTipWindow::OnPaint(wxPaintEvent& event) // first filll the background dc.SetBrush(wxBrush(GetBackgroundColour(), wxSOLID)); - dc.SetPen(*wxBLACK_PEN); + + // Under Windows, you apparently get a thin black border whether you like it or not :-( +#ifdef __WXMSW__ + dc.SetPen( * wxTRANSPARENT_PEN ); +#else + dc.SetPen( * wxBLACK_PEN ); +#endif dc.DrawRectangle(rect); // and then draw the text line by line @@ -178,7 +189,16 @@ void wxTipWindow::OnPaint(wxPaintEvent& event) void wxTipWindow::OnMouseClick(wxMouseEvent& event) { - ReleaseMouse(); + Close(); +} + +void wxTipWindow::OnActivate(wxActivateEvent& event) +{ + if (!event.GetActive()) + Close(); +} +void wxTipWindow::OnKillFocus(wxFocusEvent& event) +{ Close(); }