]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/classic/tooltip.cpp
Rich text lib separation.
[wxWidgets.git] / src / mac / classic / tooltip.cpp
index f269196711157a8e22ccda5890817a5221162d72..4e66d906cb47ca1dac1366c8d732ce1cd24d1c55 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        tooltip.cpp
+// Name:        src/mac/classic/tooltip.cpp
 // Purpose:     wxToolTip implementation
 // Author:      Robert Roebling
 // Id:          $Id$
 // Purpose:     wxToolTip implementation
 // Author:      Robert Roebling
 // Id:          $Id$
@@ -7,19 +7,23 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // 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
 
 
 #if wxUSE_TOOLTIPS
 
-#include "wx/app.h"
-#include "wx/dc.h"
-#include "wx/window.h"
 #include "wx/tooltip.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"
 
 #include "wx/geometry.h"
 #include "wx/mac/uma.h"
 
@@ -34,18 +38,18 @@ class wxMacToolTip
     public :
         wxMacToolTip( ) ;
         ~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 :
         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 ;
         wxString    m_label ;
         wxPoint m_position ;
         Rect            m_rect ;
-        WindowRef    m_window ;    
+        WindowRef    m_window ;
         PicHandle    m_backpict ;
         bool        m_shown ;
         long        m_mark ;
         PicHandle    m_backpict ;
         bool        m_shown ;
         long        m_mark ;
@@ -64,7 +68,7 @@ public:
     void Notify()
     {
         if ( m_mark == m_tip->GetMark() )
     void Notify()
     {
         if ( m_mark == m_tip->GetMark() )
-            m_tip->Draw() ;    
+            m_tip->Draw() ;
     }
 protected:
     wxMacToolTip*     m_tip;
     }
 protected:
     wxMacToolTip*     m_tip;
@@ -96,14 +100,14 @@ wxToolTip::~wxToolTip()
 void wxToolTip::SetTip( const wxString &tip )
 {
     m_text = tip;
 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();
     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);
         */
     }
       (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 ;
                 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 ;
                 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 ;
 }
 
     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() ;
 {
     m_mark++ ;
     Clear() ;
@@ -202,13 +206,13 @@ void wxMacToolTip::Setup( WindowRef win  , const wxString& text , wxPoint localP
     m_timer = new wxMacToolTipTimer( this , s_ToolTipDelay ) ;
 }
 
     m_timer = new wxMacToolTipTimer( this , s_ToolTipDelay ) ;
 }
 
-wxMacToolTip::~wxMacToolTip() 
+wxMacToolTip::~wxMacToolTip()
 {
     if ( m_timer ) {
         delete m_timer ;
         m_timer = NULL;
     }
 {
     if ( m_timer ) {
         delete m_timer ;
         m_timer = NULL;
     }
-    if ( m_backpict ) 
+    if ( m_backpict )
         Clear() ;
 }
 
         Clear() ;
 }
 
@@ -217,9 +221,9 @@ const short kTipOffset = 5 ;
 
 void wxMacToolTip::Draw()
 {
 
 void wxMacToolTip::Draw()
 {
-    if ( m_label.Length() == 0 )
+    if ( m_label.empty() )
         return ;
         return ;
-    
+
     if ( m_window == s_ToolTipWindowRef )
     {
         m_shown = true ;
     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 );
         Style fontStyle ;
         GetThemeFont(kThemeSmallSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
         GetFNum( fontName, &fontId );
-        
+
         TextFont( fontId ) ;
         TextSize( fontSize ) ;
         TextFace( fontStyle ) ;
         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 ;
         ::GetFontInfo(&fontInfo);
         short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading;
         short height = 0 ;
-        
+
         int i = 0 ;
         int i = 0 ;
-        int length = m_label.Length() ;
+        int length = m_label.length() ;
         int width = 0 ;
         int thiswidth = 0 ;
         int laststop = 0 ;
         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 ;
                 thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
                 if ( thiswidth > width )
                     width = thiswidth ;
-                
+
                 height += lineh ;
                 laststop = i+1 ;
             }
                 height += lineh ;
                 laststop = i+1 ;
             }
@@ -284,7 +288,7 @@ void wxMacToolTip::Draw()
                 width = thiswidth ;
             height += lineh ;
         }
                 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;
         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 ) ;
         ClipRect( &m_rect ) ;
         BackColor( whiteColor ) ;
         ForeColor(blackColor ) ;
-        GWorldPtr port ;            
+        GWorldPtr port ;
         NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
         CGrafPtr    origPort ;
         GDHandle    origDevice ;
         NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
         CGrafPtr    origPort ;
         GDHandle    origDevice ;
-        
+
         GetGWorld( &origPort , &origDevice ) ;
         SetGWorld( port , NULL ) ;
         GetGWorld( &origPort , &origDevice ) ;
         SetGWorld( port , NULL ) ;
-        
+
         m_backpict = OpenPicture(&m_rect);
         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() ;
             NULL);
         ClosePicture();
         SetGWorld( origPort , origDevice ) ;
         DisposeGWorld( port ) ;
         PenNormal() ;
-        
+
         RGBColor tooltipbackground = { 0xFFFF , 0xFFFF , 0xC000 } ;
         BackColor( whiteColor ) ;
         RGBForeColor( &tooltipbackground ) ;
         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);
         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 ;
         i = 0 ;
         laststop = 0 ;
         height = 0 ;
-        
+
         while( i < length )
         {
             if( text[i] == 13 || text[i] == 10)
         while( i < length )
         {
             if( text[i] == 13 || text[i] == 10)
@@ -362,12 +366,12 @@ void wxMacToolTip::Draw()
             i++ ;
         }
         ::DrawText( text , laststop , i - laststop ) ;
             i++ ;
         }
         ::DrawText( text , laststop , i - laststop ) ;
-        ::TextMode( srcOr ) ;        
+        ::TextMode( srcOr ) ;
 #endif
     }
 }
 
 #endif
     }
 }
 
-void wxToolTip::NotifyWindowDelete( WXHWND win ) 
+void wxToolTip::NotifyWindowDelete( WXHWND win )
 {
     if ( win == s_ToolTipWindowRef )
     {
 {
     if ( win == s_ToolTipWindowRef )
     {
@@ -388,7 +392,7 @@ void wxMacToolTip::Clear()
 #if TARGET_CARBON
     HMHideTag() ;
     m_helpTextRef.Release() ;
 #if TARGET_CARBON
     HMHideTag() ;
     m_helpTextRef.Release() ;
-#else         
+#else
     if ( m_window == s_ToolTipWindowRef && m_backpict )
     {
         wxMacPortStateHelper help( (GrafPtr) GetWindowPort(m_window) ) ;
     if ( m_window == s_ToolTipWindowRef && m_backpict )
     {
         wxMacPortStateHelper help( (GrafPtr) GetWindowPort(m_window) ) ;
@@ -404,5 +408,4 @@ void wxMacToolTip::Clear()
 #endif
 }
 
 #endif
 }
 
-#endif
-
+#endif // wxUSE_TOOLTIPS