X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/961c54c3333b9f231c0cac618c53d86cc15d993c..73a7e9399f26c776bdc503d26f30aa8724ed072e:/include/wx/tipwin.h diff --git a/include/wx/tipwin.h b/include/wx/tipwin.h index 3a82a5c064..6866687ec7 100644 --- a/include/wx/tipwin.h +++ b/include/wx/tipwin.h @@ -7,62 +7,96 @@ // Created: 10.09.00 // RCS-ID: $Id$ // Copyright: (c) 2000 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_TIPWIN_H_ #define _WX_TIPWIN_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "tipwin.h" #endif #if wxUSE_TIPWINDOW #if wxUSE_POPUPWIN -#include "wx/popupwin.h" + #include "wx/popupwin.h" + + #define wxTipWindowBase wxPopupTransientWindow #else -#include "wx/frame.h" + #include "wx/frame.h" + + #define wxTipWindowBase wxFrame #endif +#include "wx/arrstr.h" + +class WXDLLEXPORT wxTipWindowView; // ---------------------------------------------------------------------------- // wxTipWindow // ---------------------------------------------------------------------------- -#if wxUSE_POPUPWIN -class WXDLLEXPORT wxTipWindow : public wxPopupTransientWindow -#else -class WXDLLEXPORT wxTipWindow : public wxFrame -#endif +class WXDLLEXPORT wxTipWindow : public wxTipWindowBase { - friend class wxTipWindowView; public: - // Supply windowPtr for it to null the given address - // when the window has closed. + // the mandatory ctor parameters are: the parent window and the text to + // show + // + // optionally you may also specify the length at which the lines are going + // to be broken in rows (100 pixels by default) + // + // windowPtr and rectBound are just passed to SetTipWindowPtr() and + // SetBoundingRect() - see below wxTipWindow(wxWindow *parent, const wxString& text, - wxCoord maxLength = 100, wxTipWindow** windowPtr = NULL); - ~wxTipWindow(); + wxCoord maxLength = 100, + wxTipWindow** windowPtr = NULL, + wxRect *rectBound = NULL); + virtual ~wxTipWindow(); + + // If windowPtr is not NULL the given address will be NULLed when the + // window has closed void SetTipWindowPtr(wxTipWindow** windowPtr) { m_windowPtr = windowPtr; } + // If rectBound is not NULL, the window will disappear automatically when + // the mouse leave the specified rect: note that rectBound should be in the + // screen coordinates! + void SetBoundingRect(const wxRect& rectBound); + + // Hide and destroy the window void Close(); protected: + // called by wxTipWindowView only + bool CheckMouseInBounds(const wxPoint& pos); + // event handlers void OnMouseClick(wxMouseEvent& event); + #if !wxUSE_POPUPWIN void OnActivate(wxActivateEvent& event); void OnKillFocus(wxFocusEvent& event); -#endif +#else // wxUSE_POPUPWIN + virtual void OnDismiss(); +#endif // wxUSE_POPUPWIN/!wxUSE_POPUPWIN private: wxArrayString m_textLines; wxCoord m_heightLine; + + wxTipWindowView *m_view; + wxTipWindow** m_windowPtr; + wxRect m_rectBound; DECLARE_EVENT_TABLE() + + friend class wxTipWindowView; + + DECLARE_NO_COPY_CLASS(wxTipWindow) }; #endif // wxUSE_TIPWINDOW + #endif // _WX_TIPWIN_H_