m_mark++ ;
Clear() ;
m_position = localPosition ;
- m_label = wxMacMakeMacStringFromPC( text ) ;
+ if( wxApp::s_macDefaultEncodingIsPC )
+ m_label = wxMacMakeMacStringFromPC( text ) ;
+ else
+ m_label = text ;
m_window =win;
s_ToolTipWindowRef = m_window ;
m_backpict = NULL ;
wxMacToolTip::~wxMacToolTip()
{
- if ( m_timer )
+ if ( m_timer ) {
delete m_timer ;
- if ( m_backpict )
- Clear() ;
+ m_timer = NULL;
+ }
+ if ( m_backpict )
+ Clear() ;
}
const short kTipBorder = 2 ;
#endif
{
wxMacPortStateHelper help( (GrafPtr) GetWindowPort( m_window ) );
-
+#if TARGET_CARBON
bool useDrawThemeText = ( DrawThemeTextBox != (void*) kUnresolvedCFragSymbolAddress ) ;
-
+#endif
m_shown = true ;
FontFamilyID fontId ;
m_rect.left = m_position.x + kTipOffset;
m_rect.top = m_position.y + kTipOffset;
m_rect.right = m_rect.left + width + 2 * kTipBorder;
+#if TARGET_CARBON
if ( useDrawThemeText )
m_rect.right += kTipBorder ;
+#endif
m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
+ Rect r ;
+ GetPortBounds( GetWindowPort( m_window ) , &r ) ;
+ if ( m_rect.top < 0 )
+ {
+ m_rect.bottom += -m_rect.top ;
+ m_rect.top = 0 ;
+ }
+ if ( m_rect.left < 0 )
+ {
+ m_rect.right += -m_rect.left ;
+ m_rect.left = 0 ;
+ }
+ if ( m_rect.right > r.right )
+ {
+ m_rect.left -= (m_rect.right - r.right ) ;
+ m_rect.right = r.right ;
+ }
+ if ( m_rect.bottom > r.bottom )
+ {
+ m_rect.top -= (m_rect.bottom - r.bottom) ;
+ m_rect.bottom = r.bottom ;
+ }
ClipRect( &m_rect ) ;
BackColor( whiteColor ) ;
ForeColor(blackColor ) ;
+ 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(GetWindowPort(m_window)),
+ GetPortBitMapForCopyBits(port),
&m_rect,
&m_rect,
srcCopy,
NULL);
-
- ClosePicture();
- PenNormal() ;
+ ClosePicture();
+ SetGWorld( origPort , origDevice ) ;
+ DisposeGWorld( port ) ;
+ PenNormal() ;
RGBColor tooltipbackground = { 0xFFFF , 0xFFFF , 0xC000 } ;
BackColor( whiteColor ) ;
- RGBForeColor( &tooltipbackground ) ;
+ RGBForeColor( &tooltipbackground ) ;
PaintRect( &m_rect ) ;
ForeColor(blackColor ) ;
{
if( text[i] == 13 || text[i] == 10)
{
+#if TARGET_CARBON
if ( useDrawThemeText )
{
Rect frame ;
height += lineh ;
}
else
+#endif
{
::DrawText( text , laststop , i - laststop ) ;
height += lineh ;
}
i++ ;
}
+#if TARGET_CARBON
if ( useDrawThemeText )
{
Rect frame ;
CFRelease( mString ) ;
}
else
+#endif
{
::DrawText( text , laststop , i - laststop ) ;
}