started macosx compliant implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -148,7 +148,7 @@ void wxToolTip::RelayEvent( wxWindow *win , wxMouseEvent &event )
|
|||||||
s_ToolTipArea = wxRect2DInt( event.m_x - 2 , event.m_y - 2 , 4 , 4 ) ;
|
s_ToolTipArea = wxRect2DInt( event.m_x - 2 , event.m_y - 2 , 4 , 4 ) ;
|
||||||
s_LastWindowEntered = win ;
|
s_LastWindowEntered = win ;
|
||||||
|
|
||||||
WindowRef window = win->GetMacRootWindow() ;
|
WindowRef window = win->MacGetRootWindow() ;
|
||||||
int x = event.m_x ;
|
int x = event.m_x ;
|
||||||
int y = event.m_y ;
|
int y = event.m_y ;
|
||||||
wxPoint local( x , y ) ;
|
wxPoint local( x , y ) ;
|
||||||
@@ -209,94 +209,104 @@ void wxMacToolTip::Draw()
|
|||||||
|
|
||||||
if ( m_window == s_ToolTipWindowRef )
|
if ( m_window == s_ToolTipWindowRef )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
AGAPortHelper help( GetWindowPort( m_window ) );
|
/*
|
||||||
#else
|
if ( HMDisplayTag != (void*) kUnresolvedCFragSymbolAddress )
|
||||||
AGAPortHelper help( ( m_window ) );
|
{
|
||||||
#endif
|
HMDisplayTag(
|
||||||
m_shown = true ;
|
}
|
||||||
|
else
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if TARGET_CARBON
|
||||||
|
AGAPortHelper help( GetWindowPort( m_window ) );
|
||||||
|
#else
|
||||||
|
AGAPortHelper help( ( m_window ) );
|
||||||
|
#endif
|
||||||
|
m_shown = true ;
|
||||||
|
|
||||||
SetOrigin( 0 , 0 ) ;
|
SetOrigin( 0 , 0 ) ;
|
||||||
TextFont( kFontIDGeneva ) ;
|
TextFont( kFontIDGeneva ) ;
|
||||||
TextSize( 10 ) ;
|
TextSize( 10 ) ;
|
||||||
TextFace( 0 ) ;
|
TextFace( 0 ) ;
|
||||||
FontInfo fontInfo;
|
FontInfo fontInfo;
|
||||||
::GetFontInfo(&fontInfo);
|
::GetFontInfo(&fontInfo);
|
||||||
short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading;
|
short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading;
|
||||||
short height = 0 ;
|
short height = 0 ;
|
||||||
// short width = TextWidth( m_label , 0 ,m_label.Length() ) ;
|
// short width = TextWidth( m_label , 0 ,m_label.Length() ) ;
|
||||||
|
|
||||||
int i = 0 ;
|
int i = 0 ;
|
||||||
int length = m_label.Length() ;
|
int length = m_label.Length() ;
|
||||||
int width = 0 ;
|
int width = 0 ;
|
||||||
int thiswidth = 0 ;
|
int thiswidth = 0 ;
|
||||||
int laststop = 0 ;
|
int laststop = 0 ;
|
||||||
const char *text = m_label ;
|
const char *text = m_label ;
|
||||||
while( i < length )
|
while( i < length )
|
||||||
{
|
{
|
||||||
if( text[i] == 13 || text[i] == 10)
|
if( text[i] == 13 || text[i] == 10)
|
||||||
{
|
{
|
||||||
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
||||||
if ( thiswidth > width )
|
if ( thiswidth > width )
|
||||||
width = thiswidth ;
|
width = thiswidth ;
|
||||||
|
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
laststop = i+1 ;
|
laststop = i+1 ;
|
||||||
}
|
}
|
||||||
i++ ;
|
i++ ;
|
||||||
}
|
}
|
||||||
if ( i - laststop > 0 )
|
if ( i - laststop > 0 )
|
||||||
{
|
{
|
||||||
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
||||||
if ( thiswidth > width )
|
if ( thiswidth > width )
|
||||||
width = thiswidth ;
|
width = thiswidth ;
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m_rect.left = m_position.x + kTipOffset;
|
m_rect.left = m_position.x + kTipOffset;
|
||||||
m_rect.top = m_position.y + kTipOffset;
|
m_rect.top = m_position.y + kTipOffset;
|
||||||
m_rect.right = m_rect.left + width + 2 * kTipBorder;
|
m_rect.right = m_rect.left + width + 2 * kTipBorder;
|
||||||
m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
|
m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
|
||||||
ClipRect( &m_rect ) ;
|
ClipRect( &m_rect ) ;
|
||||||
BackColor( whiteColor ) ;
|
BackColor( whiteColor ) ;
|
||||||
ForeColor(blackColor ) ;
|
ForeColor(blackColor ) ;
|
||||||
m_backpict = OpenPicture(&m_rect);
|
m_backpict = OpenPicture(&m_rect);
|
||||||
|
|
||||||
CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
||||||
GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
||||||
&m_rect,
|
&m_rect,
|
||||||
&m_rect,
|
&m_rect,
|
||||||
srcCopy,
|
srcCopy,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
ClosePicture();
|
ClosePicture();
|
||||||
PenNormal() ;
|
PenNormal() ;
|
||||||
SetThemeBackground(kThemeBrushNotificationWindowBackground,32,true) ;
|
SetThemeBackground(kThemeBrushNotificationWindowBackground,32,true) ;
|
||||||
BackColor( yellowColor ) ;
|
SetThemeTextColor(kThemeTextColorNotification,32,true) ;
|
||||||
ForeColor( blackColor ) ;
|
EraseRect( &m_rect ) ;
|
||||||
EraseRect( &m_rect ) ;
|
FrameRect( &m_rect ) ;
|
||||||
FrameRect( &m_rect ) ;
|
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder);
|
||||||
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder);
|
|
||||||
|
|
||||||
i = 0 ;
|
i = 0 ;
|
||||||
laststop = 0 ;
|
laststop = 0 ;
|
||||||
height = 0 ;
|
height = 0 ;
|
||||||
while( i < length )
|
while( i < length )
|
||||||
{
|
{
|
||||||
if( text[i] == 13 || text[i] == 10)
|
if( text[i] == 13 || text[i] == 10)
|
||||||
{
|
{
|
||||||
::DrawText( text , laststop , i - laststop ) ;
|
::DrawText( text , laststop , i - laststop ) ;
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder + height );
|
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder + height );
|
||||||
laststop = i+1 ;
|
laststop = i+1 ;
|
||||||
}
|
}
|
||||||
i++ ;
|
i++ ;
|
||||||
}
|
}
|
||||||
|
|
||||||
::DrawText( text , laststop , i - laststop ) ;
|
::DrawText( text , laststop , i - laststop ) ;
|
||||||
::TextMode( srcOr ) ;
|
::TextMode( srcOr ) ;
|
||||||
// DrawText( m_label , 0 , m_label.Length() ) ;
|
// DrawText( m_label , 0 , m_label.Length() ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -148,7 +148,7 @@ void wxToolTip::RelayEvent( wxWindow *win , wxMouseEvent &event )
|
|||||||
s_ToolTipArea = wxRect2DInt( event.m_x - 2 , event.m_y - 2 , 4 , 4 ) ;
|
s_ToolTipArea = wxRect2DInt( event.m_x - 2 , event.m_y - 2 , 4 , 4 ) ;
|
||||||
s_LastWindowEntered = win ;
|
s_LastWindowEntered = win ;
|
||||||
|
|
||||||
WindowRef window = win->GetMacRootWindow() ;
|
WindowRef window = win->MacGetRootWindow() ;
|
||||||
int x = event.m_x ;
|
int x = event.m_x ;
|
||||||
int y = event.m_y ;
|
int y = event.m_y ;
|
||||||
wxPoint local( x , y ) ;
|
wxPoint local( x , y ) ;
|
||||||
@@ -209,94 +209,104 @@ void wxMacToolTip::Draw()
|
|||||||
|
|
||||||
if ( m_window == s_ToolTipWindowRef )
|
if ( m_window == s_ToolTipWindowRef )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
AGAPortHelper help( GetWindowPort( m_window ) );
|
/*
|
||||||
#else
|
if ( HMDisplayTag != (void*) kUnresolvedCFragSymbolAddress )
|
||||||
AGAPortHelper help( ( m_window ) );
|
{
|
||||||
#endif
|
HMDisplayTag(
|
||||||
m_shown = true ;
|
}
|
||||||
|
else
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if TARGET_CARBON
|
||||||
|
AGAPortHelper help( GetWindowPort( m_window ) );
|
||||||
|
#else
|
||||||
|
AGAPortHelper help( ( m_window ) );
|
||||||
|
#endif
|
||||||
|
m_shown = true ;
|
||||||
|
|
||||||
SetOrigin( 0 , 0 ) ;
|
SetOrigin( 0 , 0 ) ;
|
||||||
TextFont( kFontIDGeneva ) ;
|
TextFont( kFontIDGeneva ) ;
|
||||||
TextSize( 10 ) ;
|
TextSize( 10 ) ;
|
||||||
TextFace( 0 ) ;
|
TextFace( 0 ) ;
|
||||||
FontInfo fontInfo;
|
FontInfo fontInfo;
|
||||||
::GetFontInfo(&fontInfo);
|
::GetFontInfo(&fontInfo);
|
||||||
short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading;
|
short lineh = fontInfo.ascent + fontInfo.descent + fontInfo.leading;
|
||||||
short height = 0 ;
|
short height = 0 ;
|
||||||
// short width = TextWidth( m_label , 0 ,m_label.Length() ) ;
|
// short width = TextWidth( m_label , 0 ,m_label.Length() ) ;
|
||||||
|
|
||||||
int i = 0 ;
|
int i = 0 ;
|
||||||
int length = m_label.Length() ;
|
int length = m_label.Length() ;
|
||||||
int width = 0 ;
|
int width = 0 ;
|
||||||
int thiswidth = 0 ;
|
int thiswidth = 0 ;
|
||||||
int laststop = 0 ;
|
int laststop = 0 ;
|
||||||
const char *text = m_label ;
|
const char *text = m_label ;
|
||||||
while( i < length )
|
while( i < length )
|
||||||
{
|
{
|
||||||
if( text[i] == 13 || text[i] == 10)
|
if( text[i] == 13 || text[i] == 10)
|
||||||
{
|
{
|
||||||
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
||||||
if ( thiswidth > width )
|
if ( thiswidth > width )
|
||||||
width = thiswidth ;
|
width = thiswidth ;
|
||||||
|
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
laststop = i+1 ;
|
laststop = i+1 ;
|
||||||
}
|
}
|
||||||
i++ ;
|
i++ ;
|
||||||
}
|
}
|
||||||
if ( i - laststop > 0 )
|
if ( i - laststop > 0 )
|
||||||
{
|
{
|
||||||
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
thiswidth = ::TextWidth( text , laststop , i - laststop ) ;
|
||||||
if ( thiswidth > width )
|
if ( thiswidth > width )
|
||||||
width = thiswidth ;
|
width = thiswidth ;
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m_rect.left = m_position.x + kTipOffset;
|
m_rect.left = m_position.x + kTipOffset;
|
||||||
m_rect.top = m_position.y + kTipOffset;
|
m_rect.top = m_position.y + kTipOffset;
|
||||||
m_rect.right = m_rect.left + width + 2 * kTipBorder;
|
m_rect.right = m_rect.left + width + 2 * kTipBorder;
|
||||||
m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
|
m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
|
||||||
ClipRect( &m_rect ) ;
|
ClipRect( &m_rect ) ;
|
||||||
BackColor( whiteColor ) ;
|
BackColor( whiteColor ) ;
|
||||||
ForeColor(blackColor ) ;
|
ForeColor(blackColor ) ;
|
||||||
m_backpict = OpenPicture(&m_rect);
|
m_backpict = OpenPicture(&m_rect);
|
||||||
|
|
||||||
CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
CopyBits(GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
||||||
GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
GetPortBitMapForCopyBits(GetWindowPort(m_window)),
|
||||||
&m_rect,
|
&m_rect,
|
||||||
&m_rect,
|
&m_rect,
|
||||||
srcCopy,
|
srcCopy,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
ClosePicture();
|
ClosePicture();
|
||||||
PenNormal() ;
|
PenNormal() ;
|
||||||
SetThemeBackground(kThemeBrushNotificationWindowBackground,32,true) ;
|
SetThemeBackground(kThemeBrushNotificationWindowBackground,32,true) ;
|
||||||
BackColor( yellowColor ) ;
|
SetThemeTextColor(kThemeTextColorNotification,32,true) ;
|
||||||
ForeColor( blackColor ) ;
|
EraseRect( &m_rect ) ;
|
||||||
EraseRect( &m_rect ) ;
|
FrameRect( &m_rect ) ;
|
||||||
FrameRect( &m_rect ) ;
|
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder);
|
||||||
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder);
|
|
||||||
|
|
||||||
i = 0 ;
|
i = 0 ;
|
||||||
laststop = 0 ;
|
laststop = 0 ;
|
||||||
height = 0 ;
|
height = 0 ;
|
||||||
while( i < length )
|
while( i < length )
|
||||||
{
|
{
|
||||||
if( text[i] == 13 || text[i] == 10)
|
if( text[i] == 13 || text[i] == 10)
|
||||||
{
|
{
|
||||||
::DrawText( text , laststop , i - laststop ) ;
|
::DrawText( text , laststop , i - laststop ) ;
|
||||||
height += lineh ;
|
height += lineh ;
|
||||||
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder + height );
|
::MoveTo( m_rect.left + kTipBorder , m_rect.top + fontInfo.ascent + kTipBorder + height );
|
||||||
laststop = i+1 ;
|
laststop = i+1 ;
|
||||||
}
|
}
|
||||||
i++ ;
|
i++ ;
|
||||||
}
|
}
|
||||||
|
|
||||||
::DrawText( text , laststop , i - laststop ) ;
|
::DrawText( text , laststop , i - laststop ) ;
|
||||||
::TextMode( srcOr ) ;
|
::TextMode( srcOr ) ;
|
||||||
// DrawText( m_label , 0 , m_label.Length() ) ;
|
// DrawText( m_label , 0 , m_label.Length() ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user