X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..3f4a2351e4c677c88c18ea812b609477adee7380:/src/mac/classic/tooltip.cpp diff --git a/src/mac/classic/tooltip.cpp b/src/mac/classic/tooltip.cpp index f269196711..4e66d906cb 100644 --- a/src/mac/classic/tooltip.cpp +++ b/src/mac/classic/tooltip.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: tooltip.cpp +// Name: src/mac/classic/tooltip.cpp // Purpose: wxToolTip implementation // Author: Robert Roebling // Id: $Id$ @@ -7,19 +7,23 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma implementation "tooltip.h" -#endif +#include "wx/wxprec.h" -#include "wx/defs.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif #if wxUSE_TOOLTIPS -#include "wx/app.h" -#include "wx/dc.h" -#include "wx/window.h" #include "wx/tooltip.h" -#include "wx/timer.h" + +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/window.h" + #include "wx/dc.h" + #include "wx/timer.h" +#endif + #include "wx/geometry.h" #include "wx/mac/uma.h" @@ -34,18 +38,18 @@ class wxMacToolTip public : wxMacToolTip( ) ; ~wxMacToolTip() ; - + void Setup( WindowRef window , const wxString& text , wxPoint localPosition ) ; long GetMark() { return m_mark ; } void Draw() ; void Clear() ; bool IsShown() { return m_shown ; } private : - + wxString m_label ; wxPoint m_position ; Rect m_rect ; - WindowRef m_window ; + WindowRef m_window ; PicHandle m_backpict ; bool m_shown ; long m_mark ; @@ -64,7 +68,7 @@ public: void Notify() { if ( m_mark == m_tip->GetMark() ) - m_tip->Draw() ; + m_tip->Draw() ; } protected: wxMacToolTip* m_tip; @@ -96,14 +100,14 @@ wxToolTip::~wxToolTip() void wxToolTip::SetTip( const wxString &tip ) { m_text = tip; - + if ( m_window ) { /* // update it immediately wxToolInfo ti(GetHwndOf(m_window)); ti.lpszText = (wxChar *)m_text.c_str(); - + (void)SendTooltipMessage(GetToolTipCtrl(), TTM_UPDATETIPTEXT, 0, &ti); */ } @@ -153,7 +157,7 @@ void wxToolTip::RelayEvent( wxWindow *win , wxMouseEvent &event ) s_ToolTip.Clear() ; s_ToolTipArea = wxRect2DInt( event.m_x - 2 , event.m_y - 2 , 4 , 4 ) ; s_LastWindowEntered = win ; - + WindowRef window = MAC_WXHWND( win->MacGetRootWindow() ) ; int x = event.m_x ; int y = event.m_y ; @@ -188,7 +192,7 @@ wxMacToolTip::wxMacToolTip() m_timer = NULL ; } -void wxMacToolTip::Setup( WindowRef win , const wxString& text , wxPoint localPosition ) +void wxMacToolTip::Setup( WindowRef win , const wxString& text , wxPoint localPosition ) { m_mark++ ; Clear() ; @@ -202,13 +206,13 @@ void wxMacToolTip::Setup( WindowRef win , const wxString& text , wxPoint localP m_timer = new wxMacToolTipTimer( this , s_ToolTipDelay ) ; } -wxMacToolTip::~wxMacToolTip() +wxMacToolTip::~wxMacToolTip() { if ( m_timer ) { delete m_timer ; m_timer = NULL; } - if ( m_backpict ) + if ( m_backpict ) Clear() ; } @@ -217,9 +221,9 @@ const short kTipOffset = 5 ; void wxMacToolTip::Draw() { - if ( m_label.Length() == 0 ) + if ( m_label.empty() ) return ; - + if ( m_window == s_ToolTipWindowRef ) { m_shown = true ; @@ -248,7 +252,7 @@ void wxMacToolTip::Draw() Style fontStyle ; GetThemeFont(kThemeSmallSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ; GetFNum( fontName, &fontId ); - + TextFont( fontId ) ; TextSize( fontSize ) ; TextFace( fontStyle ) ; @@ -256,9 +260,9 @@ void wxMacToolTip::Draw() ::GetFontInfo(&fontInfo); short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading; short height = 0 ; - + int i = 0 ; - int length = m_label.Length() ; + int length = m_label.length() ; int width = 0 ; int thiswidth = 0 ; int laststop = 0 ; @@ -271,7 +275,7 @@ void wxMacToolTip::Draw() thiswidth = ::TextWidth( text , laststop , i - laststop ) ; if ( thiswidth > width ) width = thiswidth ; - + height += lineh ; laststop = i+1 ; } @@ -284,7 +288,7 @@ void wxMacToolTip::Draw() width = thiswidth ; height += lineh ; } - + m_rect.left = m_position.x + kTipOffset; m_rect.top = m_position.y + kTipOffset; m_rect.right = m_rect.left + width + 2 * kTipBorder; @@ -315,41 +319,41 @@ void wxMacToolTip::Draw() ClipRect( &m_rect ) ; BackColor( whiteColor ) ; ForeColor(blackColor ) ; - GWorldPtr port ; + GWorldPtr port ; NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ; CGrafPtr origPort ; GDHandle origDevice ; - + GetGWorld( &origPort , &origDevice ) ; SetGWorld( port , NULL ) ; - + m_backpict = OpenPicture(&m_rect); - - CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)), - GetPortBitMapForCopyBits(port), - &m_rect, - &m_rect, - srcCopy, + + CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)), + GetPortBitMapForCopyBits(port), + &m_rect, + &m_rect, + srcCopy, NULL); ClosePicture(); SetGWorld( origPort , origDevice ) ; DisposeGWorld( port ) ; PenNormal() ; - + RGBColor tooltipbackground = { 0xFFFF , 0xFFFF , 0xC000 } ; BackColor( whiteColor ) ; RGBForeColor( &tooltipbackground ) ; - + PaintRect( &m_rect ) ; ForeColor(blackColor ) ; FrameRect( &m_rect ) ; SetThemeTextColor(kThemeTextColorNotification,wxDisplayDepth(),true) ; ::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder); - + i = 0 ; laststop = 0 ; height = 0 ; - + while( i < length ) { if( text[i] == 13 || text[i] == 10) @@ -362,12 +366,12 @@ void wxMacToolTip::Draw() i++ ; } ::DrawText( text , laststop , i - laststop ) ; - ::TextMode( srcOr ) ; + ::TextMode( srcOr ) ; #endif } } -void wxToolTip::NotifyWindowDelete( WXHWND win ) +void wxToolTip::NotifyWindowDelete( WXHWND win ) { if ( win == s_ToolTipWindowRef ) { @@ -388,7 +392,7 @@ void wxMacToolTip::Clear() #if TARGET_CARBON HMHideTag() ; m_helpTextRef.Release() ; -#else +#else if ( m_window == s_ToolTipWindowRef && m_backpict ) { wxMacPortStateHelper help( (GrafPtr) GetWindowPort(m_window) ) ; @@ -404,5 +408,4 @@ void wxMacToolTip::Clear() #endif } -#endif - +#endif // wxUSE_TOOLTIPS